[tex-k] header special extension proposal

Akira Kakuto kakuto at fsci.fuk.kindai.ac.jp
Fri Aug 19 13:52:00 CEST 2005


Hi Hendri, Karl,

> > I did find one problem with the current implementation which I have
> > overlooked until now while working only locally: the header special only
> > looks in the current dir and in (local)texmf/dvips for header files, while
> > the psfile special also looks in the texmf/tex tree.
> 
> Files are also searched for by using TEXINPUTS (TEXPICTS if defined)
> only in the extended case, by applying the following patch.
> (Others are minor fixes.)

The patch just I have sent was wrong.
Please use the following instead.
Sorry for sending wrong one without tests.

Thanks
Akira


--- dospecial.c.orig	Thu Aug 18 08:54:34 2005
+++ dospecial.c	Fri Aug 19 18:37:12 2005
@@ -398,8 +398,8 @@
 	 r = p-1 ;
 	 while ((*r <= ' ' || *r == ')') && r >= q)
 	    r-- ;
+	 if (*p != 0) p++ ;
 	 r[1] = 0 ; /* q is the file name */
-	 p++;
 	 while ((*p <= ' ' || *p == '=' || *p == '(') && *p != 0)
 	    p++ ;
 	 if(strncmp(p, "pre", 3) == 0) {
--- header.c.orig	Thu Aug 18 08:54:34 2005
+++ header.c	Fri Aug 19 18:40:30 2005
@@ -163,7 +163,7 @@
 void
 send_headers P1H(void) {
    struct header_list *p = header_head ;
-   char *q, *r ;
+   char *q ;
 
    while (0 != (q=get_name(&p))) {
 #ifdef DEBUG
--- output.c.orig	Thu Aug 18 08:54:36 2005
+++ output.c	Fri Aug 19 20:37:52 2005
@@ -194,6 +194,10 @@
 #endif
    default:
       f = search(headerpath, s, READBIN) ;
+      if(cur_header && (cur_header->precode || cur_header->postcode)) {
+	 if(f==NULL)
+	    f = search(figpath, s, READBIN) ;
+      }
       (void)sprintf(errbuf, "! Could not find header file %s", s) ;
       break ;
    }
@@ -236,7 +240,7 @@
             (void)fprintf(bitfile, "%%%%BeginProcSet: %s 0 0\n", s) ;
       }
       if (cur_header && cur_header->precode) {
-         (void)fprintf(bitfile, "\n%s\n", cur_header->precode) ;
+         (void)fprintf(bitfile, "%s\n", cur_header->precode) ;
          free(cur_header->precode) ;
       }
       c = getc(f) ;



More information about the tex-k mailing list