home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2749 < prev    next >
Internet Message Format  |  1991-02-12  |  30KB

  1. From: ggw%wolves@cs.duke.edu (Gregory G. Woodbury)
  2. Newsgroups: alt.sources,comp.mail.elm
  3. Subject: Elm 2.3 patches (1 of 11)
  4. Message-ID: <1991Feb13.022623.15122@wolves.uucp>
  5. Date: 13 Feb 91 02:26:23 GMT
  6. X-Checksum-Snefru: e67a4295 73f061f7 eaf3c32a b157949e
  7.  
  8. Here follows all the patches that I have for elm2.3 (11).
  9. They will be sent out in pairs until all are sent.
  10.  
  11. Archive-name: elm2.3/patch.01
  12.  
  13.  
  14. >From ...unix.cis.pitt.edu!dsinc!dsinc.DSI.COM!syd Fri Jun  8 21:08:01 EDT 1990
  15. >From: syd@dsinc.DSI.COM (Syd Weinstein)
  16. Message-ID: <1990Jun6.020853.19126@DSI.COM>
  17. Date: 6 Jun 90 02:08:53 GMT
  18. Sender: syd@DSI.COM (Syd Weinstein)
  19. Organization: Datacomp Systems, Inc., Huntingdon Valley, PA 19006
  20. Lines: 943
  21.  
  22.  
  23. Summary: This is an official patch for elm 2.3 system.  Please apply it.
  24. Priority: HIGH
  25.  
  26. Fix:    From rn, say "| patch -p -N -d DIR", where DIR is your elm source
  27.     directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".
  28.     If you don't have the patch program, apply the following by hand,
  29.     or get patch (version 2.0, latest patchlevel).
  30.  
  31.     After patching:
  32.         Configure -d    (only if you had htons or signal problems)
  33.         make
  34.         make install
  35.  
  36.     If patch indicates that patchlevel is the wrong version, you may need
  37.     to apply one or more previous patches, or the patch may already
  38.     have been applied.  See the patchlevel.h file to find out what has or
  39.     has not been applied.  In any event, don't continue with the patch.
  40.  
  41.     If you are missing previous patches they can be obtained from our:
  42.     archive server.
  43.  
  44.     Syd Weinstein
  45.     elm@DSI.COM
  46.  
  47.     The patches are available from the dsinc archive server
  48.     Send the following message to archive-server@DSI.COM for
  49.     a list of available patches:
  50.  
  51.     Subject: patch list
  52.     send index elm
  53.  
  54. Fixed Metaconfig prototype for voidsig, the test was backwards
  55. (had a -z where a -n should have been)
  56. >From: Syd
  57.  
  58. The open system call in actions.c for EMERGENCY_MAILBOX and EMER_MBOX
  59. were tested with the inequality >= 0 exactly backwards.
  60. If the user's system mail box (/usr/spool/mail/user_id) is
  61. removed the attempt of filter to flock it fails.  If it does not exist then
  62. it should create it and then lock it.
  63. >From: john@hopf.math.nwu.edu (John Franks)
  64.  
  65. Allow nesting on () in comment in address
  66. >From: Chip Rosenthal <chip@chinacat.Unicom.COM>
  67.  
  68. Fix boundary condition in add_name_to_list() where it fails to
  69. print error message.
  70. >From: Chip Rosenthal <chip@chinacat.Unicom.COM>
  71.  
  72. Fixes the 'g' Group Reply command to send to the cc list also.
  73. A bad variable name caused it to be ignored.
  74. >From: chip@chinacat.Unicom.COM (Chip Rosenthal)
  75.  
  76. Fixes when ALLOW_SUBSHELL #define'd and you are in the
  77. Message Header Edit Screen and the mail you just composed
  78. is not a reply THEN the subshell command is executed.
  79. >From: zvr@natasha.cs.wisc.EDU (Alexios Zavras)
  80.  
  81. Fixes where src/curses.c attempts to set the screen size via the ioctl
  82. TIOCGWINSIZ if it exsists. It should only use the row or col size as
  83. returned from the ioctl if they are not 0.
  84. >From: muller%sdcc10@ucsd.edu (Keith Muller)
  85.  
  86. alias command in ELM2.3 fails because of the wrong sized aliases.hash
  87. newalias did not truncate existing file (aliases.hash)
  88. >From: Toshinori Maeno <tmaeno@cc.titech.ac.jp>
  89.  
  90. Fix htonl() double define problems
  91. >From: Syd
  92.  
  93. Fix aliases.hash.tmp being over 14 chars and causing rename problems
  94. on a 14 character limit system.
  95. >From: Syd
  96.  
  97. Fix now spurious error message for alias recursive expansion
  98. when alias lookup is on a string over 20 chars long.  If that
  99. long, its just not an alias, so just return.
  100. >From: Syd
  101.  
  102. Index: hdrs/patchlevel.h
  103. Prereq: 0
  104. *** ../elm2.3/hdrs/patchlevel.h    Sat Apr 28 22:29:41 1990
  105. --- hdrs/patchlevel.h    Tue Jun  5 21:26:16 1990
  106. ***************
  107. *** 1 ****
  108. ! #define PATCHLEVEL 0
  109. --- 1 ----
  110. ! #define PATCHLEVEL 1
  111.  
  112. Index: Configure
  113. Prereq: 4.1
  114. *** ../elm2.3/Configure    Sat Apr 28 22:40:52 1990
  115. --- Configure    Thu May 31 20:47:07 1990
  116. ***************
  117. *** 8,14 ****
  118.   # and edit it to reflect your system.  Some packages may include samples
  119.   # of config.h for certain machines, so you might look for one of those.)
  120.   #
  121. ! # $Header: /files/home/users/syd/elm.dev/RCS/Configure,v 4.1 90/04/28 22:40:46 syd Exp $
  122.   #
  123.   # Yes, you may rip this off to use in other distribution packages.
  124.   # (Note: this Configure script was generated automatically.  Rather than
  125. --- 8,14 ----
  126.   # and edit it to reflect your system.  Some packages may include samples
  127.   # of config.h for certain machines, so you might look for one of those.)
  128.   #
  129. ! # $Header: /files/home/users/syd/elm.rel/RCS/Configure,v 4.1.1.1 90/05/31 20:46:41 syd Exp $
  130.   #
  131.   # Yes, you may rip this off to use in other distribution packages.
  132.   # (Note: this Configure script was generated automatically.  Rather than
  133. ***************
  134. *** 2701,2725 ****
  135.   set rename d_rename
  136.   eval $inlibc
  137.   
  138. - : ask about setgid running of Elm
  139. - case "$d_setgid" in
  140. - "$define")    dflt=y;;
  141. - "$undef")    dflt=n;;
  142. - *)        dflt=y;;
  143. - esac
  144. - echo " "
  145. - rp="Am I going to be running as a setgid program? [$dflt]"
  146. - $echo $n "$rp $c"
  147. - . myread
  148. - case "$ans" in
  149. - y*) d_setgid="$define";;
  150. - *)  d_setgid="$undef";;
  151. - esac
  152. - case "$d_setgid" in
  153. - "$define")    mailermode=2755;;
  154. - *)        mailermode=755;;
  155. - esac
  156.   : see if sigvector exists -- since sigvec will match the substring
  157.   echo " "
  158.   if $contains sigvector libc.list >/dev/null 2>&1; then
  159. --- 2701,2706 ----
  160. ***************
  161. *** 3163,3169 ****
  162.   elif $contains 'void.*signal' $$.tmp >/dev/null 2>&1 ; then
  163.       echo "You have void (*signal())() instead of int."
  164.       d_voidsig="$define"
  165. ! elif $test -z "$d_voidsig"; then
  166.       echo $n "As you already told me, signal handlers return "
  167.       if $test "$d_voidsig" = "$define"; then
  168.       echo void
  169. --- 3144,3150 ----
  170.   elif $contains 'void.*signal' $$.tmp >/dev/null 2>&1 ; then
  171.       echo "You have void (*signal())() instead of int."
  172.       d_voidsig="$define"
  173. ! elif $test -n "$d_voidsig"; then
  174.       echo $n "As you already told me, signal handlers return "
  175.       if $test "$d_voidsig" = "$define"; then
  176.       echo void
  177. ***************
  178. *** 3443,3448 ****
  179. --- 3424,3448 ----
  180.       esac
  181.       fi
  182.   done
  183. + : ask about setgid running of Elm
  184. + case "$d_setgid" in
  185. + "$define")    dflt=y;;
  186. + "$undef")    dflt=n;;
  187. + *)        dflt=y;;
  188. + esac
  189. + echo " "
  190. + rp="Am I going to be running as a setgid program? [$dflt]"
  191. + $echo $n "$rp $c"
  192. + . myread
  193. + case "$ans" in
  194. + y*) d_setgid="$define";;
  195. + *)  d_setgid="$undef";;
  196. + esac
  197. + case "$d_setgid" in
  198. + "$define")    mailermode=2755;;
  199. + *)        mailermode=755;;
  200. + esac
  201.   
  202.   : determine the group of the mail directory- what group elm should use
  203.   mailgrp=`$ls -lgd $maildir`
  204.  
  205. Index: filter/actions.c
  206. Prereq: 4.1
  207. *** ../elm2.3/filter/actions.c    Sat Apr 28 22:41:54 1990
  208. --- filter/actions.c    Tue Jun  5 20:28:52 1990
  209. ***************
  210. *** 1,8 ****
  211.   
  212. ! static char rcsid[] ="@(#)$Id: actions.c,v 4.1 90/04/28 22:41:53 syd Exp $";
  213.   
  214.   /*******************************************************************************
  215. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  216.    *
  217.    *             Copyright (c) 1986, 1987 Dave Taylor
  218.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  219. --- 1,8 ----
  220.   
  221. ! static char rcsid[] ="@(#)$Id: actions.c,v 4.1.1.1 90/06/05 20:28:51 syd Exp $";
  222.   
  223.   /*******************************************************************************
  224. !  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
  225.    *
  226.    *             Copyright (c) 1986, 1987 Dave Taylor
  227.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  228. ***************
  229. *** 14,19 ****
  230. --- 14,27 ----
  231.    *
  232.    *******************************************************************************
  233.    * $Log:    actions.c,v $
  234. +  * Revision 4.1.1.1  90/06/05  20:28:51  syd
  235. +  * The open system call in actions.c for EMERGENCY_MAILBOX and EMER_MBOX
  236. +  * were tested with the inequality >= 0 exactly backwards.
  237. +  * If the user's system mail box (/usr/spool/mail/user_id) is
  238. +  * removed the attempt of filter to flock it fails.  If it does not exist then
  239. +  * it should create it and then lock it.
  240. +  * From: john@hopf.math.nwu.edu (John Franks)
  241. +  * 
  242.    * Revision 4.1  90/04/28  22:41:53  syd
  243.    * checkin of Elm 2.3 as of Release PL0
  244.    * 
  245. ***************
  246. *** 225,231 ****
  247.   
  248.       sprintf(mailbox, "%s/%s", home, EMERGENCY_MAILBOX);
  249.   
  250. !     if ((mailunit = open(mailbox, O_APPEND | O_WRONLY | O_CREAT, 0600)) >= 0) {
  251.         if (outfd != NULL)
  252.           fprintf(outfd, "filter (%s): Can't open %s either!!\n",
  253.               username, mailbox);
  254. --- 233,239 ----
  255.   
  256.       sprintf(mailbox, "%s/%s", home, EMERGENCY_MAILBOX);
  257.   
  258. !     if ((mailunit = open(mailbox, O_APPEND | O_WRONLY | O_CREAT, 0600)) < 0) {
  259.         if (outfd != NULL)
  260.           fprintf(outfd, "filter (%s): Can't open %s either!!\n",
  261.               username, mailbox);
  262. ***************
  263. *** 232,238 ****
  264.   
  265.         sprintf(mailbox,"%s/%s", home, EMERG_MBOX); 
  266.   
  267. !       if ((mailunit = open(mailbox, O_APPEND | O_WRONLY | O_CREAT, 0600)) >= 0) {
  268.   
  269.           if (outfd != NULL) {
  270.             fprintf(outfd,"filter (%s): Can't open %s either!!!!\n",
  271. --- 240,246 ----
  272.   
  273.         sprintf(mailbox,"%s/%s", home, EMERG_MBOX); 
  274.   
  275. !       if ((mailunit = open(mailbox, O_APPEND | O_WRONLY | O_CREAT, 0600)) < 0) {
  276.   
  277.           if (outfd != NULL) {
  278.             fprintf(outfd,"filter (%s): Can't open %s either!!!!\n",
  279.  
  280. Index: filter/lock.c
  281. Prereq: 4.1
  282. *** ../elm2.3/filter/lock.c    Sat Apr 28 22:41:58 1990
  283. --- filter/lock.c    Tue Jun  5 20:28:54 1990
  284. ***************
  285. *** 1,8 ****
  286.   
  287. ! static char rcsid[] ="@(#)$Id: lock.c,v 4.1 90/04/28 22:41:57 syd Exp $";
  288.   
  289.   /*******************************************************************************
  290. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  291.    *
  292.    *             Copyright (c) 1986, 1987 Dave Taylor
  293.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  294. --- 1,8 ----
  295.   
  296. ! static char rcsid[] ="@(#)$Id: lock.c,v 4.1.1.1 90/06/05 20:28:53 syd Exp $";
  297.   
  298.   /*******************************************************************************
  299. !  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
  300.    *
  301.    *             Copyright (c) 1986, 1987 Dave Taylor
  302.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  303. ***************
  304. *** 14,19 ****
  305. --- 14,27 ----
  306.    *
  307.    *******************************************************************************
  308.    * $Log:    lock.c,v $
  309. +  * Revision 4.1.1.1  90/06/05  20:28:53  syd
  310. +  * The open system call in actions.c for EMERGENCY_MAILBOX and EMER_MBOX
  311. +  * were tested with the inequality >= 0 exactly backwards.
  312. +  * If the user's system mail box (/usr/spool/mail/user_id) is
  313. +  * removed the attempt of filter to flock it fails.  If it does not exist then
  314. +  * it should create it and then lock it.
  315. +  * From: john@hopf.math.nwu.edu (John Franks)
  316. +  * 
  317.    * Revision 4.1  90/04/28  22:41:57  syd
  318.    * checkin of Elm 2.3 as of Release PL0
  319.    * 
  320. ***************
  321. *** 94,100 ****
  322.   #endif                    /* } !LOCK_FLOCK_ONLY    */
  323.   #ifdef    LOCK_BY_FLOCK            /* { LOCK_BY_FLOCK    */
  324.       (void)sprintf(flock_name,"%s%s",mailhome,username);
  325. !     flock_fd = open(flock_name,O_RDONLY);
  326.       if ( flock_fd >= 0 )
  327.         for (attempts = 0; attempts < 10; attempts++) {
  328.           if ( (ret = flock(flock_fd,LOCK_NB|LOCK_EX)) != -1 )
  329. --- 102,108 ----
  330.   #endif                    /* } !LOCK_FLOCK_ONLY    */
  331.   #ifdef    LOCK_BY_FLOCK            /* { LOCK_BY_FLOCK    */
  332.       (void)sprintf(flock_name,"%s%s",mailhome,username);
  333. !     flock_fd = open(flock_name, O_RDONLY | O_CREAT, 0600);
  334.       if ( flock_fd >= 0 )
  335.         for (attempts = 0; attempts < 10; attempts++) {
  336.           if ( (ret = flock(flock_fd,LOCK_NB|LOCK_EX)) != -1 )
  337.  
  338. Index: hdrs/defs.h
  339. Prereq: 4.1
  340. *** ../elm2.3/hdrs/defs.h    Sat Apr 28 22:42:07 1990
  341. --- hdrs/defs.h    Tue Jun  5 21:23:28 1990
  342. ***************
  343. *** 1,8 ****
  344.   
  345. ! /* $Id: defs.h,v 4.1 90/04/28 22:42:06 syd Exp $ */
  346.   
  347.   /*******************************************************************************
  348. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  349.    *
  350.    *             Copyright (c) 1986, 1987 Dave Taylor
  351.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  352. --- 1,8 ----
  353.   
  354. ! /* $Id: defs.h,v 4.1.1.2 90/06/05 21:23:19 syd Exp $ */
  355.   
  356.   /*******************************************************************************
  357. !  *  The Elm Mail System  -  $Revision: 4.1.1.2 $   $State: Exp $
  358.    *
  359.    *             Copyright (c) 1986, 1987 Dave Taylor
  360.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  361. ***************
  362. *** 14,19 ****
  363. --- 14,29 ----
  364.    *
  365.    *******************************************************************************
  366.    * $Log:    defs.h,v $
  367. +  * Revision 4.1.1.2  90/06/05  21:23:19  syd
  368. +  * Fix other side of same problem
  369. +  * From: Syd
  370. +  * 
  371. +  * Revision 4.1.1.1  90/06/05  21:16:42  syd
  372. +  * Try and avoid double definitions for the null
  373. +  * macro for htonl when the system includes aready
  374. +  * have it
  375. +  * From: Syd
  376. +  * 
  377.    * Revision 4.1  90/04/28  22:42:06  syd
  378.    * checkin of Elm 2.3 as of Release PL0
  379.    * 
  380. ***************
  381. *** 327,341 ****
  382.   
  383.   /*
  384.    * Macros for network/external number representation conversion.
  385.    */
  386.   #ifdef NETWORK_ORDER
  387.   unsigned short    ntohs(), htons();
  388.   unsigned long    ntohl(), htonl();
  389.   #else
  390. ! #define    ntohl(x)    (x)
  391. ! #define    ntohs(x)    (x)
  392. ! #define    htonl(x)    (x)
  393. ! #define    htons(x)    (x)
  394.   #endif
  395.   
  396.   char *argv_zero();
  397. --- 337,357 ----
  398.   
  399.   /*
  400.    * Macros for network/external number representation conversion.
  401. +  *    Note, some system include files already have htonl defined
  402. +  *    as this same macro, the ifndef should prevent conflicts.
  403.    */
  404.   #ifdef NETWORK_ORDER
  405. + #  ifndef ntohl
  406.   unsigned short    ntohs(), htons();
  407.   unsigned long    ntohl(), htonl();
  408. + #  endif
  409.   #else
  410. ! #  ifndef ntohl
  411. ! #     define    ntohl(x)    (x)
  412. ! #     define    ntohs(x)    (x)
  413. ! #     define    htonl(x)    (x)
  414. ! #     define    htons(x)    (x)
  415. ! #  endif
  416.   #endif
  417.   
  418.   char *argv_zero();
  419.  
  420. Index: src/alias.c
  421. Prereq: 4.1
  422. *** ../elm2.3/src/alias.c    Sat Apr 28 22:42:27 1990
  423. --- src/alias.c    Tue Jun  5 21:20:46 1990
  424. ***************
  425. *** 1,8 ****
  426.   
  427. ! static char rcsid[] = "@(#)$Id: alias.c,v 4.1 90/04/28 22:42:25 syd Exp $";
  428.   
  429.   /*******************************************************************************
  430. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  431.    *
  432.    *             Copyright (c) 1986, 1987 Dave Taylor
  433.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  434. --- 1,8 ----
  435.   
  436. ! static char rcsid[] = "@(#)$Id: alias.c,v 4.1.1.1 90/06/05 21:20:26 syd Exp $";
  437.   
  438.   /*******************************************************************************
  439. !  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
  440.    *
  441.    *             Copyright (c) 1986, 1987 Dave Taylor
  442.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  443. ***************
  444. *** 14,19 ****
  445. --- 14,24 ----
  446.    *
  447.    *******************************************************************************
  448.    * $Log:    alias.c,v $
  449. +  * Revision 4.1.1.1  90/06/05  21:20:26  syd
  450. +  * Make temp file name less than 14 chars to allow deleting
  451. +  * aliases on a 14 char limit file system
  452. +  * From: Syd
  453. +  * 
  454.    * Revision 4.1  90/04/28  22:42:25  syd
  455.    * checkin of Elm 2.3 as of Release PL0
  456.    * 
  457. ***************
  458. *** 437,443 ****
  459.       strcat(name_with_equals, " ="); 
  460.   
  461.       sprintf(fname,"%s/%s", home, ALIAS_TEXT);
  462. !     sprintf(tmpfname,"%s/%s.tmp", home, ALIAS_TEXT);
  463.       
  464.       save_file_stats(fname);
  465.   
  466. --- 442,448 ----
  467.       strcat(name_with_equals, " ="); 
  468.   
  469.       sprintf(fname,"%s/%s", home, ALIAS_TEXT);
  470. !     sprintf(tmpfname,"%s/%s.t", home, ALIAS_TEXT);
  471.       
  472.       save_file_stats(fname);
  473.   
  474.  
  475. Index: src/aliaslib.c
  476. Prereq: 4.1
  477. *** ../elm2.3/src/aliaslib.c    Sat Apr 28 22:42:30 1990
  478. --- src/aliaslib.c    Tue Jun  5 21:32:08 1990
  479. ***************
  480. *** 1,8 ****
  481.   
  482. ! static char rcsid[] = "@(#)$Id: aliaslib.c,v 4.1 90/04/28 22:42:29 syd Exp $";
  483.   
  484.   /*******************************************************************************
  485. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  486.    *
  487.    *             Copyright (c) 1986, 1987 Dave Taylor
  488.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  489. --- 1,8 ----
  490.   
  491. ! static char rcsid[] = "@(#)$Id: aliaslib.c,v 4.1.1.2 90/06/05 21:31:34 syd Exp $";
  492.   
  493.   /*******************************************************************************
  494. !  *  The Elm Mail System  -  $Revision: 4.1.1.2 $   $State: Exp $
  495.    *
  496.    *             Copyright (c) 1986, 1987 Dave Taylor
  497.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  498. ***************
  499. *** 14,19 ****
  500. --- 14,30 ----
  501.    *
  502.    *******************************************************************************
  503.    * $Log:    aliaslib.c,v $
  504. +  * Revision 4.1.1.2  90/06/05  21:31:34  syd
  505. +  * Fix now spurious error message for alias recursive expansion
  506. +  * when alias lookup is on a string over 20 chars long.  If that
  507. +  * long, its just not an alias, so just return.
  508. +  * From: Syd
  509. +  * 
  510. +  * Revision 4.1.1.1  90/06/05  20:41:25  syd
  511. +  * Fix boundary condition in add_name_to_list() where it fails to
  512. +  * print error message.
  513. +  * From: Chip Rosenthal <chip@chinacat.Unicom.COM>
  514. +  * 
  515.    * Revision 4.1  90/04/28  22:42:29  syd
  516.    * checkin of Elm 2.3 as of Release PL0
  517.    * 
  518. ***************
  519. *** 214,246 ****
  520.    */
  521.   int add_name_to_list(name,bufptr,bufsizep)
  522.   register char *name;    /* name to append to buffer            */
  523. ! char **bufptr;        /* pointer to pointer to end of buffer        */
  524. ! int *bufsizep;        /* pointer to space remaining in buffer        */
  525.   {
  526. !     register char *dest = *bufptr;
  527. !     register int bufsize = *bufsizep;
  528.   
  529. !     if ( bufsize < 2 )
  530. !       return FALSE;
  531. !     *dest++ = ','; --bufsize;
  532. !     *dest++ = ' '; --bufsize;
  533. !     while ( *name != '\0' && --bufsize > 0 )
  534. !       *dest++ = *name++ ;
  535. !     *dest = '\0';
  536. !     *bufptr = dest;
  537. !     *bufsizep = bufsize;
  538. !     if ( bufsize <= 0 ) {
  539. !       error("Alias expansion is too long.");
  540. !       return FALSE;
  541.       }
  542.   
  543.       return TRUE;
  544.   }
  545.   
  546.   
  547.   #ifndef DONT_TOUCH_ADDRESSES
  548.   char *expand_system(buffer, show_errors)
  549.   char *buffer;
  550. --- 225,253 ----
  551.    */
  552.   int add_name_to_list(name,bufptr,bufsizep)
  553.   register char *name;    /* name to append to buffer            */
  554. ! register char **bufptr;    /* pointer to pointer to end of buffer        */
  555. ! register int *bufsizep;    /* pointer to space remaining in buffer        */
  556.   {
  557. !     if ( *bufsizep < 0 )
  558. !         return FALSE;
  559.   
  560. !     *bufsizep -= strlen(name)+2;
  561. !     if ( *bufsizep <= 0 ) {
  562. !         *bufsizep = -1;
  563. !         error("Alias expansion is too long.");
  564. !         return FALSE;
  565.       }
  566.   
  567. +     *(*bufptr)++ = ',';
  568. +     *(*bufptr)++ = ' ';
  569. +     while ( *name != '\0' )
  570. +       *(*bufptr)++ = *name++ ;
  571. +     **bufptr = '\0';
  572.       return TRUE;
  573.   }
  574.   
  575.   
  576.   #ifndef DONT_TOUCH_ADDRESSES
  577.   char *expand_system(buffer, show_errors)
  578.   char *buffer;
  579. ***************
  580. *** 269,279 ****
  581.       /** find word and return loc, or -1 **/
  582.       register int loc;
  583.   
  584. !     if (strlen(word) > 20) {
  585. !       dprint(3, (debugfile, "Overly long alias name entered: %s\n", word));
  586. !       error1("Bad alias name: %s.  Too long.\n", word);
  587.         return(-1);
  588. -     }
  589.   
  590.       loc = hash_it(word, size);
  591.   
  592. --- 276,284 ----
  593.       /** find word and return loc, or -1 **/
  594.       register int loc;
  595.   
  596. !     /** cannot be an alias if its longer than 20 chars **/
  597. !     if (strlen(word) > 20)
  598.         return(-1);
  599.   
  600.       loc = hash_it(word, size);
  601.   
  602.  
  603. Index: src/curses.c
  604. Prereq: 4.1
  605. *** ../elm2.3/src/curses.c    Sat Apr 28 22:42:40 1990
  606. --- src/curses.c    Tue Jun  5 21:05:24 1990
  607. ***************
  608. *** 1,8 ****
  609.   
  610. ! static char rcsid[] = "@(#)$Id: curses.c,v 4.1 90/04/28 22:42:39 syd Exp $";
  611.   
  612.   /*******************************************************************************
  613. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  614.    *
  615.    *             Copyright (c) 1986, 1987 Dave Taylor
  616.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  617. --- 1,8 ----
  618.   
  619. ! static char rcsid[] = "@(#)$Id: curses.c,v 4.1.1.1 90/06/05 21:05:22 syd Exp $";
  620.   
  621.   /*******************************************************************************
  622. !  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
  623.    *
  624.    *             Copyright (c) 1986, 1987 Dave Taylor
  625.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  626. ***************
  627. *** 14,19 ****
  628. --- 14,25 ----
  629.    *
  630.    *******************************************************************************
  631.    * $Log:    curses.c,v $
  632. +  * Revision 4.1.1.1  90/06/05  21:05:22  syd
  633. +  * Fixes where src/curses.c attempts to set the screen size via the ioctl
  634. +  * TIOCGWINSIZ if it exsists. It should only use the row or col size as
  635. +  * returned from the ioctl if they are not 0.
  636. +  * From: muller%sdcc10@ucsd.edu (Keith Muller)
  637. +  * 
  638.    * Revision 4.1  90/04/28  22:42:39  syd
  639.    * checkin of Elm 2.3 as of Release PL0
  640.    * 
  641. ***************
  642. *** 258,265 ****
  643.       struct winsize w;
  644.   
  645.       if (ioctl(1,TIOCGWINSZ,&w) != -1) {
  646. !         _lines = w.ws_row;
  647. !         _columns = w.ws_col;
  648.       }
  649.   #endif
  650.   
  651. --- 264,273 ----
  652.       struct winsize w;
  653.   
  654.       if (ioctl(1,TIOCGWINSZ,&w) != -1) {
  655. !         if (w.ws_row > 0)
  656. !             _lines = w.ws_row;
  657. !         if (w.ws_col > 0)
  658. !             _columns = w.ws_col;
  659.       }
  660.   #endif
  661.   
  662.  
  663. Index: src/hdrconfg.c
  664. Prereq: 4.1
  665. *** ../elm2.3/src/hdrconfg.c    Sat Apr 28 22:43:11 1990
  666. --- src/hdrconfg.c    Tue Jun  5 20:59:33 1990
  667. ***************
  668. *** 1,8 ****
  669.   
  670. ! static char rcsid[] = "@(#)$Id: hdrconfg.c,v 4.1 90/04/28 22:43:10 syd Exp $";
  671.   
  672.   /*******************************************************************************
  673. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  674.    *
  675.    *             Copyright (c) 1986, 1987 Dave Taylor
  676.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  677. --- 1,8 ----
  678.   
  679. ! static char rcsid[] = "@(#)$Id: hdrconfg.c,v 4.1.1.2 90/06/05 20:59:30 syd Exp $";
  680.   
  681.   /*******************************************************************************
  682. !  *  The Elm Mail System  -  $Revision: 4.1.1.2 $   $State: Exp $
  683.    *
  684.    *             Copyright (c) 1986, 1987 Dave Taylor
  685.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  686. ***************
  687. *** 14,19 ****
  688. --- 14,28 ----
  689.    *
  690.    *******************************************************************************
  691.    * $Log:    hdrconfg.c,v $
  692. +  * Revision 4.1.1.2  90/06/05  20:59:30  syd
  693. +  * Fix log
  694. +  * 
  695. +  * Revision 4.1.1.1  90/06/05  20:58:23  syd
  696. +  * Fixes when ALLOW_SUBSHELL #define'd and you are in the
  697. +  * Message Header Edit Screen and the mail you just composed
  698. +  * is not a reply THEN the subshell command is executed.
  699. +  * From: zvr@natasha.cs.wisc.EDU (Alexios Zavras)
  700. +  * 
  701.    * Revision 4.1  90/04/28  22:43:10  syd
  702.    * checkin of Elm 2.3 as of Release PL0
  703.    * 
  704. ***************
  705. *** 192,211 ****
  706.               ClearLine(EXTRA_PROMPT_LINE);
  707.               break;
  708.   
  709. -         case 'i' : if (strlen(in_reply_to) > 0) {
  710. -              PutLine0(INPUT_LINE, 0, "In-Reply-To: "); CleartoEOLN();
  711. -                      if (optionally_enter(in_reply_to,
  712. -                  INPUT_LINE, 13, FALSE, FALSE) == -1)
  713. -                return(0);
  714. -              put_inreplyto();
  715. -              break;        
  716. -                }
  717.   #ifdef ALLOW_SUBSHELL
  718. !         case '!':  if (subshell())
  719. !              display_headers();
  720. !                continue;
  721.   #endif
  722.   
  723.           default  : Centerline(ERROR_LINE, "No such header!");
  724.                  displayed_error = YES;
  725. --- 201,220 ----
  726.               ClearLine(EXTRA_PROMPT_LINE);
  727.               break;
  728.   
  729.   #ifdef ALLOW_SUBSHELL
  730. !         case '!':   if (subshell())
  731. !               display_headers();
  732. !                 break;
  733.   #endif
  734. +         case 'i' :  if (strlen(in_reply_to) > 0) {
  735. +               PutLine0(INPUT_LINE, 0, "In-Reply-To: "); CleartoEOLN();
  736. +                       if (optionally_enter(in_reply_to,
  737. +                   INPUT_LINE, 13, FALSE, FALSE) == -1)
  738. +                 return(0);
  739. +               put_inreplyto();
  740. +               break;        
  741. +                }
  742.   
  743.           default  : Centerline(ERROR_LINE, "No such header!");
  744.                  displayed_error = YES;
  745.  
  746. Index: src/mailmsg1.c
  747. Prereq: 4.1
  748. *** ../elm2.3/src/mailmsg1.c    Sat Apr 28 22:43:27 1990
  749. --- src/mailmsg1.c    Tue Jun  5 20:52:22 1990
  750. ***************
  751. *** 1,8 ****
  752.   
  753. ! static char rcsid[] = "@(#)$Id: mailmsg1.c,v 4.1 90/04/28 22:43:26 syd Exp $";
  754.   
  755.   /*******************************************************************************
  756. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  757.    *
  758.    *             Copyright (c) 1986, 1987 Dave Taylor
  759.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  760. --- 1,8 ----
  761.   
  762. ! static char rcsid[] = "@(#)$Id: mailmsg1.c,v 4.1.1.1 90/06/05 20:52:21 syd Exp $";
  763.   
  764.   /*******************************************************************************
  765. !  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
  766.    *
  767.    *             Copyright (c) 1986, 1987 Dave Taylor
  768.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  769. ***************
  770. *** 14,19 ****
  771. --- 14,24 ----
  772.    *
  773.    *******************************************************************************
  774.    * $Log:    mailmsg1.c,v $
  775. +  * Revision 4.1.1.1  90/06/05  20:52:21  syd
  776. +  * Fixes the 'g' Group Reply command to send to the cc list also.
  777. +  * A bad variable name caused it to be ignored.
  778. +  * From: chip@chinacat.Unicom.COM (Chip Rosenthal)
  779. +  * 
  780.    * Revision 4.1  90/04/28  22:43:26  syd
  781.    * checkin of Elm 2.3 as of Release PL0
  782.    * 
  783. ***************
  784. *** 69,74 ****
  785. --- 74,81 ----
  786.   
  787.       if (get_to(to, expanded_to) == 0)   /* get the To: address and expand */
  788.         return(0);
  789. +     if ( cc[0] != '\0' )            /* expand out CC addresses */
  790. +       build_address(strip_commas(cc), expanded_cc);
  791.   
  792.       /** if we're batchmailing, let's send it and GET OUTTA HERE! **/
  793.   
  794.  
  795. Index: src/strings.c
  796. Prereq: 4.1
  797. *** ../elm2.3/src/strings.c    Sat Apr 28 22:44:17 1990
  798. --- src/strings.c    Tue Jun  5 20:38:59 1990
  799. ***************
  800. *** 1,8 ****
  801.   
  802. ! static char rcsid[] = "@(#)$Id: strings.c,v 4.1 90/04/28 22:44:16 syd Exp $";
  803.   
  804.   /*******************************************************************************
  805. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  806.    *
  807.    *             Copyright (c) 1986, 1987 Dave Taylor
  808.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  809. --- 1,8 ----
  810.   
  811. ! static char rcsid[] = "@(#)$Id: strings.c,v 4.1.1.1 90/06/05 20:38:58 syd Exp $";
  812.   
  813.   /*******************************************************************************
  814. !  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
  815.    *
  816.    *             Copyright (c) 1986, 1987 Dave Taylor
  817.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  818. ***************
  819. *** 14,19 ****
  820. --- 14,23 ----
  821.    *
  822.    *******************************************************************************
  823.    * $Log:    strings.c,v $
  824. +  * Revision 4.1.1.1  90/06/05  20:38:58  syd
  825. +  * Allow nesting on () in comment in address
  826. +  * From: Chip Rosenthal <chip@chinacat.Unicom.COM>
  827. +  * 
  828.    * Revision 4.1  90/04/28  22:44:16  syd
  829.    * checkin of Elm 2.3 as of Release PL0
  830.    * 
  831. ***************
  832. *** 273,295 ****
  833.   char *strip_parens(string)
  834.   char *string;
  835.   {
  836. !     /** Return string with all parenthesized information removed.
  837. !         This is a non-destructive algorithm... **/
  838.       static char  buffer[VERY_LONG_STRING];
  839. !     register int depth = 0, buffer_index = 0;
  840.   
  841. !     for (; *string; string++) {
  842. !       if (*string == '(')
  843. !         depth++;
  844. !       else if (*string == ')') 
  845. !         depth--;
  846. !       else if (depth == 0)
  847. !         buffer[buffer_index++] = *string;
  848.       }
  849. !     
  850. !     buffer[buffer_index] = '\0';
  851.       return( (char *) buffer);
  852.   }
  853.   
  854. --- 277,315 ----
  855.   char *strip_parens(string)
  856.   char *string;
  857.   {
  858. !     /**
  859. !         Remove parenthesized information from a string.  More specifically,
  860. !         comments as defined in RFC822 are removed.  This procedure is
  861. !         non-destructive - a pointer to static data is returned.
  862. !     **/
  863.       static char  buffer[VERY_LONG_STRING];
  864. !     register char *bufp;
  865. !     register int depth;
  866.   
  867. !     for ( bufp = buffer, depth = 0 ; *string != '\0' ; ++string ) {
  868. !       switch ( *string ) {
  869. !       case '(':            /* begin comment on '('        */
  870. !         ++depth;
  871. !         break;
  872. !       case ')':            /* decr nesting level on ')'    */
  873. !         --depth;
  874. !         break;
  875. !       case '\\':            /* treat next char literally    */
  876. !         if ( *++string == '\0' ) {        /* gracefully handle    */
  877. !           *bufp++ = '\\';            /* '\' at end of string    */
  878. !           --string;                /* even tho it's wrong    */
  879. !         } else if ( depth == 0 ) {
  880. !           *bufp++ = '\\';
  881. !           *bufp++ = *string;
  882. !         }
  883. !         break;
  884. !       default:            /* a regular char        */
  885. !         if ( depth == 0 )
  886. !           *bufp++ = *string;
  887. !         break;
  888. !       }
  889.       }
  890. !     *bufp = '\0';
  891.       return( (char *) buffer);
  892.   }
  893.   
  894.  
  895. Index: utils/newalias.c
  896. Prereq: 4.1
  897. *** ../elm2.3/utils/newalias.c    Sat Apr 28 22:44:48 1990
  898. --- utils/newalias.c    Tue Jun  5 21:11:22 1990
  899. ***************
  900. *** 1,8 ****
  901.   
  902. ! static char rcsid[] = "@(#)$Id: newalias.c,v 4.1 90/04/28 22:44:46 syd Exp $";
  903.   
  904.   /*******************************************************************************
  905. !  *  The Elm Mail System  -  $Revision: 4.1 $   $State: Exp $
  906.    *
  907.    *             Copyright (c) 1986, 1987 Dave Taylor
  908.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  909. --- 1,8 ----
  910.   
  911. ! static char rcsid[] = "@(#)$Id: newalias.c,v 4.1.1.1 90/06/05 21:11:20 syd Exp $";
  912.   
  913.   /*******************************************************************************
  914. !  *  The Elm Mail System  -  $Revision: 4.1.1.1 $   $State: Exp $
  915.    *
  916.    *             Copyright (c) 1986, 1987 Dave Taylor
  917.    *             Copyright (c) 1988, 1989, 1990 USENET Community Trust
  918. ***************
  919. *** 14,19 ****
  920. --- 14,24 ----
  921.    *
  922.    *******************************************************************************
  923.    * $Log:    newalias.c,v $
  924. +  * Revision 4.1.1.1  90/06/05  21:11:20  syd
  925. +  * alias command in ELM2.3 fails because of the wrong sized aliases.hash
  926. +  * newalias did not truncate existing file (aliases.hash)
  927. +  * From: Toshinori Maeno <tmaeno@cc.titech.ac.jp>
  928. +  * 
  929.    * Revision 4.1  90/04/28  22:44:46  syd
  930.    * checkin of Elm 2.3 as of Release PL0
  931.    * 
  932. ***************
  933. *** 126,132 ****
  934.         }
  935.       }
  936.   
  937. !     if ((hash = open(hashname, O_WRONLY | O_CREAT, 0644)) == -1) {
  938.         printf("Couldn't open %s for output!\n", hashname);
  939.         exit(1);
  940.       }
  941. --- 131,137 ----
  942.         }
  943.       }
  944.   
  945. !     if ((hash = open(hashname, O_WRONLY | O_TRUNC | O_CREAT, 0644)) == -1) {
  946.         printf("Couldn't open %s for output!\n", hashname);
  947.         exit(1);
  948.       }
  949.  
  950. -- 
  951. =====================================================================
  952. Sydney S. Weinstein, CDP, CCP                   Elm Coordinator
  953. Datacomp Systems, Inc.                          Voice: (215) 947-9900
  954. syd@DSI.COM or dsinc!syd                        FAX:   (215) 938-0235
  955.  
  956.  
  957. -- 
  958. Gregory G. Woodbury @ The Wolves Den UNIX, Durham NC
  959. UUCP: ...dukcds!wolves!ggw   ...mcnc!wolves!ggw           [use the maps!]
  960. Domain: ggw@cds.duke.edu     ggw%wolves@mcnc.mcnc.org
  961. [The line eater is a boojum snark! ]           <standard disclaimers apply>
  962.