home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / mail / elm / 3941 < prev    next >
Encoding:
Internet Message Format  |  1993-01-05  |  69.6 KB

  1. Xref: sparky comp.mail.elm:3941 comp.sources.bugs:320
  2. Path: sparky!uunet!spool.mu.edu!dsinc!dsinc!not-for-mail
  3. From: syd@dsinc.DSI.COM (Syd Weinstein)
  4. Newsgroups: comp.mail.elm,comp.sources.bugs
  5. Subject: elm 2.4 Patch #19
  6. Followup-To: poster
  7. Date: 5 Jan 1993 13:08:16 -0500
  8. Organization: Datacomp Systems, Inc., Huntingdon Valley, PA 19006
  9. Lines: 2445
  10. Sender: syd@dsi.com
  11. Message-ID: <1iciqgINN20g@dsinc.dsi.com>
  12. NNTP-Posting-Host: dsinc.dsi.com
  13. Summary: This is an official patch for elm 2.4 system.  Please apply it.
  14. Priority: LOW
  15.  
  16. This is part 2 of a 3 part patch
  17.  
  18. Fix:    From rn, say "| patch -p -N -d DIR", where DIR is your elm source
  19.     directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".
  20.     If you don't have the patch program, apply the following by hand,
  21.     or get patch (version 2.0, latest patchlevel).
  22.  
  23.     After patching:
  24.         do nothing, apply patch 20 next
  25.  
  26.     If patch indicates that patchlevel is the wrong version, you may need
  27.     to apply one or more previous patches, or the patch may already
  28.     have been applied.  See the patchlevel.h file to find out what has or
  29.     has not been applied.  In any event, don't continue with the patch.
  30.  
  31.     If you are missing previous patches they can be obtained from our:
  32.     archive server.
  33.  
  34.     Syd Weinstein
  35.     elm@DSI.COM
  36.  
  37.     The patches are available from the dsinc archive server
  38.     Send the following message to archive-server@DSI.COM for
  39.     a list of available patches:
  40.  
  41.     Subject: patch list
  42.     send index elm
  43.  
  44. Index: hdrs/patchlevel.h
  45. Prereq: "18"
  46. *** ../elm2.4/hdrs/patchlevel.h    Thu Dec 24 18:56:58 1992
  47. --- hdrs/patchlevel.h    Thu Dec 24 18:57:39 1992
  48. ***************
  49. *** 1 ****
  50. ! #define PATCHLEVEL "18"
  51. --- 1 ----
  52. ! #define PATCHLEVEL "19"
  53.  
  54. Index: doc/answer.1
  55. *** ../elm2.4/doc/answer.1    Thu Dec 24 18:56:33 1992
  56. --- doc/answer.1    Thu Dec 24 18:46:44 1992
  57. ***************
  58. *** 1,3 ****
  59. --- 1,9 ----
  60. + .if n \{\
  61. + .    ds ct "
  62. + .\}
  63. + .if t \{\
  64. + .    ds ct \\(co
  65. + .\}
  66.   .TH ANSWER 1L "Elm Version 2.4" "USENET Community Trust"
  67.   .SH NAME
  68.   answer - phone message transcription system
  69. ***************
  70. *** 80,85 ****
  71.   .SH BUG REPORTS TO
  72.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  73.   .SH COPYRIGHTS
  74. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  75.   .br
  76. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  77. --- 86,91 ----
  78.   .SH BUG REPORTS TO
  79.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  80.   .SH COPYRIGHTS
  81. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  82.   .br
  83. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  84.  
  85. Index: doc/autoreply.1
  86. *** ../elm2.4/doc/autoreply.1    Mon Oct 19 13:04:02 1992
  87. --- doc/autoreply.1    Thu Dec 24 18:46:47 1992
  88. ***************
  89. *** 1,3 ****
  90. --- 1,9 ----
  91. + .if n \{\
  92. + .    ds ct "
  93. + .\}
  94. + .if t \{\
  95. + .    ds ct \\(co
  96. + .\}
  97.   .TH AUTOREPLY 1L "Elm Version 2.4" "USENET Community Trust"
  98.   .SH NAME
  99.   autoreply - Automatic mail reply system
  100. ***************
  101. *** 52,57 ****
  102.   .SH BUG REPORTS TO
  103.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  104.   .SH COPYRIGHTS
  105. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  106.   .br
  107. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  108. --- 58,63 ----
  109.   .SH BUG REPORTS TO
  110.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  111.   .SH COPYRIGHTS
  112. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  113.   .br
  114. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  115.  
  116. Index: doc/chkalias.1
  117. *** ../elm2.4/doc/chkalias.1    Mon Oct 19 13:04:03 1992
  118. --- doc/chkalias.1    Thu Dec 24 18:46:50 1992
  119. ***************
  120. *** 1,3 ****
  121. --- 1,9 ----
  122. + .if n \{\
  123. + .    ds ct "
  124. + .\}
  125. + .if t \{\
  126. + .    ds ct \\(co
  127. + .\}
  128.   .TH CHECKALIAS 1L "Elm Version 2.4" "USENET Community Trust"
  129.   .SH NAME
  130.   checkalias - check to see if an alias is defined.
  131. ***************
  132. *** 30,35 ****
  133.   .SH BUG REPORTS TO
  134.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  135.   .SH COPYRIGHTS
  136. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  137.   .br
  138. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  139. --- 36,41 ----
  140.   .SH BUG REPORTS TO
  141.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  142.   .SH COPYRIGHTS
  143. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  144.   .br
  145. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  146.  
  147. Index: doc/elm.1
  148. *** ../elm2.4/doc/elm.1    Thu Dec 24 18:56:34 1992
  149. --- doc/elm.1    Thu Dec 24 18:46:52 1992
  150. ***************
  151. *** 1,3 ****
  152. --- 1,9 ----
  153. + .if n \{\
  154. + .    ds ct "
  155. + .\}
  156. + .if t \{\
  157. + .    ds ct \\(co
  158. + .\}
  159.   .TH ELM 1L "Elm Version 2.4" "USENET Community Trust"
  160.   .SH NAME
  161.   elm - an interactive mail system
  162. ***************
  163. *** 160,165 ****
  164.   .SH BUG REPORTS TO
  165.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  166.   .SH COPYRIGHTS
  167. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  168.   .br
  169. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  170. --- 166,171 ----
  171.   .SH BUG REPORTS TO
  172.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  173.   .SH COPYRIGHTS
  174. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  175.   .br
  176. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  177.  
  178. Index: doc/fastmail.1
  179. *** ../elm2.4/doc/fastmail.1    Thu Dec 24 18:56:34 1992
  180. --- doc/fastmail.1    Thu Dec 24 18:46:53 1992
  181. ***************
  182. *** 1,3 ****
  183. --- 1,9 ----
  184. + .if n \{\
  185. + .    ds ct "
  186. + .\}
  187. + .if t \{\
  188. + .    ds ct \\(co
  189. + .\}
  190.   .TH FASTMAIL 1L "Elm Version 2.4" "USENET Community Trust"
  191.   .SH NAME
  192.   fastmail - quick batch mail interface to a single address
  193. ***************
  194. *** 101,106 ****
  195.   .SH BUG REPORTS TO
  196.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  197.   .SH COPYRIGHTS
  198. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  199.   .br
  200. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  201. --- 107,112 ----
  202.   .SH BUG REPORTS TO
  203.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  204.   .SH COPYRIGHTS
  205. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  206.   .br
  207. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  208.  
  209. Index: doc/filter.1
  210. *** ../elm2.4/doc/filter.1    Tue Nov 17 14:10:55 1992
  211. --- doc/filter.1    Thu Dec 24 18:46:55 1992
  212. ***************
  213. *** 1,3 ****
  214. --- 1,9 ----
  215. + .if n \{\
  216. + .    ds ct "
  217. + .\}
  218. + .if t \{\
  219. + .    ds ct \\(co
  220. + .\}
  221.   .TH FILTER 1L "Elm Version 2.4" "USENET Community Trust"
  222.   .SH NAME
  223.   filter - filter incoming messages before adding to mailbox
  224. ***************
  225. *** 123,128 ****
  226.   .SH BUG REPORTS TO
  227.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  228.   .SH COPYRIGHTS
  229. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  230.   .br
  231. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  232. --- 129,134 ----
  233.   .SH BUG REPORTS TO
  234.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  235.   .SH COPYRIGHTS
  236. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  237.   .br
  238. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  239.  
  240. Index: doc/frm.1
  241. *** ../elm2.4/doc/frm.1    Mon Oct 19 13:04:04 1992
  242. --- doc/frm.1    Thu Dec 24 18:46:57 1992
  243. ***************
  244. *** 1,3 ****
  245. --- 1,9 ----
  246. + .if n \{\
  247. + .    ds ct "
  248. + .\}
  249. + .if t \{\
  250. + .    ds ct \\(co
  251. + .\}
  252.   .TH FRM 1L "Elm Version 2.4" "USENET Community Trust"
  253.   .SH NAME
  254.   frm,nfrm \- list from and subject of selected messages in mailbox or folder
  255. ***************
  256. *** 115,120 ****
  257.   .SH BUG REPORTS TO
  258.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  259.   .SH COPYRIGHTS
  260. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  261.   .br
  262. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  263. --- 121,126 ----
  264.   .SH BUG REPORTS TO
  265.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  266.   .SH COPYRIGHTS
  267. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  268.   .br
  269. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  270.  
  271. Index: doc/listalias.1
  272. *** ../elm2.4/doc/listalias.1    Mon Oct 19 13:04:04 1992
  273. --- doc/listalias.1    Thu Dec 24 18:46:58 1992
  274. ***************
  275. *** 1,9 ****
  276.   .TH LISTALIAS 1L "Elm Version 2.4" "USENET Community Trust"
  277.   .SH NAME
  278.   listalias - list user and system aliases
  279.   .SH SYNOPSIS
  280.   .B listalias
  281. ! [ regular-expression ]
  282.   .SH DESCRIPTION
  283.   .I Listalias
  284.   outputs a line per alias in both the user and the system 
  285. --- 1,15 ----
  286. + .if n \{\
  287. + .    ds ct "
  288. + .\}
  289. + .if t \{\
  290. + .    ds ct \\(co
  291. + .\}
  292.   .TH LISTALIAS 1L "Elm Version 2.4" "USENET Community Trust"
  293.   .SH NAME
  294.   listalias - list user and system aliases
  295.   .SH SYNOPSIS
  296.   .B listalias
  297. ! [ -s | -u ] [ regular-expression ]
  298.   .SH DESCRIPTION
  299.   .I Listalias
  300.   outputs a line per alias in both the user and the system 
  301. ***************
  302. *** 18,23 ****
  303. --- 24,40 ----
  304.   they are all listed.
  305.   .sp
  306.   Either way, the output is sorted.
  307. + .SH OPTIONS
  308. + .TP
  309. + .B \-s
  310. + Display only the system aliases.  
  311. + .BR \ \-s \ and \ \-u
  312. + are mutually exclusive.
  313. + .TP
  314. + .B \-u
  315. + Display only the user aliases.  
  316. + .BR \ \-s \ and \ \-u
  317. + are mutually exclusive.
  318.   .SH AUTHOR
  319.   Elm Development Group
  320.   .SH SEE ALSO
  321. ***************
  322. *** 28,33 ****
  323.   .SH BUG REPORTS TO
  324.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  325.   .SH COPYRIGHTS
  326. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  327.   .br
  328. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  329. --- 45,50 ----
  330.   .SH BUG REPORTS TO
  331.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  332.   .SH COPYRIGHTS
  333. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  334.   .br
  335. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  336.  
  337. Index: doc/messages.1
  338. *** ../elm2.4/doc/messages.1    Thu Dec 24 18:56:34 1992
  339. --- doc/messages.1    Thu Dec 24 18:47:00 1992
  340. ***************
  341. *** 1,3 ****
  342. --- 1,9 ----
  343. + .if n \{\
  344. + .    ds ct "
  345. + .\}
  346. + .if t \{\
  347. + .    ds ct \\(co
  348. + .\}
  349.   .TH MESSAGES 1L "Elm Version 2.4" "USENET Community Trust"
  350.   .SH NAME
  351.   messages - quick count of messages in mailbox or folder
  352. ***************
  353. *** 21,26 ****
  354.   .SH BUG REPORTS TO
  355.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  356.   .SH COPYRIGHTS
  357. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  358.   .br
  359. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  360. --- 27,32 ----
  361.   .SH BUG REPORTS TO
  362.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  363.   .SH COPYRIGHTS
  364. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  365.   .br
  366. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  367.  
  368. Index: doc/newalias.1
  369. *** ../elm2.4/doc/newalias.1    Thu Dec 24 18:56:34 1992
  370. --- doc/newalias.1    Thu Dec 24 18:47:02 1992
  371. ***************
  372. *** 1,3 ****
  373. --- 1,9 ----
  374. + .if n \{\
  375. + .    ds ct "
  376. + .\}
  377. + .if t \{\
  378. + .    ds ct \\(co
  379. + .\}
  380.   .TH NEWALIAS 1L "Elm Version 2.4" "USENET Community Trust"
  381.   .SH NAME
  382.   newalias - install new elm aliases for user and/or system
  383. ***************
  384. *** 90,95 ****
  385.   .SH BUG REPORTS TO
  386.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  387.   .SH COPYRIGHTS
  388. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  389.   .br
  390. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  391. --- 96,101 ----
  392.   .SH BUG REPORTS TO
  393.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  394.   .SH COPYRIGHTS
  395. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  396.   .br
  397. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  398.  
  399. Index: doc/newmail.1
  400. *** ../elm2.4/doc/newmail.1    Thu Dec 24 18:56:34 1992
  401. --- doc/newmail.1    Thu Dec 24 18:47:03 1992
  402. ***************
  403. *** 1,3 ****
  404. --- 1,9 ----
  405. + .if n \{\
  406. + .    ds ct "
  407. + .\}
  408. + .if t \{\
  409. + .    ds ct \\(co
  410. + .\}
  411.   .TH NEWMAIL 1L "Elm Version 2.4" "USENET Community Trust"
  412.   .SH NAME
  413.   newmail,wnewmail - programs to asynchronously notify of new mail
  414. ***************
  415. *** 146,151 ****
  416.   .SH BUG REPORTS TO
  417.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  418.   .SH COPYRIGHTS
  419. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  420.   .br
  421. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  422. --- 152,157 ----
  423.   .SH BUG REPORTS TO
  424.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  425.   .SH COPYRIGHTS
  426. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  427.   .br
  428. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  429.  
  430. Index: doc/printmail.1
  431. *** ../elm2.4/doc/printmail.1    Thu Dec 24 18:56:34 1992
  432. --- doc/printmail.1    Thu Dec 24 18:47:05 1992
  433. ***************
  434. *** 1,3 ****
  435. --- 1,9 ----
  436. + .if n \{\
  437. + .    ds ct "
  438. + .\}
  439. + .if t \{\
  440. + .    ds ct \\(co
  441. + .\}
  442.   .TH PRINTMAIL 1L "Elm Version 2.4" "USENET Community Trust"
  443.   .SH NAME
  444.   printmail - format mail in a readable fashion for printing
  445. ***************
  446. *** 32,37 ****
  447.   readmsg(1L)
  448.   .SH BUG REPORTS TO
  449.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  450. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  451.   .br
  452. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  453. --- 38,43 ----
  454.   readmsg(1L)
  455.   .SH BUG REPORTS TO
  456.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  457. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  458.   .br
  459. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  460.  
  461. Index: doc/readmsg.1
  462. *** ../elm2.4/doc/readmsg.1    Thu Dec 24 18:56:42 1992
  463. --- doc/readmsg.1    Thu Dec 24 18:47:09 1992
  464. ***************
  465. *** 1,3 ****
  466. --- 1,9 ----
  467. + .if n \{\
  468. + .    ds ct "
  469. + .\}
  470. + .if t \{\
  471. + .    ds ct \\(co
  472. + .\}
  473.   .TH READMSG 1L "Elm Version 2.4" "USENET Community Trust"
  474.   .SH NAME
  475.   readmsg - extract messages from a mail folder
  476. ***************
  477. *** 192,197 ****
  478.   .SH BUG REPORTS TO
  479.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  480.   .SH COPYRIGHTS
  481. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  482.   .br
  483. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  484. --- 198,203 ----
  485.   .SH BUG REPORTS TO
  486.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  487.   .SH COPYRIGHTS
  488. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  489.   .br
  490. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  491.  
  492. Index: doc/tmac.n
  493. Prereq: 5.2
  494. *** ../elm2.4/doc/tmac.n    Mon Oct 12 23:25:42 1992
  495. --- doc/tmac.n    Thu Dec 24 18:48:47 1992
  496. ***************
  497. *** 1,4 ****
  498. ! .\" @(#)$Id: tmac.n,v 5.2 1992/10/11 01:33:36 syd Exp $
  499.   .\" The News macro package
  500.   .\"
  501.   .\" This  is  the macro package that is used to format news documents.  It
  502. --- 1,4 ----
  503. ! .\" @(#)$Id: tmac.n,v 5.3 1992/12/24 23:48:05 syd Exp $
  504.   .\" The News macro package
  505.   .\"
  506.   .\" This  is  the macro package that is used to format news documents.  It
  507. ***************
  508. *** 660,667 ****
  509.   .if n \{\
  510.   .                    \" string registers
  511.   .    ds rg (R)
  512. ! .    ds lq ""
  513. ! .    ds rq ""
  514.   .    ds f1 "\*(dy
  515.   .                    \" number registers
  516.   .    nr hs 1v            \" space before section header
  517. --- 660,668 ----
  518.   .if n \{\
  519.   .                    \" string registers
  520.   .    ds rg (R)
  521. ! .    ds ct "
  522. ! .    ds lq "
  523. ! .    ds rq "
  524.   .    ds f1 "\*(dy
  525.   .                    \" number registers
  526.   .    nr hs 1v            \" space before section header
  527. ***************
  528. *** 672,677 ****
  529. --- 673,679 ----
  530.   .if t \{\
  531.   .                    \" string registers
  532.   .    ds rg \\u\\s-2\\(rg\\s0\\d
  533. + .    ds ct \\(co
  534.   .    ds lq ``
  535.   .    ds rq ''
  536.   .                    \" number registers
  537.  
  538. Index: doc/wnewmail.1
  539. *** ../elm2.4/doc/wnewmail.1    Mon Oct 19 13:04:06 1992
  540. --- doc/wnewmail.1    Thu Dec 24 18:47:12 1992
  541. ***************
  542. *** 1,3 ****
  543. --- 1,9 ----
  544. + .if n \{\
  545. + .    ds ct "
  546. + .\}
  547. + .if t \{\
  548. + .    ds ct \\(co
  549. + .\}
  550.   .TH WNEWMAIL 1L "Elm Version 2.4" "USENET Community Trust"
  551.   .SH NAME
  552.   wnewmail - daemon to asynchronously notify of new mail
  553. ***************
  554. *** 47,52 ****
  555.   .SH BUG REPORTS TO
  556.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  557.   .SH COPYRIGHTS
  558. ! \fB\(co\fRCopyright 1988-1992 by The USENET Community Trust
  559.   .br
  560. ! \fB\(co\fRDerived from Elm 2.0, Copyright 1986, 1987 by Dave Taylor
  561. --- 53,58 ----
  562.   .SH BUG REPORTS TO
  563.   Syd Weinstein    elm@DSI.COM    (dsinc!elm)
  564.   .SH COPYRIGHTS
  565. ! \fB\*(ct\fRCopyright 1988-1992 by The USENET Community Trust
  566.   .br
  567. ! Derived from Elm 2.0, \fB\*(ct\fR Copyright 1986, 1987 by Dave Taylor
  568.  
  569. Index: filter/actions.c
  570. Prereq: 5.2
  571. *** ../elm2.4/filter/actions.c    Thu Dec 24 18:56:42 1992
  572. --- filter/actions.c    Thu Dec 24 14:22:35 1992
  573. ***************
  574. *** 1,8 ****
  575.   
  576. ! static char rcsid[] ="@(#)$Id: actions.c,v 5.2 1992/12/11 02:16:08 syd Exp $";
  577.   
  578.   /*******************************************************************************
  579. !  *  The Elm Mail System  -  $Revision: 5.2 $   $State: Exp $
  580.    *
  581.    *             Copyright (c) 1988-1992 USENET Community Trust
  582.    *             Copyright (c) 1986,1987 Dave Taylor
  583. --- 1,8 ----
  584.   
  585. ! static char rcsid[] ="@(#)$Id: actions.c,v 5.3 1992/12/24 19:22:05 syd Exp $";
  586.   
  587.   /*******************************************************************************
  588. !  *  The Elm Mail System  -  $Revision: 5.3 $   $State: Exp $
  589.    *
  590.    *             Copyright (c) 1988-1992 USENET Community Trust
  591.    *             Copyright (c) 1986,1987 Dave Taylor
  592. ***************
  593. *** 14,19 ****
  594. --- 14,23 ----
  595.    *
  596.    *******************************************************************************
  597.    * $Log: actions.c,v $
  598. +  * Revision 5.3  1992/12/24  19:22:05  syd
  599. +  * Quote from the filter of phrase to prevent RFC-822 parsing problems
  600. +  * From: Syd via request from Ian Stewartson <istewart@dlvax2.datlog.co.uk>
  601. +  *
  602.    * Revision 5.2  1992/12/11  02:16:08  syd
  603.    * remove unreachable return(0) at end of function
  604.    * From: Syd
  605. ***************
  606. *** 132,138 ****
  607.               fprintf(pipefd, "Subject: \"%s\"\n", subject);
  608.               fprintf(pipefd, catgets(elm_msg_cat,FilterSet,
  609.                           FilterFromTheFilterOf,
  610. !                     "From: The Filter of %s@%s <%s>\n"), 
  611.                   username, hostname, username);
  612.               fprintf(pipefd, "To: %s\n", address);
  613.               fprintf(pipefd, catgets(elm_msg_cat,
  614. --- 136,142 ----
  615.               fprintf(pipefd, "Subject: \"%s\"\n", subject);
  616.               fprintf(pipefd, catgets(elm_msg_cat,FilterSet,
  617.                           FilterFromTheFilterOf,
  618. !                     "From: \"The Filter of %s@%s\" <%s>\n"), 
  619.                   username, hostname, username);
  620.               fprintf(pipefd, "To: %s\n", address);
  621.               fprintf(pipefd, catgets(elm_msg_cat,
  622.  
  623. Index: hdrs/s_aliases.h
  624. *** ../elm2.4/hdrs/s_aliases.h    Thu Dec 24 18:56:44 1992
  625. --- hdrs/s_aliases.h    Thu Dec 24 16:36:23 1992
  626. ***************
  627. *** 1,4 ****
  628. ! /* s_aliases.h created from s_aliases.us by gencat on Thu Dec 10 21:08:59 EST 1992 */
  629.   
  630.   #define AliasesSet    0x5
  631.   #define AliasesDelete    0x1
  632. --- 1,4 ----
  633. ! /* s_aliases.h created from s_aliases.us by gencat on Thu Dec 24 16:36:23 EST 1992 */
  634.   
  635.   #define AliasesSet    0x5
  636.   #define AliasesDelete    0x1
  637. ***************
  638. *** 56,66 ****
  639. --- 56,69 ----
  640.   #define AliasesCouldntOpenTemp    0x43
  641.   #define AliasesCouldntWriteTemp    0x44
  642.   #define AliasesCouldntRenameTemp    0x45
  643. + #define AliasesReplaceExisting    0x46
  644.   #define AliasesResync    0x49
  645.   #define AliasesAddCurrent    0x4a
  646.   #define AliasesMail    0x4c
  647.   #define AliasesAddNew    0x4d
  648.   #define AliasesAddReturn    0x4e
  649. + #define AliasesReplaceCurrent    0x4f
  650. + #define AliasesNoneToReplace    0x50
  651.   #define AliasesNotInstalled    0x54
  652.   #define AliasesGroupAlias    0x55
  653.   #define AliasesAliasedAddress    0x56
  654. ***************
  655. *** 116,118 ****
  656. --- 119,122 ----
  657.   #define AliasesHelpe    0x8b
  658.   #define AliasesEdit    0x8c
  659.   #define AliasesNoneToEdit    0x8d
  660. + #define AliasesHelpc    0x8e
  661.  
  662. Index: hdrs/s_elm.h
  663. *** ../elm2.4/hdrs/s_elm.h    Thu Dec 24 18:56:44 1992
  664. --- hdrs/s_elm.h    Thu Dec 24 19:14:05 1992
  665. ***************
  666. *** 1,4 ****
  667. ! /* s_elm.h created from s_elm.us by gencat on Fri Dec 11 20:43:31 EST 1992 */
  668.   
  669.   #define ElmSet    0x3
  670.   #define ElmYes    0x1
  671. --- 1,4 ----
  672. ! /* s_elm.h created from s_elm.us by gencat on Thu Dec 24 16:35:48 EST 1992 */
  673.   
  674.   #define ElmSet    0x3
  675.   #define ElmYes    0x1
  676. ***************
  677. *** 342,350 ****
  678.   #define ElmLeaveCouldntRemoveOwnLock    0x172
  679.   #define ElmLimitEnterCriteria    0x173
  680.   #define ElmLimitAlreadyHave    0x174
  681. ! #define ElmLimitYes    0x175
  682.   #define ElmLimitAdding    0x176
  683. ! #define ElmLimitNo    0x177
  684.   #define ElmLimitChanging    0x178
  685.   #define ElmLimitNotValidCriterion    0x179
  686.   #define ElmLimitReturnToUnlimited    0x17a
  687. --- 342,350 ----
  688.   #define ElmLeaveCouldntRemoveOwnLock    0x172
  689.   #define ElmLimitEnterCriteria    0x173
  690.   #define ElmLimitAlreadyHave    0x174
  691. ! #define ElmYesWord    0x175
  692.   #define ElmLimitAdding    0x176
  693. ! #define ElmNoWord    0x177
  694.   #define ElmLimitChanging    0x178
  695.   #define ElmLimitNotValidCriterion    0x179
  696.   #define ElmLimitReturnToUnlimited    0x17a
  697. ***************
  698. *** 748,750 ****
  699. --- 748,756 ----
  700.   #define ElmPrintFailStatus    0x335
  701.   #define ElmCouldntSeekBytesIntoTempFile    0x336
  702.   #define ElmCannotExpand    0x337
  703. + #define ElmNoItemToScan    0x338
  704. + #define ElmConfirmFilesAppend    0x339
  705. + #define ElmConfirmFolderAppend    0x33a
  706. + #define ElmConfirmFilesCreate    0x33b
  707. + #define ElmConfirmFolderCreate    0x33c
  708. + #define ElmSavingToInstead    0x33d
  709.  
  710. Index: hdrs/defs.h
  711. Prereq: 5.11
  712. *** ../elm2.4/hdrs/defs.h    Thu Dec 24 18:56:44 1992
  713. --- hdrs/defs.h    Mon Jan  4 22:36:34 1993
  714. ***************
  715. *** 1,8 ****
  716.   
  717. ! /* $Id: defs.h,v 5.11 1992/12/11 01:58:50 syd Exp $ */
  718.   
  719.   /*******************************************************************************
  720. !  *  The Elm Mail System  -  $Revision: 5.11 $   $State: Exp $
  721.    *
  722.    *             Copyright (c) 1988-1992 USENET Community Trust
  723.    *             Copyright (c) 1986,1987 Dave Taylor
  724. --- 1,8 ----
  725.   
  726. ! /* $Id: defs.h,v 5.12 1993/01/05 03:36:10 syd Exp $ */
  727.   
  728.   /*******************************************************************************
  729. !  *  The Elm Mail System  -  $Revision: 5.12 $   $State: Exp $
  730.    *
  731.    *             Copyright (c) 1988-1992 USENET Community Trust
  732.    *             Copyright (c) 1986,1987 Dave Taylor
  733. ***************
  734. *** 14,19 ****
  735. --- 14,24 ----
  736.    *
  737.    *******************************************************************************
  738.    * $Log: defs.h,v $
  739. +  * Revision 5.12  1993/01/05  03:36:10  syd
  740. +  * remove leading 0s from access() defs as it confuses some
  741. +  * compilers (and I know it shouldnt)
  742. +  * From: Syd
  743. +  *
  744.    * Revision 5.11  1992/12/11  01:58:50  syd
  745.    * Allow for use from restricted shell by putting SHELL=/bin/sh in the
  746.    * environment of spawned mail transport program.
  747. ***************
  748. *** 149,159 ****
  749.   #define CM_REMAIL        (1<<4)    /* Add Sender: and Orig-To: headers */
  750.   #define CM_DECODE        (1<<5)    /* prompt for key if message is encrypted */
  751.   
  752. ! #define EXECUTE_ACCESS    01        /* These five are        */
  753. ! #define WRITE_ACCESS    02        /*    for the calls       */
  754. ! #define READ_ACCESS    04        /*       to access()       */
  755. ! #define ACCESS_EXISTS    00        /*           <etc>         */
  756. ! #define EDIT_ACCESS    06        /*  (this is r+w access)   */
  757.   
  758.   #define BIG_NUM        999999        /* big number!             */
  759.   #define BIGGER_NUM    9999999     /* bigger number!          */
  760. --- 154,164 ----
  761.   #define CM_REMAIL        (1<<4)    /* Add Sender: and Orig-To: headers */
  762.   #define CM_DECODE        (1<<5)    /* prompt for key if message is encrypted */
  763.   
  764. ! #define EXECUTE_ACCESS    1        /* These five are        */
  765. ! #define WRITE_ACCESS    2        /*    for the calls       */
  766. ! #define READ_ACCESS    4        /*       to access()       */
  767. ! #define ACCESS_EXISTS    0        /*           <etc>         */
  768. ! #define EDIT_ACCESS    6        /*  (this is r+w access)   */
  769.   
  770.   #define BIG_NUM        999999        /* big number!             */
  771.   #define BIGGER_NUM    9999999     /* bigger number!          */
  772.  
  773. Index: hdrs/sysdefs.SH
  774. Prereq: 5.3
  775. *** ../elm2.4/hdrs/sysdefs.SH    Wed Nov 25 14:10:37 1992
  776. --- hdrs/sysdefs.SH    Thu Dec 24 14:24:11 1992
  777. ***************
  778. *** 16,24 ****
  779.   
  780.   echo "Extracting hdrs/sysdefs.h (with variable substitutions)"
  781.   sed <<!GROK!THIS! >sysdefs.h -e 's!^#undef!/\*#undef!'
  782. ! /* $Id: sysdefs.SH,v 5.3 1992/11/22 01:14:20 syd Exp $ */
  783.   /*******************************************************************************
  784. !  *  The Elm Mail System  -  $Revision: 5.3 $   $State: Exp $
  785.    *
  786.    *             Copyright (c) 1988-1992 USENET Community Trust
  787.    *             Copyright (c) 1986,1987 Dave Taylor
  788. --- 16,24 ----
  789.   
  790.   echo "Extracting hdrs/sysdefs.h (with variable substitutions)"
  791.   sed <<!GROK!THIS! >sysdefs.h -e 's!^#undef!/\*#undef!'
  792. ! /* $Id: sysdefs.SH,v 5.4 1992/12/24 19:24:10 syd Exp $ */
  793.   /*******************************************************************************
  794. !  *  The Elm Mail System  -  $Revision: 5.4 $   $State: Exp $
  795.    *
  796.    *             Copyright (c) 1988-1992 USENET Community Trust
  797.    *             Copyright (c) 1986,1987 Dave Taylor
  798. ***************
  799. *** 30,35 ****
  800. --- 30,40 ----
  801.    *
  802.    *******************************************************************************
  803.    * $Log: sysdefs.SH,v $
  804. +  * Revision 5.4  1992/12/24  19:24:10  syd
  805. +  * EDITOROPTS and DEFEDITOR appear to be unused but here is
  806. +  * a patch to make use of $editoropts.
  807. +  * From: "Robert L. Howard" <robert.howard@matd.gatech.edu>
  808. +  *
  809.    * Revision 5.3  1992/11/22  01:14:20  syd
  810.    * Allow SCO MMDF to use the mmdf library for mailer via execmail.
  811.    * From: Larry Philps <larryp@sco.com>
  812. ***************
  813. *** 98,104 ****
  814.   #define emacs_editor    "$emacs"
  815.   #define vi_editor    "$vi"
  816.   
  817. ! #define default_editor    "$defeditor"
  818.   #define mailhome    "$maildir/"
  819.   
  820.   #define default_shell    "$prefshell"
  821. --- 103,109 ----
  822.   #define emacs_editor    "$emacs"
  823.   #define vi_editor    "$vi"
  824.   
  825. ! #define default_editor    "$defeditor $editoropts"
  826.   #define mailhome    "$maildir/"
  827.   
  828.   #define default_shell    "$prefshell"
  829.  
  830. Index: lib/Makefile.SH
  831. Prereq: 5.3
  832. *** ../elm2.4/lib/Makefile.SH    Tue Nov 10 15:20:24 1992
  833. --- lib/Makefile.SH    Thu Dec 24 14:34:09 1992
  834. ***************
  835. *** 29,35 ****
  836.   
  837.   echo "Extracting lib/Makefile (with variable substitutions)"
  838.   cat >Makefile <<!GROK!THIS!
  839. ! # $Id: Makefile.SH,v 5.3 1992/11/07 20:07:23 syd Exp $
  840.   #
  841.   #  Makefile for the ELM mail program.
  842.   #
  843. --- 29,35 ----
  844.   
  845.   echo "Extracting lib/Makefile (with variable substitutions)"
  846.   cat >Makefile <<!GROK!THIS!
  847. ! # $Id: Makefile.SH,v 5.6 1992/12/24 19:33:59 syd Exp $
  848.   #
  849.   #  Makefile for the ELM mail program.
  850.   #
  851. ***************
  852. *** 42,47 ****
  853. --- 42,62 ----
  854.   #            dsinc!elm
  855.   #
  856.   # $Log: Makefile.SH,v $
  857. + # Revision 5.6  1992/12/24  19:33:59  syd
  858. + # tune dependency list further
  859. + # From: Syd
  860. + #
  861. + # Revision 5.5  1992/12/24  19:30:46  syd
  862. + # Make all object depend on config.h, so a reconfig for a new
  863. + # arch in shared sources (or copied sources) forces a recompile
  864. + # of all modules.
  865. + # From: Syd
  866. + #
  867. + # Revision 5.4  1992/12/20  05:15:58  syd
  868. + # Add a c)hange alias, -u and -t options to listalias to list only user
  869. + # and only system aliases respectively.
  870. + # From: "Robert L. Howard" <robert.howard@matd.gatech.edu>
  871. + #
  872.   # Revision 5.3  1992/11/07  20:07:23  syd
  873.   # Add header_cmp routine
  874.   # From: Syd
  875. ***************
  876. *** 97,102 ****
  877. --- 112,118 ----
  878.   LIB_SRC        =    add_site.c    \
  879.               addrmchusr.c    \
  880.               mk_aliases.c    \
  881. +             aliasdb.c    \
  882.               mk_lockname.c    \
  883.               can_access.c    \
  884.               can_open.c    \
  885. ***************
  886. *** 136,141 ****
  887. --- 152,158 ----
  888.   LIB_OBJ        =    add_site.o    \
  889.               addrmchusr.o    \
  890.               mk_aliases.o    \
  891. +             aliasdb.o    \
  892.               mk_lockname.o    \
  893.               can_access.o    \
  894.               can_open.o    \
  895. ***************
  896. *** 211,216 ****
  897. --- 228,234 ----
  898.   add_site.o:    $(INCLDIR)/headers.h
  899.   addrmchusr.o:    $(INCLDIR)/headers.h
  900.   mk_aliases.o:    $(INCLDIR)/headers.h $(INCLDIR)/ndbz.h $(INCLDIR)/s_newalias.h
  901. + aliasdb.o:    $(INCLDIR)/headers.h $(INCLDIR)/ndbz.h
  902.   mk_lockname.o:    $(INCLDIR)/headers.h
  903.   can_access.o:    $(INCLDIR)/headers.h
  904.   can_open.o:    $(INCLDIR)/headers.h
  905. ***************
  906. *** 227,232 ****
  907. --- 245,252 ----
  908.   in_string.o:    $(INCLDIR)/headers.h
  909.   istrcmp.o:    $(INCLDIR)/headers.h
  910.   ldstate.o:    $(INCLDIR)/defs.h
  911. + len_next.o:    ../config.h
  912. + mail_gets.o:    ../config.h
  913.   mcprt.o:    $(INCLDIR)/mcprt.h $(INCLDIR)/mcprtlib.h
  914.   mcprtlib.o:    $(INCLDIR)/mcprtlib.h $(INCLDIR)/nl_types.h
  915.   move_left.o:    $(INCLDIR)/headers.h
  916. ***************
  917. *** 237,242 ****
  918. --- 257,263 ----
  919.   parsarpwho.o:    $(INCLDIR)/headers.h
  920.   posixsig.o:    $(INCLDIR)/headers.h
  921.   putenv.o:    $(INCLDIR)/headers.h
  922. + qstrings.o:    ../config.h
  923.   remfirstwd.o:    $(INCLDIR)/headers.h
  924.   reverse.o:    $(INCLDIR)/headers.h
  925.   shiftlower.o:    $(INCLDIR)/headers.h
  926.  
  927. Index: lib/aliasdb.c
  928. *** /dev/null    Thu Dec 24 14:25:56 1992
  929. --- lib/aliasdb.c    Sun Dec 20 00:14:19 1992
  930. ***************
  931. *** 0 ****
  932. --- 1,94 ----
  933. + /*******************************************************************************
  934. +  *  The Elm Mail System  -  $Revision: 5.1 $   $State: Exp $
  935. +  *
  936. +  *            Copyright (c) 1988-1992 USENET Community Trust
  937. +  *            Copyright (c) 1986,1987 Dave Taylor
  938. +  *******************************************************************************
  939. +  * Bug reports, patches, comments, suggestions should be sent to:
  940. +  *
  941. +  *    Syd Weinstein, Elm Coordinator
  942. +  *    elm@DSI.COM            dsinc!elm
  943. +  *
  944. +  *******************************************************************************
  945. +  * $Log: aliasdb.c,v $
  946. +  * Revision 5.1  1992/12/20  05:14:05  syd
  947. +  * Initial checkin
  948. +  *
  949. +  *
  950. +  ******************************************************************************/
  951. + /** Alias interface with dbz routines.
  952. +     This code is shared with newalias and elm so that
  953. +   it is easier to do updates while in elm.  The routines in
  954. +   this file are interface routines between elm alias code,
  955. +   newalias, and listalias and the dbm routines.
  956. + **/
  957. + #include "headers.h"
  958. + #include <ctype.h>
  959. + #include "ndbz.h"
  960. + #ifdef BSD
  961. + #  include <sys/file.h>
  962. + #  undef tolower
  963. + #  undef toupper
  964. + #endif
  965. + #ifdef DEBUG
  966. + extern FILE *debugfile;
  967. + extern int  debug;
  968. + #endif
  969. + /* byte-ordering stuff */
  970. + #define    MAPIN(o)    ((db->dbz_bytesame) ? (of_t) (o) : bytemap((of_t)(o), db->dbz_conf.bytemap, db->dbz_mybmap))
  971. + #define    MAPOUT(o)    ((db->dbz_bytesame) ? (of_t) (o) : bytemap((of_t)(o), db->dbz_mybmap, db->dbz_conf.bytemap))
  972. + static of_t            /* transformed result */
  973. + bytemap(ino, map1, map2)
  974. + of_t ino;
  975. + int *map1;
  976. + int *map2;
  977. + {
  978. +     union oc {
  979. +         of_t o;
  980. +         char c[SOF];
  981. +     };
  982. +     union oc in;
  983. +     union oc out;
  984. +     register int i;
  985. +     in.o = ino;
  986. +     for (i = 0; i < SOF; i++)
  987. +         out.c[map2[i]] = in.c[map1[i]];
  988. +     return(out.o);
  989. + }
  990. + read_one_alias(db, ar)
  991. + DBZ *db;
  992. + struct alias_rec *ar;
  993. + {
  994. + /*
  995. +  *    Read an alias (name, address, etc.) from the data file
  996. +  */
  997. +     FILE *data_file = db->dbz_basef;
  998. +     if (data_file == NULL)
  999. +         return(0);    /* no alias file, but hash exists, error condition */
  1000. +     if (fread((char *) ar, sizeof(struct alias_rec), 1, data_file) <= 0)
  1001. +         return(0);
  1002. +     ar->status = (int) MAPIN(ar->status);
  1003. +     ar->alias = (char *) MAPIN(ar->alias);
  1004. +     ar->last_name = (char *) MAPIN(ar->last_name);
  1005. +     ar->name = (char *) MAPIN(ar->name);
  1006. +     ar->comment = (char *) MAPIN(ar->comment);
  1007. +     ar->address = (char *) MAPIN(ar->address);
  1008. +     ar->type = (int) MAPIN(ar->type);
  1009. +     ar->length = (long) MAPIN(ar->length);
  1010. +     return(1);
  1011. + }
  1012.  
  1013. Index: lib/ldstate.c
  1014. Prereq: 5.3
  1015. *** ../elm2.4/lib/ldstate.c    Thu Dec 24 18:56:44 1992
  1016. --- lib/ldstate.c    Thu Dec 24 16:48:34 1992
  1017. ***************
  1018. *** 1,8 ****
  1019.   
  1020. ! static char rcsid[] = "@(#)$Id: ldstate.c,v 5.3 1992/12/11 01:45:04 syd Exp $";
  1021.   
  1022.   /*******************************************************************************
  1023. !  *  The Elm Mail System  -  $Revision: 5.3 $   $State: Exp $
  1024.    *
  1025.    *            Copyright (c) 1992 USENET Community Trust
  1026.    *******************************************************************************
  1027. --- 1,8 ----
  1028.   
  1029. ! static char rcsid[] = "@(#)$Id: ldstate.c,v 5.4 1992/12/24 21:48:07 syd Exp $";
  1030.   
  1031.   /*******************************************************************************
  1032. !  *  The Elm Mail System  -  $Revision: 5.4 $   $State: Exp $
  1033.    *
  1034.    *            Copyright (c) 1992 USENET Community Trust
  1035.    *******************************************************************************
  1036. ***************
  1037. *** 13,18 ****
  1038. --- 13,23 ----
  1039.    *
  1040.    *******************************************************************************
  1041.    * $Log: ldstate.c,v $
  1042. +  * Revision 5.4  1992/12/24  21:48:07  syd
  1043. +  * Make fgetline elm_fgetline, as BSD 4.4 now has such a routine, and
  1044. +  * it causes compile problems.
  1045. +  * From: Syd
  1046. +  *
  1047.    * Revision 5.3  1992/12/11  01:45:04  syd
  1048.    * remove sys/types.h include, it is now included by defs.h
  1049.    * and this routine includes defs.h or indirectly includes defs.h
  1050. ***************
  1051. *** 50,56 ****
  1052.    */
  1053.   
  1054.   
  1055. ! static char *fgetline(buf, buflen, fp)
  1056.   char *buf;
  1057.   unsigned buflen;
  1058.   FILE *fp;
  1059. --- 55,61 ----
  1060.    */
  1061.   
  1062.   
  1063. ! static char *elm_fgetline(buf, buflen, fp)
  1064.   char *buf;
  1065.   unsigned buflen;
  1066.   FILE *fp;
  1067. ***************
  1068. *** 87,93 ****
  1069.       status = -1;
  1070.   
  1071.       /* retrieve pathname of the folder */
  1072. !     if (fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'F')
  1073.       goto done;
  1074.       if ((fst->folder_name = malloc(strlen(buf+1) + 1)) == NULL)
  1075.       goto done;
  1076. --- 92,98 ----
  1077.       status = -1;
  1078.   
  1079.       /* retrieve pathname of the folder */
  1080. !     if (elm_fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'F')
  1081.       goto done;
  1082.       if ((fst->folder_name = malloc(strlen(buf+1) + 1)) == NULL)
  1083.       goto done;
  1084. ***************
  1085. *** 94,100 ****
  1086.       (void) strcpy(fst->folder_name, buf+1);
  1087.   
  1088.       /* retrieve number of messages in the folder */
  1089. !     if (fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'N')
  1090.       goto done;
  1091.       fst->num_mssgs = atoi(buf+1);
  1092.   
  1093. --- 99,105 ----
  1094.       (void) strcpy(fst->folder_name, buf+1);
  1095.   
  1096.       /* retrieve number of messages in the folder */
  1097. !     if (elm_fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'N')
  1098.       goto done;
  1099.       fst->num_mssgs = atoi(buf+1);
  1100.   
  1101. ***************
  1102. *** 105,117 ****
  1103.   
  1104.       /* load in the indices of the messages */
  1105.       for (i = 0 ; i < fst->num_mssgs ; ++i) {
  1106. !     if (fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'I')
  1107.           goto done;
  1108.       fst->idx_list[i] = atol(buf+1);
  1109.       }
  1110.   
  1111.       /* load in the number of messages selected */
  1112. !     if (fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'C')
  1113.       goto done;
  1114.       fst->num_sel = atoi(buf+1);
  1115.   
  1116. --- 110,122 ----
  1117.   
  1118.       /* load in the indices of the messages */
  1119.       for (i = 0 ; i < fst->num_mssgs ; ++i) {
  1120. !     if (elm_fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'I')
  1121.           goto done;
  1122.       fst->idx_list[i] = atol(buf+1);
  1123.       }
  1124.   
  1125.       /* load in the number of messages selected */
  1126. !     if (elm_fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'C')
  1127.       goto done;
  1128.       fst->num_sel = atoi(buf+1);
  1129.   
  1130. ***************
  1131. *** 125,131 ****
  1132.   
  1133.       /* load in the list of selected messages */
  1134.       for (i = 0 ; i < fst->num_sel ; ++i) {
  1135. !         if (fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'S')
  1136.           goto done;
  1137.           fst->sel_list[i] = atoi(buf+1);
  1138.       }
  1139. --- 130,136 ----
  1140.   
  1141.       /* load in the list of selected messages */
  1142.       for (i = 0 ; i < fst->num_sel ; ++i) {
  1143. !         if (elm_fgetline(buf, sizeof(buf), fp) == NULL || buf[0] != 'S')
  1144.           goto done;
  1145.           fst->sel_list[i] = atoi(buf+1);
  1146.       }
  1147. ***************
  1148. *** 133,139 ****
  1149.       }
  1150.   
  1151.       /* that should be the end of the file */
  1152. !     if (fgetline(buf, sizeof(buf), fp) != NULL)
  1153.       goto done;
  1154.   
  1155.       /* success */
  1156. --- 138,144 ----
  1157.       }
  1158.   
  1159.       /* that should be the end of the file */
  1160. !     if (elm_fgetline(buf, sizeof(buf), fp) != NULL)
  1161.       goto done;
  1162.   
  1163.       /* success */
  1164.  
  1165. Index: lib/posixsig.c
  1166. Prereq: 5.4
  1167. *** ../elm2.4/lib/posixsig.c    Thu Dec 24 18:56:45 1992
  1168. --- lib/posixsig.c    Thu Dec 24 16:44:57 1992
  1169. ***************
  1170. *** 1,8 ****
  1171.   
  1172. ! static char rcsid[] = "@(#)$Id: posixsig.c,v 5.4 1992/12/07 03:13:08 syd Exp syd $";
  1173.   
  1174.   /*******************************************************************************
  1175. !  *  The Elm Mail System  -  $Revision: 5.4 $   $State: Exp $
  1176.    *
  1177.    *            Copyright (c) 1988-1992 USENET Community Trust
  1178.    *            Copyright (c) 1986,1987 Dave Taylor
  1179. --- 1,8 ----
  1180.   
  1181. ! static char rcsid[] = "@(#)$Id: posixsig.c,v 5.5 1992/12/24 21:44:49 syd Exp $";
  1182.   
  1183.   /*******************************************************************************
  1184. !  *  The Elm Mail System  -  $Revision: 5.5 $   $State: Exp $
  1185.    *
  1186.    *            Copyright (c) 1988-1992 USENET Community Trust
  1187.    *            Copyright (c) 1986,1987 Dave Taylor
  1188. ***************
  1189. *** 14,19 ****
  1190. --- 14,23 ----
  1191.    *
  1192.    *******************************************************************************
  1193.    * $Log: posixsig.c,v $
  1194. +  * Revision 5.5  1992/12/24  21:44:49  syd
  1195. +  * Add apollo check
  1196. +  * From: Syd
  1197. +  *
  1198.    * Revision 5.4  1992/12/07  03:13:08  syd
  1199.    * Add code to work around SunOS and sigalrm not returning EINTR
  1200.    * From: Chip, Tom, Steve, Et. Al.
  1201.  
  1202. Index: nls/C/C/C/s_aliases.m
  1203. *** ../elm2.4/nls/C/C/C/s_aliases.m    Thu Dec 24 18:56:46 1992
  1204. --- nls/C/C/C/s_aliases.m    Thu Dec 24 16:12:30 1992
  1205. ***************
  1206. *** 21,33 ****
  1207.   $ #RMenuLn2
  1208.   11    a)lias current message, n)ew alias, d)elete or u)ndelete an alias,
  1209.   $ #RMenuLn3
  1210. ! 12    or r)eturn to main menu.  To view an alias, press <return>.
  1211.   $ #RMenuLn4
  1212.   13    j = move down, k = move up, ? = help
  1213.   $ #MenuLn1
  1214.   14    Alias commands:  ?=help, <n>=set current to n, /=search pattern
  1215.   $ #MenuLn2
  1216. ! 15    a)lias current message, d)elete, e)dit aliases.text, f)ully expand alias,
  1217.   $ #MenuLn3
  1218.   16    l)imit display, m)ail, n)ew alias, r)eturn, t)ag, u)ndelete, or e(x)it
  1219.   $ #Sort
  1220. --- 21,33 ----
  1221.   $ #RMenuLn2
  1222.   11    a)lias current message, n)ew alias, d)elete or u)ndelete an alias,
  1223.   $ #RMenuLn3
  1224. ! 12    m)ail to alias, or r)eturn to main menu.  To view an alias, press <return>.
  1225.   $ #RMenuLn4
  1226.   13    j = move down, k = move up, ? = help
  1227.   $ #MenuLn1
  1228.   14    Alias commands:  ?=help, <n>=set current to n, /=search pattern
  1229.   $ #MenuLn2
  1230. ! 15    a)lias current message, c)hange, d)elete, e)dit aliases.text, f)ully expand,
  1231.   $ #MenuLn3
  1232.   16    l)imit display, m)ail, n)ew alias, r)eturn, t)ag, u)ndelete, or e(x)it
  1233.   $ #Sort
  1234. ***************
  1235. *** 86,92 ****
  1236.   $ #AlreadyAlias
  1237.   55    Already an alias for %s.
  1238.   $ #AcceptNew
  1239. ! 56    "  Accept new alias? (%c/%c) "
  1240.   $ #Superceed
  1241.   57    Superceed? (%c/%c)
  1242.   $ #EnterLastName
  1243. --- 86,92 ----
  1244.   $ #AlreadyAlias
  1245.   55    Already an alias for %s.
  1246.   $ #AcceptNew
  1247. ! 56    "      Accept new alias? (%c/%c) "
  1248.   $ #Superceed
  1249.   57    Superceed? (%c/%c)
  1250.   $ #EnterLastName
  1251. ***************
  1252. *** 113,118 ****
  1253. --- 113,120 ----
  1254.   68    Couldn't write to tempfile %s!
  1255.   $ #CouldntRenameTemp
  1256.   69    Couldn't rename tempfile %s after deleting alias!
  1257. + $ #ReplaceExisting
  1258. + 70    "Replace existing alias? (%c/%c) "
  1259.   $ #Resync
  1260.   73    Resynchronize aliases...
  1261.   $ #AddCurrent
  1262. ***************
  1263. *** 123,128 ****
  1264. --- 125,134 ----
  1265.   77    Add a new alias to database...
  1266.   $ #AddReturn
  1267.   78    Return to main menu...
  1268. + $ #ReplaceCurrent
  1269. + 79    Replace current alias in database...
  1270. + $ #NoneToReplace
  1271. + 80    Warning: no aliases to replace!
  1272.   $ #NotInstalled
  1273.   84    Warning: new aliases not installed yet!
  1274.   $ #GroupAlias
  1275. ***************
  1276. *** 132,138 ****
  1277.   $ #FullyExpanded
  1278.   87    "Fully expand alias: "
  1279.   $ #AliasedFull
  1280. ! 88    Aliased address:\n\r%s
  1281.   $ #PressReturn
  1282.   89    Press <return> to continue.
  1283.   $ #NotFound
  1284. --- 138,144 ----
  1285.   $ #FullyExpanded
  1286.   87    "Fully expand alias: "
  1287.   $ #AliasedFull
  1288. ! 88    Aliased address for:\t%s\n\r
  1289.   $ #PressReturn
  1290.   89    Press <return> to continue.
  1291.   $ #NotFound
  1292. ***************
  1293. *** 170,178 ****
  1294.   $ #Helpn
  1295.   107    n = Add a new user alias, adding to alias database at next resync.
  1296.   $ #Helpi
  1297. ! 108    Return from alias menu (with prompting).
  1298.   $ #HelpQ
  1299. ! 109    Return from alias menu (no prompting).
  1300.   $ #Helpt
  1301.   111    t = Tag current alias for further operations.
  1302.   $ #HelpCtrlT
  1303. --- 176,184 ----
  1304.   $ #Helpn
  1305.   107    n = Add a new user alias, adding to alias database at next resync.
  1306.   $ #Helpi
  1307. ! 108    i = Return from alias menu (with prompting).
  1308.   $ #HelpQ
  1309. ! 109    R = Return from alias menu (no prompting).
  1310.   $ #Helpt
  1311.   111    t = Tag current alias for further operations.
  1312.   $ #HelpCtrlT
  1313. ***************
  1314. *** 182,188 ****
  1315.   $ #HelpCtrlU
  1316.   114    ^U = Mark for undeletion user aliases matching specified pattern.
  1317.   $ #HelpX
  1318. ! 115    Exit from alias menu, abandoning any pending deletions.
  1319.   $ #HelpNoHelp
  1320.   116    That key isn't used in this section.
  1321.   $ #ErrorMemory
  1322. --- 188,194 ----
  1323.   $ #HelpCtrlU
  1324.   114    ^U = Mark for undeletion user aliases matching specified pattern.
  1325.   $ #HelpX
  1326. ! 115    x = Exit from alias menu, abandoning any pending deletions.
  1327.   $ #HelpNoHelp
  1328.   116    That key isn't used in this section.
  1329.   $ #ErrorMemory
  1330. ***************
  1331. *** 235,237 ****
  1332. --- 241,245 ----
  1333.   140    Edit %s...
  1334.   $ #NoneToEdit
  1335.   141    No aliases to edit!
  1336. + $ #Helpc
  1337. + 142    c = Change current user alias, modifying alias database at next resync.
  1338.  
  1339. Index: nls/C/C/C/s_elm.m
  1340. *** ../elm2.4/nls/C/C/C/s_elm.m    Thu Dec 24 18:56:46 1992
  1341. --- nls/C/C/C/s_elm.m    Thu Dec 24 19:14:16 1992
  1342. ***************
  1343. *** 139,145 ****
  1344.   $ #EditmsgUserEditor
  1345.   68    \t%co\tInvoke a user specified editor on the message.\n\r
  1346.   $ #EditmsgPrintMsg
  1347. ! 69    \t%cp\tPrint out message as typed in so far.\n\r)
  1348.   $ #EditmsgReadFile
  1349.   70    \t%cr\tRead in the specified file.\n\r
  1350.   $ #EditmsgSubject
  1351. --- 139,145 ----
  1352.   $ #EditmsgUserEditor
  1353.   68    \t%co\tInvoke a user specified editor on the message.\n\r
  1354.   $ #EditmsgPrintMsg
  1355. ! 69    \t%cp\tPrint out message as typed in so far.\n\r
  1356.   $ #EditmsgReadFile
  1357.   70    \t%cr\tRead in the specified file.\n\r
  1358.   $ #EditmsgSubject
  1359. ***************
  1360. *** 203,211 ****
  1361.   $ #KeysNotSame
  1362.   102    "Your keys were not the same!"
  1363.   $ #AbandonChange
  1364. ! 103    "Abandon change to mailbox? (y/n) "
  1365.   $ #AbandonChangePlural
  1366. ! 104    "Abandon changes to mailbox? (y/n) "
  1367.   $ #SendOnlyMode
  1368.   105    Send only mode [ELM %s]
  1369.   $ #NewMailHangOn
  1370. --- 203,211 ----
  1371.   $ #KeysNotSame
  1372.   102    "Your keys were not the same!"
  1373.   $ #AbandonChange
  1374. ! 103    "Abandon change to mailbox? (%c/%c) "
  1375.   $ #AbandonChangePlural
  1376. ! 104    "Abandon changes to mailbox? (%c/%c) "
  1377.   $ #SendOnlyMode
  1378.   105    Send only mode [ELM %s]
  1379.   $ #NewMailHangOn
  1380. ***************
  1381. *** 223,229 ****
  1382.   $ #NoMailReturnAddress
  1383.   112    No mail to get return address of!
  1384.   $ #NoMailToScan
  1385. ! 113    No %s to scan!
  1386.   $ #PatternNotFound
  1387.   114    pattern not found!
  1388.   $ #ScanForCalendar
  1389. --- 223,229 ----
  1390.   $ #NoMailReturnAddress
  1391.   112    No mail to get return address of!
  1392.   $ #NoMailToScan
  1393. ! 113    No mail to scan!
  1394.   $ #PatternNotFound
  1395.   114    pattern not found!
  1396.   $ #ScanForCalendar
  1397. ***************
  1398. *** 614,630 ****
  1399.   kind of termcap entry for "%s" - check your "TERM" setting...\n
  1400.   $quote '
  1401.   $ #LeaveDeleteMessage
  1402. ! 321    'Delete message? (y/n) '
  1403.   $ #LeaveDeleteMessages
  1404. ! 322    'Delete messages? (y/n) '
  1405.   $ #LeaveMoveMessage
  1406. ! 323    'Move read message to "received" folder? (y/n) '
  1407.   $ #LeaveMoveMessages
  1408. ! 324    'Move read messages to "received" folder? (y/n) '
  1409.   $ #LeaveKeepMessage
  1410. ! 325    'Keep unread message in incoming mailbox? (y/n) '
  1411.   $ #LeaveKeepMessages
  1412. ! 326    'Keep unread messages in incoming mailbox? (y/n) '
  1413.   $quote
  1414.   $ #SomethingWrongInCounts
  1415.   327    Something wrong in message counts! Folder unchanged.\n
  1416. --- 614,630 ----
  1417.   kind of termcap entry for "%s" - check your "TERM" setting...\n
  1418.   $quote '
  1419.   $ #LeaveDeleteMessage
  1420. ! 321    'Delete message? (%c/%c) '
  1421.   $ #LeaveDeleteMessages
  1422. ! 322    'Delete messages? (%c/%c) '
  1423.   $ #LeaveMoveMessage
  1424. ! 323    'Move read message to "received" folder? (%c/%c) '
  1425.   $ #LeaveMoveMessages
  1426. ! 324    'Move read messages to "received" folder? (%c/%c) '
  1427.   $ #LeaveKeepMessage
  1428. ! 325    'Keep unread message in incoming mailbox? (%c/%c) '
  1429.   $ #LeaveKeepMessages
  1430. ! 326    'Keep unread messages in incoming mailbox? (%c/%c) '
  1431.   $quote
  1432.   $ #SomethingWrongInCounts
  1433.   327    Something wrong in message counts! Folder unchanged.\n
  1434. ***************
  1435. *** 718,728 ****
  1436.   $quote
  1437.   $ #LimitAlreadyHave
  1438.   372    Already have selection criteria - add more? (%c/%c) %c%c
  1439. ! $ #LimitYes
  1440.   373    Yes.
  1441.   $ #LimitAdding
  1442.   374    Adding criteria...
  1443. ! $ #LimitNo
  1444.   375    No.
  1445.   $ #LimitChanging
  1446.   376    Change criteria...
  1447. --- 718,728 ----
  1448.   $quote
  1449.   $ #LimitAlreadyHave
  1450.   372    Already have selection criteria - add more? (%c/%c) %c%c
  1451. ! $ #YesWord
  1452.   373    Yes.
  1453.   $ #LimitAdding
  1454.   374    Adding criteria...
  1455. ! $ #NoWord
  1456.   375    No.
  1457.   $ #LimitChanging
  1458.   376    Change criteria...
  1459. ***************
  1460. *** 752,758 ****
  1461.   $ #MailNotSent
  1462.   388    "Mail not sent."
  1463.   $ #NoSubjectContinue
  1464. ! 389    No subject - Continue with message? (%c/%c) %c%c
  1465.   $ #MailNotSend
  1466.   390    "Mail not sent."
  1467.   $ #CopiesTo
  1468. --- 752,758 ----
  1469.   $ #MailNotSent
  1470.   388    "Mail not sent."
  1471.   $ #NoSubjectContinue
  1472. ! 389    "No subject - Continue with message? (%c/%c) "
  1473.   $ #MailNotSend
  1474.   390    "Mail not sent."
  1475.   $ #CopiesTo
  1476. ***************
  1477. *** 778,786 ****
  1478.   $ #MailSent
  1479.   401    Mail sent!
  1480.   $ #RecallLastInstead
  1481. ! 402    Recall last kept message instead? (%c/%c) %c%c
  1482.   $ #RecallLastKept
  1483. ! 403    Recall last kept message? (%c/%c) %c%c
  1484.   $ #PleaseChooseSend
  1485.   404    Please choose one of the following options by parenthesized letter: s
  1486.   $ #AndNowSend
  1487. --- 778,786 ----
  1488.   $ #MailSent
  1489.   401    Mail sent!
  1490.   $ #RecallLastInstead
  1491. ! 402    "Recall last kept message instead? (%c/%c) "
  1492.   $ #RecallLastKept
  1493. ! 403    "Recall last kept message? (%c/%c) "
  1494.   $ #PleaseChooseSend
  1495.   404    Please choose one of the following options by parenthesized letter: s
  1496.   $ #AndNowSend
  1497. ***************
  1498. *** 801,807 ****
  1499.   $ #WriteFailedCopyAcross
  1500.   412    \nWrite failed in copy_message_across\n
  1501.   $ #BounceOffRemote
  1502. ! 413    "Bounce" a copy off the remote machine? (%c/%c) %c%c
  1503.   $ #WarningBlankIgnored
  1504.   414    Warning: blank line in %s ignored!
  1505.   $ #BackquoteCmdFailed
  1506. --- 801,807 ----
  1507.   $ #WriteFailedCopyAcross
  1508.   412    \nWrite failed in copy_message_across\n
  1509.   $ #BounceOffRemote
  1510. ! 413    "Bounce" a copy off the remote machine? (%c/%c) "
  1511.   $ #WarningBlankIgnored
  1512.   414    Warning: blank line in %s ignored!
  1513.   $ #BackquoteCmdFailed
  1514. ***************
  1515. *** 973,979 ****
  1516.   $quote "
  1517.   $ #EnterPattern
  1518.   509    "Enter pattern: "
  1519. - $quote
  1520.   $ #MessagesMatchPattern
  1521.   510    %s %s that match pattern...
  1522.   $ #SomeMessagesATagged
  1523. --- 973,978 ----
  1524. ***************
  1525. *** 981,989 ****
  1526.   $ #AMessageATagged
  1527.   512    One %s is already tagged.
  1528.   $ #RemoveTags
  1529. ! 513    Remove Tags? (%c/%c) %c%c
  1530.   $ #RemoveTag
  1531. ! 514    Remove Tag? (%c/%c) %c%c
  1532.   $ #TaggedMessages
  1533.   515    %s %d %s.
  1534.   $ #TaggedMessage
  1535. --- 980,988 ----
  1536.   $ #AMessageATagged
  1537.   512    One %s is already tagged.
  1538.   $ #RemoveTags
  1539. ! 513    "%s Remove Tags? (%c/%c) "
  1540.   $ #RemoveTag
  1541. ! 514    "%s Remove Tag? (%c/%c) "
  1542.   $ #TaggedMessages
  1543.   515    %s %d %s.
  1544.   $ #TaggedMessage
  1545. ***************
  1546. *** 1002,1008 ****
  1547.   522    ELM [match] failed looking %ld bytes into file (%s).
  1548.   $ #CouldntMallocBytes
  1549.   523    \n\nCouldn't malloc %d bytes!!\n\n
  1550. - $quote "
  1551.   $ #ChangeToWhichFolder
  1552.   524    "Change to which folder: "
  1553.   $quote
  1554. --- 1001,1006 ----
  1555. ***************
  1556. *** 1086,1093 ****
  1557.   567    Sorry - couldn't make file temp file name.
  1558.   $ #CouldntOpenForWriting
  1559.   568    Sorry - couldn't open file %s for writing (%s).
  1560.   $ #SureYouWantToRemail
  1561. ! 569    Are you sure you want to remail this message (%c/%c)? %c%c
  1562.   $ #BounceCancelled
  1563.   570    Bounce of message cancelled.
  1564.   $ #ResendingMail
  1565. --- 1084,1093 ----
  1566.   567    Sorry - couldn't make file temp file name.
  1567.   $ #CouldntOpenForWriting
  1568.   568    Sorry - couldn't open file %s for writing (%s).
  1569. + $quote "
  1570.   $ #SureYouWantToRemail
  1571. ! 569    "Are you sure you want to remail this message (%c/%c)? "
  1572. ! $quote
  1573.   $ #BounceCancelled
  1574.   570    Bounce of message cancelled.
  1575.   $ #ResendingMail
  1576. ***************
  1577. *** 1147,1153 ****
  1578.   $ #ShownWithSelect
  1579.   593    %s is '%s' with %d shown out of %d [ELM %s]
  1580.   $ #ShownNoSelect
  1581. ! 594    %s is '%s' with %d message%s [ELM %s]
  1582.   $ #FolderWord
  1583.   595    Folder
  1584.   $ #MailboxWord
  1585. --- 1147,1153 ----
  1586.   $ #ShownWithSelect
  1587.   593    %s is '%s' with %d shown out of %d [ELM %s]
  1588.   $ #ShownNoSelect
  1589. ! 594    %s is '%s' with 1 message [ELM %s]
  1590.   $ #FolderWord
  1591.   595    Folder
  1592.   $ #MailboxWord
  1593. ***************
  1594. *** 1554,1564 ****
  1595.   $ #EditMessage
  1596.   806    "Choose e)dit message, "
  1597.   $ #EditMsg
  1598. ! 807    "Choose e)edit msg, m)ake form, "
  1599.   $ #Shell
  1600.   808    "!)shell, "
  1601.   $ #HeadersCopy
  1602. ! 809    "h)eaders, c)opy, "
  1603.   $ #Ispell
  1604.   810    "i)spell, "
  1605.   $quote
  1606. --- 1554,1564 ----
  1607.   $ #EditMessage
  1608.   806    "Choose e)dit message, "
  1609.   $ #EditMsg
  1610. ! 807    "Choose e)dit msg, m)ake form, "
  1611.   $ #Shell
  1612.   808    "!)shell, "
  1613.   $ #HeadersCopy
  1614. ! 809    "h)eaders, c)opy file, "
  1615.   $ #Ispell
  1616.   810    "i)spell, "
  1617.   $quote
  1618. ***************
  1619. *** 1588,1590 ****
  1620. --- 1588,1604 ----
  1621.   822    \nCouldn't seek %ld bytes into temp file.\n
  1622.   $ #CannotExpand
  1623.   823    Cannot expand alias '%s'!\n\r
  1624. + $ #NoItemToScan
  1625. + 824    No %s to scan!
  1626. + $quote "
  1627. + $ #ConfirmFilesAppend
  1628. + 825    "Append to an existing file `%s'? (%c/%c) "
  1629. + $ #ConfirmFolderAppend
  1630. + 826    "Append to mail folder `%s'? (%c/%c) "
  1631. + $ #ConfirmFilesCreate
  1632. + 827    "Create a new file `%s'? (%c/%c) "
  1633. + $ #ConfirmFolderCreate
  1634. + 828    "Create a new mail folder `%s'? (%c/%c) "
  1635. + $quote
  1636. + $ #SavingToInstead
  1637. + 829    Alright - saving to `%s' instead
  1638.  
  1639. Index: nls/C/C/C/s_filter.m
  1640. *** ../elm2.4/nls/C/C/C/s_filter.m    Tue Nov 17 15:10:50 1992
  1641. --- nls/C/C/C/s_filter.m    Thu Dec 24 16:37:33 1992
  1642. ***************
  1643. *** 21,27 ****
  1644.   $ #PopenFailed
  1645.   10    filter (%s): popen %s failed!\n
  1646.   $ #FromTheFilterOf
  1647. ! 11    From: The Filter of %s@%s <%s>\n
  1648.   $ #XFilteredBy
  1649.   12    X-Filtered-By: filter, version %s\n\n
  1650.   $ #BeginMesg
  1651. --- 21,27 ----
  1652.   $ #PopenFailed
  1653.   10    filter (%s): popen %s failed!\n
  1654.   $ #FromTheFilterOf
  1655. ! 11    From: "The Filter of %s@%s" <%s>\n
  1656.   $ #XFilteredBy
  1657.   12    X-Filtered-By: filter, version %s\n\n
  1658.   $ #BeginMesg
  1659. ***************
  1660. *** 117,123 ****
  1661.   $ #Execute
  1662.   57    Execute
  1663.   $ #Action
  1664. ! 58    Action
  1665.   $ #CantOpenFiltersum
  1666.   59    filter (%s): Can't open filtersum file %s!\n
  1667.   $ #WarningInvalidForShort
  1668. --- 117,123 ----
  1669.   $ #Execute
  1670.   57    Execute
  1671.   $ #Action
  1672. ! 58    ?action?
  1673.   $ #CantOpenFiltersum
  1674.   59    filter (%s): Can't open filtersum file %s!\n
  1675.   $ #WarningInvalidForShort
  1676. ***************
  1677. *** 185,191 ****
  1678.   $ #TheDefaultAction
  1679.   90    : the default action\n
  1680.   $ #ForkSaveFailed
  1681. ! 91    filter (%s): fork and save of command failed\n\
  1682.   \tsaving with current group id\n
  1683.   $quote "
  1684.   $ #RuleNum
  1685. --- 185,191 ----
  1686.   $ #TheDefaultAction
  1687.   90    : the default action\n
  1688.   $ #ForkSaveFailed
  1689. ! 91    filter (%s): fork-and-save of command failed\n\
  1690.   \tsaving with current group id\n
  1691.   $quote "
  1692.   $ #RuleNum
  1693.  
  1694. Index: nls/C/C/C/s_from.m
  1695. *** ../elm2.4/nls/C/C/C/s_from.m    Sat Oct  3 18:35:21 1992
  1696. --- nls/C/C/C/s_from.m    Thu Dec 24 16:38:42 1992
  1697. ***************
  1698. *** 22,38 ****
  1699.   $ #NoMesgInFolder
  1700.   11    No messages in that folder!\n
  1701.   $ #NoExplainMail
  1702. ! 12    %s no%s mail.\n
  1703.   $ #NoExplainMessages
  1704. ! 13    No%s messages in that folder.
  1705.   $ #StringStringMail
  1706. ! 14    %s%s mail.\n
  1707.   $ #ThereAreMesg
  1708. ! 15    There are%s messages in that folder.\n
  1709.   $ #FollowingMesg
  1710.   16    %s the following mail messages:\n
  1711.   $ #FolderContainsFollowing
  1712. ! 17    Folder contains the following%s messages:\n
  1713.   $quote "
  1714.   $ #FolderContains
  1715.   18    "Folder contains "
  1716. --- 22,38 ----
  1717.   $ #NoMesgInFolder
  1718.   11    No messages in that folder!\n
  1719.   $ #NoExplainMail
  1720. ! 12    %s no %s mail.\n
  1721.   $ #NoExplainMessages
  1722. ! 13    No %s messages in that folder.
  1723.   $ #StringStringMail
  1724. ! 14    %s %s mail.\n
  1725.   $ #ThereAreMesg
  1726. ! 15    There are %s messages in that folder.\n
  1727.   $ #FollowingMesg
  1728.   16    %s the following mail messages:\n
  1729.   $ #FolderContainsFollowing
  1730. ! 17    Folder contains the following %s messages:\n
  1731.   $quote "
  1732.   $ #FolderContains
  1733.   18    "Folder contains "
  1734.  
  1735. Index: nls/C/C/C/s_newalias.m
  1736. *** ../elm2.4/nls/C/C/C/s_newalias.m    Thu Dec 24 18:56:46 1992
  1737. --- nls/C/C/C/s_newalias.m    Sun Dec 20 00:10:03 1992
  1738. ***************
  1739. *** 32,38 ****
  1740.   $ #ErrWrite
  1741.   16    ** Error writing alias '%s'.
  1742.   $ #ListUsage
  1743. ! 17    Usage: listalias <optional-regular-expression>\n
  1744.   $ #NoPipe
  1745.   18    cannot open pipe to egrep program for expressions!\n
  1746.   $ #NoOpenData
  1747. --- 32,38 ----
  1748.   $ #ErrWrite
  1749.   16    ** Error writing alias '%s'.
  1750.   $ #ListUsage
  1751. ! 17    Usage: listalias [ -s | -u ] <optional-regular-expression>\n
  1752.   $ #NoPipe
  1753.   18    cannot open pipe to egrep program for expressions!\n
  1754.   $ #NoOpenData
  1755.  
  1756. Index: src/alias.c
  1757. Prereq: 5.17
  1758. *** ../elm2.4/src/alias.c    Thu Dec 24 18:56:48 1992
  1759. --- src/alias.c    Thu Dec 24 16:42:07 1992
  1760. ***************
  1761. *** 1,8 ****
  1762.   
  1763. ! static char rcsid[] = "@(#)$Id: alias.c,v 5.17 1992/12/13 17:59:18 syd Exp $";
  1764.   
  1765.   /*******************************************************************************
  1766. !  *  The Elm Mail System  -  $Revision: 5.17 $   $State: Exp $
  1767.    *
  1768.    *             Copyright (c) 1988-1992 USENET Community Trust
  1769.    *             Copyright (c) 1986,1987 Dave Taylor
  1770. --- 1,8 ----
  1771.   
  1772. ! static char rcsid[] = "@(#)$Id: alias.c,v 5.19 1992/12/24 21:42:01 syd Exp $";
  1773.   
  1774.   /*******************************************************************************
  1775. !  *  The Elm Mail System  -  $Revision: 5.19 $   $State: Exp $
  1776.    *
  1777.    *             Copyright (c) 1988-1992 USENET Community Trust
  1778.    *             Copyright (c) 1986,1987 Dave Taylor
  1779. ***************
  1780. *** 14,19 ****
  1781. --- 14,29 ----
  1782.    *
  1783.    *******************************************************************************
  1784.    * $Log: alias.c,v $
  1785. +  * Revision 5.19  1992/12/24  21:42:01  syd
  1786. +  * Fix messages and nls messages to match.  Plus use want_to
  1787. +  * where appropriate.
  1788. +  * From: Syd, via prompting from Jan Djarv <Jan.Djarv@sa.erisoft.se>
  1789. +  *
  1790. +  * Revision 5.18  1992/12/20  05:15:58  syd
  1791. +  * Add a c)hange alias, -u and -t options to listalias to list only user
  1792. +  * and only system aliases respectively.
  1793. +  * From: "Robert L. Howard" <robert.howard@matd.gatech.edu>
  1794. +  *
  1795.    * Revision 5.17  1992/12/13  17:59:18  syd
  1796.    * Please write on the blackboard 500 times `NULL != 0.'
  1797.    * From: chip@chinacat.unicom.com (Chip Rosenthal)
  1798. ***************
  1799. *** 357,363 ****
  1800.   }
  1801.   
  1802.   int
  1803. ! add_alias()
  1804.   {
  1805.   /*
  1806.    *    Add an alias to the user alias text file.  If there
  1807. --- 367,374 ----
  1808.   }
  1809.   
  1810.   int
  1811. ! add_alias(replace, to_replace)
  1812. ! int replace, to_replace;
  1813.   {
  1814.   /*
  1815.    *    Add an alias to the user alias text file.  If there
  1816. ***************
  1817. *** 365,370 ****
  1818. --- 376,391 ----
  1819.    *    create a group alias from the tagged files.
  1820.    *
  1821.    *    Return zero if alias not added in actuality.
  1822. +  *
  1823. +  *    If replace == FALSE, then we will ask for the new
  1824. +  *    aliasname.
  1825. +  *
  1826. +  *    If replace == TRUE, then we are replacing the alias
  1827. +  *    denoted by to_replace.
  1828. +  *
  1829. +  *    Note that even if replace == FALSE, if the user types
  1830. +  *    in the name of a current alias then we can still do
  1831. +  *    a replacement.
  1832.    */
  1833.   
  1834.       int i, leftoff, tagged = 0;
  1835. ***************
  1836. *** 371,377 ****
  1837.   
  1838.       char aliasname[SLEN], firstname[SLEN], lastname[SLEN];
  1839.       char address1[LONG_STRING], buffer[SLEN];
  1840. !     char comment[LONG_STRING], ch;
  1841.   
  1842.   /*
  1843.    *    See if there are any tagged aliases.
  1844. --- 392,399 ----
  1845.   
  1846.       char aliasname[SLEN], firstname[SLEN], lastname[SLEN];
  1847.       char address1[LONG_STRING], buffer[SLEN];
  1848. !     char comment[LONG_STRING], ch = *def_ans_no;
  1849. !     char *ch_ptr;
  1850.   
  1851.   /*
  1852.    *    See if there are any tagged aliases.
  1853. ***************
  1854. *** 396,404 ****
  1855.                   AliasesSet, AliasesCreateGroup,
  1856.                   "Create group alias? (%c/%c) "),
  1857.               *def_ans_yes, *def_ans_no);
  1858. !         ch = want_to(buffer, *def_ans_no);
  1859.       }
  1860. !     if (tagged > 1) {
  1861.        /*
  1862.         * If multiple tagged aliases then we assume the user
  1863.         * wants to create a group alias.  The default response
  1864. --- 418,426 ----
  1865.                   AliasesSet, AliasesCreateGroup,
  1866.                   "Create group alias? (%c/%c) "),
  1867.               *def_ans_yes, *def_ans_no);
  1868. !         ch = want_to(buffer, *def_ans_no, LINES-3);
  1869.       }
  1870. !     else if (tagged > 1) {
  1871.        /*
  1872.         * If multiple tagged aliases then we assume the user
  1873.         * wants to create a group alias.  The default response
  1874. ***************
  1875. *** 412,464 ****
  1876.                   AliasesSet, AliasesCreateGroup,
  1877.                   "Create group alias? (%c/%c) "),
  1878.               *def_ans_yes, *def_ans_no);
  1879. !         ch = want_to(buffer, *def_ans_yes);
  1880.       }
  1881.   
  1882.   /*
  1883. !  *    Create the group alias.  This is (hopefully) only
  1884. !  *    done if one of the above want_to() questions were
  1885.    *    answered YES (and thus there *were* tagged messages
  1886.    *    and the user responded correctly).
  1887.    */
  1888.       if (ch == *def_ans_yes) {
  1889.           strcpy(address1, aliases[leftoff]->alias);
  1890. -         clearit(aliases[leftoff]->status, TAGGED);
  1891. -         show_msg_tag(leftoff);
  1892.           for (i=leftoff+1; i < message_count; i++) {
  1893.               if (ison(aliases[i]->status, TAGGED)) {
  1894.                   strcat(address1, ",");
  1895.                   strcat(address1, aliases[i]->alias);
  1896. -                 clearit(aliases[i]->status, TAGGED);
  1897. -                 show_msg_tag(i);
  1898.               }
  1899.           }
  1900.       }
  1901.   
  1902. !     strcpy(buffer, catgets(elm_msg_cat,
  1903. !             AliasesSet, AliasesEnterAliasName, "Enter alias name: "));
  1904. !     PutLine0(LINES-2,0, buffer);
  1905. !     CleartoEOLN();
  1906. !     *aliasname = '\0';
  1907. !     if (get_aliasname(aliasname, buffer) != 0) {
  1908. !         dprint(3, (debugfile, 
  1909. !             "Aliasname [%s] was rejected in add_alias\n", aliasname));
  1910. !         ClearLine(LINES-2);
  1911. !         return(0);
  1912.       }
  1913.   
  1914. !     *lastname = '\0';
  1915. !     *firstname = '\0';
  1916. !     *comment = '\0';
  1917.       get_realnames(aliasname, firstname, lastname, comment, buffer);
  1918.   
  1919. !     if ((tagged == 0) || (ch == *def_ans_no)) {
  1920.           sprintf(buffer, catgets(elm_msg_cat,
  1921.                   AliasesSet, AliasesEnterAddress,
  1922.                   "Enter address for %s: "), aliasname);
  1923.           PutLine0(LINES-2,0, buffer);
  1924.           CleartoEOLN();
  1925. !         *address1 = '\0';
  1926.           optionally_enter(address1, LINES-2, strlen(buffer), FALSE, FALSE);
  1927.           Raw(ON);
  1928.           if (strlen(address1) == 0) {
  1929. --- 434,518 ----
  1930.                   AliasesSet, AliasesCreateGroup,
  1931.                   "Create group alias? (%c/%c) "),
  1932.               *def_ans_yes, *def_ans_no);
  1933. !         ch = want_to(buffer, *def_ans_yes, LINES-3);
  1934.       }
  1935.   
  1936.   /*
  1937. !  *    Create the group alias address.  This is only done
  1938. !  *    if one of the above want_to() questions were
  1939.    *    answered YES (and thus there *were* tagged messages
  1940.    *    and the user responded correctly).
  1941.    */
  1942.       if (ch == *def_ans_yes) {
  1943.           strcpy(address1, aliases[leftoff]->alias);
  1944.           for (i=leftoff+1; i < message_count; i++) {
  1945.               if (ison(aliases[i]->status, TAGGED)) {
  1946.                   strcat(address1, ",");
  1947.                   strcat(address1, aliases[i]->alias);
  1948.               }
  1949.           }
  1950.       }
  1951. +     else {
  1952. +         tagged = 0;
  1953. +     }
  1954.   
  1955. ! /*
  1956. !  *    Only ask for an aliasname if we are NOT replacing the
  1957. !  *    current alias.
  1958. !  */
  1959. !     if (replace) {
  1960. !         strcpy(aliasname, aliases[to_replace]->alias);
  1961. !     }
  1962. !     else {
  1963. !         strcpy(buffer, catgets(elm_msg_cat,
  1964. !                 AliasesSet, AliasesEnterAliasName, "Enter alias name: "));
  1965. !         PutLine0(LINES-2,0, buffer);
  1966. !         CleartoEOLN();
  1967. !         *aliasname = '\0';
  1968. !         if ((replace = get_aliasname(aliasname, buffer, &to_replace)) < 0) {
  1969. !             dprint(3, (debugfile, 
  1970. !                 "Aliasname [%s] was rejected in add_alias\n", aliasname));
  1971. !             ClearLine(LINES-2);
  1972. !             return(0);
  1973. !         }
  1974.       }
  1975.   
  1976. ! /*
  1977. !  *    If we are replacing an existing alias, we will assume that
  1978. !  *    they might want to be just editing most of what is already
  1979. !  *    there.  So we copy some defaults from the existing alias.
  1980. !  */
  1981. !     if (replace) {
  1982. !         strcpy(lastname, aliases[to_replace]->last_name);
  1983. !         strcpy(firstname, aliases[to_replace]->name);
  1984. !         ch_ptr = strstr(firstname, lastname);
  1985. !         *(ch_ptr-1) = '\0';
  1986. !         strcpy(comment, aliases[to_replace]->comment);
  1987. !     }
  1988. !     else {
  1989. !         *lastname = '\0';
  1990. !         *firstname = '\0';
  1991. !         *comment = '\0';
  1992. !     }
  1993.       get_realnames(aliasname, firstname, lastname, comment, buffer);
  1994.   
  1995. ! /*
  1996. !  *    Since there are no tagged aliases, we must ask for an
  1997. !  *    address.  If we are replacing, a default address is
  1998. !  *    presented.
  1999. !  */
  2000. !     if (tagged == 0) {
  2001.           sprintf(buffer, catgets(elm_msg_cat,
  2002.                   AliasesSet, AliasesEnterAddress,
  2003.                   "Enter address for %s: "), aliasname);
  2004.           PutLine0(LINES-2,0, buffer);
  2005.           CleartoEOLN();
  2006. !         if (replace) {
  2007. !             strcpy(address1, aliases[to_replace]->address);
  2008. !         }
  2009. !         else {
  2010. !             *address1 = '\0';
  2011. !         }
  2012.           optionally_enter(address1, LINES-2, strlen(buffer), FALSE, FALSE);
  2013.           Raw(ON);
  2014.           if (strlen(address1) == 0) {
  2015. ***************
  2016. *** 468,475 ****
  2017.           }
  2018.       }
  2019.   
  2020. !     return(ask_accept(aliasname, firstname, lastname, comment, address1,
  2021. !             buffer));
  2022.   
  2023.   }
  2024.   
  2025. --- 522,547 ----
  2026.           }
  2027.       }
  2028.   
  2029. !     if(ask_accept(aliasname, firstname, lastname, comment, address1,
  2030. !             buffer, replace, to_replace)) {
  2031. !      /*
  2032. !       * We can only clear the tags after we know that the
  2033. !       * alias was added.  This allows the user to back out
  2034. !       * and rethink without losing the tags.
  2035. !       */
  2036. !         if (tagged > 0) {
  2037. !             for (i=leftoff; i < message_count; i++) {
  2038. !                 if (ison(aliases[i]->status, TAGGED)) {
  2039. !                     clearit(aliases[i]->status, TAGGED);
  2040. !                     show_msg_tag(i);
  2041. !                 }
  2042. !             }
  2043. !         }
  2044. !         return(1);
  2045. !     }
  2046. !     else {
  2047. !         return(0);
  2048. !     }
  2049.   
  2050.   }
  2051.   
  2052. ***************
  2053. *** 493,498 ****
  2054. --- 565,571 ----
  2055.       static char bad_punc[] = ",.:;";
  2056.       char *punc_ptr;
  2057.       int i, match;
  2058. +     int replace, to_replace;
  2059.   
  2060.       if (current_mail_message == 0) {
  2061.        dprint(4, (debugfile, 
  2062. ***************
  2063. *** 508,517 ****
  2064.       PutLine0(LINES-2,0, buffer);
  2065.       CleartoEOLN();
  2066.       *aliasname = '\0';
  2067. !     if (get_aliasname(aliasname, buffer) != 0) {
  2068.           dprint(3, (debugfile, 
  2069.               "Aliasname [%s] was rejected in add_current_alias\n",
  2070.               aliasname));
  2071.           return(0);
  2072.       }
  2073.   
  2074. --- 581,591 ----
  2075.       PutLine0(LINES-2,0, buffer);
  2076.       CleartoEOLN();
  2077.       *aliasname = '\0';
  2078. !     if ((replace = get_aliasname(aliasname, buffer, &to_replace)) < 0) {
  2079.           dprint(3, (debugfile, 
  2080.               "Aliasname [%s] was rejected in add_current_alias\n",
  2081.               aliasname));
  2082. +         ClearLine(LINES-2);
  2083.           return(0);
  2084.       }
  2085.   
  2086. ***************
  2087. *** 611,617 ****
  2088.       strcpy(address1, strip_parens(address1));    /* remove parens! */
  2089.   
  2090.       return(ask_accept(aliasname, firstname, lastname, comment, address1,
  2091. !             buffer));
  2092.   
  2093.   }
  2094.   
  2095. --- 685,691 ----
  2096.       strcpy(address1, strip_parens(address1));    /* remove parens! */
  2097.   
  2098.       return(ask_accept(aliasname, firstname, lastname, comment, address1,
  2099. !             buffer, replace, to_replace));
  2100.   
  2101.   }
  2102.   
  2103. ***************
  2104. *** 865,870 ****
  2105. --- 939,960 ----
  2106.                 clear_error();
  2107.                 newaliases += add_current_alias();    break;
  2108.   
  2109. +         case 'c':
  2110. +                   if (current > 0) {
  2111. +                       PutLine0(LINES-3, strlen(Prompt),
  2112. +                   catgets(elm_msg_cat,
  2113. +                                   AliasesSet, AliasesReplaceCurrent,
  2114. +                                   "Replace current alias in database..."));
  2115. +                   clear_error();
  2116. +                   newaliases += add_alias(TRUE, current-1);
  2117. +                   }
  2118. +                   else {
  2119. +                   error(catgets(elm_msg_cat,
  2120. +                               AliasesSet, AliasesNoneToReplace,
  2121. +                   "Warning: no aliases to replace!"));
  2122. +                   }
  2123. +               break;
  2124.           case 'e': PutLine1(LINES-3, strlen(Prompt),
  2125.                         catgets(elm_msg_cat, AliasesSet, AliasesEdit,
  2126.                             "Edit %s..."), ALIAS_TEXT);
  2127. ***************
  2128. *** 913,919 ****
  2129.                    catgets(elm_msg_cat, AliasesSet, AliasesAddNew,
  2130.                            "Add a new alias to database..."));
  2131.                 clear_error();
  2132. !               newaliases += add_alias();         break;
  2133.   
  2134.           case 'q':
  2135.           case 'Q':
  2136. --- 1003,1009 ----
  2137.                    catgets(elm_msg_cat, AliasesSet, AliasesAddNew,
  2138.                            "Add a new alias to database..."));
  2139.                 clear_error();
  2140. !               newaliases += add_alias(FALSE, -1);         break;
  2141.   
  2142.           case 'q':
  2143.           case 'Q':
  2144. ***************
  2145. *** 1167,1172 ****
  2146. --- 1257,1266 ----
  2147.           "a = Add (return) address of current message to alias database."));
  2148.                 break;
  2149.   
  2150. +         case 'c': error(catgets(elm_msg_cat, AliasesSet, AliasesHelpc,
  2151. + "c = Change current user alias, modifying alias database at next resync."));
  2152. +               break;
  2153.           case 'd': error(catgets(elm_msg_cat, AliasesSet, AliasesHelpd,
  2154.           "d = Mark the current alias for deletion from alias database."));
  2155.                 break;
  2156. ***************
  2157. *** 1313,1342 ****
  2158.   
  2159.   }
  2160.   
  2161. - /* byte-ordering stuff */
  2162. - #define    MAPIN(o)    ((db->dbz_bytesame) ? (of_t) (o) : bytemap((of_t)(o), db->dbz_conf.bytemap, db->dbz_mybmap))
  2163. - #define    MAPOUT(o)    ((db->dbz_bytesame) ? (of_t) (o) : bytemap((of_t)(o), db->dbz_mybmap, db->dbz_conf.bytemap))
  2164. - static of_t            /* transformed result */
  2165. - bytemap(ino, map1, map2)
  2166. - of_t ino;
  2167. - int *map1;
  2168. - int *map2;
  2169. - {
  2170. -     union oc {
  2171. -         of_t o;
  2172. -         char c[SOF];
  2173. -     };
  2174. -     union oc in;
  2175. -     union oc out;
  2176. -     register int i;
  2177. -     in.o = ino;
  2178. -     for (i = 0; i < SOF; i++)
  2179. -         out.c[map2[i]] = in.c[map1[i]];
  2180. -     return(out.o);
  2181. - }
  2182.   get_one_alias(db, current)
  2183.   DBZ *db;
  2184.   int current;
  2185. --- 1407,1412 ----
  2186. ***************
  2187. *** 1350,1360 ****
  2188.       struct alias_rec    ar;
  2189.       FILE *data_file = db->dbz_basef;
  2190.   
  2191. !     if (data_file == NULL)
  2192. !         return(0);    /* no alias file, but hash exists, error condition */
  2193. !     if (fread((char *) &ar, sizeof(ar), 1, data_file) <= 0)
  2194.           return(0);
  2195.   
  2196.       if (current >= max_aliases) {
  2197.           new_max = max_aliases + KLICK;
  2198. --- 1420,1428 ----
  2199.       struct alias_rec    ar;
  2200.       FILE *data_file = db->dbz_basef;
  2201.   
  2202. !     if(read_one_alias(db, &ar) == 0) {
  2203.           return(0);
  2204. +     }
  2205.   
  2206.       if (current >= max_aliases) {
  2207.           new_max = max_aliases + KLICK;
  2208. ***************
  2209. *** 1383,1397 ****
  2210.           aliases[current] = NULL;
  2211.       }
  2212.   
  2213. -     ar.status = (int) MAPIN(ar.status);
  2214. -     ar.alias = (char *) MAPIN(ar.alias);
  2215. -     ar.last_name = (char *) MAPIN(ar.last_name);
  2216. -     ar.name = (char *) MAPIN(ar.name);
  2217. -     ar.comment = (char *) MAPIN(ar.comment);
  2218. -     ar.address = (char *) MAPIN(ar.address);
  2219. -     ar.type = (int) MAPIN(ar.type);
  2220. -     ar.length = (long) MAPIN(ar.length);
  2221.       if ((a = (struct alias_rec *)
  2222.           malloc(sizeof(ar) + ar.length)) == NULL) {
  2223.           error1(catgets(elm_msg_cat, AliasesSet, AliasesErrorMemory,
  2224. --- 1451,1456 ----
  2225. ***************
  2226. *** 1519,1551 ****
  2227.   }
  2228.   
  2229.   int
  2230. ! get_aliasname(aliasname, buffer)
  2231.   char *aliasname, *buffer;
  2232.   {
  2233.   
  2234.       int loc;
  2235. -     char ch;
  2236.   
  2237.       optionally_enter(aliasname, LINES-2, strlen(buffer), FALSE, FALSE);
  2238.       if (strlen(aliasname) == 0) 
  2239.           return(-1);
  2240.           if ( !ok_alias_name(aliasname) ) {
  2241.           error1(catgets(elm_msg_cat, AliasesSet, AliasesBadChars,
  2242.                   "Bad character(s) in alias name %s."), aliasname);
  2243.           return(-1);
  2244.       }
  2245.       if ((loc = find_alias(aliasname, USER)) >= 0) {
  2246.           dprint(3, (debugfile, 
  2247.                "Attempt to add a duplicate alias [%s] in get_aliasname\n",
  2248. !              aliases[loc]->address)); 
  2249.           if (aliases[loc]->type & GROUP )
  2250. !             error1(catgets(elm_msg_cat, AliasesSet, AliasesAlreadyGroup,
  2251.                       "Already a group with name %s."), aliases[loc]->alias);
  2252.           else
  2253. !             error1(catgets(elm_msg_cat, AliasesSet, AliasesAlreadyAlias,
  2254.                       "Already an alias for %s."), aliases[loc]->alias);
  2255. !         return(-1);
  2256.       }
  2257.       if ((loc = find_alias(aliasname, SYSTEM)) >= 0) {
  2258.           dprint(3, (debugfile, 
  2259.             "Attempt to add a duplicate system alias [%s] in get_aliasname\n",
  2260. --- 1578,1660 ----
  2261.   }
  2262.   
  2263.   int
  2264. ! get_aliasname(aliasname, buffer, duplicate)
  2265.   char *aliasname, *buffer;
  2266. + int *duplicate;
  2267.   {
  2268.   
  2269. + /*
  2270. +  *    Have the user enter an aliasname, check to see if it
  2271. +  *    is legal, then check for duplicates.  If a duplicate
  2272. +  *    is found offer to replace existing alias.
  2273. +  *
  2274. +  *    Return values:
  2275. +  *
  2276. +  *    -1    Either the aliasname was zero length, had bad
  2277. +  *        characters and was a duplicate which the user
  2278. +  *        chose not to replace.
  2279. +  *
  2280. +  *    0    A new alias was entered successfully.
  2281. +  *
  2282. +  *    1    The entered alias was an existing USER alias
  2283. +  *        that the user has chosen to replace.  In this
  2284. +  *        case the alias to replace is passed back in
  2285. +  *        in the variable 'duplicate'.
  2286. +  */
  2287.       int loc;
  2288.   
  2289.       optionally_enter(aliasname, LINES-2, strlen(buffer), FALSE, FALSE);
  2290. + /*
  2291. +  *    Return if nothing was entered.
  2292. +  */
  2293.       if (strlen(aliasname) == 0) 
  2294.           return(-1);
  2295. + /*
  2296. +  *    Return if invalid alias characters were entered.
  2297. +  */
  2298.           if ( !ok_alias_name(aliasname) ) {
  2299.           error1(catgets(elm_msg_cat, AliasesSet, AliasesBadChars,
  2300.                   "Bad character(s) in alias name %s."), aliasname);
  2301.           return(-1);
  2302.       }
  2303. + /*
  2304. +  *    Check to see if there is already a USER alias by this name.
  2305. +  */
  2306.       if ((loc = find_alias(aliasname, USER)) >= 0) {
  2307.           dprint(3, (debugfile, 
  2308.                "Attempt to add a duplicate alias [%s] in get_aliasname\n",
  2309. !              aliases[loc]->alias)); 
  2310.           if (aliases[loc]->type & GROUP )
  2311. !             PutLine1(LINES-2,0, catgets(elm_msg_cat,
  2312. !                     AliasesSet, AliasesAlreadyGroup,
  2313.                       "Already a group with name %s."), aliases[loc]->alias);
  2314.           else
  2315. !             PutLine1(LINES-2,0, catgets(elm_msg_cat,
  2316. !                     AliasesSet, AliasesAlreadyAlias,
  2317.                       "Already an alias for %s."), aliases[loc]->alias);
  2318. !         CleartoEOLN();
  2319. !         MCsprintf(buffer, catgets(elm_msg_cat,
  2320. !                 AliasesSet, AliasesReplaceExisting,
  2321. !                 "Replace existing alias? (%c/%c) "),
  2322. !             *def_ans_yes, *def_ans_no);
  2323. !      /*
  2324. !       * If they don't want to replace the alias by that name
  2325. !       * then just return.
  2326. !       */
  2327. !         if (want_to(buffer, *def_ans_no, LINES-3) != *def_ans_yes)
  2328. !             return(-1);
  2329. !         *duplicate = loc;
  2330. !         return(1);
  2331.       }
  2332. + /*
  2333. +  *    If they have elected to replace an existing alias then
  2334. +  *    we assume that they would also elect to superceed a
  2335. +  *    system alias by that name (since they have already
  2336. +  *    done so).  So we don't even bother to check or ask.
  2337. +  *
  2338. +  *    Of course we do check if there was no USER alias match.
  2339. +  */
  2340.       if ((loc = find_alias(aliasname, SYSTEM)) >= 0) {
  2341.           dprint(3, (debugfile, 
  2342.             "Attempt to add a duplicate system alias [%s] in get_aliasname\n",
  2343. ***************
  2344. *** 1557,1563 ****
  2345.               alias_type(aliases[loc]->type), aliases[loc]->alias);
  2346.           MCsprintf(buffer, catgets(elm_msg_cat, AliasesSet, AliasesSuperceed,
  2347.                   "Superceed? (%c/%c)"), *def_ans_yes, *def_ans_no);
  2348. !         if ((ch = want_to(buffer, *def_ans_yes)) != *def_ans_yes)
  2349.               return(-1);
  2350.       }
  2351.       return(0);
  2352. --- 1666,1676 ----
  2353.               alias_type(aliases[loc]->type), aliases[loc]->alias);
  2354.           MCsprintf(buffer, catgets(elm_msg_cat, AliasesSet, AliasesSuperceed,
  2355.                   "Superceed? (%c/%c)"), *def_ans_yes, *def_ans_no);
  2356. !      /*
  2357. !       * If they don't want to superceed the SYSTEM alias then
  2358. !       * just return.
  2359. !       */
  2360. !         if (want_to(buffer, *def_ans_yes, LINES-3) != *def_ans_yes)
  2361.               return(-1);
  2362.       }
  2363.       return(0);
  2364. ***************
  2365. *** 1593,1603 ****
  2366.   }
  2367.   
  2368.   int
  2369. ! ask_accept(aliasname, firstname, lastname, comment, address, buffer)
  2370.   char *aliasname, *firstname, *lastname, *comment, *address, *buffer;
  2371.   {
  2372.   
  2373.       char ch;
  2374.   
  2375.       if (strlen(firstname) == 0) {
  2376.           strcpy(buffer, lastname);  
  2377. --- 1706,1719 ----
  2378.   }
  2379.   
  2380.   int
  2381. ! ask_accept(aliasname, firstname, lastname, comment, address, buffer,
  2382. !     replace, replacement)
  2383.   char *aliasname, *firstname, *lastname, *comment, *address, *buffer;
  2384. + int replace, replacement;
  2385.   {
  2386.   
  2387.       char ch;
  2388. +     char *(old_alias[1]);
  2389.   
  2390.       if (strlen(firstname) == 0) {
  2391.           strcpy(buffer, lastname);  
  2392. ***************
  2393. *** 1615,1624 ****
  2394.       PutLine3(LINES-2,0, catgets(elm_msg_cat, AliasesSet, AliasesAddressTo,
  2395.               "New alias: %s is '%s'."), aliasname, buffer);
  2396.       CleartoEOLN();
  2397.       MCsprintf(buffer, catgets(elm_msg_cat, AliasesSet, AliasesAcceptNew,
  2398. !         "  Accept new alias? (%c/%c) "), *def_ans_yes, *def_ans_no);
  2399. !     if((ch = want_to(buffer, *def_ans_yes)) == *def_ans_yes)
  2400. !       add_to_alias_text(aliasname, firstname, lastname, comment, address);
  2401.       ClearLine(LINES-2);
  2402.       ClearLine(LINES-1);
  2403.       return(ch == *def_ans_yes ? 1 : 0);
  2404. --- 1731,1757 ----
  2405.       PutLine3(LINES-2,0, catgets(elm_msg_cat, AliasesSet, AliasesAddressTo,
  2406.               "New alias: %s is '%s'."), aliasname, buffer);
  2407.       CleartoEOLN();
  2408. + /*
  2409. +  *    Kludge Alert:  Spaces are padded to the front of the prompt
  2410. +  *    to write over the previous question.  Should probably record
  2411. +  *    the end of the line, move to it, and CleartoEOLN() it.
  2412. +  */
  2413.       MCsprintf(buffer, catgets(elm_msg_cat, AliasesSet, AliasesAcceptNew,
  2414. !         "      Accept new alias? (%c/%c) "), *def_ans_yes, *def_ans_no);
  2415. !     if((ch = want_to(buffer, *def_ans_yes, LINES-3)) == *def_ans_yes) {
  2416. !         if (replace) {
  2417. !             old_alias[0] = aliases[replacement]->alias;
  2418. !             delete_from_alias_text(old_alias, 1);
  2419. !          /*
  2420. !           * Kludge Alert:  We need to get the trailing comma
  2421. !           * (added in delete_from_alias_text()) off of the
  2422. !           * alias since the display won't be re-sync'd right
  2423. !           * away.
  2424. !           */
  2425. !             *((old_alias[0])+strlen(old_alias[0])-1) = '\0';
  2426. !         }
  2427. !         add_to_alias_text(aliasname, firstname, lastname, comment, address);
  2428. !     }
  2429.       ClearLine(LINES-2);
  2430.       ClearLine(LINES-1);
  2431.       return(ch == *def_ans_yes ? 1 : 0);
  2432.  
  2433. -- 
  2434. ========================================================================
  2435. Sydney S. Weinstein, CDP, CCP          Elm Coordinator - Current 2.4PL20
  2436. Datacomp Systems, Inc.                 Projected 3.0 Release: ??? ?,1994
  2437. syd@DSI.COM or dsinc!syd      Voice: (215) 947-9900, FAX: (215) 938-0235
  2438.