[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 01/01: [gropdf]: Improve parsing of troff font files.
From: |
Deri James |
Subject: |
[groff] 01/01: [gropdf]: Improve parsing of troff font files. |
Date: |
Thu, 18 Aug 2022 09:38:42 -0400 (EDT) |
deri pushed a commit to branch master
in repository groff.
commit 0a4c256f3bce926e3d0829bf95447dd60b5fb5d7
Author: Deri James <deri@chuzzlewit.myzen.co.uk>
AuthorDate: Thu Aug 18 14:38:05 2022 +0100
[gropdf]: Improve parsing of troff font files.
* src/devices/gropdf/gropdf.pl: Allow the glyph code number
to be octal or hex as well as a decimal number. If entity_name
is missing use name instead.
---
ChangeLog | 8 ++++++++
src/devices/gropdf/gropdf.pl | 32 +++++++++++++++++---------------
2 files changed, 25 insertions(+), 15 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 8615277ce..89ff8ce87 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2022-08-18 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Improve parsing of troff font files.
+
+ * src/devices/gropdf/gropdf.pl: Allow the glyph code number
+ to be octal or hex as well as a decimal number. If entity_name
+ is missing use name instead.
+
2022-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
[ms]: Support pic(1) "flyback" feature.
diff --git a/src/devices/gropdf/gropdf.pl b/src/devices/gropdf/gropdf.pl
index 158880002..e936b734b 100644
--- a/src/devices/gropdf/gropdf.pl
+++ b/src/devices/gropdf/gropdf.pl
@@ -922,7 +922,7 @@ sub do_x
}
}
elsif ($pdfmark=~m/(.+) \/DEST\s*$/)
- {
+ {
my @xwds=split(' ',"<< $1 >>");
my $dest=ParsePDFValue(\@xwds);
$dest->{View}->[1]=GraphY($dest->{View}->[1]*-1);
@@ -2414,15 +2414,17 @@ sub LoadFont
if ($r[1] eq '"')
{
$fnt{NAM}->{$r[0]}=$fnt{NAM}->{$lastnm};
- next;
- }
+ next;
+ }
- $r[0]='u0020' if $r[3] == 32;
- $r[0]="u00".hex($r[3]) if $r[0] eq '---';
-# next if $r[3] >255;
- $fnt{NAM}->{$r[0]}=[$p[0],$r[3],'/'.$r[4],$r[3],0];
- $fnt{NO}->[$r[3]]=[$r[0],$r[0]];
- $lastnm=$r[0];
+ $r[3]=oct($r[3]) if substr($r[3],0,1) eq '0';
+ $r[0]='u0020' if $r[3] == 32;
+ $r[0]="u00".hex($r[3]) if $r[0] eq '---';
+# next if $r[3] >255;
+ $r[4]=$r[0] if !defined($r[4]);
+ $fnt{NAM}->{$r[0]}=[$p[0],$r[3],'/'.$r[4],$r[3],0];
+ $fnt{NO}->[$r[3]]=[$r[0],$r[0]];
+ $lastnm=$r[0];
$lastchr=$r[3] if $r[3] > $lastchr;
$fixwid=$p[0] if $fixwid == -1;
$fixwid=-2 if $fixwid > 0 and $p[0] != $fixwid;
@@ -2506,12 +2508,12 @@ sub LoadFont
}
else
{
- Warn("unable to embed font file for '$fnt{internalname}'"
- . " ($ofontnm) (missing entry in 'download' file?)")
- if $embedall;
- $fno=++$objct;
- $fontlst{$fontno}->{OBJ}=BuildObj($objct,
- {'Type' => '/Font',
+ Warn("unable to embed font file for '$fnt{internalname}'"
+ . " ($ofontnm) (missing entry in 'download' file?)")
+ if $embedall;
+ $fno=++$objct;
+ $fontlst{$fontno}->{OBJ}=BuildObj($objct,
+ {'Type' => '/Font',
'Subtype' => '/Type1',
'BaseFont' => '/'.$fnt{internalname},
'Widths' => $fnt{WIDTH},
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 01/01: [gropdf]: Improve parsing of troff font files.,
Deri James <=