Subject: Top level make problems (and others) + fixes (10 of 11 - #115)
Index:	src/*/{Makefile,.c} 2.11BSD

Description:
	The process of recompiling the complete system from sources
	does not completely succeed, there are programs not compiled,
	programs installed in the wrong place, files (objects, man pages,etc)
	which are not removed when a "make clean" is done, man pages
	not formatted, other man pages which are the wrong ones being
	installed, programs compiling with errors and so on and so forth.

	In short, most of the Makefiles and a number of sourcefiles
	in the system were in need of repair.

	Much of the credit (or blame ;-)) for the series of patches to
	follow is due to Paul Taylor (taylor@oswego.oswego.edu).  Takes
	a high amount of "patience" to do multiple top level 'make's
	on a pdp-11/73.  Thanks.

Repeat-By:
	cd /usr/src
	make all
	make install
	make clean

	After anywhere between 12 and 18 hours note the debris and errors
	left behind.

Fix:
	Apply this (#115) and the remaining patch (116).
	This patch fixes the problems in the /usr/src/usr.bin Makefiles.
	The 'struct' and 'tbl' programs had numerous compile time warning
	errors removed.

	Some of the patches may not apply because the programs (notably
	in /usr/src/new and /usr/src/local) may not be present in the
	system (having been ported/added since the initial release of
	the system).  There was an earlier posting of these programs
	('popper', 'less', etc), if those articles are not present they
	may be obtained (along with these and previous patches) via 
	anonymous FTP to 'ftp.iipo.gtegsc.com' in the directory pub/2.11BSD.

	The patches have been grouped and split along directory boundaries.

	The contents are:

	#106	- script to remove some redundant man pages and rename
		  others to their correct resting place.

		  /usr/src/Makefile (top level makefile) patch.

		  NOTE: the choice of hostfile or nameserver is made
			only in lib/libc/Makefile now, not in both
			/usr/src/Makefile and lib/libc/Makefile

	#107	- /usr/src/bin updates.  There are two source (.c and
		  .h) updates as well as the Makefile patches.

	#108	- /usr/src/etc updates.  Several source patches are
		  included.

	#109	- /usr/src/games updates.  A couple of .c files are
		  also updated to remove compile time warnings.  NOTE:
		  before doing a top level make you will have to
		  configure 'warp' and do a 'make depend'.

	#110	- /usr/src/lib updates.  Only Makefiles are updated.

	#111	- /usr/src/local updates.  Only Makefile are updated but
		  some of the directories/programs may not exist on all
		  systems.

	#112	- /usr/src/man updates.  One man page (last.1) is updated
		  along with the Makefiles.

	#113	- /usr/src/new updates.  Some programs may not exist
		  ('tcsh') on all systems (but are available via ftp).
		  Other programs (rn, etc) may require some attention
		  if the patches do not apply cleanly.

	#114	- /usr/src/ucb updates.  The 'last' command is updated to
		  handle alternate wtmp files.  A couple other .h or .c
		  files are updated to remove compile time warning errors.

	#115	- /usr/src/usr.bin updates.  The 'struct' and 'tbl' program
		  sources receive numerous updates to remove compile time 
		  errors.  The remaining updates apply to the Makefiles.

	#116	- /usr/src/usr.lib updates.  Makefiles are fixed.
========================================================================
*** /usr/src/usr.bin/Makefile.old	Tue May 29 09:05:31 1990
--- /usr/src/usr.bin/Makefile	Mon Jan 18 09:36:45 1993
***************
*** 47,53 ****
  ${STD} ${KMEM}:
  	${CC} ${CFLAGS} ${SEPFLAG} -o $@ $@.c
  
! install:
  	-for i in ${SUBDIR}; do \
  		(cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
  	-for i in ${SCRIPT}; do \
--- 47,53 ----
  ${STD} ${KMEM}:
  	${CC} ${CFLAGS} ${SEPFLAG} -o $@ $@.c
  
! install: ${STD} ${NSTD} ${KMEM} xinstall units.lib
  	-for i in ${SUBDIR}; do \
  		(cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
  	-for i in ${SCRIPT}; do \
*** /usr/src/usr.bin/calendar/Makefile.old	Mon Feb 16 16:38:43 1987
--- /usr/src/usr.bin/calendar/Makefile	Mon Jan 18 09:36:46 1993
***************
*** 7,13 ****
  calendar: calendar.c
  	${CC} ${CFLAGS} ${SEPFLAG} -o calendar calendar.c
  
! install:
  	install -s calendar $(DESTDIR)/usr/lib
  	install -c -m 755 calendar.sh $(DESTDIR)/usr/bin/calendar
  
--- 7,13 ----
  calendar: calendar.c
  	${CC} ${CFLAGS} ${SEPFLAG} -o calendar calendar.c
  
! install: calendar calendar.sh
  	install -s calendar $(DESTDIR)/usr/lib
  	install -c -m 755 calendar.sh $(DESTDIR)/usr/bin/calendar
  
*** /usr/src/usr.bin/f77/Makefile.old	Thu Oct 13 21:17:46 1988
--- /usr/src/usr.bin/f77/Makefile	Mon Jan 18 09:36:47 1993
***************
*** 95,101 ****
  locdefs:	pdp11defs
  		cp pdp11defs locdefs
  
! install:
  		install -s f77 ${DESTDIR}/usr/bin
  		install -s f77pass1 ${DESTDIR}/lib
  		install -c -m 644 ${STRINGS} ${DESTDIR}/lib
--- 95,101 ----
  locdefs:	pdp11defs
  		cp pdp11defs locdefs
  
! install: all
  		install -s f77 ${DESTDIR}/usr/bin
  		install -s f77pass1 ${DESTDIR}/lib
  		install -c -m 644 ${STRINGS} ${DESTDIR}/lib
*** /usr/src/usr.bin/learn/Makefile.old	Mon Sep  7 05:37:19 1987
--- /usr/src/usr.bin/learn/Makefile	Mon Jan 18 09:36:48 1993
***************
*** 32,38 ****
  depend: FRC
  	mkdep ${CFLAGS} ${SRCS} lcount.c lrntee.c
  
! install: FRC
  	install -c -s -m 755 learn ${DESTDIR}/usr/bin/learn
  	install -s -m 755 learn ${LLIB}/learn
  	install -s -m 755 lrntee ${LLIB}/lrntee
--- 32,38 ----
  depend: FRC
  	mkdep ${CFLAGS} ${SRCS} lcount.c lrntee.c
  
! install: all
  	install -c -s -m 755 learn ${DESTDIR}/usr/bin/learn
  	install -s -m 755 learn ${LLIB}/learn
  	install -s -m 755 lrntee ${LLIB}/lrntee
*** /usr/src/usr.bin/m4/Makefile.old	Mon Feb 16 17:32:37 1987
--- /usr/src/usr.bin/m4/Makefile	Mon Jan 18 09:36:49 1993
***************
*** 5,11 ****
  m4:	m4.o m4y.o
  	$(CC) ${SEPFLAG} -o m4 m4.o m4y.o
  
! install:
  	install -s m4 $(DESTDIR)/usr/bin
  
  clean:
--- 5,11 ----
  m4:	m4.o m4y.o
  	$(CC) ${SEPFLAG} -o m4 m4.o m4y.o
  
! install: m4
  	install -s m4 $(DESTDIR)/usr/bin
  
  clean:
*** /usr/src/usr.bin/prof/Makefile.old	Mon Sep  7 05:55:55 1987
--- /usr/src/usr.bin/prof/Makefile	Mon Jan 18 09:36:50 1993
***************
*** 10,16 ****
  prof.o: prof.c
  	cc -c $(CFLAGS) $(PLOT) prof.c
  
! install:
  	install -s prof $(DESTDIR)/usr/bin
  
  clean :
--- 10,16 ----
  prof.o: prof.c
  	cc -c $(CFLAGS) $(PLOT) prof.c
  
! install: prof
  	install -s prof $(DESTDIR)/usr/bin
  
  clean :
*** /usr/src/usr.bin/roff/nroff/Makefile.old	Thu Jan  5 23:46:46 1989
--- /usr/src/usr.bin/roff/nroff/Makefile	Mon Jan 18 09:36:51 1993
***************
*** 47,53 ****
  depend: ${SRCS} FRC
  	mkdep ${CFLAGS} ${SRCS}
  
! install: FRC
  	install -s -o bin -g bin -m 751 nroff ${DESTDIR}/usr/bin/nroff
  
  lint: ${SRCS} FRC
--- 47,53 ----
  depend: ${SRCS} FRC
  	mkdep ${CFLAGS} ${SRCS}
  
! install: nroff
  	install -s -o bin -g bin -m 751 nroff ${DESTDIR}/usr/bin/nroff
  
  lint: ${SRCS} FRC
*** /usr/src/usr.bin/roff/nroff_term/Makefile.old	Fri Jun 22 14:07:55 1990
--- /usr/src/usr.bin/roff/nroff_term/Makefile	Mon Jan 18 09:36:52 1993
***************
*** 61,67 ****
  depend: FRC
  	mkdep ${CFLAGS} ${SRCS}
  
! install: FRC
  	for file in tab*.o; do \
  		install -s -o bin -g bin -m 755 $$file ${DEST}/`basename $$file .o`; \
  	done
--- 61,67 ----
  depend: FRC
  	mkdep ${CFLAGS} ${SRCS}
  
! install: ${ALL}
  	for file in tab*.o; do \
  		install -s -o bin -g bin -m 755 $$file ${DEST}/`basename $$file .o`; \
  	done
*** /usr/src/usr.bin/roff/troff/Makefile.old	Thu Jan  5 23:50:02 1989
--- /usr/src/usr.bin/roff/troff/Makefile	Mon Jan 18 09:36:53 1993
***************
*** 44,50 ****
  depend: ${SRCS} FRC
  	mkdep ${CFLAGS} ${SRCS}
  
! install: FRC
  	install -s -o bin -g bin -m 751 troff ${DESTDIR}/usr/bin/troff
  
  lint: ${SRCS} FRC
--- 44,50 ----
  depend: ${SRCS} FRC
  	mkdep ${CFLAGS} ${SRCS}
  
! install: troff
  	install -s -o bin -g bin -m 751 troff ${DESTDIR}/usr/bin/troff
  
  lint: ${SRCS} FRC
*** /usr/src/usr.bin/struct/0.alloc.c.old	Mon Feb 16 16:21:15 1987
--- /usr/src/usr.bin/struct/0.alloc.c	Mon Jan 18 09:36:54 1993
***************
*** 51,57 ****
  		{
  		if (!q)
  			{
! 			q = morespace(n,p,size);
  			break;
  			}
  		if (q-> blksize - q->nxtfree >= n)  break;
--- 51,57 ----
  		{
  		if (!q)
  			{
! 			q = (struct coreblk *)morespace(n,p,size);
  			break;
  			}
  		if (q-> blksize - q->nxtfree >= n)  break;
***************
*** 58,64 ****
  		}
  	i = q->nxtfree;
  	q ->nxtfree += n;
! 	return( &(q->blk)[i]);
  	}
  
  talloc(n)		/* allocate from line-by-line storage area */
--- 58,64 ----
  		}
  	i = q->nxtfree;
  	q ->nxtfree += n;
