[comp.sources.bugs] elm 2.2 Patch #12

syd@DSI.COM (Syd Weinstein) (10/24/89)

Summary: This is an official patch for elm 2.2 system.  Please apply it.
Priority: MEDIUM

Fix typo in define of signal routines
From: Syd

Fixes when define the environment variable CHRCLASS, fastmail uses some part
of _ctype as from_string and generates an invalide From: line.
From: incom.de!win (Winfried Koenig)

Fix missing return variable from readmsg/expand
From: Gerald Vogt

Remove temporary file if bounce is cancelled
From: David Newall

Fixes a typo in the filter(1) manual page.
From: sequent!phil (Phil Hochstetler)

Add SVR3.2 PID to lock file, but do not check the lock file for a valid
PID.  This allows SVR3.2 to be locked with a minimal change to Elm.
From: Syd

Fix:	From rn, say "| patch -p -N -d DIR", where DIR is your elm source
	directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".
	If you don't have the patch program, apply the following by hand,
	or get patch (version 2.0, latest patchlevel).

	After patching:
		sh Configure -d
		make
		make install

	If patch indicates that patchlevel is the wrong version, you may need
	to apply one or more previous patches, or the patch may already
	have been applied.  See the patchlevel.h file to find out what has or
	has not been applied.  In any event, don't continue with the patch.

	If you are missing previous patches they can be obtained from our:
	archive server.

	Syd Weinstein
	elm@DSI.COM

	The patches are available from the dsinc archive server
	Send the following message to archive-server@DSI.COM for
	a list of available patches:

	Subject: patch list
	send index elm

Index: hdrs/patchlevel.h
Prereq: 11
*** ../elm2.2/hdrs/patchlevel.h	Fri Sep 15 16:49:25 1989
--- hdrs/patchlevel.h	Tue Sep 26 17:11:37 1989
***************
*** 1 ****
! #define PATCHLEVEL 11
--- 1 ----
! #define PATCHLEVEL 12

Index: Configure
Prereq: 2.41
*** ../elm2.2/Configure	Mon Jun 12 10:21:42 1989
--- Configure	Fri Oct  6 15:39:06 1989
***************
*** 8,14 ****
  # and edit it to reflect your system.  Some packages may include samples
  # of config.h for certain machines, so you might look for one of those.)
  #
! # $Header: /files/home/users/syd/elm/RCS/Configure,v 2.41 89/06/12 09:51:06 syd Exp $
  #
  # Yes, you may rip this off to use in other distribution packages.
  # (Note: this Configure script was generated automatically.  Rather than
--- 8,14 ----
  # and edit it to reflect your system.  Some packages may include samples
  # of config.h for certain machines, so you might look for one of those.)
  #
! # $Header: /files/home/users/syd/elm.rel/RCS/Configure,v 2.41.1.3 89/10/06 15:38:49 syd Exp $
  #
  # Yes, you may rip this off to use in other distribution packages.
  # (Note: this Configure script was generated automatically.  Rather than
***************
*** 38,45 ****
  -d) shift; fastread='yes';;
  esac
  
- d_eunice=''
- eunicefix=''
  Log=''
  Header=''
  contains=''
--- 38,43 ----
***************
*** 59,64 ****
--- 57,64 ----
  shsharp=''
  sharpbang=''
  startsh=''
+ d_eunice=''
+ eunicefix=''
  define=''
  loclist=''
  expr=''
***************
*** 141,146 ****
--- 141,148 ----
  d_setgid=''
  mailermode=''
  d_sigvec=''
+ d_strcspn=''
+ d_strspn=''
  d_strings=''
  d_pwdinsys=''
  includepath=''
***************
*** 638,643 ****
--- 640,650 ----
      echo exit 0 >bsd
      echo exit 1 >usg
      echo exit 1 >v7
+ elif $contains SIGTSTP /usr/include/sys/signal.h >/dev/null 2>&1 ; then
+     echo "Looks kind of like a BSD system, but we'll see..."
+     echo exit 0 >bsd
+     echo exit 1 >usg
+     echo exit 1 >v7
  elif $contains '^fcntl$' libc.list >/dev/null 2>&1 ; then
      echo "Looks kind of like a USG system, but we'll see..."
      echo exit 1 >bsd
