[tex-k] Plain text PFA files in dvipsk

kahl@heraklit.informatik.unibw-muenchen.de kahl@heraklit.informatik.unibw-muenchen.de
18 Apr 2001 12:50:48 -0000


Hello all,

  I am just writing my first PostScript font,
and after installing it into the TeX/dvips machinery,
dvips complained:

This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com)
' TeX output 2001.04.17:1601' -> RelSymbDoc.ps
<texc.pro><texps.pro>. <RelSymb.pfa>This is DVIPS, t1part module 
Error: RelSymb.pfa is not a valid PFA file


However, xdvi could use it, so I looked at the source.

Unfortunately, the latest I could find on DANTE was dvipsk-5.78a,
so I patched that --- the problem was that PartialPFA expected
ALWAYS a ``currentfile eexec'', and would return FALSE
for plain ASCII PFA files.

Therefore, I just had to add a few lines to fix this,
see patch below  (diff -c -r dvipsk-5.78a dvipsk-5.78b).

Could this be integrated into the distribution, please?
(And where does the latest distribution reside, if not on CTAN,
 of which DANTE ([www|ftp].dante.de) is supposed to be part?)


Best regards,

Wolfram Kahl


======== dvipsk-5.78a_to_5.78b.patch ==================================
diff -c -r dvipsk-5.78a/dvipsk/ChangeLog dvipsk-5.78b/dvipsk/ChangeLog
*** dvipsk-5.78a/dvipsk/ChangeLog	Mon Mar  9 11:33:19 1998
--- dvipsk-5.78b/dvipsk/ChangeLog	Wed Apr 18 14:42:41 2001
***************
*** 1,3 ****
--- 1,8 ----
+ Wed Apr 18 14:33:10 2001 Wolfram Kahl <kahl@informatik.unibw-muenchen.de>
+ 
+ 	* t1part.c: plain text PFA files (no ``currentfile eexec'')
+ 	                   are now accepted.
+ 
  Mon Mar  9 10:31:44 1998  Sebastian Rahtz  <s.rahtz@elsevier.co.uk>
  
  	* clean reencoding/asex.enc; small fix to copyright year (from
diff -c -r dvipsk-5.78a/dvipsk/t1part.c dvipsk-5.78b/dvipsk/t1part.c
*** dvipsk-5.78a/dvipsk/t1part.c	Wed Feb 25 11:58:46 1998
--- dvipsk-5.78b/dvipsk/t1part.c	Wed Apr 18 14:42:15 2001
***************
*** 2025,2031 ****
              break;
          switch (type)
          {
!             case FLG_ASCII:
                  if(strstr(buf,"currentfile eexec") != NULL)
                  {
                      type=FLG_BINARY;
--- 2025,2031 ----
              break;
          switch (type)
          {
!             Case FLG_ASCII:
                  if(strstr(buf,"currentfile eexec") != NULL)
                  {
                      type=FLG_BINARY;
***************
*** 2100,2109 ****
--- 2100,2124 ----
                  break;
          }
      }
+     /* 
+      * This original distinction prohibits PFA files
+      * without ``currentfile eexec''!
      if(type == FLG_ZERO_LINE)
          return TRUE;
      else return FALSE;
+     */
+     if(type == FLG_ZERO_LINE)
+         return TRUE;
+     else if(type == FLG_ASCII)
+         {
+          tmpline=mem;
+          CheckChoosing();
+          check_vect=1;
+          return TRUE;
+         }
+     else return FALSE;
  }
+ 
  
  #define FIRST_ASCII     1
  #define FIRST_BINARY    2