[comp.sources.bugs] elm 2.2 Patch #2, Repost

syd@dsinc.DSI.COM (Syd Weinstein) (04/28/89)

Summary: This is an official patch for elm 2.2 system.  Please apply it.
Priority: MEDIUM
This is a repost of patch 2,  apparently it did not make it far off site.
Sorry for the repeat for those of you that already got it.

Added missing _utils dependency.

When you repeatedly 'c'hange folders and use '?' to display a list of
folder names, the list is preceded by a little help message.  The first
time this occurs, everything is OK but subsequent uses of '?' cause (all
but the first line of) the message body to be repeated.  The help
message grows and grows the more you use this feature.

This fixes a wrongly named variable (caused by copying a function and
not completing tailoring it to its new role).  Found by Rob Healey.
From: Rob Bernardo <clib!rob>

This fixes a compiler warning "statement not reached".  Found by Steve
Simmons.  From: Rob Bernardo <clib!rob>

When checking to see if an address is in a list of addresses: (1) ignore
case, and (2) make sure the comparison is not just a random inclusion of
the address in an item of the list - it must match a whole number of
"atoms" at the right end of the item in the list.  From: Rob Bernardo
<clib!rob>

Fix typo in newmail.1

Fix bug in resyncing and limit, we loose the Visible attribute, so
cancel the limit.

ELM did not reset its internal column counter at the ends of lines when
the user is composing a mail message with editor = "none".  As a result,
elm echos a \r\n every 80th character the user types.  Called NewLine so
the curses module will know to reset the column number.

Add some defines for Goulds and SV_INTERRUPT from Andy Linton at Newcastle.

On 4.3 BSD machines (this includes > Ultrix 2.0 and GOULD NP1) the
refreshing of the index etc.  on receipt of new mail does not work on
the timeout.  Essentially although the read in ReadCh is interrupted by
the alarm firing after the timeout the read continues and so the errno
is not set to EINTR. 

Add BSD style USER to LOGNAME for folder lookup in readmsg

Enclosed are patches to ELM2.2 to make it usable for sites that
use 8-bit character sets like ISO8859. The support for character
classification at these sites is usually done by replacing the
ctype macros. These changes should be invisible to those using 
ascii and result in better code (i.e. if(!isprint(c)) ... is better
than if ( (c < ' ') || (c > '~')) ... )
From: Marius Olafsson 		Internet: marius@rhi.hi.is
University of Iceland		Non-MX:   marius%rhi.hi.is@uunet.uu.net
				UUCP:     {mcvax,enea,uunet}!hafro!rhi!marius

Add secondary check for BSD sites on including utsname in gethostname when
host name is compiled in.

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 me:

	Syd Weinstein
	syd@dsinc.UUCP

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

	Subject: patch list
	send index elm

Index: hdrs/patchlevel.h
Prereq: 1
*** ../elm2.2/hdrs/patchlevel.h	Wed Apr 19 11:55:38 1989
--- hdrs/patchlevel.h	Wed Apr 19 13:13:12 1989
***************
*** 1 ****
! #define PATCHLEVEL 1
--- 1 ----
! #define PATCHLEVEL 2

Index: README
*** ../elm2.2/README	Wed Apr  5 16:14:01 1989
--- README	Mon Apr 24 18:51:55 1989
***************
*** 73,78 ****
--- 73,93 ----
  violations.  If this happens, recompile the code without the -O flag.
  This has been seen with Microport SysV/AT type systems.
  
+ GNUmake is slightly incompatible with standard make. If you plan on using
+ GNUmake instead of standard make, you will need to change instances of:
+ 	-$(MAKEFLAGS)
+ to:
+ 	$(MAKEFLAGS)
+ in all Makefiles that contain that construct.
+ 
+ >From: sun!mcnc.org!katylied.uucp!kdb (Kevin D. Bond)
+ There is a problem with Ultrix 2.2 in that it has both sgtty and termio, so
+ ELM uses termio, but the termio code and ELM don't get along.  The easiest
+ fix is to edit config.sh as a shell escape from Configure and change
+ 	d_termio='define'
+ to:
+ 	d_termio='undef'
+ 
  					Syd Weinstein
  					Elm Coordinator
  					elm@dsinc.UUCP

Index: Makefile.SH
Prereq: 2.22
*** ../elm2.2/Makefile.SH	Sat Mar 25 21:44:46 1989
--- Makefile.SH	Wed Apr 19 13:10:46 1989
***************
*** 21,27 ****
  echo "Extracting Makefile (with variable substitutions)"
  cat >Makefile <<!GROK!THIS!
  #
! # $Id: Makefile.SH,v 2.22 89/03/25 21:44:45 syd Exp $
  #
  #  Makefile for the entire ELM mail system
  #
--- 21,27 ----
  echo "Extracting Makefile (with variable substitutions)"
  cat >Makefile <<!GROK!THIS!
  #
! # $Id: Makefile.SH,v 2.23 89/04/19 13:10:39 syd Exp $
  #
  #  Makefile for the entire ELM mail system
  #
***************
*** 29,34 ****
--- 29,37 ----
  #         (C) Copyright 1988, 1989, USENET Community Trust
  #
  #  $Log:	Makefile.SH,v $
+ # Revision 2.23  89/04/19  13:10:39  syd
+ # added missing dependency
+ # 
  # Revision 2.22  89/03/25  21:44:45  syd
  # Initial 2.2 Release checkin
  # 
***************
*** 112,118 ****
  _filter:
  	cd filter; $(MAKE) -$(MAKEFLAGS) all
  
! utils:
  	cd utils; $(MAKE) -$(MAKEFLAGS) all
  
  !NO!SUBS!
--- 115,126 ----
  _filter:
  	cd filter; $(MAKE) -$(MAKEFLAGS) all
  