! 	return( (int)&(q->blk)[i]);
  	}
  
  talloc(n)		/* allocate from line-by-line storage area */
***************
*** 94,100 ****
  	int t,i;
  
  	t = n<size?size:n;
! 	q = malloc(i=t*sizeof(*(q->blk))+sizeof(*q));
  	if(!q){
  		error(": alloc out of space","","");
  		fprintf(stderr,"space = %D\n",space);
--- 94,100 ----
  	int t,i;
  
  	t = n<size?size:n;
! 	q = (struct coreblk *)malloc(i=t*sizeof(*(q->blk))+sizeof(*q));
  	if(!q){
  		error(": alloc out of space","","");
  		fprintf(stderr,"space = %D\n",space);
***************
*** 104,113 ****
  	space += i;
  	q->nxtblk = *p;
  	*p = q;
! 	q -> blksize = t;
! 	q-> nxtfree = 0;
! 	q->blk = q + 1;
! 	return(q);
  	}
  
  
--- 104,113 ----
  	space += i;
  	q->nxtblk = *p;
  	*p = q;
! 	q->blksize = t;
! 	q->nxtfree = 0;
! 	q->blk = (int *) q + 1;
! 	return((int)q);
  	}
  
  
*** /usr/src/usr.bin/struct/0.list.c.old	Mon Feb 16 16:21:15 1987
--- /usr/src/usr.bin/struct/0.list.c	Mon Jan 18 09:36:55 1993
***************
*** 10,16 ****
  struct list *ls;
  	{
  	struct list *temp;
! 	temp = challoc(sizeof(*temp));
  	temp->elt = v;
  	temp->nxtlist = ls;
  	return(temp);
--- 10,16 ----
  struct list *ls;
  	{
  	struct list *temp;
! 	temp = (struct list *)challoc(sizeof(*temp));
  	temp->elt = v;
  	temp->nxtlist = ls;
  	return(temp);
*** /usr/src/usr.bin/struct/0.parts.c.old	Mon Feb 16 16:21:15 1987
--- /usr/src/usr.bin/struct/0.parts.c	Mon Jan 18 09:36:56 1993
***************
*** 108,119 ****
  	if (nodenum >= maxnode)
  		{
  		maxnode += 100;
! 		temp=realloc(graph,maxnode*sizeof(*graph));
  		free(graph);
! 		graph=temp;
  		}
  	wds = nonarcs[type] + arcnum;
! 	graph[nodenum] = galloc(sizeof(*graph) * wds);
  	for (i = 0; i < wds; i++)  graph[nodenum][i] = 0;
  	NTYPE(nodenum) = type;
  	if (arcsper[type] < 0)
--- 108,119 ----
  	if (nodenum >= maxnode)
  		{
  		maxnode += 100;
! 		temp=(int *)realloc(graph,maxnode*sizeof(*graph));
  		free(graph);
! 		graph=(int **)temp;
  		}
  	wds = nonarcs[type] + arcnum;
! 	graph[nodenum] = (int *)galloc(sizeof(*graph) * wds);
  	for (i = 0; i < wds; i++)  graph[nodenum][i] = 0;
  	NTYPE(nodenum) = type;
  	if (arcsper[type] < 0)
*** /usr/src/usr.bin/struct/0.string.c.old	Mon Feb 16 16:21:15 1987
--- /usr/src/usr.bin/struct/0.string.c	Mon Jan 18 09:36:58 1993
***************
*** 103,110 ****
  	int i,j;
  	i = slength(x);
  	j = slength(y);
! 	temp = galloc(i + j + 1);
  	sprintf(temp,"%s",x);
  	sprintf(&temp[i],"%s",y);
! 	return(temp);
  	}
--- 103,110 ----
  	int i,j;
  	i = slength(x);
  	j = slength(y);
! 	temp = (char *)galloc(i + j + 1);
  	sprintf(temp,"%s",x);
  	sprintf(&temp[i],"%s",y);
! 	return((int)temp);
  	}
