[comp.sources.bugs] elm 2.3 Patch #5

syd@dsinc.DSI.COM (Syd Weinstein) (07/13/90)

Be sure that output characters are not negative integers.
From: tct!chip@uunet.UU.NET (Chip Salzenberg)

patch fixes some minor typing mistakes in error messages
From: hz247bi@duc220.uni-duisburg.de (Bieniek)

Fix cursor getting lost on some system calls by forcing
an absolute move.
From: Syd, reported by Douglas Lamb

When Elm is compiled with the NO_XHEADER symbol defined, it failed
to put a blank line between the message header and message body.
From: mca@medicus.medicus.com (Mark Adams)

Fix MMDF case, where MSG_SEPERATOR has newline, buffer check
didnt, thus it didnt detect the MSG_SEPERATOR.
From: jbwaters@bsu-cs.bsu.edu (J. Brian Waters)

Make domain name checking case independent
From: Syd, reported by Steven Baur


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:
		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: 4
*** ../elm2.3/hdrs/patchlevel.h	Tue Jun 26 21:08:57 1990
--- hdrs/patchlevel.h	Thu Jul 12 23:24:03 1990
***************
*** 1 ****
! #define PATCHLEVEL 4
--- 1 ----
! #define PATCHLEVEL 5

Index: README
*** ../elm2.3/README	Tue Jun 26 21:08:58 1990
--- README	Thu Jul 12 22:15:27 1990
***************
*** 84,89 ****
--- 84,90 ----
  > Smart mail  keith@g4lzv.co.uk		    | 5b Northgate Rochester Kent UK
  > Ampanet  [44.131.8.1] and [44.131.8.3]	    | +44 634 811594 Voice
  > Packet  G4LZV @ GB7UWS -- G4LZV USENET BB --| +44 634 401210 Data v22,v22bis
+ You might have to experiment and try values from 7000 to 8800.
  
  	Also on Microport SysV/AT Machines, the C compiler produces
  improper code for one of the arithmetic calls.  To fix this problem it

Index: Configure
Prereq: 4.1.1.7
*** ../elm2.3/Configure	Tue Jun 26 21:09:05 1990
--- Configure	Thu Jul 12 23:24:58 1990
***************
*** 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 4.1.1.7 90/06/26 20:57:24 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 4.1.1.8 90/07/12 23:24:37 syd Exp $
  #
  # Yes, you may rip this off to use in other distribution packages.
  # (Note: this Configure script was generated automatically.  Rather than
***************
*** 708,714 ****
  : make some quick guesses about what we are up against
  echo " "
  $echo $n "Hmm...  $c"
! if $test -x "$uname"; then
      uname_os=`uname -s`
      uname_rel=`uname -r`
      uname_rel=`expr "$uname" : "\(...\).*"`
--- 708,714 ----
  : make some quick guesses about what we are up against
  echo " "
  $echo $n "Hmm...  $c"
! if $test -f "$uname"; then
      uname_os=`uname -s`
      uname_rel=`uname -r`
      uname_rel=`expr "$uname" : "\(...\).*"`

Index: filter/utils.c
Prereq: 4.1
*** ../elm2.3/filter/utils.c	Sat Apr 28 22:42:04 1990
--- filter/utils.c	Thu Jul 12 20:23:21 1990
***************
*** 1,8 ****
  