***************
*** 1859,1864 ****
--- 1866,1891 ----
      d_sigvec="$undef"
  fi
  
+ : see if strspn exists
+ echo " "
+ if $contains strspn libc.list >/dev/null 2>&1; then
+     echo 'strspn() found.'
+     d_strspn="$define"
+ else
+     echo 'strspn() not found--will use our strspn instead.'
+     d_strspn="$undef"
+ fi
+ 
+ : see if strcspn exists
+ echo " "
+ if $contains strcspn libc.list >/dev/null 2>&1; then
+     echo 'strcspn() found.'
+     d_strcspn="$define"
+ else
+     echo 'strcspn() not found--will use our strcspn instead.'
+     d_strcspn="$undef"
+ fi
+ 
  : see if tempnam exists
  echo " "
  if $contains tempnam libc.list >/dev/null 2>&1; then
***************
*** 2559,2565 ****
  from the range 50-1000.
  EOM
  	odflt=$dflt
! 	dflt=n
  	rp="Should I use your answer of $maxuseralias user aliases anyway? [$dflt]"
  	$echo $n "$rp $c"
  	. myread
--- 2586,2596 ----
  from the range 50-1000.
  EOM
  	odflt=$dflt
! 	if $test "$fastread" = yes; then
! 	    dflt=y
! 	else
! 	    dflt=n
! 	fi
  	rp="Should I use your answer of $maxuseralias user aliases anyway? [$dflt]"
  	$echo $n "$rp $c"
  	. myread
***************
*** 2594,2600 ****
  from the range 50-1000.
  EOM
  	odflt=$dflt
! 	dflt=n
  	rp="Should I use your answer of $maxsysalias system aliases anyway? [$dflt]"
  	$echo $n "$rp $c"
  	. myread
--- 2625,2635 ----
  from the range 50-1000.
  EOM
  	odflt=$dflt
! 	if $test "$fastread" = yes; then
! 	    dflt=y
! 	else
! 	    dflt=n
! 	fi
  	rp="Should I use your answer of $maxsysalias system aliases anyway? [$dflt]"
  	$echo $n "$rp $c"
  	. myread
***************
*** 3022,3030 ****
      if $test -f "$ans"; then
  	cont=''
      else
! 	roff=`loc "$ans" "" . $pth`
! 	if $test -f "$roff"; then
  	    cont=''
  	else
  	    if $test "$fastread" = yes; then
  		dflt=y
--- 3057,3066 ----
      if $test -f "$ans"; then
  	cont=''
      else
! 	lookup=`loc "$ans" "" . $pth`
! 	if $test -f "$lookup"; then
  	    cont=''
+ 	    roff=$lookup
  	else
  	    if $test "$fastread" = yes; then
  		dflt=y
***************
*** 3181,3188 ****
  # config.sh
  # This file was produced by running the Configure script.
  
- d_eunice='$d_eunice'
- eunicefix='$eunicefix'
  Log='$Log'
  Header='$Header'
  contains='$contains'
--- 3217,3222 ----
***************
*** 3202,3207 ****
--- 3236,3243 ----
  shsharp='$shsharp'
  sharpbang='$sharpbang'
  startsh='$startsh'
+ d_eunice='$d_eunice'
+ eunicefix='$eunicefix'
  define='$define'
  loclist='$loclist'
  expr='$expr'
***************
*** 3284,3289 ****
--- 3320,3327 ----
  d_setgid='$d_setgid'
  mailermode='$mailermode'
  d_sigvec='$d_sigvec'
+ d_strcspn='$d_strcspn'
+ d_strspn='$d_strspn'
  d_strings='$d_strings'
  d_pwdinsys='$d_pwdinsys'
  includepath='$includepath'

Index: config.h.SH
*** ../elm2.2/config.h.SH	Wed May 24 21:15:45 1989
--- config.h.SH	Fri Oct  6 15:38:40 1989
***************
*** 23,42 ****
   */
  
  
