v07i019: Elm Update Kit, Part02/03

sources-request at mirror.UUCP sources-request at mirror.UUCP
Thu Sep 4 05:21:55 AEST 1986


Submitted by: Dave Taylor <taylor at hplabs.HP.COM>
Mod.sources: Volume 7, Issue 19
Archive-name: elm_update/Part02

[  The shell scripts in this posting should be run on a clean copy of
   the ELM sources.  Then run the "Configure.sh" script now provided,
   to build the Makefiles, etc.  I suppose this is a good time to say
   that Dave said to ignore errors in unpacking Part 12 of the Volume
   6 ELM distribution.  -- r$  ]

#!/bin/sh
# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
# Wrapped by mirror!rs on Wed Sep  3 10:19:36 EDT 1986

# Exit status; set to 1 on "wc" errors or if would overwrite.
STATUS=0
# Contents:  Edit2
 
echo x - Edit2
if test -f Edit2 ; then
    echo Edit2 exists, putting output in $$Edit2
    OUT=$$Edit2
    STATUS=1
else
    OUT=Edit2
fi
sed 's/^XX//' > $OUT <<'@//E*O*F Edit2//'
XX: Use /bin/sh

XX# This is the automatically generated output of the AUTODIFF program after
XX# being run on the two directories;
XX#	Old Directory: Elm-Posted
XX#	New Directory: Elm

XX# Any problems with execution of this script should be reported to the 
XX#     author of the program, Dave Taylor, at "hplabs!taylor".  Thanks

XX# first off, let's make sure we're running in SH

XXexport PATH || (sh $0; exit $$)

XX# next, let's ensure the user has "ed"...

XXif [ ! -f /bin/ed ]
XXthen
XX  echo I can\'t find /bin/ed\!
XX  exit 1
XXfi

XX# finally, let's get this show on the road!!

XX#---------------------------------
XX# File Elm/src/Makefile.mstr is new!

XXecho File Elm/src/Makefile.mstr is new - extracting...
XXif [ -f src/Makefile.mstr ]
XXthen
XX  echo File \'src/Makefile.mstr\' is new, but you already have something called that\!
XX  echo I\'m going to move your file to \'src/Makefile.mstr.old\'...
XX  /bin/mv -f src/Makefile.mstr src/Makefile.mstr.old
XXelse
XX  echo Extracting new file \'src/Makefile.mstr\'
XXfi

XXcat > src/Makefile.mstr << 'END_OF_FILE'
XX#
XX#  Makefile for the ELM mail program.
XX#
XX#         (C) Copyright 1986, Dave Taylor
XX#
XX#  Last modification: March 7th, 1986

XXSHELL=/bin/sh

XX##############################
XX#
XX# if on a BSD system;
XX#   DEFINE=-DBSD
XX#   LIB2  = -lcurses
XX# else if on a UTS system;
XX#   DEFINE=-DUTS
XX#   LIB2  = -la -lq
XX# else if on a SUN system;
XX#   DEFINE=-DBSD -DSUN
XX#   LIB2  = -lcurses
XX# else if on a Pyramid system;
XX#   DEFINE=-DBSD -DNO_VAR_ARGS
XX#   LIB2  = -lcurses
XX# else

XX    DEFINE= >os-define<
XX    LIB2  = >lib2<

XX# IF you're on an ACSnet system (Australia) then
XX# you'll want to uncomment the following;

XX#   DEFINE= ${DEFINE} -DACSNET

XX##############################

XXCFILES=	addr_utils.c alias.c aliasdb.c aliaslib.c args.c bounceback.c       \
XX	calendar.c connect_to.c curses.c date.c delete.c domains.c edit.c   \
XX	encode.c errno.c file.c file_utils.c fileio.c hdrconfg.c help.c     \
XX	initialize.c input_utils.c leavembox.c mailmsg1.c mailmsg2.c        \
XX	mailtime.c mkhdrs.c elm.c newmbox.c notesfile.c options.c opt_utils.c \
XX	output_utils.c pattern.c quit.c read_rc.c remail.c reply.c 	    \
XX	return_addr.c savecopy.c screen.c showmsg.c signals.c softkeys.c    \
XX	sort.c strings.c syscall.c utils.c validname.c getopt.c string2.c   \
XX	builtin.c pmalloc.c

XXHEADERS=../hdrs/curses.h ../hdrs/defs.h ../hdrs/headers.h ../hdrs/sysdefs.h

XXOBJS=	addr_utils.o alias.o aliasdb.o aliaslib.o args.o bounceback.o       \
XX	calendar.o connect_to.o curses.o date.o delete.o domains.o edit.o   \
XX	encode.o errno.o file.o file_utils.o fileio.o hdrconfg.o help.o     \
XX	initialize.o input_utils.o leavembox.o mailmsg1.o mailmsg2.o        \
XX	mailtime.o mkhdrs.o elm.o newmbox.o notesfile.o options.o opt_utils.o \
XX	output_utils.o pattern.o quit.o read_rc.o remail.o reply.o 	    \
XX	return_addr.o savecopy.o screen.o showmsg.o signals.o softkeys.o    \
XX	sort.o strings.o syscall.o utils.o validname.o getopt.o string2.o   \
XX	builtin.o pmalloc.o

XXBIN=    ../bin
XXLIBS=   -ltermcap
XXCFLAGS= -O -I../hdrs
XXCC=	>cc<
XXRM=	>rm<

XX../bin/elm: ${OBJS} ${EXTRA} ${HEADERS} ../hdrs/elm.h
XX	${CC} -o ${BIN}/elm -n ${OBJS} ${LIBS} ${LIB2}

XX.c.o:   ${HEADERS}
XX	${CC} -c ${CFLAGS} ${DEFINE} $*.c 

XXcurses.o: curses.c ../hdrs/curses.h
XX	${CC} -c ${CFLAGS} -DRAWMODE ${DEFINE} curses.c

XX# curses.c : curses.q
XX# 	@../bin/quickscreen curses.q
XX#
XX# curses.q :
XX# 	@cp curses.c curses.q

XXclean:
XX	${RM} ${OBJS} LINT.OUT

XXlint: LINT.OUT

XXLINT.OUT: ${CFILES}
XX	lint -p -I../hdrs ${CFILES} > LINT.OUT

XXlisting: LISTING

XXLISTING: Makefile INDEX ${HEADERS} ${CFILES}
XX	@echo adding file 'Makefile'...
XX	@/bin/echo \\f > LISTING
XX	@cat Makefile >> LISTING
XX	@echo adding file 'INDEX'...
XX	@/bin/echo \\f >> LISTING
XX	@cat INDEX >> LISTING
XX	@../bin/makelisting ${HEADERS} ${CFILES}
XX	@echo LISTING generated.

