home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume20 / mush / patch03 next >
Encoding:
Text File  |  1991-05-25  |  22.5 KB  |  745 lines

  1. Newsgroups: comp.sources.misc
  2. From: Bart Schaefer <schaefer@cse.ogc.edu>
  3. Subject:  v20i016:  mush - Mail User's Shell, Patch03
  4. Message-ID: <1991May23.150140.21774@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: dff09bfe8266ac49b4befc0591b0969e
  6. Date: Thu, 23 May 1991 15:01:40 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Bart Schaefer <schaefer@cse.ogc.edu>
  10. Posting-number: Volume 20, Issue 16
  11. Archive-name: mush/patch03
  12. Patch-To: mush: Volume 18, Issue 58-79
  13.  
  14. @OFF
  15.  
  16. This is Official Patch #3 for Mush 7.2.  As usual, complete sources for
  17. Mush (already including the changes in this patch) can be obtained via
  18. anonymous ftp from:
  19.  
  20.                   cse.ogi.edu:pub/mush/mush-7.2.tar.Z
  21.  
  22. Mush 7.2 was recently posted to comp.sources.misc at patchlevel 2.
  23. This patch and any future patches will be made available for ftp from
  24. cse.ogi.edu, or you can send E-mail to me:
  25.  
  26.                          schaefer@cse.ogi.edu
  27.  
  28. Include in your message a line of the form
  29.  
  30. @PATCH patch-number path-from-ogicse-to-you
  31.  
  32. where patch-number is the number of the patch you need (digit, 1 or 2)
  33. and path-from-ogicse-to-you is either your Internet domain address or
  34. a UUCP path from site ogicse to you at your site.  There continue to
  35. be sendmail configuration problems at ogicse so please do not use mixed
  36. UUCP and Internet addresses and do not use domain names (with `.'s) in
  37. UUCP paths.  Ogicse does do UUCP map lookups now, so user@site.UUCP will
  38. often work if your site is registered.  If you don't get your patches
  39. in 2 or 3 days, try again, but use a different path.
  40.  
  41. You may include one @PATCH line for each patch you need.
  42.  
  43. You can also recieve a complete set of sources by E-mail by including
  44. a line of the form
  45.  
  46. @MUSH path-from-ogicse-to-you
  47.  
  48. where path-from-ogicse-to-you is as above.  You need not request both
  49. source and patches; the source you receive will include all current
  50. patches.  Sources are shipped as a 10-part compressed tar file, encoded
  51. for mailing with the "btoa" utility.  You will receive instructions
  52. explaining how to unpack the tar file in a separate message.
  53.  
  54. CSNet also operates an E-mail server that accesses anonymous ftp.  It
  55. may or may not be functional at this time.  To find out, and to get
  56. instructions for using the server, send a message to info-server@cs.net
  57. with the following lines in the text:
  58.  
  59. request: info
  60. topic: help-ftp
  61. request: end
  62.  
  63. Other information, plus questions and answers, on mush and mush patches
  64. is available from the mush-users mailing list, which is gatewayed in
  65. both directions with newsgroup comp.mail.mush.  The list currently
  66. resides at mush-users@apple.com.  Requests to be added to or deleted
  67. from the list should be sent to mush-users-request@apple.com
  68.  
  69. Bug fixes in this patch:
  70.  
  71.   * The user's real name ($realname) is no longer left empty.
  72.  
  73.   * REGCMP users (mostly SysV) no longer get core dumps when using pick.
  74.  
  75.   * Attempts to send mail (e.g. via Fcc: headers) to the same file or
  76.     folder more than once *silently* sends only one copy to the file.
  77.     (Before, it complained about not being able to write to the file
  78.     for the second and later attempts.)
  79.  
  80.   * SCO UNIX 3.2 users who are having problems with "submit" can now
  81.     define M_EXECMAIL to use execmail as their interface to MMDF.  This
  82.     has the pleasant side-effect of making the MTA invocation compatible
  83.     with sendmail, so resetting the variable "sendmail" works cleanly.
  84.  
  85.   * Problems with file locking and lock.c typos for SCO UNIX have been
  86.     corrected (we hope).
  87.  
  88.   * SCO UNIX correctly includes <sys/select.h> (we hope).
  89.  
  90.   * Attempts to load folders containing more than the defined maximum
  91.     number of messages work a bit better.  You still can't load all the
  92.     messages, but the results are less strange.
  93.  
  94.   * Some <curses.h> macro name clashes for unusual UNIXen have been
  95.     forcibly suppressed.
  96.  
  97.   * An amazingly old string overflow bug in toolmode has been fixed.
  98.  
  99. Prereq: "4/12/91"
  100. *** /tmp/,RCSt1014785    Wed May 22 23:31:39 1991
  101. --- version.h    Wed May 22 19:08:55 1991
  102. ***************
  103. *** 1,7 ****
  104.   /* @(#)version.h    (c) Copyright 1989, 1990, 1991 (Dan Heller) */
  105.   
  106.   #define MUSHNAME    "Mail User's Shell"
  107. ! #define RELEASE_DATE    "4/12/91"
  108.   #define RELEASE        7
  109.   #define REVISION    "2"
  110. ! #define PATCHLEVEL    2
  111. --- 1,7 ----
  112.   /* @(#)version.h    (c) Copyright 1989, 1990, 1991 (Dan Heller) */
  113.   
  114.   #define MUSHNAME    "Mail User's Shell"
  115. ! #define RELEASE_DATE    "5/22/91"
  116.   #define RELEASE        7
  117.   #define REVISION    "2"
  118. ! #define PATCHLEVEL    3
  119. *** /tmp/,RCSt1015666    Wed May 22 23:51:21 1991
  120. --- README    Wed May 22 23:50:58 1991
  121. ***************
  122. *** 83,88 ****
  123. --- 83,90 ----
  124.       SUN_4_0, or SUN_4_1 depending on your SunOS version.  If SUNTOOL is
  125.       the only thing defined, SUN_4_1 will be used.  If your version of
  126.       SunOS is older than 3.5, you can't use SUNTOOL, so go to makefile.bsd.
  127. +     NOTE: Even though SUN_4_1 is the default, NO_COMMAS is not defined
  128. +     unless you explicitly define SUN_4_1 or (NO_COMMAS itself).
  129.   
  130.       You may also choose to define NO_WALK_MENUS to disable walking menus
  131.       for file names selectable from the "folder" and "save" command items.
  132. ***************
  133. *** 220,225 ****
  134. --- 222,231 ----
  135.       appropriate library to the LIBS list in your makefile.
  136.   
  137.       MMDF sites should probably NOT define PICKY_MAILER (see below).
  138. +     If you are using SCO UNIX 3.2 and the MMDF "submit" program gives you
  139. +     trouble because of file permissions, define M_EXECMAIL to use the
  140. +     execmail program instead.
  141.   
  142.   All others:
  143.       Chances are, your MTA uses the "From " format to separate messges in
  144. *** /tmp/,RCSt1015666    Wed May 22 23:51:32 1991
  145. --- config.h-dist    Thu May 16 19:51:35 1991
  146. ***************
  147. *** 77,82 ****
  148. --- 77,86 ----
  149.    * If you are using MMDF, define MMDF here.
  150.    */
  151.   /* #define MMDF /**/
  152. + #if defined(M_UNIX) && defined(M_XENIX)
  153. + #define MMDF
  154. + /* #define M_EXECMAIL    /* Define if you haven't fixed submit permissions */
  155. + #endif /* M_UNIX && M_XENIX */
  156.   #ifdef MMDF
  157.   /*
  158.    * If MMDF delivers mail the user's home directory, define HOMEMAIL.
  159. ***************
  160. *** 83,91 ****
  161. --- 87,101 ----
  162.    * Also check the definition of the delivery file name MAILFILE, below.
  163.    */
  164.   /* #define HOMEMAIL /**/
  165. + #ifdef M_EXECMAIL
  166. + #define MAIL_DELIVERY    "/usr/lib/mail/execmail"
  167. + # define VERBOSE_ARG    "-v"
  168. + # define METOO_ARG    "-m"
  169. + #else /* M_EXECMAIL */
  170.   #define MAIL_DELIVERY    "exec /usr/mmdf/bin/submit -mlnr"
  171.   #define VERBOSE_ARG    "Ww"
  172.   #define MTA_EXIT    9    /* exit status for successful submit */
  173. + #endif /* M_EXECMAIL */
  174.   #else /* MMDF */
  175.   /*
  176.    * If you are not using MMDF, check these definitions.
  177. *** /tmp/,RCSt1015666    Wed May 22 23:51:38 1991
  178. --- file.c    Wed May 22 18:18:27 1991
  179. ***************
  180. *** 317,323 ****
  181.               error("Can't execute %s\n", tmp);
  182.           } else if (lockit) {
  183.           /* Lock on open */
  184. !         if (!(newfile = lock_fopen(tmp, mode)))
  185.               error("Can't write to %s", tmp);
  186.           } else {
  187.           /* Ordinary open */
  188. --- 317,323 ----
  189.               error("Can't execute %s\n", tmp);
  190.           } else if (lockit) {
  191.           /* Lock on open */
  192. !         if (!(newfile = lock_fopen(tmp, mode)) && errno != EWOULDBLOCK)
  193.               error("Can't write to %s", tmp);
  194.           } else {
  195.           /* Ordinary open */
  196. *** /tmp/,RCSt1015666    Wed May 22 23:51:42 1991
  197. --- init.c    Wed May 22 21:57:16 1991
  198. ***************
  199. *** 72,78 ****
  200.       argv[2] = home;
  201.       (void) add_option(&set_options, argv);
  202.       }
  203. !     if (realname && *realname) {
  204.       /* realname has already been copied to buf */
  205.       argv[0] = "realname";
  206.       argv[2] = buf;
  207. --- 72,78 ----
  208.       argv[2] = home;
  209.       (void) add_option(&set_options, argv);
  210.       }
  211. !     if (realname && *buf) {
  212.       /* realname has already been copied to buf */
  213.       argv[0] = "realname";
  214.       argv[2] = buf;
  215. *** /tmp/,RCSt1015666    Wed May 22 23:51:43 1991
  216. --- lock.c    Thu May 16 20:13:28 1991
  217. ***************
  218. *** 95,105 ****
  219.   #ifdef EWOULDBLOCK
  220.   #undef EWOULDBLOCK
  221.   #endif /* EWOULDBLOCK */
  222. - #ifdef M_UNIX
  223. - #define EWOULDBLOCK    EACCESS    /* SCO bug that may eventually be fixed */
  224. - #else /* !M_UNIX */
  225.   #define EWOULDBLOCK    EAGAIN
  226. - #endif /* M_UNIX */
  227.   
  228.   #ifndef F_SETLKW
  229.   #define F_SETLKW F_SETLK
  230. --- 95,101 ----
  231. ***************
  232. *** 234,240 ****
  233.   #ifdef LCKDFLDIR
  234.       if (Access(filename, any(mode, "aw+") ? W_OK : R_OK) == 0)
  235.   #else /* !LCKDFLDIR */
  236. !     if (errno == EWOULDBLOCK)
  237.   #endif /* LCKDFLDIR */
  238.       {
  239.           if (isoff(glob_flags, REDIRECT))
  240. --- 230,240 ----
  241.   #ifdef LCKDFLDIR
  242.       if (Access(filename, any(mode, "aw+") ? W_OK : R_OK) == 0)
  243.   #else /* !LCKDFLDIR */
  244. !     if (errno == EWOULDBLOCK
  245. ! #ifdef M_UNIX
  246. !         || errno == EACCES
  247. ! #endif /* M_UNIX */
  248. !                 )
  249.   #endif /* LCKDFLDIR */
  250.       {
  251.           if (isoff(glob_flags, REDIRECT))
  252. *** /tmp/,RCSt1015666    Wed May 22 23:51:46 1991
  253. --- mail.c    Thu May 16 20:06:11 1991
  254. ***************
  255. *** 1110,1120 ****
  256.       if (!istool && (ison(flags, VERBOSE) || do_set(set_options, "verbose"))) {
  257.       turnon(flags, VERBOSE); /* prevent fork when "verbose" has changed */
  258.       oldchld = signal(SIGCHLD, SIG_DFL); /* let pclose() do the wait() */
  259. ! #ifdef MMDF
  260.       b = &buf[strlen(sprintf(buf, "%s%s", p, VERBOSE_ARG))];
  261.   #else /* MMDF */
  262.       b = &buf[strlen(sprintf(buf, "%s %s", p, VERBOSE_ARG))];
  263. ! #endif /* MMDF */
  264.       } else
  265.   #endif /* VERBOSE_ARG */
  266.       b = buf + Strcpy(buf, p);
  267. --- 1110,1120 ----
  268.       if (!istool && (ison(flags, VERBOSE) || do_set(set_options, "verbose"))) {
  269.       turnon(flags, VERBOSE); /* prevent fork when "verbose" has changed */
  270.       oldchld = signal(SIGCHLD, SIG_DFL); /* let pclose() do the wait() */
  271. ! #if defined(MMDF) && !defined(M_EXECMAIL)
  272.       b = &buf[strlen(sprintf(buf, "%s%s", p, VERBOSE_ARG))];
  273.   #else /* MMDF */
  274.       b = &buf[strlen(sprintf(buf, "%s %s", p, VERBOSE_ARG))];
  275. ! #endif /* MMDF && !M_EXECMAIL */
  276.       } else
  277.   #endif /* VERBOSE_ARG */
  278.       b = buf + Strcpy(buf, p);
  279. ***************
  280. *** 1294,1302 ****
  281.           return fork_pid;
  282.       }
  283.   
  284. ! #ifdef MMDF
  285.       *(addr_list-1) = '\0';
  286. ! #endif /* MMDF */
  287.       if (debug > 2) {
  288.       files[0] = stdout;
  289.       if (!*addr_list)
  290. --- 1294,1302 ----
  291.           return fork_pid;
  292.       }
  293.   
  294. ! #if defined(MMDF) && !defined(M_EXECMAIL)
  295.       *(addr_list-1) = '\0';
  296. ! #endif /* MMDF && !M_EXECMAIL */
  297.       if (debug > 2) {
  298.       files[0] = stdout;
  299.       if (!*addr_list)
  300. ***************
  301. *** 1314,1320 ****
  302.   
  303.       if (ison(flags, VERBOSE))
  304.       wprint("Sending letter ... "), (void) fflush(stdout);
  305. ! #ifdef MMDF
  306.       /* give address list to submit */
  307.       for (p = addr_list; *p && (p = any(p, ",<")); p++)
  308.       if (*p == ',')
  309. --- 1314,1320 ----
  310.   
  311.       if (ison(flags, VERBOSE))
  312.       wprint("Sending letter ... "), (void) fflush(stdout);
  313. ! #if defined(MMDF) && !defined(M_EXECMAIL)
  314.       /* give address list to submit */
  315.       for (p = addr_list; *p && (p = any(p, ",<")); p++)
  316.       if (*p == ',')
  317. ***************
  318. *** 1323,1329 ****
  319.           p = index(p, '>');
  320.       if (*addr_list)
  321.       (void) fprintf(files[0], "%s\n\n", addr_list);
  322. ! #endif /* MMDF */
  323.   
  324.       /* see if log is set.  This is just to add message headers. No msg body. */
  325.       if (p = do_set(set_options, "logfile")) {
  326. --- 1323,1329 ----
  327.           p = index(p, '>');
  328.       if (*addr_list)
  329.       (void) fprintf(files[0], "%s\n\n", addr_list);
  330. ! #endif /* MMDF && !M_EXECMAIL */
  331.   
  332.       /* see if log is set.  This is just to add message headers. No msg body. */
  333.       if (p = do_set(set_options, "logfile")) {
  334. *** /tmp/,RCSt1015666    Wed May 22 23:51:53 1991
  335. --- msgs.c    Wed May 22 18:27:30 1991
  336. ***************
  337. *** 977,987 ****
  338.       if (had_error) {
  339.       if (!append)
  340.           msg[cnt] = old;
  341. -     else if (msg_found && append == 1 && cnt == MAXMSGS-append) {
  342. -         /* reset fp to the beginning of the not-loaded message */
  343. -         bytes = ftell(fp) - strlen(buf);
  344. -         (void) fseek(fp, bytes, L_SET);
  345. -     }
  346.       if (!msg_found) {
  347.           if (!append)
  348.           print("File not left in correct message format.\n");
  349. --- 977,982 ----
  350. ***************
  351. *** 1004,1011 ****
  352.       if (append)
  353.           cnt++;
  354.       }
  355. !     if (append == 1) /* merge_folders takes care of this for append == 2 */
  356. !     msg[cnt].m_offset = ftell(fp);
  357.       close_lock(file, fp);
  358.       if (isoff(glob_flags, READ_ONLY)) {
  359.       if (had_error && msg_found && append == 1 && cnt == MAXMSGS-append) {
  360. --- 999,1008 ----
  361.       if (append)
  362.           cnt++;
  363.       }
  364. !     if (append == 1) { /* merge_folders takes care of this for append == 2 */
  365. !     (void) fseek(fp, 0L, 2); /* Position at end of file */
  366. !     msg[msg_cnt].m_offset = ftell(fp);
  367. !     }
  368.       close_lock(file, fp);
  369.       if (isoff(glob_flags, READ_ONLY)) {
  370.       if (had_error && msg_found && append == 1 && cnt == MAXMSGS-append) {
  371. *** /tmp/,RCSt1015666    Wed May 22 23:51:57 1991
  372. --- mush.1    Wed May 22 23:30:05 1991
  373. ***************
  374. *** 10,16 ****
  375.   .if n .ds - --
  376.   .if t .ds - \(em
  377.   .nh
  378. ! .TH MUSH 1 "March 17, 1991" "Version 7.2.2"
  379.   .SH NAME
  380.   The Mail User's Shell \- Shell for electronic mail.
  381.   .SH SYNOPSIS
  382. --- 10,16 ----
  383.   .if n .ds - --
  384.   .if t .ds - \(em
  385.   .nh
  386. ! .TH MUSH 1 "May 22, 1991" "Version 7.2.3"
  387.   .SH NAME
  388.   The Mail User's Shell \- Shell for electronic mail.
  389.   .SH SYNOPSIS
  390. ***************
  391. *** 160,166 ****
  392.   that file is read before the folder is scanned.
  393.   The file specified by \-F is read after the folder is scanned, so
  394.   commands that affect messages are allowed.
  395. ! The optional `!' argument prevents the shell from running after the
  396.   file has been sourced.
  397.   Otherwise,
  398.   .I Mush
  399. --- 160,166 ----
  400.   that file is read before the folder is scanned.
  401.   The file specified by \-F is read after the folder is scanned, so
  402.   commands that affect messages are allowed.
  403. ! The optional `!' prevents the shell from running after the
  404.   file has been sourced.
  405.   Otherwise,
  406.   .I Mush
  407. ***************
  408. *** 347,353 ****
  409.   session, new mail arrives for you, it is automatically incorporated into
  410.   your system mailbox and you are told that new mail has arrived.
  411.   .PP
  412. ! In the default line mode, new mail is checked between each command
  413.   issued.
  414.   In the curses mode, new mail is checked on each
  415.   command and is displayed in the bottom line of the screen.
  416. --- 347,353 ----
  417.   session, new mail arrives for you, it is automatically incorporated into
  418.   your system mailbox and you are told that new mail has arrived.
  419.   .PP
  420. ! In the default line mode, new mail is checked after each command
  421.   issued.
  422.   In the curses mode, new mail is checked on each
  423.   command and is displayed in the bottom line of the screen.
  424. ***************
  425. *** 362,368 ****
  426.   displayed, to tell you whom the mail is from:
  427.   .sp
  428.   .ti +2
  429. ! New mail: (#15) argv@zipcode.com (Dan Heller)
  430.   .sp
  431.   If you are not in your system mailbox, then the new mail is not added
  432.   to your list of messages, but you are instead informed of the new arrival.
  433. --- 362,368 ----
  434.   displayed, to tell you whom the mail is from:
  435.   .sp
  436.   .ti +2
  437. ! New mail (#15) argv@zipcode.com (Dan Heller)
  438.   .sp
  439.   If you are not in your system mailbox, then the new mail is not added
  440.   to your list of messages, but you are instead informed of the new arrival.
  441. ***************
  442. *** 2003,2009 ****
  443.   .BR undelete .
  444.   .TP
  445.   .B dp
  446. ! .R (also
  447.   .BR dt )
  448.   Deletes the current message and prints (types) the next message.
  449.   .TP
  450. --- 2003,2009 ----
  451.   .BR undelete .
  452.   .TP
  453.   .B dp
  454. ! (also
  455.   .BR dt )
  456.   Deletes the current message and prints (types) the next message.
  457.   .TP
  458. ***************
  459. *** 2126,2132 ****
  460.   prevent its interpretation as part of a message range, or it may be given
  461.   \fIafter\fR the list of bits for the same reason.
  462.   .sp
  463. ! Message lists can be piped to the
  464.   .B flags
  465.   command; for example, you may use
  466.   .sp
  467. --- 2126,2132 ----
  468.   prevent its interpretation as part of a message range, or it may be given
  469.   \fIafter\fR the list of bits for the same reason.
  470.   .sp
  471. ! Message lists can be piped to or from the
  472.   .B flags
  473.   command; for example, you may use
  474.   .sp
  475. ***************
  476. *** 2300,2315 ****
  477.   .in +2
  478.   .ta 1i
  479.   .if t .ta 1.5i
  480. ! a       all messages
  481. ! d       deleted messages
  482.   f    forwarded messages
  483.   m    marked messages
  484. ! n       new messages
  485. ! o       old messages
  486.   p    preserved messages
  487. ! r       replied to messages
  488. ! s       saved messages
  489. ! u       unread messages
  490.   .fi
  491.   .in -2
  492.   Note that the \-H is not required; \*Qheaders :c\*U is valid.
  493. --- 2300,2315 ----
  494.   .in +2
  495.   .ta 1i
  496.   .if t .ta 1.5i
  497. ! a    all messages
  498. ! d    deleted messages
  499.   f    forwarded messages
  500.   m    marked messages
  501. ! n    new messages
  502. ! o    old messages
  503.   p    preserved messages
  504. ! r    replied to messages
  505. ! s    saved messages
  506. ! u    unread messages
  507.   .fi
  508.   .in -2
  509.   Note that the \-H is not required; \*Qheaders :c\*U is valid.
  510. ***************
  511. *** 2934,2939 ****
  512. --- 2934,2940 ----
  513.   The pattern may also be of the form
  514.   .ti +4
  515.   .I /pattern1/,/pattern2/
  516. + .br
  517.   in which case printing begins with the line containing
  518.   .I pattern1
  519.   and end with the line containing
  520. ***************
  521. *** 3056,3063 ****
  522.   If it is set, but has no value, the first \*QFrom\ \*U line is used
  523.   regardless of what headers the author's message contains.
  524.   The \*QFrom\ \*U line may be specified explicitly as an item in the
  525. ! list of reply-to headers by specifying the header
  526. ! .RB \*Q From_ \*U.
  527.   See the VARIABLES section for more information about
  528.   .B reply_to_hdr.
  529.   .sp
  530. --- 3057,3063 ----
  531.   If it is set, but has no value, the first \*QFrom\ \*U line is used
  532.   regardless of what headers the author's message contains.
  533.   The \*QFrom\ \*U line may be specified explicitly as an item in the
  534. ! list of reply-to headers by specifying the header \*Q\fBFrom_\fB\*U.
  535.   See the VARIABLES section for more information about
  536.   .B reply_to_hdr.
  537.   .sp
  538. ***************
  539. *** 3144,3149 ****
  540. --- 3144,3155 ----
  541.   except that messages are never marked for deletion, whether or not
  542.   .B keepsave
  543.   is set.
  544. + .sp
  545. + .IR Note :
  546. + The permission mode of files created by these commands allow read and
  547. + write only by the owner of the file.
  548. + The permissions of existing files are not changed when messages are
  549. + saved or written to those files.
  550.   .TP
  551.   .BR saveopts " [file]"
  552.   The complement of
  553. ***************
  554. *** 4532,4540 ****
  555.   If this isn't set, then the default value for pager (set up
  556.   by the system manager) is used.
  557.   This may or may not be the internal pager.
  558. ! To use the internal pager, you may set the variable pager to
  559. ! .RI \*Q internal \*U
  560. ! or to a null string.
  561.   .TP
  562.   .B pre_indent_str
  563.   (String)
  564. --- 4538,4545 ----
  565.   If this isn't set, then the default value for pager (set up
  566.   by the system manager) is used.
  567.   This may or may not be the internal pager.
  568. ! To use the internal pager, you may set the variable pager
  569. ! to \*Q\fIinternal\fR\*U or to a null string.
  570.   .TP
  571.   .B pre_indent_str
  572.   (String)
  573. ***************
  574. *** 5845,5851 ****
  575.   ~/.mushXXXXXX    Temporary mail file (copy of current folder)
  576.   .fi
  577.   .PP
  578. ! Temporary files that are created by the program are always
  579.   created with read/write access to the owner only; group and other
  580.   permissions are never set.
  581.   This is also true for the /usr/spool/mail/* files.
  582. --- 5850,5858 ----
  583.   ~/.mushXXXXXX    Temporary mail file (copy of current folder)
  584.   .fi
  585.   .PP
  586. ! Temporary files that are created by the program, and folders written with
  587. ! .B save
  588. ! and related commands, are always
  589.   created with read/write access to the owner only; group and other
  590.   permissions are never set.
  591.   This is also true for the /usr/spool/mail/* files.
  592. *** /tmp/,RCSt1015666    Wed May 22 23:52:18 1991
  593. --- mush.h    Wed May 22 18:16:11 1991
  594. ***************
  595. *** 13,18 ****
  596. --- 13,26 ----
  597.   #    undef SYSV
  598.   #endif /* SYSV */
  599.   #include <curses.h>
  600. + #ifdef timeout
  601. + #undef timeout
  602. + #endif
  603. + #ifdef overwrite
  604. + #undef overwrite
  605. + #endif
  606.   #if !defined(USG) && defined(_USG)
  607.   #    define USG
  608.   #endif /* USG */
  609. ***************
  610. *** 85,90 ****
  611. --- 93,104 ----
  612.   #    include <sys/ioctl.h>   /* for ltchars */
  613.   #    else
  614.   #    include <time.h>
  615. + #    ifdef M_UNIX
  616. + #        ifndef SELECT
  617. + #        define SELECT
  618. + #        endif
  619. + #        include <sys/select.h>
  620. + #    endif /* M_UNIX */
  621.   #    include <fcntl.h>
  622.   #    endif /* SYSV */
  623.   #endif /* SUNTOOL */
  624. *** /tmp/,RCSt1015666    Wed May 22 23:52:21 1991
  625. --- pick.c    Sun May 19 19:59:48 1991
  626. ***************
  627. *** 1,4 ****
  628. ! /* @(#)pick.c    2.4    (c) copyright 10/18/86 (Dan Heller) */
  629.   
  630.   #include "mush.h"
  631.   
  632. --- 1,4 ----
  633. ! /* @(#)pick.c    7.2    (c) copyright 5/19/91 (Dan Heller) */
  634.   
  635.   #include "mush.h"
  636.   
  637. ***************
  638. *** 290,296 ****
  639.       int matches = 0;
  640.       long bytes = 0;
  641.       char buf[HDRSIZ];
  642. !     static char *err = (char *)-1;
  643.   #ifdef REGCMP
  644.       char *regcmp(), *regex();
  645.   #else /* REGCMP */
  646. --- 290,296 ----
  647.       int matches = 0;
  648.       long bytes = 0;
  649.       char buf[HDRSIZ];
  650. !     char *err = NULL;
  651.   #ifdef REGCMP
  652.       char *regcmp(), *regex();
  653.   #else /* REGCMP */
  654. ***************
  655. *** 305,312 ****
  656.       if (icase)
  657.           p = lcase_strcpy(buf, p);
  658.   #ifdef REGCMP
  659. -     if (err && p)
  660. -         xfree(err);
  661.       if (p && !(err = regcmp(p, NULL))) {
  662.           print("regcmp error: %s\n", p);
  663.           clear_msg_list(ret_list);
  664. --- 305,310 ----
  665. ***************
  666. *** 319,325 ****
  667.           return -1;
  668.       }
  669.   #endif /* REGCMP */
  670. !     } else if (err == (char *)-1 && mdy[1] <= 0 && match_priority == 0) {
  671.       print("No previous regular expression\n");
  672.       clear_msg_list(ret_list);  /* doesn't matter really */
  673.       return -1;
  674. --- 317,323 ----
  675.           return -1;
  676.       }
  677.   #endif /* REGCMP */
  678. !     } else if (err == NULL && mdy[1] <= 0 && match_priority == 0) {
  679.       print("No previous regular expression\n");
  680.       clear_msg_list(ret_list);  /* doesn't matter really */
  681.       return -1;
  682. ***************
  683. *** 417,422 ****
  684. --- 415,424 ----
  685.               bytes += strlen(p);
  686.           }
  687.       }
  688. + #ifdef REGCMP
  689. +     if (err)
  690. +     free(err);
  691. + #endif /* REGCMP */
  692.       return matches;
  693.   }
  694.   
  695. ***************
  696. *** 456,462 ****
  697.       else
  698.           direction = !flags;
  699.   #ifdef REGCMP
  700. !     if (err && *pattern)
  701.       xfree(err);
  702.       else if (err == (char *)-1 && !*pattern) {
  703.       print("No previous regular expression.");
  704. --- 458,464 ----
  705.       else
  706.           direction = !flags;
  707.   #ifdef REGCMP
  708. !     if (err != (char *)-1 && *pattern)
  709.       xfree(err);
  710.       else if (err == (char *)-1 && !*pattern) {
  711.       print("No previous regular expression.");
  712. *** /tmp/,RCSt1015810    Wed May 22 23:52:36 1991
  713. --- tool.c    Wed May 22 18:20:45 1991
  714. ***************
  715. *** 145,151 ****
  716.       (void) notify_interpose_event_func(pager_textsw,
  717.       scroll_textwin, NOTIFY_SAFE);
  718.   
  719. !     (void) sprintf(blank, "%128c", ' ');
  720.       mrect = *(Rect *)window_get(hdr_sw, WIN_RECT);
  721.       pw_writebackground(hdr_win, 0,0, mrect.r_width, mrect.r_height, PIX_CLR);
  722.       istool = 2;
  723. --- 145,151 ----
  724.       (void) notify_interpose_event_func(pager_textsw,
  725.       scroll_textwin, NOTIFY_SAFE);
  726.   
  727. !     (void) sprintf(blank, "%*c", sizeof blank - 1, ' ');
  728.       mrect = *(Rect *)window_get(hdr_sw, WIN_RECT);
  729.       pw_writebackground(hdr_win, 0,0, mrect.r_width, mrect.r_height, PIX_CLR);
  730.       istool = 2;
  731.  
  732. -- 
  733. Bart Schaefer                                           schaefer@zipcode.com
  734. Z-Code Software Corporation                             schaefer@cse.ogi.edu
  735.  
  736. exit 0 # Just in case...
  737. -- 
  738. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  739. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  740. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  741. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  742.