*** /usr/src/usr.bin/struct/1.fort.c.old	Mon Feb 16 16:21:16 1987
--- /usr/src/usr.bin/struct/1.fort.c	Mon Jan 18 09:36:59 1993
***************
*** 7,12 ****
--- 7,13 ----
  #include  "1.defs.h"
  #include "def.h"
  
+ char *remtilda();
  
  act(k,c,bufptr)
  int k,bufptr;
***************
*** 208,214 ****
  long x;
  	{
  	struct lablist *p;
! 	p = challoc (sizeof(*p));
  	p->labelt = x;
  	p->nxtlab = 0;
  	return(p);
--- 209,215 ----
  long x;
  	{
  	struct lablist *p;
! 	p = (struct lablist *)challoc (sizeof(*p));
  	p->labelt = x;
  	p->nxtlab = 0;
  	return(p);
***************
*** 248,259 ****
  int n; char *ad;
  	{
  	char *cp;
! 	cp = galloc(n+1);
  	copycs(ad,cp,n);
! 	return(cp);
  	}
  
  
  remtilda(s)			/* change ~ to blank */
  char *s;
  	{
--- 249,261 ----
  int n; char *ad;
  	{
  	char *cp;
! 	cp = (char *)galloc(n+1);
  	copycs(ad,cp,n);
! 	return((int)cp);
  	}
  
  
+ char *
  remtilda(s)			/* change ~ to blank */
  char *s;
  	{
*** /usr/src/usr.bin/struct/1.hash.c.old	Mon Feb 16 16:21:16 1987
--- /usr/src/usr.bin/struct/1.hash.c	Mon Jan 18 09:37:01 1993
***************
*** 93,101 ****
  hash_init()
  	{
  	int i;
! 	hashtab = challoc(sizeof(*hashtab) * maxhash);
! 	chain = challoc(sizeof(*chain) * maxhash);
! 	value = challoc(sizeof(*value) * maxhash);
  	for (i = 0; i < maxhash; i++)
  		{
  		hashtab[i] = -1L;
--- 93,101 ----
  hash_init()
  	{
  	int i;
! 	hashtab = (long *) challoc(sizeof(*hashtab) * maxhash);
! 	chain = (int *)challoc(sizeof(*chain) * maxhash);
! 	value = (int *)challoc(sizeof(*value) * maxhash);
  	for (i = 0; i < maxhash; i++)
  		{
  		hashtab[i] = -1L;
***************
*** 163,169 ****
  		*ptr = 0;
  	else
  		*ptr = chain[index];
! 	chain[index] = ptr;
  	}
  
  fixvalue (x,ptr)
--- 163,169 ----
  		*ptr = 0;
  	else
  		*ptr = chain[index];
! 	chain[index] = (int)ptr;
  	}
  
  fixvalue (x,ptr)
***************
*** 188,194 ****
  		temp1 = &chain[index];		/* trace chain for each label */
  		while (temp1 != 0)
  			{
! 			temp2 = *temp1;
  			*temp1 = ptr;
  			temp1 = temp2;
  			}
--- 188,194 ----
  		temp1 = &chain[index];		/* trace chain for each label */
  		while (temp1 != 0)
  			{
! 			temp2 = (int *)*temp1;
  			*temp1 = ptr;
  			temp1 = temp2;
  			}
***************
*** 213,219 ****
  		temp = &chain[index];
  	
  		while (*temp != 0)
! 			temp = *temp;
  	
  		*temp = chain[hash(y)];
  		}
--- 213,219 ----
  		temp = &chain[index];
  	
  		while (*temp != 0)
! 			temp = (int *)*temp;
  	
  		*temp = chain[hash(y)];
  		}
*** /usr/src/usr.bin/struct/1.init.c.old	Mon Feb 16 16:21:16 1987
--- /usr/src/usr.bin/struct/1.init.c	Mon Jan 18 09:37:02 1993
***************
*** 12,18 ****
  	{
  	endline = endcom = 0;	endchar = -1;
  	comchar = -1;
! 	graph = challoc(sizeof(*graph) * maxnode);
  	}
  
  routinit()
--- 12,18 ----
  	{
  	endline = endcom = 0;	endchar = -1;
  	comchar = -1;
! 	graph = (int **)challoc(sizeof(*graph) * maxnode);
  	}
  
  routinit()
*** /usr/src/usr.bin/struct/1.recog.c.old	Mon Feb 16 16:21:17 1987
--- /usr/src/usr.bin/struct/1.recog.c	Mon Jan 18 09:37:04 1993
***************
*** 15,21 ****
  	extern long label();
  	long *arclab;
  	if (nlabs > 3) sp = nlabs; else sp = 3;
! 	arctype = challoc(sizeof(*arctype) * sp);  arclab = challoc(sizeof(*arclab) * sp);
  	for( i=0; i < endbuf; i++)  {if (buffer[i] == '~')  buffer[i] = ' ';}
  	loophead = nest = innerdo(label(0));
  	if (DEFINED(nest))
--- 15,22 ----
  	extern long label();
  	long *arclab;
  	if (nlabs > 3) sp = nlabs; else sp = 3;
! 	arctype = (int *)challoc(sizeof(*arctype) * sp);
! 	arclab = (long *)challoc(sizeof(*arclab) * sp);
  	for( i=0; i < endbuf; i++)  {if (buffer[i] == '~')  buffer[i] = ' ';}
  	loophead = nest = innerdo(label(0));
  	if (DEFINED(nest))
***************
*** 38,44 ****
  		arctype[1] = (nest >= 0) ? nest : -2;
  		arclab[1] = implicit;
  		num1 = makenode(IFVX,TRUE,TRUE,label(0),2,arctype,arclab);
! 		PRED(num1) = pred;
  		}
  
  	arctype[0] = (nest >= 0) ? nest : -2;
--- 39,45 ----
  		arctype[1] = (nest >= 0) ? nest : -2;
  		arclab[1] = implicit;
  		num1 = makenode(IFVX,TRUE,TRUE,label(0),2,arctype,arclab);
! 		PRED(num1) = (int)pred;
  		}
  
  	arctype[0] = (nest >= 0) ? nest : -2;
***************
*** 106,112 ****
  					}
  				else
  					{
! 					BEGCODE(num) = stcode;
  					ONDISK(num) = FALSE;
  					CODELINES(num) = 1;
  					}
--- 107,113 ----
  					}
  				else
  					{
! 					BEGCODE(num) = (int)stcode;
  					ONDISK(num) = FALSE;
  					CODELINES(num) = 1;
  					}
