Subject: Object file symbols limited to 8 characters [+FIX] (#171 - #14 of 19)
Index:	cc,as,ld,ar,ranlib,nm,nlist,adb,... (2.11BSD)

Description:
	For some time now (seem like eons;-)) the object file format used 
	by Unix for the PDP-11 has restricted symbols to 8 significant 
	characters (actually 7 due to the C compiler prefixing symbols with 
	a leading tilde (~) or underscore (_)).

	Aside from the "creative constraints" this imposes on the programmer
	there was the continuing problem of 'name collisions', especially
	when porting applications from machines whose object file format
	permitted longer symbol names.

	Numerous workarounds have been employed in the past.  The
	most common one relied on a combination of a name collision
	detection program ('shortc') and the flexname capability of the
	C preprocessor ('cpp').  This served to mask the problem while
	making debugging difficult due to mangled/synthetic symbol names.

Repeat-By:
	Attempt to compile the following program:

		int	this_is_a_long_name;
		int	this_is_a_long_name_too;

		main() { exit(0)};

Fix:
	This section is repeated in each of the 19 parts which make up
	the update kit.  You should read it perhaps once or twice, but
	then skip over it (how to do that is mentioned below).

	Taking a "hint" from the a.out(5) man page:

"The compiler will note name collisions when they occur within a single file...
There is really little that can be done about this.  Some thought is being
given to modifying the loader to flag detectable collisions, but the real
solution would be to change over to the 4BSD a.out format.  This would 
involve modifying the compiler, assembler and adb and then simply porting 
the 4.3BSD ld, nm, ranlib, strip and nlist.  Or perhaps simply porting the 
entire 4.3BSD suite might be best ...  Anyone interested in a project?"

	This I have done.  No more volunteers for the project need apply ;-)

	The new limit on symbol length is 32 characters!  There is still
	a limit (but it is _much_ more reasonable now) simply because of
	address space constraints - it needs to be possible to hold 
	at least one of the 'symbol' or 'string' tables in memory in many
	cases (nice to hold both, but - i know, get a 486;-)).

	It must be noted though that it is almost trivial now to raise
	the limit if that is desired - the programs which need to know
	the maximum length of a symbol string all have an easily changed
	#define statement now (usually MAXSYMLEN but there are a couple
	exceptions).  The 'string table' format itself doesn't care how 
	long the strings are.  The actual a.out format won't have to 
	change again to accomodate a higher limit on symbol name length!

	The "string table" object file format has been ported and all
	the necessary changes made throughout the entire system.

	The changes were *massive* and widespread.  Programs affected
	of course included the assembler and compiler.  Other programs
	affected were anything which accessed a symbol table entry either
	via nlist(3) [ps, pstat, fstat, vmstat, etc] or by reading
	object files [ld, ranlib, nm, adb, strip, etc].

	The actual changes to the compiler and assembler were minor
	because those programs had already been modified earlier 
	(updates #142, 143, 152, 153).  The compiler only needed to have
	the maximum size of a symbol name raised.  The assembler
	already knew how to generate 'string table' object files - all
	that needed to be done in 'as' was to flip a bit telling it
	to generate the new object format instead of the old style.

	+++++++++++++++
	And now for a bit of a narrative about what was done.   The
	detailed instructions for applying this part (#14 of 19) of the
	update kit follow the 'story' below.  This started out as
	a semi-organized accounting of what was done but then devolved
	into a semi-rambling tale due to the sheer bulk of the changes.

	You can skip to the details for applying #171 by searching for
	the string "=======" below - this header is replicated in all
	parts of this kit.
	+++++++++++++++

	Alas, the remaining changes were not so simple.  Complete
	replacements for ranlib(1), ar(1), nlist(3) were ported from
	the Net-2 release.  Other programs such as symorder(1) and
	two new programs 'symcompact' and 'strcompact' (used to
	compress/compact symbol and string tables) were written from
	scratch.

	Perhaps the two hardest parts of the whole effort were
	rewriting the linker 'ld' and making *large* modifications
	to the debugger 'adb'.  This was a very difficult job.
	'ld needed to scan new style ranlib archives, as well as
	using the "virtual memory" facility (the 'libvmf' routines 
	posted earlier) for symbol table management and so on.  'adb'
	was a MESS (having been written in a pseudo block structured
	macro language).  Since the new symbol table entry could be
	so much larger than the old it was no longer possible for adb
	to hold as much of the symbol table in memory - an alternate 
	method took a while to develope and implement, more on that
	in the patch which deals with adb (actually the changes to
	adb are so large there are two substantial parts of this update
	kit just for adb!).

	After the basic programs (ar, ld, ranlib, etc) were running
	the system had to be completely recompiled from sources, beginning
	with the object libraries.  After those were done the process
	of recompiling the rest of the system could proceed.

	Guess what happens when you recreate libc.a with a buggy linker?
	Yep - the system is rendered useless until backup copies of
	everything can be reloaded.  Don't let this happen to you - be
	sure (and i'll repeat the point later) to back up the system
	(or at least key executables and .a files) before installing
	this upgrade.

	In all there were about 330 files modified during the change of
	object file format.  Some of these were not directly related
	to the new object file format.  There were a number of (obsolete)
	references to "BSD2_10" lingering in the system.  Those 
	have been replaced with "pdp11" and the 'BSD2_10' define has
	been removed from the C preprocessor (cpp).  DO NOT use 'BSD2_10'
	to #ifdef pdp-11 sensitive code, use "pdp11" instead.

	During the recompile of the libraries a fairly large number of
	"shortened" names were lengthened - these included syscall routines
	such as "gethostname" which no longer had to be munged into
	"gethname".  Also a surprising number of typographical errors
	were uncovered (mainly in the Fortran libraries) where an extra
	character (beyond the 7th character) was left off or accidentally
	added.  These were all fixed and eventually, after a couple
	evenings, the libraries were built and installed.

	After the libraries were done it was the application programs'
	turn to be recompiled.  This took the better part of a couple 
	weeks to finally make it thru due to (as it turned out) the iterative 
	nature of the task.  A symbol would come up undefined and have
	to be tracked down exactly where the wrong definition/use was
	coming from.  Finally, however, the task was done and it was
	time to move on to the kernel.

	The kernel proved to be suprisingly easy - no real complications
	arose except when it came time to reboot, a bug had been introduced
	into 'autoconfig' (who uses 'nlist' to scan the kernel symbol table).
	Ouch!  That was another couple late nights.  Since the compiler
	supports unsigned longs now a number of small changes which
	ifdef'd 'u_long' to 'long' were removed.

	REMEMBER - you need to recompile 'autoconfig' and install it
	before rebooting the new kernel ;-)

	The performance of 'ps' though (and anything else which used
	nlist(3), 'fstat', 'w' are good examples) was unacceptably slow.

	So, amidst other delays (real work, the earthquake - which almost
	tossed the disc drive to the floor, etc) the "symorder" program
	was written (with ideas borrowed from the Net-2 version).  The
	symorder(1) program rather insists on holding both the symbol
	and string tables in memory - this was a problem (or could be
	if the kernel symbol table grows much more) so two new and 
	original programs were written:  'symcompact' and 'strcompact'.

	The first program compacts the symbol table by removing 
	'register' local variables (they're of no use to anyone - the debugger
	doesn't/can't do anything with them) and redundant global text
	symbols (symbols in an overlaid program which are in the root
	segment do not need both the '~' and '_' symbols present).

	The second program 'strcompact' is one that any 'string table'
	based object file system can use.  It implements "shared strings"
	for symbols - if a program has many references to 'error' as a
	local symbol, why store the string 'error' more than once?  Simply
	store one instance and then update the symbol table entries to
	all point to the same string!

	Using both 'strcompact' and 'symcompact' on the /unix image
	resulted in a file that was 15kb smaller.  Running 'symorder'
	then puts the most frequently used symbols at the front of the
	symbol table, the performance of 'w', 'pstat', and other programs
	which nlist(3) the kernel was now acceptable.

	Some of the parts of this kit are large.  The large patch files have
	been split into pieces which the 'patch' will handle, other parts
	(the replacement 'ar' sources) were left as a single 'shar' file
	rather than split them up.

	Each part of this kit consists of:

		a 'patchfile' - this is used with the "patch" program to
		update files.

		an optional 'script' - this is run ("sh script") to perform
		initialization, remove files, create directories and so on.

		an optional 'new.sources' - this is a "shar" file containing
		complete sources for a program.

	ALL pathnames are _absolute_ - this way you do not have to "cd"
	around the system, you should be able to apply all the patches
	while you are in /tmp (or /usr/tmp - wherever you have the most
	free space).

	Be sure that you have at least 40mb free on /usr before 
	rebuilding the system - if you do not then building in stages
	will be necessary.

	Part 19 contains the detailed instructions for rebuilding the
	system _after_ the previous 18 patches have been applied.

	The patches (#158 thru #175) should be applied in order following
	the directions in each part.

	DO NOT recompile anything once the patching has begun until requested
	to do so in part 19.  Many of the system include files are modified
	and the object file format is being changed - recompilation will not
	be possible until the transformation of the system and object libraries
	is complete.

	AT A MINIMUM you will want to back up the following files (unless
	you have a known good backup already made) in case you need to
	recompile something before part 19 is done:

		/bin/ar
		/bin/ld
		/bin/nm
		/bin/as
		/usr/bin/ranlib
		/lib/c0
		/lib/crt0.o
		/lib/mcrt0.o
		/lib/libc.a
		/bin/nm
		/usr/include/*.h
		/usr/include/sys/*.h

	In part 19 there is a *complete* list of all files affected
	(all 336 of them) - you may wish to back those up also.

	And now the common header ('boilerplate') is over (at last ;-)),
	let the installation guide begin.

	As always, the complete 2.11BSD updates are available via 
	anonymous FTP to 'ftp.iipo.gtegsc.com' in the directory /pub/2.11BSD

==========  #171 (Part #14 of 19)

	This part updates the following files.  BACK THESE UP if you
	have any worries about the proceedure or do not have a bootable
	backup already at hand.

	Some of these do not exist - they are part of #172 (in an attempt
	to keep the sizes of the parts from being huge).

/usr/src/ucb/Mail/Makefile
/usr/src/ucb/ex/expreserve.c
/usr/src/ucb/indent/indent_globs.h
/usr/src/ucb/pascal/pxp/fdec.c
/usr/src/ucb/ftp/ruserpass.c
/usr/src/ucb/ftp/cmdtab.c
/usr/src/ucb/ftp/ftp_var.h
/usr/src/ucb/netstat/host.c
/usr/src/ucb/netstat/main.c
/usr/src/ucb/netstat/if.c
/usr/src/ucb/netstat/inet.c
/usr/src/ucb/netstat/mbuf.c
/usr/src/ucb/netstat/ns.c
/usr/src/ucb/netstat/route.c
/usr/src/ucb/netstat/unix.c
/usr/src/ucb/tftp/tftp.c
/usr/src/ucb/window/scanner.c
/usr/src/ucb/window/main.c
/usr/src/ucb/window/ww.h
/usr/src/ucb/window/tt.h
/usr/src/ucb/window/var.c
/usr/src/ucb/window/parser.h
/usr/src/ucb/window/local.h
/usr/src/ucb/window/shortnames.h
/usr/src/ucb/window/tttermcap.c
/usr/src/ucb/window/Makefile
/usr/src/ucb/lock/lock.c
/usr/src/ucb/tn3270/Makefile
/usr/src/ucb/tn3270/tn3270.c
/usr/src/ucb/tn3270/keyboard.c
/usr/src/ucb/tn3270/ebctab.c
/usr/src/ucb/tn3270/asctab.c
/usr/src/ucb/tn3270/termin.c
/usr/src/ucb/tn3270/datastream.c
/usr/src/ucb/tn3270/screen.c
/usr/src/ucb/tn3270/mset.c
/usr/src/ucb/tn3270/map3270.c
/usr/src/ucb/tn3270/options.c
/usr/src/ucb/tn3270/ectype.c
/usr/src/ucb/tn3270/shortnames.h
/usr/src/ucb/talk/talk.h
/usr/src/ucb/vmstat.c
/usr/src/ucb/telnet.c
/usr/src/ucb/quota.c
/usr/src/ucb/lastcomm.c
/usr/src/ucb/strings.c
/usr/src/ucb/tail.c
/usr/src/ucb/tcopy.c
/usr/src/ucb/gcore.c
/usr/src/ucb/w.c
/usr/src/ucb/symorder.c
/usr/src/ucb/Makefile
/usr/src/ucb/symcompact.c
/usr/src/ucb/strcompact.c

	0) Be in a temp directory ("cd /tmp" or "cd /usr/tmp")

	1) Save the following shar archive to a file (/tmp/171 for example)

	2) Unpack the archive:  sh 171

	3) Run the script:  ./script

	4) Patch the files:  patch -p0 < patchfile

	5) rm 171 script patchfile

	Part 14 of 19 is done.  DO NOT rebuild or compile _anything_
	at this point!

===== cut here
#! /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:
#	script
#	patchfile
# This archive created: Fri Feb  4 23:20:40 1994
export PATH; PATH=/bin:/usr/bin:$PATH
if test -f 'script'
then
	echo shar: "will not over-write existing file 'script'"
else
sed 's/^X//' << \SHAR_EOF > 'script'
X#! /bin/sh
X
Xrm -f /usr/src/ucb/window/shortnames.h
Xrm -f /usr/src/ucb/tn3270/shortnames.h
Xrm -f /usr/src/ucb/symorder.c
SHAR_EOF
chmod 755 'script'
fi
if test -f 'patchfile'
then
	echo shar: "will not over-write existing file 'patchfile'"
else
sed 's/^X//' << \SHAR_EOF > 'patchfile'
X*** /usr/src/ucb/Mail/Makefile.old	Tue Oct 27 21:36:12 1992
X--- /usr/src/ucb/Mail/Makefile	Thu Jan  6 21:53:20 1994
X***************
X*** 7,13 ****
X  	getname.o head.o v7.local.o lex.o list.o main.o names.o popen.o \
X  	quit.o send.o strings.o temp.o tty.o vars.o str.o
X  #
X! CFLAGS=	-O -Dregister_file=Regfile -Dprintheaders=Aprinthead -Dcolljmp_p=Colljmp
X  XSTR=	/usr/ucb/xstr
X  DESTDIR=
X  CTAGS=	/usr/ucb/ctags -w
X--- 7,13 ----
X  	getname.o head.o v7.local.o lex.o list.o main.o names.o popen.o \
X  	quit.o send.o strings.o temp.o tty.o vars.o str.o
X  #
X! CFLAGS=	-O
X  XSTR=	/usr/ucb/xstr
X  DESTDIR=
X  CTAGS=	/usr/ucb/ctags -w
X*** /usr/src/ucb/ex/expreserve.c.old	Sun Sep  8 12:05:44 1991
X--- /usr/src/ucb/ex/expreserve.c	Fri Dec 31 22:50:10 1993
X***************
X*** 9,19 ****
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char *sccsid = "@(#)expreserve.c	7.13 (Berkeley) 1/22/86";
X! #endif
X! 
X! #ifdef BSD2_10
X! #include <short_names.h
X  #endif
X  
X  #include <stdio.h>
X--- 9,15 ----
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char *sccsid = "@(#)expreserve.c	7.13.1 (2.11BSD GTE) 12/31/93";
X  #endif
X  
X  #include <stdio.h>
X*** /usr/src/ucb/indent/indent_globs.h.old	Sun Feb 22 17:25:06 1987
X--- /usr/src/ucb/indent/indent_globs.h	Sat Jan  1 01:41:36 1994
X***************
X*** 33,43 ****
X  
X  #include <stdio.h>
X  
X- #ifdef BSD2_10
X- #define compute_code_target	cc_trg
X- #define compute_label_target	cl_trg
X- #endif
X- 
X  #define BACKSLASH '\\'
X  #define bufsize 600	   /* size of internal buffers */
X  #define inp_bufs 600	   /* size of input buffer */
X--- 33,38 ----
X*** /usr/src/ucb/pascal/pxp/fdec.c.old	Sat May 31 12:31:43 1986
X--- /usr/src/ucb/pascal/pxp/fdec.c	Thu Jan  6 22:17:30 1994
X***************
X*** 3,9 ****
X   * pxp - Pascal execution profiler
X   *
X   * Bill Joy UCB
X!  * Version 1.2 January 1979
X   */
X  
X  #include "0.h"
X--- 3,9 ----
X   * pxp - Pascal execution profiler
X   *
X   * Bill Joy UCB
X!  * Version 1.2.1 January 1994
X   */
X  
X  #include "0.h"
X***************
X*** 31,37 ****
X  		setprint();
X  	else
X  		printon();
X! 	if (r[0] == T_PROG && noinclud && bracket)
X  		printoff();
X  	if (cbn > 1 && !justify)
X  		ppgoin(PRFN);
X--- 31,37 ----
X  		setprint();
X  	else
X  		printon();
X! 	if (r[0] == T_PROG && noinclude && bracket)
X  		printoff();
X  	if (cbn > 1 && !justify)
X  		ppgoin(PRFN);
X***************
X*** 184,190 ****
X  	blk = bundle[2];
X  	rescnt(&pfcnts[cbn]);
X  	setprint();
X! 	if (cbn == 1 && noinclud && bracket)
X  		printoff();
X  	if (lastbn > cbn)
X  		unprint();
X--- 184,190 ----
X  	blk = bundle[2];
X  	rescnt(&pfcnts[cbn]);
X  	setprint();
X! 	if (cbn == 1 && noinclude && bracket)
X  		printoff();
X  	if (lastbn > cbn)
X  		unprint();
X*** /usr/src/ucb/ftp/ruserpass.c.old	Sun Jun 25 22:09:33 1989
X--- /usr/src/ucb/ftp/ruserpass.c	Mon Jan 10 22:15:32 1994
X***************
X*** 15,23 ****
X   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   */
X  
X! #if	!defined(lint) && !defined(pdp11)
X! static char sccsid[] = "@(#)ruserpass.c	5.1 (Berkeley) 3/1/89";
X! #endif /* not lint */
X  
X  #include <sys/types.h>
X  #include <stdio.h>
X--- 15,23 ----
X   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)ruserpass.c	5.1.1 (2.11BSD) 12/31/93";
X! #endif
X  
X  #include <sys/types.h>
X  #include <stdio.h>
X***************
X*** 25,33 ****
X  #include <ctype.h>
X  #include <sys/stat.h>
X  #include <errno.h>
X- #ifdef	BSD2_10
X- #include <short_names.h>
X- #endif
X  #include "ftp_var.h"
X  
X  char	*renvlook(), *malloc(), *index(), *getenv(), *getpass(), *getlogin();
X--- 25,30 ----
X*** /usr/src/ucb/ftp/cmdtab.c.old	Sun Jun 25 22:05:55 1989
X--- /usr/src/ucb/ftp/cmdtab.c	Mon Jan 10 22:15:55 1994
X***************
X*** 16,38 ****
X   */
X  
X  #if	!defined(lint) && !defined(pdp11)
X! static char sccsid[] = "@(#)cmdtab.c	5.9 (Berkeley) 3/21/89";
X! #endif /* not lint */
X  
X  #include "ftp_var.h"
X- 
X- #ifdef BSD2_10
X- #define	runiquehelp	h_runique
X- #define	connecthelp	h_connect
X- #define	accounthelp	h_account
X- #define	verbosehelp	h_verbose
X- #define	suniquehelp	h_sunique
X- #define	mdeletehelp	h_mdelete
X- #define restarthelp	h_restart
X- #define sizecmdhelp	h_sizecmd
X- #define	modtimehelp	h_modtime
X- #define rmtstatushelp	h_rmtsts
X- #endif
X  
X  /*
X   * User FTP -- Command Tables.
X--- 16,25 ----
X   */
X  
X  #if	!defined(lint) && !defined(pdp11)
X! static char sccsid[] = "@(#)cmdtab.c	5.9.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include "ftp_var.h"
X  
X  /*
X   * User FTP -- Command Tables.
X*** /usr/src/ucb/ftp/ftp_var.h.old	Wed May 10 11:40:54 1989
X--- /usr/src/ucb/ftp/ftp_var.h	Mon Jan 10 22:16:10 1994
X***************
X*** 14,31 ****
X   * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
X   * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   *
X!  *	@(#)ftp_var.h	5.5 (Berkeley) 6/29/88
X   */
X  
X  /*
X   * FTP global variables.
X   */
X- 
X- #ifdef BSD2_10
X- #define	connected	c_nnected
X- #define	hostnamebuf	bf_hostname
X- #define restart_point	rst_point
X- #endif
X  
X  /*
X   * Options and other state info.
X--- 14,25 ----
X   * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
X   * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   *
X!  *	@(#)ftp_var.h	5.5.1 (2.11BSD GTE) 1/1/94
X   */
X  
X  /*
X   * FTP global variables.
X   */
X  
X  /*
X   * Options and other state info.
X*** /usr/src/ucb/netstat/host.c.old	Tue May  3 08:20:43 1988
X--- /usr/src/ucb/netstat/host.c	Mon Jan 10 22:23:58 1994
X***************
X*** 10,18 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)host.c	5.3 (Berkeley) 8/11/86";
X! #endif not lint
X  
X  #include <sys/types.h>
X  #include <sys/mbuf.h>
X--- 10,18 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)host.c	5.3.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <sys/types.h>
X  #include <sys/mbuf.h>
X***************
X*** 24,30 ****
X  extern	int kmem;
X  extern 	int nflag;
X  extern	char *inetname();
X! #ifdef BSD2_10
X  #define klseek slseek
X  #endif
X  
X--- 24,30 ----
X  extern	int kmem;
X  extern 	int nflag;
X  extern	char *inetname();
X! #ifdef pdp11
X  #define klseek slseek
X  #endif
X  
X*** /usr/src/ucb/netstat/main.c.old	Sat May  7 09:22:59 1988
X--- /usr/src/ucb/netstat/main.c	Mon Jan 10 22:24:31 1994
X***************
X*** 10,29 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1983 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)main.c	5.8 (Berkeley) 8/11/86";
X! #endif not lint
X  
X  #include <sys/param.h>
X  #include <sys/vmmac.h>
X  #include <sys/socket.h>
X! #ifndef BSD2_10
X  #include <machine/pte.h>
X  #endif
X  #include <ctype.h>
X--- 10,27 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1983 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)main.c	5.8.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <sys/param.h>
X  #include <sys/vmmac.h>
X  #include <sys/socket.h>
X! #ifndef pdp11
X  #include <machine/pte.h>
X  #endif
X  #include <ctype.h>
X***************
X*** 32,42 ****
X  #include <nlist.h>
X  #include <stdio.h>
X  
X! #ifdef BSD2_10
X! #define nsprotox _nsprtx
X! #endif
X! 
X! #ifdef BSD2_10
X  struct nlist nl[] = {
X  #define N_NETDATA	0
X  	{ "_netdata" },
X--- 30,36 ----
X  #include <nlist.h>
X  #include <stdio.h>
X  
X! #ifdef pdp11
X  struct nlist nl[] = {
X  #define N_NETDATA	0
X  	{ "_netdata" },
X***************
X*** 183,189 ****
X  struct	pte *Sysmap;
X  
X  char	*system = "/vmunix";
X! #ifndef BSD2_10
X  char	*kmemf = "/dev/kmem";
X  #else
X  char	*kmemf = "/dev/mem";
X--- 177,183 ----
X  struct	pte *Sysmap;
X  
X  char	*system = "/vmunix";
X! #ifndef pdp11
X  char	*kmemf = "/dev/kmem";
X  #else
X  char	*kmemf = "/dev/mem";
X***************
X*** 333,339 ****
X  		fprintf(stderr, "%s: no namelist\n", system);
X  		exit(1);
X  	}
X! #ifdef BSD2_10
X  	nlist(netnix, &nl[N_DUMMY+1]);
X  	if (nl[N_DUMMY+1].n_type == 0) {
X  		fprintf(stderr, "%s: no namelist\n", netnix);
X--- 327,333 ----
X  		fprintf(stderr, "%s: no namelist\n", system);
X  		exit(1);
X  	}
X! #ifdef pdp11
X  	nlist(netnix, &nl[N_DUMMY+1]);
X  	if (nl[N_DUMMY+1].n_type == 0) {
X  		fprintf(stderr, "%s: no namelist\n", netnix);
X***************
X*** 350,356 ****
X  		perror(kmemf);
X  		exit(1);
X  	}
X! #ifdef BSD2_10
X  	lseek(kmem, (off_t)nl[N_NETDATA].n_value, 0);
X  	read(kmem, &base2_10, sizeof (base2_10));
X  #else
X--- 344,350 ----
X  		perror(kmemf);
X  		exit(1);
X  	}
X! #ifdef pdp11
X  	lseek(kmem, (off_t)nl[N_NETDATA].n_value, 0);
X  	read(kmem, &base2_10, sizeof (base2_10));
X  #else
X***************
X*** 446,452 ****
X   * Seek into supervisor memory for a value
X   * -- we can get away with this because everybody calls with off==0.
X   */
X! #ifdef BSD2_10
X  off_t
X  slseek(fd, base, off)
X  	int fd, off;
X--- 440,446 ----
X   * Seek into supervisor memory for a value
X   * -- we can get away with this because everybody calls with off==0.
X   */
X! #ifdef pdp11
X  off_t
X  slseek(fd, base, off)
X  	int fd, off;
X***************
X*** 455,461 ****
X      base += ctob((long)base2_10);
X      return(lseek(fd, base, off));
X  }
X! #endif BSD2_10
X  
X  /*
X   * Seek into the kernel for a value.
X--- 449,455 ----
X      base += ctob((long)base2_10);
X      return(lseek(fd, base, off));
X  }
X! #endif
X  
X  /*
X   * Seek into the kernel for a value.
X***************
X*** 465,471 ****
X  	int fd, off;
X  	off_t base;
X  {
X! #ifndef BSD2_10
X  	if (kflag) {
X  		/* get kernel pte */
X  #ifdef vax
X--- 459,465 ----
X  	int fd, off;
X  	off_t base;
X  {
X! #ifndef pdp11
X  	if (kflag) {
X  		/* get kernel pte */
X  #ifdef vax
X*** /usr/src/ucb/netstat/if.c.old	Mon Dec 26 15:47:52 1988
X--- /usr/src/ucb/netstat/if.c	Mon Jan 10 22:24:56 1994
X***************
X*** 10,18 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)if.c	5.6 (Berkeley) 2/7/88";
X! #endif not lint
X  
X  #include <sys/types.h>
X  #include <sys/socket.h>
X--- 10,18 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)if.c	5.6.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <sys/types.h>
X  #include <sys/socket.h>
X***************
X*** 34,40 ****
X  extern	char *interface;
X  extern	int unit;
X  extern	char *routename(), *netname(), *ns_phost(), *index();
X! #ifdef BSD2_10
X  #define klseek slseek
X  #endif
X  
X--- 34,40 ----
X  extern	char *interface;
X  extern	int unit;
X  extern	char *routename(), *netname(), *ns_phost(), *index();
X! #ifdef pdp11
X  #define klseek slseek
X  #endif
X  
X***************
X*** 62,68 ****
X  		return;
X  	}
X  	klseek(kmem, ifnetaddr, 0);
X! #ifdef BSD2_10
X  	{
X  	unsigned int x;
X  	read(kmem, &x, sizeof x);
X--- 62,68 ----
X  		return;
X  	}
X  	klseek(kmem, ifnetaddr, 0);
X! #ifdef pdp11
X  	{
X  	unsigned int x;
X  	read(kmem, &x, sizeof x);
X***************
X*** 207,213 ****
X  	int catchalarm();
X  
X  	klseek(kmem, off, 0);
X! #ifdef BSD2_10
X  	{
X  	unsigned int x;
X  	read(kmem, &x, sizeof (x));
X--- 207,213 ----
X  	int catchalarm();
X  
X  	klseek(kmem, off, 0);
X! #ifdef pdp11
X  	{
X  	unsigned int x;
X  	read(kmem, &x, sizeof (x));
X*** /usr/src/ucb/netstat/inet.c.old	Thu May  4 10:43:16 1989
X--- /usr/src/ucb/netstat/inet.c	Mon Jan 10 22:25:19 1994
X***************
X*** 10,18 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)inet.c	5.9.1.1 (Berkeley) 2/7/88";
X! #endif not lint
X  
X  #include <strings.h>
X  #include <stdio.h>
X--- 10,18 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)inet.c	5.9.2 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <strings.h>
X  #include <stdio.h>
X***************
X*** 55,61 ****
X  extern	int nflag;
X  extern	char *plural();
X  
X! #ifdef BSD2_10
X  #define klseek slseek
X  #endif
X  
X--- 55,61 ----
X  extern	int nflag;
X  extern	char *plural();
X  
X! #ifdef pdp11
X  #define klseek slseek
X  #endif
X  
X*** /usr/src/ucb/netstat/mbuf.c.old	Tue May  3 09:10:04 1988
X--- /usr/src/ucb/netstat/mbuf.c	Mon Jan 10 22:25:39 1994
X***************
X*** 10,18 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)mbuf.c	5.3 (Berkeley) 2/3/87";
X! #endif not lint
X  
X  #include <stdio.h>
X  #include <sys/param.h>
X--- 10,18 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)mbuf.c	5.3.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <stdio.h>
X  #include <sys/param.h>
X***************
X*** 46,52 ****
X  int nmbtypes = sizeof(mbstat.m_mtypes) / sizeof(short);
X  bool seen[NMBTYPES];		/* "have we seen this type yet?" */
X  
X! #ifdef BSD2_10
X  #define klseek slseek
X  #endif
X  
X--- 46,52 ----
X  int nmbtypes = sizeof(mbstat.m_mtypes) / sizeof(short);
X  bool seen[NMBTYPES];		/* "have we seen this type yet?" */
X  
X! #ifdef pdp11
X  #define klseek slseek
X  #endif
X  
X*** /usr/src/ucb/netstat/ns.c.old	Tue May  3 09:15:33 1988
X--- /usr/src/ucb/netstat/ns.c	Mon Jan 10 22:25:56 1994
X***************
X*** 10,18 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)ns.c	5.8 (Berkeley) 3/29/88";
X! #endif not lint
X  
X  #include <stdio.h>
X  #include <errno.h>
X--- 10,18 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)ns.c	5.8.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <stdio.h>
X  #include <errno.h>
X***************
X*** 41,47 ****
X  #define SANAMES
X  #include <netns/spp_debug.h>
X  
X! #ifdef BSD2_10
X  #define klseek slseek
X  #endif
X  
X--- 41,47 ----
X  #define SANAMES
X  #include <netns/spp_debug.h>
X  
X! #ifdef pdp11
X  #define klseek slseek
X  #endif
X  
X*** /usr/src/ucb/netstat/route.c.old	Sat May  7 09:52:37 1988
X--- /usr/src/ucb/netstat/route.c	Mon Jan 10 22:26:22 1994
X***************
X*** 10,17 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)route.c	5.13 (Berkeley) 88/02/07";
X  #endif
X  
X  #include <stdio.h>
X--- 10,17 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)route.c	5.13.1 (2.11BSD GTE) 1/1/94";
X  #endif
X  
X  #include <stdio.h>
X***************
X*** 29,37 ****
X  
X  #include <netdb.h>
X  
X! #ifdef BSD2_10
X  #define klseek slseek
X- #define hashsizeaddr hsizeaddr
X  #endif
X  
X  extern	int kmem;
X--- 29,36 ----
X  
X  #include <netdb.h>
X  
X! #ifdef pdp11
X  #define klseek slseek
X  #endif
X  
X  extern	int kmem;
X*** /usr/src/ucb/netstat/unix.c.old	Tue May  3 09:49:47 1988
X--- /usr/src/ucb/netstat/unix.c	Mon Jan 10 22:26:39 1994
X***************
X*** 10,18 ****
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)unix.c	5.5 (Berkeley) 2/7/88";
X! #endif not lint
X  
X  /*
X   * Display protocol blocks in the unix domain.
X--- 10,18 ----
X   * is provided ``as is'' without express or implied warranty.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)unix.c	5.5.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  /*
X   * Display protocol blocks in the unix domain.
X***************
X*** 49,55 ****
X  		return;
X  	}
X  	klseek(kmem, fileaddr, L_SET);
X! #ifndef BSD2_10
X  	if (read(kmem, (char *)&filep, sizeof (filep)) != sizeof (filep)) {
X  		printf("File table address, bad read.\n");
X  		return;
X--- 49,55 ----
X  		return;
X  	}
X  	klseek(kmem, fileaddr, L_SET);
X! #ifndef pdp11
X  	if (read(kmem, (char *)&filep, sizeof (filep)) != sizeof (filep)) {
X  		printf("File table address, bad read.\n");
X  		return;
X***************
X*** 60,66 ****
X  		printf("Out of memory (file table).\n");
X  		return;
X  	}
X! #ifndef BSD2_10
X  	klseek(kmem, (off_t)filep, L_SET);
X  #endif
X  	if (read(kmem, (char *)fil, nfile * sizeof (struct file)) !=
X--- 60,66 ----
X  		printf("Out of memory (file table).\n");
X  		return;
X  	}
X! #ifndef pdp11
X  	klseek(kmem, (off_t)filep, L_SET);
X  #endif
X  	if (read(kmem, (char *)fil, nfile * sizeof (struct file)) !=
X***************
X*** 72,78 ****
X  	for (fp = fil; fp < fileNFILE; fp++) {
X  		if (fp->f_count == 0 || fp->f_type != DTYPE_SOCKET)
X  			continue;
X! #ifdef BSD2_10
X  		slseek(kmem, (off_t)fp->f_data, L_SET);
X  #else
X  		klseek(kmem, (off_t)fp->f_data, L_SET);
X--- 72,78 ----
X  	for (fp = fil; fp < fileNFILE; fp++) {
X  		if (fp->f_count == 0 || fp->f_type != DTYPE_SOCKET)
X  			continue;
X! #ifdef pdp11
X  		slseek(kmem, (off_t)fp->f_data, L_SET);
X  #else
X  		klseek(kmem, (off_t)fp->f_data, L_SET);
X***************
X*** 98,104 ****
X  	struct mbuf mbuf, *m;
X  	struct sockaddr_un *sa;
X  	static int first = 1;
X! #ifdef BSD2_10
X  #define klseek slseek
X  #endif
X  
X--- 98,104 ----
X  	struct mbuf mbuf, *m;
X  	struct sockaddr_un *sa;
X  	static int first = 1;
X! #ifdef pdp11
X  #define klseek slseek
X  #endif
X  
X*** /usr/src/ucb/tftp/tftp.c.old	Wed May 15 21:56:15 1991
X--- /usr/src/ucb/tftp/tftp.c	Mon Jan 10 22:30:44 1994
X***************
X*** 17,28 ****
X   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)tftp.c	5.9 (Berkeley) 6/1/90";
X! #endif /* not lint */
X! 
X! #ifdef	BSD2_10
X! #define	timeoutbuf to_buf
X  #endif
X  
X  /* Many bug fixes are from Jim Guyton <guyton@rand-unix> */
X--- 17,24 ----
X   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)tftp.c	5.9.1 (2.11BSD GTE) 1/1/94";
X  #endif
X  
X  /* Many bug fixes are from Jim Guyton <guyton@rand-unix> */
X*** /usr/src/ucb/window/scanner.c.old	Tue Jun 14 09:54:59 1988
X--- /usr/src/ucb/window/scanner.c	Thu Jan  6 22:28:36 1994
X***************
X*** 1,5 ****
X! #ifndef lint
X! static char sccsid[] = "@(#)scanner.c	3.8 4/24/85";
X  #endif
X  
X  /*
X--- 1,5 ----
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)scanner.c	3.9 1/06/94";
X  #endif
X  
X  /*
X***************
X*** 11,17 ****
X  #include <stdio.h>
X  #include "value.h"
X  #include "token.h"
X- #include "shortnames.h"
X  #include "context.h"
X  #include "string.h"
X  
X--- 11,16 ----
X*** /usr/src/ucb/window/main.c.old	Mon Dec 26 15:54:49 1988
X--- /usr/src/ucb/window/main.c	Sat Jan  1 01:57:05 1994
X***************
X*** 1,5 ****
X! #ifndef lint
X! static char sccsid[] = "@(#)main.c	3.30 8/14/85";
X  #endif
X  
X  /*
X--- 1,5 ----
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)main.c	3.31 1/1/94";
X  #endif
X  
X  /*
X***************
X*** 14,20 ****
X  #include "string.h"
X  #include "char.h"
X  #include "local.h"
X! #ifdef BSD2_10
X  #include "tt.h"
X  #endif
X  
X--- 14,20 ----
X  #include "string.h"
X  #include "char.h"
X  #include "local.h"
X! #ifdef pdp11
X  #include "tt.h"
X  #endif
X  
X***************
X*** 30,36 ****
X  	char xflag = 0;
X  	char *cmd = 0;
X  	char tflag = 0;
X! #ifdef BSD2_10
X  	/* Move some buffers onto the stack to get at the memory */
X  	/* The program really doesn't fit, but we make a valiant effort */
X  	char inbuf[BUFSIZ];
X--- 30,36 ----
X  	char xflag = 0;
X  	char *cmd = 0;
X  	char tflag = 0;
X! #ifdef pdp11
X  	/* Move some buffers onto the stack to get at the memory */
X  	/* The program really doesn't fit, but we make a valiant effort */
X  	char inbuf[BUFSIZ];
X*** /usr/src/ucb/window/ww.h.old	Tue Aug  2 15:15:27 1988
X--- /usr/src/ucb/window/ww.h	Sat Jan  1 01:57:55 1994
X***************
X*** 8,21 ****
X   * the terms of the Berkeley Software License Agreement.
X   */
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  #include <sgtty.h>
X  #include <setjmp.h>
X  
X! #ifdef BSD2_10
X  #define NWW	9		/* maximum number of windows */
X  #else
X  #define NWW	30		/* maximum number of windows */
X--- 8,17 ----
X   * the terms of the Berkeley Software License Agreement.
X   */
X  
X  #include <sgtty.h>
X  #include <setjmp.h>
X  
X! #ifdef pdp11
X  #define NWW	9		/* maximum number of windows */
X  #else
X  #define NWW	30		/* maximum number of windows */
X***************
X*** 175,181 ****
X  struct ww_tty wwnewtty;		/* the new (current) terminal settings */
X  struct ww_tty wwwintty;		/* the terminal settings for windows */
X  char *wwterm;			/* the terminal name */
X! #ifdef BSD2_10
X  	/* these are on the stack; see main.c */
X  char *wwtermcap;		/* place for the termcap */
X  char *wwkeys;			/* termcap fields for the function keys */
X--- 171,177 ----
X  struct ww_tty wwnewtty;		/* the new (current) terminal settings */
X  struct ww_tty wwwintty;		/* the terminal settings for windows */
X  char *wwterm;			/* the terminal name */
X! #ifdef pdp11
X  	/* these are on the stack; see main.c */
X  char *wwtermcap;		/* place for the termcap */
X  char *wwkeys;			/* termcap fields for the function keys */
X*** /usr/src/ucb/window/tt.h.old	Tue Jun 14 09:43:39 1988
X--- /usr/src/ucb/window/tt.h	Sat Jan  1 01:58:16 1994
X***************
X*** 1,5 ****
X  /*
X!  * @(#)tt.h	3.15 9/20/85
X   */
X  
X  /*
X--- 1,5 ----
X  /*
X!  * @(#)tt.h	3.16 1/1/94
X   */
X  
X  /*
X***************
X*** 64,70 ****
X   * Clean interface to termcap routines.
X   * Too may t's.
X   */
X! #ifdef BSD2_10
X  char *tt_strings;		/* string buffer on stack (see main.c) */
X  #else
X  char tt_strings[1024];		/* string buffer */
X--- 64,70 ----
X   * Clean interface to termcap routines.
X   * Too may t's.
X   */
X! #ifdef pdp11
X  char *tt_strings;		/* string buffer on stack (see main.c) */
X  #else
X  char tt_strings[1024];		/* string buffer */
X***************
X*** 89,95 ****
X   * But I'm too lazy to think up different names.
X   */
X  #define	TTOBSIZ	512
X! #ifdef BSD2_10
X  char *tt_ob;
X  #else
X  char tt_ob[TTOBSIZ];
X--- 89,95 ----
X   * But I'm too lazy to think up different names.
X   */
X  #define	TTOBSIZ	512
X! #ifdef pdp11
X  char *tt_ob;
X  #else
X  char tt_ob[TTOBSIZ];
X*** /usr/src/ucb/window/var.c.old	Tue Jun 14 09:43:39 1988
X--- /usr/src/ucb/window/var.c	Sat Jan  1 01:58:47 1994
X***************
X*** 1,5 ****
X! #ifndef lint
X! static char sccsid[] = "@(#)var.c	3.8 4/24/85";
X  #endif
X  
X  /*
X--- 1,5 ----
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)var.c	3.9 1/1/94";
X  #endif
X  
X  /*
X***************
X*** 7,16 ****
X   * All rights reserved.  Redistribution permitted subject to
X   * the terms of the Berkeley Software License Agreement.
X   */
X- 
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X  
X  #include "value.h"
X  #include "var.h"
X--- 7,12 ----
X*** /usr/src/ucb/window/parser.h.old	Tue Jun 14 09:43:38 1988
X--- /usr/src/ucb/window/parser.h	Sat Jan  1 01:59:04 1994
X***************
X*** 1,5 ****
X  /*
X!  * @(#)parser.h	3.4 4/24/85
X   */
X  
X  /*
X--- 1,5 ----
X  /*
X!  * @(#)parser.h	3.5 1/1/94
X   */
X  
X  /*
X***************
X*** 7,16 ****
X   * All rights reserved.  Redistribution permitted subject to
X   * the terms of the Berkeley Software License Agreement.
X   */
X- 
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X  
X  #include <stdio.h>
X  #include "value.h"
X--- 7,12 ----
X*** /usr/src/ucb/window/local.h.old	Tue Jun 14 09:43:38 1988
X--- /usr/src/ucb/window/local.h	Sat Jan  1 01:59:22 1994
X***************
X*** 1,5 ****
X  /*
X!  * @(#)local.h	3.4 4/24/85
X   */
X  
X  /*
X--- 1,5 ----
X  /*
X!  * @(#)local.h	3.5 1/1/94
X   */
X  
X  /*
X***************
X*** 14,20 ****
X  
X  #define RUNCOM		".windowrc"
X  #define ESCAPEC		ctrl(p)
X! #ifdef BSD2_10
X  #define NLINE		3			/* default text buffer size */
X  #else
X  #define NLINE		48			/* default text buffer size */
X--- 14,20 ----
X  
X  #define RUNCOM		".windowrc"
X  #define ESCAPEC		ctrl(p)
X! #ifdef pdp11
X  #define NLINE		3			/* default text buffer size */
X  #else
X  #define NLINE		48			/* default text buffer size */
X*** /usr/src/ucb/window/tttermcap.c.old	Tue Aug  2 15:10:41 1988
X--- /usr/src/ucb/window/tttermcap.c	Thu Jan  6 22:27:59 1994
X***************
X*** 1,5 ****
X! #ifndef lint
X! static char sccsid[] = "@(#)tttermcap.c	3.6 9/20/85";
X  #endif
X  
X  /*
X--- 1,5 ----
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)tttermcap.c	3.7 1/06/94";
X  #endif
X  
X  /*
X***************
X*** 8,14 ****
X   * the terms of the Berkeley Software License Agreement.
X   */
X  
X- #include "shortnames.h"
X  #include "tt.h"
X  
X  char *tgetstr();
X--- 8,13 ----
X*** /usr/src/ucb/window/Makefile.old	Tue Jun 14 09:43:38 1988
X--- /usr/src/ucb/window/Makefile	Thu Jan  6 22:30:15 1994
X***************
X*** 3,9 ****
X  # All rights reserved.  The Berkeley software License Agreement
X  # specifies the terms and conditions for redistribution.
X  #
X! #	@(#)Makefile	3.1 (Berkeley) 6/19/85
X  #
X  #
X  # Window makefile, update with mkmf (or "make depend")
X--- 3,9 ----
X  # All rights reserved.  The Berkeley software License Agreement
X  # specifies the terms and conditions for redistribution.
X  #
X! #	@(#)Makefile	3.2 (2.11BSD GTE) 1/06/94
X  #
X  #
X  # Window makefile, update with mkmf (or "make depend")
X***************
X*** 214,220 ****
X  		@$(LINKER) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
X  		@echo "done"
X  
X! clean:;		@rm -f $(OBJS) make.out
X  
X  depend:;	@mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM)
X  
X--- 214,220 ----
X  		@$(LINKER) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
X  		@echo "done"
X  
X! clean:;		@rm -f $(OBJS) make.out a.out
X  
X  depend:;	@mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM)
X  
X*** /usr/src/ucb/lock/lock.c.old	Mon May 15 09:50:18 1989
X--- /usr/src/ucb/lock/lock.c	Fri Dec 31 22:51:47 1993
X***************
X*** 15,29 ****
X   * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1980, 1987 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif /* not lint */
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)lock.c	5.10 (Berkeley) 3/26/89";
X! #endif /* not lint */
X  
X  /*
X   * Lock a terminal up until the given key is entered, until the root
X--- 15,27 ----
X   * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1980, 1987 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)lock.c	5.10.1 (2.11BSD GTE) 12/31/93";
X! #endif
X  
X  /*
X   * Lock a terminal up until the given key is entered, until the root
X***************
X*** 42,48 ****
X  #include <stdio.h>
X  #include <ctype.h>
X  #include <strings.h>
X- #include <short_names.h>
X  
X  #define	TIMEOUT	15
X  
X--- 40,45 ----
X*** /usr/src/ucb/tn3270/Makefile.old	Mon Jan 18 09:36:05 1993
X--- /usr/src/ucb/tn3270/Makefile	Wed Jan 26 22:28:33 1994
X***************
X*** 126,139 ****
X  
X  # DO NOT DELETE THIS LINE
X  
X! asctab.o: shortnames.h ascebc.h
X! ebctab.o: shortnames.h ascebc.h
X! options.o: shortnames.h options.h
X! screen.o: shortnames.h screen.h 3270.h
X! datastream.o: shortnames.h ascebc.h 3270.h screen.h
X! keyboard.o: shortnames.h m4.out ascebc.h 3270.h screen.h options.h ectype.h
X! termin.o: shortnames.h m4.out state.h
X! map3270.o: shortnames.h m4.out state.h default.map3270
X! ectype.o: shortnames.h ectype.h
X! tn3270.o: shortnames.h
X! mset.o: shortnames.h state.h m4.out
X--- 126,138 ----
X  
X  # DO NOT DELETE THIS LINE
X  
X! asctab.o: ascebc.h
X! ebctab.o: ascebc.h
X! options.o: options.h
X! screen.o: screen.h 3270.h
X! datastream.o: ascebc.h 3270.h screen.h
X! keyboard.o: m4.out ascebc.h 3270.h screen.h options.h ectype.h
X! termin.o: m4.out state.h
X! map3270.o: m4.out state.h default.map3270
X! ectype.o: ectype.h
X! mset.o: state.h m4.out
X*** /usr/src/ucb/tn3270/tn3270.c.old	Mon Sep 26 22:21:35 1988
X--- /usr/src/ucb/tn3270/tn3270.c	Sat Jan  1 02:02:47 1994
X***************
X*** 20,33 ****
X   */
X  
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)tn3270.c	2.7\t5/13/86";
X  #endif
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  /*
X   * User telnet program, specially modified for tn3270.
X   */
X--- 20,29 ----
X   */
X  
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)tn3270.c	2.8\t1/1/94";
X  #endif
X  
X  /*
X   * User telnet program, specially modified for tn3270.
X   */
X***************
X*** 52,58 ****
X  #define	strip(x)	((x)&0177)
X  #define min(x,y)	((x<y)? x:y)
X  
X! #ifndef BSD2_10
X  #define IBUFSIZ	8*BUFSIZ
X  static char	Ibuf[IBUFSIZ], *Ifrontp = Ibuf, *Ibackp = Ibuf;
X  #else
X--- 48,54 ----
X  #define	strip(x)	((x)&0177)
X  #define min(x,y)	((x<y)? x:y)
X  
X! #ifndef pdp11
X  #define IBUFSIZ	8*BUFSIZ
X  static char	Ibuf[IBUFSIZ], *Ifrontp = Ibuf, *Ibackp = Ibuf;
X  #else
X***************
X*** 170,176 ****
X  	int argc;
X  	char *argv[];
X  {
X! #ifdef BSD2_10
X  	char	SIbuf[IBUFSIZ];
X  
X  	Ibuf = Ifrontp = Ibackp = SIbuf;
X--- 166,172 ----
X  	int argc;
X  	char *argv[];
X  {
X! #ifdef pdp11
X  	char	SIbuf[IBUFSIZ];
X  
X  	Ibuf = Ifrontp = Ibackp = SIbuf;
X*** /usr/src/ucb/tn3270/keyboard.c.old	Sat Jul 30 19:43:53 1988
X--- /usr/src/ucb/tn3270/keyboard.c	Sat Jan  1 02:03:54 1994
X***************
X*** 19,30 ****
X   *	express or implied warranty.
X   */
X  
X- 
X- 
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  /* test stub for DataFrom3270, etc. */
X  
X  #define DEFINEAIDS
X--- 19,24 ----
X***************
X*** 35,43 ****
X  #include "options.h"
X  #include "ectype.h"
X  
X! #ifndef	lint
X! static char sccsid[] = "@(#)keyboard.c	2.6	4/4/86";
X! #endif	/* ndef lint */
X  
X  #define EmptyChar	(ourPTail == ourBuffer)
X  #define FullChar	(ourPTail == ourBuffer+sizeof ourBuffer)
X--- 29,37 ----
X  #include "options.h"
X  #include "ectype.h"
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)keyboard.c	2.7	1/1/94";
X! #endif
X  
X  #define EmptyChar	(ourPTail == ourBuffer)
X  #define FullChar	(ourPTail == ourBuffer+sizeof ourBuffer)
X***************
X*** 647,653 ****
X  		    i = SetBufferAddress(0,0);
X  		}
X  		if (OptLeftMargin <= ScreenLineOffset(CursorAddress)) {
X! #ifndef BSD2_10
X  		    if (IsUnProtected(SetBufferAddress(ScreenLine(i),
X  							    OptLeftMargin))) {
X  #else
X--- 641,647 ----
X  		    i = SetBufferAddress(0,0);
X  		}
X  		if (OptLeftMargin <= ScreenLineOffset(CursorAddress)) {
X! #ifndef pdp11
X  		    if (IsUnProtected(SetBufferAddress(ScreenLine(i),
X  							    OptLeftMargin))) {
X  #else
X*** /usr/src/ucb/tn3270/ebctab.c.old	Sat Jul 30 19:43:52 1988
X--- /usr/src/ucb/tn3270/ebctab.c	Sat Jan  1 02:04:30 1994
X***************
X*** 24,37 ****
X   * ebcdic to ascii translation tables
X   */
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  #include "ascebc.h"
X  
X! #ifndef	lint
X! static	char	sccsid[] = "@(#)ebctab.c	2.3";
X  #endif	/* ndef lint */
X  
X  char	ebcasc[NEBCASC][NEBC] = {
X--- 24,33 ----
X   * ebcdic to ascii translation tables
X   */
X  
X  #include "ascebc.h"
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static	char	sccsid[] = "@(#)ebctab.c	2.4";
X  #endif	/* ndef lint */
X  
X  char	ebcasc[NEBCASC][NEBC] = {
X*** /usr/src/ucb/tn3270/asctab.c.old	Sat Jul 30 19:43:51 1988
X--- /usr/src/ucb/tn3270/asctab.c	Sat Jan  1 02:05:02 1994
X***************
X*** 24,38 ****
X   * ascii to ebcdic translation tables
X   */
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  #include "ascebc.h"
X  
X! #ifndef	lint
X! static	char	sccsid[] = "@(#)asctab.c	2.6";
X! #endif	/* ndef lint */
X  
X  char	ascebc[NASCEBC][NASCII]	= {
X  
X--- 24,34 ----
X   * ascii to ebcdic translation tables
X   */
X  
X  #include "ascebc.h"
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static	char	sccsid[] = "@(#)asctab.c	2.7";
X! #endif
X  
X  char	ascebc[NASCEBC][NASCII]	= {
X  
X*** /usr/src/ucb/tn3270/termin.c.old	Sat Jul 30 19:43:56 1988
X--- /usr/src/ucb/tn3270/termin.c	Sat Jan  1 02:05:34 1994
X***************
X*** 24,38 ****
X  	codes
X   */
X  
X! #ifndef	lint
X! static	char	sccsid[] = "@(#)termin.c	2.1	4/11/85";
X! #endif	/* ndef lint */
X  
X  #include <ctype.h>
X- 
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X  
X  #include "m4.out"		/* output of termcodes.m4 */
X  #include "state.h"
X--- 24,34 ----
X  	codes
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static	char	sccsid[] = "@(#)termin.c	2.2	1/1/94";
X! #endif
X  
X  #include <ctype.h>
X  
X  #include "m4.out"		/* output of termcodes.m4 */
X  #include "state.h"
X*** /usr/src/ucb/tn3270/datastream.c.old	Sat Jul 30 19:43:52 1988
X--- /usr/src/ucb/tn3270/datastream.c	Sat Jan  1 02:06:29 1994
X***************
X*** 27,43 ****
X  #include <stdio.h>
X  #include <curses.h>
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  #include "ascebc.h"
X  #include "3270.h"
X  #include "screen.h"
X  
X! #ifndef	lint
X! static char sccsid[] = "@(#)datastream.c	2.12\t12/16/85";
X! #endif	/* lint */
X  
X  void EmptyTerminal();
X  
X--- 27,39 ----
X  #include <stdio.h>
X  #include <curses.h>
X  
X  #include "ascebc.h"
X  #include "3270.h"
X  #include "screen.h"
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)datastream.c	2.13\t1/1/94";
X! #endif
X  
X  void EmptyTerminal();
X  
X***************
X*** 81,87 ****
X      struct sgttyb ourttyb;
X      static int speeds[] = { 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800,
X  		2400, 4800, 9600 };
X! #ifndef BSD2_10
X      static char KSEbuffer[2050];
X  #else
X      static char KSEbuffer[512];
X--- 77,83 ----
X      struct sgttyb ourttyb;
X      static int speeds[] = { 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800,
X  		2400, 4800, 9600 };
X! #ifndef pdp11
X      static char KSEbuffer[2050];
X  #else
X      static char KSEbuffer[512];
X*** /usr/src/ucb/tn3270/screen.c.old	Sat Jul 30 19:43:55 1988
X--- /usr/src/ucb/tn3270/screen.c	Sat Jan  1 02:07:09 1994
X***************
X*** 21,35 ****
X  
X  
X  /* this file implements primitives to drive the screen. */
X! #ifndef	lint
X! static	char	sccsid[] = "@(#)screen.c	2.1	4/11/85";
X! #endif	/* ndef lint */
X  
X  #include <stdio.h>
X- 
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X  
X  #include "screen.h"
X  #include "3270.h"
X--- 21,31 ----
X  
X  
X  /* this file implements primitives to drive the screen. */
X! #if	defined(DOSCCS) && !defined(lint)
X! static	char	sccsid[] = "@(#)screen.c	2.2	1/1/94";
X! #endif
X  
X  #include <stdio.h>
X  
X  #include "screen.h"
X  #include "3270.h"
X*** /usr/src/ucb/tn3270/mset.c.old	Sat Jul 30 19:43:54 1988
X--- /usr/src/ucb/tn3270/mset.c	Sat Jan  1 02:07:29 1994
X***************
X*** 26,35 ****
X   *		setenv MAP3270 "`mset`"
X   */
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  #include <curses.h>
X  #include "state.h"
X  #define LETS_SEE_ASCII
X--- 26,31 ----
X*** /usr/src/ucb/tn3270/map3270.c.old	Sat Jul 30 19:43:54 1988
X--- /usr/src/ucb/tn3270/map3270.c	Sat Jan  1 02:08:06 1994
X***************
X*** 20,28 ****
X   */
X  
X  
X! #ifndef	LINT
X! static char sccsid[] = "@(#)map3270.c	2.5";
X! #endif	/* LINT */
X  
X  /*	This program reads a description file, somewhat like /etc/termcap,
X      that describes the mapping between the current terminals keyboard and
X--- 20,28 ----
X   */
X  
X  
X! #if	defined(DOSCCS) && !defined(lint)
X! static char sccsid[] = "@(#)map3270.c	2.6";
X! #endif
X  
X  /*	This program reads a description file, somewhat like /etc/termcap,
X      that describes the mapping between the current terminals keyboard and
X***************
X*** 44,52 ****
X   */
X  #endif /* DOCUMENTATION_ONLY */
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X  
X  #include <stdio.h>
X  #include <ctype.h>
X--- 44,49 ----
X*** /usr/src/ucb/tn3270/options.c.old	Sat Jul 30 19:43:55 1988
X--- /usr/src/ucb/tn3270/options.c	Sat Jan  1 02:08:20 1994
X***************
X*** 23,32 ****
X  	commands to handle the various local options (APL ON, etc.)
X   */
X  
X- #ifdef BSD2_10
X- #include "shortnames.h"
X- #endif
X- 
X  #include "options.h"
X  
X  OptInit()
X--- 23,28 ----
X*** /usr/src/ucb/tn3270/ectype.c.old	Sat Jul 30 19:43:52 1988
X--- /usr/src/ucb/tn3270/ectype.c	Sat Jan  1 02:08:31 1994
X***************
X*** 1,8 ****
X! /*	@(#)ectype.c	1.1	*/
X! 
X! #ifdef BSD2_10
X! #include "shortnames.h"
X! #endif
X  
X  #include "ectype.h"
X  
X--- 1,4 ----
X! /*	@(#)ectype.c	1.2	*/
X  
X  #include "ectype.h"
X  
X*** /usr/src/ucb/talk/talk.h.old	Mon Dec 26 15:53:16 1988
X--- /usr/src/ucb/talk/talk.h	Mon Jan 10 22:31:47 1994
X***************
X*** 3,21 ****
X   * All rights reserved.  The Berkeley software License Agreement
X   * specifies the terms and conditions for redistribution.
X   *
X!  *	@(#)talk.h	5.1 (Berkeley) 6/6/85
X   */
X- 
X- #ifdef BSD2_10
X- #define	current_line		c_line
X- #define	current_state		c_state
X- #define	daemon_addr		d_addr
X- #define	daemon_port		d_port
X- #define	his_machine_name	hs_mnam
X- #define	his_machine_addr	hs_madd
X- #define	my_machine_name		my_mnam
X- #define	my_machine_addr		my_madd
X- #endif
X  
X  #include <curses.h>
X  #include <utmp.h>
X--- 3,10 ----
X   * All rights reserved.  The Berkeley software License Agreement
X   * specifies the terms and conditions for redistribution.
X   *
X!  *	@(#)talk.h	5.1.1 (2.11BSD GTE) 1/1/94
X   */
X  
X  #include <curses.h>
X  #include <utmp.h>
X*** /usr/src/ucb/vmstat.c.old	Thu Oct 18 13:59:36 1990
X--- /usr/src/ucb/vmstat.c	Mon Jan 10 22:32:12 1994
X***************
X*** 4,31 ****
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! /*
X!  * Modified January 1988 by Joel A. Mussman to be compatible with
X!  * either 4.3BSD or 2.10BSD systems
X!  */
X! 
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)vmstat.c	5.4 (Berkeley) 5/17/86";
X! #endif not lint
X  
X  #include <stdio.h>
X  #include <ctype.h>
X  #include <nlist.h>
X  
X- #ifdef BSD2_10
X- #include <short_names.h>
X- #endif
X  #include <sys/param.h>
X  #include <sys/file.h>
X  #include <sys/vm.h>
X--- 4,21 ----
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)vmstat.c	5.4.1 (2.11BSD GTE) 12/31/93";
X! #endif
X  
X  #include <stdio.h>
X  #include <ctype.h>
X  #include <nlist.h>
X  
X  #include <sys/param.h>
X  #include <sys/file.h>
X  #include <sys/vm.h>
X***************
X*** 34,40 ****
X  #include <sys/dir.h>
X  #include <sys/inode.h>
X  #include <sys/namei.h>
X! #ifdef BSD2_10
X  #include <machine/machparam.h>
X  #include <sys/text.h>
X  #endif
X--- 24,30 ----
X  #include <sys/dir.h>
X  #include <sys/inode.h>
X  #include <sys/namei.h>
X! #ifdef pdp11
X  #include <machine/machparam.h>
X  #include <sys/text.h>
X  #endif
X***************
X*** 57,67 ****
X  #define	X_MAXFREE	7
X  	{ "_maxfree" },
X  #define	X_BOOTTIME	8
X- #ifdef BSD2_10
X- 	{ "_boottim" },
X- #else
X  	{ "_boottime" },
X- #endif
X  #define	X_DKXFER	9
X  	{ "_dk_xfer" },
X  #define X_REC		10
X--- 47,53 ----
X***************
X*** 86,92 ****
X  	{ "_dk_ndrive" },
X  #define	X_XSTATS	20
X  	{ "_xstats" },
X! #ifdef BSD2_10
X  #define	X_DK_NAME	21
X  	{ "_dk_name" },
X  #define	X_DK_UNIT	22
X--- 72,78 ----
X  	{ "_dk_ndrive" },
X  #define	X_XSTATS	20
X  	{ "_xstats" },
X! #ifdef pdp11
X  #define	X_DK_NAME	21
X  	{ "_dk_name" },
X  #define	X_DK_UNIT	22
X***************
X*** 94,110 ****
X  #define X_FREEMEM	23
X  	{ "_freemem" },
X  #else
X- #ifdef vax
X  #define X_MBDINIT	21
X  	{ "_mbdinit" },
X  #define X_UBDINIT	22
X  	{ "_ubdinit" },
X  #endif
X- #endif
X  	{ "" },
X  };
X  
X! #ifdef BSD2_10
X  char	**dk_name;
X  int	*dk_unit;
X  struct	xstats	pxstats, cxstats;
X--- 80,94 ----
X  #define X_FREEMEM	23
X  	{ "_freemem" },
X  #else
X  #define X_MBDINIT	21
X  	{ "_mbdinit" },
X  #define X_UBDINIT	22
X  	{ "_ubdinit" },
X  #endif
X  	{ "" },
X  };
X  
X! #ifdef pdp11
X  char	**dk_name;
X  int	*dk_unit;
X  struct	xstats	pxstats, cxstats;
X***************
X*** 115,129 ****
X  int	*dr_select;
X  int	dk_ndrive;
X  int	ndrives = 0;
X! #ifdef BSD2_10
X  char	*defdrives[] = { "rp0", 0 };
X  #else
X- #ifdef vax
X  char	*defdrives[] = { "hp0", "hp1", "hp2",  0 };
X- #else
X- char	*defdrives[] = { 0 };
X  #endif
X- #endif
X  double	stat1();
X  int	firstfree, maxfree;
X  int	hz;
X--- 99,109 ----
X  int	*dr_select;
X  int	dk_ndrive;
X  int	ndrives = 0;
X! #ifdef pdp11
X  char	*defdrives[] = { "rp0", 0 };
X  #else
X  char	*defdrives[] = { "hp0", "hp1", "hp2",  0 };
X  #endif
X  double	stat1();
X  int	firstfree, maxfree;
X  int	hz;
X***************
X*** 138,144 ****
X  	int	busy;
X  	long	time[CPUSTATES];
X  	long	*xfer;
X! #ifdef BSD2_10
X  	struct	vmrate Rate;
X  	struct	vmtotal	Total;
X  	struct	vmsum Sum;
X--- 118,124 ----
X  	int	busy;
X  	long	time[CPUSTATES];
X  	long	*xfer;
X! #ifdef pdp11
X  	struct	vmrate Rate;
X  	struct	vmtotal	Total;
X  	struct	vmsum Sum;
X***************
X*** 156,162 ****
X  #define	sum		s.Sum
X  #define	forkstat	s.Forkstat
X  
X! #ifdef BSD2_10
X  struct	vmsum osum;
X  #else
X  struct	vmmeter osum;
X--- 136,142 ----
X  #define	sum		s.Sum
X  #define	forkstat	s.Forkstat
X  
X! #ifdef pdp11
X  struct	vmsum osum;
X  #else
X  struct	vmmeter osum;
X***************
X*** 218,224 ****
X  		case 'i':
X  			iflag++;
X  			break;
X! #ifdef BSD2_10
X  		case 'p':
X  			flag29++;
X  			break;
X--- 198,204 ----
X  		case 'i':
X  			iflag++;
X  			break;
X! #ifdef pdp11
X  		case 'p':
X  			flag29++;
X  			break;
X***************
X*** 230,236 ****
X  			exit(1);
X  		}
X  	}
X! #ifndef BSD2_10
X  	lseek(mf, (long)nl[X_FIRSTFREE].n_value, L_SET);
X  	read(mf, &firstfree, sizeof firstfree);
X  	lseek(mf, (long)nl[X_MAXFREE].n_value, L_SET);
X--- 210,216 ----
X  			exit(1);
X  		}
X  	}
X! #ifndef pdp11
X  	lseek(mf, (long)nl[X_FIRSTFREE].n_value, L_SET);
X  	read(mf, &firstfree, sizeof firstfree);
X  	lseek(mf, (long)nl[X_MAXFREE].n_value, L_SET);
X***************
X*** 313,319 ****
X  		dr_select[i] = 1;
X  		ndrives++;
X  	}
X! #ifdef BSD2_10
X  	/* handle initial retrieval of the xstats structure */
X  	lseek(mf, (long)nl[X_XSTATS].n_value, L_SET);
X  	read(mf, &cxstats, sizeof(cxstats));
X--- 293,299 ----
X  		dr_select[i] = 1;
X  		ndrives++;
X  	}
X! #ifdef pdp11
X  	/* handle initial retrieval of the xstats structure */
X  	lseek(mf, (long)nl[X_XSTATS].n_value, L_SET);
X  	read(mf, &cxstats, sizeof(cxstats));
X***************
X*** 328,334 ****
X   	read(mf, s.time, sizeof s.time);
X  	lseek(mf, (long)nl[X_DKXFER].n_value, L_SET);
X  	read(mf, s.xfer, dk_ndrive * sizeof (long));
X! #ifdef BSD2_10
X  	/*
X  	 * This would be a whole lot easier if the variables in each
X  	 * were all longs...
X--- 308,314 ----
X   	read(mf, s.time, sizeof s.time);
X  	lseek(mf, (long)nl[X_DKXFER].n_value, L_SET);
X  	read(mf, s.xfer, dk_ndrive * sizeof (long));
X! #ifdef pdp11
X  	/*
X  	 * This would be a whole lot easier if the variables in each
X  	 * were all longs...
X***************
X*** 386,392 ****
X  	}
X  	if(etime == 0.)
X  		etime = 1.;
X! #ifdef BSD2_10
X  	printf("%2d%2d%2d", total.t_rq, total.t_dw, total.t_sw);
X  	/*
X  	 * We don't use total.t_free because it slops around too much
X--- 366,372 ----
X  	}
X  	if(etime == 0.)
X  		etime = 1.;
X! #ifdef pdp11
X  	printf("%2d%2d%2d", total.t_rq, total.t_dw, total.t_sw);
X  	/*
X  	 * We don't use total.t_free because it slops around too much
X***************
X*** 402,408 ****
X  #define pgtok(a) ((a)*NBPG/1024)
X  	printf("%6d%6d", pgtok(total.t_avm), pgtok(total.t_free));
X  #endif
X! #ifdef BSD2_10
X  	if (flag29)
X  		printf("%4D%3D  ", rate.v_swpin / nintv, rate.v_swpout / nintv);
X  	else {
X--- 382,388 ----
X  #define pgtok(a) ((a)*NBPG/1024)
X  	printf("%6d%6d", pgtok(total.t_avm), pgtok(total.t_free));
X  #endif
X! #ifdef pdp11
X  	if (flag29)
X  		printf("%4D%3D  ", rate.v_swpin / nintv, rate.v_swpout / nintv);
X  	else {
X***************
X*** 426,432 ****
X  	for (i = 0; i < dk_ndrive; i++)
X  		if (dr_select[i])
X  			stats(i);
X! #ifdef BSD2_10
X  	if (flag29)
X  		printf("%4D%4D%4D%4D%4D%4D",
X  		    rate.v_pdma / nintv, INTS(rate.v_intr / nintv),
X--- 406,412 ----
X  	for (i = 0; i < dk_ndrive; i++)
X  		if (dr_select[i])
X  			stats(i);
X! #ifdef pdp11
X  	if (flag29)
X  		printf("%4D%4D%4D%4D%4D%4D",
X  		    rate.v_pdma / nintv, INTS(rate.v_intr / nintv),
X***************
X*** 438,444 ****
X  	    rate.v_swtch/nintv);
X  	for(i=0; i<CPUSTATES; i++) {
X  		float f = stat1(i);
X! #ifdef BSD2_10
X  		if (!flag29)
X  #endif
X  		if (i == 0) {		/* US+NI */
X--- 418,424 ----
X  	    rate.v_swtch/nintv);
X  	for(i=0; i<CPUSTATES; i++) {
X  		float f = stat1(i);
X! #ifdef pdp11
X  		if (!flag29)
X  #endif
X  		if (i == 0) {		/* US+NI */
X***************
X*** 460,466 ****
X  {
X  	register int i, j;
X  
X! #ifdef BSD2_10
X  	if (flag29)
X  	    printf(" procs       memory      swap      ");
X  	else
X--- 440,446 ----
X  {
X  	register int i, j;
X  
X! #ifdef pdp11
X  	if (flag29)
X  	    printf(" procs       memory      swap      ");
X  	else
X***************
X*** 477,483 ****
X  	i = ndrives * 3 - 6 - i;
X  	for (j = 0; j < i; j++)
X  		putchar(' ');
X! #ifdef BSD2_10
X  	if (flag29) {
X  		printf("              cpu\n");
X  		printf(" r b w   avm  tx   fre   i  o   ");
X--- 457,463 ----
X  	i = ndrives * 3 - 6 - i;
X  	for (j = 0; j < i; j++)
X  		putchar(' ');
X! #ifdef pdp11
X  	if (flag29) {
X  		printf("              cpu\n");
X  		printf(" r b w   avm  tx   fre   i  o   ");
X***************
X*** 493,499 ****
X  	for (i = 0; i < dk_ndrive; i++)
X  		if (dr_select[i])
X  			printf("%c%c ", dr_name[i][0], dr_name[i][2]);	
X! #ifdef BSD2_10
X  	if (flag29)
X  	    printf(" pd  in  sy  tr  ov  cs us ni sy id\n");
X  	else
X--- 473,479 ----
X  	for (i = 0; i < dk_ndrive; i++)
X  		if (dr_select[i])
X  			printf("%c%c ", dr_name[i][0], dr_name[i][2]);	
X! #ifdef pdp11
X  	if (flag29)
X  	    printf(" pd  in  sy  tr  ov  cs us ni sy id\n");
X  	else
X***************
X*** 504,510 ****
X  
X  dotimes()
X  {
X! #ifdef BSD2_10
X  	printf("page in/out/reclamation is not applicable to 2.10BSD\n");
X  #else
X  	lseek(mf, (long)nl[X_REC].n_value, L_SET);
X--- 484,490 ----
X  
X  dotimes()
X  {
X! #ifdef pdp11
X  	printf("page in/out/reclamation is not applicable to 2.10BSD\n");
X  #else
X  	lseek(mf, (long)nl[X_REC].n_value, L_SET);
X***************
X*** 533,544 ****
X  	printf("%9D swap outs\n", sum.v_swpout);
X  	printf("%9D pages swapped in\n", sum.v_pswpin / CLSIZE);
X  	printf("%9D pages swapped out\n", sum.v_pswpout / CLSIZE);
X! #ifndef BSD2_10
X  	printf("%9D total address trans. faults taken\n", sum.v_faults);
X  #endif
X  	printf("%9D page ins\n", sum.v_pgin);
X  	printf("%9D page outs\n", sum.v_pgout);
X! #ifndef BSD2_10
X  	printf("%9D pages paged in\n", sum.v_pgpgin);
X  	printf("%9D pages paged out\n", sum.v_pgpgout);
X  	printf("%9D sequential process pages freed\n", sum.v_seqfree);
X--- 513,524 ----
X  	printf("%9D swap outs\n", sum.v_swpout);
X  	printf("%9D pages swapped in\n", sum.v_pswpin / CLSIZE);
X  	printf("%9D pages swapped out\n", sum.v_pswpout / CLSIZE);
X! #ifndef pdp11
X  	printf("%9D total address trans. faults taken\n", sum.v_faults);
X  #endif
X  	printf("%9D page ins\n", sum.v_pgin);
X  	printf("%9D page outs\n", sum.v_pgout);
X! #ifndef pdp11
X  	printf("%9D pages paged in\n", sum.v_pgpgin);
X  	printf("%9D pages paged out\n", sum.v_pgpgout);
X  	printf("%9D sequential process pages freed\n", sum.v_seqfree);
X***************
X*** 565,571 ****
X  	printf("%9D pseudo-dma dz interrupts\n", sum.v_pdma);
X  #endif
X  	printf("%9D traps\n", sum.v_trap);
X! #ifdef BSD2_10
X  	printf("%9D overlay emts\n", sum.v_ovly);
X  #endif
X  	printf("%9D system calls\n", sum.v_syscall);
X--- 545,551 ----
X  	printf("%9D pseudo-dma dz interrupts\n", sum.v_pdma);
X  #endif
X  	printf("%9D traps\n", sum.v_trap);
X! #ifdef pdp11
X  	printf("%9D overlay emts\n", sum.v_ovly);
X  #endif
X  	printf("%9D system calls\n", sum.v_syscall);
X***************
X*** 591,597 ****
X  	    xstats.free_inuse, xstats.free_cache, xstats.free_cacheswap);
X  }
X  
X! #ifdef BSD2_10
X  char Pages[] = "clicks";
X  #else
X  char Pages[] = "pages";
X--- 571,577 ----
X  	    xstats.free_inuse, xstats.free_cache, xstats.free_cacheswap);
X  }
X  
X! #ifdef pdp11
X  char Pages[] = "clicks";
X  #else
X  char Pages[] = "pages";
X***************
X*** 636,642 ****
X  dointr(nintv)
X  	long nintv;
X  {
X! #ifdef BSD2_10
X  	printf("Device interrupt statistics are not applicable to 2.10BSD\n");
X  #else
X  	int nintr, inttotal;
X--- 616,622 ----
X  dointr(nintv)
X  	long nintv;
X  {
X! #ifdef pdp11
X  	printf("Device interrupt statistics are not applicable to 2.10BSD\n");
X  #else
X  	int nintr, inttotal;
X***************
X*** 681,687 ****
X  
X  read_names()
X  {
X! #ifdef BSD2_10
X  	char two_char[2];
X  	register int i;
X  
X--- 661,667 ----
X  
X  read_names()
X  {
X! #ifdef pdp11
X  	char two_char[2];
X  	register int i;
X  
X***************
X*** 735,739 ****
X  		    cp[0], cp[1], udev.ui_unit);
X  	}
X  #endif vax
X! #endif /* BSD2_10 */
X  }
X--- 715,719 ----
X  		    cp[0], cp[1], udev.ui_unit);
X  	}
X  #endif vax
X! #endif /* pdp11 */
X  }
X*** /usr/src/ucb/telnet.c.old	Tue Aug 25 13:33:00 1992
X--- /usr/src/ucb/telnet.c	Mon Jan 10 22:32:48 1994
X***************
X*** 4,18 ****
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1983 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)telnet.c	5.16 (Berkeley) 5/27/86";
X! #endif not lint
X  
X  /*
X   * User telnet program.
X--- 4,16 ----
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1983 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)telnet.c	5.16.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  /*
X   * User telnet program.
X***************
X*** 20,37 ****
X   * Many of the FUNCTIONAL changes in this newest version of telnet
X   * were suggested by Dave Borman of Cray Research, Inc.
X   */
X- #ifdef BSD2_10
X- #define	Sendlist	_Sndls
X- #define	Sendlist2	_Sndls2
X- #define	getnextsend	_gnxtsn
X- #define	getnexttoggle	_gnxttg
X- #define	getnextset	_gnxtst
X- #define	getnextmode	_gnxtmd
X- #define	getnextcmd	_gnxtcm
X- #define	connected	_cnnctd
X- #define	display		_dsply
X- #define	displayhelp	_dsplyh
X- #endif
X  
X  #include <sys/types.h>
X  #include <sys/socket.h>
X--- 18,23 ----
X*** /usr/src/ucb/quota.c.old	Sun Jul  3 20:04:28 1988
X--- /usr/src/ucb/quota.c	Mon Jan 10 22:38:58 1994
X***************
X*** 4,18 ****
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)quota.c	5.4 (Berkeley) 2/24/86";
X! #endif not lint
X  
X  /*
X   * Disk quota reporting program.
X--- 4,16 ----
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)quota.c	5.4.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  /*
X   * Disk quota reporting program.
X***************
X*** 145,151 ****
X  				break;
X  
X  			case sizeof dqblk:	/* OK */
X! #ifdef BSD2_10
X  				dqblk.dqb_curblocks= btodb(dqblk.dqb_curblocks);
X  				dqblk.dqb_bsoftlimit = btodb(dqblk.dqb_bsoftlimit);
X  				dqblk.dqb_bhardlimit = btodb(dqblk.dqb_bhardlimit);
X--- 143,149 ----
X  				break;
X  
X  			case sizeof dqblk:	/* OK */
X! #ifdef pdp11
X  				dqblk.dqb_curblocks= btodb(dqblk.dqb_curblocks);
X  				dqblk.dqb_bsoftlimit = btodb(dqblk.dqb_bsoftlimit);
X  				dqblk.dqb_bhardlimit = btodb(dqblk.dqb_bhardlimit);
X***************
X*** 199,205 ****
X  		}
X  		if (vflag || dqblk.dqb_curblocks || dqblk.dqb_curinodes) {
X  			heading(uid, name);
X! #ifdef BSD2_10
X  			printf("%10s%8ld%c%7ld%8ld%8s%8d%c%7u%8u%8s\n"
X  				, fs->fs_file
X  				, dqblk.dqb_curblocks
X--- 197,203 ----
X  		}
X  		if (vflag || dqblk.dqb_curblocks || dqblk.dqb_curinodes) {
X  			heading(uid, name);
X! #ifdef pdp11
X  			printf("%10s%8ld%c%7ld%8ld%8s%8d%c%7u%8u%8s\n"
X  				, fs->fs_file
X  				, dqblk.dqb_curblocks
X*** /usr/src/ucb/lastcomm.c.old	Fri Jun 15 15:17:21 1990
X--- /usr/src/ucb/lastcomm.c	Mon Jan 10 22:39:11 1994
X***************
X*** 4,27 ****
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)lastcomm.c	5.2 (Berkeley) 5/4/86";
X! #endif not lint
X  
X  /*
X   * last command
X   */
X- #ifdef BSD2_10
X- #define	outrangename	_orngnm
X- #define	outrangeuid	_orngui
X- #endif
X- 
X  #include <sys/param.h>
X  #include <sys/acct.h>
X  #include <sys/file.h>
X--- 4,20 ----
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)lastcomm.c	5.2.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  /*
X   * last command
X   */
X  #include <sys/param.h>
X  #include <sys/acct.h>
X  #include <sys/file.h>
X*** /usr/src/ucb/strings.c.old	Sat Feb 21 17:59:42 1987
X--- /usr/src/ucb/strings.c	Mon Jan 10 22:39:27 1994
X***************
X*** 4,18 ****
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)strings.c	5.1 (Berkeley) 5/31/85";
X! #endif not lint
X  
X  #include <sys/types.h>
X  #include <stdio.h>
X--- 4,16 ----
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)strings.c	5.1.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <sys/types.h>
X  #include <stdio.h>
X***************
X*** 84,106 ****
X  			find((long) 100000000L);
X  			continue;
X  		}
X! #ifdef BSD2_10
X! 		{
X! 			register int ovlcnt;
X! 			struct	ovlhdr ovlbuf;
X! 			off_t off;
X! 
X! 			off = (long)N_TXTOFF(header) + (long)header.a_text;
X! 			if (header.a_magic == A_MAGIC5 || header.a_magic == A_MAGIC6) {
X! 				fread ((char *)&ovlbuf, sizeof(ovlbuf), 1, stdin);
X! 				for (ovlcnt = 0; ovlcnt < NOVL; ovlcnt++)
X! 					off += ovlbuf.ov_siz[ovlcnt];
X! 			}
X! 			fseek(stdin, off, L_SET);
X! 		}
X! #else !BSD2_10
X! 		fseek(stdin, (long) N_TXTOFF(header)+header.a_text, L_SET);
X! #endif BSD2_10
X  		find((long) header.a_data);
X  	} while (argc > 0);
X  }
X--- 82,88 ----
X  			find((long) 100000000L);
X  			continue;
X  		}
X! 		fseek(stdin, (long) N_DATOFF(header), L_SET);
X  		find((long) header.a_data);
X  	} while (argc > 0);
X  }
X***************
X*** 121,127 ****
X  			*cp++ = 0;
X  			if (cp > &buf[minlength]) {
X  				if (oflg)
X! 					printf("%7D ", ftell(stdin) - cc - 1);
X  				printf("%s\n", buf);
X  			}
X  			cp = buf, cc = 0;
X--- 103,109 ----
X  			*cp++ = 0;
X  			if (cp > &buf[minlength]) {
X  				if (oflg)
X! 					printf("%ld ", ftell(stdin) - cc - 1);
X  				printf("%s\n", buf);
X  			}
X  			cp = buf, cc = 0;
X*** /usr/src/ucb/tail.c.old	Wed Mar 11 10:22:45 1987
X--- /usr/src/ucb/tail.c	Mon Jan 10 22:39:46 1994
X***************
X*** 4,18 ****
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)tail.c	5.2 (Berkeley) 1/10/86";
X! #endif not lint
X  
X  /* tail command 
X   *
X--- 4,16 ----
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1980 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)tail.c	5.2.1 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  /* tail command 
X   *
X***************
X*** 36,42 ****
X  #include	<sys/file.h>
X  #include	<errno.h>
X  
X! #ifdef BSD2_10
X  #define LBIN 16385
X  #else
X  #define LBIN 32769
X--- 34,40 ----
X  #include	<sys/file.h>
X  #include	<errno.h>
X  
X! #ifdef pdp11
X  #define LBIN 16385
X  #else
X  #define LBIN 32769
X*** /usr/src/ucb/tcopy.c.old	Thu Aug 10 21:35:20 1989
X--- /usr/src/ucb/tcopy.c	Sat Jan  1 02:14:53 1994
X***************
X*** 4,18 ****
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #ifndef lint
X  char copyright[] =
X  "@(#) Copyright (c) 1985 Regents of the University of California.\n\
X   All rights reserved.\n";
X- #endif not lint
X  
X! #ifndef lint
X! static char sccsid[] = "@(#)tcopy.c	1.2 (Berkeley) 12/11/85";
X! #endif not lint
X  
X  #include <stdio.h>
X  #include <signal.h>
X--- 4,16 ----
X   * specifies the terms and conditions for redistribution.
X   */
X  
X! #if	defined(DOSCCS) && !defined(lint)
X  char copyright[] =
X  "@(#) Copyright (c) 1985 Regents of the University of California.\n\
X   All rights reserved.\n";
X  
X! static char sccsid[] = "@(#)tcopy.c	1.3 (2.11BSD GTE) 1/1/94";
X! #endif
X  
X  #include <stdio.h>
X  #include <signal.h>
X***************
X*** 21,27 ****
X  #include <sys/ioctl.h>
X  #include <sys/mtio.h>
X  
X! #ifdef BSD2_10
X  #define SIZE	((unsigned)32 * 1024)
X  #else
X  #define SIZE	(64 * 1024)
X--- 19,25 ----
X  #include <sys/ioctl.h>
X  #include <sys/mtio.h>
X  
X! #ifdef pdp11
X  #define SIZE	((unsigned)32 * 1024)
X  #else
X  #define SIZE	(64 * 1024)
X*** /usr/src/ucb/gcore.c.old	Wed Apr 11 11:03:36 1990
X--- /usr/src/ucb/gcore.c	Thu Jan  6 22:43:49 1994
X***************
X*** 9,15 ****
X  #include <sys/proc.h>
X  #include <sys/file.h>
X  #include <stdio.h>
X! #include <a.out.h>
X  
X  #define NLIST	"/vmunix"
X  #define MEM	"/dev/mem"
X--- 9,15 ----
X  #include <sys/proc.h>
X  #include <sys/file.h>
X  #include <stdio.h>
X! #include <nlist.h>
X  
X  #define NLIST	"/vmunix"
X  #define MEM	"/dev/mem"
X*** /usr/src/ucb/w.c.old	Thu Dec 24 15:03:39 1992
X--- /usr/src/ucb/w.c	Sun Jan 16 21:39:04 1994
X***************
X*** 38,44 ****
X  #define	X_SWAPDEV	1
X  	{ "_avenrun" },
X  #define	X_AVENRUN	2
X! 	{ "_boottim" },
X  #define	X_BOOTIME	3
X  	{ "_nproc" },
X  #define	X_NPROC		4
X--- 38,44 ----
X  #define	X_SWAPDEV	1
X  	{ "_avenrun" },
X  #define	X_AVENRUN	2
X! 	{ "_boottime" },
X  #define	X_BOOTIME	3
X  	{ "_nproc" },
X  #define	X_NPROC		4
X*** /usr/src/ucb/Makefile.old	Mon Jan 18 09:35:42 1993
X--- /usr/src/ucb/Makefile	Sat Jan 22 10:55:20 1994
X***************
X*** 3,9 ****
X  # All rights reserved.  The Berkeley software License Agreement
X  # specifies the terms and conditions for redistribution.
X  #
X! #	@(#)Makefile	5.17 (Berkeley) 6/7/86
X  #
X  DESTDIR=
X  CFLAGS=	-O
X--- 3,9 ----
X  # All rights reserved.  The Berkeley software License Agreement
X  # specifies the terms and conditions for redistribution.
X  #
X! #	@(#)Makefile	5.17.1 (2.11BSD GTE) 1/22/94
X  #
X  DESTDIR=
X  CFLAGS=	-O
X***************
X*** 24,31 ****
X  #
X  STD=	apply biff checknr colcrt colrm ctags expand fold \
X  	from gprof grep groups head last lastcomm leave logger mkstr \
X! 	printenv ruptime rwho sccs script soelim strings symorder tail tcopy \
X! 	telnet unexpand unifdef users whereis whoami whois what wc xstr yes
X  
X  # C programs that live in the current directory and need explicit make lines.
X  #
X--- 24,32 ----
X  #
X  STD=	apply biff checknr colcrt colrm ctags expand fold \
X  	from gprof grep groups head last lastcomm leave logger mkstr \
X! 	printenv ruptime rwho sccs script soelim strings strcompact \
X! 	symcompact symorder tail tcopy telnet unexpand unifdef users \
X! 	whereis whoami whois what wc xstr yes
X  
X  # C programs that live in the current directory and need explicit make lines.
X  #
SHAR_EOF
chmod 640 'patchfile'
fi
exit 0
#	End of shell archive