- /* EUNICE:
-  *	This symbol, if defined, indicates that the program is being compiled
-  *	under the EUNICE package under VMS.  The program will need to handle
-  *	things like files that don't go away the first time you unlink them,
-  *	due to version numbering.  It will also need to compensate for lack
-  *	of a respectable link() command.
-  */
- /* VMS:
-  *	This symbol, if defined, indicates that the program is running under
-  *	VMS.  It is currently only set in conjunction with the EUNICE symbol.
-  */
- #$d_eunice	EUNICE		/**/
- #$d_eunice	VMS		/**/
- 
  /* CPPSTDIN:
   *	This symbol contains the first part of the string which will invoke
   *	the C preprocessor on the standard input and produce to standard
--- 23,28 ----
***************
*** 103,108 ****
--- 89,108 ----
   */
  #$d_whoami	WHOAMI		/**/
  
+ /* EUNICE:
+  *	This symbol, if defined, indicates that the program is being compiled
+  *	under the EUNICE package under VMS.  The program will need to handle
+  *	things like files that don't go away the first time you unlink them,
+  *	due to version numbering.  It will also need to compensate for lack
+  *	of a respectable link() command.
+  */
+ /* VMS:
+  *	This symbol, if defined, indicates that the program is running under
+  *	VMS.  It is currently only set in conjunction with the EUNICE symbol.
+  */
+ #$d_eunice	EUNICE		/**/
+ #$d_eunice	VMS		/**/
+ 
  /* ENABLE_CALENDAR:
   *	This symbol, if defined, indicates that the calendar feature
   *	should be supported.
***************
*** 248,253 ****
--- 248,260 ----
   *	This symbol, if defined, indicates that the sigvec() routine exists.
   */
  #$d_sigvec	SIGVEC		/**/
+ 
+ /* STRCSPN:
+  *	This symbol, if defined, indicates that the strcspn() routine exists.
+  */
+ #$d_strspn	STRSPN		/**/
+ 
+ #$d_strcspn	STRCSPN		/**/
  
  /* STRINGS:
   *	This symbol, if defined, indicates that the file strings.h

Index: doc/filter.1
*** ../elm2.2/doc/filter.1	Sun Feb 26 16:38:06 1989
--- doc/filter.1	Tue Oct 17 16:43:14 1989
***************
*** 21,27 ****
  .I Filter
  is a sophisticated program that allows incoming mail to be
  filtered against a wide set of criteria.  The format for the
! rules, located in $HOME/.filter_rules, is;
  .nf
          
          \fIrule\fR  ::=  \fBif  (\fIexpression\fP)  then  \fIaction\fR
--- 21,27 ----
  .I Filter
  is a sophisticated program that allows incoming mail to be
  filtered against a wide set of criteria.  The format for the
! rules, located in $HOME/.filter-rules, is;
  .nf
          
          \fIrule\fR  ::=  \fBif  (\fIexpression\fP)  then  \fIaction\fR

Index: src/init.c
Prereq: 2.30
*** ../elm2.2/src/init.c	Mon Jun 12 10:21:47 1989
--- src/init.c	Wed Sep 20 14:42:19 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: init.c,v 2.30 89/05/31 14:14:50 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.30 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: init.c,v 2.30.1.1 89/09/20 14:42:10 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.30.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,22 ----
   *
   *******************************************************************************
   * $Log:	init.c,v $
+  * Revision 2.30.1.1  89/09/20  14:42:10  syd
+  * Fix typo in define of signal routines
+  * 
   * Revision 2.30  89/05/31  14:14:50  syd
   * Fix sigvec usage to only be used where SV_INTERRUPT and SIGVEC are defined
   * signal is better unless the sigvec provides interrupt capability as in SV.
***************
*** 112,118 ****
  #endif
  #ifdef SIGTSTP
  #ifdef VOIDSIG
! 	int sig_user_stop(), sig_return_from_user_stop();
  #else
  	int sig_user_stop(), sig_return_from_user_stop();
  #endif
--- 115,121 ----
  #endif
  #ifdef SIGTSTP
  #ifdef VOIDSIG
! 	void sig_user_stop(), sig_return_from_user_stop();
  #else
  	int sig_user_stop(), sig_return_from_user_stop();
  #endif

Index: src/leavembox.c
Prereq: 2.27
*** ../elm2.2/src/leavembox.c	Mon Jun 12 10:21:48 1989
--- src/leavembox.c	Wed Oct 18 20:16:17 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: leavembox.c,v 2.27 89/05/25 17:11:05 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.27 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: leavembox.c,v 2.27.1.2 89/10/18 20:16:08 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.27.1.2 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,28 ----
   *
   *******************************************************************************
   * $Log:	leavembox.c,v $
+  * Revision 2.27.1.2  89/10/18  20:16:08  syd
+  * fix typo
+  * From: Syd
+  * 
+  * Revision 2.27.1.1  89/10/17  16:55:04  syd
+  * Add permissive lock code for SVR3.2, in that it creates the pid in the file
+  * but it does not check the pid to see if a process is still running
+  * From: Syd
+  * 
   * Revision 2.27  89/05/25  17:11:05  syd
   * Finally, the patch everyone has asked for.  The 'q' command prompts just like
   * the 'c' and '$' commands.  That is, the "ask" option is honored on the 'q'
***************
*** 628,633 ****
--- 637,643 ----
  
        register int create_iteration = 0,
  		   flock_iteration = 0;
+       char pid_buffer[SHORT];
  
        /* formulate lock file name */
        mk_lockname(cur_folder);