***************
*** 128,134 ****
  				}
  			dostack[doptr] = label(1);
  			doloc[doptr] = num1;			/* stack link to node after loop */
! 			INC(num1) = inc;
  			num = makenode(ITERVX,TRUE,FALSE,implicit,1,arctype,arclab);
  			ARC(num1,0) = num;
  			FATH(num) = UNDEFINED;	/* number of DOVX can change so leave UNDEFINED until later */
--- 129,135 ----
  				}
  			dostack[doptr] = label(1);
  			doloc[doptr] = num1;			/* stack link to node after loop */
! 			INC(num1) = (int)inc;
  			num = makenode(ITERVX,TRUE,FALSE,implicit,1,arctype,arclab);
  			ARC(num1,0) = num;
  			FATH(num) = UNDEFINED;	/* number of DOVX can change so leave UNDEFINED until later */
***************
*** 163,170 ****
  			else
  				arctype[2] = UNDEFINED;
  			num = makenode(IOVX,!ifflag,!ifflag,label(0),3,arctype,arclab);
! 			PRERW(num) = prerw;
! 			POSTRW(num) = postrw;
  			if (reflab)
  				addref(reflab->labelt, &FMTREF(num));
  			else
--- 164,171 ----
  			else
  				arctype[2] = UNDEFINED;
  			num = makenode(IOVX,!ifflag,!ifflag,label(0),3,arctype,arclab);
! 			PRERW(num) = (int)prerw;
! 			POSTRW(num) = (int)postrw;
  			if (reflab)
  				addref(reflab->labelt, &FMTREF(num));
  			else
***************
*** 184,194 ****
  				arclab[i] = label(nlabs-i-1);
  				}
  			num = makenode(type,!ifflag,!ifflag,label(0),nlabs - 1, arctype, arclab);
! 			EXP(num) = exp;
  			break;
  		case ASVX:
  			num = makenode(ASVX,!ifflag,!ifflag,label(0),1,arctype,arclab);
! 			EXP(num) = exp;
  			addref(label(1),&LABREF(num));
  			break;
  		case entry:
--- 185,195 ----
  				arclab[i] = label(nlabs-i-1);
  				}
  			num = makenode(type,!ifflag,!ifflag,label(0),nlabs - 1, arctype, arclab);
! 			EXP(num) = (int)exp;
  			break;
  		case ASVX:
  			num = makenode(ASVX,!ifflag,!ifflag,label(0),1,arctype,arclab);
! 			EXP(num) = (int)exp;
  			addref(label(1),&LABREF(num));
  			break;
  		case entry:
***************
*** 244,250 ****
  	arclab[0] = arc1;
  	arclab[1] = arc2;
  	num = makenode(IFVX,first,first,labe,2,arctype,arclab);
