rsalz@uunet.uu.net (Rich Salz) (04/11/89)
Submitted-by: dsinc!syd@uunet.UU.NET (Syd Weinstein) Posting-number: Volume 18, Issue 82 Archive-name: elm2.2/part03 #!/bin/sh # this is part 3 of a multipart archive # do not concatenate these parts, unpack them in order with /bin/sh # file Configure continued # CurArch=3 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 Configure" sed 's/^X//' << 'SHAR_EOF' >> Configure Xd_mkdir='$d_mkdir' Xd_portable='$d_portable' Xd_symlink='$d_symlink' Xd_vfork='$d_vfork' Xd_voidsig='$d_voidsig' Xd_whoami='$d_whoami' Xn='$n' Xc='$c' Xpackage='$package' Xspitshell='$spitshell' Xshsharp='$shsharp' Xsharpbang='$sharpbang' Xstartsh='$startsh' Xdefine='$define' Xloclist='$loclist' Xexpr='$expr' Xsed='$sed' Xecho='$echo' Xcat='$cat' Xrm='$rm' Xmv='$mv' Xcp='$cp' Xtail='$tail' Xtr='$tr' Xmkdir='$mkdir' Xsort='$sort' Xuniq='$uniq' Xgrep='$grep' Xtrylist='$trylist' Xtest='$test' Xinews='$inews' Xegrep='$egrep' Xmore='$more' Xpg='$pg' XMcc='$Mcc' Xvi='$vi' Xmailx='$mailx' Xmail='$mail' Xcpp='$cpp' Xperl='$perl' Xemacs='$emacs' Xls='$ls' Xrmail='$rmail' Xsendmail='$sendmail' Xshar='$shar' Xsmail='$smail' Xtbl='$tbl' Xtroff='$troff' Xnroff='$nroff' Xuname='$uname' Xuuname='$uuname' Xline='$line' Xchgrp='$chgrp' Xchmod='$chmod' Xlint='$lint' Xsleep='$sleep' Xpr='$pr' Xtar='$tar' Xln='$ln' Xlpr='$lpr' Xlp='$lp' Xtouch='$touch' Xmake='$make' Xbin='$bin' Xd_calendar='$d_calendar' Xcalendar='$calendar' Xd_crypt='$d_crypt' Xcryptlib='$cryptlib' Xd_cuserid='$d_cuserid' Xd_flock='$d_flock' Xd_gethname='$d_gethname' Xd_douname='$d_douname' Xd_phostname='$d_phostname' Xd_host_comp='$d_host_comp' Xd_getopt='$d_getopt' Xd_havedbm='$d_havedbm' Xdbm='$dbm' Xd_havetlib='$d_havetlib' Xtermlib='$termlib' Xd_internet='$d_internet' Xd_mboxedit='$d_mboxedit' Xd_newauto='$d_newauto' Xd_optreturn='$d_optreturn' Xd_pafirst='$d_pafirst' Xd_useuuname='$d_useuuname' Xd_notouchadd='$d_notouchadd' Xd_noaddfrom='$d_noaddfrom' Xd_usedomain='$d_usedomain' Xd_nocheckvalid='$d_nocheckvalid' Xd_remlock='$d_remlock' Xmaxattempts='$maxattempts' Xd_rename='$d_rename' Xd_setgid='$d_setgid' Xmailermode='$mailermode' Xd_strings='$d_strings' Xd_pwdinsys='$d_pwdinsys' Xincludepath='$includepath' Xd_tempnam='$d_tempnam' Xtempnamo='$tempnamo' Xtempnamc='$tempnamc' Xd_termio='$d_termio' Xd_tminsys='$d_tminsys' Xd_tz_min='$d_tz_min' Xd_useembed='$d_useembed' Xd_utimbuf='$d_utimbuf' Xdefbatsub='$defbatsub' Xdefeditor='$defeditor' Xelmalias='$elmalias' Xmaxsysalias='$maxsysalias' Xmaxuseralias='$maxuseralias' Xhostname='$hostname' Xphostname='$phostname' Xmydomain='$mydomain' Xlib='$lib' Xlibc='$libc' Xlinepr='$linepr' Xmaildir='$maildir' Xmailer='$mailer' Xmailgrp='$mailgrp' Xmansrc='$mansrc' Xmanext='$manext' Xmodels='$models' Xsplit='$split' Xsmall='$small' Xmedium='$medium' Xlarge='$large' Xhuge='$huge' Xoptimize='$optimize' Xccflags='$ccflags' Xldflags='$ldflags' Xcc='$cc' Xlibs='$libs' Xnametype='$nametype' Xd_passnames='$d_passnames' Xd_berknames='$d_berknames' Xd_usgnames='$d_usgnames' Xpasscat='$passcat' Xpager='$pager' Xpathalias='$pathalias' Xdomains='$domains' Xlsysfile='$lsysfile' Xlsysvssys='$lsysvssys' Xprefshell='$prefshell' Xrmttape='$rmttape' Xroff='$roff' Xtmpdir='$tmpdir' Xxencf='$xencf' Xxenlf='$xenlf' Xd_xenix='$d_xenix' Xd_bsd='$d_bsd' XCONFIG=true XEOT X XCONFIG=true X Xecho " " Xdflt='' Xfastread='' Xecho "If you didn't make any mistakes, then just type a carriage return here." Xrp="If you need to edit config.sh, do it as a shell escape here:" X$echo $n "$rp $c" X. UU/myread Xcase "$ans" in X'') ;; X*) : in case they cannot read X eval $ans;; Xesac X. ./config.sh X Xecho " " Xecho "Doing variable substitutions on .SH files..." Xset x `awk '{print $1}' <MANIFEST | $grep '\.SH'` Xshift Xcase $# in X0) set x *.SH; shift;; Xesac Xif test ! -f $1; then X shift Xfi Xfor file in $*; do X case "$file" in X */*) X dir=`$expr X$file : 'X\(.*\)/'` X file=`$expr X$file : 'X.*/\(.*\)'` X (cd $dir && . $file) X ;; X *) X . $file X ;; X esac Xdone Xif test -f config.h.SH; then X if test ! -f config.h; then X : oops, they left it out of MANIFEST, probably, so do it anyway. X . config.h.SH X fi Xfi X Xif $contains '^depend:' Makefile >/dev/null 2>&1; then X dflt=n X $cat <<EOM X XNow you need to generate make dependencies by running "make depend". XYou might prefer to run it in background: "make depend > makedepend.out &" XIt can take a while, so you might not want to run it right now. X XEOM X rp="Run make depend now? [$dflt]" X $echo $n "$rp $c" X . UU/myread X case "$ans" in X y*) make depend X echo "Now you must run a make." X ;; X *) echo "You must run 'make depend' then 'make'." X ;; X esac Xelif test -f Makefile; then X echo " " X echo "Now you must run a make." Xelse X echo "Done." Xfi X X$rm -f kit*isdone X: the following is currently useless Xcd UU && $rm -f $rmlist X: since this removes it all anyway Xcd .. && $rm -rf UU X: end of Configure SHAR_EOF echo "File Configure is complete" chmod 0555 Configure || echo "restore of Configure fails" echo "x - extracting config.h.SH (Text)" sed 's/^X//' << 'SHAR_EOF' > config.h.SH && Xcase $CONFIG in X'') X if test ! -f config.sh; then X ln ../config.sh . || \ X ln ../../config.sh . || \ X ln ../../../config.sh . || \ X (echo "Can't find config.sh."; exit 1) X echo "Using config.sh from above..." X fi X . ./config.sh X ;; Xesac Xecho "Extracting config.h (with variable substitutions)" Xsed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#undef!' X/* config.h X * This file was produced by running the config.h.SH script, which X * gets its values from config.sh, which is generally produced by X * running Configure. X * X * Feel free to modify any of this as the need arises. Note, however, X * that running config.h.SH again will wipe out any changes you've made. X * For a more permanent change edit config.sh and rerun config.h.SH. X */ X X X/* EUNICE: X * This symbol, if defined, indicates that the program is being compiled X * under the EUNICE package under VMS. The program will need to handle X * things like files that don't go away the first time you unlink them, X * due to version numbering. It will also need to compensate for lack X * of a respectable link() command. X */ X/* VMS: X * This symbol, if defined, indicates that the program is running under X * VMS. It is currently only set in conjunction with the EUNICE symbol. X */ X#$d_eunice EUNICE /**/ X#$d_eunice VMS /**/ X X/* CPPSTDIN: X * This symbol contains the first part of the string which will invoke X * the C preprocessor on the standard input and produce to standard X * output. Typical value of "cc -E" or "/lib/cpp". X */ X/* CPPMINUS: X * This symbol contains the second part of the string which will invoke X * the C preprocessor on the standard input and produce to standard X * output. This symbol will have the value "-" if CPPSTDIN needs a minus X * to specify standard input, otherwise the value is "". X */ X#define CPPSTDIN "$cppstdin" X#define CPPMINUS "$cppminus" X X/* index: X * This preprocessor symbol is defined, along with rindex, if the system X * uses the strchr and strrchr routines instead. X */ X/* rindex: X * This preprocessor symbol is defined, along with index, if the system X * uses the strchr and strrchr routines instead. X */ X#$d_index index strchr /* cultural */ X#$d_index rindex strrchr /* differences? */ X X/* MKDIR: X * This symbol, if defined, indicates that the mkdir routine is available X * to create directories. Otherwise you should fork off a new process to X * exec /bin/mkdir. X */ X#$d_mkdir MKDIR /**/ X X/* PORTABLE: X * This symbol, if defined, indicates to the C program that it should X * not assume that it is running on the machine it was compiled on. X * The program should be prepared to look up the host name, translate X * generic filenames, use PATH, etc. X */ X#$d_portable PORTABLE /**/ X X/* SYMLINK: X * This symbol, if defined, indicates that the symlink routine is available X * to create symbolic links. X */ X#$d_symlink SYMLINK /**/ X X/* vfork: X * This symbol, if defined, remaps the vfork routine to fork if the X * vfork() routine isn't supported here. X */ X#$d_vfork vfork fork /**/ X X/* VOIDSIG: X * This symbol is defined if this system declares "void (*signal())()" in X * signal.h. The old way was to declare it as "int (*signal())()". It X * is up to the package author to declare things correctly based on the X * symbol. X */ X#$d_voidsig VOIDSIG /**/ X X/* WHOAMI: X * This symbol, if defined, indicates that the program may include X * whoami.h. X */ X#$d_whoami WHOAMI /**/ X X/* ENABLE_CALENDAR: X * This symbol, if defined, indicates that the calendar feature X * should be supported. X */ X#$d_calendar ENABLE_CALENDAR /**/ X#define dflt_calendar_file "$calendar" X X/* CRYPT: X * This symbol, if defined, indicates that the crypt routine is available X * to encrypt passwords and the like. X */ X#$d_crypt CRYPT /**/ X X/* NEED_CUSERID: X * This symbol, if defined, means to include our own cuserid(). X */ X#$d_cuserid NEED_CUSERID /**/ X X/* LOCK_BY_FLOCK X * This symbol, if defined, indicates that the flock mailbox locking should also be used. X */ X#$d_flock LOCK_BY_FLOCK /**/ X X/* GETHOSTNAME: X * This symbol, if defined, indicates that the C program may use the X * gethostname() routine to derive the host name. See also DOUNAME X * and PHOSTNAME. X */ X/* DOUNAME: X * This symbol, if defined, indicates that the C program may use the X * uname() routine to derive the host name. See also GETHOSTNAME and X * PHOSTNAME. X */ X/* PHOSTNAME: X * This symbol, if defined, indicates that the C program may use the X * contents of PHOSTNAME as a command to feed to the popen() routine X * to derive the host name. See also GETHOSTNAME and DOUNAME. X */ X/* HOSTCOMPILED: X * This symbol, if defined, indicated that the host name is compiled X * in from the string hostname X */ X#$d_gethname GETHOSTNAME /**/ X#$d_douname DOUNAME /**/ X#$d_phostname PHOSTNAME "$phostname" /**/ X#$d_host_comp HOSTCOMPILED /**/ X X/* GETOPT: X * This symbol, if defined, indicates that the getopt() routine exists. X */ X#$d_getopt GETOPT /**/ X X/* USE_DBM X * This symbol, when defined, indicates that the pathalias file X * is available as a dbm file. There is nothing to include. X */ X#$d_havedbm USE_DBM /**/ X X/* HAVETERMLIB: X * This symbol, when defined, indicates that termlib-style routines X * are available. There is nothing to include. X */ X#$d_havetlib HAVETERMLIB /**/ X X/* INTERNET: X * This symbol, if defined, indicates that there is a mailer available X * which supports internet-style addresses (user@site.domain). X */ X#$d_internet INTERNET /**/ X X/* ALLOW_MAILBOX_EDITING: X * This symbol, if defined, indicates that the E)dit mailbox X * function is to be allowed. X */ X#$d_mboxedit ALLOW_MAILBOX_EDITING /**/ X X/* AUTO_BACKGROUND: X * This symbol, if defined, indicates that newmail should go to X * the background automatically. X */ X#$d_newauto AUTO_BACKGROUND /**/ X X/* OPTIMIZE_RETURN: X * This symbol, if defined, indicates that Elm should optimize the X * return address of aliases. X */ X#$d_optreturn OPTIMIZE_RETURN /**/ X X/* LOOK_CLOSE_AFTER_SEARCH: X * This symbol, if defined, indicates that the pathalias route X * should be used for machines we talk to directly. X */ X/* USE_UUNAME: X * This symbol, if defined, indicates that uuname should X * be used before trying to read the Systems or L.sys file. X */ X/* DONT_TOUCH_ADDRESSES: X * This symbol, if defined, indicates that elm should not X * touch outbound addresses X */ X/* DONT_ADD_FROM: X * This symbol, if defined, indicates that elm should not adD X * the From: header X */ X/* USE_DOMAIN: X * This symbol, if defined, indicates that elm should add X * the domain name to our address X */ X/* NOCHECK_VALIDNAME: X * This symbol, if defined, indicates that elm should not X * check the addresses against mailboxes on this system. X */ X#$d_pafirst LOOK_CLOSE_AFTER_SEARCH /**/ X#$d_useuuname USE_UUNAME /**/ X#$d_notouchadd DONT_TOUCH_ADDRESSES /**/ X#$d_noaddfrom DONT_ADD_FROM /**/ X#$d_usedomain USE_DOMAIN /**/ X#$d_nocheckvalid NOCHECK_VALIDNAME /**/ X X/* REMOVE_AT_LAST: X * This symbol, if defined, tells the C code to remove the lock X * file on lock failure. X */ X/* MAX_ATTEMPTS: X * This symbol defines to the C code the number of times to try X * locking the mail file. X */ X#$d_remlock REMOVE_AT_LAST /**/ X#define MAX_ATTEMPTS $maxattempts X X/* RENAME: X * This symbol, if defined, indicates that the rename() routine exists. X */ X#$d_rename RENAME /**/ X X/* SAVE_GROUP_MAILBOX_ID: X * This symbol, if defined, indica;es that Elm needs to restore the X * group id of the file, as it is running setgid. X */ X#$d_setgid SAVE_GROUP_MAILBOX_ID /**/ X X/* STRINGS: X * This symbol, if defined, indicates that the file strings.h X * should be included not string.h X */ X/* PWDINSYS: X * This symbol, if defined, indicates that the file pwd.h X * is in the sys sub directory X */ X#$d_strings STRINGS /**/ X#$d_pwdinsys PWDINSYS /**/ X X/* TEMPNAM: X * This symbol, if defined, indicates that the tempnam() routine exists. X */ X#$d_tempnam TEMPNAM /**/ X X/* TERMIO: X * This symbol, if defined, indicates that the program should include X * termio.h rather than sgtty.h. There are also differences in the X * ioctl() calls that depend on the value of this symbol. X */ X#$d_termio TERMIO /**/ X X/* TMINSYS: X * This symbol is defined if this system declares "struct tm" in X * in <sys/time.h> rather than <time.h>. We can't just say X * -I/usr/include/sys because some systems have both time files, and X * the -I trick gets the wrong one. X */ X/* TZ_MINUTESWEST: X * This symbol is defined if this system uses tz_minutes west X * in time.h instead of timezone. Only for BSD Systems X */ X#$d_tminsys TMINSYS /**/ X#$d_tz_min TZ_MINUTESWEST /**/ X X/* USE_EMBEDDED_ADDRESSES: X * This symbol, if defined, indicates that replyto: and from: X * headers can be trusted. X */ X#$d_useembed USE_EMBEDDED_ADDRESSES /**/ X X/* NOUTIMBUF: X * This symbol, if defined, means to include our own struct utimbuf. X */ X#$d_utimbuf NOUTIMBUF /**/ X X/* DEFEDITOR: X * This symbol contains the name of the default editor. X */ X#define DEFEDITOR "$defeditor" /**/ X X/* MAX_SALIASES: X * This symbol defines the number of system wide aliases allowed. X */ X/* MAX_UALIASES: X * This symbol defines the number of per user aliases allowed. X */ X#define MAX_SALIASES $maxsysalias /* number of system aliases allowed */ X#define MAX_UALIASES $maxuseralias /* number of user aliases allowed */ X X/* HOSTNAME: X * This symbol contains name of the host the program is going to run on. X * The domain is not kept with hostname, but must be gotten from MYDOMAIN. X * The dot comes with MYDOMAIN, and need not be supplied by the program. X * If gethostname() or uname() exist, HOSTNAME may be ignored. X */ X/* MYDOMAIN: X * This symbol contains the domain of the host the program is going to X * run on. The domain must be appended to HOSTNAME to form a complete X * host name. The dot comes with MYDOMAIN, and need not be supplied by X * the program. If the host name is derived from PHOSTNAME, the domain X * may or may not already be there, and the program should check. X */ X#define HOSTNAME "$hostname" /**/ X#define MYDOMAIN "$mydomain" /**/ X X/* PASSNAMES: X * This symbol, if defined, indicates that full names are stored in X * the /etc/passwd file. X */ X/* BERKNAMES: X * This symbol, if defined, indicates that full names are stored in X * the /etc/passwd file in Berkeley format (name first thing, everything X * up to first comma, with & replaced by capitalized login id, yuck). X */ X/* USGNAMES: X * This symbol, if defined, indicates that full names are stored in X * the /etc/passwd file in USG format (everything after - and before ( is X * the name). X */ X#$d_passnames PASSNAMES /* (undef to take name from ~/.fullname) */ X#$d_berknames BERKNAMES /* (that is, ":name,stuff:") */ X#$d_usgnames USGNAMES /* (that is, ":stuff-name(stuff):") */ X X/* PREFSHELL: X * This symbol contains the full name of the preferred user shell on this X * system. Usual values are /bin/csh, /bin/ksh, /bin/sh. X */ X#define PREFSHELL "$prefshell" /**/ X X/* XENIX: X * This symbol, if defined, indicates this is a Xenix system, X * for knocking out the far keyword in selected places. X */ X/* BSD: X * This symbol, if defined, indicates this is a BSD type system, X */ X#$d_xenix XENIX /**/ X#$d_bsd BSD /**/ X X!GROK!THIS! SHAR_EOF chmod 0444 config.h.SH || echo "restore of config.h.SH fails" echo "x - extracting Makefile.SH (Text)" sed 's/^X//' << 'SHAR_EOF' > Makefile.SH && Xcase $CONFIG in X'') X if test ! -f config.sh; then X ln ../config.sh . || \ X ln ../../config.sh . || \ X ln ../../../config.sh . || \ X (echo "Can't find config.sh."; exit 1) X fi X . ./config.sh X ;; Xesac Xcase "$0" in X*/*) cd `expr X$0 : 'X\(.*\)/'` ;; Xesac X Xcase "$d_symlink" in X*define*) sln='ln -s' ;; X*) sln='ln';; Xesac X Xecho "Extracting Makefile (with variable substitutions)" Xcat >Makefile <<!GROK!THIS! X# X# $Id: Makefile.SH,v 2.22 89/03/25 21:44:45 syd Exp $ X# X# Makefile for the entire ELM mail system X# X# (C) Copyright 1986, 1987, by Dave Taylor X# (C) Copyright 1988, 1989, USENET Community Trust X# X# $Log: Makefile.SH,v $ X# Revision 2.22 89/03/25 21:44:45 syd X# Initial 2.2 Release checkin X# X# X X# Variables established by Configure XCAT = $cat XGREP = $grep XECHO = $echo XMAKE = $make XPR = $pr XSHAR = $shar -s 60000 XSLEEP = $sleep XTAR = $tar XTAPE = $rmttape X X!GROK!THIS! Xcat >>Makefile <<'!NO!SUBS!' X# Other variables XSHELL = /bin/sh XSOURCE_FILES = `$(GREP) -v 'doc/' MANIFEST` XDISTRIBUTED_FILES = `$(CAT) MANIFEST` X X X# Targets X# Give default target first and alone Xdefault_target: all X X# Targets that are simply executed in each subordinate makefile as is Xall install uninstall lint clean: X cd src; $(MAKE) -$(MAKEFLAGS) $@ X cd utils; $(MAKE) -$(MAKEFLAGS) $@ X cd filter; $(MAKE) -$(MAKEFLAGS) $@ X cd doc; $(MAKE) -$(MAKEFLAGS) $@ X X# Targets that apply to all elm at once Xlisting: X @$(ECHO) "Making source listing in file LISTING." X @$(PR) -n -f $(SOURCE_FILES) > LISTING X X# This is the only target that gets installed even if not out-of-date X# with respect the files from which it is installed. Xrmt-install: rmt-defined X @($(ECHO) "Warning: This assumes you have already installed";\ X $(ECHO) "ELM on the remote machine <$(REMOTE)>. If this is";\ X $(ECHO) "not the case, interrupt this process quickly!";\ X $(SLEEP) 10;) X cd src; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@ X cd filter; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@ X cd utils; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@ X cd doc; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@ X Xrmt-defined: X @(if [ "$(REMOTE)" = "" ];\ X then\ X $(ECHO) "You need to define 'REMOTE' as the remote file system";\ X $(ECHO) "for this particular command. The easiest way to do this";\ X $(ECHO) "to type:";\ X $(ECHO) " make REMOTE=<remote file system> rmt-install";\ X exit 1;\ X fi); X Xshar: X $(SHAR) $(DISTRIBUTED_FILES) X Xtar: X $(TAR) cvf $(TAPE) $(DISTRIBUTED_FILES) X X# Targets that are really in subordinate make files Xdocumentation: X cd doc; $(MAKE) -$(MAKEFLAGS) $@ X Xelm: X cd src; $(MAKE) -$(MAKEFLAGS) all X X# The dummy dependency here prevents make from thinking the target is the X# filter directory that sits in the current directory, rather than X# an abstract target. Xfilter: _filter X X_filter: X cd filter; $(MAKE) -$(MAKEFLAGS) all X Xutils: X cd utils; $(MAKE) -$(MAKEFLAGS) all X X!NO!SUBS! SHAR_EOF chmod 0444 Makefile.SH || echo "restore of Makefile.SH fails" echo "x - extracting doc/Alias.guide (Text)" sed 's/^X//' << 'SHAR_EOF' > doc/Alias.guide && X\" @(#)$Id: Alias.guide,v 2.8 89/03/25 21:44:47 syd Exp $ X\" X\" A guide to the ELM alias system and so on. X\" format with: X\" tbl Alias.guide | troff -mn > Alias.format' X\" X\" (C) Copyright 1986, 1987 Dave Taylor X\" (C) Copyright 1988, 1989 USENET Community Trust X\" Elm is now in the public trust. Bug reports, comments, suggestions, flames X\" etc. should go to: X\" Syd Weinstein elm@dsinc.UUCP (dsinc!elm) X\" X\" $Log: Alias.guide,v $ X\" Revision 2.8 89/03/25 21:44:47 syd X\" Initial 2.2 Release checkin X\" X\" X.tm Have we been run through "tbl" first?? I hope so! X.po 1i X.ds h0 X.ds h1 X.ds h2 X.ds f0 X.ds f1 X.ds f2 X.nr Hy 1 X.nr Pt 1 X.nr Pi 0 X.lg 0 X.rs X.za X.sp |3.0i X.ce 99 X.ps 20 X.ss 18 X.vs 12 X\f3The Elm Alias System Users Guide\f1 X.sp 4 X.ps 12 X.ss 12 X\f2What aliases are and how to use them Xin the \f3Elm\fP mail system\f1 X.sp 2 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: elm\s-1@\s+1dsinc.UUCP or dsinc\s-1!\s+1elm X.sp 2 X\s18\f3\(co\f1\s12 Copyright 1986, 1987 by Dave Taylor X\s18\f3\(co\f1\s12 Copyright 1988, 1989 by The USENET Community Trust X.ps 10 X.ss 12 X.vs 12 X.bp 1 X.sp 5 X.ps 14 X.ss 12 X.vs 16 X\f3The Elm Alias System Users Guide\f1 X.ds h0 "Alias Users Guide X.ds h1 X.ds h2 "Version 2.2 X.ds f0 "April 1, 1989 X.ds f1 X.ds f2 "Page % X.sp X.ps 10 X.ss 12 X.vs 12 X(Version 2.2) 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: elm\s-1@\s+1dsinc.UUCP or dsinc\s-1!\s+1elm X.sp 2 XApril 1, 1989 X.ce 0 X.sp 3 X.pg XThis document is intended as a supplement to the \f2Elm Users Guide\f1 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 \f2that\f1 exciting!) X.sp X.pg 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.hn 1 User Aliases X XThe most simple type of aliases in the \f3Elm\f1 system are individual Xuser aliases. These are made up of three parts; X.nf X \f2aliasname list\f1 = \f2username\f1 = \f2address\f1 \s-2\u1\d\s0 X.fn X1. Notice that the alias separator has moved from being a colon Xcharacter (`:') to the equals sign (`='). XThis is due to the requirements of the X.400 addressing scheme. X.ef X.fi XWhere the \f2aliasname list\f1 is either a single aliasname\s-2\u2\d\s0 X.fn X2. aliasnames can be any alphanumeric character, a `-' character, Xor an underscore (`_'). X.ef Xor a list of aliasnames separated by commas. X.pg X\f2Username\f1 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\f2username\f1 field would contain `Dave Taylor' or Xperhaps `Dave Taylor at HP' Xor some other permutation. \f3Elm\f1 Xuses this information to add the users full name to the addresses of Xoutbound mail to get more readable addresses. X.pg X\f2Address\f1 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.pg 0 XLet's get on to some examples, shall we? X.sp XConsider this excerpt from my own \f2.elm/aliases.text\f1 file; X X.nf X.ft CW X.in .5i X.ta \w'frank,minjarez 'u \w'frank,minjarez = Frank Minjarez 'u X# Mail aliases for Dave Taylor X# Friends from UCSD Xaddie = Addie Silva = addie@hp-sdd.SDD.HP.COM Xfrank,minjarez = Frank Minjarez = Minjarez.Verify@dockmaster.arpa Xpizzini = Ken Pizzini = hplabs!ucbvax!ucdavis!pai!ken X.ft 1 X X.in 0 X.fi XNote that the alias for Frank Minjarez has two \f2aliasnames\f1 associated Xwith it, X.ft CW Xfrank\f1 and X.ft CW Xminjarez\f1. XAlso notice that the first and second aliases Xuse the ARPA Internet style naming convention of \f2user@machine\f1 Xwhereas the third uses the UUCP notation of \f2machine!user\f1. X.pg XFor the most part, the notational format is transparent within the Xalias file \(em the only time it \f2does\f1 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.pg 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 X.ft CW X.ti .5i X listserv%byuadmin.BITNET@rugters.edu X.ft 1 X.sp X.hn 1 Group Aliases X XAfter the confusion of user aliases, group aliases are even more Xfun! For the most part the notation is very similar; X X \f2aliasname list\f1 = \f2groupname\f1 = \f2list of people\f1 X XWhere \f2aliasname list\f1 and \f2groupname\f1 are exactly equivalent Xto the corresponding fields in user aliases. X.pg XThe interesting part is the \f2list of people\f1 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 X.ft CW X.nf X.in .5i Xfriends, mypals = The Gang of Six = joe, larry, mary, joanna, X\h'\w'friends, mypals = The Gang of Six = 'u'nancy, michael X.ft 1 X X.in 0 X.fi X(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.pg XThe major limitation with group aliases is that each of the Xpeople in the list must be a \f2previously defined alias\f1 Xor a valid mail address on the current machine. X.pg XWhat does this mean? That the following excerpt from an alias file: X X.in .5i X.ft CW X.nf X.ta \w'hawaii 'u \w'hawaii = The Hawaiian Twins 'u Xhawaii = The Hawaiian Twins = joe@cs.rit.edu, maoa Xmaoa = Maoa Lichtenski Jr = maoa@Hawaii.cs.uh.edu X.ft 1 X X.in 0 X.fi Xwill fail for two reasons \(em not only does the group \f2list of people\f1 Xcontain a complex address, but it also contains an aliasname that is Xdefined \f2further on\f1 in Xthe \f2.elm/aliases.text\f1 file. X.pg XThe correct way to have the previous aliases in the file are to have them Xorganized like: X X.ft CW X.in .5i X.ta \w'hawaii 'u \w'hawaii = The Hawaiian Twins 'u X.nf Xjoe = Joe Lichtenski = joe@cs.rit.edu Xmaoa = Maoa Lichtenski Jr = maoa@Hawaii.cs.uh.edu Xhawaii = The Hawaiian Twins = joe, maoa X.ft 1 X X.in 0 X.fi Xwhich will then work correctly. X.sp XFortunately, while this seems fairly picky, when you run \f2newalias\f1 Xto install the new aliases, you'll get relevant and meaningful Xerror messages to help you fix your aliases up correctly. X.sp X.hn 1 System Aliases X XSystem aliases are functionally equivalent to the individual \f3Elm\f1 Xalias lists each \f3Elm\f1 user has (both user aliases and group aliases) Xbut are \f2read only\f1 for everyone but the \f3Elm\f1 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 \f2system_hash_file\f1 and \f2system_data_file\f1 files (see the X\f2Elm Configuration Guide\f1 for more details on these variables). X.pg 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.pg XVoila!! X.sp X.hn 1 Editing and Installing New Aliases X XTo install new aliases, you need merely to create, or modify, Xthe file \f2.elm/aliases.text\f1 until you're Xsatisfied with it and it meets the requirements discussed above. XYou can then try to install it with the command; X X $ \f3newalias\f1 X Xwhich will either report back the number of aliases installed Xor any errors encountered trying to parse and store the Xgiven alias list. X.pg XNote that blank lines are no problem and that comments are not only Xallowed but actually encouraged, and must have `\f3#\f1' 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 \f3Elm\f1 system (again, Xsee \f2The Elm Configuration Guide\f1). X.sp X.hn 1 The Hostname Routing Database X XFloating about on the various networks is a rather nifty program by Xa number of people, including Peter Honeyman and Steve Bellovin, Xcalled \f2pathalias\f1. 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 X \f2hostname\f1 <tab> \f2address\f1 X Xwhich is then sorted alphabetically and stored in the file Xpointed to by \f2pathfile\f1 for \f3Elm\f1 (and other Xprograms) to use. X.pg 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 X \f2hostname\f1<tab>\f2machine-address\f1 X Xwhere \f2hostname\f1 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.pg XBy way of example, here are a few entries from my own file; X X.ft CW X.in .5i X.TS Xl l. XHPL %s@hplabs XPARC %s%Xerox.PA.COM@hplabs Xamc-hq %s%AMC-HQ.ARPA@hplabs Ximsss %s%%IMSSS%AI.STANFORD.EDU@hplabs Xinfopro hplabs!infopro!%s Xinterleaf sun!interleaf!%s X.TE X.ft 1 X X.in 0 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 X.in .5i X.ft CW X.nf X$ \f3elm joe@HPL\f1 X.ft CW XTo: joe@hplabs X$ \f3elm michelle@imsss\f1 X.ft CW XTo: michelle%IMSSS%AI.STANFORD.EDU@hplabs X$ \f3elm fiedler@infopro\f1 X.ft CW XTo: hplabs!infopro!fiedler X.ft 1 X.fi X X.in 0 XIf you'd like further information on the \f2pathalias\f1 program, try Xkeeping track of the entries in the netnews group \f2comp.sources.unix\f1 \(em Xit's posted about once a year or so... X.sp X.hn 1 The Domain Routing Database X XAnother interesting feature of the X\f3Elm\f1 system is the shorthand domain routing database. XThis is the same database (in the same strange format) as used by Xthe publically available \f2uumail\f1 program. X.pg XIn a nutshell, the file contains information of the form; X X.in .5i X\f2domain, path-to-gateway, rewrite-template\f1 X.in 0 X XThe \f2domain\f1 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.pg X\f2Path-to-gateway\f1 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) preceded by a `>' Xcharacter. X.pg X\f2Rewrite-template\f1 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 X.in .5i X.TS Xc l. X\f3Symbol Represents\f1 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 \f2path-to-gateway\f1 entry X%% The `%' character X.TE X.in 0 X Xwith this very un-intuitive setup, let's look at a few entries Xfrom the domains database and then see how they work: X X.nf X.ft CW X.in .5i 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 X.ft 1 X.fi X.in 0 X X(Note the presence of a third field that is always null. XThis is for compatibility with the \f2uumail\f1 program. XAlso notice that there is a space after each and every comma, Xeven if that field has an entry.) X.pg 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 X.nf X.in .5i X%U = \f2jad\f1 X%N = \f2cs\f1 X%D = \f2cs.purdue.edu\f1 X.in 0 X X.fi XWhen the \f3Elm\f1 program matches the \f2.edu\f1 entry X X.nf X.in .5i X.ft CW X\&.EDU, >hplabs, , %P!%U@%D X.ft 1 X.in 0 X X.fi Xthe other field instantiated would be: X X.nf X.in .5i X%P = \f2path to hplabs\f1 Xtemplate = \f2%P!%U@%D\f1 X.in 0 X.fi X XIf, say, our path to \f2hplabs\f1 was \f2hpcnoe!hplabs\f1, then Xthe fully expanded address would be: X X.nf X.ft CW X.in .5i Xhpcnoe!hplabs!jad@cs.purdue.edu X.ft 1 X.in 0 X.fi X X\f1and 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'' will work and so on! X.sp X.hn 1 Other Stuff not Covered Yet X XProbably the biggest question you have in your mind right now Xis ``But how the heck does this relate to my existing \f2Berkeley Mail\f1 Xaliases and the lower-level \f2sendmail\f1 alias system??'' Well, Xrest assured that if you \f2really\f1 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 \f3Elm\f1. X.pg XAnd for those ex-\f2Berkeley Mail\f1 fans, you can translate your Xaliases into the format that \f3Elm\f1 wants by running them Xthrough the \f2awk\f1 script listed in the appendix. X.pg XFinally, if you have any problems or questions, try looking in Xthe \f2newalias\f1 manual entry, or dropping me a line at the X``usual'' email address. X.bp X.ce 99 X\f3Appendix One XAn AWK Script for Translating Aliases from Xa \f2Berkeley Mail\fP ``.mailrc'' File to an \f2Elm\fP ``.elm/aliases.text'' XFile\f1 X.ce 0 X.sp X.nf X X.ta .5i X.ft CW 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 X.ft 1 X.fi XNote: this script is contained in the release under the name ``mailrc.awk'' Xin 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\" @(#)$Id: Config.guid,v 2.13 89/03/29 16:56:35 syd Exp $ X\" X\" A guide to the ELM alias system and so on. X\" format with: X\" 'troff tmac.n Config.guid > Config.fmtd' X\" X\" (C) Copyright 1986, 1987 Dave Taylor X\" (C) Copyright 1988, 1989 Usenet Community Trust X\" Elm is now in the public trust. Bug reports, comments, suggestions, flames X\" etc. should go to: X\" Syd Weinstein elm@dsinc.UUCP (dsinc!elm) X\" X\" $Log: Config.guid,v $ X\" Revision 2.13 89/03/29 16:56:35 syd X\" Update for 2.2 release X\" X\" X\" X.po 1i X.ds h0 X.ds h1 X.ds h2 X.ds f0 X.ds f1 X.ds f2 X.nr Hy 1 X.nr Pt 1 X.nr Pi 0 X.lg 0 X.rs X.za X.sp |3.0i X.ce 99 X.ps 20 X\f3Elm Configuration Guide\f1 X.sp 4 X.ps 12 X\f2How to install and customize the Elm mail system\f1 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: elm\s-1@\s+1dsinc.UUCP or dsinc\s-1!\s+1elm X.sp 3 X.ps 18 X\f3\(co\f1\s12 Copyright 1986,1987 by Dave Taylor X.ps 18 X\f3\(co\f1\s12 Copyright 1988, 1989 by The USENET Community Trust X.ps 10 X.bp 1 X.sp 5 X.ps 14 X\f3Elm Configuration Guide\f1 X.ds h0 "Elm Configuration Guide X.ds h1 X.ds h2 "Version 2.2 X.ds f0 X.ds f1 "Page % X.sp X.ps 10 X(Version 2.2) 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: elm\s-1@\s+1dsinc.UUCP or dsinc\s-1!\s+1elm X.sp 2 XApril 1, 1989 X.ce 0 X.sp 3 X.pg XThis document is intended as a supplement to the \f2Elm Users Guide\f1 Xand \f2Elm Reference Guide\f1 Xand should be of interest mainly to people at a site either installing Xor maintaining the source code to the \f3Elm\f1 mail system, or Xmodifying the code. X.sp XIt is \f2required\f1 that installation be done by using the X\f2Configure\f1 script supplied with the system. Please see the Xfile \f2Instruct\f1 for further information on running \f2Configure\f1. X.sp XThe remainder of this document will discuss the various questions Xasked by the \f2Configure\f1 script and the Xoptions available via direct editing of various files and Xparameters. As indicated above, almost all of the sites that install X\f3Elm\f1 should find the \f2Configure\f1 script more than Xsufficient. X.hu Using Configure X.pg X\f2Configure\fP is a shell script that will automatically determine the Xtype of system it is running on and tune the parameters of Elm to fit Xthat system and its environment. Where the installer has a choice, it Xasks questions of the installer. \f2Configure\fP provides its own Xinstructions when run, so they are not repeated here. However, when Xthe installer is presented with a choice, this next section explains Xsome of the options available. Not all the questions or options to Xthose questions are explained. X.sp 2 X.pg XEnable calendar feature? X.sp XElm has a feature to take specially marked lines within mail messages Xand add them to a file for use by the system calendar program. The Xcommand to do this extraction needs to be enabled to work. There is Xalso a follow on question regarding the name of the calendar file: X.pg XDefault calendar file? X.sp Xwhich is usually calendar on most systems. This file will reside in the Xusers home directory, not their .elm directory. X.pg XDoes your /etc/passwd file keep full names in Berkeley/V7 format (name Xfirst thing after ':' in GCOS field)? X.sp XElm uses the full name from the password file if it is available. XThere are two major ways this name is stored. Berkeley/V7 systems Xplace the name as the entire GCOS field string, that is it starts Xdirectly after the ':' that delimits the fields. USG X.ux " Systems" ( XGroup, or AT&T) systems put the users name after a department number Xand separate it from that number by a '-'. The end of the users full Xname in these systems is a '('. Look at your /etc/password file and if Xeither version applies, answer yes to that version. If neither Xapplies, answer no. Elm can still get the users name from the X".fullname" file in their home directory. X.pg XEvery now and then someone has a (gethostname, uname) that lies about Xthe hostname but can't be fixed for political or economic reasons. XWould you like to pretend (gethostname, uname) isn't there and maybe Xcompile in the hostname? X.sp XElm needs to know the correct name of the host on which it is executing Xto be able to create the proper headers for the outbound mail. Some systems Xuse one name for uucp and another name for the system and others just don't Xreply to the subroutines with the proper name. In this case it will be Xnecessary to compile in the name. In all other cases this should not Xbe needed. It is provided just in case there is a problem with your Xsystem. X.pg XDoes your mailer understand INTERNET addresses? X.sp XElm will work with systems that can process the `@' character of INTERNET Xformat addresses or with the `!' format of uucp addresses. If your Xmail delivery agent understands the `@' format addresses, they should be Xused and this question is answered yes. If when you send mail with the X`@' format addresses (such as elm@dsinc), they bounce, then answer this Xquestion no. X.pg XAm I going to be running as a setgid program? X.sp XOn USG type systems and many other types, Xaccess to the mailboxes and the mailbox directory Xis via the group permissions. The mail user agents, such as Elm, need Xwrite access into this directory to be able to move the mailbox around Xdue to internal editing and to create lock files. If the permissions Xon your mailbox directory are drwxrwxr-x, then Elm needs to be a setgid Xprogram. X.pg XWhat is the default editor on your system? X.sp XIf no editor is specified in the users .elm/elmrc file, this is which Xeditor to use. The editor is used to compose outbound mail messages. X.pg XWhat pager do you prefer to use with Elm? X.sp XThis is the standard pager to use for reading messages. XBesides the usual system pagers, two Elm specific internal options Xexist: builtin and builtin+. The built-in pager is faster to execute Xbut much less flexible than the system provided pagers. The + version Xjust clears the page before displaying the next page. Otherwise the Xtwo versions are identical. X.hu Other Configurable Parameters X.pg XThe following parameters rarely need to be changed, but are provided if Xyou need them. \f2Configure\fP does not prompt for their values. To Xchange them, edit the \f2hdrs/sysdefs.h\f1 file directly after running XConfigure. X.lp FIND_DELTA 1.0i 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.lp MAX_IN_WEEDLIST 1.0i XThe maximum number of headers that can be specified in the weedout Xlist of the .elm/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.lp MAX_HOPS 1.0i 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.lp system_text_file 1.0i XThis is the source text file for the system level aliases. XSee either the \f2newalias(1L)\f1 man page, or \f2The Elm XAlias System Users Guide\f1 for further details. X.lp system_hash_file 1.0i XThis is the file that contains the hashed version of the system Xaliases. X.lp system_data_file 1.0i XThis is the other file the \f2newalias\f1 command installs in the system Xalias area and contains the actual addresses for each of the aliases Xcontained in the hashed data file. X.lp ALIAS_TEXT 1.0i XThis is where the individual users alias text file lives. X.lp ALIAS_HASH 1.0i XWhere the hashed aliases are stored, X.lp ALIAS_DATA 1.0i Xand where the alias address data itself is kept. X.lp DEBUGFILE 1.0i XThe name of the file to put in the users home directory if they choose to Xuse the `-d' debug option. X.lp OLDEBUG 1.0i 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.lp temp_lock_dir 1.0i XDirectory for lock files for XENIX. X.lp temp_file 1.0i XTemporary file for sending outbound messages. X.lp temp_form_file 1.0i XA place to store temporary forms (for Forms Mode) while answering them. X.lp temp_mbox 1.0i XPlace to keep copy of incoming mailbox to avoid collisions with newer Xmail. X.lp temp_print 1.0i XFile to use when creating a printout of a message. X.lp temp_edit 1.0i XFile to use when editing the mailbox file on XENIX. X.lp temp_uuname 1.0i XWhere to redirect output of the \f2uuname(1M)\f1 command. X.lp mailtime_file 1.0i XFile to compare date to to determine if a given message is New Xsince the last time the mail was read or not. X.lp readmsg_file 1.0i XFile to use when communicating with the \f2readmsg\f1 program (see Xthat program for more information) X.lp smflags 1.0i XDefines the flags to hand to \f2sendmail\f1 if and when the program Xchooses to use it. X.lp smflagsv 1.0i XDefines the flags to hand to \f2sendmail\f1 in verbose voyuer mode. X.lp mailer 1.0i XIf you don't have \f2sendmail\f1, this is the mailer that'll be used. X.lp helpfile 1.0i XThe help file name prefix. X.lp ELMRC_INFO 1.0i XThe file containing textual messages associated with each X\f3Elm\f1 variable setting in the users ``.elm/elmrc'' Xfile. This is used when the user chooses to auto-save the Xoptions from within the main program. X.lp elmrcfile 1.0i XThe name of the automatic control file (currently \f2.elmrc\f1) X.lp old_elmrcfile 1.0i XWhen a new elmrc file is saved, the old one is also saved, being Xrenamed to whatever this identifier is set to. X.lp mailheaders 1.0i XThe name of the optional file that users may have that will be Xincluded in the headers of each outbound message. X.lp dead_letter 1.0i XIf the user decides not to send a message it will instead be saved Xto this filename in their home directory. X.lp unedited_mail 1.0i XIn the strange case when the mailer suddenly finds all the directories Xit uses shut off (like \f2/usr/mail\f1 and \f2/tmp\f1) Xthen it'll put the current Xmailbox into this file in the users home directory. X.lp newalias 1.0i XHow to install new aliases..(note: you MUST have the '-q' flag!) X.lp readmsg 1.0i XWhat the \f2readmsg(1L)\f1 program is installed as. 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\" @(#)$Id: Elm.cover,v 2.8 89/03/25 21:44:51 syd Exp $ X\" X\" Cover sheet for the ELM mail system... X\" format with X\" troff tmac.n 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 elm@dsinc.UUCP (dsinc!elm) X\" X\" (C) Copyright 1986, 1987 Dave Taylor X\" (C) Copyright 1988, 1989 Usenet Community Trust X\" X\" $Log: Elm.cover,v $ X\" Revision 2.8 89/03/25 21:44:51 syd X\" Initial 2.2 Release checkin X\" X\" X.po 1i X.ds h0 X.ds h1 X.ds h2 X.ds f0 X.ds f1 X.ds f2 X.nr Hy 1 X.nr Pt 1 X.nr Pi 8 X.lg 0 X.rs X.za 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: elm\s-1@\s+1dsinc.UUCP or dsinc\s-1!\s+1elm 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\" @(#)$Id: Filter.guid,v 2.8 89/03/30 16:07:43 syd Exp $ X\" X\" A guide to the Elm Filter program X\" format with: X\" 'tbl tmac.n Filter.guid | troff > Filter.format' X\" X\" (C) Copyright 1986, 1987 Dave Taylor X\" (C) Copyright 1988, 1989 Usenet Community Trust X\" X\" Elm is now in the public trust. Bug reports, comments, suggestions, flames X\" etc. should go to: X\" Syd Weinstein elm@dsinc.UUCP (dsinc!elm) X\" X\" $Log: Filter.guid,v $ X\" Revision 2.8 89/03/30 16:07:43 syd X\" First tmac.n checkin X\" X\" X.tm Have we been run through "tbl" first?? I hope so! X.po 1i X.ds h0 X.ds h1 X.ds h2 X.ds f0 X.ds f1 X.ds f2 X.nr Hy 1 X.nr Pt 1 X.nr Pi 8 X.lg 0 X.rs X.za X.sp |3.0i X.ce 99 X.ps 20 X.ss 18 X.vs 12 X\f3The Elm Filter System Guide\f1 X.sp 7 X.ps 12 X\f2What the filter program is, what it does, Xand how to use it\f1 SHAR_EOF echo "End of part 3" echo "File doc/Filter.guid is continued in part 4" echo "4" > s2_seq_.tmp exit 0 -- Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.