allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc) (08/06/89)
Posting-number: Volume 7, Issue 119 Submitted-by: everson%compsci.bristol.ac.uk@NSFnet-Relay.AC.UK Archive-name: thack.p3 [Also posted to comp.bugs.misc] Most of the following patches are due to Paul Eggert <eggert@twinsun.com> and should help with using thack on non-Sun machines, also a font handling bugfix and a couple of font fixes, notably the long dashes which looked so bad in manual pages. Phill Everson Medical Imaging Dept Comp Sci University of Bristol, UK *** README.orig Sat Aug 5 17:02:43 1989 --- README Sat Aug 5 17:06:15 1989 *************** *** 1,7 **** Enclosed please find thack, a Troff C/A/T to Postscript filter, written by a colleague of mine, Gareth Waddell. Attempt to make output ! Adobe-conformant Postscript by David R. Kaelbling (drk@twinkie.Rational.COM) Sample usage of thack is, say: --- 1,8 ---- Enclosed please find thack, a Troff C/A/T to Postscript filter, written by a colleague of mine, Gareth Waddell. Attempt to make output ! Adobe-conformant Postscript by David R. Kaelbling (drk@twinkie.Rational.COM). ! Thanks to Paul Eggert <eggert@twinsun.com> for fixing a number of bugs. Sample usage of thack is, say: *************** *** 20,26 **** on an Apple Laserwriter I and an Apple Laserwriter IINTX. It can also be previewed under Sunview with the Rutherford Postscript Interpreter. ! If you're using US paper check you have -GUSPAPERLENGTH set in the Makefile, then just make. Phill Everson --- 21,27 ---- on an Apple Laserwriter I and an Apple Laserwriter IINTX. It can also be previewed under Sunview with the Rutherford Postscript Interpreter. ! If you're using US paper check you have -DUSPAPERLENGTH set in the Makefile, then just make. Phill Everson *** th.h.orig Sat Aug 5 16:57:13 1989 --- th.h Sat Aug 5 16:57:17 1989 *************** *** 1,4 **** --- 1,9 ---- #include <stdio.h> + #include <sys/types.h> + #include <time.h> + + time_t time(); + char *table[2][2]= { /* FONT 0,1,2,4,5,6,7 */ " htnmlizsdbxfjuk p ; a_c`e'o r v-wq/.g ,&y % QTOHNMLRGIPCVEZDBSY", *** thack.c.orig Sat Aug 5 16:57:07 1989 --- thack.c Sat Aug 5 17:01:56 1989 *************** *** 5,13 **** int font, cfont, size, csize, tfont, tsize; char *pstr, *cstr(); main() { ! int c, i; int sflag; int hdist, vdist; int esc, lead; --- 5,28 ---- int font, cfont, size, csize, tfont, tsize; char *pstr, *cstr(); + #ifndef Y_INITIAL + #ifndef PAGELENGTH + #ifdef USPAGELENGTH + #ifdef sun + #define PAGELENGTH 11.1875 + #else + #define PAGELENGTH 11 + #endif + #else + #define PAGELENGTH 11.75 + #endif + #endif + #define Y_INITIAL ((int)(PAGELENGTH*144 + 0.5)) + #endif + main() { ! int c; int sflag; int hdist, vdist; int esc, lead; *************** *** 18,28 **** tfont = font = 0; tsize = size = 12; esc = lead = 1; ! #ifdef USPAGELENGTH ! cy = ypos = 1584; /* represents 11 inches in troff vertical units */ ! #else ! cy = ypos = 1692; /* represents 11.5 inches in troff vertical units */ ! #endif cx = xpos = 0; sflag = 0; prolog(); --- 33,39 ---- tfont = font = 0; tsize = size = 12; esc = lead = 1; ! cy = ypos = Y_INITIAL; cx = xpos = 0; sflag = 0; prolog(); *************** *** 71,77 **** else switch (c & 0x3f) { case 19: ! pstr = "\\320"; break; /* \- */ case 20: pstr = "\\256"; --- 82,88 ---- else switch (c & 0x3f) { case 19: ! pstr = "\\261"; break; /* \- */ case 20: pstr = "\\256"; *************** *** 483,490 **** fontps(f1, ps, str) char *str; { ! tfont = cfont; ! tsize = csize; pstr = str; size = ps; font = f1; --- 494,501 ---- fontps(f1, ps, str) char *str; { ! tfont = font; ! tsize = size; pstr = str; size = ps; font = f1; *************** *** 516,528 **** newpage() { ! printf("%%%%Page: %d %d\n", npages, ++npages); printf("save\n"); } prolog() { ! long clock = time(0); printf("%%!PS-Adobe-\n"); printf("%%%%Creator: (thack - contact <everson@cs.bris.ac.uk>)\n"); --- 527,540 ---- newpage() { ! ++npages; ! printf("%%%%Page: %d %d\n", npages, npages); printf("save\n"); } prolog() { ! time_t clock = time((time_t *)0); printf("%%!PS-Adobe-\n"); printf("%%%%Creator: (thack - contact <everson@cs.bris.ac.uk>)\n"); *************** *** 530,538 **** printf("%%%%CreationDate: %s", asctime (localtime (&clock))); printf("%%%%Pages: (atend)\n"); printf("%%%%DocumentFonts: Times-Roman Times-Italic Times-Bold \ ! Symbol Helvetica Helvetica-Oblique Helvetica-Bold Courier \ ! Courier-Oblique Courier-Bold Times-BoldItalic Helvetica-BoldOblique \ ! Courier-BoldOblique\n"); printf("%%%%EndComments\n"); printf("/P {moveto show} def\n"); --- 542,550 ---- printf("%%%%CreationDate: %s", asctime (localtime (&clock))); printf("%%%%Pages: (atend)\n"); printf("%%%%DocumentFonts: Times-Roman Times-Italic Times-Bold \ ! Symbol Helvetica Helvetica-Oblique Helvetica-Bold Courier \ ! Courier-Oblique Courier-Bold Times-BoldItalic Helvetica-BoldOblique \ ! Courier-BoldOblique\n"); printf("%%%%EndComments\n"); printf("/P {moveto show} def\n");