! 	PRED(num) = test;
  	return(num);
  	}
  
--- 245,251 ----
  	arclab[0] = arc1;
  	arclab[1] = arc2;
  	num = makenode(IFVX,first,first,labe,2,arctype,arclab);
! 	PRED(num) = (int)test;
  	return(num);
  	}
  
***************
*** 309,316 ****
  	extern long label();
  	long *arclab;
  	char *str;
! 	arctype = challoc(sizeof(*arctype) * nlabs);
! 	arclab = challoc (sizeof(*arclab) * nlabs);
  
  	d = distinct(linelabs->nxtlab,arctype,arclab,nlabs-1);
  			/* puts distinct labels in arclab, count of each in arctype */
--- 310,317 ----
  	extern long label();
  	long *arclab;
  	char *str;
! 	arctype = (int *)challoc(sizeof(*arctype) * nlabs);
! 	arclab = (long *)challoc (sizeof(*arclab) * nlabs);
  
  	d = distinct(linelabs->nxtlab,arctype,arclab,nlabs-1);
  			/* puts distinct labels in arclab, count of each in arctype */
***************
*** 318,326 ****
  	for (i = 0; i < d; ++i)
  		arctype[i] = makenode(ICASVX,FALSE,FALSE,implicit,1,&arct,&arclab[i]);
  	num = makenode(SWCHVX,!ifflag,!ifflag,label(0),d,arctype,arclab);
! 	EXP(num) = exp;
  
! 	str = challoc(6*(nlabs-1));	/* 5 digits + , or \0 per label */
  	for (i = 0; i < d; ++i)		/* construct list of values for each label */
  		EXP(arctype[i]) = stralloc(str,accum(str,linelabs->nxtlab,arclab[i]));
  	chfree(str,6*(nlabs-1));
--- 319,327 ----
  	for (i = 0; i < d; ++i)
  		arctype[i] = makenode(ICASVX,FALSE,FALSE,implicit,1,&arct,&arclab[i]);
  	num = makenode(SWCHVX,!ifflag,!ifflag,label(0),d,arctype,arclab);
! 	EXP(num) = (int)exp;
  
! 	str = (char *)challoc(6*(nlabs-1));	/* 5 digits + , or \0 per label */
  	for (i = 0; i < d; ++i)		/* construct list of values for each label */
  		EXP(arctype[i]) = stralloc(str,accum(str,linelabs->nxtlab,arclab[i]));
  	chfree(str,6*(nlabs-1));
*** /usr/src/usr.bin/struct/2.dfs.c.old	Mon Feb 16 16:21:17 1987
--- /usr/src/usr.bin/struct/2.dfs.c	Mon Jan 18 09:37:06 1993
***************
*** 41,47 ****
  	{
  	int i; VERT w;
  	accessnum = 0;
! 	status = challoc(sizeof(*status) * nodenum);
  	for (w = 0; w < nodenum; ++w)
  		{
  		status[w] = UNPROCESSED;
--- 41,47 ----
  	{
  	int i; VERT w;
  	accessnum = 0;
! 	status = (int *)challoc(sizeof(*status) * nodenum);
  	for (w = 0; w < nodenum; ++w)
  		{
  		status[w] = UNPROCESSED;
***************
*** 51,61 ****
  	chreach();
  	chfree(status, sizeof(*status) * nodenum);
  	addloop();
! 	after = challoc(sizeof(*after) * accessnum);
  	for (i = 0; i < accessnum; ++i)
  		after[i] = UNDEFINED;
! 	ntoaft = challoc(sizeof(*ntoaft) * nodenum);
! 	ntobef = challoc(sizeof(*ntobef) * nodenum);
  	for (w = 0; w < nodenum; ++w)
  		ntobef[w] = ntoaft[w] = UNDEFINED;
  	befcount = 0;
--- 51,61 ----
  	chreach();
  	chfree(status, sizeof(*status) * nodenum);
  	addloop();
! 	after = (int *)challoc(sizeof(*after) * accessnum);
  	for (i = 0; i < accessnum; ++i)
  		after[i] = UNDEFINED;
! 	ntoaft = (int *)challoc(sizeof(*ntoaft) * nodenum);
! 	ntobef = (int *)challoc(sizeof(*ntobef) * nodenum);
  	for (w = 0; w < nodenum; ++w)
  		ntobef[w] = ntoaft[w] = UNDEFINED;
  	befcount = 0;
*** /usr/src/usr.bin/struct/2.inarc.c.old	Mon Feb 16 16:21:17 1987
--- /usr/src/usr.bin/struct/2.inarc.c	Mon Jan 18 09:37:07 1993
***************
*** 37,43 ****
  				if (!DEFINED(x)) x = adj;
  				else x = FATH(x);
  
! 				inarc[x] = consls(v,inarc[x]);	/* insert v in list inarc[x] */
  				}
  			}
  		}
--- 37,43 ----
  				if (!DEFINED(x)) x = adj;
  				else x = FATH(x);
  
! 				inarc[x] = (struct list *)consls(v,inarc[x]);	/* insert v in list inarc[x] */
  				}
  			}
  		}
*** /usr/src/usr.bin/struct/2.main.c.old	Mon Feb 16 16:21:17 1987
--- /usr/src/usr.bin/struct/2.main.c	Mon Jan 18 09:37:08 1993
***************
*** 22,37 ****
  			FATH(ARC(v,0)) = v;
  		}
  
! 	head = challoc(sizeof(*head) * nodenum);
  	if (progress) fprintf(stderr,"	gethead:\n");
  	gethead(head);	/* sets head[v] to ITERVX heading smallest loop containing v or UNDEFINED */
  
  	if (routerr) return;
! 	inarc = challoc(nodenum * sizeof(*inarc));
  	if (progress) fprintf(stderr,"	getinarc:\n");
  	getinarc(inarc,head);		/* sets inarc[v] to list of forward arcs entering v */
  
! 	dom = challoc(nodenum * sizeof(*dom));
  	if (progress) fprintf(stderr,"	getdom:\n");
  	getdom(inarc,dom);	/* sets dom[v] to immediate dominator of v or UNDEFINED */
  	if (routerr) return;
