home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume4 / msg / part1 < prev    next >
Encoding:
Internet Message Format  |  1986-11-30  |  55.9 KB

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