***************
*** 743,748 ****
--- 753,762 ----
        dprint(5,
  	(debugfile, "Lock %s %s for file %s on.\n", lock_name,
  	(direction == INCOMING ? "incoming" : "outgoing"), cur_folder));
+ 
+       /* Place the pid of Elm into the lock file for SVR3.2 and its ilk */
+       sprintf(pid_buffer, "%d", getpid());
+       write(create_fd, pid_buffer, strlen(pid_buffer));
  
        (void)close(create_fd);
  

Index: src/opt_utils.c
Prereq: 2.19
*** ../elm2.2/src/opt_utils.c	Mon Apr 24 20:57:35 1989
--- src/opt_utils.c	Tue Sep 26 17:09:36 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: opt_utils.c,v 2.19 89/04/24 20:46:35 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.19 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: opt_utils.c,v 2.19.1.1 89/09/26 17:09:19 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.19.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	opt_utils.c,v $
+  * Revision 2.19.1.1  89/09/26  17:09:19  syd
+  * Add new symbols for strspn/strcspn
+  * From: Syd
+  * 
   * Revision 2.19  89/04/24  20:46:35  syd
   * Change includes for consistency
   * From: Jim Brown <jim@umigw.miami.edu>
***************
*** 219,269 ****
  	return ( islower(ch) ? ch - 'a' + 'A' : ch );
  }
  
- strspn(source, keys)
- char *source, *keys;
- {
- 	/** This function returns the length of the substring of
- 	    'source' (starting at zero) that consists ENTIRELY of
- 	    characters from 'keys'.  This is used to skip over a
- 	    defined set of characters with parsing, usually. 
- 	**/
- 
- 	register int loc = 0, key_index = 0;
- 
- 	while (source[loc] != '\0') {
- 	  key_index = 0;
- 	  while (keys[key_index] != source[loc])
- 	    if (keys[key_index++] == '\0')
- 	      return(loc);
- 	  loc++;
- 	}
- 
- 	return(loc);
- }
- 
- strcspn(source, keys)
- char *source, *keys;
- {
- 	/** This function returns the length of the substring of
- 	    'source' (starting at zero) that consists entirely of
- 	    characters NOT from 'keys'.  This is used to skip to a
- 	    defined set of characters with parsing, usually. 
- 	    NOTE that this is the opposite of strspn() above
- 	**/
- 
- 	register int loc = 0, key_index = 0;
- 
- 	while (source[loc] != '\0') {
- 	  key_index = 0;
- 	  while (keys[key_index] != '\0')
- 	    if (keys[key_index++] == source[loc])
- 	      return(loc);
- 	  loc++;
- 	}
- 
- 	return(loc);
- }
- 
  char *strtok(source, keys)
  char *source, *keys;
  {
--- 223,228 ----
***************
*** 365,370 ****
--- 324,382 ----
  	}
  
  	return ( (char *) address);