--- 22,37 ----
  			FATH(ARC(v,0)) = v;
  		}
  
! 	head = (VERT *)challoc(sizeof(*head) * nodenum);
  	if (progress) fprintf(stderr,"	gethead:\n");
  	gethead(head);	/* sets head[v] to ITERVX heading smallest loop containing v or UNDEFINED */
  
  	if (routerr) return;
! 	inarc = (struct list **)challoc(nodenum * sizeof(*inarc));
  	if (progress) fprintf(stderr,"	getinarc:\n");
  	getinarc(inarc,head);		/* sets inarc[v] to list of forward arcs entering v */
  
! 	dom = (VERT *)challoc(nodenum * sizeof(*dom));
  	if (progress) fprintf(stderr,"	getdom:\n");
  	getdom(inarc,dom);	/* sets dom[v] to immediate dominator of v or UNDEFINED */
  	if (routerr) return;
*** /usr/src/usr.bin/struct/3.main.c.old	Mon Feb 16 16:21:18 1987
--- /usr/src/usr.bin/struct/3.main.c	Mon Jan 18 09:37:09 1993
***************
*** 19,25 ****
  	if (progress)
  		fprintf(stderr,"	getthen:\n");
  	getthen(START);
! 	head = challoc(nodenum * sizeof(*head));
  	for (v = 0; v < nodenum; ++v)
  		head[v] = UNDEFINED;
  	for (v = START; DEFINED(v); v = RSIB(v))
--- 19,25 ----
  	if (progress)
  		fprintf(stderr,"	getthen:\n");
  	getthen(START);
! 	head = (VERT *)challoc(nodenum * sizeof(*head));
  	for (v = 0; v < nodenum; ++v)
  		head[v] = UNDEFINED;
  	for (v = START; DEFINED(v); v = RSIB(v))
*** /usr/src/usr.bin/struct/3.reach.c.old	Mon Feb 16 16:21:18 1987
--- /usr/src/usr.bin/struct/3.reach.c	Mon Jan 18 09:37:10 1993
***************
*** 41,47 ****
  	number(START);
  	for (v = START; DEFINED(v); v = RSIB(v))
  		{
! 		pr = exits(v);	/* need to free the space for pr */
  		chfree(pr,sizeof(*pr));
  		}
  	}
--- 41,47 ----
  	number(START);
  	for (v = START; DEFINED(v); v = RSIB(v))
  		{
! 		pr = (struct pair *)exits(v); /*need to free the space for pr */
  		chfree(pr,sizeof(*pr));
  		}
  	}
***************
*** 54,60 ****
  	struct pair *vpair, *chpair;
  	VERT w,t;
  	int i;
