[comp.mail.elm] Elm 2.1 PL1 part 2 of 22

syd@dsinc.UUCP (Syd Weinstein) (12/11/88)

---- Cut Here and unpack ----
#!/bin/sh
# this is part 2 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file Makefile.mt continued
#
CurArch=2
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
     exit 1; fi
( read Scheck
  if test "$Scheck" != $CurArch
  then echo "Please unpack part $Scheck next!"
       exit 1;
  else exit 0; fi
) < s2_seq_.tmp || exit 1
echo "x - Continuing file Makefile.mt"
sed 's/^X//' << 'SHAR_EOF' >> Makefile.mt
X
XFORMATTER = >troff<
XTBL       = >tbl<
X
XDOCS=   Alias.guide Config.guid Elm.cover Filter.guid Ref.guide        \
X	Form.guide Users.guide answer.1 autoreply.1 chkalias.1             \
X	elm.1 fastmail.1 filter.1 frm.1 listalias.1 messages.1 newalias.1     \
X	newmail.1 printmail.1 readmsg.1
X
XUTILSRC= utils/answer.c utils/arepdaem.c utils/autoreply.c                  \
X	utils/fastmail.c utils/from.c utils/newalias.c 		              \
X	utils/newmail.c utils/readmsg.c
X
XFILTSRC= filter/actions.c filter/filter.c filter/parse.c filter/rules.c       \
X	filter/summarize.c filter/utils.c filter/buffer.c
X
XELMSRC=	src/addr_util.c src/alias.c src/aliasdb.c src/aliaslib.c src/args.c  \
X	src/bouncebk.c src/builtin.c src/calendar.c src/conn_to.c	      \
X	src/curses.c src/date.c src/delete.c src/domains.c src/edit.c	      \
X	src/editmsg.c src/elm.c src/encode.c src/errno.c src/file.c	      \
X	src/file_util.c src/fileio.c src/forms.c src/getopt.c src/hdrconfg.c \
X	src/help.c src/init.c src/in_utils.c src/leavembox.c	      \
X	src/limit.c src/mailmsg1.c src/mailmsg2.c src/mailtime.c src/mkhdrs.c \
X	src/newmbox.c src/opt_utils.c src/options.c src/out_utils.c        \
X	src/pattern.c src/pmalloc.c src/quit.c src/read_rc.c src/remail.c     \
X	src/reply.c src/returnadd.c src/save_opts.c src/savecopy.c          \
X	src/screen.c src/showmsg.c src/signals.c src/softkeys.c src/sort.c    \
X	src/string2.c src/strings.c src/syscall.c src/utils.c src/validname.c
X
XMISCHDRS  = hdrs/defs.h hdrs/sysdefs.h
XELMHDRS   = hdrs/headers.h 
XFILTHDRS  = hdrs/filter.h
XMAINHDRS  = hdrs/elm.h
X
X################
X
Xall:	bin/elm filter utils 
X	@echo Everything is up to date!
X
Xdocumentation:  doc/Users.fmtd doc/Ref.fmtd doc/Config.fmtd doc/Alias.fmtd \
X		doc/Form.fmtd doc/Filter.fmtd
X	
Xdoc/Users.fmtd: doc/Users.guide
X	${TBL} doc/Users.guide | ${FORMATTER} -mm > doc/Users.fmtd
X
Xdoc/Form.fmtd: doc/Form.guide
X	${FORMATTER} -mm doc/Form.guide > doc/Form.fmtd
X
Xdoc/Filter.fmtd: doc/Filter.guid
X	${FORMATTER} -mm doc/Filter.guid > doc/Filter.fmtd
X
Xdoc/Ref.fmtd: doc/Ref.guide
X	${FORMATTER} -mm doc/Ref.guide > doc/Ref.fmtd
X
Xdoc/Config.fmtd:  doc/Config.guid
X	${TBL} doc/Config.guid | ${FORMATTER} -mm > doc/Config.fmtd
X
Xdoc/Alias.fmtd:  doc/Alias.guide
X	${TBL} doc/Alias.guide | ${FORMATTER} -mm > doc/Alias.fmtd
X
Xbin/elm: ${ELMSRC} ${MISCHDRS} ${ELMHDRS} ${MAINHDRS}
X	cd src;make 'DEFINE=${DEFINE}' 'LIB2=${LIB2}' ../bin/elm
X	
Xbin/utils: ${UTILSRC} ${MISCHDRS}
X	cd utils; make 'DEFINE=${DEFINE}' 'LIBS=${LIB2}' all
X
Xbin/filter: ${FILTSRC} ${FILTHDR}
X	cd filter; make 'DEFINE=${DEFINE}' 'LIBS=${LIB2}' all
X
Xinstall: all
X	${CP} bin/elm          ${DEST}/elm
X	${CP} bin/frm          ${DEST}/frm
X	${CP} bin/newalias     ${DEST}/newalias
X	${CP} bin/printmail    ${DEST}/printmail
X	${CP} bin/fastmail     ${DEST}/fastmail
X	${CP} bin/readmsg      ${DEST}/readmsg
X	${CP} bin/newmail      ${DEST}/newmail
X	${CP} bin/checkalias   ${DEST}/checkalias
X	${CP} bin/messages     ${DEST}/messages
X	${CP} bin/arepdaemon   ${DEST}/arepdaemon
X	${CP} bin/autoreply    ${DEST}/autoreply
X	${CP} bin/listalias    ${DEST}/listalias
X	${CP} bin/filter       ${DEST}/filter
X	${CP} bin/answer       ${DEST}/answer
X	@${RM} ${DEST}/wnewmail
X	${LN} ${DEST}/newmail  ${DEST}/wnewmail
X	${RM} ${CATMAN}/elm.1 ${CATMAN}/frm.1 \
X	      ${CATMAN}/newalias.1 ${CATMAN}/printmail.1 \
X	      ${CATMAN}/fastmail.1 ${CATMAN}/elm.1 \
X	      ${CATMAN}/readmsg.1 ${CATMAN}/answer.1 \
X	      ${CATMAN}/newmail.1 ${CATMAN}/checkalias.1 \
X	      ${CATMAN}/autoreply.1 ${CATMAN}/wnewmail.1 \
X	      ${CATMAN}/messages.1 ${CATMAN}/trim-headers.1 \
X	      ${CATMAN}/listalias.1 ${CATMAN}/filter.1
X	${CP} doc/elm.1        ${MAN}/elm.1
X	${CP} doc/frm.1        ${MAN}/frm.1
X	${CP} doc/newalias.1   ${MAN}/newalias.1
X	${CP} doc/printmail.1  ${MAN}/printmail.1
X	${CP} doc/fastmail.1   ${MAN}/fastmail.1
X	${CP} doc/chkalias.1 ${MAN}/checkalias.1
X	${CP} doc/messages.1   ${MAN}/messages.1
X	${CP} doc/autoreply.1  ${MAN}/autoreply.1
X	${CP} doc/answer.1     ${MAN}/answer.1
X	${CP} doc/readmsg.1    ${MAN}/readmsg.1
X	${CP} doc/newmail.1    ${MAN}/newmail.1
X	${CP} doc/listalias.1  ${MAN}/listalias.1
X	${CP} doc/filter.1     ${MAN}/filter.1
X	${CP} doc/elm-help.0   ${LIB}
X	${CP} doc/elm-help.1   ${LIB}
X	${CP} doc/elm-help.2   ${LIB}
X	${CP} doc/elmrc-info   ${LIB}
X	@${RM} ${MAN}/wnewmail.1
X	${LN} ${MAN}/newmail.1 ${MAN}/wnewmail.1
X	chmod a+rx ${DEST}/frm ${DEST}/newalias \
X		   ${DEST}/printmail ${DEST}/fastmail \
X		   ${DEST}/readmsg \
X		   ${DEST}/checkalias ${DEST}/autoreply \
X		   ${DEST}/newmail ${DEST}/messages \
X		   ${DEST}/listalias
X	chgrp ${MAILGRP} ${DEST}/elm ${DEST}/filter
X	chmod 2755 ${DEST}/elm ${DEST}/filter
X
Xuninstall:
X	${RM} ${DEST}/elm ${DEST}/frm ${DEST}/newalias ${DEST}/printmail  \
X	      ${DEST}/fastmail ${DEST}/readmsg ${DEST}/newmail            \
X	      ${DEST}/wnewmail ${DEST}/checkalias ${DEST}/messages	  \
X	      ${DEST}/trim-headers ${DEST}/arepdaemon ${DEST}/autoreply   \
X	      ${DEST}/listalias ${DEST}/filter ${DEST}/answer		  \
X	      ${CATMAN}/elm.1 ${CATMAN}/frm.1 ${CATMAN}/newalias.1        \
X	      ${CATMAN}/printmail.1 ${CATMAN}/fastmail.1 ${CATMAN}/elm.1  \
X	      ${CATMAN}/readmsg.1 ${CATMAN}/answer.1 ${CATMAN}/newmail.1  \
X	      ${CATMAN}/checkalias.1 ${CATMAN}/autoreply.1    		  \
X	      ${CATMAN}/wnewmail.1 ${CATMAN}/messages.1  		  \
X	      ${CATMAN}/trim-headers.1 ${CATMAN}/listalias.1 		  \
X	      ${CATMAN}/filter.1 ${LIB}/elm-help.? ${LIB}/elmrc-info
X	@echo Done with removal of installed Elm software.
X
Xrmt-install: remote-defined
X	@echo " "
X	@echo Warning: This assumes "install" has been done on the
X	@echo "         remote machine.  If this is not the case you"
X	@echo "         better hit BREAK quickly!"
X	@echo " "
X	@sleep 10
X	${CP} ${REMOTE}${DEST}/elm          ${DEST}/elm
X	${CP} ${REMOTE}${DEST}/frm          ${DEST}/frm
X	${CP} ${REMOTE}${DEST}/newalias     ${DEST}/newalias
X	${CP} ${REMOTE}${DEST}/printmail    ${DEST}/printmail
X	${CP} ${REMOTE}${DEST}/fastmail     ${DEST}/fastmail
X	${CP} ${REMOTE}${DEST}/readmsg      ${DEST}/readmsg
X	${LN} ${DEST}/newmail     	    ${DEST}/wnewmail
X	${CP} ${REMOTE}${DEST}/newmail      ${DEST}/newmail
X	${CP} ${REMOTE}${DEST}/checkalias   ${DEST}/checkalias
X	${CP} ${REMOTE}${DEST}/messages     ${DEST}/messages
X	${CP} ${REMOTE}${DEST}/arepdaemon   ${DEST}/arepdaemon
X	${CP} ${REMOTE}${DEST}/autoreply    ${DEST}/autoreply
X	${CP} ${REMOTE}${DEST}/listalias    ${DEST}/listalias
X	${RM} ${CATMAN}/elm.1 \
X	      ${CATMAN}/frm.1 \
X              ${CATMAN}/newalias.1 \
X	      ${CATMAN}/printmail.1 \
X	      ${CATMAN}/fastmail.1 \
X              ${CATMAN}/checkalias.1 \
X              ${CATMAN}/autoreply.1 \
X	      ${CATMAN}/readmsg.1 \
X	      ${CATMAN}/answer.1 \
X	      ${CATMAN}/newmail.1 \
X	      ${CATMAN}/wnewmail.1 \
X	      ${CATMAN}/listalias.1 \
X              ${CATMAN}/elm.1
X	${CP} ${REMOTE}${MAN}/elm.1        ${MAN}/elm.1
X	${CP} ${REMOTE}${MAN}/frm.1        ${MAN}/frm.1
X	${CP} ${REMOTE}${MAN}/newalias.1   ${MAN}/newalias.1
X	${CP} ${REMOTE}${MAN}/printmail.1  ${MAN}/printmail.1
X	${CP} ${REMOTE}${MAN}/fastmail.1   ${MAN}/fastmail.1
X	${CP} ${REMOTE}${MAN}/checkalias.1 ${MAN}/checkalias.1
X	${CP} ${REMOTE}${MAN}/autoreply.1  ${MAN}/autoreply.1
X	${CP} ${REMOTE}${MAN}/readmsg.1    ${MAN}/readmsg.1
X	${CP} ${REMOTE}${MAN}/answer.1     ${MAN}/answer.1
X	${LN} ${MAN}/newmail.1   	   ${MAN}/wnewmail.1
X	${CP} ${REMOTE}${MAN}/newmail.1    ${MAN}/newmail.1
X	${CP} ${REMOTE}${MAN}/listalias.1  ${MAN}/listalias.1
X	${CP} ${REMOTE}${LIB}/elm-help.?   ${LIB}
X	${CP} ${REMOTE}${LIB}/elmrc-info   ${LIB}
X	chmod a+rx ${DEST}/frm ${DEST}/newalias ${DEST}/printmail \
X	           ${DEST}/fastmail ${DEST}/readmsg \
X		   ${DEST}/checkalias ${DEST}/autoreply \
X		   ${DEST}/newmail ${DEST}/messages ${DEST}/listalias
X	chgrp mail ${DEST}/elm
X	chmod 2755 ${DEST}/elm
X	@echo everything is installed based on files from ${REMOTE}
X
Xsource: 
X	tar cvf ${TAPE} bin/makelisting utils/*.c src/*.c doc/* hdrs/* \
X	Instruct Makefile* utils/Makefile* src/Makefile* test/*    \
X	utils/*.awk Overview filter/*.c filter/Makefile*
X
X# Note that the production for SHAR assumes a pretty snazzy shar program
X# that can break down the output into a number of files as needed...
X#   The current threshold is 60,000 bytes per file, for email/netnews
X
Xshar:   
X	${SHAR} *
X
Xlint:
X	lint ${UTILSRC} > lint.out
X
Xlisting:
X	@echo listing all source files 
X	@/bin/echo \\f > LISTING
X	@echo adding file 'README'...
X	@cat README >> LISTING
X	@/bin/echo \\f >> LISTING
X	@echo adding file 'Instruct...
X	@cat Instruct >> LISTING
X	@/bin/echo \\f >> LISTING
X	@echo adding file 'Makefile'...
X	@cat Makefile >> LISTING
X	@bin/makelisting Makefile ${UTILSRC} src/Makefile src/*.c hdrs/*.h \
X	${FILTSRC}
X	@echo LISTING generated.
X
Xelm-listing: 
X	@echo listing just the ELM system source files
X	@echo ' ' > src/LISTING
X	@cd src ; make listing ; cd ..
X	@echo LISTING generated \(in directory /src\).
X
Xclean:
X	@cd src ; make clean 
X	@cd utils; make clean
X	@cd filter; make clean
X	@echo All spurious files removed
X
Xelm: bin/elm
Xfilter: bin/filter
Xutils: bin/utils
Xutils/checkalias:
Xutils/messages:
Xdoc/Users.guide:
Xdoc/Ref.guide:
Xdoc/Alias.guide:
Xdoc/Config.guid:
X
Xremote-defined:
X	@if ( "${REMOTE}" == "" ) then; \
X	   echo " " ; \
X	   echo "You need to define 'REMOTE' as the remote file system" ; \
X	   echo "for this particular command.   The easiest way to do " ; \
X	   echo "this is to type:" ;\
X	   echo "    make -f <makefile> REMOTE=<remote file system> rmt-install" ; \
X	   echo " " ; \
X	 endif
X	@if ( "${REMOTE}" == "" ) exit 1
SHAR_EOF
echo "File Makefile.mt is complete"
chmod 0444 Makefile.mt || echo "restore of Makefile.mt fails"
echo "x - extracting doc/Alias.guide (Text)"
sed 's/^X//' << 'SHAR_EOF' > doc/Alias.guide &&
X.PH ""
X.tm Have we been run through "tbl" first?? I hope so!
X\" @(#)$Id: Alias.guide,v 2.1 88/09/15 22:08:05 syd Exp $
X\"
X\"  A guide to the ELM alias system and so on.
X\"  format with:
X\"      tbl Alias.guide | troff -mm > Alias.format'
X\"
X\"  (C) Copyright 1986, 1987 Dave Taylor
X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
X\"  etc. should go to:
X\"	Syd Weinstein		syd@dsinc.UUCP (dsinc!syd)
X\"
X\"  $Log:	Alias.guide,v $
X\" Revision 2.1  88/09/15  22:08:05  syd
X\" Initial 2.1 release
X\" 
X\"  88/08/28 ssw
X\"	fix version references and misc changes
X\"
X\"  88/08/27 nicmad!brown (Mike Brown)
X\"	Fixes for spacing and doc
X\"
X\"  Revision 2.2  88/07/21  09:51:30  edc
X\"  Final hacks to the 2.1 alpha test release. 
X\"  
X\"  Revision 2.1  88/07/08  14:42:45  edc
X\"  Removed allreferences to the X.400 stuff (since it's based on a library
X\"  we can't distribute with the net version of Elm). Also include a
X\"  "Bug Reports To" section in the man pages, as well as a note in the
X\"  documentation title pages stating that "Elm is now in the public trust...
X\"    send bug reports to..." as per Dave's request. At this point this should
X\"  be the last of the documentation work before release to the test group.
X\"  
X\"  Revision 2.0  88/06/27  13:48:21  edc
X\"  This is the original 2.0 gamma release as leaked from HP.
X\"  
X.SA 1
X.nr Hy 1
X.nr Pt 1
X.nr Pi 0
X.lg
X.HM 1 1
X.rs
X.ds HF 3  3  
X.ds HP 12 12 10 10 10
X.PF ""
X.sp |3.0i
X.ce 99
X.ps 20
X\fBThe Elm Alias System Users Guide\fR
X.sp 4
X.ps 12
X\fIWhat aliases are and how to use them
Xin the \fBElm\fP mail system\fR
X.sp 4
XDave Taylor
X.sp 
XHewlett-Packard Laboratories
X1501 Page Mill Road
XPalo Alto CA
X94304
X.sp 4
Xemail:  taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
X.sp 4
X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
X.sp
XSyd Weinstein
XDatacomp Systems, Inc.
X3837 Byron Road
XHuntingdon Valley, PA 19006-2320
X.sp
Xemail: syd\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1syd
X.sp 2
X.ps 18
X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
X.ps 10
X.SK
X.sp 5
X.ps 14
X\fBThe Elm Alias System Users Guide\fR
X.PH "'Alias Users Guide''version 2.1'
X.PF "''Page \\\\nP''"
X.nr P 1
X.sp
X.ps 10
X(version 2.1)
X.sp 2
XDave Taylor
X.sp
XHewlett-Packard Laboratories
X1501 Page Mill Road
XPalo Alto CA
X94304
X.sp 
Xemail: taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
X.sp 2
X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
X.sp
XSyd Weinstein
XDatacomp Systems, Inc.
X3837 Byron Road
XHuntingdon Valley, PA 19006-2320
X.sp
Xemail: syd\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1syd
X.sp 2
X\*(DT
X.ce 0
X.sp 3
X.P
XThis document is intended as a supplement to the \fIElm Users Guide\fR
Xand is only of interest to those users desiring more knowledge
Xabout how aliases work and how to create strange and exciting
Xaliases for their systems (okay, so maybe it's not \fIthat\fR exciting!)
X.sp
X.P
XThis document is broken up into the following sections;
Xuser aliases,
Xgroup aliases,
Xsystem aliases,
Xediting and installing new aliases,
Xthe host routing database,
Xthe domain routing database,
Xgeneral warnings and other chitchat.
X.sp
X.H 1 "User Aliases"
XThe most simple type of aliases in the \fBElm\fR system are individual
Xuser aliases.  These are made up of three parts;
X.nf
X	\fIaliasname list\fR  =  \fIusername\fR  =  \fIaddress\fR \*F
X.FS
XNotice that the alias separator has moved from being a colon 
Xcharacter (`:') to the equals sign (`=').  This is due to
Xthe requirements of the X.400 addressing 
Xscheme.
X.FE
X.fi
XWhere the \fIaliasname list\fR is either a single aliasname\*F
X.FS
Xaliasnames can be any alphanumeric character, a `-' character, or
Xan underscore (`_').
X.FE
Xor a list of aliasnames separated by commas.
X.P
X\fIUsername\fR is used to indicate the full `real name' of the user.  
XFor example, if you had an alias for `taylor' to get to me, the 
X\fIusername\fR field would contain `Dave Taylor' or 
Xperhaps `Dave Taylor at HP'
Xor some other permutation.  \fBElm\fR
Xuses this information to add the users full name to the addresses of 
Xoutbound mail to get more readable addresses.  
X.P
X\fIAddress\fR is either the users full electronic mail address or, if
Xthe machine routing database is installed, the minimum address needed
Xto specify the destination.  For example, say our routing database
Xcontained information on how to get to machine `hp-sdd' and I wanted
Xto have an address for my friend Ken there \(em I could have his address
Xspecified as simply `ken@hp-sdd' (or alternatively `hp-sdd!ken' since
Xthe two are functionally equivalent).
X.sp
X.P 0
XLet's get on to some examples, shall we?
X.sp
XConsider this excerpt from my own \fI.elm/aliases.text\fR file;
X.ft CW
X.nf
X    # Mail aliases for Dave Taylor
X    # Friends from UCSD
X    addie          = Addie Silva    = addie@hp-sdd.SDD.HP.COM
X    frank,minjarez = Frank Minjarez = Minjarez.Verify@dockmaster.arpa
X    pizzini        = Ken Pizzini    = hplabs!ucbvax!ucdavis!pai!ken
X.fi
X\fPNote that the alias for Frank Minjarez has two \fIaliasnames\fR associated
Xwith it, 
X.ft CW
Xfrank\fR and 
X.ft CW
Xminjarez\fR.  Also notice that the 
Xfirst and second aliases
Xuse the ARPA Internet style naming convention of \fIuser@machine\fR 
Xwhereas the third uses the UUCP notation of \fImachine!user\fR.
X.P
XFor the most part, the notational format is transparent within the
Xalias file \(em the only time it \fIdoes\fR make a difference 
Xis if you have to specify more than the machine that the user is
Xreceiving mail on (as in the third example above).  
X.P
XSuffice to say that if you must specify any sort of uucp route
Xthat you should use the uucp notation as much as possible to ensure
Xthat the system expands the correct machine name.  Similarly, if
Xyou're bouncing mail through different ARPA Internet sites (to
Xget to a foreign system, as in the example below) you should use the
Xnotation that system expects:
X.ft CW
X.nf
X	listserv%byuadmin.BITNET@rugters.edu\fP
X.fi
X.sp
X.H 1 "Group Aliases"
XAfter the confusion of user aliases, group aliases are even more 
Xfun!  For the most part the notation is very similar;
X.nf
X	\fIaliasname list\fR   =   \fIgroupname\fR   =   \fIlist of people\fR
X.fi
XWhere \fIaliasname list\fR and \fIgroupname\fR are exactly equivalent
Xto the corresponding fields in user aliases.
X.P
XThe interesting part is the \fIlist of people\fR field; this
Xfield is actually in the same notation as the aliasname list,
Xso it's really quite easy to create.
XIt's best to illustrate by example:
X.ft CW
X.nf
X    friends, mypals = The Gang of Six = joe, larry, mary, joanna,
X                                        nancy, michael
X.fi
X\fP(Notice that you can continue onto as many lines as you'd like so
Xlong as each additional line start with either a \s8SPACE\s10 or a \s8TAB\s10
Xcharacter)
X.P
XThe major limitation with group aliases is that each of the
Xpeople in the list must be a \fIpreviously defined alias\fR
Xor a valid mail address on the current machine.
X.P
XWhat does this mean?  That the following excerpt from an alias file:
X.ft CW
X.nf
X    hawaii = The Hawaiian Twins = joe@cs.rit.edu, maoa
X    maoa   = Maoa Lichtenski Jr = maoa@Hawaii.cs.uh.edu
X.fi
X\fRwill fail for two reasons \(em not only does the group \fIlist of people\fR
Xcontain a complex address, but it also contains an aliasname that is 
Xdefined \fIfurther on\fR in
Xthe \fI.elm/aliases.text\fR file.
X.P
XThe correct way to have the previous aliases in the file are to have them 
Xorganized like:
X.ft CW
X.nf
X    joe    = Joe Lichtenski     = joe@cs.rit.edu
X    maoa   = Maoa Lichtenski Jr = maoa@Hawaii.cs.uh.edu
X    hawaii = The Hawaiian Twins = joe, maoa
X.fi
X\fRwhich will then work correctly.
X.sp
XFortunately, while this seems fairly picky, when you run \fInewalias\fR
Xto install the new aliases, you'll get relevent and meaningful
Xerror messages to help you fix your aliases up correctly.
X.sp
X.H 1 "System Aliases"
XSystem aliases are functionally equivalent to the individual \fBElm\fR 
Xalias lists each \fBElm\fR user has (both user aliases and group aliases) 
Xbut are \fIread only\fR for everyone but the \fBElm\fR administrator.  The 
Xformat of the file is identical to the users file, and the only difference is
Xthat this file is expected to be located in the directory that contains
Xthe \fIsystem_hash_file\fR and \fIsystem_data_file\fR files (see the
X\fIElm Configuration Guide\fR for more details on these variables).
X.P
XSimply create the system alias file in the specified directory
Xas you would a normal alias file, and install it the same way (see the
Xfollowing section for more details on that).  
X.P
XVoila!!
X.sp
X.H 1 "Editing and Installing New Aliases"
XTo install new aliases, you need merely to create, or modify,
Xthe file
X\fI.elm/aliases.text\fR
Xuntil you're
Xsatisfied with it and it meets the requirements discussed above.
XYou can then try to install it with the command;
X.nf
X	$ \fBnewalias\fR
X.fi
Xwhich will either report back the number of aliases installed 
Xor any errors encountered trying to parse and store the
Xgiven alias list.
X.P
XNote that blank lines are no problem and that comments are not only
Xallowed but actually encouraged, and must have `\fB#\fR' as the first
Xcharacter of each comment line.
X.sp
XFinally, if you find that you're hitting the ``Too many aliases'' error, 
Xthen you'll need to reconfigure the entire \fBElm\fR system (again,
Xsee \fIThe Elm Configuration Guide\fR).
X.sp
X.H 1 "The Hostname Routing Database"
XFloating about on the various networks is a rather nifty program by
Xa number of people, including Peter Honeyman and Steve Bellovin, 
Xcalled \fIpathalias\fR.  What this software does is 
Xtake the Usenet articles in the group ``comp.mail.maps'' and change
Xthem into a file of the form;
X.nf
X	\fIhostname\fR    <tab>    \fIaddress\fR
X.fi
Xwhich is then sorted alphabetically and stored in the file
Xpointed to by \fIpathfile\fR for \fBElm\fR (and other 
Xprograms) to use.
X.P
XIf you don't have the program, or don't want to use it, you can 
Xsimulate this file by listing machines in the same format.  The
Xexact format expected is;
X.nf
X	\fIhostname\fR<tab>\fImachine-address\fR
X.fi
Xwhere \fIhostname\fR is a limited identifier (no special characters) and
Xmachine-address MUST contain the sequence `%s' (and consequently
Xany other percent signs that appear in the address must be paired)
Xso that the call in the program ``sprintf(buffer, machine-address, username)''
Xwill generate a valid return address.
X.P 0
XBy way of example, here are a few entries from my own file;
X.ft CW
X.nf
X.TS
Xl l.
X        HPL	    %s@hplabs
X        PARC	    %s%Xerox.PA.COM@hplabs
X        amc-hq	    %s%AMC-HQ.ARPA@hplabs
X        imsss	    %s%%IMSSS%AI.STANFORD.EDU@hplabs
X        infopro	    hplabs!infopro!%s
X        interleaf	    sun!interleaf!%s\fR
X.TE
X.fi
XAs you can see, the addresses can get pretty complicated.  In fact
Xit's due purely to the complexity of addresses that this file 
Xis so useful.
X.sp
X.ne 5
XSome brief examples:
X.in +8n
X.nf
X$ \fBelm joe@HPL
X.ft CW
XTo: joe@hplabs
X$ \fBelm michelle@imsss
X.ft CW
XTo: michelle%IMSSS%AI.STANFORD.EDU@hplabs\fR
X$ \fBelm fiedler@infopro
X.ft CW
XTo: hplabs!infopro!fiedler\fR
X.fi
X.in -8n
XIf you'd like further information on the \fIpathalias\fR program, try
Xkeeping track of the entries in the netnews group \fIcomp.sources.unix\fR \(em
Xit's posted about once a year or so...
X.sp
X.H 1 "The Domain Routing Database"
XAnother interesting feature of the 
X\fBElm\fR system is the shorthand domain routing database.  
XThis is
Xthe same database (in the same strange format) as used by
Xthe publically available \fIuumail\fR program.
X.P
XIn a nutshell, the file contains information of the form;
X.nf
X.in +8n
X\fIdomain,   path-to-gateway,  rewrite-template\fR
X.in -8n
X.fi
XThe \fIdomain\fR field must begin with a leading `.' and
Xis usually ordered in the same way as the standard
Xdomain entries (that is, ``\s8.HP.COM\s10'' not ``\s8.COM.HP\s10'').
X.P
X\fIPath-to-gateway\fR is routing information on how to get
Xto the particular gateway that this domain expects, and
Xalways is a machine/host name (to be found in the pathalias
Xdatabase, see the previous section) preceeded by a `>' 
Xcharacter.
X.P
X\fIRewrite-template\fR is the most interesting of the
Xthree, and is akin to a printf string for C.  The 
Xchanges are that instead of `%s' `%d' and so on, the
Xactual ``percent'' values represent various parts of 
Xthe address, namely;
X.nf
X.TS
Xc l.
X            Symbol	               Represents
X            %U	               The username in the To: address
X            %N	               The remote machine name
X            %D	               %N + domain information 
X            %R	               path to %N from pathalias
X            %P	               \fIpath-to-gateway\fR entry
X            %%	               The `%' character
X.TE
X.fi
Xwith this very un-intuitive setup, let's look at a few entries 
Xfrom the domains database and then see how they work:
X.ft CW
X.nf
X.in +8n
X .EUR.UUCP, , , %R!%U
X .ATT.COM, >att, , %P!%D!%U
X .HP.COM, , , %R!%U
X .UUCP, , , %R!%U
X .COM, >hplabs, , %P!%U@%D
X .CSNET, >hplabs, , %P!18:12:00%%D@CSNET-RELAY.ARPA
X .EDU, >hplabs, , %P!%U@%D\fR
X.in -8n
X.fi
X(Note the presence of a third field that is always null.  This is
Xfor compatability with the \fIuumail\fR program)
X.P
XTo see how it all works, let's suppose that we want to send a message
Xto `jad@cs.purdue.edu'.  This would break down into the following fields:
X.nf
X.in +8n
X%U = \fIjad\fR
X%N = \fIcs\fR
X%D = \fIcs.purdue.edu\fR
X.in -8n
X	  
X.fi
XWhen the \fBElm\fR program matches the \fI.edu\fR  entry
X.ft CW
X.nf
X.in +8n
X .EDU, >hplabs, , %P!%U@%D\fR
X.in -8n
X.fi
Xthe other field instantiated would be:
X.nf
X.in +8n
X%P = \fIpath to hplabs\fR
Xtemplate = \fI%P!%U@%D\fR
X.in -8n
X.fi
XIf, say, our path to \fIhplabs\fR was \fIhpcnoe!hplabs\fR, then
Xthe fully expanded address would be:
X.ft CW
X.nf
X.in +8n
Xhpcnoe!hplabs!jad@cs.purdue.edu
X.in -8n
X.fi
X\fRand so on.  
X.sp
XWhat does this mean to the average user?  It means that you can
Xfor the most part send mail to people on different networks by
Xsimply using their full address, including any domain information, 
Xso that mail to addresses like ``Jack@AI.MIT.EDU'' will work, 
Xa message to ``SueAnn@BBN.MAILNET''
Xwill work and so on!
X.sp
X.H 1 "Other Stuff not Covered Yet"
XProbably the biggest question you have in your mind right now
Xis ``But how the heck does this relate to my existing \fIBerkeley Mail\fR
Xaliases and the lower-level \fIsendmail\fR alias system??''  Well,
Xrest assured that if you \fIreally\fR want to have
Xyour aliases down in the transport you can.  No problem.  All you'll
Xneed to do is to turn off the address validation routine in \fBElm\fR.
X.P
XAnd for those ex-\fIBerkeley Mail\fR fans, you can translate your 
Xaliases into the format that \fBElm\fR wants by running them
Xthrough the \fIawk\fR script listed in the appendix.
X.sp
X.P
XFinally, if you have any problems or questions, try looking in 
Xthe \fInewalias\fR manual entry, or dropping me a line at the
X``usual'' email address.
X.SK
X.ce 99
X\fBAppendix One
XAn AWK Script for Translating Aliases from 
Xa \fIBerkeley Mail\fP ``.mailrc'' File to an \fIElm\fP ``.elm/aliases.text'' 
XFile\fR
X.ce 0
X.sp 
X.ps 8
X.nf
X.ft CW
X.DS
XBEGIN { print "# Elm .elm/aliases.text file, from a .mailrc file..." 
X	print ""
X      }
Xnext_line == 1 { 
X	next_line = 0;
X        group = ""
X	for (i = 1; i <= NF; i++) {
X	  if (i == NF && $i == "\\\\") sep = ""
X	  else                       sep = ", "
X	  if ($i == "\\\\") {
X	    group = sprintf("%s,", group)
X	    next_line = 1;
X	  }
X	  else if (length(group) > 0)
X	    group = sprintf("%s%s%s", group, sep, $i);
X	  else
X	    group = $i;
X	  }
X	  print "\\t" group
X	}
X$1 ~ /[Aa]lias|[Gg]roup/ { 
X	if ( NF == 3)
X	  print $2 " : user alias : " $3;
X	else {
X	  group = ""
X	  for (i = 3; i <= NF; i++) {
X	    if (i == NF && $i == "\\\\") sep = ""
X	    else        sep = ", "
X	    if ($i == "\\\\") {
X 	      group = sprintf("%s,", group)
X 	      next_line = 1;
X	    }
X	    else if (length(group) > 0) 
X 	      group = sprintf("%s%s%s", group, sep, $i);
X	    else
X 	      group = $i;
X	    }
X	    print $2 " : group alias : " group;
X	  }
X 	}
X.DE
X.ft R
X.ps 10
X.fi
XNote: this script is contained in the release under the name 
X``mailrc.awk'' in the utilities directory ``utils''.
SHAR_EOF
chmod 0444 doc/Alias.guide || echo "restore of doc/Alias.guide fails"
echo "x - extracting doc/Config.guid (Text)"
sed 's/^X//' << 'SHAR_EOF' > doc/Config.guid &&
X.PH ""
X\" @(#)$Id: Config.guid,v 2.1 88/09/15 22:09:54 syd Exp $
X\"
X\"  A guide to the ELM alias system and so on.
X\"  format with:
X\"      'troff -mm > Config.fmtd'
X\"
X\"  (C) Copyright 1986, 1987 Dave Taylor
X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
X\"  etc. should go to:
X\"	Syd Weinstein		syd@dsinc.UUCP (dsinc!syd)
X\"
X\"  $Log:	Config.guid,v $
X\" Revision 2.1  88/09/15  22:09:54  syd
X\" Initial 2.1 release
X\" 
X\"  88/09/05 gatech!sigmast!dgy@cs.buffalo.edu
X\"	misc fixes re nroff and OPTIMIZE RETURN
X\"
X\"  88/08/28 SSW
X\"  misc fixes re release issues
X\"
X\"  Revision 2.2  88/07/21  09:53:32  edc
X\"  Final hacks to the 2.1 alpha test release. 
X\"  
X\"  Revision 2.1  88/07/08  14:46:51  edc
X\"  Removed allreferences to the X.400 stuff (since it's based on a library
X\"  we can't distribute with the net version of Elm). Also include a
X\"  "Bug Reports To" section in the man pages, as well as a note in the
X\"  documentation title pages stating that "Elm is now in the public trust...
X\"    send bug reports to..." as per Dave's request.
X\"  
X\"  Revision 2.0  88/06/27  13:50:30  edc
X\"  This is the original 2.0 gamma release as leaked from HP.
X\"  
X.SA 1
X.nr Hy 1
X.nr Pt 1
X.nr Pi 0
X.lg
X.HM 1 1
X.rs
X.ds HF 3  3
X.ds HP 12 12 10 10 10
X.PF ""
X.sp |3.0i
X.ce 99
X.ps 20
X\fBElm Configuration Guide\fR
X.sp 4
X.ps 12
X\fIHow to install and customize the Elm mail system\fR
X.sp 2
XDave Taylor
X.sp
XHewlett-Packard Laboratories
X1501 Page Mill Road
XPalo Alto CA
X94304
X.sp 
Xemail: taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
X.sp 4
X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
X.sp
XSyd Weinstein
XDatacomp Systems, Inc.
X3837 Byron Road
XHuntingdon Valley, PA 19006-2320
X.sp
Xemail: syd\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1syd
X.sp 3
X.ps 18
X\fB\(co\fR\s12 Copyright 1986,1987 by Dave Taylor
X.ps 10
X.SK
X.sp 5
X.ps 14
X\fBElm Configuration Guide\fR
X.PH "'Elm Configuration Guide''version 2.1'
X.PF "''Page \\\\nP''"
X.nr P 1
X.sp
X.ps 10
X(version 2.1)
X.sp 2
XDave Taylor
X.sp
XHewlett-Packard Laboratories
X1501 Page Mill Road
XPalo Alto CA
X94304
X.sp 
Xemail: taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
X.sp 2
X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
X.sp
X.sp
XSyd Weinstein
XDatacomp Systems, Inc.
X3837 Byron Road
XHuntingdon Valley, PA 19006-2320
X.sp
Xemail: syd\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1syd
X.sp 2
X\*(DT
X.ce 0
X.sp 3
X.P
XThis document is intended as a supplement to the \fIElm Users Guide\fR
Xand \fIElm Reference Guide\fR
Xand should be of interest mainly to people at a site either installing
Xor maintaining the source code to the \fBElm\fR mail system, or
Xmodifying the code.
X.sp 
XIt's \fIhighly\fR recommended that installation be done by using the
X\fIConfigure\fR script supplied with the system.  Please see the
Xfile \fIInstructions\fR for further information.
X.sp
XThe remainder of this document will discuss the 
Xoptions available via direct editing of various files and
Xparameters.  As indicated above, almost all of the sites that install
X\fBElm\fR should find the \fIConfigure\fR script more than
Xsufficient.
X.sp 
XThe first thing that needs to be decided when you're ready to install
Xthe program is what sort of operating system you're running on...
Xcurrently the choices are;
X.VL 14 3
X.LI "System V"
XThis is the default configuration, and should work on all AT&T 
XSystem V Unix
X.FS ' '
XUnix is a Trademark of AT&T Bell Laboratories.
X.br
XHP-UX and HP Precision Architecture are Trademarks of Hewlett-Packard Company.
X.br
XUTS is a Trademark of Amdahl Corporation.
X.br
XUltrix is a Trademark of Digital Equipment Corporation.
X.FE
Xsystems, including HP-UX, the HP Precision Architecture systems, 
XUltrix, Pyramid and variations thereof.
X.LI "System V.3"
XThis is for the V.3 AT&T internal release of Unix.
X.LI "System VII"
XThis is for the VII AT&T internal release of Unix.
X.LI "BSD"
XThis is for the Berkeley breed of Unix.
X.LI "UTS"
XThis is for the Amdahl version of Unix.
X.LI "SUN"
XThis is for the Sun workstations (This is a superset of the BSD
Xdefinition as the Sun appears to have some major problems when it
Xis asked to perform string functions and handed \fInull\fR addresses,
Xas opposed to a \fIpointer\fR to a \fInull\fR...)
X.LI "Xenix"
XCurrently there are sufficient differences between Xenix System III and 
Xstandard System V machines that no support is included in this
Xrelease.  Sorry.  SCO Xenix V/386 systems should specify System V.
X.LE
X.sp
XOnce you've decided which is appropriate, edit the Makefile file
Xin the top level directory and alter the ``DEFINE'' there (about
Xline 33 or so) accordingly.  (Note: also use the associated
X``LIB2'' define that's associated with each of the systems to ensure
Xthat the program uses the correct libraries when linking together!)
X.sp
XAn analogous change should be made in the Makefile in the 'src', 'utils'
Xand 'filter' directories
Xtoo if you're planning on actually working on the programs rather than
Xjust installing them...
X.sp
XWhile you're at it, if you happen to be running \fIACSNET\fR, then
Xyou need to add the relevent define in the main Makefile and the
XMakefile in directory `src' too!
X.sp 2
XOnce that's done, all of the other installation dependent definitions
Xare contained in the file \fIhdrs/sysdefs.h\fR and are;
X.VL 15 0
X.LI "USE_EMBEDDED_ADDRESSES    "
XThis controls the mailers response to messages that contain 
X``Reply-To:'' or ``From:'' lines that actually contain a return
Xaddress.  If it's defined, the mailer will attempt to use
Xthe address specified (overriding the return address built from the path that
Xthe mail took).  It will look the address up in the pathalias
Xdatabase (see the documentation on the alias system) for 
Xincomplete paths, but it is still recommended that this be left
Xundefined.  
X.P
XThis will, of course, make the mailer not be a standard 'RFC-822' 
Xmailer, since the mail system is defined to use the reply-to
Xif included rather than the return address, but, at least for
Xaddresses on the Internet, it ain't going to work a lot of the time!
X.LI "FIND_DELTA"
XThis is the delta that the binary search of the pathalias database
Xwill use to determine when it's slicing up a single line, rather than
Xa multitude of lines.   Ideally, this should be set to 1 byte less
Xthan the shortest line in the file...the default is 10 bytes.
X.LI "MAX_SALIASES    "
XThe number of system aliases allowed.  (It is recommended that
Xthis be a prime number to improve the performance of the 
Xhashing function (it's a complicated proof!))
X.LI "MAX_UALIASES    "
XThe number of user aliases allowed.  (should be a prime number -
Xsee the comment above)
X.LI "MAX_IN_WEEDLIST    "
XThe maximum number of headers that can be specified in the weedout
Xlist of the .elmrc file.  A suggested alternative approach if this
Xnumber is too small is to specify initial substrings in the file
Xrather than increasing the number.  For example, say you want to 
Xweedout the headers ``Latitude:'' and ``Latitudinal-Coords:'', you
Xcould simply specify ``Latitud''" and match them both!  Furthermore
Xyou could also specify headers like ``X-'' and remove all the user
Xdefined headers!
X.LI MAX_HOPS
XWhen replying to a G)roup, this is the maximum number of hops that
Xa message can have taken.  This is used to try to optimize the 
Xreturn address (remove cyclic loops and so on) and regular use
Xshould show that the default of 35 is plenty more than you'll
Xever need!
X.LI "MAX_ATTEMPTS    "
XWhen reading in the default mailbox (\fI/usr/mail/$username\fR) the mailer
Xcreates a file called \fI/usr/mail/$username.lock\fR to ensure that no
Xmail is added to the file while it's being either read, or replaced
X(ie written to).  Occasionally, this lock file will already be in
Xplace since someone is currently sending you mail.  If this occurs,
Xthe mailer will wait a few seconds and try to create the lock file
Xagain.  This parameter defines the number of tries the mailer should
Xtake before giving up.
X.LI "REMOVE_AT_LAST    "
XWhen it does decide to give up after trying to create the lock file,
X(see MAX_ATTEMPTS, above) this will define how to act.  If it's 
Xdefined, the mailer will attempt to remove the lock file after the
XMAX_ATTEMPTS timeout.  On the other hand, if it's not defined (the
Xrecommended state) it'll simply quit the mailer, telling the user
Xto try again in a few minutes.
X.LI "DEFAULT_BATCH_SUBJECT    "
XWhat the subject should be on messages that are from redirected input
Xbut don't have a subject specified...
X.LI "NOCHECK_VALIDNAME    "
XThis disables the checking of validnames on the existing machine.
XOn machines that run a system such as \fIsendmail\fR and use the
Xsendmail alias feature, this should be defined.  On other systems
Xthis should be left as the default (not defined) to avoid users
Xgenerating \fIdead.letter\fR files...
X.LI NO_VM
XThis disables the calls to ``vfork()'' and replaces them will calls
Xto ``fork()''.  On machines where vfork() is available, this should
Xbe left undefined, as the virtual call is considerably faster (and
Xis only used when the spawned process doesn't need ALL the stuff
Xfrom the calling process!)
X.LI ALLOW_BCC
XIf you are running a mail transport agent that can properly deal 
Xwith the ``Bcc'' header in messages, you should define this variable.
XOtherwise you'll end up with strange stuff like people \fIknowing\fR
Xwho got ``bcc''s of their mail...
X.LI USE_DBM
XIf you've got a version of the \fIpathalias\fR program that
Xoutputs the information into a DBM file, then you'll have the
Xtext file and associated ``.pag'' and ``.dir'' files.  By
Xturning this option on, \fBElm\fR will know to consult those
Xvia the DBM utilities rather than the standard binary search
Xof the text file.
X.LI "LOOK_CLOSE_AFTER_SEARCH    "
XSome systems are set up in such a way as to have direct connections
Xto machines, but to have multi-machine hops be preferable for
Xrouting messages to/through that machine (an example is a connection
Xto ``nbires'' for the monthly comp.mail.maps information,
Xbut only connected to once a month!).
XIf this option is defined, then the system will
Xtry to find a suitable path to the machine \fIbefore\fR it checks
Xagainst the \fIL.sys/uuname\fR list of systems that it can connect to.
X.LI USE_UUNAME
XThe mailer tries to get the list of machines that's its connected
Xto by looking in the \fIL.sys\fR file.  If it fails usually, it will
Xthen try to do a \fIuuname\fR command and then read the output of
Xthat command.  If this is defined, however, it will skip the \fIL.sys\fR
Xreading and immediately try the \fIuuname\fR call.
X.LI "DONT_TOUCH_ADDRESSES    "
XWith the slow entrance of various delivery agents that can dynamically
Xroute things it becomes important that the mailer \fInot\fR touch 
Xaddresses as entered by the user.  If this is the case at your
Xsite (for example, if you're running \fIsmail\fR and \fIsendmail\fR as
Xa package) then you need to define this.
X.LI "OPTIMIZE_RETURN    "
XWhen saving the return address of a current message, the program will
Xattempt to store the minimum possible path.  Oftentimes, however, this
Xisn't the ideal behaviour.  If you don't want the program to do this,
Xthen you should undefine this.
X.LI "AUTO_BACKGROUND    "
XIf this is defined then the \fInewmail\fR program automatically puts 
Xitself into background as soon as it's invoked.  Otherwise, the
Xuser needs to have a trailing ampersand (as in \fBnewmail &\fR) to
Xget the same functionality.  (it seems reasonable to assume that
Xno-one would ever run the utility as a \fIforeground\fR process!!!)
X.LI "DONT_ADD_FROM    "
XSome mail systems (like my own) add From: lines that are
Xactually different than the ``default''.  That is, the machine
XI send mail from is ``atom'' so my From: line would normally
Xbe ``taylor@atom'' but it should actually be ``taylor@hplabs''.
XMy sendmail will add this correctly, so this allows \fBElm\fR
Xto defer the addition until then.  This should only be used
Xif your system is running sendmail in such a way that it will
Xadd this header as needed ONLY!
X.LI "INTERNET_ADDRESS_FORMAT    "
XFor systems that prefer the Internet addressing notation in the 
XFrom: line, defining this will force that.  The default is
Xto use Usenet notation (\fIhostname!username\fR) \(em this will change
Xit to Internet notation (\fIusername@hostname\fR).
X.LI PREFER_UUCP
XOn some mail systems, the local host automatically appends their
Xidentification \fIin Internet format\fR to the addresses you
Xreceive (e.g. ``att!snsvax!joe@hplabs.HP.COM'' is an address
Xform I see, being directly connection to HPLABS, all too often).
XThis will simple ensure that when displaying the return address 
Xof the message it will ignore the Internet part if there's also 
Xa UUCP part.  (This is a kludge.  One should never have to 
Xdeal with this in a mail system... *sigh*)
X.LI "BOGUS_INTERNET    "
XAfter some serious thought, I came to the conclusion that the
Xeasiest way to deal with the dumb configuration here is to 
Xsimply strip off the local address part entirely whenever 
Xpossible.  Hence, this field defines the local address that
Xis added to the message addresses needlessly.  This is probably
Xthe single worst solution imaginable, but it works...
X.LI USE_DOMAIN
XDefine if you want to have the \fIDOMAIN\fR field added to the
X\fIhostname\fR in the From: field on outbound mail (note that this
Xonly makes sense on Internet mail...)
X.LI DOMAIN
XIf you choose to have the USE_DOMAIN define set, you
X\fIMUST DEFINE THIS ACCORDINGLY!!!\fR
XA typical entry would be:\fC
X.DS
X #define  DOMAIN        ".HP.COM"
X.DE
X.ft R
X.LI "SAVE_GROUP_MAILBOX_ID    "
XIf you're running the mailer set group id (usually ``setgid mail'') then
Xthis'll ensure that the users mailbox, when altered, will always retain
Xits group id (obtained by the ``getegid()'' call, for those gurus out
Xthere who care).  
X.LI "ENABLE_CALENDAR    "
XIf you want to have users able to scan their mail for calendar entries
X(see the \fIElm Reference Guide\fR) then define this and the following
Xtoo.  (There is no reason not to have this, but power corrupts, right?)
X.LI "dflt_calendar_file    "
XThe name of the default ``calendar'' file if the user doesn't specify
Xone in their \fI.elmrc\fR file.
X.LI "NEED_GETHOSTNAME    "
XIf the version of Unix that we're on doesn't supply us with the
X\fIgethostname(2)\fR call, we'll need to define this macro so that
X\fBElm\fR can include one of its own.
X.LI "NEED_CUSERID    "
XSimilarly, if this version if Unix doesn't have the \fIcuserid(3)\fR
Xcall available, we have one of our own.  Define this as needed.
X.LI "SHORTNAMES    "
XIf you're on a machine that only has 8 character significant variable
Xnames (certainly not compatible with the upcoming ANSI C standard)
Xthen define this to get a long-idenifier to short-identifier mapping.
XThis mapping, however, isn't complete, so you'll probably find that
Xthere are still some problems to fix.
X.LI "system_text_file    "
XThis is the source text file for the system level aliases.
XSee either the \fInewalias(1L)\fR man page, or \fIThe Elm
XAlias System Users Guide\fR for further details.
X.LI "system_hash_file    "
XThis is the file that contains the hashed version of the system 
Xaliases.  
X.LI "system_data_file    "
XThis is the other file the \fInewalias\fR command installs in the system
Xalias area and contains the actual addresses for each of the aliases
Xcontained in the hashed data file.
X.LI ALIAS_TEXT
XThis is where the individual users alias text file lives.
X.LI ALIAS_HASH
XWhere the hashed aliases are stored,
X.LI ALIAS_DATA
Xand where the alias address data itself is kept.
X.LI pathfile
XThis defines the location of the pathalias datafile.  This file is in
Xthe format that \fIpathalias\fR generates, that is;
X.nf
X   
X    machine <tab> address
X.fi
XFor further information, please see \fIThe Elm Alias System Users Guide\fR.
X.LI domains
XThis defines the location of the the domains database file.  The format
Xfor this file and so on are fully discussed in \fIThe Elm Alias System
XUsers Guide\fR also.
X.LI Lsys
XThis defines where the system \fIL.sys\fR file is kept.  This is used for the
Xmailer to quickly know what machines the current machine can talk to
Xdirectly (to avoid trying to search the pathalias database to route mail
Xto these machines).  
X.LI DEBUGFILE
XThe name of the file to put in the users home directory if they choose to
Xuse the `-d' debug option. 
X.LI OLDEBUG
XThe name of the file to save the previous debug output as.  (this feature
Xwas added to ensure that users wanting to mail bug reports wouldn't 
Xautomatically overwrite the debug log of the session in question)
X.LI temp_file
XTemporary file for sending outbound messages.
X.LI temp_form_file
XA place to store temporary forms (for Forms Mode) while answering them.
X.LI temp_mbox
XPlace to keep copy of incoming mailbox to avoid collisions with newer
Xmail.
X.LI temp_print 
XFile to use when creating a printout of a message.
X.LI temp_uuname
XWhere to redirect output of the \fIuuname(1M)\fR command.
X.LI mailtime_file
XFile to compare date to to determine if a given message is New
Xsince the last time the mail was read or not.
X.LI readmsg_file
XFile to use when communicating with the \fIreadmsg\fR program (see
Xthat program for more information)
X.LI emacs_editor
XThe typical place the \fIemacs\fR editor lives on most machines.  This
Xis so that when the user types ``~e'' while entering a message, the
Xprogram can automatically invoke this particular breed of editor.
X.LI default_editor
XIf no editor is specified in the users .elmrc file, this is which
Xeditor to use.  \s12 Ensure it is a valid editor on this machine!!\s10
X(Note that the default home for \fIvi\fR is different on BSD machines)
X.LI mailhome
XWhere all the incoming mailboxes are, and also where the 'lock'
Xfiles have to be put for the mailer to know not to add new
Xmail while we're reading/writing the mailfile.
X(note that mail is kept in a different directory on Berkeley 
Xsystems)
X.LI default_shell
XWhat the standard default shell is on most machines.  (don't change
Xthis without careful consideration!)
X.LI default_pager
XThis is the standard pager to use for reading messages.
X.LI sendmail
XDefines where \fIsendmail\fR is (if you have it on your system).
X.LI smflags 
XDefines the flags to hand to \fIsendmail\fR if and when the program
Xchooses to use it.
X.LI mailer
XIf you don't have \fIsendmail\fR, this is the mailer that'll be used.
X.LI mailx
XIf all else fails, this mailer can be used in a rather dumb way.
X.LI helphome
XWhere the help file is kept (soon to be help files!)
X.LI helpfile
XThe name of the main helpfile (kept in \fIhelphome\fR).
X.LI ELMRC_INFO
XThe file containing textual messages associated with each
X\fBElm\fR variable setting in the
Xusers ``.elm/elmrc''
Xfile.  This is used when the user chooses to auto-save the
Xoptions from within the main program.
X.LI elmrcfile
XThe name of the automatic control file (currently \fI.elmrc\fR)
X.LI old_elmrcfile
XWhen a new elmrc file is saved, the old one is also saved, being
Xrenamed to whatever this identifier is set to.
X.LI mailheaders 
XThe name of the optional file that users may have that will be
Xincluded in the headers of each outbound message.
X.LI dead_letter
XIf the user decides not to send a message it will instead be saved
Xto this filename in their home directory.
X.LI unedited_mail
XIn the strange case when the mailer suddenly finds all the directories
Xit uses shut off (like \fI/usr/mail\fR and \fI/tmp\fR) 
Xthen it'll put the current
Xmailbox into this file in the users home directory.
X.LI newalias
XHow to install new aliases..(note: you MUST have the '-q' flag!)
X.LI readmsg
XWhat the \fIreadmsg(1L)\fR program is installed as.
X.LI remove
XHow to remove a file.
X.LI cat
XHow to display a file to stdout.
X.LI uuname
XHow to get a \fIuuname\fR listing (ie a listing of the machines that this
Xmachine connects to)
X.LE
SHAR_EOF
chmod 0444 doc/Config.guid || echo "restore of doc/Config.guid fails"
echo "x - extracting doc/Elm.cover (Text)"
sed 's/^X//' << 'SHAR_EOF' > doc/Elm.cover &&
X.PH ""
X\" @(#)$Id: Elm.cover,v 2.1 88/09/15 22:09:57 syd Exp $
X\"
X\"  Cover sheet for the ELM mail system...
X\"  format with 
X\"	troff -mm Elm.cover > Coversheet.fmtd'
X\"
X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
X\"  etc. should go to:
X\"	Syd Weinstein		syd@dsinc.UUCP (dsinc!syd)
X\"
X\"  (C) Copyright 1986, 1987 Dave Taylor
X\"
X\"  $Log:	Elm.cover,v $
X\" Revision 2.1  88/09/15  22:09:57  syd
X\" Initial 2.1 release
X\" 
X\"  Revision 2.1  88/07/08  14:46:59  edc
X\"  Removed allreferences to the X.400 stuff (since it's based on a library
X\"  we can't distribute with the net version of Elm). Also include a
X\"  "Bug Reports To" section in the man pages, as well as a note in the
X\"  documentation title pages stating that "Elm is now in the public trust...
X\"    send bug reports to..." as per Dave's request. At this point this should
X\"  be the last of the documentation work before release to the test group.
X\"  
X\"  Revision 2.0  88/06/27  15:39:13  edc
X\"  Original release 2.0 gamma as leaked from HP
X\"  
X.PF ""
X.ds HF 3  3 
X.ds HP 12 12
X.SA 1
X.nr Hy 1
X.nr Pt 1
X.nr Pi 8
X.lg 1
X.HM 1 1
X.rs
X.sp |3.0i
X.ce 99
X.ps 25
X\fBThe \s26Elm\s25 Mail System\fR
X.sp 2
X.ps 14
X\fIA Replacement Mailer for All Unix Systems\fR
X.sp 4
XDave Taylor
X.sp 2
XHewlett-Packard Laboratories
X1501 Page Mill Road
XPalo Alto CA
X94304
X.sp 2
Xemail: taylor\s12@\s14hplabs \ or \ hplabs!taylor
X.sp 5
X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
X.sp
XSyd Weinstein
XDatacomp Systems, Inc.
X3837 Byron Road
XHuntingdon Valley, PA 19006-2320
X.sp
Xemail: syd\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1syd
SHAR_EOF
chmod 0444 doc/Elm.cover || echo "restore of doc/Elm.cover fails"
echo "x - extracting doc/Filter.guid (Text)"
sed 's/^X//' << 'SHAR_EOF' > doc/Filter.guid &&
X.PH ""
X.tm Have we been run through "tbl" first?? I hope so!
X\" @(#)$Id: Filter.guid,v 2.1 88/09/15 22:09:58 syd Exp $
X\"
X\"  A guide to the Elm Filter program
X\"  format with:
X\"	 ' tbl Filter.guide | troff -mm > Filter.format'
X\"
X\"  (C) Copyright 1986, 1987 Dave Taylor
X\"
X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
X\"  etc. should go to:
X\"	Syd Weinstein		syd@dsinc.UUCP (dsinc!syd)
X\"
X\"  $Log:	Filter.guid,v $
X\" Revision 2.1  88/09/15  22:09:58  syd
X\" Initial 2.1 release
X\" 
X\"  88/08/30 SSW
X\"	misc changes for release
X\"
X\"  88/08/27 nicmad!brown (Mike Brown)
SHAR_EOF
echo "End of part 2"
echo "File doc/Filter.guid is continued in part 3"
echo "3" > s2_seq_.tmp
exit 0
-- 
=====================================================================
Sydney S. Weinstein, CDP, CCP                   Elm Coordinator
Datacomp Systems, Inc.				Voice: (215) 947-9900
{allegra,bellcore,bpa,vu-vlsi}!dsinc!syd	FAX:   (215) 938-0235