1993-07-15 20:30:15 +04:00
|
|
|
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
|
1996-08-13 11:03:54 +04:00
|
|
|
macros in the file ../tmac/tmac.psfig. These will automatically add
|
1993-07-15 20:30:15 +04:00
|
|
|
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];
|