+ }
+ 
+ #endif
+ 
+ #ifndef STRSPN
+ 
+ strspn(source, keys)
+ char *source, *keys;
+ {
+ 	/** This function returns the length of the substring of
+ 	    'source' (starting at zero) that consists ENTIRELY of
+ 	    characters from 'keys'.  This is used to skip over a
+ 	    defined set of characters with parsing, usually. 
+ 	**/
+ 
+ 	register int loc = 0, key_index = 0;
+ 
+ 	while (source[loc] != '\0') {
+ 	  key_index = 0;
+ 	  while (keys[key_index] != source[loc])
+ 	    if (keys[key_index++] == '\0')
+ 	      return(loc);
+ 	  loc++;
+ 	}
+ 
+ 	return(loc);
+ }
+ 
+ #endif
+ 
+ #ifndef STRCSPN
+ 
+ strcspn(source, keys)
+ char *source, *keys;
+ {
+ 	/** This function returns the length of the substring of
+ 	    'source' (starting at zero) that consists entirely of
+ 	    characters NOT from 'keys'.  This is used to skip to a
+ 	    defined set of characters with parsing, usually. 
+ 	    NOTE that this is the opposite of strspn() above
+ 	**/
+ 
+ 	register int loc = 0, key_index = 0;
+ 
+ 	while (source[loc] != '\0') {
+ 	  key_index = 0;
+ 	  while (keys[key_index] != '\0')
+ 	    if (keys[key_index++] == source[loc])
+ 	      return(loc);
+ 	  loc++;
+ 	}
+ 
+ 	return(loc);
  }
  
  #endif

Index: src/remail.c
Prereq: 2.8
*** ../elm2.2/src/remail.c	Thu Mar 30 10:37:04 1989
--- src/remail.c	Tue Oct 17 16:38:35 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: remail.c,v 2.8 89/03/25 21:47:04 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.8 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: remail.c,v 2.8.1.1 89/10/17 16:38:00 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.8.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	remail.c,v $
+  * Revision 2.8.1.1  89/10/17  16:38:00  syd
+  * Remove temporary file if bounce is cancelled
+  * From: David Newall
+  * 
   * Revision 2.8  89/03/25  21:47:04  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 93,99 ****
  	if (tolower(ch) == 'n') { /* another day, another No... */
  	  Write_to_screen("No.", 0);
  	  set_error("Bounce of message cancelled.");
!           return(1);
  	}
  	Write_to_screen("Yes.", 0);
  
--- 97,104 ----
  	if (tolower(ch) == 'n') { /* another day, another No... */
  	  Write_to_screen("No.", 0);
  	  set_error("Bounce of message cancelled.");
! 	  (void) unlink(filename);
! 	  return(1);
  	}
  	Write_to_screen("Yes.", 0);
  

Index: utils/expand.c
Prereq: 2.3
*** ../elm2.2/utils/expand.c	Thu Mar 30 10:38:06 1989
--- utils/expand.c	Tue Oct 17 16:34:21 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: expand.c,v 2.3 89/03/25 21:47:43 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.3 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: expand.c,v 2.3.1.2 89/10/17 16:34:17 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.3.1.2 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,27 ----
   *
   *******************************************************************************
   * $Log:	expand.c,v $
+  * Revision 2.3.1.2  89/10/17  16:34:17  syd
+  * Fix return direction
+  * From: Syd
+  * 
+  * Revision 2.3.1.1  89/10/17  16:26:11  syd
+  * fix expand not returning a value
+  * From: Andreas Luik <leonardo!luik>
+  * 
   * Revision 2.3  89/03/25  21:47:43  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 101,106 ****
--- 109,115 ----
  		filename[0] == '/') ? "" : "/", (char *) filename+1);
  
  	strcpy(filename, buffer);
+ 	return(YES);
  }
  
  char *expand_define(maildir)

