v08i022: Offical Patch #4 to thack (troff -> ps filter)
Brandon S. Allbery - comp.sources.misc
allbery at uunet.UU.NET
Tue Aug 29 10:12:13 AEST 1989
Posting-number: Volume 8, Issue 22
Submitted-by: everson%compsci.bristol.ac.uk at NSFnet-Relay.AC.UK
Archive-name: thack.p4
[ Also posted to comp.bugs.misc ]
Lots of improvements to the look of the output this time. It can now
print the Csh manual page pretty much perfectly. Also, the postscript
generated is now faster. If you've missed some patches (or the original
posting) they are in your local comp.sources.misc archive or I have them
here.
Phill Everson
Medical Imaging
Dept Comp Sci
University of Bristol, UK
*** README.orig Sat Aug 5 17:14:54 1989
--- README Mon Aug 28 17:51:38 1989
***************
*** 2,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 at twinkie.Rational.COM).
! Thanks to Paul Eggert <eggert at twinsun.com> for fixing a number of bugs.
Sample usage of thack is, say:
--- 2,12 ----
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 at twinkie.Rational.COM).
! Thanks to Paul Eggert <eggert at twinsun.com> and Tarjei T. Jensen
! <jensen at uninett.hsr> for fixing a number of bugs. Thanks also to Paul Eggert
! for speeding up the Postscript generated. Please send me any modifications
! you make to thack (in patch format if possible - (use diff -c)) and I'll
! post them to the net.
Sample usage of thack is, say:
***************
*** 22,28 ****
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
Computer Science Dept.,
--- 26,32 ----
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. (It's set up for European A4 paper).
Phill Everson
Computer Science Dept.,
*** thack.c.orig Sat Aug 5 17:14:56 1989
--- thack.c Mon Aug 28 17:50:21 1989
***************
*** 9,15 ****
#ifndef PAGELENGTH
#ifdef USPAGELENGTH
#ifdef sun
! #define PAGELENGTH 11.1875
#else
#define PAGELENGTH 11
#endif
--- 9,15 ----
#ifndef PAGELENGTH
#ifdef USPAGELENGTH
#ifdef sun
! #define PAGELENGTH 11.375
#else
#define PAGELENGTH 11
#endif
***************
*** 22,28 ****
main()
{
! int c;
int sflag;
int hdist, vdist;
int esc, lead;
--- 22,28 ----
main()
{
! int c, i;
int sflag;
int hdist, vdist;
int esc, lead;
***************
*** 266,273 ****
fontps(0, size, "\\301");
break; /* grave */
case 30:
! fontps(0, size, "^");
! break; /* ^ */
case 32:
pstr = "\\334";
break; /* left hand */
--- 266,273 ----
fontps(0, size, "\\301");
break; /* grave */
case 30:
! fontps(0, size, "\\303");
! break; /* tilde */
case 32:
pstr = "\\334";
break; /* left hand */
***************
*** 412,418 ****
font &= 27;
break;
default:
! fprintf(stderr, "ILLEGAL\n");
break;
}
tfont = font;
--- 412,418 ----
font &= 27;
break;
default:
! fputs( "ILLEGAL\n", stderr );
break;
}
tfont = font;
***************
*** 421,426 ****
--- 421,427 ----
if (sflag)
endpage();
epilog();
+ return 0;
}
tprint()
***************
*** 429,485 ****
printf("%d ", size * 6);
switch (font) {
case 0:
! printf("TR");
break;
case 1:
! printf("TI");
break;
case 2:
! printf("TB");
break;
case 3:
! printf("S");
break;
case 8:
! printf("H");
break;
case 9:
! printf("HO");
break;
case 10:
! printf("HB");
break;
case 11:
! printf("S");
break;
case 16:
! printf("C");
break;
case 17:
! printf("CO");
break;
case 18:
! printf("CB");
break;
case 19:
! printf("S");
break;
case 24:
! printf("TBI");
break;
case 25:
! printf("HBO");
break;
case 26:
! printf("CBO");
break;
case 27:
! printf("S");
break;
default:
fprintf(stderr, "Illegal Font %d\n", font);
}
! printf(" F\n");
cfont = font;
csize = size;
}
--- 430,486 ----
printf("%d ", size * 6);
switch (font) {
case 0:
! fputs("TR", stdout);
break;
case 1:
! fputs("TI", stdout);
break;
case 2:
! fputs("TB", stdout);
break;
case 3:
! fputs("S", stdout);
break;
case 8:
! fputs("H", stdout);
break;
case 9:
! fputs("HO", stdout);
break;
case 10:
! fputs("HB", stdout);
break;
case 11:
! fputs("S", stdout);
break;
case 16:
! fputs("C", stdout);
break;
case 17:
! fputs("CO", stdout);
break;
case 18:
! fputs("CB", stdout);
break;
case 19:
! fputs("S", stdout);
break;
case 24:
! fputs("TBI", stdout);
break;
case 25:
! fputs("HBO", stdout);
break;
case 26:
! fputs("CBO", stdout);
break;
case 27:
! fputs("S", stdout);
break;
default:
fprintf(stderr, "Illegal Font %d\n", font);
}
! fputs(" F\n", stdout);
cfont = font;
csize = size;
}
***************
*** 494,501 ****
fontps(f1, ps, str)
char *str;
{
- tfont = font;
- tsize = size;
pstr = str;
size = ps;
font = f1;
--- 495,500 ----
***************
*** 504,510 ****
illegal(s)
char *s;
{
! fprintf(stderr, "Sequence %s is not allowed\n", s);
}
crsize(old, new)
--- 503,509 ----
illegal(s)
char *s;
{
! fprintf(stderr, "Sequence \\(%s is not allowed\n", s);
}
crsize(old, new)
***************
*** 547,555 ****
Courier-BoldOblique\n");
printf("%%%%EndComments\n");
! printf("/P {moveto show} def\n");
! printf("/X {currentpoint exch pop moveto show} def\n");
! printf("/F {findfont exch scalefont setfont} def\n");
printf("/TR /Times-Roman def\n");
printf("/TI /Times-Italic def\n");
printf("/TB /Times-Bold def\n");
--- 546,554 ----
Courier-BoldOblique\n");
printf("%%%%EndComments\n");
! printf("/P {moveto show} bind def\n");
! printf("/X {currentpoint exch pop moveto show} bind def\n");
! printf("/F {findfont exch scalefont setfont} bind def\n");
printf("/TR /Times-Roman def\n");
printf("/TI /Times-Italic def\n");
printf("/TB /Times-Bold def\n");
More information about the Comp.sources.misc
mailing list