XXindex: INDEX

XXINDEX: ${CFILES} ${HEADERS}
XX	@echo Creating function definition index
XX	@index *.c | sort > INDEX
XX	@echo File INDEX generated
XXEND_OF_FILE

XXchars=`cat src/Makefile.mstr | wc -c`

XXif [ $chars -ne 2882 ]
XXthen
XX  echo File damaged in transit...should be 2882 bytes, is $chars instead
XX  echo  I suggest you check it closely...
XXfi

XX#---------------------------------
XX# File Elm/src/pmalloc.c is new!

XXecho File Elm/src/pmalloc.c is new - extracting...
XXif [ -f src/pmalloc.c ]
XXthen
XX  echo File \'src/pmalloc.c\' is new, but you already have something called that\!
XX  echo I\'m going to move your file to \'src/pmalloc.c.old\'...
XX  /bin/mv -f src/pmalloc.c src/pmalloc.c.old
XXelse
XX  echo Extracting new file \'src/pmalloc.c\'
XXfi

XXcat > src/pmalloc.c << 'END_OF_FILE'
XX/**			pmalloc.c		**/

XX/** This routine contains a cheap permanent version of the malloc call to 
XX    speed up the initial allocation of the weedout headers and the uuname 
XX    data.  

XX      This routine is originally from Jim Davis of HP Labs, with some 
XX    mods by me.
XX**/

XX#include <stdio.h>
XX#include "defs.h"

XXchar *pmalloc(size)
XXint size; 
XX{
XX	/** return the address of a specified block **/

XX	static char *our_block = NULL;
XX	static int   free_mem  = 0;

XX	char   *return_value;

XX	/** if bigger than our threshold, just do the real thing! **/

XX	if (size > PMALLOC_THRESHOLD) 
XX	   return( (char *) malloc(size));

XX	/** if bigger than available space, get more, tossing what's left **/

XX	if (size > free_mem) {
XX	  if ((our_block = (char *) malloc(PMALLOC_BUFFER_SIZE)) == NULL) {
XX	    fprintf(stderr, "\n\r\n\rCouldn't pmalloc %d bytes!!\n\r\n\r",
XX		    PMALLOC_BUFFER_SIZE);
XX	    leave();	
XX          }
XX	  free_mem = PMALLOC_BUFFER_SIZE;
XX	}
XX	
XX	return_value  = our_block;	/* get the memory */
XX	our_block += size;		/* use it up      */
XX	free_mem  -= size;		/*  and decrement */

XX	return( (char *) return_value);
XX}
XXEND_OF_FILE

XXchars=`cat src/pmalloc.c | wc -c`

XXif [ $chars -ne 1114 ]
XXthen
XX  echo File damaged in transit...should be 1114 bytes, is $chars instead
XX  echo  I suggest you check it closely...
XXfi

XX#-------------------------------------
XX# File 'hdrs/defs.h' diffs...

XXcat << 'EOF' > hdrs/defs.h.D
XX209a

XX#ifdef SHORTNAMES	/* map long names to shorter ones */
XX# include <shortnames.h>
XX#endif
XX.
XX144a
XX/* some stuff for our own malloc call - pmalloc */

XX#define PMALLOC_THRESHOLD	256	/* if greater, then just use malloc */
XX#define PMALLOC_BUFFER_SIZE    2048	/* internal [memory] buffer size... */

XX.
XX12a
XX#define KLICK		10

XX.
XX11c
XX#define WHAT_STRING	"@(#) Version 1.2a, patch #3 release - August, 1986"
XX.
XX9c
XX#define VERSION		"1.2a" /* Version number!  WHAT_STRING should agree */
XX.
XXw
XXEOF

XXchars=`cat hdrs/defs.h | wc -c`

XXif [ $chars -ne 6693 ]
XXthen
XX  echo Your file hdrs/defs.h has been changed\!
XX  echo diffs saved as \"hdrs/defs.h.D\"
XXelse
XX  echo applying diffs to file hdrs/defs.h...
XX  /bin/cat hdrs/defs.h.D | /bin/ed - hdrs/defs.h
XXfi

XX#-------------------------------------
XX# File 'hdrs/headers.h' diffs...

XXcat << 'EOF' > hdrs/headers.D
XX102c
XXextern int  max_headers;	/* number of headers currently allocated */

XXextern struct header_rec *header_table;
XX.
XX93c
XXextern long size_of_pathfd;	/** size of pathfile, 0 if none **/
XX.
XXw
XXEOF

XXchars=`cat hdrs/headers.h | wc -c`

XXif [ $chars -ne 5082 ]
XXthen
XX  echo Your file hdrs/headers.h has been changed\!
XX  echo diffs saved as \"hdrs/headers.D\"
XXelse
XX  echo applying diffs to file hdrs/headers.h...
XX  /bin/cat hdrs/headers.D | /bin/ed - hdrs/headers.h
XXfi

XX#-------------------------------------
XX# File 'hdrs/elm.h' diffs...

XXcat << 'EOF' > hdrs/elm.h.D
XX107c
XXint   max_headers;		/* number of headers allocated */

XXstruct header_rec *header_table;
XX.
XX98c
XXlong size_of_pathfd;		/** size of pathfile, 0 if none **/
XX.
XX20a
XX/******** and another string for the copyright notice            ********/

XXstatic char copyright[] = { "@(#)          (C) Copyright 1986, Dave Taylor" };

XX.
XX17,18d
XX15c
XX/******** static character string containing the version number  *******/
XX.
XX13d
XXw
XXEOF

XXchars=`cat hdrs/elm.h | wc -c`

XXif [ $chars -ne 4889 ]
XXthen
XX  echo Your file hdrs/elm.h has been changed\!
XX  echo diffs saved as \"hdrs/elm.h.D\"
XXelse
XX  echo applying diffs to file hdrs/elm.h...
XX  /bin/cat hdrs/elm.h.D | /bin/ed - hdrs/elm.h
XXfi

XX#---------------------------------
XX# File Elm/hdrs/sysdefs.master is new!

XXecho File Elm/hdrs/sysdefs.master is new - extracting...
XXif [ -f hdrs/sysdefs.master ]
XXthen
XX  echo File \'hdrs/sysdefs.master\' is new, but you already have something called that\!
XX  echo I\'m going to move your file to \'hdrs/sysdefs.master.old\'...
XX  /bin/mv -f hdrs/sysdefs.master hdrs/sysdefs.master.old
XXelse
XX  echo Extracting new file \'hdrs/sysdefs.master\'
XXfi

