deri pushed a commit to branch master
in repository groff.
commit 69d9eba3680968edddad3842a770339e24cbdccb
Author: Deri James <[email protected]>
AuthorDate: Tue Jul 1 18:51:21 2025 +0100
[gropdf] More rational handling of duplicate font entries.
* src/devices/gropdf/gropdf.pl (LoadFont): The primary entry
has a proper postscript name such as 'iota' whereas
alternatives tend to have 'uniXXXX' or 'afiiNNNNN'. So
choose the primary.
---
ChangeLog | 9 +++++++++
src/devices/gropdf/gropdf.pl | 16 +++++++++++++++-
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 70e95528b..524ed1820 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2025-07-01 Deri James <[email protected]>
+
+ [gropdf] More rational handling of duplicate font entries.
+
+ * src/devices/gropdf/gropdf.pl (LoadFont): The primary entry
+ has a proper postscript name such as 'iota' whereas
+ alternatives tend to have 'uniXXXX' or 'afiiNNNNN'. So
+ choose the primary.
+
2025-07-01 Deri James <[email protected]>
[gropdf] Changes for greek glyphs
diff --git a/src/devices/gropdf/gropdf.pl b/src/devices/gropdf/gropdf.pl
index 74e73f07f..89deb83c1 100644
--- a/src/devices/gropdf/gropdf.pl
+++ b/src/devices/gropdf/gropdf.pl
@@ -3453,7 +3453,21 @@ sub LoadFont
$r[3]=oct($r[3]) if substr($r[3],0,1) eq '0';
$r[4]=$r[0] if !defined($r[4]);
$r[6]=$1 if !defined($r[6] and defined($r[5]) and $r[5]=~m/^--
([0-9A-F]{4})/);
- $r[0]="#$r[3]" if exists($fnt{NAM}->{$r[0]});
+ if (exists($fnt{NAM}->{$r[0]}))
+ {
+ # Prefer postscript names other than 'uni' or 'afii' as primary
+ if ($fnt{NAM}->{$r[0]}->[2]=~m'^/(:afii\d{5}|uni[A-F0-9]{4,5})')
+ {
+ my $n=$fnt{NAM}->{$r[0]}->[1];
+ $fnt{NAM}->{"#$n"}=$fnt{NAM}->{$r[0]};
+ $fnt{NO}->[$n]="#$n";
+ }
+ else
+ {
+ $r[0]="#$r[3]";
+ }
+ }
+
$fnt{NAM}->{$r[0]}=[$p[0],$r[3],'/'.$r[4],undef,undef,$r[6]];
$fnt{NO}->[$r[3]]=$r[0];
$lastnm=$r[0];
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit