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