XXcat > hdrs/sysdefs.master << 'END_OF_FILE'
XX/**			sysdefs.h			**/

XX/**  System level, configurable, defines for the ELM mail system.  **/

XX/**  (C) Copyright 1986 Dave Taylor                                **/

XX/** Define the following if you think that the information in messages
XX    that have "Reply-To:" and/or "From:" fields with addresses will
XX    contain valid addressing information.  If this isn't defined, the
XX    calculated return address will ALWAYS be used instead.  (note that
XX    this doesn't necessarily preclude the use of G)roup replies).
XX**/

XX#define USE_EMBEDDED_ADDRESSES	


XX#define FIND_DELTA	10		/* byte region where the binary search
XX					   on the path alias file is fruitless 
XX                                           (can't be within this boundary)    */

XX#define MAX_HEADERS	>500<	/* max number of messages in one file!   */	
XX#define MAX_SALIASES	>503<	/* number of system aliases allowed      */
XX#define MAX_UALIASES	>251<	/* number of user aliases allowed 	 */
XX#define MAX_IN_WEEDLIST >150<	/* max headers to weed out               */

XX#define MAX_HOPS	35	/* max hops in return addr to E)veryone  */

XX#define MAX_ATTEMPTS	>6<	/* #times to attempt lock file creation */

XX/** see leavembox.c to determine if this should be defined or not....The 
XX    default is to NOT have it defined.
XX**/

XX#define REMOVE_AT_LAST

XX#define DEFAULT_BATCH_SUBJECT  "no subject (file transmission)"

XX/** If you want to have the mailer know about valid mailboxes on the
XX    host machine (assumes no delivery agent aliases) then you should
XX    undefine this (the default is to have it defined)...
XX**/

XX#define NOCHECK_VALIDNAME

XX/** If your machine doesn't have virtual memory (specifically the vfork() 
XX    command) then you should define the following....		
XX**/

XX/** #define NO_VM **/


XX/** If you want the mailer to check the pathalias database BEFORE it
XX    looks to see if a specified machine is in the L.sys database (in
XX    some cases routing is preferable to direct lines) then you should
XX    define the following...
XX**/

XX#define LOOK_CLOSE_AFTER_SEARCH


XX/** If you'd rather the program automatically used the 'uuname' command
XX    to figure out what machines it talks to (instead of trying to get
XX    it from L.sys first) then define the following...
XX**/

XX#define USE_UUNAME


XX/** If you'd like "newmail" to automatically go into background when you
XX    start it up (instead of the "newmail &" junk with the process id output,
XX    then define the following...
XX**/

XX#define AUTO_BACKGROUND

XX/** If you'd rather your mail transport agent (ie sendmail) put the From:
XX    line into the message, define the following...
XX**/

XX#define DONT_ADD_FROM

XX/** If your machine prefers the Internet notation of user at host for the
XX    From: line and addresses, define the following...(the default is to 
XX    use this rather than the USENET notation - check your pathalias file!)

XX**/

XX#define INTERNET_ADDRESS_FORMAT

XX/** If you're on a machine that prefers UUCP to Internet addresses, then
XX    define the following (the basic change is that on a machine that
XX    receives messages of the form <path>!user@<localhost> the displayed
XX    address will be <path>!user instead of user@<localhost>.

XX    BOGUS_INTERNET is the address that your local system appends to 
XX    messages occasionally.  The algorithm is simply to REMOVE the
XX    BOGUS_INTERNET string.  This is horrible.  *sigh*

XX**/

XX#define PREFER_UUCP
XX#define BOGUS_INTERNET	"@hplabs.HP.COM"

XX/** If you're running ACSNET and/or want to have your domain name
XX    attached to your hostname on outbound mail then you can define
XX    the following (default are not defined)
XX**/

XX#define USE_DOMAIN
XX#define DOMAIN		"<enter your domain here>"

XX/** If you are going to be running the mailer with setgid mail (or
XX    something similar) you'll need to define the following to ensure
XX    that the users mailbox in the spool directory has the correct
XX    group (NOT the users group)
XX**/

XX#define SAVE_GROUP_MAILBOX_ID

XX/** If you want a neat feature that enables scanning of the message
XX    body for entries to add to the users ".calendar" (or whatever)
XX    file, define this.
XX**/

XX#define ENABLE_CALENDAR
XX#define dflt_calendar_file	"calendar"	/* in HOME directory */

XX/** If you want to implement 'site hiding' in the mail, then you'll need to
XX    uncomment the following lines and set them to reasonable values.  See 
XX    the configuration guide for more details....
XX**/

XX/****************************************************************************

XX#undef    DONT_ADD_FROM		

XX#define   SITE_HIDING
XX#define   HIDDEN_SITE_NAME	"fake-machine-name"
XX#define   HIDDEN_SITE_USERS	"/usr/mail/lists/hidden_site_users"

XX****************************************************************************/

XX/** Do we have the 'gethostname()' call?  If not, define the following **/
XX/** #define NEED_GETHOSTNAME **/

XX/** are you stuck on a machine that has short names?  If so, define the
XX    following **/

XX/** #define SHORTNAMES **/

XX#define NOTES_HEADER		"/***** "
XX#define NOTES_FOOTER		"/* ---------- */"

XX#ifdef BSD
XX# define system_hash_file	"/usr/spool/mail/.alias_hash"
XX# define system_data_file	"/usr/spool/mail/.alias_data"
XX#else
XX# define system_hash_file	"/usr/mail/.alias_hash"
XX# define system_data_file	"/usr/mail/.alias_data"
XX#endif

XX#define pathfile		"/usr/lib/nmail.paths"
XX#define domains			"/usr/lib/domains"

XX#define Lsys			"/usr/lib/uucp/L.sys"

XX/** where to put the output of the elm -d command... (in home dir) **/
XX#define DEBUG		"ELM:debug.info"

XX#define temp_file	"/tmp/snd."
XX#define temp_mbox	"/tmp/mbox."
XX#define temp_print      "/tmp/print."
XX#define mailtime_file	".last_read_mail"
XX#define readmsg_file	".readmsg"
XX#define signature_file	".signature"

XX#ifdef BSD
XX# define default_editor	"/usr/ucb/vi"
XX# define mailhome	"/usr/spool/mail/"
XX#else
XX# define default_editor	"/usr/bin/vi"
XX# define mailhome	"/usr/mail/"
XX#endif

XX# define default_pager	"builtin"

XX#define sendmail	"/usr/lib/sendmail"
XX#define smflags		"-oi"
XX#define mailer		"/bin/rmail"
XX#ifdef BSD
XX# define mailx		"/usr/ucb/Mail"
XX#else
XX# define mailx		"/usr/bin/mailx"
XX#endif

XX#define helphome	"/usr/local/lib"
XX#define helpfile	"elm-help.main"

XX#define elmrcfile	"/.elmrc"
XX#define mailheaders	".elmheaders"
XX#define dead_letter	"Cancelled.mail"

XX#define unedited_mail	"emergency.mbox"

XX#define newalias	"newalias -q 1>&2 > /dev/null"
XX#define readmsg		"readmsg"

XX#define remove		"/bin/rm -f"		/* how to remove a file */
XX#define cat		"/bin/cat"		/* how to display files */
XX#define uuname		"uuname"		/* how to get a uuname  */
XXEND_OF_FILE

XXchars=`cat hdrs/sysdefs.master | wc -c`

XXif [ $chars -ne 6490 ]
XXthen
XX  echo File damaged in transit...should be 6490 bytes, is $chars instead
XX  echo  I suggest you check it closely...
XXfi

XX#---------------------------------
XX# File Elm/hdrs/shortnames.h is new!

XXecho File Elm/hdrs/shortnames.h is new - extracting...
XXif [ -f hdrs/shortnames.h ]
XXthen
XX  echo File \'hdrs/shortnames.h\' is new, but you already have something called that\!
XX  echo I\'m going to move your file to \'hdrs/shortnames.h.old\'...
XX  /bin/mv -f hdrs/shortnames.h hdrs/shortnames.h.old
XXelse
XX  echo Extracting new file \'hdrs/shortnames.h\'
XXfi

XXcat > hdrs/shortnames.h << 'END_OF_FILE'
XX/**			shortnames.h			**/

XX/** This file is from Geoff Kuenning, and will help those poor users that
XX    are stuck using C compilers that don't have flexnames.   Too bad.

XX	This file has no explicit copyright.

XX**/

XX#define PutLine0		PLine0
XX#define PutLine1		PLine1
XX#define PutLine2		PLine2
XX#define PutLine3		PLine3

XX#define add_to_table		add_2_table
XX#define address1		addrs1
XX#define addressII		addrsII
XX#define addresses		addr_s
XX#define alternate_prompt	alt_prompt
XX#define alternative_addresses	alt_addrs
XX#define always_leave		alw_leave

XX#define calendar_line		cal_line
XX#define cancelled_msg		cncld_msg
XX#define central_message_buffer	cntrl_bfr
XX#define compare_dates		cmp_dates
XX#define compare_headers		cmp_hdrs
XX#define copy_message_across	cpy_msg_across
XX#define current_record		cur_rec
XX#define current_time		cur_time

XX#define define_softkeys		def_softkeys
XX#define display_central_message	displ_cntrl_msg
XX#define display_error		displ_error
XX#define display_headers		displ_hdrs
XX#define display_helpfile	dspl_helpfile
XX#define display_options		displ_options
XX#define display_title		displ_titles
XX#define display_to		displ_to

XX#define encrypted		crypted
XX#define encrypted_key		crypt_key
XX#define expanded_cc		xp_cc
XX#define expanded_to		xp_to
XX#define expand_address		xp_addr
XX#define expand_domain		xp_domain
XX#define expand_env		xp_env
XX#define expand_filename		xp_filename
XX#define expand_group		xp_group
XX#define expand_logname		xp_logname
XX#define expand_site		xp_site
XX#define expand_system		xp_system

XX#define filename2		fn2
XX#define forward			forwrd

XX#define generate_reply_to	gen_reply_to
XX#define get_return_name		g_ret_name

XX#define header_line		h_line
XX#define header_page		h_page
XX#define headers_per_page	h_per_page
XX#define header_table		h_table

XX#define install_aliases		ins_aliases

XX#define last_line_loc		last_ln_loc

XX#define machine_group		mach_group
XX#define mailbox_defined		mbox_defined
XX#define mailfile_size		mfile_size
XX#define message_count		msg_count
XX#define message_number		msg_number

XX#define newaliases		nwaliases
XX#define noptimize_return	noret_opt
XX#define noptimize_usenet	nousenet_opt

XX#define optimize_and_add	opt_and_add
XX#define optimize_arpa		opt_arpa
XX#define optimize_cmplx_arpa	opt_cmplx_arpa
XX#define optimize_return		opt_return
XX#define optimize_usenet		opt_usenet
XX#define optional_arg		opt_arg
XX#define optionally_enter	opt_enter
XX#define original_cc		orig_cc
XX#define original_msg_num	orig_msg_num
XX#define original_to		orig_to

XX#define parse_arguments		pars_arguments
XX#define parse_arpa_from		prs_arpa_from
XX#define password_entry		pw_entry
XX#define pattern_enter		pat_enter
XX#define pattern_match		pat_match

XX#define read_alias_files	rd_alias_files
XX#define read_headers		rd_headers
XX#define read_notesfile		rd_notesfile
XX#define read_rc			rd_rc
XX#define read_rc_file		rd_rc_file
XX#define received_on_machine	rcvd_on_machine
XX#define remove_all		rem_all
XX#define remove_first_word	rem_1st_word
XX#define remove_domains		rem_domains
XX#define remove_header		rem_hdr
XX#define remove_user		rem_user
XX#define remove_through_ch	rem_thru_ch
XX#define reply_to_everyone	repl_to_everyone
XX#define resolve_received	rslv_received

XX#define show_message		shw_message
XX#define show_msg		showmsg
XX#define show_msg_tag		sh_msg_tag
XX#define size_of_pathfd		sz_of_pathfd
XX#define softkeys_off		soft_off
XX#define softkeys_on		soft_on
XX#define subjectbuffer		subjbuff
XX#define subject_matches		subj_matches
XX#define system_call		sys_call
XX#define system_data		sys_data
XX#define system_files		sys_files
XX#define system_hash_table	sys_hash_table
XX#define system_record		sys_record

XX#define tail_of_string		tl_of_string
XX#define talk_to_sys		tlk_to_sys
XX#define tempfile		tmpfile
XX#define termcap_label		tcap_label
XX#define top_of_screen_left	top_left_of_screen
XX#define top_of_screen_right	top_right_of_screen
XX#define translate_return	xlate_return

XX#define update_mailtime		upd_mailtime
XX#define update_title		upd_title
XX#define unexpanded_cc		unexp_cc
XX#define unexpanded_to		unexp_to

XX#define verify_transmission	vfy_xmsn

XX#define weeding_out		wding_out
XXEND_OF_FILE

XXchars=`cat hdrs/shortnames.h | wc -c`

XXif [ $chars -ne 4006 ]
XXthen
XX  echo File damaged in transit...should be 4006 bytes, is $chars instead
XX  echo  I suggest you check it closely...
XXfi

XX#-------------------------------------
XX# File 'utils/arepdaemon.c' diffs...

XXcat << 'EOF' > utils/arepdaemon.D
XX59,60d
XX37c

XX#ifdef BSD
XX# include <sys/time.h>
XX#else
XX# include <time.h>
XX#endif

XX.
XXw
XXEOF

XXchars=`cat utils/arepdaemon.c | wc -c`

XXif [ $chars -ne 13380 ]
XXthen
XX  echo Your file utils/arepdaemon.c has been changed\!
XX  echo diffs saved as \"utils/arepdaemon.D\"
XXelse
XX  echo applying diffs to file utils/arepdaemon.c...
XX  /bin/cat utils/arepdaemon.D | /bin/ed - utils/arepdaemon.c
XXfi

XX#-------------------------------------
XX# File 'utils/autoreply.c' diffs...

XXcat << 'EOF' > utils/autoreply.D
XX24,25d
XXw
XXEOF

XXchars=`cat utils/autoreply.c | wc -c`

XXif [ $chars -ne 4746 ]
XXthen
XX  echo Your file utils/autoreply.c has been changed\!
XX  echo diffs saved as \"utils/autoreply.D\"
XXelse
XX  echo applying diffs to file utils/autoreply.c...
XX  /bin/cat utils/autoreply.D | /bin/ed - utils/autoreply.c
XXfi

XX#-------------------------------------
XX# File 'utils/fastmail.c' diffs...

XXcat << 'EOF' > utils/fastmail.D
XX218a
XX#  endif
XX.
XX217a
XX#  ifdef BSD4.1
XX	  timezone(loc_time.time_zone, the_time->tz_isdst));
XX#  else
XX.
XX203a
XX#  endif
XX.
XX201a
XX#  ifdef BSD4.1
XX	junk = (long) time((long *) 0);
XX	ftime(&loc_time);
XX#  else
XX.
XX198a
XX#  endif
XX.
XX196a
XX#  ifdef BSD4.1
XX	struct timeb loc_time;	/* of course this is different! */
XX#  else
XX.
XX32c
XX# ifdef BSD4.1
XX#   include <time.h>
XX#   include <sys/types.h>
XX#   include <sys/timeb.h>
XX# else
XX#   include <sys/time.h>
XX# endif
XX.
XXw
XXEOF