! 	vpair = challoc(sizeof(*vpair));
  	vpair ->smallest = vpair ->second = UNDEFINED;
  	for (i = 0; i < CHILDNUM(v); ++i)
  		{
--- 54,60 ----
  	struct pair *vpair, *chpair;
  	VERT w,t;
  	int i;
! 	vpair = (struct pair *)challoc(sizeof(*vpair));
  	vpair ->smallest = vpair ->second = UNDEFINED;
  	for (i = 0; i < CHILDNUM(v); ++i)
  		{
***************
*** 62,68 ****
  		if (!DEFINED(w)) continue;
  		for (t = w; DEFINED(t); t = RSIB(t))
  			{
! 			chpair = exits(t);
  
  			/* set vpair->smallest,second to two smallest of vpair->smallest,second,
  				chpair->smallest,second */
--- 62,68 ----
  		if (!DEFINED(w)) continue;
  		for (t = w; DEFINED(t); t = RSIB(t))
  			{
! 			chpair = (struct pair *)exits(t);
  
  			/* set vpair->smallest,second to two smallest of vpair->smallest,second,
  				chpair->smallest,second */
***************
*** 88,94 ****
  		 REACH(v) = vpair->smallest;	/* vpair->smallest possibly UNDEFINED */
  	else
  		REACH(v) = UNDEFINED;
! 	return(vpair);
  	}
  
  
--- 88,94 ----
  		 REACH(v) = vpair->smallest;	/* vpair->smallest possibly UNDEFINED */
  	else
  		REACH(v) = UNDEFINED;
! 	return((int)vpair);
  	}
  
  
*** /usr/src/usr.bin/struct/4.main.c.old	Mon Feb 16 16:21:19 1987
--- /usr/src/usr.bin/struct/4.main.c	Mon Jan 18 09:37:11 1993
***************
*** 11,17 ****
  	{
  	VERT w;
  	int i;
! 	brace = challoc(nodenum * sizeof(*brace));
  	for (i = 0; i < nodenum; ++i)
  		brace[i] = FALSE;
  	if (progress) fprintf(stderr,"ndbrace:\n");
--- 11,17 ----
  	{
  	VERT w;
  	int i;
! 	brace = (LOGICAL *)challoc(nodenum * sizeof(*brace));
  	for (i = 0; i < nodenum; ++i)
  		brace[i] = FALSE;
  	if (progress) fprintf(stderr,"ndbrace:\n");
*** /usr/src/usr.bin/struct/tree.c.old	Wed Jul 15 20:06:20 1987
--- /usr/src/usr.bin/struct/tree.c	Mon Jan 18 09:37:13 1993
***************
*** 13,25 ****
  struct node *n1, *n2;
  	{
  	struct node *p;
! 	p = malloc(sizeof(*p));
  	p->left = n1;
  	p->right = n2;
  	p->op = type;
! 	p->lit = malloc(slength(string) + 1);
  	str_copy(string,p->lit,slength(string) + 1);
! 	return(p);
  	}
  
  
--- 13,25 ----
  struct node *n1, *n2;
  	{
  	struct node *p;
! 	p = (struct node *)malloc(sizeof(*p));
  	p->left = n1;
  	p->right = n2;
  	p->op = type;
! 	p->lit = (char *)malloc(slength(string) + 1);
  	str_copy(string,p->lit,slength(string) + 1);
! 	return((int)p);
  	}
  
  
***************
*** 44,49 ****
--- 44,50 ----
  int notop[] =	{	'|',	'&',	xxge,	xxle,	xxne,	'>',	xxeq,	'<'};
  char *opstring[] =	{ "||",  "&&",	">=",	"<=", "!=",	">",	"==",	"<"};
  
+ struct node *
  checkneg(tree,neg)		/* eliminate nots if possible */
  struct node *tree;
  int neg;
***************
*** 76,82 ****
  				{
  				tree->op = notop[i];
  				free(tree->lit);
! 				tree->lit = malloc(slength(opstring[i])+1);
  				str_copy(opstring[i],tree->lit, slength(opstring[i])+1);
  				if (tree->op == '&' || tree->op == '|')
  					{
--- 77,83 ----
  				{
  				tree->op = notop[i];
  				free(tree->lit);
! 				tree->lit = (char *)malloc(slength(opstring[i])+1);
  				str_copy(opstring[i],tree->lit, slength(opstring[i])+1);
  				if (tree->op == '&' || tree->op == '|')
  					{
***************
*** 90,102 ****
  		else if (tree->op == xxident && str_eq(tree->lit,".true."))
  			{
  			free(tree->lit);
! 			tree->lit = malloc(slength(".false.")+1);
  			str_copy(".false.",tree->lit, slength(".false.")+1);
  			}
  		else
  			{
! 			tree = addroot("!",'!',tree,0);
! 			tree->lit = malloc(2);
  			str_copy("!",tree->lit, slength("!")+1);
  			}
  		return(tree);
--- 91,103 ----
  		else if (tree->op == xxident && str_eq(tree->lit,".true."))
  			{
  			free(tree->lit);
! 			tree->lit = (char *)malloc(slength(".false.")+1);
  			str_copy(".false.",tree->lit, slength(".false.")+1);
  			}
  		else
  			{
! 			tree = (struct node *)addroot("!",'!',tree,0);
! 			tree->lit = (char *)malloc(2);
  			str_copy("!",tree->lit, slength("!")+1);
  			}
  		return(tree);
*** /usr/src/usr.bin/tbl/Makefile.old	Mon Feb 16 18:40:12 1987
--- /usr/src/usr.bin/tbl/Makefile	Mon Jan 18 09:37:14 1993
***************
*** 9,15 ****
  	$(CC) ${SEPFLAG} $o -o tbl
  $o :	t..c
  
! install: 
  	install -s tbl $(DESTDIR)/usr/bin
  
  clean :
--- 9,15 ----
  	$(CC) ${SEPFLAG} $o -o tbl
  $o :	t..c
  
! install: tbl
  	install -s tbl $(DESTDIR)/usr/bin
  
  clean :
*** /usr/src/usr.bin/tbl/t8.c.old	Mon Feb 16 16:20:53 1987
--- /usr/src/usr.bin/tbl/t8.c	Mon Jan 18 09:37:15 1993
***************
*** 260,266 ****
  fprintf(tabout, ".nr %d \\n(##\n", S1); /* bottom position */
  for(c=0; c<ncol; c++)
  	{
! 	s = table[lin][c].col;
  	if (point(s)) continue;
  	if (s==0) continue;
  	fprintf(tabout, ".sp |\\n(##u-1v\n");
--- 260,266 ----
  fprintf(tabout, ".nr %d \\n(##\n", S1); /* bottom position */
  for(c=0; c<ncol; c++)
  	{
! 	s = (int)table[lin][c].col;
  	if (point(s)) continue;
  	if (s==0) continue;
  	fprintf(tabout, ".sp |\\n(##u-1v\n");
*** /usr/src/usr.bin/tbl/t9.c.old	Mon Feb 16 16:20:54 1987
--- /usr/src/usr.bin/tbl/t9.c	Mon Jan 18 09:37:16 1993
***************
*** 31,37 ****
  	puts(dataln);
  	return(1);
  	}
! instead[0]=fullbot[0]=0;
  if (dataln[1]==0)
  switch(dataln[0])
  	{
--- 31,38 ----
  	puts(dataln);
  	return(1);
  	}
! instead[0]= (char *) 0;
! fullbot[0]=0;
  if (dataln[1]==0)
  switch(dataln[0])
  	{
*** /usr/src/usr.bin/tbl/tb.c.old	Mon Feb 16 16:20:54 1987
--- /usr/src/usr.bin/tbl/tb.c	Mon Jan 18 09:37:17 1993
***************
*** 74,80 ****
  	if (thisvec == -1)
  		error("no space for vectors");
  	}
! tp=thisvec;
  thisvec+=n;
  for(q=tp; q<thisvec; q++)
  	*q=0;
--- 74,80 ----
  	if (thisvec == -1)
  		error("no space for vectors");
  	}
! tp=(int *)thisvec;
  thisvec+=n;
  for(q=tp; q<thisvec; q++)
  	*q=0;
*** /usr/src/usr.bin/tbl/te.c.old	Mon Feb 16 16:20:54 1987
--- /usr/src/usr.bin/tbl/te.c	Mon Jan 18 09:37:18 1993
***************
*** 39,45 ****
  if (linstart && nbl % 2) /* fold escaped nl if in table */
  	gets1(s+1);
  
! return(p);
  }
  # define BACKMAX 500
  char backup[BACKMAX];
--- 39,45 ----
  if (linstart && nbl % 2) /* fold escaped nl if in table */
  	gets1(s+1);
  
! return((int)p);
  }
  # define BACKMAX 500
  char backup[BACKMAX];
*** /usr/src/usr.bin/tbl/tm.c.old	Mon Feb 16 16:20:54 1987
--- /usr/src/usr.bin/tbl/tm.c	Mon Jan 18 09:37:19 1993
***************
*** 22,28 ****
  			if (*str=='.' && !ineqn(str,p) &&
  				(str>p && digit(*(str-1)) ||
  				digit(*(str+1))))
! 					dpoint=str;
  			}
  		if (dpoint==0)
  			for(; str>p; str--)
--- 22,28 ----
  			if (*str=='.' && !ineqn(str,p) &&
  				(str>p && digit(*(str-1)) ||
  				digit(*(str+1))))
! 					dpoint=(int)str;
  			}
  		if (dpoint==0)
  			for(; str>p; str--)
***************
*** 32,38 ****
  			}
  		if (!dpoint && p==str) /* not numerical, don't split */
  			return(0);
! 		if (dpoint) str=dpoint;
  		}
  	else
  		str = ba;
--- 32,38 ----
  			}
  		if (!dpoint && p==str) /* not numerical, don't split */
  			return(0);
! 		if (dpoint) str=(char *)dpoint;
  		}
  	else
  		str = ba;
***************
*** 45,51 ****
  	q = exstore;
  	while (*exstore++ = *str++);
  	*p = 0;
! 	return(q);
  	}
  ineqn (s, p)
  	char *s, *p;
--- 45,51 ----
  	q = exstore;
  	while (*exstore++ = *str++);
  	*p = 0;
! 	return((int)q);
  	}
  ineqn (s, p)
  	char *s, *p;
*** /usr/src/usr.bin/tbl/tu.c.old	Mon Feb 16 16:20:55 1987
--- /usr/src/usr.bin/tbl/tu.c	Mon Jan 18 09:37:20 1993
***************
*** 42,49 ****
  
  drawline(i, cl, cr, lintype, noheight, shortl)
  {
! 	char *exhr, *exhl;
! 	int lcount, ln, linpos, oldpos, nodata, lnch;
  lcount=0;
  exhr=exhl= "";
  switch(lintype)
--- 42,49 ----
  
  drawline(i, cl, cr, lintype, noheight, shortl)
  {
! 	char *exhr, *exhl, *lnch;
! 	int lcount, ln, linpos, oldpos, nodata;
  lcount=0;
  exhr=exhl= "";
  switch(lintype)
*** /usr/src/usr.bin/tip/Makefile.old	Sun Oct 25 18:07:07 1992
--- /usr/src/usr.bin/tip/Makefile	Mon Jan 25 19:50:01 1993
***************
*** 48,54 ****
  OBJS=	acu.o acutab.o cmds.o cmdtab.o cu.o hunt.o log.o partab.o remcap.o \
  	remote.o tip.o tipout.o uucplock.o value.o vars.o
  
! all: aculib/aculib.a tip
  
  tip: ${OBJS} ${LIBC}
  	${CC} ${SEPFLAG} -o $@ ${OBJS} aculib/aculib.a
--- 48,54 ----
  OBJS=	acu.o acutab.o cmds.o cmdtab.o cu.o hunt.o log.o partab.o remcap.o \
  	remote.o tip.o tipout.o uucplock.o value.o vars.o
  
! all: aculib tip
  
  tip: ${OBJS} ${LIBC}
  	${CC} ${SEPFLAG} -o $@ ${OBJS} aculib/aculib.a
***************
*** 65,71 ****
  # log.o depends on the makefile because of ACULOG
  log.o remote.o: Makefile
  
! aculib/aculib.a: FRC
  	cd aculib; make ${MFLAGS}
  
  clean: FRC
--- 65,71 ----
  # log.o depends on the makefile because of ACULOG
  log.o remote.o: Makefile
  
! aculib: FRC
  	cd aculib; make ${MFLAGS}
  
  clean: FRC
***************
*** 76,82 ****
  	mkdep ${CFLAGS} ${SRCS}
  	cd aculib; make ${MFLAGS} depend
  
! install: FRC
  	cd aculib; make ${MFLAGS} install
  	install -s -o ${OWNER} -g ${GROUP} -m 4711 tip ${DESTDIR}/usr/bin/tip
  	rm -f ${DESTDIR}/usr/bin/cu
--- 76,82 ----
  	mkdep ${CFLAGS} ${SRCS}
  	cd aculib; make ${MFLAGS} depend
  
! install: aculib tip
  	cd aculib; make ${MFLAGS} install
  	install -s -o ${OWNER} -g ${GROUP} -m 4711 tip ${DESTDIR}/usr/bin/tip
  	rm -f ${DESTDIR}/usr/bin/cu
*** /usr/src/usr.bin/uucp/aculib/Makefile.old	Mon Feb 16 16:21:34 1987
--- /usr/src/usr.bin/uucp/aculib/Makefile	Mon Jan 18 09:37:23 1993
***************
*** 13,17 ****
--- 13,19 ----
  
  ${OBJS}: ../uucp.h ../condevs.h
  
+ install: aculib.a
+ 
  clean:
  	rm -f *.o core errs  aculib.a
*** /usr/src/usr.bin/uucp/vms/Makefile.old	Mon Feb 16 16:21:33 1987
--- /usr/src/usr.bin/uucp/vms/Makefile	Mon Jan 18 09:37:24 1993
***************
*** 124,130 ****
  	ar cr $@ `lorder ${COMMON} | tsort`
  	ranlib $@
  
! install:
  	chown ${OWNER} ${DESTDIR}/${LIBDIR}
  	chgrp ${GROUP} ${DESTDIR}/${LIBDIR}
  	chmod 755 ${DESTDIR}/${LIBDIR}
--- 124,130 ----
  	ar cr $@ `lorder ${COMMON} | tsort`
  	ranlib $@
  
! install: ${ALL}
  	chown ${OWNER} ${DESTDIR}/${LIBDIR}
  	chgrp ${GROUP} ${DESTDIR}/${LIBDIR}
  	chmod 755 ${DESTDIR}/${LIBDIR}
*** /usr/src/usr.bin/yacc/Makefile.old	Mon Feb 16 19:05:02 1987
--- /usr/src/usr.bin/yacc/Makefile	Mon Jan 18 09:37:25 1993
***************
*** 13,19 ****
  yacc: y1.o y2.o y3.o y4.o
  	$(CC) ${SEPFLAG} -o yacc y?.o
  y1.o y2.o y3.o y4.o: dextern files
! install:
  	install -s yacc $(DESTDIR)/usr/bin
  	install -c yaccpar $(DESTDIR)/usr/lib
  clean :
--- 13,19 ----
  yacc: y1.o y2.o y3.o y4.o
  	$(CC) ${SEPFLAG} -o yacc y?.o
  y1.o y2.o y3.o y4.o: dextern files
! install: yacc yaccpar
  	install -s yacc $(DESTDIR)/usr/bin
  	install -c yaccpar $(DESTDIR)/usr/lib
  clean :