! static char rcsid[] ="@(#)$Id: utils.c,v 4.1 90/04/28 22:42:03 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] ="@(#)$Id: utils.c,v 4.1.1.1 90/07/12 20:23:19 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	utils.c,v $
+  * Revision 4.1.1.1  90/07/12  20:23:19  syd
+  * patch fixes some minor typing mistakes in error messages
+  * From: hz247bi@duc220.uni-duisburg.de (Bieniek)
+  * 
   * Revision 4.1  90/04/28  22:42:03  syd
   * checkin of Elm 2.3 as of Release PL0
   * 
***************
*** 54,60 ****
  	  if ((fd = fopen(filename, "a")) == NULL) {
  	    if (outfd != NULL)
  	      fprintf(outfd, "filter (%s): Couldn't open log file %s\n", 
! 		    filename);
  	    fd = stdout;
  	  }
  	  fprintf(fd, "%d\n", rule_choosen);
--- 58,64 ----
  	  if ((fd = fopen(filename, "a")) == NULL) {
  	    if (outfd != NULL)
  	      fprintf(outfd, "filter (%s): Couldn't open log file %s\n", 
! 		    username, filename);
  	    fd = stdout;
  	  }
  	  fprintf(fd, "%d\n", rule_choosen);
***************
*** 68,74 ****
  	else if ((fd = fopen(filename, "a")) == NULL) {
  	  if (outfd != NULL)
  	    fprintf(outfd, "filter (%s): Couldn't open log file %s\n", 
! 		  filename);
  	  fd = stdout;
  	}
  	
--- 72,78 ----
  	else if ((fd = fopen(filename, "a")) == NULL) {
  	  if (outfd != NULL)
  	    fprintf(outfd, "filter (%s): Couldn't open log file %s\n", 
! 		  username, filename);
  	  fd = stdout;
  	}
  	

Index: src/aliaslib.c
Prereq: 4.1.1.2
*** ../elm2.3/src/aliaslib.c	Tue Jun  5 22:02:36 1990
--- src/aliaslib.c	Thu Jul 12 23:19:13 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: aliaslib.c,v 4.1.1.2 90/06/05 21:31:34 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.2 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: aliaslib.c,v 4.1.1.3 90/07/12 23:18:17 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.3 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	aliaslib.c,v $
+  * Revision 4.1.1.3  90/07/12  23:18:17  syd
+  * Make domain name checking case independent
+  * From: Syd, reported by Steven Baur
+  * 
   * Revision 4.1.1.2  90/06/05  21:31:34  syd
   * Fix now spurious error message for alias recursive expansion
   * when alias lookup is on a string over 20 chars long.  If that
***************
*** 306,311 ****
--- 310,333 ----
  	  ++s2;
  	}
  	/*NOTREACHED*/
+ }
+ 
+ int
+ strincmp(s1,s2,n)
+ register char *s1, *s2;
+ register int n;
+ {
+ 	/* case insensitive comparison */
+ 	register int d;
+ 	while (--n >= 0) {
+ 	  d = ( isupper(*s1) ? tolower(*s1) : *s1 )
+ 		  - ( isupper(*s2) ? tolower(*s2) : *s2 ) ;
+ 	  if ( d != 0 || *s1 == '\0' || *s2 == '\0' )
+ 	    return d;
+ 	  ++s1;
+ 	  ++s2;
+ 	}
+ 	return(0);
  }
  
  int

Index: src/curses.c
Prereq: 4.1.1.2
*** ../elm2.3/src/curses.c	Tue Jun 26 21:09:08 1990
--- src/curses.c	Thu Jul 12 20:18:06 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: curses.c,v 4.1.1.2 90/06/26 20:09:09 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.2 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: curses.c,v 4.1.1.3 90/07/12 20:18:02 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.3 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	curses.c,v $
+  * Revision 4.1.1.3  90/07/12  20:18:02  syd
+  * Be sure that output characters are not negative integers.
+  * From: tct!chip@uunet.UU.NET (Chip Salzenberg)
+  * 
   * Revision 4.1.1.2  90/06/26  20:09:09  syd
   * Add 8 bit support via ascii_ctype
   * From: Robert Claeson <prc@erbe.se>
***************
*** 648,653 ****
--- 652,658 ----
  	static int wrappedlastchar = 0;
  	int justwrapped, nt;
  
+ 	ch &= 0xFF;
  	justwrapped = 0;
  
  	/* if return, just go to left column. */

Index: src/domains.c
Prereq: 4.1
*** ../elm2.3/src/domains.c	Sat Apr 28 22:42:45 1990
--- src/domains.c	Thu Jul 12 23:19:16 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: domains.c,v 4.1 90/04/28 22:42:44 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: domains.c,v 4.1.1.1 90/07/12 23:19:14 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	domains.c,v $
+  * Revision 4.1.1.1  90/07/12  23:19:14  syd
+  * Make domain name checking case independent
+  * From: Syd, reported by Steven Baur
+  * 
   * Revision 4.1  90/04/28  22:42:44  syd
   * checkin of Elm 2.3 as of Release PL0
   * 