XXchars=`cat utils/fastmail.c | wc -c`

XXif [ $chars -ne 7799 ]
XXthen
XX  echo Your file utils/fastmail.c has been changed\!
XX  echo diffs saved as \"utils/fastmail.D\"
XXelse
XX  echo applying diffs to file utils/fastmail.c...
XX  /bin/cat utils/fastmail.D | /bin/ed - utils/fastmail.c
XXfi

XX#-------------------------------------
XX# File 'utils/newmail.c' diffs...

XXcat << 'EOF' > utils/newmail.D
XX251c
XX	  printf(">> %s mail from %s - %s\n\r", 
XX		priority? "PRIORITY" : "New", from, subject);
XX.
XX218c
XXshow_header(priority, from, subject)
XXint   priority;
XX.
XX136c
XX	      show_header(priority, from_whom, subject);
XX.
XX131a
XX	    else if (first_word(buffer,"Priority:")) 
XX	      priority++;
XX.
XX113c
XX	register int subj = 0, in_header = 1, count = 0, priority=0;
XX.
XX29a
XX#ifdef AUTO_BACKGROUND
XX#include <signal.h>	/* background jobs ignore some signals... */
XX#endif

XX.
XX20,23d
XXw
XXEOF

XXchars=`cat utils/newmail.c | wc -c`

