|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T f ┃
Length: 63365 (0xf785) Types: TextFile Names: »fix5«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦this⟧ »EUUGD11/euug-87hel/sec1/ditroff-fix/fix5«
#! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # diffd # This archive created: Thu Nov 20 21:50:10 1986 export PATH; PATH=/bin:$PATH echo shar: extracting "'diffd'" '(59948 characters)' if test -f 'diffd' then echo shar: will not over-write existing file "'diffd'" else sed 's/^X//' << \SHAR_EOF > 'diffd' Xdiff -rbc titroff/nii.c /distribution/dwb/text/troff.d/nii.c X*** titroff/nii.c Mon Oct 13 15:30:32 1986 X--- /distribution/dwb/text/troff.d/nii.c Fri Sep 9 18:46:14 1983 X*************** X*** 1,3 X #include "tdef.h" X #ifdef NROFF X #include "tw.h" X X--- 1,4 ----- X+ /* @(#)nii.c 1.1 */ X #include "tdef.h" X #ifdef NROFF X #include "tw.h" X*************** X*** 129,147 X int dotT; X char *unlkp; X int no_out; X- #ifdef LOCALWARN X- #include "local.h" X- #ifdef WARNLEVELREG X- int warninglevel = WARN_ONCE; X- #else !WARNLEVELREG X- /* use v.nl instead, with the same values */ X- #endif WARNLEVELREG X- /* warninglevel is: X- * 0 -- no warnings X- * 1 -- 1 warning the 1st time a non-standard feature is used X- * 2 -- warn about every non-standard feature X- * X- * these are defined in local.h X- * REQ X- */ X- #endif LOCALWARN X X--- 130,132 ----- X int dotT; X char *unlkp; X int no_out; Xdiff -rbc titroff/s.h /distribution/dwb/text/troff.d/s.h X*** titroff/s.h Sun Feb 21 15:07:45 1982 X--- /distribution/dwb/text/troff.d/s.h Fri Sep 9 18:46:16 1983 X*************** X*** 1,3 X struct s { X int nargs; X struct s *pframe; X X--- 1,4 ----- X+ /* @(#)s.h 1.1 */ X struct s { X int nargs; X struct s *pframe; Xdiff -rbc titroff/suftab.c /distribution/dwb/text/troff.d/suftab.c X*** titroff/suftab.c Wed Jan 11 10:26:33 1984 X--- /distribution/dwb/text/troff.d/suftab.c Fri Sep 9 18:46:26 1983 X*************** X*** 1,3 X /* X * Suffix table X */ X X--- 1,4 ----- X+ /* @(#)suftab.c 1.1 */ X /* X * Suffix table X */ Xdiff -rbc titroff/t10.c /distribution/dwb/text/troff.d/t10.c X*** titroff/t10.c Thu Oct 23 18:29:01 1986 X--- /distribution/dwb/text/troff.d/t10.c Fri Sep 9 18:46:35 1983 X*************** X*** 1,3 X #include "tdef.h" X extern X #include "d.h" X X--- 1,4 ----- X+ /* @(#)t10.c 1.1 */ X #include "tdef.h" X extern X #include "d.h" X*************** X*** 13,22 X #include "ext.h" X int vpos = 0; /* absolute vertical position on page */ X int hpos = 0; /* ditto horizontal */ X- #ifdef PAPERSIZEREG X- int paperlength = 0; /* from DESC */ X- int paperwidth = 0; /* ditto */ X- #endif PAPERSIZEREG X X #define T_IESC 16 X X X--- 14,19 ----- X #include "ext.h" X int vpos = 0; /* absolute vertical position on page */ X int hpos = 0; /* ditto horizontal */ X X #define T_IESC 16 X X*************** X*** 71,101 X /* read in resolution, size info, font info, etc. X /* and set params X */ X- #ifdef USEFONTPATH X- extern char *fontpath; /* from t6.c */ X- extern char *followpath(); /* in local.c */ X- extern char *strcpy(); X- X- if (fontpath && *fontpath) { X- p = followpath(fontpath, "DESC.out", 0); X- if (!p || !*p) { X- #ifdef REPORTERRS X- errmsg(done3, 1, X- "Can't find DESC.out in path %s", fontpath); X- #else !REPORTERRS X- fprintf(stderr, X- "troff: can't find DESC.out in path %s", X- fontpath); X- done3(1); X- #endif REPORTERRS X- } else { X- (void) strcpy(termtab, p); X- /* fits because both termtab and X- * local.c:followpath().result are NS chars long, X- * and followpath checks X- */ X- } X- } else { X strcat(termtab, "/dev"); X strcat(termtab, devname); X strcat(termtab, "/DESC.out"); X X--- 68,73 ----- X /* read in resolution, size info, font info, etc. X /* and set params X */ X strcat(termtab, "/dev"); X strcat(termtab, devname); X strcat(termtab, "/DESC.out"); /* makes "..../devXXX/DESC.out" */ X*************** X*** 98,108 X } else { X strcat(termtab, "/dev"); X strcat(termtab, devname); X- strcat(termtab, "/DESC.out"); X- } X- #else !USEFONTPATH X- strcat(termtab, "/dev"); X- strcat(termtab, devname); X strcat(termtab, "/DESC.out"); /* makes "..../devXXX/DESC.out" */ X #endif USEFONTPATH X if ((fin = open(termtab, 0)) < 0) { X X--- 70,75 ----- X */ X strcat(termtab, "/dev"); X strcat(termtab, devname); X strcat(termtab, "/DESC.out"); /* makes "..../devXXX/DESC.out" */ X if ((fin = open(termtab, 0)) < 0) { X fprintf(stderr, "troff: can't open tables for %s\n", termtab); X*************** X*** 104,110 X strcat(termtab, "/dev"); X strcat(termtab, devname); X strcat(termtab, "/DESC.out"); /* makes "..../devXXX/DESC.out" */ X- #endif USEFONTPATH X if ((fin = open(termtab, 0)) < 0) { X #ifdef REPORTERRS X errmsg(done3, 1, "can't open %s (table for device %s)", termtab, devname); X X--- 71,76 ----- X strcat(termtab, "/dev"); X strcat(termtab, devname); X strcat(termtab, "/DESC.out"); /* makes "..../devXXX/DESC.out" */ X if ((fin = open(termtab, 0)) < 0) { X fprintf(stderr, "troff: can't open tables for %s\n", termtab); X done3(1); X*************** X*** 106,114 X strcat(termtab, "/DESC.out"); /* makes "..../devXXX/DESC.out" */ X #endif USEFONTPATH X if ((fin = open(termtab, 0)) < 0) { X- #ifdef REPORTERRS X- errmsg(done3, 1, "can't open %s (table for device %s)", termtab, devname); X- #else !REPORTERRS X fprintf(stderr, "troff: can't open tables for %s\n", termtab); X done3(1); X #endif REPORTERRS X X--- 72,77 ----- X strcat(termtab, devname); X strcat(termtab, "/DESC.out"); /* makes "..../devXXX/DESC.out" */ X if ((fin = open(termtab, 0)) < 0) { X fprintf(stderr, "troff: can't open tables for %s\n", termtab); X done3(1); X } X*************** X*** 111,117 X #else !REPORTERRS X fprintf(stderr, "troff: can't open tables for %s\n", termtab); X done3(1); X- #endif REPORTERRS X } X #ifndef DMBTEST X if (read(fin, &dev, sizeof(struct dev )) != sizeof (struct dev)) { X X--- 74,79 ----- X if ((fin = open(termtab, 0)) < 0) { X fprintf(stderr, "troff: can't open tables for %s\n", termtab); X done3(1); X } X read(fin, &dev, sizeof(struct dev )); X Inch = dev.res; X*************** X*** 113,128 X done3(1); X #endif REPORTERRS X } X- #ifndef DMBTEST X- if (read(fin, &dev, sizeof(struct dev )) != sizeof (struct dev)) { X- #ifdef REPORTERRS X- errmsg(done3, 1, "can't read in device structure (%d bytes)", sizeof (struct dev)); X- #else !REPORTERRS X- fprintf(stderr, "troff: can't read in device structure\n"); X- done3(1); X- #endif REPORTERRS X- } X- #else DMBTEST X read(fin, &dev, sizeof(struct dev )); X #endif DMBTEST X Inch = dev.res; X X--- 75,80 ----- X fprintf(stderr, "troff: can't open tables for %s\n", termtab); X done3(1); X } X read(fin, &dev, sizeof(struct dev )); X Inch = dev.res; X Hor = dev.hor; X*************** X*** 124,130 X } X #else DMBTEST X read(fin, &dev, sizeof(struct dev )); X- #endif DMBTEST X Inch = dev.res; X Hor = dev.hor; X Vert = dev.vert; X X--- 76,81 ----- X done3(1); X } X read(fin, &dev, sizeof(struct dev )); X Inch = dev.res; X Hor = dev.hor; X Vert = dev.vert; X*************** X*** 130,150 X Vert = dev.vert; X Unitwidth = dev.unitwidth; X nfonts = dev.nfonts; X- #ifdef CHECKNFONTS X- if (nfonts > NFONT) { X- #ifdef REPORTERRS X- errmsg(done3, 2, "too many pre-loaded fonts (%d, max %d); check DESC & makedev.c", nfonts, NFONT); X- /* should be done3 rather than edone, as we don't want to X- * continue. I was wrong when I put the CHECKNFONTS in, by X- * virtue of cribbing from bwk... X- * - req X- */ X- #else !REPORTERRS X- fprintf(stderr, "troff: too many pre-loaded fonts (%d, max %d); check DESC & makedev.c\n", nfonts, NFONT); X- edone(04); /* is this right ?? */ X- #endif REPORTERRS X- } X- #endif CHECKNFONTS X nsizes = dev.nsizes; X nchtab = dev.nchtab; X #ifdef PAPERSIZEREG X X--- 81,86 ----- X Vert = dev.vert; X Unitwidth = dev.unitwidth; X nfonts = dev.nfonts; X nsizes = dev.nsizes; X nchtab = dev.nchtab; X filebase = setbrk(dev.filesize + 2*EXTRAFONT); /* enough room for whole file */ X*************** X*** 147,159 X #endif CHECKNFONTS X nsizes = dev.nsizes; X nchtab = dev.nchtab; X- #ifdef PAPERSIZEREG X- paperlength = dev.paperlength; X- paperwidth = dev.paperwidth; X- #endif PAPERSIZEREG X- #ifdef DESCHASNAME X- (void) strncpy(devname, dev.dname, sizeof(dev.dname) - 1); X- #endif DESCHASNAME X filebase = setbrk(dev.filesize + 2*EXTRAFONT); /* enough room for whole file */ X #ifdef REPORTERRS X /* Read in pre-loaded fonts and gunk all at once */ X X--- 83,88 ----- X nfonts = dev.nfonts; X nsizes = dev.nsizes; X nchtab = dev.nchtab; X filebase = setbrk(dev.filesize + 2*EXTRAFONT); /* enough room for whole file */ X read(fin, filebase, dev.filesize); /* all at once */ X pstab = (short *) filebase; X*************** X*** 155,166 X (void) strncpy(devname, dev.dname, sizeof(dev.dname) - 1); X #endif DESCHASNAME X filebase = setbrk(dev.filesize + 2*EXTRAFONT); /* enough room for whole file */ X- #ifdef REPORTERRS X- /* Read in pre-loaded fonts and gunk all at once */ X- if (read(fin, filebase, dev.filesize) != dev.filesize) { X- errmsg(done3, 3, "Internal error: Failed to read %d bytes from %s at __FILE__:__LINE__", termtab, dev.filesize); X- } X- #else !REPORTERRS X read(fin, filebase, dev.filesize); /* all at once */ X #endif REPORTERRS X pstab = (short *) filebase; X X--- 84,89 ----- X nsizes = dev.nsizes; X nchtab = dev.nchtab; X filebase = setbrk(dev.filesize + 2*EXTRAFONT); /* enough room for whole file */ X read(fin, filebase, dev.filesize); /* all at once */ X pstab = (short *) filebase; X chtab = pstab + nsizes + 1; X*************** X*** 162,168 X } X #else !REPORTERRS X read(fin, filebase, dev.filesize); /* all at once */ X- #endif REPORTERRS X pstab = (short *) filebase; X chtab = pstab + nsizes + 1; X chname = (char *) (chtab + dev.nchtab); X X--- 85,90 ----- X nchtab = dev.nchtab; X filebase = setbrk(dev.filesize + 2*EXTRAFONT); /* enough room for whole file */ X read(fin, filebase, dev.filesize); /* all at once */ X pstab = (short *) filebase; X chtab = pstab + nsizes + 1; X chname = (char *) (chtab + dev.nchtab); X*************** X*** 218,230 X */ X } X X- #ifdef COMMENT X- /* Really, all of this DESC.out stuff isn't done properly at all. X- * The link between special names in troff & the post-processors is an X- * almighty hack. But at least it works. X- * -req X- */ X- #endif COMMENT X specnames() X { X static struct { X X--- 140,145 ----- X */ X } X X specnames() X { X static struct { X*************** X*** 252,263 X }; X int i; X X- #ifdef COMMENT X- /* could moan about not having important characters here, perhaps. X- * but that's better left to makedev (which doesn't do it either) X- *- req X- */ X- #endif COMMENT X for (i = 0; spnames[i].n; i++) X *spnames[i].n = findch(spnames[i].v); X } X X--- 167,172 ----- X }; X int i; X X for (i = 0; spnames[i].n; i++) X *spnames[i].n = findch(spnames[i].v); X } X*************** X*** 445,454 X vpos += dy + dy2; X break; X case DRAWWIG: /* wiggly line */ X- #ifdef GREMLIN X- case DRAWGREM: /* gremlin - do both in one switch... */ X- fprintf(ptid, "D%c %d %d", cbits(pi[1]), dx, dy); X- #else !GREMLIN X fprintf(ptid, "D%c %d %d", DRAWWIG, dx, dy); X #endif GREMLIN X w = 0; X X--- 354,359 ----- X vpos += dy + dy2; X break; X case DRAWWIG: /* wiggly line */ X fprintf(ptid, "D%c %d %d", DRAWWIG, dx, dy); X w = 0; X hpos += dx; X*************** X*** 450,456 X fprintf(ptid, "D%c %d %d", cbits(pi[1]), dx, dy); X #else !GREMLIN X fprintf(ptid, "D%c %d %d", DRAWWIG, dx, dy); X- #endif GREMLIN X w = 0; X hpos += dx; X vpos += dy; X X--- 355,360 ----- X break; X case DRAWWIG: /* wiggly line */ X fprintf(ptid, "D%c %d %d", DRAWWIG, dx, dy); X w = 0; X hpos += dx; X vpos += dy; X*************** X*** 454,465 X w = 0; X hpos += dx; X vpos += dy; X- #ifdef COMMENT X- /* no check for overflow here, but probably X- * OK because setdraw() checks. X- * - req X- */ X- #endif COMMENT X for (n = 5; cbits(pi[n]) != '.'; n += 2) { X dx = absmot(pi[n]); X if (isnmot(pi[n])) X X--- 358,363 ----- X w = 0; X hpos += dx; X vpos += dy; X for (n = 5; cbits(pi[n]) != '.'; n += 2) { X dx = absmot(pi[n]); X if (isnmot(pi[n])) X*************** X*** 473,490 X } X fprintf(ptid, "\n"); X break; X- #ifdef GREMLIN X- case DRAWTHICK: /* line thickness */ X- case DRAWLSTYLE: /* line style mask */ X- fprintf(ptid, "D%c %d\n", dx); X- break; X- #endif GREMLIN X- #ifdef REPORTERRS X- /* a warning is printed by setdraw, so we don't need one X- * here. X- * - req X- */ X- #endif REPORTERRS X } X #ifdef MOVEAFTERDRAW X /* tell the post-processor where we are... */ X X--- 371,376 ----- X } X fprintf(ptid, "\n"); X break; X } X for (n = 3; cbits(pi[n]) != '.'; n++) X ; X*************** X*** 486,495 X */ X #endif REPORTERRS X } X- #ifdef MOVEAFTERDRAW X- /* tell the post-processor where we are... */ X- fprintf(ptid, "H%d\nV%d\n", hpos, vpos); X- #endif MOVEAFTERDRAW X for (n = 3; cbits(pi[n]) != '.'; n++) X ; X outsize = n + 1; X X--- 372,377 ----- X fprintf(ptid, "\n"); X break; X } X for (n = 3; cbits(pi[n]) != '.'; n++) X ; X outsize = n + 1; X*************** X*** 584,592 X return; X flusho(); X fprintf(ptid, "p%d\n", n); /* new page */ X- #ifdef ROTATEPAGE X- ptpangle(); /* rotated page angle, local .c --- req */ X- #endif ROTATEPAGE X ptps(); X ptfont(); X } X X--- 466,471 ----- X return; X flusho(); X fprintf(ptid, "p%d\n", n); /* new page */ X ptps(); X ptfont(); X } Xdiff -rbc titroff/t6.c /distribution/dwb/text/troff.d/t6.c X*** titroff/t6.c Wed Nov 19 21:31:41 1986 X--- /distribution/dwb/text/troff.d/t6.c Fri Sep 9 18:46:43 1983 X*************** X*** 1,3 X #include "tdef.h" X extern X #include "d.h" X X--- 1,4 ----- X+ /* @(#)t6.c 1.2 */ X #include "tdef.h" X extern X #include "d.h" X*************** X*** 23,33 X int bdtab[NFONT+1]; X int sbold = 0; X X- #ifdef COMMENT X- /* width() gets the width of drawing functions wrong. X- * - req X- */ X- #endif COMMENT X width(j) X tchar j; X { X X--- 24,29 ----- X int bdtab[NFONT+1]; X int sbold = 0; X X width(j) X tchar j; X { X*************** X*** 47,62 X k = -widthp; X goto rtn; X } X- #ifdef WIDTHOFDRAWFIX X- if (i == DRAW) { X- /* work out the width of the drawing function... X- * - req X- */ X- /* unfortunately, we can't do this, as we don't have X- * enough information... X- */ X- } X- #endif WIDTHOFDRAWFIX X if (i == PRESC) X i = eschar; X else if (i == ohc || iscontrol(i)) X X--- 43,48 ----- X k = -widthp; X goto rtn; X } X if (i == PRESC) X i = eschar; X else if (i == ohc || iscontrol(i)) X*************** X*** 190,198 X extern int nchtab; X X s = temp; X- #ifdef COMMENT X- /* should use getrq() here, but that returns a tchar */ X- #endif COMMENT X if ((*s++ = getach()) == 0 || (*s++ = getach()) == 0) X #ifdef REPORTERRS X { X X--- 176,181 ----- X extern int nchtab; X X s = temp; X if ((*s++ = getach()) == 0 || (*s++ = getach()) == 0) X return(0); X *s = '\0'; X*************** X*** 194,203 X /* should use getrq() here, but that returns a tchar */ X #endif COMMENT X if ((*s++ = getach()) == 0 || (*s++ = getach()) == 0) X- #ifdef REPORTERRS X- { X- errmsg(EWARN, "\\(xx -- need 2 characters after (, only got %d", X- s - temp); X return(0); X } X #else !REPORTERRS X X--- 177,182 ----- X X s = temp; X if ((*s++ = getach()) == 0 || (*s++ = getach()) == 0) X return(0); X *s = '\0'; X for (j = 0; j < nchtab; j++) X*************** X*** 199,208 X errmsg(EWARN, "\\(xx -- need 2 characters after (, only got %d", X s - temp); X return(0); X- } X- #else !REPORTERRS X- return(0); X- #endif REPORTERRS X *s = '\0'; X for (j = 0; j < nchtab; j++) X if (strcmp(&chname[chtab[j]], temp) == 0) X X--- 178,183 ----- X s = temp; X if ((*s++ = getach()) == 0 || (*s++ = getach()) == 0) X return(0); X *s = '\0'; X for (j = 0; j < nchtab; j++) X if (strcmp(&chname[chtab[j]], temp) == 0) X*************** X*** 207,215 X for (j = 0; j < nchtab; j++) X if (strcmp(&chname[chtab[j]], temp) == 0) X return(j + 128 | chbits); X- #ifdef REPORTERRS X- errmsg(EWARN, "Special character \\(%s doesn't exist", s); X- #endif REPORTERRS X return(0); X } X X X--- 182,187 ----- X for (j = 0; j < nchtab; j++) X if (strcmp(&chname[chtab[j]], temp) == 0) X return(j + 128 | chbits); X return(0); X } X X*************** X*** 226,235 X { X register k; X X- #ifdef RIBSFIX X- /* if S has been unmounted (overwritten), smnt set to zero... */ X- if ((k = i - '0') >= 0 && k <= nfonts && (smnt && k != smnt)) X- #else !RIBSFIX X if ((k = i - '0') >= 0 && k <= nfonts && k < smnt) X #endif RIBSFIX X return(k); X X--- 198,203 ----- X { X register k; X X if ((k = i - '0') >= 0 && k <= nfonts && k < smnt) X return(k); X for (k = 0; fontlab[k] != i; k++) X*************** X*** 231,237 X if ((k = i - '0') >= 0 && k <= nfonts && (smnt && k != smnt)) X #else !RIBSFIX X if ((k = i - '0') >= 0 && k <= nfonts && k < smnt) X- #endif RIBSFIX X return(k); X for (k = 0; fontlab[k] != i; k++) X if (k > nfonts) X X--- 199,204 ----- X register k; X X if ((k = i - '0') >= 0 && k <= nfonts && k < smnt) X return(k); X for (k = 0; fontlab[k] != i; k++) X if (k > nfonts) X*************** X*** 251,265 X i = inumb(&apts); /* this is a disaster for fractional point sizes */ X noscale = 0; X if (nonumb) X- #ifdef REPORTERRS X- { X- tchar nextc = getch(); X- X- if (cbits(nextc) == '\n') { X- errmsg(".ps: newline unexpected"); X- } else { X- errmsg(EWARN, ".ps: bad expression from \"%s\" ignored", tchartos(nextc)); X- } X return; X } X #else !REPORTERRS X X--- 218,223 ----- X i = inumb(&apts); /* this is a disaster for fractional point sizes */ X noscale = 0; X if (nonumb) X return; X } X casps1(i); X*************** X*** 262,271 X } X return; X } X- #else !REPORTERRS X- return; X- #endif REPORTERRS X- } X casps1(i); X } X X X--- 220,225 ----- X if (nonumb) X return; X } X casps1(i); X } X X*************** X*** 283,294 X } X X X- #ifdef COMMENT X- /* Should we moan about unfound sizes? Plethora of moans from eqn, I expect! X- * As the effect is already documented, let's not. X- * - req X- */ X- #endif COMMENT X findps(i) X register int i; X { X X--- 237,242 ----- X } X X X findps(i) X register int i; X { X*************** X*** 294,305 X { X register j, k; X X! for (j = 0; i > (k = pstab[j]); j++) X! if (!k) { X! k = pstab[--j]; X! break; X! } X! return(k); X } X X X X--- 242,254 ----- X { X register j, k; X X! for (j=k=0 ; pstab[j]!=0 ; j++) X! if ( abs(pstab[j]-i) < abs(pstab[k]-i) ) X! k = j ; X! X! if ( pstab[k] != i ) X! fprintf(stderr,"troff: asked for size %d, got %d\n",i,pstab[k]) ; X! return(pstab[k]); X } X X X*************** X*** 320,332 X } X X X- #ifdef COMMENT X- /* should really check here more carefully. It would be nice to warn the X- * user that \s106 is a ten-point "6", or that \s47 is a four-point 7. X- * I will if I get a few more minutes tonight. X- * - req X- */ X- #endif COMMENT X setps() X { X register i, j; X X--- 269,274 ----- X } X X X setps() X { X register i, j; X*************** X*** 349,366 X i = 10 * i + j; X ch = 0; X } X- #ifdef REPORTERRS X- /* warn if the next input char is a digit... */ X- if (i >= 3 || (j >= 0 && j <= 9)) { /* where's isdigit() !? */ X- j = cbits(ch = getch()) - '0'; X- } X- if ((reporterrs & LERR_PSNUMWARN) && j >= 0 && j <= 9) { X- /* next char is a digit. Probably an error! */ X- /* we know it's a digit, so no tchartos() needed */ X- errmsg(EWARN, "\\s%d%c is a %d-point %c", X- i, j + '0', i, j + '0'); X- } X- #endif REPORTERRS X casps1(i); X } X #ifdef REPORTERRS X X--- 291,296 ----- X i = 10 * i + j; X ch = 0; X } X casps1(i); X } X } X*************** X*** 363,376 X #endif REPORTERRS X casps1(i); X } X- #ifdef REPORTERRS X- else X- { X- /* error -- ignored */ X- i += '0'; X- errmsg(EWARN, "\\s%s ignored%s", tchartos(i), (cbits(i) == 'P') ? " (use \\s0 for previous size)" : " "); X- } X- #endif REPORTERRS X } X X X X--- 293,298 ----- X } X casps1(i); X } X } X X X*************** X*** 379,396 X int n; X tchar c; X X- #ifdef REPORTERRS X- tchar delim1, delim2; X- X- if (cbits((delim1 = getch())) == '\n') { X- errmsg(EWARN, "\\H: newline unexpected"); X- return; X- } else if (ismot(delim1)) { X- errmsg(EWARN, "\\H: Unsuitable delimiter \"%s\"", X- tchartos(delim1)); X- return; X- } X- #else !REPORTERRS X getch(); X #endif REPORTERRS X n = inumb(&apts); X X--- 301,306 ----- X int n; X tchar c; X X getch(); X n = inumb(&apts); X getch(); X*************** X*** 392,398 X } X #else !REPORTERRS X getch(); X- #endif REPORTERRS X n = inumb(&apts); X #ifdef REPORTERRS X if (cbits(delim2 = getch()) != cbits(delim1)) { X X--- 302,307 ----- X tchar c; X X getch(); X n = inumb(&apts); X getch(); X if (n == 0 || nonumb) X*************** X*** 394,408 X getch(); X #endif REPORTERRS X n = inumb(&apts); X- #ifdef REPORTERRS X- if (cbits(delim2 = getch()) != cbits(delim1)) { X- if (cbits(delim2) == '\n') { X- errmsg(EWARN, "\\H: expected trailing delim \"%s\", found newline", tchartos(delim1)); X- } else { X- errmsg(EWARN, "\\H: expected close delim \"%s\", found \"%s\"", tchartos(delim1), tchartos(delim2)); X- } X- } X- #else !REPORTERRS X getch(); X #endif REPORTERRS X if (n == 0 || nonumb) X X--- 303,308 ----- X X getch(); X n = inumb(&apts); X getch(); X if (n == 0 || nonumb) X n = apts; /* does this work? */ X*************** X*** 404,410 X } X #else !REPORTERRS X getch(); X- #endif REPORTERRS X if (n == 0 || nonumb) X n = apts; /* does this work? */ X c = CHARHT; X X--- 304,309 ----- X getch(); X n = inumb(&apts); X getch(); X if (n == 0 || nonumb) X n = apts; /* does this work? */ X c = CHARHT; X*************** X*** 418,431 X int n; X tchar c; X X- #ifdef REPORTERRS X- tchar delim1, delim2; X- X- if (cbits(delim1 = getch()) == '\n') { X- errmsg(EWARN, "\\S: newline unexpected"); X- return; X- } X- #else !REPORTERRS X getch(); X #endif REPORTERRS X n = 0; X X--- 317,322 ----- X int n; X tchar c; X X getch(); X n = 0; X n = inumb(&n); X*************** X*** 427,433 X } X #else !REPORTERRS X getch(); X- #endif REPORTERRS X n = 0; X n = inumb(&n); X #ifdef REPORTERRS X X--- 318,323 ----- X tchar c; X X getch(); X n = 0; X n = inumb(&n); X getch(); X*************** X*** 430,444 X #endif REPORTERRS X n = 0; X n = inumb(&n); X- #ifdef REPORTERRS X- if (cbits(delim2 = getch()) != cbits(delim1)) { X- if (cbits(delim2) == '\n') { X- errmsg(EWARN, "\\S: expected trailing delim \"%s\", found newline", tchartos(delim1)); X- } else { X- errmsg(EWARN, "\\S: expected close delim \"%s\", found \"%s\"", tchartos(delim1), tchartos(delim2)); X- } X- } X- #else !REPORTERRS X getch(); X #endif REPORTERRS X if (nonumb) X X--- 320,325 ----- X getch(); X n = 0; X n = inumb(&n); X getch(); X if (nonumb) X n = 0; X*************** X*** 440,446 X } X #else !REPORTERRS X getch(); X- #endif REPORTERRS X if (nonumb) X n = 0; X c = SLANT; X X--- 321,326 ----- X n = 0; X n = inumb(&n); X getch(); X if (nonumb) X n = 0; X c = SLANT; X*************** X*** 470,501 X j = font1; X goto s0; X } X- #ifdef RIBSFIX X- /* R I B & S are no longer names of specific fonts; X- * they're synonyms for given font positions. This was always how most X- * people thought of them in any case, so it's easier to change it than X- * to tell them the (old) truth... X- * REQ X- */ X- switch (i) { X- case 'R': /* Relative Roman */ X- i = '1'; X- break; X- case 'I': /* Relative Italic */ X- i = '2'; X- break; X- case 'B': /* Relative Bold */ X- i = '3'; X- break; X- case 'X': /* Bold Italic (ugh, 2-char names...) */ X- i = '4'; X- break; X- case 'S': /* Special (meaningless) */ X- if (smnt) X- return; /* can't change to Special font */ X- /* default: fall through... */ X- } X- #else !RIBSFIX X if (i == 'S' || i == '0') X return; X #endif RIBSFIX X X--- 350,355 ----- X j = font1; X goto s0; X } X if (i == 'S' || i == '0') X return; X if ((j = findft(i)) == -1) X*************** X*** 498,504 X #else !RIBSFIX X if (i == 'S' || i == '0') X return; X- #endif RIBSFIX X if ((j = findft(i)) == -1) X if ((j = setfp(0, i, 0)) == -1) /* try to put it in position 0 */ X return; X X--- 352,357 ----- X } X if (i == 'S' || i == '0') X return; X if ((j = findft(i)) == -1) X if ((j = setfp(0, i, 0)) == -1) /* try to put it in position 0 */ X return; X*************** X*** 519,527 X X base = v.st = v.sb = wid = v.ct = 0; X if (ismot(i = getch())) X- #ifdef REPORTERRS X- { X- errmsg(EWARN, "\\w: unsuitable delimiter \"%s\"", tchartos(i)); X return; X } X #else !REPORTERRS X X--- 372,377 ----- X X base = v.st = v.sb = wid = v.ct = 0; X if (ismot(i = getch())) X return; X delim = cbits(i); X savhp = v.hp; X*************** X*** 523,532 X { X errmsg(EWARN, "\\w: unsuitable delimiter \"%s\"", tchartos(i)); X return; X- } X- #else !REPORTERRS X- return; X- #endif REPORTERRS X delim = cbits(i); X savhp = v.hp; X savpinchar = pinchar; /* XXX */ X X--- 373,378 ----- X base = v.st = v.sb = wid = v.ct = 0; X if (ismot(i = getch())) X return; X delim = cbits(i); X savhp = v.hp; X savpinchar = pinchar; /* XXX */ X*************** X*** 559,569 X if ((k = base + em) > v.st) X v.st = k; X } X- #ifdef REPORTERRS X- if (cbits(i) != delim) { X- errmsg(EWARN, "\\w: no trailing delimiter found to match \"%s\"", tchartos(i)); X- } X- #endif REPORTERRS X nform = 0; X setn1(wid); X v.hp = savhp; X X--- 405,410 ----- X if ((k = base + em) > v.st) X v.st = k; X } X nform = 0; X setn1(wid); X v.hp = savhp; X*************** X*** 602,616 X register short j, n; X tchar i; X X- #ifdef REPORTERRS X- tchar delim1, delim2; X- X- if ((delim1 = cbits(getch())) == '\n') { X- errmsg(EWARN, "\\h: newline unexpected"); X- return; X- } else if (ismot(delim1)) { X- errmsg(EWARN, "\\h: \"%s\" unsuitable delim", tchartos(delim1)); X- } X j = HOR; X #else !REPORTERRS X j = HOR; X X--- 443,448 ----- X register short j, n; X tchar i; X X j = HOR; X getch(); /*eat delim*/ X if (n = atoi()) { X*************** X*** 612,619 X errmsg(EWARN, "\\h: \"%s\" unsuitable delim", tchartos(delim1)); X } X j = HOR; X- #else !REPORTERRS X- j = HOR; X getch(); /*eat delim*/ X #endif REPORTERRS X if (n = atoi()) { X X--- 444,449 ----- X tchar i; X X j = HOR; X getch(); /*eat delim*/ X if (n = atoi()) { X if (vflag) X*************** X*** 615,621 X #else !REPORTERRS X j = HOR; X getch(); /*eat delim*/ X- #endif REPORTERRS X if (n = atoi()) { X if (vflag) X j = VERT; X X--- 445,450 ----- X X j = HOR; X getch(); /*eat delim*/ X if (n = atoi()) { X if (vflag) X j = VERT; X*************** X*** 622,636 X i = makem(quant(n, j)); X } else X i = 0; X- #ifdef REPORTERRS X- if ((delim2 = cbits(getch())) != delim1) { X- if (delim2 == '\n') { X- errmsg(EWARN, "\\h: expected trailing delim \"%s\", found newline", tchartos(delim1)); X- } else { X- errmsg(EWARN, "\\h: expected close delim \"%s\", found \"%s\"", tchartos(delim1), tchartos(delim2)); X- } X- } X- #else !REPORTERRS X getch(); X #endif REPORTERRS X vflag = 0; X X--- 451,456 ----- X i = makem(quant(n, j)); X } else X i = 0; X getch(); X vflag = 0; X dfact = 1; X*************** X*** 632,638 X } X #else !REPORTERRS X getch(); X- #endif REPORTERRS X vflag = 0; X dfact = 1; X return(i); X X--- 452,457 ----- X } else X i = 0; X getch(); X vflag = 0; X dfact = 1; X return(i); X*************** X*** 725,733 X X skip(); X if ((i = cbits(getch()) - '0') <= 0 || i > nfonts) X- #ifdef REPORTERRS X- errmsg(EWARN, "fp %d: font position must be in range 1..%d", i, nfonts); X- #else !REPORTERRS X fprintf(stderr, "troff: fp: bad font position %d\n", i); X #endif REPORTERRS X else if (skip() || !(j = getrq())) X X--- 544,549 ----- X X skip(); X if ((i = cbits(getch()) - '0') <= 0 || i > nfonts) X fprintf(stderr, "troff: fp: bad font position %d\n", i); X else if (skip() || !(j = getrq())) X fprintf(stderr, "troff: fp: no font name\n"); X*************** X*** 729,735 X errmsg(EWARN, "fp %d: font position must be in range 1..%d", i, nfonts); X #else !REPORTERRS X fprintf(stderr, "troff: fp: bad font position %d\n", i); X- #endif REPORTERRS X else if (skip() || !(j = getrq())) X #ifdef REPORTERRS X errmsg(EWARN, ".fp %d without font name ignored", i); X X--- 545,550 ----- X skip(); X if ((i = cbits(getch()) - '0') <= 0 || i > nfonts) X fprintf(stderr, "troff: fp: bad font position %d\n", i); X else if (skip() || !(j = getrq())) X fprintf(stderr, "troff: fp: no font name\n"); X else { X*************** X*** 731,739 X fprintf(stderr, "troff: fp: bad font position %d\n", i); X #endif REPORTERRS X else if (skip() || !(j = getrq())) X- #ifdef REPORTERRS X- errmsg(EWARN, ".fp %d without font name ignored", i); X- #else !REPORTERRS X fprintf(stderr, "troff: fp: no font name\n"); X #endif REPORTERRS X else { X X--- 546,551 ----- X if ((i = cbits(getch()) - '0') <= 0 || i > nfonts) X fprintf(stderr, "troff: fp: bad font position %d\n", i); X else if (skip() || !(j = getrq())) X fprintf(stderr, "troff: fp: no font name\n"); X else { X skip(); X*************** X*** 735,741 X errmsg(EWARN, ".fp %d without font name ignored", i); X #else !REPORTERRS X fprintf(stderr, "troff: fp: no font name\n"); X- #endif REPORTERRS X else { X skip(); X setfp(i, j, 0); X X--- 547,552 ----- X fprintf(stderr, "troff: fp: bad font position %d\n", i); X else if (skip() || !(j = getrq())) X fprintf(stderr, "troff: fp: no font name\n"); X else { X skip(); X setfp(i, j, 0); X*************** X*** 741,750 X setfp(i, j, 0); X } X } X- #ifdef USEFONTPATH X- char *fontpath = 0; X- extern char *followpath(); X- #endif USEFONTPATH X X setfp(pos, f, d) /* mount font f at position pos[0...nfonts] */ X int pos, f; X X--- 552,557 ----- X setfp(i, j, 0); X } X } X X setfp(pos, f, d) /* mount font f at position pos[0...nfonts] */ X int pos, f; X*************** X*** 752,764 X { X register i, j, k; X int n; X- #ifdef COMMENT X- /* the 10 in shortname[10] is to match up with the 10 in dev.h. X- * but it doesn't really matter, as the field is effectively X- * unused. X- * - req X- */ X- #endif COMMENT X char longname[NS], shortname[10], *p; X extern int nchtab; X X X--- 559,564 ----- X { X register i, j, k; X int n; X char longname[NS], shortname[10], *p; X extern int nchtab; X X*************** X*** 765,772 X shortname[0] = f & BMASK; X shortname[1] = f >> BYTE; X shortname[2] = '\0'; X- #ifdef USEFONTPATH X- if (!fontpath || !*fontpath) { X if (d == 0) /* normal case */ X sprintf(longname, "%s/dev%s/%s.out", fontfile, devname, shortname); X else /* 3rd argument is a directory for the font */ X X--- 565,570 ----- X shortname[0] = f & BMASK; X shortname[1] = f >> BYTE; X shortname[2] = '\0'; X if (d == 0) /* normal case */ X sprintf(longname, "%s/dev%s/%s.out", fontfile, devname, shortname); X else /* 3rd argument is a directory for the font */ X*************** X*** 772,821 X else /* 3rd argument is a directory for the font */ X sprintf(longname, "%s/%s.out", fontfile, shortname); X if ((k = open(longname, 0)) < 0) { X- if ((k = open(longname, 0)) < 0) { X- #ifdef REPORTERRS X- errmsg(EWARN, "No file \"%s\" for font %s", X- longname,shortname); X- #else !REPORTERRS X- fprintf(stderr, "troff: Can't open %s\n", X- longname); X- #endif REPORTERRS X- return(-1); X- } X- } X- } else { X- /* march along fontpath looking for ':', which delimits X- * entries; each entry is in turn prepended to %s.out. X- * The default fontfile is made in n1.c:main() X- * and is /usr/lib/troff/descs/devXXX, where XXX is from -T X- * - req X- */ X- char *p; X- X- sprintf(longname, "%s.out", shortname); X- /* the trailing zero means we need a readable file */ X- if ((p = followpath(fontpath, longname, 0)) == (char *) 0 || X- (k = open(p, 0)) < 0) { X- #ifdef REPORTERRS X- errmsg(EWARN, X- "Can't find \"%s\" for font %s in path \"%s\"", X- longname, shortname, fontfile); X- #else !REPORTERRS X- fprintf(stderr, "troff: can't find font file %s.out in path \"%s\"", shortname, fontfile); X- #endif REPORTERRS X- return(-1); X- } X- } X- /* now have k as an open file */ X- #else !USEFONTPATH X- if (d == 0) /* normal case */ X- sprintf(longname, "%s/dev%s/%s.out", fontfile, devname, shortname); X- else /* 3rd argument is a directory for the font */ X- sprintf(longname, "%s/%s.out", fontfile, shortname); X- if ((k = open(longname, 0)) < 0) { X- #ifdef REPORTERRS X- errmsg(EWARN, "No file \"%s\" for font %s", longname,shortname); X- #else !REPORTERRS X fprintf(stderr, "troff: Can't open %s\n", longname); X #endif REPORTERRS X return(-1); X X--- 570,575 ----- X else /* 3rd argument is a directory for the font */ X sprintf(longname, "%s/%s.out", fontfile, shortname); X if ((k = open(longname, 0)) < 0) { X fprintf(stderr, "troff: Can't open %s\n", longname); X return(-1); X } X*************** X*** 817,823 X errmsg(EWARN, "No file \"%s\" for font %s", longname,shortname); X #else !REPORTERRS X fprintf(stderr, "troff: Can't open %s\n", longname); X- #endif REPORTERRS X return(-1); X } X #endif USEFONTPATH X X--- 571,576 ----- X sprintf(longname, "%s/%s.out", fontfile, shortname); X if ((k = open(longname, 0)) < 0) { X fprintf(stderr, "troff: Can't open %s\n", longname); X return(-1); X } X n = fontbase[pos]->nwfont & BMASK; X*************** X*** 820,826 X #endif REPORTERRS X return(-1); X } X- #endif USEFONTPATH X n = fontbase[pos]->nwfont & BMASK; X read(k, fontbase[pos], 3*n + nchtab + 128 - 32 + sizeof(struct font)); X kerntab[pos] = (char *) fontab[pos] + (fontbase[pos]->nwfont & BMASK); X X--- 573,578 ----- X fprintf(stderr, "troff: Can't open %s\n", longname); X return(-1); X } X n = fontbase[pos]->nwfont & BMASK; X read(k, fontbase[pos], 3*n + nchtab + 128 - 32 + sizeof(struct font)); X kerntab[pos] = (char *) fontab[pos] + (fontbase[pos]->nwfont & BMASK); X*************** X*** 827,835 X /* have to reset the fitab pointer because the width may be different */ X fitab[pos] = (char *) fontab[pos] + 3 * (fontbase[pos]->nwfont & BMASK); X if ((fontbase[pos]->nwfont & BMASK) > n) { X- #ifdef REPORTERRS X- errmsg(EWARN, "Font %s is %d bytes too big for position %d\n", shortname, fontbase[pos]->nwfont - n, pos); X- #else !REPORTERRS X fprintf(stderr, "troff: Font %s too big for position %d\n", shortname, pos); X #endif REPORTERRS X return(-1); X X--- 579,584 ----- X /* have to reset the fitab pointer because the width may be different */ X fitab[pos] = (char *) fontab[pos] + 3 * (fontbase[pos]->nwfont & BMASK); X if ((fontbase[pos]->nwfont & BMASK) > n) { X fprintf(stderr, "troff: Font %s too big for position %d\n", shortname, pos); X return(-1); X } X*************** X*** 831,837 X errmsg(EWARN, "Font %s is %d bytes too big for position %d\n", shortname, fontbase[pos]->nwfont - n, pos); X #else !REPORTERRS X fprintf(stderr, "troff: Font %s too big for position %d\n", shortname, pos); X- #endif REPORTERRS X return(-1); X } X fontbase[pos]->nwfont = n; /* so can load a larger one again later */ X X--- 580,585 ----- X fitab[pos] = (char *) fontab[pos] + 3 * (fontbase[pos]->nwfont & BMASK); X if ((fontbase[pos]->nwfont & BMASK) > n) { X fprintf(stderr, "troff: Font %s too big for position %d\n", shortname, pos); X return(-1); X } X fontbase[pos]->nwfont = n; /* so can load a larger one again later */ X*************** X*** 864,888 X register i, j; X X noscale++; X- i = j; X- #ifdef REPORTERRS X- { X- int name; X- X- if (skip()) { X- errmsg(EWARN, "call to .cs with no arguments ignored"); X- goto rtn; X- } X- if (!(i = getrq())) { X- errmsg(EWARN, "call to .cs with no arguments ignored"); X- goto rtn; X- } X- if ((i = findft(name = i)) < 0) { X- errmsg(EWARN, ".cs: font %s is not mounted -- ignored", X- realname(name)); X- goto rtn; X- } X- } X skip(); X #else !REPORTERRS X skip(); X X--- 612,617 ----- X register i, j; X X noscale++; X skip(); X if (!(i = getrq()) || (i = findft(i)) < 0) X goto rtn; X*************** X*** 884,891 X } X } X skip(); X- #else !REPORTERRS X- skip(); X if (!(i = getrq()) || (i = findft(i)) < 0) X goto rtn; X skip(); X X--- 613,618 ----- X X noscale++; X skip(); X if (!(i = getrq()) || (i = findft(i)) < 0) X goto rtn; X skip(); X*************** X*** 889,895 X if (!(i = getrq()) || (i = findft(i)) < 0) X goto rtn; X skip(); X- #endif REPORTERRS X cstab[i] = atoi(); X #ifdef REPORTERRS X if (!skip()) X X--- 616,621 ----- X if (!(i = getrq()) || (i = findft(i)) < 0) X goto rtn; X skip(); X cstab[i] = atoi(); X skip(); X j = atoi(); X*************** X*** 891,898 X skip(); X #endif REPORTERRS X cstab[i] = atoi(); X! #ifdef REPORTERRS X! if (!skip()) X j = atoi(); X #endif REPORTERRS X if (nonumb) X X--- 617,623 ----- X goto rtn; X skip(); X cstab[i] = atoi(); X! skip(); X j = atoi(); X if (nonumb) X ccstab[i] = 0; X*************** X*** 894,900 X #ifdef REPORTERRS X if (!skip()) X j = atoi(); X- #endif REPORTERRS X if (nonumb) X ccstab[i] = 0; X else X X--- 619,624 ----- X cstab[i] = atoi(); X skip(); X j = atoi(); X if (nonumb) X ccstab[i] = 0; X else X*************** X*** 910,937 X X k = 0; X bd0: X- #ifdef REPORTERRS X- if (skip()) { X- errmsg(EWARN, "Call to .bd with no arguments ignored"); X- if (k) X- goto bd1; X- else X- return; X- } else if (!(i = getrq())) { X- errmsg(EWARN, ".cs: without any arguments ignored"); X- if (k) X- goto bd1; X- else X- return; X- } else if ((j = findft(i)) < 0) { X- errmsg(EWARN, "Call to .cs for unknown font %s ignored", X- realname(j)); X- if (k) X- goto bd1; X- else X- return; X- } X- #else !REPORTERRS X if (skip() || !(i = getrq()) || (j = findft(i)) == -1) { X if (k) X goto bd1; X X--- 634,639 ----- X X k = 0; X bd0: X if (skip() || !(i = getrq()) || (j = findft(i)) == -1) { X if (k) X goto bd1; X*************** X*** 938,944 X else X return; X } X- #endif REPORTERRS X if (j == smnt) { X k = smnt; X goto bd0; X X--- 640,645 ----- X else X return; X } X if (j == smnt) { X k = smnt; X goto bd0; X*************** X*** 980,995 X register i; X X noscale++; X- #ifdef REPORTERRS X- /* ignored if no args. */ X- /* That way we can distinguish between a syntax error in an expression X- * and a call to .ss without args, and only moan at the former (although X- * atoi() may moan too, of course! X- * - req X- */ X- if (skip()) X- return; X- #endif REPORTERRS X skip(); X if (i = atoi()) { X spacesz = i & 0177; X X--- 681,686 ----- X register i; X X noscale++; X skip(); X if (i = atoi()) { X spacesz = i & 0177; X*************** X*** 995,1005 X spacesz = i & 0177; X sps = width(' ' | chbits); X } X- #ifdef REPORTERRS X- else if (nonumb) { X- errmsg(EWARN, ".ss with non-numeric argument ignored"); X- } X- #endif REPORTERRS X noscale = 0; X } X X X--- 686,691 ----- X spacesz = i & 0177; X sps = width(' ' | chbits); X } X noscale = 0; X } X Xdiff -rbc titroff/ta.c /distribution/dwb/text/troff.d/ta.c X*** titroff/ta.c Wed Jan 11 10:26:33 1984 X--- /distribution/dwb/text/troff.d/ta.c Fri Sep 9 18:46:54 1983 X*************** X*** 1,3 X /* X * drive hp2621 terminal X * just to see stuff quickly. like troff -a X X--- 1,4 ----- X+ /* @(#)ta.c 1.1 */ X /* X * drive hp2621 terminal X * just to see stuff quickly. like troff -a XOnly in titroff: tags Xdiff -rbc titroff/tc.c /distribution/dwb/text/troff.d/tc.c X*** titroff/tc.c Wed Jan 11 10:26:33 1984 X--- /distribution/dwb/text/troff.d/tc.c Fri Sep 9 18:47:11 1983 X*************** X*** 1,3 X /* X * drive 4014 scope X */ X X--- 1,4 ----- X+ /* @(#)tc.c 1.2 */ X /* X * drive 4014 scope X */ X*************** X*** 99,106 X case 'T': X if (strcmp(&argv[1][2], "cat") == 0) { /* use the old one */ X if (fork() == 0) { X! execv("/usr/bin/oldtc", argv); X! fprintf(stderr, "tc: can't find oldtc\n"); X } X wait(); X exit(1); X X--- 100,107 ----- X case 'T': X if (strcmp(&argv[1][2], "cat") == 0) { /* use the old one */ X if (fork() == 0) { X! execv("/usr/bin/otc", argv); X! fprintf(stderr, "tc: can't find otc\n"); X } X wait((int *)0); X exit(1); X*************** X*** 102,108 X execv("/usr/bin/oldtc", argv); X fprintf(stderr, "tc: can't find oldtc\n"); X } X! wait(); X exit(1); X } X break; X X--- 103,109 ----- X execv("/usr/bin/otc", argv); X fprintf(stderr, "tc: can't find otc\n"); X } X! wait((int *)0); X exit(1); X } X break; X*************** X*** 120,125 X if (dbg == 0) dbg = 1; X break; X case 'c': X keepon = 1; X break; X } X X--- 121,127 ----- X if (dbg == 0) dbg = 1; X break; X case 'c': X+ case 't': X keepon = 1; X break; X } X*************** X*** 580,586 X fputs("-n go back n pages\n", stderr); X fputs("n print page n (previously printed)\n", stderr); X fputs("o... set the -o output list to ...\n", stderr); X! fputs("en n=0 -> don't erase; n=1 -> erase\n", stderr); X fputs("an sets aspect ratio to n\n", stderr); X break; X default: X X--- 582,588 ----- X fputs("-n go back n pages\n", stderr); X fputs("n print page n (previously printed)\n", stderr); X fputs("o... set the -o output list to ...\n", stderr); X! fputs("e invert state of erasing\n", stderr); X fputs("an sets aspect ratio to n\n", stderr); X break; X default: Xdiff -rbc titroff/tdef.h /distribution/dwb/text/troff.d/tdef.h X*** titroff/tdef.h Tue Nov 11 15:16:31 1986 X--- /distribution/dwb/text/troff.d/tdef.h Tue Oct 25 17:24:11 1983 X*************** X*** 1,7 X! #ifdef BSD42 X! #include <pagsiz.h> X! #define BUFSIZ BSIZE X! #endif BSD42 X #include <signal.h> X X #define MAXPTR (char *)-1 /* max value of any pointer variable */ X X--- 1,4 ----- X! /* @(#)tdef.h 1.2 */ X #include <signal.h> X X #define MAXPTR (char *)-1 /* max value of any pointer variable */ X*************** X*** 77,93 X #define DRAWELLIPSE 'e' X #define DRAWARC 'a' /* arbitrary arc */ X #define DRAWWIG '~' /* wiggly line with spline */ X- #ifdef GREMLIN X- /* Gremlin enhancements go here. But I don't know what they are yet. X- * Line thickness X- * Stipple X- * ``Gremlin'' X- * - req X- */ X- #define DRAWGREM 'g' /* gremlin [sic] */ X- #define DRAWTHICK 't' /* line thickness */ X- #define DRAWLSTYLE 's' /* line style */ X- #endif GREMLIN X X #define LEFT 020 /* \{ */ X #define RIGHT 021 /* \} */ X X--- 74,79 ----- X #define DRAWELLIPSE 'e' X #define DRAWARC 'a' /* arbitrary arc */ X #define DRAWWIG '~' /* wiggly line with spline */ X X #define LEFT 020 /* \{ */ X #define RIGHT 021 /* \} */ X*************** X*** 92,100 X #define LEFT 020 /* \{ */ X #define RIGHT 021 /* \} */ X #define FILLER 022 /* \& and similar purposes */ X- #ifdef ANYBASELINE X- #define BASESTR 023 /* \B -- text on arbitrary baseline - req */ X- #endif ANYBASELINE X #define OHC 024 /* optional hyphenation character \% */ X #define CONT 025 /* \c character */ X #define PRESC 026 /* printable escape */ X X--- 78,83 ----- X #define LEFT 020 /* \{ */ X #define RIGHT 021 /* \} */ X #define FILLER 022 /* \& and similar purposes */ X #define OHC 024 /* optional hyphenation character \% */ X #define CONT 025 /* \c character */ X #define PRESC 026 /* printable escape */ X*************** X*** 132,140 X X /* array sizes, and similar limits: */ X X- #ifdef MOREPREFONTS X- #define NFONT 40 /* maximum number of fonts (including specials) */ X- #else !MOREPREFONTS X #define NFONT 10 /* maximum number of fonts (including specials) */ X #endif MOREPREFONTS X #define EXTRAFONT 500 /* extra space for swapping a font */ X X--- 115,120 ----- X X /* array sizes, and similar limits: */ X X #define NFONT 10 /* maximum number of fonts (including specials) */ X #define EXTRAFONT 500 /* extra space for swapping a font */ X #define NN 300 /* number registers */ X*************** X*** 136,142 X #define NFONT 40 /* maximum number of fonts (including specials) */ X #else !MOREPREFONTS X #define NFONT 10 /* maximum number of fonts (including specials) */ X- #endif MOREPREFONTS X #define EXTRAFONT 500 /* extra space for swapping a font */ X #ifdef BSD42 X #ifdef VMUNIX X X--- 116,121 ----- X /* array sizes, and similar limits: */ X X #define NFONT 10 /* maximum number of fonts (including specials) */ X #define EXTRAFONT 500 /* extra space for swapping a font */ X #define NN 300 /* number registers */ X #define NNAMES 15 /* predefined reg names */ X*************** X*** 138,147 X #define NFONT 10 /* maximum number of fonts (including specials) */ X #endif MOREPREFONTS X #define EXTRAFONT 500 /* extra space for swapping a font */ X- #ifdef BSD42 X- #ifdef VMUNIX X- #define NN 528 /* number registers */ X- #else !VMUNIX X #define NN 300 /* number registers */ X #endif VMUNIX X #else !BSD42 X X--- 117,122 ----- X X #define NFONT 10 /* maximum number of fonts (including specials) */ X #define EXTRAFONT 500 /* extra space for swapping a font */ X #define NN 300 /* number registers */ X #define NNAMES 15 /* predefined reg names */ X #define NIF 15 /* if-else nesting */ X*************** X*** 143,152 X #define NN 528 /* number registers */ X #else !VMUNIX X #define NN 300 /* number registers */ X- #endif VMUNIX X- #else !BSD42 X- #define NN 300 /* number registers */ X- #endif BSD42 X #define NNAMES 15 /* predefined reg names */ X #define NIF 15 /* if-else nesting */ X #define NS 64 /* name buffer */ X X--- 118,123 ----- X #define NFONT 10 /* maximum number of fonts (including specials) */ X #define EXTRAFONT 500 /* extra space for swapping a font */ X #define NN 300 /* number registers */ X #define NNAMES 15 /* predefined reg names */ X #define NIF 15 /* if-else nesting */ X #define NS 128 /* name buffer */ X*************** X*** 149,155 X #endif BSD42 X #define NNAMES 15 /* predefined reg names */ X #define NIF 15 /* if-else nesting */ X! #define NS 64 /* name buffer */ X #define NTM 256 /* tm buffer */ X #ifdef LOTSOFENVS X #define NEV 7 /* environments */ X X--- 120,126 ----- X #define NN 300 /* number registers */ X #define NNAMES 15 /* predefined reg names */ X #define NIF 15 /* if-else nesting */ X! #define NS 128 /* name buffer */ X #define NTM 256 /* tm buffer */ X #define NEV 3 /* environments */ X #define EVLSZ 10 /* size of ev stack */ X*************** X*** 151,164 X #define NIF 15 /* if-else nesting */ X #define NS 64 /* name buffer */ X #define NTM 256 /* tm buffer */ X- #ifdef LOTSOFENVS X- #define NEV 7 /* environments */ X- /* the macro packges use .ev 0, 1, 2 X- * so this leaves 3, 4, 5, 6 X- * for the user. I'm going to make -ms use .ev 3, though, for keeps. X- * - req X- */ X- #else !LOTSOFENVS X #define NEV 3 /* environments */ X #endif LOTSOFENVS X #define EVLSZ 10 /* size of ev stack */ X X--- 122,127 ----- X #define NIF 15 /* if-else nesting */ X #define NS 128 /* name buffer */ X #define NTM 256 /* tm buffer */ X #define NEV 3 /* environments */ X #define EVLSZ 10 /* size of ev stack */ X #define DSIZE 512 /* disk sector size in chars */ X*************** X*** 160,166 X */ X #else !LOTSOFENVS X #define NEV 3 /* environments */ X- #endif LOTSOFENVS X #define EVLSZ 10 /* size of ev stack */ X #define DSIZE 512 /* disk sector size in chars */ X X X--- 123,128 ----- X #define NS 128 /* name buffer */ X #define NTM 256 /* tm buffer */ X #define NEV 3 /* environments */ X #define EVLSZ 10 /* size of ev stack */ X #define DSIZE 512 /* disk sector size in chars */ X X*************** X*** 172,179 X no harm is done as long as it's big enough. X */ X X- #ifdef WARWICK X- /* if it's wrong, let's fix it ! */ X #define EVUSED \ X (59 * sizeof(int) /* integers in env block */ \ X + 9 * sizeof(*tchar) /* tchars in env block */ \ X X--- 134,139 ----- X no harm is done as long as it's big enough. X */ X X #define EVUSED \ X (59 * sizeof(int) /* integers in env block */ \ X + 9 * sizeof(tchar) /* tchars in env block */ \ X*************** X*** 176,188 X /* if it's wrong, let's fix it ! */ X #define EVUSED \ X (59 * sizeof(int) /* integers in env block */ \ X- + 9 * sizeof(*tchar) /* tchars in env block */ \ X- + NHYP * sizeof(*tchar) /* hytab */ \ X- + NTAB * sizeof(int) /* tabtab */ \ X- + (LNSIZE+WDSIZE) * sizeof(*tchar)) /* line+word */ X- #else WARWICK X- #define EVUSED \ X- (59 * sizeof(int) /* integers in env block */ \ X + 9 * sizeof(tchar) /* tchars in env block */ \ X + NHYP * sizeof(tchar) /* hytab */ \ X + NTAB * sizeof(int) /* tabtab */ \ X X--- 136,141 ----- X X #define EVUSED \ X (59 * sizeof(int) /* integers in env block */ \ X + 9 * sizeof(tchar) /* tchars in env block */ \ X + NHYP * sizeof(tchar) /* hytab */ \ X + NTAB * sizeof(int) /* tabtab */ \ X*************** X*** 187,193 X + NHYP * sizeof(tchar) /* hytab */ \ X + NTAB * sizeof(int) /* tabtab */ \ X + (LNSIZE+WDSIZE) * sizeof(tchar)) /* line+word */ X- #endif WARWICK X X #define EVSPARE DSIZE - EVUSED % DSIZE /* number of leftover chars */ X #define EVS (EVUSED + EVSPARE) /* should be a multiple of DSIZE */ X X--- 140,145 ----- X + NHYP * sizeof(tchar) /* hytab */ \ X + NTAB * sizeof(int) /* tabtab */ \ X + (LNSIZE+WDSIZE) * sizeof(tchar)) /* line+word */ X X #define EVSPARE DSIZE - EVUSED % DSIZE /* number of leftover chars */ X #define EVS (EVUSED + EVSPARE) /* should be a multiple of DSIZE */ X*************** X*** 191,199 X X #define EVSPARE DSIZE - EVUSED % DSIZE /* number of leftover chars */ X #define EVS (EVUSED + EVSPARE) /* should be a multiple of DSIZE */ X- #ifdef WARWICK X- #define NM 800 X- #else WARWICK X #define NM 350 /* requests + macros */ X #endif WARWICK X #define DELTA 1024 /* delta core bytes */ X X--- 143,148 ----- X X #define EVSPARE DSIZE - EVUSED % DSIZE /* number of leftover chars */ X #define EVS (EVUSED + EVSPARE) /* should be a multiple of DSIZE */ X #define NM 350 /* requests + macros */ X #define DELTA 1024 /* delta core bytes */ X #define NHYP 10 /* max hyphens per word */ X*************** X*** 195,201 X #define NM 800 X #else WARWICK X #define NM 350 /* requests + macros */ X- #endif WARWICK X #define DELTA 1024 /* delta core bytes */ X #define NHYP 10 /* max hyphens per word */ X #ifndef NHEX /* to allow setting this from the Makefile -- req */ X X--- 144,149 ----- X #define EVSPARE DSIZE - EVUSED % DSIZE /* number of leftover chars */ X #define EVS (EVUSED + EVSPARE) /* should be a multiple of DSIZE */ X #define NM 350 /* requests + macros */ X #define DELTA 1024 /* delta core bytes */ X #define NHYP 10 /* max hyphens per word */ X #define NHEX 128 /* byte size of exception word list */ X*************** X*** 198,204 X #endif WARWICK X #define DELTA 1024 /* delta core bytes */ X #define NHYP 10 /* max hyphens per word */ X- #ifndef NHEX /* to allow setting this from the Makefile -- req */ X #define NHEX 128 /* byte size of exception word list */ X #endif !NHEX X #define NTAB 35 /* tab stops */ X X--- 146,151 ----- X #define NM 350 /* requests + macros */ X #define DELTA 1024 /* delta core bytes */ X #define NHYP 10 /* max hyphens per word */ X #define NHEX 128 /* byte size of exception word list */ X #define NTAB 35 /* tab stops */ X #define NSO 5 /* "so" depth */ X*************** X*** 200,206 X #define NHYP 10 /* max hyphens per word */ X #ifndef NHEX /* to allow setting this from the Makefile -- req */ X #define NHEX 128 /* byte size of exception word list */ X- #endif !NHEX X #define NTAB 35 /* tab stops */ X #define NSO 5 /* "so" depth */ X #ifdef WARWICK X X--- 147,152 ----- X #define DELTA 1024 /* delta core bytes */ X #define NHYP 10 /* max hyphens per word */ X #define NHEX 128 /* byte size of exception word list */ X #define NTAB 35 /* tab stops */ X #define NSO 5 /* "so" depth */ X #define WDSIZE 270 /* word buffer size */ X*************** X*** 203,212 X #endif !NHEX X #define NTAB 35 /* tab stops */ X #define NSO 5 /* "so" depth */ X- #ifdef WARWICK X- #define WDSIZE 960 /* word buffer size */ X- #define LNSIZE 2960 /* line buffer size */ X- #else WARWICK X #define WDSIZE 270 /* word buffer size */ X #define LNSIZE 680 /* line buffer size */ X #endif WARWICK X X--- 149,154 ----- X #define NHEX 128 /* byte size of exception word list */ X #define NTAB 35 /* tab stops */ X #define NSO 5 /* "so" depth */ X #define WDSIZE 270 /* word buffer size */ X #define LNSIZE 680 /* line buffer size */ X #define NDI 5 /* number of diversions */ X*************** X*** 209,215 X #else WARWICK X #define WDSIZE 270 /* word buffer size */ X #define LNSIZE 680 /* line buffer size */ X- #endif WARWICK X #define NDI 5 /* number of diversions */ X #define NTRTAB 350 /* number of items in trtab[] */ X #define NTRAP 20 /* number of traps */ X X--- 151,156 ----- X #define NSO 5 /* "so" depth */ X #define WDSIZE 270 /* word buffer size */ X #define LNSIZE 680 /* line buffer size */ X #define NDI 5 /* number of diversions */ X #define NTRTAB 350 /* number of items in trtab[] */ X #define NTRAP 20 /* number of traps */ X*************** X*** 214,222 X #define NTRTAB 350 /* number of items in trtab[] */ X #define NTRAP 20 /* number of traps */ X #define NPN 20 /* numbers in "-o" */ X- #ifdef WARWICK X- #define FBUFSZ 1024 /* field buf size words */ X- #else WARWICK X #define FBUFSZ 256 /* field buf size words */ X #endif WARWICK X #ifdef BUFSIZ X X--- 155,160 ----- X #define NTRTAB 350 /* number of items in trtab[] */ X #define NTRAP 20 /* number of traps */ X #define NPN 20 /* numbers in "-o" */ X #define FBUFSZ 256 /* field buf size words */ X #define OBUFSZ 512 /* bytes */ X #define IBUFSZ 512 /* bytes */ X*************** X*** 218,228 X #define FBUFSZ 1024 /* field buf size words */ X #else WARWICK X #define FBUFSZ 256 /* field buf size words */ X- #endif WARWICK X- #ifdef BUFSIZ X- #define OBUFSZ BUFSIZ /* bytes */ X- #define IBUFSZ BUFSIZ /* bytes */ X- #else !BUFSIZ X #define OBUFSZ 512 /* bytes */ X #define IBUFSZ 512 /* bytes */ X #endif BUFSIZ X X--- 156,161 ----- X #define NTRAP 20 /* number of traps */ X #define NPN 20 /* numbers in "-o" */ X #define FBUFSZ 256 /* field buf size words */ X #define OBUFSZ 512 /* bytes */ X #define IBUFSZ 512 /* bytes */ X #define NC 256 /* cbuf size words */ X*************** X*** 225,231 X #else !BUFSIZ X #define OBUFSZ 512 /* bytes */ X #define IBUFSZ 512 /* bytes */ X- #endif BUFSIZ X #define NC 256 /* cbuf size words */ X #define NOV 10 /* number of overstrike chars */ X #define NPP 10 /* pads per field */ X X--- 158,163 ----- X #define FBUFSZ 256 /* field buf size words */ X #define OBUFSZ 512 /* bytes */ X #define IBUFSZ 512 /* bytes */ X #define NC 256 /* cbuf size words */ X #define NOV 10 /* number of overstrike chars */ X #define NPP 10 /* pads per field */ X*************** X*** 251,257 X #define VMOT (01L<<16) /* vert motion bit */ X #define NMOT (01L<<17) /* negative motion indicator*/ X #define MAXMOT 32767 /* bad way to write this!!! */ X! #define ismot(n) ((unsigned short)(n) & MOT) /* (short) is a cheap mask */ X #define isvmot(n) ((n) & VMOT) /* must have tested MOT previously */ X #define isnmot(n) ((n) & NMOT) /* ditto */ X #define absmot(n) ((unsigned short)(n) & ~MOT) /* (short) is cheap mask */ X X--- 183,189 ----- X #define VMOT (01L<<16) /* vert motion bit */ X #define NMOT (01L<<17) /* negative motion indicator*/ X #define MAXMOT 32767 /* bad way to write this!!! */ X! #define ismot(n) (unsigned)((n) & MOT) /* (short) is a cheap mask */ X #define isvmot(n) ((n) & VMOT) /* must have tested MOT previously */ X #define isnmot(n) ((n) & NMOT) /* ditto */ X #define absmot(n) (unsigned)(0177777 & (n) & ~MOT) /* (short) is cheap mask */ X*************** X*** 254,260 X #define ismot(n) ((unsigned short)(n) & MOT) /* (short) is a cheap mask */ X #define isvmot(n) ((n) & VMOT) /* must have tested MOT previously */ X #define isnmot(n) ((n) & NMOT) /* ditto */ X! #define absmot(n) ((unsigned short)(n) & ~MOT) /* (short) is cheap mask */ X X #define ZBIT (01L << 31) /* zero width char */ X #define iszbit(n) ((n) & ZBIT) X X--- 186,192 ----- X #define ismot(n) (unsigned)((n) & MOT) /* (short) is a cheap mask */ X #define isvmot(n) ((n) & VMOT) /* must have tested MOT previously */ X #define isnmot(n) ((n) & NMOT) /* ditto */ X! #define absmot(n) (unsigned)(0177777 & (n) & ~MOT) /* (short) is cheap mask */ X X #define ZBIT (01L << 31) /* zero width char */ X #define iszbit(n) ((n) & ZBIT) X*************** X*** 264,273 X #define SFMASK (SMASK|FMASK) /* size and font in a tchar */ X #define CMASK ~MOT /* clears MOT */ X #define CMASKL 077777L X! #define sbits(n) ((unsigned short)((n) >> 24) & 0177) X! #define fbits(n) ((unsigned short)((n) >> 16) & 0377) X! #define sfbits(n) ((unsigned short)(((n) & SFMASK) >> 16)) X! #define cbits(n) (unsigned short)(n) /* isolate bottom 16 bits */ X #define setsbits(n,s) n = (n & ~SMASK) | (tchar)(s) << 24 X #define setfbits(n,f) n = (n & ~FMASK) | (tchar)(f) << 16 X #define setsfbits(n,sf) n = (n & ~SFMASK) | (tchar)(sf) << 16 X X--- 196,205 ----- X #define SFMASK (SMASK|FMASK) /* size and font in a tchar */ X #define CMASK ~MOT /* clears MOT */ X #define CMASKL 077777L X! #define sbits(n) (((n) >> 24) & 0177) X! #define fbits(n) (((n) >> 16) & 0377) X! #define sfbits(n) (unsigned)(0177777 & (((n) & SFMASK) >> 16)) X! #define cbits(n) (unsigned)(0177777 & (n)) /* isolate bottom 16 bits */ X #define setsbits(n,s) n = (n & ~SMASK) | (tchar)(s) << 24 X #define setfbits(n,f) n = (n & ~FMASK) | (tchar)(f) << 16 X #define setsfbits(n,sf) n = (n & ~SFMASK) | (tchar)(sf) << 16 X*************** X*** 284,292 X X #define PAIR(A,B) (A|(B<<BYTE)) X X- #ifdef ALIGNFIXES X- typedef long filep; X- #else !ALIGNFIXES X typedef unsigned filep; X #endif ALIGNFIXES X #define BLK 128 /* alloc block tchars */ X X--- 216,221 ----- X X #define PAIR(A,B) (A|(B<<BYTE)) X X typedef unsigned filep; X #define BLK 128 /* alloc block tchars */ X #define NBLIST 1024 /* allocation list */ X*************** X*** 288,294 X typedef long filep; X #else !ALIGNFIXES X typedef unsigned filep; X- #endif ALIGNFIXES X #define BLK 128 /* alloc block tchars */ X #define NBLIST 1024 /* allocation list */ X /* previous values were BLK 256 NBLIST 512 */ X X--- 217,222 ----- X #define PAIR(A,B) (A|(B<<BYTE)) X X typedef unsigned filep; X #define BLK 128 /* alloc block tchars */ X #define NBLIST 1024 /* allocation list */ X /* previous values were BLK 256 NBLIST 512 */ X*************** X*** 308,323 X extern tchar setz(); X extern tchar setch(), absch(); X extern tchar setht(), setslant(); X- #ifdef REPORTERRS X- extern X- #ifdef LINTSTUFF X- void X- #endif LINTSTUFF X- done(), done1(), done2(), done3(), edone(); X- /* cleanup functions now passed as a parameter to errmsg() */ X- /* I don't quite understand why there are so many! */ X- /* - req */ X- #endif REPORTERRS X X #define atoi(i) ((int) atoi0(i)) X extern long atoi0(); X X--- 236,241 ----- X extern tchar setz(); X extern tchar setch(), absch(); X extern tchar setht(), setslant(); X X #define atoi(i) ((int) atoi0(i)) X extern long atoi0(); X*************** X*** 348,351 X extern int c_lefthand; X X extern int stderr; /* this is NOT the stdio value! */ X- #include "local.h" X X--- 266,268 ----- X extern int c_lefthand; X X extern int stderr; /* this is NOT the stdio value! */ XOnly in titroff: troff.doc XOnly in /distribution/dwb/text/troff.d: troff.mk XOnly in /distribution/dwb/text/troff.d: troff.sh XOnly in titroff: tw.h Xdiff -rbc titroff/v.h /distribution/dwb/text/troff.d/v.h X*** titroff/v.h Mon Oct 13 22:37:52 1986 X--- /distribution/dwb/text/troff.d/v.h Fri Sep 9 18:47:33 1983 X*************** X*** 1,3 X struct v {int pn,nl,yr,hp,ct,dn,mo,dy,dw,ln,dl,st,sb,cd,pid; X #ifdef WARNLEVELREG X int wl; /* warning level -- req */ X X--- 1,3 ----- X+ /* @(#)v.h 1.1 */ X struct v {int pn,nl,yr,hp,ct,dn,mo,dy,dw,ln,dl,st,sb,cd,pid; X int vxx[NN-NNAMES];} v ; X*************** X*** 1,8 X struct v {int pn,nl,yr,hp,ct,dn,mo,dy,dw,ln,dl,st,sb,cd,pid; X- #ifdef WARNLEVELREG X- int wl; /* warning level -- req */ X- #endif WARNLEVELREG X- #ifdef EVREG X- int ev; /* number of current env --- starts as 0 */ X- #endif EVREG X int vxx[NN-NNAMES];} v ; X X--- 1,3 ----- X /* @(#)v.h 1.1 */ X struct v {int pn,nl,yr,hp,ct,dn,mo,dy,dw,ln,dl,st,sb,cd,pid; X int vxx[NN-NNAMES];} v ; XOnly in titroff: x.c SHAR_EOF if test 59948 -ne "`wc -c < 'diffd'`" then echo shar: error transmitting "'diffd'" '(should have been 59948 characters)' fi fi # end of overwriting check # End of shell archive exit 0 -- ARPA req%uu.warwick.ac.uk@ucl-cs.arpa EARN/BITNET req%UK.AC.WARWICK.UU@AC.UK JANET req@uk.ac.warwick.uu UUCP seismo!mcvax!ukc!warwick!req (req@warwick.UUCP) PHONE +44 203 523485 For mail.frplist, use "frplist" instead of "req" in the above lines. The BITNET path only works from sites that have AC.UK in their tables. Sorry.