[comp.sources.bugs] MH 6.7 Updates - part 05/14

mh@beanie.ICS.UCI.EDU (John Romine) (04/14/90)

These are patches for MH 6.6 to bring it up to the current release MH
6.7.  If you can FTP, you should instead retrieve the current release
(from ics.uci.edu [128.195.1.1] in pub/mh).  See the announcement in
comp.mail.mh for all the details.  A document descibing the changes
from MH 6.6 can also be found in comp.mail.mh.

There are fourteen parts to these patches; you *must* have all the
parts to compile MH.  It will not work if you try to compile an
intermediate version.

Save this message, extract the file below and apply it with "patch -p"
from the top of your MH source tree:

	cd mh-6.6/
	patch -p < MH.6.6.n

If you have modified your source tree, you'll have to merge your local
changes in after you apply these patches to the original sources.

/JLR

: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
echo 'Extracting MH.6.6.4'
sed 's/^X//' > MH.6.6.4 << '+ END-OF-FILE MH.6.6.4'
XPrereq: patch.3
X*** Patchlevel.orig	Thu Apr 12 15:56:25 1990
X--- Patchlevel	Thu Apr 12 15:57:04 1990
X***************
X*** 1 ****
X! MH.6.6 patch.3
X--- 1 ----
X! MH.6.6 patch.4
X*** ../mh-6.6.0/./conf/makefiles/dist	Fri Nov 17 15:44:17 1989
X--- ./conf/makefiles/dist	Sun Apr  8 20:01:29 1990
X***************
X*** 4,5 ****
X--- 4,6 ----
X  #	@(MHWARNING)
X+ # @(#)$Id: dist,v 2.6 90/04/08 20:01:28 sources Exp $
X  ##############################################################################
X***************
X*** 26,28 ****
X  TARGETS	=	../READ-ME \
X! 		mh-gen.cat MH.cat ADMIN.cat \
X  		bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \
X--- 27,29 ----
X  TARGETS	=	../READ-ME \
X! 		mh-gen.cat MH.cat ADMIN.cat mh6.7.cat \
X  		bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \
X***************
X*** 30,32 ****
X
X! all:;		@for f in $(TARGETS); do $(MAKE) $$f; done
X
X--- 31,34 ----
X
X! all:;		@cd ../config; make version
X! 		@for f in $(TARGETS); do $(MAKE) $$f; done
X
X***************
X*** 33,35 ****
X
X! doc:		MH.doc ADMIN.doc
X
X--- 35,37 ----
X
X! doc:		MH.doc ADMIN.doc mh6.7.doc
X
X***************
X*** 36,38 ****
X
X! IMPRESS	=	mh-gen.imp MH.imp ADMIN.imp bboards.imp beginners.imp \
X  		mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \
X--- 38,41 ----
X
X! IMPRESS	=	mh-gen.imp MH.imp ADMIN.imp mh6.7.imp \
X! 		bboards.imp beginners.imp \
X  		mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \
X***************
X*** 47,48 ****
X--- 50,52 ----
X  	lpr -t -J ADMIN ADMIN.cat
X+ 	lpr -t -J MH.6.7 mh6.7.cat
X  	lpr -d -J BBoards bboards.dvi
X***************
X*** 50,52 ****
X  	lpr -d -J MH-4-MM mh4mm.dvi
X! 	lpr -d -J mh6 mh6.dvi
X  	lpr -d -J Multifarious multifarious.dvi
X--- 54,56 ----
X  	lpr -d -J MH-4-MM mh4mm.dvi
X! 	lpr -d -J mh6.5 mh6.dvi
X  	lpr -d -J Multifarious multifarious.dvi
X***************
X*** 79,80 ****
X--- 83,90 ----
X
X+ mh6.7.cat \
X+ mh6.7.doc \
X+ mh6.7.imp:	true
X+ 		cd ../papers/mh6.7; make $@
X+ 		cp ../papers/mh6.7/$@ $@
X+
X  bboards.imp \
X***************
X*** 131,133 ****
X
X! clean:		unclean
X  		rm -f *.cat *.dvi *.imp *.doc
X--- 141,143 ----
X
X! unconfig clean:		unclean
X  		rm -f *.cat *.dvi *.imp *.doc
X*** ../mh-6.6.0/./conf/makefiles/supportM	Fri Nov 17 15:44:21 1989
X--- ./conf/makefiles/supportM	Thu Apr  5 16:05:21 1990
X***************
X*** 4,5 ****
X--- 4,6 ----
X  #	@(MHWARNING)
X+ # @(#)$Id: supportM,v 2.2 90/04/05 15:18:17 sources Exp $
X  ##############################################################################
X***************
X*** 42,44 ****
X
X! distribution:;	rm -f _* :*
X  		for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done
X--- 43,49 ----
X
X! unconfig:;	-rm -f _* :* core
X! 		for d in $(DIRS); do (cd $$d; $(MAKE) unconfig); done
X! 		-rm -f Makefile
X!
X! distribution:;	-rm -f _* :*
X  		for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done
X***************
X*** 45,47 ****
X
X! clean:;		rm -f _* :* core
X  		for d in $(DIRS); do (cd $$d; $(MAKE) clean); done
X--- 50,52 ----
X
X! clean:;		-rm -f _* :* core
X  		for d in $(DIRS); do (cd $$d; $(MAKE) clean); done
X***************
X*** 48,50 ****
X
X! unclean:;	rm -f _* :* core
X  		for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done
X--- 53,55 ----
X
X! unclean:;	-rm -f _* :* core
X  		for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done
X*** ../mh-6.6.0/./conf/makefiles/config	Fri Nov 17 15:44:17 1989
X--- ./conf/makefiles/config	Sun Apr  8 22:00:30 1990
X***************
X*** 4,5 ****
X--- 4,6 ----
X  #	@(MHWARNING)
X+ # @(#)$Id: config,v 2.7 90/04/08 22:00:29 sources Exp $
X  ##############################################################################
X***************
X*** 9,13 ****
X
X! CC	=	cc
X  @BEGIN: OPTIM
X! CFLAGS	=	-O   $(OPTIONS)
X  @END: OPTIM
X--- 10,14 ----
X
X! CC	=	@(MHCOMPILER)
X  @BEGIN: OPTIM
X! CFLAGS	=	$(OPTIONS)
X  @END: OPTIM
X***************
X*** 27,30 ****
X
X! CFILES	=	config.c
X! OFILES	=	config.o
X
X--- 28,31 ----
X
X! CFILES	=	config.c version.c
X! OFILES	=	config.o version.o
X
X***************
X*** 34,36 ****
X--- 35,41 ----
X
X+ version version.c:	true
X+ 		@/bin/sh version.sh @(MHRELEASE)
X
X+ true:;
X+
X  ##############################################################################
X***************
X*** 39,42 ****
X
X  distribution:   clean
X! 		-rm -f config.c
X
X--- 44,50 ----
X
X+ unconfig:	distribution
X+ 		-rm -f Makefile
X+
X  distribution:   clean
X! 		-rm -f config.c version.c version
X
X*** /dev/null	Thu Apr 12 15:37:43 1990
X--- ./conf/makefiles/MH-Makefile	Sun Apr  8 19:55:57 1990
X***************
X*** 0 ****
X--- 1,105 ----
X+ ##############################################################################
X+ #	Instructions to Make, for compilation of MH modules
X+ #
X+ #	@(MHWARNING)
X+ # @(#)$Id: MH-Makefile,v 2.5 90/04/08 14:09:51 sources Exp $
X+ ##############################################################################
X+
X+ MAKE	=	make DESTDIR=$(DESTDIR) $(MFLAGS) -k
X+ SHELL	=	/bin/sh
X+
X+ # Targets to Make:
X+ #
X+ #    all:	generate MH system, assumes configuration previously done
X+ #
X+ #    depend:	generate dependencies, for MH master maintainers only!
X+ #
X+ #    lint:	verify code, for MH master maintainers only!
X+ #
X+ #    compat-v7:	verify V7 restrictions, for MH master maintainers only!
X+ #
X+ #    install:	install system and clean up afterwards
X+ #
X+ #    inst-lib:  install shared libraries
X+ #
X+ #    inst-all:	install system
X+ #
X+ #    tar:	generate tar commands to move targets to other systems
X+ #		    e.g., make TFLAGS="cf mh.tar" tar
X+ #
X+ #    uninstall:	undo installation
X+ #
X+ #    distribution:
X+ #		revert source tree to MH distribution
X+ #    unconfig:
X+ #		removes configured files - for MH master maintainers only!
X+ #
X+ #    checkout:	MH maintainers only!
X+ #
X+ #    clean:	remove all objects and targets plus clean up
X+ #
X+ #    unclean:	remove scratch files and backups
X+
X+
X+ ##############################################################################
X+ #	Generate MH system
X+ ##############################################################################
X+
X+ ALL	=	config sbr mts zotnet uip support doc
X+
X+ all:;		for d in $(ALL); do (cd $$d; $(MAKE) all); done
X+
X+ depend:;	for d in $(ALL); do (cd $$d; $(MAKE) depend); done
X+
X+ lint:;		for d in $(ALL); do (cd $$d; $(MAKE) lint); done
X+
X+ compat-v7:	all
X+ 		miscellany/tools/7limit */x* */*/x*
X+ 		miscellany/tools/8limit */*.o */*/*.o
X+
X+
X+ INSTALL	=	zotnet support uip doc
X+ SLIB	=	sbr
X+
X+ install:	inst-all clean
X+
X+ inst-all:	inst-lib
X+ 		for d in $(INSTALL); do (cd $$d; $(MAKE) inst-all); done
X+
X+ inst-lib:;	for d in $(SLIB); do (cd $$d; $(MAKE) inst-lib); done
X+
X+ tar:;		@for d in $(INSTALL); \
X+ 		    do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done
X+
X+ uninstall:;	for d in $(INSTALL); do (cd $$d; $(MAKE) uninstall); done
X+
X+
X+ ##############################################################################
X+ #	Miscellaneous tasks
X+ ##############################################################################
X+
X+ DISTRIBUTION=	dist conf config sbr mts zotnet support uip doc papers
X+
X+ distribution:;	rm -f _* :*
X+ 		@if test -f tma/mh/files; \
X+ 		 then \
X+ 		    echo rm -f `cat tma/mh/files`; rm -f `cat tma/mh/files`; \
X+ 		    echo rm -rf tma; rm -rf tma; \
X+ 		 fi
X+ 		for d in $(DISTRIBUTION); \
X+ 		    do (cd $$d; $(MAKE) distribution); done
X+
X+ unconfig:;	rm -f _* :* core
X+ 		for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unconfig); done
X+ 		echo > tmp \
X+ 	'all:; @echo "You must configure MH first -- see READ-ME for details"'
X+ 		mv tmp Makefile
X+
X+ checkout:	unclean lint compat-v7
X+ 		find . \( -name ":*" -o -name "_*" -o -name "#*" \) -a -print
X+
X+ clean:;		rm -f _* :* core
X+ 		for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) clean); done
X+
X+ unclean:;	rm -f _* :* core
X+ 		for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unclean); done
X*** ../mh-6.6.0/./conf/tailor/uci	Fri Nov 17 15:44:24 1989
X--- ./conf/tailor/uci	Fri Apr  6 09:51:41 1990
X***************
X*** 13 ****
X--- 13,18 ----
X  bbdomain:	UCI
X+ systemname:	paris.ics.uci.edu
X+
X+ nntphost:	paris.ics.uci.edu
X+
X+ servers:	paris.ics.uci.edu ics.uci.edu \01localnet
X*** ../mh-6.6.0/./conf/tailor/pop	Thu Oct 29 14:56:07 1987
X--- ./conf/tailor/pop	Fri Apr  6 09:49:48 1990
X***************
X*** 4,6 ****
X  hostable:	@(MHETCPATH)/hosts
X! servers:	name-of-smtp-service-host localhost \01localnet
X  pophost:	name-of-pop-service-host
X--- 4,6 ----
X  hostable:	@(MHETCPATH)/hosts
X! servers:	name-of-smtp-service-host name-of-alternate-host localhost
X  pophost:	name-of-pop-service-host
X*** ../mh-6.6.0/./dist/Makefile	Thu Oct 29 14:56:11 1987
X--- ./dist/Makefile	Thu Apr 12 14:29:17 1990
X***************
X*** 4,5 ****
X--- 4,6 ----
X  #	This file is automatically generated.  Do not edit!
X+ # @(#)$Id: dist,v 2.6 90/04/08 20:01:28 sources Exp $
X  ##############################################################################
X***************
X*** 26,28 ****
X  TARGETS	=	../READ-ME \
X! 		mh-gen.cat MH.cat ADMIN.cat \
X  		bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \
X--- 27,29 ----
X  TARGETS	=	../READ-ME \
X! 		mh-gen.cat MH.cat ADMIN.cat mh6.7.cat \
X  		bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \
X***************
X*** 30,32 ****
X
X! all:;		@for f in $(TARGETS); do $(MAKE) $$f; done
X
X--- 31,34 ----
X
X! all:;		@cd ../config; make version
X! 		@for f in $(TARGETS); do $(MAKE) $$f; done
X
X***************
X*** 33,35 ****
X
X! doc:		MH.doc ADMIN.doc
X
X--- 35,37 ----
X
X! doc:		MH.doc ADMIN.doc mh6.7.doc
X
X***************
X*** 36,38 ****
X
X! IMPRESS	=	mh-gen.imp MH.imp ADMIN.imp bboards.imp beginners.imp \
X  		mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \
X--- 38,41 ----
X
X! IMPRESS	=	mh-gen.imp MH.imp ADMIN.imp mh6.7.imp \
X! 		bboards.imp beginners.imp \
X  		mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \
X***************
X*** 47,48 ****
X--- 50,52 ----
X  	lpr -t -J ADMIN ADMIN.cat
X+ 	lpr -t -J MH.6.7 mh6.7.cat
X  	lpr -d -J BBoards bboards.dvi
X***************
X*** 50,52 ****
X  	lpr -d -J MH-4-MM mh4mm.dvi
X! 	lpr -d -J mh6 mh6.dvi
X  	lpr -d -J Multifarious multifarious.dvi
X--- 54,56 ----
X  	lpr -d -J MH-4-MM mh4mm.dvi
X! 	lpr -d -J mh6.5 mh6.dvi
X  	lpr -d -J Multifarious multifarious.dvi
X***************
X*** 79,80 ****
X--- 83,90 ----
X
X+ mh6.7.cat \
X+ mh6.7.doc \
X+ mh6.7.imp:	true
X+ 		cd ../papers/mh6.7; make $@
X+ 		cp ../papers/mh6.7/$@ $@
X+
X  bboards.imp \
X***************
X*** 131,133 ****
X
X! clean:		unclean
X  		rm -f *.cat *.dvi *.imp *.doc
X--- 141,143 ----
X
X! unconfig clean:		unclean
X  		rm -f *.cat *.dvi *.imp *.doc
X*** /dev/null	Thu Apr 12 15:37:43 1990
X--- ./conf/doc/me2man.sed	Sun Apr  8 15:03:11 1990
X***************
X*** 0 ****
X--- 1,10 ----
X+ /^\.SC/s/^\.SC\(.*\)$/.TH\1 @(MHCENTERFOOT) @(MHLEFTFOOT)/
X+ /^\.NA$/c\
X+ .SH NAME
X+ /^\.SY$/c\
X+ .SH SYNOPSIS\
X+ .in +.5i\
X+ .ti -.5i
X+ /^\.DE$/c\
X+ .in -.5i\
X+ .SH DESCRIPTION
X*** /dev/null	Thu Apr 12 15:37:43 1990
X--- ./h/netdb.h	Thu Apr  5 16:07:53 1990
X***************
X*** 0 ****
X--- 1,70 ----
X+ /* @(#)$Id: netdb.h,v 2.1 90/04/05 15:06:01 sources Exp $ */
X+ /*
X+  * Copyright (c) 1980,1983,1988 Regents of the University of California.
X+  * All rights reserved.
X+  *
X+  * Redistribution and use in source and binary forms are permitted
X+  * provided that this notice is preserved and that due credit is given
X+  * to the University of California at Berkeley. The name of the University
X+  * may not be used to endorse or promote products derived from this
X+  * software without specific prior written permission. This software
X+  * is provided ``as is'' without express or implied warranty.
X+  *
X+  *	@(#)netdb.h	5.9 (Berkeley) 4/5/88
X+  */
X+
X+ /*
X+  * Structures returned by network
X+  * data base library.  All addresses
X+  * are supplied in host order, and
X+  * returned in network order (suitable
X+  * for use in system calls).
X+  */
X+ struct	hostent {
X+ 	char	*h_name;	/* official name of host */
X+ 	char	**h_aliases;	/* alias list */
X+ 	int	h_addrtype;	/* host address type */
X+ 	int	h_length;	/* length of address */
X+ 	char	**h_addr_list;	/* list of addresses from name server */
X+ #define	h_addr	h_addr_list[0]	/* address, for backward compatiblity */
X+ };
X+
X+ /*
X+  * Assumption here is that a network number
X+  * fits in 32 bits -- probably a poor one.
X+  */
X+ struct	netent {
X+ 	char		*n_name;	/* official name of net */
X+ 	char		**n_aliases;	/* alias list */
X+ 	int		n_addrtype;	/* net address type */
X+ 	unsigned long	n_net;		/* network # */
X+ };
X+
X+ struct	servent {
X+ 	char	*s_name;	/* official service name */
X+ 	char	**s_aliases;	/* alias list */
X+ 	int	s_port;		/* port # */
X+ 	char	*s_proto;	/* protocol to use */
X+ };
X+
X+ struct	protoent {
X+ 	char	*p_name;	/* official protocol name */
X+ 	char	**p_aliases;	/* alias list */
X+ 	int	p_proto;	/* protocol # */
X+ };
X+
X+ struct hostent	*gethostbyname(), *gethostbyaddr(), *gethostent();
X+ struct netent	*getnetbyname(), *getnetbyaddr(), *getnetent();
X+ struct servent	*getservbyname(), *getservbyport(), *getservent();
X+ struct protoent	*getprotobyname(), *getprotobynumber(), *getprotoent();
X+
X+ /*
X+  * Error return codes from gethostbyname() and gethostbyaddr()
X+  * (left in extern int h_errno).
X+  */
X+
X+ #define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */
X+ #define	TRY_AGAIN	2 /* Non-Authoritive Host not found, or SERVERFAIL */
X+ #define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
X+ #define	NO_DATA		4 /* Valid name, no data record of requested type */
X+ #define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */
X*** ../mh-6.6.0/./h/mh.h	Tue May 24 15:44:10 1988
X--- ./h/mh.h	Thu Apr  5 16:04:11 1990
X***************
X*** 1,4 ****
X--- 1,5 ----
X  /* mh.h - main header file for all of MH */
X+ /* @(#)$Id: mh.h,v 2.6 90/04/05 15:06:09 sources Exp $ */
X
X
X  /* Well-used constants */
X***************
X*** 12,23 ****
X
X  #define MAXARGS		1000	/* max arguments to exec */
X
X! #define NFOLDERS	 100	/* max folder arguments on command line */
X
X  #define	MAXFOLDER	1000	/* message increment */
X  #define DMAXFOLDER	   4	/* typical number of digits */
X
X! #ifndef	BSD42 || BSD41A || VMUNIX || hpux
X  #define	vfork		fork
X  #endif	not BSD			/* how sad... */
X
X--- 13,24 ----
X
X  #define MAXARGS		1000	/* max arguments to exec */
X
X! #define NFOLDERS	 300	/* max folder arguments on command line */
X
X  #define	MAXFOLDER	1000	/* message increment */
X  #define DMAXFOLDER	   4	/* typical number of digits */
X
X! #if !defined(BSD42) && !defined(BSD41A) && !defined(VMUNIX) && !defined(hpux)
X  #define	vfork		fork
X  #endif	not BSD			/* how sad... */
X
X***************
X*** 339,352 ****
X
X  /* miscellaneous */
X
X! #ifndef	BSD42
X  #define	rename(f1,f2)	(link (f1, f2) != NOTOK ? unlink (f1) : NOTOK)
X! #endif	BSD42
X
X  #define	setsig(s,f)	if (signal (s, SIG_IGN) != SIG_IGN) \
X  			    (void) signal (s, f)
X  #define	setsigx(i,s,f)	if ((i = signal (s, SIG_IGN)) != SIG_IGN) \
X  			    (void) signal (s, f)
X
X  #if	defined(sun) && !defined(NFS)
X  #define	NFS
X--- 340,361 ----
X
X  /* miscellaneous */
X
X! #if !defined(BSD42) && !defined(hpux)
X  #define	rename(f1,f2)	(link (f1, f2) != NOTOK ? unlink (f1) : NOTOK)
X! #endif	not BSD42
X
X  #define	setsig(s,f)	if (signal (s, SIG_IGN) != SIG_IGN) \
X  			    (void) signal (s, f)
X  #define	setsigx(i,s,f)	if ((i = signal (s, SIG_IGN)) != SIG_IGN) \
X  			    (void) signal (s, f)
X+
X+ #ifndef	TYPESIG
X+ #ifdef	SUN40
X+ #define	TYPESIG	void
X+ #else	/* use old V7 default */
X+ #define	TYPESIG	int
X+ #endif
X+ #endif	not TYPESIG
X
X  #if	defined(sun) && !defined(NFS)
X  #define	NFS
X*** ../mh-6.6.0/./h/mshsbr.h	Thu Oct 29 14:56:15 1987
X--- ./h/mshsbr.h	Thu Apr  5 16:04:17 1990
X***************
X*** 1,4 ****
X--- 1,5 ----
X  /* mshsbr.h - definitions for msh */
X+ /* @(#)$Id: mshsbr.h,v 1.3 90/04/05 15:06:34 sources Exp $ */
X
X  struct Cmd {
X      char    line[BUFSIZ];
X***************
X*** 61,68 ****
X
X
X  				/* SIGNALS */
X! extern int  (*istat) ();	/* original SIGINT */
X! extern int  (*qstat) ();	/* original SIGQUIT */
X  extern int  interrupted;	/* SIGINT detected */
X  extern int  broken_pipe;	/* SIGPIPE detected */
X  extern int  told_to_quit;	/* SIGQUIT detected */
X--- 62,69 ----
X
X
X  				/* SIGNALS */
X! extern TYPESIG  (*istat) ();	/* original SIGINT */
X! extern TYPESIG  (*qstat) ();	/* original SIGQUIT */
X  extern int  interrupted;	/* SIGINT detected */
X  extern int  broken_pipe;	/* SIGPIPE detected */
X  extern int  told_to_quit;	/* SIGQUIT detected */
X*** ../mh-6.6.0/./h/strings.h	Thu Oct 29 14:56:17 1987
X--- ./h/strings.h	Thu Apr  5 16:18:37 1990
X***************
X*** 1,4 ****
X--- 1,5 ----
X  /* strings.h - define standard string functions */
X+ /* @(#)$Id: strings.h,v 1.7 90/04/05 16:18:34 sources Exp $ */
X
X  #ifndef	_STRINGS		/* once-only... */
X  #define	_STRINGS
X***************
X*** 11,21 ****
X  char   *index ();
X  char   *mktemp ();
X  char   *rindex ();
X! #ifndef	SYS5
X! char   *sprintf ();
X! #else	SYS5
X! int     sprintf ();
X! #endif	SYS5
X  char   *strcat ();
X  int     strcmp ();
X  char   *strcpy ();
X--- 12,22 ----
X  char   *index ();
X  char   *mktemp ();
X  char   *rindex ();
X! #ifndef	SPRINTFTYPE
X! char   *sprintf ();		/* I guess this is the new standard */
X! #else
X! SPRINTFTYPE sprintf ();
X! #endif
X  char   *strcat ();
X  int     strcmp ();
X  char   *strcpy ();
X***************
X*** 29,34 ****
X--- 30,36 ----
X
X  #ifdef	SYS5
X  #include <memory.h>
X+ #define bcmp(b1,b2,length)	memcmp(b1, b2, length)
X  #define	bcopy(b1,b2,length)	(void) memcpy (b2, b1, length)
X  #define	bcpy(b1,b2,length)	memcmp (b1, b2, length)
X  #define	bzero(b,length)		(void) memset (b, 0, length)
X*** /dev/null	Thu Apr 12 15:37:43 1990
X--- ./h/nntp.h	Thu Apr  5 16:07:59 1990
X***************
X*** 0 ****
X--- 1,74 ----
X+ /* @(#)$Id: nntp.h,v 2.1 90/04/05 15:06:18 sources Exp $ */
X+ /*
X+  * Response codes for NNTP server
X+  *
X+  * @(#)nntp.h	1.7	(Berkeley) 1/11/88
X+  *
X+  * First digit:
X+  *
X+  *	1xx	Informative message
X+  *	2xx	Command ok
X+  *	3xx	Command ok so far, continue
X+  *	4xx	Command was correct, but couldn't be performed
X+  *		for some specified reason.
X+  *	5xx	Command unimplemented, incorrect, or a
X+  *		program error has occured.
X+  *
X+  * Second digit:
X+  *
X+  *	x0x	Connection, setup, miscellaneous
X+  *	x1x	Newsgroup selection
X+  *	x2x	Article selection
X+  *	x3x	Distribution
X+  *	x4x	Posting
X+  */
X+
X+ #define	CHAR_INF	'1'
X+ #define	CHAR_OK		'2'
X+ #define	CHAR_CONT	'3'
X+ #define	CHAR_ERR	'4'
X+ #define	CHAR_FATAL	'5'
X+
X+ #define	INF_HELP	100	/* Help text on way */
X+ #define	INF_DEBUG	199	/* Debug output */
X+
X+ #define	OK_CANPOST	200	/* Hello; you can post */
X+ #define	OK_NOPOST	201	/* Hello; you can't post */
X+ #define	OK_SLAVE	202	/* Slave status noted */
X+ #define	OK_GOODBYE	205	/* Closing connection */
X+ #define	OK_GROUP	211	/* Group selected */
X+ #define	OK_GROUPS	215	/* Newsgroups follow */
X+ #define	OK_ARTICLE	220	/* Article (head & body) follows */
X+ #define	OK_HEAD		221	/* Head follows */
X+ #define	OK_BODY		222	/* Body follows */
X+ #define	OK_NOTEXT	223	/* No text sent -- stat, next, last */
X+ #define	OK_NEWNEWS	230	/* New articles by message-id follow */
X+ #define	OK_NEWGROUPS	231	/* New newsgroups follow */
X+ #define	OK_XFERED	235	/* Article transferred successfully */
X+ #define	OK_POSTED	240	/* Article posted successfully */
X+
X+ #define CONT_XFER	335	/* Continue to send article */
X+ #define	CONT_POST	340	/* Continue to post article */
X+
X+ #define	ERR_GOODBYE	400	/* Have to hang up for some reason */
X+ #define	ERR_NOGROUP	411	/* No such newsgroup */
X+ #define	ERR_NCING	412	/* Not currently in newsgroup */
X+ #define	ERR_NOCRNT	420	/* No current article selected */
X+ #define	ERR_NONEXT	421	/* No next article in this group */
X+ #define	ERR_NOPREV	422	/* No previous article in this group */
X+ #define	ERR_NOARTIG	423	/* No such article in this group */
X+ #define ERR_NOART	430	/* No such article at all */
X+ #define ERR_GOTIT	435	/* Already got that article, don't send */
X+ #define ERR_XFERFAIL	436	/* Transfer failed */
X+ #define	ERR_XFERRJCT	437	/* Article rejected, don't resend */
X+ #define	ERR_NOPOST	440	/* Posting not allowed */
X+ #define	ERR_POSTFAIL	441	/* Posting failed */
X+
X+ #define	ERR_COMMAND	500	/* Command not recognized */
X+ #define	ERR_CMDSYN	501	/* Command syntax error */
X+ #define	ERR_ACCESS	502	/* Access to server denied */
X+ #define ERR_FAULT	503	/* Program fault, command not performed */
X+
X+ /* RFC 977 defines this; don't change it. */
X+
X+ #define	NNTP_STRLEN	512
X*** /dev/null	Thu Apr 12 15:37:43 1990
X--- ./h/fmtcompile.h	Thu Apr  5 16:04:18 1990
X***************
X*** 0 ****
X--- 1,102 ----
X+ /* @(#)$Id: fmtcompile.h,v 1.4 90/04/05 15:06:42 sources Exp $ */
X+
X+ /* Format Types */
X+ /* -------------*/
X+
X+ /* types that output text */
X+ #define FT_COMP		1	/* the text of a component */
X+ #define FT_COMPF	2	/* comp text, filled */
X+ #define FT_LIT		3	/* literal text */
X+ #define FT_LITF		4	/* literal text, filled */
X+ #define FT_CHAR		5	/* a single ascii character */
X+ #define FT_NUM		6	/* "value" as decimal number */
X+ #define FT_NUMF		7	/* "value" as filled dec number */
X+ #define FT_STR		8	/* "str" as text */
X+ #define FT_STRF		9	/* "str" as text, filled */
X+ #define FT_STRFW	10	/* "str" as text, filled, width in "value" */
X+ #define FT_PUTADDR	11	/* split and print address line */
X+
X+ /* types that modify the "str" or "value" registers */
X+ #define FT_LS_COMP	12	/* set "str" to component text */
X+ #define FT_LS_LIT	13	/* set "str" to literal text */
X+ #define FT_LS_TRIM	14	/* trim trailing white space from "str" */
X+ #define FT_LV_COMP	15	/* set "value" to comp (as dec. num) */
X+ #define FT_LV_COMPFLAG	16	/* set "value" to comp flag word */
X+ #define FT_LV_LIT	17	/* set "value" to literal num */
X+ #define FT_LV_DAT	18	/* set "value" to dat[n] */
X+ #define FT_LV_STRLEN	19	/* set "value" to length of "str" */
X+ #define FT_LV_PLUS_L	20	/* set "value" += literal */
X+ #define FT_LV_MINUS_L	21	/* set "value" -= literal */
X+ #define FT_LV_DIVIDE_L	22	/* set "value" to value / literal */
X+ #define FT_LV_CHAR_LEFT	23	/* set "value" to char left in output */
X+
X+ #define FT_LS_MONTH	24	/* set "str" to tws month */
X+ #define FT_LS_LMONTH	25	/* set "str" to long tws month */
X+ #define FT_LS_ZONE	26	/* set "str" to tws timezone */
X+ #define FT_LS_DAY	27	/* set "str" to tws weekday */
X+ #define FT_LS_WEEKDAY	28	/* set "str" to long tws weekday */
X+ #define FT_LS_822DATE	29	/* set "str" to 822 date str */
X+ #define FT_LS_PRETTY	30	/* set "str" to pretty (?) date str */
X+ #define FT_LV_SEC	31	/* set "value" to tws second */
X+ #define FT_LV_MIN	32	/* set "value" to tws minute */
X+ #define FT_LV_HOUR	33	/* set "value" to tws hour */
X+ #define FT_LV_MDAY	34	/* set "value" to tws day of month */
X+ #define FT_LV_MON	35	/* set "value" to tws month */
X+ #define FT_LV_YEAR	36	/* set "value" to tws year */
X+ #define FT_LV_YDAY	37	/* set "value" to tws day of year */
X+ #define FT_LV_WDAY	38	/* set "value" to tws weekday */
X+ #define FT_LV_ZONE	39	/* set "value" to tws timezone */
X+ #define FT_LV_CLOCK	40	/* set "value" to tws clock */
X+ #define FT_LV_RCLOCK	41	/* set "value" to now - tws clock */
X+ #define FT_LV_DAYF	42	/* set "value" to tws day flag */
X+ #define FT_LV_DST	43	/* set "value" to tws daylight savings flag */
X+ #define FT_LV_ZONEF	44	/* set "value" to tws timezone flag */
X+
X+ #define FT_LS_PERS	45	/* set "str" to person part of addr */
X+ #define FT_LS_MBOX	46	/* set "str" to mbox part of addr */
X+ #define FT_LS_HOST	47	/* set "str" to host part of addr */
X+ #define FT_LS_PATH	48	/* set "str" to route part of addr */
X+ #define FT_LS_GNAME	49	/* set "str" to group part of addr */
X+ #define FT_LS_NOTE	50	/* set "str" to comment part of addr */
X+ #define FT_LS_822ADDR	51	/* set "str" to 822 format addr */
X+ #define FT_LS_FRIENDLY	52	/* set "str" to "friendly" format addr */
X+ #define FT_LV_HOSTTYPE	53	/* set "value" to addr host type */
X+ #define FT_LV_INGRPF	54	/* set "value" to addr in-group flag */
X+ #define FT_LV_NOHOSTF	55	/* set "value" to addr no-host flag */
X+
X+ /* Date Coercion */
X+ #define FT_LOCALDATE	56	/* Coerce date to local timezone */
X+ #define FT_GMTDATE	57	/* Coerce date to gmt */
X+
X+ /* pre-format processing */
X+ #define FT_PARSEDATE	58	/* parse comp into a date (tws) struct */
X+ #define FT_PARSEADDR	59	/* parse comp into a mailaddr struct */
X+ #define FT_FORMATADDR	60	/* let external routine format addr */
X+ #define FT_MYMBOX	61	/* do "mymbox" test on comp */
X+
X+ /* misc. */
X+ #ifdef	VAN
X+ #define FT_ADDTOSEQ	62	/* add current msg to a sequence */
X+ #endif
X+
X+ /* conditionals & control flow (must be last) */
X+ #define FT_SAVESTR	63	/* save current str reg */
X+ #define FT_DONE		64	/* stop formatting */
X+ #define FT_NOP		65	/* nop */
X+ #define FT_GOTO		66	/* (relative) goto */
X+ #define FT_IF_S_NULL	67	/* test if "str" null */
X+ #define FT_IF_S		68	/* test if "str" non-null */
X+ #define FT_IF_V_EQ	69	/* test if "value" = literal */
X+ #define FT_IF_V_NE	70	/* test if "value" != literal */
X+ #define FT_IF_V_GT	71	/* test if "value" > literal */
X+ #define FT_IF_MATCH	72	/* test if "str" contains literal */
X+ #define FT_IF_AMATCH	73	/* test if "str" starts with literal */
X+ #define FT_S_NULL	74	/* V = 1 if "str" null */
X+ #define FT_S_NONNULL	75	/* V = 1 if "str" non-null */
X+ #define FT_V_EQ		76	/* V = 1 if "value" = literal */
X+ #define FT_V_NE		77	/* V = 1 if "value" != literal */
X+ #define FT_V_GT		78	/* V = 1 if "value" > literal */
X+ #define FT_V_MATCH	79	/* V = 1 if "str" contains literal */
X+ #define FT_V_AMATCH	80	/* V = 1 if "str" starts with literal */
X+
X+ #define IF_FUNCS FT_S_NULL	/* start of "if" functions */
X*** ../mh-6.6.0/./mts/mh/hosts.c	Thu Oct 29 14:57:59 1987
X--- ./mts/mh/hosts.c	Mon Feb  5 14:51:53 1990
X***************
X*** 3,19 ****
X  /* LINTLIBRARY */
X
X  #undef	NETWORK
X! #if	defined(BSD41A) || defined(BSD42)
X  #define	NETWORK
X! #endif	not (defined(BSD41A) || defined(BSD42))
X
X  #include "../h/strings.h"
X  #include <stdio.h>
X  #include "../zotnet/mts.h"
X  #include <ctype.h>
X! #ifdef	BSD42
X  #include <netdb.h>
X! #endif	BSD42
X
X
X  #define	NOTOK	(-1)
X--- 3,19 ----
X  /* LINTLIBRARY */
X
X  #undef	NETWORK
X! #if	defined(BSD41A) || defined(BSD42) || defined(SOCKETS)
X  #define	NETWORK
X! #endif	not (defined(BSD41A) || defined(BSD42) || defined(SOCKETS))
X
X  #include "../h/strings.h"
X  #include <stdio.h>
X  #include "../zotnet/mts.h"
X  #include <ctype.h>
X! #if	defined(BSD42) || defined(SOCKETS)
X  #include <netdb.h>
X! #endif	BSD42 or SOCKETS
X
X
X  #define	NOTOK	(-1)
X***************
X*** 28,36 ****
X  	    site[BUFSIZ];
X  #ifdef	NETWORK
X      static char buffer[BUFSIZ];
X! #ifdef	BSD42
X      register struct hostent *hp;
X! #endif	BSD42
X  #endif	NETWORK
X
X      for (p = name, q = site; *p; p++, q++)
X--- 28,36 ----
X  	    site[BUFSIZ];
X  #ifdef	NETWORK
X      static char buffer[BUFSIZ];
X! #if	defined(BSD42) || defined(SOCKETS)
X      register struct hostent *hp;
X! #endif	BSD42 or SOCKETS
X  #endif	NETWORK
X
X      for (p = name, q = site; *p; p++, q++)
X***************
X*** 48,59 ****
X  	return buffer;
X      }
X  #endif	BSD41A
X! #ifdef	BSD42
X      if (hp = gethostbyname (q)) {
X  	(void) strcpy (buffer, hp -> h_name);
X  	return buffer;
X      }
X! #endif	BSD42
X
X      return NULL;
X  }
X--- 48,59 ----
X  	return buffer;
X      }
X  #endif	BSD41A
X! #if	defined(BSD42) || defined(SOCKETS)
X      if (hp = gethostbyname (q)) {
X  	(void) strcpy (buffer, hp -> h_name);
X  	return buffer;
X      }
X! #endif	BSD42 or SOCKETS
X
X      return NULL;
X  }
X*** ../mh-6.6.0/./mts/sendmail/hosts.c	Thu Oct 29 14:58:04 1987
X--- ./mts/sendmail/hosts.c	Tue Feb  6 12:58:03 1990
X***************
X*** 12,20 ****
X  #include <stdio.h>
X  #include "../zotnet/mts.h"
X  #include <ctype.h>
X! #ifdef	BSD42
X  #include <netdb.h>
X! #endif	BSD42
X
X
X  #define	NOTOK	(-1)
X--- 12,20 ----
X  #include <stdio.h>
X  #include "../zotnet/mts.h"
X  #include <ctype.h>
X! #if	defined(BSD42) || defined(SOCKETS)
X  #include <netdb.h>
X! #endif	BSD42 or SOCKETS
X
X
X  #define	NOTOK	(-1)
X***************
X*** 28,33 ****
X--- 28,35 ----
X
X  char   *getcpy ();
X
X+ static int	init_hs();
X+
X  /*  */
X
X  char   *OfficialName (name)
X***************
X*** 36,44 ****
X      register char  *p;
X      char   *q,
X              site[BUFSIZ];
X! #ifdef	BSD42
X      register struct hostent *hp;
X! #endif	BSD42
X      static char buffer[BUFSIZ];
X      register char **r;
X      register struct host   *h;
X--- 38,46 ----
X      register char  *p;
X      char   *q,
X              site[BUFSIZ];
X! #if	defined(BSD42) || defined(SOCKETS)
X      register struct hostent *hp;
X! #endif	BSD42 or SOCKETS
X      static char buffer[BUFSIZ];
X      register char **r;
X      register struct host   *h;
X***************
X*** 58,64 ****
X  	return buffer;
X      }
X  #endif	BSD41A
X! #ifdef	BSD42
X  #ifndef	BIND
X      sethostent (1);
X  #endif
X--- 60,66 ----
X  	return buffer;
X      }
X  #endif	BSD41A
X! #if	defined(BSD42) || defined(SOCKETS)
X  #ifndef	BIND
X      sethostent (1);
X  #endif
X***************
X*** 66,72 ****
X  	(void) strcpy (buffer, hp -> h_name);
X  	return buffer;
X      }
X! #endif	BSD42
X
X      if (hosts.h_name || init_hs ())
X  	for (h = hosts.h_next; h; h = h -> h_next)
X--- 68,74 ----
X  	(void) strcpy (buffer, hp -> h_name);
X  	return buffer;
X      }
X! #endif	BSD42 or SOCKETS
X
X      if (hosts.h_name || init_hs ())
X  	for (h = hosts.h_next; h; h = h -> h_next)
X*** ../mh-6.6.0/./mts/sendmail/smail.c	Wed May  4 15:50:14 1988
X--- ./mts/sendmail/smail.c	Tue Feb  6 12:58:45 1990
X***************
X*** 14,23 ****
X     I've ever seen Sendmail hang was with a bogus configuration file...
X   */
X  #endif	BSD42
X
X! #ifndef	BSD42
X  #undef	SMTP
X! #endif	not BSD42
X  #ifdef	SMTP
X  #undef	SENDMAIL
X  #endif	SMTP
X--- 14,41 ----
X     I've ever seen Sendmail hang was with a bogus configuration file...
X   */
X  #endif	BSD42
X+ #ifdef	SENDMAILBUG
X+ /*
X+  * It appears that some versions of Sendmail will return Code 451
X+  * when they don't really want to indicate a failure.
X+  * "Code 451 almost always means sendmail has deferred; we don't
X+  * really want bomb out at this point since sendmail will rectify
X+  * things later."  So, if you define SENDMAILBUG, Code 451 is
X+  * considered the same as Code 250.  Yuck!
X+  */
X+ #ifndef	SENDMAIL
X+ #undef		SENDMAILBUG
X+ #endif	not SENDMAIL
X+ #endif	SENDMAILBUG
X
X! #ifdef hpux
X! /* HP-UX has this capability. It also handles (some) signals. */
X! #define BSD42
X! #endif hpux
X!
X! #if	!defined(BSD42) && !defined(SOCKETS)
X  #undef	SMTP
X! #endif	not BSD42 and not SOCKETS
X  #ifdef	SMTP
X  #undef	SENDMAIL
X  #endif	SMTP
X***************
X*** 42,48 ****
X  #define	min(a,b)	((a) < (b) ? (a) : (b))
X
X
X! #define	SM_OPEN	 30
X  #define	SM_HELO	 20
X  #define	SM_RSET	 15
X  #define	SM_MAIL	 40
X--- 60,66 ----
X  #define	min(a,b)	((a) < (b) ? (a) : (b))
X
X
X! #define	SM_OPEN	 90      /* Changed from 30 in case of nameserver flakiness */
X  #define	SM_HELO	 20
X  #define	SM_RSET	 15
X  #define	SM_MAIL	 40
X***************
X*** 55,61 ****
X
X  /*  */
X
X! int	alrmser ();
X
X  static int  sm_addrs = 0;
X  static int  sm_alarmed = 0;
X--- 73,79 ----
X
X  /*  */
X
X! static int	alrmser ();
X
X  static int  sm_addrs = 0;
X  static int  sm_alarmed = 0;
X***************
X*** 78,83 ****
X--- 96,104 ----
X  void	discard ();
X  char   *r1bindex ();
X
X+ static int	rclient(), sm_ierror(), smtalk(), sm_wrecord(), sm_wstream();
X+ static int	sm_werror(), smhear(), sm_rrecord(), sm_rerror();
X+
X  /*  */
X
X  #ifndef	SMTP
X***************
X*** 323,331 ****
X  	    sm_addrs++;
X  	    return RP_OK;
X
X  	case 421:
X  	case 450:
X- 	case 451:
X  	case 452:
X  	    return RP_NO;
X
X--- 344,356 ----
X  	    sm_addrs++;
X  	    return RP_OK;
X
X+ 	case 451:
X+ #ifdef SENDMAILBUG
X+ 	    sm_addrs++;
X+ 	    return RP_OK;
X+ #endif SENDMAILBUG
X  	case 421:
X  	case 450:
X  	case 452:
X  	    return RP_NO;
X
X***************
X*** 352,359 ****
X  	    sm_nl = TRUE;
X  	    return RP_OK;
X
X- 	case 421:
X  	case 451:
X  	    return RP_NO;
X
X  	case 500:
X--- 377,388 ----
X  	    sm_nl = TRUE;
X  	    return RP_OK;
X
X  	case 451:
X+ #ifdef SENDMAILBUG
X+ 	    sm_nl = TRUE;
X+ 	    return RP_OK;
X+ #endif SENDMAILBUG
X+ 	case 421:
X  	    return RP_NO;
X
X  	case 500:
X***************
X*** 395,400 ****
X--- 424,432 ----
X  	    return RP_OK;
X
X  	case 451:
X+ #ifdef SENDMAILBUG
X+ 	    return RP_OK;
X+ #endif SENDMAILBUG
X  	case 452:
X  	default:
X  	    return RP_NO;
X*** ../mh-6.6.0/./papers/bboards/Makefile	Thu Oct 29 14:58:13 1987
X--- ./papers/bboards/Makefile	Tue Mar  6 14:49:43 1990
X***************
X*** 10,12 ****
X
X! .tex.dvi:;	sh -c 'if phdtex \\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X--- 10,13 ----
X
X! .tex.dvi:;	sh -c 'if TEXINPUTS=../doclib:.:${TEXINPUTS} tex82 \
X! 			\\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X*** ../mh-6.6.0/./papers/mh4/Makefile	Thu Oct 29 14:58:22 1987
X--- ./papers/mh4/Makefile	Tue Mar  6 14:49:44 1990
X***************
X*** 10,12 ****
X
X! .tex.dvi:;	sh -c 'if phdtex \\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X--- 10,13 ----
X
X! .tex.dvi:;	sh -c 'if TEXINPUTS=../doclib:.:${TEXINPUTS} tex82 \
X! 			\\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X***************
X*** 53,54 ****
X
X! clean:;		rm -f CONTENTS.tex FIGURES.tex mh4.log _*
X--- 54,56 ----
X
X! clean:;		rm -f CONTENTS.tex FIGURES.tex \
X! 			mh4.lof mh4.log mh4.lot mh4.toc _*
X*** ../mh-6.6.0/./papers/mh4/mh4.tex	Thu Oct 29 14:58:26 1987
X--- ./papers/mh4/mh4.tex	Tue Mar  6 14:49:44 1990
X***************
X*** 7,13 ****
X
X! \def\MH/{{\sf MH}}
X! \def\mh#1{{\sf mh.#1}}
X! \def\context/{\file{context}}
X  \def\entry#1{\boxit{#1:}}
X- \def\profile/{\file{.mh\_profile}}
X  \def\whatnow/{{\tt What now?\/}}
X--- 7,12 ----
X
X! \input sfwmac
X!
X! % these are special for mh4.tex
X  \def\entry#1{\boxit{#1:}}
X  \def\whatnow/{{\tt What now?\/}}
X***************
X*** 14,15 ****
X--- 13,22 ----
X
X+ \def\pgm#1{{\it#1}}			% UNIX programs
X+ \def\man#1(#2){\pgm{#1\/}(#2)}		% Manual entries
X+ \def\arg#1{\hbox{\sl\`{}#1\'{}}}	% arguments to programs
X+ \def\switch#1{\hbox{\`{}\tt-\sl#1\'{}}}	% switches to programs
X+ \def\eg#1{\hbox{\tt#1}}			% example
X+ \def\file#1{\hbox{\sl#1}}		% filename
X+ \def\bq#1{\`{}#1\`{}}			% back-quoted command
X+
X  \header
X***************
X*** 19,23 ****
X      Marshall T.~Rose\author
X!     \versiondate/\date
X!     MRose@UCI\mail
X!
X  \centerline{\sc Abstract}
X--- 26,29 ----
X      Marshall T.~Rose\author
X!     \versiondate/\info
X! \footnote{}{\hskip -\parskip $^\dagger$ Computer Mail: {\tx MRose@ICS.UCI.EDU}.}
X  \centerline{\sc Abstract}
X***************
X*** 43,45 ****
X  Comments concerning this documentation should be addressed to the Internet
X! mailbox {\sf Bug-MH@UCI.ARPA}.
X  \par}
X--- 49,51 ----
X  Comments concerning this documentation should be addressed to the Internet
X! mailbox {\sf Bug-MH@ICS.UCI.EDU}.
X  \par}
X*** ../mh-6.6.0/./papers/mh5/Makefile	Thu Oct 29 14:58:32 1987
X--- ./papers/mh5/Makefile	Tue Mar  6 14:49:45 1990
X***************
X*** 10,12 ****
X
X! .tex.dvi:;	sh -c 'if phdtex \\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X--- 10,13 ----
X
X! .tex.dvi:;	sh -c 'if TEXINPUTS=../doclib:.:${TEXINPUTS} tex82 \
X! 			\\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X***************
X*** 53,54 ****
X
X! clean:;		rm -f CONTENTS.tex FIGURES.tex mh5.log _*
X--- 54,56 ----
X
X! clean:;		rm -f CONTENTS.tex FIGURES.tex \
X! 			mh5.lof mh5.log mh5.lot mh5.toc _*
X*** ../mh-6.6.0/./papers/mh5/mh5.tex	Thu Oct 29 14:58:36 1987
X--- ./papers/mh5/mh5.tex	Tue Mar  6 14:49:45 1990
X***************
X*** 15,17 ****
X      \versiondate/\info
X! \footnote{}{\hskip -\parskip $^\dagger$ Computer Mail: {\tx MRose@UDEL.ARPA}.}
X
X--- 15,17 ----
X      \versiondate/\info
X! \footnote{}{\hskip -\parskip $^\dagger$ Computer Mail: {\tx MRose@ICS.UCI.EDU}.}
X
X***************
X*** 30,32 ****
X  Comments concerning this documentation should be addressed to the Internet
X! mailbox {\sf Bug-MH@UCI.ARPA}.
X  \par}
X--- 30,32 ----
X  Comments concerning this documentation should be addressed to the Internet
X! mailbox {\sf Bug-MH@ICS.UCI.EDU}.
X  \par}
X*** ../mh-6.6.0/./papers/multifarious/Makefile	Thu Oct 29 14:59:01 1987
X--- ./papers/multifarious/Makefile	Tue Mar  6 14:49:46 1990
X***************
X*** 10,12 ****
X
X! .tex.dvi:;	sh -c 'if phdtex \\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X--- 10,13 ----
X
X! .tex.dvi:;	sh -c 'if TEXINPUTS=../doclib:.:${TEXINPUTS} tex82 \
X! 			\\nonstopmode\\input $<\\bye; \
X  			  then exit 0; else rm $@; exit 1; fi'
X*** ../mh-6.6.0/./papers/multifarious/multifarious.tex	Fri Nov 17 15:48:56 1989
X--- ./papers/multifarious/multifarious.tex	Tue Mar  6 14:41:19 1990
X***************
X*** 31,32 ****
X--- 31,33 ----
X  \def\UA/{{\sf UA}}
X+ \def\MH/{{\sf MH}}
X
+ END-OF-FILE MH.6.6.4
chmod 'u=rw,g=r,o=r' 'MH.6.6.4'
echo '	-rw-r--r--  1 mh          36683 Apr 13 13:53 MH.6.6.4        (as sent)'
echo -n '	'
/bin/ls -l MH.6.6.4
exit 0