XXif [ $chars -ne 7761 ]
XXthen
XX  echo Your file utils/newmail.c has been changed\!
XX  echo diffs saved as \"utils/newmail.D\"
XXelse
XX  echo applying diffs to file utils/newmail.c...
XX  /bin/cat utils/newmail.D | /bin/ed - utils/newmail.c
XXfi

XX#-------------------------------------
XX# File 'utils/newalias.c' diffs...

XXcat << 'EOF' > utils/newalias.D
XX453a
XX}

XXextract_comment(comment, buffer, first, last)
XXchar *comment, *buffer;
XXint first, last;
XX{
XX	/** Buffer contains a comment, located between the first and last
XX	    values.  Copy that into 'comment', but remove leading and
XX	    trailing white space.  Note also that it doesn't copy past
XX	    a comma, so `unpublishable' comments can be of the form;
XX		dave: Dave Taylor, HP Labs : taylor at hplabs
XX	    and the output will be "taylor at hplabs (Dave Taylor)".
XX	**/

XX	register int loc = 0; 

XX	/** first off, skip the LEADING white space... **/

XX	while (buffer[first] == ' ') first++;
XX	
XX	/** now let's backup the 'last' value until we hit a non-space **/

XX	last -= 2;	/* starts at ch AFTER colon.. */
XX	while (buffer[last] == ' ') last--;

XX	/** now a final check to make sure we're still talking about a 
XX	    reasonable string (rather than a "joe :: joe at dec" type string) **/

XX	if (first < last) {
XX	  /* one more check - let's find the comma, if present... */
XX	  for (loc=first; loc < last; loc++)
XX	    if (buffer[loc] == ',') {
XX	      last = loc-1;
XX	      break;
XX	  }
XX	  loc = 0;
XX	  while (first <= last)
XX	    comment[loc++] = buffer[first++];
XX	  comment[loc] = '\0';
XX	}
XX.
XX311a
XX	  if (first_colon == -1 && string[i] == ':') {
XX	    first_colon = i;
XX	    for (last_colon=strlen(string);string[last_colon] != ':'; 
XX		last_colon--) ;
XX	  }
XX	  else if (i > first_colon && i < last_colon)
XX	   if (string[i] == c1 || string[i] == c2)
XX	     buffer[j++] = string[i];
XX	}
XX	
XX.
XX308c
XX	for (i = 0; string[i] != '\0' && i < LONG_STRING; i++) {
XX.
XX306c
XX	register int i = 0, j = 0, first_colon = -1, last_colon = -1;
XX.
XX304c
XX	/* Remove all occurances of character 'c1' or 'c2' from the string.
XX	   Hacked (literally) to NOT remove ANY characters from within the
XX	   colon fields.  This will only be used if the line contains TWO
XX	   colons (and comments with colons in them are the kiss of death!)
XX	 */

XX.
XX284c
XX	  if (strlen(comment) > 0) {
XX	    fprintf(data, "%s (%s)\n", address, comment);
XX	    additive = (long) (strlen(comment) + 4);
XX	  }
XX	  else
XX	    fprintf(data, "%s\n", address, comment);
XX.
XX267,268c
XX	/** add address + comment to datafile, incrementing offset count 
XX	    (bytes), then for each alias in the aliases string, add to the
XX.
XX263c
XXchar *aliases, *comment, *address;
XX.
XX261c
XXadd_to_table(data, aliases, comment, address, table, size)
XX.
XX212c
XX	add_to_table(data, aliases, comment, address, table, size);
XX.
XX209a
XX	comment[0] = '\0';	/* default to nothing at all... */

XX	if ((first=strlen(aliases)+1) < (last=(strlen(buffer) - j))) {
XX	  extract_comment(comment, buffer, first, last); 
XX	}

XX.
XX198c
XX	char comment[LONG_STRING];
XX	int  first, last, i = 0, j = 0;
XX.
XX193,195c
XX	/** break buffer down into three pieces: aliases, comment, and address.
XX	    Make the appropriate entries in the table (size) 
XX	**/
XX.
XXw
XXEOF

XXchars=`cat utils/newalias.c | wc -c`

XXif [ $chars -ne 11051 ]
XXthen
XX  echo Your file utils/newalias.c has been changed\!
XX  echo diffs saved as \"utils/newalias.D\"
XXelse
XX  echo applying diffs to file utils/newalias.c...
XX  /bin/cat utils/newalias.D | /bin/ed - utils/newalias.c
XXfi

XX#-------------------------------------
XX# File 'utils/printmail.c' diffs...

XXcat << 'EOF' > utils/printmail.D
XX72,73c
XX	  argv++;
XX	  if (argc-1) {
XX.
XX34c
XX	    argv++;
XX.
XX28c
XX	argv++;				/* get past argv[0] */
XX.
XXw
XXEOF

XXchars=`cat utils/printmail.c | wc -c`

XXif [ $chars -ne 2472 ]
XXthen
XX  echo Your file utils/printmail.c has been changed\!
XX  echo diffs saved as \"utils/printmail.D\"
XXelse
XX  echo applying diffs to file utils/printmail.c...
XX  /bin/cat utils/printmail.D | /bin/ed - utils/printmail.c
XXfi

XX#-------------------------------------
XX# File 'utils/readmsg.c' diffs...

XXcat << 'EOF' > utils/readmsg.D
XX317a
XX	if (strlen(to)      > 0) { printf("%s", to);      displayed_line++;}
XX.
XX304a
XX	  to[0] = '\0';
XX.
XX301a
XX	else if (strncmp(buffer,"To: ", 3) == 0)
XX	  strncpy(to, buffer, SLEN);
XX.
XX287c
XXstatic char from[SLEN], subject[SLEN], date[SLEN], to[SLEN];
XX.
XX200c
XX	  if (current == read_message[current_in_queue] || list_all_messages)
XX.
XX195,196c
XX	    if ((current == read_message[current_in_queue] || list_all_messages)
XX                && page_breaks && current_in_queue > 0)
XX.
XX190,193c
XX	    if (! list_all_messages) {
XX	      if (current == read_message[current_in_queue])
XX	        current_in_queue++;
XX	      if (current_in_queue >= messages) 
XX	        exit(0);
XX	    }
XX.
XX124c
XX	else if (*argv[0] == STAR) 		/* all messages....   */
XX	  list_all_messages++;
XX	else { 					  /* list of nums   */
XX.
XX117c
XX	else if (! isdigit(*argv[0]) && *argv[0] != LAST_CHAR && 
XX	         *argv[0] != STAR) {  
XX.
XX67a
XX	    list_all_messages = 0,		/* just list 'em all??       */
XX.
XX42a
XX#define  STAR		'*'		/* char to delimit all messages...  */
XX.
XX21a
XX    Also added '*' as a flag - indicating ALL messages in the mailbox.

XX.
XX18c
XX	
XX.
XXw
XXEOF

XXchars=`cat utils/readmsg.c | wc -c`

XXif [ $chars -ne 9564 ]
XXthen
XX  echo Your file utils/readmsg.c has been changed\!
XX  echo diffs saved as \"utils/readmsg.D\"
XXelse
XX  echo applying diffs to file utils/readmsg.c...
XX  /bin/cat utils/readmsg.D | /bin/ed - utils/readmsg.c
XXfi

XX#-------------------------------------
XX# File 'utils/wnewmail.c' diffs...

XXcat << 'EOF' > utils/wnewmail.D
XX249c
XX	/** Try to parse the 'From:' line given... It can be in one of
XX.
XX243c
XX	    printf("%sMail from %s -- %s\n", 
XX		   priority? "PRIORITY ": "", from, subject);
XX.
XX208c
XXshow_header(priority, from, subject)
XXint   priority;
XX.
XX126c
XX	      show_header(priority, from_whom, subject);
XX.
XX123a
XX	    else if (first_word(buffer, "Priority:"))
XX	      priority++;
XX.
XX103c
XX	register int subj = 0, in_header = 1, count = 0, priority = 0;
XX.
XX17a
XX#ifdef AUTO_BACKGROUND
XX#include <signal.h>	/* background jobs ignore some signals... */
XX#endif

XX.
XX8,11d
XXw
XXEOF

XXchars=`cat utils/wnewmail.c | wc -c`

XXif [ $chars -ne 7804 ]
XXthen
XX  echo Your file utils/wnewmail.c has been changed\!
XX  echo diffs saved as \"utils/wnewmail.D\"
XXelse
XX  echo applying diffs to file utils/wnewmail.c...
XX  /bin/cat utils/wnewmail.D | /bin/ed - utils/wnewmail.c
XXfi

XX#---------------------------------
XX# File Elm/utils/trim-headers is new!

XXecho File Elm/utils/trim-headers is new - extracting...
XXif [ -f utils/trim-headers ]
XXthen
XX  echo File \'utils/trim-headers\' is new, but you already have something called that\!
XX  echo I\'m going to move your file to \'utils/trim-headers.old\'...
XX  /bin/mv -f utils/trim-headers utils/trim-headers.old
XXelse
XX  echo Extracting new file \'utils/trim-headers\'
XXfi

XXcat > utils/trim-headers << 'END_OF_FILE'
XX: Use /bin/sh

XX# This shell script is designed to be used either to trim the 'junk' headers
XX# out of an archived/saved mailbox file or to trim the headers off a file 
XX# that is being piped to it.  The program considers the following headers
XX# to be worth saving - everything else is junked.
XX#
XX#	From <user> <date>
XX#	From: name <address>
XX#	Subject:
XX#	To: 
XX#	Cc:
XX#	Date:
XX#
XX# all others are ignored and trashed.
XX#
XX# (C) Copyright 1986, Dave Taylor

XX# first off, let's make the 'awk' script we'll be using...

XXcat << 'END_OF_AWK_SCRIPT' > /tmp/awk.$$
XXBEGIN { in_body = 1 }
XX{	if (in_body) {
XX	  if ($1 == "From") in_body = 0;
XX	  print $0
XX	}
XX	else if ($1 == "From:" || $1 == "Subject:" || $1 == "To:" || \
XX	         $1 == "Cc:" || $1 == "Date:")
XX	  print $0
XX	else if (length($0) == 0) {
XX	  in_body = 1;
XX	  print $0
XX	}
XX}
XXEND_OF_AWK_SCRIPT

XX# next let's see if we're being piped to or if we've been handed
XX# either a file name or list of file names...

XXif [ "$1" = "" ]
XXthen
XX  cat - | awk -f /tmp/awk.$$ | uniq
XX  rm -f /tmp/awk.$$
XXelse
XX  for filename in $*
XX  do
XX    echo filtering file $filename
XX    cat $filename | awk -f /tmp/awk.$$ | uniq > OUTFILE
XX    mv OUTFILE $filename
XX  done
XX  echo done
XXfi
XX  
XXexit 0 
XXEND_OF_FILE

XXchars=`cat utils/trim-headers | wc -c`

XXif [ $chars -ne 1201 ]
XXthen
XX  echo File damaged in transit...should be 1201 bytes, is $chars instead
XX  echo  I suggest you check it closely...
XXfi

XX#---------------------------------
XX# File Elm/utils/Makefile.mstr is new!

XXecho File Elm/utils/Makefile.mstr is new - extracting...
XXif [ -f utils/Makefile.mstr ]
XXthen
XX  echo File \'utils/Makefile.mstr\' is new, but you already have something called that\!
XX  echo I\'m going to move your file to \'utils/Makefile.mstr.old\'...
XX  /bin/mv -f utils/Makefile.mstr utils/Makefile.mstr.old
XXelse
XX  echo Extracting new file \'utils/Makefile.mstr\'
XXfi

XXcat > utils/Makefile.mstr << 'END_OF_FILE'
XX#
XX#  Makefile for the Elm system utilities
XX#
XX#         (C) Copyright 1986, Dave Taylor
XX#
XX#  Last modification: March 5th, 1986

XXSHELL=/bin/sh

XX##############################
XX#
XX# if on a BSD system;
XX#   DEFINE=-DBSD
XX#   LIB2  = -lcurses
XX# else if on a UTS system;
XX#   DEFINE=-DUTS
XX#   LIB2  = -la
XX# else if on a SUN system;
XX#   DEFINE=-DBSD -DSUN
XX#   LIB2  = -lcurses
XX# else if on a Pyramid system;
XX#   DEFINE=-DBSD -DNO_VAR_ARGS
XX#   LIB2  = -lcurses
XX# else

XX    DEFINE= >os-define<
XX    LIB2  = >lib2<

XX##############################

XXCFLAGS= -O -I../hdrs
XXCC=	>cc<
XXRM= 	>rm<
XXECHO=  /bin/echo

XXOBJS=	../bin/newalias ../bin/from ../bin/newmail ../bin/answer       \
XX	../bin/printmail ../bin/fastmail ../bin/readmsg                \
XX	../bin/checkalias ../bin/arepdaemon ../bin/autoreply ../bin/wnewmail \
XX	../bin/messages ../bin/trim-headers

XXall: ${OBJS}

XX../bin/newalias:  ../hdrs/defs.h newalias.c ../src/validname.o \
XX	../src/opt_utils.o
XX	${CC} ${CFLAGS} ${DEFINE} newalias.c ../src/validname.o \
XX	../src/opt_utils.o -o ../bin/newalias 

XX../bin/from: from.c ../src/opt_utils.o ../src/string2.o
XX	${CC} ${CFLAGS} ${DEFINE} from.c ../src/opt_utils.o \
XX	../src/string2.o -o ../bin/from

XX../bin/newmail: ../src/opt_utils.c newmail.c ../src/string2.o
XX	${CC} ${CFLAGS} ${DEFINE} newmail.c \
XX	../src/string2.o -o ../bin/newmail

XX../bin/wnewmail: ../src/opt_utils.c wnewmail.c ../src/string2.o
XX	${CC} ${CFLAGS} ${DEFINE} ../src/opt_utils.o \
XX	../src/string2.o wnewmail.c -o ../bin/wnewmail

XX../bin/answer: answer.c ../src/opt_utils.o
XX	${CC} ${CFLAGS} ${DEFINE} answer.c ../src/opt_utils.o -o ../bin/answer

XX../bin/printmail: printmail.c ../src/opt_utils.o
XX	${CC} ${CFLAGS} ${DEFINE} printmail.c ../src/opt_utils.o \
XX	-o ../bin/printmail

XX../bin/fastmail: fastmail.c 
XX	${CC} ${CFLAGS} ${DEFINE} fastmail.c ../src/opt_utils.o \
XX	-o ../bin/fastmail

XX../bin/readmsg: readmsg.c ../src/getopt.o ../src/opt_utils.o
XX	${CC} ${CFLAGS} ${DEFINE} readmsg.c ../src/getopt.o \
XX	../src/opt_utils.o -o ../bin/readmsg

XX../bin/arepdaemon: arepdaemon.c
XX	${CC} ${CFLAGS} ${DEFINE} arepdaemon.c -o ../bin/arepdaemon

XX../bin/autoreply: autoreply.c ../src/opt_utils.o
XX	${CC} ${CFLAGS} ${DEFINE} autoreply.c ../src/opt_utils.o \
XX	-o ../bin/autoreply

XX../bin/checkalias: 
XX	@echo ': Use /bin/sh' > ../bin/checkalias
XX	@echo 'if [ "$$*" = "" ]; then' >> ../bin/checkalias
XX	@echo '  echo Usage: checkalias alias \[or aliases\]' >>  \
XX	      ../bin/checkalias
XX	@echo '  exit 1' >> ../bin/checkalias
XX	@echo 'fi' >> ../bin/checkalias
XX	@echo ' '  >> ../bin/checkalias
XX	@echo 'exec elm -c $$*' >> ../bin/checkalias
XX	@chmod +x ../bin/checkalias

XX../bin/messages: 
XX	@echo ': Use /bin/sh' 				 > ../bin/messages
XX	@echo 'if [ "$$2" != "" ]; then' 		>> ../bin/messages
XX	@echo '  echo Usage: messages \{folder-name\}'  >> ../bin/messages
XX	@echo '  exit 1' 				>> ../bin/messages
XX	@echo 'fi' 					>> ../bin/messages
XX	@echo ' '  					>> ../bin/messages
XX	@echo 'if [ "$$1" = "" ]; then' 		>> ../bin/messages
XX	@echo '  fname=$$MAIL' 				>> ../bin/messages
XX	@echo '  optional="in your mailbox"'  		>> ../bin/messages
XX	@echo 'else'		 			>> ../bin/messages
XX	@echo '  fname=$$1'				>> ../bin/messages
XX	@echo '  optional="in folder $$1"' 		>> ../bin/messages
XX	@echo 'fi'	       				>> ../bin/messages
XX	@echo ' '					>> ../bin/messages
XX	@echo 'mcount=`egrep "^From " $$fname | wc -l`' >> ../bin/messages
XX	@echo ' '					>> ../bin/messages
XX	@echo 'if [ $$mcount = 1 ];then'		>> ../bin/messages
XX	@echo '  echo There is $$mcount message $$optional' >> ../bin/messages
XX	@echo 'else'					>> ../bin/messages
XX	@echo '  echo There are $$mcount messages $$optional' >> ../bin/messages
XX	@echo 'fi'					>> ../bin/messages
XX	@echo ' '					>> ../bin/messages
XX	@echo 'exit 0'					>> ../bin/messages
XX	@chmod +x ../bin/messages

XX../bin/trim-headers:
XX	@cp trim-headers ../bin/trim-headers
XX	@chmod +x ../bin/trim-headers

XX../src/validname.o: ../src/validname.c ../hdrs/defs.h
XX	@(cd ../src; ${CC} -c ${CFLAGS} ${DEFINE} validname.c; cd ../utils)

XX../src/opt_utils.o: ../src/opt_utils.c ../hdrs/defs.h
XX	@(cd ../src; ${CC} -c ${CFLAGS} ${DEFINE} opt_utils.c; cd ../utils)

XX../src/getopt.o: ../src/getopt.c ../hdrs/defs.h
XX	@(cd ../src; ${CC} -c ${CFLAGS} ${DEFINE} getopt.c; cd ../utils)

XX../src/string2.o: ../src/string2.c ../hdrs/defs.h
XX	@(cd ../src; ${CC} -c ${CFLAGS} ${DEFINE} string2.c; cd ../utils)

XXclean:
XX	${RM} *.o ${OBJS}

XXlint:
XX	lint -p -I../hdrs *.c > LINT.OUT
XXEND_OF_FILE

XXchars=`cat utils/Makefile.mstr | wc -c`

XXif [ $chars -ne 4391 ]
XXthen
XX  echo File damaged in transit...should be 4391 bytes, is $chars instead
XX  echo  I suggest you check it closely...
XXfi

XX#-------------------------------------
XX# File 'bin/mail.elm' diffs...

XXcat << 'EOF' > bin/mail.elm.D
XX16c
XX  sleep 1800
XX.
XXw
XXEOF

XXchars=`cat bin/mail.elm | wc -c`

XXif [ $chars -ne 363 ]
XXthen
XX  echo Your file bin/mail.elm has been changed\!
XX  echo diffs saved as \"bin/mail.elm.D\"
XXelse
XX  echo applying diffs to file bin/mail.elm...
XX  /bin/cat bin/mail.elm.D | /bin/ed - bin/mail.elm
XXfi

XX#-------------------------------------
XX# File 'Instructions' diffs...

XXcat << 'EOF' > Instructions.D
XX84c
XXshould say "no mail" if nothing's in your incoming mailbox, and
XX.
XX75c
XXNote: the mailer runs as setgid mail to have the ability to WRITE
XX.
XX63,73c
XX	$ make -i install
XX.
XX59,61c
XXnext, you can install all the software on your system by;
XX.
XX56,57c
XX    "answer", "arepdaemon", "autoreply", "fastmail", "from", 
XX    "elm", "newalias", "newmail", "printmail", and "readmsg".
XX.
XX40,47d
XX36,38c
XX    (if you're in "sh", you can use "> MAKELOG 2>&1" instead of ">& MAKELOG")
XX.
XX34c
XX	$ (make -i all >& MAKELOG) &
XX	$ tail -f MAKELOG
XX.
XX32c
XX    When that's done, or even if it fails (don't worry too much about it)
XX.
XX29,30c
XX	$ make documentation
XX.
XX27c
XX	$
XX.
XX25c
XX	Once you're happy with the localized files, you then need to create
XXthe documentation (so there's a bit of a catch-22 that you need to format the
XXConfiguration guide before you are happy with the localization but can't do
XXthat until you're happy with the localization...oh well).
XX.
XX23c
XX	Answer the questions of that program,, then let it create the localized
XXMakefiles and system definition files for you.  When it's done you can double
XXcheck the configuration (or customize it further) by reading the Configuration
XXGuide + editing the file "hdrs/sysdefs.h".  There are lots of neat features
XXthat are unique to this mailer - it's worth a quick perusal at least!
XX.
XX19,21c
XX	$ sh Configure.sh
XX.
XX17c
XX	$ cd <where-ever you're keeping the Elm sources>
XX.
XX13,15c
XX	There is actually really one step needed - unpack all the shar
XXfiles and then;
XX.
XX5c
XX			Last Update: July 17th, 1986
XX.
XXw
XXEOF

XXchars=`cat Instructions | wc -c`

XXif [ $chars -ne 5058 ]
XXthen
XX  echo Your file Instructions has been changed\!
XX  echo diffs saved as \"Instructions.D\"
XXelse
XX  echo applying diffs to file Instructions...
XX  /bin/cat Instructions.D | /bin/ed - Instructions
XXfi
@//E*O*F Edit2//
chmod u=rwx,g=rwx,o=rwx $OUT
 
echo Inspecting for damage in transit...
temp=/tmp/sharin$$; dtemp=/tmp/sharout$$
trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
cat > $temp <<\!!!
    1469    5048   37752 Edit2
!!!
wc  Edit2 | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp
if test -s $dtemp ; then
    echo "Ouch [diff of wc output]:"
    cat $dtemp
    STATUS=1
elif test $STATUS = 0 ; then
    echo "No problems found."
else
    echo "WARNING -- PROBLEMS WERE FOUND..."
fi
exit $STATUS



More information about the Mod.sources mailing list