groff-commit
[Top][All Lists]
Advanced

[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},



reply via email to

[Prev in Thread] Current Thread [Next in Thread]