! #	The dummy dependency here prevents make from thinking the target is the
! #	utils directory that sits in the current directory, rather than
! #	an abstract target.
! utils: _utils
! 
! _utils:
  	cd utils; $(MAKE) -$(MAKEFLAGS) all
  
  !NO!SUBS!

Index: doc/newmail.1
*** ../elm2.2/doc/newmail.1	Sun Feb 26 16:38:15 1989
--- doc/newmail.1	Mon Apr 24 18:47:22 1989
***************
*** 118,124 ****
  
  .fi
  will monitor the incoming mailboxes for ``joe'' and ``root'',
! checking eery 15 seconds for new mail.
  .nf
  
  	$ \fBnewmail  "mary=Mary"  +postmaster=POBOX\fR
--- 118,124 ----
  
  .fi
  will monitor the incoming mailboxes for ``joe'' and ``root'',
! checking every 15 seconds for new mail.
  .nf
  
  	$ \fBnewmail  "mary=Mary"  +postmaster=POBOX\fR

Index: src/Makefile.SH
Prereq: 2.15
*** ../elm2.2/src/Makefile.SH	Thu Mar 30 10:34:49 1989
--- src/Makefile.SH	Mon Apr 24 18:46:33 1989
***************
*** 15,21 ****
  
  echo "Extracting src/Makefile (with variable substitutions)"
  cat >Makefile <<!GROK!THIS!
! # $Id: Makefile.SH,v 2.15 89/03/25 21:45:38 syd Exp $
  #
  #  Makefile for the ELM mail program.
  #
--- 15,21 ----
  
  echo "Extracting src/Makefile (with variable substitutions)"
  cat >Makefile <<!GROK!THIS!
! # $Id: Makefile.SH,v 2.16 89/04/24 18:46:32 syd Exp $
  #
  #  Makefile for the ELM mail program.
  #
***************
*** 28,33 ****
--- 28,40 ----
  #			dsinc!elm
  #
  # $Log:	Makefile.SH,v $
+ # Revision 2.16  89/04/24  18:46:32  syd
+ # When checking to see if an address is in a list of addresses: (1) ignore
+ # case, and (2) make sure the comparison is not just a random inclusion
+ # of the address in an item of the list - it must match a whole number
+ # of "atoms" at the right end of the item in the list.
+ # From: Rob Bernardo <clib!rob>
+ # 
  # Revision 2.15  89/03/25  21:45:38  syd
  # Initial 2.2 Release checkin
  # 
***************
*** 290,295 ****
--- 297,303 ----
  signals.o:	$(INCLDIR)/headers.h
  softkeys.o:	$(INCLDIR)/headers.h
  sort.o:		$(INCLDIR)/headers.h
+ string2.o:	$(INCLDIR)/headers.h
  strings.o:	$(INCLDIR)/headers.h
  syscall.o:	$(INCLDIR)/headers.h
  utils.o:	$(INCLDIR)/headers.h

Index: src/addr_util.c
Prereq: 2.15
*** ../elm2.2/src/addr_util.c	Thu Mar 30 10:34:52 1989
--- src/addr_util.c	Mon Apr 24 20:34:51 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: addr_util.c,v 2.15 89/03/25 21:45:40 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.15 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: addr_util.c,v 2.16 89/04/24 20:34:42 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.16 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,22 ----
   *
   *******************************************************************************
   * $Log:	addr_util.c,v $
+  * Revision 2.16  89/04/24  20:34:42  syd
+  * Fix month lower case
+  * 
   * Revision 2.15  89/03/25  21:45:40  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 728,734 ****
  	    letter abbreviation, with the first capitalized and the
  	    second and third in lowercase... **/
  
! 	shift_lower(entry->month);
  	entry->month[0] = toupper(entry->month[0]);
  }
  
--- 731,737 ----
  	    letter abbreviation, with the first capitalized and the
  	    second and third in lowercase... **/
  
! 	strcpy(entry->month, shift_lower(entry->month));
  	entry->month[0] = toupper(entry->month[0]);
  }
  

Index: src/aliasdb.c
Prereq: 2.8
*** ../elm2.2/src/aliasdb.c	Thu Mar 30 10:34:59 1989
--- src/aliasdb.c	Mon Apr 24 18:45:29 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: aliasdb.c,v 2.8 89/03/25 21:45:45 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: aliasdb.c,v 2.9 89/04/24 18:45:27 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.9 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	aliasdb.c,v $
+  * Revision 2.9  89/04/24  18:45:27  syd
+  * This fixes a compiler warning "statement not reached". Found by Steve Simmons.
+  * From: Rob Bernardo <clib!rob>
+  * 
   * Revision 2.8  89/03/25  21:45:45  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 200,206 ****
  	strcat(expanded, " ");			/* add a single space... */
  	strcat(expanded, comment);		/*    ...and add comment */
  	return(0);
! #endif
  
  #ifndef LOOK_CLOSE_AFTER_SEARCH
  
--- 204,210 ----
  	strcat(expanded, " ");			/* add a single space... */
  	strcat(expanded, comment);		/*    ...and add comment */
  	return(0);
! #else
  
  #ifndef LOOK_CLOSE_AFTER_SEARCH
  
***************
*** 239,244 ****
--- 243,249 ----
  	   strcat(expanded, comment);		/* add comment */
  	   return(0);
  	}
+ #endif
  #endif
  }
  

