These are patches to makes psfig work with groff. They apply to the version of psfig in comp.sources.unix/Volume11. After applying them, psfig should be recompiled with -DGROFF. The resulting psfig will work only with groff, so you might want to install it under a different name. The output of this psfig must be processed using the macros in the file ../tmac/tmac.psfig. These will automatically add the necessary PostScript code to the prologue output by grops. Use of the `global' feature in psfig will result in non-conformant PostScript which will fail if processed by a page reversal program. Note that psfig is unsupported by me (I'm not interested in hearing about psfig problems.) For new documents, I recommend using the PostScript inclusion features provided by grops. James Clark jjc@jclark.com *** cmds.c.~1~ Thu Feb 14 16:09:45 1991 --- cmds.c Mon Mar 4 12:49:26 1991 *************** *** 245,253 **** --- 245,261 ---- (void) sprintf(x, "%.2fp", fx); (void) sprintf(y, "%.2fp", fy); } else if (!*x) { + #ifndef GROFF (void) sprintf(x,"(%.2fp*%s/%.2fp)", fx, y, fy); + #else /* GROFF */ + (void) sprintf(x,"(%.0fu*%s/%.0fu)", fx, y, fy); + #endif /* GROFF */ } else if (!*y) { + #ifndef GROFF (void) sprintf(y,"(%.2fp*%s/%.2fp)", fy, x, fx); + #else /* GROFF */ + (void) sprintf(y,"(%.0fu*%s/%.0fu)", fy, x, fx); + #endif /* GROFF */ } /* *** troff.c.~1~ Thu Feb 14 16:09:48 1991 --- troff.c Mon Mar 4 12:48:46 1991 *************** *** 26,32 **** --- 26,36 ---- } + #ifndef GROFF char incl_file_s[] = "\\X'f%s'"; + #else /* GROFF */ + char incl_file_s[] = "\\X'ps: file %s'"; + #endif /* GROFF */ includeFile(filenm) char *filenm; { printf(incl_file_s, filenm); *************** *** 40,52 **** --- 44,64 ---- error("buffer overflow"); } + #ifndef GROFF char endfig_s[] = "\\X'pendFig'"; + #else /* GROFF */ + char endfig_s[] = "\\X'ps: exec psfigend'"; + #endif /* GROFF */ endfig() { printf(endfig_s); } char startfig_s[] = + #ifndef GROFF "\\X'p\\w@\\h@%s@@'\\X'p\\w@\\h@%s@@'\\X'p%.2f'\\X'p%.2f'\\X'p%.2f'\\X'p%.2f'\\X'pstartFig'"; + #else /* GROFF */ + "\\X'ps: exec \\w@\\h@%s@@ \\w@\\h@%s@@ %.2f %.2f %.2f %.2f psfigstart'"; + #endif /* GROFF */ startfig(x, y, llx, lly, urx, ury) char *x, *y; *************** *** 57,63 **** --- 69,79 ---- } emitDoClip() { + #ifndef GROFF printf("\\X'pdoclip'"); + #else /* GROFF */ + printf("\\X'ps: exec psfigclip'"); + #endif /* GROFF */ } flushX() *************** *** 116,122 **** --- 132,142 ---- #define isWhite(ch) ((ch) == ' ' || (ch) == '\t' || (ch) == '\n') + #ifndef GROFF char literal_s[] = "\\X'p%s'"; + #else /* GROFF */ + char literal_s[] = "\\X'ps: exec %s'"; + #endif /* GROFF */ emitLiteral(text) char *text; { static char litbuf[BUFSZ];