Index: utils/fastmail.c
Prereq: 2.7
*** ../elm2.2/utils/fastmail.c	Mon Apr 24 20:04:10 1989
--- utils/fastmail.c	Tue Sep 26 16:24:29 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: fastmail.c,v 2.7 89/04/24 19:14:54 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.7 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: fastmail.c,v 2.7.1.1 89/09/26 16:24:27 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.7.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,24 ----
   *
   *******************************************************************************
   * $Log:	fastmail.c,v $
+  * Revision 2.7.1.1  89/09/26  16:24:27  syd
+  * Fixes when define the environment variable CHRCLASS, fastmail uses some part
+  * of _ctype as from_string and generates an invalide From: line.
+  * From: incom.de!win (Winfried Koenig)
+  * 
   * Revision 2.7  89/04/24  19:14:54  syd
   * Add gould timezone patches From Andy Linton @ newcastle
   * 
***************
*** 102,111 ****
--- 107,118 ----
  	char from_addr[SLEN];
  	int  c, sendmail_available, debug = 0;
  
+ 	from_string[0] = '\0';
  	subject[0] = '\0';
  	replyto[0] = '\0';
  	cc_list[0] = '\0';
  	bcc_list[0] = '\0';
+ 	to_list[0] = '\0';
  	from_addr[0] = '\0';
  
  	while ((c = getopt(argc, argv, "b:c:df:F:r:s:")) != EOF) {

Index: utils/readmsg.c
Prereq: 2.8
*** ../elm2.2/utils/readmsg.c	Mon Apr 24 20:04:12 1989
--- utils/readmsg.c	Tue Oct 17 16:34:16 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: readmsg.c,v 2.8 89/04/24 19:31:54 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.8 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: readmsg.c,v 2.8.1.2 89/10/17 16:34:08 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.8.1.2 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,27 ----
   *
   *******************************************************************************
   * $Log:	readmsg.c,v $
+  * Revision 2.8.1.2  89/10/17  16:34:08  syd
+  * Fix return direction
+  * From: Syd
+  * 
+  * Revision 2.8.1.1  89/10/17  16:26:50  syd
+  * fix expand not returning a value
+  * From: Andreas Luik <leonardo!luik>
+  * 
   * Revision 2.8  89/04/24  19:31:54  syd
   * Add BSD USER in addition to LOGNAME
   * 
***************
*** 456,461 ****
--- 464,470 ----
  		infile[0] == '/') ? "" : "/", (char *) infile+1);
  
  	strcpy(infile, buffer);
+ 	return(YES);
  }
  
  char *expand_define(maildir)

Index: Patchlist
*** ../elm2.2/Patchlist	Fri Sep 15 16:49:26 1989
--- Patchlist	Wed Oct 18 20:59:05 1989
***************
*** 1,3 ****
--- 1,27 ----
+ Subject: elm 2.2 Patch #12
+ Date: Wed Oct 18 20:58:47 EDT 1989 (Creation, not message date)
+ Priority: MEDIUM
+ 
+ Fix typo in define of signal routines
+ From: Syd
+ 
+ Fixes when define the environment variable CHRCLASS, fastmail uses some part
+ of _ctype as from_string and generates an invalide From: line.
+ From: incom.de!win (Winfried Koenig)
+ 
+ Fix missing return variable from readmsg/expand
+ From: Gerald Vogt
+ 
+ Remove temporary file if bounce is cancelled
+ From: David Newall
+ 
+ Fixes a typo in the filter(1) manual page.
+ From: sequent!phil (Phil Hochstetler)
+ 
+ Add SVR3.2 PID to lock file, but do not check the lock file for a valid
+ PID.  This allows SVR3.2 to be locked with a minimal change to Elm.
+ From: Syd
+ 
  Subject: elm 2.2 Patch #11
  Date: Fri Sep 15 16:45:43 EDT 1989 (Creation, not message date)
  Priority: MEDIUM

-- 
=====================================================================
Sydney S. Weinstein, CDP, CCP                   Elm Coordinator
Datacomp Systems, Inc.				Voice: (215) 947-9900
syd@DSI.COM or {bpa,vu-vlsi}!dsinc!syd	        FAX:   (215) 938-0235