***************
*** 184,190 ****
  	while (fgets(buffer, SLEN, domainfd) != NULL) {
  	  if (buffer[0] == '#')				  /* skip comments */
  	    continue;
! 	  if (strncmp(buffer, mydomain, strlen(mydomain)) == 0) { /* match? */
  	     matched++;	/* Gotcha!  Remember this momentous event! */
  	     break;
  	  }
--- 188,194 ----
  	while (fgets(buffer, SLEN, domainfd) != NULL) {
  	  if (buffer[0] == '#')				  /* skip comments */
  	    continue;
! 	  if (strincmp(buffer, mydomain, strlen(mydomain)) == 0) { /* match? */
  	     matched++;	/* Gotcha!  Remember this momentous event! */
  	     break;
  	  }

Index: src/edit.c
Prereq: 4.1
*** ../elm2.3/src/edit.c	Sat Apr 28 22:42:47 1990
--- src/edit.c	Thu Jul 12 22:43:08 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: edit.c,v 4.1 90/04/28 22:42:46 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: edit.c,v 4.1.1.1 90/07/12 22:43:05 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,25 ----
   *
   *******************************************************************************
   * $Log:	edit.c,v $
+  * Revision 4.1.1.1  90/07/12  22:43:05  syd
+  * Make it aware of the fact that we loose the cursor position on
+  * some system calls, so set it far enough off an absolute move will
+  * be done on the next cursor address, and then place it where we want it.
+  * From: Syd, reported by Douglas Lamb
+  * 
   * Revision 4.1  90/04/28  22:42:46  syd
   * checkin of Elm 2.3 as of Release PL0
   * 
***************
*** 78,83 ****
--- 84,90 ----
  	}
  
  	Raw(ON);
+ 	SetXYLocation(0, 40);	/* a location not near the next request, so an absolute is used */
  
  	if (folder_type == SPOOL) {	/* uh oh... now the toughie...  */
  

Index: src/editmsg.c
Prereq: 4.1.1.2
*** ../elm2.3/src/editmsg.c	Fri Jun 22 00:00:01 1990
--- src/editmsg.c	Thu Jul 12 22:43:12 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: editmsg.c,v 4.1.1.2 90/06/21 21:14:09 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.2 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: editmsg.c,v 4.1.1.3 90/07/12 22:43:08 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.3 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,25 ----
   *
   *******************************************************************************
   * $Log:	editmsg.c,v $
+  * Revision 4.1.1.3  90/07/12  22:43:08  syd
+  * Make it aware of the fact that we loose the cursor position on
+  * some system calls, so set it far enough off an absolute move will
+  * be done on the next cursor address, and then place it where we want it.
+  * From: Syd, reported by Douglas Lamb
+  * 
   * Revision 4.1.1.2  90/06/21  21:14:09  syd
   * Force Carriage return on return from editor, as column is lost
   * From: Steve Cambell
***************
*** 99,105 ****
  	if (old_raw == ON)
  	   Raw(ON);
  
! 	CarriageReturn();		/* don't know where we are, force col 0 */
  
  	if (cursor_control)
  	  transmit_functions(ON);		/* function keys are local */
--- 105,112 ----
  	if (old_raw == ON)
  	   Raw(ON);
  
! 	SetXYLocation(0, 40);	/* a location not near the next request, so an absolute is used */
! 	MoveCursor(LINES, 0);	/* dont know where we are, force last row, col 0 */
  
  	if (cursor_control)
  	  transmit_functions(ON);		/* function keys are local */
***************
*** 283,288 ****
--- 290,297 ----
  			     sprintf(buffer, "~r %s%s.%d", temp_dir, temp_edit, getpid());
  	      	             read_in_file(edit_fd, (char *) buffer + 3, 0);
  			     (void) unlink((char *) buffer+3);
+ 			     SetXYLocation(0, 40);	/* a location not near the next request, so an absolute is used */
+ 			     MoveCursor(LINES, 0);	/* and go to a known location, last row col 0 */
  			   }
  	                   goto more_input; 
  
***************
*** 295,300 ****
--- 304,311 ----
  	                     (void) system_call((char *) buffer+2, USER_SHELL, TRUE, TRUE);
  			   if (old_raw == ON)
  			      Raw(ON);
+ 			   SetXYLocation(0, 40);	/* a location not near the next request, so an absolute is used */
+ 			   MoveCursor(LINES, 0);	/* and go to a known location, last row col 0 */
  	    		   Write_to_screen(simple_continue, 0);
  			   goto more_input;
  

Index: src/init.c
Prereq: 4.1
*** ../elm2.3/src/init.c	Sat Apr 28 22:43:17 1990
--- src/init.c	Thu Jul 12 23:19:19 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: init.c,v 4.1 90/04/28 22:43:15 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: init.c,v 4.1.1.1 90/07/12 23:19:17 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	init.c,v $
+  * Revision 4.1.1.1  90/07/12  23:19:17  syd
+  * Make domain name checking case independent
+  * From: Syd, reported by Steven Baur
+  * 
   * Revision 4.1  90/04/28  22:43:15  syd
   * checkin of Elm 2.3 as of Release PL0
   * 
***************
*** 263,269 ****
  	hostlen = strlen(hostname);
  	domlen = strlen(hostdomain);
  	if (hostlen >= domlen) {
! 	  if (strcmp(&hostname[hostlen - domlen], hostdomain) == 0)
  	    strcpy(hostfullname, hostname);
  	  else {
  	    strcpy(hostfullname, hostname);
--- 267,273 ----
  	hostlen = strlen(hostname);
  	domlen = strlen(hostdomain);
  	if (hostlen >= domlen) {
! 	  if (stricmp(&hostname[hostlen - domlen], hostdomain) == 0)
  	    strcpy(hostfullname, hostname);
  	  else {
  	    strcpy(hostfullname, hostname);
***************
*** 270,276 ****
  	    strcat(hostfullname, hostdomain);
  	  }
  	} else {
! 	  if (strcmp(hostname, hostdomain + 1) == 0)
  	    strcpy(hostfullname, hostname);
  	  else {
  	    strcpy(hostfullname, hostname);
--- 274,280 ----
  	    strcat(hostfullname, hostdomain);
  	  }
  	} else {
! 	  if (stricmp(hostname, hostdomain + 1) == 0)
  	    strcpy(hostfullname, hostname);
  	  else {
  	    strcpy(hostfullname, hostname);

Index: src/mailmsg2.c
Prereq: 4.1.1.4
*** ../elm2.3/src/mailmsg2.c	Tue Jun 26 21:09:09 1990
--- src/mailmsg2.c	Thu Jul 12 23:19:26 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: mailmsg2.c,v 4.1.1.4 90/06/26 16:18:24 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.4 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: mailmsg2.c,v 4.1.1.6 90/07/12 23:19:20 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.6 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,28 ----
   *
   *******************************************************************************
   * $Log:	mailmsg2.c,v $
+  * Revision 4.1.1.6  90/07/12  23:19:20  syd
+  * Make domain name checking case independent
+  * From: Syd, reported by Steven Baur
+  * 
+  * Revision 4.1.1.5  90/07/12  22:52:42  syd
+  * When Elm is compiled with the NO_XHEADER symbol defined, it failed
+  * to put a blank line between the message header and message body.
+  * From: mca@medicus.medicus.com (Mark Adams)
+  * 
   * Revision 4.1.1.4  90/06/26  16:18:24  syd
   * Make it encode lines that are [...] if not one of the reserved lines.
   * It was messing up decoding
***************
*** 780,788 ****
  	  fprintf(filedesc, "Content-Type: mailform\n");
  
  #ifndef NO_XHEADER
! 	fprintf(filedesc, "X-Mailer: ELM [version %s]\n\n", version_buff);
  #endif /* !NO_XHEADER */
  
  	return((FILE *) filedesc);
  }
  
--- 789,799 ----
  	  fprintf(filedesc, "Content-Type: mailform\n");
  
  #ifndef NO_XHEADER
! 	fprintf(filedesc, "X-Mailer: ELM [version %s]\n", version_buff);
  #endif /* !NO_XHEADER */
  
+ 	putc('\n', filedesc);
+ 
  	return((FILE *) filedesc);
  }
  
***************
*** 920,926 ****
                sig = local_signature;
                for (ptr = index(expanded_to,'@'); ptr;  /* check To: list */
  	          ptr = index(ptr+1,'@')) {
! 		if (strncmp(ptr,sitename,len) != 0
  		    || (*(ptr+len) != ',' && *(ptr+len) != 0
  		    && *(ptr+len) != ' ')) {
  	          sig = remote_signature;
--- 931,937 ----
                sig = local_signature;
                for (ptr = index(expanded_to,'@'); ptr;  /* check To: list */
  	          ptr = index(ptr+1,'@')) {
! 		if (strincmp(ptr,sitename,len) != 0
  		    || (*(ptr+len) != ',' && *(ptr+len) != 0
  		    && *(ptr+len) != ' ')) {
  	          sig = remote_signature;
***************
*** 930,936 ****
                if (sig == local_signature)		   /* still local? */ 
                  for (ptr = index(expanded_cc,'@'); ptr;   /* check Cc: */
  		    ptr = index(ptr+1,'@')) {
! 		  if (strncmp(ptr,sitename,len) != 0
  		      || (*(ptr+len) != ',' && *(ptr+len) != 0 
  		      && *(ptr+len) != ' ')) {
  	            sig = remote_signature;
--- 941,947 ----
                if (sig == local_signature)		   /* still local? */ 
                  for (ptr = index(expanded_cc,'@'); ptr;   /* check Cc: */
  		    ptr = index(ptr+1,'@')) {
! 		  if (strincmp(ptr,sitename,len) != 0
  		      || (*(ptr+len) != ',' && *(ptr+len) != 0 
  		      && *(ptr+len) != ' ')) {
  	            sig = remote_signature;

Index: src/showmsg.c
Prereq: 4.1
*** ../elm2.3/src/showmsg.c	Sat Apr 28 22:44:07 1990
--- src/showmsg.c	Thu Jul 12 23:04:27 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: showmsg.c,v 4.1 90/04/28 22:44:06 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: showmsg.c,v 4.1.1.1 90/07/12 23:04:26 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,24 ----
   *
   *******************************************************************************
   * $Log:	showmsg.c,v $
+  * Revision 4.1.1.1  90/07/12  23:04:26  syd
+  * Fix MMDF case, where MSG_SEPERATOR has newline, buffer check
+  * didnt, thus it didnt detect the MSG_SEPERATOR.
+  * From: jbwaters@bsu-cs.bsu.edu (J. Brian Waters)
+  * 
   * Revision 4.1  90/04/28  22:44:06  syd
   * checkin of Elm 2.3 as of Release PL0
   * 
***************
*** 458,473 ****
  	    a command other than continuing with the display (only possible
  	    with the builtin pager), otherwise 0. **/
  
  #ifdef MMDF
  	if (strcmp(buffer, MSG_SEPERATOR) == 0)
! 	  strcpy(buffer," ");
  #endif /* MMDF */
  	if (builtin) {
- 	  strcat(buffer, "\n");
  	  return(display_line(buffer));
  	}
  	errno = 0;
! 	fprintf(pipe_wr_fp, "%s\n", buffer);
  	if (errno != 0)
  	  dprint(1, (debugfile, "\terror %s hit!\n", error_name(errno)));
  	return(0);
--- 463,478 ----
  	    a command other than continuing with the display (only possible
  	    with the builtin pager), otherwise 0. **/
  
+ 	strcat(buffer, "\n");
  #ifdef MMDF
  	if (strcmp(buffer, MSG_SEPERATOR) == 0)
! 	  return(0);	/* no reason to show the ending terminator */
  #endif /* MMDF */
  	if (builtin) {
  	  return(display_line(buffer));
  	}
  	errno = 0;
! 	fprintf(pipe_wr_fp, "%s", buffer);
  	if (errno != 0)
  	  dprint(1, (debugfile, "\terror %s hit!\n", error_name(errno)));
  	return(0);

Index: src/syscall.c
Prereq: 4.1.1.3
*** ../elm2.3/src/syscall.c	Fri Jun 22 00:00:05 1990
--- src/syscall.c	Thu Jul 12 22:43:05 1990
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: syscall.c,v 4.1.1.3 90/06/21 22:48:17 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.3 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: syscall.c,v 4.1.1.4 90/07/12 22:41:55 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 4.1.1.4 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989, 1990 USENET Community Trust
***************
*** 14,19 ****
--- 14,25 ----
   *
   *******************************************************************************
   * $Log:	syscall.c,v $
+  * Revision 4.1.1.4  90/07/12  22:41:55  syd
+  * Make it aware of the fact that we loose the cursor position on
+  * some system calls, so set it far enough off an absolute move will
+  * be done on the next cursor address, and then place it where we want it.
+  * From: Syd, reported by Douglas Lamb
+  * 
   * Revision 4.1.1.3  90/06/21  22:48:17  syd
   * patch to fix up the Log headers.
   * From: pdc%lunch.wpd@sgi.com (Paul Close)
***************
*** 93,98 ****
--- 99,105 ----
  	ret = system_call(command, USER_SHELL, TRUE, TRUE);
  	umask(077);		/* now put it back to private for mail files */
  
+ 	SetXYLocation(0, 40);	/* a location not near the next request, so an absolute is used */
  	PutLine0(LINES, 0, "\n\nPress any key to return to ELM: ");
  	Raw(ON);
  	(void) getchar();
***************
*** 293,298 ****
--- 300,306 ----
  	
  	ret = system_call(buffer, USER_SHELL, TRUE, TRUE);
  
+ 	SetXYLocation(0, 40);	/* a location not near the next request, so an absolute is used */
  	PutLine0(LINES, 0, "\n\nPress any key to return to ELM.");
  	if (old_raw == ON)
  	   Raw(ON);

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