DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T f

⟦d0c08e1c0⟧ TextFile

    Length: 63365 (0xf785)
    Types: TextFile
    Names: »fix5«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦this⟧ »EUUGD11/euug-87hel/sec1/ditroff-fix/fix5« 

TextFile


#! /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.