home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume32 / mush / patch05a next >
Text File  |  1992-10-18  |  40KB  |  1,160 lines

  1. Newsgroups: comp.sources.misc
  2. From: bart@zigzag.z-code.com (Bart Schaefer)
  3. Subject:  v32i101:  mush - Mail User's Shell, Patch05a/3
  4. Message-ID: <csm-v32i101=mush.090852@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: de0a568d764b1a26ccc4349228eda4a5
  6. Date: Fri, 16 Oct 1992 14:12:58 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: bart@zigzag.z-code.com (Bart Schaefer)
  10. Posting-number: Volume 32, Issue 101
  11. Archive-name: mush/patch05a
  12. Environment: UNIX
  13. Patch-To: mush: Volume 18, Issue 58-79
  14.  
  15. [ Please note: there are three parts to this submission, the 
  16. [ first two parts are actual patches while the third part is 
  17. [ a shar file of new files. -Kent+
  18.  
  19. This is Part 01 of Official Patch #5 for Mush 7.2.  To apply this patch,
  20. save this message to a file in your mush source directory and type:
  21.  
  22.     patch -N -p1 < file
  23.  
  24. If you are using an Apollo workstation, you will first need to apply
  25. Part 02 of this patch, and then proceed with:
  26.  
  27.     sh apollo.shar
  28.     patch -N -p1 < apollo.patch
  29.  
  30. See the files README and README.apollo for details.
  31.  
  32. This patch is a bit odd in that it contains a patch to a shar file (the
  33. apollo.shar) but that was smaller than resending the entire shar.
  34.  
  35. New stuff:
  36.  
  37.   * POP support; -T timeout option works to specify time between POP checks
  38.  
  39.   * MIME support (recognizes MIME messages and sends them to "metamail"
  40.     if it is available; see variable $metamail)
  41.  
  42.   * Expansion of variable values containing quote characters finally works
  43.     the way it does in most shells
  44.  
  45.   * Check for From_ line even if MMDF is defined, to get date_received etc.
  46.  
  47. Bugfixes:
  48.  
  49.   * Better parsing of double-quoted tokens in addresses
  50.  
  51.   * Unsetenv allocates a new copy of the environment on first call
  52.  
  53.   * Doesn't attempt to init tty if there isn't one
  54.  
  55.   * #define CURSES in config.h (as opposed to in CFLAGS) should work
  56.  
  57.   * On AIX, curses mode won't dump core
  58.  
  59.   * Recognize more date formats, and store dates to resolution in seconds
  60.     for more accurate date sorting
  61.  
  62.   * Tool mode "sort" menu "by value of sort variable" works now
  63.  
  64.   * Better handling of X.400 addresses (heuristic for distinguishing them
  65.     from file names has been improved)
  66.  
  67.   * Tool mode "save" pullright directory-walking menus work in all contexts
  68.     (I hope)
  69.  
  70.   * Moved that silly piece of code that was setting $realname to the
  71.     spool folder path
  72.  
  73.   * Code to init all hostname aliases for $hostname finally works right in
  74.     all cases
  75.  
  76.   * Many improvements to DOT_LOCK; NFS "secure" lockfile creation
  77.  
  78.   * ~user/$variable parses correctly and expands $variable
  79.  
  80.   * Some compilation fixes for SGI IRIX
  81.  
  82.   * Child-process management for pager process improved
  83.  
  84.   * Support for POSIX_UTIME fixed
  85.  
  86.   * "saveopts" of variables, aliases, etc. with embedded quotes of mixed
  87.     types does appropriate quoting of its output
  88.  
  89. @OFF
  90.  
  91. As usual, complete sources for Mush (already including the changes in this
  92. patch) can be obtained via anonymous ftp from:
  93.  
  94.                   cse.ogi.edu:pub/mush/mush-7.2.tar.Z
  95.  
  96. It may be a few days before I have a chance to update the cse.ogi.edu
  97. archive, so if you need 7.2.5 _now_, save this patch before retrieving
  98. the rest of the source.
  99.  
  100. Mush 7.2 was most recently posted to comp.sources.misc at patchlevel 2.
  101. Patches 3, 4, 5, and any future patches will be made available for ftp
  102. from cse.ogi.edu, or you can send E-mail to me:
  103.  
  104.                          schaefer@cse.ogi.edu
  105.  
  106. Include in your message a line of the form
  107.  
  108. @PATCH patch-number path-from-ogicse-to-you
  109.  
  110. where patch-number is the number of the patch you need (digit, 3 to 5)
  111. and path-from-ogicse-to-you is either your Internet domain address or
  112. a UUCP path from site ogicse to you at your site.  There continue to
  113. be sendmail configuration problems at ogicse so please do not use mixed
  114. UUCP and Internet addresses and do not use domain names (with `.'s) in
  115. UUCP paths.  Ogicse does do UUCP map lookups now, so user@site.UUCP will
  116. often work if your site is registered.  If you don't get your patches
  117. in 2 or 3 days, try again, but use a different path.
  118.  
  119. You may include one @PATCH line for each patch you need.
  120.  
  121. You can also recieve a complete set of sources by E-mail by including
  122. a line of the form
  123.  
  124. @MUSH path-from-ogicse-to-you
  125.  
  126. where path-from-ogicse-to-you is as above.  You need not request both
  127. source and patches; the source you receive will include all current
  128. patches.  Sources are shipped as a 10-part compressed tar file, encoded
  129. for mailing with the "btoa" utility.  You will receive instructions
  130. explaining how to unpack the tar file in a separate message.
  131.  
  132. Decwrl also operates an E-mail server that accesses anonymous ftp.  To
  133. get instructions, send a message to:
  134.  
  135.                         ftpmail@decwrl.dec.com
  136.  
  137. Include the following lines in the text:
  138.  
  139. help
  140. quit
  141.  
  142. To get the mush sources, send the following:
  143.  
  144. reply your-email-address
  145. connect cse.ogi.edu
  146. chdir pub/mush
  147. btoa                <-- replace with uuencode if you prefer
  148. binary
  149. get mush-7.2.tar.Z
  150. quit
  151.  
  152. Other information, plus questions and answers, on mush and mush patches
  153. is available from the mush-users mailing list, which is gatewayed in
  154. both directions with newsgroup comp.mail.mush.  The list currently
  155. resides at mush-users@apple.com.  Requests to be added to or deleted
  156. from the list should be sent to mush-users-request@apple.com
  157.  
  158. Prereq: 7.2.4"
  159. *** 7.2.4/mush.1    Sun Feb  2 14:35:12 1992
  160. --- 7.2.5/mush.1    Wed Oct 14 00:57:54 1992
  161. ***************
  162. *** 10,16 ****
  163.   .if n .ds - --
  164.   .if t .ds - \(em
  165.   .nh
  166. ! .TH MUSH 1 "Feb 2, 1992" "Version 7.2.4"
  167.   .SH NAME
  168.   The Mail User's Shell \- Shell for electronic mail.
  169.   .SH SYNOPSIS
  170. --- 10,16 ----
  171.   .if n .ds - --
  172.   .if t .ds - \(em
  173.   .nh
  174. ! .TH MUSH 1 "Oct 14, 1992" "Version 7.2.5"
  175.   .SH NAME
  176.   The Mail User's Shell \- Shell for electronic mail.
  177.   .SH SYNOPSIS
  178. ***************
  179. *** 4424,4429 ****
  180. --- 4424,4472 ----
  181.   When
  182.   .B mbox
  183.   is not set, \*Q~/mbox\*U is used.
  184. + .TP
  185. + .B metamail
  186. + (String)
  187. + This variable should be set to the name of a program that displays
  188. + multimedia messages encapsulated in MIME format
  189. + .RI ( e.g. ,
  190. + Nathaniel Borenstein's
  191. + .I metamail
  192. + program).
  193. + When this variable is set, any message that contains a Content-Type: header
  194. + will be passed to the indicated program for display (by any of the commands
  195. + .BR print ,
  196. + .BR type ,
  197. + .BR next ,
  198. + .IR etc. ).
  199. + This overrides truncation by the
  200. + .B top
  201. + command, disregards the value of
  202. + .BR crt ,
  203. + and forces all headers to be passed to the display program.
  204. + .IR NOTE :
  205. + If
  206. + .B alwaysignore
  207. + is boolean true (set but with no value), ignored headers are omitted and
  208. + blank lines are stripped as specified by the value of
  209. + .BR squeeze ,
  210. + .IR "even when sending to the metamail pager" .
  211. + If you set
  212. + .BR metamail ,
  213. + you should either not set
  214. + .B alwaysignore
  215. + or set it to one or more of its possible values.
  216. + .sp
  217. + The program specified by
  218. + .B metamail
  219. + is invoked in tool mode as well, instead of paging the message in the
  220. + message subwindow.
  221. + This program is therefore expected to be able to determine for itself
  222. + .RI ( e.g. ,
  223. + via the
  224. + .I mailcap
  225. + configuration file) that SunView is running, and to
  226. + create appropriate windows as needed.
  227.   .TP
  228.   .B metoo
  229.   (Boolean)
  230. *** 7.2.4/README    Sun Feb  2 09:24:06 1992
  231. --- 7.2.5/README    Sat Aug 22 11:46:59 1992
  232. ***************
  233. *** 28,38 ****
  234.   implementing features and providing backwards compatibility with previous
  235.   versions.  Modification of the source for personal use is permitted.
  236.   Modifications sent to the authors are humbly accepted and it is their
  237. ! perogative to make the mods official.  Only the "official" sources may be
  238.   redistributed and no sale of the code or any part thereof is permitted
  239.   without written consent from the authors.  Further, no part of the code
  240.   may be used in any other product, free or otherwise, without consent from
  241. ! the authors.
  242.   
  243.   MUSH IS PROVIDED AS IS, WITHOUT WARRANTY.  AUTHORS HEREBY DISCLAIM
  244.   ALL WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
  245. --- 28,39 ----
  246.   implementing features and providing backwards compatibility with previous
  247.   versions.  Modification of the source for personal use is permitted.
  248.   Modifications sent to the authors are humbly accepted and it is their
  249. ! prerogative to make the mods official.  Only the "official" sources may be
  250.   redistributed and no sale of the code or any part thereof is permitted
  251.   without written consent from the authors.  Further, no part of the code
  252.   may be used in any other product, free or otherwise, without consent from
  253. ! the authors.  Distribution of sources containing adaptations of the SunView
  254. ! interface to XView or to any X11-based interface is expressly prohibited.
  255.   
  256.   MUSH IS PROVIDED AS IS, WITHOUT WARRANTY.  AUTHORS HEREBY DISCLAIM
  257.   ALL WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
  258. ***************
  259. *** 229,235 ****
  260.       configuration in order to work properly.  There seem to be
  261.       major differences between the last several releases, so your
  262.       milage may vary.  Before RISC/OS 3.2, there are numerous curses
  263. !     library bugs, and, lock.c should be compiled with BSD defined, but
  264.       everything else should be SYSV.  -DGETWD should be used and -lbsd
  265.       must be added to OTHERLIBS in the Makefile.
  266.   
  267. --- 230,236 ----
  268.       configuration in order to work properly.  There seem to be
  269.       major differences between the last several releases, so your
  270.       milage may vary.  Before RISC/OS 3.2, there are numerous curses
  271. !     library bugs, and lock.c should be compiled with BSD defined, but
  272.       everything else should be SYSV.  -DGETWD should be used and -lbsd
  273.       must be added to OTHERLIBS in the Makefile.
  274.   
  275. ***************
  276. *** 302,307 ****
  277. --- 303,315 ----
  278.   Smail:
  279.       If you are using smail-2.x you need to define NO_COMMAS and PICKY_MAILER.
  280.       On a SYSV system, define MAIL_DELIVERY as /bin/rmail.
  281. + POP:
  282. +     Define POP3_SUPPORT.  You may also need to define HOMEMAIL; see config.h
  283. +     for additional configuration of HOMEMAIL.
  284. +     You will still need to define other macros appropriately for the
  285. +     transport agent that is used to *send* mail from your machine.
  286.   
  287.   All others:
  288.       Chances are, your MTA uses the "From " format to separate messges in
  289. *** 7.2.4/dates.c    Thu May 16 18:28:48 1991
  290. --- 7.2.5/dates.c    Sat Aug 22 11:46:50 1992
  291. ***************
  292. *** 220,226 ****
  293.       char Wkday[4], Zone[12], dst[4];
  294.       char a_or_p;
  295.       int Month = 0, Day = 0, Year = 0;
  296. !     int Hours = -1, Mins = -1;
  297.       struct tm T;
  298.   
  299.       Zone[0] = dst[0] = 0;
  300. --- 220,226 ----
  301.       char Wkday[4], Zone[12], dst[4];
  302.       char a_or_p;
  303.       int Month = 0, Day = 0, Year = 0;
  304. !     int Hours = -1, Mins = -1, Secs = -1;
  305.       struct tm T;
  306.   
  307.       Zone[0] = dst[0] = 0;
  308. ***************
  309. *** 238,275 ****
  310.       /* RFC822 formats and minor variations -- order important */
  311.   
  312.       /*   day_number month_name year_number time timezone */
  313. !     if (sscanf(p, "%d %s %d %d:%d:%*d %7s %3s",
  314. !         &Day, month, &Year, &Hours, &Mins, Zone, dst) >= 5 && Day)
  315.       goto gotit;
  316.       Zone[0] = dst[0] = 0;
  317.       if (sscanf(p, "%d %s %d %d:%d %7s",
  318. !         &Day, month, &Year, &Hours, &Mins, Zone, dst) >= 5 && Day)
  319.       goto gotit;
  320.       Zone[0] = dst[0] = 0;
  321.       /*   day_name day_number month_name year_number time timezone */
  322. !     if (sscanf(p, "%*s %d %s %d %d:%d:%*d %7s %3s",
  323. !         &Day, month, &Year, &Hours, &Mins, Zone, dst) >= 5 && Day)
  324.       goto gotit;
  325.       Zone[0] = dst[0] = 0;
  326.       if (sscanf(p, "%*s %d %s %d %d:%d %7s %3s",
  327. !         &Day, month, &Year, &Hours, &Mins, Zone, dst) >= 5 && Day)
  328.       goto gotit;
  329.       Zone[0] = dst[0] = 0;
  330.   
  331.       /* Ctime format (From_ lines) -- timezone almost never found */
  332.   
  333. -     /*   day_name month_name day_number time year_number */
  334. -     if (sscanf(p, "%*s %s %d %d:%d:%*d %d",
  335. -         month, &Day, &Hours, &Mins, &Year) == 5)
  336. -     goto gotit;
  337.       /*   day_name month_name day_number time timezone year_number */
  338. !     if (sscanf(p, "%*s %s %d %d:%d:%*d %7s %d",
  339. !         month, &Day, &Hours, &Mins, Zone, &Year) == 6)
  340.       goto gotit;
  341.       Zone[0] = 0;
  342. !     if (sscanf(p, "%*s %s %d %d:%d:%*d %7s %3s %d",
  343. !         month, &Day, &Hours, &Mins, Zone, dst, &Year) == 7)
  344.       goto gotit;
  345.       Zone[0] = dst[0] = 0;
  346.   
  347.       /* Other common variants */
  348. --- 238,280 ----
  349.       /* RFC822 formats and minor variations -- order important */
  350.   
  351.       /*   day_number month_name year_number time timezone */
  352. !     if (sscanf(p, "%d %s %d %d:%d:%d %7s %3s",
  353. !         &Day, month, &Year, &Hours, &Mins, &Secs, Zone, dst) >= 6 && Day)
  354.       goto gotit;
  355.       Zone[0] = dst[0] = 0;
  356.       if (sscanf(p, "%d %s %d %d:%d %7s",
  357. !         &Day, month, &Year, &Hours, &Mins, Zone) >= 5 && Day) {
  358. !     Secs = 0;
  359.       goto gotit;
  360. +     }
  361.       Zone[0] = dst[0] = 0;
  362.       /*   day_name day_number month_name year_number time timezone */
  363. !     if (sscanf(p, "%*s %d %s %d %d:%d:%d %7s %3s",
  364. !         &Day, month, &Year, &Hours, &Mins, &Secs, Zone, dst) >= 6 && Day)
  365.       goto gotit;
  366.       Zone[0] = dst[0] = 0;
  367.       if (sscanf(p, "%*s %d %s %d %d:%d %7s %3s",
  368. !         &Day, month, &Year, &Hours, &Mins, Zone, dst) >= 5 && Day) {
  369. !     Secs = 0;
  370.       goto gotit;
  371. +     }
  372.       Zone[0] = dst[0] = 0;
  373.   
  374.       /* Ctime format (From_ lines) -- timezone almost never found */
  375.   
  376.       /*   day_name month_name day_number time timezone year_number */
  377. !     if (sscanf(p, "%*s %s %d %d:%d:%d %7s %d",
  378. !         month, &Day, &Hours, &Mins, &Secs, Zone, &Year) == 7)
  379.       goto gotit;
  380.       Zone[0] = 0;
  381. !     /*   day_name month_name day_number time year_number */
  382. !     if (sscanf(p, "%*s %s %d %d:%d:%d %d",
  383. !         month, &Day, &Hours, &Mins, &Secs, &Year) == 6)
  384.       goto gotit;
  385. +     /*   day_name month_name day_number time timezone dst year_number */
  386. +     if (sscanf(p, "%*s %s %d %d:%d:%d %7s %3s %d",
  387. +         month, &Day, &Hours, &Mins, &Secs, Zone, dst, &Year) == 8)
  388. +     goto gotit;
  389.       Zone[0] = dst[0] = 0;
  390.   
  391.       /* Other common variants */
  392. ***************
  393. *** 276,289 ****
  394.   
  395.       /*   day_number month_name year_number time-timezone (day) */
  396.       /*                                       ^no colon separator */
  397. !     if (sscanf(p, "%d %s %d %2d%2d-%6[0123456789]",
  398. !         &Day, month, &Year, &Hours, &Mins, &Zone[1]) == 6) {
  399. !     Zone[0] = '-';
  400.       goto gotit;
  401. !     }
  402. !     if (sscanf(p, "%d %s %d %2d%2d-%7s",
  403. !         &Day, month, &Year, &Hours, &Mins, Zone) == 6)
  404.       goto gotit;
  405.       Zone[0] = 0;
  406.   
  407.       /*   day_number month_name year_number time timezone    */
  408. --- 281,294 ----
  409.   
  410.       /*   day_number month_name year_number time-timezone (day) */
  411.       /*                                       ^no colon separator */
  412. !     if (sscanf(p, "%d %s %d %2d%2d%1[-+]%6[0123456789]",
  413. !         &Day, month, &Year, &Hours, &Mins, &Secs, &Zone[0], &Zone[1]) == 8)
  414.       goto gotit;
  415. !     if (sscanf(p, "%d %s %d %2d%2d-%7s",    /* Does this _ever_ hit? */
  416. !         &Day, month, &Year, &Hours, &Mins, Zone) == 6) {
  417. !     Secs = 0;
  418.       goto gotit;
  419. +     }
  420.       Zone[0] = 0;
  421.   
  422.       /*   day_number month_name year_number time timezone    */
  423. ***************
  424. *** 291,313 ****
  425.       /*   (This is the odd one in the RFC822 examples section;    */
  426.       /*    also catches the slop from partial hits above.)    */
  427.       if (sscanf(p, "%d %s %d %2d%2d %7s",
  428. !         &Day, month, &Year, &Hours, &Mins, Zone) >= 5 && Day)
  429.       goto gotit;
  430.       Zone[0] = 0;
  431.       
  432.       Zone[1] = 0;    /* Yes, Zone[1] -- tested below */
  433.   
  434.       /*   day_number month_name year_number, time "-" ?? */
  435. !     if (sscanf(p,"%d %s %d, %d:%d:%*d -%6[0123456789]",
  436. !         &Day, month, &Year, &Hours, &Mins, &Zone[1]) >= 5 && Day) {
  437. !     if (Zone[1])
  438. !         Zone[0] = '-';
  439.       goto gotit;
  440. -     }
  441.   
  442.       /*   day_number month_name year_number 12_hour_time a_or_p */
  443. !     if (sscanf(p, "%d %s %d %d:%d:%*d %cm %7s",
  444. !         &Day, month, &Year, &Hours, &Mins, &a_or_p, Zone) >= 6) {
  445.       if (a_or_p == 'p')
  446.           Hours += 12;
  447.       goto gotit;
  448. --- 296,318 ----
  449.       /*   (This is the odd one in the RFC822 examples section;    */
  450.       /*    also catches the slop from partial hits above.)    */
  451.       if (sscanf(p, "%d %s %d %2d%2d %7s",
  452. !         &Day, month, &Year, &Hours, &Mins, Zone) >= 5 && Day) {
  453. !     Secs = 0;
  454.       goto gotit;
  455. +     }
  456.       Zone[0] = 0;
  457.       
  458.       Zone[1] = 0;    /* Yes, Zone[1] -- tested below */
  459.   
  460.       /*   day_number month_name year_number, time "-" ?? */
  461. !     if (sscanf(p,"%d %s %d, %d:%d:%d %1[-+]%6[0123456789]",
  462. !         &Day, month, &Year, &Hours, &Mins, &Secs,
  463. !         &Zone[0], &Zone[1]) >= 6 && Day)
  464.       goto gotit;
  465.   
  466.       /*   day_number month_name year_number 12_hour_time a_or_p */
  467. !     if (sscanf(p, "%d %s %d %d:%d:%d %cm %7s",
  468. !         &Day, month, &Year, &Hours, &Mins, &Secs, &a_or_p, Zone) >= 7) {
  469.       if (a_or_p == 'p')
  470.           Hours += 12;
  471.       goto gotit;
  472. ***************
  473. *** 314,338 ****
  474.       }
  475.   
  476.       /*   day_name month_name day_number year_number time */
  477. !     if (sscanf(p, "%*s %s %d %d %d:%d:%*d %7s",
  478. !         month, &Day, &Year, &Hours, &Mins, Zone) >= 5)
  479.       goto gotit;
  480.       Zone[0] = 0;
  481.       if (sscanf(p, "%*s %s %d %d %d:%d %7s",
  482. !         month, &Day, &Year, &Hours, &Mins, Zone) >= 5)
  483.       goto gotit;
  484.       Zone[0] = 0;
  485.   
  486.       /*   day_name month_name day_number time timezone year_number */
  487. !     if (sscanf(p, "%*s %s %d %d:%d:%*d %7s %d",
  488. !         month, &Day, &Hours, &Mins, Zone, &Year) == 6)
  489.       goto gotit;
  490.       Zone[0] = 0;
  491.       if (sscanf(p, "%*s %s %d %d:%d %7s %d",
  492. !         month, &Day, &Hours, &Mins, Zone, &Year) == 6)
  493.       goto gotit;
  494.       Zone[0] = 0;
  495.   
  496.       /*   day_number-month_name-year time */
  497.       if (sscanf(p,"%d-%[^-]-%d %d:%d", &Day, month, &Year, &Hours, &Mins) == 5)
  498.       goto gotit;
  499. --- 319,349 ----
  500.       }
  501.   
  502.       /*   day_name month_name day_number year_number time */
  503. !     if (sscanf(p, "%*s %s %d %d %d:%d:%d %7s",
  504. !         month, &Day, &Year, &Hours, &Mins, &Secs, Zone) >= 6)
  505.       goto gotit;
  506.       Zone[0] = 0;
  507.       if (sscanf(p, "%*s %s %d %d %d:%d %7s",
  508. !         month, &Day, &Year, &Hours, &Mins, Zone) >= 5) {
  509. !     Secs = 0;
  510.       goto gotit;
  511. +     }
  512.       Zone[0] = 0;
  513.   
  514.       /*   day_name month_name day_number time timezone year_number */
  515. !     if (sscanf(p, "%*s %s %d %d:%d:%d %7s %d",
  516. !         month, &Day, &Hours, &Mins, &Secs, Zone, &Year) == 7)
  517.       goto gotit;
  518.       Zone[0] = 0;
  519.       if (sscanf(p, "%*s %s %d %d:%d %7s %d",
  520. !         month, &Day, &Hours, &Mins, Zone, &Year) == 6) {
  521. !     Secs = 0;
  522.       goto gotit;
  523. +     }
  524.       Zone[0] = 0;
  525.   
  526. +     Secs = 0;    /* For the next 3 attempts */
  527.       /*   day_number-month_name-year time */
  528.       if (sscanf(p,"%d-%[^-]-%d %d:%d", &Day, month, &Year, &Hours, &Mins) == 5)
  529.       goto gotit;
  530. ***************
  531. *** 348,355 ****
  532.   
  533.       /*   month_name day_number time year Zone */
  534.       /*   (ctime, but without the day name)    */
  535. !     if (sscanf(p, "%s %d %d:%d:%*d %d %7s",
  536. !         month, &Day, &Hours, &Mins, &Year, Zone) >= 5)
  537.       goto gotit;
  538.       Zone[0] = 0;
  539.   
  540. --- 359,366 ----
  541.   
  542.       /*   month_name day_number time year Zone */
  543.       /*   (ctime, but without the day name)    */
  544. !     if (sscanf(p, "%s %d %d:%d:%d %d %7s",
  545. !         month, &Day, &Hours, &Mins, &Secs, &Year, Zone) >= 6)
  546.       goto gotit;
  547.       Zone[0] = 0;
  548.   
  549. ***************
  550. *** 383,389 ****
  551.           days_ctr++;
  552.           (void) (sprintf(Wkday, "%.3s", day_names[(int)(days_ctr % 7L)]));
  553.       }
  554. !     T.tm_sec = 0;        /* not recorded, so ignore it */
  555.       T.tm_min = Mins;
  556.       T.tm_hour = Hours;
  557.       T.tm_mday = Day;
  558. --- 394,400 ----
  559.           days_ctr++;
  560.           (void) (sprintf(Wkday, "%.3s", day_names[(int)(days_ctr % 7L)]));
  561.       }
  562. !     T.tm_sec = Secs;
  563.       T.tm_min = Mins;
  564.       T.tm_hour = Hours;
  565.       T.tm_mday = Day;
  566. *** 7.2.4/makefile.bsd    Thu Jan 30 22:00:59 1992
  567. --- 7.2.5/makefile.bsd    Sat Aug 22 11:47:04 1992
  568. ***************
  569. *** 1,16 ****
  570.   # makefile.bsd    (c) copyright 1991    (Dan Heller)
  571.   # SunOS users should add -DSUN_3_5, -DSUN_4_0, or -DSUN_4_1 to CFLAGS.
  572.   #
  573. ! HDRS= mush.h config.h-dist strings.h bindings.h options.h version.h glob.h
  574.   
  575.   SRCS= main.c init.c misc.c mail.c hdrs.c execute.c commands.c print.c dates.c \
  576.         signals.c setopts.c msgs.c pick.c sort.c expr.c folders.c \
  577.         loop.c viewopts.c curses.c curs_io.c bind.c file.c strings.c \
  578. !       lock.c macros.c options.c addrs.c malloc.c glob.c command2.c
  579.   OBJS= main.o init.o misc.o mail.o hdrs.o execute.o commands.o print.o file.o \
  580.         signals.o setopts.o msgs.o pick.o sort.o expr.o strings.o \
  581.         folders.o dates.o loop.o viewopts.o curses.o curs_io.o bind.o \
  582. !       lock.o macros.o options.o addrs.o malloc.o glob.o command2.o
  583.   
  584.   HELP_FILES= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  585.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  586. --- 1,18 ----
  587.   # makefile.bsd    (c) copyright 1991    (Dan Heller)
  588.   # SunOS users should add -DSUN_3_5, -DSUN_4_0, or -DSUN_4_1 to CFLAGS.
  589.   #
  590. ! HDRS= mush.h config.h-dist strings.h bindings.h options.h version.h glob.h pop.h
  591.   
  592.   SRCS= main.c init.c misc.c mail.c hdrs.c execute.c commands.c print.c dates.c \
  593.         signals.c setopts.c msgs.c pick.c sort.c expr.c folders.c \
  594.         loop.c viewopts.c curses.c curs_io.c bind.c file.c strings.c \
  595. !       lock.c macros.c options.c addrs.c malloc.c glob.c command2.c \
  596. !       pop.c pmush.c xcreat.c
  597.   OBJS= main.o init.o misc.o mail.o hdrs.o execute.o commands.o print.o file.o \
  598.         signals.o setopts.o msgs.o pick.o sort.o expr.o strings.o \
  599.         folders.o dates.o loop.o viewopts.o curses.o curs_io.o bind.o \
  600. !       lock.o macros.o options.o addrs.o malloc.o glob.o command2.o \
  601. !       pop.o pmush.o xcreat.o
  602.   
  603.   HELP_FILES= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  604.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  605. *** 7.2.4/makefile.hpux    Thu Jan 30 22:01:20 1992
  606. --- 7.2.5/makefile.hpux    Sat Aug 22 11:47:04 1992
  607. ***************
  608. *** 1,20 ****
  609.   # Mush makefile for HP/UX.
  610.   #
  611. ! HDRS1= mush.h config.h
  612.   HDRS2= strings.h options.h
  613.   HDRS3= bindings.h glob.h
  614. ! HDRS4= version.h
  615.   SRCS1= commands.c dates.c execute.c expr.c folders.c \
  616.       hdrs.c init.c loop.c mail.c main.c misc.c msgs.c pick.c \
  617.       print.c setopts.c signals.c sort.c viewopts.c options.c lock.c
  618.   SRCS2= bind.c curs_io.c curses.c file.c strings.c macros.c \
  619. !     addrs.c malloc.c glob.c command2.c
  620.   
  621.   OBJS1= commands.o dates.o execute.o expr.o folders.o \
  622.       hdrs.o init.o loop.o mail.o main.o misc.o msgs.o pick.o \
  623.       print.o setopts.o signals.o sort.o viewopts.o options.o lock.o
  624.   OBJS2= bind.o curs_io.o curses.o file.o strings.o macros.o \
  625. !     addrs.o malloc.o glob.o command2.o
  626.   
  627.   HELP_FILES= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  628.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  629. --- 1,20 ----
  630.   # Mush makefile for HP/UX.
  631.   #
  632. ! HDRS1= mush.h config.h-dist
  633.   HDRS2= strings.h options.h
  634.   HDRS3= bindings.h glob.h
  635. ! HDRS4= version.h pop.h
  636.   SRCS1= commands.c dates.c execute.c expr.c folders.c \
  637.       hdrs.c init.c loop.c mail.c main.c misc.c msgs.c pick.c \
  638.       print.c setopts.c signals.c sort.c viewopts.c options.c lock.c
  639.   SRCS2= bind.c curs_io.c curses.c file.c strings.c macros.c \
  640. !     addrs.c malloc.c glob.c command2.c pop.c pmush.c xcreat.c
  641.   
  642.   OBJS1= commands.o dates.o execute.o expr.o folders.o \
  643.       hdrs.o init.o loop.o mail.o main.o misc.o msgs.o pick.o \
  644.       print.o setopts.o signals.o sort.o viewopts.o options.o lock.o
  645.   OBJS2= bind.o curs_io.o curses.o file.o strings.o macros.o \
  646. !     addrs.o malloc.o glob.o command2.o pop.o pmush.o xcreat.o
  647.   
  648.   HELP_FILES= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  649.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  650. *** 7.2.4/makefile.sun    Thu Jan 30 22:01:37 1992
  651. --- 7.2.5/makefile.sun    Sat Aug 22 11:47:07 1992
  652. ***************
  653. *** 3,21 ****
  654.   # Note that the default SunOS version for mush is 4.1.  If you have an
  655.   # older version of SunOS, you must explicitly define SUN_3_5 or SUN_4_0.
  656.   #
  657. ! HDRS= mush.h config.h-dist strings.h bindings.h options.h version.h glob.h
  658.   
  659.   SRCS= addrs.c bind.c commands.c curs_io.c curses.c dates.c doproc.c \
  660.         execute.c expr.c file.c fkeys.c folders.c glob.c hdrs.c init.c lock.c \
  661.         loop.c macros.c mail.c main.c malloc.c misc.c misc_frame.c msgs.c \
  662.         options.c panels.c pick.c print.c hdr_sw.c setopts.c signals.c sort.c \
  663. !       strings.c tool.c tooledit.c viewopts.c command2.c
  664.   
  665.   OBJS= addrs.o bind.o commands.o curs_io.o curses.o dates.o doproc.o \
  666.         execute.o expr.o file.o fkeys.o folders.o glob.o hdrs.o init.o lock.o \
  667.         loop.o macros.o mail.o main.o malloc.o misc.o misc_frame.o msgs.o \
  668.         options.o panels.o pick.o print.o hdr_sw.o setopts.o signals.o sort.o \
  669. !       strings.o tool.o tooledit.o viewopts.o command2.o
  670.   
  671.   IMAGES= mail.icon.1 mail.icon.2
  672.   
  673. --- 3,21 ----
  674.   # Note that the default SunOS version for mush is 4.1.  If you have an
  675.   # older version of SunOS, you must explicitly define SUN_3_5 or SUN_4_0.
  676.   #
  677. ! HDRS= mush.h config.h-dist strings.h bindings.h options.h version.h glob.h pop.h
  678.   
  679.   SRCS= addrs.c bind.c commands.c curs_io.c curses.c dates.c doproc.c \
  680.         execute.c expr.c file.c fkeys.c folders.c glob.c hdrs.c init.c lock.c \
  681.         loop.c macros.c mail.c main.c malloc.c misc.c misc_frame.c msgs.c \
  682.         options.c panels.c pick.c print.c hdr_sw.c setopts.c signals.c sort.c \
  683. !       strings.c tool.c tooledit.c viewopts.c command2.c pop.c pmush.c xcreat.c
  684.   
  685.   OBJS= addrs.o bind.o commands.o curs_io.o curses.o dates.o doproc.o \
  686.         execute.o expr.o file.o fkeys.o folders.o glob.o hdrs.o init.o lock.o \
  687.         loop.o macros.o mail.o main.o malloc.o misc.o misc_frame.o msgs.o \
  688.         options.o panels.o pick.o print.o hdr_sw.o setopts.o signals.o sort.o \
  689. !       strings.o tool.o tooledit.o viewopts.o command2.o pop.o pmush.o xcreat.o
  690.   
  691.   IMAGES= mail.icon.1 mail.icon.2
  692.   
  693. *** 7.2.4/makefile.sys.v    Thu Jan 30 22:02:19 1992
  694. --- 7.2.5/makefile.sys.v    Sat Aug 22 11:47:04 1992
  695. ***************
  696. *** 4,21 ****
  697.   HDRS1= mush.h config.h
  698.   HDRS2= strings.h options.h
  699.   HDRS3= bindings.h glob.h
  700. ! HDRS4= version.h
  701.   SRCS1= commands.c dates.c execute.c expr.c folders.c \
  702.       hdrs.c init.c loop.c mail.c main.c misc.c msgs.c pick.c \
  703.       print.c setopts.c signals.c sort.c viewopts.c options.c lock.c
  704.   SRCS2= bind.c curs_io.c curses.c file.c strings.c macros.c \
  705. !     addrs.c malloc.c glob.c command2.c
  706.   
  707.   OBJS1= commands.o dates.o execute.o expr.o folders.o \
  708.       hdrs.o init.o loop.o mail.o main.o misc.o msgs.o pick.o \
  709.       print.o setopts.o signals.o sort.o viewopts.o options.o lock.o
  710.   OBJS2= bind.o curs_io.o curses.o file.o strings.o macros.o \
  711. !     addrs.o malloc.o glob.o command2.o
  712.   
  713.   HELP= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  714.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  715. --- 4,21 ----
  716.   HDRS1= mush.h config.h
  717.   HDRS2= strings.h options.h
  718.   HDRS3= bindings.h glob.h
  719. ! HDRS4= version.h pop.h
  720.   SRCS1= commands.c dates.c execute.c expr.c folders.c \
  721.       hdrs.c init.c loop.c mail.c main.c misc.c msgs.c pick.c \
  722.       print.c setopts.c signals.c sort.c viewopts.c options.c lock.c
  723.   SRCS2= bind.c curs_io.c curses.c file.c strings.c macros.c \
  724. !     addrs.c malloc.c glob.c command2.c pop.c pmush.c xcreat.c
  725.   
  726.   OBJS1= commands.o dates.o execute.o expr.o folders.o \
  727.       hdrs.o init.o loop.o mail.o main.o misc.o msgs.o pick.o \
  728.       print.o setopts.o signals.o sort.o viewopts.o options.o lock.o
  729.   OBJS2= bind.o curs_io.o curses.o file.o strings.o macros.o \
  730. !     addrs.o malloc.o glob.o command2.o pop.o pmush.o xcreat.o
  731.   
  732.   HELP= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  733.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  734. *** 7.2.4/makefile.xenix    Thu Jan 30 22:02:41 1992
  735. --- 7.2.5/makefile.xenix    Sat Aug 22 11:47:04 1992
  736. ***************
  737. *** 6,12 ****
  738.   # are running some other kind of xenix, you might need to change the
  739.   # CFLAGS and LDFLAGS options.
  740.   #
  741. ! HDRS= mush.h config.h-dist strings.h bindings.h options.h version.h glob.h
  742.   SRCS1= main.c init.c misc.c execute.c
  743.   SRCS2= signals.c msgs.c pick.c viewopts.c
  744.   SRCS3= sort.c expr.c folders.c dates.c
  745. --- 6,12 ----
  746.   # are running some other kind of xenix, you might need to change the
  747.   # CFLAGS and LDFLAGS options.
  748.   #
  749. ! HDRS= mush.h config.h-dist strings.h bindings.h options.h version.h glob.h pop.h
  750.   SRCS1= main.c init.c misc.c execute.c
  751.   SRCS2= signals.c msgs.c pick.c viewopts.c
  752.   SRCS3= sort.c expr.c folders.c dates.c
  753. ***************
  754. *** 15,25 ****
  755.   SRCS6= mail.c print.c
  756.   SRCS7= curses.c curs_io.c
  757.   SRCS8= file.c strings.c malloc.c
  758. ! SRCS9= lock.c macros.c addrs.c glob.c
  759.   OBJS= main.o init.o misc.o mail.o hdrs.o execute.o commands.o print.o file.o \
  760.         signals.o setopts.o msgs.o pick.o sort.o expr.o strings.o \
  761.         folders.o dates.o loop.o viewopts.o bind.o curses.o curs_io.o \
  762. !       lock.o macros.o options.o addrs.o malloc.o glob.o command2.o
  763.   HELP_FILES= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  764.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  765.       sample.mushrc advanced.mushrc digestify
  766. --- 15,26 ----
  767.   SRCS6= mail.c print.c
  768.   SRCS7= curses.c curs_io.c
  769.   SRCS8= file.c strings.c malloc.c
  770. ! SRCS9= lock.c macros.c addrs.c glob.c pop.c pmush.c xcreat.c
  771.   OBJS= main.o init.o misc.o mail.o hdrs.o execute.o commands.o print.o file.o \
  772.         signals.o setopts.o msgs.o pick.o sort.o expr.o strings.o \
  773.         folders.o dates.o loop.o viewopts.o bind.o curses.o curs_io.o \
  774. !       lock.o macros.o options.o addrs.o malloc.o glob.o command2.o \
  775. !       pop.o pmush.o xcreat.o
  776.   HELP_FILES= README README-7.0 README-7.1 README-7.2.0 README-7.2.2 \
  777.       README-7.2.4 mush.1 cmd_help Mushrc Mailrc Gnurc \
  778.       sample.mushrc advanced.mushrc digestify
  779. *** 7.2.4/doproc.c    Thu Dec  6 16:52:58 1990
  780. --- 7.2.5/doproc.c    Sat Aug 22 11:47:05 1992
  781. ***************
  782. *** 873,879 ****
  783.       when 4: argv[1] = "s";
  784.       when 5: argv[1] = "d";
  785.       when 6: argv[1] = "p";
  786. !     when 7: do_set(set_options, "sort");
  787.       when 8: (void) help(0, "sort", tool_help);
  788.       }
  789.       if (value != 8) {
  790. --- 873,879 ----
  791.       when 4: argv[1] = "s";
  792.       when 5: argv[1] = "d";
  793.       when 6: argv[1] = "p";
  794. !     when 7: if (!(argv[1] = do_set(set_options, "sort"))) return;
  795.       when 8: (void) help(0, "sort", tool_help);
  796.       }
  797.       if (value != 8) {
  798. *** 7.2.4/hdr_sw.c    Thu Dec  6 16:52:59 1990
  799. --- 7.2.5/hdr_sw.c    Sat Aug 22 11:47:06 1992
  800. ***************
  801. *** 359,371 ****
  802.       /* if user selected something, figure out what was selected. */
  803.       if (!cur_msg_item)
  804.           return;
  805.   #ifndef NO_WALK_MENUS
  806. !     if ((Menu)menu_get(cur_msg_item, MENU_PARENT) == hdr_save_menu) {
  807. !         save_place = (char *)menu_get(cur_msg_item, MENU_CLIENT_DATA);
  808. !         action = SAVE_MSG;
  809. !     } else
  810.   #endif /* NO_WALK_MENUS */
  811. !         action = (char *) menu_get(cur_msg_item, MENU_CLIENT_DATA);
  812.       } else
  813.       action = (char *) event;
  814.   
  815. --- 359,382 ----
  816.       /* if user selected something, figure out what was selected. */
  817.       if (!cur_msg_item)
  818.           return;
  819. +     else {
  820.   #ifndef NO_WALK_MENUS
  821. !         Menu item = (Menu)cur_msg_item;
  822. !         while (item = (Menu)menu_get(item, MENU_PARENT))
  823. !         if ((Menu)item == hdr_save_menu)
  824. !             break;
  825. !         /* May also need to test the type of item and
  826. !          * break if it is not a Menu_item -- but how??
  827. !          * My sunview isn't that good ... I got the
  828. !          * fragment above from Dan's XView book.
  829. !          */
  830. !         if ((Menu)item == hdr_save_menu) {
  831. !         save_place = (char *)menu_get(cur_msg_item, MENU_CLIENT_DATA);
  832. !         action = SAVE_MSG;
  833. !         } else
  834.   #endif /* NO_WALK_MENUS */
  835. !         action = (char *) menu_get(cur_msg_item, MENU_CLIENT_DATA);
  836. !     }
  837.       } else
  838.       action = (char *) event;
  839.   
  840. ***************
  841. *** 446,451 ****
  842. --- 457,463 ----
  843.           return;
  844.       otherwise :
  845.           print("unknown switch: %c\n", action);
  846. +         return;
  847.       }
  848.       (void) sprintf(&buf[strlen(buf)], " %d", message+1);
  849.   
  850. *** 7.2.4/apollo.shar    Tue Feb 18 22:47:32 1992
  851. --- 7.2.5/apollo.shar    Wed Oct 14 00:50:52 1992
  852. ***************
  853. *** 177,187 ****
  854.   then echo original size 1828, current size $Sum;fi
  855.   echo "x - extracting apollo.patch (Text)"
  856.   sed 's/^X//' << 'SHAR_EOF' > apollo.patch &&
  857. ! X*** 7.2.4/file.c    Thu Jan 30 20:50:48 1992
  858. ! X--- apollo/file.c    Fri Feb 14 07:48:54 1992
  859.   X***************
  860. ! X*** 467,473 ****
  861. ! X--- 467,477 ----
  862.   X  mask_fopen(file, mode)
  863.   X  char *file, *mode;
  864.   X  {
  865. --- 177,187 ----
  866.   then echo original size 1828, current size $Sum;fi
  867.   echo "x - extracting apollo.patch (Text)"
  868.   sed 's/^X//' << 'SHAR_EOF' > apollo.patch &&
  869. ! X*** 7.2.5/file.c    Sat Aug 22 11:46:56 1992
  870. ! X--- apollo/file.c    Tue Oct 13 23:53:59 1992
  871.   X***************
  872. ! X*** 469,475 ****
  873. ! X--- 469,479 ----
  874.   X  mask_fopen(file, mode)
  875.   X  char *file, *mode;
  876.   X  {
  877. ***************
  878. *** 194,200 ****
  879.   X  #ifdef SYSV
  880.   X      /* XENIX and other older sytems can't handle "a+".    Even newer
  881.   X***************
  882. ! X*** 482,490 ****
  883.   X      if (fp = fopen(file, mode))
  884.   X          (void) fseek(fp, 0L, 2); /* assure we're at the end of the file */
  885.   X      } else
  886. --- 194,200 ----
  887.   X  #ifdef SYSV
  888.   X      /* XENIX and other older sytems can't handle "a+".    Even newer
  889.   X***************
  890. ! X*** 484,492 ****
  891.   X      if (fp = fopen(file, mode))
  892.   X          (void) fseek(fp, 0L, 2); /* assure we're at the end of the file */
  893.   X      } else
  894. ***************
  895. *** 204,210 ****
  896.   X      return fp;
  897.   X  }
  898.   X  
  899. ! X--- 486,500 ----
  900.   X      if (fp = fopen(file, mode))
  901.   X          (void) fseek(fp, 0L, 2); /* assure we're at the end of the file */
  902.   X      } else
  903. --- 204,210 ----
  904.   X      return fp;
  905.   X  }
  906.   X  
  907. ! X--- 488,502 ----
  908.   X      if (fp = fopen(file, mode))
  909.   X          (void) fseek(fp, 0L, 2); /* assure we're at the end of the file */
  910.   X      } else
  911. ***************
  912. *** 220,232 ****
  913.   X      return fp;
  914.   X  }
  915.   X  
  916. ! X*** 7.2.4/init.c    Thu Jan 30 00:14:42 1992
  917. ! X--- apollo/init.c    Thu Jan 30 20:51:42 1992
  918.   X***************
  919. ! X*** 90,95 ****
  920. ! X--- 90,102 ----
  921. ! X      (void) add_option(&set_options, argv);
  922. ! X      }
  923.   X      crt = 24;
  924.   X+ #ifdef apollo
  925.   X+     if (apollo_ispad()) {
  926. --- 220,232 ----
  927.   X      return fp;
  928.   X  }
  929.   X  
  930. ! X*** 7.2.5/init.c    Sat Aug 22 13:36:35 1992
  931. ! X--- apollo/init.c    Tue Oct 13 23:54:01 1992
  932.   X***************
  933. ! X*** 93,98 ****
  934. ! X--- 93,105 ----
  935. ! X      mailfile = "";
  936. ! X  
  937.   X      crt = 24;
  938.   X+ #ifdef apollo
  939.   X+     if (apollo_ispad()) {
  940. ***************
  941. *** 238,248 ****
  942.   X      screen = 18;
  943.   X      wrapcolumn = 0; /* Default is no wrap */
  944.   X      escape = DEF_ESCAPE;
  945. ! X*** 7.2.4/lock.c    Sun Feb  2 19:43:53 1992
  946. ! X--- apollo/lock.c    Sun Feb  2 19:46:24 1992
  947.   X***************
  948. ! X*** 303,308 ****
  949. ! X--- 303,311 ----
  950.   X  {
  951.   X      struct options *tmp;
  952.   X      FILE *fp;
  953. --- 238,248 ----
  954.   X      screen = 18;
  955.   X      wrapcolumn = 0; /* Default is no wrap */
  956.   X      escape = DEF_ESCAPE;
  957. ! X*** 7.2.5/lock.c    Sun Oct 11 18:14:56 1992
  958. ! X--- apollo/lock.c    Tue Oct 13 23:54:02 1992
  959.   X***************
  960. ! X*** 305,310 ****
  961. ! X--- 305,313 ----
  962.   X  {
  963.   X      struct options *tmp;
  964.   X      FILE *fp;
  965. ***************
  966. *** 253,259 ****
  967.   X      for (tmp = exclude_list; tmp; tmp = tmp->next)
  968.   X      if (strcmp(tmp->option, filename) == 0) {
  969.   X***************
  970. ! X*** 317,323 ****
  971.   X      if (dot_lock(filename) != 0)
  972.   X      return NULL_FILE;
  973.   X  #endif /* DOT_LOCK */
  974. --- 253,259 ----
  975.   X      for (tmp = exclude_list; tmp; tmp = tmp->next)
  976.   X      if (strcmp(tmp->option, filename) == 0) {
  977.   X***************
  978. ! X*** 319,325 ****
  979.   X      if (dot_lock(filename) != 0)
  980.   X      return NULL_FILE;
  981.   X  #endif /* DOT_LOCK */
  982. ***************
  983. *** 261,267 ****
  984.   X      return NULL_FILE;
  985.   X      if (tmp = (struct options *)malloc(sizeof(struct options))) {
  986.   X      tmp->option = savestr(filename);
  987. ! X--- 320,336 ----
  988.   X      if (dot_lock(filename) != 0)
  989.   X      return NULL_FILE;
  990.   X  #endif /* DOT_LOCK */
  991. --- 261,267 ----
  992.   X      return NULL_FILE;
  993.   X      if (tmp = (struct options *)malloc(sizeof(struct options))) {
  994.   X      tmp->option = savestr(filename);
  995. ! X--- 322,338 ----
  996.   X      if (dot_lock(filename) != 0)
  997.   X      return NULL_FILE;
  998.   X  #endif /* DOT_LOCK */
  999. ***************
  1000. *** 280,287 ****
  1001.   X      if (tmp = (struct options *)malloc(sizeof(struct options))) {
  1002.   X      tmp->option = savestr(filename);
  1003.   X***************
  1004. ! X*** 384,389 ****
  1005. ! X--- 397,408 ----
  1006.   X  
  1007.   X      if (!(mail_fp = exclusive_fopen(filename, mode)))
  1008.   X      return NULL_FILE;
  1009. --- 280,287 ----
  1010.   X      if (tmp = (struct options *)malloc(sizeof(struct options))) {
  1011.   X      tmp->option = savestr(filename);
  1012.   X***************
  1013. ! X*** 386,391 ****
  1014. ! X--- 399,410 ----
  1015.   X  
  1016.   X      if (!(mail_fp = exclusive_fopen(filename, mode)))
  1017.   X      return NULL_FILE;
  1018. ***************
  1019. *** 295,302 ****
  1020.   X  
  1021.   X      if (mode[0] != 'r' || mode[1] == '+')
  1022.   X***************
  1023. ! X*** 436,441 ****
  1024. ! X--- 455,462 ----
  1025.   X      (void) exclusive_fclose(mail_fp);
  1026.   X      return NULL_FILE;
  1027.   X      }
  1028. --- 295,302 ----
  1029.   X  
  1030.   X      if (mode[0] != 'r' || mode[1] == '+')
  1031.   X***************
  1032. ! X*** 438,443 ****
  1033. ! X--- 457,464 ----
  1034.   X      (void) exclusive_fclose(mail_fp);
  1035.   X      return NULL_FILE;
  1036.   X      }
  1037. ***************
  1038. *** 305,312 ****
  1039.   X      return mail_fp;
  1040.   X  }
  1041.   X  
  1042. ! X*** 7.2.4/mail.c    Thu May 16 20:05:57 1991
  1043. ! X--- apollo/mail.c    Thu Jan 30 20:26:42 1992
  1044.   X***************
  1045.   X*** 601,606 ****
  1046.   X--- 601,612 ----
  1047. --- 305,312 ----
  1048.   X      return mail_fp;
  1049.   X  }
  1050.   X  
  1051. ! X*** 7.2.5/mail.c    Sat Aug 22 11:46:48 1992
  1052. ! X--- apollo/mail.c    Tue Oct 13 23:54:04 1992
  1053.   X***************
  1054.   X*** 601,606 ****
  1055.   X--- 601,612 ----
  1056. ***************
  1057. *** 322,332 ****
  1058.   X              if (!*p && !(p = do_set(set_options, "pager")))
  1059.   X                  p = DEF_PAGER;
  1060.   X              if (!*p || !strcmp(p, "internal"))
  1061. ! X*** 7.2.4/main.c    Wed Jan 29 23:34:31 1992
  1062. ! X--- apollo/main.c    Thu Jan 30 21:08:54 1992
  1063.   X***************
  1064. ! X*** 140,145 ****
  1065. ! X--- 140,150 ----
  1066.   X      (void) signal(SIGINT, catch);
  1067.   X      (void) signal(SIGQUIT, catch);
  1068.   X      (void) signal(SIGHUP, catch);
  1069. --- 322,332 ----
  1070.   X              if (!*p && !(p = do_set(set_options, "pager")))
  1071.   X                  p = DEF_PAGER;
  1072.   X              if (!*p || !strcmp(p, "internal"))
  1073. ! X*** 7.2.5/main.c    Mon Sep 21 10:32:25 1992
  1074. ! X--- apollo/main.c    Tue Oct 13 23:54:05 1992
  1075.   X***************
  1076. ! X*** 143,148 ****
  1077. ! X--- 143,153 ----
  1078.   X      (void) signal(SIGINT, catch);
  1079.   X      (void) signal(SIGQUIT, catch);
  1080.   X      (void) signal(SIGHUP, catch);
  1081. ***************
  1082. *** 338,361 ****
  1083.   X      if (istool || hdrs_only)
  1084.   X          turnon(glob_flags, ECHO_FLAG);
  1085.   X      if (!hdrs_only)
  1086. ! X*** 7.2.4/msgs.c    Wed Nov 13 01:28:43 1991
  1087. ! X--- apollo/msgs.c    Thu Jan 30 20:30:55 1992
  1088.   X***************
  1089. ! X*** 31,36 ****
  1090. ! X--- 31,41 ----
  1091.   X  #ifdef MSG_SEPARATOR
  1092.   X      turnon(flg, NO_SEPARATOR);
  1093.   X  #endif /* MMDF */
  1094.   X+ #ifdef apollo
  1095.   X+     if (!istool && apollo_ispad())
  1096. ! X+     pager = "NONE";        /* The pad IS the pager */
  1097.   X+     else
  1098.   X+ #endif /* apollo */
  1099. ! X      if (!istool && isoff(flg, NO_PAGE) &&
  1100. ! X          crt < msg[n].m_lines && isoff(flg, M_TOP)) {
  1101. ! X      if (!(pager = do_set(set_options, "pager")))
  1102. ! X*** 7.2.4/mush.h    Wed Jan 29 21:57:49 1992
  1103. ! X--- apollo/mush.h    Thu Jan 30 20:25:40 1992
  1104.   X***************
  1105.   X*** 56,61 ****
  1106.   X--- 56,67 ----
  1107. --- 338,361 ----
  1108.   X      if (istool || hdrs_only)
  1109.   X          turnon(glob_flags, ECHO_FLAG);
  1110.   X      if (!hdrs_only)
  1111. ! X*** 7.2.5/msgs.c    Sat Aug 22 11:46:51 1992
  1112. ! X--- apollo/msgs.c    Tue Oct 13 23:56:05 1992
  1113.   X***************
  1114. ! X*** 32,37 ****
  1115. ! X--- 32,42 ----
  1116.   X  #ifdef MSG_SEPARATOR
  1117.   X      turnon(flg, NO_SEPARATOR);
  1118.   X  #endif /* MMDF */
  1119.   X+ #ifdef apollo
  1120.   X+     if (!istool && apollo_ispad())
  1121. ! X+     pager = "NONE";         /* The pad IS the pager */
  1122.   X+     else
  1123.   X+ #endif /* apollo */
  1124. ! X      if (ison(msg[n].m_flags, METAMAIL) && isoff(flg, NO_PAGE) &&
  1125. ! X          (pager = do_set(set_options, "metamail"))) {
  1126. ! X      intro = FALSE;
  1127. ! X*** 7.2.5/mush.h    Sun Sep 20 14:12:32 1992
  1128. ! X--- apollo/mush.h    Tue Oct 13 23:54:08 1992
  1129.   X***************
  1130.   X*** 56,61 ****
  1131.   X--- 56,67 ----
  1132. ***************
  1133. *** 374,381 ****
  1134.   SHAR_EOF
  1135.   chmod 0644 apollo.patch || echo "restore of apollo.patch fails"
  1136.   set `wc -c apollo.patch`;Sum=$1
  1137. ! if test "$Sum" != "5160"
  1138. ! then echo original size 5160, current size $Sum;fi
  1139.   echo "x - extracting apollo_file.c (Text)"
  1140.   sed 's/^X//' << 'SHAR_EOF' > apollo_file.c &&
  1141.   X/*
  1142. --- 374,381 ----
  1143.   SHAR_EOF
  1144.   chmod 0644 apollo.patch || echo "restore of apollo.patch fails"
  1145.   set `wc -c apollo.patch`;Sum=$1
  1146. ! if test "$Sum" != "5134"
  1147. ! then echo original size 5134, current size $Sum;fi
  1148.   echo "x - extracting apollo_file.c (Text)"
  1149.   sed 's/^X//' << 'SHAR_EOF' > apollo_file.c &&
  1150.   X/*
  1151.  
  1152. -- 
  1153. Bart Schaefer                                     schaefer@zigzag.z-code.com
  1154. Z-Code Software Corp.                             schaefer@z-code.com
  1155.  
  1156. exit 0 # Just in case...
  1157.