home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume6 / elm / part01 next >
Text File  |  1986-11-30  |  58KB  |  2,039 lines

  1. Subject: v06i026:  Elm mail system (elm), Part01/14
  2. Newsgroups: mod.sources
  3. Approved: rs@mirror.UUCP
  4.  
  5. Submitted by: Dave Taylor <pyramid!hplabs!hpldat!taylor>
  6. Mod.sources: Volume 6, Issue 26
  7. Archive-name: elm/Part01
  8.  
  9. [  ELM is the new release of Dave's MSG mail system, published
  10.    in mod.sources Volume 4, Numbers 5 through 11.  This release
  11.    consists of 14 parts.  Starting today, I will post three
  12.    parts/day.  If there is interest, I may make available laser'd
  13.    copies of the documentation; send mail mirror!sources-request
  14.    to get put on the list.  --r$ ]
  15.  
  16. # Shell Archive created by hpldat!taylor at Sun Jun 22 16:14:44 1986
  17.  
  18. # To unpack the enclosed files, please use this file as input to the
  19. # Bourne (sh) shell.  This can be most easily done by the command;
  20. #     sh < thisfilename
  21.  
  22. # This archive contains;
  23. #  ALPHA-MAIL       CHANGES             Instructions        Makefile            
  24. #  Overview         README              bin                 doc                 
  25. #  hdrs             src                 test                utils
  26.  
  27.  
  28. # ---------- file ALPHA-MAIL ----------
  29.  
  30. filename="ALPHA-MAIL"
  31.  
  32. if [ -f $filename ]
  33. then
  34.   echo File \"$filename\" already exists\!  Skipping...
  35.   filename=/dev/null        # throw it away
  36. else
  37.   echo extracting file ALPHA-MAIL...
  38. fi
  39.  
  40. sed 's/^X//' << 'END-OF-FILE' > $filename
  41. XFrom taylor  Sun Jun  8 18:31:15 1986
  42. XReceived: by hpldat ; Sun, 8 Jun 86 18:31:15 pdt
  43. XFrom: Dave Taylor <taylor>
  44. XReturn-Path: <taylor>
  45. XMessage-Id: <8606090131.AA23586@hpldat>
  46. XTo: alpha
  47. XDate: Sun, 8 Jun 86 18:31:12 PDT
  48. XSubject: Usenix & printed ELM documents...
  49. XOrganization: Hewlett-Packard Laboratories, Knowledge Technologies Lab.
  50. XX-Mailer: ELM [version 1.1]
  51. X
  52. X
  53. X
  54. XFor those of you who are going to be at Usenix, I am too!  In fact, I'll
  55. Xbe dragging along a couple of copies of the latest (ready to mail to 
  56. Xmod.sources, in fact) version of Elm.  If you can't find me during the
  57. Xconference, I'm staying at the Hilton Wednesday & Thursday nights, so
  58. Xleave me a note...
  59. X
  60. XThe new version is pretty slick.  Thanks for all the help!!!
  61. X
  62. X                        -- Dave Taylor
  63. X
  64. X    taylor/HP1900/UX,   taylor@HPLABS.{CSNET, ARPA}  or  ..hplabs!taylor
  65. X
  66. XFrom hpfcla!hpbbn!hpbbsz!gatm@hplabs.HP.COM  Wed Jun 11 02:52:36 1986
  67. XReceived: from hplabs.HP.COM by hpldat ; Wed, 11 Jun 86 02:52:36 pdt
  68. XFrom: hpfcla!hpbbn!hpbbsz!gatm@hplabs.HP.COM
  69. XReturn-Path: <hpfcla!hpbbn!hpbbsz!gatm@hplabs.HP.COM>
  70. XReceived: by hplabs.HP.COM ; Wed, 11 Jun 86 02:49:03 pdt
  71. XReceived: by hpbbn.UUCP (5.4/30-Jul-85)
  72. X    id AA00155; Wed, 11 Jun 86 11:01:28 mez
  73. XMessage-Id: <8606111001.AA00155@hpbbn.UUCP>
  74. XTo: hpbbn!hpfcla!hplabs!hpldat!alpha@hplabs.HP.COM
  75. XDate: Wed, 11 Jun 86 10:53:14 MSZ
  76. XSubject: more elm bugs
  77. XX-Mailer: ELM [version 1.0]
  78. X
  79. XHello Alpha Testers,
  80. X
  81. Xmore problems are here:
  82. X
  83. X
  84. X--- Mi., 11.Juni, 1986 10:48:12 MSZ
  85. X
  86. X9. forwarding without editing *******************************************
  87. X
  88. XThis is a dangerous bug which fills your file system.
  89. X
  90. XIf you forward a message from a folder without editing it elm creates in
  91. Xan (endless?) loop a snd.???? file which grows and grows.
  92. X
  93. X
  94. X10. nmail.paths
  95. X
  96. XElm doesn't understand the first line in nmail.paths. You have to have a
  97. Xdummy line if you want to use all those system aliases.
  98. X
  99. X
  100. XGerd
  101. X
  102. X
  103. X
  104. END-OF-FILE
  105.  
  106. if [ "$filename" != "/dev/null" ]
  107. then
  108.   size=`wc -c < $filename`
  109.  
  110.   if [ $size != 1888 ]
  111.   then
  112.     echo $filename changed - should be 1888 bytes, not $size bytes
  113.   fi
  114.  
  115.   chmod 666 $filename
  116. fi
  117.  
  118. # ---------- file CHANGES ----------
  119.  
  120. filename="CHANGES"
  121.  
  122. if [ -f $filename ]
  123. then
  124.   echo File \"$filename\" already exists\!  Skipping...
  125.   filename=/dev/null        # throw it away
  126. else
  127.   echo extracting file CHANGES...
  128. fi
  129.  
  130. sed 's/^X//' << 'END-OF-FILE' > $filename
  131. X
  132. X                        A List of Changes Between 
  133. X                    MSG 3.1 (as posted to mod.sources)
  134. X                               and ELM 1.1
  135. X                                        
  136. X
  137. X    There are a significant number of things that have changed
  138. Xsince the mailer was posted to the network on March 1st in the group
  139. Xmod.sources.  This file lists some of those changes (in the couple of
  140. Xmonths that have passed a LOT of stuff has been changed!!!  If you're
  141. Xfamiliar with the old system it's recommended that you simply install
  142. Xthe new one - if you didn't LIKE the old one, try the new one - if you
  143. Xstill don't like it, well, then use "dd" and see if it makes you more
  144. Xproductive!! *HAH!* )...
  145. X
  146. XThe most noticable change right off is the change of names!  For various
  147. Xreasons, including my finding out about another mailer called "MSG", I
  148. Xchanged the name to 'ELM' - ELectronic Mail system...
  149. X
  150. XMachines now supported in the "Configuration" systems...
  151. X
  152. X  System V, BSD, Sun, Pyramid, UTS,   and the HP SPECTRUM system.
  153. X        ^^^     ^^^  ^^^^^^^  ^^^          ^^^^^^^^^^^
  154. X       FIXED NEW    NEW    FIXED           SUPER NEW
  155. X
  156. XIn the file "sysdefs.h" (configuration);
  157. X    
  158. X  domains now indicates the domain information file as used also by
  159. X    the latest version of uumail.  See the general note and the
  160. X    section entitled "Domain Based Addressing" in the "Elm Alias
  161. X    Guide".
  162. X
  163. X  NO_VM has been added so that machines with VM can use vfork()
  164. X    rather than fork() to improve the speed of system commands.
  165. X
  166. X  LOOK_CLOSE_AFTER_SEARCH has been added to change the machine 
  167. X    lookup scheme to check the machine name against the names in
  168. X    L.sys AFTER trying the uupath database first.  The default is
  169. X    the current behaviour, however.
  170. X
  171. X  NO_VAR_ARGS has been added for those machines that don't have the ability
  172. X    to gracefully deal with variable argument lists.
  173. X
  174. X  DONT_ADD_FROM has been added for those sites that would rather not have
  175. X    Elm add the From: line to outbound mail.
  176. X
  177. X  INTERNET_ADDRESS_FORMAT has also been added to allow the From: lines on 
  178. X    outbound mail to have the Internet format user@host notation instead 
  179. X    of the (default) host!user notation.
  180. X
  181. XIn the ".elmrc" file;
  182. X
  183. X  pointnew    - start up with current message pointer pointing at the
  184. X          first new message in the mailfile, not just the first
  185. X           message.
  186. X
  187. X  fullname      - Override the name obtained from the "gecos" field of
  188. X          /etc/passwd
  189. X
  190. X  bounceback=n  - On messages to UUCP destinations of greater than 'n'
  191. X          hops, prompt for a copy to be bounced off the remote
  192. X          machine and back to you, for verification of transmission
  193. X          of the message and so on.
  194. X
  195. X  keypad        - Same as starting with "-k", but more convenient
  196. X
  197. X  softkeys      - Same as starting with "-s", but more convenient
  198. X
  199. X  signature     - If set, all messages will automatically have the
  200. X          contents of the user file ".signature" in their
  201. X          home directory appended to the edit buffer BEFORE
  202. X          the initial invocation of the editor.
  203. X
  204. X  alwaysleave   - Changes the default answer to the 'keep messages in
  205. X          incoming mailbox' to YES rather than NO.
  206. X
  207. X  alwaysdelete  - Changes the default answer to the 'delete messages' to 
  208. X          YES rather than NO.
  209. X
  210. XFrom the command line;
  211. X
  212. X  The '-s' flag has been changed to "-K", which now also implies (as it
  213. X      should) the "-k" flag.
  214. X
  215. X  The '-s' flag is now used to specify a subject for single mailings.
  216. X
  217. X  Starting the mailer with metacharacters in the filenames is okay now,
  218. X    too (e.g. "elm -f =/unix-junk" will now work).
  219. X
  220. X  Finally, the batchmail/piped mail now works okay.
  221. X
  222. XGeneral changes;
  223. X
  224. X  <control>-D and <control>-T are now 'meta' operations that support 
  225. X        functions like "delete all messages from Joey".
  226. X
  227. X  "+" and "%" are now synonymous with the "=" character in filenames.
  228. X
  229. X  Replying to a message that was sent to someone (that is, a message
  230. X    in the $savemail file) now correctly extracts the valid To:
  231. X    address from the message and uses that instead of the incorrect
  232. X    "To:xyz" address in the From line.
  233. X
  234. X  The format of the messages saved in the $savemail file has been altered
  235. X    to more closely resemble that of the message actually sent, and 
  236. X    now also includes the specified user headers.
  237. X
  238. X  The "Elm Alias Guide" has been written and included.
  239. X
  240. X  The "readmsg" program is now considerably smarter, and can work better 
  241. X    in conjunction with the mailer itself.  For example, if you're
  242. X    responding to a message from someone, "readmsg" without any
  243. X    arguments will now display that message to the screen.  The
  244. X    "readmsg" program can also now be invoked with a string to try
  245. X    to match in one of the messages in the mailbox.
  246. X
  247. X  For those people porting to Xenix systems, a file UNIX_SYMS (actually
  248. X    a 'sed' script) has been included to aid in this process...
  249. X
  250. X  Searches "/" and "//" are now case insensitive.
  251. X
  252. X  strchr() has been added to the opt_utils.c file.
  253. X
  254. X  The "what" command now correctly describes the release version of the
  255. X    software.
  256. X
  257. X  "newmail" can now be used with files other than the default incoming
  258. X    mail file, to allow keeping track of ANY file at all.
  259. X
  260. X   Addresses can now use a domain based syntax for those sites that
  261. X    have installed the /usr/lib/domains file.  The format of this
  262. X    file is as for the uumail program, and is discussed in the
  263. X    "Elm Alias Guide"
  264. X
  265. X   On Berkeley systems, the mailer can now expand "&" into the login
  266. X    name of the user, so a setup like loginname=dave and the 
  267. X    gecos field in /etc/passwd being "& Taylor" will now correctly 
  268. X    generate Dave Taylor as the full name!  (On the other hand, 
  269. X    you could use the "fullname" entry in your .elmrc file too!)
  270. X
  271. X   "from" now knows how to expand the '='/'+'/'%' metacharacter into 
  272. X    the users mailhome setting...
  273. X
  274. X   The screen display when reading messages has been enhanced for 
  275. X    better performance.
  276. X
  277. X   The use of <return> versus <space> has been redone.
  278. END-OF-FILE
  279.  
  280. if [ "$filename" != "/dev/null" ]
  281. then
  282.   size=`wc -c < $filename`
  283.  
  284.   if [ $size != 5831 ]
  285.   then
  286.     echo $filename changed - should be 5831 bytes, not $size bytes
  287.   fi
  288.  
  289.   chmod 644 $filename
  290. fi
  291.  
  292. # ---------- file Instructions ----------
  293.  
  294. filename="Instructions"
  295.  
  296. if [ -f $filename ]
  297. then
  298.   echo File \"$filename\" already exists\!  Skipping...
  299.   filename=/dev/null        # throw it away
  300. else
  301.   echo extracting file Instructions...
  302. fi
  303.  
  304. cat << 'END-OF-FILE' > $filename
  305.  
  306.                 Instructions
  307.                 ------------
  308.  
  309.             Last Update: March 12th, 1986
  310.  
  311.  
  312.     This file contains instructions on how to create and install
  313. the entire ELM mail system.  It should be read BEFORE any attempts
  314. are made at actually creating and/or installing any of the software
  315. contained herein!
  316.  
  317.     First off, you'll need to create the documents so that you
  318. can read the "ELM Configuration Guide" and configure the system
  319. correctly for your local site needs...
  320.  
  321.     $ make documentation
  322.  
  323. This will create two documents - the "ELM Users Guide", and the "ELM
  324. Configuration Guide".  For our purposes, you're only interested in the 
  325. configuration guide, so at this point print out the file 
  326.  
  327.         "doc/Config.fmtd" 
  328.  
  329. and then continue reading with that document.
  330.  
  331. --------
  332.  
  333. I assume you've read and followed the directions in the Configuration
  334. guide if you're back here!  If not, GO DO IT!!!
  335.  
  336. --------
  337.  
  338. Try again - ready?
  339.  
  340. Okay.  Now that we've configured the ELM system so that it will all
  341. be happy with the file locations, node type, memory requirements,
  342. and so on of your system we can actually try to make the system!
  343.  
  344. The first step is to edit the Makefile so that the define for the
  345. macro "DEFINE" is correct for your OS.  The choices are "BSD", "UTS"
  346. or the default of Bell/HP-UX.
  347.  
  348. When you're done, type:
  349.  
  350.     $ make all
  351.  
  352. This will take a fair while, so it's recommended that you go and eat 
  353. lunch or play a game for a while!! (alternatively, spend lots of money
  354. on a really FAST machine and blink your eyes a few times...)
  355.  
  356. Assuming there are no errors during compilation (we'll have to assume
  357. that for the moment) you should now be able to list the directory "bin"
  358. and find the following files:
  359.  
  360.   "answer", "arepdaemon", "autoreply", "cutfile", "fastmail", "from", 
  361.   "elm", "newalias", "newmail", "printmail", and "readmsg".
  362.  
  363. at this point you need to check the system level Makefile (in this
  364. directory) to check that the defines for the following are correct
  365. for your system:
  366.  
  367.     TAPE=   /dev/rct
  368.     DEST=   /usr/local/bin
  369.     LIB=    /usr/local/lib
  370.     MAN=    /usr/man/man1
  371.  
  372. (these are the Bell System V defaults, more or less).  Once they're 
  373. altered to your satisfaction, you can install all the software by
  374. becoming root on your machine (you'll need write permission to the
  375. directories above) then typing:
  376.  
  377.     $ make install
  378.     
  379. Note: the mailer runs as setuid root to have the ability to WRITE
  380. to the /usr/mail directory (for lock files).   If you have a different
  381. scheme at your site, feel free to set it up to use that instead.
  382.  
  383. Finally, we're just about done!   The final checks can be made
  384. by the following commands:
  385.  
  386.     $ /usr/local/bin/elm -z
  387.  
  388. should say "no mail" if nothing's in the mailbox
  389.  
  390.     $ /usr/local/bin/elm -f test/test.mail
  391.  
  392. should read in EIGHT messages from various people.  While here, try to
  393. A)lias C)urrent message for each of the eight messages to confirm that
  394. the reply/address system is working okay.   Now try to C)hange mailboxes
  395. to the file "test/test.note" and use the '%' key to see if the mailer is
  396. generating valid return addresses for the notes (If not, then you might
  397. need to install the pathalias database - see "sysdefs.h" for more info)
  398. Change back to "test/test.mail" and Q)uit without having marked anything 
  399. for deletion...answer the questions accordingly.
  400.  
  401. If you get this far you're in Wonderful shape!  In fact, you're done!
  402.  
  403. Congratulations!  You've just installed one of the best electronic mail
  404. systems available today on your machine (if I say so myself!)
  405.  
  406. HANDY HINTS:  If you want to create a print of the entire set of
  407. sources, including this file, use the command:
  408.  
  409.     $ make listing
  410.  
  411. If, on the other hand, you just want to create a listing file of 
  412. just the ELM sources, try:
  413.  
  414.     $ make elm-listing
  415.  
  416. Also, if you have a number of machines on a network, you can rlogin
  417. to the remote machine and then do a remote install (after checking
  418. to ensure that the networking copy method in the Makefile under the
  419. target "remote-install" is correct) by typing:
  420.  
  421.     $ make -f <remote Makefile> REMOTE=<remote file system> rmt-install
  422.  
  423. (for example, if we had installed the system on machine "machx" and 
  424.  wanted to install it on "machy", with the Makefile in /src/Elm on
  425.  "machx", we could type from "machy";
  426.      $ make -f machx:/src/Elm/Makefile REMOTE=machx: rmt-install
  427.  to have it install the system on machine y!)
  428.  
  429. One final note for non-US distribution - the program might complain
  430. at link time that it can't find "crypt()".  If so, and if you cannot
  431. obtain a copy, you should merely instruct your users to not use the
  432. encrypted mail option on outgoing mail.
  433.  
  434. That's it!
  435. ----------
  436.  
  437. Oh!  One final note: if you'd like a nicely typeset copy of the documentation,
  438. feel free to drop me a line with your full (overland) mail address!!  I'll
  439. try to get it back to you within a week or two.
  440.  
  441. -----------
  442.  
  443.     Author's address:    taylor@HPLABS
  444.                 hplabs!taylor
  445.  
  446.     Mail address:        Dave Taylor
  447.                 Hewlett Packard Laboratories
  448.                 1501 Page Mill Road
  449.                 Palo Alto CA
  450.                 94304
  451.  
  452.   This document and the entire mail system is
  453.  
  454.     (C) Copyright 1986, Dave Taylor
  455. END-OF-FILE
  456.  
  457. if [ "$filename" != "/dev/null" ]
  458. then
  459.   size=`wc -c < $filename`
  460.  
  461.   if [ $size != 5058 ]
  462.   then
  463.     echo $filename changed - should be 5058 bytes, not $size bytes
  464.   fi
  465.  
  466.   chmod 644 $filename
  467. fi
  468.  
  469. # ---------- file Makefile ----------
  470.  
  471. filename="Makefile"
  472.  
  473. if [ -f $filename ]
  474. then
  475.   echo File \"$filename\" already exists\!  Skipping...
  476.   filename=/dev/null        # throw it away
  477. else
  478.   echo extracting file Makefile...
  479. fi
  480.  
  481. cat << 'END-OF-FILE' > $filename
  482. #
  483. #  Makefile for the entire ELM mail system
  484. #
  485. #         (C) Copyright 1986, Dave Taylor
  486. #
  487. #  Last modification: March 3rd, 1986
  488.  
  489. SHELL=/bin/sh
  490.  
  491. #########################
  492. #
  493. # The following entries need to be customized for the local site:  
  494. #    The first is the address of the data-cassette drive to allow
  495. # easy tape copies to be made, and the second is the final location 
  496. # that all the software should be installed in when 'make install'
  497. # is run.
  498. #
  499. #########################
  500.  
  501. TAPE=   /dev/thor
  502. DEST=   /usr/local/bin
  503.  
  504. LIB=    /usr/local/lib
  505. MAN=    /usr/man/man1
  506. CATMAN= /usr/man/cat1
  507. SHAR=   /usr/local/bin/shar -s 60000
  508.  
  509. # See the Configuration Guide for further information on this stuff;
  510. #
  511. # if on a Berkeley system:
  512. #   DEFINE = -DBSD
  513. #   LIB2   = -lcurses
  514. # else if on a UTS system:
  515. #DEFINE = -DUTS
  516. #LIB2   = -la
  517. # else if on a Sun system:
  518. #   DEFINE = -DBSD -DSUN
  519. #   LIB2   = -lcurses
  520. # else if on a Pyramid system:
  521. #   DEFINE = -DBSD -DNO_VAR_ARGS
  522. #   LIB2   = -lcurses
  523. # otherwise;
  524.  
  525.     DEFINE=
  526.     LIB2   = 
  527.  
  528. # If you're on ACSnet (Australia) you'll want to define
  529. # the following;
  530.  
  531. #   DEFINE=${DEFINE} -DACSNET
  532.  
  533. #########################
  534.  
  535. LIBS=   -ltermcap
  536. CFLAGS= -O
  537. CC=    /bin/cc
  538. RM=    /bin/rm -f
  539. MV=     /bin/mv -f
  540. CP=    /bin/cp
  541.  
  542. # if you want to use "nroff", change this...
  543.  
  544. FORMATTER = troff
  545. TBL       = tbl
  546.  
  547. DOCS=   Config.guide Users.guide Ref.guide Alias.guide elm.1 from.1 \
  548.     printmail.1 newalias.1 newmail.1 answer.1 \
  549.     grabalias.1 fastmail.1 readmsg.1 autoreply.1 wnewmail.1
  550.  
  551. UTILSRC= utils/answer.c utils/arepdaemon.c utils/autoreply.c           \
  552.     utils/fastmail.c utils/from.c utils/newalias.c \
  553.     utils/newmail.c utils/printmail.c utils/readmsg.c utils/wnewmail.c
  554.  
  555. ELMSRC=    src/addr_utils.c src/alias.c src/aliasdb.c src/aliaslib.c     \
  556.     src/args.c src/bounceback.c src/connect_to.c src/curses.c     \
  557.     src/date.c src/delete.c src/domains.c src/edit.c src/encode.c \
  558.     src/errno.c src/file.c src/file_utils.c src/fileio.c src/hdrconfg.c \
  559.     src/help.c src/initialize.c src/input_utils.c src/leavembox.c \
  560.     src/mailmsg1.c src/mailmsg2.c src/mailtime.c src/mkhdrs.c     \
  561.     src/elm.c src/newmbox.c src/notesfile.c src/opt_utils.c       \
  562.     src/output_utils.c src/pattern.c src/quit.c src/read_rc.c     \
  563.     src/remail.c src/reply.c src/return_addr.c src/savecopy.c     \
  564.     src/screen.c src/showmsg.c src/signals.c src/softkeys.c       \
  565.     src/strings.c src/syscall.c src/utils.c src/validname.c       \
  566.     src/calendar.c src/sort.c src/getopt.c src/string2.c
  567.  
  568. ################
  569.  
  570. all:    bin/elm utils 
  571.     @echo Everything is up to date!
  572.  
  573. documentation:  doc/Users.fmtd doc/Ref.fmtd doc/Config.fmtd  doc/Alias.fmtd
  574.     
  575. doc/Users.fmtd: doc/Users.guide
  576.     ${TBL} doc/Users.guide | ${FORMATTER} -mm > doc/Users.fmtd
  577.  
  578. doc/Ref.fmtd: doc/Ref.guide
  579.     ${FORMATTER} -mm doc/Ref.guide > doc/Ref.fmtd
  580.  
  581. doc/Config.fmtd:  doc/Config.guide
  582.     ${FORMATTER} -mm doc/Config.guide > doc/Config.fmtd
  583.  
  584. doc/Alias.fmtd:  doc/Alias.guide
  585.     ${FORMATTER} -mm doc/Alias.guide > doc/Alias.fmtd
  586.  
  587. bin/elm: ${ELMSRC}
  588.     cd src; make DEFINE=${DEFINE} LIB2=${LIB2} ../bin/elm; cd ..
  589.     
  590. bin/utils: ${UTILSRC}
  591.     cd utils; make DEFINE=${DEFINE} LIBS=${LIB2} all; cd ..
  592.     @touch bin/utils
  593.  
  594. install: all
  595.     ${CP} bin/elm          ${DEST}/elm
  596.     ${CP} bin/from         ${DEST}/from
  597.     ${CP} bin/newalias     ${DEST}/newalias
  598.     ${CP} bin/printmail    ${DEST}/printmail
  599.     ${CP} bin/fastmail     ${DEST}/fastmail
  600.     ${CP} bin/readmsg      ${DEST}/readmsg
  601.     ${CP} bin/newmail      ${DEST}/newmail
  602.     ${CP} bin/wnewmail     ${DEST}/wnewmail
  603.     ${CP} bin/checkalias   ${DEST}/checkalias
  604.     ${CP} bin/arepdaemon   ${DEST}/arepdaemon
  605.     ${CP} bin/autoreply    ${DEST}/autoreply
  606.     ${RM} ${CATMAN}/elm.1 ${CATMAN}/from.1 \
  607.           ${CATMAN}/newalias.1 ${CATMAN}/printmail.1 \
  608.           ${CATMAN}/fastmail.1 ${CATMAN}/elm.1 \
  609.           ${CATMAN}/readmsg.1 ${CATMAN}/answer.1 \
  610.           ${CATMAN}/newmail.1 ${CATMAN}/checkalias.1 \
  611.           ${CATMAN}/autoreply.1 ${CATMAN}/wnewmail.1
  612.     ${CP} doc/elm.1        ${MAN}/elm.1
  613.     ${CP} doc/from.1       ${MAN}/from.1
  614.     ${CP} doc/newalias.1   ${MAN}/newalias.1
  615.     ${CP} doc/printmail.1  ${MAN}/printmail.1
  616.     ${CP} doc/fastmail.1   ${MAN}/fastmail.1
  617.     ${CP} doc/checkalias.1 ${MAN}/checkalias.1
  618.     ${CP} doc/autoreply.1  ${MAN}/autoreply.1
  619.     ${CP} doc/answer.1     ${MAN}/answer.1
  620.     ${CP} doc/readmsg.1    ${MAN}/readmsg.1
  621.     ${CP} doc/newmail.1    ${MAN}/newmail.1
  622.     ${CP} doc/wnewmail.1   ${MAN}/wnewmail.1
  623.     ${CP} doc/helpfile     ${LIB}/elm-help.main
  624.     chmod a+rx ${DEST}/from ${DEST}/newalias \
  625.            ${DEST}/printmail ${DEST}/fastmail \
  626.            ${DEST}/readmsg \
  627.            ${DEST}/checkalias ${DEST}/autoreply \
  628.            ${DEST}/newmail ${DEST}/wnewmail
  629.     chgrp mail ${DEST}/elm
  630.     chmod 2755 ${DEST}/elm
  631.     @echo Done with installation.
  632.  
  633. rmt-install: remote-defined
  634.     @echo " "
  635.     @echo Warning: This assumes "install" has been done on the
  636.     @echo "         remote machine.  If this is not the case you"
  637.     @echo "         better hit BREAK quickly!"
  638.     @echo " "
  639.     ${CP} ${REMOTE}${DEST}/elm          ${DEST}/elm
  640.     ${CP} ${REMOTE}${DEST}/from         ${DEST}/from
  641.     ${CP} ${REMOTE}${DEST}/newalias     ${DEST}/newalias
  642.     ${CP} ${REMOTE}${DEST}/printmail    ${DEST}/printmail
  643.     ${CP} ${REMOTE}${DEST}/fastmail     ${DEST}/fastmail
  644.     ${CP} ${REMOTE}${DEST}/readmsg      ${DEST}/readmsg
  645.     ${CP} ${REMOTE}${DEST}/wnewmail     ${DEST}/wnewmail
  646.     ${CP} ${REMOTE}${DEST}/newmail      ${DEST}/newmail
  647.     ${CP} ${REMOTE}${DEST}/checkalias   ${DEST}/checkalias
  648.     ${CP} ${REMOTE}${DEST}/arepdaemon   ${DEST}/arepdaemon
  649.     ${CP} ${REMOTE}${DEST}/autoreply    ${DEST}/autoreply
  650.     ${RM} ${CATMAN}/elm.1 \
  651.           ${CATMAN}/from.1 \
  652.               ${CATMAN}/newalias.1 \
  653.           ${CATMAN}/printmail.1 \
  654.           ${CATMAN}/fastmail.1 \
  655.               ${CATMAN}/checkalias.1 \
  656.               ${CATMAN}/autoreply.1 \
  657.           ${CATMAN}/readmsg.1 \
  658.           ${CATMAN}/answer.1 \
  659.           ${CATMAN}/newmail.1 \
  660.           ${CATMAN}/wnewmail.1 \
  661.               ${CATMAN}/elm.1
  662.     ${CP} ${REMOTE}${MAN}/elm.1        ${MAN}/elm.1
  663.     ${CP} ${REMOTE}${MAN}/from.1       ${MAN}/from.1
  664.     ${CP} ${REMOTE}${MAN}/newalias.1   ${MAN}/newalias.1
  665.     ${CP} ${REMOTE}${MAN}/printmail.1  ${MAN}/printmail.1
  666.     ${CP} ${REMOTE}${MAN}/fastmail.1   ${MAN}/fastmail.1
  667.     ${CP} ${REMOTE}${MAN}/checkalias.1 ${MAN}/checkalias.1
  668.     ${CP} ${REMOTE}${MAN}/autoreply.1  ${MAN}/autoreply.1
  669.     ${CP} ${REMOTE}${MAN}/readmsg.1    ${MAN}/readmsg.1
  670.     ${CP} ${REMOTE}${MAN}/answer.1     ${MAN}/answer.1
  671.     ${CP} ${REMOTE}${MAN}/wnewmail.1   ${MAN}/wnewmail.1
  672.     ${CP} ${REMOTE}${MAN}/newmail.1    ${MAN}/newmail.1
  673.     ${CP} ${REMOTE}${LIB}/elm-help.main ${LIB}/elm-help.main
  674.     chmod a+rx ${DEST}/from ${DEST}/newalias ${DEST}/printmail \
  675.                ${DEST}/fastmail ${DEST}/readmsg \
  676.            ${DEST}/checkalias ${DEST}/autoreply ${DEST}/wnewmail \
  677.            ${DEST}/newmail 
  678.     chgrp mail ${DEST}/elm
  679.     chmod 2755 ${DEST}/elm
  680.     @echo everything is installed based on files from ${REMOTE}
  681.  
  682. source: 
  683.     tar cvf ${TAPE} bin/makelisting utils/*.c src/*.c doc/* hdrs/* \
  684.     Instructions Makefile UNIQ_SYMS README utils/Makefile src/Makefile \
  685.     test/* utils/*.awk CHANGES Overview
  686.  
  687. # Note that the production for SHAR assumes a pretty snazzy shar program
  688. # that can break down the output into a number of files as needed...
  689. #   The current threshold is 60,000 bytes per file, for email/netnews
  690.  
  691. shar:   
  692.     ${SHAR} *
  693.  
  694. lint:
  695.     lint ${UTILSRC} > lint.out
  696.  
  697. listing:
  698.     @echo listing all source files 
  699.     @/bin/echo \\f > LISTING
  700.     @echo adding file 'README'...
  701.     @cat README >> LISTING
  702.     @/bin/echo \\f >> LISTING
  703.     @echo adding file 'Instructions...
  704.     @cat Instructions >> LISTING
  705.     @/bin/echo \\f >> LISTING
  706.     @echo adding file 'Makefile'...
  707.     @cat Makefile >> LISTING
  708.     @bin/makelisting Makefile ${UTILSRC} src/Makefile src/*.c hdrs/*.h
  709.     @echo LISTING generated.
  710.  
  711. elm-listing: 
  712.     @echo listing just the ELM system source files
  713.     @echo ' ' > src/LISTING
  714.     @cd src ; make listing ; cd ..
  715.     @echo LISTING generated \(in directory /src\).
  716.  
  717. clean:
  718.     @cd src ; make clean ; cd ..
  719.     @cd utils; make clean ; cd ..
  720.     @echo All spurious files removed
  721.  
  722. elm: bin/elm
  723. utils: bin/utils
  724. utils/checkalias:
  725. doc/Users.guide:
  726. doc/Ref.guide:
  727. doc/Alias.guide:
  728. doc/Config.guide:
  729.  
  730. remote-defined:
  731.     @if ( "${REMOTE}" == "" ) then; \
  732.        echo " " ; \
  733.        echo "You need to define 'REMOTE' as the remote file system" ; \
  734.        echo "for this particular command.   The easiest way to do " ; \
  735.        echo "this is to type:" ;\
  736.        echo "    make -f <makefile> REMOTE=<remote file system> rmt-install" ; \
  737.        echo " " ; \
  738.      endif
  739.     @if ( "${REMOTE}" == "" ) exit 1
  740. END-OF-FILE
  741.  
  742. if [ "$filename" != "/dev/null" ]
  743. then
  744.   size=`wc -c < $filename`
  745.  
  746.   if [ $size != 8398 ]
  747.   then
  748.     echo $filename changed - should be 8398 bytes, not $size bytes
  749.   fi
  750.  
  751.   chmod 644 $filename
  752. fi
  753.  
  754. # ---------- file Overview ----------
  755.  
  756. filename="Overview"
  757.  
  758. if [ -f $filename ]
  759. then
  760.   echo File \"$filename\" already exists\!  Skipping...
  761.   filename=/dev/null        # throw it away
  762. else
  763.   echo extracting file Overview...
  764. fi
  765.  
  766. cat << 'END-OF-FILE' > $filename
  767.             An Overview of the Elm Mail System
  768.             ----------------------------------
  769.  
  770. Introduction
  771.  
  772.     This file discusses the functionality of the Elm mail system
  773. and explains some of the motivation behind the creation and of various
  774. features.
  775.  
  776. 1. What is Elm?
  777.  
  778.     Currently on Unix, there seems to be a preponderence of line-oriented 
  779. software.  This is most unfortunate as most of the software on Unix tends to
  780. be pretty darn hard to use!  I believe that there is more than a slight
  781. correlation between the two, and, since I was myself having problems using
  782. "mailx" with high-volume mail, I created a new mail system.
  783.  
  784.     In the lingo of the mail guru, Elm is a "User Agent" system,  it's
  785. designed to run with "sendmail" or "/bin/rmail" (according to what's on
  786. your system) and is a full replacement of programs like "/bin/mail" and
  787. "mailx".  The system is more than just a single program, however, and
  788. includes programs like "from" to list a 'table of contents' of your
  789. mail, "printmail" to quickly paginate mail files (to allow 'clean'
  790. printouts), and "autoreply", a systemwide daemon that can autoanswer
  791. mail for people while they're on vacation without having multiple
  792. copies spawned on the system.
  793.  
  794. 2. What's New about Elm?
  795.  
  796.     The most significant difference between Elm and earlier mail
  797. systems is that Elm is screen-oriented.  Upon further use, however,
  798. users will find that Elm is also quite a bit easier to use, and quite
  799. a bit more "intelligent" about sending mail and so on.   For example,
  800. say you're on "usenet" and receive a message from someone on the
  801. ARPANET.  The sender also "cc'd" another person on ARPA.  With Elm
  802. you can simply G)roup reply and it will build the correct return
  803. addresses.
  804.  
  805.     There are lots of subtleties like that in the program, most of
  806. which you'll probably find when you need them.
  807.  
  808. 3. What systems does it work on?
  809.  
  810.     Elm was originally written on HP-UX, HP's proprietary version
  811. of Bell system V, with a little BSD thrown in.  Since then, it has been
  812. ported to Bell, Berkeley, Sun, UTS and the Pyramid and should run on 
  813. all these systems without any modifications (if there turn out to be 
  814. modifications, please notify the author as soon as possible).
  815.  
  816.     Some people have expressed interest in porting the mail system
  817. to Xenix.  If it is indeed 100% system V compatible it should be rather
  818. trivial...
  819.  
  820. 4. Does it obey existing mail standards?
  821.  
  822.     Yes!  That's another of the basic reasons the program was 
  823. originally written!  To ensure that the date field, the "From:" line
  824. and so on were all added in the correct format.  The program is 100%
  825. correct according to the RFC-822 electronic mail header protocol
  826. guide.
  827.  
  828. 5. What were the main motivating factors?
  829.  
  830.     The first two I've already mentioned, but here's a (somewhat
  831. partial) list;
  832.  
  833.     -  To have a mail system that exploited the CRT instead of
  834.        assuming I'm on a teletype.
  835.  
  836.     - To have a mailer that was 100% correct when dealing with     
  837.       network mail (ie RFC-822).
  838.  
  839.     - To create a system that needed no documentation for the
  840.       casual user, but was still powerful enough and sophisticated
  841.       enough for a mail expert.
  842.  
  843.     - To write a "significant" piece of software as a learning
  844.       experience (I admit it!)
  845.  
  846.     - To find out how reasonable it is to try to modify a program
  847.       to meet the expectations of the users, rather than vice-versa.
  848.  
  849.     - To basically correct some of the dumb things that the current
  850.       mailers do, like letting you send mail to addresses that it
  851.       could trivially figure out are going to result in 'dead.letter'
  852.  
  853.     - To tie in intimately with the pathalias program output, and
  854.       allow users to specify machine!user or user@machine and have
  855.       the COMPUTER do the work of figuring out addresses...
  856.  
  857. 6. Is it reliable?
  858.  
  859.     The mailer, in various incarnations, has logged literally
  860. thousands upon thousands of hours without any problems that aren't
  861. now corrected.  As new problems arise they're dealt with in as
  862. rapid a manner as possible...
  863.  
  864. 7. What should I do now?
  865.  
  866.     The first step would be to install the mail system and have
  867. the "elm" mailbox/alias expand to my email address (hplabs!taylor).
  868. Then, once it's all up and running, drop me a line letting me know
  869. that your site is running the system (bookkeeping) and what you and
  870. your site think of it.
  871.  
  872.     REMEMBER: The product is evolving so if you'd like to have a
  873. something change, or have something new added, LET ME KNOW!!!  I'd 
  874. much rather make the change myself than start getting change reports
  875. mailed from around the world!!
  876.  
  877. 8. Disclaimers 
  878.  
  879.     The author of this program will deny all liability for any
  880. damages, either real or imagined, due to the execution of this program
  881. or anything related to either the software or the system.  Furthermore,
  882. the entire system and all source within, including the presentation
  883. screens and commands, are legally copyrighted by the author, and while
  884. they can be used, and abused for public domain systems, will be in 
  885. violation of the law if used in systems or programs sold for profit.
  886.  
  887.     By installing the mailer or even extracting it from the network,
  888. you are agreeing to the above disclaimer.
  889.  
  890. 9. Finally
  891.  
  892.     I think it's a good program, and I can cite at least 75 people
  893. who would (begrudgingly, I'm sure) agree.  You should most certainly
  894. install the program and try it!!
  895.  
  896.  
  897.                 -- Dave Taylor
  898.                 
  899.                 hplabs!taylor
  900.  
  901. March 13th, 1986
  902. END-OF-FILE
  903.  
  904. if [ "$filename" != "/dev/null" ]
  905. then
  906.   size=`wc -c < $filename`
  907.  
  908.   if [ $size != 5333 ]
  909.   then
  910.     echo $filename changed - should be 5333 bytes, not $size bytes
  911.   fi
  912.  
  913.   chmod 644 $filename
  914. fi
  915.  
  916. # ---------- file README ----------
  917.  
  918. filename="README"
  919.  
  920. if [ -f $filename ]
  921. then
  922.   echo File \"$filename\" already exists\!  Skipping...
  923.   filename=/dev/null        # throw it away
  924. else
  925.   echo extracting file README...
  926. fi
  927.  
  928. cat << 'END-OF-FILE' > $filename
  929.                 ELM 1.1
  930.  
  931. Files contained within this release are;
  932.  
  933. CHANGES        -  a list of changes since 3.2 (as posted to mod.sources)
  934. Instructions    -  how to make the entire system
  935. Makefile    -  entire system make file
  936. Overview    -  a brief overview of the mail system
  937. README          -  this file
  938.  
  939. in directory "bin"
  940.   makelisting    -  tool to help create nice listings
  941.  
  942. in directory "doc"
  943.   Alias.guide   -  A short guide on using the alias system
  944.   Config.guide    -  A Guide on how to configure the ELM system
  945.   Users.guide    -  The Users guide on the mail system
  946.   Ref.guide    -  The Reference guide on the mail system
  947.   answer.1    -  The manual entry for the 'answer' command
  948.   autoreply.1    -  The manual entry for the 'autoreply' command
  949.   checkalias.1    -  The manual entry for the 'checkalias' command
  950.   fastmail.1    -  The manual entry for the 'fastmail' command
  951.   from.1    -  The manual entry for the 'from' command
  952.   helpfile    -  The ELM system main helpfile
  953.   elm.1        -  The manual entry for the 'elm' command
  954.   elmrc.sample    -  A sample '.elmrc' file for reference
  955.   newalias.1    -  The manual entry for the 'newalias' command
  956.   newmail.1    -  The manual entry for the 'newmail' command
  957.   printmail.1    -  The manual entry for the 'prntmail' command
  958.   readmsg.1    -  The manual entry for the 'readmsg' command
  959.       
  960. in directory "hdrs"
  961.   curses.h    -  Include file for the cursor control library
  962.   defs.h    -  Generic defines,  stuff like string lengths
  963.   headers.h    -  External routine global variable defs
  964.   elm.h        -  Main routine global variable defs
  965.   sysdefs.h    -  System dependent defines.   Alter for your site!
  966.  
  967. in directory "src"
  968.   Makefile    -  The make file for the ELM mailer itself...
  969.   addr_utils.c  -  Utilities for manipulating addresses
  970.   alias.c    -  The main alias routines
  971.   aliasdb.c    -  The alias database (pathalias) routines
  972.   aliaslib.c    -  Utility routines for the alias routines
  973.   args.c    -  Starting arguments parsing routines
  974.   bounceback.c  -  Generate a bounceback "cc" if desired
  975.   connect_to.c  -  Routines to figure out whom this machine talks to
  976.   curses.c    -  The cursor control package
  977.   date.c    -  Routines that deal with dates and/or times
  978.   delete.c    -  Delete message routines
  979.   domains.c    -  The domain database routines
  980.   encode.c    -  Crypt/decrypt routines
  981.   file.c    -  File related commands
  982.   file_utils.c    -  Utilities to do with files
  983.   fileio.c    -  Reading and/or writing files
  984.   hdrconfg.c    -  Edit message headers on outbound mail
  985.   help.c    -  Help routine
  986.   initialize.c  -  Initialize the system
  987.   input_utils.c -  Utilities for data (keyboard) input
  988.   leavembox.c   -  Processing for leaving a mailbox (quit or change)
  989.   mailmsg1.c    -  Send a message (user input section)
  990.   mailmsg2.c    -  Send a message (editing and system section)
  991.   mailtime.c    -  When did we last read mail and so on
  992.   mkhdrs.c      -  Create outgoing message headers 
  993.   elm.c            -  The main program!
  994.   newmbox.c    -  Read in a new mailbox
  995.   notesfile.c   -  Notes-related routines
  996.   opt_utils.c   -  Optional utilities according to local Unix version
  997.   output_utils.c-  Utilities for data (screen) output
  998.   pattern.c     -  Pattern matching routines
  999.   quit.c    -  Quit, removing deleted messages, etc
  1000.   read_rc.c    -  Read the users ".elmrc" file
  1001.   reply.c    -  Reply or Forward mail
  1002.   return_addr.c -  Compute return address, full or compressed
  1003.   savecopy.c     -  To save a copy of an outbound message
  1004.   screen.c    -  Screen oriented routines
  1005.   showmsg.c    -  Show the current message on the screen
  1006.   softkeys.c    -  Routines to allow HP terminal softkey usage
  1007.   strings.c    -  General string library
  1008.   syscall.c    -  Make calls to the system
  1009.   utils.c    -  Generic utility routines for the system
  1010.   validname.c    -  Check to see if the specified name is a legal address
  1011.  
  1012. in directory "test"
  1013.   test.empty    -  An empty mailfile
  1014.   test.mail    -  Mail with all sorts of return addresses & headers
  1015.   test.notes    -  Notes for testing too
  1016.  
  1017. in directory "utils"
  1018.   Makefile    -  To make all the utilities herein.
  1019.   answer.c    -  Answering machine interface (for secretaries)
  1020.   arepdaemon.c    -  Daemon works in conjunction with autoreply
  1021.   autoreply.c    -  Automatically reply to users mail (vacation, etc)
  1022.   breakup.c    -  Test routine - not part of ELM!!!
  1023.   cutfile.c    -  Extract a specified piece of a file (internals)
  1024.   fastmail.c    -  Batch mail interface. 
  1025.   from.c    -  Display who messages are from in specified mailbox
  1026.   mailrc.awk    -  Awk script - see Alias Users Guide
  1027.   newalias.c    -  Install new aliases
  1028.   newmail.c    -  Daemon to keep you notified of new mail
  1029.   printmail.c    -  Interface to allow graceful printing of mailboxes
  1030.   wnewmail.c    -  Same as "newmail" but for windowing systems.
  1031.   readmsg.c    -  Read a specific message NOW
  1032. END-OF-FILE
  1033.  
  1034. if [ "$filename" != "/dev/null" ]
  1035. then
  1036.   size=`wc -c < $filename`
  1037.  
  1038.   if [ $size != 4669 ]
  1039.   then
  1040.     echo $filename changed - should be 4669 bytes, not $size bytes
  1041.   fi
  1042.  
  1043.   chmod 644 $filename
  1044. fi
  1045.  
  1046. if [ ! -d bin ]
  1047. then
  1048.   echo creating directory bin
  1049.   mkdir bin
  1050. fi
  1051.  
  1052. # ---------- file bin/makelisting ----------
  1053.  
  1054. filename="bin/makelisting"
  1055.  
  1056. if [ -f $filename ]
  1057. then
  1058.   echo File \"$filename\" already exists\!  Skipping...
  1059.   filename=/dev/null        # throw it away
  1060. else
  1061.   echo extracting file bin/makelisting...
  1062. fi
  1063.  
  1064. cat << 'END-OF-FILE' > $filename
  1065. #!/bin/sh
  1066.  
  1067. # Shell script to make a listing file..
  1068.  
  1069. for file in `echo $* | tr -s ' ' '\012' | sort`
  1070. do
  1071.   /bin/echo \\f >> LISTING
  1072.   echo adding $file...
  1073.   cat $file >> LISTING
  1074. done
  1075. END-OF-FILE
  1076.  
  1077. if [ "$filename" != "/dev/null" ]
  1078. then
  1079.   size=`wc -c < $filename`
  1080.  
  1081.   if [ $size != 181 ]
  1082.   then
  1083.     echo $filename changed - should be 181 bytes, not $size bytes
  1084.   fi
  1085.  
  1086.   chmod 777 $filename
  1087. fi
  1088.  
  1089. # ---------- file bin/checkalias ----------
  1090.  
  1091. filename="bin/checkalias"
  1092.  
  1093. if [ -f $filename ]
  1094. then
  1095.   echo File \"$filename\" already exists\!  Skipping...
  1096.   filename=/dev/null        # throw it away
  1097. else
  1098.   echo extracting file bin/checkalias...
  1099. fi
  1100.  
  1101. cat << 'END-OF-FILE' > $filename
  1102. #!/bin/sh
  1103. if [ -z "$*" ]; then
  1104.   echo Usage: checkalias alias \[or aliases\]
  1105.   exit 1
  1106. fi
  1107.  
  1108. exec elm -c 
  1109. END-OF-FILE
  1110.  
  1111. if [ "$filename" != "/dev/null" ]
  1112. then
  1113.   size=`wc -c < $filename`
  1114.  
  1115.   if [ $size != 104 ]
  1116.   then
  1117.     echo $filename changed - should be 104 bytes, not $size bytes
  1118.   fi
  1119.  
  1120.   chmod 777 $filename
  1121. fi
  1122.  
  1123. # ---------- file bin/quickscreen ----------
  1124.  
  1125. filename="bin/quickscreen"
  1126.  
  1127. if [ -f $filename ]
  1128. then
  1129.   echo File \"$filename\" already exists\!  Skipping...
  1130.   filename=/dev/null        # throw it away
  1131. else
  1132.   echo extracting file bin/quickscreen...
  1133. fi
  1134.  
  1135. cat << 'END-OF-FILE' > $filename
  1136.  
  1137. # Mindbogglingly wierd script to allow UTS to use the Quickscreen 
  1138. #   cursor control package (don't ask) and also to have the other
  1139. #   systems just whiz along (so to speak)...
  1140.  
  1141. # Usage: quickscreen <define> <filename>.q
  1142.  
  1143. # if you're on a UTS system, you might want to put the absolute path
  1144. #   here for that 2 billionth of a femtosecond speedup...
  1145.  
  1146. quickscreen=qs
  1147.  
  1148. if [ $# != 1 ]
  1149. then 
  1150.   echo $0 called with more than one argument: $*
  1151.   exit 1
  1152. fi
  1153.  
  1154. (uname > /dev/null 2>&1)
  1155.  
  1156. if [ "$?" != "0" ]
  1157. then
  1158.  # hey!  maybe berkeley...it ain't UTS, fer sure!
  1159.   cfile=`basename $1 .q`.c
  1160.   if [ ! -f $cfile ] 
  1161.   then
  1162.     echo Warning: Can\'t find a $cfile in this directory\!\!
  1163.     exit 1
  1164.   fi
  1165.   touch $cfile
  1166.   exit 0
  1167. fi
  1168.  
  1169. if [ "`uname -s`" != "uts" ] 
  1170. then
  1171.   cfile=`basename $1 .q`.c
  1172.   if [ ! -f $cfile ] 
  1173.   then
  1174.     echo Warning: Can\'t find a $cfile in this directory\!\!
  1175.     exit 1
  1176.   fi
  1177.   touch $cfile
  1178.   exit 0
  1179. fi
  1180.  
  1181. # Oh my god - we're cruisin' along on a UTS system and have to
  1182. #             worry about this stuff for REAL!!
  1183.  
  1184. echo "    $quickscreen -q $1"
  1185. $quickscreen -q $2
  1186.  
  1187. exit $?
  1188. END-OF-FILE
  1189.  
  1190. if [ "$filename" != "/dev/null" ]
  1191. then
  1192.   size=`wc -c < $filename`
  1193.  
  1194.   if [ $size != 1076 ]
  1195.   then
  1196.     echo $filename changed - should be 1076 bytes, not $size bytes
  1197.   fi
  1198.  
  1199.   chmod 777 $filename
  1200. fi
  1201.  
  1202. # ---------- file bin/mail.elm ----------
  1203.  
  1204. filename="bin/mail.elm"
  1205.  
  1206. if [ -f $filename ]
  1207. then
  1208.   echo File \"$filename\" already exists\!  Skipping...
  1209.   filename=/dev/null        # throw it away
  1210. else
  1211.   echo extracting file bin/mail.elm...
  1212. fi
  1213.  
  1214. cat << 'END-OF-FILE' > $filename
  1215.  
  1216. # Script to mail off the shar files to a specified user...
  1217.  
  1218. if [ "$*" = "" ]
  1219. then
  1220.   echo Usage: $0 username or list-of-usernames
  1221.   exit 1
  1222. fi
  1223.  
  1224. for name in SH-Archive.*
  1225. do
  1226.   echo /usr/local/bin/elm -s \"Elm source - $name\" $* \< $name
  1227.   /usr/local/bin/elm -s "Elm source - $name" $* < $name
  1228.   echo sleeping...\\c
  1229.   sleep 900
  1230.   echo \\rwaking up..
  1231. done
  1232.  
  1233. exit 0
  1234. END-OF-FILE
  1235.  
  1236. if [ "$filename" != "/dev/null" ]
  1237. then
  1238.   size=`wc -c < $filename`
  1239.  
  1240.   if [ $size != 363 ]
  1241.   then
  1242.     echo $filename changed - should be 363 bytes, not $size bytes
  1243.   fi
  1244.  
  1245.   chmod 777 $filename
  1246. fi
  1247.  
  1248. if [ ! -d doc ]
  1249. then
  1250.   echo creating directory doc
  1251.   mkdir doc
  1252. fi
  1253.  
  1254. # ---------- file doc/answer.1 ----------
  1255.  
  1256. filename="doc/answer.1"
  1257.  
  1258. if [ -f $filename ]
  1259. then
  1260.   echo File \"$filename\" already exists\!  Skipping...
  1261.   filename=/dev/null        # throw it away
  1262. else
  1263.   echo extracting file doc/answer.1...
  1264. fi
  1265.  
  1266. cat << 'END-OF-FILE' > $filename
  1267. .TH ANSWER 1L 
  1268. .ad b
  1269. .SH NAME
  1270. answer - phone message transcription system
  1271. .SH SYNOPSIS
  1272. .B answer
  1273. .PP
  1274. .SH HP-UX COMPATIBILITY
  1275. .TP 10
  1276. Level:
  1277. HP-UX/STANDARD
  1278. .TP
  1279. Origin:
  1280. Hewlett-Packard
  1281. .SH DESCRIPTION
  1282. .I Answer\^
  1283. is a part of the 
  1284. .B Elm
  1285. mail system and is designed for secretaries and the like
  1286. to allow them to answer phones and|or listen to phone message
  1287. machines and quickly and easily transcribe the messages into
  1288. electronic mail.
  1289. .P
  1290. The program uses it's own alias set (usually a subset of the
  1291. system aliases, with more fields per user (ie unique first
  1292. names, unique last names, first-initial lastname, and so on)).
  1293. Note this means that you must create and then install, using
  1294. .I newalias,
  1295. a separate alias table for the account this program is to 
  1296. be run from.
  1297. .P
  1298. Interface-wise, the program is a breeze to use - type 'answer'
  1299. to start it up and then merely type a user name at the
  1300. .nf
  1301.     
  1302.     Message to:
  1303.  
  1304. .fi
  1305. prompt, and then enter the message, ending with a blank line.
  1306. Names can be entered as 'Firstname Lastname' and the system
  1307. will try to find a mail alias based on the first letter of the
  1308. first name plus the last name.  For example, 'Dave Taylor'
  1309. will cause the program to search for an alias 'd_taylor' in
  1310. the file (note the transliteration into lower case).   The 
  1311. program will loop until killed or quit.
  1312. .P
  1313. .I Answer
  1314. can be easily exited by typing any of 'quit', 'exit' 'done', 
  1315. or 'bye' at the 'Message to:' prompt.
  1316. .SH AUTHOR
  1317. Dave Taylor, Hewlett-Packard Laboratories
  1318. .SH SEE ALSO
  1319. .I "Elm Alias Users Guide", 
  1320. by Dave Taylor
  1321. .sp
  1322. .br
  1323. newalias(1L), checkalias(1L), mail(1), mailx(1), from(1L), printmail(1L)
  1324. .SH FILES
  1325. $home/.alias_hash             individual alias hash table
  1326. .br
  1327. $home/.alias_data             individual alias data table
  1328. .br
  1329. /tmp/snd*                     edit buffer for outgoing mail
  1330. END-OF-FILE
  1331.  
  1332. if [ "$filename" != "/dev/null" ]
  1333. then
  1334.   size=`wc -c < $filename`
  1335.  
  1336.   if [ $size != 1811 ]
  1337.   then
  1338.     echo $filename changed - should be 1811 bytes, not $size bytes
  1339.   fi
  1340.  
  1341.   chmod 644 $filename
  1342. fi
  1343.  
  1344. # ---------- file doc/autoreply.1 ----------
  1345.  
  1346. filename="doc/autoreply.1"
  1347.  
  1348. if [ -f $filename ]
  1349. then
  1350.   echo File \"$filename\" already exists\!  Skipping...
  1351.   filename=/dev/null        # throw it away
  1352. else
  1353.   echo extracting file doc/autoreply.1...
  1354. fi
  1355.  
  1356. cat << 'END-OF-FILE' > $filename
  1357. .TH AUTOREPLY 1L 
  1358. .ad b
  1359. .SH NAME
  1360. autoreply - Automatic mail reply system
  1361. .SH SYNOPSIS
  1362. .B autoreply
  1363. .br
  1364. .B "autoreply off"
  1365. .br
  1366. .B autoreply
  1367. <
  1368. .B filename
  1369. >
  1370. .PP
  1371. .SH HP-UX COMPATIBILITY
  1372. .TP 10
  1373. Systems:
  1374. AT&T System V and Berkeley BSD
  1375. .TP
  1376. Origin:
  1377. Hewlett-Packard
  1378. .SH DESCRIPTION
  1379. .I Autoreply\^
  1380. is a part of the 
  1381. .B Elm
  1382. mail system and is designed to enable users to easily set up
  1383. an automatic response to all mail they receive.  This is
  1384. typically during a vacation or some other period of time that
  1385. the user is not available to reply to mail (although some
  1386. people get enough mail that they have it permanently running
  1387. to simply send an "ack" to each message)
  1388. .PP
  1389. The system is quite easy to use...
  1390. You can type "autoreply" and be informed of your current
  1391. status in the system (on or off), or "autoreply off" will
  1392. turn your autoreplying off.
  1393. .PP
  1394. To add yourself to the system, you need merely to compose a
  1395. form response in a file somewhere, then type "autoreply <file>"
  1396. where <file> is the name of the file.
  1397. .SH "SPECIAL NOTE"
  1398. For this to function correctly, the program "arepdaemon" must
  1399. be running as a daemon in background.  This program automatically
  1400. checks all the currently enrolled users for new mail in their
  1401. mailboxes...
  1402. .SH AUTHOR
  1403. Dave Taylor, Hewlett-Packard Laboratories.
  1404. .SH SEE ALSO
  1405. .I "Elm Users Guide", 
  1406. by Dave Taylor
  1407. .sp
  1408. .br
  1409. mail(1), mailx(1), elm(1L)
  1410. .SH "BUGS"
  1411. Unfortunately, this program isn't too brilliant about identifying
  1412. mail that shouldn't be responded to (like mail from other
  1413. daemons, or your mother) but that's a more general problem anyway.
  1414. .sp
  1415. Also, occasionally a user will remove themselves from the
  1416. autoreply system and the system won't turn their autoreply
  1417. off.  This is a problem that hasn't been solved yet (obviously
  1418. since it's in the "bugs" section!!) and any further information
  1419. would be appreciated!
  1420. END-OF-FILE
  1421.  
  1422. if [ "$filename" != "/dev/null" ]
  1423. then
  1424.   size=`wc -c < $filename`
  1425.  
  1426.   if [ $size != 1836 ]
  1427.   then
  1428.     echo $filename changed - should be 1836 bytes, not $size bytes
  1429.   fi
  1430.  
  1431.   chmod 644 $filename
  1432. fi
  1433.  
  1434. # ---------- file doc/checkalias.1 ----------
  1435.  
  1436. filename="doc/checkalias.1"
  1437.  
  1438. if [ -f $filename ]
  1439. then
  1440.   echo File \"$filename\" already exists\!  Skipping...
  1441.   filename=/dev/null        # throw it away
  1442. else
  1443.   echo extracting file doc/checkalias.1...
  1444. fi
  1445.  
  1446. cat << 'END-OF-FILE' > $filename
  1447. .TH CHECKALIAS 1L
  1448. .ad b
  1449. .SH NAME
  1450. checkalias - check to see if an alias is defined.
  1451. .SH SYNOPSIS
  1452. .B checkalias
  1453. alias, alias, ...
  1454. .SH HP-UX COMPATIBILITY
  1455. .TP 10
  1456. Level:
  1457. HP-UX/STANDARD
  1458. .TP
  1459. Origin:
  1460. Hewlett-Packard
  1461. .SH DESCRIPTION
  1462. .I Checkalias
  1463. checks the user file first, and then the system alias file
  1464. to try to find the specified alias or aliases.  If found, 
  1465. the value of the alias is printed out, otherwise an error
  1466. is generated.
  1467. .P
  1468. Note: this is in fact a one-line shell script;
  1469. .nf
  1470.  
  1471.     elm -c $*
  1472.  
  1473. .fi
  1474. .SH AUTHOR
  1475. Dave Taylor, Hewlett-Packard Laboratories
  1476. .SH SEE\ ALSO
  1477. newalias(1L), elm(1L), mail(1), mailx(1)
  1478. .SH BUGS
  1479. Note that the precedence of aliases is user file then system
  1480. file.  This means that a user can 'overload' an alias by having
  1481. one defined in the system file also defined in theirs.  This
  1482. shouldn't turn out to be a problem, but is something for
  1483. the system administrator to keep in mind when creating the
  1484. system alias file.
  1485. END-OF-FILE
  1486.  
  1487. if [ "$filename" != "/dev/null" ]
  1488. then
  1489.   size=`wc -c < $filename`
  1490.  
  1491.   if [ $size != 938 ]
  1492.   then
  1493.     echo $filename changed - should be 938 bytes, not $size bytes
  1494.   fi
  1495.  
  1496.   chmod 644 $filename
  1497. fi
  1498.  
  1499. # ---------- file doc/fastmail.1 ----------
  1500.  
  1501. filename="doc/fastmail.1"
  1502.  
  1503. if [ -f $filename ]
  1504. then
  1505.   echo File \"$filename\" already exists\!  Skipping...
  1506.   filename=/dev/null        # throw it away
  1507. else
  1508.   echo extracting file doc/fastmail.1...
  1509. fi
  1510.  
  1511. sed 's/^X//' << 'END-OF-FILE' > $filename
  1512. X.TH FASTMAIL 1L
  1513. X.ad b
  1514. X.SH NAME
  1515. Xfastmail - quick batch mail interface to a single address
  1516. X.SH SYNOPSIS
  1517. X.B fastmail
  1518. X[-b bcc-list] [-c cc-list] [-d] [-f fromname] [-r replyto] 
  1519. X[-s subject] filename address-list
  1520. X.br
  1521. X.SH HP-UX COMPATIBILITY
  1522. X.TP 10
  1523. XLevel:
  1524. XHP-UX/STANDARD
  1525. X.TP
  1526. XOrigin:
  1527. XHewlett-Packard
  1528. X.SH DESCRIPTION
  1529. X.I Fastmail
  1530. Xis a low-level interface to the mail system that allows batch
  1531. Xprocessing of mail.  It's intended for mailing to very large
  1532. Xgroups of people in a staggered fashion. 
  1533. X.PP
  1534. XThe starting options are;
  1535. X.TP 1.0i
  1536. X.B "-b bcc-list"
  1537. XThis allows a list of people to receive blind-carbon copies, or BCCs, of
  1538. Xthe message.  This list should be full email addresses.
  1539. X.TP
  1540. X.B "-c cc-list"
  1541. XThis allows a list of people to receive carbon copies, or CCs, of
  1542. Xthe message.  This list should be full email addresses.
  1543. X.TP
  1544. X.B "-d"
  1545. XDebug.  This is helpful for strange, unfriendly errors from
  1546. Xthe program (etc).
  1547. X.TP
  1548. X.B "-f from"
  1549. XThis overrides the users name in the From: line, so that if
  1550. Xthe user was x@y, and their name was MrX then the default 
  1551. XFrom: line would be "From: x@y (MrX)".  Using "-f Joe" when
  1552. Xinvoking this, though, would change it to "From: x@y (Joe)"
  1553. X.TP
  1554. X.B "-r replyto"
  1555. XOccasionally, you might send mail but want the replies to go
  1556. Xto a different address (very common with mailing lists).  
  1557. XThere is a header for this purpose called "Reply-To:" which
  1558. Xcan be utilized by using this starting option.  For example,
  1559. Xwe could send mail with a reply-to to list-request by
  1560. Xusing "-r list-request".  The header generated would then
  1561. Xbe of the form "Reply-To: list-request".
  1562. X.TP
  1563. X.B "-s subject"
  1564. XThe subject of the message is specified by using 
  1565. Xthis starting option.
  1566. X.SH EXAMPLE
  1567. XLet's say we're user "big" on machine "big-vax" and we have a
  1568. Xshell script called 'batch-mail' that contains the following
  1569. Xlines:
  1570. X.nf
  1571. X
  1572. X   #
  1573. X   # Batch Mail - batch mailing of a file to a LOT of users
  1574. X   #  
  1575. X   # Usage: batch-mail "from" "subject" filename
  1576. X
  1577. X   sender_copy = $LOGIN
  1578. X   replto = "The-Mr-Big-list"
  1579. X
  1580. X   fastmail -b $sender_copy -r $replyto -f "$1" -s "$2" $3 person1
  1581. X   sleep 10
  1582. X   fastmail -r $replyto -f "$1" -s "$2" $3 person2
  1583. X   sleep 10
  1584. X   fastmail -r $replyto -f "$1" -s "$2" $3 person3
  1585. X   sleep 10
  1586. X   fastmail -r $replyto -f "$1" -s "$2" $3 person4
  1587. X
  1588. X   < etc >
  1589. X
  1590. Xwith the invocation:
  1591. X
  1592. X   batch-mail "Mr. Big" "Warning to all" warning.text
  1593. X
  1594. X.fi
  1595. Xwould mail a copy of the 'warning.text' file to person1, person2, 
  1596. Xperson3, etc.  "$LOGIN" will also receive a copy of the first message
  1597. Xin the mail, \fIsilently\fR.  Each resultant message will include the headers:
  1598. X.nf
  1599. X
  1600. X    From: big-vax!big (Mr. Big)
  1601. X    Subject: Warning to all
  1602. X    Reply-To: The-Mr-Big-list
  1603. X
  1604. X.fi
  1605. XThis program should turn out to be considerably
  1606. Xfaster than the alternative methods of accomplishing this task.
  1607. X.SH FILES
  1608. X/usr/lib/sendmail       sendmail transport if available
  1609. X.br
  1610. X/bin/rmail              transport if no sendmail
  1611. X.br
  1612. X/tmp/fastmail.$$        temporary file 
  1613. X.SH AUTHOR
  1614. XDave Taylor, Hewlett-Packard Laboratories
  1615. X.SH SEE\ ALSO
  1616. Xsendmail(1), rmail(1), elm(1L)
  1617. END-OF-FILE
  1618.  
  1619. if [ "$filename" != "/dev/null" ]
  1620. then
  1621.   size=`wc -c < $filename`
  1622.  
  1623.   if [ $size != 3030 ]
  1624.   then
  1625.     echo $filename changed - should be 3030 bytes, not $size bytes
  1626.   fi
  1627.  
  1628.   chmod 644 $filename
  1629. fi
  1630.  
  1631. # ---------- file doc/from.1 ----------
  1632.  
  1633. filename="doc/from.1"
  1634.  
  1635. if [ -f $filename ]
  1636. then
  1637.   echo File \"$filename\" already exists\!  Skipping...
  1638.   filename=/dev/null        # throw it away
  1639. else
  1640.   echo extracting file doc/from.1...
  1641. fi
  1642.  
  1643. cat << 'END-OF-FILE' > $filename
  1644. .TH FROM 1L
  1645. .ad b
  1646. .SH NAME
  1647. from - list from and subject of all messages in mailbox or file
  1648. .SH SYNOPSIS
  1649. .B from
  1650. [ filename ]
  1651. .SH HP-UX COMPATIBILITY
  1652. .TP 10
  1653. Level:
  1654. HP-UX/STANDARD
  1655. .TP
  1656. Origin:
  1657. Hewlett-Packard
  1658. .SH DESCRIPTION
  1659. .I From
  1660. outputs a line per message in the current users mailbox 
  1661. of the form;
  1662. .PP
  1663. <from> [subject]
  1664. .PP
  1665. If a filename is specified, the program reads that file
  1666. rather than the default file.
  1667. .PP
  1668. Note that this program accepts the standard UNIX mail
  1669. headers and also accepts the modified headers that the
  1670. Shared Resource Manager mailer outputs...
  1671. .PP
  1672. Filename can be specified with the same notation as
  1673. when invoking the \fBElm\fR mailer.
  1674. .SH AUTHOR
  1675. Dave Taylor, Hewlett-Packard Laboratories.
  1676. .SH SEE\ ALSO
  1677. elm(1L), mail(1), mailx(1)
  1678. .SH BUGS
  1679. Occasionally it gets confused about whether a message has
  1680. a subject or not.  This, unfortunately, is due to the
  1681. vast number of possible headers in the messages...
  1682. END-OF-FILE
  1683.  
  1684. if [ "$filename" != "/dev/null" ]
  1685. then
  1686.   size=`wc -c < $filename`
  1687.  
  1688.   if [ $size != 925 ]
  1689.   then
  1690.     echo $filename changed - should be 925 bytes, not $size bytes
  1691.   fi
  1692.  
  1693.   chmod 644 $filename
  1694. fi
  1695.  
  1696. # ---------- file doc/elmrc.sample ----------
  1697.  
  1698. filename="doc/elmrc.sample"
  1699.  
  1700. if [ -f $filename ]
  1701. then
  1702.   echo File \"$filename\" already exists\!  Skipping...
  1703.   filename=/dev/null        # throw it away
  1704. else
  1705.   echo extracting file doc/elmrc.sample...
  1706. fi
  1707.  
  1708. cat << 'END-OF-FILE' > $filename
  1709. #
  1710. # .msgrc - automatic variable defines for the 'msg' mailer.
  1711. #
  1712. # Personalized for ??
  1713.  
  1714. # where to save my mail to, default directory
  1715. maildir  = ~/Mail
  1716.  
  1717. # where to save messages to, default file
  1718. mailbox  = ~/Mail/mailbox
  1719.  
  1720. # what editor to use
  1721. editor   = $EDITOR
  1722.  
  1723. # where to save mail if not specified somewhere else
  1724. savemail = ~/Mail/mail.sent
  1725.  
  1726. # how to print a message ('%s' is the filename)
  1727. print    = /usr/local/bin/print -p lpn -f %s
  1728.  
  1729. # prefix sequence for including message text in other messages...
  1730. prefix = > 
  1731.  
  1732. # what headers I DON'T want to see, ever.
  1733.  
  1734. weedout  = "Via:"  "Sent:"  "Date:"  "Status:"  "Original"
  1735.        "From"  "Phase"  "Subject:"  "Fruit"  "Sun"
  1736.        "Lat"  "Buzzword"  "Return"  "Posted" "Telephone"
  1737.        "Postal-Address" "Origin" "X-Sent-By-Nmail-V"
  1738.        "Resent" "X-Location"  "Source" "Mood"  "Neuron"
  1739.        "Libido" "To:" "X-Mailer:"  "Full-Name:" "X-HPMAIL"
  1740.        "Cc:" "cc:" "Mmdf" "Network-"
  1741.  
  1742. # automatically copy message being replied to into buffer? 
  1743. autocopy = OFF
  1744.  
  1745. # save a copy of all outbound messages? 
  1746. copy     = ON
  1747.  
  1748. # emulate the mailx message increment mode (only increment after something
  1749. # has been 'done' to a message, either saved or deleted)
  1750. resolve  = ON
  1751.  
  1752. # enable the weedout list to be read...
  1753. weed     = ON
  1754.  
  1755. # when messages are copied into the outbound buffer, don't include headers
  1756. noheader = ON
  1757.  
  1758. # display message title when displaying pages of message
  1759. titles     = ON
  1760.  
  1761. # alternative addresses that I could receive mail from (usually a
  1762. # forwarding mailbox)
  1763.  
  1764. # alternatives = 
  1765. END-OF-FILE
  1766.  
  1767. if [ "$filename" != "/dev/null" ]
  1768. then
  1769.   size=`wc -c < $filename`
  1770.  
  1771.   if [ $size != 1520 ]
  1772.   then
  1773.     echo $filename changed - should be 1520 bytes, not $size bytes
  1774.   fi
  1775.  
  1776.   chmod 644 $filename
  1777. fi
  1778.  
  1779. # ---------- file doc/newalias.1 ----------
  1780.  
  1781. filename="doc/newalias.1"
  1782.  
  1783. if [ -f $filename ]
  1784. then
  1785.   echo File \"$filename\" already exists\!  Skipping...
  1786.   filename=/dev/null        # throw it away
  1787. else
  1788.   echo extracting file doc/newalias.1...
  1789. fi
  1790.  
  1791. cat << 'END-OF-FILE' > $filename
  1792. .TH NEWALIAS 1L
  1793. .ad b
  1794. .SH NAME
  1795. newalias - install new elm aliases for user and/or system
  1796. .SH SYNOPSIS
  1797. .B newalias
  1798. [-q]
  1799. .SH HP-UX COMPATIBILITY
  1800. .TP 10
  1801. Level:
  1802. HP-UX/STANDARD
  1803. .TP
  1804. Origin:
  1805. Hewlett-Packard
  1806. .SH DESCRIPTION
  1807. .I Newalias
  1808. creates new hash and data files from a text file.  If the
  1809. program is invoked by any account other than the superuser
  1810. account, the program looks for a file 
  1811. called $home/.alias_text
  1812. and, upon finding it, creates files $home/.alias_hash and
  1813. $home/.alias_data for the 
  1814. .I Elm
  1815. program.
  1816. .PP
  1817. If the superuser invokes the program, they are given the
  1818. option of either updating their personal alias files or
  1819. the system alias files.
  1820. The question can be supressed, with the default being
  1821. the user files for the superuser, if the ``-q'' flag is
  1822. present upon invokation.
  1823. .PP
  1824. The format that the program expects is;
  1825. .sp
  1826. .nf
  1827.     alias, alias, .. : comment : address
  1828. or
  1829.     alias, alias, .. : comment : alias, alias, ...
  1830.    
  1831. The first form is for an individual user such as;
  1832.  
  1833.     dave, taylor : Dave Taylor : veeger!hpcnou!dat
  1834.  
  1835. and the second is for defining a group alias such as;
  1836.  
  1837.     gurus : Unix Gurus : alan, john, dave, mike, richard,
  1838.                      larry, t_richardson
  1839.  
  1840. .fi
  1841. .sp
  1842. Note that lines can be continued at will, blank lines are accepted
  1843. without error, and that any line starting with '#' is considered a
  1844. comment and is not processed.
  1845. .PP
  1846. The comment field is thrown away by this program, but it is 
  1847. recommended that it contain the name of the user who the alias
  1848. is for.
  1849. .PP
  1850. Finally, aliases can contain other aliases, and/or groups;
  1851. .sp
  1852. .nf
  1853.     unix : Unix people : gurus, taylor, jonboy
  1854. .fi
  1855. ' onto the next page, if you please
  1856. .sp 3
  1857. .SH FILES
  1858. $home/.alias_text               alias source for user 
  1859. .br
  1860. $home/.alias_hash               alias hash table for user
  1861. .br
  1862. $home/.alias_data               alias data file for user
  1863. .br
  1864. /usr/mail/.alias_text           alias source for system
  1865. .br
  1866. /usr/mail/.alias_hash           alias hash table for system
  1867. .br
  1868. /usr/mail/.alias_data           alias data file for system
  1869. .SH AUTHOR
  1870. Dave Taylor, Hewlett-Packard Laboratories.
  1871. .SH SEE\ ALSO
  1872. elm(1L), checkalias(1L), mail(1), mailx(1)
  1873. .SH DIAGNOSTICS
  1874. Newalias has a couple of descriptive error messages which
  1875. don't need to be detailed here.  It is, however, worth
  1876. noting that the
  1877. .I checkalias
  1878. program can be used to ensure that the aliases are in the
  1879. proper order and are available for the 
  1880. .I Elm
  1881. system.
  1882. END-OF-FILE
  1883.  
  1884. if [ "$filename" != "/dev/null" ]
  1885. then
  1886.   size=`wc -c < $filename`
  1887.  
  1888.   if [ $size != 2404 ]
  1889.   then
  1890.     echo $filename changed - should be 2404 bytes, not $size bytes
  1891.   fi
  1892.  
  1893.   chmod 644 $filename
  1894. fi
  1895.  
  1896. # ---------- file doc/newmail.1 ----------
  1897.  
  1898. filename="doc/newmail.1"
  1899.  
  1900. if [ -f $filename ]
  1901. then
  1902.   echo File \"$filename\" already exists\!  Skipping...
  1903.   filename=/dev/null        # throw it away
  1904. else
  1905.   echo extracting file doc/newmail.1...
  1906. fi
  1907.  
  1908. cat << 'END-OF-FILE' > $filename
  1909. .TH NEWMAIL 1L 
  1910. .ad b
  1911. .SH NAME
  1912. newmail - daemon to asynchronously notify of new mail
  1913. .SH SYNOPSIS
  1914. .B newmail
  1915. .br
  1916. .B newmail
  1917. filename
  1918. .PP
  1919. .SH HP-UX COMPATIBILITY
  1920. .TP 10
  1921. Level:
  1922. HP-UX/STANDARD
  1923. .TP
  1924. Origin:
  1925. Hewlett-Packard
  1926. .SH DESCRIPTION
  1927. .I Newmail\^
  1928. is a daemon designed to run in background and every 60 seconds
  1929. check to see if there is any new mail for the user that
  1930. started it up.
  1931. .P
  1932. If there is new mail, the program will asynchronously write to
  1933. the terminal that it was started on a message of the form
  1934. .nf
  1935.  
  1936.    New mail from <name> - <subject>
  1937.  
  1938. .fi
  1939. where <name> is either the name of the person sending it,
  1940. if available (the ARPA 'From:' line) or machine!login where
  1941. machine is the machine the mail was sent from.  If there
  1942. is no subject, the message "<no subject>" will appear on
  1943. the screen.
  1944. .P
  1945. This program will run forever, and can internally reset 
  1946. itself if mail is deleted from the incoming mailbox while
  1947. trying to monitor it.
  1948. .P
  1949. If \fBnewmail\fR is started up with a filename, it will
  1950. perform exactly the same, but with the specified file as
  1951. the one to check rather than the default users mailbox.
  1952. .SH AUTHOR
  1953. Dave Taylor, Hewlett-Packard Laboratories.
  1954. .SH SEE ALSO
  1955. notify in sh(1) or csh(1), announce(1L)
  1956. END-OF-FILE
  1957.  
  1958. if [ "$filename" != "/dev/null" ]
  1959. then
  1960.   size=`wc -c < $filename`
  1961.  
  1962.   if [ $size != 1214 ]
  1963.   then
  1964.     echo $filename changed - should be 1214 bytes, not $size bytes
  1965.   fi
  1966.  
  1967.   chmod 644 $filename
  1968. fi
  1969.  
  1970. # ---------- file doc/printmail.1 ----------
  1971.  
  1972. filename="doc/printmail.1"
  1973.  
  1974. if [ -f $filename ]
  1975. then
  1976.   echo File \"$filename\" already exists\!  Skipping...
  1977.   filename=/dev/null        # throw it away
  1978. else
  1979.   echo extracting file doc/printmail.1...
  1980. fi
  1981.  
  1982. cat << 'END-OF-FILE' > $filename
  1983. .TH PRINTMAIL 1L
  1984. .ad b
  1985. .SH NAME
  1986. printmail - format mail in a readable fashion for printing
  1987. .SH SYNOPSIS
  1988. .B printmail
  1989. {-d}
  1990. {filename}
  1991. .SH HP-UX COMPATIBILITY
  1992. .TP 10
  1993. Level:
  1994. HP-UX/STANDARD
  1995. .TP
  1996. Origin:
  1997. Hewlett-Packard
  1998. .SH DESCRIPTION
  1999. .I Printmail
  2000. copies all messages from either the file specified or the
  2001. default user mailbox separated by form feeds to standard output.  
  2002. With the
  2003. .B \-d
  2004. option, the messages are separated by a dashed line
  2005. rather than the formfeed (for lots of little mail).
  2006. .sp
  2007. .P
  2008. If the program is given a file as standard input, it will
  2009. use that instead of the default mailbox for the operation
  2010. specified.
  2011. .SH EXAMPLE
  2012. A typical usage of this command is;
  2013. .nf
  2014.     printmail -d | print 
  2015. .fi
  2016. .SH AUTHOR
  2017. Dave Taylor, Hewlett-Packard Laboratories.
  2018. .SH SEE\ ALSO
  2019. elm(1L), mail(1), mailx(1), from(1L)
  2020. END-OF-FILE
  2021.  
  2022. if [ "$filename" != "/dev/null" ]
  2023. then
  2024.   size=`wc -c < $filename`
  2025.  
  2026.   if [ $size != 806 ]
  2027.   then
  2028.     echo $filename changed - should be 806 bytes, not $size bytes
  2029.   fi
  2030.  
  2031.   chmod 644 $filename
  2032. fi
  2033.  
  2034. echo end of this archive file....
  2035. exit 0
  2036.  
  2037.