Index: src/builtin.c
Prereq: 2.23
*** ../elm2.2/src/builtin.c	Thu Mar 30 10:35:11 1989
--- src/builtin.c	Mon Apr 24 19:48:39 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: builtin.c,v 2.23 89/03/25 21:45:51 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.23 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: builtin.c,v 2.24 89/04/24 19:48:20 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.24 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	builtin.c,v $
+  * Revision 2.24  89/04/24  19:48:20  syd
+  * put back in some 8bit support
+  * From: Marius Olafsson, University of Iceland
+  * 
   * Revision 2.23  89/03/25  21:45:51  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 111,120 ****
  	    break;			/* leave rest of screen clear */
  	  } else if(*iptr == '\0') {		/* none left in input string */
  	    break;
- 	  } else if(!isascii(*iptr)) {
- 	    *optr++ = '?';			/* non ascii */
- 	    *iptr++;
- 	    chars_output++;
  	  } else if(*iptr == '\t') {		/* tab stop */
  	    if((nt=next_tab(chars_output+1)) > width) {
  	      *optr++ = '\n';		/* won't fit on this line - autowrap */
--- 115,120 ----
***************
*** 134,140 ****
  	  } else {			/* non-white space control character */
  	    if(chars_output + 2 <= width) {
  	      *optr++ = '^';	
! 	      *optr++ = (*iptr == '\177' ? '?' : *iptr + 'A' - 1);
  	      iptr++;
  	      chars_output += 2;
  	    } else {			/* no space on line for both chars */
--- 134,140 ----
  	  } else {			/* non-white space control character */
  	    if(chars_output + 2 <= width) {
  	      *optr++ = '^';	
! 	      *optr++ = (*iptr == '\177' ? '?' : (*iptr&0177) + 'A' - 1);
  	      iptr++;
  	      chars_output += 2;
  	    } else {			/* no space on line for both chars */


Index: src/curses.c
Prereq: 2.15
*** ../elm2.2/src/curses.c	Thu Mar 30 10:35:19 1989
--- src/curses.c	Mon Apr 24 20:01:04 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: curses.c,v 2.15 89/03/25 21:45:56 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.15 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: curses.c,v 2.16 89/04/24 20:00:58 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.16 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,22 ----
   *
   *******************************************************************************
   * $Log:	curses.c,v $
+  * Revision 2.16  89/04/24  20:00:58  syd
+  * add back some 8bit functions
+  * 
   * Revision 2.15  89/03/25  21:45:56  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 644,651 ****
  
  	} else {
  
! 	  /* if some kind of control or  non ascii character change to a '?' */
! 	  if(iscntrl(ch) || !isascii(ch))
  	    ch = '?';
  
  	  /* if we have no columns left and this terminal doesn't do
--- 647,654 ----
  
  	} else {
  
! 	  /* if some kind of non-printable character change to a '?' */
! 	  if(!isprint(ch))
  	    ch = '?';
  
  	  /* if we have no columns left and this terminal doesn't do

Index: src/date.c
Prereq: 2.6
*** ../elm2.2/src/date.c	Thu Mar 30 10:35:22 1989
--- src/date.c	Mon Apr 24 19:14:53 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: date.c,v 2.6 89/03/25 21:45:58 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.6 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: date.c,v 2.7 89/04/24 19:14:34 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.7 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,22 ----
   *
   *******************************************************************************
   * $Log:	date.c,v $
+  * Revision 2.7  89/04/24  19:14:34  syd
+  * Add gould timezone patches From Andy Linton @ newcastle
+  * 
   * Revision 2.6  89/03/25  21:45:58  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 113,119 ****
--- 116,126 ----
  	  the_time->tm_sec  % 61,
  #ifdef BSD
  #ifdef TZ_MINUTESWEST
+ # ifdef GOULD_NP1
+ 	  the_time->tm_zone);
+ # else
  	  timezone(time_zone.tz_minuteswest, time_zone.tz_dsttime));
+ # endif
  #else
  	  timezone(loc_time.timezone, the_time->tm_isdst));
  #endif

Index: src/editmsg.c
Prereq: 2.12
*** ../elm2.2/src/editmsg.c	Thu Mar 30 10:35:33 1989
--- src/editmsg.c	Mon Apr 24 19:09:13 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: editmsg.c,v 2.12 89/03/25 21:46:04 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.12 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: editmsg.c,v 2.13 89/04/24 19:08:50 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.13 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	editmsg.c,v $
+  * Revision 2.13  89/04/24  19:08:50  syd
+  * Change direct output of newline to curses call to allow curses to know
+  * buffer has been reset
+  * 
   * Revision 2.12  89/03/25  21:46:04  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 294,300 ****
  	     else {
  tilde_input:
  	       fprintf(edit_fd, "%s\n", buffer);
! 	       printf("\r\n");
  	     }
  	  buffer[0] = '\0';
  	}
--- 298,304 ----
  	     else {
  tilde_input:
  	       fprintf(edit_fd, "%s\n", buffer);
! 	       NewLine();
  	     }
  	  buffer[0] = '\0';
  	}

Index: src/in_utils.c
Prereq: 2.13
*** ../elm2.2/src/in_utils.c	Thu Mar 30 10:36:10 1989
--- src/in_utils.c	Mon Apr 24 19:48:42 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: in_utils.c,v 2.13 89/03/25 21:46:28 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.13 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: in_utils.c,v 2.14 89/04/24 19:48:39 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.14 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	in_utils.c,v $
+  * Revision 2.14  89/04/24  19:48:39  syd
+  * put back in some 8bit support
+  * From: Marius Olafsson, University of Iceland
+  * 
   * Revision 2.13  89/03/25  21:46:28  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 180,186 ****
  	  */
  
  	  if (ch == backspace &&
! 	    (!escaped || (ch < ' ' || ch >  '~' && !passwd))) {
  	    /* This is tricky. Here we are dealing with all situations
  	     * under which a backspace (really whatever erase char is
  	     * set to, not necessarily \b) erases the previous character.
--- 184,190 ----
  	  */
  
  	  if (ch == backspace &&
! 	    (!escaped || (!isprint(ch) && !passwd))) {
  	    /* This is tricky. Here we are dealing with all situations
  	     * under which a backspace (really whatever erase char is
  	     * set to, not necessarily \b) erases the previous character.
***************
*** 261,267 ****
  	    string[0] = '\0'; /* clean up string, and... */
  	    return(-1);
  	  }
! 	  else if (!passwd && (ch < ' ' || ch > '~')) {
  	    /* non-printing character - warn with bell*/
  	    /* don't turn off escaping backslash since current character
  	     * doesn't "use it up".
--- 265,271 ----
  	    string[0] = '\0'; /* clean up string, and... */
  	    return(-1);
  	  }
! 	  else if (!passwd && !isprint(ch)) {
  	    /* non-printing character - warn with bell*/
  	    /* don't turn off escaping backslash since current character
  	     * doesn't "use it up".
***************
*** 371,377 ****
  	  */
  
  	    if (ch == backspace &&
! 	      (!escaped || (ch < ' ' || ch >  '~'))) {
  	      /* This is tricky. Here we are dealing with all situations
  	       * under which a backspace (really whatever erase char is
  	       * set to, not necessarily \b) erases the previous character.
--- 375,381 ----
  	  */
  
  	    if (ch == backspace &&
! 	      (!escaped || !isprint(ch)) ) {
  	      /* This is tricky. Here we are dealing with all situations
  	       * under which a backspace (really whatever erase char is
  	       * set to, not necessarily \b) erases the previous character.
***************
*** 441,447 ****
  	      string[0] = '\0'; /* clean up string, and... */
  	      return(-1);
  	    }
! 	    else if (ch < ' ' || ch > '~') {
  	      /* non-printing character - warn with bell*/
  	      /* don't turn off escaping backslash since current character
  	       * doesn't "use it up".
--- 445,451 ----
  	      string[0] = '\0'; /* clean up string, and... */
  	      return(-1);
  	    }
! 	    else if (!isprint(ch)) {
  	      /* non-printing character - warn with bell*/
  	      /* don't turn off escaping backslash since current character
  	       * doesn't "use it up".

Index: src/init.c
Prereq: 2.24
*** ../elm2.2/src/init.c	Thu Mar 30 10:36:14 1989
--- src/init.c	Mon Apr 24 20:47:06 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: init.c,v 2.24 89/03/25 21:46:31 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.24 $   $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.26 89/04/24 20:47:04 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.26 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,28 ----
   *
   *******************************************************************************
   * $Log:	init.c,v $
+  * Revision 2.26  89/04/24  20:47:04  syd
+  * Change includes for consistency
+  * From: Jim Brown <jim@umigw.miami.edu>
+  * 
+  * Revision 2.25  89/04/24  19:16:52  syd
+  * Allow BSD machines to time out the read via signals and not
+  * restart them to allow for index refreshing.
+  * From Andy Linton @ newcastle
+  * 
   * Revision 2.24  89/03/25  21:46:31  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 26,41 ****
  #include "headers.h"
  #include "patchlevel.h"
  
! #ifdef BSD
  #  include <sgtty.h>
  #else
! #  include <termio.h>
  #endif
  
- #include <pwd.h>
- 
  #ifdef BSD
! #  include <sys/time.h>
  #else
  #  include <time.h>
  #endif
--- 35,58 ----
  #include "headers.h"
  #include "patchlevel.h"
  
! #ifdef TERMIO
! #  include <termio.h>
! #else
  #  include <sgtty.h>
+ #endif
+ 
+ #ifdef PWDINSYS
+ #  include <sys/pwd.h>
  #else
! #  include <pwd.h>
  #endif
  
  #ifdef BSD
! #  ifdef TMINSYS
! #    include <sys/time.h>
! #  else
! #    include <time.h>
! #  endif
  #else
  #  include <time.h>
  #endif
***************
*** 83,88 ****
--- 100,109 ----
  	int sig_user_stop(), sig_return_from_user_stop();
  #endif
  #endif
+ 
+ #ifdef SV_INTERRUPT
+ 	struct sigvec alarm_vec;
+ #endif
  	char     buffer[SLEN], *cp;
  
  	sprintf(version_buff, "%s PL%d", VERSION, PATCHLEVEL);
***************
*** 183,190 ****
    "\n*** Elm-Internal Signal Handlers Disabled due to debug level %d ***\n\n",
  		    debug));
  	}
! 	
! 	signal(SIGALRM, alarm_signal);		/* Process Timer Alarm	    */
  	signal(SIGPIPE, pipe_signal);		/* Illegal Pipe Operation   */
  #ifdef SIGTSTP
  	signal(SIGTSTP, sig_user_stop);		/* Suspend signal from tty  */
--- 204,216 ----
    "\n*** Elm-Internal Signal Handlers Disabled due to debug level %d ***\n\n",
  		    debug));
  	}
! #ifdef SV_INTERRUPT
! 	alarm_vec.sv_handler = alarm_signal;
! 	alarm_vec.sv_flags = SV_INTERRUPT;
! 	sigvec (SIGALRM, &alarm_vec, 0);	/* Process Timer Alarm	    */
! #else
! 	signal(SIGALRM, alarm_signal);		/* Process Timer Alarm      */
! #endif
  	signal(SIGPIPE, pipe_signal);		/* Illegal Pipe Operation   */
  #ifdef SIGTSTP
  	signal(SIGTSTP, sig_user_stop);		/* Suspend signal from tty  */
Index: src/newmbox.c
Prereq: 2.35
*** ../elm2.2/src/newmbox.c	Thu Mar 30 10:36:39 1989
--- src/newmbox.c	Mon Apr 24 19:06:16 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: newmbox.c,v 2.35 89/03/29 09:07:09 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.35 $   $State: Exp $
   *
   * 			Copyright (c) 1988, USENET Community Trust
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: newmbox.c,v 2.36 89/04/24 19:05:59 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.36 $   $State: Exp $
   *
   * 			Copyright (c) 1988, USENET Community Trust
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,22 ----
   *
   *******************************************************************************
   * $Log:	newmbox.c,v $
+  * Revision 2.36  89/04/24  19:05:59  syd
+  * Fix bug in limit mode when we really cannot keep limit over a resync
+  * 
   * Revision 2.35  89/03/29  09:07:09  syd
   * Fix problem with assuming headers start file
   * From: Rob
***************
*** 137,142 ****
--- 140,146 ----
  	if ((mailfile = fopen(cur_folder,"r")) == NULL)  {
  	  mailfile_size = 0;		/* must be empty folder */
  	  message_count = 0;
+ 	  selected = 0;
  	} else {
  	  read_headers(adds_only);
  	}
***************
*** 143,148 ****
--- 147,154 ----
  
  	if(!same_file)		/* limit mode off if this is a new file */
  	  selected = 0;
+ 	if (!adds_only)		/* limit mode off if recreating headers */
+ 	  selected = 0;		/* because we loose the 'Visible' flag */
  
  	dprint(1, (debugfile,
  	  "New folder %s type %s temp file %s (%s)\n", cur_folder, 

Index: src/opt_utils.c
Prereq: 2.17
*** ../elm2.2/src/opt_utils.c	Wed Apr 19 11:55:44 1989
--- src/opt_utils.c	Mon Apr 24 20:47:03 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: opt_utils.c,v 2.17 89/04/19 10:42:42 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.17 $   $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 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
***************
*** 14,19 ****
--- 14,26 ----
   *
   *******************************************************************************
   * $Log:	opt_utils.c,v $
+  * Revision 2.19  89/04/24  20:46:35  syd
+  * Change includes for consistency
+  * From: Jim Brown <jim@umigw.miami.edu>
+  * 
+  * Revision 2.18  89/04/24  19:53:35  syd
+  * Add secondary check on utsname include for BSD sites
+  * 
   * Revision 2.17  89/04/19  10:42:42  syd
   * Make code use proper defines for Xenix and Uname
   * 
***************
*** 32,46 ****
  #include "headers.h"
  #include <ctype.h>
  
  #ifdef BSD
- # include <pwd.h>
  #undef tolower
  #undef toupper
  #endif
  
  #ifndef GETHOSTNAME
  #  include <sys/types.h>
  #  include <sys/utsname.h>
  #endif
  
  #ifndef GETHOSTNAME
--- 39,60 ----
  #include "headers.h"
  #include <ctype.h>
  
+ #ifdef PWDINSYS
+ #  include <sys/pwd.h>
+ #else
+ #  include <pwd.h>
+ #endif
+ 
  #ifdef BSD
  #undef tolower
  #undef toupper
  #endif
  
  #ifndef GETHOSTNAME
+ # ifdef DOUNAME
  #  include <sys/types.h>
  #  include <sys/utsname.h>
+ # endif
  #endif
  
  #ifndef GETHOSTNAME
Index: src/quit.c
Prereq: 2.15
*** ../elm2.2/src/quit.c	Thu Mar 30 10:36:56 1989
--- src/quit.c	Wed Apr 19 13:11:48 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: quit.c,v 2.15 89/03/25 21:47:00 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.15 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: quit.c,v 2.16 89/04/19 13:11:41 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.16 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	quit.c,v $
+  * Revision 2.16  89/04/19  13:11:41  syd
+  * Fix help message range
+  * 
+  * 
   * Revision 2.15  89/03/25  21:47:00  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 99,105 ****
  	    } else if (strcmp(newfile, "?") == 0) {
  
  	      /* user wants to list folders */
! 	      if(!*helpmsg)	/* format helpmsg if not yet done */
  
  		strcpy(helpmsg,
  		  "\n\r\n\rEnter: <nothing> to not change to a new folder,");
--- 103,109 ----
  	    } else if (strcmp(newfile, "?") == 0) {
  
  	      /* user wants to list folders */
! 	      if(!*helpmsg) {	/* format helpmsg if not yet done */
  
  		strcpy(helpmsg,
  		  "\n\r\n\rEnter: <nothing> to not change to a new folder,");
***************
*** 117,123 ****
  		  " (leading '=' denotes your folder directory ");
  		strcat(helpmsg, folders);
  		strcat(helpmsg, ").\n\r");
! 
  	      list_folders(4, helpmsg);
  	      PutLine0(LINES-2,0,"Name of new folder: ");	/* reprompt */
  	      redraw = TRUE;		/* we'll need to clean the screen */
--- 121,127 ----
  		  " (leading '=' denotes your folder directory ");
  		strcat(helpmsg, folders);
  		strcat(helpmsg, ").\n\r");
! 	      }
  	      list_folders(4, helpmsg);
  	      PutLine0(LINES-2,0,"Name of new folder: ");	/* reprompt */
  	      redraw = TRUE;		/* we'll need to clean the screen */

Index: src/reply.c
Prereq: 2.9
*** ../elm2.2/src/reply.c	Thu Mar 30 10:37:08 1989
--- src/reply.c	Mon Apr 24 20:47:08 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: reply.c,v 2.9 89/03/25 21:47:06 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.9 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: reply.c,v 2.11 89/04/24 20:47:06 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.11 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,30 ----
   *
   *******************************************************************************
   * $Log:	reply.c,v $
+  * Revision 2.11  89/04/24  20:47:06  syd
+  * Change includes for consistency
+  * From: Jim Brown <jim@umigw.miami.edu>
+  * 
+  * Revision 2.10  89/04/24  18:46:34  syd
+  * When checking to see if an address is in a list of addresses: (1) ignore
+  * case, and (2) make sure the comparison is not just a random inclusion
+  * of the address in an item of the list - it must match a whole number
+  * of "atoms" at the right end of the item in the list.
+  * From: Rob Bernardo <clib!rob>
+  * 
   * Revision 2.9  89/03/25  21:47:06  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 29,35 ****
--- 40,48 ----
  
  #ifndef BSD
  #  include <sys/types.h>
+ # ifndef VMS
  #  include <sys/utsname.h>
+ # endif
  #endif
  
  /** Note that this routine generates automatic header information
***************
*** 261,283 ****
  	char our_address[SLEN];
  	struct addr_rec  *alternatives;
  
! 	if (in_string(address, return_address))
  	  return(FALSE);
  
  	sprintf(our_address, "%s!%s", hostname, username);
  
! 	if (in_string(address, our_address))
  	  return(FALSE);
  
  	sprintf(our_address, "%s@%s", username, hostname);
! 	  
! 	if (in_string(address, our_address))
  	  return(FALSE);
  
  	alternatives = alternative_addresses;
  
  	while (alternatives != NULL) {
! 	  if (in_string(address, alternatives->address))
  	    return(FALSE);
  	  alternatives = alternatives->next;
  	}
--- 274,305 ----
  	char our_address[SLEN];
  	struct addr_rec  *alternatives;
  
! 	if (in_list(address, return_address))
  	  return(FALSE);
  
+ 	if(in_list(address, username))
+ 	  return(FALSE);
+ 
  	sprintf(our_address, "%s!%s", hostname, username);
+ 	if (in_list(address, our_address))
+ 	  return(FALSE);
  
! 	sprintf(our_address, "%s%s!%s", hostname, hostdomain, username);
! 	if (in_list(address, our_address))
  	  return(FALSE);
  
  	sprintf(our_address, "%s@%s", username, hostname);
! 	if (in_list(address, our_address))
  	  return(FALSE);
  
+ 	sprintf(our_address, "%s@%s%s", username, hostname, hostdomain);
+ 	if (in_list(address, our_address))
+ 	  return(FALSE);
+ 
  	alternatives = alternative_addresses;
  
  	while (alternatives != NULL) {
! 	  if (in_list(address, alternatives->address))
  	    return(FALSE);
  	  alternatives = alternatives->next;
  	}
***************
*** 298,304 ****
  	char     hosts[MAX_HOPS][SLEN];	/* array of machine names */
  	char     *host, *addrptr;
  
! 	if (in_string(full_address, new_address))
  	  return(1);	/* duplicate address */
  
  	/** optimize **/
--- 320,326 ----
  	char     hosts[MAX_HOPS][SLEN];	/* array of machine names */
  	char     *host, *addrptr;
  
! 	if (in_list(full_address, new_address))
  	  return(1);	/* duplicate address */
  
  	/** optimize **/

Index: src/savecopy.c
Prereq:
*** ../elm2.2/src/savecopy.c	Thu Mar 30 10:37:19 1989
--- src/savecopy.c	Mon Apr 24 20:47:10 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: savecopy.c,v 2.16 89/03/25 21:47:11 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.16 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: savecopy.c,v 2.17 89/04/24 20:47:08 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.17 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	savecopy.c,v $
+  * Revision 2.17  89/04/24  20:47:08  syd
+  * Change includes for consistency
+  * From: Jim Brown <jim@umigw.miami.edu>
+  * 
   * Revision 2.16  89/03/25  21:47:11  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 25,34 ****
  **/
  
  #include "headers.h"
! #ifdef TMINSYS
! # include <sys/time.h>
  #else
! # include <time.h>
  #endif
  
  #include <errno.h>
--- 29,42 ----
  **/
  
  #include "headers.h"
! #ifdef BSD
! #  ifdef TMINSYS
! #    include <sys/time.h>
! #  else
! #    include <time.h>
! #  endif
  #else
! #  include <time.h>
  #endif
  
  #include <errno.h>

Index: src/string2.c
Prereq: 2.3
*** ../elm2.2/src/string2.c	Thu Mar 30 10:37:40 1989
--- src/string2.c	Mon Apr 24 20:25:34 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: string2.c,v 2.3 89/03/25 21:47:28 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: string2.c,v 2.5 89/04/24 20:25:30 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.5 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,29 ----
   *
   *******************************************************************************
   * $Log:	string2.c,v $
+  * Revision 2.5  89/04/24  20:25:30  syd
+  * Move shift_lower
+  * 
+  * Revision 2.4  89/04/24  18:46:37  syd
+  * When checking to see if an address is in a list of addresses: (1) ignore
+  * case, and (2) make sure the comparison is not just a random inclusion
+  * of the address in an item of the list - it must match a whole number
+  * of "atoms" at the right end of the item in the list.
+  * From: Rob Bernardo <clib!rob>
+  * 
   * Revision 2.3  89/03/25  21:47:28  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 25,36 ****
  
  **/
  
! #ifndef TRUE
! #define TRUE		1
! #define FALSE		0
  #endif
  
  #define whitespace(c)		(c == ' ' || c == '\t')
  
  int 
  in_string(buffer, pattern)
--- 35,133 ----
  
  **/
  
! #include "headers.h"
! #include <ctype.h>
! 
! #ifdef BSD
! #undef tolower
! #undef toupper
  #endif
  
+ 
  #define whitespace(c)		(c == ' ' || c == '\t')
+ 
+ char *shift_lower(string)
+ char *string;
+ {
+ 	/** return 'string' shifted to lower case.  Do NOT touch the
+ 	    actual string handed to us! **/
+ 
+ 	static char buffer[VERY_LONG_STRING];
+ 	register int i;
+ 
+ 	for (i=0; i < strlen(string); i++)
+ 	  if (isupper(string[i]))
+ 	    buffer[i] = tolower(string[i]);
+ 	  else
+ 	    buffer[i] = string[i];
+ 	
+ 	buffer[strlen(string)] = 0;
+ 	
+ 	return( (char *) buffer);
+ }
+ 
+ 
+ int
+ in_list(list, target)
+ char *list, *target;
+ 
+ {
+ 	/* Returns TRUE iff target is an item in the list - case ignored.
+ 	 * If target is simple (an atom of an address) match must be exact.
+ 	 * If target is complex (contains a special character that separates
+ 	 * address atoms), the target need only match a whole number of atoms
+ 	 * at the right end of an item in the list. E.g.
+ 	 * target:	item:			match:
+ 	 * joe		joe			yes
+ 	 * joe		jojoe			no (wrong logname)
+ 	 * joe		machine!joe		no (similar logname on a perhaps
+ 	 *					   different machine - to
+ 	 *					   test this sort of item the 
+ 	 *					   passed target must include
+ 	 *					   proper machine name, is
+ 	 *					   in next two examples)
+ 	 * machine!joe	diffmachine!joe		no  "
+ 	 * machine!joe	diffmachine!machine!joe	yes
+ 	 * joe@machine	jojoe@machine		no  (wrong logname)
+ 	 * joe@machine	diffmachine!joe@machine	yes
+ 	 */
+ 
+ 	register char	*rest_of_list,
+ 			*next_item,
+ 			ch;
+ 	int		offset;
+ 	char		*shift_lower(),
+ 				lower_list[VERY_LONG_STRING],
+ 				lower_target[SLEN];
+ 
+ 	rest_of_list = strcpy(lower_list, shift_lower(list));
+ 	strcpy(lower_target, shift_lower(target));
+ 	while((next_item = strtok(rest_of_list, ", \t\n")) != NULL) {
+ 	    /* see if target matches the whole item */
+ 	    if(strcmp(next_item, lower_target) == 0)
+ 		return(TRUE);
+ 
+ 	    if(strpbrk(lower_target,"!@%:") != NULL) {
+ 
+ 	      /* Target is complex */
+ 
+ 	      if((offset = strlen(next_item) - strlen(lower_target)) > 0) {
+ 
+ 		/* compare target against right end of next item */
+ 		if(strcmp(&next_item[offset], lower_target) == 0) {
+ 
+ 		  /* make sure we are comparing whole atoms */
+ 		  ch=next_item[offset-1];
+ 		  if(ch == '!' || ch == '@' || ch == '%' || ch == ':')
+ 		    return(TRUE);
+ 		}
+ 	      }
+ 	    }
+ 	    rest_of_list = NULL;
+ 	}
+ 	return(FALSE);
+ }
+ 	
  
  int 
  in_string(buffer, pattern)

Index: src/strings.c
Prereq: 2.10
*** ../elm2.2/src/strings.c	Thu Mar 30 10:37:43 1989
--- src/strings.c	Mon Apr 24 20:25:48 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: strings.c,v 2.10 89/03/25 21:47:29 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.10 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: strings.c,v 2.12 89/04/24 20:25:36 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.12 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,29 ----
   *
   *******************************************************************************
   * $Log:	strings.c,v $
+  * Revision 2.12  89/04/24  20:25:36  syd
+  * move shift_lower
+  * 
+  * Revision 2.11  89/04/24  18:46:38  syd
+  * When checking to see if an address is in a list of addresses: (1) ignore
+  * case, and (2) make sure the comparison is not just a random inclusion
+  * of the address in an item of the list - it must match a whole number
+  * of "atoms" at the right end of the item in the list.
+  * From: Rob Bernardo <clib!rob>
+  * 
   * Revision 2.10  89/03/25  21:47:29  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 38,44 ****
  
  /** forward declarations **/
  
! char *format_long(), *strip_commas(), *tail_of_string(), *shift_lower(),
       *get_token(), *strip_parens(), *argv_zero(), *strcpy(), *strncpy();
  
  
--- 48,54 ----
  
  /** forward declarations **/
  
! char *format_long(), *strip_commas(), *tail_of_string(),
       *get_token(), *strip_parens(), *argv_zero(), *strcpy(), *strncpy();
  
  
***************
*** 392,417 ****
  
  	word[loc] = '\0';
  	return(start);
- }
- 
- char *shift_lower(string)
- char *string;
- {
- 	/** return 'string' shifted to lower case.  Do NOT touch the
- 	    actual string handed to us! **/
- 
- 	static char buffer[SLEN];
- 	register int i;
- 
- 	for (i=0; i < strlen(string); i++)
- 	  if (isupper(string[i]))
- 	    buffer[i] = tolower(string[i]);
- 	  else
- 	    buffer[i] = string[i];
- 	
- 	buffer[strlen(string)] = 0;
- 	
- 	return( (char *) buffer);
  }
  
  Centerline(line, string)
--- 402,407 ----

Index: src/utils.c
Prereq: 2.22
*** ../elm2.2/src/utils.c	Thu Mar 30 10:37:50 1989
--- src/utils.c	Mon Apr 24 18:43:23 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: utils.c,v 2.22 89/03/25 21:47:33 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.22 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
--- 1,8 ----
  
! static char rcsid[] = "@(#)$Id: utils.c,v 2.23 89/04/24 18:43:21 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.23 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,24 ----
   *
   *******************************************************************************
   * $Log:	utils.c,v $
+  * Revision 2.23  89/04/24  18:43:21  syd
+  * This fixes a wrongly named variable (caused by copying a function and not
+  * completing tailoring it to its new role). Found by Rob Healey.
+  * From: Rob Bernardo <clib!rob>
+  * 
   * Revision 2.22  89/03/25  21:47:33  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 45,54 ****
  {
  	/* this creates a new folders directory */
  
- 	char source[SLEN];
  	char com[SLEN];
  
- 
  	/** Some systems don't have a mkdir call - how inconvienient! **/
  
  #ifdef MKDIR
--- 50,57 ----
***************
*** 60,66 ****
  	system_call(com, SH, FALSE);
  #endif /* MKDIR */
  
! 	chown( source, userid, groupid);
  }
  
  create_new_elmdir()
--- 63,69 ----
  	system_call(com, SH, FALSE);
  #endif /* MKDIR */
  
! 	chown(folders, userid, groupid);
  }
  
  create_new_elmdir()

Index: src/validname.c
Prereq:
*** ../elm2.2/src/validname.c	Thu Mar 30 10:37:53 1989
--- src/validname.c	Mon Apr 24 20:47:12 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: validname.c,v 2.8 89/03/25 21:47:34 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: validname.c,v 2.9 89/04/24 20:47:11 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.9 $   $State: Exp $
   *
   * 			Copyright (c) 1986, 1987 Dave Taylor
   * 			Copyright (c) 1988, 1989 USENET Community Trust
***************
*** 14,19 ****
--- 14,23 ----
   *
   *******************************************************************************
   * $Log:	validname.c,v $
+  * Revision 2.9  89/04/24  20:47:11  syd
+  * Change includes for consistency
+  * From: Jim Brown <jim@umigw.miami.edu>
+  * 
   * Revision 2.8  89/03/25  21:47:34  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 24,33 ****
  
  #include <stdio.h>
  
! #ifdef PWDINSYS
  #  include <sys/pwd.h>
! #else
  #  include <pwd.h>
  #endif
  
  int
--- 28,39 ----
  
  #include <stdio.h>
  
! #ifndef NOCHECK_VALIDNAME		 /* Force a return of valid */
! # ifdef PWDINSYS
  #  include <sys/pwd.h>
! # else
  #  include <pwd.h>
+ # endif
  #endif
  
  int

Index: utils/fastmail.c
Prereq: 2.6
*** ../elm2.2/utils/fastmail.c	Wed Apr 19 11:55:46 1989
--- utils/fastmail.c	Mon Apr 24 19:14:56 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: fastmail.c,v 2.6 89/04/19 10:38:11 syd Exp $";
  
  /*******************************************************************************
!  *  The Elm Mail System  -  $Revision: 2.6 $   $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 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
***************
*** 14,19 ****
--- 14,22 ----
   *
   *******************************************************************************
   * $Log:	fastmail.c,v $
+  * Revision 2.7  89/04/24  19:14:54  syd
+  * Add gould timezone patches From Andy Linton @ newcastle
+  * 
   * Revision 2.6  89/04/19  10:38:11  syd
   * Make fastmail silent unless debugging turned on
   * 
***************
*** 283,289 ****
--- 286,296 ----
  #  ifndef TMINSYS
  	  timezone(loc_time.time_zone, the_time->tz_isdst));
  #  else
+ #   ifdef GOULD_NP1
+ 	  the_time->tm_zone);
+ #   else
  	  timezone(time_zone.tz_minuteswest, time_zone.tz_dsttime));
+ #   endif
  #  endif
  #else
  	  tzname[the_time->tm_isdst]);

Index: utils/readmsg.c
Prereq: 2.7
*** ../elm2.2/utils/readmsg.c	Thu Mar 30 10:38:26 1989
--- utils/readmsg.c	Mon Apr 24 19:32:11 1989
***************
*** 1,8 ****
  
! static char rcsid[] = "@(#)$Id: readmsg.c,v 2.7 89/03/25 21:47:57 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: 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
***************
*** 14,19 ****
--- 14,22 ----
   *
   *******************************************************************************
   * $Log:	readmsg.c,v $
+  * Revision 2.8  89/04/24  19:31:54  syd
+  * Add BSD USER in addition to LOGNAME
+  * 
   * Revision 2.7  89/03/25  21:47:57  syd
   * Initial 2.2 Release checkin
   * 
***************
*** 180,187 ****
  	/** Now let's get to the mail file... **/
  
  	if (strlen(infile) == 0) {
! 	  if ((cp = getenv("MAIL")) == NULL)
! 	    sprintf(infile, "%s/%s", mailhome, getenv("LOGNAME"));
  	  else
  	    strcpy(infile, cp);
  	}
--- 183,194 ----
  	/** Now let's get to the mail file... **/
  
  	if (strlen(infile) == 0) {
! 	  if ((cp = getenv("MAIL")) == NULL) {
! 	    if ((cp = getenv("LOGNAME")) == NULL)
! 	      sprintf(infile, "%s/%s", mailhome, getenv("USER"));
! 	    else
! 	      sprintf(infile, "%s/%s", mailhome, cp);
! 	  }
  	  else
  	    strcpy(infile, cp);
  	}

Index: utils/Makefile.SH
Prereq:
*** ../elm2.2/utils/Makefile.SH	Thu Mar 30 10:37:56 1989
--- utils/Makefile.SH	Mon Apr 24 20:17:21 1989
***************
*** 16,22 ****
  echo "Extracting utils/Makefile (with variable substitutions)"
  cat >Makefile <<!GROK!THIS!
  
! # @(#)$Id: Makefile.SH,v 2.17 89/03/25 21:47:36 syd Exp $
  #
  #  Makefile for the Elm system utilities
  #
--- 16,22 ----
  echo "Extracting utils/Makefile (with variable substitutions)"
  cat >Makefile <<!GROK!THIS!
  
! # @(#)$Id: Makefile.SH,v 2.19 89/04/24 20:17:15 syd Exp $
  #
  #  Makefile for the Elm system utilities
  #
***************
*** 29,34 ****
--- 29,37 ----
  #			dsinc!elm
  #
  # $Log:	Makefile.SH,v $
+ # Revision 2.19  89/04/24  20:17:15  syd
+ # Remove bad include
+ # 
  # Revision 2.17  89/03/25  21:47:36  syd
  # Initial 2.2 Release checkin
  # 

-- 
=====================================================================
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