From a0b65ae04f58df123c9d2d46c597e04b6514ac68 Mon Sep 17 00:00:00 2001 From: David Levine Date: Wed, 29 Feb 2012 18:41:14 -0600 Subject: [PATCH] Added all of the MH sources, including RCS files, in docs/historical/mh-6.8.5. Sources for the papers are below papers/. Sources for the MH User's Manual are in conf/doc/. --- docs/historical/README | 119 + docs/historical/mh-6.8.5/CHANGES | 1518 + docs/historical/mh-6.8.5/FAQ | 3377 + docs/historical/mh-6.8.5/MAKE | 4 + docs/historical/mh-6.8.5/Makefile | 135 + docs/historical/mh-6.8.5/Patchlevel | 1 + docs/historical/mh-6.8.5/RCS/COVER-LETTER,v | 164 + docs/historical/mh-6.8.5/READ-ME | 1452 + docs/historical/mh-6.8.5/conf/MH | 54 + docs/historical/mh-6.8.5/conf/Makefile | 45 + docs/historical/mh-6.8.5/conf/RCS/MH,v | 180 + docs/historical/mh-6.8.5/conf/RCS/Makefile,v | 146 + docs/historical/mh-6.8.5/conf/RCS/mh-gen.8,v | 5115 ++ docs/historical/mh-6.8.5/conf/RCS/mhconfig.c,v | 2685 + docs/historical/mh-6.8.5/conf/RCS/mhdoc,v | 70 + docs/historical/mh-6.8.5/conf/config.sed | 94 + docs/historical/mh-6.8.5/conf/config/MailAliases | 25 + docs/historical/mh-6.8.5/conf/config/MakeBBoards | 55 + .../mh-6.8.5/conf/config/RCS/MailAliases,v | 82 + .../historical/mh-6.8.5/conf/config/RCS/config.c,v | 617 + docs/historical/mh-6.8.5/conf/config/RCS/mts.c,v | 1257 + docs/historical/mh-6.8.5/conf/config/bboards.daily | 3 + .../historical/mh-6.8.5/conf/config/bboards.weekly | 3 + docs/historical/mh-6.8.5/conf/config/bboardsMH.m4 | 15 + docs/historical/mh-6.8.5/conf/config/config.c | 369 + docs/historical/mh-6.8.5/conf/config/crontab | 3 + docs/historical/mh-6.8.5/conf/config/mts.c | 612 + docs/historical/mh-6.8.5/conf/config/mtstailor | 4 + docs/historical/mh-6.8.5/conf/config/popMH.m4 | 15 + docs/historical/mh-6.8.5/conf/doc/ADMIN.rf | 955 + docs/historical/mh-6.8.5/conf/doc/MH.rf | 2414 + docs/historical/mh-6.8.5/conf/doc/RCS/ADMIN.rf,v | 1364 + docs/historical/mh-6.8.5/conf/doc/RCS/MH.rf,v | 3080 + docs/historical/mh-6.8.5/conf/doc/RCS/ali.rf,v | 186 + docs/historical/mh-6.8.5/conf/doc/RCS/anno.rf,v | 168 + docs/historical/mh-6.8.5/conf/doc/RCS/ap.rf,v | 209 + docs/historical/mh-6.8.5/conf/doc/RCS/bbaka.rf,v | 121 + docs/historical/mh-6.8.5/conf/doc/RCS/bbc.rf,v | 326 + docs/historical/mh-6.8.5/conf/doc/RCS/bbexp.rf,v | 124 + docs/historical/mh-6.8.5/conf/doc/RCS/bbl.rf,v | 295 + .../historical/mh-6.8.5/conf/doc/RCS/bbleader.rf,v | 216 + docs/historical/mh-6.8.5/conf/doc/RCS/bboards.rf,v | 203 + .../historical/mh-6.8.5/conf/doc/RCS/bboards5.rf,v | 145 + .../historical/mh-6.8.5/conf/doc/RCS/bboards8.rf,v | 140 + docs/historical/mh-6.8.5/conf/doc/RCS/bbtar.rf,v | 140 + docs/historical/mh-6.8.5/conf/doc/RCS/burst.rf,v | 195 + docs/historical/mh-6.8.5/conf/doc/RCS/comp.rf,v | 229 + .../historical/mh-6.8.5/conf/doc/RCS/conflict.rf,v | 145 + docs/historical/mh-6.8.5/conf/doc/RCS/dist.rf,v | 241 + docs/historical/mh-6.8.5/conf/doc/RCS/dp.rf,v | 187 + docs/historical/mh-6.8.5/conf/doc/RCS/fmtdump.rf,v | 209 + docs/historical/mh-6.8.5/conf/doc/RCS/folder.rf,v | 588 + docs/historical/mh-6.8.5/conf/doc/RCS/forw.rf,v | 490 + docs/historical/mh-6.8.5/conf/doc/RCS/inc.rf,v | 372 + .../mh-6.8.5/conf/doc/RCS/install-mh.rf,v | 150 + .../mh-6.8.5/conf/doc/RCS/maildelivery.5,v | 298 + docs/historical/mh-6.8.5/conf/doc/RCS/mark.rf,v | 309 + docs/historical/mh-6.8.5/conf/doc/RCS/me2man.sed,v | 64 + docs/historical/mh-6.8.5/conf/doc/RCS/mf.rf,v | 154 + .../historical/mh-6.8.5/conf/doc/RCS/mh-alias.rf,v | 443 + .../historical/mh-6.8.5/conf/doc/RCS/mh-chart.rf,v | 1147 + .../mh-6.8.5/conf/doc/RCS/mh-format.rf,v | 2188 + docs/historical/mh-6.8.5/conf/doc/RCS/mh-hack.rf,v | 179 + docs/historical/mh-6.8.5/conf/doc/RCS/mh-mail.rf,v | 339 + docs/historical/mh-6.8.5/conf/doc/RCS/mh-mts.rf,v | 306 + .../mh-6.8.5/conf/doc/RCS/mh-profile.rf,v | 1024 + .../mh-6.8.5/conf/doc/RCS/mh-sequence.rf,v | 686 + .../mh-6.8.5/conf/doc/RCS/mh-tailor.rf,v | 1032 + docs/historical/mh-6.8.5/conf/doc/RCS/mh.rf,v | 499 + docs/historical/mh-6.8.5/conf/doc/RCS/mhl.rf,v | 471 + docs/historical/mh-6.8.5/conf/doc/RCS/mhmail.rf,v | 151 + docs/historical/mh-6.8.5/conf/doc/RCS/mhn.rf,v | 1767 + docs/historical/mh-6.8.5/conf/doc/RCS/mhook.rf,v | 753 + docs/historical/mh-6.8.5/conf/doc/RCS/mhparam.rf,v | 118 + docs/historical/mh-6.8.5/conf/doc/RCS/mhpath.rf,v | 257 + docs/historical/mh-6.8.5/conf/doc/RCS/msgchk.rf,v | 222 + docs/historical/mh-6.8.5/conf/doc/RCS/msh.rf,v | 386 + docs/historical/mh-6.8.5/conf/doc/RCS/next.rf,v | 161 + docs/historical/mh-6.8.5/conf/doc/RCS/packf.rf,v | 202 + docs/historical/mh-6.8.5/conf/doc/RCS/pick.rf,v | 489 + docs/historical/mh-6.8.5/conf/doc/RCS/pop5.rf,v | 166 + docs/historical/mh-6.8.5/conf/doc/RCS/pop8.rf,v | 128 + docs/historical/mh-6.8.5/conf/doc/RCS/popaka.rf,v | 118 + docs/historical/mh-6.8.5/conf/doc/RCS/popauth.rf,v | 64 + docs/historical/mh-6.8.5/conf/doc/RCS/popd.rf,v | 227 + docs/historical/mh-6.8.5/conf/doc/RCS/popi.rf,v | 147 + docs/historical/mh-6.8.5/conf/doc/RCS/popwrd.rf,v | 127 + docs/historical/mh-6.8.5/conf/doc/RCS/post.rf,v | 259 + docs/historical/mh-6.8.5/conf/doc/RCS/prev.rf,v | 161 + .../historical/mh-6.8.5/conf/doc/RCS/prompter.rf,v | 260 + .../historical/mh-6.8.5/conf/doc/RCS/rcvstore.rf,v | 217 + docs/historical/mh-6.8.5/conf/doc/RCS/refile.rf,v | 357 + docs/historical/mh-6.8.5/conf/doc/RCS/repl.rf,v | 582 + docs/historical/mh-6.8.5/conf/doc/RCS/rmail.rf,v | 129 + docs/historical/mh-6.8.5/conf/doc/RCS/rmf.rf,v | 195 + docs/historical/mh-6.8.5/conf/doc/RCS/rmm.rf,v | 263 + docs/historical/mh-6.8.5/conf/doc/RCS/scan.rf,v | 457 + docs/historical/mh-6.8.5/conf/doc/RCS/send.rf,v | 428 + docs/historical/mh-6.8.5/conf/doc/RCS/show.rf,v | 323 + docs/historical/mh-6.8.5/conf/doc/RCS/slocal.rf,v | 1353 + docs/historical/mh-6.8.5/conf/doc/RCS/sortm.rf,v | 287 + docs/historical/mh-6.8.5/conf/doc/RCS/tmac.h,v | 210 + docs/historical/mh-6.8.5/conf/doc/RCS/vmh.rf,v | 216 + docs/historical/mh-6.8.5/conf/doc/RCS/whatnow.rf,v | 294 + docs/historical/mh-6.8.5/conf/doc/RCS/whom.rf,v | 186 + docs/historical/mh-6.8.5/conf/doc/RCS/wmh.rf,v | 182 + docs/historical/mh-6.8.5/conf/doc/TODO | 20 + docs/historical/mh-6.8.5/conf/doc/ali.rf | 57 + docs/historical/mh-6.8.5/conf/doc/anno.rf | 58 + docs/historical/mh-6.8.5/conf/doc/ap.rf | 77 + docs/historical/mh-6.8.5/conf/doc/bbaka.rf | 27 + docs/historical/mh-6.8.5/conf/doc/bbc.rf | 174 + docs/historical/mh-6.8.5/conf/doc/bbexp.rf | 30 + docs/historical/mh-6.8.5/conf/doc/bbl.rf | 201 + docs/historical/mh-6.8.5/conf/doc/bbleader.rf | 105 + docs/historical/mh-6.8.5/conf/doc/bboards.rf | 92 + docs/historical/mh-6.8.5/conf/doc/bboards5.rf | 51 + docs/historical/mh-6.8.5/conf/doc/bboards8.rf | 46 + docs/historical/mh-6.8.5/conf/doc/bbtar.rf | 46 + docs/historical/mh-6.8.5/conf/doc/burst.rf | 101 + docs/historical/mh-6.8.5/conf/doc/comp.rf | 116 + docs/historical/mh-6.8.5/conf/doc/config.sed | 94 + docs/historical/mh-6.8.5/conf/doc/conflict.rf | 51 + docs/historical/mh-6.8.5/conf/doc/dist.rf | 147 + docs/historical/mh-6.8.5/conf/doc/dp.rf | 61 + docs/historical/mh-6.8.5/conf/doc/fmtdump.rf | 32 + docs/historical/mh-6.8.5/conf/doc/folder.rf | 210 + docs/historical/mh-6.8.5/conf/doc/forw.rf | 277 + docs/historical/mh-6.8.5/conf/doc/inc.rf | 211 + docs/historical/mh-6.8.5/conf/doc/install-mh.rf | 39 + docs/historical/mh-6.8.5/conf/doc/maildelivery.5 | 243 + docs/historical/mh-6.8.5/conf/doc/mark.rf | 121 + docs/historical/mh-6.8.5/conf/doc/me2man.sed | 10 + docs/historical/mh-6.8.5/conf/doc/mf.rf | 60 + docs/historical/mh-6.8.5/conf/doc/mh-alias.rf | 232 + docs/historical/mh-6.8.5/conf/doc/mh-chart.rf | 621 + docs/historical/mh-6.8.5/conf/doc/mh-format.rf | 531 + docs/historical/mh-6.8.5/conf/doc/mh-hack.rf | 67 + docs/historical/mh-6.8.5/conf/doc/mh-mail.rf | 227 + docs/historical/mh-6.8.5/conf/doc/mh-mts.rf | 111 + docs/historical/mh-6.8.5/conf/doc/mh-profile.rf | 491 + docs/historical/mh-6.8.5/conf/doc/mh-sequence.rf | 229 + docs/historical/mh-6.8.5/conf/doc/mh-tailor.rf | 413 + docs/historical/mh-6.8.5/conf/doc/mh.rf | 285 + docs/historical/mh-6.8.5/conf/doc/mhl.rf | 256 + docs/historical/mh-6.8.5/conf/doc/mhmail.rf | 57 + docs/historical/mh-6.8.5/conf/doc/mhn.rf | 1174 + docs/historical/mh-6.8.5/conf/doc/mhook.rf | 106 + docs/historical/mh-6.8.5/conf/doc/mhparam.rf | 70 + docs/historical/mh-6.8.5/conf/doc/mhpath.rf | 132 + docs/historical/mh-6.8.5/conf/doc/msgchk.rf | 86 + docs/historical/mh-6.8.5/conf/doc/msh.rf | 227 + docs/historical/mh-6.8.5/conf/doc/next.rf | 47 + docs/historical/mh-6.8.5/conf/doc/packf.rf | 57 + docs/historical/mh-6.8.5/conf/doc/pick.rf | 300 + docs/historical/mh-6.8.5/conf/doc/pop5.rf | 72 + docs/historical/mh-6.8.5/conf/doc/pop8.rf | 34 + docs/historical/mh-6.8.5/conf/doc/popaka.rf | 24 + docs/historical/mh-6.8.5/conf/doc/popauth.rf | 41 + docs/historical/mh-6.8.5/conf/doc/popd.rf | 54 + docs/historical/mh-6.8.5/conf/doc/popi.rf | 124 + docs/historical/mh-6.8.5/conf/doc/popwrd.rf | 33 + docs/historical/mh-6.8.5/conf/doc/post.rf | 129 + docs/historical/mh-6.8.5/conf/doc/prev.rf | 47 + docs/historical/mh-6.8.5/conf/doc/prompter.rf | 115 + docs/historical/mh-6.8.5/conf/doc/rcvstore.rf | 87 + docs/historical/mh-6.8.5/conf/doc/refile.rf | 121 + docs/historical/mh-6.8.5/conf/doc/repl.rf | 282 + docs/historical/mh-6.8.5/conf/doc/rmail.rf | 35 + docs/historical/mh-6.8.5/conf/doc/rmf.rf | 64 + docs/historical/mh-6.8.5/conf/doc/rmm.rf | 59 + docs/historical/mh-6.8.5/conf/doc/scan.rf | 159 + docs/historical/mh-6.8.5/conf/doc/send.rf | 207 + docs/historical/mh-6.8.5/conf/doc/show.rf | 146 + docs/historical/mh-6.8.5/conf/doc/slocal.rf | 377 + docs/historical/mh-6.8.5/conf/doc/sortm.rf | 101 + docs/historical/mh-6.8.5/conf/doc/template | 29 + docs/historical/mh-6.8.5/conf/doc/tmac.h | 77 + docs/historical/mh-6.8.5/conf/doc/tmac.hdr | 3 + docs/historical/mh-6.8.5/conf/doc/vmh.rf | 105 + docs/historical/mh-6.8.5/conf/doc/whatnow.rf | 131 + docs/historical/mh-6.8.5/conf/doc/whom.rf | 56 + docs/historical/mh-6.8.5/conf/doc/wmh.rf | 88 + docs/historical/mh-6.8.5/conf/examples/386bsd | 27 + .../historical/mh-6.8.5/conf/examples/RCS/README,v | 243 + docs/historical/mh-6.8.5/conf/examples/README | 46 + .../mh-6.8.5/conf/examples/aix.sap-ag.de | 19 + .../mh-6.8.5/conf/examples/aix31.rpi.edu | 38 + .../mh-6.8.5/conf/examples/aos.cornell.edu | 36 + .../historical/mh-6.8.5/conf/examples/aux.rand.org | 34 + .../mh-6.8.5/conf/examples/bsd43.uiuc.edu | 39 + .../mh-6.8.5/conf/examples/bsd44.berkeley.edu | 37 + .../mh-6.8.5/conf/examples/convex.uiuc.edu | 38 + docs/historical/mh-6.8.5/conf/examples/dbc | 23 + .../mh-6.8.5/conf/examples/dynix.uiuc.edu | 36 + docs/historical/mh-6.8.5/conf/examples/encore | 14 + .../mh-6.8.5/conf/examples/fujitsu.clcs.com.au | 28 + docs/historical/mh-6.8.5/conf/examples/gould | 9 + .../mh-6.8.5/conf/examples/hplpm.hpl.hp.com | 27 + .../mh-6.8.5/conf/examples/hpux.sap-ag.de | 20 + .../mh-6.8.5/conf/examples/hpux.uiuc.edu | 41 + .../mh-6.8.5/conf/examples/kosciusko.esd.3com.com | 38 + .../mh-6.8.5/conf/examples/krusty.smsc.sony.COM | 22 + docs/historical/mh-6.8.5/conf/examples/mhmts | 8 + docs/historical/mh-6.8.5/conf/examples/mmdf | 8 + docs/historical/mh-6.8.5/conf/examples/ridge | 15 + docs/historical/mh-6.8.5/conf/examples/rs6000 | 34 + docs/historical/mh-6.8.5/conf/examples/sendmts | 7 + .../mh-6.8.5/conf/examples/shrike.irvine.com | 50 + .../mh-6.8.5/conf/examples/solaris2.sun.com | 54 + docs/historical/mh-6.8.5/conf/examples/sun3.5 | 40 + docs/historical/mh-6.8.5/conf/examples/sun4.0 | 37 + docs/historical/mh-6.8.5/conf/examples/sun4.1.1 | 30 + .../mh-6.8.5/conf/examples/sun411.rpi.edu | 36 + docs/historical/mh-6.8.5/conf/examples/sys5r3.2 | 60 + docs/historical/mh-6.8.5/conf/examples/sys5r4 | 28 + docs/historical/mh-6.8.5/conf/examples/sys5r4-ncr | 34 + docs/historical/mh-6.8.5/conf/examples/system5 | 8 + docs/historical/mh-6.8.5/conf/examples/uci.gcc | 49 + docs/historical/mh-6.8.5/conf/examples/uci.hp-pa | 64 + docs/historical/mh-6.8.5/conf/examples/uci.sequent | 51 + docs/historical/mh-6.8.5/conf/examples/uci.sun | 52 + .../mh-6.8.5/conf/examples/uci.sun.debug | 51 + docs/historical/mh-6.8.5/conf/examples/udel | 11 + .../mh-6.8.5/conf/examples/ultrix.sap-ag.de | 25 + docs/historical/mh-6.8.5/conf/local/MH | 34 + docs/historical/mh-6.8.5/conf/local/MH.beaver | 22 + docs/historical/mh-6.8.5/conf/local/MH.debug | 28 + docs/historical/mh-6.8.5/conf/local/MH.ics | 22 + docs/historical/mh-6.8.5/conf/local/MH.icsf | 21 + docs/historical/mh-6.8.5/conf/local/MH.jlr | 35 + docs/historical/mh-6.8.5/conf/local/MH.jlr.debug | 27 + docs/historical/mh-6.8.5/conf/local/MH.next | 23 + docs/historical/mh-6.8.5/conf/local/MH.noman | 24 + docs/historical/mh-6.8.5/conf/local/MH.raj | 21 + docs/historical/mh-6.8.5/conf/local/MH.rome | 22 + .../mh-6.8.5/conf/local/MH.sun3_running_4.0 | 22 + docs/historical/mh-6.8.5/conf/local/MH.sun4 | 22 + docs/historical/mh-6.8.5/conf/local/uci.gcc | 49 + docs/historical/mh-6.8.5/conf/local/uci.hp-pa | 64 + docs/historical/mh-6.8.5/conf/local/uci.sequent | 51 + docs/historical/mh-6.8.5/conf/local/uci.sun | 51 + docs/historical/mh-6.8.5/conf/local/uci.sun-g | 52 + docs/historical/mh-6.8.5/conf/local/uci.sun.debug | 53 + docs/historical/mh-6.8.5/conf/local/uci.vangogh | 51 + .../historical/mh-6.8.5/conf/makefiles/MH-Makefile | 135 + .../historical/mh-6.8.5/conf/makefiles/MH-Unconfig | 20 + .../mh-6.8.5/conf/makefiles/RCS/MH-Makefile,v | 496 + .../mh-6.8.5/conf/makefiles/RCS/MH-Unconfig,v | 108 + .../mh-6.8.5/conf/makefiles/RCS/config,v | 269 + docs/historical/mh-6.8.5/conf/makefiles/RCS/dist,v | 361 + docs/historical/mh-6.8.5/conf/makefiles/RCS/doc,v | 1649 + docs/historical/mh-6.8.5/conf/makefiles/RCS/mtsM,v | 144 + .../mh-6.8.5/conf/makefiles/RCS/papers,v | 163 + docs/historical/mh-6.8.5/conf/makefiles/RCS/sbr,v | 1013 + .../mh-6.8.5/conf/makefiles/RCS/supportM,v | 131 + docs/historical/mh-6.8.5/conf/makefiles/RCS/uip,v | 3361 + .../mh-6.8.5/conf/makefiles/RCS/zotnetM,v | 261 + docs/historical/mh-6.8.5/conf/makefiles/config | 88 + docs/historical/mh-6.8.5/conf/makefiles/dist | 145 + docs/historical/mh-6.8.5/conf/makefiles/doc | 864 + .../mh-6.8.5/conf/makefiles/mts/RCS/mh,v | 269 + .../mh-6.8.5/conf/makefiles/mts/RCS/mmdf,v | 333 + .../mh-6.8.5/conf/makefiles/mts/RCS/sendmail,v | 268 + docs/historical/mh-6.8.5/conf/makefiles/mts/mh | 87 + docs/historical/mh-6.8.5/conf/makefiles/mts/mmdf | 117 + .../mh-6.8.5/conf/makefiles/mts/sendmail | 86 + docs/historical/mh-6.8.5/conf/makefiles/mtsM | 55 + docs/historical/mh-6.8.5/conf/makefiles/papers | 29 + docs/historical/mh-6.8.5/conf/makefiles/sbr | 499 + .../mh-6.8.5/conf/makefiles/support/RCS/bboards,v | 602 + .../mh-6.8.5/conf/makefiles/support/RCS/general,v | 804 + .../mh-6.8.5/conf/makefiles/support/RCS/pop,v | 1003 + .../mh-6.8.5/conf/makefiles/support/bboards | 319 + .../mh-6.8.5/conf/makefiles/support/general | 330 + .../historical/mh-6.8.5/conf/makefiles/support/pop | 315 + docs/historical/mh-6.8.5/conf/makefiles/supportM | 55 + docs/historical/mh-6.8.5/conf/makefiles/uip | 1979 + .../mh-6.8.5/conf/makefiles/zotnet/RCS/bboards,v | 216 + .../mh-6.8.5/conf/makefiles/zotnet/RCS/mf,v | 343 + .../mh-6.8.5/conf/makefiles/zotnet/RCS/mts,v | 339 + .../mh-6.8.5/conf/makefiles/zotnet/RCS/tws,v | 462 + .../mh-6.8.5/conf/makefiles/zotnet/bboards | 100 + docs/historical/mh-6.8.5/conf/makefiles/zotnet/mf | 243 + docs/historical/mh-6.8.5/conf/makefiles/zotnet/mts | 177 + docs/historical/mh-6.8.5/conf/makefiles/zotnet/tws | 162 + docs/historical/mh-6.8.5/conf/makefiles/zotnetM | 108 + docs/historical/mh-6.8.5/conf/mh-gen.8 | 1437 + docs/historical/mh-6.8.5/conf/mhconfig.c | 1048 + docs/historical/mh-6.8.5/conf/mhdoc | 15 + docs/historical/mh-6.8.5/conf/tailor/RCS/uci,v | 72 + .../mh-6.8.5/conf/tailor/bsd44.berkeley.edu | 6 + docs/historical/mh-6.8.5/conf/tailor/clcs.com.au | 11 + docs/historical/mh-6.8.5/conf/tailor/dbc | 4 + docs/historical/mh-6.8.5/conf/tailor/default | 4 + .../mh-6.8.5/conf/tailor/hplpm.hpl.hp.com | 9 + docs/historical/mh-6.8.5/conf/tailor/mhmts | 16 + docs/historical/mh-6.8.5/conf/tailor/mmdf | 9 + docs/historical/mh-6.8.5/conf/tailor/ncr-sys5r4 | 10 + .../mh-6.8.5/conf/tailor/paris.ics.uci.edu | 18 + docs/historical/mh-6.8.5/conf/tailor/pop | 6 + .../mh-6.8.5/conf/tailor/risci.tn.cornell.edu | 4 + docs/historical/mh-6.8.5/conf/tailor/rpi.edu | 9 + docs/historical/mh-6.8.5/conf/tailor/sendmts | 12 + docs/historical/mh-6.8.5/conf/tailor/uci | 18 + docs/historical/mh-6.8.5/config/Makefile | 83 + docs/historical/mh-6.8.5/config/RCS/version.sh,v | 280 + docs/historical/mh-6.8.5/config/config.c | 369 + docs/historical/mh-6.8.5/config/version | 1 + docs/historical/mh-6.8.5/config/version.c | 1 + docs/historical/mh-6.8.5/config/version.sh | 67 + docs/historical/mh-6.8.5/dist/Makefile | 145 + docs/historical/mh-6.8.5/doc/ADMIN.me | 900 + docs/historical/mh-6.8.5/doc/MH.me | 2344 + docs/historical/mh-6.8.5/doc/MH.ps |64717 ++++++++++++++++++++ docs/historical/mh-6.8.5/doc/Makefile | 806 + docs/historical/mh-6.8.5/doc/ali.me | 57 + docs/historical/mh-6.8.5/doc/anno.me | 58 + docs/historical/mh-6.8.5/doc/ap.me | 77 + docs/historical/mh-6.8.5/doc/bbaka.me | 27 + docs/historical/mh-6.8.5/doc/bbc.me | 142 + docs/historical/mh-6.8.5/doc/bbexp.me | 30 + docs/historical/mh-6.8.5/doc/bbl.me | 201 + docs/historical/mh-6.8.5/doc/bbleader.me | 105 + docs/historical/mh-6.8.5/doc/bboards.me | 89 + docs/historical/mh-6.8.5/doc/bboards5.me | 51 + docs/historical/mh-6.8.5/doc/bboards8.me | 46 + docs/historical/mh-6.8.5/doc/bbtar.me | 46 + docs/historical/mh-6.8.5/doc/burst.me | 101 + docs/historical/mh-6.8.5/doc/comp.me | 116 + docs/historical/mh-6.8.5/doc/conflict.me | 51 + docs/historical/mh-6.8.5/doc/dist.me | 147 + docs/historical/mh-6.8.5/doc/dp.me | 61 + docs/historical/mh-6.8.5/doc/fmtdump.me | 32 + docs/historical/mh-6.8.5/doc/folder.me | 210 + docs/historical/mh-6.8.5/doc/forw.me | 271 + docs/historical/mh-6.8.5/doc/inc.me | 148 + docs/historical/mh-6.8.5/doc/install-mh.me | 39 + docs/historical/mh-6.8.5/doc/mark.me | 121 + docs/historical/mh-6.8.5/doc/me2man.sed | 10 + docs/historical/mh-6.8.5/doc/mf.me | 60 + docs/historical/mh-6.8.5/doc/mh-alias.me | 218 + docs/historical/mh-6.8.5/doc/mh-chart.me | 480 + docs/historical/mh-6.8.5/doc/mh-format.me | 531 + docs/historical/mh-6.8.5/doc/mh-hack.me | 67 + docs/historical/mh-6.8.5/doc/mh-mail.me | 215 + docs/historical/mh-6.8.5/doc/mh-mts.me | 111 + docs/historical/mh-6.8.5/doc/mh-profile.me | 491 + docs/historical/mh-6.8.5/doc/mh-sequence.me | 229 + docs/historical/mh-6.8.5/doc/mh-tailor.me | 413 + docs/historical/mh-6.8.5/doc/mh.me | 268 + docs/historical/mh-6.8.5/doc/mhl.me | 256 + docs/historical/mh-6.8.5/doc/mhmail.me | 57 + docs/historical/mh-6.8.5/doc/mhn.me | 1174 + docs/historical/mh-6.8.5/doc/mhook.me | 106 + docs/historical/mh-6.8.5/doc/mhparam.me | 70 + docs/historical/mh-6.8.5/doc/mhpath.me | 132 + docs/historical/mh-6.8.5/doc/msgchk.me | 54 + docs/historical/mh-6.8.5/doc/msh.me | 225 + docs/historical/mh-6.8.5/doc/next.me | 47 + docs/historical/mh-6.8.5/doc/packf.me | 49 + docs/historical/mh-6.8.5/doc/pick.me | 300 + docs/historical/mh-6.8.5/doc/pop5.me | 72 + docs/historical/mh-6.8.5/doc/pop8.me | 34 + docs/historical/mh-6.8.5/doc/popaka.me | 24 + docs/historical/mh-6.8.5/doc/popauth.me | 41 + docs/historical/mh-6.8.5/doc/popd.me | 54 + docs/historical/mh-6.8.5/doc/popi.me | 101 + docs/historical/mh-6.8.5/doc/popwrd.me | 33 + docs/historical/mh-6.8.5/doc/post.me | 109 + docs/historical/mh-6.8.5/doc/prev.me | 47 + docs/historical/mh-6.8.5/doc/prompter.me | 115 + docs/historical/mh-6.8.5/doc/rcvstore.me | 87 + docs/historical/mh-6.8.5/doc/refile.me | 121 + docs/historical/mh-6.8.5/doc/repl.me | 276 + docs/historical/mh-6.8.5/doc/rmail.me | 35 + docs/historical/mh-6.8.5/doc/rmf.me | 64 + docs/historical/mh-6.8.5/doc/rmm.me | 59 + docs/historical/mh-6.8.5/doc/scan.me | 159 + docs/historical/mh-6.8.5/doc/send.me | 189 + docs/historical/mh-6.8.5/doc/show.me | 142 + docs/historical/mh-6.8.5/doc/slocal.me | 348 + docs/historical/mh-6.8.5/doc/sortm.me | 101 + docs/historical/mh-6.8.5/doc/tmac.h | 77 + docs/historical/mh-6.8.5/doc/tmac.me | 3 + docs/historical/mh-6.8.5/doc/version.rf | 1 + docs/historical/mh-6.8.5/doc/vmh.me | 105 + docs/historical/mh-6.8.5/doc/whatnow.me | 129 + docs/historical/mh-6.8.5/doc/whom.me | 56 + docs/historical/mh-6.8.5/doc/wmh.me | 88 + docs/historical/mh-6.8.5/h/RCS/addrsbr.h,v | 85 + docs/historical/mh-6.8.5/h/RCS/aliasbr.h,v | 100 + docs/historical/mh-6.8.5/h/RCS/fmtcompile.h,v | 678 + docs/historical/mh-6.8.5/h/RCS/formatsbr.h,v | 107 + docs/historical/mh-6.8.5/h/RCS/local.h,v | 92 + docs/historical/mh-6.8.5/h/RCS/md5.h,v | 170 + docs/historical/mh-6.8.5/h/RCS/mh.h,v | 834 + docs/historical/mh-6.8.5/h/RCS/mhn.h,v | 132 + docs/historical/mh-6.8.5/h/RCS/mshsbr.h,v | 232 + docs/historical/mh-6.8.5/h/RCS/netdb.h,v | 109 + docs/historical/mh-6.8.5/h/RCS/nntp.h,v | 113 + docs/historical/mh-6.8.5/h/RCS/rcvmail.h,v | 100 + docs/historical/mh-6.8.5/h/RCS/scansbr.h,v | 172 + docs/historical/mh-6.8.5/h/RCS/strings.h,v | 466 + docs/historical/mh-6.8.5/h/addrsbr.h | 46 + docs/historical/mh-6.8.5/h/aliasbr.h | 57 + docs/historical/mh-6.8.5/h/dropsbr.h | 40 + docs/historical/mh-6.8.5/h/fmtcompile.h | 105 + docs/historical/mh-6.8.5/h/formatsbr.h | 83 + docs/historical/mh-6.8.5/h/local.h | 24 + docs/historical/mh-6.8.5/h/local/incr.awk | 10 + docs/historical/mh-6.8.5/h/md5.h | 71 + docs/historical/mh-6.8.5/h/mh.h | 365 + docs/historical/mh-6.8.5/h/mhn.h | 71 + docs/historical/mh-6.8.5/h/mshsbr.h | 81 + docs/historical/mh-6.8.5/h/netdb.h | 70 + docs/historical/mh-6.8.5/h/nntp.h | 74 + docs/historical/mh-6.8.5/h/rcvmail.h | 32 + docs/historical/mh-6.8.5/h/scansbr.h | 30 + docs/historical/mh-6.8.5/h/strings.h | 71 + docs/historical/mh-6.8.5/h/vmhsbr.h | 34 + docs/historical/mh-6.8.5/local/Distfile | 88 + docs/historical/mh-6.8.5/local/Distfile.nbbc | 16 + docs/historical/mh-6.8.5/local/distfile | 34 + docs/historical/mh-6.8.5/local/distfile_lib | 28 + docs/historical/mh-6.8.5/local/lbl/diffs | 1190 + docs/historical/mh-6.8.5/local/lbl/files | 13 + docs/historical/mh-6.8.5/local/lbl/sbr/formatsbr.c | 776 + docs/historical/mh-6.8.5/local/lbl/sbr/m_gmsg.c | 356 + docs/historical/mh-6.8.5/local/lbl/sbr/m_seq.c | 76 + docs/historical/mh-6.8.5/local/lbl/sbr/t.c | 337 + docs/historical/mh-6.8.5/local/lbl/sbr/tags | 1 + docs/historical/mh-6.8.5/local/lbl/sbr/trmsbr.c | 236 + docs/historical/mh-6.8.5/local/lbl/uip/m_getfld.c | 1 + docs/historical/mh-6.8.5/local/lbl/uip/version.c | 1 + docs/historical/mh-6.8.5/local/lbl/zotnet/tws.h | 1 + .../historical/mh-6.8.5/local/lbl/zotnet/tws/dtest | Bin 0 -> 46603 bytes .../mh-6.8.5/local/lbl/zotnet/tws/dtimep.c | 1643 + .../mh-6.8.5/local/lbl/zotnet/tws/dtimep.lex | 375 + .../mh-6.8.5/local/lbl/zotnet/tws/test.input | 23 + docs/historical/mh-6.8.5/local/linux/DIFFS.linux | 950 + docs/historical/mh-6.8.5/local/linux/DIFFS.shlib | 462 + docs/historical/mh-6.8.5/local/linux/README.linux | 118 + docs/historical/mh-6.8.5/local/linux/jump/Makefile | 55 + .../mh-6.8.5/local/linux/jump/jump.funcs | 150 + .../mh-6.8.5/local/linux/jump/jump.ignore | 1 + .../mh-6.8.5/local/linux/jump/jump.import | 164 + .../mh-6.8.5/local/linux/jump/jump.params | 6 + .../mh-6.8.5/local/linux/jump/jump.undefs | 1 + .../historical/mh-6.8.5/local/linux/jump/jump.vars | 95 + docs/historical/mh-6.8.5/local/linux/linux-conf.MH | 30 + .../local/linux/linux-conf.config.mtstailor | 12 + .../mh-6.8.5/local/linux/linux-dtimep.c-lexed | 1672 + .../mh-6.8.5/local/linux/mh-6.8.3-diffs.tgz | Bin 0 -> 22812 bytes .../mh-6.8.5/local/linux/mh-6.8.3.README | 68 + docs/historical/mh-6.8.5/local/linux/mh-6.8.3.lsm | 25 + docs/historical/mh-6.8.5/local/rdist_script | 23 + .../mh-6.8.5/local/rdist_update_lib.is68k | 7 + .../mh-6.8.5/local/rdist_update_lib.sequent | 7 + .../mh-6.8.5/local/rdist_update_lib.sun3 | 11 + .../mh-6.8.5/local/rdist_update_others.is68k | 2 + .../mh-6.8.5/local/rdist_update_others.sequent | 2 + .../mh-6.8.5/local/rdist_update_others.sun3 | 3 + .../mh-6.8.5/local/rdist_update_usrlocal.is68k | 6 + .../mh-6.8.5/local/rdist_update_usrlocal.sequent | 6 + .../mh-6.8.5/local/rdist_update_usrlocal.sun3 | 10 + .../mh-6.8.5/local/tmp/mh-6.8-bsdi.patch | 2148 + docs/historical/mh-6.8.5/make.out | 798 + docs/historical/mh-6.8.5/miscellany/RCS/README,v | 213 + docs/historical/mh-6.8.5/miscellany/README | 30 + .../historical/mh-6.8.5/miscellany/audit/Bug_fixes | 6 + docs/historical/mh-6.8.5/miscellany/audit/CHANGES | 132 + .../mh-6.8.5/miscellany/audit/Installation | 71 + docs/historical/mh-6.8.5/miscellany/audit/README | 357 + .../mh-6.8.5/miscellany/audit/Suggestions | 19 + docs/historical/mh-6.8.5/miscellany/audit/audit.pl | 331 + docs/historical/mh-6.8.5/miscellany/audit/mh.pl | 188 + docs/historical/mh-6.8.5/miscellany/audit/refileto | 140 + docs/historical/mh-6.8.5/miscellany/audit/rfolder | 94 + .../mh-6.8.5/miscellany/compress-4.0/Makefile | 47 + .../mh-6.8.5/miscellany/compress-4.0/README | 83 + .../mh-6.8.5/miscellany/compress-4.0/README3.0 | 200 + .../mh-6.8.5/miscellany/compress-4.0/atob.c | 134 + .../mh-6.8.5/miscellany/compress-4.0/btoa.1 | 82 + .../mh-6.8.5/miscellany/compress-4.0/btoa.c | 116 + .../mh-6.8.5/miscellany/compress-4.0/compress.1 | 238 + .../mh-6.8.5/miscellany/compress-4.0/compress.c | 1407 + .../mh-6.8.5/miscellany/compress-4.0/compressdir | 16 + .../mh-6.8.5/miscellany/compress-4.0/compressdir.1 | 33 + .../mh-6.8.5/miscellany/compress-4.0/tarmail | 13 + .../mh-6.8.5/miscellany/compress-4.0/uncompressdir | 16 + .../mh-6.8.5/miscellany/compress-4.0/untarmail | 7 + .../mh-6.8.5/miscellany/compress-4.0/usermem | 69 + .../mh-6.8.5/miscellany/compress-4.0/zcmp | 42 + .../mh-6.8.5/miscellany/compress-4.0/zcmp.1 | 45 + .../mh-6.8.5/miscellany/compress-4.0/zdiff | 40 + .../mh-6.8.5/miscellany/compress-4.0/zmore | 19 + .../mh-6.8.5/miscellany/compress-4.0/zmore.1 | 125 + .../historical/mh-6.8.5/miscellany/convert/READ-ME | 2 + .../mh-6.8.5/miscellany/convert/its-mmdf.ex | 11 + .../mh-6.8.5/miscellany/convert/its-to-mmdf | 8 + .../mh-6.8.5/miscellany/convert/mm-mmdf.ex | 11 + .../mh-6.8.5/miscellany/convert/mm-to-mmdf | 9 + .../mh-6.8.5/miscellany/less-177/CHANGES | 124 + .../historical/mh-6.8.5/miscellany/less-177/README | 44 + .../historical/mh-6.8.5/miscellany/less-177/brac.c | 90 + docs/historical/mh-6.8.5/miscellany/less-177/ch.c | 567 + .../mh-6.8.5/miscellany/less-177/charset.c | 205 + docs/historical/mh-6.8.5/miscellany/less-177/cmd.h | 59 + .../mh-6.8.5/miscellany/less-177/cmdbuf.c | 141 + .../mh-6.8.5/miscellany/less-177/command.c | 1192 + .../mh-6.8.5/miscellany/less-177/decode.c | 368 + .../mh-6.8.5/miscellany/less-177/defines.h | 134 + .../historical/mh-6.8.5/miscellany/less-177/edit.c | 451 + .../mh-6.8.5/miscellany/less-177/filename.c | 361 + .../mh-6.8.5/miscellany/less-177/forwback.c | 372 + .../mh-6.8.5/miscellany/less-177/funcs.h | 178 + .../historical/mh-6.8.5/miscellany/less-177/help.c | 54 + .../mh-6.8.5/miscellany/less-177/ifile.c | 192 + .../mh-6.8.5/miscellany/less-177/input.c | 261 + .../historical/mh-6.8.5/miscellany/less-177/jump.c | 261 + .../historical/mh-6.8.5/miscellany/less-177/less.h | 113 + .../mh-6.8.5/miscellany/less-177/less.hlp | 104 + .../mh-6.8.5/miscellany/less-177/less.man | 1188 + .../mh-6.8.5/miscellany/less-177/less.nro | 946 + .../mh-6.8.5/miscellany/less-177/lesskey.c | 360 + .../mh-6.8.5/miscellany/less-177/lesskey.man | 198 + .../mh-6.8.5/miscellany/less-177/lesskey.nro | 151 + .../historical/mh-6.8.5/miscellany/less-177/line.c | 526 + .../mh-6.8.5/miscellany/less-177/linenum.c | 444 + .../mh-6.8.5/miscellany/less-177/linstall | 861 + .../mh-6.8.5/miscellany/less-177/lsystem.c | 305 + .../historical/mh-6.8.5/miscellany/less-177/main.c | 275 + .../mh-6.8.5/miscellany/less-177/makefile | 144 + .../historical/mh-6.8.5/miscellany/less-177/mark.c | 237 + .../mh-6.8.5/miscellany/less-177/mkfuncs.awk | 9 + .../mh-6.8.5/miscellany/less-177/optfunc.c | 376 + .../mh-6.8.5/miscellany/less-177/option.c | 500 + .../mh-6.8.5/miscellany/less-177/option.h | 38 + .../mh-6.8.5/miscellany/less-177/opttbl.c | 258 + docs/historical/mh-6.8.5/miscellany/less-177/os.c | 138 + .../mh-6.8.5/miscellany/less-177/output.c | 337 + .../mh-6.8.5/miscellany/less-177/position.c | 208 + .../mh-6.8.5/miscellany/less-177/position.h | 8 + .../mh-6.8.5/miscellany/less-177/prompt.c | 427 + .../mh-6.8.5/miscellany/less-177/screen.c | 704 + .../mh-6.8.5/miscellany/less-177/search.c | 352 + .../mh-6.8.5/miscellany/less-177/signal.c | 228 + .../historical/mh-6.8.5/miscellany/less-177/tags.c | 175 + .../mh-6.8.5/miscellany/less-177/ttyin.c | 79 + .../mh-6.8.5/miscellany/less-177/vecho.c | 41 + .../mh-6.8.5/miscellany/less-177/version.c | 315 + .../mh-6.8.5/miscellany/libndir/Makefile | 38 + .../historical/mh-6.8.5/miscellany/libndir/READ-ME | 4 + .../mh-6.8.5/miscellany/libndir/closedir.c | 17 + docs/historical/mh-6.8.5/miscellany/libndir/dir.h | 71 + .../mh-6.8.5/miscellany/libndir/directory.3s | 158 + .../mh-6.8.5/miscellany/libndir/opendir.c | 25 + .../mh-6.8.5/miscellany/libndir/readdir.c | 48 + .../mh-6.8.5/miscellany/libndir/seekdir.c | 31 + .../mh-6.8.5/miscellany/libndir/telldir.c | 16 + docs/historical/mh-6.8.5/miscellany/mem/Makefile | 4 + .../mh-6.8.5/miscellany/mem/RCS/promptdate.c,v | 346 + docs/historical/mh-6.8.5/miscellany/mem/README | 9 + docs/historical/mh-6.8.5/miscellany/mem/a.out | Bin 0 -> 24576 bytes docs/historical/mh-6.8.5/miscellany/mem/getopt.c | 51 + docs/historical/mh-6.8.5/miscellany/mem/mem.sh | 20 + .../mh-6.8.5/miscellany/mem/promptdate.1 | 53 + .../mh-6.8.5/miscellany/mem/promptdate.c | 302 + docs/historical/mh-6.8.5/miscellany/mem/rem.sh | 29 + docs/historical/mh-6.8.5/miscellany/mh-e/mh-e.el | 2911 + docs/historical/mh-6.8.5/miscellany/mhe/READ-ME | 2 + .../historical/mh-6.8.5/miscellany/mhe/mh-annot.ml | 38 + .../historical/mh-6.8.5/miscellany/mhe/mh-cache.ml | 295 + docs/historical/mh-6.8.5/miscellany/mhe/mh-doc.ml | 196 + docs/historical/mh-6.8.5/miscellany/mhe/mh-e.ml | 367 + docs/historical/mh-6.8.5/miscellany/mhe/mh-edit.ml | 31 + docs/historical/mh-6.8.5/miscellany/mhe/mh-exit.ml | 76 + .../mh-6.8.5/miscellany/mhe/mh-extras.ml | 136 + docs/historical/mh-6.8.5/miscellany/mhe/mh-forw.ml | 80 + docs/historical/mh-6.8.5/miscellany/mhe/mh-help.ml | 44 + docs/historical/mh-6.8.5/miscellany/mhe/mh-inc.ml | 48 + .../mh-6.8.5/miscellany/mhe/mh-keymap.ml | 96 + docs/historical/mh-6.8.5/miscellany/mhe/mh-mode.ml | 153 + docs/historical/mh-6.8.5/miscellany/mhe/mh-move.ml | 65 + docs/historical/mh-6.8.5/miscellany/mhe/mh-repl.ml | 86 + docs/historical/mh-6.8.5/miscellany/mhe/mh-send.ml | 73 + .../historical/mh-6.8.5/miscellany/mhe/mh-shell.ml | 45 + docs/historical/mh-6.8.5/miscellany/mhe/mh-show.ml | 28 + .../mh-6.8.5/miscellany/mhe/mh-unmark.ml | 81 + docs/historical/mh-6.8.5/miscellany/mhe/mh-util.ml | 69 + docs/historical/mh-6.8.5/miscellany/mhe/mhe | 13 + docs/historical/mh-6.8.5/miscellany/mhe/mhe.1 | 35 + docs/historical/mh-6.8.5/miscellany/mhe/mhe.mss | 90 + docs/historical/mh-6.8.5/miscellany/mtrenv/READ-ME | 1 + docs/historical/mh-6.8.5/miscellany/mtrenv/bin/MH | 15 + .../mh-6.8.5/miscellany/mtrenv/bin/again | 41 + .../mh-6.8.5/miscellany/mtrenv/bin/distf | 89 + .../mh-6.8.5/miscellany/mtrenv/bin/mpick | 44 + .../mh-6.8.5/miscellany/mtrenv/bin/packit | 71 + .../mh-6.8.5/miscellany/mtrenv/bin/replf | 38 + docs/historical/mh-6.8.5/miscellany/mtrenv/bin/sf | 2 + .../mh-6.8.5/miscellany/mtrenv/bin/sscan | 21 + docs/historical/mh-6.8.5/miscellany/mtrenv/bin/wsh | 45 + docs/historical/mh-6.8.5/miscellany/mtrenv/cshrc | 7 + .../mh-6.8.5/miscellany/mtrenv/maildelivery | 1 + .../mh-6.8.5/miscellany/mtrenv/mh_profile | 53 + .../mh-6.8.5/miscellany/mtrenv/mhbox/ap.debug | 7 + .../mh-6.8.5/miscellany/mtrenv/mhbox/athomecomps | 12 + .../mh-6.8.5/miscellany/mtrenv/mhbox/bombcomps | 52 + .../mh-6.8.5/miscellany/mtrenv/mhbox/components | 8 + .../mh-6.8.5/miscellany/mtrenv/mhbox/distcomps | 5 + .../mh-6.8.5/miscellany/mtrenv/mhbox/dp.debug | 10 + .../mh-6.8.5/miscellany/mtrenv/mhbox/fixcomps | 13 + .../mh-6.8.5/miscellany/mtrenv/mhbox/forwcomps | 4 + .../mh-6.8.5/miscellany/mtrenv/mhbox/mhl.format | 22 + .../mh-6.8.5/miscellany/mtrenv/mhbox/mhl.forward | 11 + .../mh-6.8.5/miscellany/mtrenv/mhbox/mhl.msgid | 1 + .../mh-6.8.5/miscellany/mtrenv/mhbox/mhl.rcvtty | 8 + .../mh-6.8.5/miscellany/mtrenv/mhbox/mhl.repl | 2 + .../mh-6.8.5/miscellany/mtrenv/mhbox/okcomps | 13 + .../mh-6.8.5/miscellany/mtrenv/mhbox/thxcomps | 13 + .../mh-6.8.5/miscellany/mtrenv/mhbox/workcomps | 6 + .../mh-6.8.5/miscellany/multi-media/READ-ME | 257 + .../miscellany/multi-media/SPARC/SOUND.diff | 99 + .../miscellany/multi-media/misc/RCS/rt2raw.c,v | 94 + .../mh-6.8.5/miscellany/multi-media/misc/READ-ME | 15 + .../mh-6.8.5/miscellany/multi-media/misc/mimeless | 19 + .../mh-6.8.5/miscellany/multi-media/misc/rt2raw.c | 55 + .../miscellany/multi-media/profiles/mhn_defaults | 17 + .../miscellany/multi-media/profiles/mtr.mh_profile | 62 + .../profiles/mtr.mhn_profile.openwindows | 4 + .../multi-media/profiles/mtr.mhn_profile.xterminal | 7 + .../mh-6.8.5/miscellany/netnews/ALSO-READ-ME | 28 + .../mh-6.8.5/miscellany/netnews/Mail/flupcomps | 8 + .../historical/mh-6.8.5/miscellany/netnews/READ-ME | 75 + docs/historical/mh-6.8.5/miscellany/netnews/bin/mh | 14 + .../mh-6.8.5/miscellany/netnews/bin/rnmail | 19 + .../mh-6.8.5/miscellany/netnews/followup | 2 + .../mh-6.8.5/miscellany/netnews/followup.sed | 7 + docs/historical/mh-6.8.5/miscellany/netnews/login | 11 + .../mh-6.8.5/miscellany/netnews/mh_profile | 1 + docs/historical/mh-6.8.5/miscellany/netnews/rninit | 7 + .../mh-6.8.5/miscellany/patch-2.0.12u8/ChangeLog | 274 + .../mh-6.8.5/miscellany/patch-2.0.12u8/Configure | 1475 + .../mh-6.8.5/miscellany/patch-2.0.12u8/EXTERN.h | 21 + .../mh-6.8.5/miscellany/patch-2.0.12u8/INTERN.h | 19 + .../mh-6.8.5/miscellany/patch-2.0.12u8/MANIFEST | 27 + .../mh-6.8.5/miscellany/patch-2.0.12u8/Makefile.SH | 117 + .../mh-6.8.5/miscellany/patch-2.0.12u8/README | 98 + .../miscellany/patch-2.0.12u8/backupfile.c | 338 + .../miscellany/patch-2.0.12u8/backupfile.h | 37 + .../mh-6.8.5/miscellany/patch-2.0.12u8/common.h | 196 + .../mh-6.8.5/miscellany/patch-2.0.12u8/config.H | 33 + .../mh-6.8.5/miscellany/patch-2.0.12u8/config.h.SH | 146 + .../mh-6.8.5/miscellany/patch-2.0.12u8/inp.c | 360 + .../mh-6.8.5/miscellany/patch-2.0.12u8/inp.h | 18 + .../mh-6.8.5/miscellany/patch-2.0.12u8/malloc.c | 467 + .../mh-6.8.5/miscellany/patch-2.0.12u8/patch.c | 923 + .../mh-6.8.5/miscellany/patch-2.0.12u8/patch.man | 552 + .../miscellany/patch-2.0.12u8/patchlevel.h | 1 + .../mh-6.8.5/miscellany/patch-2.0.12u8/pch.c | 1305 + .../mh-6.8.5/miscellany/patch-2.0.12u8/pch.h | 36 + .../mh-6.8.5/miscellany/patch-2.0.12u8/util.c | 450 + .../mh-6.8.5/miscellany/patch-2.0.12u8/util.h | 88 + .../mh-6.8.5/miscellany/patch-2.0.12u8/version.c | 25 + .../mh-6.8.5/miscellany/patch-2.0.12u8/version.h | 9 + .../historical/mh-6.8.5/miscellany/rcvtrip/READ-ME | 7 + .../mh-6.8.5/miscellany/rcvtrip/offtrip.sh | 12 + .../mh-6.8.5/miscellany/rcvtrip/ontrip.sh | 46 + .../mh-6.8.5/miscellany/rcvtrip/rcvtrip.sh | 40 + .../mh-6.8.5/miscellany/rcvtrip/tripcomps | 10 + .../historical/mh-6.8.5/miscellany/scripts/READ-ME | 16 + .../mh-6.8.5/miscellany/scripts/amhmail.sh | 151 + .../mh-6.8.5/miscellany/scripts/append.rf | 45 + .../mh-6.8.5/miscellany/scripts/append.sh | 18 + .../mh-6.8.5/miscellany/scripts/make_mailrc.doc | 21 + .../mh-6.8.5/miscellany/scripts/make_mailrc.sh | 22 + .../historical/mh-6.8.5/miscellany/sendmail/README | 8 + .../mh-6.8.5/miscellany/sendmail/spooler.c | 204 + docs/historical/mh-6.8.5/miscellany/sortf/README | 15 + docs/historical/mh-6.8.5/miscellany/sortf/sortf | 143 + docs/historical/mh-6.8.5/miscellany/sortf/sorts | 132 + docs/historical/mh-6.8.5/miscellany/sortf/sorts.1 | 82 + docs/historical/mh-6.8.5/miscellany/tools/7limit | 19 + docs/historical/mh-6.8.5/miscellany/tools/8limit | 19 + docs/historical/mh-6.8.5/miscellany/tools/CMP | 24 + docs/historical/mh-6.8.5/mts/Makefile | 47 + docs/historical/mh-6.8.5/mts/mh/Makefile | 68 + docs/historical/mh-6.8.5/mts/mh/RCS/hosts.c,v | 204 + docs/historical/mh-6.8.5/mts/mh/RMail.OkDests | 16 + docs/historical/mh-6.8.5/mts/mh/RMail.OkHosts | 16 + docs/historical/mh-6.8.5/mts/mh/hosts.c | 62 + docs/historical/mh-6.8.5/mts/mh/llib-lmhmts | 9 + docs/historical/mh-6.8.5/mts/mh/netmail.c | 140 + docs/historical/mh-6.8.5/mts/mh/uucp.c | 39 + docs/historical/mh-6.8.5/mts/mmdf/CP | 1 + docs/historical/mh-6.8.5/mts/mmdf/LN | 10 + docs/historical/mh-6.8.5/mts/mmdf/Makefile | 59 + docs/historical/mh-6.8.5/mts/mmdf/RCS/hosts.c,v | 132 + docs/historical/mh-6.8.5/mts/mmdf/hosts.c | 70 + docs/historical/mh-6.8.5/mts/mmdf/llib-lmmdf | 16 + docs/historical/mh-6.8.5/mts/sendmail/Makefile | 67 + .../historical/mh-6.8.5/mts/sendmail/RCS/hosts.c,v | 326 + .../historical/mh-6.8.5/mts/sendmail/RCS/smail.c,v | 2415 + .../historical/mh-6.8.5/mts/sendmail/RCS/smail.h,v | 297 + docs/historical/mh-6.8.5/mts/sendmail/bboardsMH.m4 | 15 + docs/historical/mh-6.8.5/mts/sendmail/hosts.c | 156 + .../mh-6.8.5/mts/sendmail/llib-lsendmail | 11 + docs/historical/mh-6.8.5/mts/sendmail/popMH.m4 | 15 + docs/historical/mh-6.8.5/mts/sendmail/smail.c | 1563 + docs/historical/mh-6.8.5/mts/sendmail/smail.h | 242 + docs/historical/mh-6.8.5/papers/Makefile | 29 + docs/historical/mh-6.8.5/papers/bboards/Makefile | 55 + .../historical/mh-6.8.5/papers/bboards/bboards.tex | 45 + docs/historical/mh-6.8.5/papers/bboards/refs.tex | 26 + docs/historical/mh-6.8.5/papers/bboards/text.tex | 537 + docs/historical/mh-6.8.5/papers/bboards/version | 1 + docs/historical/mh-6.8.5/papers/bboards/version.sh | 9 + .../historical/mh-6.8.5/papers/bboards/version.tex | 5 + docs/historical/mh-6.8.5/papers/beginners/Makefile | 44 + .../mh-6.8.5/papers/beginners/RCS/beginners.tex,v | 655 + .../mh-6.8.5/papers/beginners/beginners.aux | 18 + .../mh-6.8.5/papers/beginners/beginners.tex | 617 + docs/historical/mh-6.8.5/papers/changes/MHCHANGES | 1539 + docs/historical/mh-6.8.5/papers/changes/Makefile | 46 + .../mh-6.8.5/papers/changes/RCS/Makefile,v | 127 + .../mh-6.8.5/papers/changes/RCS/mh-changes.ms,v | 2435 + .../mh-6.8.5/papers/changes/RCS/mh6.tex,v | 1624 + .../mh-6.8.5/papers/changes/mh-changes.ms | 1156 + .../mh-6.8.5/papers/doclib/RCS/READ-ME,v | 82 + .../mh-6.8.5/papers/doclib/RCS/diss.sty,v | 2273 + docs/historical/mh-6.8.5/papers/doclib/READ-ME | 39 + docs/historical/mh-6.8.5/papers/doclib/amstex.tex | 889 + docs/historical/mh-6.8.5/papers/doclib/article.tex | 45 + docs/historical/mh-6.8.5/papers/doclib/dcustom.tex | 198 + docs/historical/mh-6.8.5/papers/doclib/diss.sty | 2164 + docs/historical/mh-6.8.5/papers/doclib/sfwmac.tex | 120 + .../mh-6.8.5/papers/doclib/trademark.tex | 53 + docs/historical/mh-6.8.5/papers/mh4/MHCHANGES | 347 + docs/historical/mh-6.8.5/papers/mh4/Makefile | 56 + docs/historical/mh-6.8.5/papers/mh4/mh4.tex | 58 + docs/historical/mh-6.8.5/papers/mh4/refs.tex | 16 + docs/historical/mh-6.8.5/papers/mh4/text.tex | 723 + docs/historical/mh-6.8.5/papers/mh4/version | 1 + docs/historical/mh-6.8.5/papers/mh4/version.sh | 9 + docs/historical/mh-6.8.5/papers/mh4/version.tex | 5 + docs/historical/mh-6.8.5/papers/mh4mm/Makefile | 44 + docs/historical/mh-6.8.5/papers/mh4mm/mh4mm.aux | 28 + docs/historical/mh-6.8.5/papers/mh4mm/mh4mm.tex | 660 + docs/historical/mh-6.8.5/papers/mh5/MHCHANGES | 1462 + docs/historical/mh-6.8.5/papers/mh5/Makefile | 56 + docs/historical/mh-6.8.5/papers/mh5/diagram1.tex | 12 + docs/historical/mh-6.8.5/papers/mh5/diagram2.tex | 10 + docs/historical/mh-6.8.5/papers/mh5/mh5.tex | 41 + docs/historical/mh-6.8.5/papers/mh5/refs.tex | 35 + docs/historical/mh-6.8.5/papers/mh5/text.tex | 318 + docs/historical/mh-6.8.5/papers/mh5/version | 1 + docs/historical/mh-6.8.5/papers/mh5/version.sh | 9 + docs/historical/mh-6.8.5/papers/mh5/version.tex | 5 + docs/historical/mh-6.8.5/papers/mh6.5/MHCHANGES | 1052 + docs/historical/mh-6.8.5/papers/mh6.5/Makefile | 57 + docs/historical/mh-6.8.5/papers/mh6.5/READ-ME | 7 + docs/historical/mh-6.8.5/papers/mh6.5/bcustom.bib | 22 + docs/historical/mh-6.8.5/papers/mh6.5/lcustom.tex | 249 + docs/historical/mh-6.8.5/papers/mh6.5/mh6.aux | 5 + docs/historical/mh-6.8.5/papers/mh6.5/mh6.bbl | 10 + docs/historical/mh-6.8.5/papers/mh6.5/mh6.major | 1 + docs/historical/mh-6.8.5/papers/mh6.5/mh6.minor | 1 + docs/historical/mh-6.8.5/papers/mh6.5/mh6.tex | 617 + docs/historical/mh-6.8.5/papers/mh6.5/mh6.vrsn | 6 + docs/historical/mh-6.8.5/papers/mh6.5/sfwdoc.bib | 237 + docs/historical/mh-6.8.5/papers/mh6.5/sfwmac.sty | 66 + .../historical/mh-6.8.5/papers/mh6.5/trademark.tex | 59 + docs/historical/mh-6.8.5/papers/mh6.5/version.sh | 19 + docs/historical/mh-6.8.5/papers/mh6/MHCHANGES | 1773 + docs/historical/mh-6.8.5/papers/mh6/Makefile | 53 + docs/historical/mh-6.8.5/papers/mh6/READ-ME | 7 + docs/historical/mh-6.8.5/papers/mh6/lcustom.tex | 121 + docs/historical/mh-6.8.5/papers/mh6/mh6.aux | 4 + docs/historical/mh-6.8.5/papers/mh6/mh6.bbl | 5 + docs/historical/mh-6.8.5/papers/mh6/mh6.tex | 558 + docs/historical/mh-6.8.5/papers/mh6/sfwmac.sty | 88 + docs/historical/mh-6.8.5/papers/mh6/trademark.tex | 54 + docs/historical/mh-6.8.5/papers/mh6/version | 1 + docs/historical/mh-6.8.5/papers/mh6/version.sh | 9 + docs/historical/mh-6.8.5/papers/mh6/version.tex | 5 + .../mh-6.8.5/papers/multifarious/Makefile | 57 + .../mh-6.8.5/papers/multifarious/appendixA.tex | 230 + .../mh-6.8.5/papers/multifarious/diagram2.tex | 28 + .../mh-6.8.5/papers/multifarious/diagram3.tex | 13 + .../mh-6.8.5/papers/multifarious/figure0.pic | 31 + .../mh-6.8.5/papers/multifarious/figure0.tex | 110 + .../mh-6.8.5/papers/multifarious/figure1.pic | 41 + .../mh-6.8.5/papers/multifarious/figure1.tex | 193 + .../mh-6.8.5/papers/multifarious/multifarious.tex | 105 + .../mh-6.8.5/papers/multifarious/refs.tex | 250 + .../mh-6.8.5/papers/multifarious/text.tex | 1115 + .../mh-6.8.5/papers/multifarious/version | 1 + .../mh-6.8.5/papers/multifarious/version.sh | 9 + .../mh-6.8.5/papers/multifarious/version.tex | 5 + docs/historical/mh-6.8.5/papers/mznet/Makefile | 48 + docs/historical/mh-6.8.5/papers/mznet/READ-ME | 18 + docs/historical/mh-6.8.5/papers/mznet/figure1.pic | 44 + docs/historical/mh-6.8.5/papers/mznet/figure1.tex | 182 + docs/historical/mh-6.8.5/papers/mznet/figure2.pic | 41 + docs/historical/mh-6.8.5/papers/mznet/figure2.tex | 182 + docs/historical/mh-6.8.5/papers/mznet/mznet.aux | 35 + docs/historical/mh-6.8.5/papers/mznet/mznet.bbl | 52 + docs/historical/mh-6.8.5/papers/mznet/mznet.tex | 583 + docs/historical/mh-6.8.5/papers/realwork/Makefile | 56 + .../mh-6.8.5/papers/realwork/appendixA.tex | 230 + .../mh-6.8.5/papers/realwork/appendixB.tex | 87 + .../mh-6.8.5/papers/realwork/diagram1.tex | 45 + .../mh-6.8.5/papers/realwork/diagram10.tex | 14 + .../mh-6.8.5/papers/realwork/diagram2.tex | 12 + .../mh-6.8.5/papers/realwork/diagram3.tex | 13 + .../mh-6.8.5/papers/realwork/diagram4.tex | 22 + .../mh-6.8.5/papers/realwork/diagram5.tex | 48 + .../mh-6.8.5/papers/realwork/diagram6.tex | 13 + .../mh-6.8.5/papers/realwork/diagram7.tex | 48 + .../mh-6.8.5/papers/realwork/diagram8.tex | 14 + .../mh-6.8.5/papers/realwork/diagram9.tex | 15 + .../mh-6.8.5/papers/realwork/realwork.ps | 3584 ++ .../mh-6.8.5/papers/realwork/realwork.tex | 84 + docs/historical/mh-6.8.5/papers/realwork/refs.tex | 250 + docs/historical/mh-6.8.5/papers/realwork/text.tex | 1121 + docs/historical/mh-6.8.5/papers/realwork/version | 1 + .../historical/mh-6.8.5/papers/realwork/version.sh | 9 + .../mh-6.8.5/papers/realwork/version.tex | 5 + docs/historical/mh-6.8.5/papers/trusted/Makefile | 61 + .../mh-6.8.5/papers/trusted/appendixA.tex | 77 + .../mh-6.8.5/papers/trusted/appendixB.tex | 93 + .../mh-6.8.5/papers/trusted/appendixC.tex | 151 + .../mh-6.8.5/papers/trusted/diagramA1-1.tex | 29 + .../mh-6.8.5/papers/trusted/diagramA1-2.tex | 12 + .../mh-6.8.5/papers/trusted/diagramA1-3.tex | 25 + .../mh-6.8.5/papers/trusted/diagramA1-4.tex | 14 + .../mh-6.8.5/papers/trusted/diagramB1-1.tex | 28 + .../mh-6.8.5/papers/trusted/diagramB1-2.tex | 34 + .../historical/mh-6.8.5/papers/trusted/figure1.pic | 31 + .../historical/mh-6.8.5/papers/trusted/figure1.tex | 110 + .../historical/mh-6.8.5/papers/trusted/figure2.pic | 35 + .../historical/mh-6.8.5/papers/trusted/figure2.tex | 126 + .../historical/mh-6.8.5/papers/trusted/figure3.pic | 32 + .../historical/mh-6.8.5/papers/trusted/figure3.tex | 164 + docs/historical/mh-6.8.5/papers/trusted/refs.tex | 250 + docs/historical/mh-6.8.5/papers/trusted/table4.tex | 55 + docs/historical/mh-6.8.5/papers/trusted/text.tex | 1077 + .../historical/mh-6.8.5/papers/trusted/trusted.tex | 98 + docs/historical/mh-6.8.5/papers/trusted/version | 1 + docs/historical/mh-6.8.5/papers/trusted/version.sh | 9 + .../historical/mh-6.8.5/papers/trusted/version.tex | 5 + docs/historical/mh-6.8.5/papers/tutorial/Makefile | 54 + docs/historical/mh-6.8.5/papers/tutorial/refs.tex | 46 + docs/historical/mh-6.8.5/papers/tutorial/text.tex | 803 + .../mh-6.8.5/papers/tutorial/tutorial.tex | 46 + docs/historical/mh-6.8.5/papers/tutorial/version | 1 + .../historical/mh-6.8.5/papers/tutorial/version.sh | 9 + .../mh-6.8.5/papers/tutorial/version.tex | 5 + docs/historical/mh-6.8.5/sbr/Makefile | 423 + docs/historical/mh-6.8.5/sbr/RCS/addrsbr.c,v | 1432 + docs/historical/mh-6.8.5/sbr/RCS/advertise.c,v | 188 + docs/historical/mh-6.8.5/sbr/RCS/brkstring.c,v | 123 + docs/historical/mh-6.8.5/sbr/RCS/closefds.c,v | 91 + docs/historical/mh-6.8.5/sbr/RCS/copy.c,v | 51 + docs/historical/mh-6.8.5/sbr/RCS/cpydgst.c,v | 143 + docs/historical/mh-6.8.5/sbr/RCS/discard.c,v | 199 + docs/historical/mh-6.8.5/sbr/RCS/fdcompare.c,v | 120 + docs/historical/mh-6.8.5/sbr/RCS/fmtcompile.c,v | 1029 + docs/historical/mh-6.8.5/sbr/RCS/formataddr.c,v | 203 + docs/historical/mh-6.8.5/sbr/RCS/formatdef.c,v | 65 + docs/historical/mh-6.8.5/sbr/RCS/formatsbr.c,v | 1520 + docs/historical/mh-6.8.5/sbr/RCS/gans.c,v | 88 + docs/historical/mh-6.8.5/sbr/RCS/getans.c,v | 264 + docs/historical/mh-6.8.5/sbr/RCS/help.c,v | 130 + docs/historical/mh-6.8.5/sbr/RCS/m_atoi.c,v | 71 + docs/historical/mh-6.8.5/sbr/RCS/m_convert.c,v | 583 + docs/historical/mh-6.8.5/sbr/RCS/m_draft.c,v | 114 + docs/historical/mh-6.8.5/sbr/RCS/m_fmsg.c,v | 82 + docs/historical/mh-6.8.5/sbr/RCS/m_foil.c,v | 84 + docs/historical/mh-6.8.5/sbr/RCS/m_getdefs.c,v | 436 + docs/historical/mh-6.8.5/sbr/RCS/m_getfld.c,v | 1185 + docs/historical/mh-6.8.5/sbr/RCS/m_gmsg.c,v | 619 + docs/historical/mh-6.8.5/sbr/RCS/m_maildir.c,v | 198 + docs/historical/mh-6.8.5/sbr/RCS/m_msgdef.c,v | 66 + docs/historical/mh-6.8.5/sbr/RCS/m_readefs.c,v | 145 + docs/historical/mh-6.8.5/sbr/RCS/m_remsg.c,v | 232 + docs/historical/mh-6.8.5/sbr/RCS/m_seq.c,v | 250 + docs/historical/mh-6.8.5/sbr/RCS/m_seqnew.c,v | 303 + docs/historical/mh-6.8.5/sbr/RCS/m_sync.c,v | 266 + docs/historical/mh-6.8.5/sbr/RCS/m_update.c,v | 231 + docs/historical/mh-6.8.5/sbr/RCS/makedir.c,v | 349 + docs/historical/mh-6.8.5/sbr/RCS/path.c,v | 282 + docs/historical/mh-6.8.5/sbr/RCS/pidstatus.c,v | 174 + docs/historical/mh-6.8.5/sbr/RCS/pidwait.c,v | 273 + docs/historical/mh-6.8.5/sbr/RCS/push.c,v | 97 + docs/historical/mh-6.8.5/sbr/RCS/putenv.c,v | 179 + docs/historical/mh-6.8.5/sbr/RCS/pwd.c,v | 286 + docs/historical/mh-6.8.5/sbr/RCS/refile.c,v | 86 + docs/historical/mh-6.8.5/sbr/RCS/remdir.c,v | 152 + docs/historical/mh-6.8.5/sbr/RCS/ruserpass.c,v | 240 + docs/historical/mh-6.8.5/sbr/RCS/smatch.c,v | 139 + docs/historical/mh-6.8.5/sbr/RCS/sprintb.c,v | 98 + docs/historical/mh-6.8.5/sbr/RCS/strindex.c,v | 104 + docs/historical/mh-6.8.5/sbr/RCS/trimcpy.c,v | 87 + docs/historical/mh-6.8.5/sbr/RCS/uleq.c,v | 167 + docs/historical/mh-6.8.5/sbr/RCS/uprf.c,v | 181 + docs/historical/mh-6.8.5/sbr/RCS/version,v | 26 + docs/historical/mh-6.8.5/sbr/RCS/version.local,v | 26 + docs/historical/mh-6.8.5/sbr/RCS/version.major,v | 26 + docs/historical/mh-6.8.5/sbr/RCS/version.minor,v | 26 + docs/historical/mh-6.8.5/sbr/RCS/version.sh,v | 148 + docs/historical/mh-6.8.5/sbr/RCS/vfgets.c,v | 129 + docs/historical/mh-6.8.5/sbr/add.c | 24 + docs/historical/mh-6.8.5/sbr/addrsbr.c | 842 + docs/historical/mh-6.8.5/sbr/adios.c | 20 + docs/historical/mh-6.8.5/sbr/admonish.c | 19 + docs/historical/mh-6.8.5/sbr/advertise.c | 104 + docs/historical/mh-6.8.5/sbr/advise.c | 19 + docs/historical/mh-6.8.5/sbr/ambigsw.c | 13 + docs/historical/mh-6.8.5/sbr/atooi.c | 18 + docs/historical/mh-6.8.5/sbr/brkstring.c | 52 + docs/historical/mh-6.8.5/sbr/closefds.c | 26 + docs/historical/mh-6.8.5/sbr/concat.c | 35 + docs/historical/mh-6.8.5/sbr/copy.c | 12 + docs/historical/mh-6.8.5/sbr/copyip.c | 13 + docs/historical/mh-6.8.5/sbr/cpydata.c | 22 + docs/historical/mh-6.8.5/sbr/cpydgst.c | 73 + docs/historical/mh-6.8.5/sbr/discard.c | 55 + docs/historical/mh-6.8.5/sbr/done.c | 10 + docs/historical/mh-6.8.5/sbr/fdcompare.c | 46 + docs/historical/mh-6.8.5/sbr/fmtcompile.c | 621 + docs/historical/mh-6.8.5/sbr/formataddr.c | 112 + docs/historical/mh-6.8.5/sbr/formatdef.c | 7 + docs/historical/mh-6.8.5/sbr/formatsbr.c | 897 + docs/historical/mh-6.8.5/sbr/gans.c | 49 + docs/historical/mh-6.8.5/sbr/getans.c | 94 + docs/historical/mh-6.8.5/sbr/getanswer.c | 16 + docs/historical/mh-6.8.5/sbr/getcpy.c | 23 + docs/historical/mh-6.8.5/sbr/help.c | 55 + docs/historical/mh-6.8.5/sbr/llib-lmh | 125 + docs/historical/mh-6.8.5/sbr/m_atoi.c | 32 + docs/historical/mh-6.8.5/sbr/m_backup.c | 20 + docs/historical/mh-6.8.5/sbr/m_convert.c | 366 + docs/historical/mh-6.8.5/sbr/m_delete.c | 32 + docs/historical/mh-6.8.5/sbr/m_draft.c | 74 + docs/historical/mh-6.8.5/sbr/m_find.c | 18 + docs/historical/mh-6.8.5/sbr/m_fmsg.c | 26 + docs/historical/mh-6.8.5/sbr/m_foil.c | 27 + docs/historical/mh-6.8.5/sbr/m_getdefs.c | 249 + docs/historical/mh-6.8.5/sbr/m_getfld.c | 710 + docs/historical/mh-6.8.5/sbr/m_getfolder.c | 14 + docs/historical/mh-6.8.5/sbr/m_gmprot.c | 11 + docs/historical/mh-6.8.5/sbr/m_gmsg.c | 334 + docs/historical/mh-6.8.5/sbr/m_maildir.c | 93 + docs/historical/mh-6.8.5/sbr/m_msgdef.c | 25 + docs/historical/mh-6.8.5/sbr/m_name.c | 17 + docs/historical/mh-6.8.5/sbr/m_readefs.c | 108 + docs/historical/mh-6.8.5/sbr/m_remsg.c | 59 + docs/historical/mh-6.8.5/sbr/m_replace.c | 53 + docs/historical/mh-6.8.5/sbr/m_scratch.c | 24 + docs/historical/mh-6.8.5/sbr/m_seq.c | 58 + docs/historical/mh-6.8.5/sbr/m_seqbits.c | 21 + docs/historical/mh-6.8.5/sbr/m_seqflag.c | 19 + docs/historical/mh-6.8.5/sbr/m_seqnew.c | 179 + docs/historical/mh-6.8.5/sbr/m_setcur.c | 26 + docs/historical/mh-6.8.5/sbr/m_setseq.c | 32 + docs/historical/mh-6.8.5/sbr/m_setvis.c | 39 + docs/historical/mh-6.8.5/sbr/m_sync.c | 101 + docs/historical/mh-6.8.5/sbr/m_tmpfil.c | 16 + docs/historical/mh-6.8.5/sbr/m_update.c | 95 + docs/historical/mh-6.8.5/sbr/makedir.c | 98 + docs/historical/mh-6.8.5/sbr/path.c | 165 + docs/historical/mh-6.8.5/sbr/peekc.c | 16 + docs/historical/mh-6.8.5/sbr/pidstatus.c | 94 + docs/historical/mh-6.8.5/sbr/pidwait.c | 56 + docs/historical/mh-6.8.5/sbr/printsw.c | 51 + docs/historical/mh-6.8.5/sbr/push.c | 41 + docs/historical/mh-6.8.5/sbr/putenv.c | 75 + docs/historical/mh-6.8.5/sbr/pwd.c | 126 + docs/historical/mh-6.8.5/sbr/r1bindex.c | 16 + docs/historical/mh-6.8.5/sbr/refile.c | 46 + docs/historical/mh-6.8.5/sbr/remdir.c | 46 + docs/historical/mh-6.8.5/sbr/ruserpass.c | 217 + docs/historical/mh-6.8.5/sbr/showfile.c | 52 + docs/historical/mh-6.8.5/sbr/smatch.c | 47 + docs/historical/mh-6.8.5/sbr/sprintb.c | 41 + docs/historical/mh-6.8.5/sbr/ssequal.c | 17 + docs/historical/mh-6.8.5/sbr/strindex.c | 20 + docs/historical/mh-6.8.5/sbr/trimcpy.c | 29 + docs/historical/mh-6.8.5/sbr/uleq.c | 39 + docs/historical/mh-6.8.5/sbr/uprf.c | 37 + docs/historical/mh-6.8.5/sbr/vfgets.c | 72 + docs/historical/mh-6.8.5/shared/Makefile | 25 + docs/historical/mh-6.8.5/support/Makefile | 55 + docs/historical/mh-6.8.5/support/bboards/BBoards | 1 + docs/historical/mh-6.8.5/support/bboards/Example | 80 + .../mh-6.8.5/support/bboards/MakeBBoards | 50 + docs/historical/mh-6.8.5/support/bboards/Makefile | 276 + .../mh-6.8.5/support/bboards/RCS/bbaka.c,v | 242 + .../mh-6.8.5/support/bboards/RCS/bbexp.c,v | 348 + .../mh-6.8.5/support/bboards/RCS/bbtar.c,v | 187 + docs/historical/mh-6.8.5/support/bboards/bbaka.c | 122 + docs/historical/mh-6.8.5/support/bboards/bbexp.c | 239 + .../mh-6.8.5/support/bboards/bboards.daily | 3 + .../mh-6.8.5/support/bboards/bboards.weekly | 3 + docs/historical/mh-6.8.5/support/bboards/bbtar.c | 84 + docs/historical/mh-6.8.5/support/bboards/crontab | 3 + docs/historical/mh-6.8.5/support/bboards/cshrc | 23 + .../historical/mh-6.8.5/support/bboards/mh_profile | 1 + .../mh-6.8.5/support/bboards/mmdfI/Makefile.add | 64 + .../mh-6.8.5/support/bboards/mmdfI/READ-ME | 2 + .../mh-6.8.5/support/bboards/mmdfI/bboards.names | 2 + .../bboards/mmdfI/bboards/RCS/bb_wtmail.c,v | 691 + .../mh-6.8.5/support/bboards/mmdfI/bboards/READ-ME | 2 + .../support/bboards/mmdfI/bboards/bb_wtmail.c | 623 + .../support/bboards/mmdfI/bboards/bboards.h | 67 + .../support/bboards/mmdfI/bboards/ch_bboards.c | 141 + .../support/bboards/mmdfI/bboards/getbbent.c | 718 + .../support/bboards/mmdfI/bboards/qu2bb_send.c | 118 + .../mh-6.8.5/support/bboards/mmdfI/conf_chan.add | 31 + .../mh-6.8.5/support/bboards/mmdfII/READ-ME | 37 + .../support/bboards/mmdfII/bboards/Makefile.real | 64 + .../bboards/mmdfII/bboards/RCS/bb_wtmail.c,v | 848 + .../support/bboards/mmdfII/bboards/RCS/dropsbr.c,v | 804 + .../support/bboards/mmdfII/bboards/RCS/lock.c,v | 481 + .../support/bboards/mmdfII/bboards/READ-ME | 37 + .../support/bboards/mmdfII/bboards/bb_wtmail.c | 777 + .../support/bboards/mmdfII/bboards/bboards.h | 67 + .../support/bboards/mmdfII/bboards/ch_bboards.c | 177 + .../support/bboards/mmdfII/bboards/dropsbr.c | 699 + .../support/bboards/mmdfII/bboards/dropsbr.h | 39 + .../mh-6.8.5/support/bboards/mmdfII/bboards/gen | 1 + .../support/bboards/mmdfII/bboards/getbbent.c | 718 + .../mh-6.8.5/support/bboards/mmdfII/bboards/lock.c | 408 + .../support/bboards/mmdfII/bboards/mmdfonly.c | 16 + .../support/bboards/mmdfII/bboards/mmdfonly.h | 39 + .../mh-6.8.5/support/bboards/mmdfII/bboards/mts.h | 110 + .../support/bboards/mmdfII/bboards/qu2bb_send.c | 157 + .../support/bboards/mmdfII/bboards/r1bindex.c | 16 + .../support/bboards/mmdfII/bboards/strindex.c | 15 + .../support/bboards/mmdfII/bboards/strings.h | 37 + .../mh-6.8.5/support/bboards/mmdfII/bboards/uprf.c | 17 + .../mh-6.8.5/support/general/BBoardAliases | 2 + .../mh-6.8.5/support/general/MailAliases | 21 + docs/historical/mh-6.8.5/support/general/Makefile | 322 + .../mh-6.8.5/support/general/RCS/bootmhn.findit,v | 68 + .../mh-6.8.5/support/general/RCS/bootmhn.sh,v | 369 + .../mh-6.8.5/support/general/RCS/mhl.headers,v | 35 + .../mh-6.8.5/support/general/RCS/packmbox.sh,v | 402 + .../mh-6.8.5/support/general/RCS/pgped.sh,v | 75 + .../mh-6.8.5/support/general/RCS/pgped.tcl,v | 122 + .../mh-6.8.5/support/general/RCS/pgpshow.sh,v | 128 + .../mh-6.8.5/support/general/RCS/replcomps,v | 82 + .../mh-6.8.5/support/general/RCS/scan.default,v | 80 + .../mh-6.8.5/support/general/RCS/scan.mailx,v | 95 + .../mh-6.8.5/support/general/RCS/scan.size,v | 92 + .../mh-6.8.5/support/general/RCS/scan.time,v | 93 + .../mh-6.8.5/support/general/RCS/scan.timely,v | 102 + .../mh-6.8.5/support/general/RCS/viamail.sh,v | 141 + .../mh-6.8.5/support/general/bootmhn.findit | 26 + .../historical/mh-6.8.5/support/general/bootmhn.sh | 181 + .../historical/mh-6.8.5/support/general/components | 4 + .../mh-6.8.5/support/general/digestcomps | 9 + docs/historical/mh-6.8.5/support/general/distcomps | 2 + docs/historical/mh-6.8.5/support/general/forwcomps | 4 + docs/historical/mh-6.8.5/support/general/mhl.body | 2 + .../historical/mh-6.8.5/support/general/mhl.digest | 7 + .../historical/mh-6.8.5/support/general/mhl.format | 14 + .../mh-6.8.5/support/general/mhl.forward | 9 + .../mh-6.8.5/support/general/mhl.headers | 12 + .../mh-6.8.5/support/general/packmbox.sh | 40 + docs/historical/mh-6.8.5/support/general/pgped.sh | 34 + docs/historical/mh-6.8.5/support/general/pgped.tcl | 80 + .../historical/mh-6.8.5/support/general/pgpshow.sh | 52 + .../mh-6.8.5/support/general/rcvdistcomps | 3 + docs/historical/mh-6.8.5/support/general/replcomps | 10 + .../mh-6.8.5/support/general/scan.default | 7 + .../historical/mh-6.8.5/support/general/scan.mailx | 8 + docs/historical/mh-6.8.5/support/general/scan.size | 5 + docs/historical/mh-6.8.5/support/general/scan.time | 6 + .../mh-6.8.5/support/general/scan.timely | 9 + .../historical/mh-6.8.5/support/general/viamail.sh | 34 + docs/historical/mh-6.8.5/support/pop/Makefile | 264 + .../mh-6.8.5/support/pop/RCS/pop-more.txt,v | 678 + .../historical/mh-6.8.5/support/pop/RCS/popaka.c,v | 124 + .../mh-6.8.5/support/pop/RCS/popauth.c,v | 417 + .../mh-6.8.5/support/pop/RCS/popauth.h,v | 31 + docs/historical/mh-6.8.5/support/pop/RCS/popd.c,v | 887 + .../historical/mh-6.8.5/support/pop/RCS/popser.c,v | 3482 ++ .../historical/mh-6.8.5/support/pop/RCS/popwrd.c,v | 345 + .../historical/mh-6.8.5/support/pop/RCS/syslog.c,v | 341 + .../historical/mh-6.8.5/support/pop/mmdfII/READ-ME | 22 + .../mh-6.8.5/support/pop/mmdfII/pop/Makefile.real | 64 + .../support/pop/mmdfII/pop/RCS/dropsbr.c,v | 804 + .../mh-6.8.5/support/pop/mmdfII/pop/RCS/lock.c,v | 450 + .../support/pop/mmdfII/pop/RCS/po_wtmail.c,v | 848 + .../mh-6.8.5/support/pop/mmdfII/pop/READ-ME | 22 + .../mh-6.8.5/support/pop/mmdfII/pop/bboards.h | 67 + .../mh-6.8.5/support/pop/mmdfII/pop/ch_pop.c | 177 + .../mh-6.8.5/support/pop/mmdfII/pop/dropsbr.c | 699 + .../mh-6.8.5/support/pop/mmdfII/pop/dropsbr.h | 39 + .../historical/mh-6.8.5/support/pop/mmdfII/pop/gen | 1 + .../mh-6.8.5/support/pop/mmdfII/pop/getbbent.c | 718 + .../mh-6.8.5/support/pop/mmdfII/pop/lock.c | 503 + .../mh-6.8.5/support/pop/mmdfII/pop/mmdfonly.c | 16 + .../mh-6.8.5/support/pop/mmdfII/pop/mmdfonly.h | 39 + .../mh-6.8.5/support/pop/mmdfII/pop/mts.h | 110 + .../mh-6.8.5/support/pop/mmdfII/pop/po_wtmail.c | 777 + .../mh-6.8.5/support/pop/mmdfII/pop/qu2po_send.c | 157 + .../mh-6.8.5/support/pop/mmdfII/pop/r1bindex.c | 16 + .../mh-6.8.5/support/pop/mmdfII/pop/strindex.c | 15 + .../mh-6.8.5/support/pop/mmdfII/pop/strings.h | 37 + .../mh-6.8.5/support/pop/mmdfII/pop/uprf.c | 17 + docs/historical/mh-6.8.5/support/pop/pop-more.txt | 590 + docs/historical/mh-6.8.5/support/pop/pop.txt | 762 + docs/historical/mh-6.8.5/support/pop/popaka.c | 40 + docs/historical/mh-6.8.5/support/pop/popauth.c | 251 + docs/historical/mh-6.8.5/support/pop/popauth.h | 8 + docs/historical/mh-6.8.5/support/pop/popbb.txt | 519 + docs/historical/mh-6.8.5/support/pop/popd.c | 490 + docs/historical/mh-6.8.5/support/pop/popser.c | 2350 + docs/historical/mh-6.8.5/support/pop/popwrd.c | 218 + docs/historical/mh-6.8.5/support/pop/rfc1081.txt | 898 + docs/historical/mh-6.8.5/support/pop/rfc1082.txt | 618 + docs/historical/mh-6.8.5/support/pop/syslog.c | 166 + docs/historical/mh-6.8.5/support/pop/syslog.h | 51 + docs/historical/mh-6.8.5/uip/Makefile | 1721 + docs/historical/mh-6.8.5/uip/RCS/ali.c,v | 442 + docs/historical/mh-6.8.5/uip/RCS/aliasbr.c,v | 970 + docs/historical/mh-6.8.5/uip/RCS/anno.c,v | 375 + docs/historical/mh-6.8.5/uip/RCS/annosbr.c,v | 305 + docs/historical/mh-6.8.5/uip/RCS/ap.c,v | 345 + docs/historical/mh-6.8.5/uip/RCS/bbc.c,v | 1662 + docs/historical/mh-6.8.5/uip/RCS/bbl.c,v | 701 + docs/historical/mh-6.8.5/uip/RCS/burst.c,v | 562 + docs/historical/mh-6.8.5/uip/RCS/comp.c,v | 447 + docs/historical/mh-6.8.5/uip/RCS/conflict.c,v | 786 + docs/historical/mh-6.8.5/uip/RCS/dist.c,v | 422 + docs/historical/mh-6.8.5/uip/RCS/distsbr.c,v | 328 + docs/historical/mh-6.8.5/uip/RCS/dp.c,v | 288 + docs/historical/mh-6.8.5/uip/RCS/dropsbr.c,v | 1234 + docs/historical/mh-6.8.5/uip/RCS/fmtdump.c,v | 768 + docs/historical/mh-6.8.5/uip/RCS/folder.c,v | 1094 + docs/historical/mh-6.8.5/uip/RCS/forw.c,v | 1070 + docs/historical/mh-6.8.5/uip/RCS/ftpsbr.c,v | 1060 + docs/historical/mh-6.8.5/uip/RCS/inc.c,v | 1697 + docs/historical/mh-6.8.5/uip/RCS/install-mh.c,v | 356 + docs/historical/mh-6.8.5/uip/RCS/kclient.c,v | 445 + docs/historical/mh-6.8.5/uip/RCS/mark.c,v | 368 + docs/historical/mh-6.8.5/uip/RCS/md5.c,v | 730 + docs/historical/mh-6.8.5/uip/RCS/mhl.c,v | 90 + docs/historical/mh-6.8.5/uip/RCS/mhlsbr.c,v | 2527 + docs/historical/mh-6.8.5/uip/RCS/mhmail.c,v | 424 + docs/historical/mh-6.8.5/uip/RCS/mhn.c,v |10461 ++++ docs/historical/mh-6.8.5/uip/RCS/mhparam.c,v | 356 + docs/historical/mh-6.8.5/uip/RCS/mhpath.c,v | 195 + docs/historical/mh-6.8.5/uip/RCS/msgchk.c,v | 827 + docs/historical/mh-6.8.5/uip/RCS/msh.c,v | 3273 + docs/historical/mh-6.8.5/uip/RCS/mshcmds.c,v | 4433 ++ docs/historical/mh-6.8.5/uip/RCS/packf.c,v | 248 + docs/historical/mh-6.8.5/uip/RCS/pick.c,v | 375 + docs/historical/mh-6.8.5/uip/RCS/picksbr.c,v | 1120 + docs/historical/mh-6.8.5/uip/RCS/popi.c,v | 893 + docs/historical/mh-6.8.5/uip/RCS/popsbr.c,v | 1284 + docs/historical/mh-6.8.5/uip/RCS/post.c,v | 4246 ++ docs/historical/mh-6.8.5/uip/RCS/prompter.c,v | 739 + docs/historical/mh-6.8.5/uip/RCS/pshsbr.c,v | 708 + docs/historical/mh-6.8.5/uip/RCS/rcvdist.c,v | 514 + docs/historical/mh-6.8.5/uip/RCS/rcvpack.c,v | 189 + docs/historical/mh-6.8.5/uip/RCS/rcvstore.c,v | 414 + docs/historical/mh-6.8.5/uip/RCS/rcvtty.c,v | 642 + docs/historical/mh-6.8.5/uip/RCS/refile.c,v | 672 + docs/historical/mh-6.8.5/uip/RCS/repl.c,v | 707 + docs/historical/mh-6.8.5/uip/RCS/replsbr.c,v | 851 + docs/historical/mh-6.8.5/uip/RCS/rmail.c,v | 708 + docs/historical/mh-6.8.5/uip/RCS/rmf.c,v | 440 + docs/historical/mh-6.8.5/uip/RCS/rmm.c,v | 246 + docs/historical/mh-6.8.5/uip/RCS/sbboards.c,v | 832 + docs/historical/mh-6.8.5/uip/RCS/scan.c,v | 716 + docs/historical/mh-6.8.5/uip/RCS/scansbr.c,v | 747 + docs/historical/mh-6.8.5/uip/RCS/send.c,v | 936 + docs/historical/mh-6.8.5/uip/RCS/sendmail.c,v | 852 + docs/historical/mh-6.8.5/uip/RCS/sendsbr.c,v | 961 + docs/historical/mh-6.8.5/uip/RCS/show.c,v | 855 + docs/historical/mh-6.8.5/uip/RCS/slocal.c,v | 1998 + docs/historical/mh-6.8.5/uip/RCS/sortm.c,v | 1399 + docs/historical/mh-6.8.5/uip/RCS/spop.c,v | 802 + docs/historical/mh-6.8.5/uip/RCS/spost.c,v | 1081 + docs/historical/mh-6.8.5/uip/RCS/trmsbr.c,v | 336 + docs/historical/mh-6.8.5/uip/RCS/ttyd.h,v | 82 + docs/historical/mh-6.8.5/uip/RCS/ttym.c,v | 215 + docs/historical/mh-6.8.5/uip/RCS/ttyw.c,v | 171 + docs/historical/mh-6.8.5/uip/RCS/umhook.c,v | 570 + docs/historical/mh-6.8.5/uip/RCS/version.c,v | 41 + docs/historical/mh-6.8.5/uip/RCS/version.local,v | 41 + docs/historical/mh-6.8.5/uip/RCS/version.patch,v | 27 + docs/historical/mh-6.8.5/uip/RCS/version.sh,v | 96 + docs/historical/mh-6.8.5/uip/RCS/vmh.c,v | 2154 + docs/historical/mh-6.8.5/uip/RCS/vmhsbr.c,v | 448 + docs/historical/mh-6.8.5/uip/RCS/vmhtest.c,v | 377 + docs/historical/mh-6.8.5/uip/RCS/whatnow.c,v | 75 + docs/historical/mh-6.8.5/uip/RCS/whatnowproc.c,v | 213 + docs/historical/mh-6.8.5/uip/RCS/whatnowsbr.c,v | 1654 + docs/historical/mh-6.8.5/uip/RCS/whatnowsbr.o,v | Bin 0 -> 18546 bytes docs/historical/mh-6.8.5/uip/RCS/whom.c,v | 408 + docs/historical/mh-6.8.5/uip/RCS/wmh.c,v | 1574 + docs/historical/mh-6.8.5/uip/ali.c | 269 + docs/historical/mh-6.8.5/uip/aliasbr.c | 609 + docs/historical/mh-6.8.5/uip/anno.c | 199 + docs/historical/mh-6.8.5/uip/annosbr.c | 126 + docs/historical/mh-6.8.5/uip/ap.c | 218 + docs/historical/mh-6.8.5/uip/bbc.c | 1269 + docs/historical/mh-6.8.5/uip/bbl.c | 592 + docs/historical/mh-6.8.5/uip/burst.c | 394 + docs/historical/mh-6.8.5/uip/comp.c | 317 + docs/historical/mh-6.8.5/uip/conflict.c | 553 + docs/historical/mh-6.8.5/uip/dist.c | 322 + docs/historical/mh-6.8.5/uip/distsbr.c | 218 + docs/historical/mh-6.8.5/uip/dp.c | 161 + docs/historical/mh-6.8.5/uip/dropsbr.c | 725 + docs/historical/mh-6.8.5/uip/fmtdump.c | 507 + docs/historical/mh-6.8.5/uip/folder.c | 630 + docs/historical/mh-6.8.5/uip/forw.c | 687 + docs/historical/mh-6.8.5/uip/ftpsbr.c | 625 + docs/historical/mh-6.8.5/uip/inc.c | 947 + docs/historical/mh-6.8.5/uip/install-mh.c | 204 + docs/historical/mh-6.8.5/uip/mark.c | 264 + docs/historical/mh-6.8.5/uip/md5.c | 338 + docs/historical/mh-6.8.5/uip/mhl.c | 31 + docs/historical/mh-6.8.5/uip/mhlsbr.c | 1846 + docs/historical/mh-6.8.5/uip/mhmail.c | 225 + docs/historical/mh-6.8.5/uip/mhn.c | 7295 +++ docs/historical/mh-6.8.5/uip/mhparam.c | 175 + docs/historical/mh-6.8.5/uip/mhpath.c | 120 + docs/historical/mh-6.8.5/uip/msgchk.c | 436 + docs/historical/mh-6.8.5/uip/msh.c | 2639 + docs/historical/mh-6.8.5/uip/mshcmds.c | 3466 ++ docs/historical/mh-6.8.5/uip/packf.c | 173 + docs/historical/mh-6.8.5/uip/pick.c | 300 + docs/historical/mh-6.8.5/uip/picksbr.c | 961 + docs/historical/mh-6.8.5/uip/popi.c | 685 + docs/historical/mh-6.8.5/uip/popsbr.c | 679 + docs/historical/mh-6.8.5/uip/post.c | 2882 + docs/historical/mh-6.8.5/uip/prompter.c | 479 + docs/historical/mh-6.8.5/uip/pshsbr.c | 448 + docs/historical/mh-6.8.5/uip/rcvdist.c | 304 + docs/historical/mh-6.8.5/uip/rcvpack.c | 92 + docs/historical/mh-6.8.5/uip/rcvstore.c | 231 + docs/historical/mh-6.8.5/uip/rcvtty.c | 351 + docs/historical/mh-6.8.5/uip/refile.c | 456 + docs/historical/mh-6.8.5/uip/repl.c | 485 + docs/historical/mh-6.8.5/uip/replsbr.c | 447 + docs/historical/mh-6.8.5/uip/rmail.c | 645 + docs/historical/mh-6.8.5/uip/rmf.c | 258 + docs/historical/mh-6.8.5/uip/rmm.c | 145 + docs/historical/mh-6.8.5/uip/sbboards.c | 648 + docs/historical/mh-6.8.5/uip/scan.c | 317 + docs/historical/mh-6.8.5/uip/scansbr.c | 372 + docs/historical/mh-6.8.5/uip/send.c | 502 + docs/historical/mh-6.8.5/uip/sendmail.c | 575 + docs/historical/mh-6.8.5/uip/sendsbr.c | 604 + docs/historical/mh-6.8.5/uip/show.c | 486 + docs/historical/mh-6.8.5/uip/slocal.c | 1375 + docs/historical/mh-6.8.5/uip/sortm.c | 592 + docs/historical/mh-6.8.5/uip/spop.c | 639 + docs/historical/mh-6.8.5/uip/spost.c | 871 + docs/historical/mh-6.8.5/uip/trmsbr.c | 185 + docs/historical/mh-6.8.5/uip/ttyd.h | 43 + docs/historical/mh-6.8.5/uip/ttym.c | 110 + docs/historical/mh-6.8.5/uip/ttyw.c | 132 + docs/historical/mh-6.8.5/uip/umhook.c | 472 + docs/historical/mh-6.8.5/uip/vmh.c | 1560 + docs/historical/mh-6.8.5/uip/vmhsbr.c | 239 + docs/historical/mh-6.8.5/uip/vmhtest.c | 336 + docs/historical/mh-6.8.5/uip/whatnow.c | 18 + docs/historical/mh-6.8.5/uip/whatnowproc.c | 103 + docs/historical/mh-6.8.5/uip/whatnowsbr.c | 926 + docs/historical/mh-6.8.5/uip/whom.c | 205 + docs/historical/mh-6.8.5/uip/wmh.c | 1482 + docs/historical/mh-6.8.5/zotnet/Makefile | 86 + docs/historical/mh-6.8.5/zotnet/RCS/bboards.h,v | 108 + docs/historical/mh-6.8.5/zotnet/RCS/mf.h,v | 121 + docs/historical/mh-6.8.5/zotnet/RCS/mts.h,v | 197 + docs/historical/mh-6.8.5/zotnet/RCS/tws.h,v | 126 + docs/historical/mh-6.8.5/zotnet/bboards.h | 68 + docs/historical/mh-6.8.5/zotnet/bboards/Makefile | 95 + .../mh-6.8.5/zotnet/bboards/RCS/bboards.h,v | 124 + .../mh-6.8.5/zotnet/bboards/RCS/getbbent.c,v | 1114 + docs/historical/mh-6.8.5/zotnet/bboards/bboards.h | 68 + docs/historical/mh-6.8.5/zotnet/bboards/getbbent.c | 769 + .../mh-6.8.5/zotnet/bboards/llib-lbboards | 21 + docs/historical/mh-6.8.5/zotnet/llib-lzotnet | 6 + docs/historical/mh-6.8.5/zotnet/mf.h | 69 + docs/historical/mh-6.8.5/zotnet/mf/Makefile | 220 + docs/historical/mh-6.8.5/zotnet/mf/RCS/mf.c,v | 1342 + docs/historical/mh-6.8.5/zotnet/mf/RCS/mf.h,v | 137 + docs/historical/mh-6.8.5/zotnet/mf/RCS/muinc.c,v | 227 + docs/historical/mh-6.8.5/zotnet/mf/RCS/uminc.c,v | 272 + docs/historical/mh-6.8.5/zotnet/mf/llib-lmf | 12 + docs/historical/mh-6.8.5/zotnet/mf/mf.c | 1000 + docs/historical/mh-6.8.5/zotnet/mf/mf.h | 69 + .../mh-6.8.5/zotnet/mf/mmdfI/src/Makefile.add | 77 + .../mh-6.8.5/zotnet/mf/mmdfI/src/conf_chan.add | 31 + .../zotnet/mf/mmdfI/src/uucp/RCS/qu2uu_send.c,v | 357 + .../zotnet/mf/mmdfI/src/uucp/RCS/rmail.c,v | 808 + .../mh-6.8.5/zotnet/mf/mmdfI/src/uucp/ch_uucp.c | 120 + .../mh-6.8.5/zotnet/mf/mmdfI/src/uucp/qu2uu_send.c | 311 + .../mh-6.8.5/zotnet/mf/mmdfI/src/uucp/rmail.c | 762 + .../mh-6.8.5/zotnet/mf/mmdfI/src/uucp/uu_wtmail.c | 175 + .../mh-6.8.5/zotnet/mf/mmdfI/table/rmail.ok | 21 + .../mh-6.8.5/zotnet/mf/mmdfI/table/rmail.okdests | 16 + .../mh-6.8.5/zotnet/mf/mmdfI/table/uucp.names | 16 + docs/historical/mh-6.8.5/zotnet/mf/mmuu.c | 546 + docs/historical/mh-6.8.5/zotnet/mf/muinc.c | 184 + docs/historical/mh-6.8.5/zotnet/mf/musift.c | 79 + docs/historical/mh-6.8.5/zotnet/mf/uminc.c | 226 + docs/historical/mh-6.8.5/zotnet/mf/umsift.c | 79 + docs/historical/mh-6.8.5/zotnet/mf/uumm.c | 651 + docs/historical/mh-6.8.5/zotnet/mts.h | 112 + docs/historical/mh-6.8.5/zotnet/mts/Makefile | 172 + docs/historical/mh-6.8.5/zotnet/mts/RCS/client.c,v | 1033 + docs/historical/mh-6.8.5/zotnet/mts/RCS/lock.c,v | 1109 + docs/historical/mh-6.8.5/zotnet/mts/RCS/mts.h,v | 176 + docs/historical/mh-6.8.5/zotnet/mts/client.c | 449 + docs/historical/mh-6.8.5/zotnet/mts/llib-lmts | 14 + docs/historical/mh-6.8.5/zotnet/mts/lock.c | 503 + docs/historical/mh-6.8.5/zotnet/mts/mts.c | 612 + docs/historical/mh-6.8.5/zotnet/mts/mts.h | 111 + docs/historical/mh-6.8.5/zotnet/mts/mtstailor | 4 + docs/historical/mh-6.8.5/zotnet/tws.h | 50 + docs/historical/mh-6.8.5/zotnet/tws/Makefile | 157 + docs/historical/mh-6.8.5/zotnet/tws/RCS/dtime.c,v | 787 + .../mh-6.8.5/zotnet/tws/RCS/dtimep.lex,v | 1113 + .../mh-6.8.5/zotnet/tws/RCS/lexedit.sed,v | 118 + .../mh-6.8.5/zotnet/tws/RCS/lexstring.c,v | 614 + docs/historical/mh-6.8.5/zotnet/tws/date.c | 16 + docs/historical/mh-6.8.5/zotnet/tws/dtime.c | 426 + docs/historical/mh-6.8.5/zotnet/tws/dtimep.c-lexed | 1565 + docs/historical/mh-6.8.5/zotnet/tws/dtimep.lex | 422 + docs/historical/mh-6.8.5/zotnet/tws/lexedit.sed | 20 + docs/historical/mh-6.8.5/zotnet/tws/lexstring.c | 251 + docs/historical/mh-6.8.5/zotnet/tws/llib-ltws | 17 + docs/historical/mh-6.8.5/zotnet/tws/phoon/Makefile | 74 + docs/historical/mh-6.8.5/zotnet/tws/phoon/README | 74 + .../historical/mh-6.8.5/zotnet/tws/phoon/deltime.c | 87 + .../mh-6.8.5/zotnet/tws/phoon/deltime.man | 29 + docs/historical/mh-6.8.5/zotnet/tws/phoon/dtime.c | 448 + .../mh-6.8.5/zotnet/tws/phoon/dtimep.lex | 344 + .../mh-6.8.5/zotnet/tws/phoon/lexedit.sed | 10 + .../mh-6.8.5/zotnet/tws/phoon/lexstring.c | 194 + .../mh-6.8.5/zotnet/tws/phoon/libtws.man | 81 + .../mh-6.8.5/zotnet/tws/phoon/parsetime.c | 62 + docs/historical/mh-6.8.5/zotnet/tws/phoon/phoon.c | 240 + .../historical/mh-6.8.5/zotnet/tws/phoon/phoon.man | 23 + docs/historical/mh-6.8.5/zotnet/tws/phoon/tws.h | 79 + docs/historical/mh-6.8.5/zotnet/tws/tws.h | 50 + 1358 files changed, 461795 insertions(+) create mode 100644 docs/historical/README create mode 100644 docs/historical/mh-6.8.5/CHANGES create mode 100644 docs/historical/mh-6.8.5/FAQ create mode 100755 docs/historical/mh-6.8.5/MAKE create mode 100644 docs/historical/mh-6.8.5/Makefile create mode 100644 docs/historical/mh-6.8.5/Patchlevel create mode 100644 docs/historical/mh-6.8.5/RCS/COVER-LETTER,v create mode 100644 docs/historical/mh-6.8.5/READ-ME create mode 100644 docs/historical/mh-6.8.5/conf/MH create mode 100644 docs/historical/mh-6.8.5/conf/Makefile create mode 100644 docs/historical/mh-6.8.5/conf/RCS/MH,v create mode 100644 docs/historical/mh-6.8.5/conf/RCS/Makefile,v create mode 100644 docs/historical/mh-6.8.5/conf/RCS/mh-gen.8,v create mode 100644 docs/historical/mh-6.8.5/conf/RCS/mhconfig.c,v create mode 100755 docs/historical/mh-6.8.5/conf/RCS/mhdoc,v create mode 100644 docs/historical/mh-6.8.5/conf/config.sed create mode 100644 docs/historical/mh-6.8.5/conf/config/MailAliases create mode 100644 docs/historical/mh-6.8.5/conf/config/MakeBBoards create mode 100644 docs/historical/mh-6.8.5/conf/config/RCS/MailAliases,v create mode 100644 docs/historical/mh-6.8.5/conf/config/RCS/config.c,v create mode 100644 docs/historical/mh-6.8.5/conf/config/RCS/mts.c,v create mode 100755 docs/historical/mh-6.8.5/conf/config/bboards.daily create mode 100755 docs/historical/mh-6.8.5/conf/config/bboards.weekly create mode 100644 docs/historical/mh-6.8.5/conf/config/bboardsMH.m4 create mode 100644 docs/historical/mh-6.8.5/conf/config/config.c create mode 100644 docs/historical/mh-6.8.5/conf/config/crontab create mode 100644 docs/historical/mh-6.8.5/conf/config/mts.c create mode 100644 docs/historical/mh-6.8.5/conf/config/mtstailor create mode 100644 docs/historical/mh-6.8.5/conf/config/popMH.m4 create mode 100644 docs/historical/mh-6.8.5/conf/doc/ADMIN.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/MH.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/ADMIN.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/MH.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/ali.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/anno.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/ap.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bbaka.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bbc.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bbexp.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bbl.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bbleader.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bboards.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bboards5.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bboards8.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/bbtar.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/burst.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/comp.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/conflict.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/dist.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/dp.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/fmtdump.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/folder.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/forw.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/inc.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/install-mh.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/maildelivery.5,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mark.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/me2man.sed,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mf.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-alias.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-chart.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-format.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-hack.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-mail.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-mts.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-profile.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-sequence.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh-tailor.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mh.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mhl.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mhmail.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mhn.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mhook.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mhparam.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/mhpath.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/msgchk.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/msh.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/next.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/packf.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/pick.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/pop5.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/pop8.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/popaka.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/popauth.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/popd.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/popi.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/popwrd.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/post.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/prev.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/prompter.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/rcvstore.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/refile.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/repl.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/rmail.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/rmf.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/rmm.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/scan.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/send.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/show.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/slocal.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/sortm.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/tmac.h,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/vmh.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/whatnow.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/whom.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/RCS/wmh.rf,v create mode 100644 docs/historical/mh-6.8.5/conf/doc/TODO create mode 100644 docs/historical/mh-6.8.5/conf/doc/ali.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/anno.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/ap.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bbaka.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bbc.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bbexp.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bbl.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bbleader.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bboards.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bboards5.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bboards8.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/bbtar.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/burst.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/comp.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/config.sed create mode 100644 docs/historical/mh-6.8.5/conf/doc/conflict.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/dist.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/dp.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/fmtdump.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/folder.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/forw.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/inc.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/install-mh.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/maildelivery.5 create mode 100644 docs/historical/mh-6.8.5/conf/doc/mark.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/me2man.sed create mode 100644 docs/historical/mh-6.8.5/conf/doc/mf.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-alias.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-chart.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-format.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-hack.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-mail.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-mts.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-profile.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-sequence.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh-tailor.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mh.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mhl.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mhmail.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mhn.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mhook.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mhparam.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/mhpath.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/msgchk.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/msh.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/next.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/packf.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/pick.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/pop5.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/pop8.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/popaka.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/popauth.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/popd.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/popi.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/popwrd.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/post.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/prev.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/prompter.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/rcvstore.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/refile.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/repl.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/rmail.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/rmf.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/rmm.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/scan.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/send.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/show.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/slocal.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/sortm.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/template create mode 100644 docs/historical/mh-6.8.5/conf/doc/tmac.h create mode 100644 docs/historical/mh-6.8.5/conf/doc/tmac.hdr create mode 100644 docs/historical/mh-6.8.5/conf/doc/vmh.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/whatnow.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/whom.rf create mode 100644 docs/historical/mh-6.8.5/conf/doc/wmh.rf create mode 100644 docs/historical/mh-6.8.5/conf/examples/386bsd create mode 100644 docs/historical/mh-6.8.5/conf/examples/RCS/README,v create mode 100644 docs/historical/mh-6.8.5/conf/examples/README create mode 100644 docs/historical/mh-6.8.5/conf/examples/aix.sap-ag.de create mode 100644 docs/historical/mh-6.8.5/conf/examples/aix31.rpi.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/aos.cornell.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/aux.rand.org create mode 100644 docs/historical/mh-6.8.5/conf/examples/bsd43.uiuc.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/bsd44.berkeley.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/convex.uiuc.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/dbc create mode 100644 docs/historical/mh-6.8.5/conf/examples/dynix.uiuc.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/encore create mode 100644 docs/historical/mh-6.8.5/conf/examples/fujitsu.clcs.com.au create mode 100644 docs/historical/mh-6.8.5/conf/examples/gould create mode 100644 docs/historical/mh-6.8.5/conf/examples/hplpm.hpl.hp.com create mode 100644 docs/historical/mh-6.8.5/conf/examples/hpux.sap-ag.de create mode 100644 docs/historical/mh-6.8.5/conf/examples/hpux.uiuc.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/kosciusko.esd.3com.com create mode 100644 docs/historical/mh-6.8.5/conf/examples/krusty.smsc.sony.COM create mode 100644 docs/historical/mh-6.8.5/conf/examples/mhmts create mode 100644 docs/historical/mh-6.8.5/conf/examples/mmdf create mode 100644 docs/historical/mh-6.8.5/conf/examples/ridge create mode 100644 docs/historical/mh-6.8.5/conf/examples/rs6000 create mode 100644 docs/historical/mh-6.8.5/conf/examples/sendmts create mode 100644 docs/historical/mh-6.8.5/conf/examples/shrike.irvine.com create mode 100644 docs/historical/mh-6.8.5/conf/examples/solaris2.sun.com create mode 100644 docs/historical/mh-6.8.5/conf/examples/sun3.5 create mode 100644 docs/historical/mh-6.8.5/conf/examples/sun4.0 create mode 100644 docs/historical/mh-6.8.5/conf/examples/sun4.1.1 create mode 100644 docs/historical/mh-6.8.5/conf/examples/sun411.rpi.edu create mode 100644 docs/historical/mh-6.8.5/conf/examples/sys5r3.2 create mode 100644 docs/historical/mh-6.8.5/conf/examples/sys5r4 create mode 100644 docs/historical/mh-6.8.5/conf/examples/sys5r4-ncr create mode 100644 docs/historical/mh-6.8.5/conf/examples/system5 create mode 100644 docs/historical/mh-6.8.5/conf/examples/uci.gcc create mode 100644 docs/historical/mh-6.8.5/conf/examples/uci.hp-pa create mode 100644 docs/historical/mh-6.8.5/conf/examples/uci.sequent create mode 100644 docs/historical/mh-6.8.5/conf/examples/uci.sun create mode 100644 docs/historical/mh-6.8.5/conf/examples/uci.sun.debug create mode 100644 docs/historical/mh-6.8.5/conf/examples/udel create mode 100644 docs/historical/mh-6.8.5/conf/examples/ultrix.sap-ag.de create mode 100644 docs/historical/mh-6.8.5/conf/local/MH create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.beaver create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.debug create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.ics create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.icsf create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.jlr create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.jlr.debug create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.next create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.noman create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.raj create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.rome create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.sun3_running_4.0 create mode 100644 docs/historical/mh-6.8.5/conf/local/MH.sun4 create mode 100644 docs/historical/mh-6.8.5/conf/local/uci.gcc create mode 100644 docs/historical/mh-6.8.5/conf/local/uci.hp-pa create mode 100644 docs/historical/mh-6.8.5/conf/local/uci.sequent create mode 100644 docs/historical/mh-6.8.5/conf/local/uci.sun create mode 100644 docs/historical/mh-6.8.5/conf/local/uci.sun-g create mode 100644 docs/historical/mh-6.8.5/conf/local/uci.sun.debug create mode 100644 docs/historical/mh-6.8.5/conf/local/uci.vangogh create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/MH-Makefile create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/MH-Unconfig create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Makefile,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Unconfig,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/config,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/dist,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/doc,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/mtsM,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/papers,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/sbr,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/supportM,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/uip,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/RCS/zotnetM,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/config create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/dist create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/doc create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mh,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mmdf,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/sendmail,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/mts/mh create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/mts/mmdf create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/mts/sendmail create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/mtsM create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/papers create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/sbr create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/support/RCS/bboards,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/support/RCS/general,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/support/RCS/pop,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/support/bboards create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/support/general create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/support/pop create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/supportM create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/uip create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/bboards,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mf,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mts,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/tws,v create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/bboards create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/mf create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/mts create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnet/tws create mode 100644 docs/historical/mh-6.8.5/conf/makefiles/zotnetM create mode 100644 docs/historical/mh-6.8.5/conf/mh-gen.8 create mode 100644 docs/historical/mh-6.8.5/conf/mhconfig.c create mode 100755 docs/historical/mh-6.8.5/conf/mhdoc create mode 100644 docs/historical/mh-6.8.5/conf/tailor/RCS/uci,v create mode 100644 docs/historical/mh-6.8.5/conf/tailor/bsd44.berkeley.edu create mode 100644 docs/historical/mh-6.8.5/conf/tailor/clcs.com.au create mode 100644 docs/historical/mh-6.8.5/conf/tailor/dbc create mode 100644 docs/historical/mh-6.8.5/conf/tailor/default create mode 100644 docs/historical/mh-6.8.5/conf/tailor/hplpm.hpl.hp.com create mode 100644 docs/historical/mh-6.8.5/conf/tailor/mhmts create mode 100644 docs/historical/mh-6.8.5/conf/tailor/mmdf create mode 100644 docs/historical/mh-6.8.5/conf/tailor/ncr-sys5r4 create mode 100644 docs/historical/mh-6.8.5/conf/tailor/paris.ics.uci.edu create mode 100644 docs/historical/mh-6.8.5/conf/tailor/pop create mode 100644 docs/historical/mh-6.8.5/conf/tailor/risci.tn.cornell.edu create mode 100644 docs/historical/mh-6.8.5/conf/tailor/rpi.edu create mode 100644 docs/historical/mh-6.8.5/conf/tailor/sendmts create mode 100644 docs/historical/mh-6.8.5/conf/tailor/uci create mode 100644 docs/historical/mh-6.8.5/config/Makefile create mode 100644 docs/historical/mh-6.8.5/config/RCS/version.sh,v create mode 100644 docs/historical/mh-6.8.5/config/config.c create mode 100644 docs/historical/mh-6.8.5/config/version create mode 100644 docs/historical/mh-6.8.5/config/version.c create mode 100644 docs/historical/mh-6.8.5/config/version.sh create mode 100644 docs/historical/mh-6.8.5/dist/Makefile create mode 100644 docs/historical/mh-6.8.5/doc/.null create mode 100644 docs/historical/mh-6.8.5/doc/ADMIN.me create mode 100644 docs/historical/mh-6.8.5/doc/MH.me create mode 100644 docs/historical/mh-6.8.5/doc/MH.ps create mode 100644 docs/historical/mh-6.8.5/doc/Makefile create mode 100644 docs/historical/mh-6.8.5/doc/ali.me create mode 100644 docs/historical/mh-6.8.5/doc/anno.me create mode 100644 docs/historical/mh-6.8.5/doc/ap.me create mode 100644 docs/historical/mh-6.8.5/doc/bbaka.me create mode 100644 docs/historical/mh-6.8.5/doc/bbc.me create mode 100644 docs/historical/mh-6.8.5/doc/bbexp.me create mode 100644 docs/historical/mh-6.8.5/doc/bbl.me create mode 100644 docs/historical/mh-6.8.5/doc/bbleader.me create mode 100644 docs/historical/mh-6.8.5/doc/bboards.me create mode 100644 docs/historical/mh-6.8.5/doc/bboards5.me create mode 100644 docs/historical/mh-6.8.5/doc/bboards8.me create mode 100644 docs/historical/mh-6.8.5/doc/bbtar.me create mode 100644 docs/historical/mh-6.8.5/doc/burst.me create mode 100644 docs/historical/mh-6.8.5/doc/comp.me create mode 100644 docs/historical/mh-6.8.5/doc/conflict.me create mode 100644 docs/historical/mh-6.8.5/doc/dist.me create mode 100644 docs/historical/mh-6.8.5/doc/dp.me create mode 100644 docs/historical/mh-6.8.5/doc/fmtdump.me create mode 100644 docs/historical/mh-6.8.5/doc/folder.me create mode 100644 docs/historical/mh-6.8.5/doc/forw.me create mode 100644 docs/historical/mh-6.8.5/doc/inc.me create mode 100644 docs/historical/mh-6.8.5/doc/install-mh.me create mode 100644 docs/historical/mh-6.8.5/doc/mark.me create mode 100644 docs/historical/mh-6.8.5/doc/me2man.sed create mode 100644 docs/historical/mh-6.8.5/doc/mf.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-alias.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-chart.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-format.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-hack.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-mail.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-mts.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-profile.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-sequence.me create mode 100644 docs/historical/mh-6.8.5/doc/mh-tailor.me create mode 100644 docs/historical/mh-6.8.5/doc/mh.me create mode 100644 docs/historical/mh-6.8.5/doc/mhl.me create mode 100644 docs/historical/mh-6.8.5/doc/mhmail.me create mode 100644 docs/historical/mh-6.8.5/doc/mhn.me create mode 100644 docs/historical/mh-6.8.5/doc/mhook.me create mode 100644 docs/historical/mh-6.8.5/doc/mhparam.me create mode 100644 docs/historical/mh-6.8.5/doc/mhpath.me create mode 100644 docs/historical/mh-6.8.5/doc/msgchk.me create mode 100644 docs/historical/mh-6.8.5/doc/msh.me create mode 100644 docs/historical/mh-6.8.5/doc/next.me create mode 100644 docs/historical/mh-6.8.5/doc/packf.me create mode 100644 docs/historical/mh-6.8.5/doc/pick.me create mode 100644 docs/historical/mh-6.8.5/doc/pop5.me create mode 100644 docs/historical/mh-6.8.5/doc/pop8.me create mode 100644 docs/historical/mh-6.8.5/doc/popaka.me create mode 100644 docs/historical/mh-6.8.5/doc/popauth.me create mode 100644 docs/historical/mh-6.8.5/doc/popd.me create mode 100644 docs/historical/mh-6.8.5/doc/popi.me create mode 100644 docs/historical/mh-6.8.5/doc/popwrd.me create mode 100644 docs/historical/mh-6.8.5/doc/post.me create mode 100644 docs/historical/mh-6.8.5/doc/prev.me create mode 100644 docs/historical/mh-6.8.5/doc/prompter.me create mode 100644 docs/historical/mh-6.8.5/doc/rcvstore.me create mode 100644 docs/historical/mh-6.8.5/doc/refile.me create mode 100644 docs/historical/mh-6.8.5/doc/repl.me create mode 100644 docs/historical/mh-6.8.5/doc/rmail.me create mode 100644 docs/historical/mh-6.8.5/doc/rmf.me create mode 100644 docs/historical/mh-6.8.5/doc/rmm.me create mode 100644 docs/historical/mh-6.8.5/doc/scan.me create mode 100644 docs/historical/mh-6.8.5/doc/send.me create mode 100644 docs/historical/mh-6.8.5/doc/show.me create mode 100644 docs/historical/mh-6.8.5/doc/slocal.me create mode 100644 docs/historical/mh-6.8.5/doc/sortm.me create mode 100644 docs/historical/mh-6.8.5/doc/tmac.h create mode 100644 docs/historical/mh-6.8.5/doc/tmac.me create mode 100644 docs/historical/mh-6.8.5/doc/version.rf create mode 100644 docs/historical/mh-6.8.5/doc/vmh.me create mode 100644 docs/historical/mh-6.8.5/doc/whatnow.me create mode 100644 docs/historical/mh-6.8.5/doc/whom.me create mode 100644 docs/historical/mh-6.8.5/doc/wmh.me create mode 100644 docs/historical/mh-6.8.5/h/RCS/addrsbr.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/aliasbr.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/fmtcompile.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/formatsbr.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/local.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/md5.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/mh.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/mhn.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/mshsbr.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/netdb.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/nntp.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/rcvmail.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/scansbr.h,v create mode 100644 docs/historical/mh-6.8.5/h/RCS/strings.h,v create mode 100644 docs/historical/mh-6.8.5/h/addrsbr.h create mode 100644 docs/historical/mh-6.8.5/h/aliasbr.h create mode 100644 docs/historical/mh-6.8.5/h/dropsbr.h create mode 100644 docs/historical/mh-6.8.5/h/fmtcompile.h create mode 100644 docs/historical/mh-6.8.5/h/formatsbr.h create mode 100644 docs/historical/mh-6.8.5/h/local.h create mode 100644 docs/historical/mh-6.8.5/h/local/incr.awk create mode 100644 docs/historical/mh-6.8.5/h/md5.h create mode 100644 docs/historical/mh-6.8.5/h/mh.h create mode 100644 docs/historical/mh-6.8.5/h/mhn.h create mode 100644 docs/historical/mh-6.8.5/h/mshsbr.h create mode 100644 docs/historical/mh-6.8.5/h/netdb.h create mode 100644 docs/historical/mh-6.8.5/h/nntp.h create mode 100644 docs/historical/mh-6.8.5/h/rcvmail.h create mode 100644 docs/historical/mh-6.8.5/h/scansbr.h create mode 100644 docs/historical/mh-6.8.5/h/strings.h create mode 100644 docs/historical/mh-6.8.5/h/vmhsbr.h create mode 100644 docs/historical/mh-6.8.5/local/Distfile create mode 100644 docs/historical/mh-6.8.5/local/Distfile.nbbc create mode 100644 docs/historical/mh-6.8.5/local/distfile create mode 100644 docs/historical/mh-6.8.5/local/distfile_lib create mode 100644 docs/historical/mh-6.8.5/local/lbl/diffs create mode 100644 docs/historical/mh-6.8.5/local/lbl/files create mode 100644 docs/historical/mh-6.8.5/local/lbl/sbr/formatsbr.c create mode 100644 docs/historical/mh-6.8.5/local/lbl/sbr/m_gmsg.c create mode 100644 docs/historical/mh-6.8.5/local/lbl/sbr/m_seq.c create mode 100644 docs/historical/mh-6.8.5/local/lbl/sbr/t.c create mode 120000 docs/historical/mh-6.8.5/local/lbl/sbr/tags create mode 100644 docs/historical/mh-6.8.5/local/lbl/sbr/trmsbr.c create mode 120000 docs/historical/mh-6.8.5/local/lbl/uip/m_getfld.c create mode 100644 docs/historical/mh-6.8.5/local/lbl/uip/version.c create mode 120000 docs/historical/mh-6.8.5/local/lbl/zotnet/tws.h create mode 100755 docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtest create mode 100644 docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.c create mode 100644 docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.lex create mode 100644 docs/historical/mh-6.8.5/local/lbl/zotnet/tws/test.input create mode 100644 docs/historical/mh-6.8.5/local/linux/DIFFS.linux create mode 100644 docs/historical/mh-6.8.5/local/linux/DIFFS.shlib create mode 100644 docs/historical/mh-6.8.5/local/linux/README.linux create mode 100644 docs/historical/mh-6.8.5/local/linux/jump/Makefile create mode 100644 docs/historical/mh-6.8.5/local/linux/jump/jump.funcs create mode 100644 docs/historical/mh-6.8.5/local/linux/jump/jump.ignore create mode 100644 docs/historical/mh-6.8.5/local/linux/jump/jump.import create mode 100644 docs/historical/mh-6.8.5/local/linux/jump/jump.params create mode 100644 docs/historical/mh-6.8.5/local/linux/jump/jump.undefs create mode 100644 docs/historical/mh-6.8.5/local/linux/jump/jump.vars create mode 100644 docs/historical/mh-6.8.5/local/linux/linux-conf.MH create mode 100644 docs/historical/mh-6.8.5/local/linux/linux-conf.config.mtstailor create mode 100644 docs/historical/mh-6.8.5/local/linux/linux-dtimep.c-lexed create mode 100644 docs/historical/mh-6.8.5/local/linux/mh-6.8.3-diffs.tgz create mode 100644 docs/historical/mh-6.8.5/local/linux/mh-6.8.3.README create mode 100644 docs/historical/mh-6.8.5/local/linux/mh-6.8.3.lsm create mode 100755 docs/historical/mh-6.8.5/local/rdist_script create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_lib.is68k create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_lib.sequent create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_lib.sun3 create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_others.is68k create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_others.sequent create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_others.sun3 create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_usrlocal.is68k create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sequent create mode 100644 docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sun3 create mode 100644 docs/historical/mh-6.8.5/local/tmp/mh-6.8-bsdi.patch create mode 100644 docs/historical/mh-6.8.5/make.out create mode 100644 docs/historical/mh-6.8.5/miscellany/RCS/README,v create mode 100644 docs/historical/mh-6.8.5/miscellany/README create mode 100644 docs/historical/mh-6.8.5/miscellany/audit/Bug_fixes create mode 100644 docs/historical/mh-6.8.5/miscellany/audit/CHANGES create mode 100644 docs/historical/mh-6.8.5/miscellany/audit/Installation create mode 100644 docs/historical/mh-6.8.5/miscellany/audit/README create mode 100644 docs/historical/mh-6.8.5/miscellany/audit/Suggestions create mode 100644 docs/historical/mh-6.8.5/miscellany/audit/audit.pl create mode 100644 docs/historical/mh-6.8.5/miscellany/audit/mh.pl create mode 100755 docs/historical/mh-6.8.5/miscellany/audit/refileto create mode 100755 docs/historical/mh-6.8.5/miscellany/audit/rfolder create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/Makefile create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/README create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/README3.0 create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/atob.c create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/btoa.1 create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/btoa.c create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/compress.1 create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/compress.c create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/compressdir create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/compressdir.1 create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/tarmail create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/uncompressdir create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/untarmail create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/usermem create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/zcmp create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/zcmp.1 create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/zdiff create mode 100755 docs/historical/mh-6.8.5/miscellany/compress-4.0/zmore create mode 100644 docs/historical/mh-6.8.5/miscellany/compress-4.0/zmore.1 create mode 100644 docs/historical/mh-6.8.5/miscellany/convert/READ-ME create mode 100644 docs/historical/mh-6.8.5/miscellany/convert/its-mmdf.ex create mode 100755 docs/historical/mh-6.8.5/miscellany/convert/its-to-mmdf create mode 100644 docs/historical/mh-6.8.5/miscellany/convert/mm-mmdf.ex create mode 100755 docs/historical/mh-6.8.5/miscellany/convert/mm-to-mmdf create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/CHANGES create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/README create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/brac.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/ch.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/charset.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/cmd.h create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/cmdbuf.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/command.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/decode.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/defines.h create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/edit.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/filename.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/forwback.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/funcs.h create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/help.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/ifile.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/input.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/jump.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/less.h create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/less.hlp create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/less.man create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/less.nro create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/lesskey.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/lesskey.man create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/lesskey.nro create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/line.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/linenum.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/linstall create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/lsystem.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/main.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/makefile create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/mark.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/mkfuncs.awk create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/optfunc.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/option.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/option.h create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/opttbl.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/os.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/output.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/position.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/position.h create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/prompt.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/screen.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/search.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/signal.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/tags.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/ttyin.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/vecho.c create mode 100644 docs/historical/mh-6.8.5/miscellany/less-177/version.c create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/Makefile create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/READ-ME create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/closedir.c create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/dir.h create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/directory.3s create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/opendir.c create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/readdir.c create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/seekdir.c create mode 100644 docs/historical/mh-6.8.5/miscellany/libndir/telldir.c create mode 100644 docs/historical/mh-6.8.5/miscellany/mem/Makefile create mode 100644 docs/historical/mh-6.8.5/miscellany/mem/RCS/promptdate.c,v create mode 100644 docs/historical/mh-6.8.5/miscellany/mem/README create mode 100755 docs/historical/mh-6.8.5/miscellany/mem/a.out create mode 100644 docs/historical/mh-6.8.5/miscellany/mem/getopt.c create mode 100755 docs/historical/mh-6.8.5/miscellany/mem/mem.sh create mode 100644 docs/historical/mh-6.8.5/miscellany/mem/promptdate.1 create mode 100644 docs/historical/mh-6.8.5/miscellany/mem/promptdate.c create mode 100755 docs/historical/mh-6.8.5/miscellany/mem/rem.sh create mode 100644 docs/historical/mh-6.8.5/miscellany/mh-e/mh-e.el create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/READ-ME create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-annot.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-cache.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-doc.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-e.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-edit.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-exit.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-extras.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-forw.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-help.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-inc.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-keymap.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-mode.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-move.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-repl.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-send.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-shell.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-show.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-unmark.ml create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mh-util.ml create mode 100755 docs/historical/mh-6.8.5/miscellany/mhe/mhe create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mhe.1 create mode 100644 docs/historical/mh-6.8.5/miscellany/mhe/mhe.mss create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/READ-ME create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/MH create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/again create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/distf create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/mpick create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/packit create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/replf create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/sf create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/sscan create mode 100755 docs/historical/mh-6.8.5/miscellany/mtrenv/bin/wsh create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/cshrc create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/maildelivery create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mh_profile create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/ap.debug create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/athomecomps create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/bombcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/components create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/distcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/dp.debug create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/fixcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/forwcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/mhl.format create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/mhl.forward create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/mhl.msgid create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/mhl.rcvtty create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/mhl.repl create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/okcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/thxcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/mtrenv/mhbox/workcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/READ-ME create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/SPARC/SOUND.diff create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/misc/RCS/rt2raw.c,v create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/misc/READ-ME create mode 100755 docs/historical/mh-6.8.5/miscellany/multi-media/misc/mimeless create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/misc/rt2raw.c create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/profiles/mhn_defaults create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/profiles/mtr.mh_profile create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/profiles/mtr.mhn_profile.openwindows create mode 100644 docs/historical/mh-6.8.5/miscellany/multi-media/profiles/mtr.mhn_profile.xterminal create mode 100644 docs/historical/mh-6.8.5/miscellany/netnews/ALSO-READ-ME create mode 100644 docs/historical/mh-6.8.5/miscellany/netnews/Mail/flupcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/netnews/READ-ME create mode 100755 docs/historical/mh-6.8.5/miscellany/netnews/bin/mh create mode 100755 docs/historical/mh-6.8.5/miscellany/netnews/bin/rnmail create mode 100755 docs/historical/mh-6.8.5/miscellany/netnews/followup create mode 100644 docs/historical/mh-6.8.5/miscellany/netnews/followup.sed create mode 100644 docs/historical/mh-6.8.5/miscellany/netnews/login create mode 100644 docs/historical/mh-6.8.5/miscellany/netnews/mh_profile create mode 100644 docs/historical/mh-6.8.5/miscellany/netnews/rninit create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/ChangeLog create mode 100755 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/Configure create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/EXTERN.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/INTERN.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/MANIFEST create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/Makefile.SH create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/README create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/backupfile.c create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/backupfile.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/common.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/config.H create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/config.h.SH create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/inp.c create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/inp.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/malloc.c create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/patch.c create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/patch.man create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/patchlevel.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/pch.c create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/pch.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/util.c create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/util.h create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/version.c create mode 100644 docs/historical/mh-6.8.5/miscellany/patch-2.0.12u8/version.h create mode 100644 docs/historical/mh-6.8.5/miscellany/rcvtrip/READ-ME create mode 100755 docs/historical/mh-6.8.5/miscellany/rcvtrip/offtrip.sh create mode 100755 docs/historical/mh-6.8.5/miscellany/rcvtrip/ontrip.sh create mode 100755 docs/historical/mh-6.8.5/miscellany/rcvtrip/rcvtrip.sh create mode 100644 docs/historical/mh-6.8.5/miscellany/rcvtrip/tripcomps create mode 100644 docs/historical/mh-6.8.5/miscellany/scripts/READ-ME create mode 100644 docs/historical/mh-6.8.5/miscellany/scripts/amhmail.sh create mode 100644 docs/historical/mh-6.8.5/miscellany/scripts/append.rf create mode 100755 docs/historical/mh-6.8.5/miscellany/scripts/append.sh create mode 100644 docs/historical/mh-6.8.5/miscellany/scripts/make_mailrc.doc create mode 100755 docs/historical/mh-6.8.5/miscellany/scripts/make_mailrc.sh create mode 100644 docs/historical/mh-6.8.5/miscellany/sendmail/README create mode 100644 docs/historical/mh-6.8.5/miscellany/sendmail/spooler.c create mode 100644 docs/historical/mh-6.8.5/miscellany/sortf/README create mode 100755 docs/historical/mh-6.8.5/miscellany/sortf/sortf create mode 100755 docs/historical/mh-6.8.5/miscellany/sortf/sorts create mode 100644 docs/historical/mh-6.8.5/miscellany/sortf/sorts.1 create mode 100755 docs/historical/mh-6.8.5/miscellany/tools/7limit create mode 100755 docs/historical/mh-6.8.5/miscellany/tools/8limit create mode 100755 docs/historical/mh-6.8.5/miscellany/tools/CMP create mode 100644 docs/historical/mh-6.8.5/mts/Makefile create mode 100644 docs/historical/mh-6.8.5/mts/mh/Makefile create mode 100644 docs/historical/mh-6.8.5/mts/mh/RCS/hosts.c,v create mode 100644 docs/historical/mh-6.8.5/mts/mh/RMail.OkDests create mode 100644 docs/historical/mh-6.8.5/mts/mh/RMail.OkHosts create mode 100644 docs/historical/mh-6.8.5/mts/mh/hosts.c create mode 100644 docs/historical/mh-6.8.5/mts/mh/llib-lmhmts create mode 100644 docs/historical/mh-6.8.5/mts/mh/netmail.c create mode 100644 docs/historical/mh-6.8.5/mts/mh/uucp.c create mode 100755 docs/historical/mh-6.8.5/mts/mmdf/CP create mode 100755 docs/historical/mh-6.8.5/mts/mmdf/LN create mode 100644 docs/historical/mh-6.8.5/mts/mmdf/Makefile create mode 100644 docs/historical/mh-6.8.5/mts/mmdf/RCS/hosts.c,v create mode 100644 docs/historical/mh-6.8.5/mts/mmdf/hosts.c create mode 100644 docs/historical/mh-6.8.5/mts/mmdf/llib-lmmdf create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/Makefile create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/RCS/hosts.c,v create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/RCS/smail.c,v create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/RCS/smail.h,v create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/bboardsMH.m4 create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/hosts.c create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/llib-lsendmail create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/popMH.m4 create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/smail.c create mode 100644 docs/historical/mh-6.8.5/mts/sendmail/smail.h create mode 100644 docs/historical/mh-6.8.5/papers/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/bboards/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/bboards/bboards.tex create mode 100644 docs/historical/mh-6.8.5/papers/bboards/refs.tex create mode 100644 docs/historical/mh-6.8.5/papers/bboards/text.tex create mode 100644 docs/historical/mh-6.8.5/papers/bboards/version create mode 100755 docs/historical/mh-6.8.5/papers/bboards/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/bboards/version.tex create mode 100644 docs/historical/mh-6.8.5/papers/beginners/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/beginners/RCS/beginners.tex,v create mode 100644 docs/historical/mh-6.8.5/papers/beginners/beginners.aux create mode 100644 docs/historical/mh-6.8.5/papers/beginners/beginners.tex create mode 100644 docs/historical/mh-6.8.5/papers/changes/MHCHANGES create mode 100644 docs/historical/mh-6.8.5/papers/changes/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/changes/RCS/Makefile,v create mode 100644 docs/historical/mh-6.8.5/papers/changes/RCS/mh-changes.ms,v create mode 100644 docs/historical/mh-6.8.5/papers/changes/RCS/mh6.tex,v create mode 100644 docs/historical/mh-6.8.5/papers/changes/mh-changes.ms create mode 100644 docs/historical/mh-6.8.5/papers/doclib/RCS/READ-ME,v create mode 100644 docs/historical/mh-6.8.5/papers/doclib/RCS/diss.sty,v create mode 100644 docs/historical/mh-6.8.5/papers/doclib/READ-ME create mode 100644 docs/historical/mh-6.8.5/papers/doclib/amstex.tex create mode 100644 docs/historical/mh-6.8.5/papers/doclib/article.tex create mode 100644 docs/historical/mh-6.8.5/papers/doclib/dcustom.tex create mode 100644 docs/historical/mh-6.8.5/papers/doclib/diss.sty create mode 100644 docs/historical/mh-6.8.5/papers/doclib/sfwmac.tex create mode 100644 docs/historical/mh-6.8.5/papers/doclib/trademark.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh4/MHCHANGES create mode 100644 docs/historical/mh-6.8.5/papers/mh4/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/mh4/mh4.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh4/refs.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh4/text.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh4/version create mode 100755 docs/historical/mh-6.8.5/papers/mh4/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/mh4/version.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh4mm/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/mh4mm/mh4mm.aux create mode 100644 docs/historical/mh-6.8.5/papers/mh4mm/mh4mm.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh5/MHCHANGES create mode 100644 docs/historical/mh-6.8.5/papers/mh5/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/mh5/diagram1.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh5/diagram2.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh5/mh5.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh5/refs.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh5/text.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh5/version create mode 100755 docs/historical/mh-6.8.5/papers/mh5/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/mh5/version.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/MHCHANGES create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/READ-ME create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/bcustom.bib create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/lcustom.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/mh6.aux create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/mh6.bbl create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/mh6.major create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/mh6.minor create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/mh6.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/mh6.vrsn create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/sfwdoc.bib create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/sfwmac.sty create mode 100644 docs/historical/mh-6.8.5/papers/mh6.5/trademark.tex create mode 100755 docs/historical/mh-6.8.5/papers/mh6.5/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/mh6/MHCHANGES create mode 100644 docs/historical/mh-6.8.5/papers/mh6/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/mh6/READ-ME create mode 100644 docs/historical/mh-6.8.5/papers/mh6/lcustom.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh6/mh6.aux create mode 100644 docs/historical/mh-6.8.5/papers/mh6/mh6.bbl create mode 100644 docs/historical/mh-6.8.5/papers/mh6/mh6.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh6/sfwmac.sty create mode 100644 docs/historical/mh-6.8.5/papers/mh6/trademark.tex create mode 100644 docs/historical/mh-6.8.5/papers/mh6/version create mode 100755 docs/historical/mh-6.8.5/papers/mh6/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/mh6/version.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/appendixA.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/diagram2.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/diagram3.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/figure0.pic create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/figure0.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/figure1.pic create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/figure1.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/multifarious.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/refs.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/text.tex create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/version create mode 100755 docs/historical/mh-6.8.5/papers/multifarious/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/multifarious/version.tex create mode 100644 docs/historical/mh-6.8.5/papers/mznet/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/mznet/READ-ME create mode 100644 docs/historical/mh-6.8.5/papers/mznet/figure1.pic create mode 100644 docs/historical/mh-6.8.5/papers/mznet/figure1.tex create mode 100644 docs/historical/mh-6.8.5/papers/mznet/figure2.pic create mode 100644 docs/historical/mh-6.8.5/papers/mznet/figure2.tex create mode 100644 docs/historical/mh-6.8.5/papers/mznet/mznet.aux create mode 100644 docs/historical/mh-6.8.5/papers/mznet/mznet.bbl create mode 100644 docs/historical/mh-6.8.5/papers/mznet/mznet.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/realwork/appendixA.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/appendixB.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram1.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram10.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram2.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram3.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram4.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram5.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram6.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram7.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram8.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/diagram9.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/realwork.ps create mode 100644 docs/historical/mh-6.8.5/papers/realwork/realwork.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/refs.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/text.tex create mode 100644 docs/historical/mh-6.8.5/papers/realwork/version create mode 100755 docs/historical/mh-6.8.5/papers/realwork/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/realwork/version.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/trusted/appendixA.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/appendixB.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/appendixC.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/diagramA1-1.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/diagramA1-2.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/diagramA1-3.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/diagramA1-4.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/diagramB1-1.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/diagramB1-2.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/figure1.pic create mode 100644 docs/historical/mh-6.8.5/papers/trusted/figure1.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/figure2.pic create mode 100644 docs/historical/mh-6.8.5/papers/trusted/figure2.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/figure3.pic create mode 100644 docs/historical/mh-6.8.5/papers/trusted/figure3.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/refs.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/table4.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/text.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/trusted.tex create mode 100644 docs/historical/mh-6.8.5/papers/trusted/version create mode 100755 docs/historical/mh-6.8.5/papers/trusted/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/trusted/version.tex create mode 100644 docs/historical/mh-6.8.5/papers/tutorial/Makefile create mode 100644 docs/historical/mh-6.8.5/papers/tutorial/refs.tex create mode 100644 docs/historical/mh-6.8.5/papers/tutorial/text.tex create mode 100644 docs/historical/mh-6.8.5/papers/tutorial/tutorial.tex create mode 100644 docs/historical/mh-6.8.5/papers/tutorial/version create mode 100755 docs/historical/mh-6.8.5/papers/tutorial/version.sh create mode 100644 docs/historical/mh-6.8.5/papers/tutorial/version.tex create mode 100644 docs/historical/mh-6.8.5/sbr/Makefile create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/addrsbr.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/advertise.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/brkstring.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/closefds.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/copy.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/cpydgst.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/discard.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/fdcompare.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/fmtcompile.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/formataddr.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/formatdef.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/formatsbr.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/gans.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/getans.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/help.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_atoi.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_convert.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_draft.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_fmsg.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_foil.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_getdefs.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_getfld.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_gmsg.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_maildir.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_msgdef.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_readefs.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_remsg.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_seq.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_seqnew.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_sync.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/m_update.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/makedir.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/path.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/pidstatus.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/pidwait.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/push.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/putenv.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/pwd.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/refile.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/remdir.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/ruserpass.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/smatch.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/sprintb.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/strindex.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/trimcpy.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/uleq.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/uprf.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/version,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/version.local,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/version.major,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/version.minor,v create mode 100755 docs/historical/mh-6.8.5/sbr/RCS/version.sh,v create mode 100644 docs/historical/mh-6.8.5/sbr/RCS/vfgets.c,v create mode 100644 docs/historical/mh-6.8.5/sbr/add.c create mode 100644 docs/historical/mh-6.8.5/sbr/addrsbr.c create mode 100644 docs/historical/mh-6.8.5/sbr/adios.c create mode 100644 docs/historical/mh-6.8.5/sbr/admonish.c create mode 100644 docs/historical/mh-6.8.5/sbr/advertise.c create mode 100644 docs/historical/mh-6.8.5/sbr/advise.c create mode 100644 docs/historical/mh-6.8.5/sbr/ambigsw.c create mode 100644 docs/historical/mh-6.8.5/sbr/atooi.c create mode 100644 docs/historical/mh-6.8.5/sbr/brkstring.c create mode 100644 docs/historical/mh-6.8.5/sbr/closefds.c create mode 100644 docs/historical/mh-6.8.5/sbr/concat.c create mode 100644 docs/historical/mh-6.8.5/sbr/copy.c create mode 100644 docs/historical/mh-6.8.5/sbr/copyip.c create mode 100644 docs/historical/mh-6.8.5/sbr/cpydata.c create mode 100644 docs/historical/mh-6.8.5/sbr/cpydgst.c create mode 100644 docs/historical/mh-6.8.5/sbr/discard.c create mode 100644 docs/historical/mh-6.8.5/sbr/done.c create mode 100644 docs/historical/mh-6.8.5/sbr/fdcompare.c create mode 100644 docs/historical/mh-6.8.5/sbr/fmtcompile.c create mode 100644 docs/historical/mh-6.8.5/sbr/formataddr.c create mode 100644 docs/historical/mh-6.8.5/sbr/formatdef.c create mode 100644 docs/historical/mh-6.8.5/sbr/formatsbr.c create mode 100644 docs/historical/mh-6.8.5/sbr/gans.c create mode 100644 docs/historical/mh-6.8.5/sbr/getans.c create mode 100644 docs/historical/mh-6.8.5/sbr/getanswer.c create mode 100644 docs/historical/mh-6.8.5/sbr/getcpy.c create mode 100644 docs/historical/mh-6.8.5/sbr/help.c create mode 100644 docs/historical/mh-6.8.5/sbr/llib-lmh create mode 100644 docs/historical/mh-6.8.5/sbr/m_atoi.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_backup.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_convert.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_delete.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_draft.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_find.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_fmsg.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_foil.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_getdefs.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_getfld.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_getfolder.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_gmprot.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_gmsg.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_maildir.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_msgdef.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_name.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_readefs.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_remsg.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_replace.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_scratch.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_seq.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_seqbits.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_seqflag.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_seqnew.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_setcur.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_setseq.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_setvis.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_sync.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_tmpfil.c create mode 100644 docs/historical/mh-6.8.5/sbr/m_update.c create mode 100644 docs/historical/mh-6.8.5/sbr/makedir.c create mode 100644 docs/historical/mh-6.8.5/sbr/path.c create mode 100644 docs/historical/mh-6.8.5/sbr/peekc.c create mode 100644 docs/historical/mh-6.8.5/sbr/pidstatus.c create mode 100644 docs/historical/mh-6.8.5/sbr/pidwait.c create mode 100644 docs/historical/mh-6.8.5/sbr/printsw.c create mode 100644 docs/historical/mh-6.8.5/sbr/push.c create mode 100644 docs/historical/mh-6.8.5/sbr/putenv.c create mode 100644 docs/historical/mh-6.8.5/sbr/pwd.c create mode 100644 docs/historical/mh-6.8.5/sbr/r1bindex.c create mode 100644 docs/historical/mh-6.8.5/sbr/refile.c create mode 100644 docs/historical/mh-6.8.5/sbr/remdir.c create mode 100644 docs/historical/mh-6.8.5/sbr/ruserpass.c create mode 100644 docs/historical/mh-6.8.5/sbr/showfile.c create mode 100644 docs/historical/mh-6.8.5/sbr/smatch.c create mode 100644 docs/historical/mh-6.8.5/sbr/sprintb.c create mode 100644 docs/historical/mh-6.8.5/sbr/ssequal.c create mode 100644 docs/historical/mh-6.8.5/sbr/strindex.c create mode 100644 docs/historical/mh-6.8.5/sbr/trimcpy.c create mode 100644 docs/historical/mh-6.8.5/sbr/uleq.c create mode 100644 docs/historical/mh-6.8.5/sbr/uprf.c create mode 100644 docs/historical/mh-6.8.5/sbr/vfgets.c create mode 100644 docs/historical/mh-6.8.5/shared/Makefile create mode 100644 docs/historical/mh-6.8.5/support/Makefile create mode 100644 docs/historical/mh-6.8.5/support/bboards/BBoards create mode 100644 docs/historical/mh-6.8.5/support/bboards/Example create mode 100644 docs/historical/mh-6.8.5/support/bboards/MakeBBoards create mode 100644 docs/historical/mh-6.8.5/support/bboards/Makefile create mode 100644 docs/historical/mh-6.8.5/support/bboards/RCS/bbaka.c,v create mode 100644 docs/historical/mh-6.8.5/support/bboards/RCS/bbexp.c,v create mode 100644 docs/historical/mh-6.8.5/support/bboards/RCS/bbtar.c,v create mode 100644 docs/historical/mh-6.8.5/support/bboards/bbaka.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/bbexp.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/bboards.daily create mode 100644 docs/historical/mh-6.8.5/support/bboards/bboards.weekly create mode 100644 docs/historical/mh-6.8.5/support/bboards/bbtar.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/crontab create mode 100644 docs/historical/mh-6.8.5/support/bboards/cshrc create mode 100644 docs/historical/mh-6.8.5/support/bboards/mh_profile create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/Makefile.add create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/READ-ME create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards.names create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards/RCS/bb_wtmail.c,v create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards/READ-ME create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards/bb_wtmail.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards/bboards.h create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards/ch_bboards.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards/getbbent.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/bboards/qu2bb_send.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfI/conf_chan.add create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/READ-ME create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/Makefile.real create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/RCS/bb_wtmail.c,v create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/RCS/dropsbr.c,v create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/RCS/lock.c,v create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/READ-ME create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/bb_wtmail.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/bboards.h create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/ch_bboards.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/dropsbr.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/dropsbr.h create mode 100755 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/gen create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/getbbent.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/lock.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/mmdfonly.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/mmdfonly.h create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/mts.h create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/qu2bb_send.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/r1bindex.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/strindex.c create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/strings.h create mode 100644 docs/historical/mh-6.8.5/support/bboards/mmdfII/bboards/uprf.c create mode 100644 docs/historical/mh-6.8.5/support/general/BBoardAliases create mode 100644 docs/historical/mh-6.8.5/support/general/MailAliases create mode 100644 docs/historical/mh-6.8.5/support/general/Makefile create mode 100755 docs/historical/mh-6.8.5/support/general/RCS/bootmhn.findit,v create mode 100755 docs/historical/mh-6.8.5/support/general/RCS/bootmhn.sh,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/mhl.headers,v create mode 100755 docs/historical/mh-6.8.5/support/general/RCS/packmbox.sh,v create mode 100755 docs/historical/mh-6.8.5/support/general/RCS/pgped.sh,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/pgped.tcl,v create mode 100755 docs/historical/mh-6.8.5/support/general/RCS/pgpshow.sh,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/replcomps,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/scan.default,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/scan.mailx,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/scan.size,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/scan.time,v create mode 100644 docs/historical/mh-6.8.5/support/general/RCS/scan.timely,v create mode 100755 docs/historical/mh-6.8.5/support/general/RCS/viamail.sh,v create mode 100755 docs/historical/mh-6.8.5/support/general/bootmhn.findit create mode 100755 docs/historical/mh-6.8.5/support/general/bootmhn.sh create mode 100644 docs/historical/mh-6.8.5/support/general/components create mode 100644 docs/historical/mh-6.8.5/support/general/digestcomps create mode 100644 docs/historical/mh-6.8.5/support/general/distcomps create mode 100644 docs/historical/mh-6.8.5/support/general/forwcomps create mode 100644 docs/historical/mh-6.8.5/support/general/mhl.body create mode 100644 docs/historical/mh-6.8.5/support/general/mhl.digest create mode 100644 docs/historical/mh-6.8.5/support/general/mhl.format create mode 100644 docs/historical/mh-6.8.5/support/general/mhl.forward create mode 100644 docs/historical/mh-6.8.5/support/general/mhl.headers create mode 100755 docs/historical/mh-6.8.5/support/general/packmbox.sh create mode 100755 docs/historical/mh-6.8.5/support/general/pgped.sh create mode 100644 docs/historical/mh-6.8.5/support/general/pgped.tcl create mode 100755 docs/historical/mh-6.8.5/support/general/pgpshow.sh create mode 100644 docs/historical/mh-6.8.5/support/general/rcvdistcomps create mode 100644 docs/historical/mh-6.8.5/support/general/replcomps create mode 100644 docs/historical/mh-6.8.5/support/general/scan.default create mode 100644 docs/historical/mh-6.8.5/support/general/scan.mailx create mode 100644 docs/historical/mh-6.8.5/support/general/scan.size create mode 100644 docs/historical/mh-6.8.5/support/general/scan.time create mode 100644 docs/historical/mh-6.8.5/support/general/scan.timely create mode 100755 docs/historical/mh-6.8.5/support/general/viamail.sh create mode 100644 docs/historical/mh-6.8.5/support/pop/Makefile create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/pop-more.txt,v create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/popaka.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/popauth.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/popauth.h,v create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/popd.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/popser.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/popwrd.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/RCS/syslog.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/READ-ME create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/Makefile.real create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/RCS/dropsbr.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/RCS/lock.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/RCS/po_wtmail.c,v create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/READ-ME create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/bboards.h create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/ch_pop.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/dropsbr.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/dropsbr.h create mode 100755 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/gen create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/getbbent.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/lock.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/mmdfonly.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/mmdfonly.h create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/mts.h create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/po_wtmail.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/qu2po_send.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/r1bindex.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/strindex.c create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/strings.h create mode 100644 docs/historical/mh-6.8.5/support/pop/mmdfII/pop/uprf.c create mode 100644 docs/historical/mh-6.8.5/support/pop/pop-more.txt create mode 100644 docs/historical/mh-6.8.5/support/pop/pop.txt create mode 100644 docs/historical/mh-6.8.5/support/pop/popaka.c create mode 100644 docs/historical/mh-6.8.5/support/pop/popauth.c create mode 100644 docs/historical/mh-6.8.5/support/pop/popauth.h create mode 100644 docs/historical/mh-6.8.5/support/pop/popbb.txt create mode 100644 docs/historical/mh-6.8.5/support/pop/popd.c create mode 100644 docs/historical/mh-6.8.5/support/pop/popser.c create mode 100644 docs/historical/mh-6.8.5/support/pop/popwrd.c create mode 100644 docs/historical/mh-6.8.5/support/pop/rfc1081.txt create mode 100644 docs/historical/mh-6.8.5/support/pop/rfc1082.txt create mode 100644 docs/historical/mh-6.8.5/support/pop/syslog.c create mode 100644 docs/historical/mh-6.8.5/support/pop/syslog.h create mode 100644 docs/historical/mh-6.8.5/uip/Makefile create mode 100644 docs/historical/mh-6.8.5/uip/RCS/ali.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/aliasbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/anno.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/annosbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/ap.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/bbc.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/bbl.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/burst.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/comp.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/conflict.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/dist.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/distsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/dp.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/dropsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/fmtdump.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/folder.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/forw.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/ftpsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/inc.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/install-mh.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/kclient.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mark.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/md5.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mhl.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mhlsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mhmail.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mhn.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mhparam.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mhpath.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/msgchk.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/msh.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/mshcmds.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/packf.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/pick.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/picksbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/popi.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/popsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/post.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/prompter.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/pshsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/rcvdist.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/rcvpack.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/rcvstore.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/rcvtty.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/refile.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/repl.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/replsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/rmail.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/rmf.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/rmm.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/sbboards.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/scan.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/scansbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/send.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/sendmail.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/sendsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/show.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/slocal.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/sortm.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/spop.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/spost.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/trmsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/ttyd.h,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/ttym.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/ttyw.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/umhook.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/version.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/version.local,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/version.patch,v create mode 100755 docs/historical/mh-6.8.5/uip/RCS/version.sh,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/vmh.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/vmhsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/vmhtest.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/whatnow.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/whatnowproc.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/whatnowsbr.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/whatnowsbr.o,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/whom.c,v create mode 100644 docs/historical/mh-6.8.5/uip/RCS/wmh.c,v create mode 100644 docs/historical/mh-6.8.5/uip/ali.c create mode 100644 docs/historical/mh-6.8.5/uip/aliasbr.c create mode 100644 docs/historical/mh-6.8.5/uip/anno.c create mode 100644 docs/historical/mh-6.8.5/uip/annosbr.c create mode 100644 docs/historical/mh-6.8.5/uip/ap.c create mode 100644 docs/historical/mh-6.8.5/uip/bbc.c create mode 100644 docs/historical/mh-6.8.5/uip/bbl.c create mode 100644 docs/historical/mh-6.8.5/uip/burst.c create mode 100644 docs/historical/mh-6.8.5/uip/comp.c create mode 100644 docs/historical/mh-6.8.5/uip/conflict.c create mode 100644 docs/historical/mh-6.8.5/uip/dist.c create mode 100644 docs/historical/mh-6.8.5/uip/distsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/dp.c create mode 100644 docs/historical/mh-6.8.5/uip/dropsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/fmtdump.c create mode 100644 docs/historical/mh-6.8.5/uip/folder.c create mode 100644 docs/historical/mh-6.8.5/uip/forw.c create mode 100644 docs/historical/mh-6.8.5/uip/ftpsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/inc.c create mode 100644 docs/historical/mh-6.8.5/uip/install-mh.c create mode 100644 docs/historical/mh-6.8.5/uip/mark.c create mode 100644 docs/historical/mh-6.8.5/uip/md5.c create mode 100644 docs/historical/mh-6.8.5/uip/mhl.c create mode 100644 docs/historical/mh-6.8.5/uip/mhlsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/mhmail.c create mode 100644 docs/historical/mh-6.8.5/uip/mhn.c create mode 100644 docs/historical/mh-6.8.5/uip/mhparam.c create mode 100644 docs/historical/mh-6.8.5/uip/mhpath.c create mode 100644 docs/historical/mh-6.8.5/uip/msgchk.c create mode 100644 docs/historical/mh-6.8.5/uip/msh.c create mode 100644 docs/historical/mh-6.8.5/uip/mshcmds.c create mode 100644 docs/historical/mh-6.8.5/uip/packf.c create mode 100644 docs/historical/mh-6.8.5/uip/pick.c create mode 100644 docs/historical/mh-6.8.5/uip/picksbr.c create mode 100644 docs/historical/mh-6.8.5/uip/popi.c create mode 100644 docs/historical/mh-6.8.5/uip/popsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/post.c create mode 100644 docs/historical/mh-6.8.5/uip/prompter.c create mode 100644 docs/historical/mh-6.8.5/uip/pshsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/rcvdist.c create mode 100644 docs/historical/mh-6.8.5/uip/rcvpack.c create mode 100644 docs/historical/mh-6.8.5/uip/rcvstore.c create mode 100644 docs/historical/mh-6.8.5/uip/rcvtty.c create mode 100644 docs/historical/mh-6.8.5/uip/refile.c create mode 100644 docs/historical/mh-6.8.5/uip/repl.c create mode 100644 docs/historical/mh-6.8.5/uip/replsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/rmail.c create mode 100644 docs/historical/mh-6.8.5/uip/rmf.c create mode 100644 docs/historical/mh-6.8.5/uip/rmm.c create mode 100644 docs/historical/mh-6.8.5/uip/sbboards.c create mode 100644 docs/historical/mh-6.8.5/uip/scan.c create mode 100644 docs/historical/mh-6.8.5/uip/scansbr.c create mode 100644 docs/historical/mh-6.8.5/uip/send.c create mode 100644 docs/historical/mh-6.8.5/uip/sendmail.c create mode 100644 docs/historical/mh-6.8.5/uip/sendsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/show.c create mode 100644 docs/historical/mh-6.8.5/uip/slocal.c create mode 100644 docs/historical/mh-6.8.5/uip/sortm.c create mode 100644 docs/historical/mh-6.8.5/uip/spop.c create mode 100644 docs/historical/mh-6.8.5/uip/spost.c create mode 100644 docs/historical/mh-6.8.5/uip/trmsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/ttyd.h create mode 100644 docs/historical/mh-6.8.5/uip/ttym.c create mode 100644 docs/historical/mh-6.8.5/uip/ttyw.c create mode 100644 docs/historical/mh-6.8.5/uip/umhook.c create mode 100644 docs/historical/mh-6.8.5/uip/vmh.c create mode 100644 docs/historical/mh-6.8.5/uip/vmhsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/vmhtest.c create mode 100644 docs/historical/mh-6.8.5/uip/whatnow.c create mode 100644 docs/historical/mh-6.8.5/uip/whatnowproc.c create mode 100644 docs/historical/mh-6.8.5/uip/whatnowsbr.c create mode 100644 docs/historical/mh-6.8.5/uip/whom.c create mode 100644 docs/historical/mh-6.8.5/uip/wmh.c create mode 100644 docs/historical/mh-6.8.5/zotnet/Makefile create mode 100644 docs/historical/mh-6.8.5/zotnet/RCS/bboards.h,v create mode 100644 docs/historical/mh-6.8.5/zotnet/RCS/mf.h,v create mode 100644 docs/historical/mh-6.8.5/zotnet/RCS/mts.h,v create mode 100644 docs/historical/mh-6.8.5/zotnet/RCS/tws.h,v create mode 100644 docs/historical/mh-6.8.5/zotnet/bboards.h create mode 100644 docs/historical/mh-6.8.5/zotnet/bboards/Makefile create mode 100644 docs/historical/mh-6.8.5/zotnet/bboards/RCS/bboards.h,v create mode 100644 docs/historical/mh-6.8.5/zotnet/bboards/RCS/getbbent.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/bboards/bboards.h create mode 100644 docs/historical/mh-6.8.5/zotnet/bboards/getbbent.c create mode 100644 docs/historical/mh-6.8.5/zotnet/bboards/llib-lbboards create mode 100644 docs/historical/mh-6.8.5/zotnet/llib-lzotnet create mode 100644 docs/historical/mh-6.8.5/zotnet/mf.h create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/Makefile create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/RCS/mf.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/RCS/mf.h,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/RCS/muinc.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/RCS/uminc.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/llib-lmf create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mf.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mf.h create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/Makefile.add create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/conf_chan.add create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/uucp/RCS/qu2uu_send.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/uucp/RCS/rmail.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/uucp/ch_uucp.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/uucp/qu2uu_send.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/uucp/rmail.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/src/uucp/uu_wtmail.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/table/rmail.ok create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/table/rmail.okdests create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmdfI/table/uucp.names create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/mmuu.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/muinc.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/musift.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/uminc.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/umsift.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mf/uumm.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mts.h create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/Makefile create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/RCS/client.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/RCS/lock.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/RCS/mts.h,v create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/client.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/llib-lmts create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/lock.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/mts.c create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/mts.h create mode 100644 docs/historical/mh-6.8.5/zotnet/mts/mtstailor create mode 100644 docs/historical/mh-6.8.5/zotnet/tws.h create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/Makefile create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/RCS/dtime.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/RCS/dtimep.lex,v create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/RCS/lexedit.sed,v create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/RCS/lexstring.c,v create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/date.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/dtime.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/dtimep.c-lexed create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/dtimep.lex create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/lexedit.sed create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/lexstring.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/llib-ltws create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/Makefile create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/README create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/deltime.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/deltime.man create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/dtime.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/dtimep.lex create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/lexedit.sed create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/lexstring.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/libtws.man create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/parsetime.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/phoon.c create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/phoon.man create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/phoon/tws.h create mode 100644 docs/historical/mh-6.8.5/zotnet/tws/tws.h diff --git a/docs/historical/README b/docs/historical/README new file mode 100644 index 0000000..afd7a5a --- /dev/null +++ b/docs/historical/README @@ -0,0 +1,119 @@ +The most recent versions of the documents in this directory were +downloaded from ftp://ftp.vim.org/pub/mail/mh/doc/ + +Identical versions are available at +http://iweb.dl.sourceforge.net/project/rand-mh/Documentation/1.0/MH-doc.tgz + +These older versions: + ADMIN-19910201.txt + MH-19910201.txt + MH-19921214.pdf + MH-19921214.txt +were downloaded from ftp://munnari.oz.au/pub/mh/doc/ + +designOfMH.pdf was downloaded from +http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA257836 + +mh-6.8.5/ contains the entire MH 6.8.5, include source code and +RCS files, and was downloaded from +http://iweb.dl.sourceforge.net/project/rand-mh/MH/6.8.5/mh-6.8.5.tgz + +MH source code, versions 6.3 through 6.8.5, is archived under +http://sourceforge.net/projects/rand-mh/files/ + + +The README below is retained in its original form for posterity. All +of the txt (.doc and .tty) files have been renamed to .txt. All of +the postscript (.ps) files have been converted to pdf using ps2pdf. + +D. Levine 28 Feb 2012 + +------------------------------------------------------------------------ +------------------------------------------------------------------------ + +mh/doc/README + +These are formatted versions of the major MH documents (written +using the troff "-ms" and "-me" macro packages). The ".doc" files +are formatted for 66 lines/page: + + ADMIN.doc - The MH Administrator's Manual - how to configure MH + MH.doc - The MH User's Manual + changes.doc - Changes from MH 6.6 to MH 6.8 + mh-gen.doc - The "READ-ME" file - how to generate MH (aka mh-gen(8)) + +Postscript versions are also available: + + ADMIN.ps - The MH Administrator's Manual - how to configure MH + MH.ps - The MH User's Manual + changes.ps - Changes from MH 6.6 to MH 6.8 + mh-gen.ps - The "READ-ME" file - how to generate MH (aka mh-gen(8)) + +------------------------------------------------------------------------ + +These are postscript conversions of the MH papers which were written +using the TeX typesetting language: + + bboards.ps - The UCI BBoards Facility + beginners.ps - UCI MH for Beginners + mh4mm.ps - MH for MM users + mh6.ps - Changes from MH 6.0 to MH 6.5 for 4.3BSD + multifarious.ps - MH: A Multifarious User Agen + mznet.ps - MZnet - Mail Service for Personal Micro Comp. Sys. + realwork.ps - MH.5 - How to process 200 messages... + trusted.ps - Design of the TTI Prototype Trusted Mail Agent + tutorial.ps - The MH Tutorial + +These conversions have been provided because they may be of use to some +sites who retrieved MH using FTP, and who do not have TeX to typeset +the papers themselves. Of course, all recipients of an MH distribution +tape receive a complete set of laser-printed manuals. + +These conversions were generated with the "dvips" program. I have +printed them on an Imagen 5320 w/ Turboscript, and the output is +identical to the original "dvi" versions of these papers. + +As yet, I have had no success downloading the postscript files to a Mac- +intosh, and printing them on a Laserwriter. If you are able to generate +copies of these papers which will print (identically to the originals or +otherwise) on a Laserwriter, please contact "Bug-MH@ICS.UCI.EDU". + +------------------------------------------------------------------------ + +These files are tty-readable conversions of the MH papers which were +written using the TeX typesetting language: + + bboards.tty - The UCI BBoards Facility + beginners.tty - UCI MH for Beginners + mh4mm.tty - MH for MM users + mh6.tty - Changes from MH 6.0 to MH 6.5 for 4.3BSD + multifarious.tty - MH: A Multifarious User Agen + mznet.tty - MZnet - Mail Service for Personal Micro Comp. Sys. + realwork.tty - MH.5 - How to process 200 messages... + trusted.tty - Design of the TTI Prototype Trusted Mail Agent + tutorial.tty - The MH Tutorial + +These conversions have been provided because they may be of use to some +sites who retrieved MH using FTP, and who do not have TeX or a laser +printer on which to print the papers. If you have a Postscript +printer, you may want to retrieve the Postscript conversion of these +papers, available in a different tar archive. + +Of course, all recipients of an MH distribution tape receive a complete +set of laser-printed manuals, and these conversions are not a +substitute for properly-formatted copies of the originals. + +The conversion was generated by the "dvi2tty" program. As full use of +TeX's rich typesetting environment was used in writing many of these +papers, and since the output is intended for a line printer, it is +necessarily quite primitive. + +Font changes and special character representations are lost entirely. +White-space between words may be deleted or expanded, especially near +punctuation characters. Blank lines may be added or deleted. + +Since typeset lines are typically longer than 80 tty characters, the +output has been generated for 132-colunm output devices. A typical +page has about 76 lines. Pages are separated by a formfeed character. + +/JLR diff --git a/docs/historical/mh-6.8.5/CHANGES b/docs/historical/mh-6.8.5/CHANGES new file mode 100644 index 0000000..0ff34f6 --- /dev/null +++ b/docs/historical/mh-6.8.5/CHANGES @@ -0,0 +1,1518 @@ + + + + + + + + + + Changes to + The RAND MH Message Handling System: + UCI version MH 6.8 + + + John L. Romine + + Computing Support Group + Information and Computer Science + University of California, Irvine + Irvine, CA 92717-3425 + Bug-MH@ICS.UCI.EDU + http://www.ics.uci.edu/~mh + + + _A_B_S_T_R_A_C_T + + + This document describes the changes to the + UCI version of the RAND MH system from MH 6.6 to + this release of MH 6.8. This document is meant to + supplement, not supersede, the standard MH User's + manual and MH Administrator's manual. + + Comments concerning this documentation should + be addressed to the mailbox Bug-MH@ICS.UCI.EDU. + Current information about MH can be obtained from + the MH Home Page on the World Wide Web at + http://www.ics.uci.edu/~mh. + + + + _A_C_K_N_O_W_L_E_D_G_E_M_E_N_T_S + + The _M_H system described herein is based on the original RAND + _M_H system. It has been extensively developed (perhaps too + much so) by Marshall T. Rose and John L. Romine at the + University of California, Irvine. Einar A. Stefferud, Jerry + N. Sweet, and Terry P. Domae provided numerous suggestions + to improve the UCI version of _M_H. + + Of course, a large number of people have helped _M_H + along. The list of "_M_H immortals" is too long to list here. + For this release, numerous _M_H-_W_o_r_k_e_r_s sent in fixes and + other changes. A handful of courageous _M_H-_W_o_r_k_e_r_s volun- + teered to beta-test these changes; their help is particu- + larly appreciated. + + + + + + + + February 8, 1996 + + + + + + Changes to MH 6.8 2 + + + + _D_I_S_C_L_A_I_M_E_R + + The Regents of the University of California wish to make it + known that: + + Although each program has been tested by its con- + tributor, no warranty, express or implied, is made + by the contributor or the University of Califor- + nia, as to the accuracy and functioning of the + program and related program material, nor shall + the fact of distribution constitute any such war- + ranty, and no responsibility is assumed by the + contributor or the University of California in + connection herewith. + + _C_O_N_V_E_N_T_I_O_N_S + + In this document, certain formatting conventions are adhered + to: + + The names of UNIX commands, such as _c_o_m_p are presented + in _i_t_a_l_i_c_s. + + Arguments to programs, such as `msgs' and `-nobell' are + delimited by single-quotes. + + Text that should be typed exactly as-is, such as com- + mand lines (e.g., "folder -pack"), are delimited by + double-quotes. + + UNIX pathnames and envariables, such as /usr/uci and + $SIGNATURE, are presented in bold font. + + + + + + + + + + + + + + + + + + + + + + + + + February 8, 1996 + + + + + + Changes for MH 6.8.4 3 + + + _C_H_A_N_G_E_S _F_O_R _M_H _6._8._4 + + The MH 6.8.4 release is a minor maintenance release, and + contains few user-visible changes. The changes consist + mostly of documentation improvements, minor bug fixes, and + some portability enhancements for BSD 4.4 and Solaris 2.x + (contributed changes for HPUX and OSF1 have not yet been + integrated into this release). This is the current version + of MH as of February 8, 1996. + + _R_u_n_t_i_m_e _T_a_i_l_o_r_i_n_g + + By default _p_o_s_t will now give the SMTP HELO command with the + local hostname. If you specify a hostname with the + clientname: option in the _m_t_s_t_a_i_l_o_r file, _p_o_s_t will give the + HELO command with that name instead. If the argument to the + clientname: option is empty, no HELO command is given. See + _m_h-_t_a_i_l_o_r(5) for more details. + + _M_u_l_t_i-_m_e_d_i_a _M_a_i_l & _E_n_c_r_y_p_t_i_o_n + + A few new PGP support programs can be found in the + support/general directory. _r_e_p_l supports the `-[no]mime' + option. See _r_e_p_l(1) for more details. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + February 8, 1996 + + + + + + Changes for MH 6.8.3 4 + + + _C_H_A_N_G_E_S _F_O_R _M_H _6._8._3 + + The MH 6.8.3 maintenance release contains few user-visible + changes. Most of the changes are internal to the multi- + media display program _m_h_n to support RFC 1521 (the new MIME + standard). This is the current version of MH as of December + 1, 1993. + + _R_u_n_t_i_m_e _T_a_i_l_o_r_i_n_g + + When posting mail using the SMTP, _p_o_s_t did not normally send + the HELO command. This was because _S_e_n_d_M_a_i_l would fail if + the host name given in the HELO command was the local host. + Later versions of _S_e_n_d_M_a_i_l will now complain if you omit the + HELO command. + + _U_s_e_r _I_n_t_e_r_f_a_c_e _P_r_o_g_r_a_m_s + + folder The _f_o_l_d_e_r command now has `-create' and `-nocreate' + options. See _f_o_l_d_e_r(1) for details. + + inc A bug where `-host' would not override the pophost + as set in the _m_t_s_t_a_i_l_o_r file has been fixed. This + bug was also fixed in _m_s_g_c_h_k. + + mhn The _m_h_n command has several changes: updates for + conformance with RFC 1521, addition of two caches: + public and private, addition of two caching poli- + cies: one for reading and one for writing, support + for storing multipart entities, and a few bug fixes. + See _m_h_n(1) for complete details. + + _C_H_A_N_G_E_S _F_O_R _M_H _6._8._2 + + The MH.6.8.2 patch release contains only internal changes to + support the BSD 4.4 and 386BSD versions of UNIX. This ver- + sion of _M_H was released August 25, 1993, but was not widely + distributed. + + _C_H_A_N_G_E_S _F_O_R _M_H _6._8._1 + + The MH.6.8.1 patch release is a maintenance release. This + is the current released version of _M_H as of August 20, 1993. + + This release includes a small number of bug fixes, a + few minor enhancements, some changes for the new MIME stan- + dard, and support for ESMTP (RFC 1425). Support for BSD 4.4 + and 386BSD is planned for the next release. + + Many other fixes which have already been received are + still being merged. If you've sent an update for MH 6.8 to + Bug-MH@ics.uci.edu and it isn't in this release, it'll prob- + ably appear in the next release. + + + + + December 1, 1993 + + + + + + Changes for MH 6.8.3 5 + + + _F_i_x_e_s _a_n_d _E_n_h_a_n_c_e_m_e_n_t_s + + Many minor documentation corrections were made. There are + also a few program changes: + + mhn The `-cache policy', `-[no]check', and `-[no]pause' + switches have been added. Some other minor changes + have been made to comply with the new MIME standard. + See _m_h_n(1) for complete details. + + post When posting mail with SendMail, _p_o_s_t will not use the + ONEX command when it is posting a message with BCCs. + + scan _s_c_a_n will now work with big width values. + + _F_o_r_m_a_t _S_t_r_i_n_g_s + + One new function has been added: + + %(profile arg) This function looks up a component in the + .mh_profile or context files and returns the + value of that component. + + _C_o_n_f_i_g_u_r_a_t_i_o_n + + Two new configuration options are present: + + GCOS_HACK The so-called "gcos" field of the password file + is used as a last resort to find the user's + full name (see _m_h-_p_r_o_f_i_l_e(5) for details). + Enable this option if your _p_a_s_s_w_d(5) man page + notes that the `&' character in the "gcos" + field stands for the login name. + + NORUSERPASS Tells _M_H that your system doesn't have the + _r_u_s_e_r_p_a_s_s(3) routine; _M_H will include its own + copy of this routine in its library. + + + + + + + + + + + + + + + + + + + + + December 1, 1993 + + + + + + Changes for MH 6.8 6 + + + _C_H_A_N_G_E_S _F_O_R _M_H _6._8 + + This is the current released version of _M_H as of December + 14, 1992. This release includes a number of bug fixes and + internal changes to make the code more portable. Two new + authentication methods are provided for the POP, and support + for SVR4 shared libraries is complete. + + The major user-visible change in this release is the + incorporation of support for multi-media mail as specified + by the Multi-purpose Internet Mail Extensions (MIME) + RFC 1341. This allows you to include things like audio, + graphics, and the like, in your mail messages. A new com- + mand, _m_h_n, has been provided to support MIME and a detailed + man page is provided in _m_h_n(1). + + _D_o_c_u_m_e_n_t_a_t_i_o_n + + The documentation has some general improvements, and the + READ-ME document has been re-organized to help _M_H adminis- + trators find the appropriate configuration options for their + system. The Makefiles in the papers/ hierarchy have been + changed to invoke _T_e_X as "tex" (instead of "tex82"). + + The following new man pages are also available: + + _m_h_n(1) _m_h_n helps the user process multi-media mail. + + _m_h_p_a_r_a_m(1) _m_h_p_a_r_a_m lets the user extract information from + the _M_H profile. + + _p_o_p_a_u_t_h(8) the APOP database administration program (see + below). + + _p_o_p_i(1) the POP initiator (see below). + + _s_l_o_c_a_l(1) fully documents _s_l_o_c_a_l. The _m_h_o_o_k(1) man page + now documents only the _M_H receive-mail hooks. + + _I_n_t_e_r_n_a_l _C_h_a_n_g_e_s + + The _M_H source code is in the process of being cleaned up to + make pedantic ANSI C compilers happy. Occurrences of "NULL" + have been replaced by "0" where appropriate. Extra tokens + after "#else" and "#endif" have been put inside comments + (this is still in progress). The code should now compile + cleanly on many more systems, specifically, more variants of + SVR4. + + The version of tws/dtimep.c which was included in MH + 6.7.2 was incompatible with the _l_e_x library on some systems, + and has been removed. + + A bug in the handling of blind lists inside alias files + + + + December 14, 1992 + + + + + + Changes for MH 6.8 7 + + + has been fixed. + + _P_o_s_t _O_f_f_i_c_e _P_r_o_t_o_c_o_l + + There were three new options added to the POP. + + APOP This option indicates that the POP daemon will support + the non-standard APOP command which provides a + challenge-based authentication system using the MD5 + message digest algorithm. + + This option also causes the _p_o_p_a_u_t_h program to be in- + stalled, which allows the administrator to manipulate + the APOP authorization database. + + KPOP Support for KERBEROS with POP. This code builds _p_o_p_d, + _i_n_c and _m_s_g_c_h_k to support only the "kpop" protocol. + This code is still expiremental, but is available for + those sites wishing to test it. + + MPOP This option indicates that the POP daemon will support + the non-standard XTND SCAN command which provides per- + formance enhancements when using the POP over low- + speed connections. + + This option also causes an interactive POP client pro- + gram, _p_o_p_i, to be compiled and installed. A man page + for the _p_o_p_i program is also provided. This option + requires the configuration to have "bboards: pop". + + The APOP and MPOP non-standard POP facilities are documented + in _T_h_e _I_n_t_e_r_n_e_t _M_e_s_s_a_g_e (ISBN 0-13-092941-7), a book by + Marshall T. Rose. For more details, see support/pop/pop- + more.txt and the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e. The APOP option + peacefully co-exists with the standard POP, KPOP completely + replaces the standard POP, and MPOP requires "bboards: pop". + + _F_i_l_e _L_o_c_k_i_n_g + + The file locking code has been cleaned up to support three + kinds of kernel-level file locking. As appropriate for your + system, include the LOCKF, FCNTL or FLOCK option. For more + details, see _m_h-_t_a_i_l_o_r(5). + + + + + + + + + + + + + + + December 14, 1992 + + + + + + Changes for MH 6.8 8 + + + Configuration Directives + + A number of new configuration directives have been added or + changed. The full details are given in the READ-ME. + + cp: The command used to install new files if not + "cp". + + ln: The command used to link files together in the + source tree if not "ln". + + mts: Full support for ZMAILER has been added. + + popdir: The directory where _p_o_p_d will be installed if not + /usr/etc. + + regtest: Set to "on" to prevent the hostname and compile + date from being included in _M_H binaries. + + sharedlib: You may now specify "sun4" or "sys5" (for SVR4) + shared libraries. + + signal: Specifies the base type of the function returned + by _s_i_g_n_a_l(). This was previously defined with + "options TYPESIG". + + Several `-D' options to _c_c have been added or changed: + + APOP Authenticated POP (see above). + + AUX Support for A/UX systems. + + DBMPWD The DBM option has been renamed DBMPWD. + + HESIOD Support for the HESIOD name server. + + KPOP KERBEROS POP (see above). + + LOCALE Support for local characters sets; uses the _s_e_t_- + _l_o_c_a_l() function. + + MAILGROUP Makes _i_n_c set-group-id. You may need this option + if your /usr/spool/mail is not world-writeable. + + MIME Multi-media mail. + + MPOP Mobile POP (see above). + + MSGID Enables _s_l_o_c_a_l to detect and surpress duplicate + messages. + + OSF1 Support for DEC OSF1 systems. May be incomplete. + + RENAME Include this option if your system has a _r_e_n_a_m_e() + + + + December 14, 1992 + + + + + + Changes for MH 6.8 9 + + + system call. + + SVR4 Support for System 5 Release 4 or newer systems. + + TYPESIG This option has been dropped. See `signal' + above. + + UNISTD Include this option if your system has the + include file . + + VSPRINTF Include this option if your system has the + _v_s_p_r_i_n_t_f() library routine; otherwise, __d_o_p_r_n_t() + will be used. + + YEARMOD Forces the _m_h-_f_o_r_m_a_t `year' function to return + 2-digit values. Use this option during a brief + transition period if you have local _m_h-_f_o_r_m_a_t + files which need to be converted to support 4- + digit years. + + _F_U_N_C_T_I_O_N_A_L _C_H_A_N_G_E_S + + In addition to the configuration changes mentioned above, a + number of functional changes have been made to the system. + Many programs have new features added and a few new programs + have are provided. Each command's manual page gives complete + information about the its operation. Here is a short sum- + mary of the changes. + + _M_H _S_e_q_u_e_n_c_e_s + + A larger number of user-defined sequences are available. + Previously, this number had been 10. On 32-bit systems, 26 + user-defined sequences are available. + + _P_r_o_f_i_l_e _C_o_m_p_o_n_e_n_t_s + + _M_H programs will now complain if the .mh_profile does not + end in a newline. Also, one enhancement and one new profile + component are provided: + + Aliasfile: Multiple filenames may now be given. + + Inbox: New; the default folder (for _i_n_c, etc.) if not + "inbox". + + + + + + + + + + + + + December 14, 1992 + + + + + + Changes for MH 6.8 10 + + + + _F_o_r_m_a_t _S_t_r_i_n_g_s + + A few minor bugs were fixed in format string handling, and a + few new features were added. See _m_h-_f_o_r_m_a_t(5) for complete + details. + + Addresses An attempt is made to decipher X.400 + RFC 987-style addresses. + + Comments Comments may be added to _m_h-_f_o_r_m_a_t files; a + comment begins with the 2-character sequence + "%;", and ends with an un-escaped newline. + + %(modulo n) The `modulo' function escape has been added. + + %(year{date}) The date parser has been enhanced to under- + stand more illegal date formats; `year' now + returns a 4-digit number. + + _U_s_e_r _I_n_t_e_r_f_a_c_e _P_r_o_g_r_a_m_s + + A number of _M_H commands have minor changes: + + ali The output with `-user -list' was changed to match + the output with `-nouser -list'. + + burst Will no longer drop the last message of a digest. + + inc Accepts the `-apop' switch for authenticated POP + (see above); will attempt to detect write errors + (e.g., no space left on device) when incorporating + mail; no longer replaces newline characters with + NULLs. + + folder The `-noprint' option was broken and has been + dropped. + + forw Supports `-mime' to use MIME-style multi-part mes- + sages. + + mhl Will no longer put an extra space at the end of + the `%{text}' in a formatfield. + + mhn New; manipulates multi-media (MIME) messages; a + detailed man page is provided. + + mhparam New; reads the _M_H profile (and context) and writes + the values of the specified components on the + standard output; useful in programmatic con- + structs. + + msgchk Supports `-apop' (see above). + + + + + December 14, 1992 + + + + + + Changes for MH 6.8 11 + + + packmbox New; packs an _M_H folder into a UUCP-style mailbox. + + popi New; a client-side POP initiator; available only + if you built _M_H with the MPOP option (see above). + + refile A bug where the `rmmproc' did not remove all + specified message files has been fixed. + + scan The `-file' option is fully supported and will no + longer complain about empty folders. + + send Supports `-mime' and `-split' to split large mes- + sages into multiple partial messages using MIME. + + _S_u_p_p_o_r_t _P_r_o_g_r_a_m_s + + fmtdump Can now read a format file, or a format string + given on the command line. + + popauth New; manages the APOP authorization database (see + above). + + sendmail The _s_e_n_d_m_a_i_l replacement will be installed only if + your `mts' setting uses the `/smtp' option. + + slocal A new man page for _s_l_o_c_a_l is available; the new + `mbox' action is available to write a file in + _p_a_c_k_f format; a bug where extra `>' characters + were written to MMDF-style maildrops has been + fixed; if compiled with the MSGID option, can + detect and suppress reception of duplicate mes- + sages. + + viamail New; bundles a directory (like _s_h_a_r) and sends it + through multi-media mail. + + + + + + + + + + + + + + + + + + + + + + + December 14, 1992 + + + + + + Changes for MH 6.7.2 12 + + + _C_H_A_N_G_E_S _F_O_R _M_H _6._7._2 + + The MH.6.7.2 patch release is a maintenance release. This + is the current released version of _M_H as of February 1, + 1992. + + This release now supports the NCR Tower running SYS5R4. + The WP changes installed in MH.6.7.0 have been removed. + + _S_h_a_r_e_d _L_i_b_r_a_r_i_e_s + + Support for SYS 5 shared libraries is in progress. + + Support for Sun OS 4.0 shared libraries had been + improved. The _M_H library has been modified to move initial- + ized data into a data definition file. The shared library + will now consist of a libmh.so and libmh.sa file. The + shared library version number will no longer track the _M_H + patch release number, and its numbering begins with version + `1.1' with this release. + + _R_e_p_l_a_c_e_m_e_n_t _S_e_n_d_M_a_i_l + + Since many standard system programs expect to post mail by + invoking /usr/lib/sendmail, a minimal replacement _S_e_n_d_M_a_i_l + is provided in this release. This replacement is meant to + be installed on (e.g., diskless) client workstations which + post mail using SMTP, and do not run a message transport + system. It will call _p_o_s_t to post mail; be sure you have + configured _M_H with the `/smtp' mts option. This sendmail + replacement is installed in your _M_H etc directory, and you + should link /usr/lib/sendmail to it. + + _F_o_r_m_a_t _S_t_r_i_n_g_s + + A manual page for the _f_m_t_d_u_m_p format string disassembler is + supplied, and some new format functions were added: + + folder In _s_c_a_n, this component escape contains the name of + the current folder. It is not defined for other _M_H + commands. + + getenv This function escape returns the value of an en- + vironment variable. + + There will be some additional changes in these routines + in the next patch release. + + + + + + + + + + + Feb 1, 1992 + + + + + + Changes for MH 6.7.2 13 + + + + _O_t_h_e_r _B_u_g _F_i_x_e_s _a_n_d _E_n_h_a_n_c_e_m_e_n_t_s + + In addition to some other minor enhancements, some bugs were + fixed which in general were not user-visible: + + Blind lists Users may now specify RFC822 address groups in + their alias files. These groups are imple- + mented by _M_H as blind lists. + + date parsing A number of sites have brain-damaged versions + of lex. _M_H will now come with the date parser + already run through lex. + + mark A bug dealing with _m_a_r_k and the sequence named + `cur' is fixed. This was previously a problem + for mh-e users. + + MH.doc The _M_H nroff version of the manual no longer + contains teletype escape sequences. + + scan Can now handle headers as long as 512 bytes. + + Signals _M_H programs will no longer catch the HUP and + TERM signals while waiting for a sub-process. + This was causing hung processes when your ter- + minal line was was dropped unexpectedly. + + Signature If your signature is not defined, _M_H will use + the value of the gecos field of your + /etc/passwd entry as your signature. + + version.sh A bug in the awk script in config/version.sh + was fixed. + + + + + + + + + + + + + + + + + + + + + + + + Feb 1, 1992 + + + + + + Changes for MH 6.7.1a 14 + + + _C_H_A_N_G_E_S _F_O_R _M_H _6._7._1_a + + The MH.6.7.1a patch was made available on January 25, 1991 + for limited distribution only. (This release had some known + bugs, and so was not widely distributed.) This release + incorporates several new features of particular note to + users of sequences and format strings, as well as some gen- + eral documentation improvements. There are a few minor + enhancements and internal bug fixes also. Complete documen- + tation of these changes is given in the individual manual + pages, and the READ-ME file. + + _M_e_s_s_a_g_e _S_e_q_u_e_n_c_e_s + + A new manual page, _m_h-_s_e_q_u_e_n_c_e (5), has been added. This + manual page attempts to completely document the syntax and + semantics of _M_H message sequence specifications. + + A powerful new feature is the ability to specify mes- + sage ranges with user-defined sequences. The specification + "name:n" may be used, and it designates up to the first `n' + messages (or last `n' messages for `-n') which are + elements of the user-defined sequence `name'. + + The message specifications "name:next" and "name:prev" + may also be used, and they designate the next or previous + message (relative to the current message) which is an ele- + ment of the user-defined sequence `name'. The specifica- + tions "name:first" and "name:last" are equivalent to + "name:1" and "name:-1", respectively. The specification + "name:cur" is not allowed (use just "cur" instead). + + These specifications allow the user to step through a + sequence with a command like "show name:next". + + _F_o_r_m_a_t _S_t_r_i_n_g_s + + _M_H format strings now support an if-then-elseif-else clause + (the `elseif' is new). This will make format strings with + multi-case conditions somewhat less complex. + + A new format function `addr' had been added. This + function takes an address header name as its argument, and + returns a rendering of the address contained in that header + as "user@host" or "host!user". + + Format widths now may be specified as a negative + number. This causes the output to be right-justified within + the format width. + + + + + + + + + January 25, 1991 + + + + + + Changes for MH 6.7.1a 15 + + + + _O_t_h_e_r _C_h_a_n_g_e_s + + Along with a few minor enhancements, some bugs were fixed + which in general were not user-visible: + + fmtdump This new program produces an pseudo-language + representation of an _M_H format file, vaguely remin- + iscent of assembly language. While this output + format is not explicitly documented, it can still + be useful when debugging _M_H format files. + + refile Now takes a `-[no]rmmproc' switch. This makes it + easier to avoid loops when your "rmmproc" calls _r_e- + _f_i_l_e. + + slocal A problem with the UUCP-style mailboxes, the + `RPATHS' configuration option, and the "Return- + Path:" header was fixed. + + sortm Will ensure that no messages are lost if it is in- + terrupted. + + whatnow Will now tell you where it is leaving the draft, + when interrupted in the initial edit. Previously + the draft was simply unlinked. + + _C_o_m_p_i_l_a_t_i_o_n _O_p_t_i_o_n_s + + LOCKF This option causes _M_H to use the lockf() system + call for locking (if available), instead of + flock(). + + + + + + + + + + + + + + + + + + + + + + + + + + January 25, 1991 + + + + + + Changes for MH 6.7.1 16 + + + _C_H_A_N_G_E_S _F_O_R _M_H _6._7._1 + + The MH.6.7.1 patch release is a maintenance release, and as + such, provides few changes from the previous release. This + is the current released version of _M_H as of December 14, + 1990. + + _U_s_e_r-_V_i_s_i_b_l_e _C_h_a_n_g_e_s + + The major change in this release is to the POP daemon + (popd). In _M_H 6.7, it was changed to be able to read both + UUCP and MMDF-style mailboxes. This did not work as + reported. The code has now been changed to parse MMDF-style + mailboxes if you are configuring MH to run with MMDF as your + message transport system. Otherwise, UUCP-style mailboxes + are expected. + + Since there are number of client programs available for + only the POP2 protocol instead of POP3, popd has been + updated to support both protocols. This is a major win. If + you are compiling with POP turned on, add the `POP2' option + to your _M_H config file, and the POP daemon will respond to + POP2 or POP3 commands. If you're using POP, there's no rea- + son not to include this option; it does not affect the + existing support for POP3. + + _I_n_t_e_r_n_a_l _C_h_a_n_g_e_s + + Some bugs were fixed which in general were not user-visible: + + context Errors when writing out sequences are detected + correctly. + + inc No longer inserts extra blank lines into mes- + sages. + + mh-format A nil pointer bug in the address parser was + fixed. + + repl, etc. The malloc/free problem has been fixed. + + rmf A spelling error in the `-nointeractive' switch + has been corrected. + + rcvtty Will not print the message size if not available + (i.e., zero). + + send/post Illegal signatures (those containing unquoted + "."s) will be quoted. + + + + + + + + + December 14, 1990 + + + + + + Changes for MH 6.7.0 17 + + + _G_E_N_E_R_A_L _C_H_A_N_G_E_S _F_O_R _M_H _6._7._0 + + The author is pleased to announce that there are very few + user-visible changes to _M_H 6.7 from the previous _M_H 6.6 dis- + tribution. The majority of development was in the form of + bug fixes and slight enhancements. In addition, this + release is slightly faster than the previous release. With + a few minor exceptions, it is backward-compatible with the + previous release. _M_H 6.7.0 is the current released version + of _M_H as of April 12, 1990. + + The changes were made mainly to generalize the source + code to be compatible with a larger range of systems and + compilers. There were many small changes to add declara- + tions for ANSI C compliance. The System 5 support has been + brought up to SYS5 R3, and there is support for Sun OS 4.0. + + _U_s_e_r-_V_i_s_i_b_l_e _C_h_a_n_g_e_s + + Here a quick summary of the changes that were made which are + not backward-compatible with the previous release of _M_H: + + repl The `-format' and `-noformat' switches have not been + functional since _M_H 5, and have been removed. Any + users who have these switches in their .mh_profile, + will have to remove them. + + sortm Previously, in most cases _s_o_r_t_m would fill-in any + gaps in the numbering of a folder, by renumbering the + messages starting with `1'. This will no longer + occur; for this behavior, use "folder -pack". + + + _U_s_i_n_g _A_l_i_a_s_e_s + + A new profile entry `Aliasfile:' has been added. The _a_l_i, + _s_e_n_d, and _w_h_o_m programs will look for this profile entry and + treat it as they would an argument to `-alias'. This should + make it easier for novice _M_H users to begin using aliases. + + + _R_e_a_d_i_n_g _N_e_t_w_o_r_k _N_e_w_s & _B_B_o_a_r_d_s + + The UCI BBoards facility can read local BBoards, and if com- + piled with the `bboards: pop' and `pop: on' options, can + also read remote BBoards using the Post Office Protocol (POP + ver. 3). With this release, _M_H can instead be compiled to + read the Network News (i.e., USENET) using the Network News + Transfer Protocol (NNTP). + + This capability is enabled by compiling _M_H with the + `bboards: nntp' and `pop: on' options. Unfortunately, read- + ing remote BBoards via the POP and reading the Network News + via the NNTP are mutually exclusive options. + + + + April 12, 1990 + + + + + + Changes for MH 6.7.0 18 + + + To support the NNTP, a new module, uip/pshsbr.c, is + compiled and loaded into _b_b_c and _m_s_h instead of + uip/popsbr.c. The default BBoard is changed from "system" + to "general" for the NNTP. + + When reading BBoards, _b_b_c will first look for local + BBoards, and then contact the NNTP server to read the Net- + work News. The location of the NNTP server should be speci- + fied with the `nntphost:' entry in the mtstailor file (see + the _M_H Administrator's Guide for details), or may be speci- + fied on the command line with the `-host' switch. + + + _F_o_r_m_a_t _S_t_r_i_n_g_s + + The manual page _m_h-_f_o_r_m_a_t (5) has been rewritten to give a + better explanation of how to write format strings, and how + they are interpreted by _M_H. A line-by-line description of + the default _r_e_p_l form file (replcomps) is now included in + that manual page. + + Some new format functions were added, and others were aug- + mented: + + trim Strips any leading and trailing white-space from + the current string value. + + date2local Will coerce the date to the local timezone. + + date2gmt Will coerce the date to GMT. + + divide Divides the current numeric value by its argu- + ment. This could be useful for building _s_c_a_n + format strings which print large message sizes + in "Kb" or "Mb". + + friendly If the address field cannot be parsed, this + function will return the text of the address + header, instead of a null string. + + szone A flag indicating whether the timezone was ex- + plicit in the date string. + + _P_R_O_G_R_A_M _C_H_A_N_G_E_S + + In addition to the general changes mentioned above, many + programs have specific new features added, either by new + switches or by expanded functionality. Each command's + manual page gives complete information about its new + options. Here is a short summary. + + _U_s_e_r _I_n_t_e_r_f_a_c_e _P_r_o_g_r_a_m_s + + anno Accepts a `-nodate' switch which inhibits the date + + + + April 12, 1990 + + + + + + Changes for MH 6.7.0 19 + + + annotation, leaving only the body annotation. + + folder When invoked with the `-pack' switch and the new + `-verbose' switch, _f_o_l_d_e_r will give information + about the actions taken to renumber the folder. + + On most systems, _f_o_l_d_e_r can now create any + non-existing parent folders of a new sub-folder. + + forw When making digests, _f_o_r_w will put the issue and + volume numbers in addition to the digest list + name, in the digest trailer. + + inc Detects NFS write failures, and will not zero your + maildrop in that event. + + msh Supports a variant of the new _s_o_r_t_m. + + prompter Considers a period on a line by itself to signify + end-of-file when the `-doteof' switch is speci- + fied. + + repl The `-[no]format' switches have not been used + since _M_H 5 and have been deleted. _r_e_p_l will now + find filter files in the _M_H library area. + + scan With the `-file msgbox' switch, _s_c_a_n can list a + _p_a_c_k_f'd-format file directly (without using _m_s_h). + + Lists messages in reverse order with the + `-reverse' switch. This should be considered a + bug. + + sortm Now has the options: `-textfield field', `-notext- + field', `-limit days', and `-nolimit'. + + With these options, _s_o_r_t_m can be instructed to + sort a folder based on the contents of an arbi- + trary header such as "subject". + + _s_o_r_t_m minimizes renaming messages, and will no + longer arbitrarily pack folders; for this + behavior, use "folder -pack". + + whatnow Deletes the draft by renaming it with leading + comma, instead of unlinking it. + + _M_H _S_u_p_p_o_r_t _P_r_o_g_r_a_m_s + + The following support programs also have changes or enhance- + ments: + + mhl Will now accept a format string on any component, + not just on addresses and dates. + + + + April 12, 1990 + + + + + + Changes for MH 6.7.0 20 + + + popd Will use _s_h_a_d_o_w passwords if compiled with the SHA- + DOW option. It can now also read UUCP-style mail- + drops directly. + + rcvtty If given no arguments, _r_c_v_t_t_y will produce a scan + listing as specified by a format string or file; a + default format string is used if one is not speci- + fied. + + Before the listing is written to the users terminal, + the terminal's bell is rung and a newline is output. + The `-nobell' and the `-nonewline' options inhibit + these functions. + + _r_c_v_t_t_y will obey terminal write notification set by + _m_e_s_g. With the `-biff' switch, _r_c_v_t_t_y will also + obey the mail notification status set by _b_i_f_f. + + On BSD43 systems, as with _w_r_i_t_e, _r_c_v_t_t_y will be + installed set-group-id to the group "tty". + + slocal Understands UUCP-style "From " lines and will write + output files using this format if appropriate. + Before invoking a delivery program, _s_l_o_c_a_l will + strip such lines unless compiled with the RPATHS + option, in which case it will will convert such + lines into "Return-Path:" headers. + + _s_l_o_c_a_l has a new result code "N", for use in .mail- + delivery files. With this result code, _s_l_o_c_a_l will + perform the action only if the message has not been + delivered and the previous action succeeded. This + allows for performing an action only if multiple + conditions are true. + + _D_O_C_U_M_E_N_T_A_T_I_O_N + + Several of the older _M_H papers have been difficult to format + because they depended on an older version of PhDTeX which + was not supplied. These papers have been updated, and some + TeX library files are supplied in papers/doclib/, so that + these papers may be generated on any system with TeX. + + Many of the manual pages have been revised to include + documentation of new command options, and some have been + expanded to give more detail. All are now slightly refor- + matted at installation time to make them more compatible + with programs like _m_a_k_e_w_h_a_t_i_s. + + + _M_H _A_D_M_I_N_I_S_T_R_A_T_I_O_N + + This section describes changes in configuring, compiling and + installing _M_H 6.7 and should not be of interest to casual _M_H + + + + April 12, 1990 + + + + + + Changes for MH 6.7.0 21 + + + users. The READ-ME file has been considerably revised and + expanded to give more detail about the configuration and + compilation options which have been included in this + release. Some compilation options have been removed, and + many new options have been added. + + All _M_H Makefiles have been updated to work around some + incompatibilities introduced in newer versions of _m_a_k_e. _M_H + programs will no longer be installed with the sticky-bit + turned on. + + Reading this section not a substitute for carefully + reading the READ-ME file before attempting to compile _M_H + + + _B_u_g _F_i_x_e_s + + Some bugs were fixed which in general were not user-visible: + + address parser Fixed to allow use of the "AT" domain, and + some minor bugs were fixed pertaining to ad- + dress groups. + + date parser Improved to accept more forms of illegal + dates. Military timezones were removed. + + dynamic memory Many problems with corruption of the dynamic + memory pool have been fixed. + + locking Will open files for write, if necessary to + enable locking. + + nil pointers All reported nil pointer problems have been + fixed. + + replcomps The "In-Reply-To:" header had quotes added + around the date field to comply with RFC822. + + _W_h_i_t_e _P_a_g_e_s + + If _M_H is compiled with the WP option, _s_e_n_d recognizes an + address between "<<" and ">>" characters such as: + + To: << rose -org psi >> + + to be a name meaningful to a whitepages service. In order + to expand the name, _s_e_n_d must be invoked interactively + (i.e., not from _p_u_s_h). For each name, _s_e_n_d will invoke a + command called _f_r_e_d in a special mode asking to expand the + name. + + To get a copy of the white pages service, contact + wpp-manager@psi.com. + + + + + April 12, 1990 + + + + + + Changes for MH 6.7.0 22 + + + _C_o_n_f_i_g_u_r_a_t_i_o_n _O_p_t_i_o_n_s + + Some configuration options have been added or changed: + + cc To specify an alternate C compiler. + + ccoptions Defaults to `-O'. + + bboards May now be defined as "on", "off", "pop", or + "nntp". + + bbdelivery Determines whether the bboard delivery agent and + library files should be installed. + + lex To specify an alternate version of _l_e_x. + + mailgroup If defined, _i_n_c will be made set-group-id to + this group. + + sharedlib For SUN40 systems; if "on", makes libmh.a into a + shared library. + + slibdir The directory where the above shared library + should be installed. + + sprintf Set this to "int" if that's what your + _s_p_r_i_n_t_f (3) library routine returns. + + _C_o_m_p_i_l_a_t_i_o_n _O_p_t_i_o_n_s + + For different configurations, several `-D' options to _c_c + have been added or changed: + + BERK This disables the address and date parsing rou- + tines. If you want to do much with + _m_h-_f_o_r_m_a_t (5), don't enable this. + + BSD43 Will make _r_c_v_t_t_y set-group-id to the group + "tty". + + DBM For sites with a dbm-style password file (such + as with Yellow Pages), _M_H will not read the + entire passwd file into a cache. At one site + that runs YP on a large passwd file, using this + showed a 6:1 performance improvement. + + NETWORK This option has been deleted. See SOCKETS. + + NOIOCTLH Tells _M_H not to include the file sys/ioctl.h. + Use this if this file is not present on your + system. + + NTOHLSWAP On systems with TCP/IP networking, _m_s_h will try + to use the ntohl() macro from the file + + + + April 12, 1990 + + + + + + Changes for MH 6.7.0 23 + + + netinet/in.h to byte-swap the binary map files + it writes. + + SENDMAILBUG Some versions of _s_e_n_d_m_a_i_l return a 451 (failure) + reply code when they don't mean to indicate + failure. This option considers that code to be + equivalent to 250 (OK). + + SHADOW Causes _p_o_p_d to read the file /etc/shadow for + encrypted passwords instead of /etc/passwd. Use + this if you have a shadow password file (such as + on newer versions of SYSTEM 5). + + SOCKETS Enable this if you are on a non-BSD system with + a socket interface for TCP/IP networking compa- + tible with 4.2BSD UNIX. + + SUN40 Use on Suns running Sun OS 4.0 and later. + + SYS5 This option has been updated to refer to SYS5 R3 + and later systems. + + SYS5DIR Use this if your system uses "struct dirent" + instead of "struct direct". This should be true + for systems based on SYS5 R3 and later. + + TYPESIG Defines the base type for the _s_i_g_n_a_l system + call. This defaults to "int", but should be + defined as "void" if appropriate for your sys- + tem. + + WP Enables support for the White Pages service. + + _I_n_s_t_a_l_l_a_t_i_o_n + + _M_H will now explicitly set the protection mode on every file + it installs. + + Previously any existing file installed by _M_H would be + backed up into the source tree, and then overwritten. Now, + a few system-dependent files will not be overwritten, and + your changes will have to be merged in by hand. See the + READ-ME file for more details. + + + + + + + + + + + + + + + April 12, 1990 + + diff --git a/docs/historical/mh-6.8.5/FAQ b/docs/historical/mh-6.8.5/FAQ new file mode 100644 index 0000000..d252108 --- /dev/null +++ b/docs/historical/mh-6.8.5/FAQ @@ -0,0 +1,3377 @@ +Path: senator-bedfellow.mit.edu!faqserv +From: Bill Wohler +Newsgroups: comp.mail.mh,comp.answers,news.answers +Subject: MH Frequently Asked Questions (FAQ) with Answers +Supersedes: +Followup-To: poster +Date: 25 Jan 1996 09:06:36 GMT +Organization: Newt Software, Menlo Park, California, USA +Lines: 3354 +Approved: news-answers-request@MIT.Edu +Expires: 7 Mar 1996 09:03:34 GMT +Message-ID: +Reply-To: Bill Wohler +NNTP-Posting-Host: bloom-picayune.mit.edu +Summary: This document answers Frequently Asked Questions about MH, a + sophisticated mail interface. It should be read by new MH + users and comp.mail.mh readers and before posting to this group. +Keywords: FAQ,mh,mail,question,answer,pop,slocal,letter,signature, + draft,message,folder,xmh,olmh,vmail,vmailtool,comp,repl, + forw,scan,SMTP,bind,mh-e,MIME,plum,exmh +Originator: faqserv@bloom-picayune.MIT.EDU +Xref: senator-bedfellow.mit.edu comp.mail.mh:8227 comp.answers:16612 news.answers:62966 + +Archive-name: mail/mh-faq/part1 +Last-modified: $Date: 1995/12/02 02:55:05 $ +Version: $Revision: 95.11.1.1 $ +Posting-Frequency: monthly + + This is a living list of frequently asked questions on the mailer + user interface, Mail Handler, or MH. The point of this is to + circulate existing information, and avoid rehashing old answers. + Better to build on top than start again. Please read this document + before ever posting to this newsgroup. + + This article is posted monthly. If it has already expired and + you're not reading this, you can hope that you saved the + instructions to retrieve the FAQ (see "Where can I get MH") so that + you can get a copy through other means. + + Please do not post an answer when someone posts a frequently asked + question; rather, email the relevant section of the FAQ to eliminate + unnecessary traffic in this newsgroup. + + This list depends on your comments, additions and fixes: please send + them to Bill Wohler . + + Copyright 1991-1995 Bill Wohler + + Permission to use, copy, distribute, and translate this document for + any non-commercial purpose is hereby granted, provided that this + copyright notice appears in all copies. Commercial distributions + require prior written consent. + + This article is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +---------------------------------------------------------------------- + +Subject: Table of Contents +From: Bill Wohler +Date: Mon, 27 Nov 1995 14:43:36 -0800 + +Legend: + new, - deleted, ! changed +_______________ + +01. Introduction + + 01.01 Why should I use MH? + 01.02 What is the current version/status of MH? + 01.03 Where can I get MH? + 01.04 What references exist for MH? + 01.05 !What other MH software is available? + 01.06 How can I print a MH manual? + 01.07 How should I report bugs? + 01.08 !How can I convert from my mailer to MH? +_______________ + +02. Building MH + + 02.01 What machines does MH run on? + 02.02 How do I build MH? + 02.03 What options should I use? + 02.04 Where can I get POP3? + 02.05 Does MH support IMAP? + 02.06 Why does "mailgroup mail" only affect inc and not slocal? + 02.07 !How can I build MH on Solaris 2? + 02.08 !How can I build MH on Linux? + 02.09 +How can I build MH on IRIX? + 02.10 +How can I get MH to interpret the Content-Length field? + 02.11 +How do I build MH on HPUX? + 02.12 +Can I prevent adding the local hostname to addresses behind firewalls? +______________________ + +03. Scanning & Reading + + 03.01 What do I do if scan shows the wrong date? + 03.02 !How would one go about reading Usenet with MH? + 03.03 How can I search through multiple folders? + 03.04 Why don't MH format commands such as %(friendly) work? + 03.05 Why doesn't "show" display all of a MIME message? + 03.06 Can I get show not to run "less" so much on MIME messages? + 03.07 Why do I get "mhn: don't know how to display content"? + 03.08 +How can I automatically delete MH backup files? + 03.09 +Fixing "cannot fopen and lock /var/spool/mail/(user)". + 03.10 +Can I read my mail with a Web browser? +__________ + +04. Filing + + 04.01 Can I append MH messages to a Unix mailbox format file? + 04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file? + 04.03 Why do I get ".../.mh_sequences is poorly formatted?" + 04.04 How can you save News articles into an MH folder? + 04.05 +Are there any good tools to archive MH messages? + 04.06 +How can I remove duplicate messages? +________________________ + +05. Composing & Replying + + 05.01 Why does repl add a "Re:" to a message that already has one? + 05.02 How do I include messages in repl with or without ">"? + 05.03 How can I eliminate duplicate copies of letters to myself? + 05.04 How can I include my signature? + 05.05 How do I call my editor with arguments? + 05.06 How can I digestify messages in a folder for mail to another user? + 05.07 How can I change my return address? + 05.08 !How can I change my From header? + 05.09 !How can I save a copy of all messages I send? + 05.10 Can the folder in Fcc: be dynamically specified? + 05.11 !Can I post secure/encryped mail? + 05.12 +How can I send multi-media (MIME) attachments? + 05.13 +What's the best way to send mail to a long list of people? + 05.14 +What is the Dcc header? + 05.15 +How can I make sense of the replcomps file? + 05.16 +How can I convert quoted-printable to 8bit in quoted text in replies? +___________ + +06. Posting + + 06.01 What to do with "Problems with edit - draft removed". + 06.02 Can I run my message through a program (e.g., ispell) before sending? + 06.03 What to do with "bad address 'xxx' - no at-sign after local-part". + 06.04 Fixing "post: problem initializing server; [BHST] no servers available" + 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender + already specified" + 06.06 Fixing "post: unexpected response; [BHST] no socket opened" + 06.07 How do I fix the "X-Authentication-Warning" header? + 06.08 Fixing "post: unexpected response; [RPLY] 503 Need MAIL + before RCPT" + 06.09 Fixing "post: problem initializing server; [BHST] premature + end-of-file on socket" + 06.10 Fixing "Sender didn't use the HELO protocol" + 06.11 Fixing "post: problem initializing server; [RPLY] 553 Local + configuration error, hostname not recognized as local +________________ + +07. Mail Filters + + 07.01 !What mail filters are available? + 07.02 Why slocal writes messages to system mailbox that from(1) can't read. + 07.03 Where can I read about slocal and the format of .maildelivery? + 07.04 How do I debug my .maildelivery file? + 07.05 Why isn't slocal working? +________ + +08. mh-e + + 08.01 Is there documentation for mh-e? + 08.02 How can mail aliases can be expanded in mh-e? + 08.03 !How do I use POP with mh-e? +_______ + +09. Xmh + + 09.01 How can I get xmh to use Emacs as the editor? + 09.02 Does xmh support subfolders? + 09.03 How do I precede included messages with ">" when replying in xmh? +________ + +Appendix + + !Glossary & Acknowledgments + Switching xmh's editor + babyl2mh.pl + inco + srvrsmtp.c patch + mhn.c patch 1 + mhn.c patch 2 + +IRIX config file + +Removing duplicate messages (Bourne) + +Removing duplicate messages (Perl) + +------------------------------ + +Subject: !Preface Viewing This Article +From: Bill Wohler +Date: Mon, 27 Nov 1995 14:44:19 -0800 + + To skip to a particular question numbered xx, use "/^F.*xx" with most + pagers. In GNU Emacs type "M-C-s ^F.*xx", (or C-r to search backwards), + followed by ESC to end the search. + + To skip to new or changed questions, use "/^S.*[!+]" with most pagers and + "M-C-s ^S.*[!+]" in GNU Emacs. + + This article is in digest format. Nn may have already broken this + message into separate articles; if not, then type "G %". In rn, use + ^G to skip sections. + + This article is treated as an outline when edited by GNU Emacs. Run + "M-x describe-mode" to see available outline-mode commands. Useful + commands are "M-x hide-body", "C-c C-s" (show-subtree) and "M-x + show-all" + + A "Date" field whose time is 00:00:00 is approximate. The month and + year in these fields represent the time they were added to the FAQ, + rather than when they were contributed by the author, as is the case + since November, 1995. + + If you should need the Internet address, use nslookup or dig if you + have them, or send mail to dns@grasp.insa-lyon.fr with "help" for + a Subject. + + References to $MHLIB refer to the directory that contains MH support + files and routines. This directory is usually /usr/lib/mh or + /usr/local/lib/mh. Do not use $MHLIB literally; use the real, + absolute path to your MH library directory. + +------------------------------ + +Subject: 01. ***** Introduction ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 01.01 Why should I use MH? +From: Jerry Peek +Date: Fri, 1 Mar 91 13:03:15 -0800 + + The MH message handling system is a set of electronic mail programs + in the public domain. If your computer runs Unix, it can probably + run MH. + + The big difference between MH and most other "mail user agents" is + that you can use MH from a Unix shell prompt. In MH, each command + is a separate program, and the shell is used as an interpreter. So, + all the power of Unix shells (pipes, redirection, history, aliases, + and so on) works with MH--you don't have to learn a new interface. + Other mail agents have their own command interpreter for their + individual mail commands (although the mush mail agent simulates a + Unix shell). + + Because MH commands aren't part of a monolithic mail system, you can + use them at any time; you don't have to start or quit the mail + agent. Because you use them from a shell prompt, you can use all + the power of the shell. + + If your shell has time-saving aliases or functions (and most do), + you'll be able to use them with MH, of course. And because MH isn't + a monolithic mail agent, you can use MH commands in Unix shell + scripts, or call them from programs in high-level languages like C. + + Unlike most mail agents, MH keeps each message in a separate file. + The filename is the message number. To rearrange the messages, MH + just changes the filenames. MH can use standard Unix file system + operations such as removing, copying and linking messages. The + message files are grouped into one or more folders, which are + actually Unix directories. + + MH is free, powerful, flexible--and the basics are easy to learn. + +------------------------------ + +Subject: 01.02 What is the current version/status of MH. +From: Bill Wohler +Date: Sun, 1 May 94 00:00:00 -0800 + + The current version of MH is 6.8.3. + + This version includes MIME, a multi-media MH package that implements + the new IETF work on Multi-media 822 (MIME). This allows you to + include things like audio, graphics, and the like, in your mail + messages. --Marshall Rose + + MH now works with Kerberos as well. + + In addition, a new program called mhparam extracts arguments from + .mh_profile which is useful in shell scripts. + + Please see the file CHANGES in the distribution for more details. + +------------------------------ + +Subject: 01.03 Where can I get MH? +From: Bill Wohler +Date: Mon, 1 May 94 00:00:00 -0800 + + MH comes standard with: + + Berkeley Software Design BSD/386 . . . . MH 6.8.3 + Control Data Corp. CDC4680-MP . . . . . . EMH 1.4.2 (modified MH) + DEC Ultrix 3.1 . . . . . . . . . . . . . MH 6.5 + DEC Ultrix 4.2A.4 . . . . . . . . . . . . MH 6.7.1 + DEC OSF/1 . . . . . . . . . . . . . . . . MH 6.7 + Evans and Sutherland ES/OS 2.3 . . . . . MH 6.6 + IBM PS/2 AIX 1.3 . . . . . . . . . . . . MH 6.4 + IBM RISC System/6000 AIX 3.x and 4.1 . . MH 6.6 + Linux . . . . . . . . . . . . . . . . . . MH 6.8.3 + MIPS RISC/OS 4.52 . . . . . . . . . . . . MH 6.6 + Sony NEWS-OS 4.3 . . . . . . . . . . . . MH 6.7.2 + Tektronix UTek . . . . . . . . . . . . . MH (Version Unknown) + Table maintained by: "James R. Hamilton" + + If you should need the Internet address, use nslookup or dig if you + have them, or send mail to dns@grasp.insa-lyon.fr with "help" for + a Subject. + + via anonymous ftp: + ftp://ftp.ics.uci.edu/mh/mh-6.8.tar.Z 2MB + ftp://ftp.uu.net/networking/mail/mh/mh-6.8.tar.Z + ftp://krynn.efd.lth.se/pub/mail/mh-6.8.tar.Z + + via mail: + Send a note to either mail-server@nluug.nl or + archive-server@germany.eu.net with a body containing the following: + + send mail/mh/mh-6.8.tar.Z + + UK users may be able to use ftpmail@doc.ic.ac.uk. Send a note + whose body contains "help" to this address. + + Send a note to ftpmail@decwrl.dec.com whose body contains "help" + on a line by itself get information on getting ftp sources by + mail. Also include the lines "connect" and "dir /pub/mail/ua/mh" + to see which files are available local to decwrl. Please do this + as a last resort only. + + via U.S. mail: + You can send $75 US to the address below. This covers + the cost of a 6250 BPI 9-track magtape, handling, and ship- + ping. In addition, you'll get a laser-printed hard-copy of + the entire MH documentation set. Be sure to include your + USPS address with your check. Checks must be drawn on U.S. + funds and should be made payable to: + + Regents of the University of California + + The distribution address is: + + University of California at Irvine + Office of Academic Computing + Engineering Gateway E2130 + Irvine, CA 92717 USA + + +1 714 824 5153 + + Sadly, if you just want the hard-copies of the documenta- + tion, you still have to pay the $75. The tar image has the + documentation source (the manual is in roff format, but the + rest are in TeX format). Postscript formatted versions of + the TeX papers are available, as are crude tty-conversions + of those papers. + +------------------------------ + +Subject: 01.04 What references exist for MH? +From: Bill Wohler +Date: Mon, 1 May 95 00:00:00 -0800 + + Books: + MH & xmh: E-mail for Users & Programmers. Third edition. Jerry + Peek, with Bill Wohler and Brent Welch. + ISBN 1-56592-093-7. $34.95. 738 pages. + O'Reilly & Associates, Inc. + Book Orders: + US and Canada: 800-998-9938. Fax: 707-829-0104. + + To get a list of non-US distributors, connect to gopher.ora.com, + http://www.ora.com/, send a note to info@ora.com or call +1-707-829-0515. + + References to "the MH book" in this document refer to the third + edition of this book (section numbers for the second edition appear + in parentheses). + + Examples from this book are in: + ftp://ftp.uu.net/published/oreilly/nutshell/MHxmh/MHxmh3.tar.Z 114k + + There is another book that contains a number of examples of + advanced mail handing using MH as the example message handler. + It's also quite a good reference on email in general. + + The Internet Message. Marshall T. Rose + ISBN 0-13-092941-7. 396 pages. + P T R Prentice Hall + + Papers: + MHN Tutorial by Jerry Sweet + ftp://ftp.ics.uci.edu/mh/contrib/multimedia/mhn-tutorial.ps.Z 141k + ftp://ftp.ics.uci.edu/mh/contrib/multimedia/mhn-tutorial.tex.Z 48k + + Usenet: + comp.mail.mh (gatewayed to MH-users) + + Mailing lists: + General questions/discussion: MH-users@ics.uci.edu + (gatewayed to comp.mail.mh). + MH developers and maintainers: MH-workers@ics.uci.edu. + Please use MH-users-request and MH-workers-request to request + an addition or deletion. + + MH-users archives: + ftp://ftp.ics.uci.edu/mh/mh-users/ + + The files are in packf(1) format, compressed with compress(1). To + get them, use anonymous ftp and set "binary" transfer mode. + + mh-users.86.Z 8549 mh-users.86.scan.Z 771 + mh-users.87.Z 55449 mh-users.87.scan.Z 3679 + mh-users.88.Z 182805 mh-users.88.scan.Z 11339 + mh-users.89.Z 89151 mh-users.89.scan.Z 5522 + mh-users.90.Z 402470 mh-users.90.scan.Z 21551 + mh-users.91.Z 878763 mh-users.91.scan.Z 36992 + mh-users.92.Z 1281585 mh-users.92.scan.Z 44975 + mh-users.93.Z 1544159 mh-users.93.scan.Z 52938 + mh-users.mbox: current archive, uncompressed. + + There are directions in the README file. Basically, you can use + either "msh" or the individual commands "inc -file" to get the + messages into a folder, and then "scan", "pick", "show", and so on + (or your favorite commands in xmh, mh-e, etc.). --Jerry Peek + + + This document: + via WWW: + http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/mh-faq/part1/top.html + + via anonymous ftp: + ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/mh-faq/part1 + ftp://ftp.uu.net/archive/usenet/news.answers/mail/mh-faq/part1.Z + ftp://ftp.cs.ruu.nl/pub/NEWS.ANSWERS/mail/mh-faq/part1 + + via mail: + Each of the following addresses is following by commands which + should be included as the body of the message. + + mail-server@rtfm.mit.edu + send /usenet/news.answers/mail/mh-faq/part1 + + mail-server@cs.ruu.nl + send /pub/NEWS.ANSWERS/mail/mh-faq/part1 + + mh-e documentation: + GNU Emacs 19.29 comes with a version of mh-e which now includes + on-line (Texinfo) documentation. Try "C-h i m mh-e RET". See + also "What other MH software is available?" to see where you can + get the latest version of mh-e which includes the documentation + sources. + + exmh FAQ: + ftp://parcftp.xerox.com/pub/exmh/exmh.README + + Signature and Finger FAQ: + via WWW: + http://www.cis.ohio-state.edu/hypertext/faq/usenet/signature_finger_faq/faq.html + + via anonymous ftp: + ftp://rtfm.mit.edu/pub/usenet/news.answers/signature_finger_faq + + via mail (see above for usage): + mail-server@rtfm.mit.edu + send /usenet/news.answers/signature_finger_faq + +------------------------------ + +Subject: 01.05 !What other MH software is available? +From: Bill Wohler +Date: Sun, 26 Nov 1995 19:05:24 -0800 + +From: James Perkins +Date: Fri, 1 Jan 93 00:00:00 -0800 + + vmh + Vmh is designed for people using the bulletin-board features + of MH, where mail is stored in packed (single-file) folders. As + a result, use of this program cannot be mixed with the use of + normal MH commands. Vmh is a part of the official MH + distribution. + +From: James Perkins +Date: Fri, 1 Jan 93 00:00:00 -0800 + + xmh + Xmh is a X11 mouse-based MH browsing tool. It is very powerful + and feature-filled and thus comes with a moderate learning + curve. Its dependence on the X11 environment makes it very + reconfigurable, but only by people well-versed in X applications + programming. Its message reply built-in-editor interface is not + always popular among those used to having MH bring up the editor + of their choice. + +Date: Fri, 1 Jan 93 00:00:00 -0800 + + xmh is part of the standard X Window System distribution from + the X Consortium. Ultrix also ships dxmail which is similar. + + ftp://cs.utk.edu/pub/xmh.shar.Z 162k + +From: Harald Tveit Alvestrand +Date: Fri, 1 Jan 93 00:00:00 -0800 + + Here's a version of xmh that includes MIME. + + ftp://aun.uninett.no/pub/mail/mixmh/mixmh-0.3.tar.Z 232k + +From: Brent Welch +Date: Mon, 1 Aug 94 00:00:00 -0800 + + exmh + EXMH is a user interface for the MH mail system written in TCL/TK. + + Exmh has MIME support, color feedback in the scan listing, a + folder display with one label per folder, clever scan caching, + facesaver bitmap display; background inc, various inc styles, + searching over folder listing and message body, a dialog-box + interface to MH pick, a simple built-in emacs-like editor, + interfaces to other editors, user preferences, user hacking + support. + + ftp://parcftp.xerox.com/pub/exmh/exmh-1.4.1.tar.Z 357k + ftp://parcftp.xerox.com/pub/exmh/exmh-1.5omega.tar.Z + + +From: Stephen Gildea +Date: Mon, 1 May 95 00:00:00 -0800 + + mh-e + Mh-e is the GNU Emacs front end for MH. It offers all the + functionality of MH, the visual orientation and simplicity of + use of xmh, and full integration with Emacs, including thorough + configurability. The command set is similar to that of rmail + (the Emacs front end for BSD mail) and BSD mail itself. On-line + help is available. + + Mh-e allows one to read and process mail very quickly: commands + are single characters and completion and defaults are available + for file and folder names. During a reply, the original message + is displayed simultaneously in another window for easy reference + where a mh-e command can quickly incorporate and format this + text into your reply. + + With mh-e you compose outgoing messages in Emacs. This is a big + plus for Emacs users, but it has been known for non-Emacs users + to be able use mh-e after only learning the most basic cursor + motion commands. Mh-e is easily configured via the Emacs + edit-options menu, and people familiar with Emacs Lisp will be + able to further reconfigure mh-e beyond recognition. + + Mh-e is part of the standard GNU Emacs distribution. Note that + mh-e got much faster in Emacs 18.56. + + ftp://ftp.x.org/misc/mh-e/mh-e-5.0.tar.Z 66k + +From: Nathaniel Borenstein +Date: Sun, 26 Nov 1995 19:04:51 -0800 + + metamail + Metamail is a package that can be used to convert virtually ANY + mail-reading program on Unix into a multi-media mail-reading program. + It is an extremely generic implementation of MIME (Multipurpose + Internet Mail Extensions), the proposed standard for multi-media mail + formats on the Internet. The implementation is extremely flexible and + extensible, using a "mailcap" file mechanism for adding support for new + data formats when sent through the mail. At a heterogeneous site where + many mail readers are in use, the mailcap mechanism can be used to + extend them all to support new types of multi-media mail by a single + addition to a mailcap file. + + The metamail distribution comes complete with a small patch for + each of over a dozen popular mail reading programs, including + Berkeley mail, mh, Elm, Xmh, Xmail, Mailtool, Emacs Rmail, Emacs + VM, Andrew, and others. Note that the MH patches are now integrated + into MH 6.8. + + ftp://ftp.bellcore.com/pub/nsb/mm2.7.tar.Z + +From: Tom Christiansen +Date: Tue, 1 Nov 94 00:00:00 -0800 + + plum + Plum is a highly configurable and extensible screen-oriented front-end + for processing MH mail on ASCII terminals. Unlike mh-e, the extension + language used in plum is perl, not LISP. Plum offers many of the + advantages of xmh, but lacks several of xmh's disadvantages. The + look&feel derives more from vi than from emacs. Key bindings and + functions may be changed on the fly to suit the user's preference. It + offers filename and word completion on folder, variables, and command + names. + + Until it is included in the standard distribution (under miscellany), + you can find a copy on: + + ftp://perl.com/pub/perl/scripts/plum.gz 29k + + or mail requests to Tom + +From: Jerry Sweet +Date: Tue, 1 Nov 94 00:00:00 -0800 + + mhunify + Mhunify is a set of perl scripts and templates that provides + shell-level MH functionality with USENET news. Since MH supports + MIME, MIME-format news articles just work. I've found that being + able to handle news in the same way that I handle email is very + useful, although there are some tradeoffs. + + Mhunify also treats MH folders just like news groups. If you + subscribe to several mailing lists, and your email is + automatically delivered to separate folders, say, via procmail or + via MMDF's .maildelivery, the mhunify package lets you progress + automatically through your folders just as you would news groups. + + ftp://ftp.ics.uci.edu/mh/contrib/multimedia/mhunify.shar.gz + +From: Dale Carstensen +Date: Tue, 1 Nov 94 00:00:00 -0800 + + olmh + Sun's Open Windows 3 comes with a demo for OLIT (Open Look + Interface Toolkit, the Open Look wrapper to Xt) named olmh that + does handle 3rd and subsequent levels of nesting of folders. + + Obtain the Open Windows 3 distribution CD/ROM from Sun (SPARC + only). To do this, call 1-800-USA-4SUN and send tone "2" for + telemarketing after it answers. The 4.1.2 CD/ROM may also have + Open Windows 3. The list price for the 4.1.2 CD/ROM is $200. + +From: James Perkins +Date: Sun, 1 May 94 00:00:00 -0800 + + vmail + Vmail is a curses-based, vi-like message browser which calls on + MH programs to manipulate mail. It can be used on almost any + terminal. It organizes mail folders into index pages, from + which a message can be selected to be shown, replied-to, + forwarded, refiled, deleted, and so on. The vi-like interface + and command keystrokes are comfortable to less-experienced Unix + users, and it is a small, compact program, unlike the mh-e Emacs + package. + + This version of vmail has been bugfixed and enhanced from the + original vmail published on the net in 1987 by J. Zobel. + + ftp://ftp.uu.net/comp.sources.unix/volume12/vmail/part0*.Z 46k + ftp://ftp.ucs.ubc.ca/pub/mh/vmail.[1-3]of3.Z 58k + + Or mail requests to James. + +From: James Perkins +Date: Sun, 1 May 94 00:00:00 -0800 + + vmailtool + If you have a Sun workstation, vmailtool may be for you. It is a + button gadget panel for the above-mentioned vmail program. It + brings vmail into the windows era where people no longer need to + memorize specific command keystrokes. It also provides a mail + icon with the flag that pops up when new mail arrives. Again, + this is a compact, simple tool, unlike the powerful xmh program. + Still, it's a welcome alternative for many people who are running + SunView or OpenWindows. + + ftp://ftp.ucs.ubc.ca/pub/mh/vmailtool.Z 18k + + or mail requests to James. + + mmh + MMH, My Mail Handler, is a Motif interface for reading and sending mail. + It uses the MH commands to actually handle sending a receiving messages. + It does not support all the capabilities of MH, but offers a large + enough subset to handle the majority of users. Its intended user is + someone between "bumbling email novice" and "sophisticated user". + Hooks are provided to allow the user to customize and add new commands. + + ftp://ftp.eos.ncsu.edu/pub/bill/bill.tar.Z 120k + +From: Andrew Waugh +Date: Fri, 1 Jan 93 00:00:00 -0800 + + X.500 lookups + If a name is enclosed in square brackets, when entering a destination + address: + + To: [Greg Wickham,CSIRO] + + a search will be made in the X.500 Directory for the individual's entry. + If an address exists then it will be extracted and placed into the + headers. Mail requests for the software to the author. + +From: Barbara Dyker +Date: Fri, 1 Jan 93 00:00:00 -0800 + + QueueMH + QuemeMH is an email based service request and tracking system + based on the Rand Mail Handler. + + ftp://ftp.cs.colorado.edu/pub/cs/sysadmin/utilities/queuemh.tar.Z 98k + +From: +Date: Mon, 1 Mar 93 00:00:00 -0800 + + QMH: + Qmh is an MH-based group mail management tool. Written entirely in + perl, Qmh combines the best aspects of MH with group mail + heuristics and delivers a sensible package for all levels of Unix + users. A limitless number of individual queues and associated + groups of permitted users can be established. + + Specific functionality includes the following modes of operation; + checking header dates and sending reminder/deadline mail, editing + existing messages, help screens, creating new messages from + scratch or exiting messages, resolving messages, scanning queue + folders, and annotating with status both by editing and sending + mail. + + Qmh is a single generic program in and of itself from which all + modes of operation are invoked. Additionally, each separate queue + may be accessed via a link to the single program. All system + configuration is maintained in a single file that is read upon + each invocation of Qmh. Formatting and template files are + provided in the system library, although individual users can + override the defaults simply by creating equivalent files in their + own MH mail directory. + + Qmh provides a powerful database-like functionality by allowing + limitless per-queue X-Qmh-<$value> headers to be included in + messages. These "fields" then form the context of the queue + messages and provide a user-defined, but yet structured + environment for queries, reporting, and random information. + + Qmh is designed to provide a complete solution for SA groups, help + desks, support organizations, or wherever two or more individuals + are trying to manage multiple mail requests. + + Qmh is also compatible with versions of xmh that provide + user-level command buttons. Provided in the Qmh package is a + ~/.Xdefaults template file that's setup to harness the power of + Qmh. + +From: Jerry Peek , Shannon Yeh +Date: Mon, 1 Aug 94 00:00:00 -0800 + + MacMH and PC/MH: + These were available only for non-commercial degree-granting + institutions from: + + Networking & Communication Systems + 115 Pine Hall + Stanford University + Stanford, CA 94305-4122 + Phone: +1 415-723-3909 + + See also: + ftp://netix.com/pub/pc-mh-info/* + + For more PC/MH info, contact: + + Netix Communications, Inc. + 15375 Barranca Parkway + Building G, Suite 107 + Irvine, CA 92718 + Phone: +1 714-727-9532 + FAX: +1 714-727-3922 + Internet: info@netix.com + + In addition, you might try Wollongong, to see if they have something you + can get. + +------------------------------ + +Subject: 01.06 How can I print a MH manual? +From: Bill Wohler , Jos Vos +Date: Fri, 1 Jan 93 00:00:00 -0800 + + To order a copy by mail, see the section on how to get MH by mail + (see "Where can I get MH?" and "What references exist for MH?"). + + To print your own copy, first obtain the MH sources (see "Where can + I get MH?") if you don't already have it. Go into the "doc" + directory and run "make guide" to create the administrators guide + and "make manual" to create a user's manual which includes tutorials + and man pages. If the doc directory is empty or is missing the + Makefile, you'll have to run "mhconfig MH" in the conf directory so + that the documentation with correct local information is created. + + For properly formatting the documentation (at least the manual + pages) you might even have to install MH, because a reference to a + tmac.h file in the MH lib directory is made in the manual pages. + + You can also ftp the ASCII or postscript versions: + + ftp://ftp.ics.uci.edu/mh/doc/tutorial.ps.Z 65k + ftp://ftp.ics.uci.edu/mh/doc/ADMIN.ps.Z 56k + ftp://ftp.ics.uci.edu/mh/doc/MH.ps.Z (man pages) 261k + ftp://ftp.uu.net/networking/mail/mh/doc/tutorial.ps.Z + ftp://ftp.uu.net/networking/mail/mh/doc/ADMIN.ps.Z + ftp://ftp.uu.net/networking/mail/mh/doc/MH.ps.Z (man pages) + + Or, you can send a note to mail-server@nluug.nl with a body containing the + following: + + send /mail/mh/papers-ps/tutorial.ps.Z + +------------------------------ + +Subject: 01.07 How should I report bugs? +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + Mail them to Bug-MH@ics.uci.edu and be sure to include the output of + the -help option as well as what hardware and operating system you + are using. + +------------------------------ + +Subject: 01.08 !How can I convert from my mailer to MH? +From: Mike Sutton +Date: 7 Jul 1995 10:03:50 GMT + + The unrmail function will convert rmail format to mbox format. + +From: Jerry Peek +Date: Fri, 1 Mar 91 13:03:15 -0800 + + If you use one of a mail agent like 'mail', 'mailx', 'elm' or + 'mush', converting to MH is easy. When you run the 'inc' command, + it reads all new messages from the system mailbox into your 'inbox' + folder. Those mail agents also have separate files or "folders" + that hold messages in the same format as the system mailbox. You + can read them with the 'inc -file' command. For example, to read + the messages from your 'mbox' mail file into your MH 'inbox' folder, + you'd type: + + % cd + % cp mbox mbox.backup + % inc -file mbox + + If you see the usual "Incorporating new mail into inbox..." message + and a scan listing, the messages probably were converted. Read some + or all of them (with the 'show' command) and be sure. The 'inc' + won't remove your mbox unless you use '-truncate'. + +From: Jason R. Mastaler +Date: Mon, 1 May 95 00:00:00 -0800 + + You can also specify an alternate folder to inc. Here's how you + can convert all your folders en masse: + + for arg in `cat flist`; do + echo "converting $arg" + inc +"$arg" -file "$arg" -silent + done + + Section D.4 of the MH book's second edition lists two scripts to + convert mail files to MH folders: babyl2mh to convert from rmail's + BABYL format; vmsmail2mh to convert from VMS's mail (see "What + references exist for MH") to see where the book's examples can be + ftped from). These scripts aren't in the third edition but are in + its archive file. + +From: Vivek Khera +Date: Fri, 1 Jan 93 00:00:00 -0800 + + I rewrote the above script in Perl since the original script doesn't + work for some people (see "babyl2mh.pl" below). + +From: Juergen Nickelsen +Date: Fri, 1 Jan 93 00:00:00 -0800 + + You can remove the second to last second line ("> $input"), so + that the script doesn't zero out your RMAIL file. + + Another alternative is to replace this line with "inc -file $tmpmbox + $folder && > $input", so that the RMAIL is only zeroed if inc + successfully incorporated the mail. Finally one could add a switch + -z, so that the RMAIL file is only zeroed if the switch is given. + See [Appendix "inco."] + +Date: Sun, 1 May 94 00:00:00 -0800 + + Use the following to convert a BABYL format file to Unix mail + format. + + ftp://inf.informatik.uni-stuttgart.de/pub/gnu/emacs_extras/rmailtovm.el.Z 6k + + See also MH book second edition (Appendix D). + +------------------------------ + +Subject: 02. ***** Building MH ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 02.01 What machines does MH run on? +From: Jerry Peek +Date: Fri, 1 Mar 91 13:03:15 -0800 + + If you have a computer running Unix, you can probably run MH. + +------------------------------ + +Subject: 02.02 How do I build MH? +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + By carefully reading the READ-ME in the root of the source + hierarchy, one should not have any trouble building MH. + +------------------------------ + +Subject: 02.03 What options should I use? +From: Bill Wohler +Date: Tue, 1 Dec 92 00:00:00 -0800 + + BERK: Do NOT include the BERK option (in versions 6.7 or later)! + BERK breaks the mh-format functions that take apart address lines, + for example mbox, from, and friendly. This would really put a crimp + on my replcomps file. + + LOCKF: if you have NFS, you need to lock your mailbox with lockf() + so the lock will be honored by all machines on the local network. + If you have the lockf() system call, include LOCKF. + + JQ Johnson makes the point that one should + use this option carefully since it requires a robust lockf() call. + For example, this option caused serious problems on his SunOS 4.1.1. + He suggested using LOK_BELL instead, and adding "lockstyle: 1" to + mtstailor. + + ATZ: makes your timezones print like "EST" instead of "-0500". Much + prettier. --Stephen Gildea + + However, Tony Landells replies: "Yes; very + pretty. How unfortunate that timezone names are so ambiguous, so + that EST can be interpreted, at a minimum, as (American) Eastern + Standard Time, (Australian) Eastern Standard Time, or (Australian) + Eastern Summer Time (and yes, I think it's dumb having the same + acronym for both normal and Summer time, but that's a different + problem). While the numeric timezones may not look as nice, they + are, at least, reasonably unambiguous. I would urge anyone who ever + intends/hopes/expects to use email outside the U.S. to NOT use ATZ + (sorry Stephen)." + + At any rate, the conf/examples directory has been updated and + contains many examples show you which options are required on your + platform and which are optional (in the upcoming version MH 6.8). At + any rate, it is recommended that you examine the options in the + example configuration files, and read about them in READ-ME. + + RPATHS: a side-effect is that slocal writes messages to your system + maildrop without the MMDF C-A's that separate messages, so your BSD + tools like from work. + +------------------------------ + +Subject: 02.04 Where can I get POP3? +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + MH6.7 (and earlier versions too) include a server for version 3 of POP. + +------------------------------ + +Subject: 02.05 Does MH support IMAP? +From: John Romine +Date: Fri, 1 Mar 91 13:03:15 -0800 + + No. MH only supports retrieving mail using POP3. POP3 is on the + "standards track"--it is now an elective Internet Draft Standard + (see RFC1280 for more details). At this point, IMAP[23] are + "experimental, limited use" protocols; it is unlikely that MH will + support them. + +From: Bill Wohler +Date: Mon, 1 Aug 94 00:00:00 -0800 + + I've found several things which might help. First, a definition + lifted from the Pine FAQ: + + What is IMAP? + + IMAP stands for "Internet Message Access Protocol". An IMAP client + program on any platform at any location on the Internet can access + email folders on an IMAP server. While the messages appear to be + local, they reside on the server until the client explicitly moves + or deletes them. The IMAP protocol is a superset of POP, containing + all POP commands plus more. For a comparison of IMAP and POP, see + the paper Comparing Two Approaches to Remote Mailbox Access: IMAP + vs. POP (in ftp.cac.washington.edu:/mail/imap.vs.pop). IMAP is what + allows Pine (or any other IMAP client) to get to email on a central + campus email server. There are current IETF working groups revising + IMAP and readying it to become an Internet standard. A copy of the + latest IMAP draft may be obtained from + ftp://ftp.cac.washington.edu/mail/latest-imap-draft. For a list of IMAP + clients, see the file imap.software, in the same directory. + +From: David L Miller +Date: Mon, 1 Aug 94 00:00:00 -0800 + + ipop3d from the UW IMAP toolkit can operate in a couple modes. As a + straight POP3 server, it uses the same C-client library as imapd, so + it co-exists comfortably with imapd. It can also operate as a + POP-to-IMAP gateway so that your POP-only clients can access IMAP + services. + + ftp://ftp.cac.washington.edu/mail/imap.tar.Z 1.0M + +From: Mark Crispin +Date: Mon, 1 Aug 94 00:00:00 -0800 + + The only answer I can give for [how MH users can use IMAP] is that + Pine can read mailboxes in MH format; and that someone might in the + future develop a version of MH that can use IMAP. + +------------------------------ + +Subject: 02.06 Why does "mailgroup mail" only affect inc but not slocal? +From: John Romine +Date: Fri, 1 Jan 93 00:00:00 -0800 + + If "mailgroup" is set, inc is made set-group-id to this group name. + Some SYS5 systems want this to be set to "mail". Set this if + /usr/spool/mail (or /usr/mail) is not world-writable. These + changes were contributed by Peter Marvit, and "inc" is very careful + about its use of the set-gid privilege. + + Note that slocal doesn't know how to deal with this, and will not + work under these systems; just making it set-group-id will open a + security hole (since it doesn't know when to drop the set-gid + privileges). If you're using "mailgroup", you should remove slocal + (and its man page) from your system. + + Alternatives to slocal include deliver, procmail, and mailagent. + Archie can help you find where they are kept. + +------------------------------ + +Subject: 02.07 !How can I build MH on Solaris 2? +From: Neil Rickert , + Scott K. Hutton , + Casper H.S. Dik +Date: 20 Jun 1995 08:18:23 GMT + + First, don't use the BSD compatible stuff. Make sure that the Sun + or GNU compiler appear before the BSD compiler in your PATH. + + Second, don't use GNU make. Make sure that the Sun make appears + before the GNU make in your PATH. + + Use conf/examples/solaris2.sun.com and fix the paths, if necessary. + Optionally change the following to use the GNU compiler, to perform + optimization, and to create shared libraries. + + cc gcc + ccoptions -O -g -msupersparc + slflags -shared + + Incorporate the diff in (see "mhn.c patch 1"). + + Optionally incorporate the Content-Length header fix. (See "How can + I get MH to interpret the Content-Length field?") + + Linking with /usr/ucblib/libucb.so is incompatible with including + . + + When compiling, you can ignore the following warning: + + fmtcompile.c", line 238: warning: semantics of "/" change in ANSI C; + use explicit cast + + If you're using AFS, you'll have to replace any occurrence of "ln" + with "ln -s" wherever the make dies when it tries to make a link + "on a different file system." + +Date: Thu, 1 Dec 94 00:00:00 -0800 + + Unset LD_LIBRARY_PATH. + +From: Gary Strand +Date: Mon, 1 May 95 00:00:00 -0800 + + To cure slocal's Segmentation Fault problems, I decided to try 'cc' + instead of 'gcc' (an alleged no-no under Solaris) and MH built just + fine, and it's working perfectly. + +From: "Jason R. Mastaler" +Date: Mon, 25 Sep 1995 17:35:13 -0400 + + Don't use "ldoptions -s" with gcc. It may cause the compile to fail + with: + + gcc: Internal compiler error: program ld got fatal signal 11 + *** Error code 1 + +------------------------------ + +Subject: 02.08 !How can I build MH on Linux? +From: Brandon S. Allbery +Date: Sun, 26 Nov 1995 16:18:50 -0800 + + The current patch is the first one listed below. The old patch only + works with libc-4.4, which is no longer used. The current patch is + split into two pieces, as with the previous patch, but now the + divisions are purely functional: the first diff enables MH to + compile, the second allows creation of a shared library. [Ed: The + paths are up to date, but I think the info in this paragraph is + old.] + + Recent versions of GNU make choke on MH's makefiles. Unfortunately, + the shared library patches depend on "export". If you have problems + building MH, remove the "export" lines from all of the makefiles (if + you applied the shared library patches) and try using BSD pmake + instead. + + If you don't want to compile MH, the second file contains + pre-compiled ready-to-run binaries which can simply be extracted in + the root directory. + + ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-diffs.tar.gz + ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-bin.tar.gz + + The sizes are 650k and 22k respectively. + + Note that these files are occasionally "cleaned up" by accident so + please let me know if they are missing. + +------------------------------ + +Subject: 02.09 +How can I build MH on IRIX? +From: Arne K. Frick +Date: 06 Jun 1995 18:30:01 GMT + + There is a file at viz.tamu.edu:/pub/sgi (see FAQ) containing a diff + and sample configuration. If you cannot locate it, I can mail it to + you. Note, however, that I had tremendous difficulties with them + under 5.3: + + 1. Be sure to use /bin/make, NOT GNU make. + 2. patch vomits over the diff. You can get around this by increasing the + "fuzz factor" to 4. + 3. The Makefile target for the shared library doesn't work. I had to do it + by hand. + + But I'm stuck compiling mhn.c. + +From: Shankar Unni +Date: 9 Jun 1995 01:53:48 GMT + + The fix for compiling mhn.c is in (see "mhn.c patch 1") below. + +From: John Jack Repenning +Date: 25 Jul 1995 02:35:41 GMT + + (See "IRIX config file") below. + +------------------------------ + +Subject: 02.10 +How can I get MH to interpret the Content-Length field? +From: Casper H.S. Dik +Date: 4 Oct 1995 09:05:42 GMT + + Apply ftp://ftp.fwi.uva.nl/pub/solaris/mh-6.8.3-diff to your MH + distribution and add the configuration option "CONTENT_LENGTH". It + also includes the si_ fix in (see "mhn.c patch 1"). + +------------------------------ + +Subject: 02.11 +How do I build MH on HPUX? +From: Bill Wohler +Date: Mon, 27 Nov 1995 11:02:48 -0800 + + If you find that your zotnet/tws directory isn't compiling, upgrade + your MH (see "What is the current version/status of MH?") which + includes fixes to lexedit.sed. + +------------------------------ + +Subject: 02.12 +Can I prevent adding the local hostname to addresses behind firewalls? +From: Ken Hornstein +Date: 18 Aug 1995 23:51:48 -0400 + + If you're behind a firewall and sendmail gives you fits because MH + adds the node name or site name to each address in the To: and CC: + fields, you'll need to modify the MH source. + + The relevant source has to do with the REALLYDUMB option in + sbr/addrsbr.c. Essentially what you need to do is set it up so + REALLYDUMB is turned on (normally, it's turned off if you have MMDF + or SMTP turned on). This will do what you want. I did this at our + site, and it's been working great. The stuff for REALLYDUMB starts + around line 613. + + [Ed. It seems to me that this is a common problem, but that there + should be a better solution, like adding a "localname" entry to + $MHLIB/mtstailor. Please let me know if you can improve upon this.] + +------------------------------ + +Subject: 03. ***** Scanning & Reading ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 03.01 What do I do if scan shows the wrong date? +From: Bill Wohler +Date: Fri, 1 Jan 93 00:00:00 -0800 + + Upgrade to MH 6.8. + +------------------------------ + +Subject: 03.02 !How would one go about reading Usenet with MH? +From: Bill Wohler +Date: Sun, 26 Nov 1995 12:32:09 -0800 + + You can post via mail. Send your article to + news.group.name@#{news.demon.co.uk,{crs4gw,berlioz}.crs4.it} (e.g., + comp.mail.mh@news.demon.co.uk). To cross-post, send mail to the + user "mail2news" instead and add a legitimate Newsgroups field. + +From: Jerry Peek +Date: Tue, 1 Nov 94 00:00:00 -0800 + + You can save articles in the news readers for later perusal with MH. + + First, create a symbolic link from your mail directory (e.g., usenet) to + your news directory (e.g., "ln -s ~/News ~/Mail/usenet"). You can then + treat your news directory as a mail folder. Thus, to select a news + group, use "folder +usenet/comp/mail/mh". + + To set the default save location correctly in rn, use: + + rn -M -/ + + or in your nn presentation sequence: + + news.announce. +$F/$N + comp.mail.mh + + . + . + + If there's news spooled on your machine (that is, not via NNTP) then + you can read a newsgroup with commands like: + + show first +/usr/spool/news/comp/mail/mh + next + ... + + You can also use sequences to keep track of what you've read. MH + will automatically set a "cur" sequence in each newsgroup you read + that way. So, to continue reading the newsgroup sometime later, + after you've read some other folder, you can do: + + next +/usr/spool/news/comp/mail/mh + + and you'll read the next (new) article (if any) in that newsgroup. + + Note that this can eventually make your private context file pretty + huge; if there's a group you don't read often, you can remove its + context entries with a command like: + + rmf +/usr/spool/news/comp/mail/mh + + Don't try that on a folder full of mail (a folder that isn't + read-only), though... in that case, it'll remove all the messages! + + I haven't looked into posting. It seems like it shouldn't be hard. + You could set up a "sendproc" that would look at outgoing email + messages. If the message had a Newsgroups: header field, your + sendproc could call inews(1) instead of post(8). I haven't seen + much in the MH manpages or documentation about sendprocs (though I + haven't looked for a couple of years...). See the "mysend" + script in the MH book section 7.1.4 (13.13). + + A threaded news reader like trn or tin is so much nicer, though, + that reading news with MH may not be worth the hassle. + + See also MH book section 9.9 (8.7). + +From: Stephen Gildea +Date: Fri, 1 Mar 91 13:03:15 -0800 + + Although news readers are better, if one really wants to use + MH, bbc will do the job. For example, "bbc comp.mail.mh" reads this + newsgroup. To enable bbc, you have to specify "bboards" when you + build MH. + +Date: Tue, 1 Nov 94 00:00:00 -0800 + + See mhunify in (see also "What other MH software is + available?"). + +------------------------------ + +Subject: 03.03 How can I search through multiple folders? +From: Jerry Peek +Date: Mon, 1 Mar 93 00:00:00 -0800 + + Recurse through the folders (in csh and sh): + + % foreach f (`folders -f`) $ for f in `folders -f` + ? pick [switches] +$f > pick [switches] +$f + ? end > done + + Or create a folder that contains links to all messages (in csh and sh): + + % foreach f (`folders -f | grep -v -x ln`) + ? refile -src +$f -link all +ln + ? end + + $ for f in `folders -f | grep -v -x ln` + > do refile -src +$f -link all +ln + > done + + and in the future, refile messages with "refile +folder +ln". To + find something, use: + + % pick [switches] +ln + + See MH book sections 8.2.9 (7.2.9), 8.9.3 (7.8.3). + +------------------------------ + +Subject: 03.04 Why don't MH format commands such as %(friendly) work? +From: Anthony Baxter +Date: Sun, 1 May 94 00:00:00 -0800 + + The BERK option disables address parsing and therefore functions + such as %(friendly). Recompile MH without the BERK option. + +------------------------------ + +Subject: 03.05 Why doesn't "show" display all of a MIME message? +From: Jerry Peek +Date: Mon, 1 Aug 94 00:00:00 -0800 + + It's not the fault of the "show" command or of MH in general. It's + your system's configuration. Check the mhn_defaults file in your MH + library directory; if it doesn't have defaults for all content types, + add them. Or, if you can't (or shouldn't) change mhn_defaults, you + can put default entries in your MH profile file for those content types. + + Here's the part of the mhn(1) manpage that explains how content types + are handled: + + First, mhn will look for an entry of the form: + + mhn-show-/ + + to determine the command to use to display the content. If this + isn't found, mhn will look for an entry of the form: + + mhn-show- + + to determine the display command. If this isn't found, mhn has + two default values: + + mhn-show-text/plain: %pmoreproc '%F' + mhn-show-message/rfc822: %pshow -file '%F' + + If neither apply, mhn will check to see if the message has a + application/octet-stream content with parameter "type=tar". If + so, mhn will use an appropriate command. If not, mhn will + complain. + + So, add defaults that cover the types MH doesn't handle right now (or + doesn't handle the way you want it to). Your defaults will override + corresponding defaults in the mhn_defaults file. For example, if you + don't have an HTML editor/browser on your system, you could tell MH to + use the "less" paginator for HTML message parts: + + mhn-show-text/x-html: less %F + + You can put that line in your MH profile. + + You can even set different defaults for different terminal types (say, + your VT100 at home and your X setup at work). Make a file in the same + format as mhn_defaults; store its pathname in the MHN environment + variable. Add a test to your shell setup file (.profile, .login) that + tests the value of the TERM variable -- and, if you have an mhn setup + file for that terminal type, store its pathname in the MHN variable. + + See also MH book sections 6.2.3, 9.4.4, 9.4.5. + +From: Michael K. Neylon +Date: Tue, 1 Nov 94 00:00:00 -0800 + + If you are not using the X Window System, you may have to add this + line to your MH profile: + + mhn-charset-iso-8859-1: /bin/sh -c '%s' + +------------------------------ + +Subject: 03.06 Can I get show not to run "less" so much on MIME messages? +From: Bill Wohler +Date: Tue, 1 Nov 94 00:00:00 -0800 + + If you say, "show all," and one of the messages was a MIME message, + your pager will be run several times on each message, rather than + once on all the messages as a whole. If you find this annoying, set + the environment variable NOMHNPROC: + + % setenv NOMHNPROC "" # csh + $ NOMHNPROC= # sh and bash + $ export NOMHNPROC + + See also MH book sections 6.2.3, 6.2.10. + +------------------------------ + +Subject: 03.07 Why do I get "mhn: don't know how to display content"? +From: Keith Moore +Date: Thu, 1 Dec 94 00:00:00 -0800 + + MH 6.8.3 has a bug where it will not handle multipart/foo correctly + if it doesn't know about foo. This patch (see "mhn.c patch 2" + below) tells it to treat such things as if they were + multipart/mixed. + + (See also "Why doesn't "show" display all of a MIME message?"). + +------------------------------ + +Subject: 03.08 +How can I automatically delete MH backup files? +From: mccammaa@expt05.stp.xfi.bp.com (Andy McCammont) +Date: 22 May 95 06:27:36 -0400 + + On System V system, add this to your crontab. If you don't have + one, put this in a file, and run "crontab file". If your system + does not support personal crontab files, get your system + administrator to add an equivalent line to the system crontab file + or daily clean-up script. Note that some administrators set the + prefix character to '#'. + + # Remove old MH files + 5 5 * * * find /PATH/TO/HOME/Mail -name ",*" -mtime +5 -exec rm {} \; + +------------------------------ + +Subject: 03.09 +Fixing "cannot fopen and lock /var/spool/mail/(user)". +From: alhy@MAILBOX.SLAC.Stanford.EDU +Date: Thu, 20 Jul 1995 11:11:13 -0700 + + Often, this is caused by an NFS file lock. Don't ask me how it got + there in the first place. To remove the file lock, do the following: + + # cd /var/spool/mail + # cp user /tmp/user.tmp; rm user # save mail; remove locked file + # chown user /tmp/user.tmp # allow user to inc old mail + # su - user + user% inc -file user.tmp # incorporate user's old mail + + Any mail that you receive in the fraction of a second that the second + set of commands takes will be lost. + +------------------------------ + +Subject: 03.10 +Can I read my mail with a Web browser? +From: "Patrick A. Coronato" +Date: 8 Sep 1995 16:36:03 GMT + + There are two programs that I know of that will convert a Unix + mailbox into a threaded set of HTML documents. They both sort by + author, date, and thread and can be read by a WWW reader. Hypermail + from EIT works well but only supports Unix mailbox format and + doesn't appear to support MIME. + + http://www.eit.com:80/software/hypermail/ + + Another program, called MHonArc, by Earl Hood from Convex, will + definitely read MH mailboxes as well as Unix mailboxes, create HTML + "archives" and will also sort by date, thread and author and has + support for MIME. Also, MHonArc is written in the Perl (version 4) + language. (You should go to this site if nothing more than to see the + cool logo!) + + http://www.oac.uci.edu/indiv/ehood/mhonarc.html + +------------------------------ + +Subject: 04. ***** Filing ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 04.01 Can I append MH messages to a Unix mailbox format file? +From: Bill Wohler +Date: Fri, 1 Jan 93 00:00:00 -0800 + + Yes, see $MHLIB/packmbox. + +------------------------------ + +Subject: 04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file? +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + To convert your MH folders to BABYL folders, first run the following script + on your Mail directory. + + #!/bin/sh + + for f in Mail/*; do + if [ -d $f ]; then + touch msgbox + folder=`basename $f` + echo -n packing $folder ... + packf +$folder + echo done + mv msgbox Mail-rmail/$folder + fi + done + + This assumes you don't have nested folders. Your rmail folders will be + left in $HOME/Mail-rmail in MMDF format which rmail can read. Then run + rmail-input for each folder, which converts each folder into BABYL format. + + Be sure not to append any messages before they are converted from MMDF + to BABYL, since there may be really strange results. + +------------------------------ + +Subject: 04.03 Why do I get ".../.mh_sequences is poorly formatted?" +From: Jerry Peek +Date: Mon, 1 Aug 94 00:00:00 -0800 + + There is a line length limit in this file. When sequences are + unbroken (without gaps in numbering), that makes short entries in + the .mh_sequences file, like this: + + inftex: 72-8000 + + But when there are lots of numbering gaps, the entry gets long: + + inftex: 76 79-81 87 95-96 105 109 120 124 135 141 158 163... + + That's when you run into problems, and why it's good to keep the + folder packed when you can. Simply run "folder -pack +folder". + + If you're refiling a lot of messages in a large folder, you might + not be able to use sequences. Use backquotes to give the message + numbers directly to "refile". For example: + + refile +tex/info-tex `pick -to info-tex` + + That can still generate a long list of arguments to the "refile" command, + and some Unixes can't handle that. In that case, use xargs(1): + + pick -to info-tex | xargs refile +tex/info-tex + + If worse comes to worst, fire up a Bourne shell and use a "while" loop: + + pick -to info-tex | fmt | while read nums; do + refile +tex/info-tex $nums + done + + The fmt(1) command breaks long lines into manageable chunks of 72 + characters or so, splitting arguments at whitespace. When you redirect + the input of a while loop, a "read" command will read the incoming text + and store it in a shell variable line by line. This is a quick-&-dirty + way to write xargs(1) if you don't have it. + +------------------------------ + +Subject: 04.04 How can you save News articles into an MH folder? +From: Jerry Peek +Date: Mon, 1 May 95 00:00:00 -0800 + + If your newsreader handles backquotes on its command line, you can use + the mhpath command. For instance, if your "save" command is "s": + + s `mhpath new +somefolder` + + Or if your newsreader lets you define your own commands, as in shell + aliases, you could define that as a command. + + If your newsreader can pipe an article to the standard input of a + program, use the "rcvstore" command (in the MH library). For instance, + if your "pipe" command is "|": + + | $MHLIB/rcvstore +somefolder + + Of course, you can also put that in a little shell script. + +------------------------------ + +Subject: 04.05 +Are there any good tools to archive MH messages? +From: glimpse@cs.arizona.edu +Date: Sun, 26 Nov 1995 17:14:00 -0800 + + Glimpse is a very powerful indexing and query system that allows you + to search through all your files very quickly. It can be used by + individuals for their personal file systems as well as by + organizations for large data collections. + + ftp://cs.arizona.edu/glimpse + http://glimpse.cs.arizona.edu:1994/ + +From: Bill Wohler +Date: Sun, 26 Nov 1995 17:10:59 -0800 + + For those of lesser means, I have three shell scripts for archiving, + seeking, and extracting MH messages that I have been using for + almost 10 years. Send mail if interested. Note that I intend to + switch to Glimpse if I get a moment. + +------------------------------ + +Subject: 04.06 +How can I remove duplicate messages? +From: jerry@ora.com (Jerry Peek) +Date: 20 Nov 95 18:51:24 GMT + + The easiest way I know of is to sort the folder by the Message-ID + field using the sortm(1) command. + + After the sort, each message should be next to its duplicates in the + folder. Use a script (shell, Perl, etc.) to weed out the + duplicates. (See "Removing duplicate messages (Bourne)"). + + The Perl script in (see "Removing dupicate messages (Perl)) does not + require that you first sort the folder. + +------------------------------ + +Subject: 05. ***** Composing & Replying ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 05.01 Why does repl add a "Re:" to a message that already has one? +From: Larry McVoy +Date: Fri, 1 Mar 91 13:03:15 -0800 + + I carefully reconfigured and rebuilt MH from scratch and the problem + went away. + +------------------------------ + +Subject: 05.02 How do I include messages in repl with or without ">"? +From: Alan Thew , Mike Schwager , + James T Perkins +Date: Fri, 1 Jan 93 00:00:00 -0800 + + When making a reply, specify a filter file on the command line: + + repl -filter repl.format + + This filter file must be in your MH mail directory (usually "Mail", + in your home directory). Here are a couple of example repl.format + files: + + overflowtext="",overflowoffset=0 + message-id:nocomponent,formatfield=\ + "In message %{text}you write:" + body:component=">",overflowtext=">",overflowoffset=0 + + or + + overflowtext="",overflowoffset=0 + date:component="Your message dated",formatfield=\ + "%<(nodate{text})%{text}%|%(pretty{text})%>" + body:component=">",overflowtext=">",overflowoffset=0 + + Setting overflowoffset to 0 keeps MH from doing anything to + extra-long lines in the headers. In the body, however, this + behavior is overridden so that long lines are automatically broken + and a ">" is inserted before every line. You could put almost + whatever you want between those quotes, although the "standard" ">" + makes it easier to read notes that have been included several times. + The examples differ with the descriptive text that is inserted + before the included body. + + It is suggested not to use the "prompter" editor in this case, since + it is likely that you'll not want to use all of the included + message. Indeed, it is proper etiquette to edit out all unnecessary + include verbiage so readers don't have to wade through the morass to + read your pearls of wisdom. + + WARNING: the '>' appears on the first line ONLY in versions prior + to 6.7.2. Upgrade to MH 6.8. + + See also MH book sections 7.8.4 (6.7.4), 7.8.5 (6.7.5), 10.4.1 (9.4.1). + +------------------------------ + +Subject: 05.03 How can I eliminate duplicate copies of letters to myself? +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + Add these two lines to your MH profile file: + + Alternate-Mailboxes: user@host1, user@host2, ... + repl: -nocc me + + The Alternate-Mailboxes also tells scan which messages are really + from you so that it can place the recipient in the scan line instead + of the sender. + +From: Jerry Peek +Date: Fri, 1 Mar 91 13:03:15 -0800 + + To get one copy, you can either: + + - Take out the "-nocc me"... then you'll get exactly one copy of + your replies (assuming all your addresses are listed in + Alternate-Mailboxes), or + + - (See also "How can I save a copy of all messages I send?"). + + For more info, see the man pages comp(1), + repl(1), forw(1), dist(1) and mh-mail(5). + + See also MH book sections 7.8.2 (6.7.2), 9.8 (8.6). + +From: Alec Wolman +Date: Fri, 1 Mar 91 13:03:15 -0800 + + Listing the name of a mailing list in Alternate-Mailboxes is also a + convenient way to AVOID automatically cc-ing a mailing list when + replying to a person who sent the message to the mailing-list. + +------------------------------ + +Subject: 05.04 How can I include my signature? +From: Eric W. Ziegast , + Hardy Mayer +Date: Tue, 1 Nov 94 00:00:00 -0800 + + There are several ways. + + 1) The MH way. + + 1a) In your Mail directory, create files that + include your signature into the format of the message. + + ~/Mail/components: + To: + cc: + Subject: + -------- + + -- + Eric Ziegast ziegast@uunet.uu.net + UUNET Technologies uunet!ziegast + + ~/Mail/replfmt + body:component="> ",compwidth=2 + :-- + :Eric Ziegast ziegast@uunet.uu.net + :UUNET Technologies uunet!ziegast + + To use the replfmt file, add the following to your ~/.mh_profile: + + repl: -filter replfmt + + When comp is used, your signature is already there along with my + headers. When repl is used, the mhl program takes the body of + the letter you're replying to, prepends '> ' to each line and + then adds your signature at the end (available after version + 6.7). + + 1b) Create an "editor" which can be called from whatnow to add the + signature when desired or create a frontend to post (use the + .mh_profile line "postproc: postproc" to call it) that always + appends the .signature file before calling post to mail the + message. David J. Fiander , David A. + Truesdell and Tom Wilmore + have sample scripts to do these. + +From: Jerry Peek +Date: Tue, 1 Sep 92 00:00:00 -0800 + + 1c) Section 7.1.4 (13.13) of the MH book lists mysend, a sendproc + script to process a message after "What now? send" (see "What + references exist for MH" to see where the book's examples can + be ftped from). + + 2) Using your editor. If you use vi, you can use something like: + + map S :r ~/.signature + + to load your signature out of .signature every time you + hit 'S'. + + 3) Use your windowing system. xterm, for example, can provide key + and button mappings for the utterly lazy. + + 4) If you use Emacs with mh-e: + + 4a) C-c C-s will append the signature. + +From: Andre Srinivasan +Date: Mon, 1 May 95 00:00:00 -0800 + + 4b) Add the following to your .emacs file: + + (add-hook 'mh-compose-letter-function + (function + (lambda(a b c) + (save-excursion + (goto-char (point-max)) + (beginning-of-line) + (mh-insert-signature))))) + + This hook is called after the draft buffer has been initialized, + but before you have a chance to type anything. + +From: Tom Christiansen +Date: Tue, 1 Nov 94 00:00:00 -0800 + + Tired of the same old signature? Want different signatures for + different newsgroups? Here's a program to help you out. + + The way it works is to have .signature be a named pipe, so if you + don't have named pipes, just say 'n'. + + The sigrand program then feeds stuff down the pipe every time someone + wants to read it. That way it works for more than just news, but + for anything that wants to read your .signature, like a mailer. + + You have your choice of three kinds of signatures: + + 1) random (short) fortune from "fortune -s"; you get these if + you don't have a global sig file. + 2) random fortune from ~/News/SIGNATURES [global sig file] + 3) random fortune form ~/News/(newsgroup)/SIGNATURES [local sig files] + + Send mail if interested. + +Date: Tue, 1 Nov 94 00:00:00 -0800 + + See also the Signature FAQ (see "What references exist for MH?"). + +------------------------------ + +Subject: 05.05 How do I call my editor with arguments? +From: John Romine +Date: Mon, 1 May 95 00:00:00 -0800 + + Set your editor (in .mh_profile) to the following shellscript. + + #/bin/sh + exec "$@" + exit 0 + +From: Ray Nickson +Date: Fri, 1 Mar 91 13:03:15 -0800 + + You might find it useful to make $EDITOR, or to use + different arguments depending on your EDITOR environment variable. + +------------------------------ + +Subject: 05.06 How can I digestify messages in a folder for mail to another user? +From: Jerry Peek , Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + How about: + + forw [-digest tmp] [-form forwcomps] [-filter mhl.digest] + messages +folder + + These messages can be un-digestified :-) by the MH burst(1) program. + + See also MH book sections 7.9.7 (6.8.7), 8.10 (7.9). + +From: Glenn Vanderburg +Date: Tue, 1 Nov 94 00:00:00 -0800 + + There's another way, which is better if the recipient understands MIME. + + forw -mime messages +folder + + (Make sure that you either have "automhnproc: mhn" in your mh + profile, or type "edit mhn" to whatnow before you send it.) + + This bundles each message in a MIME message/rfc822 part, and then + bundles the whole mess up in a multipart/digest part. You can still + add your own text at the beginning. The MH burst program can also + understand these messages and split them apart with no problem. + This works beautifully with MIME-capable mail readers, especially + exmh. + +------------------------------ + +Subject: 05.07 How can I change my return address? +From: Bill Wohler +Date: Tue, 1 Dec 92 00:00:00 -0800 + + If you find that your mailer creates a From header that others have + trouble replying to, you can add a Reply-To header to override the + From header in replies. + + Copy the components and replcomps files which are normally found in + $MHLIB into your Mail directory and add a line like the following + after the Subject header replacing my address with your address: + + Reply-To: wohler@newt.com + +------------------------------ + +Subject: 05.08 !How can I change my From header? +From: Bill Wohler +Date: Mon, 27 Nov 1995 11:40:50 -0800 + + With either of the following solutions, you'll need to add an + Alternate-Mailboxes entry in your MH profile so that scan prints + "To: recipient" rather than your faked address. For example, if + your real address is wohler@gbr.newt.com and you've added a From + field of: + + From: Bill Wohler + + you'll add the following to .mh_profile: + + Alternate-Mailboxes: bill.wohler@newt.com + +From: Bill Wisner +Date: Tue, 1 Dec 92 00:00:00 -0800 + + If you're just interested in changing the hostname, add a line to + $MHLIB/mtstailor: + + localname: desired_host_name + +From: Jerry Peek +Date: Tue, 1 Dec 92 00:00:00 -0800 + + Just put a "From:" header in your "components", "replcomps" and + "forwcomps" files. MH will add a "Sender:" header with what it thinks + is your real address, but (almost) no one cares about the "Sender:" + header anyway. + +------------------------------ + +Subject: 05.09 !How can I save a copy of all messages I send? +From: Bill Wohler , Jerry Peek +Date: Mon, 1 Aug 94 00:00:00 -0800 + + Copy the components and replcomps files which are normally found in + $MHLIB into your Mail directory and add a line like the following + after the cc header: + + Fcc: +out + + All outgoing messages will then be saved in the +out folder. If you + make a distcomps file, it needs "Resent-Fcc:". + +From: David S. Goldberg +Date: 30 Oct 1995 10:23:55 -0500 + + You can get the Message-ID field by placing the folder in the "Fcc" + field and adding: + + send: -msgid + + to your .mh_profile. Unfortunately, this Message-ID isn't as useful + as sendmail's--it doesn't include the date. + +------------------------------ + +Subject: 05.10 Can the folder in Fcc: be dynamically specified? +From: Andy Rabagliati +Date: Mon, 1 Aug 94 00:00:00 -0800 + + My suggestion would be to run Tom Christiansen's rfi script. If you + cannot find it on *.sources archive sites (please try first), I can + mail it to you. + + One good idea would be to write a whatnowproc that files the mail + based on a procmail or deliver file. Then you can use the same file + for incoming and outgoing mail. + +------------------------------ + +Subject: 05.11 !Can I post secure/encryped mail? +From: Vivek Khera +Date: 19 Jun 1995 22:06:37 GMT + + A much more robust Perl script I wrote is appended below [Ed: Send a + note to Vivek for the script]. It works its way through aliases, + and avoids problems with full names in the headers. + + Here is my mhn profile entry to display the messages. + + mhn-show-application/x-pgp: %l pgp -m '%F' + + to use the script, after you edit the message, at the What now? + prompt, type "edit pgpmail" for plain ascii encryption or "pgpmail + -m" for a MIME formatted encryption. If you want to add a digital + signature, give the script the -s flag also. + +From: Stephen Gildea +Date: Fri, 09 Jun 1995 08:28:45 -0700 + + There are several packages that support PGP in mh-e: + + mailcrypt by Patrick LoPresti + and Jin Choi . See + http://cag-www.lcs.mit.edu/mailcrypt/ for more info. + + pgp.el by Jack Repenning + ftp://sgigate.sgi.com/pub/pgp-aux/pgp-el.tar.gz + + Jack and I have been in communication, so I know that pgp.el will work + with mh-e 5.0. + +From: Jeffrey C. Ollie +Date: Mon, 1 May 95 00:00:00 -0800 + + TIS has a free, draft-standard compliant public key system that + works with MH (PEM). Check it out on ftp.tis.com. + +From: Kimmo Suominen +Date: Mon, 1 May 95 00:00:00 -0800 + + You could try looking at the URL http://www.tac.nyc.ny.us/ and + following the link from the cover page. Everything you need for + PGP to work with MH is there (scripts and mhn entries). + +From: mathew@mantis.co.uk +Date: Mon, 1 May 95 00:00:00 -0800 + + Excellent stuff. I've tried altering it to conform to + draft-borenstein-pgp-mime-00.txt. + + Unfortunately, I can't get mhn to tag PGP-armoured text as + application/pgp; format=text without it insisting on base64 encoding + it. So I can't quite manage to implement the standard. *sigh* + + Presumably mhn thinks that anything which isn't text/* must be + encoded. + +From: Jason L Tibbitts III +Date: Mon, 1 May 95 00:00:00 -0800 + + There is an Emacs and MH based mail interface called Mew which, + while still beta, is quite stable and works well. It fully handles + MIME and PGP. Grab it from: + + ftp://ftp.aist-nara.ac.jp/pub/elisp/Mew/mew-current.tar.gz + +------------------------------ + +Subject: 05.12 +How can I send multi-media (MIME) attachments? +From: Brian Exelbierd +Date: Mon, 09 Oct 1995 08:05:55 -0400 + + The short guide: + + 1. Compose a letter using comp. + + 2. When you get to a point where you want to include a MIME attachment, type + the following to include a GIF image (note: the '#' must be in + the first column): + + #image/gif [Pictures at an Exhibition] /usr/lib/pictures/exhibition.gif + + 3. Finish your letter, adding more text or attachments as needed. + + 4. Save your letter and exit the editor. At the Whatnow prompt + type "edit mhn". mhn will automatically format your letter with + the MIME attachments leaving the original letter in ,##,orig + where ## is the letter number. + + 5. Type "send" at the Whatnow prompt, and poof, you have just sent + MIME mail. I strongly recommend you practice sending yourself + MIME mail first. + + For more information, see the mhn(1) man page, Chapter 3 in the MH + book, and + ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types + for a list of allowed media types in addition to image/gif. + +------------------------------ + +Subject: 05.13 +What's the best way to send mail to a long list of people? +From: Bill Wohler +Date: Thu, 12 Oct 1995 07:53:53 -0700 + + There are three ways to keep the list of members from appearing in + everyone's header. + + If you're planning on mailing to these people regularly, the best + way is to create an alias in /usr/lib/aliases. That way, recipients + can send and reply to the list as well. + + The other two ways allow you to manage the list privately, but the + recipients cannot send to the list (unless you set something up with + your deliver or procmail script). One is with a group list. It + looks like this: + + To: All-members: member1, member2, member3, ..., membern; + + The recipients see this: + + To: All-members:; + + You can make this an MH alias as well. + + The second way is to use a blind carbon copy, like this: + + To: your-address-here + Bcc: member1, member2, member3, ..., membern + + The recipients see this: + + To: your-address-here + + ------- Blind-Carbon-Copy + + Content of message, with headers + + Or you could also use the undocumented Dcc field which is used like + the Bcc field, but doesn't inject the "Blind-Carbon-Copy." Warning: + (See "What is the Dcc header?") + +------------------------------ + +Subject: 05.14 +What is the Dcc header? +Date: Wed, 27 Sep 1995 09:46:37 -0700 +From: John Romine + + The Dcc (Distribution Carbon Copy) field behaves much like the Bcc + field, but does not add the "Blind-Carbon-Copy" notice. This header + is removed before posting the message,and a copy of the message is + distributed to each listed address. This could be considered a form + of Blind Carbon Copy which is best used for sending to an address + which would never reply (such as an auto-archiver). + + People should not be using Dcc as a substitute-Bcc to send to other + people. When users use Dcc as a substitute for Bcc, there is *no* + indication to the "blind" recipients that they have received a blind + copy. If those recipients should reply (and they have no indication + why they shouldn't), the original author could be very embarassed + (or worse). + +------------------------------ + +Subject: 05.15 +How can I make sense of the replcomps file? +From: Bill Wohler +Date: Sun, 26 Nov 1995 19:25:14 -0800 + + The best thing to do is curl up with the mh-format(5) man page, or + Section 11.2 of the MH book. Both of these will explain the + following replcomps file. Don't start with the first four + lines--the latter group of lines are much easier to understand. + + %(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\ + %<(nonnull)%(void(width))%(putaddr To: )\n%>\ + %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ + %<(nonnull)%(void(width))%(putaddr cc: )\n%>\ + Organization: Newt Software + %<{fcc}Fcc: %{fcc}\n%>\ + %<{subject}Subject: Re: %{subject}\n%>\ + %<{date}In-reply-to: Your message of "\ + %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} + %{message-id}%>\n%>\ + -------- + + In particular, note the following: + + \ consider the following line to be part of the current line + \n inject an actual newline into the reply. Note that inserting + a field without a trailing backslash (\) will cause + that field to be emitted in the reply as well. + %<{field}, %?{field}, %|, %> if field exists, else if field exists, + else, endif + %(command) mh-format commands + %{field} value of the header field inserted at this point + + To add new fields, you can either add fields based on whether + certain fields exist in the original message (e.g., + %<{message-id}...), or hard-code them, as in the Organization field + above. Note that you can either use a "\n\" pair, or nothing at the + end of a line to insert a newline in the reply. + +------------------------------ + +Subject: 05.16 +How can I convert quoted-printable to 8bit in quoted text in replies? +From: Jarle F. Greipsland +Date: 22 Aug 1995 10:42:07 +0200 + + The idea behind the solution is that I need mhn to store the + contents of the mail in the native iso8859-1 format somewhere. I + did this by creating a custom editor that is invoked when I reply to + a message. This editor extracts the body of the message (sorry, no + multipart stuff), indents it with '> ', appends it to the draft + message and invokes the ordinary editor on it. Here are the details: + + `isorepl' is a symbolic link from my $HOME/bin-directory to `repl'. + + In my .mh_profile I added the following two lines: + + isorepl: -form isoreplcomps -editor isoextract + isoextract-next: vi + + The isoreplcomps file in my Mail-directory contains: + + %(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\ + %<(nonnull)%(void(width))%(putaddr To: )\n%>\ + %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ + %<(nonnull)%(void(width))%(putaddr cc: )\n%>\ + %<{fcc}Fcc: %{fcc}\n%>\ + %<{subject}Subject: Re: %{subject}\n%>\ + %<{date}In-reply-to: Your message of "\ + %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} + %{message-id}%>\n%>\ + -------- + #\ + %<{from}%(friendly{from}) writes%|You write%>: + + This is a "Usenet-like" quoting style. Modify to suit your own + taste. This form will setup the proper header, as well as the first + line of the new message (In nnnn writes etc.). + + The first editor, `isoextract', looks like this: + + #!/bin/sh + # + # Called from within repl where the "editalt" variable is valid + # + # Point to a special MHN configuration file (save old one) + OLDMHN="$MHN" + MHN=$HOME/`mhparam Path`/isoquotemsg + export MHN + + # Extract message body to "native" format (should be iso-8859-1) + # > More bla bla. + mhn -file "$editalt" -store >> $1 2>/dev/null + + MHN="$OLDMHN" + myname=`basename $0` + next=`mhparam ${myname}-next` + if [ "x$next" != "x" ]; then + exec $next "$@" + fi + + `isoquotemsg' has just one rule; how mhn should store a text message. + + mhn-store-text: |sed -e 's/^[ ]*$//' \ + -e 's/^\([>|]\)\(.*\)$/>\1\2/' \ + -e 's/^\([^>|].*\)$/> \1/' + + This tells mhn to pipe the message to stdout, where the sed commands will + do the reformatting/quoting. (Note: the first pair of square brackets + contains a space and a tab.) + + So, when I do a `isorepl' to a message, `repl' will create the draft + message with the proper headers (based on the `isoreplcomps' format file), + fire off its first editor, `isoextract', with the name of the draft file as + its parameter. `isoextract' then invokes mhn in a suitable environment, + tells it that it is to use the file $editalt as its source, and orders it + to store the contents. The store-text rule in the custom MHN-file tells it + to just pipe the message (in native iso8859-1 form) through a small set of + sed commands, and `isoextract' uses the normal shell construct to append + the result to the draft file. Then, if there's defined a `isoextract-next' + entry in the .mh_profile, isoextract exec's this editor. + +------------------------------ + +Subject: 06. ***** Posting ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 06.01 What to do with "Problems with edit - draft removed". +From: John Romine +Date: Mon, 1 May 95 00:00:00 -0800 + + If your users are using an AT&T version of "vi", it's exiting with + non-zero status (supposedly a count of the "errors" during the edit). + Move "vi" to "broken_vi" and put it its place : + + #! /bin/sh + exec /usr/ucb/broken_vi "$@" + exit 0 + + Alternatively, compile MH with the ATTVIBUG option. + + Then complain to your vendor that "vi" is broken, and they should + fix it. + +------------------------------ + +Subject: 06.02 Can I run my message through a program (e.g., ispell) before sending? +From: Jerry Peek +Date: Fri, 1 Mar 91 13:03:15 -0800 + + It's pretty simple. If your speller is called myspell, use: + + What now? edit myspell + + MH will actually execute: + + myspell /your-mail-draft-directory/draftfile + + and give the entire draft message to your speller. The header will + probably be "misspelled," of course, though you might be able to + tell the speller to ignore it--or you could hack up a little shell + script to run the speller on just the message body, then tack the + corrected body back onto the header before sending. + + You can automate this some more. For example, if you want your + speller to run after your first edit with "prompter" and also after + you leave the "vi" editor, add these lines to your MH profile: + + prompter-next: myspell + vi-next: myspell + + Then, at the "What now?" prompt: + + What now? e + + your speller will run. For more info, see the mh-profile(5) man + page or section 7.2.1 (6.2.1) of the MH book. + +------------------------------ + +Subject: 06.03 What to do with "bad address 'xxx' - no at-sign after local-part". +From: Owen Rees +Date: Fri, 1 Jan 93 00:00:00 -0800 + + You may find that post returns the following message: + + post: bad address 'Mr. Foo Bar ' - no at-sign + after local-part (Bar), continuing... + + The unquoted dot causes "Mr. Foo" to be parsed as the local part of + the address. Either remove the dot, or rewrite the address as + follows: + + "Mr. Foo Bar" + (Mr. Foo Bar) + (Mr. Foo Bar) fb@somewhere.edu + +------------------------------ + +Subject: 06.04 Fixing "post: problem initializing server; [BHST] no servers available" +From: Peter Marvit , + Eric Bracken +Date: Tue, 1 Nov 94 00:00:00 -0800 + + The error message itself is essentially correct. However, what this + really means is: MH's post cannot connect to a running sendmail over + an SMTP port (MH configured with SMTP and SENDMTS). + + The potential problems: + + 1. Your local sendmail daemon is dying or not running for some + reason. + + 2. You use BIND and your local nameserver is not responding. + Solution: Delete "/etc/resolv.conf." + + 3. Your mtstailor has its "servers:" pointing to a non-existent + machine or a machine which is a) not reachable or b) not running + the sendmail daemon. + +From: Bdale Garbee , + Eric Bracken +Date: Sun, 1 May 94 00:00:00 -0800 + + 4. The hostname localhost [127.0.0.1] is missing from /etc/hosts. + + Solution: add an entry for "localhost" to /etc/hosts or your DNS + database or add the following to $MHLIB/mtstailor: + + servers: 127.0.0.1 \01localnet + +------------------------------ + +Subject: 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender already specified" +From: Paul Pomes +Date: Mon, 1 Mar 93 00:00:00 -0800 + + The problem in sendmail is that the RSET after the ONEX does not + reset all the state information. Normally sendmail fork()s after + the Mail from: statement and a RSET causes that child to exit. This + automatically cleans up. If the fork() is suppressed by ONEX, then + the source must be modified to do the cleanup. See "srvrsmtp.c + patch" in the Appendix. If you don't have the sources, modify your + MH sources to not use the ONEX verb. + +------------------------------ + +Subject: 06.06 Fixing "post: unexpected response; [BHST] no socket opened" +From: Steve Lembark , Bill Wohler +Date: Mon, 1 Aug 94 00:00:00 -0800 + + Problem happens when there is no interface defined within the tcp + system. A couple of workarounds include: + + o Use a hostname (other than the local host) instead of localhost in + the "servers" entry of the "$MHLIB/mtstailor" file. + o Recompile MH with sendmail instead of sendmail/mts (not very elegant). + + A better fix would be to define your tcp interface. + + Here, you run ifconfig and route (as root) to define the loopback + device and route. You should add them to rc.local so they are + effected at every boot. + + # ifconfig lo 127.0.0.1 # Linux + # ifconfig lo0 127.0.0.1 # Sun + + # route 127.0.0.1 + + If all is well, "ifconfig lo" (or lo0), will show something like this + (on my Linux system): + + lo Link encap Local Loopback + inet addr 127.0.0.1 Bcast 127.255.255.255 Mask 255.0.0.0 + UP LOOPBACK RUNNING MTU 2000 Metric 0 + RX packets 0 errors 0 dropped 0 overrun 0 + TX packets 519 errors 0 dropped 0 overrun 0 + + and "netstat -r" will show: + + # netstat -r + Destination net/address Gateway address Flags RefCnt Use Iface + 127.0.0.0 * UN 0 519 lo + + If you're not on a network and running DNS, your /etc/hosts will + need at least: + + 127.0.0.1 your_host_name localhost # loopback address + + Note: put your name FIRST on the localhost line. This official name + is used by sendmail to determine your return address. + + If you are on a network and running DNS, you might find that putting + your host name in the localhost entry might gum up other things, in + which case you'll want your hostname to have its own proper address. + + This might not do it though. David Youatt says that + his network was happy but he still had the problem until he upgraded + his system and got the latest revision of sendmail as well. He + says: "Turns out that that the problem I was having seems to be + caused (at least partly, maybe entirely) by the version of sendmail + that is shipped with IRIX 5.2 (sendmail 5.65, I think). The version + shipped w/IRIX 5.3 (in beta) is sendmail 8.6.9 and works fine." + + I'm not entirely happy with this section, so please give me some + feedback. If you have this problem, please send me + a brief description so I'll know which problems + and solutions seem to be the most prevalent. + +------------------------------ + +Subject: 06.07 How do I fix the "X-Authentication-Warning" header? +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + You get a header like: + + X-Authentication-Warning: screamer.rtp.ericsson.se: Host + rcur7.rtp.ericsson.se didn't use HELO protocol + + Easy possibilities are: apply the patch to MH that comes with Sendmail + 8.X.X and makes it use HELO, or comment out the line that says + + Opauthwarnings + + in your sendmail.cf. + +------------------------------ + +Subject: 06.08 Fixing "post: unexpected response; [RPLY] 503 Need MAIL before RCPT" +From: Bjoern Stabell +Date: Mon, 1 May 95 00:00:00 -0800 + + I inserted: + + clientname: localhost + + in the mtstailor file, and that fixed the problem. + +------------------------------ + +Subject: 06.09 Fixing "post: problem initializing server; [BHST] premature end-of-file on socket" +From: Chuck Mattern +Date: Mon, 1 May 95 00:00:00 -0800 + + If you are running sendmail instead of smail, make sure that all + smtp entries in /etc/inetd.conf are commented out. If you do edit + /etc/inetd.conf, don't forget to run to restart inetd with "kill -1 + ". + +------------------------------ + +Subject: 06.10 Fixing "Sender didn't use the HELO protocol" +From: Terry Manderson +Date: Mon, 1 May 95 00:00:00 -0800 + + Add + + clientname sender + + to $MHLIB/mtstailor where sender is the name of the machine sending + the message. The error message occurs because newer MTA's require + SMTP's "HELO" command which MH omits in some configurations. When + you add the above line, it forces MH to use the HELO command. + +From: Stephan Neuhaus +Date: Mon, 1 May 95 00:00:00 -0800 + + Put + + clientname: localhost + + in your mtstailor file. + +From: Scott Hutton +Date: Mon, 1 May 95 00:00:00 -0800 + + Alternately, change or comment out + + Opauthwarnings + + from your sendmail.cf. + +------------------------------ + +Subject: 06.11 Fixing "post: problem initializing server; [RPLY] 553 Local configuration error, hostname not recognized as local +From: "Matthew V. J. Whalen" +Date: Mon, 1 May 95 00:00:00 -0800 + + Change your "mts" in "conf/MH" from "sendmail/mts" to just + "sendmail." + +From: Bill Wohler +Date: Mon, 1 May 95 00:00:00 -0800 + + The solution above will keep MH from using any SMTP server on your + network. require sendmail to be installed on all machines. You + could take advantage of the "sendmail/mts" option to have MH talk to + a non-local sendmail. Add: + + servers + + It may also be caused by old versions of sendmail. + +------------------------------ + +Subject: 07. ***** Mail Filters ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 07.01 !What mail filters are available? +From: Bill Wohler +Date: Mon, 1 Aug 94 00:00:00 -0800 + + The list currently includes slocal (included with MH), deliver, + procmail and mailagent. They are briefly described here. Slocal is + probably the most popular by virtue of being included in the + distribution. The next most popular entry is deliver, followed + closely by procmail. + + Slocal comes with MH. It can be used to process incoming mail based + on the contents of any of the headers. Actions include filing + messages, running commands, printing messages on your terminal and + so on. The configuration is made in ~/.maildelivery. People seem to + have trouble with slocal bugs, and you can't use it if you don't + have write permission on your system maildrop so a lot of people + have opted for the alternatives, but it's easy to use and comes with + MH. + + Deliver can run any script or program (called ~/.deliver), so you + really can do anything you want to incoming mail. One feature that + it sports that no other does is that you can install it as a local + mailer in place of /bin/mail. If it's the local mailer, you don't + need to have a .forward--~/.deliver is run anyway. In addition, it + allows the system administrator to write some programs to filter + everybody's mail. It came with my Linux system, so installation was + non-existent. + +From: Stephen R. van den Berg +Date: Mon, 1 Aug 94 00:00:00 -0800 + + Procmail can be used to create mail-servers, mailing lists, sort + your incoming mail into separate folders/files (real convenient when + subscribing to one or more mailing lists or for prioritizing your + mail), preprocess your mail, start any programs upon mail arrival + (e.g. to generate different chimes on your workstation for different + types of mail) or selectively forward certain incoming mail + automatically to someone. + + ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/procmail.tar.gz 160k + +From: Raphael Manfredi +Date: Mon, 1 Aug 94 00:00:00 -0800 + + "mailagent" is yet another mail filter, written in perl, which will + let you do anything with your mail. It has all the features you may + expect from a filter: mailing lists sorting, forwarding to MTA or to + inews, pre-processing of message before saving into folder, vacation + mode, etc. It was initially written as an Elm-filter replacement, + but has now enough power to also supplant MMDF's + .maildelivery. There is also a support for @SH mail hooks, which + allows you to automatically distribute patches or software via + command mails. + + The mailagent was designed to make mail filtering as easy as it can + be. It is highly configurable and fairly complete. Rules are + specified in a lex-like style, with the full power of perl's regular + expressions. The automaton supports the notion of mode, and header + selection has many magic features built-in, to ease the rule writing + process. + + The distribution comes with a set of examples, an exhaustive test + suite, and naturally a detailed manual page. It should be noted that + the mailagent will work even if your system administrator forbids "| + programs" hooks in the ~/.forward, provided you have access to some + sort of cron daemon. + + You can get a full email distribution of the latest release by + sending an appropriate command to my own mailagent, such as: + + Subject: Command + + @SH maildist PATH mailagent - + + where PATH stands for YOUR email address, i.e. a path from me to + you. + +------------------------------ + +Subject: 07.02 Why slocal writes messages to system mailbox that from(1) can't read. +From: Bill Wohler +Date: Mon, 1 May 95 00:00:00 -0800 + + Upgrade to MH 6.8 and set the RPATHS option. Better yet, use a more + MH-like command instead of from: "scan -file $MAIL". + +------------------------------ + +Subject: 07.03 Where can I read about slocal and the format of .maildelivery? +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + See the slocal man page. + + Here is brief example of a .maildelivery file that stores messages + to babble in a folder and the system mailbox, stores mh-users in a + folder but not the system mailbox, and puts the rest in the system + mailbox. + + to mh-users | A "$MHLIB/rcvstore -create +lists/mh-users" + cc mh-users | A "$MHLIB/rcvstore -create +lists/mh-users" + to babble | R "$MHLIB/rcvstore -create +lists/babble" + cc babble | R "$MHLIB/rcvstore -create +lists/babble" + default - > ? /usr/spool/mail/wohler + + Your .forward file may look like (quotes necessary): + + "| $MHLIB/slocal -user your_login" + + In some implementations, the "-user your_login" is not needed. If + not, manually running slocal with the flag will produce an error. + + See also chapter 12 (11) in the MH book. + + Alternatives to slocal include deliver, procmail, and mailagent. + Archie can help you find where they are kept. + +------------------------------ + +Subject: 07.04 How do I debug my .maildelivery file? +From: Bill Wohler +Date: Mon, 1 Mar 93 00:00:00 -0800 + + Use as many of the following as necessary. + + Put a message into a file and call slocal directly on it. + + $MHLIB/slocal -user $USER -verbose -debug < test-msg + + Modify your .forward to look like: + + "|/bin/sh -c 'exec >> /tmp/out 2>&1; + $MHLIB/slocal -user $USER -verbose -debug'" + + Or modify a rule in .maildelivery to look like this: + + to foo | R "set -xv; exec >/tmp/out 2>&1; $MHLIB/rcvstore +foo" + + The previous examples are broken up for readability; the text must + appear on one line. + + See also MH book section 12.11 (11.11). + +------------------------------ + +Subject: 07.05 Why isn't slocal working? +From: Bill Wohler +Date: Mon, 1 Mar 93 00:00:00 -0800 + + If slocal doesn't appear to be doing anything, run the following + + $MHLIB/slocal -user your_login -verbose < file + + where "file" is some message in a mail folder. If you get something + like: + + .maildelivery: ownership/modes bad (0, 154,154,0100666) + + your .maildelivery is writable by too many people. Make it writable + only by you by running "chmod 644 .maildelivery". + + See also "How do I debug my .maildelivery file?" + +------------------------------ + +Subject: 08. ***** mh-e ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 08.01 Is there documentation for mh-e? +From: Bill Wohler +Date: Mon, 1 May 95 00:00:00 -0800 + + Yes. See "What references exist for MH?". + +------------------------------ + +Subject: 08.02 How can mail aliases can be expanded in mh-e? +From: Stephen Gildea +Date: Sun, 1 May 94 00:00:00 -0800 + + Typing C-c C-w will show you the expanded list of recipients. + +------------------------------ +Subject: 08.03 !How do I use POP with mh-e? +From: Bill Wohler +Date: Mon, 27 Nov 1995 12:23:51 -0800 + + If MH has been compiled with RPOP, then the POP server host either + needs to have your host in /etc/hosts.equiv or in your .rhosts file. + Then add to your MH profile: + + inc: -host cuckoo + + given that "cuckoo" is the name of the your POP server. + +From: Andy Norman +Date: Mon, 1 May 95 00:00:00 -0800 + + Assuming your POP server is called cuckoo, add an entry to your MH + profile for 'inc' like so: + + inc: -noaudit -norpop -noapop -host cuckoo + + Add the following to ~/.netrc: + + machine cuckoo.domain.name login joeuser password secret + + Replace the hostname, login and password with your own, of course. + The hostname probably has to be fully qualified (i.e., include the + full domain name). This example assumes that you can send mail by + other means (e.g., with SMTP). + +------------------------------ + +Subject: 09. ***** Xmh ***** +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +------------------------------ + +Subject: 09.01 How can I get xmh to use Emacs as the editor? +From: Bob Ellison +Date: Fri, 1 Mar 91 13:03:15 -0800 + + The modifications to xmh to support an external editor, annotations, + and an append command can be found in the these places. + + ftp://ftp.x.org/R5contrib/xmh-mods-R5-1.7.Z 37k + ftp://ftp.sei.cmu.edu/pub/xmh/xmh-mods-R5-1.7.Z 37k + ftp://ftp.sei.cmu.edu/pub/xmh/xmh-mods-R6-1.0.Z 37k + +From: Andrew Wason +Date: Fri, 1 Mar 91 13:03:15 -0800 + + As of R5, xmh has a new action proc called XmhShellCommand. A + string parameter will be executed as a shell command with the + currently selected messages as parameters (or the current message if + there are no selected messages). + + Using this new action, a couple of shell scripts, a window version + of emacs (e.g. xemacs) and some elisp code, xmh can use emacs as its + editor instead of the built in Athena text widget editor. This + doesn't require any source code changes to xmh. These are included + in the Appendix "Switching xmh's editor". + +------------------------------ + +Subject: 09.02 Does xmh support subfolders? +From: Steve Malowany +Date: Fri, 1 Mar 91 13:03:15 -0800 + + Yes. Create one by invoking "Create Folder" as usual, and enter + something like: existing-folder/new-sub-folder. You can then access + the subfolder by popping up a menu over the "existing-folder" button + item. + + But: + +From: John Cooper +Date: Fri, 1 Mar 91 13:03:15 -0800 + + The R5 version of xmh does *not* handle nested sub-folders. If you + create a folder as 'grab/some/bandwidth', xmh displays this + folder name for the remainder of the session where it was created, + BUT if you later re-run xmh, the folder is no longer visible to xmh. + + See also MH book section 15.6.2 (15.6.2). + +------------------------------ + +Subject: 09.03 How do I precede included messages with ">" when replying in xmh? +From: Len Makin +Date: Fri, 1 Mar 91 13:03:15 -0800 + + Include the following line in your ~/app-defaults/XMh file: + + Xmh*replyInsertFilter: "sed 's/^/> /'" + + or, + + Xmh.ReplyInsertFilter: $MHLIB/mhl -form repl.filter + +From: Andy Linton +Date: Fri, 1 Mar 91 13:03:15 -0800 + + Using this means that you can chose to insert the original by use of + the "Insert" button in the Draft message pane. See "How do I + include messages in repl with or without ">"?" to find examples of + repl.filter. + + See also MH book sections 15.1.4 (15.1.4), 16.3.3 (16.3.3). + +------------------------------ + +Subject: !Glossary +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + + MH Mail Handler + MHLIB Where MH support routines and files are kept; usually /usr/lib/mh + or /usr/local/lib/mh. + POP3 Post Office Protocol, RFC 1225 + MMDF Multi-channel Memo Distribution Facility + MIME Multipurpose Internet Mail Extensions, RFC 1521 + IMAP Internet Message Access Protocol, RFC 1064, 1176 + TIS Trusted Information Systems + PEM Privacy Enhanced Mail + PGP Pretty Good Privacy + SMTP Simple Mail Transport Protocol (STD 10; RFC 821) + +------------------------------ + +Subject: Acknowledgments +From: Bill Wohler +Date: Fri, 1 Mar 91 13:03:15 -0800 + +I'd like to thank the following people for providing ideas on the +layout of this article: + +Joe Wells Richard M. Stallman +David Elliott Tom Christiansen +Eugene N. Miya + + +We are also grateful to the individuals mentioned below and in the +text of this document who have provided answers or other information +to make this a better document. I regret that it is possible that +some names have been accidently omitted. I would also like to thank +all the readers of comp.mail.mh. + +Kim F. Storm Edward Vielmetti + +------------------------------ + +Subject: Switching xmh's editor +From: Andrew Wason +Date: Fri, 1 Mar 91 13:03:15 -0800 + +#! /bin/sh +# This is a shell archive. Remove anything before this line, then unpack +# it by saving it into a file and typing "sh file". To overwrite existing +# files, type "sh file -c". You can also feed this as standard input via +# unshar, or by typing "sh 'README' <<'END_OF_FILE' +XThis is a short description of what to do with each of the enclosed files. +X +XXmh.ad +X Merge this in with your xmh resources. If you already have +X user defined buttons, then you may need to renumber the +X buttons in this resource file. +X +Xxmh-command.el +X Byte compile this file and put it in your GNU emacs load-path. +X +Xxmhcommand +Xxmhemacs +X Put these somewhere in your path. +X +X +XOnce you have installed these, restart the R5 xmh with the new +Xresources. When you press the repl, forw or comp buttons +Xan xemacs window will come up with your draft message. +X +XOnce you have written your mail, save it and exit GNU emacs (C-xC-c). +XYou will be prompted if you want to send the current message. +XIf you enter 'y', the message will be sent and the output will +Xbe displayed in an emacs window (in case you use -verbose or -snoop). +XThen you will be prompted to exit emacs. Enter 'y' when you are ready. +X +XIf you answered 'n' when prompted to send the message, +Xthen the draft message will be deleted and emacs will exit. +X +XYou can modify the Xmh.ad resources to add more buttons. +XAny MH command which accepts "+folder msg" can be used +X(e.g. a replx shell script which includes the body of the +Xmessage being replied to can be bound to a replx button) +X +X +XAndrew Wason +Xaw@bae.bellcore.com +END_OF_FILE +if test 1269 -ne `wc -c <'README'`; then + echo shar: \"'README'\" unpacked with wrong size! +fi +# end of 'README' +fi +if test -f 'Xmh.ad' -a "${1}" != "-c" ; then + echo shar: Will not clobber existing file \"'Xmh.ad'\" +else +echo shar: Extracting \"'Xmh.ad'\" \(457 characters\) +sed "s/^X//" >'Xmh.ad' <<'END_OF_FILE' +XXmh*CommandButtonCount: 3 +X +XXmh*commandBox.button1.label: repl +XXmh*commandBox.button1.translations:\ +X #override\n\ +X : XmhShellCommand(xmhcommand y repl) unset() +X +XXmh*commandBox.button2.label: forw +XXmh*commandBox.button2.translations:\ +X #override\n\ +X : XmhShellCommand(xmhcommand y forw) unset() +X +XXmh*commandBox.button3.label: comp +XXmh*commandBox.button3.translations:\ +X #override\n\ +X : XmhShellCommand(xmhcommand n comp) unset() +END_OF_FILE +if test 457 -ne `wc -c <'Xmh.ad'`; then + echo shar: \"'Xmh.ad'\" unpacked with wrong size! +fi +# end of 'Xmh.ad' +fi +if test -f 'xmh-command.el' -a "${1}" != "-c" ; then + echo shar: Will not clobber existing file \"'xmh-command.el'\" +else +echo shar: Extracting \"'xmh-command.el'\" \(1294 characters\) +sed "s/^X//" >'xmh-command.el' <<'END_OF_FILE' +X;;; These functions are for use with xemacs and xmh. +X;;; The R5 xmh has a new action - XmhShellCommand which executes +X;;; a shell command with the current msg as an arg. +X;;; By executing something like: +X;;; XmhShellCommand(xmhcommand repl) +X;;; you can use xemacs as your editor with xmh. +X;;; +X;;; The following elisp functions perform the basic whatnowproc functionality +X;;; (quitting and deleting, sending) +X;;; +X;;; Andrew Wason aw@bae.bellcore.com +X +X +X;;; Override C-xC-c +X(define-key indented-text-mode-map "\C-x\C-c" 'xmh-command-send-or-delete) +X +X +X(setq mhdraft (getenv "mhdraft")) ; save the filename of the draft +X +X +X(find-file mhdraft) ; load the draft letter +X(indented-text-mode) +X(setq draft-buffer (current-buffer)) ; save the buffer the draft is in +X +X +X(defun xmh-command-send-or-delete () +X "Prompt to send or delete letter, then quit." +X (interactive) +X (set-buffer draft-buffer) +X (if (y-or-n-p "Send message? ") +X (progn +X (save-buffer) ; save the draft buffer +X (message "Sending...") +X (pop-to-buffer "MH mail delivery"); pop to a buffer for "send" output +X (erase-buffer) +X (call-process "send" nil t t mhdraft) ; call MH "send" +X (if (y-or-n-p "Exit? ") +X (kill-emacs))) ; exit emacs +X (delete-file mhdraft) ; delete the draft letter +X (kill-emacs))) ; exit emacs +END_OF_FILE +if test 1294 -ne `wc -c <'xmh-command.el'`; then + echo shar: \"'xmh-command.el'\" unpacked with wrong size! +fi +# end of 'xmh-command.el' +fi +if test -f 'xmhcommand' -a "${1}" != "-c" ; then + echo shar: Will not clobber existing file \"'xmhcommand'\" +else +echo shar: Extracting \"'xmhcommand'\" \(669 characters\) +sed "s/^X//" >'xmhcommand' <<'END_OF_FILE' +X#!/bin/sh +X# This shell should be invoked by the xmh XmhShellCommand() action as +X# XmhShellCommand(xmhcommand y repl) +X# XmhShellCommand(xmhcommand n comp) etc. +X# If the second arg is y, then the message list will be used. +X +X# We invoke the passed MH command on the identified message +X# (we must strip the message number and folder from the pathname) +X(if [ $1 = "y" ] +Xthen +X $2 -whatnowproc xmhemacs +`dirname \`echo $3 | \ +X sed "s;\\\`mhpath +\\\`/;;"\`` `basename $3` +X +X# You can use this more readable version instead if you have ksh +X# $2 -whatnowproc xmhemacs +$(dirname $(echo $3 | \ +X# sed "s;$(mhpath +)/;;")) $(basename $3) +X +Xelse +X $2 -whatnowproc xmhemacs +Xfi)& +END_OF_FILE +if test 669 -ne `wc -c <'xmhcommand'`; then + echo shar: \"'xmhcommand'\" unpacked with wrong size! +fi +chmod +x 'xmhcommand' +# end of 'xmhcommand' +fi +if test -f 'xmhemacs' -a "${1}" != "-c" ; then + echo shar: Will not clobber existing file \"'xmhemacs'\" +else +echo shar: Extracting \"'xmhemacs'\" \(116 characters\) +sed "s/^X//" >'xmhemacs' <<'END_OF_FILE' +X#!/bin/sh +X# Invoke xemacs and load the xmh-command.el stuff. +X# xmhemacs is used by xmhcommand +Xxemacs -l xmh-command +END_OF_FILE +if test 116 -ne `wc -c <'xmhemacs'`; then + echo shar: \"'xmhemacs'\" unpacked with wrong size! +fi +chmod +x 'xmhemacs' +# end of 'xmhemacs' +fi +echo shar: End of shell archive. +exit 0 + +------------------------------ + +Subject: babyl2mh.pl +From: Vivek Khera +Date: Fri, 1 Mar 91 13:03:15 -0800 + +#!/usr/gnu/bin/perl +# incorporate an RMAIL babyl file into an MH folder +# +# usage: babyl2mh +folder babyl-file +# +# V. Khera 17-JUL-1991 + +# where to find rcvstore +$rcvstore = "/usr/local/lib/mh/rcvstore"; + +# +# pull out command line args +# +die "usage: babyl2mh +folder babyl-file\n" unless @ARGV == 2; + +$folder = shift; +# make sure folder name starts with a "+" +(substr($folder,0,1) eq "+") || (substr($folder,0,0) = "+"); +$bfname = shift; + +print "Incorporating RMAIL file $bfname into MH folder $folder\n"; + +# +# read in babyl file. +# +$/ = "\037"; # this separates the records in a babyl file +$* = 1; # records are multi-lines + +open(BABYL,$bfname) || die "Couldn't open $bfname\n"; + +$_ = ; # discard header. + +$msgnum = 0; + +while () { + chop; # get rid of delimeter + s/\f(.|\n)*\*\*\* EOOH \*\*\*\n//; # remove duplicate header information + open(RCVSTORE,"|" . $rcvstore . " $folder"); + print RCVSTORE $_; + $msgnum++; + print "Message $msgnum done.\n"; +} + +------------------------------ + +Subject: inco +From: Juergen Nickelsen +Date: Fri, 1 Mar 91 13:03:15 -0800 + +#!/bin/sh +# Usage: inco [from [folder]] +# "from" defaults to $HOME/Mail/outbound, "folder" to +inbox. + +lispfile=/tmp/inco.$$.el +input=${1-$HOME/Mail/outbound} +tmpmbox=/tmp/inc.$$.mbox +folder=${2-+inbox} + +if [ $# -ge 3 ]; then + echo Usage: `basename $0` [ from [ folder ]] + exit 2 +fi + +trap "rm -f $lispfile $tmpmbox ; exit 1" 1 2 15 + +touch $tmpmbox +chmod 600 $tmpmbox + +echo '(rmail-input "'$input'") +(rmail-last-message) +(setq last (rmail-what-message)) +(rmail-show-message 1) +(while (not (equal (rmail-what-message) last)) + (rmail-output "'$tmpmbox'") + (rmail-delete-forward nil)) +(rmail-output "'$tmpmbox'") +(kill-buffer (current-buffer)) +' > $lispfile + +emacs -batch -l $lispfile +inc -file $tmpmbox $folder + +> $input +rm -f $lispfile $tmpmbox + +------------------------------ + +Subject: srvrsmtp.c patch +From: Paul Pomes +Date: Fri, 1 Mar 91 13:03:15 -0800 + +>From the 5.67 sources: + + *** srvrsmtp.c- Mon Feb 22 12:25:54 1993 + --- srvrsmtp.c Mon Feb 22 12:29:09 1993 + *************** + *** 384,389 **** + --- 384,395 ---- + message("250", "Reset state"); + if (InChild) + finis(); + + + + /* clean up a bit if running in parent */ + + hasmail = FALSE; + + dropenvelope(CurEnv); + + CurEnv = newenvelope(CurEnv); + + CurEnv->e_flags = BlankEnvelope.e_flags; + break; + + case CMDVRFY: /* vrfy -- verify address */ + +------------------------------ + +Subject: mhn.c patch 1 +From: Casper H.S. Dik +Date: Fri, 1 Mar 91 13:03:15 -0800 + + *** mh-6.8.3/uip/mhn.c.org Wed Dec 1 05:01:36 1993 + --- mh-6.8.3/uip/mhn.c Fri Jun 3 12:38:04 1994 + *************** + *** 1014,1019 **** + --- 1014,1020 ---- + #include "../h/mhn.h" + + + + #undef si_value + struct str2init { + char *si_key; + int si_value; + +------------------------------ + +Subject: mhn.c patch 2 +From: Keith Moore +Date: Fri, 1 Mar 91 13:03:15 -0800 + + *** uip/mhn.c Tue Sep 13 23:06:18 1994 + --- uip/mhn.c.NEW Tue Sep 13 22:58:10 1994 + *************** + *** 3035,3043 **** + --- 3035,3048 ---- + if (((cp = m_find (buffer)) == NULL || *cp == 0) + && (cp = ct -> c_showproc) == NULL) { + if (!alternate) + + #ifdef UTK + + /* treat as multipart/mixed per rfc 1521 */ + + return show_multi (ct, serial, alternate); + + #else + content_error (NULLCP, ct, + "don't know how to display content"); + + + #endif + return NOTOK; + } + } + + +------------------------------ + +Subject: +IRIX config file +From: John Jack Repenning +Date: 25 Jul 1995 02:35:41 GMT + +# Irix 5.3 (based on examples/sys5r4) +bboards on +bin /usr/local/bin/mh +cc cc +ccoptions -g +chown /bin/chown +curses -lcurses +etc /usr/local/lib/mh +ldoptions -L/usr/local/lib/mh +mail /usr/mail +mailgroup: mail +manuals local +mts sendmail/smtp +pop on +popdir /usr/local/bin +ranlib off +#sharedlib sys5 +#slibdir /usr/local/lib/mh +signal void +sprintf int +options BIND +options DBMPWD +options DUMB +options FOLDPROT='"0700"' +options MHE +options MHRC +options MIME +options MORE='"/usr/bsd/more"' +options MSGPROT='"0600"' +options RENAME +options RPATHS +options SBACKUP='"\\#"' +#options SENDMTS +options SGI +#options SMTP +options SOCKETS +options SVR4 +options SYS5 +options SYS5DIR +options UNISTD +options _XOPEN_SOURCE +options VSPRINTF + +------------------------------ + +Local Variables: +mode: outline +outline-regexp: "^Subject:" +fill-prefix: " " +End: +Subject: +Removing duplicate messages (Bourne) +From: jerry@ora.com (Jerry Peek) +Date: 20 Nov 95 18:51:24 GMT + + Here's a simple-minded Bourne shell version. It uses + "scan" to get the message number and message-id of each message. If + a message has the same message-id as the previous message, the + script adds its message number to the "remove" shell variable. + + + #!/bin/sh + lastmsgid=hahahaha + remove= + scan -width 300 -format '%(msg) %{message-id}' | + while read msg msgid; do + if [ "$msgid" = "$lastmsgid" ]; then + remove="$remove $msg" + else + lastmsgid="$msgid" + fi + done + rmm $remove + + That's pretty simple-minded. For example, if the $remove variable + gets too big, your system may complain. And I'm sure there are some + more-efficient ways to find the list of duplicate message-ids. But + that's the idea. + +Subject: +Removing duplicate messages (Perl) +From: rtor@ansa.co.uk (Owen Rees) +Date: 20 Nov 1995 12:39:47 GMT + + I wrote a perl script to do this some time ago. All the usual dire + warnings about destructive technology apply - take a backup, do it on + a copy, try it on a small test case first etc. Don't use this script + unless you are prepared to accept the consequences. + +#!/usr/local/bin/perl + +$version = "rmmdup 1"; + +if (@ARGV == 0) { $folder = ""; } +elsif (@ARGV == 1) { $folder = $ARGV[0]; + unless ( $folder =~ /^\+.+$/ ) + { die "usage $0 [+folder]\n"; }; + } +else { die "usage $0 [+folder]\n"; }; + +$rmmlist = ""; + +open (scan, "scan $folder -format '%(msg) %{message-id}'|"); +while () + { if ( ($msg,$msgid) = /^(\d+) (<.*>)$/) + { if ($msgs{$msgid}) + { print "$msg duplicates $msgs{$msgid}\n"; + $rmmlist .= " $msg"; + } + else { $msgs{$msgid} = $msg; }; + }; + }; +if ( $rmmlist ) { exec "rmm $folder $rmmlist"; }; +exit; diff --git a/docs/historical/mh-6.8.5/MAKE b/docs/historical/mh-6.8.5/MAKE new file mode 100755 index 0000000..07e3a29 --- /dev/null +++ b/docs/historical/mh-6.8.5/MAKE @@ -0,0 +1,4 @@ +: run this script through /bin/sh +make distribution +(cd conf; make; mhconfig examples/nrtc-gremlin) +make diff --git a/docs/historical/mh-6.8.5/Makefile b/docs/historical/mh-6.8.5/Makefile new file mode 100644 index 0000000..302aea7 --- /dev/null +++ b/docs/historical/mh-6.8.5/Makefile @@ -0,0 +1,135 @@ +############################################################################## +# Instructions to Make, for compilation of MH modules +# +# This file is automatically generated. Do not edit! +# @(#)$Id: MH-Makefile,v 2.16 1993/08/27 22:15:49 jromine Exp $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +SHELL = /bin/sh + +# Targets to Make: +# +# all: generate MH system, assumes configuration previously done +# +# depend: generate dependencies, for MH master maintainers only! +# +# lint: verify code, for MH master maintainers only! +# +# compat-v7: verify V7 restrictions, for MH master maintainers only! +# +# install: install system +# +# inst-all: install system +# +# inst-lib: install shared libraries +# +# mkdirs: make MH target directories +# +# tar: generate tar commands to move targets to other systems +# e.g., make TFLAGS="cf mh.tar" tar +# +# uninstall: undo installation +# +# distribution: +# revert source tree to MH distribution +# unconfig: +# removes configured files - for MH master maintainers only! +# +# checkout: MH maintainers only! +# +# clean: remove all objects and targets plus clean up +# +# unclean: remove scratch files and backups + + +############################################################################## +# Generate MH system +############################################################################## + +ALL = config sbr mts zotnet uip support doc + +all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(ALL); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(ALL); do (cd $$d; $(MAKE) lint); done + +compat-v7: all + miscellany/tools/7limit */x* */*/x* + miscellany/tools/8limit */*.o */*/*.o + + +INSTALL = zotnet support uip doc +BINDIR = $(DESTDIR)/opt/mh-6.8.5/bin +ETCDIR = $(DESTDIR)/opt/mh-6.8.5/lib +MANDIR = $(DESTDIR)/opt/mh-6.8.5/man +SLIB = sbr + +install: inst-all + +inst-all: mkdirs inst-lib + for d in $(INSTALL); do (cd $$d; $(MAKE) inst-all); done + +inst-lib:; for d in $(SLIB); do (cd $$d; $(MAKE) inst-lib); done + +mkdirs: $(BINDIR) $(ETCDIR) $(MANDIR) + +$(BINDIR) $(ETCDIR) $(MANDIR): + mkdir $@ && chmod 0755 $@ + +tar:; @for d in $(INSTALL); \ + do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done + +uninstall:; for d in $(INSTALL); do (cd $$d; $(MAKE) uninstall); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +DISTRIBUTION= dist conf config sbr mts zotnet support uip doc papers + +distribution: READ-ME CHANGES + rm -f _* :* + @if test -f tma/mh/files; \ + then \ + echo rm -f `cat tma/mh/files`; rm -f `cat tma/mh/files`; \ + echo rm -rf tma; rm -rf tma; \ + fi + -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + cd support/pop/mmdfII/pop ; ln ../../../../zotnet/mts/lock.c . + cd support/bboards/mmdfII/bboards ; ln ../../../../zotnet/mts/lock.c . + cd zotnet/tws ; ln ../tws.h . + cd uip ; ln popsbr.c pshsbr.c + for d in $(DISTRIBUTION); \ + do (cd $$d; $(MAKE) distribution); done + +READ-ME: conf/mh-gen.8 + nroff -man conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@ + +CHANGES: papers/changes/mh-changes.ms + nroff -ms papers/changes/mh-changes.ms > changes.tmp + mv changes.tmp $@ + +unconfig:; rm -f _* :* core READ-ME + -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unconfig); done + cp conf/makefiles/MH-Unconfig tmp + mv tmp Makefile + +checkout: unclean lint compat-v7 + find . \( -name ":*" -o -name "_*" -o -name "#*" \) -a -print + +clean:; rm -f _* :* core + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) clean); done + +unclean:; rm -f _* :* core + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unclean); done diff --git a/docs/historical/mh-6.8.5/Patchlevel b/docs/historical/mh-6.8.5/Patchlevel new file mode 100644 index 0000000..e6be14a --- /dev/null +++ b/docs/historical/mh-6.8.5/Patchlevel @@ -0,0 +1 @@ +MH.6.8 patch.4 diff --git a/docs/historical/mh-6.8.5/RCS/COVER-LETTER,v b/docs/historical/mh-6.8.5/RCS/COVER-LETTER,v new file mode 100644 index 0000000..7cd669d --- /dev/null +++ b/docs/historical/mh-6.8.5/RCS/COVER-LETTER,v @@ -0,0 +1,164 @@ +head 1.4; +branch ; +access ; +symbols ; +locks ; strict; +comment @# @; + + +1.4 +date 90.04.05.16.01.10; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.04.05.16.00.29; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.15.15.26.06; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.15.15.17.58; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.4 +log +@Id +@ +text +@ A new release of the UCI version of the Rand Message Handling (MH) + system is available for distribution. This release of MH is called + + MH 6.6 + + There are a lot of changes between MH.6 and MH 6.6; a lot of + performance enhancements were made, there's also a lot of support + for distributed mail (personal mail and bulletin bboards). + + Here are the details: + + - MH is in the public-domain + - MH runs on a number of versions of UNIX (4.[123]BSD, V7, SYS5, and + related variants, e.g., HPUX) [sorry, no support for SYS3.] + - MH runs on top of a number of mail transport systems + (MMDF-{I,II}, SendMail, stand-alone (with UUCP support)) + + Although MH is not "supported" per se, it does have a bug-reporting + address, Bug-MH@@ICS.UCI.EDU (ucbvax!ucivax!bug-mh). Bug reports + (and fixes) are welcome, by the way. There are also two Internet + discussion groups: MH-Users@@ICS.UCI.EDU and MH-Workers@@ICS.UCI.EDU. + MH-Users is bi-directionally gatewayed to USENET as comp.mail.mh. + + There are two ways to get a distribution: + + 1. If you can FTP to the ARPA Internet, use anonymous FTP to + ics.uci.edu [128.195.1.1] and retrieve the file pub/mh-6.6.tar.Z. + This is a tar image after being run through the compress program + (approx 1.5MB). This file is also available on louie.udel.edu + [128.175.1.3] in portal/mh-6.tar.Z. You may also find MH.6.6 on + various other hosts; to make sure you get the latest version and + don't waste your time re-fixing bugs, it's best to get it from + either ics.uci.edu or louie.udel.edu. + + 2. You can send $75 US to the address below. This covers the cost + of a magtape, handling, and shipping. In addition, you'll get a + laser-printed hard-copy of the entire MH documentation set. Be + sure to include your USPS address with your check. Checks should + be made payable to + + Regents of the University of California + + and must be drawn on U.S. funds. The distribution address is: + + Computing Support Group + Attn: MH distribution + Department of Information and Computer Science + University of California, Irvine + Irvine, CA 92717 + + 714/856-7554 + + Sadly, if you just want the hard-copies of the documentation, you + still have to pay the $75.00. The tar image has the documentation + source (the manual is in roff format, but the rest are in TeX + format). I'm working on getting Postscript versions of the documents. + +/JLR ($Id:$) +@ + + +1.3 +log +@Id +@ +text +@d58 1 +a58 1 +/JLR ($Revision:$) +@ + + +1.2 +log +@*** empty log message *** +@ +text +@d58 1 +a58 1 +/mtr +@ + + +1.1 +log +@Initial revision +@ +text +@a5 1 + (This is a maintenance release of MH 6.5.) +d19 4 +a22 4 + address, Bug-MH@@ICS.UCI.EDU. Bug reports (and fixes) are welcome, by + the way. There are also two ARPA Internet discussion groups: + MH-Users@@ICS.UCI.EDU and MH-Workers@@ICS.UCI.EDU (somewhat analogous in + charter to Info-UNIX and UNIX-Wizards). +d27 7 +a33 5 + louie.udel.edu [10.0.0.96] and retrieve the file portal/mh-6.tar. + This is a tar image (approx 4MB). The file portal/mh-6.tar.C is + the tar image after being run through the compact program (approx + 2.3MB). The file portal/mh-6.tar.Z is the tar image after being run + through the compress program (approx 1.5MB). +d35 5 +a39 5 + 2. You can send $75 to the address below. This covers the cost of + a magtape, handling, and shipping. In addition, you'll get a + laser-printed hard-copy of the entire MH documentation set. Be sure + to include your USPS address with your check. Checks should be made + payable to +d43 1 +a43 4 + and must be drawn on U.S. funds. It's also a good idea (though not + mandatory) to send a computer mail message to "Bug-MH@@ICS.UCI.EDU" when + you send your check via USPS to ensure minimal turn-around time. + The distribution address is: +d45 1 +a45 1 + Support Group +d51 1 +a51 1 + 714/856-7553 +d56 1 +a56 1 + format). +@ diff --git a/docs/historical/mh-6.8.5/READ-ME b/docs/historical/mh-6.8.5/READ-ME new file mode 100644 index 0000000..0d8d1fd --- /dev/null +++ b/docs/historical/mh-6.8.5/READ-ME @@ -0,0 +1,1452 @@ + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + +NAME + mh-gen - generating the MH system + +READ THIS + This documentation describes how to configure, generate, and + install the UCI version of the RAND _M_H system. Be certain + to read this document completely before you begin. You + probably will also want to familiarize yourself with the _M_H + Administrator's Guide before you install _M_H. A copy can be + found in the file doc/ADMIN.doc is the _M_H sources. + +DISCLAIMER + Although the _M_H system was originally developed by the RAND + Corporation, and is now in the public domain, the RAND Cor- + poration assumes no responsibility for _M_H or this particular + modification of _M_H. + + In addition, the Regents of the University of California + issue the following disclaimer in regard to the UCI version + of _M_H: + "Although each program has been tested by its contribu- + tor, no warranty, express or implied, is made by the + contributor or the University of California, as to the + accuracy and functioning of the program and related + program material, nor shall the fact of distribution + constitute any such warranty, and no responsibility is + assumed by the contributor or the University of Cali- + fornia in connection herewith." + + This version of _M_H is in the public domain, and as such, + there are no real restrictions on its use. The _M_H source + code and documentation have no licensing restrictions what- + soever. As a courtesy, the authors ask only that you pro- + vide appropriate credit to the RAND Corporation and the + University of California for having developed the software. + +GETTING HELP + _M_H is a software package that is neither supported by the + RAND Corporation nor the University of California. However, + since we do use the software ourselves and plan to continue + using (and improving) _M_H, bug reports and their associated + fixes should be reported back to us so that we may include + them in future releases. The current computer mailbox for + _M_H is Bug-MH@ICS.UCI.EDU. Current information about MH can + be obtained from the MH Home Page on the World Wide Web at + http://www.ics.uci.edu/~mh. + + Presently, there are two Internet discussion groups, + MH-Users@ICS.UCI.EDU and MH-Workers@ICS.UCI.EDU. MH-Workers + is for people discussing code changes to _M_H. MH-Users is + for general discussion about how to use _M_H. MH-Users is + bi-directionally gatewayed into USENET as comp.mail.mh. + + + +[mh.6] Last change: MH.6.8.4 1 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + +HOW TO GET MH + Since you probably already have _M_H, you may not need to read + this unless you suspect you have an old version. There are + two ways to get the latest release: + + 1. If you can FTP to the ARPA Internet, use anonymous FTP + to ftp.ics.uci.edu and retrieve the file pub/mh/mh- + 6.8.tar.Z. This is a tar image after being run through the + compress program (approximately 1.8MB). There should also + be a README file in that directory which tells what the + current release of _M_H is, and how to get updates. + + You may also find MH on various other hosts; to make sure + you get the latest version and don't waste your time re- + fixing bugs, it's best to get it from either ftp.ics.uci.edu + or a site that mirrors ftp.ics.uci.edu. + + 2. You can send $75 US to the address below. This covers + the cost of a 6250 BPI 9-track magtape, handling, and ship- + ping. In addition, you'll get a laser-printed hard-copy of + the entire MH documentation set. Be sure to include your + USPS address with your check. Checks must be drawn on U.S. + funds and should be made payable to: + + Regents of the University of California + + The distribution address is: + + Attn: MH distribution + Office of Academic Computing + Univeristy of California at Irvine + Irvine, CA 92717-2225 USA + + +1 714 824 5153 + + Sadly, if you just want the hard-copies of the documenta- + tion, you still have to pay the $75. The tar image has the + documentation source (the manual is in roff format, but the + rest are in TeX format). Postscript formatted versions of + the TeX papers are available, as are crude tty-conversions + of those papers. + +SYNOPSIS + MAKE + +DESCRIPTION + This is a description of how one can bring up an _M_H system. + It is assumed that you have super-user privileges in order + to (re-)install _M_H. Super-user privileges are not required + to configure or generate _M_H. + + + + + +[mh.6] Last change: MH.6.8.4 2 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + Become the super-user and cd to /usr/src/local/ (or whatever + you keep your local sources). The distribution tape con- + tains the hierarchy for the mh.6-8/ directory. Bring the + sources on-line: + + # cd /usr/src/local + % tar xv + % cd mh-6.8 + +CONFIGURATION + First, go to the conf/ directory. + + % cd conf/ + + This directory contains files that will produce source files + tailored for your choice of _M_H configuration. You should + edit only the file MH. This file contains configuration + directives. These configuration directives are read by the + _m_h_c_o_n_f_i_g program to produce customized files. + + For examples of various configurations, look in the direc- + tory conf/examples/. The file MH provided in conf/ is a + reasonable default. Lines beginning with `#' are comments, + and are not otherwise interpreted. + + Here are the _M_H configuration directives available. Be sure + to read through this list completely before attempting to + decide what directives are appropriate for your system. + + More information on some of these options is available in + the the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e. If you do not have a printed + copy, you should configure your system with the default con- + figuration file, MH, then generate and print a copy of the + guide (as described below). + + Installation paths + bin: /usr/local + The directory where user-invoked programs go (see + manual section 1). + + etc: /usr/local/lib/mh + The directory where pgm-invoked programs go (see manual + section 8). + + mail: /usr/spool/mail + The directory where the maildrops are stored. If this + pathname is absolute (i.e., begins with a / ), then the + user's maildrop is a file called $USER in this direc- + tory. If the pathname is not absolute, then the user's + maildrop is in the user's home directory under the + given name. + + + + +[mh.6] Last change: MH.6.8.4 3 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + mandir: /usr/man + The parent directory of the manual entries. + + manuals: standard + Where manual entries should be installed, relative to + the directory given with "mandir". Either "local" to + install manual entries under manl/, or "new" to install + manual entries under mann/, or "old" to install manual + entries under mano/, or "standard" to install manual + entries under man?/, or "bsd44" to install manual + entries as man?/_p_a_g_e.0, or "gen" to generate but not + install them, or "none" to neither generate nor install + them. + + Any of these values may have the suffix "/cat" appended + to it. In that case, the manual entries will be for- + matted with "nroff -man" and they will be installed in + the corresponding "cat?" directories. + + For example, to install manual entries under + /usr/man/u_man/man?, use "standard" and /usr/man/u_man + for "mandir". To install formatted manual entires + under /usr/contrib/man/cat?, use "standard/cat" and + /usr/contrib/man for "mandir". To install formatted + manual entries using the BSD44 convention, use + "bsd44/cat". + + chown: /etc/chown + The location of the _c_h_o_w_n(8) on your system. If _c_h_o_w_n + is in your search path, just use the value of "chown". + On SYS5 systems, this should probably be "/bin/chown". + + cp: cp + The command to copy files when installing, if not "cp". + (Some sites use "cp -p".) + + ln: ln + The command to link files together in the source tree, + if not "ln". If you're using something like lndir to + keep your compile tree separate from your source tree, + set this to "ln -s" or "cp". + + remove: mv -f + How _M_H should make backup copies of existing files when + installing new files. To simply remove the old files, + use "rm -f". + + Compiler/loader + cc: cc + The name of your C compiler, if not "cc". + + ccoptions: -O + + + +[mh.6] Last change: MH.6.8.4 4 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + Options given directly to _c_c(1). The most common is + "-M" if you're running _M_H on an ALTOS. This defaults + to "-O". If you define this and want to keep "-O", be + sure to include it explicitly. If you're using the _G_N_U + C compiler, it should include `-traditional'. See + "options:" for `-D' options. + + curses: -lcurses -ltermlib + This should be the loader option required to load the + _t_e_r_m_c_a_p(3) and _c_u_r_s_e_s(3) libraries on your system. On + SYS5 systems, it probably should be just "-lcurses". + Some sites have reported that both "-lcurses" and + "-ltermlib" are necessary. + + ldoptions: -s + Options given directly to _l_d(1) (via _c_c) at the begin- + ning of the command line. Useful for machines which + require arguments to tell _l_d to increase the stack + space (e.g. the Gould, which uses "-m 8"). Usually, + "-s" is a good choice in any event. + + ldoptlibs: + Options given directly to _l_d(1) (via _c_c) at the end of + the command line. The two most common are: "-ldbm" if + you're running MMDF with the _d_b_m package; and, "-lndir" + if you are generating _M_H on a system which does not + load the new directory access mechanism by default + (e.g., 4.1BSD, SYS5). If you don't have _l_i_b_n_d_i_r on + your system, the sources are in miscellany/libndir/. + + lex: lex -nt + Alternative version of _l_e_x. Used in zotnet/tws/. + + oldload: off + This controls how _M_H will try to process library object + files to eliminate local symbols. Support for the + ALTOS loader if "on". Support for loaders not handling + `-x -r' correctly if "none". + + ranlib: on + Support for systems with _r_a_n_l_i_b(1). For SYSTEM 5 sys- + tems, this should be "off" which tells _M_H to use _l_o_r_d_e_r + and _t_s_o_r_t instead. Some SYSTEM 5 sites reported that + running this isn't always sufficient. If this is the + case, then you should edit conf/makefiles/uip to + include ../sbr/libmh.a and ../zotnet/libzot.a twice in + the LIBES variable. + + Message Transport System + mts: sendmail + Which message transport system to use. Either "mmdf" + to use _M_M_D_F as the transport system, "mmdf2" to use + + + +[mh.6] Last change: MH.6.8.4 5 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + _M_M_D_F-_I_I as the transport system, "sendmail" to have + _S_e_n_d_M_a_i_l as the transport system, "zmailer" to have + _Z_M_A_I_L_E_R as the transport system, or, "mh" to have _M_H as + the transport system. + + On UNIX systems supporting TCP/IP networking via sock- + ets you can add the suffix "/smtp" to the mts setting. + This often yields a superior interface as _M_H will post + mail with the local _S_M_T_P server instead of interacting + directly with _M_M_D_F or _S_e_n_d_M_a_i_l. Hence, for TCP/IP UNIX + systems, the "/smtp" suffix to either "sendmail" or + "mmdf2" is the preferred MTS configuration. The + "/smtp" suffix is described in detail in the + _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e; be sure to set "servers:" as + described in _m_h-_t_a_i_l_o_r(8) if you use this option. + + mf: off + Support for mail filtering on those systems in which + the message transport system isn't integrated with _U_U_C_P + This option is strictly for an _M_H system using either + _M_M_D_F-_I as its transport system or one using + "stand-alone delivery". + + UCI BBoards Facility + bboards: off + If "on", include support for the UCI BBoards facility. + BBoards may be enabled with any mts setting. If "off", + the BBoard reading program _b_b_c will not be installed. + If "nntp", include support for the UCI BBoards facility + to read the Network News via the NNTP. If "pop" (form- + erly "popbboards: on"), include support for the UCI + BBoards facility via the POP3 service; this setting + requires "pop: on". + + bbdelivery: off + If "off", the BBoards delivery agent and library files + will not be installed. If "on", and you set "bboards:" + to something besides "off", then the BBoards delivery + agent and library files will be installed in the _b_b_h_o_m_e + directory (see below). To read remote BBoards, the + usual configuration would have _b_b_c talk to a _P_O_P_3 or + _N_N_T_P server. However, it may be useful to set this to + "off" if you NFS mount the _b_b_h_o_m_e directory from + another host and want to use _b_b_c to read those files + directly. + + bbhome: /usr/spool/bboards + The home directory for the BBoards user. + + + + + + + +[mh.6] Last change: MH.6.8.4 6 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + Post Office Protocol + pop: off + Support for POP service. This allows local delivery + for non-local users (a major win). See + support/pop/pop.rfc for more information on the POP. + This option currently works only on UNIX systems with + TCP/IP sockets. (It doesn't hurt to enable this option + regardless of whether or not you intend to use POP.) + See also "bboards: pop" to enable reading bboards with + the POP. + + popdir: /usr/etc + The directory where the POP daemon (popd) will be + installed. + + options: + `-D' options to _c_c(1). + + APOP='"/etc/pop.auth"' + This option indicates that the POP daemon will sup- + port the non-standard APOP command, and specifies the + name of APOP authorization database. The APOP com- + mand provides a challenge-based authentication system + using the MD5 message digest algorithm. This facil- + ity is documented in _T_h_e _I_n_t_e_r_n_e_t _M_e_s_s_a_g_e (ISBN + 0-13-092941-7), a book by Marshall T. Rose. + + This option also causes the popauth program to be + installed, which allows the administrator to manipu- + late the APOP authorization database. For more + details, see support/pop/pop-more.txt and the + _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e. + + DPOP + This option indicates that POP subscribers do not + have entries in the _p_a_s_s_w_d(5) file, and instead have + their own separate database (a win). + + KPOP + Support for KERBEROS with POP. This code builds + _p_o_p_d, _i_n_c and _m_s_g_c_h_k to support only the "kpop" pro- + tocol. This code is still experimental, but is + available for those sites wishing to test it. + + MPOP + This option indicates that the POP daemon will sup- + port the non-standard XTND SCAN command which pro- + vides performance enhancements when using the POP + over low-speed connections. This option also causes + an interactive POP client program, popi, to be com- + piled and installed. A man page for the popi program + is also provided. + + + +[mh.6] Last change: MH.6.8.4 7 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + These extensions are described in _T_h_e _I_n_t_e_r_n_e_t _M_e_s_- + _s_a_g_e, a book by Marshall T. Rose. For more details, + see support/pop/pop-more.txt. Note: this option + requires "bboards: pop". + + POP2 + Have the POP daemon understand the older POP2 proto- + col as well as the _M_H POP3 protocol - a major win. + The POP daemon auto-magically determines which POP + protocol your client is using. If you're enabling + POP service, there's no reason not to enable this + option as well. See also _P_O_P_S_E_R_V_I_C_E. + + POPSERVICE + The port name the _M_H POP will use. For historical + reasons, this defaults to "pop". + + In 1987, the _M_H POP protocol (POP version 3) was pub- + lished as RFC1081 and was assigned its own port + number (110), which differs from the original POP + (version 1 and 2) port number (109). + + To have _M_H POP use the new assigned port number, set + POPSERVICE='"pop3"', and be sure that this service + name is listed in your /etc/services file on both POP + client and server hosts as "110/tcp". If you enable + _P_O_P_2, you can safely leave _P_O_P_S_E_R_V_I_C_E undefined + unless you are using POP3 clients besides _M_H. + + RPOP + This option indicates that support for the UNIX vari- + ant of POP, RPOP, which uses privileged sockets for + authentication be enabled. This peacefully co-exists + with the standard POP. + + SHADOW + Indicates that the popd POP server can find encrypted + passwords in the /etc/shadow file (and not in the + /etc/passwd file). It should be used only for some + (newer) SYSTEM 5 systems. + + The "APOP" and "MPOP" non-standard POP facilities are + documented in _T_h_e _I_n_t_e_r_n_e_t _M_e_s_s_a_g_e (ISBN 0-13-092941-7), + a book by Marshall T. Rose. For more details, see + support/pop/pop-more.txt. The "APOP" option peacefully + co-exists with the standard POP. The "MPOP" option + requires "bboards: pop". + + Shared libraries + sharedlib: off + If "sun4", makes libmh.a into a SunOS 4.0 (and later) + shared library. If you enable this, be sure to also use + + + +[mh.6] Last change: MH.6.8.4 8 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + "options SUN40". If "sys5", makes libmh.a into a SYS5 + R4 (and later) shared library. If you enable this, be + sure to also use "options SVR4". + + slflags: -pic + The compiler flags to produce position independent code. + + slibdir: /usr/local/lib + The directory where the _M_H shared library should go. + + Under SunOS (sun4) + Since some _M_H programs are setuid, they'll only look for + the library in "trusted" locations. Putting the library + somewhere besides /usr/lib or /usr/local/lib is not + advisable. + + If you must do this, be sure that you add the path given + by slibdir to the compiler's library search list (e.g., + "ldoptions: -L/usr/mh/lib") and make sure the path + starts with a leading `/'. + + You may need to run _l_d_c_o_n_f_i_g(8) manually whenever a new + shared object is installed on the system. See _l_d(1) for + more information about using shared libraries. + + Under Solaris 2.0 (and newer) + The above instructions for SunOS apply, except you + should set the run-time library search path using `-R' + instead of `-L' (e.g., "ldoptions: -R/usr/mh/lib"). + + General System Dependencies + You should include the following directives which are + appropriate for your version of UNIX. If you don't know what + an option does, it probably doesn't apply to you. + + mailgroup: off + If set, _i_n_c is made set-group-id to this group name. + Some SYS5 systems want this to be set to "mail". Set + this if your /usr/spool/mail is not world-writeable. + + Note that slocal doesn't know how to deal with this, and + will not work under these systems; just making it set- + group-id will open a security hole. If you're using + "mailgroup", you should remove slocal (and its man page) + from your system. + + signal: int + The base type (int or void) of the function + parameter/return value of _s_i_g_n_a_l(2). The default is + int. Set "signal void" on systems which use this type + (e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later). + + + + +[mh.6] Last change: MH.6.8.4 9 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + sprintf: char * + The return value of the _s_p_r_i_n_t_f library routine. This + defaults to "char *". Set this to "int" if you have an + older version of SYSTEM 5 which has this routine return + an "int" type. + + options: + `-D' options to _c_c(1). + + ALTOS + Use on XENIX/v7 systems. Also, be sure to use + "options V7". + + ATTVIBUG + This option causes _M_H to return to the "What now?" + prompt if your initial editor is vi and it exits with + non-zero status. Use on Sun OS 4.1 and other systems + where the /usr/ucb/vi editor was changed to exit with + its status equal to the number of pseudo-"errors" + encountered during the edit. This causes a problem + for programs that test the exit status of their editor + and abort if the status is non-zero. (This includes + _M_H and programs like /usr/etc/vipw). + + AUX + Use with AUX systems. + + BIND + If you are running with the BIND code on UNIX systems + with TCP/IP sockets (e.g. 4.{2,3}BSD), be sure to + define this. + + BSD41A + Use on 4.1a Berkeley UNIX systems. + + BSD42 + Use on Berkeley UNIX systems on or after 4.2BSD. + + BSD43 + Use on 4.3 Berkeley UNIX systems. Also, be sure to + use "options BSD42". If _o_p_e_n_l_o_g(3) (see "man 3 sys- + log") takes three arguments instead of two, and your + _w_r_i_t_e(1) command is set-group-id to group "tty", use + this option. If only one of these conditions is true, + you lose. + + BSD44 + Use on Berkeley UNIX systems on or after 4.4BSD. + Also, be sure to use "options BSD43" and "options + BSD42". + + DBMPWD + + + +[mh.6] Last change: MH.6.8.4 10 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + Use this option if your _g_e_t_p_w_e_n_t(3) routines read a + dbm database (such as with Yellow Pages) instead of + doing a sequential read of /etc/passwd. Without + DBMPWD the entire passwd file is read into memory one + entry at a time for alias expansion. This is a per- + formance improvement when reading a standard + /etc/passwd file, but is _v_e_r_y slow on systems with a + dbm database. At one site that runs YP on a large + passwd file, it showed a 6:1 performance improvement. + + GCOS_HACK + The so-called "gcos" field of the password file is + used as a last resort to find the user's full name + (see _m_h-_p_r_o_f_i_l_e(5) for details). Enable this option + if your _p_a_s_s_w_d(5) man page notes that the `&' charac- + ter in the "gcos" field stands for the login name. + + FCNTL + Directs _M_H to use the fcntl() system call for kernel- + level locking. If you're using a SYS5 system, you may + want this option. (See also `FLOCK' and `LOCKF'). + + FLOCK + Directs _M_H to use the flock() system call for kernel- + level locking. If you're on a BSD42 system, and + you're not using NFS to read or write maildrops, you + should enable this option. (See also `FCNTL' and + `LOCKF'). + + HESIOD + Support for HESIOD. This code was contributed, and + included no documentation. + + LOCKF + Directs _M_H to use the lockf() system call for kernel- + level locking. If you're using NFS to read or write + maildrops, you should enable this option. (See also + `FLOCK' and `FCNTL'). + + locname + Hard-wires the local name for the host _M_H is running + on. For example, locname='"PICKLE"'. It's probably + better to either let UNIX tell _M_H this information, or + to put the information in the host specific mtstailor + file. + + MORE + Defines the location of the _m_o_r_e(1) program. On + ALTOS and DUAL systems, set MORE='"/usr/bin/more"'. + The default is "/usr/ucb/more". + + NDIR + + + +[mh.6] Last change: MH.6.8.4 11 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + For non-Berkeley UNIX systems, this _M_H will try to + find the new directory access mechanism by looking in + if this option is given. Otherwise, _M_H will + try . If you still can't get this to work on + your system, edit h/local.h as appropriate. (See also + `SYS5DIR'.) + + NFS + Tells _M_H to hack around a problem in the NFS C + library. If you get an undefined symbol "ruserpass" + when compiling _M_H, you probably need this option. If, + however, you include this option and get an undefined + symbol "__ruserpass" when compiling, then you should + omit this option. (See also `NORUSERPASS'.) + + NOIOCTLH + Tells _M_H not to include the file . To be + used on systems where this file is not present. + + NORUSERPASS + Tells _M_H that your system doesn't have the _r_u_s_e_r_- + _p_a_s_s(3) routine; _M_H will include its own copy of this + routine in its library. (See also `NFS'.) + + NTOHLSWAP + Tells _M_H to use the ntohl() macro when processing _m_s_h + binary map files. _M_H can use this macro on systems + with the include file netinet/in.h, to byte-swap the + binary information in these map files. If you're + using the same map files on machines of different + architectures, enable this option. + + RENAME + Include this option if your system has a rename() + library call. This is true on BSD42 and newer and + some SYS5 systems. + + SENDMAILBUG + Causes SMTP reply code 451 (failure) to be considered + the same as code 250 (OK). Since this might cause + problems, only enable this if you are certain that + your SendMail will return this code even when it + doesn't mean to indicate a failure. + + SOCKETS + Indicates the availability of a socket interface for + TCP/IP networking that is compatible with 4.{2,3}BSD + UNIX. It is not necessary to define this when BSD42 + is already defined, but it might be useful for SYSTEM + 5 or HPUX systems with TCP/IP sockets. + + SUN40 + + + +[mh.6] Last change: MH.6.8.4 12 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + Use on Sun OS 4.0 (and later?) systems. You also will + need "options BSD42", "options BSD43", and "signal + void". + + If you're using Sun's brain-damaged approach to offer- + ing Domain Name Service through NIS, be sure to + include "options BIND" and "ldoptions -lresolv" to + work around some NIS/DNS bugs. + + SYS5 + Use on AT&T SYSTEM 5 R3 (and newer?) UNIX systems. + See also _m_a_i_l_g_r_o_u_p. + + SYS5DIR + Define this if your system uses "struct dirent" + instead of "struct direct". This is true of System V + Release 3.0 and later. Uses include file + and the routines _m_k_d_i_r, _r_m_d_i_r and _g_e_t_c_w_d. + + SVR4 + Use on AT&T SYSTEM 5 R4 (and newer?) UNIX systems. You + should also include "options SYS5" and "options + SYS5DIR". See also _m_a_i_l_g_r_o_u_p. You will also need to + include "oldload none" if your ld doesn't handle + `-x -r' correctly. + + TERMINFO + Define TERMINFO if you have it. You get it automati- + cally if you're running SYS5, and you don't get it if + you're not. (If you're not SYS5, you probably have + termcap.) + + TZNAME + Use time zone names from the _t_z_n_a_m_e variable, set via + _t_z_s_e_t. Only applicable on SYSTEM 5 systems and only + effective when you have asked for alpha-timezones (see + the ATZ option). See also ZONEINFO. + + UNISTD + Include this option if your system has the file + . If not specified, the LOCKF option will + include . + + V7 + Use on V7 UNIX systems. Also, be sure to use "options + void=int". + + VSPRINTF + Include this option if your system has the _v_s_p_r_i_n_t_f(3) + library routine; otherwise, __d_o_p_r_n_t(3) will be used. + + WAITINT + + + +[mh.6] Last change: MH.6.8.4 13 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + BSD42 based systems call the _w_a_i_t(2) system routine + with a pointer to type _u_n_i_o_n _w_a_i_t. Include this + option if you included "options BSD42", but your sys- + tem calls the _w_a_i_t(2) system routine with a pointer to + type _i_n_t (the non-BSD42 default). + + ZONEINFO + Specify this if you have a BSD43 based system that + keeps time zone information /etc/zoneinfo or + /usr/lib/zoneinfo (SunOS), and where the _s_t_r_u_c_t _t_m + returned by _l_o_c_a_l_t_i_m_e(3) contains a _t_m__g_m_t_o_f_f element + (see /usr/include/time.h). With this fix the GMT + offset specified in outgoing mail will be corrected + when the TZ enviornment variable is set to a different + time zone. See also TZNAME. + +Site Preferences + These options change the default behavior of _M_H or enable + optional features. Add the options which are appropriate for + your configuration or your site preferences. + + editor: prompter + The default editor for _M_H. + + options: + `-D' options to _c_c(1). + + ATZ + Directs _M_H to use alpha-timezones whenever possible. + You should not use this option if you are on the Inter- + net, since it will make your host non-compliant with + RFC-1123 (Requirements for Internet Hosts). + + ATHENA + Makes _r_e_p_l `-nocc all' the default instead of + `-cc all'. You may want to enable this if you're using + _x_m_h. + + BANG + Directs _M_H to favor `!' over `@' in addressing. + + BERK + Optional for for 4.{2,3}BSD sites running SendMail. + Disables nearly all of the RFC822 address and header- + parsing routines in favor of recognizing such formats + as ASCnet, and so on. If you don't need to disable the + parser for this reason, you probably want to use + "options DUMB" instead. + + COMPAT + If you previously ran a version of _M_H earlier than mh.4 + use this option. After a short grace period, remove it + + + +[mh.6] Last change: MH.6.8.4 14 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + and re-{configure,generate,install} everything. + + DUMB + Directs _M_H not to try and rewrite addresses to their + "official" form. + + FOLDPROT + Defines the octal value for default folder-protection. + For example, FOLDPROT='"0700"'. The default is "0711". + + ISI + When using "repl -ccme", only "cc:" the first address + found which belongs to the user; any other _A_l_t_e_r_n_a_t_e- + _M_a_i_l_b_o_x_e_s do not receive "cc:"s. + + LINK + Defines the filename for alternate file name for _d_i_s_t + and _r_e_p_l. For example, LINK='"\\043"' to use the + pound-sign character. The default is "@". + + MHE + Enables crude support for Brien Reid's MHE interface. + Recommended for use with the GNU Emacs mh-e package. + + MHRC + Enables _M_H to recognize the _C_S_h_e_l_l's `~'-construct. + This is useful for sites that run with a ~/.mhrc for + their users. + + MIME + Enables support for multi-media messages, as specified + in RFC 1341 -- a major win. This allows you to include + things like audio, graphics, and the like, in your mail + messages. Several _M_H commands are extended to support + these multi-media messages, and the _m_h_n command is pro- + vided to encode and decode MIME messages. For more + details, see miscellany/multi-media/READ-ME and _m_h_n(1). + + MSGID + Enables slocal to detect and surpress duplicate mes- + sages received. This code uses the library, + and requires "options BSD42" since it uses the _f_l_o_c_k(2) + system call for locking. (Note that this means its + database locking does not work over NFS.) It has only + been tested under SUN40. + + MSGPROT + Defines the octal value for default folder-protection. + For example, MSGPROT='"0600"'. The default is "0644". + + NOMHSEQ + Directs _M_H to make private sequences the default. + + + +[mh.6] Last change: MH.6.8.4 15 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + OVERHEAD + Enable _M_H commands to read profile/context from open + fd:s without doing an open(); see _m_h-_p_r_o_f_i_l_e(5) for the + details. + + RPATHS + Directs _i_n_c to note UNIX "From " lines as Return-Path: + info. + + SBACKUP + Defines the prefix string for backup file names. For + example, SBACKUP='"\\043"'. The default is ",". + + TMA + Support for the TTI _t_r_u_s_t_e_d _m_a_i_l _a_g_e_n_t (TMA). Although + the TTI TMA is not in the public domain, the _M_H support + for the TTI TMA is in the public domain. You should + enable this option only if you are licensed to run the + TMA software (otherwise, you don't have the software in + your _M_H source tree). + + TTYD + Support for TTYD. This is no longer in wide use, and + is not recommended. + + UCI + First, "_" and "#" are recognized as the prefixes for + scratch files. Second, support for the UCI + group-leadership mechanism is enabled in _c_o_n_f_l_i_c_t. + Third, the first line of the file file $HOME/.signature + is used as the _F_u_l_l _N_a_m_e part of your "From:" header. + This may conflict with the interpretation of this file + by _N_e_w_s. If you're not at UCI, you probably don't want + this option. + + UK + Directs the _s_c_a_n program to generate UK-style dates by + default. + + WHATNOW + Enable certain _M_H commands to act differently when + $mhdraft set. + + YEARMOD + This option makes the _m_h-_f_o_r_m_a_t %(year) function always + return a value less than 100. Enable this option if + you have local _m_h-_f_o_r_m_a_t(5) files which cannot handle + 4-digit years. You should convert these files to use a + 4-character field width, or use the %(modulo 100) func- + tion to obtain a 2-digit year value. After a short + grace period, remove `YEARMOD' and re- + {configure,generate,install} everything. + + + +[mh.6] Last change: MH.6.8.4 16 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + +Testing/debugging + debug: off + Support for debug mode of _M_H. Don't use this unless you + know what you're doing, which isn't likely if you're read- + ing this document! + + regtest: off + Set this to "on" if you are doing regression testing among + different compilations of _M_H, and you do not want the + hostname and compile date included in _M_H binaries. + + + + Now edit conf/config/mtstailor, depending on your choice of + the setting for mts in the _M_H configuration file. for an + mts setting of "mh", look at the file conf/tailor/mhmts; for + an mts setting of "sendmail", "sendmail/smtp", "mmdf/smtp", + or "mmdf2/smtp", look at the file conf/tailor/sendmts; and, + for an mts setting of "mmdf", or "mmdf2", look at the file + conf/tailor/mmdf. + + Now install the configured files into the source areas. (On + SYS5 systems, or other systems where you get complaints + about "_index" and "_rindex" being undefined, you should use + "make sys5" to compile mhconfig.) + + % make + % ./mhconfig MH + + Before proceeding, you should familiarize yourself with the + _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e. To generate an _n_r_o_f_f version, go to + the doc/ directory and type: + + % (cd ../doc/; make ADMIN.doc) + + + If you're already running _M_H at your site, you should also + read the _m_h changes document CHANGES. The source is in + papers/changes/. + + After reading the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e, you may decide to + change your MH configuration. If so, cd back to the conf/ + directory, re-edit the files MH and conf/config/mtstailor, + and re-run _m_h_c_o_n_f_i_g. + + You now proceed based on your choice of a transport system + (the setting for mts above). The best interface is achieved + with "sendmail" followed by "mmdf" or ("mmdf2"), and then + "mh" (stand-alone delivery, not recommended). + + SENDMAIL + If you have not enabled BBoards or POP then no further + + + +[mh.6] Last change: MH.6.8.4 17 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + MTS-specific action is required on your part! + + If you have enabled POP, but you want to let _S_e_n_d_M_a_i_l + deliver mail POP mail using its standard delivery program + /bin/mail, then, again, no further MTS-specific action is + required on your part! + + Otherwise, go to the mts/sendmail/ directory. + + % cd ../mts/sendmail/ + + This directory contains files whose definitions correspond + to the configuration of your _S_e_n_d_M_a_i_l system. If you have + enabled BBoards or POP service, then you will need to + re-configure _S_e_n_d_M_a_i_l. First, in the "local info" section + of your site's _S_e_n_d_M_a_i_l configuration file, choose a free + macro/class (B is used in this distribution), and add these + lines: + + # BBoards support + DBbboards + CBbboards + + Second, immediately after the inclusion of the zerobase + file, in the "machine dependent part of ruleset zero" sec- + tion, add these lines: + + # resolve names for the BBoards system + R$+<@$=B> $#bboards$@$2$:$1 topic@bboards + + Be sure to use tabs when separating these fields. Third, + add the line + + include(bboardsMH.m4) + + after the line + + include(localm.m4) + + in your site's _S_e_n_d_M_a_i_l configuration file. Finally, you + should link the file mts/sendmail/bboardsMH.m4 into your + _S_e_n_d_M_a_i_l cf/ directory and re-configure _S_e_n_d_M_a_i_l. + + If you have enabled POP service, a similar procedure must be + used on the POP service host, to re-configure _S_e_n_d_M_a_i_l. + First, in the "local info" section of your site's _S_e_n_d_M_a_i_l + configuration file, choose a free macro/class (P is used in + this distribution), and add these lines: + + # POP support + DPpop + CPpop + + + +[mh.6] Last change: MH.6.8.4 18 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + Second, immediately after the inclusion of the zerobase + file, in the "machine dependent part of ruleset zero" sec- + tion, add these lines: + + # resolve names for the POP system + R$+<@$=P> $#pop$@$2$:$1 subscriber@pop + + Be sure to use tabs when separating these fields. Third, + add the line + + include(popMH.m4) + + after the line + + include(localm.m4) + + in your site's _S_e_n_d_M_a_i_l configuration file. Finally, you + should link the file mts/sendmail/popMH.m4 into your _S_e_n_d_- + _M_a_i_l cf/ directory and re-configure _S_e_n_d_M_a_i_l. + + MMDF + If you want _M_M_D_F to be your transport service, and have NOT + specified "mmdf/smtp" (or "mmdf2/smtp") as your mts setting, + then go to the mmdf/ directory. (If you're using + "mmdf/smtp" or "mmdf2/smtp" as your mts setting, then skip + to the next section.) + + % cd ../mts/mmdf/ + + This directory contains files whose definitions correspond + to the configuration of your _M_M_D_F system. + + If you're running _M_M_D_F-_I, then copy the following files from + wherever you keep the _M_M_D_F sources to this directory: + mmdf/h/ch.h, mmdf/h/conf.h, utildir/conf_util.h, + utildir/ll_log.h, mmdf/h/mmdf.h, utildir/util.h, + mmdf/mmdf_lib.a, and utildir/util_lib.a. + + If you're running _M_M_D_F-_I_I, then copy the following files + from where you keep the _M_M_D_F sources to this directory: + h/ch.h, h/conf.h, h/dm.h, h/ll_log.h, h/mmdf.h, h/util.h, + and lib/libmmdf.a + + If you have enabled bboards, then the directories + support/bboards/mmdfI and support/bboards/mmdfII contain + information you'll need to put a UCI BBoards channel in your + _M_M_D_F configuration. Similarly, if you have enabled option + "mf" and are running _M_M_D_F-_I, then the zotnet/mf/mmdfI/ + directory contains information you'll need to put a _U_U_C_P + channel in your _M_M_D_F-_I configuration. Finally, the direc- + tory support/pop/mmdfII contains information you'll need to + put a POP channel in your _M_M_D_F-_I_I configuration. + + + +[mh.6] Last change: MH.6.8.4 19 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + Note that _M_M_D_F-_I_I is distributed with the BBoards channel, + although the version in the _M_H distribution might be more + current, the version in the _M_M_D_F-_I_I distribution has been + tested with that revision of _M_M_D_F. + + MMDF/SMTP + If you are using "mmdf/smtp" as your mts setting, then no + further MTS-specific action is required on your part! + + MMDF2/SMTP + If you are using "mmdf2/smtp" as your mts setting, then no + further MTS-specific action is required on your part! + + STAND-ALONE DELIVERY + If, instead, you want _M_H to handle its own mail delivery, + then no further MTS-specific action is required on your + part! + +GENERATION + Go to the _M_H top-level directory and generate the system. + + % cd ../; make + + This will cause a complete generation of the _M_H system. If + all goes well, proceed with installation. If not, complain, + as there "should be no problems" at this step. + +INSTALLATION + If the directories you chose for the user-programs, + support-programs and manuals ("bin", "etc", "popdir", "slib- + dir", and "mandir" in the conf/MH file) don't exist, you + should create them at this point. + + Next, if you enabled support for the UCI BBoards facility, + then create a login called "bboards" with the following + characteristics: home directory is /usr/spool/bboards/ with + mode 755 (actually, use the value for "bbhome" given in the + _M_H configuration file), login shell is /bin/csh (or + /bin/sh), and, encrypted password field is "*". The + "bboards" login should own the /usr/spool/bboards/ direc- + tory. In addition to creating /usr/spool/bboards/, also + create /usr/spool/bboards/etc/ and + /usr/spool/bboards/archive/. These directories should also + be owned by the "bboards" login. + + If you enabled support for POP, then on the POP service + host, create a login called "pop" with the following charac- + teristics: home directory is /usr/spool/pop/ with mode 755, + login shell is /bin/csh, and, encrypted password field is + "*". If you don't have /bin/csh on your system (V7), then + /bin/sh is just fine. The "pop" login should own the + /usr/spool/pop/ directory. You'll also need to add a line + + + +[mh.6] Last change: MH.6.8.4 20 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + to the /etc/services file and the /etc/rc.local file, see + the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e for more details. + + If this is not the first time you have installed _M_H, these + files will need particular attention: + + _D_i_r_e_c_t_o_r_y _F_i_l_e_s + "etc/" MailAliases, BBoardAliases, mtstailor + /usr/spool/bboards/ BBoards, .cshrc, .mh_profile + /usr/spool/bboards/etc/ * + + The MailAliases, BBoardAliases, mtstailor and BBoards files + will NOT be installed over existing copies; you will need to + edit these by hand and merge in any changes from your previ- + ous _M_H release. The other files under /usr/spool/bboards/ + will be overwritten if they exist. You may wish to preserve + your old versions of these before installing _M_H. + + As the super-user, and from the mh.6/ directory, install the + system. + + # make inst-all + + This will cause the _M_H processes and files to be transferred + to the appropriate areas with the appropriate attributes. + +TAILORING + See the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e for information on tailoring + _M_H for the MTS, BBoards, and POP. + +DOCUMENTATION + In addition to this document, the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e, and + the _U_s_e_r'_s _M_a_n_u_a_l, there are several documents referenced by + the user's manual which may be useful. The sources for all + of these can be found under the papers/ directory. + +OTHER THINGS + Consult the directory miscellany/ for the sources to a + number of things which aren't part of the mainstream _M_H dis- + tribution, but which are still quite useful. + +FILES + Too numerous to mention. Really. + +SEE ALSO + make(1) + +BUGS + The _m_h_c_o_n_f_i_g program should be smarter. + + There's no way to print the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e until + after you have configured the system; it is difficult to + + + +[mh.6] Last change: MH.6.8.4 21 + + + + + + +MH-GEN(8) MAINTENANCE COMMANDS MH-GEN(8) + + + + configure the system without the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e. + + The Makefiles should know when _m_h_c_o_n_f_i_g has been run and + force "make clean" behavior. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[mh.6] Last change: MH.6.8.4 22 + + + diff --git a/docs/historical/mh-6.8.5/conf/MH b/docs/historical/mh-6.8.5/conf/MH new file mode 100644 index 0000000..77eab58 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/MH @@ -0,0 +1,54 @@ +# solaris2.sun.com - MH 6.8 - Solaris 2.x +# Solaris 2.x (native, no source/binary compatability) +# contributed by Greg.Onufer@cheers.Bungi.COM +# Wed, 11 Nov 1992 00:43:19 PST + +# Bulletin Boards +bbdelivery off +bboards off + +# Compilation Environment +cc cc +ccoptions -O -g +curses -lcurses +# ldoptions may also need -R/opt/mh/lib +ldoptions -s +ldoptlibs -lnsl -lsocket -R/opt/mh-6.8.5/lib +sharedlib sys5 +slflags -K pic +ranlib off +chown /usr/bin/chown +oldload none + +# RunTime Environment +bin /opt/mh-6.8.5/bin +etc /opt/mh-6.8.5/lib +slibdir /opt/mh-6.8.5/lib +mandir /opt/mh-6.8.5/man +manuals standard +editor /usr/bin/vi +mail /var/spool/mail +mts sendmail/smtp + +# Compilation Options +options SYS5 +options SVR4 +options FCNTL +options RENAME +options VSPRINTF +options ATTVIBUG +options DBMPWD +options DUMB +options MORE='"/usr/bin/more"' +options MSGPROT='"0600"' +options MSGID +options RPATHS +options SOCKETS +options FOLDPROT='"0711"' +options SHADOW +options SYS5DIR +options MHRC +options MHE +options MIME +signal void +sprintf int diff --git a/docs/historical/mh-6.8.5/conf/Makefile b/docs/historical/mh-6.8.5/conf/Makefile new file mode 100644 index 0000000..b1f7b2f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/Makefile @@ -0,0 +1,45 @@ +###################################################################### +# Instructions to Make, for compilation of MH modules +###################################################################### +# @(#)$Id: Makefile,v 2.4 1994/04/18 22:04:09 jromine Exp $ + +SHELL = /bin/sh + +CC = cc +CFLAGS = -O +LFLAGS = -bhu +LDFLAGS = +LIBES = + + +###################################################################### +# Here it is... +###################################################################### + +all: mhconfig +lint: l-mhconfig + +sys5: ; exec make $(MFLAGS) CFLAGS="$(CFLAGS) -DSYS5" all + + +###################################################################### +# mhconfig +###################################################################### + +mhconfig: mhconfig.o + $(CC) $(LDFLAGS) -o $@ mhconfig.o $(LIBES) + + +l-mhconfig:; lint $(LFLAGS) mhconfig.c $(LLIBS) + + +###################################################################### +# Miscellaneous tasks +###################################################################### + +unconfig distribution: clean + rm -f mhconfig config.sed doc/config.sed + +clean: unclean + +unclean:; rm -f mhconfig *.o _* :* */_* */:* */*/_* */*/:* diff --git a/docs/historical/mh-6.8.5/conf/RCS/MH,v b/docs/historical/mh-6.8.5/conf/RCS/MH,v new file mode 100644 index 0000000..e29238b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/RCS/MH,v @@ -0,0 +1,180 @@ +head 1.7; +access; +symbols; +locks + shettich:1.7; strict; +comment @# @; + + +1.7 +date 90.04.06.09.44.31; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.06.09.41.55; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.57.52; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.04.02.16.56.45; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.04.02.14.31.11; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.04.02.14.30.15; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.04.02.14.30.05; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@a plain default +@ +text +@# @@(#)$Id:$ +# a 4.2BSD VAX system running SendMail +bin /usr/local +bboards on +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals local +mts sendmail +options BSD42 +@ + + +1.6 +log +@try for a reasonable default +@ +text +@d1 5 +a5 8 +# @@(#)$Id: MH,v 1.5 90/04/05 15:57:52 sources Exp Locker: sources $ +# +# For Sun OS 4.* with SendMail, running Yellow Pages, and /etc/named. +# MH will post mail through an SMTP connection to the localhost's +# SendMail daemon. Be sure to set "servers" in your mtstailor file. +# +bin /usr/new/mh +etc /usr/new/lib/mh +d7 3 +a9 29 +manuals new +editor prompter +mts sendmail/smtp +options BSD42 BSD43 SUN40 TYPESIG=void +options DBM +options BIND +curses -lcurses -ltermcap +ranlib on +ldoptions -s -O +# +# include "bbc" support to read NetNews via the NNTP. +# +bboards nntp +bbdelivery off +pop on +# +# These are optional: +# +# DUMB restricts some address defaulting +# RPATHS don't throw away UNIX "From " lines +# MHE for Emacs/MH interface +# SBACKUP change to "#" instead of "," +# MSGPROT default messages to 0600 protection mode +# +options DUMB +options RPATHS +options MHE +options SBACKUP='"\\043"' +options MSGPROT='"0600"' +@ + + +1.5 +log +@Id +@ +text +@d1 6 +a6 1 +# @@(#)$Id:$ +a7 1 +bboards off +d11 1 +d13 23 +a35 2 +options BSD42 BIND DBM +options DUMB RPATHS +d38 1 +a38 2 +pop off +ldoptions -n -s -O +@ + + +1.4 +log +@fix +@ +text +@d1 1 +@ + + +1.3 +log +@a fair default +@ +text +@d8 1 +a8 1 +options DUMB RPATHS +@ + + +1.2 +log +@*** empty log message *** +@ +text +@d7 3 +a9 2 +options BSD42 BERK TTYD DUMB +options MHE NETWORK BIND RPATHS +a10 1 +#options DBM +d12 1 +a12 1 +ldoptions -ns -O +@ + + +1.1 +log +@Initial revision +@ +text +@d10 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/RCS/Makefile,v b/docs/historical/mh-6.8.5/conf/RCS/Makefile,v new file mode 100644 index 0000000..f9f0cc7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/RCS/Makefile,v @@ -0,0 +1,146 @@ +head 2.4; +access; +symbols; +locks; strict; + + +2.4 +date 94.04.18.22.04.09; author jromine; state Exp; +branches; +next 2.3; + +2.3 +date 92.10.26.22.36.21; author jromine; state Exp; +branches; +next 2.2; + +2.2 +date 90.04.05.15.18.33; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.01.29.15.42.29; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.26; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.43.59; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.4 +log +@add mhconfig to make clean +@ +text +@###################################################################### +# Instructions to Make, for compilation of MH modules +###################################################################### +# @@(#)$Id: Makefile,v 2.3 1992/10/26 22:36:21 jromine Exp jromine $ + +SHELL = /bin/sh + +CC = cc +CFLAGS = -O +LFLAGS = -bhu +LDFLAGS = +LIBES = + + +###################################################################### +# Here it is... +###################################################################### + +all: mhconfig +lint: l-mhconfig + +sys5: ; exec make $(MFLAGS) CFLAGS="$(CFLAGS) -DSYS5" all + + +###################################################################### +# mhconfig +###################################################################### + +mhconfig: mhconfig.o + $(CC) $(LDFLAGS) -o $@@ mhconfig.o $(LIBES) + + +l-mhconfig:; lint $(LFLAGS) mhconfig.c $(LLIBS) + + +###################################################################### +# Miscellaneous tasks +###################################################################### + +unconfig distribution: clean + rm -f mhconfig config.sed doc/config.sed + +clean: unclean + +unclean:; rm -f mhconfig *.o _* :* */_* */:* */*/_* */*/:* +@ + + +2.3 +log +@add SHELL +@ +text +@d4 1 +a4 1 +# @@(#)$Id: Makefile,v 2.2 1990/04/05 15:18:33 sources Exp jromine $ +d45 1 +a45 1 +unclean:; rm -f *.o _* :* */_* */:* */*/_* */*/:* +@ + + +2.2 +log +@add ID +@ +text +@d4 3 +a6 1 +# @@(#)$Id:$ +@ + + +2.1 +log +@defines for "make sys5" +@ +text +@d4 1 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d19 2 +@ + + +1.1 +log +@Initial revision +@ +text +@d35 1 +a35 1 +distribution: clean +@ diff --git a/docs/historical/mh-6.8.5/conf/RCS/mh-gen.8,v b/docs/historical/mh-6.8.5/conf/RCS/mh-gen.8,v new file mode 100644 index 0000000..f0b053f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/RCS/mh-gen.8,v @@ -0,0 +1,5115 @@ +head 2.119; +access; +symbols; +locks; strict; + + +2.119 +date 96.02.08.19.20.25; author jromine; state Exp; +branches; +next 2.118; + +2.118 +date 96.02.08.19.18.53; author jromine; state Exp; +branches; +next 2.117; + +2.117 +date 95.12.05.19.36.14; author jromine; state Exp; +branches; +next 2.116; + +2.116 +date 94.11.17.16.10.10; author jromine; state Exp; +branches; +next 2.115; + +2.115 +date 93.12.01.00.44.23; author jromine; state Exp; +branches; +next 2.114; + +2.114 +date 93.09.01.21.25.42; author jromine; state Exp; +branches; +next 2.113; + +2.113 +date 93.08.27.22.22.08; author jromine; state Exp; +branches; +next 2.112; + +2.112 +date 93.08.25.18.07.10; author jromine; state Exp; +branches; +next 2.111; + +2.111 +date 93.08.20.19.47.56; author jromine; state Exp; +branches; +next 2.110; + +2.110 +date 93.08.19.23.57.46; author jromine; state Exp; +branches; +next 2.109; + +2.109 +date 93.08.19.23.34.15; author jromine; state Exp; +branches; +next 2.108; + +2.108 +date 93.08.19.23.30.08; author jromine; state Exp; +branches; +next 2.107; + +2.107 +date 93.06.03.17.54.12; author jromine; state Exp; +branches; +next 2.106; + +2.106 +date 93.02.26.19.00.51; author jromine; state Exp; +branches; +next 2.105; + +2.105 +date 92.12.14.17.19.19; author jromine; state Exp; +branches; +next 2.104; + +2.104 +date 92.12.02.19.07.37; author jromine; state Exp; +branches; +next 2.103; + +2.103 +date 92.11.21.20.46.59; author jromine; state Exp; +branches; +next 2.102; + +2.102 +date 92.11.19.18.09.59; author jromine; state Exp; +branches; +next 2.101; + +2.101 +date 92.11.19.17.45.16; author jromine; state Exp; +branches; +next 2.100; + +2.100 +date 92.11.16.22.35.55; author jromine; state Exp; +branches; +next 2.99; + +2.99 +date 92.11.12.23.30.09; author jromine; state Exp; +branches; +next 2.98; + +2.98 +date 92.11.12.22.48.35; author jromine; state Exp; +branches; +next 2.97; + +2.97 +date 92.11.12.00.07.59; author jromine; state Exp; +branches; +next 2.96; + +2.96 +date 92.11.12.00.04.00; author jromine; state Exp; +branches; +next 2.95; + +2.95 +date 92.11.11.22.58.26; author jromine; state Exp; +branches; +next 2.94; + +2.94 +date 92.11.10.22.40.25; author jromine; state Exp; +branches; +next 2.93; + +2.93 +date 92.11.09.18.45.48; author jromine; state Exp; +branches; +next 2.92; + +2.92 +date 92.11.06.19.29.16; author jromine; state Exp; +branches; +next 2.91; + +2.91 +date 92.11.06.01.06.04; author jromine; state Exp; +branches; +next 2.90; + +2.90 +date 92.11.06.00.47.31; author jromine; state Exp; +branches; +next 2.89; + +2.89 +date 92.11.05.19.25.27; author jromine; state Exp; +branches; +next 2.88; + +2.88 +date 92.11.05.17.20.40; author jromine; state Exp; +branches; +next 2.87; + +2.87 +date 92.11.02.19.01.33; author jromine; state Exp; +branches; +next 2.86; + +2.86 +date 92.11.02.19.01.00; author jromine; state Exp; +branches; +next 2.85; + +2.85 +date 92.11.02.18.39.35; author jromine; state Exp; +branches; +next 2.84; + +2.84 +date 92.11.02.17.10.51; author jromine; state Exp; +branches; +next 2.83; + +2.83 +date 92.10.31.06.24.13; author jromine; state Exp; +branches; +next 2.82; + +2.82 +date 92.10.31.06.20.55; author jromine; state Exp; +branches; +next 2.81; + +2.81 +date 92.10.29.22.20.55; author jromine; state Exp; +branches; +next 2.80; + +2.80 +date 92.10.29.17.44.55; author jromine; state Exp; +branches; +next 2.79; + +2.79 +date 92.10.29.17.39.14; author jromine; state Exp; +branches; +next 2.78; + +2.78 +date 92.10.27.21.44.44; author jromine; state Exp; +branches; +next 2.77; + +2.77 +date 92.10.27.18.11.52; author jromine; state Exp; +branches; +next 2.76; + +2.76 +date 92.10.27.17.41.40; author jromine; state Exp; +branches; +next 2.75; + +2.75 +date 92.10.27.17.00.27; author jromine; state Exp; +branches; +next 2.74; + +2.74 +date 92.10.26.16.54.14; author jromine; state Exp; +branches; +next 2.73; + +2.73 +date 92.10.26.16.29.56; author jromine; state Exp; +branches; +next 2.72; + +2.72 +date 92.10.20.22.50.50; author jromine; state Exp; +branches; +next 2.71; + +2.71 +date 92.10.19.21.57.08; author jromine; state Exp; +branches; +next 2.70; + +2.70 +date 92.10.19.21.56.21; author jromine; state Exp; +branches; +next 2.69; + +2.69 +date 92.10.19.21.48.20; author jromine; state Exp; +branches; +next 2.68; + +2.68 +date 92.10.19.20.29.19; author jromine; state Exp; +branches; +next 2.67; + +2.67 +date 92.05.12.21.05.04; author jromine; state Exp; +branches; +next 2.66; + +2.66 +date 92.05.12.21.04.45; author jromine; state Exp; +branches; +next 2.65; + +2.65 +date 92.02.12.21.36.21; author jromine; state Exp; +branches; +next 2.64; + +2.64 +date 92.02.12.21.35.05; author jromine; state Exp; +branches; +next 2.63; + +2.63 +date 92.02.11.05.08.34; author jromine; state Exp; +branches; +next 2.62; + +2.62 +date 92.02.06.16.48.48; author jromine; state Exp; +branches; +next 2.61; + +2.61 +date 92.02.06.00.25.07; author jromine; state Exp; +branches; +next 2.60; + +2.60 +date 92.02.05.22.18.48; author jromine; state Exp; +branches; +next 2.59; + +2.59 +date 92.02.05.21.52.46; author jromine; state Exp; +branches; +next 2.58; + +2.58 +date 92.01.31.23.09.59; author jromine; state Exp; +branches; +next 2.57; + +2.57 +date 92.01.31.22.55.36; author jromine; state Exp; +branches; +next 2.56; + +2.56 +date 92.01.31.22.47.36; author jromine; state Exp; +branches; +next 2.55; + +2.55 +date 92.01.30.16.41.35; author jromine; state Exp; +branches; +next 2.54; + +2.54 +date 91.01.24.08.27.50; author mh; state Exp; +branches; +next 2.53; + +2.53 +date 91.01.23.14.54.18; author mh; state Exp; +branches; +next 2.52; + +2.52 +date 91.01.23.14.44.18; author mh; state Exp; +branches; +next 2.51; + +2.51 +date 90.12.18.13.55.54; author mh; state Exp; +branches; +next 2.50; + +2.50 +date 90.11.21.09.27.52; author mh; state Exp; +branches; +next 2.49; + +2.49 +date 90.11.16.14.55.57; author mh; state Exp; +branches; +next 2.48; + +2.48 +date 90.04.09.13.27.27; author sources; state Exp; +branches; +next 2.47; + +2.47 +date 90.04.09.10.01.42; author sources; state Exp; +branches; +next 2.46; + +2.46 +date 90.04.08.19.35.27; author sources; state Exp; +branches; +next 2.45; + +2.45 +date 90.04.07.23.34.23; author sources; state Exp; +branches; +next 2.44; + +2.44 +date 90.04.06.10.59.28; author sources; state Exp; +branches; +next 2.43; + +2.43 +date 90.04.06.10.51.39; author sources; state Exp; +branches; +next 2.42; + +2.42 +date 90.04.06.10.46.18; author sources; state Exp; +branches; +next 2.41; + +2.41 +date 90.04.05.16.08.57; author sources; state Exp; +branches; +next 2.40; + +2.40 +date 90.04.05.16.08.33; author sources; state Exp; +branches; +next 2.39; + +2.39 +date 90.04.05.15.19.29; author sources; state Exp; +branches; +next 2.38; + +2.38 +date 90.04.04.23.08.49; author sources; state Exp; +branches; +next 2.37; + +2.37 +date 90.04.02.14.39.11; author sources; state Exp; +branches; +next 2.36; + +2.36 +date 90.04.02.14.19.26; author sources; state Exp; +branches; +next 2.35; + +2.35 +date 90.04.02.14.11.22; author sources; state Exp; +branches; +next 2.34; + +2.34 +date 90.03.29.15.45.05; author sources; state Exp; +branches; +next 2.33; + +2.33 +date 90.03.28.17.19.36; author sources; state Exp; +branches; +next 2.32; + +2.32 +date 90.03.28.17.16.41; author sources; state Exp; +branches; +next 2.31; + +2.31 +date 90.03.28.17.16.05; author sources; state Exp; +branches; +next 2.30; + +2.30 +date 90.03.28.16.49.49; author sources; state Exp; +branches; +next 2.29; + +2.29 +date 90.03.28.11.15.35; author sources; state Exp; +branches; +next 2.28; + +2.28 +date 90.03.23.16.41.33; author sources; state Exp; +branches; +next 2.27; + +2.27 +date 90.03.23.11.25.10; author sources; state Exp; +branches; +next 2.26; + +2.26 +date 90.03.21.22.19.34; author sources; state Exp; +branches; +next 2.25; + +2.25 +date 90.03.21.11.00.53; author sources; state Exp; +branches; +next 2.24; + +2.24 +date 90.03.21.10.30.55; author sources; state Exp; +branches; +next 2.23; + +2.23 +date 90.03.19.10.24.26; author sources; state Exp; +branches; +next 2.22; + +2.22 +date 90.03.19.10.22.53; author sources; state Exp; +branches; +next 2.21; + +2.21 +date 90.03.19.09.50.57; author sources; state Exp; +branches; +next 2.20; + +2.20 +date 90.03.19.09.47.05; author sources; state Exp; +branches; +next 2.19; + +2.19 +date 90.03.19.09.42.16; author sources; state Exp; +branches; +next 2.18; + +2.18 +date 90.03.18.16.34.45; author sources; state Exp; +branches; +next 2.17; + +2.17 +date 90.03.16.15.58.57; author sources; state Exp; +branches; +next 2.16; + +2.16 +date 90.03.15.15.54.26; author sources; state Exp; +branches; +next 2.15; + +2.15 +date 90.03.12.14.14.24; author sources; state Exp; +branches; +next 2.14; + +2.14 +date 90.03.12.11.38.44; author sources; state Exp; +branches; +next 2.13; + +2.13 +date 90.03.09.15.52.29; author sources; state Exp; +branches; +next 2.12; + +2.12 +date 90.02.23.14.33.26; author sources; state Exp; +branches; +next 2.11; + +2.11 +date 90.02.23.14.22.20; author sources; state Exp; +branches; +next 2.10; + +2.10 +date 90.02.15.14.24.30; author sources; state Exp; +branches; +next 2.9; + +2.9 +date 90.02.15.14.12.18; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.02.05.15.03.53; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.02.05.15.01.02; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.02.05.14.59.29; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.02.05.14.55.11; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.02.05.14.50.18; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.05.14.34.10; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.05.14.19.28; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.01.29.15.42.39; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.50; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.06.02.13.28.04; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.119 +log +@typo +@ +text +@.\" @@(#)$Id: mh-gen.8,v 2.118 1996/02/08 19:18:53 jromine Exp jromine $ +.\" uneven inter-word spacing (nroff line adjusting) hampers readability +.if n .na +.TH MH-GEN 8 MH.6.8.4 [mh.6] +.SH NAME +mh-gen \- generating the MH system +.SH "READ THIS" +This documentation describes how to configure, generate, and install +the UCI version of the RAND \fIMH\fR system. \fBBe certain\fP to +read this document completely before you begin. You probably will +also want to familiarize yourself with the \fIMH\fP Administrator's +Guide before you install \fIMH\fP. A copy can be found in the +file \fBdoc/ADMIN.doc\fP is the \fIMH\fP sources. +.SH DISCLAIMER +Although the \fIMH\fR system was originally developed by the RAND Corporation, +and is now in the public domain, +the RAND Corporation assumes no responsibility for \fIMH\fR +or this particular modification of \fIMH\fR. +.PP +In addition, +the Regents of the University of California issue the following +\fBdisclaimer\fR in regard to the UCI version of \fIMH\fR: +.in +.5i +\*(lqAlthough each program has been tested by its contributor, +no warranty, express or implied, +is made by the contributor or the University of California, +as to the accuracy and functioning of the program +and related program material, +nor shall the fact of distribution constitute any such warranty, +and no responsibility is assumed by the contributor +or the University of California in connection herewith.\*(rq +.in -.5i +.PP +This version of \fIMH\fR is in the public domain, +and as such, +there are no real restrictions on its use. +The \fIMH\fR source code and documentation have no licensing restrictions +whatsoever. +As a courtesy, +the authors ask only that you provide appropriate credit to the RAND +Corporation and +the University of California for having developed the software. +.SH "GETTING HELP" +\fIMH\fR is a software package that is neither supported by the RAND +Corporation nor the University of California. +However, +since we do use the software ourselves and plan to continue using (and +improving) \fIMH\fR, +bug reports and their associated fixes should be reported back to us so that +we may include them in future releases. +The current computer mailbox for \fIMH\fR is \fBBug\-MH@@ICS.UCI.EDU\fR. +Current information about MH can be obtained from +the \fBMH Home Page\fP on the World Wide Web at +\fBhttp://www.ics.uci.edu/~mh\fP. +.PP +Presently, +there are two Internet discussion groups, \fBMH\-Users@@ICS.UCI.EDU\fR +and \fBMH\-Workers@@ICS.UCI.EDU\fR. \fBMH\-Workers\fP is for people +discussing code changes to \fIMH\fP. \fBMH-Users\fP is for general +discussion about how to use \fIMH\fP. +\fBMH\-Users\fR is bi-directionally +gatewayed into USENET as \fBcomp.mail.mh\fR. +.SH "HOW TO GET MH" +Since you probably already have \fIMH\fP, +you may not need to read this unless you suspect you have an old version. +There are two ways to get the latest release: +.PP +1. If you can FTP to the ARPA Internet, use anonymous FTP to +ftp.ics.uci.edu and retrieve the file pub/mh/mh-6.8.tar.Z. +This is a tar image after being run through the compress program +(approximately 1.8MB). There should also be a \fBREADME\fR file in +that directory which tells what the current release of \fIMH\fP +is, and how to get updates. +.PP +You may also find MH on +various other hosts; to make sure you get the latest version and +don't waste your time re-fixing bugs, it's best to get it from +either ftp.ics.uci.edu or a site that mirrors ftp.ics.uci.edu. +.PP +2. You can send $75 US to the address below. +This covers the cost of a 6250 BPI 9-track magtape, +handling, and shipping. In addition, you'll get a +laser-printed hard-copy of the entire MH documentation set. Be +sure to include your USPS address with your check. Checks +must be drawn on U.S\&. funds and should be made payable to: + +.ti +1i +Regents of the University of California + +The distribution address is: + +.nf +.RS 1i +Attn: MH distribution +Office of Academic Computing +Univeristy of California at Irvine +Irvine, CA 92717-2225 USA + ++1 714 824 5153 +.fi +.RE +.PP +Sadly, if you just want the hard-copies of the documentation, you +still have to pay the $75. The tar image has the documentation +source (the manual is in roff format, but the rest are in TeX +format). Postscript formatted versions of the TeX papers are +available, as are crude tty-conversions of those papers. +.SH SYNOPSIS +MAKE +.SH DESCRIPTION +This is a description of how one can bring up an \fIMH\fR system. +It is assumed that you have super-user privileges in order to +(re\-)install \fIMH\fR. +Super-user privileges are not required to configure or generate \fIMH\fR. +.PP +Become the super-user and cd to /usr/src/local/ +(or whatever you keep your local sources). +The distribution tape contains the hierarchy for the mh.6-8/ directory. +Bring the sources on-line: +.sp 1 +.nf +# cd /usr/src/local +% tar xv +% cd mh-6.8 +.fi +.SH CONFIGURATION +First, go to the conf/ directory. +.sp 1 +.nf +% cd conf/ +.fi +.sp 1 +This directory contains files that will produce source files tailored +for your choice of \fIMH\fR configuration. +You should edit only the file \fBMH\fR. +This file contains configuration directives. +These configuration directives are read by the \fImhconfig\fR program to +produce customized files. +.sp +For examples of various configurations, +look in the directory \fBconf/examples/\fR. +The file \fBMH\fR provided in \fBconf/\fR is a reasonable default. +Lines beginning with `#' are comments, and are not otherwise interpreted. +.PP +Here are the \fIMH\fP configuration directives available. Be sure +to read through this list completely before attempting to decide +what directives are appropriate for your system. +.sp +More information on some of these options is available in the +the \fIAdministrator's Guide\fR. If you do not have a printed +copy, you should configure your system with the default +configuration file, \fBMH\fP, then generate and print a copy +of the guide (as described below). +.in +.5i + +.de Uh +.ti -.75i +.B "\\$1" +.ne 4 +.. +.Uh "Installation paths" +.ti -.5i +bin: /usr/local +.br +The directory where user\-invoked programs go (see manual section 1). + +.ti -.5i +etc: /usr/local/lib/mh +.br +The directory where pgm\-invoked programs go (see manual section 8). + +.ti -.5i +mail: /usr/spool/mail +.br +The directory where the maildrops are stored. +If this pathname is absolute (i.e., begins with a \fB/\fR\0), +then the user's maildrop is a file called \fB$USER\fR in this directory. +If the pathname is not absolute, +then the user's maildrop is in the user's home directory under the given name. + +.ti -.5i +mandir: /usr/man +.br +The parent directory of the manual entries. + +.ti -.5i +manuals: standard +.br +Where manual entries should be installed, +relative to the directory given with \*(lqmandir\*(rq. +Either \*(lqlocal\*(rq to install manual entries under \fBmanl/\fR, +or \*(lqnew\*(rq to install manual entries under \fBmann/\fR, +or \*(lqold\*(rq to install manual entries under \fBmano/\fR, +or \*(lqstandard\*(rq to install manual entries under \fBman?/\fR, +or \*(lqbsd44\*(rq to install manual entries as \fBman?/\fIpage\fP.0\fR, +or \*(lqgen\*(rq to generate but not install them, +or \*(lqnone\*(rq to neither generate nor install them. + +Any of these values may have the suffix \*(lq/cat\*(rq appended +to it. In that case, the manual entries will be formatted +with \*(lqnroff -man\*(rq and they will be installed in the +corresponding \*(lqcat?\*(rq directories. + +For example, +to install manual entries under \fB/usr/man/u_man/man?\fR, +use \*(lqstandard\*(rq and \fB/usr/man/u_man\fR for \*(lqmandir\*(rq. +To install formatted manual entires under \fB/usr/contrib/man/cat?\fR, +use \*(lqstandard/cat\*(rq and \fB/usr/contrib/man\fR for \*(lqmandir\*(rq. +To install formatted manual entries using the BSD44 convention, +use \*(lqbsd44/cat\*(rq. + +.ti -.5i +chown: /etc/chown +.br +The location of the \fIchown\fR\|(8) on your system. +If \fIchown\fR is in your search path, +just use the value of \*(lqchown\*(rq. +On SYS5 systems, +this should probably be \*(lq/bin/chown\*(rq. + +.ti -.5i +cp: cp +.br +The command to copy files when installing, if not \*(lqcp\*(rq. +(Some sites use \*(lqcp\0\-p\*(rq.) + +.ti -.5i +ln: ln +.br +The command to link files together in the source tree, if not \*(lqln\*(rq. +If you're using something like \fBlndir\fP to keep +your compile tree separate from your source tree, +set this to \*(lqln\0\-s\*(rq or \*(lqcp\*(rq. + +.ti -.5i +remove: mv \-f +.br +How \fIMH\fR should make backup copies +of existing files when installing new files. +To simply remove the old files, use \*(lqrm\0\-f\*(rq. + +.Uh "Compiler/loader" +.ti -.5i +cc: cc +.br +The name of your C compiler, if not \*(lqcc\*(rq. + +.ti -.5i +ccoptions: \-O +.br +Options given directly to \fIcc\fR\|(1). +The most common is \*(lq\-M\*(rq if you're running \fIMH\fR on an ALTOS. +This defaults to \*(lq\-O\*(rq. If you define this and want to +keep \*(lq\-O\*(rq, be sure to include it explicitly. +If you're using the \fIGNU\fP C compiler, it should +include `\-traditional'. See \*(lqoptions:\*(rq for `\-D' options. + +.ti -.5i +curses: \-lcurses\0\-ltermlib +.br +This should be the loader option required to load the \fItermcap\fR\|(3) +and \fIcurses\fR\|(3) libraries on your system. +On SYS5 systems, it probably should be just \*(lq\-lcurses\*(rq. +Some sites have reported that both \*(lq\-lcurses\*(rq and +\*(lq\-ltermlib\*(rq are necessary. + +.ti -.5i +ldoptions: \-s +.br +Options given directly to \fIld\fR\|(1) (via \fIcc\fR\|) at the beginning +of the command line. +Useful for machines which require arguments to tell \fIld\fR to increase the +stack space (e.g. the Gould, which uses \*(lq\-m\08\*(rq). +Usually, \*(lq\-s\*(rq is a good choice in any event. + +.ti -.5i +ldoptlibs: +.br +Options given directly to \fIld\fR\|(1) (via \fIcc\fR\|) at the end of the +command line. +The two most common are: +\*(lq\-ldbm\*(rq if you're running MMDF with the \fIdbm\fR package; +and, \*(lq\-lndir\*(rq if you are generating \fIMH\fR on a system +which does not load the new directory access mechanism by default +(e.g., 4.1BSD, SYS5). +If you don't have \fIlibndir\fR on your system, +the sources are in \fBmiscellany/libndir/\fR. + +.ti -.5i +lex: lex \-nt +.br +Alternative version of \fIlex\fR. Used in \fBzotnet/tws/\fR. + +.ti -.5i +oldload: off +.br +This controls how \fIMH\fP will try to process library object files to +eliminate local symbols. +Support for the ALTOS loader if \*(lqon\*(rq. +Support for loaders not handling `\-x\0\-r' correctly if \*(lqnone\*(rq. + +.ti -.5i +ranlib: on +.br +Support for systems with \fIranlib\fR\|(1). +For SYSTEM 5 systems, +this should be \*(lqoff\*(rq which tells \fIMH\fR to use \fIlorder\fR and +\fItsort\fR instead. +Some SYSTEM 5 sites reported that running this isn't always sufficient. +If this is the case, +then you should edit \fBconf/makefiles/uip\fR to include +\fB\&../sbr/libmh.a\fR and \fB../zotnet/libzot.a\fR twice in the LIBES +variable. + +.Uh "Message Transport System" +.ti -.5i +mts: sendmail +.br +Which message transport system to use. +Either \*(lqmmdf\*(rq to use \fIMMDF\fR as the transport system, +\*(lqmmdf2\*(rq to use \fIMMDF\-II\fR as the transport system, +\*(lqsendmail\*(rq to have \fISendMail\fR as the transport system, +\*(lqzmailer\*(rq to have \fIZMAILER\fP as the transport system, +or, \*(lqmh\*(rq to have \fIMH\fR as the transport system. + +On UNIX systems supporting TCP/IP networking via sockets +you can add the suffix \*(lq/smtp\*(rq to the mts setting. +This often yields a superior interface as \fIMH\fR will post mail with the +local \fISMTP\fR server instead of interacting directly with \fIMMDF\fR or +\fISendMail\fR. +Hence, for TCP/IP UNIX systems, +the \*(lq/smtp\*(rq suffix to either \*(lqsendmail\*(rq or \*(lqmmdf2\*(rq is +the preferred MTS configuration. +The \*(lq/smtp\*(rq suffix is described in detail in the \fIAdministrator's +Guide\fR; be sure to set \*(lqservers:\*(rq as described in +\fImh\-tailor\fR\|(8) if you use this option. + +.ti -.5i +mf: off +.br +Support for mail filtering on those systems in which the message transport +system isn't integrated with \fIUUCP\fR +This option is strictly for an \fIMH\fR system using either \fIMMDF\-I\fR +as its transport system or one using \*(lqstand\-alone delivery\*(rq. + +.Uh "UCI BBoards Facility" +.ti -.5i +bboards: off +.br +If \*(lqon\*(rq, include support for the UCI BBoards facility. +BBoards may be enabled with any mts setting. +If \*(lqoff\*(rq, the BBoard reading program \fIbbc\fR will not be installed. +If \*(lqnntp\*(rq, +include support for the UCI BBoards facility to read the Network News +via the NNTP. +If \*(lqpop\*(rq (formerly \*(lqpopbboards:\0on\*(rq), +include support for the UCI BBoards facility via the POP3 service; +this setting requires \*(lqpop:\0on\*(rq. + +.ti -.5i +bbdelivery: off +.br +If \*(lqoff\*(rq, +the BBoards delivery agent and library files will not be installed. +If +\*(lqon\*(rq, +and you set \*(lqbboards:\*(rq to something besides \*(lqoff\*(rq, +then +the BBoards delivery agent and library files will be installed +in the \fIbbhome\fR directory (see below). +To read remote BBoards, +the usual configuration would have \fIbbc\fR talk to a \fIPOP3\fR or +\fINNTP\fR server. +However, it may be useful to set this to \*(lqoff\*(rq if +you NFS mount the \fIbbhome\fR directory from another host +and want to use \fIbbc\fR to read those files directly. + +.ti -.5i +bbhome: /usr/spool/bboards +.br +The home directory for the BBoards user. + +.Uh "Post Office Protocol" +.ti -.5i +pop: off +.br +Support for POP service. +This allows local delivery for non\-local users +(a major win). +See \fBsupport/pop/pop.rfc\fR for more information on the POP. +This option currently works only on UNIX systems with TCP/IP sockets. +(It doesn't hurt to enable this option regardless of whether or not +you intend to use POP.) See also \*(lqbboards: pop\*(rq to enable +reading bboards with the POP. + +.ti -.5i +popdir: /usr/etc +.br +The directory where the POP daemon (\fBpopd\fP) will be installed. + +.ne 5 +.ti -.5i +options: +.br +\&`\-D' options to \fIcc\fR\|(1). +.sp +.in +.25i +.ti -.5i +APOP='\*(lq/etc/pop.auth\*(rq' +.br +This option indicates that the POP daemon will +support the non-standard \fBAPOP\fP command, +and specifies the name of \fBAPOP\fP authorization database. +The \fBAPOP\fP +command provides a challenge-based authentication system using +the \fBMD5\fP message digest algorithm. +This facility is documented in +\fIThe Internet Message\fR (ISBN 0\-13\-092941\-7), a book by Marshall T. Rose. +.sp +This option also causes the +\fBpopauth\fP program to be installed, which +allows the administrator to manipulate the \fBAPOP\fP +authorization database. +For more details, see \fBsupport/pop/pop-more.txt\fR +and the \fIAdministrator's Guide\fP. + +.ti -.5i +DPOP +.br +This option indicates that POP subscribers do not have +entries in the \fIpasswd\fR\|(5) file, +and instead have their own separate database (a win). + +.ti -.5i +KPOP +.br +Support for KERBEROS with POP. +This code builds +\fIpopd\fP, \fIinc\fP and \fImsgchk\fP to support only the +\*(lqkpop\*(rq protocol. +This code is still experimental, but is available for +those sites wishing to test it. + +.ti -.5i +MPOP +.br +This option indicates that the POP daemon will +support the non-standard +\fBXTND SCAN\fP command which provides performance +enhancements when using the POP over low-speed connections. +This option also causes an interactive POP +client program, \fBpopi\fP, to be compiled and installed. +A man page for the \fBpopi\fP program is also provided. +.sp +These extensions are described in +\fIThe Internet Message\fR, a book by Marshall T. Rose. +For more details, see \fBsupport/pop/pop-more.txt\fR. +\fBNote:\fP this option requires \*(lqbboards: pop\*(rq. + +.ti -.5i +POP2 +.br +Have the POP daemon understand the older +POP2 protocol as well as the \fIMH\fP POP3 protocol \- a major win. +The POP daemon auto-magically +determines which POP protocol your client is using. +If you're enabling POP service, +there's no reason not to enable this option as well. +See also \fIPOPSERVICE\fR. + +.ti -.5i +POPSERVICE +.br +The port name the \fIMH\fP POP will use. For historical reasons, +this defaults to \*(lqpop\*(rq. +.sp +In 1987, the \fIMH\fP POP protocol +(POP version 3) was published as RFC1081 and +was assigned its own port number (110), +which differs from the original POP (version 1 and 2) port number (109). +.sp +To have \fIMH\fP POP use the new assigned port number, +set POPSERVICE='\*(lqpop3\*(rq', and be sure that this service +name is listed in your \fB/etc/services\fP file on both POP client +and server hosts as \*(lq110/tcp\*(rq. +If you enable \fIPOP2\fP, you can safely leave \fIPOPSERVICE\fP +undefined unless you are using POP3 clients besides \fIMH\fP. + +.ti -.5i +RPOP +.br +This option indicates that support for the UNIX variant of POP, +RPOP, which uses privileged sockets for authentication be enabled. +This peacefully co-exists with the standard POP. + +.ti -.5i +SHADOW +.br +Indicates that the \fBpopd\fP POP server +can find encrypted passwords in the +\fB/etc/shadow\fR file (and not in the \fB/etc/passwd\fR file). +It should be used only for some (newer) SYSTEM 5 systems. +.in -.25i + +The \*(lqAPOP\*(rq and \*(lqMPOP\*(rq non-standard POP +facilities are documented in +\fIThe Internet Message\fR (ISBN 0\-13\-092941\-7), +a book by Marshall T. Rose. +For more details, see \fBsupport/pop/pop-more.txt\fR. +The \*(lqAPOP\*(rq option peacefully co-exists with the standard POP. +The \*(lqMPOP\*(rq option requires \*(lqbboards: pop\*(rq. + +.Uh "Shared libraries" +.ti -.5i +sharedlib: off +.br +If \*(lqsun4\*(rq, +makes libmh.a into a SunOS 4.0 (and later) shared library. +If you enable this, be sure to also use \*(lqoptions SUN40\*(rq. +If \*(lqsys5\*(rq, +makes libmh.a into a SYS5 R4 (and later) shared library. +If you enable this, be sure to also use \*(lqoptions SVR4\*(rq. + +.ti -.5i +slflags: \-pic +.br +The compiler flags to produce position independent code. + +.ti -.5i +slibdir: /usr/local/lib +.br +The directory where the \fIMH\fP shared library should go. + +.ne 4 +.ti -.25i +Under SunOS (sun4) +.br +Since some \fIMH\fP programs are setuid, they'll only look for +the library in \*(lqtrusted\*(rq locations. Putting the library +somewhere besides \fB/usr/lib\fP or \fB/usr/local/lib\fP is not advisable. + +If you \fBmust\fP do this, be sure that you add the +path given by \fBslibdir\fP to the compiler's library search list +(e.g., \*(lqldoptions:\0\-L/usr/mh/lib\*(rq) +and make sure the path starts with a leading `/'. + +You may need to run \fIldconfig\fP\|(8) manually whenever a new +shared object is installed on the system. +See \fIld\fR\|(1) for more information about using shared libraries. + +.ti -.25i +Under Solaris 2.0 (and newer) +.br +The above instructions for SunOS apply, except you should set +the run-time library search path using `\-R' instead of `\-L' +(e.g., \*(lqldoptions: \-R/usr/mh/lib\*(rq). + +.Uh "General System Dependencies" +.in -.5i +You should include the following directives +which are appropriate for your version of UNIX. +If you don't know what an +option does, it probably doesn't apply to you. +.in +.5i + +.ti -.5i +mailgroup: off +.br +If set, \fIinc\fR is made set-group-id to this group name. +Some SYS5 systems want this to be set to \*(lqmail\*(rq. +Set this if your \fB/usr/spool/mail\fP is not world-writeable. + +Note that \fBslocal\fP doesn't know how to deal with this, +and will not work under these systems; just making it set-group-id +will open a security hole. +If you're using \*(lqmailgroup\*(rq, +you should remove \fBslocal\fP (and its man page) from your system. + +.ti -.5i +signal: int +.br +The base type (int or void) of the function +parameter/return value of \fIsignal\fR\|(2). +The default is \fBint\fR. +Set \*(lqsignal void\*(rq on systems which use this type +(e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later). + +.ti -.5i +sprintf: char * +.br +The return value of the \fIsprintf\fR library routine. +This defaults to \*(lqchar\0*\*(rq. Set this to \*(lqint\*(rq if +you have an older version of SYSTEM 5 which has this routine return an +\*(lqint\*(rq type. + +.ne 5 +.ti -.5i +options: +.br +\&`\-D' options to \fIcc\fR\|(1). +.sp +.in +.25i +.ti -.5i +ALTOS +.br +Use on XENIX/v7 systems. +Also, be sure to use \*(lqoptions V7\*(rq. + +.ti -.5i +ATTVIBUG +.br +This option causes +\fIMH\fP to return to the \*(lqWhat now?\*(rq +prompt if your initial editor is \fBvi\fP +and it exits with non-zero status. +Use on Sun OS 4.1 and other systems where the +\fB/usr/ucb/vi\fP editor was changed to +exit with its status equal to the number of pseudo-\*(lqerrors\*(rq +encountered during the edit. This causes a problem for programs that +test the exit status of their editor and abort if the status is non-zero. +(This includes \fIMH\fP and programs like \fB/usr/etc/vipw\fP). + +.ti -.5i +AUX +.br +Use with AUX systems. + +.ti -.5i +BIND +.br +If you are running with the BIND code on UNIX systems +with TCP/IP sockets (e.g. 4.{2,3}BSD), +be sure to define this. + +.ti -.5i +BSD41A +.br +Use on 4.1a Berkeley UNIX systems. + +.ti -.5i +BSD42 +.br +Use on Berkeley UNIX systems on or after 4.2BSD. + +.ti -.5i +BSD43 +.br +Use on 4.3 Berkeley UNIX systems. +Also, be sure to use \*(lqoptions BSD42\*(rq. +If \fIopenlog\fR\|(3) (see \*(lqman 3 syslog\*(rq) +takes three arguments instead of two, +and your \fIwrite\fR\|(1) command is set\-group\-id +to group \*(lqtty\*(rq, use this option. +If only one of these conditions is true, you lose. + +.ti -.5i +BSD44 +.br +Use on Berkeley UNIX systems on or after 4.4BSD. +Also, be sure to use \*(lqoptions BSD43\*(rq +and \*(lqoptions BSD42\*(rq. + +.ti -.5i +DBMPWD +.br +Use this option if your \fIgetpwent\fR\|(3) routines read a +dbm database (such as with Yellow Pages) instead of doing +a sequential read of \fB/etc/passwd\fR. +Without DBMPWD the entire passwd file is read into +memory one entry at a time for alias expansion. +This is a performance improvement when reading +a standard \fB/etc/passwd\fR file, +but is \fIvery\fR slow on systems with a dbm database. +At one site that runs +YP on a large passwd file, it showed a 6:1 performance improvement. + +.ti -.5in +GCOS_HACK +.br +The so-called \*(lqgcos\*(rq field of the password file is +used as a last resort +to find the user's full name (see \fImh-profile\fP\|(5) for details). +Enable this option +if your \fIpasswd\fP\|(5) man page notes that the `&' +character in the \*(lqgcos\*(rq field stands for the login name. + +.ti -.5i +FCNTL +.br +Directs \fIMH\fP to use the \fBfcntl()\fP system call for kernel-level +locking. If you're using a SYS5 system, you may want +this option. (See also `FLOCK' and `LOCKF'). + +.ti -.5i +FLOCK +.br +Directs \fIMH\fP to use the \fBflock()\fP system call for kernel-level +locking. If you're on a BSD42 system, +and you're not using NFS to read or write maildrops, +you should enable this option. (See also `FCNTL' and `LOCKF'). + +.ti -.5i +HESIOD +.br +Support for HESIOD. +This code was contributed, and included no documentation. + +.ti -.5i +LOCKF +.br +Directs \fIMH\fP to use the \fBlockf()\fP system call for kernel-level +locking. If you're using NFS to read or +write maildrops, you should enable this option. (See also `FLOCK' +and `FCNTL'). + +.ti -.5i +locname +.br +Hard-wires the local name for the host \fIMH\fR is running on. +For example, locname='\*(lqPICKLE\*(rq'. +It's probably better to either let UNIX tell \fIMH\fR this information, +or to put the information in the host specific \fBmtstailor\fR file. + +.ti -.5i +MORE +.br +Defines the location of the \fImore\fR\|(1) program. +On ALTOS and DUAL systems, set +MORE='\*(lq/usr/bin/more\*(rq'. +The default is \*(lq/usr/ucb/more\*(rq. + +.ti -.5i +NDIR +.br +For non-Berkeley UNIX systems, +this \fIMH\fR will try to find the new directory access mechanism by looking +in \fB\fR if this option is given. +Otherwise, \fIMH\fR will try \fB\fR. +If you still can't get this to work on your system, +edit \fBh/local.h\fR as appropriate. +(See also `SYS5DIR'.) + +.ti -.5i +NFS +.br +Tells \fIMH\fR to hack around a problem in the NFS C library. +If you get an undefined symbol \*(lqruserpass\*(rq when compiling +\fIMH\fP, you probably need this option. If, however, you include this +option and get an undefined symbol \*(lq\(ru\^\(ruruserpass\*(rq +when compiling, then you should omit this option. +(See also `NORUSERPASS'.) + +.ti -.5i +NOIOCTLH +.br +Tells \fIMH\fR not to include the file \fB\fR. +To be used on systems where this file is not present. + +.ti -.5i +NORUSERPASS +.br +Tells \fIMH\fR that your system doesn't have the +\fIruserpass\fP\|(3) routine; +\fIMH\fR will include its own copy of this +routine in its library. +(See also `NFS'.) + +.ti -.5i +NTOHLSWAP +.br +Tells \fIMH\fR to use the \fBntohl()\fR macro when processing +\fImsh\fR binary map files. \fIMH\fR can use this macro on +systems with the include file \fBnetinet/in.h\fR, +to byte-swap the binary information in these map files. +If you're using the same map files on machines of different +architectures, enable this option. + +.ti -.5i +RENAME +.br +Include this option if your system has a \fBrename()\fP library +call. This is true on BSD42 and newer and some SYS5 systems. + +.ti -.5i +SENDMAILBUG +.br +Causes SMTP reply code 451 (failure) +to be considered the same as code 250 (OK). +Since this might cause problems, only +enable this if you are certain that your SendMail will +return this code even when it doesn't mean to indicate a failure. + +.\" .ti -.5i +.\" SMTP_ONEX +.\" .br +.\" Causes \fIMH\fP to give the \*(lqONEX\*(rq SMTP command +.\" when posting mail (a SendMail performance hack). +.\" Useful only if you're running a SendMail +.\" which will successfully reset with the \*(lqRSET\*(rq command +.\" after seeing the \*(lqONEX\*(rq command; +.\" otherwise, if you enable this +.\" you may have problems posting messages with \*(lqBCCs\*(rq. +.\" +.ti -.5i +SOCKETS +.br +Indicates the availability of a socket interface +for TCP/IP networking that is compatible with 4.{2,3}BSD UNIX. +It is not necessary to define this when BSD42 is already defined, +but it might be useful for SYSTEM 5 or HPUX systems with TCP/IP sockets. + +.ti -.5i +SUN40 +.br +Use on Sun OS 4.0 (and later?) systems. You also will need +\*(lqoptions BSD42\*(rq, \*(lqoptions BSD43\*(rq, and +\*(lqsignal void\*(rq. + +If you're using Sun's brain-damaged approach to offering Domain +Name Service through NIS, be sure to include +\*(lqoptions BIND\*(rq and +\*(lqldoptions \-lresolv\*(rq to work around some NIS/DNS bugs. + +.ti -.5i +SYS5 +.br +Use on AT&T SYSTEM 5 R3 (and newer?) UNIX systems. See also \fImailgroup\fR. + +.ti -.5i +SYS5DIR +.br +Define this if your system uses \*(lqstruct dirent\*(rq +instead of \*(lqstruct direct\*(rq. +This is true of System V Release 3.0 and later. +Uses include file \fB\fR +and the routines \fImkdir\fR, \fIrmdir\fR and \fIgetcwd\fR. + +.ti -.5i +SVR4 +.br +Use on AT&T SYSTEM 5 R4 (and newer?) UNIX systems. You should +also include \*(lqoptions SYS5\*(rq and \*(lqoptions SYS5DIR\*(rq. +See also \fImailgroup\fR. +You will also need to include \*(lqoldload none\*(rq if your \fBld\fP +doesn't handle `\-x\0\-r' correctly. + +.ti -.5i +TERMINFO +.br +Define TERMINFO if you have it. +You get it automatically if you're running SYS5, and you don't get +it if you're not. (If you're not SYS5, you probably have termcap.) + +.ti -.5i +TZNAME +.br +Use time zone names from the \fItzname\fR variable, set via \fItzset\fR. +Only applicable on SYSTEM 5 systems and only effective when you have +asked for alpha\-timezones (see the ATZ option). See also ZONEINFO. + +.ti -.5i +UNISTD +.br +Include this option if your system has the file \fB\fP. +If not specified, the LOCKF option will include \fB\fP. + +.ti -.5i +V7 +.br +Use on V7 UNIX systems. +Also, be sure to use \*(lqoptions void=int\*(rq. + +.ti -.5i +VSPRINTF +.br +Include this option if your system has the \fIvsprintf\fP\|(3) +library routine; otherwise, \fI\(rudoprnt\fP\|(3) will be used. + +.ti -.5i +WAITINT +.br +BSD42 based systems call the \fIwait\fP\|(2) +system routine with a pointer to type \fIunion wait\fP. +Include this option if you included \*(lqoptions BSD42\*(rq, but +your system calls the \fIwait\fP\|(2) +system routine with a pointer to type \fIint\fP +(the non-BSD42 default). + +.ti -.5i +ZONEINFO +.br +Specify this if you have a BSD43 based system that keeps time zone +information /etc/zoneinfo or /usr/lib/zoneinfo (SunOS), +and where +the \fIstruct tm\fP +returned by \fIlocaltime\fP\|(3) contains a \fItm_gmtoff\fP element +(see \fB/usr/include/time.h\fP). +With this fix the GMT offset specified in outgoing mail +will be corrected when the TZ enviornment variable is set +to a different time zone. See also TZNAME. +.in -.25i + +.Uh "Site Preferences" +.br +.in -.5i +These options change the +default behavior of \fIMH\fP or enable optional features. +Add the options which are appropriate for your configuration +or your site preferences. +.in +.5i + +.ti -.5i +editor: prompter +.br +The default editor for \fIMH\fR. + +.ne 5 +.ti -.5i +options: +.br +\&`\-D' options to \fIcc\fR\|(1). +.sp +.in +.25i +.ne 4 +.ti -.5i +ATZ +.br +Directs \fIMH\fR to use alpha\-timezones whenever possible. +You should not use this option if you are on the Internet, +since it will make your host non-compliant with RFC-1123 +(Requirements for Internet Hosts). + +.ti -.5i +ATHENA +.br +Makes \fIrepl\fR `\-nocc\0all' the default instead of `\-cc\0all'. +You may want to enable this if you're using \fIxmh\fR. + +.ti -.5i +BANG +.br +Directs \fIMH\fR to favor `!' over `@@' in addressing. + +.ti -.5i +BERK +.br +Optional for for 4.{2,3}BSD sites running SendMail. +Disables nearly all of the RFC822 address and header-parsing routines +in favor of recognizing such formats as ASCnet, and so on. +If you don't need to disable the parser for this reason, +you probably want to use \*(lqoptions DUMB\*(rq instead. + +.ti -.5i +COMPAT +.br +If you previously ran a version of \fIMH\fR earlier than mh.4 use this option. +After a short grace period, +remove it and re-{configure,generate,install} everything. + +.ti -.5i +DUMB +.br +Directs \fIMH\fR not to try and rewrite addresses to their +\*(lqofficial\*(rq form. + +.ti -.5i +FOLDPROT +.br +Defines the octal value for default folder-protection. +For example, FOLDPROT='\^\*(lq0700\*(rq\^'. +The default is \*(lq0711\*(rq. + +.ti -.5i +ISI +.br +When using \*(lqrepl\0\-ccme\*(rq, +only \*(lqcc:\*(rq the first address found which belongs to the user; +any other \fIAlternate-Mailboxes\fR do not receive \*(lqcc:\*(rqs. + +.ti -.5i +LINK +.br +Defines the filename for alternate file name for \fIdist\fR and \fIrepl\fR. +For example, LINK='\^\*(lq\^\\\^\\\^043\*(rq\^' +to use the pound\-sign character. +The default is \*(lq@@\*(rq. + +.ti -.5i +MHE +.br +Enables crude support for Brien Reid's MHE interface. +Recommended for use with the GNU Emacs mh-e package. + +.ti -.5i +MHRC +.br +Enables \fIMH\fR to recognize the \fICShell\fR's `~'\-construct. +This is useful for sites that run with a ~/.mhrc for their users. + +.ti -.5i +MIME +.br +Enables support for multi-media messages, +as specified in RFC 1341 \-\- a major win. +This allows you to include things like audio, +graphics, and the like, in your mail messages. +Several \fIMH\fP commands are extended to support these multi-media +messages, +and the \fImhn\fR command is provided to encode and decode +\fBMIME\fP messages. +For more details, see \fBmiscellany/multi-media/READ-ME\fP +and \fImhn\fR\|(1). + +.ti -.5i +MSGID +.br +Enables \fBslocal\fP to detect and surpress duplicate messages received. +This code uses the \fB\fP library, +and requires \*(lqoptions BSD42\*(rq since +it uses the \fIflock\fP\|(2) system call for locking. +(Note that this means its database locking does not work over NFS.) +It has only been tested under SUN40. + +.ti -.5i +MSGPROT +.br +Defines the octal value for default folder-protection. +For example, MSGPROT='\^\*(lq0600\*(rq\^'. +The default is \*(lq0644\*(rq. + +.ti -.5i +NOMHSEQ +.br +Directs \fIMH\fR to make private sequences the default. + +.ti -.5i +OVERHEAD +.br +Enable \fIMH\fR commands to read profile/context from open fd:s +without doing an open(); see \fImh-profile\fP\|(5) for the details. + +.ti -.5i +RPATHS +.br +Directs \fIinc\fR to note UNIX \*(lqFrom\ \*(rq lines as Return-Path: info. + +.ti -.5i +SBACKUP +.br +Defines the prefix string for backup file names. +For example, SBACKUP='\^\*(lq\^\\\^\\\^043\*(rq\^'. +The default is \*(lq,\*(rq. + +.ti -.5i +TMA +.br +Support for the TTI \fItrusted mail agent\fR (TMA). +Although the TTI TMA is \fBnot\fR in the public domain, +the \fIMH\fR support for the TTI TMA \fBis\fR in the public domain. +You should enable this option only if you are licensed to run the TMA +software +(otherwise, you don't have the software in your \fIMH\fR source tree). + +.ti -.5i +TTYD +.br +Support for TTYD. This is no longer in wide use, and is not recommended. + +.ti -.5i +UCI +.br +First, \*(lq_\*(rq and \*(lq#\*(rq are recognized as the prefixes for +scratch files. +Second, support for the UCI group\-leadership mechanism is enabled in +\fIconflict\fR. +Third, the first line of the file +file \fB$HOME/.signature\fR is used as the \fIFull Name\fR part +of your \*(lqFrom:\*(rq header. +This may conflict with the interpretation of this file by \fINews\fR. +If you're not at UCI, you probably don't want this option. + +.ti -.5i +UK +.br +Directs the \fIscan\fR program to generate UK-style dates by default. + +.ti -.5i +WHATNOW +.br +Enable certain \fIMH\fR commands to act differently when $mhdraft set. + +.ti -.5i +YEARMOD +.br +This option makes the \fImh-format\fP \fB%(year)\fP function +always return a value less than 100. +Enable this option if you have local \fImh-format\fP\|(5) files +which cannot handle 4-digit years. +You should convert these files to use a 4-character field width, +or use the \fB%(modulo 100)\fP function to obtain a 2-digit year value. +After a short grace period, +remove `YEARMOD' and re-{configure,generate,install} everything. +.in -.25i + +.Uh "Testing/debugging" +.ti -.5i +debug: off +.br +Support for debug mode of \fIMH\fR. +Don't use this unless you know what you're doing, +which isn't likely if you're reading this document! + +.ti -.5i +regtest: off +.br +Set this to \*(lqon\*(rq +if you are doing regression testing among different +compilations of \fIMH\fP, and you do not want the hostname +and compile date included in \fIMH\fP binaries. + +.sp +.in -.5i +.PP +Now edit \fBconf/config/mtstailor\fR, +depending on your choice of the setting +for mts in the \fIMH\fR configuration file. +for an mts setting of \*(lqmh\*(rq, +look at the file \fBconf/tailor/mhmts\fR; +for an mts setting of \*(lqsendmail\*(rq, \*(lqsendmail/smtp\*(rq, +\*(lqmmdf/smtp\*(rq, or \*(lqmmdf2/smtp\*(rq, +look at the file \fBconf/tailor/sendmts\fR; +and, +for an mts setting of \*(lqmmdf\*(rq, or \*(lqmmdf2\*(rq, +look at the file \fBconf/tailor/mmdf\fR. +.PP +Now install the configured files into the source areas. (On SYS5 +systems, or other systems where you get complaints about +\*(lq_index\*(rq and \*(lq_rindex\*(rq being undefined, +you should use \*(lqmake sys5\*(rq to compile mhconfig.) +.sp 1 +.nf +% make +% ./mhconfig MH +.fi +.PP +\fBBefore proceeding\fP, +you should familiarize yourself with the \fIAdministrator's Guide\fR. +To generate an \fInroff\fR version, go to the doc/ directory +and type: +.sp 1 +.nf +% (cd ../doc/; make ADMIN.doc) +.fi +.sp +.PP +If you're already running \fIMH\fR at your site, +you should also read the \fImh\fR changes document \fBCHANGES\fP. +The source is in \fBpapers/changes/\fR. +.PP +After reading the \fIAdministrator's Guide\fR, you may decide +to change your MH configuration. If so, cd back to the \fBconf/\fP +directory, re-edit the files \fBMH\fP +and \fBconf/config/mtstailor\fR, and re-run \fImhconfig\fP. +.PP +You now proceed based on your choice of a transport system +(the setting for mts above). +The best interface is achieved with \*(lqsendmail\*(rq +followed by \*(lqmmdf\*(rq or (\*(lqmmdf2\*(rq), +and then \*(lqmh\*(rq (stand\-alone delivery, not recommended). +.SS SENDMAIL +If you have not enabled BBoards or POP +then no further MTS\-specific action is required on your part! + +If you have enabled POP, but you +want to let \fISendMail\fP deliver mail POP mail using its +standard delivery program \fB/bin/mail\fP, +then, again, no further MTS\-specific action is required on your part! + +Otherwise, +go to the mts/sendmail/ directory. +.sp 1 +.nf +% cd ../mts/sendmail/ +.fi +.sp 1 +This directory contains files whose definitions correspond to the +configuration of your \fISendMail\fR system. +If you have enabled BBoards or POP service, +then you will need to re\-configure \fISendMail\fR. +First, in the \*(lqlocal info\*(rq section of your site's +\fISendMail\fR configuration file, +choose a free macro/class (B is used in this distribution), +and add these lines: +.sp 1 +.in +.5i +.nf +# BBoards support +DBbboards +CBbboards +.fi +.in -.5i +.sp 1 +Second, immediately after the inclusion of the zerobase file, +in the \*(lqmachine dependent part of ruleset zero\*(rq section, +add these lines: +.sp 1 +.in +.5i +.nf +# resolve names for the BBoards system +R$+<@@$=B> $#bboards$@@$2$:$1 topic@@bboards +.fi +.in -.5i +.sp 1 +Be sure to use tabs when separating these fields. +Third, add the line +.sp 1 +.in +.5i +.nf +include(bboardsMH.m4) +.fi +.in -.5i +.sp 1 +after the line +.sp 1 +.in +.5i +.nf +include(localm.m4) +.fi +.in -.5i +.sp 1 +in your site's \fISendMail\fR configuration file. +Finally, you should link the file \fBmts/sendmail/bboardsMH.m4\fR into your +\fISendMail\fR cf/ directory and re\-configure \fISendMail\fR. +.PP +If you have enabled POP service, +a similar procedure must be used on the POP service host, +to re\-configure \fISendMail\fR. +First, in the \*(lqlocal info\*(rq section of your site's +\fISendMail\fR configuration file, +choose a free macro/class (P is used in this distribution), +and add these lines: +.sp 1 +.in +.5i +.nf +# POP support +DPpop +CPpop +.fi +.in -.5i +.sp 1 +Second, immediately after the inclusion of the zerobase file, +in the \*(lqmachine dependent part of ruleset zero\*(rq section, +add these lines: +.sp 1 +.in +.5i +.nf +# resolve names for the POP system +R$+<@@$=P> $#pop$@@$2$:$1 subscriber@@pop +.fi +.in -.5i +.sp 1 +Be sure to use tabs when separating these fields. +Third, add the line +.sp 1 +.in +.5i +.nf +include(popMH.m4) +.fi +.in -.5i +.sp 1 +after the line +.sp 1 +.in +.5i +.nf +include(localm.m4) +.fi +.in -.5i +.sp 1 +in your site's \fISendMail\fR configuration file. +Finally, you should link the file \fBmts/sendmail/popMH.m4\fR into your +\fISendMail\fR cf/ directory and re\-configure \fISendMail\fR. +.SS MMDF +If you want \fIMMDF\fR to be your transport service, +and have \fBNOT\fR specified \*(lqmmdf/smtp\*(rq (or \*(lqmmdf2/smtp\*(rq) +as your mts setting, +then go to the mmdf/ directory. +(If you're using \*(lqmmdf/smtp\*(rq or \*(lqmmdf2/smtp\*(rq +as your mts setting, then skip to the next section.) +.sp 1 +.nf +% cd ../mts/mmdf/ +.fi +.sp 1 +This directory contains files whose definitions correspond to the +configuration of your \fIMMDF\fR system. +.PP +If you're running \fIMMDF\-I\fR, +then copy the following files from wherever you keep the \fIMMDF\fR sources +to this directory: mmdf/h/ch.h, mmdf/h/conf.h, utildir/conf_util.h, +utildir/ll_log.h, mmdf/h/mmdf.h, utildir/util.h, mmdf/mmdf_lib.a, +and utildir/util_lib.a. +.PP +If you're running \fIMMDF\-II\fR, +then copy the following files from where you keep the \fIMMDF\fR sources +to this directory: h/ch.h, h/conf.h, h/dm.h, h/ll_log.h, h/mmdf.h, h/util.h, +and lib/libmmdf.a +.PP +If you have enabled bboards, +then the directories \fBsupport/bboards/mmdfI\fR +and \fBsupport/bboards/mmdfII\fR +contain information you'll need to +put a UCI BBoards channel in your \fIMMDF\fR configuration. +Similarly, if you have enabled option \*(lqmf\*(rq and are +running \fIMMDF\-I\fR, +then the \fBzotnet/mf/mmdfI/\fR directory contains information you'll need to +put a \fIUUCP\fR channel in your \fIMMDF\-I\fR configuration. +Finally, the directory \fBsupport/pop/mmdfII\fR contains information you'll +need to put a POP channel in your \fIMMDF\-II\fR configuration. +.PP +Note that \fIMMDF\-II\fR is distributed with the BBoards channel, +although the version in the \fIMH\fR distribution might be more current, +the version in the \fIMMDF\-II\fR distribution has been tested with that +revision of \fIMMDF\fR. +.SS MMDF/SMTP +If you are using \*(lqmmdf/smtp\*(rq as your mts setting, +then no further MTS\-specific action is required on your part! +.SS MMDF2/SMTP +If you are using \*(lqmmdf2/smtp\*(rq as your mts setting, +then no further MTS\-specific action is required on your part! +.SS "STAND\-ALONE DELIVERY" +If, instead, you want \fIMH\fR to handle its own mail delivery, +then no further MTS\-specific action is required on your part! +.SH GENERATION +Go to the \fIMH\fP top-level directory and generate the system. +.sp 1 +.nf +% cd ../; make +.fi +.PP +This will cause a complete generation of the \fIMH\fR system. +If all goes well, proceed with installation. +If not, complain, as there \*(lqshould be no problems\*(rq at this step. +.SH INSTALLATION +If the directories you chose for the user\-programs, +support\-programs and manuals +(\*(lqbin\*(rq, \*(lqetc\*(rq, \*(lqpopdir\*(rq, \*(lqslibdir\*(rq, +and \*(lqmandir\*(rq in the \fBconf/MH\fR file) +don't exist, +you should create them at this point. +.PP +Next, if you enabled support for the UCI BBoards facility, +then create a login +called \*(lqbboards\*(rq with the following characteristics: +home directory is \fB/usr/spool/bboards/\fR with mode 755 +(actually, use the value for \*(lqbbhome\*(rq given in the \fIMH\fR +configuration file), +login shell is \fB/bin/csh\fR (or \fB/bin/sh\fR), +and, encrypted password field is \*(lq*\*(rq. +The \*(lqbboards\*(rq login should own the \fB/usr/spool/bboards/\fR +directory. +In addition to creating \fB/usr/spool/bboards/\fR, +also create \fB/usr/spool/bboards/etc/\fR +and \fB/usr/spool/bboards/archive/\fR. +These directories should also be owned by the \*(lqbboards\*(rq login. +.PP +If you enabled support for POP, +then on the POP service host, +create a login called \*(lqpop\*(rq with the following characteristics: +home directory is \fB/usr/spool/pop/\fR with mode 755, +login shell is \fB/bin/csh\fR, +and, encrypted password field is \*(lq*\*(rq. +If you don't have \fB/bin/csh\fR on your system (V7), +then \fB/bin/sh\fR is just fine. +The \*(lqpop\*(rq login should own the \fB/usr/spool/pop/\fR directory. +You'll also need to add a line to the \fB/etc/services\fR file and the +\fB/etc/rc.local\fR file, +see the \fIAdministrator's Guide\fR for more details. +.PP +If this is not the first time you have installed \fIMH\fR, +these files will need particular attention: + +.nf +.in +.5i +.ta \w'VeryVeryBigDirectoryName 'u +\fIDirectory\fR \fIFiles\fR +\*(lqetc/\*(rq MailAliases, BBoardAliases, mtstailor +/usr/spool/bboards/ BBoards, \&.cshrc, \&.mh\(ruprofile +/usr/spool/bboards/etc/ * +.re +.in -.5i +.fi +.PP +The \fBMailAliases\fR, \fBBBoardAliases\fR, \fBmtstailor\fR and \fBBBoards\fR +files will \fBNOT\fP be installed over existing copies; +you will need to edit these by +hand and merge in any changes from your previous \fIMH\fR release. +The other files under \fB/usr/spool/bboards/\fR will be overwritten +if they exist. +You may wish to preserve your old versions of these before installing +\fIMH\fR. +.PP +As the super-user, and from the mh.6/ directory, install the system. +.sp 1 +.nf +# make inst\-all +.fi +.sp 1 +This will cause the \fIMH\fR +processes and files to be transferred to the appropriate areas +with the appropriate attributes. +.SH TAILORING +See the \fIAdministrator's Guide\fR for information on tailoring \fIMH\fR for +the MTS, BBoards, and POP. +.SH DOCUMENTATION +In addition to this document, +the \fIAdministrator's Guide\fP, +and the \fIUser's Manual\fP, +there are several documents referenced by the user's manual which may be +useful. +The sources for all of these can be found under the \fBpapers/\fR directory. +.SH "OTHER THINGS" +Consult the directory \fBmiscellany/\fR for the sources to a number of things +which aren't part of the mainstream \fIMH\fR distribution, +but which are still quite useful. +.SH FILES +Too numerous to mention. Really. +.SH "SEE ALSO" +make(1) +.SH BUGS +The \fImhconfig\fR program should be smarter. +.PP +There's no way to print the \fIAdministrator's Guide\fP +until after you have configured the system; it is difficult +to configure the system without the \fIAdministrator's Guide\fP. +.PP +The Makefiles should know when \fImhconfig\fR has been run and force +\*(lqmake clean\*(rq behavior. +@ + + +2.118 +log +@update for 6.8.4 +drop UUCP address, add HTTP address +drop louie.udel.edu distribution site +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.117 1995/12/05 19:36:14 jromine Exp jromine $ +d53 1 +a53 1 +the \fBMH Home Pagef\fP on the World Wide Web at +@ + + +2.117 +log +@update distribution address +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.116 1994/11/17 16:10:10 jromine Exp jromine $ +d4 1 +a4 1 +.TH MH-GEN 8 MH.6.8.3 [mh.6] +d51 4 +a54 3 +The current computer mailbox for \fIMH\fR is \fBBug\-MH@@ICS.UCI.EDU\fR +(in the ARPA Internet), +and \fB...!ucbvax!ucivax!bug\-mh\fR (UUCP). +d69 1 +a69 1 +ftp.ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.8.tar.Z. +d75 1 +a75 2 +This tar file is also available on louie.udel.edu +[128.175.1.3] in portal/mh-6.8.tar.Z. You may also find MH on +d78 1 +a78 1 +either ftp.ics.uci.edu or louie.udel.edu. +@ + + +2.116 +log +@change UCI phone prefix +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.115 1993/12/01 00:44:23 jromine Exp jromine $ +d94 2 +d97 1 +a97 3 +Office of Academic Computing +360 Computer Science +Irvine, CA 92717 USA +@ + + +2.115 +log +@update for 6.8.3 +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.114 1993/09/01 21:25:42 jromine Exp jromine $ +d99 1 +a99 1 ++1 714 856 5153 +@ + + +2.114 +log +@warn about re-editing mtstailor +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.113 1993/08/27 22:22:08 jromine Exp jromine $ +d4 1 +a4 1 +.TH MH-GEN 8 MH.6.8.2 [mh.6] +@ + + +2.113 +log +@recommend creating mandir, popdir and slibdir +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.112 1993/08/25 18:07:10 jromine Exp jromine $ +d1162 2 +a1163 2 +directory, re-edit the file \fBMH\fP, and re-run +\fImhconfig\fP. +@ + + +2.112 +log +@update to MH 6.8.2 +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.111 1993/08/20 19:47:56 jromine Exp jromine $ +d1344 4 +a1347 3 +If the directories you chose for the user\-programs and +support\-programs +(\*(lqbin\*(rq and \*(lqetc\*(rq in the \fBconf/MH\fR file) +@ + + +2.111 +log +@update version +remove ONEX +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.110 1993/08/19 23:57:46 jromine Exp jromine $ +d4 1 +a4 1 +.TH MH-GEN 8 MH.6.8.1 [mh.6] +@ + + +2.110 +log +@note bsd44 manuals convention +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.109 1993/08/19 23:34:15 jromine Exp jromine $ +d4 1 +a4 1 +.TH MH-GEN 8 MH.6.8 [mh.6] +d793 11 +a803 11 +.ti -.5i +SMTP_ONEX +.br +Causes \fIMH\fP to give the \*(lqONEX\*(rq SMTP command +when posting mail (a SendMail performance hack). +Useful only if you're running a SendMail +which will successfully reset with the \*(lqRSET\*(rq command +after seeing the \*(lqONEX\*(rq command; +otherwise, if you enable this +you may have problems posting messages with \*(lqBCCs\*(rq. + +@ + + +2.109 +log +@document SMTP_ONEX +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.108 1993/08/19 23:30:08 jromine Exp jromine $ +d195 1 +d209 2 +@ + + +2.108 +log +@document SM_ONEX, GCOS_HACK +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.107 1993/06/03 17:54:12 jromine Exp jromine $ +d791 1 +a791 1 +SM_ONEX +d794 6 +a799 3 +when posting mail. Useful only if you're running a SendMail +which can still reset with the \*(lqRSET\*(rq SMTP command +after seeing the \*(lqONEX\*(rq command. +@ + + +2.107 +log +@document new "manuals: standard/cat" syntax +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.106 1993/02/26 19:00:51 jromine Exp jromine $ +d674 10 +d789 8 +@ + + +2.106 +log +@add NORUSERPASS for 386BSD +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.105 1992/12/14 17:19:19 jromine Exp jromine $ +d197 6 +d206 2 +@ + + +2.105 +log +@WAITINT option +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.104 1992/12/02 19:07:37 jromine Exp jromine $ +d649 2 +a650 1 +This code is still under development. +d727 1 +a727 1 +\fIMH\fP, you need this option. If, however, you include this +d730 1 +d737 9 +@ + + +2.104 +log +@update for release 6.8 +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.103 1992/11/21 20:46:59 jromine Exp jromine $ +d836 9 +@ + + +2.103 +log +@clarify restrictions on MSGID option +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.102 1992/11/19 18:09:59 jromine Exp jromine $ +d4 1 +a4 1 +.TH MH-GEN 8 MH.6.7.5beta [mh.6] +d68 1 +a68 1 +ftp.ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.7.tar.Z. +d70 1 +a70 1 +(approximately 1.5MB). There should also be a \fBREADME\fR file in +d75 1 +a75 1 +[128.175.1.3] in portal/mh-6.7.tar.Z. You may also find MH on +d118 1 +a118 1 +The distribution tape contains the hierarchy for the mh.6-7/ directory. +d124 1 +a124 1 +% cd mh-6.7 +d1105 2 +a1106 2 +you should also read the \fImh.6\fR changes documents. +The sources are in \fBpapers/mh6.5/\fR and \fBpapers/mh6.7/\fP. +@ + + +2.102 +log +@cleanup format +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.101 1992/11/19 17:45:16 jromine Exp jromine $ +d966 5 +a970 3 +This code requires the \fB\fP library, and has only been tested +under SUN40. It uses the \fIflock\fP\|(2) system call for locking, +so its database locking does not work over NFS. +@ + + +2.101 +log +@add note about Solaris sharedlibs; format fixup +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.100 1992/11/16 22:35:55 jromine Exp jromine $ +d259 1 +a259 1 +Options given directly to \fIld\fR\|(1) (via \fIcc\fR\0) at the beginning +d268 1 +a268 1 +Options given directly to \fIld\fR\|(1) (via \fIcc\fR\0) at the end of the +d345 1 +a345 1 +If \*(lqpop\*(rq (formerly \*(lqpopbboards:\ on\*(rq), +d347 1 +a347 1 +this setting requires \*(lqpop:\ on\*(rq. +d533 1 +a533 1 +(e.g., \*(lqldoptions:\ \-L/usr/mh/lib\*(rq) +d581 1 +a581 1 +This defaults to \*(lqchar\ *\*(rq. Set this to \*(lqint\*(rq if +d727 1 +a727 1 +option and get an undefined symbol \*(lq\(ru\(ruruserpass\*(rq +d833 2 +a834 2 +Include this option if your system has the \fIvsprintf()\fP +library routine; otherwise, \fI\(rudoprnt()\fP will be used. +d844 1 +a844 1 +returned by \fIlocaltime()\fP contains a \fItm_gmtoff\fP element +d884 1 +a884 1 +Makes \fIrepl\fR `\-nocc\ all' the default instead of `\-cc\ all'. +d918 1 +a918 1 +For example, FOLDPROT='\*(lq0700\*(rq'. +d924 1 +a924 1 +When using \*(lqrepl\ \-ccme\*(rq, +d932 2 +a933 1 +For example, LINK='\*(lq\\\\043\*(rq' to use the pound\-sign character. +d952 1 +a952 1 +as specified in RFC 1341 -- a major win. +d967 1 +a967 1 +under SUN40. It uses the \fIflock\fP\|() system call for locking, +d974 1 +a974 1 +For example, MSGPROT='\*(lq0600\*(rq'. +d986 1 +a986 1 +without doing an open(); see mh-profile(5) for the details. +d997 1 +a997 1 +For example, SBACKUP='\*(lq\\\\043\*(rq'. +d1022 2 +a1023 2 +Third, the file \fB$HOME/.signature\fR is considered to contain +a single line of text which is used as the \fIFull Name\fR part +d1031 1 +a1031 1 +Directs the \fIscan\fR program to generate UK-style dates. +d1043 1 +a1043 1 +Enable this option if you have local \fImh-format\fP files +d1048 1 +a1048 1 +remove it and re-{configure,generate,install} everything. +d1361 2 +a1362 2 +the administrator's guide, +and the user's manual, +@ + + +2.100 +log +@typo +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.99 1992/11/12 23:30:09 jromine Exp jromine $ +d204 1 +a204 1 +The location of the \fIchown\fR\0(8) on your system. +d240 1 +a240 1 +Options given directly to \fIcc\fR\0(1). +d250 2 +a251 2 +This should be the loader option required to load the \fItermcap\fR\0(3) +and \fIcurses\fR\0(3) libraries on your system. +d257 1 +a257 1 +ldoptions: -s +d259 1 +a259 1 +Options given directly to \fIld\fR\0(1) (via \fIcc\fR\0) at the beginning +d268 1 +a268 1 +Options given directly to \fIld\fR\0(1) (via \fIcc\fR\0) at the end of the +d279 1 +a279 1 +lex: lex -nt +d294 1 +a294 1 +Support for systems with \fIranlib\fR\0(1). +d325 1 +a325 1 +\fImh\-tailor\fR\0(8) if you use this option. +d394 1 +a394 1 +\&`\-D' options to \fIcc\fR\0(1). +d420 1 +a420 1 +entries in the \fIpasswd\fR\0(5) file, +d533 1 +a533 1 +(e.g., \*(lqldoptions: -L/usr/mh/lib\*(rq) +d536 1 +a536 1 +You may need to run \fIldconfig\fP\0(8) manually whenever a new +d538 1 +a538 1 +See \fIld\fR\0(1) for more information about using shared libraries. +d540 7 +d572 1 +a572 1 +parameter/return value of \fIsignal\fR\0(2). +d589 1 +a589 1 +\&`\-D' options to \fIcc\fR\0(1). +d639 1 +a639 1 +If \fIopenlog\fR\0(3) (see \*(lqman 3 syslog\*(rq) +d641 1 +a641 1 +and your \fIwrite\fR\0(1) command is set\-group\-id +d654 1 +a654 1 +Use this option if your \fIgetpwent\fR\0(3) routines read a +d705 1 +a705 1 +Defines the location of the \fImore\fR\0(1) program. +d779 1 +a779 1 +\*(lqldoptions -lresolv\*(rq to work around some NIS/DNS bugs. +d869 1 +a869 1 +\&`\-D' options to \fIcc\fR\0(1). +d959 1 +a959 1 +and \fImhn\fR\0(1). +@ + + +2.99 +log +@add TERMINFO +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.98 1992/11/12 22:48:35 jromine Exp jromine $ +d430 1 +a430 1 +This code is still expiremental, but is available for +@ + + +2.98 +log +@note advantages of MIME +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.97 1992/11/12 00:07:59 jromine Exp jromine $ +d796 7 +@ + + +2.97 +log +@change option indentation +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.96 1992/11/12 00:04:00 jromine Exp jromine $ +d938 2 +@ + + +2.96 +log +@not pitfalls of MSGID +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.95 1992/11/11 22:58:26 jromine Exp jromine $ +d396 1 +a396 1 +.in +.5i +d492 1 +a492 1 +.in -.5i +d584 1 +a584 1 +.in +.5i +d835 1 +a835 1 +.in -.5i +d857 1 +a857 1 +.in +.5i +d1032 1 +a1032 1 +.in -.5i +@ + + +2.95 +log +@add slflags +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.94 1992/11/10 22:40:25 jromine Exp jromine $ +d523 1 +d858 1 +d949 3 +@ + + +2.94 +log +@note MPOP requires bboards: pop +add "signal: int", drop TYPESIG +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.93 1992/11/09 18:45:48 jromine Exp jromine $ +d512 5 +@ + + +2.93 +log +@document YEARMOD +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.92 1992/11/06 19:29:16 jromine Exp jromine $ +d447 1 +a447 1 +This option is incompatible with \*(lqbboards: nntp\*(rq. +d500 1 +a500 1 +The \*(lqMPOP\*(rq option is incompatible with \*(lqbboards: nntp\*(rq. +d556 9 +d761 1 +a761 1 +\*(lqoptions TYPESIG=void\*(rq. +a789 10 + +.ti -.5i +TYPESIG +.br +Defines the base type (int or void) of the functions +being parameter/return value of \fIsignal\fR\0(2). +The default is \fBint\fR. +Set TYPESIG='void' on systems which use this type +(e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later); +otherwise, set TYPESIG='int'. +@ + + +2.92 +log +@add AUX +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.91 1992/11/06 01:06:04 jromine Exp jromine $ +d1011 12 +@ + + +2.91 +log +@typos +no MTS-specific action with sendmail unless bboards or pop +put BERK in preferences list +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.90 1992/11/06 00:47:31 jromine Exp jromine $ +d589 5 +@ + + +2.90 +log +@major changes to put "options" into sections +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.89 1992/11/05 19:25:27 jromine Exp jromine $ +d534 1 +a534 1 +.Uh "System Dependencies" +a590 9 +BERK +.br +Optional for for 4.{2,3}BSD sites running SendMail. +Disables nearly all of the RFC822 address and header-parsing routines +in favor of recognizing such formats as ASCnet, and so on. +If you don't need to disable the parser for this reason, +you probably want to use \*(lqoptions DUMB\*(rq instead. + +.ti -.5i +d868 9 +d925 2 +a926 1 +Enables support for multi-media messages, as specified in RFC 1341. +d937 1 +a937 3 +Enables \fBslocal\fP to detect and surpress duplicate +messages received. It doesn't hurt to enable this option whether +or not you intend to make use of the duplicate surpression capability. +d942 1 +a942 1 +Defines the octal value for default folder-protection +d1022 1 +a1022 1 +and compile date included in \fIMH\fP execuatbles. +d1057 1 +a1057 8 +.sp 1 +To generate a \fItroff\fR version, type +.sp 1 +.nf +% (cd ../doc/; make guide) +.fi +.sp 1 +instead. +d1074 10 +a1083 2 +If you want \fISendMail\fR to transport messages for \fIMH\fR, +then go to the mts/sendmail/ directory. +d1232 1 +a1232 1 +then no futher MTS\-specific action is required on your part! +d1235 1 +a1235 1 +then no futher MTS\-specific action is required on your part! +@ + + +2.89 +log +@add "ln". +update "mailgroup" docs to mention slocal. +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.88 1992/11/05 17:20:40 jromine Exp jromine $ +d4 1 +a4 1 +.TH MH-GEN 8 MH [mh.6] +a201 5 +popdir: /usr/etc +.br +The directory where the POP daemon (\fBpopd\fP) will be installed. + +.ti -.5i +a303 56 +.Uh "Shared libraries" +.ti -.5i +sharedlib: off +.br +If \*(lqsun4\*(rq, +makes libmh.a into a SunOS 4.0 (and later) shared library. +If you enable this, be sure to also use \*(lqoptions SUN40\*(rq. + +.ti -.5i +slibdir: /usr/local/lib +.br +The directory where the \fIMH\fP shared library should go. + +.ti -.25i +Under SunOS (sun4) +.br +Since some \fIMH\fP programs are setuid, they'll only look for +the library in \*(lqtrusted\*(rq locations. Putting the library +somewhere besides \fB/usr/lib\fP or \fB/usr/local/lib\fP is not advisable. + +If you \fBmust\fP do this, be sure that you add the +path given by \fBslibdir\fP to the compiler's library search list +(e.g., \*(lqldoptions: -L/usr/mh/lib\*(rq) +and make sure the path starts with a leading `/'. + +You may need to run \fIldconfig\fP\0(8) manually whenever a new +shared object is installed on the system. +See \fIld\fR\0(1) for more information about using shared libraries. + +.Uh "Other system dependencies" +.ti -.5i +editor: prompter +.br +The default editor for \fIMH\fR. + +.ti -.5i +mailgroup: off +.br +If set, \fIinc\fR is made set-group-id to this group name. +Some SYS5 systems want this to be set to \*(lqmail\*(rq. +Set this if your \fB/usr/spool/mail\fP is not world-writeable. + +Note that \fBslocal\fP doesn't know how to deal with this, +and will not work under these systems; just making it set-group-id +will open a security hole. +If you're using \*(lqmailgroup\*(rq, +you should remove \fBslocal\fP (and its man page) from your system. + +.ti -.5i +sprintf: char * +.br +The return value of the \fIsprintf\fR library routine. +This defaults to \*(lqchar\ *\*(rq. Set this to \*(lqint\*(rq if +you have an older version of SYSTEM 5 which has this routine return an +\*(lqint\*(rq type. + +d382 13 +a394 5 +you intend to use POP.) +Here is a brief summary of the options which are of interest when +POP is enabled. +Be sure to read the complete description of each option later in +this file. +d397 2 +a398 2 +.ti -.5i +RPOP +d400 16 +a415 4 +The \*(lqRPOP\*(rq option +indicates that support for the UNIX variant of POP, +RPOP, which uses privileged sockets for authentication be enabled. +This peacefully co-exists with the standard POP. +d417 33 +d452 8 +a459 4 +The \*(lqPOP2\*(rq option +indicates that the \fIMH\fP POP daemon should +speak the older POP2 protocol in addition to the \fIMH\fP POP3 protocol \- +a major win. +d464 14 +a477 1 +this defaults to \*(lqpop\*(rq, instead of \*(lqpop3\*(rq. +d479 1 +a479 1 +DPOP +d481 4 +a484 4 +The \*(lqDPOP\*(rq option +indicates that POP subscribers do not have +entries in the \fIpasswd\fR\0(5) file, +and instead have their own separate database (another win). +d486 1 +a486 1 +APOP +d488 4 +a491 16 +The \*(lqAPOP\*(rq option indicates that the POP daemon will +support the non-standard \fBAPOP\fP command. This command +provides a challenge-based authentication system using +the \fBMD5\fP message digest algorithm. +.ti -.5i +MPOP +.br +The \*(lqMPOP\*(rq option indicates that the POP daemon will +support some non-standard extensions for \*(lqmobile pop\*(rq, +which are useful when using the POP over low-speed connections. +.\" .ti -.5i +.\" KPOP +.\" .br +.\" The \*(lqKPOP\*(rq option indicates that the POP daemon will +.\" support the KERBEROS \fBkpop\fP protocol. This option is +.\" incompatible with the standard POP. +d493 1 +a493 1 +.sp +a500 3 +.sp +All of these options can be enabled via an \*(lqoptions\*(rq directive in the +\fIMH\fR configuration file. +d502 1 +a502 1 +.Uh "Testing/debugging" +d504 1 +a504 1 +debug: off +d506 6 +a511 3 +Support for debug mode of \fIMH\fR. +Don't use this unless you know what you're doing, +which isn't likely if you're reading this document! +d514 1 +a514 1 +regtest: off +d516 1 +a516 4 +Set this to \*(lqon\*(rq +if you are doing regression testing among different +compilations of \fIMH\fP, and you do not want the hostname +and compile date included in \fIMH\fP execuatbles. +d518 2 +a519 3 +.Uh "Compiler Options" +.ti -.5i +options: +d521 18 +a538 1 +\&`\-D' options to \fIcc\fR\0(1). If you don't know what an +d540 1 +a541 6 +.in +.5i +.\" .ti -.5i +.\" AIX +.\" .br +.\" Use on AIX. Also use \*(lqoptions TYPESIG=void SYS5 SYS5DIR\*(rq. +.\" +d543 1 +a543 1 +ALTOS +d545 3 +a547 2 +Use on XENIX/v7 systems. +Also, be sure to use \*(lqoptions V7\*(rq. +d549 6 +d556 1 +a556 1 +APOP='\*(lq/etc/pop.auth\*(rq' +d558 4 +a561 11 +This option indicates that the POP daemon will +support the non-standard \fBAPOP\fP command. This +command provides a challenge-based authentication system using +the \fBMD5\fP message digest algorithm. +This facility is documented in +\fIThe Internet Message\fR (ISBN 0\-13\-092941\-7), a book by Marshall T. Rose. +The \fBpopauth\fP program is also installed, which +allows the administrator to manipulate the \fBAPOP\fP +authorization database. +For more details, see \fBsupport/pop/pop-more.txt\fR +and the \fIAdministrator's Guide\fP. +d563 1 +d565 1 +a565 1 +ATHENA +d567 8 +a574 2 +Makes \fIrepl\fR `\-nocc\ all' the default instead of `\-cc\ all'. +You may want to enable this if you're using \fIxmh\fR. +a590 13 +ATZ +.br +Directs \fIMH\fR to use alpha\-timezones whenever possible. +You should not use this option if you are on the Internet, +since it will make your host non-compliant with RFC-1123 +(Requirements for Internet Hosts). + +.ti -.5i +BANG +.br +Directs \fIMH\fR to favor `!' over `@@' in addressing. + +.ti -.5i +a626 5 +.\" .ti -.5i +.\" BSD44 +.\" .br +.\" Use on Berkeley UNIX systems on or after 4.4BSD. + +d628 1 +a628 1 +COMPAT +d630 2 +a631 3 +If you previously ran a version of \fIMH\fR earlier than mh.4 use this option. +After a short grace period, +remove it and re-{configure,generate,install} everything. +a647 11 +DPOP +.br +Enables the POP database, useful only if POP service is enabled. + +.ti -.5i +DUMB +.br +Directs \fIMH\fR not to try and rewrite addresses to their +\*(lqofficial\*(rq form. + +.ti -.5i +d663 1 +a663 1 +FOLDPROT +d665 2 +a666 3 +Defines the octal value for default folder-protection. +For example, FOLDPROT='\*(lq0700\*(rq'. +The default is \*(lq0711\*(rq. +a667 6 +.\" .ti -.5i +.\" HESIOD +.\" .br +.\" Support for HESIOD. +.\" This code was contributed, and included no documentation. + +a668 23 +ISI +.br +When using \*(lqrepl\ \-ccme\*(rq, +only \*(lqcc:\*(rq the first address found which belongs to the user; +any other \fIAlternate-Mailboxes\fR do not receive \*(lqcc:\*(rqs. + +.\" .ti -.5i +.\" KPOP +.\" .br +.\" Support for KERBEROS with POP. +.\" This code builds +.\" \fIpopd\fP, \fIinc\fP and \fImsgchk\fP to support only the +.\" \*(lqkpop\*(rq protocol. +.\" This code was contributed, and included no documentation. + +.ti -.5i +LINK +.br +Defines the filename for alternate file name for \fIdist\fR and \fIrepl\fR. +For example, LINK='\*(lq\\\\043\*(rq' to use the pound\-sign character. +The default is \*(lq@@\*(rq. + +.ti -.5i +d679 1 +a679 1 +Hard\-wires the local name for the host \fIMH\fR is running on. +a684 23 +MHE +.br +Enables crude support for Brien Reid's MHE interface. +Recommended for use with the GNU Emacs mh-e package. + +.ti -.5i +MHRC +.br +Enables \fIMH\fR to recognize the \fICShell\fR's `~'\-construct. +This is useful for sites that run with a ~/.mhrc for their users. + +.ti -.5i +MIME +.br +Enables support for multi-media messages, as specified in RFC 1341. +Several \fIMH\fP commands are extended to support these multi-media +messages, +and the \fImhn\fR command is provided to encode and decode +\fBMIME\fP messages. +For more details, see \fBmiscellany/multi-media/READ-ME\fP +and \fImhn\fR\0(1). + +.ti -.5i +d688 1 +a688 1 +For example, on ALTOS and DUAL systems, +a692 29 +MPOP +.br +This option indicates that the POP daemon will +support the non-standard +\fBXTND SCAN\fP command which provides performance +enhancements when using the POP over low-speed connections. +This option also causes an interactive POP +client program, \fBpopi\fP, to be compiled and installed. +A man page for the \fBpopi\fP program is also provided. +These extensions are described in +\fIThe Internet Message\fR, a book by Marshall T. Rose. +For more details, see \fBsupport/pop/pop-more.txt\fR. +This option is incompatible with \*(lqbboards: nntp\*(rq. + +.ti -.5i +MSGID +.br +Enables \fBslocal\fP to detect and surpress duplicate +messages received. It doesn't hurt to enable this option whether +or not you intend to make use of the duplicate surpression capability. + +.ti -.5i +MSGPROT +.br +Defines the octal value for default folder-protection +For example, MSGPROT='\*(lq0600\*(rq'. +The default is \*(lq0644\*(rq. + +.ti -.5i +d701 1 +a718 5 +NOMHSEQ +.br +Directs \fIMH\fR to make private sequences the default. + +.ti -.5i +a728 33 +OVERHEAD +.br +Enable \fIMH\fR commands to read profile/context from open fd:s +without doing an open(); see mh-profile(5) for the details. + +.ti -.5i +POP2 +.br +Have the POP daemon understand the older +POP2 protocol as well as the \fIMH\fP POP3 protocol \- a major win. +The POP daemon auto-magically +determines which POP protocol your client is using. +If you're enabling POP service, +there's no reason not to enable this option as well. +See also \fIPOPSERVICE\fR. + +.ti -.5i +POPSERVICE +.br +The port name the \fIMH\fP POP will use. For historical reasons, +this defaults to \*(lqpop\*(rq. +In 1987, the \fIMH\fP POP protocol +(POP version 3) was published as RFC1081 and +was assigned its own port number (110), +which differs from the original POP (version 1 and 2) port number (109). +To have \fIMH\fP POP use the new assigned port number, +set POPSERVICE='\*(lqpop3\*(rq', and be sure that this service +name is listed in your \fB/etc/services\fP file on both POP client +and server hosts as \*(lq110/tcp\*(rq. +If you enable \fIPOP2\fP, you can safely leave this undefined unless +you are using POP3 clients besides \fIMH\fP. + +.ti -.5i +a734 17 +RPATHS +.br +Directs \fIinc\fR to note UNIX \*(lqFrom\ \*(rq lines as Return-Path: info. + +.ti -.5i +RPOP +.br +Enables the RPOP variant of POP, useful only if POP service is enabled. + +.ti -.5i +SBACKUP +.br +Defines the prefix string for backup file names. +For example, SBACKUP='\*(lq\\\\043\*(rq'. +The default is \*(lq,\*(rq. + +.ti -.5i +a743 8 +SHADOW +.br +Indicates that the encrypted passwords can be found in the +\fB/etc/shadow\fR file (and not in the \fB/etc/passwd\fR file). +This option is used only by the \fBpopd\fP POP server. +It should be used only for some (newer) SYSTEM 5 systems. + +.ti -.5i +d760 1 +a786 15 +TMA +.br +Support for the TTI \fItrusted mail agent\fR (TMA). +Although the TTI TMA is \fBnot\fR in the public domain, +the \fIMH\fR support for the TTI TMA \fBis\fR in the public domain. +You should enable this option only if you are licensed to run the TMA +software +(otherwise, you don't have the software in your \fIMH\fR source tree). + +.ti -.5i +TTYD +.br +Support for TTYD. This is no longer in wide use, and is not recommended. + +.ti -.5i +d793 2 +a794 1 +(e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later). +a803 18 +UCI +.br +First, \*(lq_\*(rq and \*(lq#\*(rq are recognized as the prefixes for +scratch files. +Second, support for the UCI group\-leadership mechanism is enabled in +\fIconflict\fR. +Third, the file \fB$HOME/.signature\fR is considered to contain +a single line of text which is used as the \fIFull Name\fR part +of your \*(lqFrom:\*(rq header. +This may conflict with the interpretation of this file by \fINews\fR. +If you're not at UCI, you probably don't want this option. + +.ti -.5i +UK +.br +Directs the \fIscan\fR program to generate UK-style dates. + +.ti -.5i +a820 4 +.ti -.5i +WHATNOW +.br +Enable certain \fIMH\fR commands to act differently when $mhdraft set. +d836 190 +@ + + +2.88 +log +@document "popdir" and VSPRINTF +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.87 1992/11/02 19:01:33 jromine Exp jromine $ +d222 8 +d234 1 +a234 1 +To remove the old files instead, use \*(lqrm\0\-f\*(rq. +d350 1 +d352 4 +a355 1 +and will not work under these systems. +@ + + +2.87 +log +@drop AIX in favor of _AIX +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.86 1992/11/02 19:01:00 jromine Exp jromine $ +d202 5 +d219 1 +a219 1 +(Some sites use \*(lqcp -p\*(rq.) +d224 3 +a226 1 +How \fIMH\fR should backup existing files when installing a new file. +d995 6 +@ + + +2.86 +log +@note SHADOW only affects popd +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.85 1992/11/02 18:39:35 jromine Exp jromine $ +d513 5 +a517 5 +.ti -.5i +AIX +.br +Use on AIX. Also use \*(lqoptions TYPESIG=void SYS5 SYS5DIR\*(rq. + +@ + + +2.85 +log +@add some notes about "oldload none" +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.84 1992/11/02 17:10:51 jromine Exp jromine $ +d883 2 +a884 1 +This option should only be used for some (newer) SYSTEM 5 systems. +@ + + +2.84 +log +@elaborate on "mailgroup" description +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.83 1992/10/31 06:24:13 jromine Exp jromine $ +d276 2 +d924 2 +@ + + +2.83 +log +@drop mention of SunOS 3.5 -lresolv bugs +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.82 1992/10/31 06:20:55 jromine Exp jromine $ +d332 3 +@ + + +2.82 +log +@note bugs in SunOS NIS/DNS lookup code (and give work-around) +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.81 1992/10/29 22:20:55 jromine Exp jromine $ +a574 9 + +If you're running SunOS 3.5 and using their brain-damaged approach +to offering Domain Name Service through NIS, +you're going to have to enable \*(lqoptions BERK\*(rq to +prevent \fIMH \fP from trying to resolve hostnames. +This is because the Sun NIS/DNS interface is broken when +resolving hosts which have no \*(lqA\*(rq resource records. +You could use the \fBlibresolv.a\fP libarary to work around the NIS +problems, but it's also broken under SunOS 3.5. Sorry. +@ + + +2.81 +log +@describe how to put slibdir somewhere besides /usr/local/lib +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.80 1992/10/29 17:44:55 jromine Exp jromine $ +d576 9 +d900 1 +a900 1 +Use on Sun OS 4.0 (and later?) systems. You probably also want +d903 4 +@ + + +2.80 +log +@add subheading for options: +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.79 1992/10/29 17:39:14 jromine Exp jromine $ +d298 1 +a298 1 +If you enable this, be sure to use \*(lqoptions SUN40\*(rq. +d305 3 +d311 6 +@ + + +2.79 +log +@add AIX +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.78 1992/10/27 21:44:44 jromine Exp jromine $ +d491 1 +@ + + +2.78 +log +@fixup +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.77 1992/10/27 18:11:52 jromine Exp jromine $ +d498 5 +@ + + +2.77 +log +@document NNTP/MPOP incompatibility +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.76 1992/10/27 17:41:40 jromine Exp jromine $ +d954 1 +@ + + +2.76 +log +@move stuff into subsections +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.75 1992/10/27 17:00:27 jromine Exp jromine $ +d469 2 +a470 1 +These two options peacefully co-exist with the standard POP. +d737 1 +@ + + +2.75 +log +@RENAME, UNISTD +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.74 1992/10/26 16:54:14 jromine Exp jromine $ +d68 1 +a68 1 +ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.7.tar.Z. +d78 1 +a78 1 +either ics.uci.edu or louie.udel.edu. +d94 4 +a97 5 +Computing Support Group +Attn: MH distribution +Department of Information and Computer Science +University of California, Irvine +Irvine, CA 92717 +d99 1 +a99 1 +714/856-7554 +d156 6 +d163 1 +a163 1 +bbdelivery: off +d165 1 +a165 14 +If \*(lqoff\*(rq, +the BBoards delivery agent and library files will not be installed. +If +\*(lqon\*(rq, +and you set \*(lqbboards:\*(rq to something besides \*(lqoff\*(rq, +then +the BBoards delivery agent and library files will be installed +in the \fIbbhome\fR directory (see below). +To read remote BBoards, +the usual configuration would have \fIbbc\fR talk to a \fIPOP3\fR or +\fINNTP\fR server. +However, it may be useful to set this to \*(lqoff\*(rq if +you NFS mount the \fIbbhome\fR directory from another host +and want to use \fIbbc\fR to read those files directly. +d168 1 +a168 1 +bboards: off +d170 1 +a170 9 +If \*(lqon\*(rq, include support for the UCI BBoards facility. +BBoards may be enabled with any mts setting. +If \*(lqoff\*(rq, the BBoard reading program \fIbbc\fR will not be installed. +If \*(lqnntp\*(rq, +include support for the UCI BBoards facility to read the Network News +via the NNTP. +If \*(lqpop\*(rq (formerly \*(lqpopbboards:\ on\*(rq), +include support for the UCI BBoards facility via the POP3 service; +this setting requires \*(lqpop:\ on\*(rq. +d173 1 +a173 1 +bbhome: /usr/spool/bboards +d175 5 +a179 1 +The home directory for the BBoards user. +d182 1 +a182 1 +bin: /usr/local +d184 1 +a184 1 +The directory where user\-invoked programs go (see manual section 1). +d187 1 +a187 1 +cc: +d189 11 +a199 1 +The name of your C compiler, if not \*(lqcc\*(rq. +a201 10 +ccoptions: \-O +.br +Options given directly to \fIcc\fR\0(1). +The most common is \*(lq\-M\*(rq if you're running \fIMH\fR on an ALTOS. +This defaults to \*(lq\-O\*(rq. If you define this and want to +keep \*(lq\-O\*(rq, be sure to include it explicitly. +If you're using the \fIGNU\fP C compiler, it should +include `\-traditional'. See \*(lqoptions:\*(rq for `\-D' options. + +.ti -.5i +d211 1 +a211 1 +cp: +d217 1 +a217 1 +curses: \-lcurses\0\-ltermlib +d219 1 +a219 5 +This should be the loader option required to load the \fItermcap\fR\0(3) +and \fIcurses\fR\0(3) libraries on your system. +On SYS5 systems, it probably should be just \*(lq\-lcurses\*(rq. +Some sites have reported that both \*(lq\-lcurses\*(rq and +\*(lq\-ltermlib\*(rq are necessary. +d221 1 +d223 1 +a223 1 +debug: off +d225 1 +a225 3 +Support for debug mode of \fIMH\fR. +Don't use this unless you know what you're doing, +which isn't likely if you're reading this document! +d228 1 +a228 1 +editor: prompter +d230 6 +a235 1 +The default editor for \fIMH\fR. +d238 1 +a238 1 +etc: /usr/local/lib/mh +d240 5 +a244 1 +The directory where pgm\-invoked programs go (see manual section 8). +d247 1 +a247 1 +ldoptions: +d274 1 +a274 1 +mail: /usr/spool/mail +d276 2 +a277 5 +The directory where the maildrops are stored. +If this pathname is absolute (i.e., begins with a \fB/\fR\0), +then the user's maildrop is a file called \fB$USER\fR in this directory. +If the pathname is not absolute, +then the user's maildrop is in the user's home directory under the given name. +d280 39 +d325 1 +a325 1 +mandir: /usr/man +d327 4 +a330 1 +The parent directory of the manual entries. +d332 1 +a333 15 +manuals: standard +.br +Where manual entries should be installed, +relative to the directory given with \*(lqmandir\*(rq. +Either \*(lqlocal\*(rq to install manual entries under \fBmanl/\fR, +or \*(lqnew\*(rq to install manual entries under \fBmann/\fR, +or \*(lqold\*(rq to install manual entries under \fBmano/\fR, +or \*(lqstandard\*(rq to install manual entries under \fBman?/\fR, +or \*(lqgen\*(rq to generate but not install them, +or \*(lqnone\*(rq to neither generate nor install them. +For example, +to install manual entries under \fB/usr/man/u_man/man?\fR, +use \*(lqstandard\*(rq and \fB/usr/man/u_man\fR for \*(lqmandir\*(rq. + +.ti -.5i +d363 1 +d365 1 +a365 1 +oldload: off +d367 9 +a375 2 +Support for the ALTOS loader if \*(lqon\*(rq. +Support for loaders not handling `\-x\0\-r' correctly if \*(lqnone\*(rq. +d378 24 +d474 1 +d476 1 +a476 1 +ranlib: on +d478 3 +a480 9 +Support for systems with \fIranlib\fR\0(1). +For SYSTEM 5 systems, +this should be \*(lqoff\*(rq which tells \fIMH\fR to use \fIlorder\fR and +\fItsort\fR instead. +Some SYSTEM 5 sites reported that running this isn't always sufficient. +If this is the case, +then you should edit \fBconf/makefiles/uip\fR to include +\fB\&../sbr/libmh.a\fR and \fB../zotnet/libzot.a\fR twice in the LIBES +variable. +a490 32 +remove: mv \-f +.br +How \fIMH\fR should backup existing files when installing a new file. + +.ti -.5i +sharedlib: off +.br +Makes libmh.a into a shared library (only for SunOS 4.0 and later). +If you enable this, be sure to use \*(lqoptions SUN40\*(rq. + +.ti -.5i +slibdir: /usr/local/lib +.br +The directory where the \fIMH\fP shared library should go. + +Since some \fIMH\fP programs are setuid, they'll only look for +the library in \*(lqtrusted\*(rq locations. Putting the library +somewhere besides \fB/usr/lib\fP or \fB/usr/local/lib\fP is not advisable. + +You may need to run \fIldconfig\fP\0(8) manually whenever a new +shared object is installed on the system. +See \fIld\fR\0(1) for more information about using shared libraries. + +.ti -.5i +sprintf: char * +.br +The return value of the \fIsprintf\fR library routine. +This defaults to \*(lqchar\ *\*(rq. Set this to \*(lqint\*(rq if +you have an older version of SYSTEM 5 which has this routine return an +\*(lqint\*(rq type. + +.ti -.5i +d588 5 +d757 1 +a757 1 +Otherwise, \fIMH\fR will try \fB\fR. +@ + + +2.74 +log +@document MSGID +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.73 1992/10/26 16:29:56 jromine Exp jromine $ +d808 6 +d930 5 +@ + + +2.73 +log +@give ISBN of The Internet Message +mention POPSERVICE in pop options summary +sprintf: char * (default) +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.72 1992/10/20 22:50:50 jromine Exp jromine $ +d719 7 +@ + + +2.72 +log +@DBM->DBMPWD (conflict with ndbm.h) +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.71 1992/10/19 21:57:08 jromine Exp jromine $ +d362 4 +a365 1 +If POP is enabled, there are several options which are of interest: +d383 5 +d417 2 +a418 1 +\fIThe Internet Message\fR, a book by Marshall T. Rose. +d420 1 +a420 1 +These options co-exist with the standard POP. +d450 1 +d471 1 +a471 1 +sprintf: int +d499 1 +a499 1 +\fIThe Internet Message\fR, a book by Marshall T. Rose. +@ + + +2.71 +log +@typo +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.70 1992/10/19 21:56:21 jromine Exp jromine $ +d574 1 +a574 1 +DBM +d579 1 +a579 1 +Without DBM the entire passwd file is read into +@ + + +2.70 +log +@document APOP database +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.69 1992/10/19 21:48:20 jromine Exp jromine $ +a493 1 +and the \fIAdministrator's Guide\fP. +@ + + +2.69 +log +@re-order directives alphabetically +include MPOP, APOP, etc. options +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.68 1992/10/19 20:29:19 jromine Exp jromine $ +d482 1 +a482 1 +APOP +d490 6 +a495 1 +For more details, see \fBsupport/pop/pop-more.txt\fR. +a681 1 +For more details, see support/ +d686 2 +a687 1 +For more details, see \fBmiscellany/multi-media/READ-ME\fP. +@ + + +2.68 +log +@explain zoneinfo +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.67 1992/05/12 21:05:04 jromine Exp jromine $ +d140 1 +d146 9 +a154 1 +Here are the \fIMH\fP configuration options available: +d156 1 +d158 36 +d199 39 +d245 5 +d255 27 +a316 19 +chown: /etc/chown +.br +The location of the \fIchown\fR\0(8) on your system. +If \fIchown\fR is in your search path, +just use the value of \*(lqchown\*(rq. +On SYS5 systems, +this should probably be \*(lq/bin/chown\*(rq. + +.ti -.5i +editor: prompter +.br +The default editor for \fIMH\fR. + +.ti -.5i +remove: mv \-f +.br +How \fIMH\fR should backup existing files when installing a new file. + +.ti -.5i +a338 36 +bboards: off +.br +If \*(lqon\*(rq, include support for the UCI BBoards facility. +BBoards may be enabled with any mts setting. +If \*(lqoff\*(rq, the BBoard reading program \fIbbc\fR will not be installed. +If \*(lqnntp\*(rq, +include support for the UCI BBoards facility to read the Network News +via the NNTP. +If \*(lqpop\*(rq (formerly \*(lqpopbboards:\ on\*(rq), +include support for the UCI BBoards facility via the POP3 service; +this setting requires \*(lqpop:\ on\*(rq. + +.ti -.5i +bbdelivery: off +.br +If \*(lqoff\*(rq, +the BBoards delivery agent and library files will not be installed. +If +\*(lqon\*(rq, +and you set \*(lqbboards:\*(rq to something besides \*(lqoff\*(rq, +then +the BBoards delivery agent and library files will be installed +in the \fIbbhome\fR directory (see below). +To read remote BBoards, +the usual configuration would have \fIbbc\fR talk to a \fIPOP3\fR or +\fINNTP\fR server. +However, it may be useful to set this to \*(lqoff\*(rq if +you NFS mount the \fIbbhome\fR directory from another host +and want to use \fIbbc\fR to read those files directly. + +.ti -.5i +bbhome: /usr/spool/bboards +.br +The home directory for the BBoards user. + +.ti -.5i +d347 6 +d362 8 +a369 3 +If POP is enabled, there are three additional options which are of interest: +\*(lqRPOP\*(rq, \*(lqDPOP\*(rq and \*(lqPOP2\*(rq. +The first indicates that support for the UNIX variant of POP, +d371 6 +a376 5 +This peacefully co\-exists with the standard POP. +The \*(lqDPOP\*(rq option indicates that POP subscribers do not have +entries in the \fIpasswd\fR\0(5) file, +and instead have their own separate database (another major win). +The \*(lqPOP2\*(rq option indicates that the \fIMH\fP POP daemon should +d379 34 +d417 1 +a417 1 +kpop: off +d419 9 +a427 5 +Support for KERBEROS with POP. +This code appears to build +\fIpopd\fP, \fIinc\fP and \fImsgchk\fP to support only the +\*(lqkpop\*(rq protocol. +This code was contributed, and included no documentation. +d430 1 +a430 1 +hesiod: off +d432 4 +a435 2 +Support for HESIOD. +This code was contributed, and included no documentation. +d438 31 +d482 11 +d616 6 +d629 9 +d674 11 +d693 14 +d856 10 +a927 121 + +.ti -.5i +cp: +.br +The command to copy files when installing, if not \*(lqcp\*(rq. +(Some sites use \*(lqcp -p\*(rq.) + +.ti -.5i +cc: +.br +The name of your C compiler, if not \*(lqcc\*(rq. + +.ti -.5i +ccoptions: \-O +.br +Options given directly to \fIcc\fR\0(1). +The most common is \*(lq\-M\*(rq if you're running \fIMH\fR on an ALTOS. +This defaults to \*(lq\-O\*(rq. If you define this and want to +keep \*(lq\-O\*(rq, be sure to include it explicitly. +If you're using the \fIGNU\fP C compiler, it should +include `\-traditional'. + +.ti -.5i +curses: \-lcurses\0\-ltermlib +.br +This should be the loader option required to load the \fItermcap\fR\0(3) +and \fIcurses\fR\0(3) libraries on your system. +On SYS5 systems, it probably should be just \*(lq\-lcurses\*(rq. +Some sites have reported that both \*(lq\-lcurses\*(rq and +\*(lq\-ltermlib\*(rq are necessary. + +.ti -.5i +ldoptions: +.br +Options given directly to \fIld\fR\0(1) (via \fIcc\fR\0) at the beginning +of the command line. +Useful for machines which require arguments to tell \fIld\fR to increase the +stack space (e.g. the Gould, which uses \*(lq\-m\08\*(rq). +Usually, \*(lq\-s\*(rq is a good choice in any event. + +.ti -.5i +ldoptlibs: +.br +Options given directly to \fIld\fR\0(1) (via \fIcc\fR\0) at the end of the +command line. +The two most common are: +\*(lq\-ldbm\*(rq if you're running MMDF with the \fIdbm\fR package; +and, \*(lq\-lndir\*(rq if you are generating \fIMH\fR on a system +which does not load the new directory access mechanism by default +(e.g., 4.1BSD, SYS5). +If you don't have \fIlibndir\fR on your system, +the sources are in \fBmiscellany/libndir/\fR. + +.ti -.5i +lex: lex -nt +.br +Alternative version of \fIlex\fR. Used in \fBzotnet/tws/\fR. + +.ti -.5i +sprintf: int +.br +The return value of the \fIsprintf\fR library routine. +This defaults to \*(lqchar\ *\*(rq. Set this to \*(lqint\*(rq if +you have an older version of SYSTEM 5 which has this routine return an +\*(lqint\*(rq type. + +.ti -.5i +sharedlib: off +.br +Makes libmh.a into a shared library (only for SunOS 4.0 and later). +If you enable this, be sure to use \*(lqoptions SUN40\*(rq. + +.ti -.5i +slibdir: /usr/local/lib +.br +The directory where the \fIMH\fP shared library should go. + +Since some \fIMH\fP programs are setuid, they'll only look for +the library in \*(lqtrusted\*(rq locations. Putting the library +somewhere besides \fB/usr/lib\fP or \fB/usr/local/lib\fP is not advisable. + +You may need to run \fIldconfig\fP\0(8) manually whenever a new +shared object is installed on the system. +See \fIld\fR\0(1) for more information about using shared libraries. + +.ti -.5i +oldload: off +.br +Support for the ALTOS loader if \*(lqon\*(rq. +Support for loaders not handling `\-x\0\-r' correctly if \*(lqnone\*(rq. + +.ti -.5i +ranlib: on +.br +Support for systems with \fIranlib\fR\0(1). +For SYSTEM 5 systems, +this should be \*(lqoff\*(rq which tells \fIMH\fR to use \fIlorder\fR and +\fItsort\fR instead. +Some SYSTEM 5 sites reported that running this isn't always sufficient. +If this is the case, +then you should edit \fBconf/makefiles/uip\fR to include +\fB\&../sbr/libmh.a\fR and \fB../zotnet/libzot.a\fR twice in the LIBES +variable. + +.ti -.5i +tma: off +.br +Support for the TTI \fItrusted mail agent\fR (TMA). +Although the TTI TMA is \fBnot\fR in the public domain, +the \fIMH\fR support for the TTI TMA \fBis\fR in the public domain. +You should enable this option only if you are licensed to run the TMA +software +(otherwise, you don't have the software in your \fIMH\fR source tree). + +.ti -.5i +regtest: off +.br +Set this to \*(lqon\*(rq +if you are doing regression testing among different +compilations of \fIMH\fP, and you do not want the hostname +and compile date included in \fIMH\fP execuatbles. +@ + + +2.67 +log +@delete SUN41 +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.66 1992/05/12 21:04:45 jromine Exp jromine $ +d360 3 +d713 5 +a717 1 +information /etc/zoneinfo or /usr/lib/zoneinfo (SunOS). +@ + + +2.66 +log +@document making admin manual before installing software +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.65 1992/02/12 21:36:21 jromine Exp jromine $ +a631 8 +\*(lqoptions BSD42\*(rq, \*(lqoptions BSD43\*(rq, and +\*(lqoptions TYPESIG=void\*(rq. + +.ti -.5i +SUN41 +.br +Use on Sun OS 4.1 (and later?) systems. You also want +\*(lqoptions SUN40\*(rq, +@ + + +2.65 +log +@GNU -traditional +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.64 1992/02/12 21:35:05 jromine Exp jromine $ +d12 2 +a13 1 +Guide before you install \fIMH\fP. +d117 3 +a119 4 +Become the super-user and create a new directory under /usr/src/local/ +(or whatever) for the \fIMH\fR area. +Traditionally, the directory's name should be mh/. +The distribution tape contains the hierarchy for the mh.6/ directory. +d123 1 +a123 2 +# mkdir /usr/src/local/mh +% cd /usr/src/local/mh +d125 1 +d658 7 +d869 26 +d1056 1 +a1056 1 +Go to the mh.6/ directory and generate the system. +a1071 21 +\fBBefore proceeding\fP, +you should familiarize yourself with the \fIAdministrator's Guide\fR. +To generate an \fInroff\fR version, go to the doc/ directory +and type: +.sp 1 +.nf +% (cd doc/; make ADMIN.doc) +.fi +.sp 1 +To generate a \fItroff\fR version, type +.sp 1 +.nf +% (cd doc/; make guide) +.fi +.sp 1 +instead. +.PP +If you're already running \fIMH\fR at your site, +you should also read the \fImh.6\fR changes documents. +The sources are in \fBpapers/mh6.5/\fR and \fBpapers/mh6.7/\fP. +.PP +d1115 1 +a1115 1 +files will not be installed over existing copies; +d1152 4 +@ + + +2.64 +log +@try to document KERBEROS +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.63 1992/02/11 05:08:34 jromine Exp jromine $ +d735 2 +@ + + +2.63 +log +@document LOCKF, FLOCK, FCNTL +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.62 1992/02/06 16:48:48 jromine Exp $ +d311 5 +a315 2 +Support for KERBEROS with POP. This code was contributed, +but there was no documentation made available. +d320 2 +a321 2 +Support for HESIOD. This code was contributed, +but there was no documentation made available. +@ + + +2.62 +log +@document comment syntax +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.61 1992/02/06 00:25:07 jromine Exp jromine $ +d433 15 +d471 4 +a474 3 +Directs \fIMH\fP to use the \fBlockf()\fP system call for UNIX-style +locking instead of \fBflock()\fP. If you're using NFS to read or +write maildrops, you should enable this option. +@ + + +2.61 +log +@make NFS and SENDMAILBUG more explicit +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.60 1992/02/05 22:18:48 jromine Exp jromine $ +d143 1 +@ + + +2.60 +log +@add zmailer support +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.59 1992/02/05 21:52:46 jromine Exp jromine $ +d509 3 +a511 1 +\fIMH\fP, you need this option. +d589 2 +a590 1 +Enable this if you know that your SendMail will +@ + + +2.59 +log +@add "regtest: on/off" to not include hostname and date +in version.c +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.58 1992/01/31 23:09:59 jromine Exp jromine $ +d224 1 +@ + + +2.58 +log +@drop WP +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.57 1992/01/31 22:55:36 jromine Exp jromine $ +d803 9 +@ + + +2.57 +log +@mention kpop/hesiod options +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.56 1992/01/31 22:47:36 jromine Exp jromine $ +a676 6 + +.ti -.5i +WP +.br +Enables the White Pages service. +Contact wpp-manager@@psi.com for more information. +@ + + +2.56 +log +@add "cp" option +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.55 1992/01/30 16:41:35 jromine Exp jromine $ +d305 12 +@ + + +2.55 +log +@ATTVIBUG +SUN41 +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.54 1991/01/24 08:27:50 mh Exp jromine $ +d686 6 +@ + + +2.54 +log +@mention undefined _index _rindex +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.53 91/01/23 14:54:18 mh Exp Locker: mh $ +d326 14 +d600 1 +a600 1 +SUNVIBUG +d602 4 +a605 10 +This option causes +\fIMH\fP to return to the \*(lqWhat now?\*(rq +prompt if your initial editor is \fBvi\fP +and it exits with non-zero status. +Use on Sun OS 4.1 and other systems where the +\fB/usr/ucb/vi\fP editor was changed to +exit with its status equal to the number of pseudo-\*(lqerrors\*(rq +encountered during the edit. This causes a problem for programs that +test the exit status of their editor and abort if the status is non-zero. +(This includes \fIMH\fP and programs like \fB/usr/etc/vipw\fP). +d633 1 +a633 1 +(e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0). +@ + + +2.53 +log +@add SUNVIBUG +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.52 91/01/23 14:44:18 mh Exp Locker: mh $ +d797 4 +a800 2 +Now install the configured files into the source areas. (On SYSTEM 5 +systems you may need to use \*(lqmake sys5\*(rq to compile mhconfig.) +@ + + +2.52 +log +@add LOCKF docs +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.51 90/12/18 13:55:54 mh Exp Locker: mh $ +d584 14 +@ + + +2.51 +log +@sharedlibs +jlr +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.50 90/11/21 09:27:52 mh Exp Locker: mh $ +d424 7 +@ + + +2.50 +log +@document servers: a little better +jlr +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.49 90/11/16 14:55:57 mh Exp Locker: mh $ +d235 2 +a236 2 +Guide\fR; be sure to set \*(lqservers:\*(rq as described in mh\-tailor(8) +if you use this option. +d724 7 +a730 2 +The directory where the MH shared library should go. +You'll need to manually run \fIldconfig\fP\0(8) whenever a new +d732 1 +a732 8 + +If you want to +put it somewhere other than \fB/usr/lib\fP or \fB/usr/local/lib\fP +(not advisable), you'll probably have to run \fIldconfig\fR\0(8) on +that directory, or +alter the environment variable \fBLD_LIBRARY_PATH\fP for each +user wishing to use the MH system (this is messy). See +\fIld\fR\0(1) for more information about how to do this. +@ + + +2.49 +log +@document POP2 option +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.48 90/04/09 13:27:27 sources Exp Locker: mh $ +d225 1 +d231 1 +a231 4 +The \*(lq/smtp\*(rq suffix is described in detail in the \fIAdministrator's +Guide\fR. +Hence, +for TCP/IP UNIX systems, +d234 3 +@ + + +2.48 +log +@ZONEINFO +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.47 90/04/09 10:01:42 sources Exp Locker: sources $ +d247 1 +a247 1 +include support for the UCI BBoards facility via the POP service; +d262 1 +a262 1 +the usual configuration would have \fIbbc\fR talk to a \fIPOP\fR or +d291 3 +a293 3 +If POP is enabled, there are two additional options which are of interest: +\*(lqRPOP\*(rq and \*(lqDPOP\*(rq. +The former indicates that support for the UNIX variant of POP, +d299 4 +a302 1 +Both of these options can be enabled via an \*(lqoptions\*(rq directive in the +d504 11 +d518 5 +a522 3 +this defaults to \*(lqpop\*(rq. The \fIMH\fP POP protocol +(POP version 3) has finally been assigned its own port number (110), +which differs from the original POP (version 1) port number (109). +d527 2 +@ + + +2.47 +log +@POPSERVICE +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.46 90/04/08 19:35:27 sources Exp Locker: sources $ +d592 1 +a592 1 +asked for alpha\-timezones (see the ATZ option). +d628 9 +@ + + +2.46 +log +@*** empty log message *** +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.45 90/04/07 23:34:23 sources Exp Locker: sources $ +d499 12 +@ + + +2.45 +log +@minor cleanup. don't justify with nroff +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.44 90/04/06 10:59:28 sources Exp Locker: sources $ +d106 2 +a107 1 +format). I'm working on getting Postscript versions of the documents. +@ + + +2.44 +log +@*** empty log message *** +@ +text +@d1 3 +a3 1 +.\" @@(#)$Id: mh-gen.8,v 2.43 90/04/06 10:51:39 sources Exp Locker: sources $ +d62 2 +a63 2 +Since you probably already have MH, you may not need to read this +unless you suspect you have an old version. +d79 3 +a81 2 +2. You can send $75 US to the address below. This covers the cost +of a magtape, handling, and shipping. In addition, you'll get a +d83 2 +a84 2 +sure to include your USPS address with your check. Checks should +be made payable to: +d89 1 +a89 1 +and must be drawn on U.S. funds. The distribution address is: +d469 2 +d543 2 +a544 1 +\*(lqoptions\ BSD42\*(rq and \*(lqoptions\ BSD43\*(rq. +a546 9 +SUN41 +.br +For Sun OS 4.1 this defines +\fIsprintf\fR as returning type \fIchar\ *\fR. +No \fIMH\fR program ever uses \fIsprintf\fR\|'s return value, but this +define prevents some compiler warnings. +Be sure to enable \*(lqoptions\ SUN40\*(rq too. + +.ti -.5i +d549 1 +a549 1 +Use on AT&T SYSTEM 5 R3 (and newer?) UNIX system. See also \fImailgroup\fR. +d554 2 +a555 1 +Define this if your system uses struct dirent instead of struct direct. +d677 1 +a677 1 +Makes libmh.a into a shared library (for SunOS 4.0). +@ + + +2.43 +log +@*** empty log message *** +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.42 90/04/06 10:46:18 sources Exp Locker: sources $ +d9 2 +a10 2 +also want to familiarize yourself with the \fBMH\fP Administrator's +Guide before you install \fBMH\fP. +d55 2 +a56 2 +discussing code changes to \fBMH\fP. \fBMH-Users\fP is for general +discussion about how to use \fBMH\fP. +d60 1 +a60 1 +Since you probably alread have MH, you may not need to read this +d67 2 +a68 2 +(approx 1.5MB). There should also be a \fBREADME\fR file in +that directory which tells what the current release of \fBMH\fP +d140 1 +a140 1 +Here are the \fIMH\fR configuraton options available: +d532 1 +a532 1 +but it might be usefull for SYSTEM 5 or HPUX systems with TCP/IP sockets. +d900 1 +a900 1 +then no futher MTS\-specific action is required on your part! +@ + + +2.42 +log +@*** empty log message *** +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id: mh-gen.8,v 2.41 90/04/05 16:08:57 sources Exp Locker: sources $ +d7 5 +a11 1 +the UCI version of the RAND \fIMH\fR system. +d40 1 +a40 1 +.PP +@ + + +2.41 +log +@Id +@ +text +@d1 1 +a1 1 +.\" @@(#)$Id:$ +d47 1 +d50 3 +a52 1 +and \fBMH\-Workers@@ICS.UCI.EDU\fR. +d57 2 +a58 2 +unless you suspect you have an old version. There are two ways +to get the latest release: +d61 1 +a61 1 +ics.uci.edu [128.195.1.1] and retrieve the file pub/mh-6.6.tar.Z. +d63 6 +a68 2 +(approx 1.5MB). This file is also available on louie.udel.edu +[128.175.1.3] in portal/mh-6.tar.Z. You may also find MH.6.6 on +d77 1 +a77 1 +be made payable to +d83 1 +d97 1 +a97 1 +still have to pay the $75.00. The tar image has the documentation +d297 2 +a298 1 +\&`\-D' options to \fIcc\fR\0(1). +d321 1 +a321 1 +Directs \fIMH\fR to favor `!' over `@@'. +d920 1 +a920 1 +Before proceeding, +d938 2 +a939 2 +you should also read the \fImh.6\fR changes document. +The sources are in \fBpapers/mh6.5/\fR. +@ + + +2.40 +log +@*** empty log message *** +@ +text +@d1 1 +@ + + +2.39 +log +@add ID +@ +text +@a0 1 +.\" @@(#)$Id:$ +d502 2 +a503 2 +It appears that some Sendmails return this code when they +don't mean to indicate a failure. +d558 3 +a560 2 +The default is \fBint\fR, but SYSTEM 5 systems (V.3.0 and later) +should probably set TYPESIG='void'. +d671 11 +a681 3 +The directory where the MH shared library should go. If you want to +put it somewhere other than \fB/usr/lib\fR or \fB/usr/local/lib\fR +(not advisable), you'll probably have to run \fIldconfig\fR\0(8). +@ + + +2.38 +log +@typo +@ +text +@d1 1 +@ + + +2.37 +log +@RAND fixes +@ +text +@d483 1 +a483 1 +Directs \fIinc\fR to note UNIX From: lines as Return-Path: info. +@ + + +2.36 +log +@NTOHL -> NTOHLSWAP +@ +text +@d6 2 +a7 2 +the UCI version of the Rand \fIMH\fR system. +Although the \fIMH\fR system was originally developed by the Rand Corporation, +d9 1 +a9 1 +the Rand Corporation assumes no responsibility for \fIMH\fR +d32 1 +a32 1 +the authors ask only that you provide appropriate credit to the Rand +d36 1 +a36 1 +\fIMH\fR is a software package that is neither supported by the Rand +d356 14 +@ + + +2.35 +log +@add sprintf config option +@ +text +@d451 1 +a451 1 +NTOHL +@ + + +2.34 +log +@document WP +@ +text +@d640 8 +@ + + +2.33 +log +@typo +@ +text +@d579 6 +@ + + +2.32 +log +@typo +@ +text +@d940 1 +a940 1 +The other files under \fB/usr/spool/bboards/fR will be overwritten +@ + + +2.31 +log +@typo +@ +text +@d613 1 +a613 1 +Usually, \*(lq\-ns\*(rq is a good choice in any event. +@ + + +2.30 +log +@better documentation of BERK +@ +text +@d564 1 +a564 1 +This may conflict with the interpretation of this file by \fINewsfR. +a595 1 + +@ + + +2.29 +log +@don't suggest using options UCI +@ +text +@d317 3 +a319 3 +Makes a lot of simplifying assumptions that makes the code run a bit faster +by disabling nearly all of the address and header-parsing routines. +Unless you're on a really slow machine, +@ + + +2.28 +log +@make NTOHL positive +@ +text +@d565 1 +@ + + +2.27 +log +@add some detail +@ +text +@d451 1 +a451 1 +NONTOHL +d453 6 +a458 6 +Tells \fIMH\fR not to use the \fBntohl()\fR macro when processing +\fImsh\fR binary map files. \fIMH\fR uses this macro on 4BSD +systems to byte-swap the binary information in these map files. +If you need to be compatible with older versions of MH which did +not do this, or aren't using the same map files on machines +of different architectures, you probably want to define this option. +@ + + +2.26 +log +@redoc SUN41 +@ +text +@d300 2 +a301 1 +\fIrepl\fR will assume `\-nocc\ all' as the default instead of `\-cc\ all'. +d378 3 +a380 2 +Tells \fIrepl\fR to be more conservative in generating \*(lqcc:\*(rqs to the +user. +d386 1 +a386 1 +For example, LINK='\*(lq\\\\043\*(rq'. +d401 1 +d519 1 +d561 4 +a564 1 +Third, support for \fB$HOME/.signature\fR files is enabled. +@ + + +2.25 +log +@"bbdeliver: {on,off}" +@ +text +@d512 4 +a515 4 +Apparently Sun and AT\&T have flip-flopped on whether +the long\-suffering \fIsprintf()\fR +should return an \fIint\fR or \fIchar\ *\fR. For Sun OS 4.1 this +option defines it as \fIchar\ *\fR. +@ + + +2.24 +log +@mention saving mtstailor, etc. +@ +text +@d225 1 +d232 18 +@ + + +2.23 +log +@suggest BSD43 with SUN40 +@ +text +@d897 1 +a897 1 +you may wish to preserve the following files: +d902 2 +a903 2 +\fIdirectory\fR \fIfiles\fR +etc/ MailAliases, mtstailor +d909 9 +@ + + +2.22 +log +@merge "nntpbboards" and "popbboards" into "bboards: nntp/pop" +@ +text +@d488 1 +a488 1 +\*(lqoptions BSD42\*(rq. +@ + + +2.21 +log +@*** empty log message *** +@ +text +@d223 1 +a223 1 +Support for the UCI BBoards facility. +d225 6 +a264 14 + +.ti -.5i +popbboards: off +.br +Support for the UCI BBoards facility via the POP service. +Requires both bboards and pop to be enabled. + +.ti -.5i +nntpbboards: off +.br +Support for the UCI BBoards facility to read the Network News +via the NNTP. +Requires bboards to be enabled. You cannot enable both +popbboards and nntpbboards. +@ + + +2.20 +log +@describe BSD43 a little better +@ +text +@d332 2 +a333 1 +If your \fIopenlog()\fR syslog function takes three arguments instead of two, +d336 1 +@ + + +2.19 +log +@add SUN41 +@ +text +@d332 3 +@ + + +2.18 +log +@fix NONTOHL desc +@ +text +@d494 8 +d504 1 +a504 1 +Use on AT&T SYSTEM 5 UNIX system. See also \fImailgroup\fR. +@ + + +2.17 +log +@doc NONTOHL +@ +text +@d435 4 +a438 4 +msh binary map files. Normally, \fIMH\fR will use this macro to byte-swap +binary information in \fImsh\fR map files. +If you need to be compatible with older versions of MH, +or aren't using the same map files on machines +@ + + +2.16 +log +@mention how to get MH +@ +text +@d432 10 +d558 1 +a558 1 +ccoptions: -O +@ + + +2.15 +log +@discourage TTYD use +@ +text +@d49 42 +a90 3 +As of July 1989, I understand that \fBMH\-Users\fR +is being gatewayed into \fBcomp.mail.mh\fR, though I don't know +if messages are gatewayed from the newsgroup back to the list. +@ + + +2.14 +log +@sharedlibs, and ccoptions -- minor doc updates +@ +text +@d460 1 +a460 1 +Support for TTYD. +@ + + +2.13 +log +@document DUMB a little better. +@ +text +@d509 1 +a509 1 +ccoptions: +d513 2 +d516 1 +d562 3 +a564 1 +The directory where the MH shared library should go. +d613 1 +a613 1 +% mhconfig MH +@ + + +2.12 +log +@SUN40/TYPESIG predefined +@ +text +@d309 2 +a310 1 +Directs \fIMH\fR to minimize address munging. +@ + + +2.11 +log +@minor documenting of SUN40/TYPESIG +@ +text +@d440 2 +a441 2 +Use on Sun OS 4.0 (and later?) systems. You'll also want +to set BSD42, BSD43, TYPESIG='void', and perhaps NFS. +@ + + +2.10 +log +@lex: +@ +text +@d440 2 +a441 1 +Use on Sun OS 4.0 (and later?) systems +@ + + +2.9 +log +@MAILGROUP stuff +@ +text +@d544 5 +@ + + +2.8 +log +@SHADOW +@ +text +@d117 6 +d266 4 +a269 5 +Makes a lot of simplifying assumptions that makes the code run a bit faster; +disables much of the address and header-parsing routines. +Also enables one other change: +\fIscan\fR has a -[no]reverse switch which does the obvious thing. +\fIMH\fR purists hate this. +d445 1 +a445 1 +Use on AT&T SYSTEM 5 UNIX system. +a454 1 + +d500 5 +@ + + +2.7 +log +@*** empty log message *** +@ +text +@d418 7 +@ + + +2.6 +log +@TZNAME +@ +text +@d376 6 +@ + + +2.5 +log +@*** empty log message *** +@ +text +@d452 7 +@ + + +2.4 +log +@SOCKETS +@ +text +@d404 8 +d417 1 +a417 1 +but it might be usefull for SYSTEM 5 systems with TCP/IP sockets. +@ + + +2.3 +log +@*** empty log message *** +@ +text +@d153 1 +a153 1 +How \fIMH\fR shuld backup existing files when installing a new file. +d163 1 +a163 1 +On 4.2BSD UNIX systems +d171 1 +a171 1 +for 4.2BSD UNIX systems, +d201 1 +a201 1 +This option currently works only on 4BSD UNIX systems. +d269 2 +a270 1 +If you are running with the BIND code under 4.{2,3}BSD, +d402 8 +@ + + +2.2 +log +@TYPESIG +@ +text +@d416 4 +a419 1 +This is true of System V Release 3.1 and later. +@ + + +2.1 +log +@defines for "make sys5" +@ +text +@d424 8 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d539 2 +a540 1 +Now install the configured files into the source areas. +@ + + +1.1 +log +@Initial revision +@ +text +@d49 3 +a51 3 +If there is sufficient interest, +corresponding Usenet news groups may be established along with the +appropriate gateways. +d201 1 +a201 1 +This option currently works only on 4.2BSD UNIX systems. +d222 8 +d260 2 +a261 1 +Makes a lot of simplifying assumptions that makes the code run a bit faster. +d273 1 +a273 1 +BSD42 +d275 1 +a275 1 +Use on Berkeley UNIX systems on or after 4.2BSD. +d278 1 +a278 1 +BSD41A +d280 1 +a280 1 +Use on 4.1a Berkeley UNIX systems. +d403 5 +d413 6 +d485 11 +@ diff --git a/docs/historical/mh-6.8.5/conf/RCS/mhconfig.c,v b/docs/historical/mh-6.8.5/conf/RCS/mhconfig.c,v new file mode 100644 index 0000000..a4aa24d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/RCS/mhconfig.c,v @@ -0,0 +1,2685 @@ +head 2.73; +access; +symbols; +locks; strict; +comment @ * @; + + +2.73 +date 96.02.08.19.07.47; author jromine; state Exp; +branches; +next 2.72; + +2.72 +date 96.02.08.18.36.25; author jromine; state Exp; +branches; +next 2.71; + +2.71 +date 93.11.30.22.01.04; author jromine; state Exp; +branches; +next 2.70; + +2.70 +date 93.08.25.18.07.10; author jromine; state Exp; +branches; +next 2.69; + +2.69 +date 93.08.20.19.47.46; author jromine; state Exp; +branches; +next 2.68; + +2.68 +date 93.08.19.23.51.43; author jromine; state Exp; +branches; +next 2.67; + +2.67 +date 93.06.03.17.59.55; author jromine; state Exp; +branches; +next 2.66; + +2.66 +date 93.06.03.17.43.20; author jromine; state Exp; +branches; +next 2.65; + +2.65 +date 93.02.26.19.01.17; author jromine; state Exp; +branches; +next 2.64; + +2.64 +date 92.12.16.21.01.07; author jromine; state Exp; +branches; +next 2.63; + +2.63 +date 92.12.02.19.08.03; author jromine; state Exp; +branches; +next 2.62; + +2.62 +date 92.11.13.00.55.38; author jromine; state Exp; +branches; +next 2.61; + +2.61 +date 92.11.12.22.48.51; author jromine; state Exp; +branches; +next 2.60; + +2.60 +date 92.11.11.22.58.07; author jromine; state Exp; +branches; +next 2.59; + +2.59 +date 92.11.11.21.26.23; author jromine; state Exp; +branches; +next 2.58; + +2.58 +date 92.11.10.22.40.56; author jromine; state Exp; +branches; +next 2.57; + +2.57 +date 92.11.09.17.37.20; author jromine; state Exp; +branches; +next 2.56; + +2.56 +date 92.11.06.00.46.48; author jromine; state Exp; +branches; +next 2.55; + +2.55 +date 92.11.05.19.25.27; author jromine; state Exp; +branches; +next 2.54; + +2.54 +date 92.11.05.17.20.49; author jromine; state Exp; +branches; +next 2.53; + +2.53 +date 92.11.04.03.00.54; author jromine; state Exp; +branches; +next 2.52; + +2.52 +date 92.10.31.07.56.48; author jromine; state Exp; +branches; +next 2.51; + +2.51 +date 92.10.27.20.22.26; author jromine; state Exp; +branches; +next 2.50; + +2.50 +date 92.10.27.18.10.15; author jromine; state Exp; +branches; +next 2.49; + +2.49 +date 92.10.26.22.32.44; author jromine; state Exp; +branches; +next 2.48; + +2.48 +date 92.10.21.02.06.58; author jromine; state Exp; +branches; +next 2.47; + +2.47 +date 92.10.20.23.49.51; author jromine; state Exp; +branches; +next 2.46; + +2.46 +date 92.10.20.20.40.19; author jromine; state Exp; +branches; +next 2.45; + +2.45 +date 92.10.19.21.59.33; author jromine; state Exp; +branches; +next 2.44; + +2.44 +date 92.10.19.19.57.22; author jromine; state Exp; +branches; +next 2.43; + +2.43 +date 92.10.19.16.46.32; author jromine; state Exp; +branches; +next 2.42; + +2.42 +date 92.05.12.21.45.45; author jromine; state Exp; +branches; +next 2.41; + +2.41 +date 92.03.03.17.09.57; author jromine; state Exp; +branches; +next 2.40; + +2.40 +date 92.03.03.17.07.48; author jromine; state Exp; +branches; +next 2.39; + +2.39 +date 92.02.09.23.30.11; author jromine; state Exp; +branches; +next 2.38; + +2.38 +date 92.02.08.00.02.59; author jromine; state Exp; +branches; +next 2.37; + +2.37 +date 92.02.07.19.12.39; author jromine; state Exp; +branches; +next 2.36; + +2.36 +date 92.02.05.22.10.00; author jromine; state Exp; +branches; +next 2.35; + +2.35 +date 92.02.05.21.52.46; author jromine; state Exp; +branches; +next 2.34; + +2.34 +date 92.02.05.21.10.45; author jromine; state Exp; +branches; +next 2.33; + +2.33 +date 92.01.31.22.47.36; author jromine; state Exp; +branches; +next 2.32; + +2.32 +date 92.01.31.21.07.51; author jromine; state Exp; +branches; +next 2.31; + +2.31 +date 92.01.27.17.34.29; author jromine; state Exp; +branches; +next 2.30; + +2.30 +date 91.01.25.14.48.44; author mh; state Exp; +branches; +next 2.29; + +2.29 +date 90.12.18.14.13.31; author mh; state Exp; +branches; +next 2.28; + +2.28 +date 90.12.18.13.38.31; author mh; state Exp; +branches; +next 2.27; + +2.27 +date 90.12.18.13.36.49; author mh; state Exp; +branches; +next 2.26; + +2.26 +date 90.11.05.16.24.55; author mh; state Exp; +branches; +next 2.25; + +2.25 +date 90.11.05.16.05.46; author mh; state Exp; +branches; +next 2.24; + +2.24 +date 90.11.05.15.56.27; author mh; state Exp; +branches; +next 2.23; + +2.23 +date 90.04.08.10.57.33; author sources; state Exp; +branches; +next 2.22; + +2.22 +date 90.04.06.09.54.00; author sources; state Exp; +branches; +next 2.21; + +2.21 +date 90.04.05.22.20.02; author sources; state Exp; +branches; +next 2.20; + +2.20 +date 90.04.05.15.29.12; author sources; state Exp; +branches; +next 2.19; + +2.19 +date 90.04.05.14.43.07; author sources; state Exp; +branches; +next 2.18; + +2.18 +date 90.04.02.14.49.52; author sources; state Exp; +branches; +next 2.17; + +2.17 +date 90.04.02.14.11.33; author sources; state Exp; +branches; +next 2.16; + +2.16 +date 90.03.21.11.01.12; author sources; state Exp; +branches; +next 2.15; + +2.15 +date 90.03.20.20.53.14; author sources; state Exp; +branches; +next 2.14; + +2.14 +date 90.03.19.15.49.44; author sources; state Exp; +branches; +next 2.13; + +2.13 +date 90.03.19.10.23.21; author sources; state Exp; +branches; +next 2.12; + +2.12 +date 90.03.15.21.25.01; author sources; state Exp; +branches; +next 2.11; + +2.11 +date 90.03.12.14.28.10; author sources; state Exp; +branches; +next 2.10; + +2.10 +date 90.03.09.14.27.20; author sources; state Exp; +branches; +next 2.9; + +2.9 +date 90.03.09.14.26.10; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.02.16.11.07.25; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.02.16.10.57.17; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.02.15.15.55.37; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.02.15.13.58.03; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.02.15.13.56.08; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.08.15.47.58; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.06.12.50.08; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.01.13.13.31; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.51; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 89.06.02.11.02.18; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 88.06.29.13.57.02; author sources; state Exp; +branches; +next ; + + +desc +@Initial revision with no mods. +Gary +@ + + +2.73 +log +@update for 6.8.4 +@ +text +@/* mhconfig.c - configure MH */ +/* cc [-DSYS5] mhconfig.c -o mhconfig */ +#ifndef lint +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.72 1996/02/08 18:36:25 jromine Exp jromine $"; +#endif /* lint */ + +#include +#include +#ifdef hpux +#define SYS5 +#endif +#ifdef SYS5 +#define index strchr +#define rindex strrchr +#endif /* SYS5 */ + +static void insopt(), mkopts(); + +extern char *strcpy(), *malloc(), *index(), *rindex(); +#ifdef notdef +extern char *sprintf(); /* rely on stdio.h to declare this */ +#endif + +#define BANNER "This is %s, for generic UNIX (MH.6 configuration program)\n\n" + + +#define SED "config.sed" +#define SEDOC "doc/config.sed" +#define MAKE "../%s/Makefile" + +#define WARNING "This file is automatically generated. Do not edit!" +#define MHRELEASE "6.8.4" /* for version: "Maj.min.pat" */ +#define MHCENTERFOOT "MH.6.8" /* for nroff page footers */ +#define MHLEFTFOOT "[mh.6]" /* [mh.6] MH.6.6 page# */ +#define MHSLIBVER "3.2" /* SunOS4 shared library version */ + +#define NOTOK (-1) + +#define NULLCP ((char *) 0) + +#define SVAL(s) (s ? s : "") + +#define QUOTE '\\' + +/* */ + +static int smtp = 0; +static int mpop = 0; + +static int sedP = 1; +static int filesP = 1; +static int docP = 1; +static int makeP = 1; + +static char *myname = "mhconfig"; +static char *config = NULL; +static char *myopts = NULL; + +static char *binpath = "/usr/local"; +static char *bbhome = "/usr/spool/bboards"; +static char *bboards = "off"; +static char *bbdelivery = "off"; +static char *ccoptions = NULL; +static char *chownpath = "/etc/chown"; +static char *compiler = "/bin/cc"; +static char *copy = "cp"; +static char *curses = "-lcurses -ltermlib"; +static char *debug = "off"; +static char *editor = "prompter"; +static char *etcpath = "/usr/local/lib/mh"; +static char *ldoptions = NULL; +static char *ldoptlibs = NULL; +static char *lex = "lex -nt"; +static char *ln = "ln"; +static char *mailgroup = "off"; +static char *mailpath = "/usr/spool/mail"; +static char *maildir = NULL; +static char *mailfile = NULL; +static char *mancat = "man"; +static char *mandir = "/usr/man"; +static char *manuals = "standard"; +static char *mf = "off"; +static char *mts = "sendmail"; +static char *poppath = "/usr/etc"; +static char *removeit = "mv -f"; +static char *regtest = "off"; +static char *oldload = "off"; +static char *options = NULL; +static char *pop = "off"; +static char *ranlib = "on"; +static char *sharedlib = "off"; +static char *signl = "int"; +static char *slibdir = "/usr/local/lib"; +static char *slflags = "-pic"; +static char *sprntf = NULL; + +/* */ + +#define unknown 0 +#define mmdf 1 +#define mmdf2 2 +#define mh 3 +#define sendmail 4 +static int mtsnum = unknown; + +static struct mtsopt { + char *mtskey; + char *optval; + int code; + int mtsflags; +#define NOFLAGS 0x00 +#define DOSMTP 0x01 +#define NOMF 0x02 +} mtsopts[] = { + "mmdf", "MMDFMTS MMDFI", mmdf, NOFLAGS, + "mmdf/smtp", "SENDMTS SMTP", mmdf, DOSMTP, + "mmdf2", "MMDFMTS MMDFII", mmdf2, NOFLAGS, + "mmdf2/smtp", "SENDMTS MMDFII SMTP", mmdf2, DOSMTP, + "mh", "MHMTS", mh, NOFLAGS, + "sendmail", "SENDMTS", sendmail, NOMF, + "sendmail/smtp", "SENDMTS SMTP", sendmail, NOMF, + "zmailer", "ZMAILER SENDMTS", sendmail, NOMF, + "zmailer/smtp", "ZMAILER SENDMTS SMTP", sendmail, NOMF, + NULL, NULL, unknown, NOFLAGS +}; + +/* other options which cause sed BEGIN/END configuration changes */ + +static struct copt { + char *c_name; + int c_value; +} copts[] = { + "APOP", 0, /* authenticated pop */ + "BSD43", 0, /* sgid ttys */ + "BSD44", 0, /* manual headings */ + "KPOP", 0, /* KERBEROS pop */ + "HESIOD", 0, + "MIME", 0, /* multi-media extensions */ + "MPOP", 0, /* mobile pop */ + "MSGID", 0, /* slocal dup surpression */ + "NORUSERPASS", 0, /* no ruserpass(3) */ + "TMA", 0, /* trusted mail */ + "TTYD", 0, + "UCI", 0, + NULL, 0 +}; + + + +/* */ + +static struct bind { + char *keyword; + + char **value; + + int flags; +#define BD_NIL 0x00 +#define BD_ADD 0x01 +} binds[] = { + "bin", &binpath, BD_NIL, + "bbhome", &bbhome, BD_NIL, + "bboards", &bboards, BD_NIL, + "bbdelivery", &bbdelivery, BD_NIL, + "ccoptions", &ccoptions, BD_ADD, + "chown", &chownpath, BD_NIL, + "cc", &compiler, BD_NIL, + "cp", ©, BD_NIL, + "curses", &curses, BD_NIL, + "debug", &debug, BD_NIL, + "editor", &editor, BD_NIL, + "etc", &etcpath, BD_NIL, + "ldoptions", &ldoptions, BD_ADD, + "ldoptlibs", &ldoptlibs, BD_ADD, + "lex", &lex, BD_NIL, + "ln", &ln, BD_NIL, + "mail", &mailpath, BD_NIL, + "mailgroup", &mailgroup, BD_NIL, + "mandir", &mandir, BD_NIL, + "manuals", &manuals, BD_NIL, + "mf", &mf, BD_NIL, + "mts", &mts, BD_NIL, + "oldload", &oldload, BD_NIL, + "options", &options, BD_ADD, + "pop", &pop, BD_NIL, + "popdir", &poppath, BD_NIL, + "ranlib", &ranlib, BD_NIL, + "remove", &removeit, BD_NIL, + "regtest", ®test, BD_NIL, + "sharedlib", &sharedlib, BD_NIL, + "signal", &signl, BD_NIL, + "slflags", &slflags, BD_NIL, + "slibdir", &slibdir, BD_NIL, + "sprintf", &sprntf, BD_NIL, + NULL +}; + +/* */ + +char *files[] = { + "../support/bboards/bboards.daily", + "../support/bboards/bboards.weekly", + "../support/bboards/crontab", + "../support/bboards/MakeBBoards", + "../config/config.c", + "../zotnet/mts/mts.c", + "../zotnet/mts/mtstailor", + "../support/general/MailAliases", + "../mts/sendmail/bboardsMH.m4", + "../mts/sendmail/popMH.m4", + NULL +}; + +static struct pair { + char *infile; + char *outfile; +} makefiles[] = { + "makefiles/MH-Makefile", ".", + "makefiles/config","config", + "makefiles/dist","dist", + "makefiles/doc","doc", + "makefiles/mtsM","mts", + "makefiles/mts/mh","mts/mh", + "makefiles/mts/mmdf","mts/mmdf", + "makefiles/mts/sendmail","mts/sendmail", + "makefiles/papers","papers", + "makefiles/sbr","sbr", + "makefiles/supportM","support", + "makefiles/support/bboards","support/bboards", + "makefiles/support/general","support/general", + "makefiles/support/pop","support/pop", + "makefiles/uip","uip", + "makefiles/zotnetM","zotnet", + "makefiles/zotnet/bboards","zotnet/bboards", + "makefiles/zotnet/mf","zotnet/mf", + "makefiles/zotnet/mts","zotnet/mts", + "makefiles/zotnet/tws","zotnet/tws", + NULL +}; + + +static do_sed(), do_sedfile(), do_files(), do_doc(), do_make(); +static shell(), arginit(), add_option(), trim(); + +static char *stradd (), *strdup (), *tail (); + +long time (); + +/* */ + +/* ARGSUSED */ + +main (argc, argv, envp) +int argc; +char **argv, + **envp; +{ + arginit (argv); + + if (sedP) + do_sed (); + if (filesP) + do_files (); + if (docP) + do_doc (); + if (makeP) + do_make (); + +#ifdef notdef + printf ("Don't forget to edit \"config/mtstailor\"\n"); +#endif + if (filesP || makeP) + printf ("Don't forget to run \"make clean\" in the top directory before compiling\n"); + + exit (0); +} + +/* */ + +static do_sed () { + if (docP != 2) + do_sedfile (SED, 0); + do_sedfile (SEDOC, smtp); +} + +static do_alldoc (fp) +FILE *fp; +{ + fprintf (fp, "%s\n%s\n%s\n%s\n", /* turn @@BEGIN: XX into #ifdef XX */ + "s!^@@BEGIN: \\(.*\\)$!.br\\", /* for MH wizard manual set */ + ".ti 0i\\", + "#ifdef \\1\\", + ".br!" + ); + fprintf (fp, "%s\n%s\n%s\n%s\n", + "s!^@@END: \\(.*\\)$!.br\\", + ".ti 0i\\", + "#endif /* \\1\\ */", + ".br!" + ); +} + +/* */ + +static do_sedfile (sed, flag) +char *sed; +int flag; +{ + int i; + FILE * fp; + struct copt *op; + + if ((fp = fopen (sed, "w")) == NULL) + adios (sed, "unable to write"); + printf ("generating %s\n", sed); + + if (docP == 2) { + printf ("...using special all-doc format.\n"); + printf ("Be sure to reconfigure before compiling.\n"); + do_alldoc(fp); /* hack up doc/config.sed */ + } + + fprintf (fp, "s%%@@(MHCONFIGFILE)%%%s%%g\n", SVAL(config)); + fprintf (fp, "s%%@@(MHWARNING)%%%s%%g\n", WARNING); + fprintf (fp, "s%%@@(MHRELEASE)%%%s%%g\n", MHRELEASE); + fprintf (fp, "s%%@@(MHCENTERFOOT)%%%s%%g\n", MHCENTERFOOT); + fprintf (fp, "s%%@@(MHLEFTFOOT)%%%s%%g\n", MHLEFTFOOT); + fprintf (fp, "s%%@@(MHBINPATH)%%%s%%g\n", SVAL (binpath)); + fprintf (fp, "s%%@@(MHETCPATH)%%%s%%g\n", SVAL (etcpath)); + fprintf (fp, "s%%@@(MHPOPDPATH)%%%s%%g\n", SVAL (poppath)); + fprintf (fp, "s%%@@(MHCHOWNPATH)%%%s%%g\n", SVAL (chownpath)); + fprintf (fp, "s%%@@(MHDROPATH)%%%s%%g\n", SVAL (maildir)); + fprintf (fp, "s%%@@(MHDROPFIL)%%%s%%g\n", SVAL (mailfile)); + if (maildir) + fprintf (fp, "s%%@@(MHDROPLOC)%%%s/$USER%%g\n", SVAL (maildir)); + else + fprintf (fp, "s%%@@(MHDROPLOC)%%$HOME/%s%%g\n", SVAL (mailfile)); + fprintf (fp, "s%%@@(MHDROPHAK)%%%s%%g\n",/* HACK */ + maildir ? maildir : "/usr/spool/mail"); + + fprintf (fp, "s%%@@(MHMANDIR)%%%s%%g\n", mandir); + fprintf (fp, "s%%@@(MHCATMAN)%%%s%%g\n", + strcmp(mancat, "cat") == 0 ? "| nroff -man" : ""); + if (strcmp (manuals, "standard") == 0 || strcmp (manuals, "gen") == 0) + for (i = 1; i <= 8; i++) { + fprintf (fp, "s%%@@(MHMANDIR%d)%%%s%d%%g\n", i, mancat, i); + fprintf (fp, "s%%@@(MHMANEXT%d)%%%d%%g\n", i, i); + } + else + for (i = 1; i <= 8; i++) { + fprintf (fp, "s%%@@(MHMANDIR%d)%%%s%c%%g\n", i, mancat, + strcmp (manuals, "new") == 0 ? 'n' + : strcmp (manuals, "old") == 0 ? 'o' + : strcmp (manuals, "bsd44") == 0 ? i + '0' + : 'l'); + fprintf (fp, "s%%@@(MHMANEXT%d)%%%c%%g\n", i, + strcmp (manuals, "new") == 0 ? 'n' + : strcmp (manuals, "old") == 0 ? 'o' + : strcmp (manuals, "bsd44") == 0 ? '0' + : 'l'); + } + +/* */ + + if (strcmp (regtest, "on") == 0) + fprintf (fp, "s%%@@(MHHOSTVER)%%%s%%g\n", "-n"); + else + fprintf (fp, "s%%@@(MHHOSTVER)%%%s%%g\n", ""); + + if (strcmp (manuals, "gen") == 0 || strcmp (manuals, "none") == 0) + fprintf (fp, "s%%@@(MHMANGEN)%%%s%%g\n", "#"); /* comment char */ + else + fprintf (fp, "s%%@@(MHMANGEN)%%%s%%g\n", ""); + + fprintf (fp, "s%%@@(MHEDITOR)%%%s%%g\n", SVAL (editor)); + fprintf (fp, "s%%@@(MHCONFIG)%%%s%%g\n", SVAL (myopts)); + fprintf (fp, "s%%@@(MHCOMPILER)%%%s%%g\n", SVAL (compiler)); + fprintf (fp, "s%%@@(CP)%%%s%%g\n", SVAL (copy)); + fprintf (fp, "s%%@@(LN)%%%s%%g\n", SVAL (ln)); + fprintf (fp, "s%%@@(LEX)%%%s%%g\n", SVAL (lex)); + if (ccoptions) + fprintf (fp, "s%%@@(MHOPTIONS)%%%s %s%%g\n", + SVAL (options), SVAL (ccoptions)); + else + fprintf (fp, "s%%@@(MHOPTIONS)%%%s %s%%g\n", + SVAL (options), "-O"); + fprintf (fp, "s%%@@(LDOPTIONS)%%%s%%g\n", SVAL (ldoptions)); + fprintf (fp, "s%%@@(LDOPTLIB)%%%s%%g\n", SVAL (ldoptlibs)); + fprintf (fp, "s%%@@(LDCURSES)%%%s%%g\n", SVAL (curses)); + + if (strcmp (bboards, "off") == 0) + fprintf (fp, "/^@@BEGIN: BBOARDS$/,/^@@END: BBOARDS$/d\n"); + else + fprintf (fp, "/^@@BEGIN: BBOARDS$/d\n/^@@END: BBOARDS$/d\n"); + fprintf (fp, "s%%@@(BBHOME)%%%s%%g\n", SVAL (bbhome)); + if (strcmp (bbdelivery, "off") == 0) + fprintf (fp, "/^@@BEGIN: BBSERVER$/,/^@@END: BBSERVER$/d\n"); + else + fprintf (fp, "/^@@BEGIN: BBSERVER$/d\n/^@@END: BBSERVER$/d\n"); + + if (strcmp (debug, "on") == 0) { + fprintf (fp, "/^@@BEGIN: DEBUG$/d\n/^@@END: DEBUG$/d\n"); + fprintf (fp, "/^@@BEGIN: OPTIM$/,/^@@END: OPTIM$/d\n"); + } + else { + fprintf (fp, "/^@@BEGIN: DEBUG$/,/^@@END: DEBUG$/d\n"); + fprintf (fp, "/^@@BEGIN: OPTIM$/d\n/^@@END: OPTIM$/d\n"); + } + + if (strcmp (mailgroup, "off")) { /* for SYS5 sgid-inc */ + fprintf (fp, "/^@@BEGIN: MAILGROUP$/d\n/^@@END: MAILGROUP$/d\n"); + fprintf (fp, "s%%@@(MAILGROUP)%%%s%%g\n", SVAL (mailgroup)); + } + else + fprintf (fp, "/^@@BEGIN: MAILGROUP$/,/^@@END: MAILGROUP$/d\n"); + + if (strcmp (oldload, "on") == 0) + fprintf (fp, "/^@@BEGIN: OLDLOAD$/d\n/^@@END: OLDLOAD$/d\n"); + else + fprintf (fp, "/^@@BEGIN: OLDLOAD$/,/^@@END: OLDLOAD$/d\n"); + if (strcmp (oldload, "off") == 0) + fprintf (fp, "/^@@BEGIN: NEWLOAD$/d\n/^@@END: NEWLOAD$/d\n"); + else + fprintf (fp, "/^@@BEGIN: NEWLOAD$/,/^@@END: NEWLOAD$/d\n"); + +/* */ + + if (strcmp (ranlib, "on") == 0) { + fprintf (fp, "/^@@BEGIN: RANLIB$/d\n/^@@END: RANLIB$/d\n"); + fprintf (fp, "/^@@BEGIN: LORDER$/,/^@@END: LORDER$/d\n"); + } + else { + fprintf (fp, "/^@@BEGIN: LORDER$/d\n/^@@END: LORDER$/d\n"); + fprintf (fp, "/^@@BEGIN: RANLIB$/,/^@@END: RANLIB$/d\n"); + } + + if (strcmp (sharedlib, "off")) { /* if not off */ + fprintf (fp, "/^@@BEGIN: SHAREDLIB$/d\n/^@@END: SHAREDLIB$/d\n"); + fprintf (fp, "/^@@BEGIN: STDLIB$/,/^@@END: STDLIB$/d\n"); + fprintf (fp, "s%%@@(SLIBDIR)%%%s%%g\n", slibdir); + fprintf (fp, "s%%@@(SLIBVER)%%%s%%g\n", MHSLIBVER); + fprintf (fp, "s%%@@(SLFLAGS)%%%s%%g\n", SVAL(slflags)); + if (strcmp (sharedlib, "secure") == 0) + fprintf (fp, "s%%@@(SLDFLAG)%%-L%s%%g\n",slibdir); + else + fprintf (fp, "s%%@@(SLDFLAG)%%%%g\n"); + } + else { + fprintf (fp, "/^@@BEGIN: STDLIB$/d\n/^@@END: STDLIB$/d\n"); + fprintf (fp, "/^@@BEGIN: SHAREDLIB$/,/^@@END: SHAREDLIB$/d\n"); + } + if (strcmp (sharedlib, "sun4") == 0 || strcmp (sharedlib, "on") == 0) + fprintf (fp, "/^@@BEGIN: SUN4SHLIB$/d\n/^@@END: SUN4SHLIB$/d\n"); + else + fprintf (fp, "/^@@BEGIN: SUN4SHLIB$/,/^@@END: SUN4SHLIB$/d\n"); + if (strcmp (sharedlib, "sys5") == 0) + fprintf (fp, "/^@@BEGIN: SYS5SHLIB$/d\n/^@@END: SYS5SHLIB$/d\n"); + else + fprintf (fp, "/^@@BEGIN: SYS5SHLIB$/,/^@@END: SYS5SHLIB$/d\n"); + +/* */ + + if (flag || ((mtsnum == mmdf || mtsnum == mmdf2) && !smtp)) { + fprintf (fp, "/^@@BEGIN: MMDFMTS$/d\n/^@@END: MMDFMTS$/d\n"); + if (mtsnum == mmdf) + fprintf (fp, "/^@@BEGIN: MMDFIMTS$/d\n/^@@END: MMDFIMTS$/d\n"); + else + fprintf (fp, "/^@@BEGIN: MMDFIMTS$/,/^@@END: MMDFIMTS$/d\n"); + if (mtsnum == mmdf2) + fprintf (fp, "/^@@BEGIN: MMDFIIMTS$/d\n/^@@END: MMDFIIMTS$/d\n"); + else + fprintf (fp, "/^@@BEGIN: MMDFIIMTS$/,/^@@END: MMDFIIMTS$/d\n"); + } + else { + fprintf (fp, "/^@@BEGIN: MMDFMTS$/,/^@@END: MMDFMTS$/d\n"); + fprintf (fp, "/^@@BEGIN: MMDFIMTS$/,/^@@END: MMDFIMTS$/d\n"); + fprintf (fp, "/^@@BEGIN: MMDFIIMTS$/,/^@@END: MMDFIIMTS$/d\n"); + } + + if (mtsnum == mh) + fprintf (fp, "/^@@BEGIN: MHMTS$/d\n/^@@END: MHMTS$/d\n"); + else + fprintf (fp, "/^@@BEGIN: MHMTS$/,/^@@END: MHMTS$/d\n"); + + if (!flag && (mtsnum == sendmail || smtp)) + fprintf (fp, "/^@@BEGIN: SENDMTS$/d\n/^@@END: SENDMTS$/d\n"); + else + fprintf (fp, "/^@@BEGIN: SENDMTS$/,/^@@END: SENDMTS$/d\n"); + + switch (mtsnum) { + case mh: + case sendmail: + case mmdf: + fprintf (fp, "/^@@BEGIN: SENDMTSHACK$/d\n/^@@END: SENDMTSHACK$/d\n"); + break; + + default: + fprintf (fp, "/^@@BEGIN: SENDMTSHACK$/,/^@@END: SENDMTSHACK$/d\n"); + break; + } + +/* */ + + /* special hack for support/pop/popser.c */ + fprintf (fp, "s%%@@(POPUUMBOX)%%%s%%g\n", + mtsnum == sendmail ? "-DPOPUUMBOX" : ""); + + if (smtp) + fprintf (fp, "/^@@BEGIN: SMTP$/d\n/^@@END: SMTP$/d\n"); + else + fprintf (fp, "/^@@BEGIN: SMTP$/,/^@@END: SMTP$/d\n"); + + if (strcmp (pop, "on") == 0) + fprintf (fp, "/^@@BEGIN: POP$/d\n/^@@END: POP$/d\n"); + else + fprintf (fp, "/^@@BEGIN: POP$/,/^@@END: POP$/d\n"); + + if (strcmp (bboards, "pop") == 0) + fprintf (fp, "/^@@BEGIN: BPOP$/d\n/^@@END: BPOP$/d\n"); + else + fprintf (fp, "/^@@BEGIN: BPOP$/,/^@@END: BPOP$/d\n"); + + if (strcmp (bboards, "nntp") == 0) + fprintf (fp, "/^@@BEGIN: NNTP$/d\n/^@@END: NNTP$/d\n"); + else + fprintf (fp, "/^@@BEGIN: NNTP$/,/^@@END: NNTP$/d\n"); + + if (strcmp (mf, "on") == 0) + fprintf (fp, "/^@@BEGIN: MF$/d\n/^@@END: MF$/d\n"); + else + fprintf (fp, "/^@@BEGIN: MF$/,/^@@END: MF$/d\n"); + + fprintf (fp, "s%%@@(MHREMOVE)%%%s%%g\n", SVAL (removeit)); + + for (op = copts; op->c_name; op++) { + fprintf (fp, op->c_value ? "/^@@BEGIN: %s$/d\n/^@@END: %s$/d\n" : + "/^@@BEGIN: %s$/,/^@@END: %s$/d\n", + op->c_name, op->c_name); + } + + (void) fclose (fp); +} + +/* */ + +static do_files () { + char **pp; + + for (pp = files; *pp; pp++) + shell ("rm -f %s; sed -f %s < config/%s > %s", + *pp, SED, tail (*pp), *pp); +} + + +static do_doc () { + shell ("./mhdoc"); +} + + +static do_make () { + char buffer[BUFSIZ]; + struct pair *pp; + + for (pp = makefiles; pp -> infile; pp++) { + (void) sprintf (buffer, MAKE, pp -> outfile); + shell ("rm -f %s; sed -f %s < %s > %s", + buffer, SED, pp -> infile, buffer); + } +} + +/* */ + +/* VARARGS */ + +static shell (fmt, a, b, c, d) +char *fmt, + *a, + *b, + *c, + *d; +{ + char buffer[BUFSIZ]; + + (void) sprintf (buffer, fmt, a, b, c, d); + printf ("%s\n", buffer); + (void) fflush (stdout); + + if (system (buffer)) + adios (NULLCP, "failed"); +} + +/* */ + +static arginit (vec) +char **vec; +{ + int i; + char *ap, + *cp, + *dp, + buffer[BUFSIZ]; + struct bind *bp; + FILE * fp; + + myname = tail (*vec); + printf (BANNER, myname); + (void) fflush (stdout); + + for (vec++; *vec; vec++) { + if (strcmp (*vec, "-D") == 0) { + sedP = 1; filesP = makeP = 0; docP = 2; + continue; + } + if (strcmp (*vec, "-s") == 0) { + sedP = !sedP; + continue; + } + if (strcmp (*vec, "-f") == 0) { + filesP = !filesP; + continue; + } + if (strcmp (*vec, "-d") == 0) { + docP = !docP; + continue; + } + if (strcmp (*vec, "-m") == 0) { + makeP = !makeP; + continue; + } + if (strcmp (*vec, "-help") == 0) { + printf ("usage: %s [opt] file\n", myname); + printf ("%s\n%s\n%s\n%s\n", + " -s\tno sed files", " -f\tno config files", + " -d\tno doc files", " -m\tno makefiles"); + exit (0); + } + break; + } + if ((config = *vec) == NULL || vec[1] != NULL) /* no arg or too many */ + adios (NULLCP, "usage: %s file", myname); + +/* */ + + if ((fp = fopen (config, "r")) == NULL) + adios (config, "unable to read"); + + while (fgets (buffer, sizeof buffer, fp)) { + if (ap = index (buffer, '\n')) + *ap-- = '\0'; + else + ap = &buffer[strlen (buffer) - 1]; + while (ap >= buffer) + if (isspace (*ap)) + *ap = '\0'; + else + break; + for (cp = buffer; isspace (*cp); cp++) + continue; + if (*cp == '\0' || *cp == '#') + continue; + for (ap = cp; *ap; ap++) + if (isspace (*ap) || *ap == ':') { + *ap++ = '\0'; + while (isspace (*ap)) + ap++; + break; + } + for (bp = binds; bp -> keyword; bp++) + if (strcmp (bp -> keyword, cp) == 0) + break; + if (bp -> keyword == NULL) + adios (NULLCP, "unknown option %s in %s", cp, config); + else + if (*(bp -> value) == NULL || !(bp -> flags & BD_ADD)) + *(bp -> value) = strdup (ap); + else + *(bp -> value) = stradd (ap, stradd (" ", *(bp -> value))); + } + + (void) fclose (fp); + +/* */ + + if (binpath == NULL) + adios (NULLCP, "bin must be specified in %s", config); + trim (binpath); + + if (strcmp (bboards, "on") && strcmp (bboards, "off") && + strcmp (bboards, "pop") && strcmp (bboards, "nntp")) + adios (NULLCP, "bboards should be %s not %s", + "either \"on\", \"off\", \"pop\" or \"nntp\"", bboards); + if (strcmp (bboards, "off") == 0 && strcmp (bbdelivery, "off")) + adios (NULLCP, + "you cannot have \"bbdelivery\" \"%s\" with \"bboards\" \"%s\"", + bbdelivery, bboards); + if (bbhome == NULL) + adios (NULLCP, "bbhome must be specified in %s", config); + trim (bbhome); + + if (strcmp (debug, "on") && strcmp (debug, "off")) + adios (NULLCP, "debug should be either \"on\" or \"off\", not %s", + debug); + + if (etcpath == NULL) + adios (NULLCP, "etc must be specified in %s", config); + trim (etcpath); + + if (strcmp (mailgroup, "off")) /* if not "off" */ + add_option ("MAILGROUP"); + if (mailpath == NULL) + adios (NULLCP, "mail must be specified in %s", config); + trim (mailpath); + if (*mailpath == '/') + maildir = mailpath; + else + mailfile = mailpath; + + if (cp = index (manuals, '/')) { /* "standard/cat" */ + *cp++ = 0; + mancat = cp; + if (strcmp (mancat, "cat")) + adios (NULLCP,"invalid manuals setting: %s/%s",manuals, mancat); + } + if (strcmp (manuals, "standard") + && strcmp (manuals, "bsd44") + && strcmp (manuals, "local") + && strcmp (manuals, "new") + && strcmp (manuals, "old") + && strcmp (manuals, "gen") + && strcmp (manuals, "none")) + adios (NULLCP,"invalid manuals setting: %s",manuals); + + if (mts == NULL) + adios (NULLCP, "mts must be specified in %s", config); + for (i = 0; mtsopts[i].mtskey; i++) + if (strcmp (mts, mtsopts[i].mtskey) == 0) + break; + if ((mtsnum = mtsopts[i].code) == unknown) + adios (NULLCP, "invalid mts setting: %s", mts); + add_option (mtsopts[i].optval); + smtp = mtsopts[i].mtsflags & DOSMTP; + if (mtsopts[i].mtsflags & NOMF) + mf = "off"; /* hack... */ + + if (strcmp (pop, "on") && strcmp (pop, "off")) + adios (NULLCP, "pop should be either \"on\" or \"off\", not %s", pop); + if (strcmp (pop, "on") == 0) + add_option ("POP"); + + if (strcmp (bboards, "pop") == 0) { + add_option ("BPOP"); + if (strcmp (pop, "on")) + adios (NULLCP, "bboards \"pop\" requires pop \"on\""); + } + else if (strcmp (bboards, "nntp") == 0) { + add_option ("BPOP");/* used by msh.c & bbc.c, but see also pshsbr.c */ + add_option ("NNTP"); + if (mpop) + adios (NULLCP, + "bboards \"nntp\" is incompatible with \"options MPOP\""); + } + + if (strcmp (mf, "on") && strcmp (mf, "off")) + adios (NULLCP, "mf should be either \"on\" or \"off\", not %s", mf); + if (strcmp (mf, "on") == 0) + add_option ("MF"); + + if (sprntf && strcmp (sprntf, "char *")) {/* this defaults to "char *" */ + if (strcmp (sprntf, "int")) + adios (NULLCP, + "sprintf should be either \"int\" or \"char *\", not %s", + sprntf); + add_option ("SPRINTFTYPE=int"); + } + + if (strcmp (sharedlib, "on") && strcmp (sharedlib, "off") + && strcmp (sharedlib, "sun4") && strcmp (sharedlib, "sys5") + && strcmp (sharedlib, "secure")) + adios (NULLCP, + "sharedlib should be either \"sun4\", \"sys5\", or \"off\", not %s", + sharedlib); + + (void) sprintf(buffer, "TYPESIG=%s", signl); + add_option (buffer); + +/* loop over options string and add -D ccoptions */ + + begin_myopt (); + if (cp = options) { + for (ap = cp; *ap; ap++) + if (isspace (*ap)) + *ap = ' '; + options = NULL; + for (ap = cp; dp = index (ap, ' '); ap = dp) { + *dp++ = '\0'; + add_myopt (ap); + (void) sprintf (buffer, "%s-D%s", options ? " " : "", ap); + ap = buffer; + options = stradd (ap, options); + while (isspace (*dp)) + dp++; + } + if (*ap) { + add_myopt (ap); + (void) sprintf (buffer, "%s-D%s", options ? " " : "", ap); + ap = buffer; + options = stradd (ap, options); + } + free (cp); + } + end_myopt (); + if (strcmp (bboards, "nntp") == 0 && mpop) + adios (NULLCP, + "bboards \"nntp\" is incompatible with \"options MPOP\""); +} + +/* */ + +static add_option (s) +char *s; +{ + options = options ? stradd (s, stradd (" ", options)) : strdup (s); +} + + +begin_myopt () { + myopts = strdup ("char *options[] = {"); +} + + +add_myopt (s) +char *s; +{ + int len; + char *bp, + buffer[BUFSIZ]; + struct copt *op; + static int nameoutput = 0; + static int linepos = 0; + static int outputlinelen = 72; + + for (op = copts; op->c_name; op++) + if (!strncmp (op->c_name,s,strlen(op->c_name))) { + op->c_value = 1; + break; + } + + if (strcmp (s, "MPOP") == 0) + mpop = 1; + if (smtp && strcmp (s, "BERK") == 0) { + fprintf (stderr, "\"options BERK\" overriding smtp suffix...\n"); + smtp = 0; + } + if (!nameoutput) { + printf ("%s: ", bp = "options"); + linepos += (nameoutput = strlen (bp) + 2); + } + len = strlen (s); + if (linepos != nameoutput) + if (len + linepos + 3 > outputlinelen) + printf ("\n%*s", linepos = nameoutput, ""); + else + printf (" "), linepos++; + printf ("[%s]", s); + linepos += len + 2; + (void) fflush (stdout); + + bp = buffer; + *bp++ = '"'; + while (*s) { + if (*s == '"') + *bp++ = QUOTE, *bp++ = QUOTE; + *bp++ = *s++; + } + (void) strcpy (bp, "\", "); + insopt (buffer); +} + + +end_myopt () { + printf ("\n"); + (void) fflush (stdout); + mkopts(); + myopts = stradd ("NULL};", myopts); +} + +/* */ + +static trim (s) +char *s; +{ + char *p; + + if (s == NULL || (p = rindex (s, '/')) == NULL) + return; + if (*++p == '\0') + *--p = '\0'; +} + + +static char *tail (s) +char *s; +{ + char *p; + + if (p = rindex (s, '/')) + p++; + return ((p == NULL || *p == '\0') ? s : p); +} + +/* */ + +static char *stradd (s1, s2) +char *s1, + *s2; +{ + char *p; + + if (s1 == NULL || *s1 == '\0') + return s2; + if (s2 == NULL) + return strdup (s1); + if ((p = malloc ((unsigned) (strlen (s1) + strlen (s2) + 2))) == NULL) + adios (NULLCP, "insufficient memory"); + + (void) sprintf (p, "%s%s", s2, s1); + if (s2) + free (s2); + return p; +} + + +static char *strdup (s) +char *s; +{ + char *p; + + if ((p = malloc ((unsigned) (strlen (s) + 1))) == NULL) + adios (NULLCP, "insufficient memory"); + + (void) strcpy (p, s); + return p; +} + +/* */ + +#ifdef notdef +/* these used to be for SYS5 machines, but now this is compiled + * with -DSYS5 which redefines the SYS5 str[r]chr names to [r]index. + */ +static char *index (s, c) +char *s, + c; +{ + char i; + + while (i = *s++) + if (i == c) + return (s - 1); + + return NULL; +} + + +static char *rindex (s, c) +char *s, + c; +{ + char i, + *t; + + t = NULL; + while (i = *s++) + if (i == c) + t = s - 1; + + return t; +} +#endif /* notdef */ + +/* */ + +/* VARARGS */ + +adios (what, fmt, a, b, c) +char *what, + *fmt, + *a, + *b, + *c; +{ + (void) fflush (stdout); + + fprintf (stderr, "%s: ", myname); + fprintf (stderr, fmt, a, b, c); + if (what) { + (void) fputc (' ', stderr); + perror (what); + } + else + (void) fputc ('\n', stderr); + + exit (1); +} + +/* quick and dirty ordering of options for readability */ + +struct opt { + char *s; + struct opt *n; +}; + +static struct opt *optp = (struct opt *)NULL; + +static void +insopt(s) +char *s; /* string for sorting */ +{ + struct opt *p, + *np, + *lp = (struct opt *)NULL; + + if ((np = (struct opt *) malloc ((unsigned) sizeof (struct opt))) == + (struct opt *)NULL) + adios (NULL, "unable to malloc opt"); + np -> s = strdup(s); + np -> n = (struct opt *)NULL; + + for (p = optp; p; lp = p, p = p -> n) { + if (strcmp (p->s, s) > 0) + break; + } + if (p) + np -> n = p; + if (lp) + lp -> n = np; + else + optp = np; +} + +static void +mkopts() +{ + struct opt *p; + + for (p = optp; p; p = p -> n) + myopts = stradd (p->s, myopts); +} +@ + + +2.72 +log +@add BSD44 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.71 1993/11/30 22:01:04 jromine Exp jromine $"; +d32 1 +a32 1 +#define MHRELEASE "6.8.3" /* for version: "Maj.min.pat" */ +@ + + +2.71 +log +@update for MH 6.8.3 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.70 1993/08/25 18:07:10 jromine Exp jromine $"; +d135 1 +@ + + +2.70 +log +@update to MH 6.8.2 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.69 1993/08/20 19:47:46 jromine Exp jromine $"; +d32 1 +a32 1 +#define MHRELEASE "6.8.2" /* for version: "Maj.min.pat" */ +@ + + +2.69 +log +@update version +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.68 1993/08/19 23:51:43 jromine Exp jromine $"; +d32 1 +a32 1 +#define MHRELEASE "6.8.1" /* for version: "Maj.min.pat" */ +@ + + +2.68 +log +@add bsd44 hacks +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.67 1993/06/03 17:59:55 jromine Exp $"; +d32 1 +a32 1 +#define MHRELEASE "6.8" /* for version: "Maj.min.pat" */ +@ + + +2.67 +log +@fixup +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.66 1993/06/03 17:43:20 jromine Exp jromine $"; +d353 1 +d358 1 +d724 1 +@ + + +2.66 +log +@allow manuals to be installed "pre-nroff'd" (manuals: standard/cat) +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.63 1992/12/02 19:08:03 jromine Exp $"; +d715 3 +a717 2 + if (mancat = index (manuals, '/')) { /* "standard/cat" */ + *mancat++ = '\0'; +@ + + +2.65 +log +@add NORUSERPASS for 386BSD +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.64 1992/12/16 21:01:07 jromine Exp jromine $"; +d79 1 +d341 2 +d345 1 +a345 1 + fprintf (fp, "s%%@@(MHMANDIR%d)%%man%d%%g\n", i, i); +d350 1 +a350 1 + fprintf (fp, "s%%@@(MHMANDIR%d)%%man%c%%g\n", i, +d715 5 +@ + + +2.64 +log +@typo -- fix "manuals: none" +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.63 1992/12/02 19:08:03 jromine Exp jromine $"; +d139 1 +@ + + +2.63 +log +@changes for release 6.8 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.62 1992/11/13 00:55:38 jromine Exp jromine $"; +d363 1 +a363 1 + if (strcmp (manuals, "gen") == 0 || strcmp (manuals, "gen") == 0) +@ + + +2.62 +log +@add TTYD config +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.61 1992/11/12 22:48:51 jromine Exp jromine $"; +d32 2 +a33 2 +#define MHRELEASE "6.7" /* for version: "Maj.min.pat" */ +#define MHCENTERFOOT "MH.6.7.5beta" /* for nroff page footers */ +@ + + +2.61 +log +@typo +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.60 1992/11/11 22:58:07 jromine Exp jromine $"; +d140 1 +@ + + +2.60 +log +@typo +add slflags for "-pic" or "-K pic" +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.59 1992/11/11 21:26:23 jromine Exp $"; +d188 1 +a189 1 + "slflags", &slflags, BD_NIL, +@ + + +2.59 +log +@typo +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.58 1992/11/10 22:40:56 jromine Exp jromine $"; +d93 1 +d189 1 +d432 1 +a432 1 + fprintf (fp, "s%%@@(SLIBDIR)%%%s%%g\n",slibdir); +d434 1 +d769 1 +a769 1 + add_options (buffer); +@ + + +2.58 +log +@add "signal"--defines TYPESIG +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.57 1992/11/09 17:37:20 jromine Exp jromine $"; +d267 1 +a267 1 + printf ("Don't forget to run \"make clean\" before compiling\n"); +@ + + +2.57 +log +@typo "link" -> "ln" +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.56 1992/11/06 00:46:48 jromine Exp jromine $"; +d91 1 +d186 1 +d764 3 +@ + + +2.56 +log +@allow "directive: value" +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.55 1992/11/05 19:25:27 jromine Exp jromine $"; +d170 1 +a170 1 + "link", &ln, BD_NIL, +@ + + +2.55 +log +@add "ln" +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.54 1992/11/05 17:20:49 jromine Exp jromine $"; +d649 1 +a649 1 + if (isspace (*ap)) { +@ + + +2.54 +log +@add "popdir" +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.53 1992/11/04 03:00:54 jromine Exp jromine $"; +d74 1 +d170 1 +d367 1 +@ + + +2.53 +log +@slib 3.2 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.52 1992/10/31 07:56:48 jromine Exp jromine $"; +d178 1 +a178 1 + "poppath", &poppath, BD_NIL, +@ + + +2.52 +log +@fix in m_getfld -> libver 3.1 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.51 1992/10/27 20:22:26 jromine Exp jromine $"; +d35 1 +a35 1 +#define MHSLIBVER "3.1" /* SunOS4 shared library version */ +@ + + +2.51 +log +@add MSGID +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.50 1992/10/27 18:10:15 jromine Exp jromine $"; +d35 1 +a35 1 +#define MHSLIBVER "3.0" /* SunOS4 shared library version */ +@ + + +2.50 +log +@force incompatibility between NNTP & MPOP +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.49 1992/10/26 22:32:44 jromine Exp jromine $"; +d135 1 +@ + + +2.49 +log +@make it clearer what are bad args +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.48 1992/10/21 02:06:58 jromine Exp jromine $"; +d48 1 +d734 3 +d785 3 +d821 2 +@ + + +2.48 +log +@release 6.7.5beta +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.47 1992/10/20 23:49:51 jromine Exp jromine $"; +d621 1 +a621 1 + if ((config = *vec++) == NULL || *vec != NULL) +@ + + +2.47 +log +@add MHPOPDPATH +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.46 1992/10/20 20:40:19 jromine Exp jromine $"; +d33 1 +a33 1 +#define MHCENTERFOOT "MH.6.7.3" /* for nroff page footers */ +@ + + +2.46 +log +@sharedlib ver 3.0 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.45 1992/10/19 21:59:33 jromine Exp jromine $"; +d81 1 +d176 1 +d318 1 +@ + + +2.45 +log +@MH 6.7.3 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.44 1992/10/19 19:57:22 jromine Exp jromine $"; +d35 1 +a35 1 +#define MHSLIBVER "2.0" /* SunOS4 shared library version */ +@ + + +2.44 +log +@add struct copts for "special" options +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.43 1992/10/19 16:46:32 jromine Exp jromine $"; +d33 1 +a33 1 +#define MHCENTERFOOT "MH.6.7.2" /* for nroff page footers */ +@ + + +2.43 +log +@add page breaks +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.42 1992/05/12 21:45:45 jromine Exp jromine $"; +a46 1 +static int bsd43 = 0; +a47 1 +static int uci = 0; +d73 1 +a73 1 +static char *mailgroup = NULL; +a85 2 +static char *kpop = "off"; +static char *hesiod = "off"; +a89 1 +static char *tma = "off"; +d121 19 +a174 2 + "kpop", &kpop, BD_NIL, + "hesiod", &hesiod, BD_NIL, +a180 1 + "tma", &tma, BD_NIL, +d297 1 +d390 1 +a390 1 + if (mailgroup && strcmp (mailgroup, "off")) { /* for SYS5 sgid-inc */ +a439 5 + if (strcmp (tma, "on") == 0) + fprintf (fp, "/^@@BEGIN: TMA$/d\n/^@@END: TMA$/d\n"); + else + fprintf (fp, "/^@@BEGIN: TMA$/,/^@@END: TMA$/d\n"); + +a486 10 + if (bsd43) /* for sgid(tty)-rcvtty */ + fprintf (fp, "/^@@BEGIN: BSD43$/d\n/^@@END: BSD43$/d\n"); + else + fprintf (fp, "/^@@BEGIN: BSD43$/,/^@@END: BSD43$/d\n"); + + if (uci) + fprintf (fp, "/^@@BEGIN: UCI$/d\n/^@@END: UCI$/d\n"); + else + fprintf (fp, "/^@@BEGIN: UCI$/,/^@@END: UCI$/d\n"); + +a496 10 + if (strcmp (kpop, "on") == 0) + fprintf (fp, "/^@@BEGIN: KPOP$/d\n/^@@END: KPOP$/d\n"); + else + fprintf (fp, "/^@@BEGIN: KPOP$/,/^@@END: KPOP$/d\n"); + + if (strcmp (hesiod, "on") == 0) + fprintf (fp, "/^@@BEGIN: HESIOD$/d\n/^@@END: HESIOD$/d\n"); + else + fprintf (fp, "/^@@BEGIN: HESIOD$/,/^@@END: HESIOD$/d\n"); + +d514 6 +d687 1 +a687 1 + if (mailgroup && strcmp (mailgroup, "off")) /* if not "off" */ +d752 1 +a752 4 + if (strcmp (tma, "on") && strcmp (tma, "off")) + adios (NULLCP, "tma should be either \"on\" or \"off\", not %s", tma); + if (strcmp (tma, "on") == 0) + add_option ("TMA"); +d800 1 +d805 6 +a814 2 + if (strcmp (s, "UCI") == 0) uci = 1; + if (strcmp (s, "BSD43") == 0) bsd43 = 1; +@ + + +2.42 +log +@fix ifdefs +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.41 1992/03/03 17:09:57 jromine Exp jromine $"; +d96 2 +d126 2 +d173 1 +d278 2 +d331 3 +d394 2 +d432 3 +d473 3 +d627 2 +@ + + +2.41 +log +@fixes from mtr +@ +text +@d4 2 +a5 2 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.40 1992/03/03 17:07:48 jromine Exp jromine $"; +#endif lint +d15 1 +a15 1 +#endif SYS5 +d268 1 +a268 1 + "#endif \\1\\", +d925 1 +a925 1 +#endif notdef +@ + + +2.40 +log +@nroff page footer -> MH.6.7.2 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.39 1992/02/09 23:30:11 jromine Exp jromine $"; +d674 1 +a674 1 + if (strcmp (mailgroup, "off")) /* if not "off" */ +@ + + +2.39 +log +@fix for "manuals none" from Jos Vos +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.38 1992/02/08 00:02:59 jromine Exp $"; +d33 1 +a33 1 +#define MHCENTERFOOT "MH.6.7" /* for nroff page footers */ +@ + + +2.38 +log +@add MAILGROUP auto-option +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.37 1992/02/07 19:12:39 jromine Exp $"; +d329 1 +a329 1 + if (strcmp (manuals, "gen") == 0) +@ + + +2.37 +log +@add SYS5 shared libs +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.36 1992/02/05 22:10:00 jromine Exp jromine $"; +d674 2 +@ + + +2.36 +log +@add zmailer support +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.35 1992/02/05 21:52:46 jromine Exp jromine $"; +d393 1 +a393 1 + if (strcmp (sharedlib, "on") == 0 || strcmp (sharedlib, "secure") == 0) { +d407 8 +d731 1 +d734 1 +a734 1 + "sharedlib should be either \"on\", \"off\", or \"secure\", not %s", +@ + + +2.35 +log +@add "regtest: on/off" to not include hostname and date +in version.c +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.34 1992/02/05 21:10:45 jromine Exp jromine $"; +d119 2 +@ + + +2.34 +log +@update MHSLIBVER +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.33 1992/01/31 22:47:36 jromine Exp jromine $"; +d84 1 +d159 1 +d322 5 +@ + + +2.33 +log +@add "cp" option +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.32 1992/01/31 21:07:51 jromine Exp jromine $"; +d35 1 +a35 1 +#define MHSLIBVER "1.1" /* SunOS4 shared library version */ +@ + + +2.32 +log +@kerberos +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.31 1992/01/27 17:34:29 jromine Exp jromine $"; +d67 1 +d137 1 +d328 1 +@ + + +2.31 +log +@shared libs changes +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.30 1991/01/25 14:48:44 mh Exp jromine $"; +d86 2 +d152 2 +d462 10 +d595 1 +a595 1 + *ap-- = NULL; +d600 1 +a600 1 + *ap = NULL; +d605 1 +a605 1 + if (*cp == NULL || *cp == '#') +d609 1 +a609 1 + *ap++ = NULL; +d728 1 +a728 1 + *dp++ = NULL; +d819 2 +a820 2 + if (*++p == NULL) + *--p = NULL; +d831 1 +a831 1 + return ((p == NULL || *p == NULL) ? s : p); +d842 1 +a842 1 + if (s1 == NULL || *s1 == NULL) +@ + + +2.30 +log +@sort options +./ +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.29 90/12/18 14:13:31 mh Exp Locker: mh $"; +d35 1 +d57 1 +a57 1 + +d280 1 +d381 1 +a534 1 + *config, +@ + + +2.29 +log +@jlr +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.28 90/12/18 13:38:31 mh Exp Locker: mh $"; +d9 3 +a11 1 + +d17 2 +d783 1 +a783 1 + myopts = stradd (buffer, myopts); +d790 1 +a790 1 + +d911 44 +@ + + +2.28 +log +@jlr +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.27 90/12/18 13:36:49 mh Exp Locker: mh $"; +d375 1 +a375 1 + if (strcmp (sharedlib, "secure") == 0) +d377 2 +@ + + +2.27 +log +@sharedlib: secure +jlr +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.26 90/11/05 16:24:55 mh Exp Locker: mh $"; +d688 5 +a692 3 + if (strcmp (sharedlib, "on") && strcmp (sharedlib, "off")) + adios (NULLCP, "sharedlib should be either \"on\" or \"off\", not %s", + sharedlib); +@ + + +2.26 +log +@fix +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.25 90/11/05 16:05:46 mh Exp Locker: mh $"; +d371 1 +a371 1 + if (strcmp (sharedlib, "on") == 0) { +d375 2 +@ + + +2.25 +log +@typo +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.24 90/11/05 15:56:27 mh Exp Locker: mh $"; +a412 2 + case sendmail: /* special hack for support/pop/popser.c */ + fprintf (fp, "s%%@@(POPUUMBOX)%%%s%%g\n", "-DPOPUUMBOX"); +d414 1 +d423 3 +@ + + +2.24 +log +@special hack for popser.c -- yuk! +/JLR +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.23 90/04/08 10:57:33 sources Exp Locker: mh $"; +d414 1 +a414 1 + fprintf (fp, "s%%@@(UUCPMBOX)%%%s%%g\n", "-DUUCPMBOX"); +@ + + +2.23 +log +@*** empty log message *** +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.22 90/04/06 09:54:00 sources Exp Locker: sources $"; +d413 2 +a415 1 + case sendmail: +@ + + +2.22 +log +@update to MH.6.7 +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.21 90/04/05 22:20:02 sources Exp Locker: sources $"; +d246 1 +a246 1 + ".ti -.25i\\", +d252 1 +a252 1 + ".ti -.25in\\", +@ + + +2.21 +log +@version changes +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id: mhconfig.c,v 2.20 90/04/05 15:29:12 sources Exp Locker: sources $"; +d28 2 +a29 2 +#define MHRELEASE "6.6" /* for version: "Maj.min.pat" */ +#define MHCENTERFOOT "MH.6.6" /* for nroff page footers */ +@ + + +2.20 +log +@add ID +@ +text +@d4 1 +a4 1 +static char ident[] = "@@(#)$Id:$"; +d28 2 +a29 1 +#define MHCENTERFOOT "MH.6.6" /* for man page footers */ +d276 1 +@ + + +2.19 +log +@add ID +@ +text +@d4 1 +a4 1 +static char ident[] = "$Id:"; +@ + + +2.18 +log +@remove spurious warnding +@ +text +@d3 3 +@ + + +2.17 +log +@add sprintf config option +remove include of strings.h, try to declare things ourselves +@ +text +@d220 1 +d222 1 +@ + + +2.16 +log +@"bbdeliver: {on,off}" +@ +text +@d2 1 +a3 1 +#include "../h/strings.h" +d7 10 +d80 1 +d145 1 +d667 8 +@ + + +2.15 +log +@add footers for man pages +@ +text +@d44 1 +d110 1 +d313 4 +d592 4 +@ + + +2.14 +log +@add special '-D' option for making developer +manual set. +@ +text +@a6 1 + +d15 2 +d224 2 +a225 2 + fprintf (fp, "%s\n%s\n%s\n%s\n", + "s!^@@BEGIN: \\(.*\\)$!.br\\", +d250 1 +a250 1 + printf ("using special all-doc format.\n"); +d253 1 +a253 1 + } +d256 2 +@ + + +2.13 +log +@merge "nntpbboards" and "popbboards" into "bboards: nntp/pop" +@ +text +@d215 2 +a216 1 + do_sedfile (SED, 0); +d220 16 +d248 6 +d503 4 +@ + + +2.12 +log +@reminder to edit config/mtstailor +@ +text +@a60 1 +static char *nntpbboards = "off"; +a64 1 +static char *popbboards = "off"; +a123 1 + "nntpbboards", &nntpbboards, BD_NIL, +a126 1 + "popbboards", &popbboards, BD_NIL, +d280 3 +a282 1 + if (strcmp (bboards, "on") == 0) +a283 2 + else + fprintf (fp, "/^@@BEGIN: BBOARDS$/,/^@@END: BBOARDS$/d\n"); +d393 1 +a393 1 + if (strcmp (popbboards, "on") == 0) +d398 1 +a398 1 + if (strcmp (nntpbboards, "on") == 0) +d552 4 +a555 3 + if (strcmp (bboards, "on") && strcmp (bboards, "off")) + adios (NULLCP, "bboards should be either \"on\" or \"off\", not %s", + bboards); +d601 1 +a601 4 + if (strcmp (popbboards, "on") && strcmp (popbboards, "off")) + adios (NULLCP, "popbboards should be either \"on\" or \"off\", not %s", + popbboards); + if (strcmp (popbboards, "on") == 0) { +d603 2 +a604 3 + if (strcmp (bboards, "on") || strcmp (pop, "on")) + adios (NULLCP, + "popbboards \"on\" requires both bboards and pop \"on\""); +d606 1 +a606 5 + + if (strcmp (nntpbboards, "on") && strcmp (nntpbboards, "off")) + adios (NULLCP, "nntpbboards should be either \"on\" or \"off\", not %s", + nntpbboards); + if (strcmp (nntpbboards, "on") == 0) { +a608 2 + if (strcmp (bboards, "on")) + adios (NULLCP, "nntpbboards \"on\" requires bboards \"on\""); +a609 2 + if (strcmp (popbboards, "on") == 0 && strcmp (nntpbboards, "on") == 0) + adios (NULLCP, "you can't have both nntpbboards and popbboards \"on\""); +@ + + +2.11 +log +@BSD43 for rcvtty (sgid-tty) +@ +text +@d209 1 +d211 1 +a211 1 + printf ("Don't forget to run \"make clean\" before proceeding\n"); +@ + + +2.10 +log +@fix "remove" for new K&R defn +@ +text +@d27 1 +d277 2 +a278 1 + fprintf (fp, "s%%@@(MHOPTIONS)%%%s%%g\n", SVAL (options)); +d376 5 +d694 1 +@ + + +2.9 +log +@add master Makefile +@ +text +@d61 1 +a61 1 +static char *remove = "mv -f"; +d131 1 +a131 1 + "remove", &remove, BD_NIL, +d404 1 +a404 1 + fprintf (fp, "s%%@@(MHREMOVE)%%%s%%g\n", SVAL (remove)); +@ + + +2.8 +log +@add -help +@ +text +@d157 1 +@ + + +2.7 +log +@minor fix, and usage message improvement +@ +text +@d491 7 +d501 1 +a501 1 + adios (NULLCP, "usage: %s [-s -f -d -m] file", myname); +@ + + +2.6 +log +@typo +@ +text +@d474 1 +a474 1 + for (vec++;; vec++) { +d494 1 +a494 1 + adios (NULLCP, "usage: %s file", myname); +@ + + +2.5 +log +@fix to MAILGROUP +@ +text +@d51 1 +a51 1 +static char *lex = "lex -nt" +@ + + +2.4 +log +@MAILGROUP stuff +@ +text +@d295 1 +a295 1 + if (mailgroup) { /* for SYS5 sgid-inc */ +@ + + +2.3 +log +@add "lex" (lex -nt) option +@ +text +@d52 1 +d120 1 +d294 7 +@ + + +2.2 +log +@ANSI Compilance +@ +text +@d51 1 +d117 1 +d268 1 +@ + + +2.1 +log +@try to run "mhdoc" in current directory (for those without +. in their path). +@ +text +@a12 2 +#define MFIL(f) "makefiles/f", "f" +#define MMFIL(f,g) "makefiles/f", "g" +d44 1 +d109 1 +d153 19 +a171 19 + MFIL (config), + MFIL (dist), + MFIL (doc), + MMFIL (mtsM,mts), + MFIL (mts/mh), + MFIL (mts/mmdf), + MFIL (mts/sendmail), + MFIL (papers), + MFIL (sbr), + MMFIL (supportM,support), + MFIL (support/bboards), + MFIL (support/general), + MFIL (support/pop), + MFIL (uip), + MMFIL (zotnetM,zotnet), + MFIL (zotnet/bboards), + MFIL (zotnet/mf), + MFIL (zotnet/mts), + MFIL (zotnet/tws), +d176 2 +a177 1 +char *stradd (), *strdup (), *tail (); +d179 2 +d265 1 +d760 4 +d792 1 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d404 1 +a404 1 + shell ("mhdoc"); +@ + + +1.2 +log +@*** empty log message *** +@ +text +@d59 1 +d121 1 +d377 5 +d582 12 +d600 2 +a601 2 + adios (NULLCP, "sharedlib should be either \"on\" or \"off\", not %s" + , sharedlib); +@ + + +1.1 +log +@Initial revision +@ +text +@d30 1 +d65 2 +d126 2 +d302 10 +d355 5 +d580 4 +d643 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/RCS/mhdoc,v b/docs/historical/mh-6.8.5/conf/RCS/mhdoc,v new file mode 100755 index 0000000..1cb3853 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/RCS/mhdoc,v @@ -0,0 +1,70 @@ +head 1.3; +branch ; +access ; +symbols ; +locks ; strict; +comment @# @; + + +1.3 +date 90.04.08.15.04.21; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.04.05.15.57.49; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.02.01.13.15.17; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.3 +log +@add me2man.sed +@ +text +@: run this script through /bin/sh +: '@@(#)$Id: mhdoc,v 1.2 90/04/05 15:57:49 sources Exp Locker: sources $' + +echo grinding... + +sed -f doc/config.sed < doc/tmac.h > ../doc/tmac.h +sed -f doc/config.sed < doc/tmac.hdr > ../doc/tmac.me +sed -f doc/config.sed < doc/me2man.sed > ../doc/me2man.sed + +for f in doc/*.rf +do + sed -f doc/config.sed < $f > ../doc/`basename $f .rf`.me +done + +exit 0 +@ + + +1.2 +log +@Id +@ +text +@d2 1 +a2 1 +: '@@(#)$Id:$' +d8 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/config.sed b/docs/historical/mh-6.8.5/conf/config.sed new file mode 100644 index 0000000..b953b22 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config.sed @@ -0,0 +1,94 @@ +s%@(MHCONFIGFILE)%MH%g +s%@(MHWARNING)%This file is automatically generated. Do not edit!%g +s%@(MHRELEASE)%6.8.4%g +s%@(MHCENTERFOOT)%MH.6.8%g +s%@(MHLEFTFOOT)%[mh.6]%g +s%@(MHBINPATH)%/opt/mh-6.8.5/bin%g +s%@(MHETCPATH)%/opt/mh-6.8.5/lib%g +s%@(MHPOPDPATH)%/usr/etc%g +s%@(MHCHOWNPATH)%/usr/bin/chown%g +s%@(MHDROPATH)%/var/spool/mail%g +s%@(MHDROPFIL)%%g +s%@(MHDROPLOC)%/var/spool/mail/$USER%g +s%@(MHDROPHAK)%/var/spool/mail%g +s%@(MHMANDIR)%/opt/mh-6.8.5/man%g +s%@(MHCATMAN)%%g +s%@(MHMANDIR1)%man1%g +s%@(MHMANEXT1)%1%g +s%@(MHMANDIR2)%man2%g +s%@(MHMANEXT2)%2%g +s%@(MHMANDIR3)%man3%g +s%@(MHMANEXT3)%3%g +s%@(MHMANDIR4)%man4%g +s%@(MHMANEXT4)%4%g +s%@(MHMANDIR5)%man5%g +s%@(MHMANEXT5)%5%g +s%@(MHMANDIR6)%man6%g +s%@(MHMANEXT6)%6%g +s%@(MHMANDIR7)%man7%g +s%@(MHMANEXT7)%7%g +s%@(MHMANDIR8)%man8%g +s%@(MHMANEXT8)%8%g +s%@(MHHOSTVER)%%g +s%@(MHMANGEN)%%g +s%@(MHEDITOR)%/usr/bin/vi%g +s%@(MHCONFIG)%char *options[] = {"ATTVIBUG", "DBMPWD", "DUMB", "FCNTL", "FOLDPROT='\\"0711\\"'", "MHE", "MHRC", "MIME", "MORE='\\"/usr/bin/more\\"'", "MSGID", "MSGPROT='\\"0600\\"'", "RENAME", "RPATHS", "SENDMTS", "SHADOW", "SMTP", "SOCKETS", "SPRINTFTYPE=int", "SVR4", "SYS5", "SYS5DIR", "TYPESIG=void", "VSPRINTF", NULL};%g +s%@(MHCOMPILER)%cc%g +s%@(CP)%cp%g +s%@(LN)%ln%g +s%@(LEX)%lex -nt%g +s%@(MHOPTIONS)%-DSYS5 -DSVR4 -DFCNTL -DRENAME -DVSPRINTF -DATTVIBUG -DDBMPWD -DDUMB -DMORE='"/usr/bin/more"' -DMSGPROT='"0600"' -DMSGID -DRPATHS -DSOCKETS -DFOLDPROT='"0711"' -DSHADOW -DSYS5DIR -DMHRC -DMHE -DMIME -DSENDMTS -DSMTP -DSPRINTFTYPE=int -DTYPESIG=void -O -g%g +s%@(LDOPTIONS)%-s%g +s%@(LDOPTLIB)%-lnsl -lsocket -R/opt/mh-6.8.5/lib%g +s%@(LDCURSES)%-lcurses%g +/^@BEGIN: BBOARDS$/,/^@END: BBOARDS$/d +s%@(BBHOME)%/usr/spool/bboards%g +/^@BEGIN: BBSERVER$/,/^@END: BBSERVER$/d +/^@BEGIN: DEBUG$/,/^@END: DEBUG$/d +/^@BEGIN: OPTIM$/d +/^@END: OPTIM$/d +/^@BEGIN: MAILGROUP$/,/^@END: MAILGROUP$/d +/^@BEGIN: OLDLOAD$/,/^@END: OLDLOAD$/d +/^@BEGIN: NEWLOAD$/,/^@END: NEWLOAD$/d +/^@BEGIN: LORDER$/d +/^@END: LORDER$/d +/^@BEGIN: RANLIB$/,/^@END: RANLIB$/d +/^@BEGIN: SHAREDLIB$/d +/^@END: SHAREDLIB$/d +/^@BEGIN: STDLIB$/,/^@END: STDLIB$/d +s%@(SLIBDIR)%/opt/mh-6.8.5/lib%g +s%@(SLIBVER)%3.2%g +s%@(SLFLAGS)%-K pic%g +s%@(SLDFLAG)%%g +/^@BEGIN: SUN4SHLIB$/,/^@END: SUN4SHLIB$/d +/^@BEGIN: SYS5SHLIB$/d +/^@END: SYS5SHLIB$/d +/^@BEGIN: MMDFMTS$/,/^@END: MMDFMTS$/d +/^@BEGIN: MMDFIMTS$/,/^@END: MMDFIMTS$/d +/^@BEGIN: MMDFIIMTS$/,/^@END: MMDFIIMTS$/d +/^@BEGIN: MHMTS$/,/^@END: MHMTS$/d +/^@BEGIN: SENDMTS$/d +/^@END: SENDMTS$/d +/^@BEGIN: SENDMTSHACK$/d +/^@END: SENDMTSHACK$/d +s%@(POPUUMBOX)%-DPOPUUMBOX%g +/^@BEGIN: SMTP$/,/^@END: SMTP$/d +/^@BEGIN: POP$/,/^@END: POP$/d +/^@BEGIN: BPOP$/,/^@END: BPOP$/d +/^@BEGIN: NNTP$/,/^@END: NNTP$/d +/^@BEGIN: MF$/,/^@END: MF$/d +s%@(MHREMOVE)%mv -f%g +/^@BEGIN: APOP$/,/^@END: APOP$/d +/^@BEGIN: BSD43$/,/^@END: BSD43$/d +/^@BEGIN: BSD44$/,/^@END: BSD44$/d +/^@BEGIN: KPOP$/,/^@END: KPOP$/d +/^@BEGIN: HESIOD$/,/^@END: HESIOD$/d +/^@BEGIN: MIME$/d +/^@END: MIME$/d +/^@BEGIN: MPOP$/,/^@END: MPOP$/d +/^@BEGIN: MSGID$/d +/^@END: MSGID$/d +/^@BEGIN: NORUSERPASS$/,/^@END: NORUSERPASS$/d +/^@BEGIN: TMA$/,/^@END: TMA$/d +/^@BEGIN: TTYD$/,/^@END: TTYD$/d +/^@BEGIN: UCI$/,/^@END: UCI$/d diff --git a/docs/historical/mh-6.8.5/conf/config/MailAliases b/docs/historical/mh-6.8.5/conf/config/MailAliases new file mode 100644 index 0000000..e410c11 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/MailAliases @@ -0,0 +1,25 @@ +; See comments at end of this file +; This file is almost empty as MH now supports personal aliases. +; @(#)$Id: MailAliases,v 1.3 90/04/05 15:40:57 sources Exp $ + +@BEGIN: BBSERVER +<@(MHETCPATH)/BBoardAliases + +@END: BBSERVER +;everyone: * + +; Blank lines and lines beginning with a ; are ignored. +; < file -> read more aliases from "file" +; foo: fum -> simple replacement +; foo: fum, fie -> list replacement +; foo: < file -> list replacement from "file" +; foo: = group -> list replacement from UNIX group +; foo: + group -> list replacement by ALL users in /etc/passwd +; with gid == group +; foo: * -> list replacement by ALL users in /etc/passwd +; with uid >= 200 +; foo*: fum -> matches foo (including the empty string) +; +; using a ';' instead of a ':' indicates that the alias should be displayed +; along with the addresses used (normally, the addresses replace the alias +; completely) diff --git a/docs/historical/mh-6.8.5/conf/config/MakeBBoards b/docs/historical/mh-6.8.5/conf/config/MakeBBoards new file mode 100644 index 0000000..6d86aef --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/MakeBBoards @@ -0,0 +1,55 @@ +############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @(MHWARNING) +############################################################################## + +############################################################################## +# NOTE WELL: +# This Makefile assumes it's running from the ~bboards/etc directory! +# (it expects ../BBoards to be THE BBoards file) +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = @(MHBINPATH) +ETCDIR = @(MHETCPATH) + + + +###################################################################### +# Here it is... +###################################################################### + +all: aliases archives +inst-all: inst-aliases inst-archives + + +###################################################################### +# Maintain the BBoards area +###################################################################### + +inst-aliases: $(ETCDIR)/BBoardAliases SystemAliases + +$(ETCDIR)/BBoardAliases: BBoardAliases + -cp $@ zBBoardAliases + cp BBoardAliases $@ + -@ls -ls $@ + -@echo "" + +aliases: BBoardAliases SystemAliases +@BEGIN: MHMTS + mv BBoardAliases TempAliases + cat SystemAliases TempAliases > BBoardAliases + rm TempAliases +@END: MHMTS + +BBoardAliases: ../BBoards + bbaka > $@ + +SystemAliases: ../BBoards + bbaka system > $@ + + +inst-archives:; bbexp + +archives:; diff --git a/docs/historical/mh-6.8.5/conf/config/RCS/MailAliases,v b/docs/historical/mh-6.8.5/conf/config/RCS/MailAliases,v new file mode 100644 index 0000000..21a61ff --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/RCS/MailAliases,v @@ -0,0 +1,82 @@ +head 1.3; +branch ; +access ; +symbols ; +locks ; strict; +comment @# @; + + +1.3 +date 90.04.05.15.40.57; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.21.10.16.49; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.21.10.04.55; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.3 +log +@Id +@ +text +@; See comments at end of this file +; This file is almost empty as MH now supports personal aliases. +; @@(#)$Id:$ + +@@BEGIN: BBSERVER +<@@(MHETCPATH)/BBoardAliases + +@@END: BBSERVER +;everyone: * + +; Blank lines and lines beginning with a ; are ignored. +; < file -> read more aliases from "file" +; foo: fum -> simple replacement +; foo: fum, fie -> list replacement +; foo: < file -> list replacement from "file" +; foo: = group -> list replacement from UNIX group +; foo: + group -> list replacement by ALL users in /etc/passwd +; with gid == group +; foo: * -> list replacement by ALL users in /etc/passwd +; with uid >= 200 +; foo*: fum -> matches foo (including the empty string) +; +; using a ';' instead of a ':' indicates that the alias should be displayed +; along with the addresses used (normally, the addresses replace the alias +; completely) +@ + + +1.2 +log +@changes for "bbhome: none" +@ +text +@d3 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d4 1 +a4 1 +@@BEGIN: BBOARDS +d7 1 +a7 1 +@@END: BBOARDS +@ diff --git a/docs/historical/mh-6.8.5/conf/config/RCS/config.c,v b/docs/historical/mh-6.8.5/conf/config/RCS/config.c,v new file mode 100644 index 0000000..9d54a52 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/RCS/config.c,v @@ -0,0 +1,617 @@ +head 1.11; +access; +symbols; +locks; strict; +comment @ * @; + + +1.11 +date 93.09.01.22.29.10; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 93.09.01.22.27.24; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.11.05.16.59.39; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.02.04.00.00.37; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.03.17.50.19; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.01.31.21.37.07; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.01.24.00.35.28; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 90.04.05.15.28.59; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.04.05.14.42.15; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.17.09.55.46; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.17.09.55.12; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.11 +log +@note mhlibdir subject to change +@ +text +@/* config.c - master MH configuration file */ +#ifndef lint +static char ident[] = "@@(#)$Id: config.c,v 1.10 1993/09/01 22:27:24 jromine Exp jromine $"; +#endif /* lint */ + +/* @@(MHWARNING) */ + +/* LINTLIBRARY */ + +#include "../h/mh.h" +#ifdef MHRC +#include +#endif /* MHRC */ +#include + + +#if defined(__STDC__) +#define binpath(file) "@@(MHBINPATH)/"#file +#define etcpath(file) "@@(MHETCPATH)/"#file +#else +#define binpath(file) "@@(MHBINPATH)/file" +#define etcpath(file) "@@(MHETCPATH)/file" +#endif + +static char Config[] = "@@(#)Config: @@(MHCONFIGFILE)"; + +@@(MHCONFIG) + + +#ifndef __STDC__ +#ifdef MHRC +#ifdef SYS5 +struct passwd *getpwnam (); +#endif /* SYS5 */ +#endif /* MHRC */ +#endif + +/* */ + +static char lpath[BUFSIZ]; + +char *libpath (file) +char *file; +{ + char *cp; +#ifdef MHRC + char *pp; + struct passwd *pw; +#endif /* MHRC */ + +#ifdef MHRC + m_getdefs (); +#endif /* MHRC */ + + switch (*file) { + case '/': + return file; + +#ifdef MHRC + case '~': + if (cp = index (pp = file + 1, '/')) + *cp++ = '\0'; + if (*pp == '\0') + pp = mypath; + else + if (pw = getpwnam (pp)) + pp = pw -> pw_dir; + else { + if (cp) + *--cp = '/'; + goto try_it; + } + + (void) sprintf (lpath, "%s/%s", pp, cp ? cp : ""); + if (cp) + *--cp = '/'; + + if (access (lpath, 04) != NOTOK) + return lpath; /* else fall */ + try_it: ; +#endif /* MHRC */ + + default: + if (access ((cp = m_mailpath (file)), 04) != NOTOK) + return cp; + } + + (void) sprintf (lpath, etcpath (%s), file); + return (access (lpath, 04) != NOTOK ? lpath : file); +} + +/* */ + +/* + * Standard yes/no switches structure + */ + +struct swit anoyes[] = { + "no", 0, + "yes", 0, + NULL, 0 +}; + +/* */ + +/* + * MH constants + */ + +char *components = "components"; +char *current = "cur"; +char *defalt = "inbox"; +char *digestcomps = "digestcomps"; +char *distcomps = "distcomps"; +char *draft = "draft"; +char *forwcomps = "forwcomps"; +char *inbox = "inbox"; +char *mh_defaults = etcpath (mh.profile); +char *mh_profile = ".mh_profile"; +char *mhlformat = "mhl.format"; +char *mhlforward = "mhl.forward"; +char *nsequence = "Sequence-Negation"; +char *pfolder = "Current-Folder"; +char *psequence = "Previous-Sequence"; +char *rcvdistcomps = "rcvdistcomps"; +char *replcomps = "replcomps"; +char *usequence = "Unseen-Sequence"; +char *mhlibdir = "@@(MHETCPATH)"; /* NB: this will change */ + + +/* + * MH not-so constants + */ + +char *context = "context"; +#ifndef NOMHSEQ +char *mh_seq = ".mh_sequences"; +#else /* NOMHSEQ */ +char *mh_seq = NULL; +#endif /* NOMHSEQ */ + + +/* + * MH globals + */ + +char ctxflags; /* status of user's context */ + +char *invo_name; /* pgm invocation name */ +char *mypath; /* user's $HOME */ +char *defpath; /* pathname of user's profile */ +char *ctxpath; /* pathname of user's context */ + +struct node *m_defs; /* profile/context structure */ + +/* */ + +/* + * MH processes + */ + + +/* + * mhl runs this program as a visual-end. + */ + +char *faceproc = NULL; + + +/* + * This program is usually called directly by users, but it is + * also invoked by the post program to process an "fcc". + */ + +char *fileproc = binpath (refile); + + +/* + * This program is called to incorporate messages into a folder. + */ + +char *incproc = binpath (inc); + + +/* + * When a user runs an MH program for the first time, this program + * is called to create his MH profile, and mail directory. + */ + +char *installproc = etcpath (install-mh); + + +/* + * This is the program invoked by a "list" response to "What now?" + * whereas, showproc is the program invoked by show, next, prev. + */ + +#ifndef MORE +char *lproc = "/usr/ucb/more"; +#else /* MORE */ +char *lproc = MORE; +#endif /* MORE */ + + +/* + * This is the path for the Bell equivalent mail program. + */ + +char *mailproc = binpath (mhmail); + + +/* + * mhl runs this program as a front-end. + */ + +#ifndef MORE +char *moreproc = "/usr/ucb/more"; +#else /* MORE */ +char *moreproc = MORE; +#endif /* MORE */ + + +/* + * This program is mhl - the nifty message lister + */ + +char *mhlproc = etcpath (mhl); + + +/* + * This is the super handy BBoard reading program, which is really just the MH + * shell program + */ + +char *mshproc = binpath (msh); + + +/* + * This program is called to pack a folder. + */ + +char *packproc = binpath (packf); + + +/* + * This is the delivery program called through send to + * actually deliver mail to users. This is the interface to + * the MTS. + */ + +#if BERK && SENDMTS && !SMTP +char *postproc = etcpath (spost); +#else +char *postproc = etcpath (post); +#endif /* BERK */ + + +/* + * This program is called to remove a folder. + */ + +char *rmfproc = binpath (rmf); + + +/* + * This program is called to remove a message by rmm or refile -nolink. + * It's usually empty, which means to rename the file to a backup name. + */ + +char *rmmproc = NULL; + + +/* + * This program is usually called by the user's whatnowproc, but it + * may also be called directly to send a message previously composed. + */ + +char *sendproc = binpath (send); + + +/* + * This program is called to list messages by the show program. + * By setting showproc to mhl, the user can run mhl instead. + */ + +#ifndef MORE +char *showproc = "/usr/ucb/more"; +#else /* MORE */ +char *showproc = MORE; +#endif /* MORE */ + + +/* + * This program is called under stand-alone MH to deliver a message to + * a local user. Under other MTS's it can be used to emulate a + * MMDF-II .maildelivery mechanism. + */ + +char *slocalproc = etcpath (slocal); + + +/* + * This program is called by vmh as the back-end to the window management + * protocol + */ + +char *vmhproc = binpath (msh); + + +/* + * This program is called after comp, et. al., have built a draft + */ + +char *whatnowproc = binpath (whatnow); + + +/* + * This program is called to list/validate the addresses in a message. + */ + +char *whomproc = binpath (whom); + +/* */ + +/* + * This is the editor invoked by the various message composition + * programs. It SHOULD be a 2-D scope editor, such as Rand's ned + * or Berkeley's ex, but any editor will work. We use prompter as + * the default, since with -prepend it works just fine with forw. + */ + +char *sysed = "@@(MHEDITOR)"; + + +/* + * This is the MH alias file. + */ + +char *AliasFile = etcpath (MailAliases); + +/* */ + +/* + * File protections + */ + + +/* + * Folders (directories) are created with this protection (mode) + */ + +#ifndef FOLDPROT +#define FOLDPROT "0711" +#endif /* not FOLDPROT */ + +char *foldprot = FOLDPROT; + + +/* + * Every NEW message will be created with this protection. When a + * message is filed it retains its protection, so this only applies + * to messages coming in through inc. + */ + +#ifndef MSGPROT +#define MSGPROT "0644" +#endif /* not MSGPROT */ + +char *msgprot = MSGPROT; +@ + + +1.10 +log +@add mhlibdir for mhparam +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: config.c,v 1.9 1992/11/05 16:59:39 jromine Exp jromine $"; +d128 1 +a128 1 +char *mhlibdir = "@@(MHETCPATH)"; +@ + + +1.9 +log +@#endif sugar +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: config.c,v 1.8 1992/02/04 00:00:37 jromine Exp jromine $"; +d128 1 +@ + + +1.8 +log +@contributed patch +@ +text +@d3 2 +a4 2 +static char ident[] = "@@(#)$Id: config.c,v 1.7 1992/02/03 17:50:19 jromine Exp jromine $"; +#endif lint +d13 1 +a13 1 +#endif MHRC +d34 2 +a35 2 +#endif SYS5 +#endif MHRC +d49 1 +a49 1 +#endif MHRC +d53 1 +a53 1 +#endif MHRC +d81 1 +a81 1 +#endif MHRC +d137 1 +a137 1 +#else NOMHSEQ +d139 1 +a139 1 +#endif NOMHSEQ +d199 1 +a199 1 +#else MORE +d201 1 +a201 1 +#endif MORE +d217 1 +a217 1 +#else MORE +d219 1 +a219 1 +#endif MORE +d254 1 +a254 1 +#endif BERK +d287 1 +a287 1 +#else MORE +d289 1 +a289 1 +#endif MORE +d353 1 +a353 1 +#endif not FOLDPROT +d366 1 +a366 1 +#endif not MSGPROT +@ + + +1.7 +log +@STDC +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: config.c,v 1.6 1992/01/31 21:37:07 jromine Exp jromine $"; +d117 1 +@ + + +1.6 +log +@kerberos +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: config.c,v 1.5 1992/01/24 00:35:28 jromine Exp jromine $"; +d30 1 +d36 1 +@ + + +1.5 +log +@add config file string for "what" +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: config.c,v 1.4 1990/04/05 15:28:59 sources Exp jromine $"; +d17 1 +a17 1 +#if defined(__STDC__) && !defined(__HIGHC__) +d60 2 +a61 2 + *cp++ = NULL; + if (*pp == NULL) +d99 1 +a99 1 + NULL, NULL +@ + + +1.4 +log +@add ID +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id:$"; +d25 1 +@ + + +1.3 +log +@add ID +@ +text +@d3 1 +a3 1 +static char ident[] = "$Id:"; +@ + + +1.2 +log +@ANSI C fix from jeff honig +@ +text +@d2 3 +@ + + +1.1 +log +@Initial revision +@ +text +@d14 4 +d20 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/config/RCS/mts.c,v b/docs/historical/mh-6.8.5/conf/config/RCS/mts.c,v new file mode 100644 index 0000000..e21218b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/RCS/mts.c,v @@ -0,0 +1,1257 @@ +head 2.20; +access; +symbols; +locks; strict; +comment @ * @; + + +2.20 +date 94.03.23.23.35.23; author jromine; state Exp; +branches; +next 2.19; + +2.19 +date 93.09.01.20.55.38; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 93.08.19.23.36.12; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 93.08.19.23.08.05; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.11.24.18.40.34; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.11.02.18.58.12; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.05.19.20.51.57; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.05.12.21.46.45; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 92.02.10.18.12.35; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 92.02.05.17.08.16; author jromine; state Exp; +branches; +next 2.10; + +2.10 +date 92.02.03.17.49.13; author jromine; state Exp; +branches; +next 2.9; + +2.9 +date 92.02.03.16.34.00; author jromine; state Exp; +branches; +next 2.8; + +2.8 +date 92.01.31.21.37.07; author jromine; state Exp; +branches; +next 2.7; + +2.7 +date 91.02.14.15.17.56; author mh; state Exp; +branches; +next 2.6; + +2.6 +date 90.11.05.12.06.39; author mh; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.05.15.29.04; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.04.05.14.42.56; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.04.02.14.27.00; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.07.13.00.42; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.05.14.46.23; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.27; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.15; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.20 +log +@change "client" to "clientname" +make default to use LocalName() +@ +text +@/* mts.c - definitions for the mail transport system */ +#ifndef lint +static char ident[] = "@@(#)$Id: mts.c,v 2.19 1993/09/01 20:55:38 jromine Exp jromine $"; +#endif /* lint */ + +/* LINTLIBRARY */ + +#undef NETWORK +#if defined(BSD41A) || defined(BSD42) || defined(SOCKETS) +#define NETWORK +#endif + +#include "../h/strings.h" +#include +#include +#include "mts.h" +#ifdef NETWORK +#if defined(BSD42) || defined(SOCKETS) +#include +#endif +#else /* NETWORK */ +#ifndef SYS5 +#include +#else +#include +#endif /* SYS5 */ +#endif /* NETWORK */ +#include + + +#define NOTOK (-1) +#define OK 0 + +#define NULLCP ((char *) 0) + +extern int errno; + +static char *tailor_value (); + + +#if defined(SYS5) && !defined(_AIX) +#define index strchr +#define rindex strrchr +#endif /* SYS5 */ + +#if !defined(__STDC__) && !defined(_AIX) && !defined(_POSIX_SOURCE) +char *index (), *malloc (), *mktemp (), *rindex (), *strcpy (); + +#ifdef SYS5 +struct passwd *getpwuid (); +#endif +#endif /* !__STDC__ */ + +/* */ + +/* + *mmdfldir and *uucpldir are the maildrop directories. If maildrops + are kept in the user's home directory, then these should be empty + strings. In this case, the appropriate ...lfil array should contain + the name of the file in the user's home directory. Usually, this is + something like ".mail". + */ + +static char *mtstailor = "@@(MHETCPATH)/mtstailor"; + +static char *localname = ""; +static char *localdomain = ""; +static char *systemname = ""; +#ifdef MF +static char *UUCPchan = ""; +#endif /* MF */ +char *mmdfldir = "@@(MHDROPATH)"; +char *mmdflfil = "@@(MHDROPFIL)"; +char *uucpldir = "/usr/spool/mail"; +char *uucplfil = ""; + + +char *mmdlm1 = "\001\001\001\001\n"; +char *mmdlm2 = "\001\001\001\001\n"; + + +static int MMailids = 0; +static char *mmailid = "0"; + + +#ifdef MF +char *umincproc = "@@(MHETCPATH)/uminc"; +#else /* MF */ +char *umincproc = NULL; +#endif /* MF */ + + +int lockstyle = LOK_UNIX; +static char *lkstyle = "0"; +char *lockldir = ""; + +/* */ + +/* MTS specific variables */ + +#ifdef MHMTS +char *Mailqdir = "/usr/spool/netmail"; +char *TMailqdir = "/usr/tmp"; +int Syscpy = 1; +static char *syscpy = "1"; +char *Overseer = "root"; +char *Mailer = "root"; +char *Fromtmp = "/tmp/rml.f.XXXXXX"; +char *Msgtmp = "/tmp/rml.m.XXXXXX"; +char *Errtmp = "/tmp/rml.e.XXXXXX"; +int Tmpmode = 0600; +static char *tmpmode = "0600"; +char *Okhosts = "@@(MHETCPATH)/Rmail.OkHosts"; +char *Okdests = "@@(MHETCPATH)/Rmail.OkDests"; +#endif /* MHMTS */ + +#ifdef MMDFMTS +#endif /* MMDFMTS */ + +#ifdef SENDMTS +char *hostable = "@@(MHETCPATH)/hosts"; +char *sendmail = "/usr/lib/sendmail"; +#endif /* SENDMTS */ + + +/* SMTP/POP stuff */ + +char *clientname = (char *)0; +char *servers = "localhost \01localnet"; +char *pophost = ""; + + +/* BBoards-specific variables */ + +char *bb_domain = ""; + + +/* POP BBoards-specific variables */ + +#ifdef BPOP +char *popbbhost = ""; +char *popbbuser = ""; +char *popbblist = "@@(MHETCPATH)/hosts.popbb"; +#endif /* BPOP */ + + +/* MailDelivery */ + +char *maildelivery = "@@(MHETCPATH)/maildelivery"; + + +/* Aliasing Facility (doesn't belong here) */ + +int Everyone = NOTOK; +static char *everyone = "-1"; +char *NoShell = ""; + +/* */ + +/* customize the MTS settings for MH by reading @@(MHETCPATH)/mtstailor */ + +static struct bind { + char *keyword; + char **value; +} binds[] = { + "localname", &localname, + "localdomain", &localdomain, + "systemname", &systemname, +#ifdef MF + "uucpchan", &UUCPchan, +#endif /* MF */ + "mmdfldir", &mmdfldir, + "mmdflfil", &mmdflfil, + "uucpldir", &uucpldir, + "uucplfil", &uucplfil, + "mmdelim1", &mmdlm1, + "mmdelim2", &mmdlm2, + "mmailid", &mmailid, + "umincproc", &umincproc, + "lockstyle", &lkstyle, + "lockldir", &lockldir, + +#ifdef MHMTS + "mailqdir", &Mailqdir, + "tmailqdir", &TMailqdir, + "syscpy", &syscpy, + "overseer", &Overseer, + "mailer", &Mailer, + "fromtmp", &Fromtmp, + "msgtmp", &Msgtmp, + "errtmp", &Errtmp, + "tmpmode", &tmpmode, + "okhosts", &Okhosts, + "okdests", &Okdests, +#endif /* MHMTS */ + +#ifdef MMDFMTS +#endif /* MMDFMTS */ + +#ifdef SENDMTS + "hostable", &hostable, + "sendmail", &sendmail, +#endif /* SENDMTS */ + + "clientname", &clientname, + "servers", &servers, + "pophost", &pophost, + + "bbdomain", &bb_domain, + +#ifdef BPOP + "popbbhost", &popbbhost, + "popbbuser", &popbbuser, + "popbblist", &popbblist, +#endif /* BPOP */ +#ifdef NNTP + "nntphost", &popbbhost, +#endif /* NNTP */ + + "maildelivery", &maildelivery, + + "everyone", &everyone, + "noshell", &NoShell, + + NULL +}; + +/* */ + +/* I'd like to use m_getfld() here, but not all programs loading mts.o may be + MH-style programs... */ + +/* ARGSUSED */ + +mts_init (name) +char *name; +{ + register char *bp, + *cp; + char buffer[BUFSIZ]; + register struct bind *b; + register FILE *fp; + static int inited = 0; + + if (inited++ || (fp = fopen (mtstailor, "r")) == NULL) + return; + + while (fgets (buffer, sizeof buffer, fp)) { + if ((cp = index (buffer, '\n')) == NULL) + break; + *cp = 0; + if (*buffer == '#' || *buffer == '\0') + continue; + if ((bp = index (buffer, ':')) == NULL) + break; + *bp++ = 0; + while (isspace (*bp)) + *bp++ = 0; + + for (b = binds; b -> keyword; b++) + if (strcmp (buffer, b -> keyword) == 0) + break; + if (b -> keyword && (cp = tailor_value (bp))) + *b -> value = cp; + } + + (void) fclose (fp); + + MMailids = atoi (mmailid); + if ((lockstyle = atoi (lkstyle)) < LOK_UNIX || lockstyle > LOK_MMDF) + lockstyle = LOK_UNIX; +#ifdef MHMTS + Syscpy = atoi (syscpy); + (void) sscanf (tmpmode, "0%o", &Tmpmode); +#endif /* MHMTS */ + Everyone = atoi (everyone); +} + +/* */ + +#define QUOTE '\\' + +static char *tailor_value (s) +register char *s; +{ + register int i, + r; + register char *bp; + char buffer[BUFSIZ]; + + for (bp = buffer; *s; bp++, s++) + if (*s != QUOTE) + *bp = *s; + else + switch (*++s) { +#define grot(y,z) case y: *bp = z; break; + grot ('b', '\b'); + grot ('f', '\f'); + grot ('n', '\n'); + grot ('t', '\t'); +#undef grot + + case 0: s--; + case QUOTE: + *bp = QUOTE; + break; + + default: + if (!isdigit (*s)) { + *bp++ = QUOTE; + *bp = *s; + } + r = *s != '0' ? 10 : 8; + for (i = 0; isdigit (*s); s++) + i = i * r + *s - '0'; + s--; + *bp = toascii (i); + break; + } + *bp = 0; + + bp = malloc ((unsigned) (strlen (buffer) + 1)); + if (bp != NULL) + (void) strcpy (bp, buffer); + + return bp; +} + +/* */ + +char *LocalName () { +#ifdef BSD41A + char *myname; +#endif /* BSD41A */ +#if defined(BSD42) || defined(SOCKETS) + register struct hostent *hp; +#endif /* BSD42 or SOCKETS */ +#if defined(SYS5) && !defined(NETWORK) + struct utsname name; +#endif /* SYS5 and not NETWORK */ + static char buffer[BUFSIZ] = ""; + + if (buffer[0]) + return buffer; + + mts_init ("mts"); + if (*localname) + strcpy (buffer, localname); + else { + +#ifdef locname + (void) strcpy (buffer, locname); +#else /* not locname */ +#ifdef NETWORK +#ifdef BSD41A + myname = "myname"; + if (rhost (&myname) == -1) + (void) gethostname (buffer, sizeof buffer); + else { + (void) strcpy (buffer, myname); + free (myname); + } +#endif /* BSD41A */ +#if defined(BSD42) || defined(SOCKETS) + (void) gethostname (buffer, sizeof buffer); +#ifndef BIND + sethostent (1); +#endif + if (hp = gethostbyname (buffer)) + (void) strcpy (buffer, hp -> h_name); +#endif /* BSD42 or SOCKETS */ +#else /* not NETWORK */ +#ifndef SYS5 + (void) strcpy (buffer, SystemName ()); +#else /* SYS5 */ + (void) uname (&name); + (void) strcpy (buffer, name.nodename); +#endif /* SYS5 */ +#endif /* not NETWORK */ +#endif /* not locname */ + } + if (*localdomain) { + strcat (buffer, "."); + strcat (buffer, localdomain); + } + return buffer; +} + +/* */ + +char *SystemName () { +#if defined(SYS5) && !defined(NETWORK) + struct utsname name; +#endif /* SYS5 and not NETWORK */ + static char buffer[BUFSIZ] = ""; + + if (buffer[0]) + return buffer; + + mts_init ("mts"); + if (*systemname) + return strcpy (buffer, systemname); + +#ifdef sysname + (void) strcpy (buffer, sysname); +#else /* sysname */ +#if !defined(SYS5) || defined(NETWORK) + (void) gethostname (buffer, sizeof buffer); +#else /* SYS5 and not NETWORK */ +#ifdef SYS5 + (void) uname (&name); + (void) strcpy (buffer, name.nodename); +#endif /* SYS5 */ +#endif /* SYS5 and not NETWORK */ +#endif /* sysname */ + + return buffer; +} + +/* */ + +char *UucpChan () { +#ifdef MF + static char buffer[BUFSIZ] = ""; +#endif /* MF */ + +#ifndef MF + return NULL; +#else /* MF */ + if (buffer[0]) + return buffer; + + mts_init ("mts"); + if (*UUCPchan) + return strcpy (buffer, UUCPchan); + +#ifdef uucpchan + (void) strcpy (buffer, uucpchan); +#else /* uucpchan */ + (void) strcpy (buffer, "uucp"); +#endif /* uucpchan */ + return buffer; +#endif /* MF */ +} + +/* */ + +#ifdef ALTOS +gethostname (name, len) +register char *name; +register int len; +{ + register char *cp; + register FILE *fp; + + if (fp = fopen ("/etc/systemid", "r")) { + if (fgets (name, len, fp)) { + if (cp = index (name, '\n')) + *cp = 0; + (void) fclose (fp); + return OK; + } + (void) fclose (fp); + } + (void) strncpy (name, "altos", len); + + return OK; +} +#endif /* ALTOS */ + +/* */ + +static char username[BUFSIZ]; +static char fullname[BUFSIZ]; + + +char *getusr () { + register char *cp, + *np; +#ifdef KPOP + int uid; +#endif /* KPOP */ + register struct passwd *pw; + + if (username[0]) + return username; + +#ifndef KPOP + if ((pw = getpwuid (getuid ())) == NULL + || pw -> pw_name == NULL + || *pw -> pw_name == NULL) { +#else /* KPOP */ + uid = getuid (); + if (uid == geteuid () && (cp = getenv ("USER")) != NULL + && (pw = getpwnam (cp)) != NULL) + strcpy (username, cp); + else if ((pw = getpwuid (uid)) == NULL + || pw -> pw_name == NULL + || *pw -> pw_name == '\0') { +#endif /* KPOP */ + (void) strcpy (username, "unknown"); + (void) sprintf (fullname, "The Unknown User-ID (%d)", getuid ()); + return username; + } + + np = pw -> pw_gecos; +#ifndef GCOS_HACK + for (cp = fullname; *np && *np != (MMailids ? '<' : ','); *cp++ = *np++) + continue; +#else + for (cp = fullname; *np && *np != (MMailids ? '<' : ','); ) + if (*np == '&') { /* blech! */ + (void) strcpy(cp, pw -> pw_name); + *cp = toupper(*cp); + while (*cp) + cp++; + np++; + } + else + *cp++ = *np++; +#endif + *cp = '\0'; + if (MMailids) { + if (*np) + np++; + for (cp = username; *np && *np != '>'; *cp++ = *np++) + continue; + *cp = '\0'; + } + if (MMailids == 0 || *np == '\0') + (void) strcpy (username, pw -> pw_name); + + if ((cp = getenv ("SIGNATURE")) && *cp) + (void) strcpy (fullname, cp); + if (index(fullname, '.')) { /* quote any .'s */ + char tmp[BUFSIZ]; + sprintf (tmp, "\"%s\"", fullname);/* should quote "'s too */ + strcpy (fullname, tmp); + } + + return username; +} + + +char *getfullname () { + if (username[0] == '\0') + (void) getusr (); + + return fullname; +} + +/* */ + +#ifdef SYS5 +#ifndef notdef /* Supposedly this works, I prefer the + recursive solution... */ + +#include + +int dup2 (d1, d2) +register int d1, + d2; +{ + int d; + + if (d1 == d2) + return OK; + + (void) close (d2); + if ((d = fcntl (d1, F_DUPFD, d2)) == NOTOK) + return NOTOK; + if (d == d2) + return OK; + + errno = 0; + return NOTOK; +} + +#else /* notdef */ +int dup2 (d1, d2) +register int d1, + d2; +{ + if (d1 == d2) + return OK; + + (void) close (d2); + return dup2aux (d1, d2); +} + + +static int dup2aux (d1, d2) +register int d1, + d2; +{ + int d, + i, + eindex; + + if ((d = dup (d1)) == NOTOK) + return NOTOK; + if (d == d2) + return OK; + + i = dup2aux (d1, d2); + eindex = errno; + (void) close (d); + errno = eindex; + return i; +} +#endif /* notdef */ +#endif /* SYS5 */ +@ + + +2.19 +log +@and "client" (clientname) tailor option +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.18 1993/08/19 23:36:12 jromine Exp jromine $"; +d128 1 +a128 1 +char *clientname = ""; +d205 1 +a205 1 + "client", &clientname, +@ + + +2.18 +log +@use GCOS_HACK (instead of FINGER_HACK) +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.17 1993/08/19 23:08:05 jromine Exp jromine $"; +d128 1 +d205 1 +@ + + +2.17 +log +@add FINGER_HACK +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.16 1992/11/24 18:40:34 jromine Exp jromine $"; +d505 1 +a505 1 +#ifndef FINGER_HACK +@ + + +2.16 +log +@fix decl +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.15 1992/11/02 18:58:12 jromine Exp jromine $"; +d505 1 +d508 12 +@ + + +2.15 +log +@_AIX +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.14 1992/05/19 20:51:57 jromine Exp jromine $"; +d38 1 +a38 1 +char *tailor_value (); +@ + + +2.14 +log +@AIX +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.13 1992/05/12 21:46:45 jromine Exp jromine $"; +d41 1 +a41 1 +#ifdef SYS5 +@ + + +2.13 +log +@fix ifdefs +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.12 1992/02/10 18:12:35 jromine Exp jromine $"; +d46 1 +a46 1 +#ifndef __STDC__ +@ + + +2.12 +log +@some SVR4 changes +add "localdomain" tailor option +@ +text +@d3 2 +a4 2 +static char ident[] = "@@(#)$Id: mts.c,v 2.11 1992/02/05 17:08:16 jromine Exp jromine $"; +#endif lint +d44 1 +a44 1 +#endif SYS5 +d71 1 +a71 1 +#endif MF +d88 1 +a88 1 +#else MF +d90 1 +a90 1 +#endif MF +d115 1 +a115 1 +#endif MHMTS +d118 1 +a118 1 +#endif MMDFMTS +d123 1 +a123 1 +#endif SENDMTS +d143 1 +a143 1 +#endif BPOP +d170 1 +a170 1 +#endif MF +d194 1 +a194 1 +#endif MHMTS +d197 1 +a197 1 +#endif MMDFMTS +d202 1 +a202 1 +#endif SENDMTS +d213 1 +a213 1 +#endif BPOP +d216 1 +a216 1 +#endif NNTP +d273 1 +a273 1 +#endif MHMTS +d332 1 +a332 1 +#endif BSD41A +d335 1 +a335 1 +#endif BSD42 or SOCKETS +d338 1 +a338 1 +#endif SYS5 and not NETWORK +d351 1 +a351 1 +#else not locname +d361 1 +a361 1 +#endif BSD41A +d369 2 +a370 2 +#endif BSD42 or SOCKETS +#else not NETWORK +d373 1 +a373 1 +#else SYS5 +d376 3 +a378 3 +#endif SYS5 +#endif not NETWORK +#endif not locname +d392 1 +a392 1 +#endif SYS5 and not NETWORK +d404 1 +a404 1 +#else sysname +d407 1 +a407 1 +#else SYS5 and not NETWORK +d411 3 +a413 3 +#endif SYS5 +#endif SYS5 and not NETWORK +#endif sysname +d423 1 +a423 1 +#endif MF +d427 1 +a427 1 +#else MF +d437 1 +a437 1 +#else uucpchan +d439 1 +a439 1 +#endif uucpchan +d441 1 +a441 1 +#endif MF +d467 1 +a467 1 +#endif ALTOS +d480 1 +a480 1 +#endif KPOP +d490 1 +a490 1 +#else KPOP +d498 1 +a498 1 +#endif KPOP +d564 1 +a564 1 +#else notdef +d596 2 +a597 2 +#endif notdef +#endif SYS5 +@ + + +2.11 +log +@put getpwnam(USER) under #ifdef KPOP +this is a major lose for shared accounts +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.10 1992/02/03 17:49:13 jromine Exp $"; +d67 1 +d166 1 +d346 2 +a347 1 + return strcpy (buffer, localname); +d379 5 +a383 1 + +@ + + +2.10 +log +@SYS5 +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.9 1992/02/03 16:34:00 jromine Exp jromine $"; +d471 1 +d473 1 +d479 5 +d491 1 +@ + + +2.9 +log +@kerberos +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.8 1992/01/31 21:37:07 jromine Exp jromine $"; +d49 1 +d51 1 +@ + + +2.8 +log +@kerberos +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.7 1991/02/14 15:17:56 mh Exp jromine $"; +d46 1 +d50 1 +@ + + +2.7 +log +@set signature from gecos field of passwd file. $SIGNATURE +will override this +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.6 90/11/05 12:06:39 mh Exp Locker: mh $"; +d11 1 +a11 1 +#endif not (defined(BSD41A) || defined(BSD42) || defined(SOCKETS)) +d20 2 +a21 2 +#endif BSD42 or SOCKETS +#else not NETWORK +d24 1 +a24 1 +#else SYS5 +d26 2 +a27 2 +#endif SYS5 +#endif not NETWORK +d243 2 +a244 2 + *cp = NULL; + if (*buffer == '#' || *buffer == NULL) +d248 1 +a248 1 + *bp++ = NULL; +d250 1 +a250 1 + *bp++ = NULL; +d295 1 +a295 1 + case NULL: s--; +d312 1 +a312 1 + *bp = NULL; +d446 1 +a446 1 + *cp = NULL; +d460 2 +a461 2 +static char username[BUFSIZ] = ""; +static char fullname[BUFSIZ] = ""; +d467 1 +d473 7 +a479 3 + if ((pw = getpwuid (getuid ())) == NULL + || pw -> pw_name == NULL + || *pw -> pw_name == NULL) { +d488 1 +a488 1 + *cp = NULL; +d494 1 +a494 1 + *cp = NULL; +d496 1 +a496 1 + if (MMailids == 0 || *np == NULL) +d512 1 +a512 1 + if (username[0] == NULL) +@ + + +2.6 +log +@quote bad signatures with "..." +JLR +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id: mts.c,v 2.5 90/04/05 15:29:04 sources Exp Locker: mh $"; +d480 4 +a484 4 + np = pw -> pw_gecos; + for (cp = fullname; *np && *np != '<'; *cp++ = *np++) + continue; + *cp = NULL; +d491 1 +a491 1 + if (MMailids == 0 || *np == NULL) { +d493 1 +a493 2 + fullname[0] = NULL; + } +d498 1 +a498 1 + sprintf (tmp, "\"%s\"", fullname); +@ + + +2.5 +log +@add ID +@ +text +@d3 1 +a3 1 +static char ident[] = "@@(#)$Id:$"; +a490 8 + /* + * If the fullname contains any .'s, quote it + */ + if (index(fullname, '.')) { + char tmp[BUFSIZ]; + sprintf (tmp, "\"%s\"", fullname); + strcpy (fullname, tmp); + } +d497 5 +@ + + +2.4 +log +@add ID +@ +text +@d3 1 +a3 1 +static char ident[] = "$Id:"; +@ + + +2.3 +log +@"intruder" -> "unknown" +quote any full names with "."s +@ +text +@d2 3 +@ + + +2.2 +log +@ANSI Compliance +@ +text +@d472 1 +a472 1 + (void) strcpy (username, "intruder"); +d487 8 +@ + + +2.1 +log +@new #define SOCKETS for non-bsd machines with socket(), et. al. +@ +text +@a270 1 +#define grot(x) case 'x': *bp = '\x'; break +d285 6 +a290 4 + grot (b); + grot (f); + grot (n); + grot (t); +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d6 1 +a6 1 +#if defined(BSD41A) || defined(BSD42) +d8 1 +a8 1 +#endif not (defined(BSD41A) || defined(BSD42)) +d15 1 +a15 1 +#ifdef BSD42 +d17 1 +a17 1 +#endif BSD42 +d323 1 +a323 1 +#ifdef BSD42 +d325 2 +a326 2 +#endif BSD42 +#ifdef SYS5 +d328 1 +a328 1 +#endif SYS5 +d351 1 +a351 1 +#ifdef BSD42 +d358 1 +a358 1 +#endif BSD42 +d375 1 +a375 1 +#ifdef SYS5 +d377 1 +a377 1 +#endif SYS5 +d390 1 +a390 1 +#ifndef SYS5 +d392 2 +a393 1 +#else SYS5 +d397 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d205 3 +@ diff --git a/docs/historical/mh-6.8.5/conf/config/bboards.daily b/docs/historical/mh-6.8.5/conf/config/bboards.daily new file mode 100755 index 0000000..8938266 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/bboards.daily @@ -0,0 +1,3 @@ +#! /bin/csh -f +cd @(BBHOME)/etc +sh -c 'make inst-aliases 2>&1 | tee daily.log | mhmail PostMaster -s "`hostname` bboards.daily"' diff --git a/docs/historical/mh-6.8.5/conf/config/bboards.weekly b/docs/historical/mh-6.8.5/conf/config/bboards.weekly new file mode 100755 index 0000000..2ce20b5 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/bboards.weekly @@ -0,0 +1,3 @@ +#! /bin/csh -f +cd @(BBHOME)/etc +sh -c 'make inst-archives 2>&1 | tee weekly.log | mhmail PostMaster -s "`hostname` bboards.weekly"' diff --git a/docs/historical/mh-6.8.5/conf/config/bboardsMH.m4 b/docs/historical/mh-6.8.5/conf/config/bboardsMH.m4 new file mode 100644 index 0000000..81d62cf --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/bboardsMH.m4 @@ -0,0 +1,15 @@ +############################################################ +############################################################ +##### +##### MH BBoards mailer specification +##### +##### @(#)bboardsMH.m4 4.1 10/27/83 +##### +############################################################ +############################################################ + +Mbboards, P=@(MHETCPATH)/sbboards, F=nsmFDM, S=17, R=27, A=bboards $u + + +S27 +R@ MAILER-DAEMON errors to mailer-daemon diff --git a/docs/historical/mh-6.8.5/conf/config/config.c b/docs/historical/mh-6.8.5/conf/config/config.c new file mode 100644 index 0000000..4484bcd --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/config.c @@ -0,0 +1,369 @@ +/* config.c - master MH configuration file */ +#ifndef lint +static char ident[] = "@(#)$Id: config.c,v 1.11 1993/09/01 22:29:10 jromine Exp $"; +#endif /* lint */ + +/* @(MHWARNING) */ + +/* LINTLIBRARY */ + +#include "../h/mh.h" +#ifdef MHRC +#include +#endif /* MHRC */ +#include + + +#if defined(__STDC__) +#define binpath(file) "@(MHBINPATH)/"#file +#define etcpath(file) "@(MHETCPATH)/"#file +#else +#define binpath(file) "@(MHBINPATH)/file" +#define etcpath(file) "@(MHETCPATH)/file" +#endif + +static char Config[] = "@(#)Config: @(MHCONFIGFILE)"; + +@(MHCONFIG) + + +#ifndef __STDC__ +#ifdef MHRC +#ifdef SYS5 +struct passwd *getpwnam (); +#endif /* SYS5 */ +#endif /* MHRC */ +#endif + +/* */ + +static char lpath[BUFSIZ]; + +char *libpath (file) +char *file; +{ + char *cp; +#ifdef MHRC + char *pp; + struct passwd *pw; +#endif /* MHRC */ + +#ifdef MHRC + m_getdefs (); +#endif /* MHRC */ + + switch (*file) { + case '/': + return file; + +#ifdef MHRC + case '~': + if (cp = index (pp = file + 1, '/')) + *cp++ = '\0'; + if (*pp == '\0') + pp = mypath; + else + if (pw = getpwnam (pp)) + pp = pw -> pw_dir; + else { + if (cp) + *--cp = '/'; + goto try_it; + } + + (void) sprintf (lpath, "%s/%s", pp, cp ? cp : ""); + if (cp) + *--cp = '/'; + + if (access (lpath, 04) != NOTOK) + return lpath; /* else fall */ + try_it: ; +#endif /* MHRC */ + + default: + if (access ((cp = m_mailpath (file)), 04) != NOTOK) + return cp; + } + + (void) sprintf (lpath, etcpath (%s), file); + return (access (lpath, 04) != NOTOK ? lpath : file); +} + +/* */ + +/* + * Standard yes/no switches structure + */ + +struct swit anoyes[] = { + "no", 0, + "yes", 0, + NULL, 0 +}; + +/* */ + +/* + * MH constants + */ + +char *components = "components"; +char *current = "cur"; +char *defalt = "inbox"; +char *digestcomps = "digestcomps"; +char *distcomps = "distcomps"; +char *draft = "draft"; +char *forwcomps = "forwcomps"; +char *inbox = "inbox"; +char *mh_defaults = etcpath (mh.profile); +char *mh_profile = ".mh_profile"; +char *mhlformat = "mhl.format"; +char *mhlforward = "mhl.forward"; +char *nsequence = "Sequence-Negation"; +char *pfolder = "Current-Folder"; +char *psequence = "Previous-Sequence"; +char *rcvdistcomps = "rcvdistcomps"; +char *replcomps = "replcomps"; +char *usequence = "Unseen-Sequence"; +char *mhlibdir = "@(MHETCPATH)"; /* NB: this will change */ + + +/* + * MH not-so constants + */ + +char *context = "context"; +#ifndef NOMHSEQ +char *mh_seq = ".mh_sequences"; +#else /* NOMHSEQ */ +char *mh_seq = NULL; +#endif /* NOMHSEQ */ + + +/* + * MH globals + */ + +char ctxflags; /* status of user's context */ + +char *invo_name; /* pgm invocation name */ +char *mypath; /* user's $HOME */ +char *defpath; /* pathname of user's profile */ +char *ctxpath; /* pathname of user's context */ + +struct node *m_defs; /* profile/context structure */ + +/* */ + +/* + * MH processes + */ + + +/* + * mhl runs this program as a visual-end. + */ + +char *faceproc = NULL; + + +/* + * This program is usually called directly by users, but it is + * also invoked by the post program to process an "fcc". + */ + +char *fileproc = binpath (refile); + + +/* + * This program is called to incorporate messages into a folder. + */ + +char *incproc = binpath (inc); + + +/* + * When a user runs an MH program for the first time, this program + * is called to create his MH profile, and mail directory. + */ + +char *installproc = etcpath (install-mh); + + +/* + * This is the program invoked by a "list" response to "What now?" + * whereas, showproc is the program invoked by show, next, prev. + */ + +#ifndef MORE +char *lproc = "/usr/ucb/more"; +#else /* MORE */ +char *lproc = MORE; +#endif /* MORE */ + + +/* + * This is the path for the Bell equivalent mail program. + */ + +char *mailproc = binpath (mhmail); + + +/* + * mhl runs this program as a front-end. + */ + +#ifndef MORE +char *moreproc = "/usr/ucb/more"; +#else /* MORE */ +char *moreproc = MORE; +#endif /* MORE */ + + +/* + * This program is mhl - the nifty message lister + */ + +char *mhlproc = etcpath (mhl); + + +/* + * This is the super handy BBoard reading program, which is really just the MH + * shell program + */ + +char *mshproc = binpath (msh); + + +/* + * This program is called to pack a folder. + */ + +char *packproc = binpath (packf); + + +/* + * This is the delivery program called through send to + * actually deliver mail to users. This is the interface to + * the MTS. + */ + +#if BERK && SENDMTS && !SMTP +char *postproc = etcpath (spost); +#else +char *postproc = etcpath (post); +#endif /* BERK */ + + +/* + * This program is called to remove a folder. + */ + +char *rmfproc = binpath (rmf); + + +/* + * This program is called to remove a message by rmm or refile -nolink. + * It's usually empty, which means to rename the file to a backup name. + */ + +char *rmmproc = NULL; + + +/* + * This program is usually called by the user's whatnowproc, but it + * may also be called directly to send a message previously composed. + */ + +char *sendproc = binpath (send); + + +/* + * This program is called to list messages by the show program. + * By setting showproc to mhl, the user can run mhl instead. + */ + +#ifndef MORE +char *showproc = "/usr/ucb/more"; +#else /* MORE */ +char *showproc = MORE; +#endif /* MORE */ + + +/* + * This program is called under stand-alone MH to deliver a message to + * a local user. Under other MTS's it can be used to emulate a + * MMDF-II .maildelivery mechanism. + */ + +char *slocalproc = etcpath (slocal); + + +/* + * This program is called by vmh as the back-end to the window management + * protocol + */ + +char *vmhproc = binpath (msh); + + +/* + * This program is called after comp, et. al., have built a draft + */ + +char *whatnowproc = binpath (whatnow); + + +/* + * This program is called to list/validate the addresses in a message. + */ + +char *whomproc = binpath (whom); + +/* */ + +/* + * This is the editor invoked by the various message composition + * programs. It SHOULD be a 2-D scope editor, such as Rand's ned + * or Berkeley's ex, but any editor will work. We use prompter as + * the default, since with -prepend it works just fine with forw. + */ + +char *sysed = "@(MHEDITOR)"; + + +/* + * This is the MH alias file. + */ + +char *AliasFile = etcpath (MailAliases); + +/* */ + +/* + * File protections + */ + + +/* + * Folders (directories) are created with this protection (mode) + */ + +#ifndef FOLDPROT +#define FOLDPROT "0711" +#endif /* not FOLDPROT */ + +char *foldprot = FOLDPROT; + + +/* + * Every NEW message will be created with this protection. When a + * message is filed it retains its protection, so this only applies + * to messages coming in through inc. + */ + +#ifndef MSGPROT +#define MSGPROT "0644" +#endif /* not MSGPROT */ + +char *msgprot = MSGPROT; diff --git a/docs/historical/mh-6.8.5/conf/config/crontab b/docs/historical/mh-6.8.5/conf/config/crontab new file mode 100644 index 0000000..5454e61 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/crontab @@ -0,0 +1,3 @@ +00 5 * * * @(MHETCPATH)/conflict -mail PostMaster +05 5 * * * su bboards < @(BBHOME)/etc/bboards.daily +10 5 * * 0 su bboards < @(BBHOME)/etc/bboards.weekly diff --git a/docs/historical/mh-6.8.5/conf/config/mts.c b/docs/historical/mh-6.8.5/conf/config/mts.c new file mode 100644 index 0000000..8ff9c5b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/mts.c @@ -0,0 +1,612 @@ +/* mts.c - definitions for the mail transport system */ +#ifndef lint +static char ident[] = "@(#)$Id: mts.c,v 2.20 1994/03/23 23:35:23 jromine Exp $"; +#endif /* lint */ + +/* LINTLIBRARY */ + +#undef NETWORK +#if defined(BSD41A) || defined(BSD42) || defined(SOCKETS) +#define NETWORK +#endif + +#include "../h/strings.h" +#include +#include +#include "mts.h" +#ifdef NETWORK +#if defined(BSD42) || defined(SOCKETS) +#include +#endif +#else /* NETWORK */ +#ifndef SYS5 +#include +#else +#include +#endif /* SYS5 */ +#endif /* NETWORK */ +#include + + +#define NOTOK (-1) +#define OK 0 + +#define NULLCP ((char *) 0) + +extern int errno; + +static char *tailor_value (); + + +#if defined(SYS5) && !defined(_AIX) +#define index strchr +#define rindex strrchr +#endif /* SYS5 */ + +#if !defined(__STDC__) && !defined(_AIX) && !defined(_POSIX_SOURCE) +char *index (), *malloc (), *mktemp (), *rindex (), *strcpy (); + +#ifdef SYS5 +struct passwd *getpwuid (); +#endif +#endif /* !__STDC__ */ + +/* */ + +/* + *mmdfldir and *uucpldir are the maildrop directories. If maildrops + are kept in the user's home directory, then these should be empty + strings. In this case, the appropriate ...lfil array should contain + the name of the file in the user's home directory. Usually, this is + something like ".mail". + */ + +static char *mtstailor = "@(MHETCPATH)/mtstailor"; + +static char *localname = ""; +static char *localdomain = ""; +static char *systemname = ""; +#ifdef MF +static char *UUCPchan = ""; +#endif /* MF */ +char *mmdfldir = "@(MHDROPATH)"; +char *mmdflfil = "@(MHDROPFIL)"; +char *uucpldir = "/usr/spool/mail"; +char *uucplfil = ""; + + +char *mmdlm1 = "\001\001\001\001\n"; +char *mmdlm2 = "\001\001\001\001\n"; + + +static int MMailids = 0; +static char *mmailid = "0"; + + +#ifdef MF +char *umincproc = "@(MHETCPATH)/uminc"; +#else /* MF */ +char *umincproc = NULL; +#endif /* MF */ + + +int lockstyle = LOK_UNIX; +static char *lkstyle = "0"; +char *lockldir = ""; + +/* */ + +/* MTS specific variables */ + +#ifdef MHMTS +char *Mailqdir = "/usr/spool/netmail"; +char *TMailqdir = "/usr/tmp"; +int Syscpy = 1; +static char *syscpy = "1"; +char *Overseer = "root"; +char *Mailer = "root"; +char *Fromtmp = "/tmp/rml.f.XXXXXX"; +char *Msgtmp = "/tmp/rml.m.XXXXXX"; +char *Errtmp = "/tmp/rml.e.XXXXXX"; +int Tmpmode = 0600; +static char *tmpmode = "0600"; +char *Okhosts = "@(MHETCPATH)/Rmail.OkHosts"; +char *Okdests = "@(MHETCPATH)/Rmail.OkDests"; +#endif /* MHMTS */ + +#ifdef MMDFMTS +#endif /* MMDFMTS */ + +#ifdef SENDMTS +char *hostable = "@(MHETCPATH)/hosts"; +char *sendmail = "/usr/lib/sendmail"; +#endif /* SENDMTS */ + + +/* SMTP/POP stuff */ + +char *clientname = (char *)0; +char *servers = "localhost \01localnet"; +char *pophost = ""; + + +/* BBoards-specific variables */ + +char *bb_domain = ""; + + +/* POP BBoards-specific variables */ + +#ifdef BPOP +char *popbbhost = ""; +char *popbbuser = ""; +char *popbblist = "@(MHETCPATH)/hosts.popbb"; +#endif /* BPOP */ + + +/* MailDelivery */ + +char *maildelivery = "@(MHETCPATH)/maildelivery"; + + +/* Aliasing Facility (doesn't belong here) */ + +int Everyone = NOTOK; +static char *everyone = "-1"; +char *NoShell = ""; + +/* */ + +/* customize the MTS settings for MH by reading @(MHETCPATH)/mtstailor */ + +static struct bind { + char *keyword; + char **value; +} binds[] = { + "localname", &localname, + "localdomain", &localdomain, + "systemname", &systemname, +#ifdef MF + "uucpchan", &UUCPchan, +#endif /* MF */ + "mmdfldir", &mmdfldir, + "mmdflfil", &mmdflfil, + "uucpldir", &uucpldir, + "uucplfil", &uucplfil, + "mmdelim1", &mmdlm1, + "mmdelim2", &mmdlm2, + "mmailid", &mmailid, + "umincproc", &umincproc, + "lockstyle", &lkstyle, + "lockldir", &lockldir, + +#ifdef MHMTS + "mailqdir", &Mailqdir, + "tmailqdir", &TMailqdir, + "syscpy", &syscpy, + "overseer", &Overseer, + "mailer", &Mailer, + "fromtmp", &Fromtmp, + "msgtmp", &Msgtmp, + "errtmp", &Errtmp, + "tmpmode", &tmpmode, + "okhosts", &Okhosts, + "okdests", &Okdests, +#endif /* MHMTS */ + +#ifdef MMDFMTS +#endif /* MMDFMTS */ + +#ifdef SENDMTS + "hostable", &hostable, + "sendmail", &sendmail, +#endif /* SENDMTS */ + + "clientname", &clientname, + "servers", &servers, + "pophost", &pophost, + + "bbdomain", &bb_domain, + +#ifdef BPOP + "popbbhost", &popbbhost, + "popbbuser", &popbbuser, + "popbblist", &popbblist, +#endif /* BPOP */ +#ifdef NNTP + "nntphost", &popbbhost, +#endif /* NNTP */ + + "maildelivery", &maildelivery, + + "everyone", &everyone, + "noshell", &NoShell, + + NULL +}; + +/* */ + +/* I'd like to use m_getfld() here, but not all programs loading mts.o may be + MH-style programs... */ + +/* ARGSUSED */ + +mts_init (name) +char *name; +{ + register char *bp, + *cp; + char buffer[BUFSIZ]; + register struct bind *b; + register FILE *fp; + static int inited = 0; + + if (inited++ || (fp = fopen (mtstailor, "r")) == NULL) + return; + + while (fgets (buffer, sizeof buffer, fp)) { + if ((cp = index (buffer, '\n')) == NULL) + break; + *cp = 0; + if (*buffer == '#' || *buffer == '\0') + continue; + if ((bp = index (buffer, ':')) == NULL) + break; + *bp++ = 0; + while (isspace (*bp)) + *bp++ = 0; + + for (b = binds; b -> keyword; b++) + if (strcmp (buffer, b -> keyword) == 0) + break; + if (b -> keyword && (cp = tailor_value (bp))) + *b -> value = cp; + } + + (void) fclose (fp); + + MMailids = atoi (mmailid); + if ((lockstyle = atoi (lkstyle)) < LOK_UNIX || lockstyle > LOK_MMDF) + lockstyle = LOK_UNIX; +#ifdef MHMTS + Syscpy = atoi (syscpy); + (void) sscanf (tmpmode, "0%o", &Tmpmode); +#endif /* MHMTS */ + Everyone = atoi (everyone); +} + +/* */ + +#define QUOTE '\\' + +static char *tailor_value (s) +register char *s; +{ + register int i, + r; + register char *bp; + char buffer[BUFSIZ]; + + for (bp = buffer; *s; bp++, s++) + if (*s != QUOTE) + *bp = *s; + else + switch (*++s) { +#define grot(y,z) case y: *bp = z; break; + grot ('b', '\b'); + grot ('f', '\f'); + grot ('n', '\n'); + grot ('t', '\t'); +#undef grot + + case 0: s--; + case QUOTE: + *bp = QUOTE; + break; + + default: + if (!isdigit (*s)) { + *bp++ = QUOTE; + *bp = *s; + } + r = *s != '0' ? 10 : 8; + for (i = 0; isdigit (*s); s++) + i = i * r + *s - '0'; + s--; + *bp = toascii (i); + break; + } + *bp = 0; + + bp = malloc ((unsigned) (strlen (buffer) + 1)); + if (bp != NULL) + (void) strcpy (bp, buffer); + + return bp; +} + +/* */ + +char *LocalName () { +#ifdef BSD41A + char *myname; +#endif /* BSD41A */ +#if defined(BSD42) || defined(SOCKETS) + register struct hostent *hp; +#endif /* BSD42 or SOCKETS */ +#if defined(SYS5) && !defined(NETWORK) + struct utsname name; +#endif /* SYS5 and not NETWORK */ + static char buffer[BUFSIZ] = ""; + + if (buffer[0]) + return buffer; + + mts_init ("mts"); + if (*localname) + strcpy (buffer, localname); + else { + +#ifdef locname + (void) strcpy (buffer, locname); +#else /* not locname */ +#ifdef NETWORK +#ifdef BSD41A + myname = "myname"; + if (rhost (&myname) == -1) + (void) gethostname (buffer, sizeof buffer); + else { + (void) strcpy (buffer, myname); + free (myname); + } +#endif /* BSD41A */ +#if defined(BSD42) || defined(SOCKETS) + (void) gethostname (buffer, sizeof buffer); +#ifndef BIND + sethostent (1); +#endif + if (hp = gethostbyname (buffer)) + (void) strcpy (buffer, hp -> h_name); +#endif /* BSD42 or SOCKETS */ +#else /* not NETWORK */ +#ifndef SYS5 + (void) strcpy (buffer, SystemName ()); +#else /* SYS5 */ + (void) uname (&name); + (void) strcpy (buffer, name.nodename); +#endif /* SYS5 */ +#endif /* not NETWORK */ +#endif /* not locname */ + } + if (*localdomain) { + strcat (buffer, "."); + strcat (buffer, localdomain); + } + return buffer; +} + +/* */ + +char *SystemName () { +#if defined(SYS5) && !defined(NETWORK) + struct utsname name; +#endif /* SYS5 and not NETWORK */ + static char buffer[BUFSIZ] = ""; + + if (buffer[0]) + return buffer; + + mts_init ("mts"); + if (*systemname) + return strcpy (buffer, systemname); + +#ifdef sysname + (void) strcpy (buffer, sysname); +#else /* sysname */ +#if !defined(SYS5) || defined(NETWORK) + (void) gethostname (buffer, sizeof buffer); +#else /* SYS5 and not NETWORK */ +#ifdef SYS5 + (void) uname (&name); + (void) strcpy (buffer, name.nodename); +#endif /* SYS5 */ +#endif /* SYS5 and not NETWORK */ +#endif /* sysname */ + + return buffer; +} + +/* */ + +char *UucpChan () { +#ifdef MF + static char buffer[BUFSIZ] = ""; +#endif /* MF */ + +#ifndef MF + return NULL; +#else /* MF */ + if (buffer[0]) + return buffer; + + mts_init ("mts"); + if (*UUCPchan) + return strcpy (buffer, UUCPchan); + +#ifdef uucpchan + (void) strcpy (buffer, uucpchan); +#else /* uucpchan */ + (void) strcpy (buffer, "uucp"); +#endif /* uucpchan */ + return buffer; +#endif /* MF */ +} + +/* */ + +#ifdef ALTOS +gethostname (name, len) +register char *name; +register int len; +{ + register char *cp; + register FILE *fp; + + if (fp = fopen ("/etc/systemid", "r")) { + if (fgets (name, len, fp)) { + if (cp = index (name, '\n')) + *cp = 0; + (void) fclose (fp); + return OK; + } + (void) fclose (fp); + } + (void) strncpy (name, "altos", len); + + return OK; +} +#endif /* ALTOS */ + +/* */ + +static char username[BUFSIZ]; +static char fullname[BUFSIZ]; + + +char *getusr () { + register char *cp, + *np; +#ifdef KPOP + int uid; +#endif /* KPOP */ + register struct passwd *pw; + + if (username[0]) + return username; + +#ifndef KPOP + if ((pw = getpwuid (getuid ())) == NULL + || pw -> pw_name == NULL + || *pw -> pw_name == NULL) { +#else /* KPOP */ + uid = getuid (); + if (uid == geteuid () && (cp = getenv ("USER")) != NULL + && (pw = getpwnam (cp)) != NULL) + strcpy (username, cp); + else if ((pw = getpwuid (uid)) == NULL + || pw -> pw_name == NULL + || *pw -> pw_name == '\0') { +#endif /* KPOP */ + (void) strcpy (username, "unknown"); + (void) sprintf (fullname, "The Unknown User-ID (%d)", getuid ()); + return username; + } + + np = pw -> pw_gecos; +#ifndef GCOS_HACK + for (cp = fullname; *np && *np != (MMailids ? '<' : ','); *cp++ = *np++) + continue; +#else + for (cp = fullname; *np && *np != (MMailids ? '<' : ','); ) + if (*np == '&') { /* blech! */ + (void) strcpy(cp, pw -> pw_name); + *cp = toupper(*cp); + while (*cp) + cp++; + np++; + } + else + *cp++ = *np++; +#endif + *cp = '\0'; + if (MMailids) { + if (*np) + np++; + for (cp = username; *np && *np != '>'; *cp++ = *np++) + continue; + *cp = '\0'; + } + if (MMailids == 0 || *np == '\0') + (void) strcpy (username, pw -> pw_name); + + if ((cp = getenv ("SIGNATURE")) && *cp) + (void) strcpy (fullname, cp); + if (index(fullname, '.')) { /* quote any .'s */ + char tmp[BUFSIZ]; + sprintf (tmp, "\"%s\"", fullname);/* should quote "'s too */ + strcpy (fullname, tmp); + } + + return username; +} + + +char *getfullname () { + if (username[0] == '\0') + (void) getusr (); + + return fullname; +} + +/* */ + +#ifdef SYS5 +#ifndef notdef /* Supposedly this works, I prefer the + recursive solution... */ + +#include + +int dup2 (d1, d2) +register int d1, + d2; +{ + int d; + + if (d1 == d2) + return OK; + + (void) close (d2); + if ((d = fcntl (d1, F_DUPFD, d2)) == NOTOK) + return NOTOK; + if (d == d2) + return OK; + + errno = 0; + return NOTOK; +} + +#else /* notdef */ +int dup2 (d1, d2) +register int d1, + d2; +{ + if (d1 == d2) + return OK; + + (void) close (d2); + return dup2aux (d1, d2); +} + + +static int dup2aux (d1, d2) +register int d1, + d2; +{ + int d, + i, + eindex; + + if ((d = dup (d1)) == NOTOK) + return NOTOK; + if (d == d2) + return OK; + + i = dup2aux (d1, d2); + eindex = errno; + (void) close (d); + errno = eindex; + return i; +} +#endif /* notdef */ +#endif /* SYS5 */ diff --git a/docs/historical/mh-6.8.5/conf/config/mtstailor b/docs/historical/mh-6.8.5/conf/config/mtstailor new file mode 100644 index 0000000..912a613 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/mtstailor @@ -0,0 +1,4 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +hostable: @(MHETCPATH)/hosts +servers: localhost \01localnet diff --git a/docs/historical/mh-6.8.5/conf/config/popMH.m4 b/docs/historical/mh-6.8.5/conf/config/popMH.m4 new file mode 100644 index 0000000..99e9897 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/config/popMH.m4 @@ -0,0 +1,15 @@ +############################################################ +############################################################ +##### +##### MH POP mailer specification +##### +##### @(#)popMH.m4 4.1 05/15/85 +##### +############################################################ +############################################################ + +Mpop, P=@(MHETCPATH)/spop, F=nsmFDM, S=17, R=27, A=pop $u + + +S27 +R@ MAILER-DAEMON errors to mailer-daemon diff --git a/docs/historical/mh-6.8.5/conf/doc/ADMIN.rf b/docs/historical/mh-6.8.5/conf/doc/ADMIN.rf new file mode 100644 index 0000000..dde6f29 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/ADMIN.rf @@ -0,0 +1,955 @@ +.\" @(MHWARNING) +.\" @(#)$Id: ADMIN.rf,v 2.17 1995/12/06 22:42:25 jromine Exp $ +.po +.75i +.de $c \" Major Heading printer +.ce +.b "\\s12\\n+(ch.\\ \\$1\\s0" \" 12 Point Bold Header +.(x + +\ \ \ \\n(ch.\\ \\ \\$1 +.)x +.sp 45p \" 45 point space or about 1/2 inch +.. +\".nr xs .15v \" Put index entries closer together +.(x + +Section +.)x _ +.de $0 \" Sub-Heading macro called AFTER printing the heading +.(x +.sp .3v +.ti .5i +\\$1 +.)x +.. +.de $s \" Macro to print footnote separator +\"\l'2i' \" No line drawn +.if n \ +. sp 1.3 \" But extra space to make up for it. +.. +.fc ^ ~ \" The characters ^ and ~ CANNOT BE USED +\" throughout this document except as field +\" delimiter & pad indicator! +.he ''-%-'' +.ll 32P \" 32 Picas or about 5+1/3 inch Line Length +.if n .ll 72m \" Use 72 ems for nroff +.nr ss 30p \" 30 point space before section titles +.nr fm 5v \" RAND likes bigger than normal [3v] bottom margins +.nr bm 7v \" ditto +.ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out. +.ds << <\\h!-(\\w'<'/2)!< +.ds >> >\\h!-(\\w'>'/2)!> +.ds ** \v'-3p'\s+1*\s0\v'+3p' +.so version.rf +.tp +.(l C +\fIdiscard this page\fR +.sp 4 +The RAND \fIMH\fR +Message Handling +System: +Administrator's Guide +.sp +UCI Version +.sp 2 +\*(td +\*(MH +.)l +.++ C +.+c INTRODUCTION + +.uh "Scope of this document" +.pp +This is the Administrator's Guide to \fIMH\fR. +If you don't maintain an \fIMH\fR system, +don't read this; +the information is entirely too technical. +If you are a maintainer, +then read this guide until you understand it, +follow the advice it gives, +and then forget about the guide. +.pp +Before continuing, I'll point out two facts: +.sp 2 +.(l C +\fIThis document will never contain all the information +you need to maintain MH. +.sp +Furthermore, this document will never contain everything +I know about maintaining MH.\fR +.)l +.sp 2 +\fIMH\fR, +and mailsystems in general, +are more complex than most people realize. +A combination of experience, intuition, and tenacity is required to maintain +\fIMH\fR properly. +This document can provide only guidelines for bringing up an \fIMH\fR system +and maintaining it. +There is a sufficient amount of customization possible that not all events or +problems can be forseen. + +.uh "Summary" +.pp +During \fIMH\fR generation, +you specify several configuration constants to the \fImhconfig\fR program. +These directives take into consideration such issues as hardware and +operating system dependencies in the source code. +They also factor out some major mailsystem administrative decisions +that are likely to be made consistantly at sites with more than one host. +The manual entry \fImh\-gen\fR\0(8) describes all the static configuration +directives. +.pp +However, +when you install \fIMH\fR you may wish to make some site\-specific +or host\-specific changes which aren't hardware or even software related. +Rather, they are administrative decisions. +That's what this guide is for: it describes all of the dynamically tailorable +directives. +.pp +Usually, after installing \fIMH\fR, you'll want to edit the +\fB@(MHETCPATH)/mtstailor\fR file. +This file fine-tunes the way \fIMH\fR interacts with the message transport +system (MTS). +Section 2 talks about the MTS interface and MTS tailoring. +.pp +After that, if you're running the UCI BBoards facility, +or the POP facility, +you'll need to know how to maintain those systems. +Sections 3 and 4 talk about these. +.pp +If for some reason +you're not running an MTS that can handle both Internet and \fIUUCP\fR traffic, +you should read\-up on mail filtering in Section 5. +Although this is considered \*(lqold technology\*(rq now, +the mechanisms described in Section 5 were really quite useful when +first introduced way back in 1981. +.pp +Finally, you may want to know how to modify the \fIMH\fR source tree. +Section 6 talks (a little bit) about that. +.pp +The last two sections describe a few hidden features in \fIMH\fR, +and the configuration options that were in effect when this guide was +generated. +.pp +After \fIMH\fR is installed, you should define the address \*(lqBug\-MH\*(rq +to map to either you or the \fIPostMaster\fR at your site. +.pp +In addition, +if you want to tailor the behavior of \fIMH\fR for new users, +you can create and edit the file \fB@(MHETCPATH)/mh.profile\fR. +When the \fIinstall-mh\fR program is run for a user, +if this file exists, it will copy it into the user's \&.mh\(ruprofile +file. + +.\" macros for the .me/.man files +.de SC +.he '\\$1(\\$2)'-%-'\\$1(\\$2)' +.bp +.(x +.ti .8i +\\$1 +.)x +.. +.de NA +.b \\s-2NAME\\s0 +.ti .5i +.. +.de SY +.sp +.b \\s-2SYNOPSIS\\s0 +.in 1i +.ti .5i +.na +.. +.de DE +.ad +.sp +.in 0 +.b \\s-2DESCRIPTION\\s0 +.sp +.fi +.in .5i +.. +.de Uh +.ad +.sp +.ti .25i +.b "\\s-2\\$1\\s0" +.sp +.fi +.. +.de Hh +.ad +.sp +.in 0 +.b "\\s-2Helpful Hints\\s0" +.sp +.fi +.in .5i +.. +.de Fi +.(b L +.ti 0 +.b \\s-2Files\\s0 +.ta \w'@(MHETCPATH)/ExtraBigFileName 'u +.. +.de Pr +.)b +.(b L F +.ta \w'ExtraBigProfileName 'u +.ti 0 +.b "\\s-2Profile Components\\s0" +.ti .5i +.. +.de Ps +.ti .5i +.. +.de Sa +.)b +.(b L F +.ti 0 +.b "\\s-2See Also\\s0" +.br +.. +.de De +.)b +.(b L +.in .5i +.ti 0 +.b \\s-2Defaults\\s0 +.. +.de Ds +.. +.de Co +.)b +.(b L F +.ti 0 +.b \\s-2Context\\s0 +.br +.. +.de Hi +.)b +.(b L F +.ti 0 +.b \\s-2History\\s0 +.br +.. +.de Bu +.)b +.(b L F +.ti 0 +.b \\s-2Bugs\\s0 +.br +.. +.de En +.)b +.in 0 +.. + +.+c "THE MTS INTERFACE" +.pp +The file \fB@(MHETCPATH)/mtstailor\fR customizes +certain host\-specific parameters of \fIMH\fR +related primarily to interactions with the transport system. +The parameters in this file override the compiled\-in defaults given during +\fIMH\fR configuration. +Rather than recompiling \fIMH\fR on each host to make minor customizations, +it is easier simply to modify the \fBmtstailor\fR file. +All hosts at a given site normally use the same \fBmtstailor\fR file, +though this need not be the case. +.pp +It is a good idea to run the \fIconflict\fR\0(8) program each morning +under \fIcron\fR. +The following line usually suffices: + +.ti +.5i +00 05 * * * @(MHETCPATH)/conflict -mail PostMaster + +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mh-tailor.me +.so mh-mts.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "BBOARDS" +.pp +The UCI BBoards facility has two aspects: message reading, and +message delivery. The configuration directives applicable to +BBoards are \*(lqbboards: on/off/pop/nntp\*(rq and +\*(lqbbdelivery: on/off\*(rq. +.uh "BBoard Delivery" +.pp +If you enabled BBoards delivery (\*(lqbbdelivery: on\*(rq) +during configuration, +then the initial environment for bboards delivery +was set\-up during installation. +A BBoard called \*(lqsystem\*(rq is established, +which is the BBoard for general discussion. +.pp +To add more BBoards, become the \*(lqbboards\*(rq user, +and edit the \fB@(BBHOME)/BBoards\fR file. +The file \fBsupport/bboards/Example\fR is a copy of the +\fB@(BBHOME)/BBoards\fR file that we use at UCI. +When you add a BBoard, +you don't have to create the files associated with it, +the BBoards delivery system will do that automatically. +.pp +Private BBoards may be created. +To add the fictitious private BBoard \*(lqhacks\*(rq, +add the appropriate entry to the BBoards file, +create the empty file \fB@(BBHOME)/hacks.mbox\fR (or whatever), +change the mode of this file to 0640, +and change the group of the file to be the groupid of the people that you +want to be able to read it. +Also be sure to add the \*(lqbboards\*(rq user to this group +(in \fB/etc/group\fR), +so the archives can be owned correctly. +.pp +By using the special INVIS flag for a BBoard, +special purpose BBoards may be set\-up which are invisible to the \fIMH\fR +user. +For example, +if a site distributes a BBoard both locally to a number of machines and to a +number of distant machines. +It might be useful to have two distribution lists: +one for all machines on the list, and the other for local machines only. +This is actually very simple to do. +For the main list, +put the standard entry of information in the \fB@(BBHOME)/BBoards\fR file, +with the complete distribution list. +For the local machines list, +and add a similar entry to the \fB@(BBHOME)/BBoards\fR file. +All the fields should be the same except three: +the BBoard name should reflect a local designation (e.g., \*(lql\-hacks\*(rq), +the distribution list should contain only machines at the local site, +and the flags field should contain the INVIS flag. +Since the two entries share the same primary and archive files, +messages sent to either list are read by local users, +while only thoses messages sent to the main list are read by all users. +.pp +Two automatic facilities for dealing with BBoards exist: +automatic archiving and automatic aliasing. +The file \fBsupport/bboards/crontab\fR contains some entries that you +should add to your \fB/usr/lib/crontab\fR file to run the specified programs +at times that are convenient for you. +The \fBbboards.daily\fR file is run once a day and generates an alias file +for \fIMH\fR. +By using this file, users of \fIMH\fR can use, for example, +\*(lqunix\-wizards\*(rq instead of \*(lqunix\-wizards@brl\-vgr\*(rq +when they want to send a message to the \*(lqunix\-wizards\*(rq +discussion group. +This is a major win, since you just have to know the name of the group, +not the address where it's located. +.pp +The \fBbboards.weekly\fR file is run once a week and handles old +messages (those received more than 12 days ago) in the BBoards area. +In short, +those BBoards which are marked for automatic archiving +will have their old messages placed in the \fB@(BBHOME)/archive/\fR area, +or have their old messages removed. +Not only does this make BBoards faster to read, +but it conveniently partitions the new messages from the old messages +so you can easily put the old messages on tape and then remove them. +It turns out that this automatic archiving capability is also a major +win. +.pp +At UCI, +our policy is to save archived messages on tape (every two months or so). +We use a program called \fIbbtar\fR to implement our particular policy. +Since some BBoards are private (see above), +we save the archives on two tapes: +one containing the world\-readable archives +(this tape is read-only accessible to all users by calling the operator), +and the other containing the non\-world\-readable ones +(this tape is kept locked\-up somewhere). +.uh "BBoards with the POP" +.pp +If you configured \fIMH\fP with \*(lqbboards: pop\*(rq and \*(lqpop: on\*(rq, +then the \fIMH\fR user is allowed to read BBoards on a server machine +instead of the local host (thus saving disk space). +For completely transparent behavior, +the administrator may set certain variables in the \fBmtstailor\fR file +on the client host. +The variable \*(lqpopbbhost\*(rq indicates the host where BBoards are +kept +(it doesn't have to be the POP service host, +but this host must run both a POP server and the BBoards system). +The variable \*(lqpopbbuser\*(rq indicates the guest account on this host +for BBoards. +This username should not be either the POP user or the BBoards user. +Usually the anonymous FTP user (ftp) is the best choice. +Finally, the variable \*(lqpopbblist\*(rq indicates the name of a file which +contains a list of hosts (one to a line, official host names only) which +should be allowed to use the POP facility to access BBoards via the guest +account. +(If the file is not present, then no check is made.) +.pp +The \*(lqpopbbuser\*(rq variable should be set on both the client and service +host. +The \*(lqpopbbhost\*(rq variable need be set only on the client host +(the value, of course, is the name of the service host). +The \*(lqpopbblist\*(rq variable need be set only on the service host. +.pp +Finally, +on the client host, +if a POP service host is not explicitly given by the user +(i.e., \*(lqpopbbhost\*(rq is implicitly used), +then \fIbbc\fR will explicitly check the local host prior to contacting +the service host. +This allows each POP client host to have a few local BBoards +(e.g., each host could have one called \*(lqsystem\*(rq), +and then have the POP service host used for all the rest +(a site\-wide BBoard might be known as \*(lqgeneral\*(rq). +.uh "BBoards with the NNTP" +.pp +If you configured \fIMH\fP with \*(lqbboards: nntp\*(rq and \*(lqpop: on\*(rq, +then +the \fIMH\fR user is allowed to read the Network News on a +server machine using the standard \fIbbc\fR command. +For completely transparent behavior, +the administrator may set the \*(lqnntphost\*(rq variable in the +\fBmtstailor\fR file to indicate the host where the Network News is kept. +The \*(lqnntphost\*(rq variable should be set only on the client host +Finally, +on the client host, +if an NNTP service host is not explicitly given by the user +(i.e., \*(lqnntphost\*(rq is implicitly used), +then \fIbbc\fR will explicitly check the local host prior to contacting +the service host. +This allows each NNTP client host to have a few local BBoards +(e.g., each host could have one called \*(lqsystem\*(rq), +and then have the NNTP service host used for to read the Network News. +.pp +Reading BBoards via the POP and via the NNTP are mutually exclusive. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.po -.50i +.so bboards5.me +.so bbaka.me +.so bbexp.me +.so bboards8.me +.so bbtar.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "POP" +.pp +For POP (Post Office Protocol) client hosts, +you need to edit the \fB@(MHETCPATH)/mtstailor\fR file to know about two +hosts: +the SMTP service host and the POP service host. +Normally, these are the same. +Change the \*(lqlocalname\*(rq field of the \fBmtstailor\fR file +of \fIMH\fR in the file to be the name of the POP service host. +This makes replies to mail generated on the POP client host possible, +since \fIMH\fR will consider use the hostname of the POP service host as the +local hostname for outgoing mail. +Also set the value of \*(lqpophost\*(rq to this value. +This tells \fIinc\fR and \fImsgchk\fR to use POP instead of looking for mail +locally. +Finally, +make sure the value of \*(lqservers\*(rq includes the name of the SMTP +service host. +The recommended value for \*(lqservers\*(rq is: + +.ti +.5i +servers:\ SMTP\-service\-host localhost \\01localnet +.pp +If you want more information on the Post Office Protocol used by \fIMH\fR, +consult the files \fBsupport/pop/rfc1081.txt\fP and +\fBsupport/pop/rfc1082.txt\fP which describe the \fIMH\fP version of +the POP: POP3. +.pp +For POP service hosts, +you need to run a daemon, \fIpopd\fR\0(8). +The daemon should start at multi\-user boot time, +so adding the lines: +.sp +.nf +.in +.5i +if [ \-f /etc/popd ]; then + /etc/popd & echo \-n ' pop' >/dev/console +fi +.in -.5i +.fi +.sp +to the \fB/etc/rc.local\fR file is sufficient. +.pp +The port assigned to the POP3 protocol is \*(lq110\*(rq. +For historical reasons, many sites are using port \*(lq109\*(rq +which is the port assigned to the \*(lqPOP\*(rq (version 1 and 2) protocol. +The configuration option \*(lqPOPSERVICE\*(rq is the name of the +port number that \fIMH\fP POP will try to use, and defaults to the +name \*(lqpop\*(rq. +.pp +To generate \fIMH\fP to use newer assigned port number, +in your \fIMH\fP config file, add: +.sp +.ti +.5i +options POPSERVICE='\*(lqpop3\*(rq' +.sp +And on both the POP client and service hosts, +you need to define the port that the POP service uses. +Add the line: +.sp +.nf +.in +.5i +pop3 110/tcp +.in -.5i +.fi +.sp +to the \fB/etc/services\fR file (if it's not already there). +.pp +There are two ways to administer POP: +In \*(lqnaive\*(rq mode, +each user-id in the \fIpasswd\fR\0(5) file is considered a POP subscriber. +No changes are required for the mailsystem on the POP service host. +However, +this method requires that each POP subscriber have an entry in the password +file. +The POP server will fetch the user's mail from wherever maildrops are kept on +the POP service host. +This means that if maildrops are kept in the user's home directory, +then each POP subscriber must have a home directory. +.pp +In \*(lqsmart\*(rq mode +(enabled via \*(lqDPOP\*(rq being given as a configuration option), +the list of POP subscribers and the list of +login users are completely separate name spaces. +A separate database (simple file similar to the \fIBBoards\fR\0(5) file) +is used to record information about each POP subscriber. +Unfortunately, +the local mailsystem must be changed to reflect this. +This requires two changes (both of which are simple): +First, +the aliasing mechanism is augmented so that POP subscriber addresses +are diverted to a special delivery mechanism. +\fIMH\fR comes with a program, \fIpopaka\fR\0(8), +which generates the additional information to be put in the mailsystem's +alias file. +Second, +a special POP channel (for MMDF-II) or POP mailer (for SendMail) +performs the actual delivery (\fImh.6\fR supplies both). +All it really does is just place the mail in the POP spool area. +.pp +These two different philosophies are not compatible on the same POP service +host: one or the other, but not both may be run. +Clever mailsystem people will note that +the POP mechanism is really a special case of the more general +BBoards mechanism. +.pp +In addition, there is one user-visible difference, +which the administrator controls the availability of. +The difference is whether the POP subscriber must supply a password to the POP +server: +The first method uses the standard ARPA technique of sending a username and a +password. +The appropriate programs (\fIinc\fR, \fImsgchk\fR, and possibly \fIbbc\fR\0) +will prompt the user for this information. +.pp +The second method +(which is enabled via \*(lqRPOP\*(rq being given as a configuration option) +uses the Berkeley UNIX reserved port method for authentication. +This requires that the two or three mentioned above programs be +\fIsetuid\fR to root. +(There are no known holes in any of these programs.) +.pp +To add a POP subscriber, +for the first method, one simply follows the usual procedures for adding a +new user, which eventually results in adding a line to the \fIpasswd\fR\0(5) +file; +for the second method, one must edit the POP database file +(kept in the home directory of the POP user), +and then run the \fIpopaka\fR program. +The output of this program is placed in the aliases file for the transport +system (e.g., \fB/usr/lib/aliases\fR for SendMail). +.pp +Authentication for POP subscribers differs +depending on the two methods. +When the user supplies a password for the POP session: +under the first method, +the contents of the password field for the user's entry in the +\fIpasswd\fR\0(5) is consulted; +under the second method, +the contents of the password field for the subscriber's entry in the +\fIpop\fR\0(5) file is consulted. +(To set this field, the \fIpopwrd\fR\0(8) program is used.) +.pp +If you are allowing RPOP, +under the first method, +the user's \fI\&.rhosts\fR file is consulted; +under the second method, +the contents of the network address field for the subscriber's entry +in the \fIpop\fR\0(5) file is consulted. +.pp +In addition, +a third authentication scheme is available. +When the APOP configuration option is given, +e.g., +.sp +.ti +.5i +options APOP='\*(lq/etc/pop.auth\*(rq' +.sp +In this case, +the server also allows a client to supply authentication +credentials to provide for origin authentication and reply protection, +but which do not involve sending a password in the clear over the network. +A POP authorization DB, +having as its name the value of APOP configuration option, +is used to keep track of this information. +This file is created and manipulated by the \fIpopauth\fR\0(8) program. +Because this file contains secret information, +it must be protected mode 0600 and owned by the super-user. +Hence, +your first step after installing the software is to issue +.sp +.ti +.5i +# popauth -init +.sp +which creates and initalizes the POP authorization DB. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.po -.50i +.so pop5.me +.so pop8.me +.so popaka.me +.so popauth.me +.so popd.me +.so popwrd.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "MAIL FILTERING" +.pp +There was a time when users on a UNIX host might have had two maildrops: +one from \fIMMDF\fR and the other from \fIUUCP\fR. +This was really a bad problem since it prevented using a single +user\-interface on all of your mail. +Furthermore, +if you wanted to send a message to addresses on different mailsystems, +you couldn't send just one message. +To solve all these problems, +the notion of \fImail filtering\fR was developed that allowed sophisticated +munging and relaying between the two pseudo\-domains. +.pp +\fIMH\fR will perform mail filtering, transparently, if given the MF +configuration option. +However, +with the advent of \fISendMail\fR and further maturation of \fIMMDF\fR, +\fIMH\fR doesn't really need to do this anymore, +since these message transport agents handle it. +.pp +The mail\-filtering stuff is too complicated. +It should be simpler, but, protocol translation really \fIis\fR difficult. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mf.me +.so rmail.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "MH HACKING" +.pp +Finally, here's a little information on modifying the \fIMH\fR sources. +A word of advice however: +.sp 2 +.ce +.b \s+4DON'T\s0 +.sp 2 +.lp +If you really want new \fIMH\fR capabilities, +write a shell script instead. +After all, +that's what UNIX is all about, isn't it? +.pp +Here's the organization of the \fIMH\fR source tree. +.sp +.nf +.in +.5i +.ta \w'miscellany/ 'u +\w'sendmail/ 'u +conf/ configurator tree +config/ compiled configuration constants +dist/ distributor +doc/ manual entries +h/ include files +miscellany/ various sundries +mts/ MTS\-specific areas + mh/ standalone delivery + mmdf/ MMDF\-I, MMDF\-II + sendmail/ SendMail, SMTP +papers/ papers about \fIMH\fR +sbr/ subroutines +support/ support programs and files + bboards/ UCI BBoards facility + general/ templates + pop/ POP facility +tma/ Trusted Mail Agent (not present in all distributions) +uip/ programs +zotnet/ MTS\-independent areas + bboards/ UCI BBoards facility + mf/ Mail Filtering + mts/ MTS constants + tws/ date routines +.re +.in -.5i +.fi +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mh-hack.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "HIDDEN FEATURES" +.pp +The capabilities discussed here should not be used on a production basis, +as they are either experimental, are useful for debugging \fIMH\fR, or +are otherwise not recommended. + +.uh "Debug Facilities" +.pp +The \fImark\fR command has a `\-debug' switch which essentially prints out +all the internal \fIMH\fR data structures for the folder you're looking at. +.pp +The \fIpost\fR command has a `\-debug' switch which does everything but +actually post the message for you. +Instead of posting the draft, it sends it to the standard output. +Similarly, +\fIsend\fR has a `\-debug' switch which gets passed to \fIpost\fR. +.pp +Some \fIMH\fR commands look at envariables to determine debug\-mode operation +of certain new facilities. +The current list of envariables is: +.sp +.nf +.in +.5i +.ta \w'MHLPOPDEBUG 'u +^MHFDEBUG~^OVERHEAD facility +^MHLDEBUG~^mhl +^MHPDEBUG~^pick +^MHPOPDEBUG~^POP transactions +^MHVDEBUG~^window management transactions +^MHWDEBUG~^alternate\-mailboxes +.re +.in -.5i +.fi + +.uh "Forwarding Mail" +.pp +The \fIforw\fR and \fImhl\fR commands have two switches, +`\-dashmunging' and `\-nodashmunging' which enable or disable +the prepending of `\-\ ' in forwarded messages. To use +`\-nodashmunging', you must use an \fImhl\fR filter file. + +.uh "Send" +.pp +The \fIsend\fR command has two switches, `\-unique' and `\-nounique', +which are useful to certain individuals who, for obscure reasons, +do not use draft\-folders. +.pp +\*(lqDistribution Carbon Copy\*(rq addresses may be specified in +the \fIDcc:\fR header. +This header is removed before posting the message,and a copy of the message +is distributed to each listed address. +This could be considered a form of Blind +Carbon Copy which is best used for sending to an address which +would never reply (such as an auto\-archiver). + +.uh "Posting Mail" +.pp +If you're running a version of \fIMH\fR which talks directly to an +\fISMTP\fR server (or perhaps an advanced \fIMMDF\fR submit process), +there are lots of interesting switches for your amusement which \fIsend\fR +and \fIpost\fR understand: +.nf +.in +.5i +.ta \w'-server host 'u +^-mail~^Use the \fIMAIL\fR command (default) +^-saml~^Use the \fISAML\fR command +^-send~^Use the \fISEND\fR command +^-soml~^Use the \fISOML\fR command +^-snoop~^Watch the \fISMTP\fR transaction +^-client host~^Claim to be \*(lqhost\*(rq when posting mail +^-server host~^Post mail with \*(lqhost\*(rq +.re +.in -.5i +.fi +.pp +The last switch is to be useful when \fIMH\fR resides on small +workstations (or PC:s) in a network\-\-they can post their outgoing mail with +a local relay, +and reduce the load on the local system. +On POP client hosts, +the `\-server\ host' switch is defaulted appropriately using the SMTP +search\-list mechanism. +The \fIwhom\fR command understands the last three switches. +@BEGIN: TMA + +.+c "TRUSTED MAIL" +.pp +If you are licensed to run the TTI Trusted Mail Agent (TMA), +here are three utility programs to manage the Key Distribution Server (KDS): +\fIkdsc\fR, \fIkdsd\fR, and \fIkdser\fR. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.po -.50i +.so kdsc.me +.so kdsd.me +.so kdser.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +@END: TMA + +.+c "CONFIGURATION OPTIONS" +.pp +This manual was generated with the following configuration options in +effect: +.sp 2 +.hl +.nf +.in +1.25i +.ta \w'BBoards Home Directory 'u +^Generation Date~^\*(td +^Primary Directory~^@(MHBINPATH)/ +^Secondary Directory~^@(MHETCPATH)/ +^Maildrop Location~^@(MHDROPLOC) +@BEGIN: BBSERVER +^BBoards Support~^Enabled +^BBoards Home Directory~^@(BBHOME) +@END: BBSERVER +@BEGIN: POP +^POP Support~^Enabled +@END: POP +@BEGIN: BPOP +^BBoards on POP~^Enabled +@END: BPOP +@BEGIN: NNTP +^BBoards using NNTP~^Enabled +@END: NNTP +@BEGIN: TMA +^Trusted Mail Support~^Enabled +@END: TMA +@BEGIN: SMTP +.ds SM with SMTP +@END: SMTP +@BEGIN: MMDFIMTS +^Transport System~^MMDF-I \*(SM +@END: MMDFIMTS +@BEGIN: MMDFIIMTS +^Transport System~^MMDF-II \*(SM +@END: MMDFIIMTS +@BEGIN: SENDMTS +^Transport System~^SendMail \*(SM +@END: SENDMTS +@BEGIN: MHMTS +^Transport System~^Stand\-Alone Delivery +@END: MHMTS +.re +.in -1.5i +.fi +.hl +.\" table of contents +.he '''' +.fo '''' +.bp +.ce +.b \\s12CONTENTS\\s0 +.sp 3 +.xp y +.xp x +.bp +.\" And now the COVER sheet +.po +.325i +.ll 32P +.nf + +.sp 1.5in +.ps 24 +.vs 32 +.ft B +.ce 4 +THE RAND MH +MESSAGE HANDLING +SYSTEM: +ADMINISTRATOR'S GUIDE +.ft R +.sp .8i +.ps 20 +.vs 24 +.ce +UCI Version +.sp 0.7i +.ce 2 +Marshall T. Rose +.sp 0.5i +.ft I +.ce 3 +First Edition: +MH Classic +\s-2(Not to be confused with a well\-known soft drink)\s+2 +.ft R +.vs +.sp 1i +.ps 18 +.vs 22 +.ce 2 +\*(td +\*(MH diff --git a/docs/historical/mh-6.8.5/conf/doc/MH.rf b/docs/historical/mh-6.8.5/conf/doc/MH.rf new file mode 100644 index 0000000..80aed56 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/MH.rf @@ -0,0 +1,2414 @@ +.\" @(MHWARNING) +.\" @(#)$Id: MH.rf,v 1.30 1995/12/06 01:27:51 jromine Exp $ +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.po +.75i +.de $c \" Major Heading printer +.ce +.b "\\s12\\n+(ch.\\ \\$1\\s0" \" 12 Point Bold Header +.(x + +\ \ \ \\n(ch.\\ \\ \\$1 +.)x +.sp 45p \" 45 point space or about 1/2 inch +.. +\".nr xs .15v \" Put index entries closer together +.(x + +Section +.)x _ +.de $0 \" Sub-Heading macro called AFTER printing the heading +.(x +.sp .3v +.ti .5i +\\$1 +.)x +.. +.de $s \" Macro to print footnote separator +\"\l'2i' \" No line drawn +.if n \ +. sp 1.3 \" But extra space to make up for it. +.. +.fc ^ ~ \" The characters ^ and ~ CANNOT BE USED +\" throughout this document except as field +\" delimiter & pad indicator! +.he ''-%-'' +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.ll 32P \" 32 Picas or about 5+1/3 inch Line Length +.if n .ll 72m \" Use 72 ems for nroff +.nr ss 30p \" 30 point space before section titles +.nr fm 5v \" RAND likes bigger than normal [3v] bottom margins +.nr bm 7v \" ditto +.ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out. +.ds << <\\h!-(\\w'<'/2)!< +.ds >> >\\h!-(\\w'>'/2)!> +.ds ** \v'-3p'\s+1*\s0\v'+3p' +.so version.rf +.tp +.(l C +\fIdiscard this page\fR +.sp 4 +The RAND \fIMH\fR +Message Handling System: +User's Manual +.sp +UCI Version +.sp 2 +\*(td +\*(MH +.)l +.++ C +.+c INTRODUCTION +.pp +Although people can travel cross-country in hours and can +reach others by telephone in seconds, communications still depend +heavily upon paper, most of which is distributed through the mails. +.pp +There are several major reasons for this continued dependence on +written documents. +First, a written document may be proofread +and corrected prior to its distribution, giving the author +complete control over his words. +Thus, a written document is +better than a telephone conversation in this respect. +Second, +a carefully written document is far less likely to be +misinterpreted or poorly translated than a phone conversation. +Third, a signature offers reasonable verification of authorship, +which cannot be provided with media such as telegrams. +.pp +However, the need for +.u fast , +accurate, and reproducible document distribution is +obvious. +One solution in widespread use is the telefax. +Another +that is rapidly gaining popularity is electronic mail. +Electronic mail is similar to telefax in that the data to be sent +are digitized, transmitted via phone lines, and +turned back into a document at the receiver. +The advantage of +electronic mail is in its compression factor. +Whereas a telefax +must scan a page in very fine lines and send all of the black and +white information, electronic mail assigns characters fixed +codes which can be transmitted as a few bits of information. +Telefax presently has the advantage of being able to transmit an +arbitrary page, including pictures, but electronic mail is +beginning to deal with this problem. +Electronic mail also integrates well +with current directions in office automation, allowing documents +prepared with sophisticated equipment at one site to be quickly +transferred and printed at another site. +.pp +Currently, most electronic mail is intraorganizational, +with mail transfer remaining within one computer. +As computer +networking becomes more common, however, it is becoming more feasible to +communicate with anyone whose computer can be linked to your +own via a network. +.pp +The pioneering efforts on general-purpose electronic mail +were by organizations using the DoD ARPAnet[1]. +The capability to send messages between computers existed before +the ARPAnet was developed, but it was used only in limited ways. +With the advent of the +ARPAnet, tools began to be developed which made it convenient for +individuals or organizations to distribute messages +over broad geographic areas, using +diverse computer facilities. +The interest and activity in +message systems has now reached such proportions that steps +have been taken within the DoD to coordinate and +unify the development of military message systems. +The use of electronic mail is expected to increase +dramatically in the next few years. +The utility of such systems +in the command and control and intelligence environments is +clear, and applications in these areas will probably lead the +way. +As the costs for sending and handling electronic messages +continue their rapid decrease, such uses can be +expected to spread rapidly into other areas and, of course, will +not be limited to the DoD. +.pp +A message system provides tools that help users (individuals +or organizations) deal with messages in various ways. +Messages +must be composed, sent, received, stored, retrieved, +forwarded, and replied to. +Today's best interactive computer +systems provide a variety of word-processing and information +handling capabilities. +The message handling facilities should be +well integrated with the rest of the system, so as to be a +graceful extension of overall system capability. +.pp +The message system described in this report, \fIMH\fR, provides most of the +features that can be found in other message systems and also +incorporates some new ones. +It has been built on the UNIX time-sharing +system[2], a popular operating system for the DEC PDP-11\** +and VAX-11 classes of computers. +.(f +\** PDP and VAX are trademarks of Digital Equipment Corporation. +.)f +A \*(lqsecure\*(rq operating +system similar to UNIX is currently being developed[3], +and that system will also run \fIMH\fR. +.pp +This report provides a complete description of \fIMH\fR and +thus may serve as a user's manual, although parts of the report +will be of interest to non-users as well. +Sections 2 and 3, the +Overview and Tutorial, present the key +ideas of \fIMH\fR and will give those not familiar with message systems +an idea of what such systems are like. +.pp +\fIMH\fR consists of a set of commands which use some special +files and conventions. +The final section is divided into three parts. +The first part covers the information +a user needs to know in addition to the +commands. +Then, each of the \fIMH\fR commands is described in detail. +Finally, other obscure details are revealed. +A summary of the commands is given in Appendix A, +and the syntax of message sequences is given in Appendix B. +.pp +A novel approach has been taken in the design of \fIMH\fR. +Instead of creating a large subsystem that appears as a single +command to the user (such as MS[4]), +\fIMH\fR is a collection of separate commands +which are run as separate programs. +The file and directory +system of UNIX are used directly. +Messages are stored as +individual files (datasets), and collections of them are grouped +into directories. +In contrast, most other message systems store +messages in a complicated data structure within a monolithic +file. +With the \fIMH\fR approach, UNIX commands can be +interleaved with commands invoking the functions of the message +handler. +Conversely, existing UNIX commands +can be used in connection with messages. +For +example, all the usual UNIX editing, text-formatting, and printing +facilities can be applied directly to individual messages. +MH, +therefore, consists of a relatively small amount of new code; it +makes extensive use of other UNIX software to provide the +capabilities found in other message systems. +.+c OVERVIEW +.pp +There are three main aspects of \fIMH\fR\0: the way messages are +stored (the message database), the user's profile (which directs +how certain actions of the message handler take place), and the +commands for dealing with messages. +.pp +Under \fIMH\fR, each message is stored as a separate file. +A user +can take any action with a message that he could with an ordinary +file in UNIX. +A UNIX directory in which messages are stored is +called a folder. +Each folder contains some standard entries to support +the message-handling functions. +The messages in a folder have numerical +names. +These folders (directories) +are entries in a particular directory path, described in +the user profile, through which \fIMH\fR can find message folders. +Using the UNIX \*(lqlink\*(rq facility, it is possible for one copy of a +message to be \*(lqfiled\*(rq in more than one folder, providing a +message index facility. +Also, using the UNIX tree-structured +file system, it is possible to have a folder within a folder, +nested arbitrarily deep, +and have the full power of the \fIMH\fR commands available. +.pp +Each user of \fIMH\fR has a user profile, a file in +his \fB$HOME\fR (initial login) directory called \fI\&.mh\(ruprofile\fR. +This profile contains several +pieces of information used by the \fIMH\fR commands: +a path name to the directory that contains the message folders +and parameters that tailor \fIMH\fR commands +to the individual user's requirements. +There is also another file, +called the user context, +which contains information concerning which folder the user last referenced +(the \*(lqcurrent\*(rq folder). +It also contains +most of the necessary state information concerning how +the user is dealing with his messages, enabling \fIMH\fR to be +implemented as a set of individual UNIX commands, in contrast to the +usual approach of a monolithic subsystem. +.pp +In \fIMH\fR, incoming mail is appended +to the end of a file in a system spooling area for the user. +This area is called the mail drop directory, +and the file is called the user's mail drop. +Normally when the user logins in, +s/he is informed of new mail +(or the \fIMH\fR program \fImsgchk\fR may be run). +The user adds the new messages to his/her collection of \fIMH\fR messages +by invoking the command +\fIinc\fR. +The \fIinc\fR (incorporate) command adds the new +messages to a folder called \*(lqinbox\*(rq, assigning them names which +are consecutive integers starting with the next highest integer +available in inbox. +\fIinc\fR also produces a +\fIscan\fR summary of +the messages thus incorporated. +A folder can be compacted into a single file, +for easy storage, +by using the \fIpackf\fR command. +Also, +messages within a folder can be sorted by date and time with the \fIsortm\fR +command. + +.pp +There are four commands for examining the messages in a +folder: +\fIshow\fR, +\fIprev\fR, +\fInext\fR, +and +\fIscan\fR. +The \fIshow\fR command displays a message in a folder, +\fIprev\fR displays the message preceding the current message, and +\fInext\fR displays the message following the current message. +\fIMH\fR lets the user choose the program that displays individual messages. +A special program, \fImhl\fR, can be used to display messages according +to the user's preferences. +The \fIscan\fR command summarizes the messages in a folder, +normally producing one line per message, showing who the message is from, +the date, the subject, etc. +.pp +The user may move a message from one folder to another with +the command +\fIrefile\fR. +Messages may be removed from a folder +by means of the command +\fIrmm\fR. +In addition, a user may query +what the current folder is and may specify that a new folder +become the current folder, through the command +\fIfolder\fR. +All folders may be summarized with the \fIfolders\fR command. +A message folder (or subfolder) may be removed by means of +the command +\fIrmf\fR. +.pp +A set of messages based on content may be selected by +use of the command \fIpick\fR. +This command searches through +messages in a folder and selects those that match a given +set of criteria. +These messages are then bound to a \*(lqsequence\*(rq name for use with other +\fIMH\fR commands. +The \fImark\fR command manipulates these sequences. +.pp +There are five commands enabling the user to create new +messages and send them: +\fIcomp\fR, +\fIdist\fR, +\fIforw\fR, +\fIrepl\fR, +and +\fIsend\fR. +The \fIcomp\fR command +provides the facility for the user to compose a +new message; +\fIdist\fR redistributes mail to additional addressees; +\fIforw\fR enables the user to forward messages; and +\fIrepl\fR facilitates the generation of a reply to an incoming message. +The last three commands may optionally annotate the original message. +Messages may be arbitrarily annotated with the \fIanno\fR command. +Once a draft has been constructed by one of the four above composition +programs, +a user\-specifiable program is run to query the user as to the disposition of +the draft prior to sending. +\fIMH\fR provides the simple \fIwhatnow\fR program to start users off. +If +a message is not sent directly by one of these commands, it may +be sent at a later time using the command +\fIsend\fR. +\fIMH\fR allows the use of any UNIX editor when composing a message. +For rapid entry, a special editor, \fIprompter\fR, is provided. +For programs, a special mail-sending program, \fImhmail\fR, is provided. +.pp +\fIMH\fR supports a personal aliasing facility which gives users the +capability to considerably shorten address typein +and use meaningful names for addresses. +The \fIali\fR program can be used to query \fIMH\fR as to the expansion of a +list of aliases. +After composing a message, but prior to sending, the \fIwhom\fR command +can be used to determine exactly who a message would go to. +.pp +\fIMH\fR provides a natural interface for telling the user's shell the names +of \fIMH\fR messages and folders. +The \fImhpath\fR program achieves this capability. +.pp +@BEGIN: BBOARDS +Finally, \fIMH\fR supports the UCI BBoards facility. +\fIbbc\fR can be used to query the status of a group of BBoards, +while \fImsh\fR can be used to read them. +@BEGIN: BBSERVER +BBoard leaders are also well supported, with the \fIbbl\fR program. +@END: BBSERVER +@END: BBOARDS +The \fIburst\fR command can be used to \*(lqshred\*(rq digests of messages +into individual messages. +.pp +All of the elements summarized above +are described in more detail in the following sections. +Many of the +normal facilities of UNIX provide additional capabilities for +dealing with messages in various ways. +For example, it is +possible to print messages +on the line-printer without requiring any additional code within +\fIMH\fR\0. +Using standard UNIX facilities, any terminal output can be +redirected to a file for repeated or future viewing. +In general, +the flexibility and capabilities of the UNIX interface with the +user are preserved as a result of the integration of \fIMH\fR into the UNIX +structure. +.+c TUTORIAL +.pp +This tutorial provides a brief introduction to the \fIMH\fR commands. +It should be sufficient +to allow the user to read his mail, do some simple manipulations of +it, and create and send messages. +.pp +A message has two major pieces: the +header and the body. +The body consists of the text of the message +(whatever you care to type in). +It follows the header and is separated from +it by an empty line. +(When you compose a message, the form that appears +on your terminal shows a line of dashes after the header. +This is for +convenience and is replaced by an empty line when the message is +sent.) The header is composed of several components, including the +subject of the message and the person to whom it is addressed. +Each component starts with a name +and a colon; components must not start with a blank. +The text of the +component may take more than one line, but each continuation line must +start with a blank. +Messages typically have \*(lqTo:\*(rq, \*(lqcc:\*(rq, and +\*(lqSubject:\*(rq components. +When composing a message, you should include +the \*(lqTo:\*(rq and \*(lqSubject:\*(rq components; +the \*(lqcc:\*(rq (for people you want to send copies to) is not necessary. +.pp +The basic \fIMH\fR commands are +\fIinc\fR, +\fIscan\fR, +\fIshow\fR, +\fInext\fR, +\fIprev\fR, +\fIrmm\fR, +\fIcomp\fR, +and +\fIrepl\fR. +These are described below. + +\fIinc\fR +.pp +When you get the message \*(lqYou have mail\*(rq, type the command \fIinc\fR. +You will get a \*(lqscan listing\*(rq such as: + +.nf +.in +.5i +.ta \w'7+ 'u +\w'11/26 'u +\w'To:norm 'u +7+ \07/13 Cas revival of measurement work +8 10/\09 Norm NBS people and publications +9 11/26 To:norm question \*(<\0\fIx\fR~^will copy the message to file x. +.br +^\fIshow\fR\0|\0\fIlpr\fR~^will print the message, using the \fIlpr\fR command. +.br +^\fInext\fR~^will show the message that follows the current message. +.br +^\fIprev\fR~^will show the message previous to the current message. +.br +^\fIrmm\fR~^will remove the current message. +.br +^\fIrmm\03\fR~^will remove message 3. +.)b + +.ne 5 +\fIcomp\fR +.pp +The +\fIcomp\fR command puts you in the editor to write or edit a message. +Fill in or +delete the \*(lqTo:\*(rq, \*(lqcc:\*(rq, and \*(lqSubject:\*(rq fields, +as appropriate, and type the body of the message. +Then +exit normally from the editor. +You will be asked +\*(lqWhat now?\*(rq. +Type a carriage return to see the options. +Typing \fBsend\fR +will cause the message to be sent; typing \fBquit\fR will cause an exit +from +\fIcomp\fR, +with the message draft saved. +.pp +If you quit without sending the message, it will be saved in a file +called /Mail/draft (where is your \fB$HOME\fR directory). +You can resume editing the message later with \*(lqcomp\0\-use\*(rq; +or you can send the message later, using the \fIsend\fR command. + +.ne 4 +\fIcomp\0\-editor\0prompter\fR +.pp +This command uses a different editor and is useful for preparing +\*(lqquick and dirty\*(rq messages. +It prompts you for each component of the +header. +Type the information for that component, or type a carriage +return to omit the component. +After that, type the body of the +message. +Backspacing is the only form of editing allowed with this editor. +When the body is complete, type a carriage return followed by +(usually ). +This completes the initial preparation of the message; from then on, use +the same procedures as with +\fIcomp\fR (above). + +.ne 5 +\fIrepl\fR +.br +\fIrepl\fR\0n +.pp +This command makes up an initial message form with a header +that is appropriate for +replying to an existing message. +The message being answered is the +current message if no message number is mentioned, or n if a number +is specified. +After the header is completed, you can finish the message as in +\fIcomp\fR (above). +.pp +This is enough information to get you going using \fIMH\fR. +There are more commands, +and the commands described here have more features. +Subsequent sections +explain \fIMH\fR in complete detail. +The system is quite powerful if you +want to use its sophisticated features, but the foregoing commands +suffice for sending and receiving messages. +.pp +There are numerous additional capabilities you may wish to explore. +For example, the +\fIpick\fR command will select a subset of messages +based on specified criteria such as sender and/or subject. +Groups of +messages may be designated, as described in Sec. IV, +under \fBMessage Naming\fR. +The file \fI\&.mh\(ruprofile\fR can be used to tailor your use of +the message system to your needs and preferences, as described in Sec. IV, +under \fBThe User Profile\fR. +In general, you may +learn additional features of the system selectively, according to your +requirements, +by studying the relevant sections of this manual. +There is no need to +learn all the details of the system at once. +.+c "DETAILED DESCRIPTION" +.pp +This section describes the \fIMH\fR system in detail, including the components +of the user profile, the conventions for message naming, and some of +the other \fIMH\fR conventions. +Readers who are +generally familiar with computer systems will be able to follow +the principal ideas, although some details may be meaningful only to +those familiar with UNIX. +.uh "THE USER PROFILE" +.pp +The first time an \fIMH\fR command is issued by a new user, the system +prompts for a \*(lqPath\*(rq and creates an \fIMH\fR \*(lqprofile\*(rq. +.pp +Each \fIMH\fR user has a profile which contains tailoring +information for each individual program. +Other profile entries control the \fIMH\fR path (where folders and +special files are kept), folder and message protections, editor +selection, and default arguments for each \fIMH\fR program. +Each user of \fIMH\fR also has a context file which contains +current state information for the \fIMH\fR package +(the location of the context file is kept in the user's \fIMH\fR directory, +or may be named in the user profile). +When a folder becomes +the current folder, it is recorded in the user's context. +(Other state information is kept in the context file, +see the manual entry for \fImh\-profile\0\fR(5) for more details.) +In general, +the term \*(lqprofile entry\*(rq refer to entries in either the profile or +context file. +Users of \fIMH\fR needn't worry about the distinction, +\fIMH\fR handles these things automatically. +.pp +The \fIMH\fR profile is stored in the file \fI\&.mh\(ruprofile\fR in the +user's \fB$HOME\fR directory\**. +.(f +\** By defining the envariable \fB$MH\fR, +you can specify an alternate profile to be used by \fIMH\fR commands. +.)f +It has the format of a message without +any body. +That is, each profile entry is on one line, with a +keyword followed by a colon (:) followed by text particular to +the keyword. +.br +\(rh\ \ \& +\fIThis file must not have blank lines.\fR +.br +The keywords +may have any combination of upper and lower case. +(See the information of \fImh\-mail\fR later on in this manual +for a description of message formats.) +.pp +For the average \fIMH\fR user, the only profile entry of +importance is \*(lqPath\*(rq. +Path specifies a directory in which \fIMH\fR +folders and certain files such as \*(lqdraft\*(rq are found. +The +argument to this keyword must be a legal UNIX path that names an +existing directory. +If this path is not absolute +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the user's \fB$HOME\fR directory. +All folder and message references within +\fIMH\fR will relate to this path unless full path names are used. +.pp +Message protection defaults to 644, and folder protection to +711. +These may be changed by profile entries \*(lqMsg-Protect\*(rq +and \*(lqFolder-Protect\*(rq, respectively. +The argument to these +keywords is an octal number which is used as the UNIX file mode\**. +.(f +\** See \fIchmod\fR\0(1) in the \fIUNIX Programmer's Manual\fR\0[5]. +.)f +.pp +When an \fIMH\fR program starts running, it looks through the +user's profile for an entry with a keyword matching the program's +name. +For example, when +\fIcomp\fR is run, it looks for a \*(lqcomp\*(rq +profile entry. +If one is found, the text of the profile entry is +used as the default switch setting until all defaults are overridden +by explicit switches passed to the program as arguments. +Thus the profile +entry \*(lqcomp:\0\-form\0standard.list\*(rq would direct +\fIcomp\fR to use the +file \*(lqstandard.list\*(rq as the message skeleton. +If an explicit +form switch is given to the +\fIcomp\fR command, it will override the +switch obtained from the profile. +.pp +In UNIX, a program may exist under several names, +either by linking or aliasing. +The actual invocation name is used by an \fIMH\fR +program when scanning for its profile defaults\**. +.(f +\** Unfortunately, +the shell does not preserve aliasing information when calling a program, +hence if a program is invoked by an alias different than its name, +the program will examine the profile entry for it's name, +not the alias that the user invoked it as. +The correct solution is to create a (soft) link in your \fI$HOME/bin\fR +directory to the \fIMH\fR program of your choice. +By giving this link a different name, +you can use an alternate set of defaults for the command. +.)f +Thus, each \fIMH\fR program +may have several names by which it can be invoked, and each name +may have a different set of default switches. +For example, if +\fIcomp\fR is invoked by the name +\fIicomp\fR, +the profile entry +\*(lqicomp\*(rq will control the default switches for this invocation of +the +\fIcomp\fR program. +This provides a powerful +definitional facility for commonly used switch settings. +.pp +The default editor +for editing within +\fIcomp\fR, +\fIrepl\fR, +\fIforw\fR, +and +\fIdist\fR, +is usually \fIprompter\fR, +but might be something else at your site, +such as \fI/usr/ucb/ex\fR or \fI/bin/e\fR. +A different editor may be used by specifying +the profile entry +\*(lqEditor: \*(rq. +The argument to \*(lqEditor\*(rq is the name of an +executable program or shell command file which can be found via +the user's $PATH defined search path, excluding the current +directory. +The \*(lqEditor:\*(rq profile specification +may in turn be overridden by a `\-editor\0' +profile switch associated with +\fIcomp\fR, +\fIrepl\fR, +\fIforw\fR, +or +\fIdist\fR. +Finally, an explicit editor switch specified with any +of these four commands will have ultimate precedence. +.pp +During message composition, more than one editor may be +used. +For example, one editor (such as \fIprompter\fR\0) +may be used +initially, and a second editor may be invoked later to revise +the message being composed +(see the discussion of +\fIcomp\fR in Section 5 for details). +A profile entry \*(lq\-next:\0\*(rq specifies the name of +the editor to be used after a particular editor. +Thus \*(lqcomp:\0\-e\0prompter\*(rq +causes the initial text to be collected by +\fIprompter\fR, +and the profile entry \*(lqprompter\-next:\0ed\*(rq names ed as the +editor to be invoked for the next round of editing. +.pp +Some of the \fIMH\fR commands, such as +\fIshow\fR, +can be used on +message folders owned by others, if those folders are readable. +However, +you cannot write in someone else's folder. +All the \fIMH\fR command +actions not requiring write permission may be used with +a \*(lqread-only\*(rq folder. +.pp +Table 1 lists examples of some of the currently defined profile +entries, typical arguments, and the programs that reference the +entries. +.bp +.in .9i +.ll -.9i +.ta \w':\0default switches 'u +.sp 30p +.ce +Table 1 +.sp 8p +.ce +P\s-2ROFILE\s0 C\s-2OMPONENTS\s0 +.hl \" ~12p preceding + 1v (12p) after +.nf +^^\fIMH\fR Programs that +^Keyword and Argument~^\ use Component\h'|\n(.lu-.9i'\v'4p'\l'|0'\v'-4p' \" \l'..' does underlining +.sp +^Path:\0Mail~^All +^Current-Folder:\0inbox~^Most +^Editor:\0/usr/ucb/ex~^\fIcomp, dist, forw, repl\fR +^Inbox:\0inbox~^\fIinc, rmf\fR +^Msg\-Protect:\0644~^\fIinc\fR +^Folder\-Protect:\0711~^\fIinc, pick, refile\fR +^:\0default switches~^All +^prompter\-next:\0ed~^\fIcomp, dist, forw, repl\fR +.hl +.ll +.9i +.in 0 +.fi +.pp +Path +.u should +be present. +Current\-Folder is maintained +automatically by many \fIMH\fR commands (see the \fBContext\fR sections of +the individual commands in Sec. IV). +All other entries are optional, +defaulting to the values described above. +.uh "MESSAGE NAMING" +.pp +Messages may be referred to explicitly or implicitly when +using \fIMH\fR commands. +A formal syntax of message names is given in Appendix B, but the +following description should be sufficient for most \fIMH\fR users. +Some details of message naming that apply only to certain +commands are included in the description of those +commands. +.pp +Most of the \fIMH\fR commands accept arguments specifying one or +more folders, and one or more messages to operate on. +The use of +the word \*(lqmsg\*(rq as an argument to a command means that exactly one +message name may be specified. +A message name may be a number, +such as 1, 33, or 234, or it may be +one of the \*(lqreserved\*(rq message names: +first, last, prev, next, and cur. +(As a shorthand, a +period (\&.) is equivalent to cur.) +The meanings of these names are straightforward: +\*(lqfirst\*(rq is the first message in the folder; +\*(lqlast\*(rq is the last message in the folder; +\*(lqprev\*(rq is the message numerically previous to the current message; +\*(lqnext\*(rq is the message numerically following the current message; +\*(lqcur\*(rq (or \*(lq\&.\*(rq) is the current message in the folder. +In addition, +\fIMH\fR supports user\-defined\-sequences; +see the description of the \fImark\fR command for more information. +.pp +The default in commands that take a \*(lqmsg\*(rq argument is +always \*(lqcur\*(rq. +.pp +The word \*(lqmsgs\*(rq indicates that several messages may be +specified. +Such a specification consists of several message +designations separated by spaces. +A message designation is +either a message name or a message range. +A message range is a +specification of the form name1\-name2 or name1:n, where name1 and +name2 are message names and n is an integer. +The first form +designates all the messages from name1 to name2 inclusive; this +must be a non-empty range. +The second form specifies up to n +messages, starting with name1 if name1 is a number, or first, +cur, or next, and ending with name1 if name1 is last or +prev. +This interpretation of n is overridden if n is preceded +by a plus sign or a minus sign; ++n always means up to n messages starting with +name1, and \-n always means up to n messages ending with name1. +Repeated specifications of the same message have the same effect +as a single specification of +the message. +Examples of +specifications are: + +.(b +1 5 7\-11 22 +first 6 8 next +first\-10 +last:5 +.)b +.pp +The message name \*(lqall\*(rq is a shorthand for \*(lqfirst\-last\*(rq, +indicating all of the messages in the folder. +.pp +In commands that accept \*(lqmsgs\*(rq arguments, the default is +either cur or all, depending on which makes more sense. +.pp +In all of the \fIMH\fR commands, a plus sign preceding an argument +indicates a folder name. +Thus, \*(lq+inbox\*(rq is the name of the +user's standard inbox. +If an explicit folder argument is given +to an \fIMH\fR command, it will become the current folder (that is, +the \*(lqCurrent-Folder:\*(rq entry +in the user's profile will be changed to this folder). +In the case of the +\fIrefile\fR command, which +can have multiple output folders, a new source folder (other than +the default current folder) is specified by `\-src\0+folder'. +.uh "OTHER MH CONVENTIONS" +.pp +One very powerful feature of \fIMH\fR is that the \fIMH\fR commands may +be issued from any current directory, and the proper path to +the appropriate folder(s) will be taken from the user's profile. +If the \fIMH\fR path is not appropriate for a specific folder or file, +the automatic prepending of the \fIMH\fR path can be avoided by +beginning a folder or file name with \fB/\fR, +or with \fB\&./\fR or \fB\&.\&./\fR component. +Thus any specific absolute path may be specified along with any path +relative to the current working directory. +.pp +Arguments to the various programs may be given in any order, +with the exception of a few switches whose arguments must follow +immediately, such as `\-src\0+folder' for \fIrefile\fR. +.pp +Whenever an \fIMH\fR command prompts the user, the valid options +will be listed in response to a . +(The first of the +listed options is the default if end-of-file is encountered, +such as from a command file.) +A valid response is any \fIunique\fR abbreviation of one of the listed options. +.pp +Standard UNIX documentation conventions are used in this report +to describe \fIMH\fR command syntax. +Arguments enclosed in brackets +([ ]) are optional; exactly one of the arguments enclosed +within braces ({ }) must be specified, and all other +arguments are required. +The use of ellipsis dots (...) indicates +zero or more repetitions of the previous item. +For example, +\*(lq+folder ...\*(rq would indicate that one or more \*(lq+folder\*(rq +arguments is required +and \*(lq[+folder ...]\*(rq indicates that 0 or more +\*(lq+folder\*(rq arguments may be given. +.pp +\fIMH\fR departs from UNIX standards by using switches that consist of +more than one character, e.g. `\-header'. +To minimize typing, +only a unique abbreviation of a switch need be typed; thus, for +`\-header', `\-hea' is probably sufficient, depending on the +other switches the command accepts. +Each \fIMH\fR program +accepts the switch `\-help' (which \fBmust\fR be spelled out fully) +and produces a syntax description and a list of switches. +In the +list of switches, parentheses indicate required characters. +For example, all `\-help' switches will appear as \*(lq\-(help)\*(rq, +indicating that no abbreviation is accepted. +Furthermore, +the `\-help' switch tells the version of the \fIMH\fR program you invoked. +.pp +Many \fIMH\fR switches have both on and off forms, such as +`\-format' and `\-noformat'. +In many of the descriptions which follow, +only one form is defined; the other form, often used to +nullify profile switch settings, is assumed to be the opposite. +.br +.bp +.uh "MH COMMANDS" +.pp +The \fIMH\fR package comprises several programs: +.\" I pity the fool who tampers with the next line... +.ds ZZ -me +.so mh.me +.pp +These programs are described below. +The form of the descriptions +conforms to the standard +form for the description of UNIX commands. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.de SC +.he '\\$1(\\$2)'-%-'\\$1(\\$2)' +@BEGIN: BSD44 +.eh 'USD:8-%'The RAND Message Handling System: User Manual'\\$1(\\$2)' +.oh '\\$1(\\$2)'The RAND Message Handling System: User Manual'USD:8-%' +@END: BSD44 +.bp +.(x +.ti .8i +\\$1 +.)x +.. +.de NA +.b \\s-2NAME\\s0 +.ti .5i +.. +.de SY +.sp +.b \\s-2SYNOPSIS\\s0 +.in 1i +.ti .5i +.na +.. +.de DE +.ad +.sp +.in 0 +.b \\s-2DESCRIPTION\\s0 +.sp +.fi +.in .5i +.. +.de Uh +.ad +.sp +.ti -.25i +.b "\\s-2\\$1\\s0" +.sp +.fi +.. +.de Hh +.ad +.sp +.in 0 +.b "\\s-2Helpful Hints\\s0" +.sp +.fi +.in .5i +.. +.de Fi +.(b L +.ti 0 +.b \\s-2Files\\s0 +.ta \w'@(MHETCPATH)/ExtraBigFileName 'u +.. +.de Pr +.)b +.(b L F +.ta \w'ExtraBigProfileName 'u +.ti 0 +.b "\\s-2Profile Components\\s0" +.ti .5i +.. +.de Ps +.ti .5i +.. +.de Sa +.)b +.(b L F +.ti 0 +.b "\\s-2See Also\\s0" +.br +.. +.de De +.)b +.(b L +.in .5i +.ti 0 +.b \\s-2Defaults\\s0 +.. +.de Ds +.. +.de Co +.)b +.(b L F +.ti 0 +.b \\s-2Context\\s0 +.br +.. +.de Hi +.)b +.(b L F +.ti 0 +.b \\s-2History\\s0 +.br +.. +.de Bu +.)b +.(b L F +.ti 0 +.b \\s-2Bugs\\s0 +.br +.. +.de En +.)b +.in 0 +.. +.po -.50i +.so ali.me +.so anno.me +@BEGIN: BBOARDS +.so bbc.me +@BEGIN: BBSERVER +.so bbl.me +.so bbleader.me +@END: BBSERVER +.so bboards.me +@END: BBOARDS +.so burst.me +@BEGIN: TMA +.so cipher.me +@END: TMA +.so comp.me +@BEGIN: TMA +.so decipher.me +@END: TMA +.so dist.me +.so folder.me +.so forw.me +.so inc.me +.so mark.me +.so mhl.me +.so mhmail.me +@BEGIN: MIME +.so mhn.me +@END: MIME +.so mhook.me +.so mhparam.me +.so mhpath.me +.so msgchk.me +.so msh.me +.so next.me +.so packf.me +.so pick.me +@BEGIN: MPOP +.so popi.me +@END: MPOP +.so prev.me +.so prompter.me +.so rcvstore.me +.so refile.me +.so repl.me +.so rmf.me +.so rmm.me +.so scan.me +.so send.me +.so show.me +.so slocal.me +.so sortm.me +@BEGIN: TMA +.so tma.me +@END: TMA +.so vmh.me +.so whatnow.me +.so whom.me +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.po +.50i +.he ''-%-'' +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +.bp +.uh "MORE DETAILS" +.pp +This section describes some of the more intense points of the \fIMH\fR system, +by expanding on topics previously discussed. +The format presented conforms to the standard form for the description of UNIX +documentation. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@(MHLEFTFOOT)'@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mh-alias.me +.so mh-format.me +.so mh-mail.me +.so mh-profile.me +.so mh-sequence.me +.so ap.me +.so conflict.me +.so dp.me +.so fmtdump.me +.so install-mh.me +.so post.me +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.po +.50i +.he ''-%-'' +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +.+c "REPORTING PROBLEMS" +.pp +If problems are encountered with an \fIMH\fR program, +the problems should be reported to the local maintainers of \fIMH\fR. +When doing this, +the name of the program should be reported, +along with the version information for the program. +To find out what version of an \fIMH\fR program is being run, +invoke the program with the `\-help' switch. +In addition to listing the syntax of the command, +the program will list information pertaining to its version. +This information includes the version of \fIMH\fR, +the host it was generated on, +and the date the program was loaded. +A second line of information, +found on versions of \fIMH\fR after #5.380 include \fIMH\fR configuration +options. +For example, + +.in +.5i +version: MH 6.1 #1[UCI] (nrtc-gremlin) of Wed Nov 6 01:13:53 PST 1985 +.br +options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP] +.in -.5i + +The `6.1 #1[UCI]' indicates that the program is from the UCI \fImh.6\fR +version of \fIMH\fR. +The program was generated on the host `nrtc-gremlin' on +`Wed Nov 6 01:13:53 PST 1985'. +It's usually a good idea to send the output of the `\-help' switch along +with your report. + +If there is no local \fIMH\fR maintainer, +try the address \fBBug-MH\fR. +If that fails, use the Internet mailbox \fBBug-MH@ICS.UCI.EDU\fR. + +.+c "ADVANCED FEATURES" +.de UH +.lp +.b "\\$1" +.pp +.(x +.ti .8i +\\$1 +.)x +.. +.pp +This section describes some features of \fIMH\fR that were included strictly +for advanced \fIMH\fR users. +These capabilities permit \fIMH\fR to exhibit more powerful behavior for the +seasoned \fIMH\fR users. +.uh "USER\-DEFINED SEQUENCES" +.pp +User\-defined sequences allow the \fIMH\fR user a tremendous amount of power +in dealing with groups of messages in the same folder +by allowing the user to bind a group of messages to a meaningful symbolic +name. +The user may choose any name for a message sequence, +as long as it consists of alphanumeric characters and does not conflict with +the standard \fIMH\fR reserved message names +(e.g., \*(lqfirst\*(rq, etc). +After defining a sequence, +it can be used wherever an \fIMH\fR command expects a `msg' or `msgs' +argument. +.pp +A restricted form of message ranges are allowed with user\-defined +sequences. The form \*(lqname:n\*(rq, specifies up to the first `n' messages +which are part of the user\-defined sequence `name'. +A leading plus sign is allowed on `n', but is ignored. +The interpretation of n is overridden if n is preceded +by a minus sign; +`\-n' always means up to the last `n' messages which are part of the +sequence `name'. +.pp +Although all \fIMH\fR commands expand user\-defined sequences as appropriate, +there are two commands that allow the user to define and manipulate them: +\fIpick\fR and \fImark\fR. +.UH "Pick and User\-Defined Sequences" +.pp +Most users of \fIMH\fR will use user\-defined sequences only with +the \fIpick\fR command. +By giving the `\-sequence\ name' switch to \fIpick\fR +(which can occur more than once on the command line), +each sequence named is defined as those messages which \fIpick\fR matched +according the the selection criteria it was given. +Hence, + +.ti +.5i +pick\0\-from\0frated\0\-seq\0fred + +finds all those messages in the current folder which were from +\*(lqfrated\*(rq, +creates a sequence called \*(lqfred\*(rq, +and then adds them to the sequence. +The user could then invoke + +.ti +.5i +scan\0fred + +to get a \fIscan\fR listing of those messages. +Note that by default, +\fIpick\fR creates the named sequences +before it adds the selected messages to the sequence. +Hence, if the named sequence already existed, +the sequence is destroyed prior to being re-defined +(nothing happens to the messages that were a part of this sequence, +they simply cease to be members of that sequence). +By using the `\-nozero' switch, this behavior can be inhibited, +as in + +.in +.5i +pick\0\-from\0frated\0\-seq\0sgroup +.br +pick\0\-from\0fear\0\-seq\0sgroup\0\-nozero +.br +pick\0\-from\0freida\0\-seq\0sgroup\0\-nozero +.in -.5i + +finds all those messages in the current folder which were from +\*(lqfrated\*(rq, \*(lqfear\*(rq, or \*(lqfreida\*(rq, +and defines the sequence called \*(lqsgroup\*(rq as exactly those messages. +These operations amounted to an \*(lqinclusive\-or\*(rq of three selection +criteria, +using \fIpick\fR, +one can also generate the \*(lqand\*(rq of some selection criteria as well: + +.in +.5i +pick\0\-from\0frated\0\-seq\0fred +.br +pick\0\-before\0friday\0\-seq\0fred\0fred +.in -.5i + +This example defines the sequence called \*(lqfred\*(rq as exactly those +messages from \*(lqfrated\*(rq that were dated prior to \*(lqfriday\*(rq.\** +.(f +\** Of course, +it is much easier to simply use the built\-in boolean operation of +\fIpick\fR to get the desired results: + +.ti +.5i +pick\0\-from\0frated\0\-or\0\-from\0fear\0\-or\0\-from\0freida\0\-seq\0sgroup + +and + +.ti +.5i +pick\0\-from\0frated\0\-and\0\-before\0friday\0\-seq\0fred + +do exactly the same thing as the five commands listed above. +Hence, the `\-nozero' option to \fIpick\fR is only useful to manipulate +existing sequences. +.)f +.pp +\fIPick\fR is normally used as a back\-quoted command, +for example, + +.ti +.5i +scan\0`pick\0\-from\0postmaster` + +Now suppose that the user decides that another command should be issued, +using exactly those messages. +Since, +\fIpick\fR wasn't given a `\-sequence\ name' argument in this example, +the user would end\-up typing the entire back\-quoted command again. +A simpler way is to add a default sequence name to the \&.mh\(ruprofile. +For example, + +.ti +.5i +pick:\0\-seq\0select\0\-list + +will tell \fIpick\fR to always define the sequence \*(lqselect\*(rq whenever +it's run. +The `-list' is necessary since the `\-sequence\ name' switch sets `\-nolist' +whenever the former is encountered. +Hence, this profile entry makes \fIpick\fR define the \*(lqselect\*(rq +sequence and otherwise behave exactly as if there was no profile entry at all. +.UH "Mark and User\-Defined Sequences" +.pp +The \fImark\fR command lets the user perform low\-level manipulation of +sequences, +and also provides a well\-needed debug facility to the +implementors/developers/maintainers of \fIMH\fR (the \fIMH\fR\-hacks). +In the future, a user\-friendly \*(lqfront\-end\*(rq for \fImark\fR will +probably be developed to give the \fIMH\fR user a way to take better +advantage of the underlying facilities. +.UH "Public and Private User\-Defined Sequences" +.pp +There are two kinds of sequences: \fIpublic\fR sequences, +and \fIprivate\fR sequences. +\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user that +can read that folder and are kept in the \&.mh\(rusequences file in the folder. +\fIPrivate\fR sequences are accessible only to the \fIMH\fR user that defined +those sequences and are kept in the user's \fIMH\fR context file. +By default, +\fIpick\fR (and \fImark\fR\0) create \fIpublic\fR sequences +if the folder for which the sequences are being defined is writable by the +\fIMH\fR user. +Otherwise, \fIprivate\fR sequences are created. +This can be overridden with the `\-public' and `\-nopublic' switches. +.UH "Sequence Negation" +.pp +In addition to telling an \fIMH\fR command to use the messages in the sequence +\*(lqseen\*(rq, as in + +.ti +.5i +refile\0seen\0+old + +it would be useful to be easily able to tell an \fIMH\fR command to use all +messages \fIexcept\fR those in the sequence. +One way of doing this would be to use \fImark\fR and define the sequence +explicitly, +as in + +.ti +.5i +mark\0\-delete\0\-zero\0seen\0\-seq\0notseen + +which, +owing to \fImark\fR\0's cryptic interpretation of `\-delete' and `\-zero', +defines the sequence \*(lqnotseen\*(rq to be all messages not in the sequence +\*(lqseen\*(rq. +Naturally, +anytime the sequence \*(lqseen\*(rq is changed, +\*(lqnotseen\*(rq will have to be updated. +Another way to achieve this is to define the entry +\*(lqSequence\-Negation:\*(rq in the \&.mh\(ruprofile. +If the entry was + +.ti +.5i +Sequence\-Negation:\0not + +then anytime an \fIMH\fR command was given \*(lqnotseen\*(rq as a `msg' or +`msgs' argument, +it would substitute all messages that are not a member of the sequence +\*(lqseen\*(rq. +That is, + +.ti +.5i +refile\0notseen\0+new + +does just that. +The value of the \*(lqSequence\-Negation:\*(rq entry in the profile can be +any string. +Hence, +experienced users of \fIMH\fR do not use a word, +but rather a special character which their shell does not interpret +(users of the \fICShell\fR use a single caret or circumflex (usually shift\-6), +while users of the Bourne shell use an exclamation\-mark). +This is because there is nothing to prevent a user of \fIMH\fR from defining a +sequence with this string as its prefix, +if the string is nothing by letters and digits. +Obviously, +this could lead to confusing behavior +if the \*(lqSequence\-Negation:\*(rq entry leads \fIMH\fR to believe that two +sequences are opposites by virtue of their names differing by the prefix +string. +.UH "The Previous Sequence" +.pp +Many times users find themselves issuing a series of commands on the same +sequences of messages. +If the user first defined these messages as a sequence, +then considerable typing may be saved. +If the user doesn't have this foresight, +\fIMH\fR provides a handy way of having \fIMH\fR remember the `msgs' or +`msg' argument last given to an \fIMH\fR command. +If the entry \*(lqPrevious\-Sequence:\*(rq is defined in the +\&.mh\(ruprofile, +then when the command finishes, +it will define the sequence(s) named in the value of this entry as being +exactly those messages that were specified. +Hence, a profile entry of + +.ti +.5i +Previous\-Sequence:\0pseq + +directs any \fIMH\fR command that accepts a `msg' or `msgs' argument to +define the sequence \*(lqpseq\*(rq as those messages when it finishes. +More than one sequence name may be placed in this entry, +separated with spaces. +The one disadvantage of this approach +is that the \fIMH\fR progams have to update the sequence information for +the folder each time they run +(although most programs read this information, +usually only \fIpick\fR and \fImark\fR have to write this information out). +.UH "The Unseen Sequence" +.pp +Finally, some users like to distinguish between messages which have been +previously seen by them. +Both \fIinc\fR and \fIshow\fR honorthe profile entry +\*(lqUnseen\-Sequence\*(rq to support this activity. +Whenever \fIinc\fR places new messages in a folder, +if the entry \*(lqUnseen\-Sequence\*(rq is defined in the \&.mh\(ruprofile, +then when the command finishes, +\fIinc\fR will add the new messages to the sequence(s) named in the value of +this entry. +Hence, a profile entry of + +.ti +.5i +Unseen\-Sequence:\0 unseen + +directs \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq. +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile +however, +the sequence(s) will \fBnot\fR be zero'd. +.pp +Similarly, +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\0) displays a message, +they remove those messages from any sequences named by the +\*(lqUnseen\-Sequence\*(rq entry in the profile. +.uh "COMPOSITION OF MAIL" +.pp +There are a number of interesting advanced facilities for the composition of +outgoing mail. + +.UH "The Draft Folder" +.pp +The \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands have two +switches, `\-draftfolder\0+folder' and `\-draftmessage\0msg'. +If `\-draftfolder\0+folder' is used, +these commands are directed to construct a draft message in the indicated +folder. +(The \*(lqDraft\-Folder:\*(rq profile entry may be used to declare a +default draft folder for use with +\fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR) +If `\-draftmessage\0msg' is not used, it defaults to `new' +(unless the user invokes \fIcomp\fR with `\-use', +in which case the default is `cur'). +Hence, the user may have several message compositions in progress +simultaneously. +Now, all of the \fIMH\fR tools are available on each of the user's message +drafts +(e.g., \fIshow\fR, \fIscan\fR, \fIpick\fR, and so on). +If the folder does not exist, +the user is asked if it should be created (just like with \fIrefile\fR\0). +Also, +the last draft message the user was composing is known as `cur' in the +draft folder. +.pp +Furthermore, +the \fIsend\fR command has these switches as well. +Hence, from the shell, +the user can send off whatever drafts desired using the +standard \fIMH\fR `msgs' convention with `\-draftmessage msgs'. +If no `msgs' are given, it defaults to `cur'. +.pp +In addition, +all five programs have a `\-nodraftfolder' switch, +which undoes the last occurrence of `\-draftfolder\0folder' +(useful if the latter occurs in the user's \fIMH\fR profile). +.pp +If the user does not give the `\-draftfolder\0+folder' switch, +then all these commands act ``normally''. +Note that the `\-draft' switch to \fIsend\fR and \fIshow\fR +still refers to the file called `draft' in the user's \fIMH\fR +directory. +In the interests of economy of expression, +when using \fIcomp\fR or \fIsend\fR, +the user needn't prefix the draft `msg' or `msgs' with +`\-draftmessage'. +Both of these commands accept a `file' or `files' argument, +and they will, if given `\-draftfolder\0+folder' treat these arguments +as `msg' or `msgs'.\** +.(f +\** This may appear to be inconsistent, at first, +but it saves a lot of typing. +.)f +Hence, + +.ti +.5i +send -draftf +drafts first + +is the same as + +.ti +.5i +send -draftf +drafts -draftm first + +.pp +To make all this a bit more clear, here are some examples. +Let's assume that the following entries are in the \fIMH\fR profile: + +.in +.5i +.nf +Draft\-Folder: +drafts +sendf: -draftfolder +drafts +.fi +.in -.5i + +Furthermore, +let's assume that the program \fIsendf\fR is a (symbolic) link in the user's +\fB$HOME/bin/\fR directory to \fIsend\fR. +Then, any of the commands + +.in +.5i +.nf +comp +dist +forw +repl +.fi +.in -.5i + +constructs the message draft in the `draft' folder using the `new' +message number. +Furthermore, +they each define `cur' in this folder to be that message draft. +If the user were to use the \fIquit\fR option at `What now?' level, +then later on, +if no other draft composition was done, +the draft could be sent with simply + +.ti +.5i +sendf + +Or, +if more editing was required, +the draft could be edited with + +.ti +.5i +comp -use + +Instead, +if other drafts had been composed in the meantime, +so that this message draft was no longer known as `cur' in the `draft' +folder, +then the user could \fIscan\fR the folder to see which message draft in the +folder should be used for editing or sending. +Clever users could even employ a back-quoted \fIpick\fR to do the work: + +.ti +.5i +comp -use `pick +drafts -to bug-mh` + +or + +.ti +.5i +sendf `pick +drafts -to bug-mh` + +Note that in the \fIcomp\fR example, +the output from \fIpick\fR must resolve to a single message draft +(it makes no sense to talk about composing two or more drafts with one +invocation of \fIcomp\fR\0). +In contrast, +in the \fIsend\fR example, +as many message drafts as desired can appear, +since \fIsend\fR doesn't mind sending more than one draft at a time. +.pp +Note that the argument `\-draftfolder\0+folder' is not +included in the profile entry for \fIsend\fR, +since when \fIcomp\fR, et. al., invoke \fIsend\fR directly, +they supply \fIsend\fR with the UNIX pathname of the message draft, +and \fBnot\fR a `draftmessage\0msg' argument. +As far as \fIsend\fR is concerned, +a \fIdraft folder\fR is not being used. +.pp +It is important to realize that \fIMH\fR treats the draft folder like a standard +\fIMH\fR folder in nearly all respects. +There are two exceptions: +.u first , +under no circumstancs will the `\-draftfolder\0folder' switch cause the +named folder to become the current folder.\** +.(f +\** Obviously, +if the folder appeared in the context of a standard `+folder' +argument to an \fIMH\fR program, as in + +.ti +.5i +scan +drafts + +it might become the current folder, depending on the context changes of the +\fIMH\fR program in question. +.)f +.u Second , +although conceptually \fIsend\fR deletes the `msgs' named in the draft +folder, +it does not call `delete-prog' to perform the deletion. + +.UH "What Happens if the Draft Exists" +.pp +When the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands are +invoked and the draft you indicated already exists, +these programs will prompt the user for a reponse directing the program's +action. +The prompt is + +.ti +.5i +Draft ``/usr/src/uci/mh/mhbox/draft'' exists (xx bytes). +.ti +.5i +Disposition? + +The appropriate responses and their meanings are: +.u replace : +deletes the draft and starts afresh; +.u list : +lists the draft; +.u refile : +files the draft into a folder and starts afresh; +and, +.u quit : +leaves the draft intact and exits. +In addition, if you specified `\-draftfolder\0folder' to the command, +then one other response will be accepted: +.u new : +finds a new draft, +just as if `\-draftmessage\0new' had been given. +Finally, the \fIcomp\fR command will accept one more response: +.u use : +re-uses the draft, +just as if `\-use' had been given. + +.UH "The Push Option at What now? Level" +.pp +The \fIpush\fR option to the \*(lqWhat now?\*(rq query +in the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands, +directs the command to \fIsend\fR the draft +in a special detached fashion, +with all normal output discarded. +If \fIpush\fR is used and the draft can not be sent, +then \fIMH\fR will send the user a message, +indicating the name of the draft file, +and an explanation of the failure. +.\" Although using \fIpush\fR calls \fIsend\fR\0(1), +.\" the \fIsend\fR command will consult the profile entry for \fIpush\fR. +.pp +The user can also invoke \fIsend\fR from the shell with the `\-push' +switch, +which makes \fIsend\fR act like it had been \fIpush\fR\0'd by one of the +composition commands. +.\" composition commands.\** +.\" .(f +.\" \** Note that in this case, +.\" \fIsend\fR consults the profile entry for whatever name it was invoked as, +.\" such as \fIsendf\fR. +.\" .)f +.pp +By using \fIpush\fR, the user can free the shell to do other things, +because it appears to the shell that the \fIMH\fR command has finished. +As a result the shell will immediately prompt for another command, +despite the fact that the command is really still running. +Note that if the user indicates that annotations are to be performed +(with `\-annotate' to \fIdist\fR, \fIforw\fR, or \fIrepl\fR), +the annotations will be performed after the message has been +successfully sent. +This action will appear to occur asynchronously. +Obviously, if one of the messages that is to be annotated is +removed before the draft has been successfully sent, +then when \fIMH\fR tries to make the annotations, +it won't be able to do so. +In previous versions of \fIMH\fR, +this resulted in an error message mysteriously appearing on the user's +terminal. +In \fImh.5\fR and later versions, +in this special circumstance, no error will be generated. +.pp +If send is \fIpush\fR\0'd, +then the `\-forward' switch is examined if a failure notice is generated. +If given, +then the draft is forwarded with the failure notice sent to the user. +This allows rapid \fIburst\fR\0'ing of the failure notice to retrieve the +unsent draft. + +.UH "Options at What now? Level" +.pp +By default, +the message composition programs call a program called \fIwhatnow\fR before +the initial draft composition. +The \fIMH\fR user can specify any program for this. +Following is some information about the default \*(lqWhat now?\*(rq level. +More detailed information can be found in the \fIwhatnow\fR\0(1) manual entry. +.pp +When using the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands at +\*(lqWhat now?\*(rq level, +the \fIedit\fR, \fIlist\fR, \fIheaders\fR, \fIrefile\fR, +and (for the \fIdist\fR and \fIrepl\fR commands) the \fIdisplay\fR options +will pass on any additional arguments given them to whatever program they +invoke. +.pp +In \fImh.1\fR (the original RAND \fIMH\fR\0) +and \fImh.2\fR (the first UCI version of \fIMH\fR\0), +\fIMH\fR used a complicated heuristic to determine if the draft should be +deleted or preserved after an unsuccessful edit. +In \fImh.3\fR, +\fIMH\fR was changed to preserve the draft always, +since \fIcomp\fR, et. al., +could usually look at a draft, apply another set of heuristics, +and decide if it was important or not. +With the notion of a \fIdraft folder\fR, +in which one by default gets a `new' message draft, +the edit deletion/preservation algorithm was re-implemented, +to keep the draft folder from being cluttered with aborted edits. +.pp +Also, +note that by default, +if the draft cannot be successfully sent, +these commands return to \*(lqWhat now?\*(rq level. +But, when \fIpush\fR is used, this does not happen (obviously). +Hence, +if these commands were expected to annotate any messages, +this will have to be done by hand, later on, with the \fIanno\fR command. +.pp +Finally, if the `\-delete' switch is not given to the \fIquit\fR option, +then these commands will inform the user of the name of the unsent draft file. + +.UH "Digests" +.pp +The \fIforw\fR command has the beginnings of a digestifying facility, +with the `\-digest\ list', `\-issue\ number', and `\-volume\ number' switches. + +If \fIforw\fR is given \*(lqlist\*(rq to the `\-digest' switch +as the name of the discussion group, +and the `\-issue\ number' switch is not given, +then \fIforw\fR looks for an entry in the user's \fIMH\fR context called +\*(lq\fIdigest\fR\-issue\-list\*(rq and increments its value to use as the +issue number. +Similarly, +if the `\-volume\ number' switch is not given, +then \fIforw\fR looks for \*(lq\fIdigest\fR\-volume\-list\*(rq +(but does not increment its value) to use as the volume number. + +Having calculated the name of the digest and the volume and issue numbers, +\fIforw\fR will now process the components file using the same format string +mechanism used by \fIrepl\fR. +The current `%'\-escapes are: + +.nf +.ta \w'escape 'u +\w'integer 'u +\fIescape\fR \fItype\fR \fIsubstitution\fR +digest string digest name +msg integer issue number +cur integer volume number +.re +.fi + +In addition, to capture the current date, +any of the escapes valid for \fIdp\fR\0(8) are also valid for \fIforw\fR. + +The default components file used by \fIforw\fR when in digest mode is: + +.nf +.in +.5i +.ne 10 +.eo +.so @(MHETCPATH)/digestcomps +.ec +.in -.5i +.fi + +Hence, when the `\-digest' switch is present, +the first step taken by \fIforw\fR is to expand the format strings in the +component file. +The next step is to compose the draft using +the standard digest encapsulation algorithm +(even putting an \*(lqEnd of list Digest\*(rq trailer in the draft). +Once the draft is composed by \fIforw\fR, +\fIforw\fR writes out the volume and issue profile entries for the digest, +and then invokes the editor. + +Naturally, when composing the draft, +\fIforw\fR will honor the `\-filter\ filterfile' switch, +which is given to \fImhl\fR to filter each message being forwarded prior to +encapsulation in the draft. +A good filter file to use, which is called \fImhl.digest\fR, is: + +.nf +.in +.5i +.ne 10 +.eo +.so @(MHETCPATH)/mhl.digest +.ec +.in -.5i +.fi + +.uh "FOLDER HANDLING" +.pp +There are two interesting facilities for manipulating folders: +relative folder addressing, +which allows a user to shorten the typing of long folder names; +and +the folder\-stack, +which permits a user to keep a stack of current folders. + +.UH "Relative Folder Addressing" +.pp +By default, when `+folder' is given, +and the folder name is not absolute +(does not start with \fB/\fR, \fB\&./\fR, or \fB\&.\&./\fR), +then the UNIX pathname of the folder is interpreted relative to the user's +\fIMH\fR directory. +Although this mechanism works fine for top\-level folders and their immediate +sub\-folders, +once the depth of the sub\-folder tree grows, it becomes rather unwieldly: + +.ti +.5i +scan\0+mh/mh.4/draft/flames + +is a lot of typing. +\fIMH\fR can't do anything if the current folder was \*(lq+inbox\*(rq, +but if the current folder was, say, \*(lq+mh/mh.4/draft\*(rq, +\fIMH\fR has a short\-hand notation to reference a sub\-folder of the +current folder. +Using the `@folder' notation, +the \fIMH\fR user can direct any \fIMH\fR program which expects a `+folder' +argument to look for the folder relative to the current folder instead of the +user's \fIMH\fR directory. +Hence, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq, +then + +.ti +.5i +scan\0@flames + +would do the trick handily. +In addition, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq, + +.ti +.5i +scan\0@../pick + +would scan the folder \*(lq+mh/mh.4/pick\*(rq, +since, in the UNIX fashion, +it references the folder \*(lqpick\*(rq which is a sub\-folder of +the folder that is the parent of the current folder. +Since most advanced \fIMH\fR users seem to exhibit a large degree of locality +in referencing folders when they process mail, +this convention should receive a wide range of uses. + +.UH "The Folder\-Stack" +.pp +The \fIfolder\-stack\fR mechanism in \fIMH\fR gives the \fIMH\fR user a +facility similar to the \fICShell\fR\0's directory\-stack. +Simply put, + +.ti +.5i +folder\0\-push\0+foo + +makes \*(lqfoo\*(rq the current folder, +saving the folder that was previously the current folder on the +\fIfolder\-stack\fR. +As expected, + +.ti +.5i +folder\0\-pop + +takes the top of the \fIfolder\-stack\fR and makes it the current folder. +Each of these switches lists the \fIfolder\-stack\fR when they execute. +It is simple to write a \fIpushf\fR command as a shell script. +It's one line: + +.ti +.5i +exec\0folder\0\-push\0$@ + +Probably a better way is to link \fIfolder\fR to the $HOME/bin/ directory under +the name of \fIpushf\fR and then add the entry + +.ti +.5i +pushf:\0\-push + +to the \&.mh\(ruprofile. +.pp +The manual page for \fIfolder\fR discusses the analogy between the +\fICShell\fR directory stack commands and the switches in \fIfolder\fR which +manipulate the \fIfolder\-stack\fR. +The \fIfolder\fR command uses the context entry `Folder\-Stack:' to keep +track of the folders in the user's stack of folders. +\" +\" On to the Appendices +\" +.fo ''-%-'' +.he '''' +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.(x +.sp +Appendix +.)x _ +.de $c \" Major Heading printer +.ce +Appendix \\n+(ch +.sp 2p +.ce +.b "\\s12\\$1\\s0" \" 12 Point Bold Header +.(x +\ \ \ \\n(ch.\\ \\ \\$2 +.)x +.sp 45p \" 45 points or about 1/2 inch +.. +.++ A +.bp +.$c "COMMAND SUMMARY" "Command Summary" +.po -.50i +.so mh-chart.me +.po +.50i +.if t \{ +.ll 32P +.lt 32P +\} +.bp +.$c "MESSAGE NAME BNF" "Message Name BNF" + +.nf +.in 1i +.ta \w'user-defined-sequence 'u +\w':= 'u +\w'user-defined-sequence 'u +msgs := msgspec | + msgs msgspec + +msgspec := msg | + msg-range | + msg-sequence | + user-defined-sequence + +msg := msg-name | + + +msg-name := \*(lqfirst\*(rq | + \*(lqlast\*(rq | + \*(lqcur\*(rq | + \*(lq\&.\*(rq | + \*(lqnext\*(rq | + \*(lqprev\*(rq + +msg-range := msg\*(lq\-\*(rqmsg | + \*(lqall\*(rq + +msg-sequence := msg\*(lq:\*(rqsigned-number + +signed-number := \*(lq+\*(rq | + \*(lq\-\*(rq | + + +user-defined-sequence := | + * +.re +.fi +.sp +.lp +Where is a decimal number greater than zero. +.lp +Msg-range specifies all of the messages in the given range +and must not be empty. +.lp +Msg-sequence specifies up to of messages, beginning +with \*(lqmsg\*(rq (in the case of first, cur, next, or ), +or ending with \*(lqmsg\*(rq (in the case of prev or last). ++ forces \*(lqstarting with msg\*(rq, and \- forces +\*(lqending with number\*(rq. +In all cases, \*(lqmsg\*(rq must exist. +.lp +User\-defined sequences are defined and manipulated with the \fIpick\fR +and \fImark\fR commands. +.in 0 +.bp +.ce +.b \\s12REFERENCES\\s0 +.(x +.sp +REFERENCES +.)x +.sp 3 +.in .4i +.ti 0 +1. Crocker, D. H., J. J. Vittal, K. T. Pogran, and D. A. Henderson, Jr., +\*(lqStandard for the Format of ARPA Network Text Messages,\*(rq +\fIRFC733\fR, +November 1977. + +.ti 0 +2. Thompson, K., and D. M. Ritchie, \*(lqThe UNIX Time-sharing System,\*(rq +\fICommunications of the ACM\fR, Vol. 17, July 1974, pp. 365-375. + +.ti 0 +3. McCauley, E. J., and P. J. Drongowski, \*(lqKSOS\-The Design of a Secure +Operating System,\*(rq \fIAFIPS Conference Proceedings\fR, +National Computer Conference, +Vol. 48, 1979, pp. 345-353. + +.ti 0 +4. Crocker, David H., \fIFramework and Functions of the \*(lqMS\*(rq Personal +Message System\fR, The RAND Corporation, R-2134-ARPA, December 1977. + +.ti 0 +5. Thompson, K., and D. M. Ritchie, \fIUNIX Programmer's Manual\fR, 6th ed., +Western Electric Company, May 1975 (available only to UNIX licensees). + +.ti 0 +6. Crocker, D. H., +\*(lqStandard for the Format of ARPA Internet Text Messages,\*(rq +\fIRFC822\fR, +August 1982. +.de $c +.ce +.b "\\s12\\$1\\s0" \" 12 Point Bold Header +.(x y +.sp +\\$1 +.)x +.sp 3 +.. +.++ P +.bp 1 +.fo '''' +.he ''-%-'' +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.+c "READ THIS" +.pp +Although the \fIMH\fR system was originally developed by the RAND Corporation, +and is now in the public domain, +the RAND Corporation assumes no responsibility for \fIMH\fR +or this particular version of \fIMH\fR. +.pp +In addition, +the Regents of the University of California issue the following +\fBdisclaimer\fR in regard to the UCI version of \fIMH\fR: +.sp 1 +.in +.5i +\*(lqAlthough each program has been tested by its contributor, +no warranty, express or implied, +is made by the contributor or the University of California, +as to the accuracy and functioning of the program +and related program material, +nor shall the fact of distribution constitute any such warranty, +and no responsibility is assumed by the contributor +or the University of California in connection herewith.\*(rq +.in -.5i +.pp +This version of \fIMH\fR is in the public domain, +and as such, +there are no real restrictions on its use. +The \fIMH\fR source code and documentation have no licensing restrictions +whatsoever. +As a courtesy, +the authors ask only that you provide appropriate credit to the RAND +Corporation and the University of California for having developed the software. +.pp +\fIMH\fR is a software package that is supported neither by the RAND +Corporation nor the University of California. +However, +since we do use the software ourselves and plan to continue using +(and improving) \fIMH\fR, +bug reports and their associated fixes should be reported back to us so that +we may include them in future releases. +The current computer mailbox for \fIMH\fR is \fBBug\-MH@ICS.UCI.EDU\fR +(in the ARPA Internet), +and \fB...!ucbvax!ucivax!bug\-mh\fR (UUCP). +Presently, +there are two Internet discussion groups, \fBMH\-Users@ICS.UCI.EDU\fR +and \fBMH\-Workers@ICS.UCI.EDU\fR. \fBMH\-Workers\fP is for people +discussing code changes to \fIMH\fP. \fBMH-Users\fP is for general +discussion about how to use \fIMH\fP. +\fBMH\-Users\fR is bi-directionally +gatewayed into USENET as \fBcomp.mail.mh\fR. +.+c "OBTAINING MH" +.pp +Since you probably already have \fIMH\fP, +you may not need to read this unless you suspect you have an old version. +On the Internet, you may retrieve the lastest release from one of: + +.nf +.in +1i +ftp://ftp.ics.uci.edu/pub/mh/mh-6.8.tar.Z +ftp://ftp.uu.uunet/networking/mail/mh/mh-6.8.tar.Z +http://wuarchive.wustl.edu/packages/mail/mh/mh-6.8.tar.Z +.fi +.in -1i + +.lp +This is a tar image after being run through the compress program +(approximately 2Mb). There is also an \fIMH\fP World Wide Web +Home Page at \*(lqhttp://www.ics.uci.edu/\~mh\*(rq +which tells what the current release of \fIMH\fP +is, and how to get updates. +.pp +You may also find MH on +various other hosts; to make sure you get the latest version and +don't waste your time re-fixing bugs, it's best to get it from +either ftp.ics.uci.edu or a site which mirrors ftp.ics.uci.edu. +.pp +Alternatively, you can send $75 US to the address below. +This covers the cost of a 6250 BPI 9-track magtape, +handling, and shipping. In addition, you'll get a +laser-printed hard-copy of the entire MH documentation set. Be +sure to include your USPS address with your check. Checks +must be drawn on U.S\&. funds and should be made payable to: + +.ti +1i +Regents of the University of California + +The distribution address is: + +.nf +.in +1i +Attn: MH distribution +Office of Academic Computing +University of California, Irvine +Irvine, CA 92717-2225 + ++1 714 824 5153 +.fi +.in -1i +.pp +If you just want the hard-copies of the documentation, you +still have to pay the $75. The tar image has the documentation +source (the manual is in roff format, but the rest are in TeX +format). Postscript formatted versions of the TeX papers are +available, as are crude tty-conversions of those papers. +.+c FOREWORD +.pp +This document describes the RAND \fIMH\fR Message Handling System. +Its primary purpose is to serve as a user's manual. +It has been heavily based on a previous version of the manual, +prepared by Bruce Borden, Stockton Gaines, and Norman Shapiro. +.pp +\fIMH\fR is a particularly novel system, +and thus it is often more prone to change than other pieces of production +software. +As such, some specific points in this manual may not be correct in the +future. +In all cases, the on\-line sections of this manual, +available through the UNIX\** \fIman\fR command, +should present the most current information. +.(f +\** UNIX is a trademark of AT&T Bell Laboratories. +.)f +.pp +When reading this document as a user's manual, +certain sections are more interesting than others. +The Preface and Summary are not particularly interesting to those +interested in learning \fIMH\fR. +The Introduction is slightly more interesting, +as it touches upon the organization of the remainder of this document. +The most useful sections are the Overview, Tutorial, and Detailed +Description. +The Overview should be read by all \fIMH\fR users, regardless of their +expertise (beginning, novice, advanced, or hacker). +The Tutorial should be read by all beginning and novice \fIMH\fR users, +as it presents a nice description of the \fIMH\fR system. +The Detailed Description should be read by the day\-to\-day user of \fIMH\fR, +as it spells out all of the realities of the \fIMH\fR system. +The Advanced Features section discusses some powerful \fIMH\fR capabilities for +advanced users. +Appendix A is particularly useful for novices, +as it summarizes the invocation syntax of all the \fIMH\fR commands. +.pp +There are also several other documents which may be useful to you: +\fIThe RAND MH Message Handling System: Tutorial\fR, +which is a tutorial for \fIMH\fR; +\fIThe RAND MH Message Handling System: The UCI BBoards Facility\fR, +which describes the BBoards handling under \fIMH\fR; +\fIMH.5: How to process 200 messages a day and still get some real work +done\fR, +which was presented at the 1985 Summer Usenix Conference and +Exhibition in Portland, Oregon; +\fIMH: A Multifarious User Agent\fR, +which has been accepted for publication by Computer Networks; +\fIMZnet: Mail Service for Personal Micro\-Computer Systems\fR, +which was presented at the First International Symposium on Computer Message +Systems in Nottingham, U.K.; +and, +\fIDesign of the TTI Prototype Trusted Mail Agent\fR, +which describes a proprietary \*(lqtrusted\*(rq mail system built on \fIMH\fR. +There are also documents, mostly specific to U.C.\0Irvine which you may find +interesting: +\fIMH for Beginners\fR, and \fIMH for MM Users\fR. +All of these documents exist in the \fImh.6\fR distribution sent to your +site. +There's also a document, +\fIChanges to the RAND MH Message Handling System: MH.6\fR, +which describes user\-visible changes made to \fIMH\fR since the last major +release. +.pp +This manual is very large, as it describes a large, powerful system in +gruesome detail. +The important thing to remember is: +.sp 2 +.ce +.b "\s+4DON'T PANIC\s0\**" +.sp 2 +As explained in the tutorial, you really need to know only 5 commands to +handle most of your mail. +.(f +\** Note the large, \fIfriendly\fR letters. +.)f +.pp +Very advanced users may wish to consult +\fIThe RAND MH Message Handling System: Administrator's Guide\fR, +which is also present in the \fImh.6\fR distribution sent to your site. +.+c ACKNOWLEDGMENTS +.pp +The \fIMH\fR system described herein is based on the original RAND \fIMH\fR +system. +It has been extensively developed (perhaps too much so) by Marshall T. Rose and +John L. Romine at the University of California, Irvine. +Einar A. Stefferud, Jerry N. Sweet, and Terry P. Domae provided numerous +suggestions to improve the UCI version of \fIMH\fR. +Of course, +a large number of people have helped \fIMH\fR along. +The list of ``\fIMH\fR immortals'' is too long to list here. +However, Van Jacobson deserves a special acknowledgement for his tireless +work in improving the performance of \fIMH\fR. +Some programs have been speeded-up by a factor of 10 or 20. +All of users of \fIMH\fR, everywhere, owe a special thanks to Van. +For this release, numerous \fIMH\-Workers\fP sent in fixes and other +changes. A handful of courageous \fIMH\-Workers\fP volunteered +to beta\-test these changes; their help is particularly appreciated. +.pp +This manual is based on the original \fIMH\fR manual written at RAND by +Bruce Borden, Stockton Gaines, and Norman Shapiro. +.+c PREFACE +.pp +This report describes a system for dealing with messages transmitted on a +computer. Such messages might originate with other users of the same +computer or might come from an outside source through a network to which the user's +computer is connected. Such computer-based message systems are +becoming increasingly widely used, both within and outside the Department +of Defense. +.pp +The message handling system \fIMH\fR was developed for two reasons. +One was to investigate some +research ideas concerning how a message system might take advantage of +the architecture of the UNIX time-sharing operating system for +Digital Equipment Corporation PDP-11 and VAX computers, and the special +features of UNIX's command-level interface with the user (the +\*(lqshell\*(rq). The other reason was to provide a better and more +adaptable base than that of conventional designs +on which to build a command and control message system. +The effort has succeeded in both +regards, although this report mainly describes the message system itself +and how it fits in with UNIX. +.pp +The present report should be of interest to three groups of readers. First, +it is a complete reference manual for the users of \fIMH\fR. +Second, it should be +of interest to those who have a general knowledge of computer-based +message systems, both in civilian and military applications. Finally, +it should be of interest to those who build large subsystems that +interface with users, since it illustrates a new approach to such +interfaces. +.pp +The original \fIMH\fR system was developed by Bruce Borden, +using an approach suggested by Stockton Gaines and Norman Shapiro. +Valuable assistance was provided by Phyllis Kantar in the later +stages of the system's implementation. +Several colleagues +contributed to the ideas included in this system, particularly +Robert Anderson and David Crocker. +In addition, valuable experience +in message systems, and a valuable source of ideas, was available +to us in the form of a previous message system for UNIX called +MS, designed at RAND by David Crocker. +.pp +This report was originally prepared as part of the RAND project entitled +\*(lqData Automation Research\*(rq, sponsored by Project AIR FORCE. +.+c SUMMARY +.pp +Electronic communication of text messages is becoming +commonplace. Computer-based message systems\-software +packages that provide tools for dealing with messages\-are used in many +contexts. In particular, message systems are becoming +increasingly important in command and control and intelligence +applications. +.pp +This report describes a message handling system called \fIMH\fR. +This system provides the user +with tools to compose, send, receive, store, retrieve, forward, and +reply to messages. \fIMH\fR has been built on the UNIX time-sharing system, +a popular operating system developed for the DEC PDP-11 and VAX classes of +computers. +.pp +A complete description of \fIMH\fR is given for users of +the system. For those who do not intend to use the system, this description +gives a general idea of what a message system is like. The system involves +some new ideas about how large subsystems can be constructed. +.pp +The interesting and unusual features of \fIMH\fR include the +following: The user command interface to \fIMH\fR is the UNIX \*(lqshell\*(rq +(the standard UNIX command interpreter). Each separable +component of message handling, such as message composition or +message display, is a separate command. Each program is driven from +and updates a private user environment, which is stored as a file +between program invocations. This private environment also contains +information to \*(lqcustom tailor\*(rq \fIMH\fR to the individual's tastes. +\fIMH\fR stores each message as a separate file under UNIX, and it utilizes the +tree-structured UNIX file system to organize groups of files within +separate directories or \*(lqfolders\*(rq. All of the UNIX facilities +for dealing with files and directories, such as +renaming, copying, deleting, cataloging, off-line printing, etc., are +applicable to messages and directories of messages (folders). Thus, +important capabilities needed in a message system are available in \fIMH\fR +without the need (often seen in other message systems) for code that +duplicates the facilities of the supporting operating system. +It also allows users familiar with the shell to use \fIMH\fR with minimal +effort. +.he '''' +@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@END: BSD44 +.fo '''' +.bp +.ce +.b \\s12CONTENTS\\s0 +.sp 3 +.xp y +.xp x +.bp +.\" And now the COVER sheet +.po +.325i +.ll 32P +.nf + +.sp 1.5in +.ps 24 +.vs 32 +.ft B +.ce 4 +THE RAND MH +MESSAGE HANDLING +SYSTEM: +USER'S MANUAL +.ft R +.sp .8i +.ps 20 +.vs 24 +.ce +UCI Version +.sp 0.7i +.ce 2 +Marshall T. Rose +John L. Romine +.sp 0.5i +.ce 2 +Based on the original manual by +Borden, Gaines, and Shapiro +.vs +.sp 1i +.ps 18 +.vs 22 +.ce 2 +\*(td +\*(MH diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/ADMIN.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/ADMIN.rf,v new file mode 100644 index 0000000..efee15f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/ADMIN.rf,v @@ -0,0 +1,1364 @@ +head 2.17; +access; +symbols; +locks; strict; + + +2.17 +date 95.12.06.22.42.25; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.05.19.21.48.37; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.02.06.19.25.07; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.02.04.21.12.28; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 91.01.07.16.14.24; author mh; state Exp; +branches; +next 2.12; + +2.12 +date 90.12.18.14.33.33; author mh; state Exp; +branches; +next 2.11; + +2.11 +date 90.04.09.20.28.27; author sources; state Exp; +branches; +next 2.10; + +2.10 +date 90.04.09.10.06.21; author sources; state Exp; +branches; +next 2.9; + +2.9 +date 90.04.05.15.07.43; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.04.02.14.28.11; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.03.23.15.08.48; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.03.22.11.30.42; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.03.21.10.20.06; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.20.19.59.48; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.03.20.14.25.28; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.03.16.15.55.54; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.05.14.04.11; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.28; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.06.02.11.27.07; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.17 +log +@minor fixes +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: ADMIN.rf,v 2.16 1992/05/19 21:48:37 jromine Exp jromine $ +.po +.75i +.de $c \" Major Heading printer +.ce +.b "\\s12\\n+(ch.\\ \\$1\\s0" \" 12 Point Bold Header +.(x + +\ \ \ \\n(ch.\\ \\ \\$1 +.)x +.sp 45p \" 45 point space or about 1/2 inch +.. +\".nr xs .15v \" Put index entries closer together +.(x + +Section +.)x _ +.de $0 \" Sub-Heading macro called AFTER printing the heading +.(x +.sp .3v +.ti .5i +\\$1 +.)x +.. +.de $s \" Macro to print footnote separator +\"\l'2i' \" No line drawn +.if n \ +. sp 1.3 \" But extra space to make up for it. +.. +.fc ^ ~ \" The characters ^ and ~ CANNOT BE USED +\" throughout this document except as field +\" delimiter & pad indicator! +.he ''-%-'' +.ll 32P \" 32 Picas or about 5+1/3 inch Line Length +.if n .ll 72m \" Use 72 ems for nroff +.nr ss 30p \" 30 point space before section titles +.nr fm 5v \" RAND likes bigger than normal [3v] bottom margins +.nr bm 7v \" ditto +.ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out. +.ds << <\\h!-(\\w'<'/2)!< +.ds >> >\\h!-(\\w'>'/2)!> +.ds ** \v'-3p'\s+1*\s0\v'+3p' +.so version.rf +.tp +.(l C +\fIdiscard this page\fR +.sp 4 +The RAND \fIMH\fR +Message Handling +System: +Administrator's Guide +.sp +UCI Version +.sp 2 +\*(td +\*(MH +.)l +.++ C +.+c INTRODUCTION + +.uh "Scope of this document" +.pp +This is the Administrator's Guide to \fIMH\fR. +If you don't maintain an \fIMH\fR system, +don't read this; +the information is entirely too technical. +If you are a maintainer, +then read this guide until you understand it, +follow the advice it gives, +and then forget about the guide. +.pp +Before continuing, I'll point out two facts: +.sp 2 +.(l C +\fIThis document will never contain all the information +you need to maintain MH. +.sp +Furthermore, this document will never contain everything +I know about maintaining MH.\fR +.)l +.sp 2 +\fIMH\fR, +and mailsystems in general, +are more complex than most people realize. +A combination of experience, intuition, and tenacity is required to maintain +\fIMH\fR properly. +This document can provide only guidelines for bringing up an \fIMH\fR system +and maintaining it. +There is a sufficient amount of customization possible that not all events or +problems can be forseen. + +.uh "Summary" +.pp +During \fIMH\fR generation, +you specify several configuration constants to the \fImhconfig\fR program. +These directives take into consideration such issues as hardware and +operating system dependencies in the source code. +They also factor out some major mailsystem administrative decisions +that are likely to be made consistantly at sites with more than one host. +The manual entry \fImh\-gen\fR\0(8) describes all the static configuration +directives. +.pp +However, +when you install \fIMH\fR you may wish to make some site\-specific +or host\-specific changes which aren't hardware or even software related. +Rather, they are administrative decisions. +That's what this guide is for: it describes all of the dynamically tailorable +directives. +.pp +Usually, after installing \fIMH\fR, you'll want to edit the +\fB@@(MHETCPATH)/mtstailor\fR file. +This file fine-tunes the way \fIMH\fR interacts with the message transport +system (MTS). +Section 2 talks about the MTS interface and MTS tailoring. +.pp +After that, if you're running the UCI BBoards facility, +or the POP facility, +you'll need to know how to maintain those systems. +Sections 3 and 4 talk about these. +.pp +If for some reason +you're not running an MTS that can handle both Internet and \fIUUCP\fR traffic, +you should read\-up on mail filtering in Section 5. +Although this is considered \*(lqold technology\*(rq now, +the mechanisms described in Section 5 were really quite useful when +first introduced way back in 1981. +.pp +Finally, you may want to know how to modify the \fIMH\fR source tree. +Section 6 talks (a little bit) about that. +.pp +The last two sections describe a few hidden features in \fIMH\fR, +and the configuration options that were in effect when this guide was +generated. +.pp +After \fIMH\fR is installed, you should define the address \*(lqBug\-MH\*(rq +to map to either you or the \fIPostMaster\fR at your site. +.pp +In addition, +if you want to tailor the behavior of \fIMH\fR for new users, +you can create and edit the file \fB@@(MHETCPATH)/mh.profile\fR. +When the \fIinstall-mh\fR program is run for a user, +if this file exists, it will copy it into the user's \&.mh\(ruprofile +file. + +.\" macros for the .me/.man files +.de SC +.he '\\$1(\\$2)'-%-'\\$1(\\$2)' +.bp +.(x +.ti .8i +\\$1 +.)x +.. +.de NA +.b \\s-2NAME\\s0 +.ti .5i +.. +.de SY +.sp +.b \\s-2SYNOPSIS\\s0 +.in 1i +.ti .5i +.na +.. +.de DE +.ad +.sp +.in 0 +.b \\s-2DESCRIPTION\\s0 +.sp +.fi +.in .5i +.. +.de Uh +.ad +.sp +.ti .25i +.b "\\s-2\\$1\\s0" +.sp +.fi +.. +.de Hh +.ad +.sp +.in 0 +.b "\\s-2Helpful Hints\\s0" +.sp +.fi +.in .5i +.. +.de Fi +.(b L +.ti 0 +.b \\s-2Files\\s0 +.ta \w'@@(MHETCPATH)/ExtraBigFileName 'u +.. +.de Pr +.)b +.(b L F +.ta \w'ExtraBigProfileName 'u +.ti 0 +.b "\\s-2Profile Components\\s0" +.ti .5i +.. +.de Ps +.ti .5i +.. +.de Sa +.)b +.(b L F +.ti 0 +.b "\\s-2See Also\\s0" +.br +.. +.de De +.)b +.(b L +.in .5i +.ti 0 +.b \\s-2Defaults\\s0 +.. +.de Ds +.. +.de Co +.)b +.(b L F +.ti 0 +.b \\s-2Context\\s0 +.br +.. +.de Hi +.)b +.(b L F +.ti 0 +.b \\s-2History\\s0 +.br +.. +.de Bu +.)b +.(b L F +.ti 0 +.b \\s-2Bugs\\s0 +.br +.. +.de En +.)b +.in 0 +.. + +.+c "THE MTS INTERFACE" +.pp +The file \fB@@(MHETCPATH)/mtstailor\fR customizes +certain host\-specific parameters of \fIMH\fR +related primarily to interactions with the transport system. +The parameters in this file override the compiled\-in defaults given during +\fIMH\fR configuration. +Rather than recompiling \fIMH\fR on each host to make minor customizations, +it is easier simply to modify the \fBmtstailor\fR file. +All hosts at a given site normally use the same \fBmtstailor\fR file, +though this need not be the case. +.pp +It is a good idea to run the \fIconflict\fR\0(8) program each morning +under \fIcron\fR. +The following line usually suffices: + +.ti +.5i +00 05 * * * @@(MHETCPATH)/conflict -mail PostMaster + +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mh-tailor.me +.so mh-mts.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "BBOARDS" +.pp +The UCI BBoards facility has two aspects: message reading, and +message delivery. The configuration directives applicable to +BBoards are \*(lqbboards: on/off/pop/nntp\*(rq and +\*(lqbbdelivery: on/off\*(rq. +.uh "BBoard Delivery" +.pp +If you enabled BBoards delivery (\*(lqbbdelivery: on\*(rq) +during configuration, +then the initial environment for bboards delivery +was set\-up during installation. +A BBoard called \*(lqsystem\*(rq is established, +which is the BBoard for general discussion. +.pp +To add more BBoards, become the \*(lqbboards\*(rq user, +and edit the \fB@@(BBHOME)/BBoards\fR file. +The file \fBsupport/bboards/Example\fR is a copy of the +\fB@@(BBHOME)/BBoards\fR file that we use at UCI. +When you add a BBoard, +you don't have to create the files associated with it, +the BBoards delivery system will do that automatically. +.pp +Private BBoards may be created. +To add the fictitious private BBoard \*(lqhacks\*(rq, +add the appropriate entry to the BBoards file, +create the empty file \fB@@(BBHOME)/hacks.mbox\fR (or whatever), +change the mode of this file to 0640, +and change the group of the file to be the groupid of the people that you +want to be able to read it. +Also be sure to add the \*(lqbboards\*(rq user to this group +(in \fB/etc/group\fR), +so the archives can be owned correctly. +.pp +By using the special INVIS flag for a BBoard, +special purpose BBoards may be set\-up which are invisible to the \fIMH\fR +user. +For example, +if a site distributes a BBoard both locally to a number of machines and to a +number of distant machines. +It might be useful to have two distribution lists: +one for all machines on the list, and the other for local machines only. +This is actually very simple to do. +For the main list, +put the standard entry of information in the \fB@@(BBHOME)/BBoards\fR file, +with the complete distribution list. +For the local machines list, +and add a similar entry to the \fB@@(BBHOME)/BBoards\fR file. +All the fields should be the same except three: +the BBoard name should reflect a local designation (e.g., \*(lql\-hacks\*(rq), +the distribution list should contain only machines at the local site, +and the flags field should contain the INVIS flag. +Since the two entries share the same primary and archive files, +messages sent to either list are read by local users, +while only thoses messages sent to the main list are read by all users. +.pp +Two automatic facilities for dealing with BBoards exist: +automatic archiving and automatic aliasing. +The file \fBsupport/bboards/crontab\fR contains some entries that you +should add to your \fB/usr/lib/crontab\fR file to run the specified programs +at times that are convenient for you. +The \fBbboards.daily\fR file is run once a day and generates an alias file +for \fIMH\fR. +By using this file, users of \fIMH\fR can use, for example, +\*(lqunix\-wizards\*(rq instead of \*(lqunix\-wizards@@brl\-vgr\*(rq +when they want to send a message to the \*(lqunix\-wizards\*(rq +discussion group. +This is a major win, since you just have to know the name of the group, +not the address where it's located. +.pp +The \fBbboards.weekly\fR file is run once a week and handles old +messages (those received more than 12 days ago) in the BBoards area. +In short, +those BBoards which are marked for automatic archiving +will have their old messages placed in the \fB@@(BBHOME)/archive/\fR area, +or have their old messages removed. +Not only does this make BBoards faster to read, +but it conveniently partitions the new messages from the old messages +so you can easily put the old messages on tape and then remove them. +It turns out that this automatic archiving capability is also a major +win. +.pp +At UCI, +our policy is to save archived messages on tape (every two months or so). +We use a program called \fIbbtar\fR to implement our particular policy. +Since some BBoards are private (see above), +we save the archives on two tapes: +one containing the world\-readable archives +(this tape is read-only accessible to all users by calling the operator), +and the other containing the non\-world\-readable ones +(this tape is kept locked\-up somewhere). +.uh "BBoards with the POP" +.pp +If you configured \fIMH\fP with \*(lqbboards: pop\*(rq and \*(lqpop: on\*(rq, +then the \fIMH\fR user is allowed to read BBoards on a server machine +instead of the local host (thus saving disk space). +For completely transparent behavior, +the administrator may set certain variables in the \fBmtstailor\fR file +on the client host. +The variable \*(lqpopbbhost\*(rq indicates the host where BBoards are +kept +(it doesn't have to be the POP service host, +but this host must run both a POP server and the BBoards system). +The variable \*(lqpopbbuser\*(rq indicates the guest account on this host +for BBoards. +This username should not be either the POP user or the BBoards user. +Usually the anonymous FTP user (ftp) is the best choice. +Finally, the variable \*(lqpopbblist\*(rq indicates the name of a file which +contains a list of hosts (one to a line, official host names only) which +should be allowed to use the POP facility to access BBoards via the guest +account. +(If the file is not present, then no check is made.) +.pp +The \*(lqpopbbuser\*(rq variable should be set on both the client and service +host. +The \*(lqpopbbhost\*(rq variable need be set only on the client host +(the value, of course, is the name of the service host). +The \*(lqpopbblist\*(rq variable need be set only on the service host. +.pp +Finally, +on the client host, +if a POP service host is not explicitly given by the user +(i.e., \*(lqpopbbhost\*(rq is implicitly used), +then \fIbbc\fR will explicitly check the local host prior to contacting +the service host. +This allows each POP client host to have a few local BBoards +(e.g., each host could have one called \*(lqsystem\*(rq), +and then have the POP service host used for all the rest +(a site\-wide BBoard might be known as \*(lqgeneral\*(rq). +.uh "BBoards with the NNTP" +.pp +If you configured \fIMH\fP with \*(lqbboards: nntp\*(rq and \*(lqpop: on\*(rq, +then +the \fIMH\fR user is allowed to read the Network News on a +server machine using the standard \fIbbc\fR command. +For completely transparent behavior, +the administrator may set the \*(lqnntphost\*(rq variable in the +\fBmtstailor\fR file to indicate the host where the Network News is kept. +The \*(lqnntphost\*(rq variable should be set only on the client host +Finally, +on the client host, +if an NNTP service host is not explicitly given by the user +(i.e., \*(lqnntphost\*(rq is implicitly used), +then \fIbbc\fR will explicitly check the local host prior to contacting +the service host. +This allows each NNTP client host to have a few local BBoards +(e.g., each host could have one called \*(lqsystem\*(rq), +and then have the NNTP service host used for to read the Network News. +.pp +Reading BBoards via the POP and via the NNTP are mutually exclusive. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.po -.50i +.so bboards5.me +.so bbaka.me +.so bbexp.me +.so bboards8.me +.so bbtar.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "POP" +.pp +For POP (Post Office Protocol) client hosts, +you need to edit the \fB@@(MHETCPATH)/mtstailor\fR file to know about two +hosts: +the SMTP service host and the POP service host. +Normally, these are the same. +Change the \*(lqlocalname\*(rq field of the \fBmtstailor\fR file +of \fIMH\fR in the file to be the name of the POP service host. +This makes replies to mail generated on the POP client host possible, +since \fIMH\fR will consider use the hostname of the POP service host as the +local hostname for outgoing mail. +Also set the value of \*(lqpophost\*(rq to this value. +This tells \fIinc\fR and \fImsgchk\fR to use POP instead of looking for mail +locally. +Finally, +make sure the value of \*(lqservers\*(rq includes the name of the SMTP +service host. +The recommended value for \*(lqservers\*(rq is: + +.ti +.5i +servers:\ SMTP\-service\-host localhost \\01localnet +.pp +If you want more information on the Post Office Protocol used by \fIMH\fR, +consult the files \fBsupport/pop/rfc1081.txt\fP and +\fBsupport/pop/rfc1082.txt\fP which describe the \fIMH\fP version of +the POP: POP3. +.pp +For POP service hosts, +you need to run a daemon, \fIpopd\fR\0(8). +The daemon should start at multi\-user boot time, +so adding the lines: +.sp +.nf +.in +.5i +if [ \-f /etc/popd ]; then + /etc/popd & echo \-n ' pop' >/dev/console +fi +.in -.5i +.fi +.sp +to the \fB/etc/rc.local\fR file is sufficient. +.pp +The port assigned to the POP3 protocol is \*(lq110\*(rq. +For historical reasons, many sites are using port \*(lq109\*(rq +which is the port assigned to the \*(lqPOP\*(rq (version 1 and 2) protocol. +The configuration option \*(lqPOPSERVICE\*(rq is the name of the +port number that \fIMH\fP POP will try to use, and defaults to the +name \*(lqpop\*(rq. +.pp +To generate \fIMH\fP to use newer assigned port number, +in your \fIMH\fP config file, add: +.sp +.ti +.5i +options POPSERVICE='\*(lqpop3\*(rq' +.sp +And on both the POP client and service hosts, +you need to define the port that the POP service uses. +Add the line: +.sp +.nf +.in +.5i +pop3 110/tcp +.in -.5i +.fi +.sp +to the \fB/etc/services\fR file (if it's not already there). +.pp +There are two ways to administer POP: +In \*(lqnaive\*(rq mode, +each user-id in the \fIpasswd\fR\0(5) file is considered a POP subscriber. +No changes are required for the mailsystem on the POP service host. +However, +this method requires that each POP subscriber have an entry in the password +file. +The POP server will fetch the user's mail from wherever maildrops are kept on +the POP service host. +This means that if maildrops are kept in the user's home directory, +then each POP subscriber must have a home directory. +.pp +In \*(lqsmart\*(rq mode +(enabled via \*(lqDPOP\*(rq being given as a configuration option), +the list of POP subscribers and the list of +login users are completely separate name spaces. +A separate database (simple file similar to the \fIBBoards\fR\0(5) file) +is used to record information about each POP subscriber. +Unfortunately, +the local mailsystem must be changed to reflect this. +This requires two changes (both of which are simple): +First, +the aliasing mechanism is augmented so that POP subscriber addresses +are diverted to a special delivery mechanism. +\fIMH\fR comes with a program, \fIpopaka\fR\0(8), +which generates the additional information to be put in the mailsystem's +alias file. +Second, +a special POP channel (for MMDF-II) or POP mailer (for SendMail) +performs the actual delivery (\fImh.6\fR supplies both). +All it really does is just place the mail in the POP spool area. +.pp +These two different philosophies are not compatible on the same POP service +host: one or the other, but not both may be run. +Clever mailsystem people will note that +the POP mechanism is really a special case of the more general +BBoards mechanism. +.pp +In addition, there is one user-visible difference, +which the administrator controls the availability of. +The difference is whether the POP subscriber must supply a password to the POP +server: +The first method uses the standard ARPA technique of sending a username and a +password. +The appropriate programs (\fIinc\fR, \fImsgchk\fR, and possibly \fIbbc\fR\0) +will prompt the user for this information. +.pp +The second method +(which is enabled via \*(lqRPOP\*(rq being given as a configuration option) +uses the Berkeley UNIX reserved port method for authentication. +This requires that the two or three mentioned above programs be +\fIsetuid\fR to root. +(There are no known holes in any of these programs.) +.pp +To add a POP subscriber, +for the first method, one simply follows the usual procedures for adding a +new user, which eventually results in adding a line to the \fIpasswd\fR\0(5) +file; +for the second method, one must edit the POP database file +(kept in the home directory of the POP user), +and then run the \fIpopaka\fR program. +The output of this program is placed in the aliases file for the transport +system (e.g., \fB/usr/lib/aliases\fR for SendMail). +.pp +Authentication for POP subscribers differs +depending on the two methods. +When the user supplies a password for the POP session: +under the first method, +the contents of the password field for the user's entry in the +\fIpasswd\fR\0(5) is consulted; +under the second method, +the contents of the password field for the subscriber's entry in the +\fIpop\fR\0(5) file is consulted. +(To set this field, the \fIpopwrd\fR\0(8) program is used.) +.pp +If you are allowing RPOP, +under the first method, +the user's \fI\&.rhosts\fR file is consulted; +under the second method, +the contents of the network address field for the subscriber's entry +in the \fIpop\fR\0(5) file is consulted. +.pp +In addition, +a third authentication scheme is available. +When the APOP configuration option is given, +e.g., +.sp +.ti +.5i +options APOP='\*(lq/etc/pop.auth\*(rq' +.sp +In this case, +the server also allows a client to supply authentication +credentials to provide for origin authentication and reply protection, +but which do not involve sending a password in the clear over the network. +A POP authorization DB, +having as its name the value of APOP configuration option, +is used to keep track of this information. +This file is created and manipulated by the \fIpopauth\fR\0(8) program. +Because this file contains secret information, +it must be protected mode 0600 and owned by the super-user. +Hence, +your first step after installing the software is to issue +.sp +.ti +.5i +# popauth -init +.sp +which creates and initalizes the POP authorization DB. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.po -.50i +.so pop5.me +.so pop8.me +.so popaka.me +.so popauth.me +.so popd.me +.so popwrd.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "MAIL FILTERING" +.pp +There was a time when users on a UNIX host might have had two maildrops: +one from \fIMMDF\fR and the other from \fIUUCP\fR. +This was really a bad problem since it prevented using a single +user\-interface on all of your mail. +Furthermore, +if you wanted to send a message to addresses on different mailsystems, +you couldn't send just one message. +To solve all these problems, +the notion of \fImail filtering\fR was developed that allowed sophisticated +munging and relaying between the two pseudo\-domains. +.pp +\fIMH\fR will perform mail filtering, transparently, if given the MF +configuration option. +However, +with the advent of \fISendMail\fR and further maturation of \fIMMDF\fR, +\fIMH\fR doesn't really need to do this anymore, +since these message transport agents handle it. +.pp +The mail\-filtering stuff is too complicated. +It should be simpler, but, protocol translation really \fIis\fR difficult. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mf.me +.so rmail.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "MH HACKING" +.pp +Finally, here's a little information on modifying the \fIMH\fR sources. +A word of advice however: +.sp 2 +.ce +.b \s+4DON'T\s0 +.sp 2 +.lp +If you really want new \fIMH\fR capabilities, +write a shell script instead. +After all, +that's what UNIX is all about, isn't it? +.pp +Here's the organization of the \fIMH\fR source tree. +.sp +.nf +.in +.5i +.ta \w'miscellany/ 'u +\w'sendmail/ 'u +conf/ configurator tree +config/ compiled configuration constants +dist/ distributor +doc/ manual entries +h/ include files +miscellany/ various sundries +mts/ MTS\-specific areas + mh/ standalone delivery + mmdf/ MMDF\-I, MMDF\-II + sendmail/ SendMail, SMTP +papers/ papers about \fIMH\fR +sbr/ subroutines +support/ support programs and files + bboards/ UCI BBoards facility + general/ templates + pop/ POP facility +tma/ Trusted Mail Agent (not present in all distributions) +uip/ programs +zotnet/ MTS\-independent areas + bboards/ UCI BBoards facility + mf/ Mail Filtering + mts/ MTS constants + tws/ date routines +.re +.in -.5i +.fi +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mh-hack.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "HIDDEN FEATURES" +.pp +The capabilities discussed here should not be used on a production basis, +as they are either experimental, are useful for debugging \fIMH\fR, or +are otherwise not recommended. + +.uh "Debug Facilities" +.pp +The \fImark\fR command has a `\-debug' switch which essentially prints out +all the internal \fIMH\fR data structures for the folder you're looking at. +.pp +The \fIpost\fR command has a `\-debug' switch which does everything but +actually post the message for you. +Instead of posting the draft, it sends it to the standard output. +Similarly, +\fIsend\fR has a `\-debug' switch which gets passed to \fIpost\fR. +.pp +Some \fIMH\fR commands look at envariables to determine debug\-mode operation +of certain new facilities. +The current list of envariables is: +.sp +.nf +.in +.5i +.ta \w'MHLPOPDEBUG 'u +^MHFDEBUG~^OVERHEAD facility +^MHLDEBUG~^mhl +^MHPDEBUG~^pick +^MHPOPDEBUG~^POP transactions +^MHVDEBUG~^window management transactions +^MHWDEBUG~^alternate\-mailboxes +.re +.in -.5i +.fi + +.uh "Forwarding Mail" +.pp +The \fIforw\fR and \fImhl\fR commands have two switches, +`\-dashmunging' and `\-nodashmunging' which enable or disable +the prepending of `\-\ ' in forwarded messages. To use +`\-nodashmunging', you must use an \fImhl\fR filter file. + +.uh "Send" +.pp +The \fIsend\fR command has two switches, `\-unique' and `\-nounique', +which are useful to certain individuals who, for obscure reasons, +do not use draft\-folders. +.pp +\*(lqDistribution Carbon Copy\*(rq addresses may be specified in +the \fIDcc:\fR header. +This header is removed before posting the message,and a copy of the message +is distributed to each listed address. +This could be considered a form of Blind +Carbon Copy which is best used for sending to an address which +would never reply (such as an auto\-archiver). + +.uh "Posting Mail" +.pp +If you're running a version of \fIMH\fR which talks directly to an +\fISMTP\fR server (or perhaps an advanced \fIMMDF\fR submit process), +there are lots of interesting switches for your amusement which \fIsend\fR +and \fIpost\fR understand: +.nf +.in +.5i +.ta \w'-server host 'u +^-mail~^Use the \fIMAIL\fR command (default) +^-saml~^Use the \fISAML\fR command +^-send~^Use the \fISEND\fR command +^-soml~^Use the \fISOML\fR command +^-snoop~^Watch the \fISMTP\fR transaction +^-client host~^Claim to be \*(lqhost\*(rq when posting mail +^-server host~^Post mail with \*(lqhost\*(rq +.re +.in -.5i +.fi +.pp +The last switch is to be useful when \fIMH\fR resides on small +workstations (or PC:s) in a network\-\-they can post their outgoing mail with +a local relay, +and reduce the load on the local system. +On POP client hosts, +the `\-server\ host' switch is defaulted appropriately using the SMTP +search\-list mechanism. +The \fIwhom\fR command understands the last three switches. +@@BEGIN: TMA + +.+c "TRUSTED MAIL" +.pp +If you are licensed to run the TTI Trusted Mail Agent (TMA), +here are three utility programs to manage the Key Distribution Server (KDS): +\fIkdsc\fR, \fIkdsd\fR, and \fIkdser\fR. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.po -.50i +.so kdsc.me +.so kdsd.me +.so kdser.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +@@END: TMA + +.+c "CONFIGURATION OPTIONS" +.pp +This manual was generated with the following configuration options in +effect: +.sp 2 +.hl +.nf +.in +1.25i +.ta \w'BBoards Home Directory 'u +^Generation Date~^\*(td +^Primary Directory~^@@(MHBINPATH)/ +^Secondary Directory~^@@(MHETCPATH)/ +^Maildrop Location~^@@(MHDROPLOC) +@@BEGIN: BBSERVER +^BBoards Support~^Enabled +^BBoards Home Directory~^@@(BBHOME) +@@END: BBSERVER +@@BEGIN: POP +^POP Support~^Enabled +@@END: POP +@@BEGIN: BPOP +^BBoards on POP~^Enabled +@@END: BPOP +@@BEGIN: NNTP +^BBoards using NNTP~^Enabled +@@END: NNTP +@@BEGIN: TMA +^Trusted Mail Support~^Enabled +@@END: TMA +@@BEGIN: SMTP +.ds SM with SMTP +@@END: SMTP +@@BEGIN: MMDFIMTS +^Transport System~^MMDF-I \*(SM +@@END: MMDFIMTS +@@BEGIN: MMDFIIMTS +^Transport System~^MMDF-II \*(SM +@@END: MMDFIIMTS +@@BEGIN: SENDMTS +^Transport System~^SendMail \*(SM +@@END: SENDMTS +@@BEGIN: MHMTS +^Transport System~^Stand\-Alone Delivery +@@END: MHMTS +.re +.in -1.5i +.fi +.hl +.\" table of contents +.he '''' +.fo '''' +.bp +.ce +.b \\s12CONTENTS\\s0 +.sp 3 +.xp y +.xp x +.bp +.\" And now the COVER sheet +.po +.325i +.ll 32P +.nf + +.sp 1.5in +.ps 24 +.vs 32 +.ft B +.ce 4 +THE RAND MH +MESSAGE HANDLING +SYSTEM: +ADMINISTRATOR'S GUIDE +.ft R +.sp .8i +.ps 20 +.vs 24 +.ce +UCI Version +.sp 0.7i +.ce 2 +Marshall T. Rose +.sp 0.5i +.ft I +.ce 3 +First Edition: +MH Classic +\s-2(Not to be confused with a well\-known soft drink)\s+2 +.ft R +.vs +.sp 1i +.ps 18 +.vs 22 +.ce 2 +\*(td +\*(MH +@ + + +2.16 +log +@typos +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: ADMIN.rf,v 2.15 1992/02/06 19:25:07 jromine Exp jromine $ +d494 1 +a494 1 +.in \-.5i +d519 1 +a519 1 +.in \-.5i +@ + + +2.15 +log +@make .Uh use smaller font +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: ADMIN.rf,v 2.14 1992/02/04 21:12:28 jromine Exp jromine $ +a593 1 +whilst, +a601 1 +whilst, +a606 1 +as of MH 6.7.3, +d614 2 +a615 1 +then the server also allows a client to supply authentication +@ + + +2.14 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: ADMIN.rf,v 2.13 1991/01/07 16:14:24 mh Exp jromine $ +d178 1 +a178 1 +.b "\\$1" +@ + + +2.13 +log +@add Uh macro +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: ADMIN.rf,v 2.12 90/12/18 14:33:33 mh Exp Locker: mh $ +d501 1 +a501 1 +which is the port assigned to the \*(lqPOP\*(rq (ver. 1) protocol. +d588 45 +a632 6 +These two different philosophies are compatible on the same POP service host: +to selectively disable RPOP for hosts which aren't trusted, +either modify the \fI\&.rhosts\fR file in the case of POP subscribers being +UNIX logins, +or zero the contents of network address field of the \fIpop\fR\0(5) file for +the desired POP subscribers. +d642 1 +@ + + +2.12 +log +@-nodashmunging +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: ADMIN.rf,v 2.11 90/04/09 20:28:27 sources Exp Locker: mh $ +d173 8 +@ + + +2.11 +log +@pop3 +fix +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: ADMIN.rf,v 2.10 90/04/09 10:06:21 sources Exp Locker: sources $ +d709 2 +a710 1 +as they are either experimental or are useful for debugging \fIMH\fR. +d744 2 +a745 1 +the prepending of `\-\ ' in forwarded messages. +@ + + +2.10 +log +@POPSERVICE + +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: ADMIN.rf,v 2.9 90/04/05 15:07:43 sources Exp Locker: sources $ +d501 3 +a503 6 +.nf +.in +.5i +options POPSERVICE='"pop3"' +fi +.in \-.5i +.fi +d510 1 +a510 1 +pop3 110/tcp # experimental +@ + + +2.9 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d280 9 +a288 2 +If you enable the UCI BBoards facility during configuration, +then the initial environment for bboards +d369 1 +d371 2 +a372 3 +If POP is enabled with BBoards, +a third directive, POPBBoards, may be enabled. +This allows the \fIMH\fR user to read BBoards on a server machine +d407 1 +d409 3 +a411 3 +If POPBBoards is not enabled with BBoards, +the directive NNTPBBoards, may be enabled. +This allows the \fIMH\fR user to read the Network News on a +d427 1 +a427 1 +The NNTPBBoards and POPBBoards directives are mutually exclusive. +d472 3 +a474 2 +consult the file \fBsupport/pop/pop.rfc\fR, +which is the \fIMH\fR revision to RFC918. +d490 18 +a507 2 +In addition, +on both the POP client and service hosts, +d509 1 +a509 1 +Add the line +d513 1 +a513 1 +pop 109/tcp # experimental +@ + + +2.8 +log +@RAND fixes +@ +text +@d2 1 +@ + + +2.7 +log +@document forw/mhl -[no]dashmunging +@ +text +@d36 1 +a36 1 +.nr fm 5v \" Rand likes bigger than normal [3v] bottom margins +d47 1 +a47 1 +The Rand \fIMH\fR +@ + + +2.6 +log +@put things back, do .NA stuff another way +@ +text +@d716 6 +@ + + +2.5 +log +@changes for "bbhome: none" +@ +text +@a144 6 +.de TH \" backward -man compatibility +.SC \\$1 \\$2 +.. +.de SH \" backward -man compatibility +\\$1 +.. +@ + + +2.4 +log +@fixup for config.sed +@ +text +@d803 1 +a803 1 +@@BEGIN: BBOARDS +d806 1 +a806 1 +@@END: BBOARDS +@ + + +2.3 +log +@add .TH and .SH macros for makewhatis (getNAME.c) +@ +text +@d270 1 +a270 1 +.fo '[mh.6]'MH'UCI version' +d429 1 +a429 1 +.fo '[mh.6]'MH'UCI version' +d573 1 +a573 1 +.fo '[mh.6]'MH'UCI version' +d615 1 +a615 1 +.fo '[mh.6]'MH'UCI version' +d677 1 +a677 1 +.fo '[mh.6]'MH'UCI version' +d775 1 +a775 1 +.fo '[mh.6]'MH'UCI version' +@ + + +2.2 +log +@document Dcc: +@ +text +@d145 6 +@ + + +2.1 +log +@*** empty log message *** +@ +text +@d721 8 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d258 1 +a258 1 +00 05 * * * /usr/uci/lib/mh/conflict -mail PostMaster +@ + + +1.1 +log +@Initial revision +@ +text +@d399 20 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/MH.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/MH.rf,v new file mode 100644 index 0000000..c5b4e57 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/MH.rf,v @@ -0,0 +1,3080 @@ +head 1.30; +access; +symbols; +locks; strict; + + +1.30 +date 95.12.06.01.27.51; author jromine; state Exp; +branches; +next 1.29; + +1.29 +date 95.12.05.23.58.57; author jromine; state Exp; +branches; +next 1.28; + +1.28 +date 95.12.05.19.35.25; author jromine; state Exp; +branches; +next 1.27; + +1.27 +date 94.04.15.23.12.03; author jromine; state Exp; +branches; +next 1.26; + +1.26 +date 92.12.02.19.03.15; author jromine; state Exp; +branches; +next 1.25; + +1.25 +date 92.10.28.17.02.04; author jromine; state Exp; +branches; +next 1.24; + +1.24 +date 92.10.28.17.00.15; author jromine; state Exp; +branches; +next 1.23; + +1.23 +date 92.10.27.20.09.23; author jromine; state Exp; +branches; +next 1.22; + +1.22 +date 92.02.06.19.25.07; author jromine; state Exp; +branches; +next 1.21; + +1.21 +date 92.02.06.17.14.39; author jromine; state Exp; +branches; +next 1.20; + +1.20 +date 92.02.06.00.17.16; author jromine; state Exp; +branches; +next 1.19; + +1.19 +date 92.02.04.21.12.43; author jromine; state Exp; +branches; +next 1.18; + +1.18 +date 92.02.04.00.04.09; author jromine; state Exp; +branches; +next 1.17; + +1.17 +date 92.01.31.16.40.45; author jromine; state Exp; +branches; +next 1.16; + +1.16 +date 92.01.31.16.40.07; author jromine; state Exp; +branches; +next 1.15; + +1.15 +date 91.01.25.15.49.34; author mh; state Exp; +branches; +next 1.14; + +1.14 +date 91.01.07.16.13.54; author mh; state Exp; +branches; +next 1.13; + +1.13 +date 90.12.27.15.06.28; author mh; state Exp; +branches; +next 1.12; + +1.12 +date 90.12.26.16.54.56; author mh; state Exp; +branches; +next 1.11; + +1.11 +date 90.04.10.21.20.18; author sources; state Exp; +branches; +next 1.10; + +1.10 +date 90.04.09.20.20.29; author sources; state Exp; +branches; +next 1.9; + +1.9 +date 90.04.08.19.40.46; author sources; state Exp; +branches; +next 1.8; + +1.8 +date 90.04.08.19.35.49; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.04.05.15.10.54; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.02.14.28.43; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.30.44; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.21.10.20.17; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.59.40; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.14.25.01; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.14.13.13; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.30 +log +@reformat "OBTAINING MH" (nee HOW TO GET MH) section +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: MH.rf,v 1.29 1995/12/05 23:58:57 jromine Exp jromine $ +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.po +.75i +.de $c \" Major Heading printer +.ce +.b "\\s12\\n+(ch.\\ \\$1\\s0" \" 12 Point Bold Header +.(x + +\ \ \ \\n(ch.\\ \\ \\$1 +.)x +.sp 45p \" 45 point space or about 1/2 inch +.. +\".nr xs .15v \" Put index entries closer together +.(x + +Section +.)x _ +.de $0 \" Sub-Heading macro called AFTER printing the heading +.(x +.sp .3v +.ti .5i +\\$1 +.)x +.. +.de $s \" Macro to print footnote separator +\"\l'2i' \" No line drawn +.if n \ +. sp 1.3 \" But extra space to make up for it. +.. +.fc ^ ~ \" The characters ^ and ~ CANNOT BE USED +\" throughout this document except as field +\" delimiter & pad indicator! +.he ''-%-'' +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.ll 32P \" 32 Picas or about 5+1/3 inch Line Length +.if n .ll 72m \" Use 72 ems for nroff +.nr ss 30p \" 30 point space before section titles +.nr fm 5v \" RAND likes bigger than normal [3v] bottom margins +.nr bm 7v \" ditto +.ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out. +.ds << <\\h!-(\\w'<'/2)!< +.ds >> >\\h!-(\\w'>'/2)!> +.ds ** \v'-3p'\s+1*\s0\v'+3p' +.so version.rf +.tp +.(l C +\fIdiscard this page\fR +.sp 4 +The RAND \fIMH\fR +Message Handling System: +User's Manual +.sp +UCI Version +.sp 2 +\*(td +\*(MH +.)l +.++ C +.+c INTRODUCTION +.pp +Although people can travel cross-country in hours and can +reach others by telephone in seconds, communications still depend +heavily upon paper, most of which is distributed through the mails. +.pp +There are several major reasons for this continued dependence on +written documents. +First, a written document may be proofread +and corrected prior to its distribution, giving the author +complete control over his words. +Thus, a written document is +better than a telephone conversation in this respect. +Second, +a carefully written document is far less likely to be +misinterpreted or poorly translated than a phone conversation. +Third, a signature offers reasonable verification of authorship, +which cannot be provided with media such as telegrams. +.pp +However, the need for +.u fast , +accurate, and reproducible document distribution is +obvious. +One solution in widespread use is the telefax. +Another +that is rapidly gaining popularity is electronic mail. +Electronic mail is similar to telefax in that the data to be sent +are digitized, transmitted via phone lines, and +turned back into a document at the receiver. +The advantage of +electronic mail is in its compression factor. +Whereas a telefax +must scan a page in very fine lines and send all of the black and +white information, electronic mail assigns characters fixed +codes which can be transmitted as a few bits of information. +Telefax presently has the advantage of being able to transmit an +arbitrary page, including pictures, but electronic mail is +beginning to deal with this problem. +Electronic mail also integrates well +with current directions in office automation, allowing documents +prepared with sophisticated equipment at one site to be quickly +transferred and printed at another site. +.pp +Currently, most electronic mail is intraorganizational, +with mail transfer remaining within one computer. +As computer +networking becomes more common, however, it is becoming more feasible to +communicate with anyone whose computer can be linked to your +own via a network. +.pp +The pioneering efforts on general-purpose electronic mail +were by organizations using the DoD ARPAnet[1]. +The capability to send messages between computers existed before +the ARPAnet was developed, but it was used only in limited ways. +With the advent of the +ARPAnet, tools began to be developed which made it convenient for +individuals or organizations to distribute messages +over broad geographic areas, using +diverse computer facilities. +The interest and activity in +message systems has now reached such proportions that steps +have been taken within the DoD to coordinate and +unify the development of military message systems. +The use of electronic mail is expected to increase +dramatically in the next few years. +The utility of such systems +in the command and control and intelligence environments is +clear, and applications in these areas will probably lead the +way. +As the costs for sending and handling electronic messages +continue their rapid decrease, such uses can be +expected to spread rapidly into other areas and, of course, will +not be limited to the DoD. +.pp +A message system provides tools that help users (individuals +or organizations) deal with messages in various ways. +Messages +must be composed, sent, received, stored, retrieved, +forwarded, and replied to. +Today's best interactive computer +systems provide a variety of word-processing and information +handling capabilities. +The message handling facilities should be +well integrated with the rest of the system, so as to be a +graceful extension of overall system capability. +.pp +The message system described in this report, \fIMH\fR, provides most of the +features that can be found in other message systems and also +incorporates some new ones. +It has been built on the UNIX time-sharing +system[2], a popular operating system for the DEC PDP-11\** +and VAX-11 classes of computers. +.(f +\** PDP and VAX are trademarks of Digital Equipment Corporation. +.)f +A \*(lqsecure\*(rq operating +system similar to UNIX is currently being developed[3], +and that system will also run \fIMH\fR. +.pp +This report provides a complete description of \fIMH\fR and +thus may serve as a user's manual, although parts of the report +will be of interest to non-users as well. +Sections 2 and 3, the +Overview and Tutorial, present the key +ideas of \fIMH\fR and will give those not familiar with message systems +an idea of what such systems are like. +.pp +\fIMH\fR consists of a set of commands which use some special +files and conventions. +The final section is divided into three parts. +The first part covers the information +a user needs to know in addition to the +commands. +Then, each of the \fIMH\fR commands is described in detail. +Finally, other obscure details are revealed. +A summary of the commands is given in Appendix A, +and the syntax of message sequences is given in Appendix B. +.pp +A novel approach has been taken in the design of \fIMH\fR. +Instead of creating a large subsystem that appears as a single +command to the user (such as MS[4]), +\fIMH\fR is a collection of separate commands +which are run as separate programs. +The file and directory +system of UNIX are used directly. +Messages are stored as +individual files (datasets), and collections of them are grouped +into directories. +In contrast, most other message systems store +messages in a complicated data structure within a monolithic +file. +With the \fIMH\fR approach, UNIX commands can be +interleaved with commands invoking the functions of the message +handler. +Conversely, existing UNIX commands +can be used in connection with messages. +For +example, all the usual UNIX editing, text-formatting, and printing +facilities can be applied directly to individual messages. +MH, +therefore, consists of a relatively small amount of new code; it +makes extensive use of other UNIX software to provide the +capabilities found in other message systems. +.+c OVERVIEW +.pp +There are three main aspects of \fIMH\fR\0: the way messages are +stored (the message database), the user's profile (which directs +how certain actions of the message handler take place), and the +commands for dealing with messages. +.pp +Under \fIMH\fR, each message is stored as a separate file. +A user +can take any action with a message that he could with an ordinary +file in UNIX. +A UNIX directory in which messages are stored is +called a folder. +Each folder contains some standard entries to support +the message-handling functions. +The messages in a folder have numerical +names. +These folders (directories) +are entries in a particular directory path, described in +the user profile, through which \fIMH\fR can find message folders. +Using the UNIX \*(lqlink\*(rq facility, it is possible for one copy of a +message to be \*(lqfiled\*(rq in more than one folder, providing a +message index facility. +Also, using the UNIX tree-structured +file system, it is possible to have a folder within a folder, +nested arbitrarily deep, +and have the full power of the \fIMH\fR commands available. +.pp +Each user of \fIMH\fR has a user profile, a file in +his \fB$HOME\fR (initial login) directory called \fI\&.mh\(ruprofile\fR. +This profile contains several +pieces of information used by the \fIMH\fR commands: +a path name to the directory that contains the message folders +and parameters that tailor \fIMH\fR commands +to the individual user's requirements. +There is also another file, +called the user context, +which contains information concerning which folder the user last referenced +(the \*(lqcurrent\*(rq folder). +It also contains +most of the necessary state information concerning how +the user is dealing with his messages, enabling \fIMH\fR to be +implemented as a set of individual UNIX commands, in contrast to the +usual approach of a monolithic subsystem. +.pp +In \fIMH\fR, incoming mail is appended +to the end of a file in a system spooling area for the user. +This area is called the mail drop directory, +and the file is called the user's mail drop. +Normally when the user logins in, +s/he is informed of new mail +(or the \fIMH\fR program \fImsgchk\fR may be run). +The user adds the new messages to his/her collection of \fIMH\fR messages +by invoking the command +\fIinc\fR. +The \fIinc\fR (incorporate) command adds the new +messages to a folder called \*(lqinbox\*(rq, assigning them names which +are consecutive integers starting with the next highest integer +available in inbox. +\fIinc\fR also produces a +\fIscan\fR summary of +the messages thus incorporated. +A folder can be compacted into a single file, +for easy storage, +by using the \fIpackf\fR command. +Also, +messages within a folder can be sorted by date and time with the \fIsortm\fR +command. + +.pp +There are four commands for examining the messages in a +folder: +\fIshow\fR, +\fIprev\fR, +\fInext\fR, +and +\fIscan\fR. +The \fIshow\fR command displays a message in a folder, +\fIprev\fR displays the message preceding the current message, and +\fInext\fR displays the message following the current message. +\fIMH\fR lets the user choose the program that displays individual messages. +A special program, \fImhl\fR, can be used to display messages according +to the user's preferences. +The \fIscan\fR command summarizes the messages in a folder, +normally producing one line per message, showing who the message is from, +the date, the subject, etc. +.pp +The user may move a message from one folder to another with +the command +\fIrefile\fR. +Messages may be removed from a folder +by means of the command +\fIrmm\fR. +In addition, a user may query +what the current folder is and may specify that a new folder +become the current folder, through the command +\fIfolder\fR. +All folders may be summarized with the \fIfolders\fR command. +A message folder (or subfolder) may be removed by means of +the command +\fIrmf\fR. +.pp +A set of messages based on content may be selected by +use of the command \fIpick\fR. +This command searches through +messages in a folder and selects those that match a given +set of criteria. +These messages are then bound to a \*(lqsequence\*(rq name for use with other +\fIMH\fR commands. +The \fImark\fR command manipulates these sequences. +.pp +There are five commands enabling the user to create new +messages and send them: +\fIcomp\fR, +\fIdist\fR, +\fIforw\fR, +\fIrepl\fR, +and +\fIsend\fR. +The \fIcomp\fR command +provides the facility for the user to compose a +new message; +\fIdist\fR redistributes mail to additional addressees; +\fIforw\fR enables the user to forward messages; and +\fIrepl\fR facilitates the generation of a reply to an incoming message. +The last three commands may optionally annotate the original message. +Messages may be arbitrarily annotated with the \fIanno\fR command. +Once a draft has been constructed by one of the four above composition +programs, +a user\-specifiable program is run to query the user as to the disposition of +the draft prior to sending. +\fIMH\fR provides the simple \fIwhatnow\fR program to start users off. +If +a message is not sent directly by one of these commands, it may +be sent at a later time using the command +\fIsend\fR. +\fIMH\fR allows the use of any UNIX editor when composing a message. +For rapid entry, a special editor, \fIprompter\fR, is provided. +For programs, a special mail-sending program, \fImhmail\fR, is provided. +.pp +\fIMH\fR supports a personal aliasing facility which gives users the +capability to considerably shorten address typein +and use meaningful names for addresses. +The \fIali\fR program can be used to query \fIMH\fR as to the expansion of a +list of aliases. +After composing a message, but prior to sending, the \fIwhom\fR command +can be used to determine exactly who a message would go to. +.pp +\fIMH\fR provides a natural interface for telling the user's shell the names +of \fIMH\fR messages and folders. +The \fImhpath\fR program achieves this capability. +.pp +@@BEGIN: BBOARDS +Finally, \fIMH\fR supports the UCI BBoards facility. +\fIbbc\fR can be used to query the status of a group of BBoards, +while \fImsh\fR can be used to read them. +@@BEGIN: BBSERVER +BBoard leaders are also well supported, with the \fIbbl\fR program. +@@END: BBSERVER +@@END: BBOARDS +The \fIburst\fR command can be used to \*(lqshred\*(rq digests of messages +into individual messages. +.pp +All of the elements summarized above +are described in more detail in the following sections. +Many of the +normal facilities of UNIX provide additional capabilities for +dealing with messages in various ways. +For example, it is +possible to print messages +on the line-printer without requiring any additional code within +\fIMH\fR\0. +Using standard UNIX facilities, any terminal output can be +redirected to a file for repeated or future viewing. +In general, +the flexibility and capabilities of the UNIX interface with the +user are preserved as a result of the integration of \fIMH\fR into the UNIX +structure. +.+c TUTORIAL +.pp +This tutorial provides a brief introduction to the \fIMH\fR commands. +It should be sufficient +to allow the user to read his mail, do some simple manipulations of +it, and create and send messages. +.pp +A message has two major pieces: the +header and the body. +The body consists of the text of the message +(whatever you care to type in). +It follows the header and is separated from +it by an empty line. +(When you compose a message, the form that appears +on your terminal shows a line of dashes after the header. +This is for +convenience and is replaced by an empty line when the message is +sent.) The header is composed of several components, including the +subject of the message and the person to whom it is addressed. +Each component starts with a name +and a colon; components must not start with a blank. +The text of the +component may take more than one line, but each continuation line must +start with a blank. +Messages typically have \*(lqTo:\*(rq, \*(lqcc:\*(rq, and +\*(lqSubject:\*(rq components. +When composing a message, you should include +the \*(lqTo:\*(rq and \*(lqSubject:\*(rq components; +the \*(lqcc:\*(rq (for people you want to send copies to) is not necessary. +.pp +The basic \fIMH\fR commands are +\fIinc\fR, +\fIscan\fR, +\fIshow\fR, +\fInext\fR, +\fIprev\fR, +\fIrmm\fR, +\fIcomp\fR, +and +\fIrepl\fR. +These are described below. + +\fIinc\fR +.pp +When you get the message \*(lqYou have mail\*(rq, type the command \fIinc\fR. +You will get a \*(lqscan listing\*(rq such as: + +.nf +.in +.5i +.ta \w'7+ 'u +\w'11/26 'u +\w'To:norm 'u +7+ \07/13 Cas revival of measurement work +8 10/\09 Norm NBS people and publications +9 11/26 To:norm question \*(<\0\fIx\fR~^will copy the message to file x. +.br +^\fIshow\fR\0|\0\fIlpr\fR~^will print the message, using the \fIlpr\fR command. +.br +^\fInext\fR~^will show the message that follows the current message. +.br +^\fIprev\fR~^will show the message previous to the current message. +.br +^\fIrmm\fR~^will remove the current message. +.br +^\fIrmm\03\fR~^will remove message 3. +.)b + +.ne 5 +\fIcomp\fR +.pp +The +\fIcomp\fR command puts you in the editor to write or edit a message. +Fill in or +delete the \*(lqTo:\*(rq, \*(lqcc:\*(rq, and \*(lqSubject:\*(rq fields, +as appropriate, and type the body of the message. +Then +exit normally from the editor. +You will be asked +\*(lqWhat now?\*(rq. +Type a carriage return to see the options. +Typing \fBsend\fR +will cause the message to be sent; typing \fBquit\fR will cause an exit +from +\fIcomp\fR, +with the message draft saved. +.pp +If you quit without sending the message, it will be saved in a file +called /Mail/draft (where is your \fB$HOME\fR directory). +You can resume editing the message later with \*(lqcomp\0\-use\*(rq; +or you can send the message later, using the \fIsend\fR command. + +.ne 4 +\fIcomp\0\-editor\0prompter\fR +.pp +This command uses a different editor and is useful for preparing +\*(lqquick and dirty\*(rq messages. +It prompts you for each component of the +header. +Type the information for that component, or type a carriage +return to omit the component. +After that, type the body of the +message. +Backspacing is the only form of editing allowed with this editor. +When the body is complete, type a carriage return followed by +(usually ). +This completes the initial preparation of the message; from then on, use +the same procedures as with +\fIcomp\fR (above). + +.ne 5 +\fIrepl\fR +.br +\fIrepl\fR\0n +.pp +This command makes up an initial message form with a header +that is appropriate for +replying to an existing message. +The message being answered is the +current message if no message number is mentioned, or n if a number +is specified. +After the header is completed, you can finish the message as in +\fIcomp\fR (above). +.pp +This is enough information to get you going using \fIMH\fR. +There are more commands, +and the commands described here have more features. +Subsequent sections +explain \fIMH\fR in complete detail. +The system is quite powerful if you +want to use its sophisticated features, but the foregoing commands +suffice for sending and receiving messages. +.pp +There are numerous additional capabilities you may wish to explore. +For example, the +\fIpick\fR command will select a subset of messages +based on specified criteria such as sender and/or subject. +Groups of +messages may be designated, as described in Sec. IV, +under \fBMessage Naming\fR. +The file \fI\&.mh\(ruprofile\fR can be used to tailor your use of +the message system to your needs and preferences, as described in Sec. IV, +under \fBThe User Profile\fR. +In general, you may +learn additional features of the system selectively, according to your +requirements, +by studying the relevant sections of this manual. +There is no need to +learn all the details of the system at once. +.+c "DETAILED DESCRIPTION" +.pp +This section describes the \fIMH\fR system in detail, including the components +of the user profile, the conventions for message naming, and some of +the other \fIMH\fR conventions. +Readers who are +generally familiar with computer systems will be able to follow +the principal ideas, although some details may be meaningful only to +those familiar with UNIX. +.uh "THE USER PROFILE" +.pp +The first time an \fIMH\fR command is issued by a new user, the system +prompts for a \*(lqPath\*(rq and creates an \fIMH\fR \*(lqprofile\*(rq. +.pp +Each \fIMH\fR user has a profile which contains tailoring +information for each individual program. +Other profile entries control the \fIMH\fR path (where folders and +special files are kept), folder and message protections, editor +selection, and default arguments for each \fIMH\fR program. +Each user of \fIMH\fR also has a context file which contains +current state information for the \fIMH\fR package +(the location of the context file is kept in the user's \fIMH\fR directory, +or may be named in the user profile). +When a folder becomes +the current folder, it is recorded in the user's context. +(Other state information is kept in the context file, +see the manual entry for \fImh\-profile\0\fR(5) for more details.) +In general, +the term \*(lqprofile entry\*(rq refer to entries in either the profile or +context file. +Users of \fIMH\fR needn't worry about the distinction, +\fIMH\fR handles these things automatically. +.pp +The \fIMH\fR profile is stored in the file \fI\&.mh\(ruprofile\fR in the +user's \fB$HOME\fR directory\**. +.(f +\** By defining the envariable \fB$MH\fR, +you can specify an alternate profile to be used by \fIMH\fR commands. +.)f +It has the format of a message without +any body. +That is, each profile entry is on one line, with a +keyword followed by a colon (:) followed by text particular to +the keyword. +.br +\(rh\ \ \& +\fIThis file must not have blank lines.\fR +.br +The keywords +may have any combination of upper and lower case. +(See the information of \fImh\-mail\fR later on in this manual +for a description of message formats.) +.pp +For the average \fIMH\fR user, the only profile entry of +importance is \*(lqPath\*(rq. +Path specifies a directory in which \fIMH\fR +folders and certain files such as \*(lqdraft\*(rq are found. +The +argument to this keyword must be a legal UNIX path that names an +existing directory. +If this path is not absolute +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the user's \fB$HOME\fR directory. +All folder and message references within +\fIMH\fR will relate to this path unless full path names are used. +.pp +Message protection defaults to 644, and folder protection to +711. +These may be changed by profile entries \*(lqMsg-Protect\*(rq +and \*(lqFolder-Protect\*(rq, respectively. +The argument to these +keywords is an octal number which is used as the UNIX file mode\**. +.(f +\** See \fIchmod\fR\0(1) in the \fIUNIX Programmer's Manual\fR\0[5]. +.)f +.pp +When an \fIMH\fR program starts running, it looks through the +user's profile for an entry with a keyword matching the program's +name. +For example, when +\fIcomp\fR is run, it looks for a \*(lqcomp\*(rq +profile entry. +If one is found, the text of the profile entry is +used as the default switch setting until all defaults are overridden +by explicit switches passed to the program as arguments. +Thus the profile +entry \*(lqcomp:\0\-form\0standard.list\*(rq would direct +\fIcomp\fR to use the +file \*(lqstandard.list\*(rq as the message skeleton. +If an explicit +form switch is given to the +\fIcomp\fR command, it will override the +switch obtained from the profile. +.pp +In UNIX, a program may exist under several names, +either by linking or aliasing. +The actual invocation name is used by an \fIMH\fR +program when scanning for its profile defaults\**. +.(f +\** Unfortunately, +the shell does not preserve aliasing information when calling a program, +hence if a program is invoked by an alias different than its name, +the program will examine the profile entry for it's name, +not the alias that the user invoked it as. +The correct solution is to create a (soft) link in your \fI$HOME/bin\fR +directory to the \fIMH\fR program of your choice. +By giving this link a different name, +you can use an alternate set of defaults for the command. +.)f +Thus, each \fIMH\fR program +may have several names by which it can be invoked, and each name +may have a different set of default switches. +For example, if +\fIcomp\fR is invoked by the name +\fIicomp\fR, +the profile entry +\*(lqicomp\*(rq will control the default switches for this invocation of +the +\fIcomp\fR program. +This provides a powerful +definitional facility for commonly used switch settings. +.pp +The default editor +for editing within +\fIcomp\fR, +\fIrepl\fR, +\fIforw\fR, +and +\fIdist\fR, +is usually \fIprompter\fR, +but might be something else at your site, +such as \fI/usr/ucb/ex\fR or \fI/bin/e\fR. +A different editor may be used by specifying +the profile entry +\*(lqEditor: \*(rq. +The argument to \*(lqEditor\*(rq is the name of an +executable program or shell command file which can be found via +the user's $PATH defined search path, excluding the current +directory. +The \*(lqEditor:\*(rq profile specification +may in turn be overridden by a `\-editor\0' +profile switch associated with +\fIcomp\fR, +\fIrepl\fR, +\fIforw\fR, +or +\fIdist\fR. +Finally, an explicit editor switch specified with any +of these four commands will have ultimate precedence. +.pp +During message composition, more than one editor may be +used. +For example, one editor (such as \fIprompter\fR\0) +may be used +initially, and a second editor may be invoked later to revise +the message being composed +(see the discussion of +\fIcomp\fR in Section 5 for details). +A profile entry \*(lq\-next:\0\*(rq specifies the name of +the editor to be used after a particular editor. +Thus \*(lqcomp:\0\-e\0prompter\*(rq +causes the initial text to be collected by +\fIprompter\fR, +and the profile entry \*(lqprompter\-next:\0ed\*(rq names ed as the +editor to be invoked for the next round of editing. +.pp +Some of the \fIMH\fR commands, such as +\fIshow\fR, +can be used on +message folders owned by others, if those folders are readable. +However, +you cannot write in someone else's folder. +All the \fIMH\fR command +actions not requiring write permission may be used with +a \*(lqread-only\*(rq folder. +.pp +Table 1 lists examples of some of the currently defined profile +entries, typical arguments, and the programs that reference the +entries. +.bp +.in .9i +.ll -.9i +.ta \w':\0default switches 'u +.sp 30p +.ce +Table 1 +.sp 8p +.ce +P\s-2ROFILE\s0 C\s-2OMPONENTS\s0 +.hl \" ~12p preceding + 1v (12p) after +.nf +^^\fIMH\fR Programs that +^Keyword and Argument~^\ use Component\h'|\n(.lu-.9i'\v'4p'\l'|0'\v'-4p' \" \l'..' does underlining +.sp +^Path:\0Mail~^All +^Current-Folder:\0inbox~^Most +^Editor:\0/usr/ucb/ex~^\fIcomp, dist, forw, repl\fR +^Inbox:\0inbox~^\fIinc, rmf\fR +^Msg\-Protect:\0644~^\fIinc\fR +^Folder\-Protect:\0711~^\fIinc, pick, refile\fR +^:\0default switches~^All +^prompter\-next:\0ed~^\fIcomp, dist, forw, repl\fR +.hl +.ll +.9i +.in 0 +.fi +.pp +Path +.u should +be present. +Current\-Folder is maintained +automatically by many \fIMH\fR commands (see the \fBContext\fR sections of +the individual commands in Sec. IV). +All other entries are optional, +defaulting to the values described above. +.uh "MESSAGE NAMING" +.pp +Messages may be referred to explicitly or implicitly when +using \fIMH\fR commands. +A formal syntax of message names is given in Appendix B, but the +following description should be sufficient for most \fIMH\fR users. +Some details of message naming that apply only to certain +commands are included in the description of those +commands. +.pp +Most of the \fIMH\fR commands accept arguments specifying one or +more folders, and one or more messages to operate on. +The use of +the word \*(lqmsg\*(rq as an argument to a command means that exactly one +message name may be specified. +A message name may be a number, +such as 1, 33, or 234, or it may be +one of the \*(lqreserved\*(rq message names: +first, last, prev, next, and cur. +(As a shorthand, a +period (\&.) is equivalent to cur.) +The meanings of these names are straightforward: +\*(lqfirst\*(rq is the first message in the folder; +\*(lqlast\*(rq is the last message in the folder; +\*(lqprev\*(rq is the message numerically previous to the current message; +\*(lqnext\*(rq is the message numerically following the current message; +\*(lqcur\*(rq (or \*(lq\&.\*(rq) is the current message in the folder. +In addition, +\fIMH\fR supports user\-defined\-sequences; +see the description of the \fImark\fR command for more information. +.pp +The default in commands that take a \*(lqmsg\*(rq argument is +always \*(lqcur\*(rq. +.pp +The word \*(lqmsgs\*(rq indicates that several messages may be +specified. +Such a specification consists of several message +designations separated by spaces. +A message designation is +either a message name or a message range. +A message range is a +specification of the form name1\-name2 or name1:n, where name1 and +name2 are message names and n is an integer. +The first form +designates all the messages from name1 to name2 inclusive; this +must be a non-empty range. +The second form specifies up to n +messages, starting with name1 if name1 is a number, or first, +cur, or next, and ending with name1 if name1 is last or +prev. +This interpretation of n is overridden if n is preceded +by a plus sign or a minus sign; ++n always means up to n messages starting with +name1, and \-n always means up to n messages ending with name1. +Repeated specifications of the same message have the same effect +as a single specification of +the message. +Examples of +specifications are: + +.(b +1 5 7\-11 22 +first 6 8 next +first\-10 +last:5 +.)b +.pp +The message name \*(lqall\*(rq is a shorthand for \*(lqfirst\-last\*(rq, +indicating all of the messages in the folder. +.pp +In commands that accept \*(lqmsgs\*(rq arguments, the default is +either cur or all, depending on which makes more sense. +.pp +In all of the \fIMH\fR commands, a plus sign preceding an argument +indicates a folder name. +Thus, \*(lq+inbox\*(rq is the name of the +user's standard inbox. +If an explicit folder argument is given +to an \fIMH\fR command, it will become the current folder (that is, +the \*(lqCurrent-Folder:\*(rq entry +in the user's profile will be changed to this folder). +In the case of the +\fIrefile\fR command, which +can have multiple output folders, a new source folder (other than +the default current folder) is specified by `\-src\0+folder'. +.uh "OTHER MH CONVENTIONS" +.pp +One very powerful feature of \fIMH\fR is that the \fIMH\fR commands may +be issued from any current directory, and the proper path to +the appropriate folder(s) will be taken from the user's profile. +If the \fIMH\fR path is not appropriate for a specific folder or file, +the automatic prepending of the \fIMH\fR path can be avoided by +beginning a folder or file name with \fB/\fR, +or with \fB\&./\fR or \fB\&.\&./\fR component. +Thus any specific absolute path may be specified along with any path +relative to the current working directory. +.pp +Arguments to the various programs may be given in any order, +with the exception of a few switches whose arguments must follow +immediately, such as `\-src\0+folder' for \fIrefile\fR. +.pp +Whenever an \fIMH\fR command prompts the user, the valid options +will be listed in response to a . +(The first of the +listed options is the default if end-of-file is encountered, +such as from a command file.) +A valid response is any \fIunique\fR abbreviation of one of the listed options. +.pp +Standard UNIX documentation conventions are used in this report +to describe \fIMH\fR command syntax. +Arguments enclosed in brackets +([ ]) are optional; exactly one of the arguments enclosed +within braces ({ }) must be specified, and all other +arguments are required. +The use of ellipsis dots (...) indicates +zero or more repetitions of the previous item. +For example, +\*(lq+folder ...\*(rq would indicate that one or more \*(lq+folder\*(rq +arguments is required +and \*(lq[+folder ...]\*(rq indicates that 0 or more +\*(lq+folder\*(rq arguments may be given. +.pp +\fIMH\fR departs from UNIX standards by using switches that consist of +more than one character, e.g. `\-header'. +To minimize typing, +only a unique abbreviation of a switch need be typed; thus, for +`\-header', `\-hea' is probably sufficient, depending on the +other switches the command accepts. +Each \fIMH\fR program +accepts the switch `\-help' (which \fBmust\fR be spelled out fully) +and produces a syntax description and a list of switches. +In the +list of switches, parentheses indicate required characters. +For example, all `\-help' switches will appear as \*(lq\-(help)\*(rq, +indicating that no abbreviation is accepted. +Furthermore, +the `\-help' switch tells the version of the \fIMH\fR program you invoked. +.pp +Many \fIMH\fR switches have both on and off forms, such as +`\-format' and `\-noformat'. +In many of the descriptions which follow, +only one form is defined; the other form, often used to +nullify profile switch settings, is assumed to be the opposite. +.br +.bp +.uh "MH COMMANDS" +.pp +The \fIMH\fR package comprises several programs: +.\" I pity the fool who tampers with the next line... +.ds ZZ -me +.so mh.me +.pp +These programs are described below. +The form of the descriptions +conforms to the standard +form for the description of UNIX commands. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.de SC +.he '\\$1(\\$2)'-%-'\\$1(\\$2)' +@@BEGIN: BSD44 +.eh 'USD:8-%'The RAND Message Handling System: User Manual'\\$1(\\$2)' +.oh '\\$1(\\$2)'The RAND Message Handling System: User Manual'USD:8-%' +@@END: BSD44 +.bp +.(x +.ti .8i +\\$1 +.)x +.. +.de NA +.b \\s-2NAME\\s0 +.ti .5i +.. +.de SY +.sp +.b \\s-2SYNOPSIS\\s0 +.in 1i +.ti .5i +.na +.. +.de DE +.ad +.sp +.in 0 +.b \\s-2DESCRIPTION\\s0 +.sp +.fi +.in .5i +.. +.de Uh +.ad +.sp +.ti -.25i +.b "\\s-2\\$1\\s0" +.sp +.fi +.. +.de Hh +.ad +.sp +.in 0 +.b "\\s-2Helpful Hints\\s0" +.sp +.fi +.in .5i +.. +.de Fi +.(b L +.ti 0 +.b \\s-2Files\\s0 +.ta \w'@@(MHETCPATH)/ExtraBigFileName 'u +.. +.de Pr +.)b +.(b L F +.ta \w'ExtraBigProfileName 'u +.ti 0 +.b "\\s-2Profile Components\\s0" +.ti .5i +.. +.de Ps +.ti .5i +.. +.de Sa +.)b +.(b L F +.ti 0 +.b "\\s-2See Also\\s0" +.br +.. +.de De +.)b +.(b L +.in .5i +.ti 0 +.b \\s-2Defaults\\s0 +.. +.de Ds +.. +.de Co +.)b +.(b L F +.ti 0 +.b \\s-2Context\\s0 +.br +.. +.de Hi +.)b +.(b L F +.ti 0 +.b \\s-2History\\s0 +.br +.. +.de Bu +.)b +.(b L F +.ti 0 +.b \\s-2Bugs\\s0 +.br +.. +.de En +.)b +.in 0 +.. +.po -.50i +.so ali.me +.so anno.me +@@BEGIN: BBOARDS +.so bbc.me +@@BEGIN: BBSERVER +.so bbl.me +.so bbleader.me +@@END: BBSERVER +.so bboards.me +@@END: BBOARDS +.so burst.me +@@BEGIN: TMA +.so cipher.me +@@END: TMA +.so comp.me +@@BEGIN: TMA +.so decipher.me +@@END: TMA +.so dist.me +.so folder.me +.so forw.me +.so inc.me +.so mark.me +.so mhl.me +.so mhmail.me +@@BEGIN: MIME +.so mhn.me +@@END: MIME +.so mhook.me +.so mhparam.me +.so mhpath.me +.so msgchk.me +.so msh.me +.so next.me +.so packf.me +.so pick.me +@@BEGIN: MPOP +.so popi.me +@@END: MPOP +.so prev.me +.so prompter.me +.so rcvstore.me +.so refile.me +.so repl.me +.so rmf.me +.so rmm.me +.so scan.me +.so send.me +.so show.me +.so slocal.me +.so sortm.me +@@BEGIN: TMA +.so tma.me +@@END: TMA +.so vmh.me +.so whatnow.me +.so whom.me +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.po +.50i +.he ''-%-'' +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +.bp +.uh "MORE DETAILS" +.pp +This section describes some of the more intense points of the \fIMH\fR system, +by expanding on topics previously discussed. +The format presented conforms to the standard form for the description of UNIX +documentation. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '@@(MHLEFTFOOT)'@@(MHCENTERFOOT)'UCI version' +.po -.50i +.so mh-alias.me +.so mh-format.me +.so mh-mail.me +.so mh-profile.me +.so mh-sequence.me +.so ap.me +.so conflict.me +.so dp.me +.so fmtdump.me +.so install-mh.me +.so post.me +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.po +.50i +.he ''-%-'' +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +.+c "REPORTING PROBLEMS" +.pp +If problems are encountered with an \fIMH\fR program, +the problems should be reported to the local maintainers of \fIMH\fR. +When doing this, +the name of the program should be reported, +along with the version information for the program. +To find out what version of an \fIMH\fR program is being run, +invoke the program with the `\-help' switch. +In addition to listing the syntax of the command, +the program will list information pertaining to its version. +This information includes the version of \fIMH\fR, +the host it was generated on, +and the date the program was loaded. +A second line of information, +found on versions of \fIMH\fR after #5.380 include \fIMH\fR configuration +options. +For example, + +.in +.5i +version: MH 6.1 #1[UCI] (nrtc-gremlin) of Wed Nov 6 01:13:53 PST 1985 +.br +options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP] +.in -.5i + +The `6.1 #1[UCI]' indicates that the program is from the UCI \fImh.6\fR +version of \fIMH\fR. +The program was generated on the host `nrtc-gremlin' on +`Wed Nov 6 01:13:53 PST 1985'. +It's usually a good idea to send the output of the `\-help' switch along +with your report. + +If there is no local \fIMH\fR maintainer, +try the address \fBBug-MH\fR. +If that fails, use the Internet mailbox \fBBug-MH@@ICS.UCI.EDU\fR. + +.+c "ADVANCED FEATURES" +.de UH +.lp +.b "\\$1" +.pp +.(x +.ti .8i +\\$1 +.)x +.. +.pp +This section describes some features of \fIMH\fR that were included strictly +for advanced \fIMH\fR users. +These capabilities permit \fIMH\fR to exhibit more powerful behavior for the +seasoned \fIMH\fR users. +.uh "USER\-DEFINED SEQUENCES" +.pp +User\-defined sequences allow the \fIMH\fR user a tremendous amount of power +in dealing with groups of messages in the same folder +by allowing the user to bind a group of messages to a meaningful symbolic +name. +The user may choose any name for a message sequence, +as long as it consists of alphanumeric characters and does not conflict with +the standard \fIMH\fR reserved message names +(e.g., \*(lqfirst\*(rq, etc). +After defining a sequence, +it can be used wherever an \fIMH\fR command expects a `msg' or `msgs' +argument. +.pp +A restricted form of message ranges are allowed with user\-defined +sequences. The form \*(lqname:n\*(rq, specifies up to the first `n' messages +which are part of the user\-defined sequence `name'. +A leading plus sign is allowed on `n', but is ignored. +The interpretation of n is overridden if n is preceded +by a minus sign; +`\-n' always means up to the last `n' messages which are part of the +sequence `name'. +.pp +Although all \fIMH\fR commands expand user\-defined sequences as appropriate, +there are two commands that allow the user to define and manipulate them: +\fIpick\fR and \fImark\fR. +.UH "Pick and User\-Defined Sequences" +.pp +Most users of \fIMH\fR will use user\-defined sequences only with +the \fIpick\fR command. +By giving the `\-sequence\ name' switch to \fIpick\fR +(which can occur more than once on the command line), +each sequence named is defined as those messages which \fIpick\fR matched +according the the selection criteria it was given. +Hence, + +.ti +.5i +pick\0\-from\0frated\0\-seq\0fred + +finds all those messages in the current folder which were from +\*(lqfrated\*(rq, +creates a sequence called \*(lqfred\*(rq, +and then adds them to the sequence. +The user could then invoke + +.ti +.5i +scan\0fred + +to get a \fIscan\fR listing of those messages. +Note that by default, +\fIpick\fR creates the named sequences +before it adds the selected messages to the sequence. +Hence, if the named sequence already existed, +the sequence is destroyed prior to being re-defined +(nothing happens to the messages that were a part of this sequence, +they simply cease to be members of that sequence). +By using the `\-nozero' switch, this behavior can be inhibited, +as in + +.in +.5i +pick\0\-from\0frated\0\-seq\0sgroup +.br +pick\0\-from\0fear\0\-seq\0sgroup\0\-nozero +.br +pick\0\-from\0freida\0\-seq\0sgroup\0\-nozero +.in -.5i + +finds all those messages in the current folder which were from +\*(lqfrated\*(rq, \*(lqfear\*(rq, or \*(lqfreida\*(rq, +and defines the sequence called \*(lqsgroup\*(rq as exactly those messages. +These operations amounted to an \*(lqinclusive\-or\*(rq of three selection +criteria, +using \fIpick\fR, +one can also generate the \*(lqand\*(rq of some selection criteria as well: + +.in +.5i +pick\0\-from\0frated\0\-seq\0fred +.br +pick\0\-before\0friday\0\-seq\0fred\0fred +.in -.5i + +This example defines the sequence called \*(lqfred\*(rq as exactly those +messages from \*(lqfrated\*(rq that were dated prior to \*(lqfriday\*(rq.\** +.(f +\** Of course, +it is much easier to simply use the built\-in boolean operation of +\fIpick\fR to get the desired results: + +.ti +.5i +pick\0\-from\0frated\0\-or\0\-from\0fear\0\-or\0\-from\0freida\0\-seq\0sgroup + +and + +.ti +.5i +pick\0\-from\0frated\0\-and\0\-before\0friday\0\-seq\0fred + +do exactly the same thing as the five commands listed above. +Hence, the `\-nozero' option to \fIpick\fR is only useful to manipulate +existing sequences. +.)f +.pp +\fIPick\fR is normally used as a back\-quoted command, +for example, + +.ti +.5i +scan\0`pick\0\-from\0postmaster` + +Now suppose that the user decides that another command should be issued, +using exactly those messages. +Since, +\fIpick\fR wasn't given a `\-sequence\ name' argument in this example, +the user would end\-up typing the entire back\-quoted command again. +A simpler way is to add a default sequence name to the \&.mh\(ruprofile. +For example, + +.ti +.5i +pick:\0\-seq\0select\0\-list + +will tell \fIpick\fR to always define the sequence \*(lqselect\*(rq whenever +it's run. +The `-list' is necessary since the `\-sequence\ name' switch sets `\-nolist' +whenever the former is encountered. +Hence, this profile entry makes \fIpick\fR define the \*(lqselect\*(rq +sequence and otherwise behave exactly as if there was no profile entry at all. +.UH "Mark and User\-Defined Sequences" +.pp +The \fImark\fR command lets the user perform low\-level manipulation of +sequences, +and also provides a well\-needed debug facility to the +implementors/developers/maintainers of \fIMH\fR (the \fIMH\fR\-hacks). +In the future, a user\-friendly \*(lqfront\-end\*(rq for \fImark\fR will +probably be developed to give the \fIMH\fR user a way to take better +advantage of the underlying facilities. +.UH "Public and Private User\-Defined Sequences" +.pp +There are two kinds of sequences: \fIpublic\fR sequences, +and \fIprivate\fR sequences. +\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user that +can read that folder and are kept in the \&.mh\(rusequences file in the folder. +\fIPrivate\fR sequences are accessible only to the \fIMH\fR user that defined +those sequences and are kept in the user's \fIMH\fR context file. +By default, +\fIpick\fR (and \fImark\fR\0) create \fIpublic\fR sequences +if the folder for which the sequences are being defined is writable by the +\fIMH\fR user. +Otherwise, \fIprivate\fR sequences are created. +This can be overridden with the `\-public' and `\-nopublic' switches. +.UH "Sequence Negation" +.pp +In addition to telling an \fIMH\fR command to use the messages in the sequence +\*(lqseen\*(rq, as in + +.ti +.5i +refile\0seen\0+old + +it would be useful to be easily able to tell an \fIMH\fR command to use all +messages \fIexcept\fR those in the sequence. +One way of doing this would be to use \fImark\fR and define the sequence +explicitly, +as in + +.ti +.5i +mark\0\-delete\0\-zero\0seen\0\-seq\0notseen + +which, +owing to \fImark\fR\0's cryptic interpretation of `\-delete' and `\-zero', +defines the sequence \*(lqnotseen\*(rq to be all messages not in the sequence +\*(lqseen\*(rq. +Naturally, +anytime the sequence \*(lqseen\*(rq is changed, +\*(lqnotseen\*(rq will have to be updated. +Another way to achieve this is to define the entry +\*(lqSequence\-Negation:\*(rq in the \&.mh\(ruprofile. +If the entry was + +.ti +.5i +Sequence\-Negation:\0not + +then anytime an \fIMH\fR command was given \*(lqnotseen\*(rq as a `msg' or +`msgs' argument, +it would substitute all messages that are not a member of the sequence +\*(lqseen\*(rq. +That is, + +.ti +.5i +refile\0notseen\0+new + +does just that. +The value of the \*(lqSequence\-Negation:\*(rq entry in the profile can be +any string. +Hence, +experienced users of \fIMH\fR do not use a word, +but rather a special character which their shell does not interpret +(users of the \fICShell\fR use a single caret or circumflex (usually shift\-6), +while users of the Bourne shell use an exclamation\-mark). +This is because there is nothing to prevent a user of \fIMH\fR from defining a +sequence with this string as its prefix, +if the string is nothing by letters and digits. +Obviously, +this could lead to confusing behavior +if the \*(lqSequence\-Negation:\*(rq entry leads \fIMH\fR to believe that two +sequences are opposites by virtue of their names differing by the prefix +string. +.UH "The Previous Sequence" +.pp +Many times users find themselves issuing a series of commands on the same +sequences of messages. +If the user first defined these messages as a sequence, +then considerable typing may be saved. +If the user doesn't have this foresight, +\fIMH\fR provides a handy way of having \fIMH\fR remember the `msgs' or +`msg' argument last given to an \fIMH\fR command. +If the entry \*(lqPrevious\-Sequence:\*(rq is defined in the +\&.mh\(ruprofile, +then when the command finishes, +it will define the sequence(s) named in the value of this entry as being +exactly those messages that were specified. +Hence, a profile entry of + +.ti +.5i +Previous\-Sequence:\0pseq + +directs any \fIMH\fR command that accepts a `msg' or `msgs' argument to +define the sequence \*(lqpseq\*(rq as those messages when it finishes. +More than one sequence name may be placed in this entry, +separated with spaces. +The one disadvantage of this approach +is that the \fIMH\fR progams have to update the sequence information for +the folder each time they run +(although most programs read this information, +usually only \fIpick\fR and \fImark\fR have to write this information out). +.UH "The Unseen Sequence" +.pp +Finally, some users like to distinguish between messages which have been +previously seen by them. +Both \fIinc\fR and \fIshow\fR honorthe profile entry +\*(lqUnseen\-Sequence\*(rq to support this activity. +Whenever \fIinc\fR places new messages in a folder, +if the entry \*(lqUnseen\-Sequence\*(rq is defined in the \&.mh\(ruprofile, +then when the command finishes, +\fIinc\fR will add the new messages to the sequence(s) named in the value of +this entry. +Hence, a profile entry of + +.ti +.5i +Unseen\-Sequence:\0 unseen + +directs \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq. +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile +however, +the sequence(s) will \fBnot\fR be zero'd. +.pp +Similarly, +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\0) displays a message, +they remove those messages from any sequences named by the +\*(lqUnseen\-Sequence\*(rq entry in the profile. +.uh "COMPOSITION OF MAIL" +.pp +There are a number of interesting advanced facilities for the composition of +outgoing mail. + +.UH "The Draft Folder" +.pp +The \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands have two +switches, `\-draftfolder\0+folder' and `\-draftmessage\0msg'. +If `\-draftfolder\0+folder' is used, +these commands are directed to construct a draft message in the indicated +folder. +(The \*(lqDraft\-Folder:\*(rq profile entry may be used to declare a +default draft folder for use with +\fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR) +If `\-draftmessage\0msg' is not used, it defaults to `new' +(unless the user invokes \fIcomp\fR with `\-use', +in which case the default is `cur'). +Hence, the user may have several message compositions in progress +simultaneously. +Now, all of the \fIMH\fR tools are available on each of the user's message +drafts +(e.g., \fIshow\fR, \fIscan\fR, \fIpick\fR, and so on). +If the folder does not exist, +the user is asked if it should be created (just like with \fIrefile\fR\0). +Also, +the last draft message the user was composing is known as `cur' in the +draft folder. +.pp +Furthermore, +the \fIsend\fR command has these switches as well. +Hence, from the shell, +the user can send off whatever drafts desired using the +standard \fIMH\fR `msgs' convention with `\-draftmessage msgs'. +If no `msgs' are given, it defaults to `cur'. +.pp +In addition, +all five programs have a `\-nodraftfolder' switch, +which undoes the last occurrence of `\-draftfolder\0folder' +(useful if the latter occurs in the user's \fIMH\fR profile). +.pp +If the user does not give the `\-draftfolder\0+folder' switch, +then all these commands act ``normally''. +Note that the `\-draft' switch to \fIsend\fR and \fIshow\fR +still refers to the file called `draft' in the user's \fIMH\fR +directory. +In the interests of economy of expression, +when using \fIcomp\fR or \fIsend\fR, +the user needn't prefix the draft `msg' or `msgs' with +`\-draftmessage'. +Both of these commands accept a `file' or `files' argument, +and they will, if given `\-draftfolder\0+folder' treat these arguments +as `msg' or `msgs'.\** +.(f +\** This may appear to be inconsistent, at first, +but it saves a lot of typing. +.)f +Hence, + +.ti +.5i +send -draftf +drafts first + +is the same as + +.ti +.5i +send -draftf +drafts -draftm first + +.pp +To make all this a bit more clear, here are some examples. +Let's assume that the following entries are in the \fIMH\fR profile: + +.in +.5i +.nf +Draft\-Folder: +drafts +sendf: -draftfolder +drafts +.fi +.in -.5i + +Furthermore, +let's assume that the program \fIsendf\fR is a (symbolic) link in the user's +\fB$HOME/bin/\fR directory to \fIsend\fR. +Then, any of the commands + +.in +.5i +.nf +comp +dist +forw +repl +.fi +.in -.5i + +constructs the message draft in the `draft' folder using the `new' +message number. +Furthermore, +they each define `cur' in this folder to be that message draft. +If the user were to use the \fIquit\fR option at `What now?' level, +then later on, +if no other draft composition was done, +the draft could be sent with simply + +.ti +.5i +sendf + +Or, +if more editing was required, +the draft could be edited with + +.ti +.5i +comp -use + +Instead, +if other drafts had been composed in the meantime, +so that this message draft was no longer known as `cur' in the `draft' +folder, +then the user could \fIscan\fR the folder to see which message draft in the +folder should be used for editing or sending. +Clever users could even employ a back-quoted \fIpick\fR to do the work: + +.ti +.5i +comp -use `pick +drafts -to bug-mh` + +or + +.ti +.5i +sendf `pick +drafts -to bug-mh` + +Note that in the \fIcomp\fR example, +the output from \fIpick\fR must resolve to a single message draft +(it makes no sense to talk about composing two or more drafts with one +invocation of \fIcomp\fR\0). +In contrast, +in the \fIsend\fR example, +as many message drafts as desired can appear, +since \fIsend\fR doesn't mind sending more than one draft at a time. +.pp +Note that the argument `\-draftfolder\0+folder' is not +included in the profile entry for \fIsend\fR, +since when \fIcomp\fR, et. al., invoke \fIsend\fR directly, +they supply \fIsend\fR with the UNIX pathname of the message draft, +and \fBnot\fR a `draftmessage\0msg' argument. +As far as \fIsend\fR is concerned, +a \fIdraft folder\fR is not being used. +.pp +It is important to realize that \fIMH\fR treats the draft folder like a standard +\fIMH\fR folder in nearly all respects. +There are two exceptions: +.u first , +under no circumstancs will the `\-draftfolder\0folder' switch cause the +named folder to become the current folder.\** +.(f +\** Obviously, +if the folder appeared in the context of a standard `+folder' +argument to an \fIMH\fR program, as in + +.ti +.5i +scan +drafts + +it might become the current folder, depending on the context changes of the +\fIMH\fR program in question. +.)f +.u Second , +although conceptually \fIsend\fR deletes the `msgs' named in the draft +folder, +it does not call `delete-prog' to perform the deletion. + +.UH "What Happens if the Draft Exists" +.pp +When the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands are +invoked and the draft you indicated already exists, +these programs will prompt the user for a reponse directing the program's +action. +The prompt is + +.ti +.5i +Draft ``/usr/src/uci/mh/mhbox/draft'' exists (xx bytes). +.ti +.5i +Disposition? + +The appropriate responses and their meanings are: +.u replace : +deletes the draft and starts afresh; +.u list : +lists the draft; +.u refile : +files the draft into a folder and starts afresh; +and, +.u quit : +leaves the draft intact and exits. +In addition, if you specified `\-draftfolder\0folder' to the command, +then one other response will be accepted: +.u new : +finds a new draft, +just as if `\-draftmessage\0new' had been given. +Finally, the \fIcomp\fR command will accept one more response: +.u use : +re-uses the draft, +just as if `\-use' had been given. + +.UH "The Push Option at What now? Level" +.pp +The \fIpush\fR option to the \*(lqWhat now?\*(rq query +in the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands, +directs the command to \fIsend\fR the draft +in a special detached fashion, +with all normal output discarded. +If \fIpush\fR is used and the draft can not be sent, +then \fIMH\fR will send the user a message, +indicating the name of the draft file, +and an explanation of the failure. +.\" Although using \fIpush\fR calls \fIsend\fR\0(1), +.\" the \fIsend\fR command will consult the profile entry for \fIpush\fR. +.pp +The user can also invoke \fIsend\fR from the shell with the `\-push' +switch, +which makes \fIsend\fR act like it had been \fIpush\fR\0'd by one of the +composition commands. +.\" composition commands.\** +.\" .(f +.\" \** Note that in this case, +.\" \fIsend\fR consults the profile entry for whatever name it was invoked as, +.\" such as \fIsendf\fR. +.\" .)f +.pp +By using \fIpush\fR, the user can free the shell to do other things, +because it appears to the shell that the \fIMH\fR command has finished. +As a result the shell will immediately prompt for another command, +despite the fact that the command is really still running. +Note that if the user indicates that annotations are to be performed +(with `\-annotate' to \fIdist\fR, \fIforw\fR, or \fIrepl\fR), +the annotations will be performed after the message has been +successfully sent. +This action will appear to occur asynchronously. +Obviously, if one of the messages that is to be annotated is +removed before the draft has been successfully sent, +then when \fIMH\fR tries to make the annotations, +it won't be able to do so. +In previous versions of \fIMH\fR, +this resulted in an error message mysteriously appearing on the user's +terminal. +In \fImh.5\fR and later versions, +in this special circumstance, no error will be generated. +.pp +If send is \fIpush\fR\0'd, +then the `\-forward' switch is examined if a failure notice is generated. +If given, +then the draft is forwarded with the failure notice sent to the user. +This allows rapid \fIburst\fR\0'ing of the failure notice to retrieve the +unsent draft. + +.UH "Options at What now? Level" +.pp +By default, +the message composition programs call a program called \fIwhatnow\fR before +the initial draft composition. +The \fIMH\fR user can specify any program for this. +Following is some information about the default \*(lqWhat now?\*(rq level. +More detailed information can be found in the \fIwhatnow\fR\0(1) manual entry. +.pp +When using the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands at +\*(lqWhat now?\*(rq level, +the \fIedit\fR, \fIlist\fR, \fIheaders\fR, \fIrefile\fR, +and (for the \fIdist\fR and \fIrepl\fR commands) the \fIdisplay\fR options +will pass on any additional arguments given them to whatever program they +invoke. +.pp +In \fImh.1\fR (the original RAND \fIMH\fR\0) +and \fImh.2\fR (the first UCI version of \fIMH\fR\0), +\fIMH\fR used a complicated heuristic to determine if the draft should be +deleted or preserved after an unsuccessful edit. +In \fImh.3\fR, +\fIMH\fR was changed to preserve the draft always, +since \fIcomp\fR, et. al., +could usually look at a draft, apply another set of heuristics, +and decide if it was important or not. +With the notion of a \fIdraft folder\fR, +in which one by default gets a `new' message draft, +the edit deletion/preservation algorithm was re-implemented, +to keep the draft folder from being cluttered with aborted edits. +.pp +Also, +note that by default, +if the draft cannot be successfully sent, +these commands return to \*(lqWhat now?\*(rq level. +But, when \fIpush\fR is used, this does not happen (obviously). +Hence, +if these commands were expected to annotate any messages, +this will have to be done by hand, later on, with the \fIanno\fR command. +.pp +Finally, if the `\-delete' switch is not given to the \fIquit\fR option, +then these commands will inform the user of the name of the unsent draft file. + +.UH "Digests" +.pp +The \fIforw\fR command has the beginnings of a digestifying facility, +with the `\-digest\ list', `\-issue\ number', and `\-volume\ number' switches. + +If \fIforw\fR is given \*(lqlist\*(rq to the `\-digest' switch +as the name of the discussion group, +and the `\-issue\ number' switch is not given, +then \fIforw\fR looks for an entry in the user's \fIMH\fR context called +\*(lq\fIdigest\fR\-issue\-list\*(rq and increments its value to use as the +issue number. +Similarly, +if the `\-volume\ number' switch is not given, +then \fIforw\fR looks for \*(lq\fIdigest\fR\-volume\-list\*(rq +(but does not increment its value) to use as the volume number. + +Having calculated the name of the digest and the volume and issue numbers, +\fIforw\fR will now process the components file using the same format string +mechanism used by \fIrepl\fR. +The current `%'\-escapes are: + +.nf +.ta \w'escape 'u +\w'integer 'u +\fIescape\fR \fItype\fR \fIsubstitution\fR +digest string digest name +msg integer issue number +cur integer volume number +.re +.fi + +In addition, to capture the current date, +any of the escapes valid for \fIdp\fR\0(8) are also valid for \fIforw\fR. + +The default components file used by \fIforw\fR when in digest mode is: + +.nf +.in +.5i +.ne 10 +.eo +.so @@(MHETCPATH)/digestcomps +.ec +.in -.5i +.fi + +Hence, when the `\-digest' switch is present, +the first step taken by \fIforw\fR is to expand the format strings in the +component file. +The next step is to compose the draft using +the standard digest encapsulation algorithm +(even putting an \*(lqEnd of list Digest\*(rq trailer in the draft). +Once the draft is composed by \fIforw\fR, +\fIforw\fR writes out the volume and issue profile entries for the digest, +and then invokes the editor. + +Naturally, when composing the draft, +\fIforw\fR will honor the `\-filter\ filterfile' switch, +which is given to \fImhl\fR to filter each message being forwarded prior to +encapsulation in the draft. +A good filter file to use, which is called \fImhl.digest\fR, is: + +.nf +.in +.5i +.ne 10 +.eo +.so @@(MHETCPATH)/mhl.digest +.ec +.in -.5i +.fi + +.uh "FOLDER HANDLING" +.pp +There are two interesting facilities for manipulating folders: +relative folder addressing, +which allows a user to shorten the typing of long folder names; +and +the folder\-stack, +which permits a user to keep a stack of current folders. + +.UH "Relative Folder Addressing" +.pp +By default, when `+folder' is given, +and the folder name is not absolute +(does not start with \fB/\fR, \fB\&./\fR, or \fB\&.\&./\fR), +then the UNIX pathname of the folder is interpreted relative to the user's +\fIMH\fR directory. +Although this mechanism works fine for top\-level folders and their immediate +sub\-folders, +once the depth of the sub\-folder tree grows, it becomes rather unwieldly: + +.ti +.5i +scan\0+mh/mh.4/draft/flames + +is a lot of typing. +\fIMH\fR can't do anything if the current folder was \*(lq+inbox\*(rq, +but if the current folder was, say, \*(lq+mh/mh.4/draft\*(rq, +\fIMH\fR has a short\-hand notation to reference a sub\-folder of the +current folder. +Using the `@@folder' notation, +the \fIMH\fR user can direct any \fIMH\fR program which expects a `+folder' +argument to look for the folder relative to the current folder instead of the +user's \fIMH\fR directory. +Hence, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq, +then + +.ti +.5i +scan\0@@flames + +would do the trick handily. +In addition, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq, + +.ti +.5i +scan\0@@../pick + +would scan the folder \*(lq+mh/mh.4/pick\*(rq, +since, in the UNIX fashion, +it references the folder \*(lqpick\*(rq which is a sub\-folder of +the folder that is the parent of the current folder. +Since most advanced \fIMH\fR users seem to exhibit a large degree of locality +in referencing folders when they process mail, +this convention should receive a wide range of uses. + +.UH "The Folder\-Stack" +.pp +The \fIfolder\-stack\fR mechanism in \fIMH\fR gives the \fIMH\fR user a +facility similar to the \fICShell\fR\0's directory\-stack. +Simply put, + +.ti +.5i +folder\0\-push\0+foo + +makes \*(lqfoo\*(rq the current folder, +saving the folder that was previously the current folder on the +\fIfolder\-stack\fR. +As expected, + +.ti +.5i +folder\0\-pop + +takes the top of the \fIfolder\-stack\fR and makes it the current folder. +Each of these switches lists the \fIfolder\-stack\fR when they execute. +It is simple to write a \fIpushf\fR command as a shell script. +It's one line: + +.ti +.5i +exec\0folder\0\-push\0$@@ + +Probably a better way is to link \fIfolder\fR to the $HOME/bin/ directory under +the name of \fIpushf\fR and then add the entry + +.ti +.5i +pushf:\0\-push + +to the \&.mh\(ruprofile. +.pp +The manual page for \fIfolder\fR discusses the analogy between the +\fICShell\fR directory stack commands and the switches in \fIfolder\fR which +manipulate the \fIfolder\-stack\fR. +The \fIfolder\fR command uses the context entry `Folder\-Stack:' to keep +track of the folders in the user's stack of folders. +\" +\" On to the Appendices +\" +.fo ''-%-'' +.he '''' +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.(x +.sp +Appendix +.)x _ +.de $c \" Major Heading printer +.ce +Appendix \\n+(ch +.sp 2p +.ce +.b "\\s12\\$1\\s0" \" 12 Point Bold Header +.(x +\ \ \ \\n(ch.\\ \\ \\$2 +.)x +.sp 45p \" 45 points or about 1/2 inch +.. +.++ A +.bp +.$c "COMMAND SUMMARY" "Command Summary" +.po -.50i +.so mh-chart.me +.po +.50i +.if t \{ +.ll 32P +.lt 32P +\} +.bp +.$c "MESSAGE NAME BNF" "Message Name BNF" + +.nf +.in 1i +.ta \w'user-defined-sequence 'u +\w':= 'u +\w'user-defined-sequence 'u +msgs := msgspec | + msgs msgspec + +msgspec := msg | + msg-range | + msg-sequence | + user-defined-sequence + +msg := msg-name | + + +msg-name := \*(lqfirst\*(rq | + \*(lqlast\*(rq | + \*(lqcur\*(rq | + \*(lq\&.\*(rq | + \*(lqnext\*(rq | + \*(lqprev\*(rq + +msg-range := msg\*(lq\-\*(rqmsg | + \*(lqall\*(rq + +msg-sequence := msg\*(lq:\*(rqsigned-number + +signed-number := \*(lq+\*(rq | + \*(lq\-\*(rq | + + +user-defined-sequence := | + * +.re +.fi +.sp +.lp +Where is a decimal number greater than zero. +.lp +Msg-range specifies all of the messages in the given range +and must not be empty. +.lp +Msg-sequence specifies up to of messages, beginning +with \*(lqmsg\*(rq (in the case of first, cur, next, or ), +or ending with \*(lqmsg\*(rq (in the case of prev or last). ++ forces \*(lqstarting with msg\*(rq, and \- forces +\*(lqending with number\*(rq. +In all cases, \*(lqmsg\*(rq must exist. +.lp +User\-defined sequences are defined and manipulated with the \fIpick\fR +and \fImark\fR commands. +.in 0 +.bp +.ce +.b \\s12REFERENCES\\s0 +.(x +.sp +REFERENCES +.)x +.sp 3 +.in .4i +.ti 0 +1. Crocker, D. H., J. J. Vittal, K. T. Pogran, and D. A. Henderson, Jr., +\*(lqStandard for the Format of ARPA Network Text Messages,\*(rq +\fIRFC733\fR, +November 1977. + +.ti 0 +2. Thompson, K., and D. M. Ritchie, \*(lqThe UNIX Time-sharing System,\*(rq +\fICommunications of the ACM\fR, Vol. 17, July 1974, pp. 365-375. + +.ti 0 +3. McCauley, E. J., and P. J. Drongowski, \*(lqKSOS\-The Design of a Secure +Operating System,\*(rq \fIAFIPS Conference Proceedings\fR, +National Computer Conference, +Vol. 48, 1979, pp. 345-353. + +.ti 0 +4. Crocker, David H., \fIFramework and Functions of the \*(lqMS\*(rq Personal +Message System\fR, The RAND Corporation, R-2134-ARPA, December 1977. + +.ti 0 +5. Thompson, K., and D. M. Ritchie, \fIUNIX Programmer's Manual\fR, 6th ed., +Western Electric Company, May 1975 (available only to UNIX licensees). + +.ti 0 +6. Crocker, D. H., +\*(lqStandard for the Format of ARPA Internet Text Messages,\*(rq +\fIRFC822\fR, +August 1982. +.de $c +.ce +.b "\\s12\\$1\\s0" \" 12 Point Bold Header +.(x y +.sp +\\$1 +.)x +.sp 3 +.. +.++ P +.bp 1 +.fo '''' +.he ''-%-'' +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.+c "READ THIS" +.pp +Although the \fIMH\fR system was originally developed by the RAND Corporation, +and is now in the public domain, +the RAND Corporation assumes no responsibility for \fIMH\fR +or this particular version of \fIMH\fR. +.pp +In addition, +the Regents of the University of California issue the following +\fBdisclaimer\fR in regard to the UCI version of \fIMH\fR: +.sp 1 +.in +.5i +\*(lqAlthough each program has been tested by its contributor, +no warranty, express or implied, +is made by the contributor or the University of California, +as to the accuracy and functioning of the program +and related program material, +nor shall the fact of distribution constitute any such warranty, +and no responsibility is assumed by the contributor +or the University of California in connection herewith.\*(rq +.in -.5i +.pp +This version of \fIMH\fR is in the public domain, +and as such, +there are no real restrictions on its use. +The \fIMH\fR source code and documentation have no licensing restrictions +whatsoever. +As a courtesy, +the authors ask only that you provide appropriate credit to the RAND +Corporation and the University of California for having developed the software. +.pp +\fIMH\fR is a software package that is supported neither by the RAND +Corporation nor the University of California. +However, +since we do use the software ourselves and plan to continue using +(and improving) \fIMH\fR, +bug reports and their associated fixes should be reported back to us so that +we may include them in future releases. +The current computer mailbox for \fIMH\fR is \fBBug\-MH@@ICS.UCI.EDU\fR +(in the ARPA Internet), +and \fB...!ucbvax!ucivax!bug\-mh\fR (UUCP). +Presently, +there are two Internet discussion groups, \fBMH\-Users@@ICS.UCI.EDU\fR +and \fBMH\-Workers@@ICS.UCI.EDU\fR. \fBMH\-Workers\fP is for people +discussing code changes to \fIMH\fP. \fBMH-Users\fP is for general +discussion about how to use \fIMH\fP. +\fBMH\-Users\fR is bi-directionally +gatewayed into USENET as \fBcomp.mail.mh\fR. +.+c "OBTAINING MH" +.pp +Since you probably already have \fIMH\fP, +you may not need to read this unless you suspect you have an old version. +On the Internet, you may retrieve the lastest release from one of: + +.nf +.in +1i +ftp://ftp.ics.uci.edu/pub/mh/mh-6.8.tar.Z +ftp://ftp.uu.uunet/networking/mail/mh/mh-6.8.tar.Z +http://wuarchive.wustl.edu/packages/mail/mh/mh-6.8.tar.Z +.fi +.in -1i + +.lp +This is a tar image after being run through the compress program +(approximately 2Mb). There is also an \fIMH\fP World Wide Web +Home Page at \*(lqhttp://www.ics.uci.edu/\~mh\*(rq +which tells what the current release of \fIMH\fP +is, and how to get updates. +.pp +You may also find MH on +various other hosts; to make sure you get the latest version and +don't waste your time re-fixing bugs, it's best to get it from +either ftp.ics.uci.edu or a site which mirrors ftp.ics.uci.edu. +.pp +Alternatively, you can send $75 US to the address below. +This covers the cost of a 6250 BPI 9-track magtape, +handling, and shipping. In addition, you'll get a +laser-printed hard-copy of the entire MH documentation set. Be +sure to include your USPS address with your check. Checks +must be drawn on U.S\&. funds and should be made payable to: + +.ti +1i +Regents of the University of California + +The distribution address is: + +.nf +.in +1i +Attn: MH distribution +Office of Academic Computing +University of California, Irvine +Irvine, CA 92717-2225 + ++1 714 824 5153 +.fi +.in -1i +.pp +If you just want the hard-copies of the documentation, you +still have to pay the $75. The tar image has the documentation +source (the manual is in roff format, but the rest are in TeX +format). Postscript formatted versions of the TeX papers are +available, as are crude tty-conversions of those papers. +.+c FOREWORD +.pp +This document describes the RAND \fIMH\fR Message Handling System. +Its primary purpose is to serve as a user's manual. +It has been heavily based on a previous version of the manual, +prepared by Bruce Borden, Stockton Gaines, and Norman Shapiro. +.pp +\fIMH\fR is a particularly novel system, +and thus it is often more prone to change than other pieces of production +software. +As such, some specific points in this manual may not be correct in the +future. +In all cases, the on\-line sections of this manual, +available through the UNIX\** \fIman\fR command, +should present the most current information. +.(f +\** UNIX is a trademark of AT&T Bell Laboratories. +.)f +.pp +When reading this document as a user's manual, +certain sections are more interesting than others. +The Preface and Summary are not particularly interesting to those +interested in learning \fIMH\fR. +The Introduction is slightly more interesting, +as it touches upon the organization of the remainder of this document. +The most useful sections are the Overview, Tutorial, and Detailed +Description. +The Overview should be read by all \fIMH\fR users, regardless of their +expertise (beginning, novice, advanced, or hacker). +The Tutorial should be read by all beginning and novice \fIMH\fR users, +as it presents a nice description of the \fIMH\fR system. +The Detailed Description should be read by the day\-to\-day user of \fIMH\fR, +as it spells out all of the realities of the \fIMH\fR system. +The Advanced Features section discusses some powerful \fIMH\fR capabilities for +advanced users. +Appendix A is particularly useful for novices, +as it summarizes the invocation syntax of all the \fIMH\fR commands. +.pp +There are also several other documents which may be useful to you: +\fIThe RAND MH Message Handling System: Tutorial\fR, +which is a tutorial for \fIMH\fR; +\fIThe RAND MH Message Handling System: The UCI BBoards Facility\fR, +which describes the BBoards handling under \fIMH\fR; +\fIMH.5: How to process 200 messages a day and still get some real work +done\fR, +which was presented at the 1985 Summer Usenix Conference and +Exhibition in Portland, Oregon; +\fIMH: A Multifarious User Agent\fR, +which has been accepted for publication by Computer Networks; +\fIMZnet: Mail Service for Personal Micro\-Computer Systems\fR, +which was presented at the First International Symposium on Computer Message +Systems in Nottingham, U.K.; +and, +\fIDesign of the TTI Prototype Trusted Mail Agent\fR, +which describes a proprietary \*(lqtrusted\*(rq mail system built on \fIMH\fR. +There are also documents, mostly specific to U.C.\0Irvine which you may find +interesting: +\fIMH for Beginners\fR, and \fIMH for MM Users\fR. +All of these documents exist in the \fImh.6\fR distribution sent to your +site. +There's also a document, +\fIChanges to the RAND MH Message Handling System: MH.6\fR, +which describes user\-visible changes made to \fIMH\fR since the last major +release. +.pp +This manual is very large, as it describes a large, powerful system in +gruesome detail. +The important thing to remember is: +.sp 2 +.ce +.b "\s+4DON'T PANIC\s0\**" +.sp 2 +As explained in the tutorial, you really need to know only 5 commands to +handle most of your mail. +.(f +\** Note the large, \fIfriendly\fR letters. +.)f +.pp +Very advanced users may wish to consult +\fIThe RAND MH Message Handling System: Administrator's Guide\fR, +which is also present in the \fImh.6\fR distribution sent to your site. +.+c ACKNOWLEDGMENTS +.pp +The \fIMH\fR system described herein is based on the original RAND \fIMH\fR +system. +It has been extensively developed (perhaps too much so) by Marshall T. Rose and +John L. Romine at the University of California, Irvine. +Einar A. Stefferud, Jerry N. Sweet, and Terry P. Domae provided numerous +suggestions to improve the UCI version of \fIMH\fR. +Of course, +a large number of people have helped \fIMH\fR along. +The list of ``\fIMH\fR immortals'' is too long to list here. +However, Van Jacobson deserves a special acknowledgement for his tireless +work in improving the performance of \fIMH\fR. +Some programs have been speeded-up by a factor of 10 or 20. +All of users of \fIMH\fR, everywhere, owe a special thanks to Van. +For this release, numerous \fIMH\-Workers\fP sent in fixes and other +changes. A handful of courageous \fIMH\-Workers\fP volunteered +to beta\-test these changes; their help is particularly appreciated. +.pp +This manual is based on the original \fIMH\fR manual written at RAND by +Bruce Borden, Stockton Gaines, and Norman Shapiro. +.+c PREFACE +.pp +This report describes a system for dealing with messages transmitted on a +computer. Such messages might originate with other users of the same +computer or might come from an outside source through a network to which the user's +computer is connected. Such computer-based message systems are +becoming increasingly widely used, both within and outside the Department +of Defense. +.pp +The message handling system \fIMH\fR was developed for two reasons. +One was to investigate some +research ideas concerning how a message system might take advantage of +the architecture of the UNIX time-sharing operating system for +Digital Equipment Corporation PDP-11 and VAX computers, and the special +features of UNIX's command-level interface with the user (the +\*(lqshell\*(rq). The other reason was to provide a better and more +adaptable base than that of conventional designs +on which to build a command and control message system. +The effort has succeeded in both +regards, although this report mainly describes the message system itself +and how it fits in with UNIX. +.pp +The present report should be of interest to three groups of readers. First, +it is a complete reference manual for the users of \fIMH\fR. +Second, it should be +of interest to those who have a general knowledge of computer-based +message systems, both in civilian and military applications. Finally, +it should be of interest to those who build large subsystems that +interface with users, since it illustrates a new approach to such +interfaces. +.pp +The original \fIMH\fR system was developed by Bruce Borden, +using an approach suggested by Stockton Gaines and Norman Shapiro. +Valuable assistance was provided by Phyllis Kantar in the later +stages of the system's implementation. +Several colleagues +contributed to the ideas included in this system, particularly +Robert Anderson and David Crocker. +In addition, valuable experience +in message systems, and a valuable source of ideas, was available +to us in the form of a previous message system for UNIX called +MS, designed at RAND by David Crocker. +.pp +This report was originally prepared as part of the RAND project entitled +\*(lqData Automation Research\*(rq, sponsored by Project AIR FORCE. +.+c SUMMARY +.pp +Electronic communication of text messages is becoming +commonplace. Computer-based message systems\-software +packages that provide tools for dealing with messages\-are used in many +contexts. In particular, message systems are becoming +increasingly important in command and control and intelligence +applications. +.pp +This report describes a message handling system called \fIMH\fR. +This system provides the user +with tools to compose, send, receive, store, retrieve, forward, and +reply to messages. \fIMH\fR has been built on the UNIX time-sharing system, +a popular operating system developed for the DEC PDP-11 and VAX classes of +computers. +.pp +A complete description of \fIMH\fR is given for users of +the system. For those who do not intend to use the system, this description +gives a general idea of what a message system is like. The system involves +some new ideas about how large subsystems can be constructed. +.pp +The interesting and unusual features of \fIMH\fR include the +following: The user command interface to \fIMH\fR is the UNIX \*(lqshell\*(rq +(the standard UNIX command interpreter). Each separable +component of message handling, such as message composition or +message display, is a separate command. Each program is driven from +and updates a private user environment, which is stored as a file +between program invocations. This private environment also contains +information to \*(lqcustom tailor\*(rq \fIMH\fR to the individual's tastes. +\fIMH\fR stores each message as a separate file under UNIX, and it utilizes the +tree-structured UNIX file system to organize groups of files within +separate directories or \*(lqfolders\*(rq. All of the UNIX facilities +for dealing with files and directories, such as +renaming, copying, deleting, cataloging, off-line printing, etc., are +applicable to messages and directories of messages (folders). Thus, +important capabilities needed in a message system are available in \fIMH\fR +without the need (often seen in other message systems) for code that +duplicates the facilities of the supporting operating system. +It also allows users familiar with the shell to use \fIMH\fR with minimal +effort. +.he '''' +@@BEGIN: BSD44 +.eh 'USD:8-%''The RAND Message Handling System: User Manual' +.oh 'The RAND Message Handling System: User Manual''USD:8-%' +@@END: BSD44 +.fo '''' +.bp +.ce +.b \\s12CONTENTS\\s0 +.sp 3 +.xp y +.xp x +.bp +.\" And now the COVER sheet +.po +.325i +.ll 32P +.nf + +.sp 1.5in +.ps 24 +.vs 32 +.ft B +.ce 4 +THE RAND MH +MESSAGE HANDLING +SYSTEM: +USER'S MANUAL +.ft R +.sp .8i +.ps 20 +.vs 24 +.ce +UCI Version +.sp 0.7i +.ce 2 +Marshall T. Rose +John L. Romine +.sp 0.5i +.ce 2 +Based on the original manual by +Borden, Gaines, and Shapiro +.vs +.sp 1i +.ps 18 +.vs 22 +.ce 2 +\*(td +\*(MH +@ + + +1.29 +log +@update HOW TO GET MH; make it a new section +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.28 1995/12/05 19:35:25 jromine Exp jromine $ +d2126 1 +a2126 1 +.+c "HOW TO GET MH" +d2130 11 +a2140 4 +There are two ways to get the latest release: +.pp +1. If you can FTP to the ARPA Internet, use anonymous FTP to +retrieve \*(lqftp://ftp.ics.uci.edu/pub/mh/mh-6.8.tar.Z\*(rq. +a2146 3 +This tar file is also available on many mirror sites, such +as \*(lqftp://ftp.uu.uunet/networking/mail/mh/mh-6.8.tar.Z\*(rq +or \*(lqhttp://wuarchive.wustl.edu/packages/mail/mh/mh-6.8.tar.Z\*(rq. +d2150 1 +a2150 1 +either ftp.ics.uci.edu or a site that mirrors ftp.ics.uci.edu. +d2152 1 +a2152 1 +2. You can send $75 US to the address below. +@ + + +1.28 +log +@fix distribution address/phone +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.27 1994/04/15 23:12:03 jromine Exp jromine $ +d2126 1 +a2126 2 +.lp +.b "HOW TO GET MH" +d2133 1 +a2133 1 +ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.8.tar.Z. +d2135 3 +a2137 2 +(approximately 1.8MB). There should also be a \fBREADME\fR file in +that directory which tells what the current release of \fIMH\fP +d2140 4 +a2143 2 +This tar file is also available on louie.udel.edu +[128.175.1.3] in portal/mh-6.8.tar.Z. You may also find MH on +d2146 1 +a2146 1 +either ics.uci.edu or louie.udel.edu. +@ + + +1.27 +log +@add BSD44 headings +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.26 1992/12/02 19:03:15 jromine Exp jromine $ +a2159 1 +Computing Support Group +d2161 1 +a2161 1 +Department of Information and Computer Science +d2163 1 +a2163 1 +Irvine, CA 92717 +d2165 1 +a2165 1 +714/856-7554 +@ + + +1.26 +log +@update release name to 6.8 +@ +text +@d2 5 +a6 1 +.\" @@(#)$Id: MH.rf,v 1.25 1992/10/28 17:02:04 jromine Exp jromine $ +d38 4 +d958 4 +d1121 4 +d1127 4 +d1161 4 +d1167 4 +d1940 4 +d2074 4 +d2363 4 +@ + + +1.25 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.24 1992/10/28 17:00:15 jromine Exp jromine $ +d2098 1 +a2098 1 +ics.uci.edu [128.195.1.1] and retrieve the file pub/mh/mh-6.7.tar.Z. +d2100 1 +a2100 1 +(approximately 1.5MB). There should also be a \fBREADME\fR file in +d2105 1 +a2105 1 +[128.175.1.3] in portal/mh-6.7.tar.Z. You may also find MH on +@ + + +1.24 +log +@move mhparam to (1) +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.23 1992/10/27 20:09:23 jromine Exp jromine $ +d1101 1 +a1102 1 +.so slocal.me +@ + + +1.23 +log +@MPOP +slocal.me +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.22 1992/02/06 19:25:07 jromine Exp jromine $ +d1081 1 +a1139 1 +.so mhparam.me +@ + + +1.22 +log +@make .Uh use smaller font +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.21 1992/02/06 17:14:39 jromine Exp jromine $ +d1077 1 +d1079 1 +d1087 1 +a1087 1 +@@BEGIN: POP +d1089 1 +a1089 1 +@@END: POP +d1101 1 +@ + + +1.21 +log +@add mhparam +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.20 1992/02/06 00:17:16 jromine Exp jromine $ +d980 1 +a980 1 +.b "\\$1" +@ + + +1.20 +log +@private -> nopublic +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.19 1992/02/04 21:12:43 jromine Exp jromine $ +d1134 1 +d1136 1 +a1136 1 +.so fmtdump.me +@ + + +1.19 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.18 1992/02/04 00:04:09 jromine Exp jromine $ +d1342 1 +a1342 1 +This can be overridden with the `\-public' and `\-private' switches. +@ + + +1.18 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.17 1992/01/31 16:40:45 jromine Exp jromine $ +d1085 3 +@ + + +1.17 +log +@move fmtdump to admin manula +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.16 1992/01/31 16:40:07 jromine Exp jromine $ +d769 1 +@ + + +1.16 +log +@Multimedia MH +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.15 1991/01/25 15:49:34 mh Exp jromine $ +a1069 1 +.so fmtdump.me +@ + + +1.15 +log +@add fmtdump +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.14 91/01/07 16:13:54 mh Exp Locker: mh $ +d1070 1 +d1077 1 +@ + + +1.14 +log +@add Uh macro +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.13 90/12/27 15:06:28 mh Exp $ +d1130 1 +@ + + +1.13 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.12 90/12/26 16:54:56 mh Exp Locker: mh $ +d974 8 +@ + + +1.12 +log +@document user-defined sequence ranges +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.11 90/04/10 21:20:18 sources Exp Locker: mh $ +d1117 1 +d1924 1 +a1924 1 +.ta \w'signed-number 'u +\w':= 'u +\w'user-defined-sequence 'u +d1943 1 +a1943 1 +msg-range := msg\*(lq-\*(rqmsg | +d1949 1 +a1949 1 + \*(lq-\*(rq | +d1951 3 +@ + + +1.11 +log +@credit beta-test people +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.10 90/04/09 20:20:29 sources Exp Locker: sources $ +d1194 10 +d1234 1 +a1234 1 +the sequence is destroyed prior to being re\-defined +@ + + +1.10 +log +@fix "HOW TO GET..." section +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.9 90/04/08 19:40:46 sources Exp Locker: sources $ +d2203 3 +@ + + +1.9 +log +@tyop +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.8 90/04/08 19:35:49 sources Exp Locker: sources $ +d2058 2 +a2059 1 +.uh "HOW TO GET MH" +@ + + +1.8 +log +@how to get MH +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: MH.rf,v 1.7 90/04/05 15:10:54 sources Exp Locker: sources $ +d2059 1 +@ + + +1.7 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d2052 53 +a2104 5 +there are two Internet discussion groups, +\fBMH\-Users@@ICS.UCI.EDU\fR and \fBMH\-Workers@@ICS.UCI.EDU\fR. +If there is sufficient interest, +corresponding Usenet news groups may be established along with the +appropriate gateways. +@ + + +1.6 +log +@RAND fixes +@ +text +@d2 1 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d36 1 +a36 1 +.nr fm 5v \" Rand likes bigger than normal [3v] bottom margins +d47 1 +a47 1 +The Rand \fIMH\fR +d1692 1 +a1692 1 +In \fImh.1\fR (the original Rand \fIMH\fR\0) +d1985 1 +a1985 1 +Message System\fR, The Rand Corporation, R-2134-ARPA, December 1977. +d2011 1 +a2011 1 +Although the \fIMH\fR system was originally developed by the Rand Corporation, +d2013 1 +a2013 1 +the Rand Corporation assumes no responsibility for \fIMH\fR +d2037 1 +a2037 1 +the authors ask only that you provide appropriate credit to the Rand +d2040 1 +a2040 1 +\fIMH\fR is a software package that is supported neither by the Rand +d2058 1 +a2058 1 +This document describes the Rand \fIMH\fR Message Handling System. +d2095 1 +a2095 1 +\fIThe Rand MH Message Handling System: Tutorial\fR, +d2097 1 +a2097 1 +\fIThe Rand MH Message Handling System: The UCI BBoards Facility\fR, +d2117 1 +a2117 1 +\fIChanges to the Rand MH Message Handling System: MH.6\fR, +d2135 1 +a2135 1 +\fIThe Rand MH Message Handling System: Administrator's Guide\fR, +d2139 1 +a2139 1 +The \fIMH\fR system described herein is based on the original Rand \fIMH\fR +d2153 1 +a2153 1 +This manual is based on the original \fIMH\fR manual written at Rand by +d2196 1 +a2196 1 +MS, designed at Rand by David Crocker. +d2198 1 +a2198 1 +This report was originally prepared as part of the Rand project entitled +@ + + +1.4 +log +@changes for "bbhome: none" +@ +text +@a945 6 +.de TH \" backward -man compatibility +.SC \\$1 \\$2 +.. +.de SH \" backward -man compatibility +\\$1 +.. +@ + + +1.3 +log +@fixup for config.sed +@ +text +@d356 1 +d358 1 +d1052 1 +d1055 1 +@ + + +1.2 +log +@add .TH and .SH macros for makewhatis (getNAME.c) +@ +text +@d943 1 +a943 1 +.fo '[mh.6]'MH'UCI version' +d1112 1 +a1112 1 +.fo '[mh.6]'MH'UCI version' +@ + + +1.1 +log +@Initial revision +@ +text +@d944 6 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/ali.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/ali.rf,v new file mode 100644 index 0000000..896590f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/ali.rf,v @@ -0,0 +1,186 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.02.11.00.47.53; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.09.39; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.30.47; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.41.22; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.32.48; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.15.40.26; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.15.30.58; author sources; state Exp; +branches; +next ; + + +desc +@ +@ + + +1.7 +log +@document Aliasfile may be more than one file +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: ali.rf,v 1.6 1990/04/05 15:09:39 sources Exp jromine $ +.SC ALI 1 +.NA +ali \- list mail aliases +.SY +ali +\%[\-alias\ aliasfile] +\%[\-list] \%[\-nolist] +\%[\-normalize] \%[\-nonormalize] +\%[\-user] \%[\-nouser] +aliases\ ... +\%[\-help] +.DE +\fIAli\fR +searches the named mail alias files for each of the given \fIaliases\fR. +It creates a list of addresses for those \fIaliases\fR, +and writes that list on standard output. +If the `\-list' option is specified, each address appears on a separate line; +otherwise, the addresses are separated by commas and printed on +as few lines as possible. + +The `\-user' option directs \fIali\fR to perform its processing in an +inverted fashion: +instead of listing the addresses that each given alias expands to, +\fIali\fR will list the aliases that expand to each given address. +If the `\-normalize' switch is given, +\fIali\fR will try to track down the official hostname of the address. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read. +Each \fIalias\fR is processed as described in \fImh\-alias\fR\0(5). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/etc/passwd~^List of users +^/etc/group~^List of groups +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Aliasfile:~^For a default alias file +.Sa +mh\-alias(5) +.De +`\-alias @@(MHETCPATH)/MailAliases' +.Ds +`\-nolist' +.Ds +`\-nonormalize' +.Ds +`\-nouser' +.Co +None +.Bu +The `\-user' option with `\-nonormalize' is not entirely accurate, +as it does not replace local nicknames for hosts with their official +site names. +.En +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d30 1 +a30 1 +The file specified by the profile entry \*(lqAliasfile:\*(rq and any +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH ALI 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH ALI 1 [mh.6] MH +@ + + +1.2 +log +@document Aliasfile: profile entry +@ +text +@d2 2 +a3 2 +.SC ALI 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d29 2 +d37 3 +a39 1 +None +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/anno.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/anno.rf,v new file mode 100644 index 0000000..375e391 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/anno.rf,v @@ -0,0 +1,168 @@ +head 2.4; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +2.4 +date 90.04.05.15.08.00; author sources; state Exp; +branches ; +next 2.3; + +2.3 +date 90.03.22.11.30.48; author sources; state Exp; +branches ; +next 2.2; + +2.2 +date 90.03.20.19.41.24; author sources; state Exp; +branches ; +next 2.1; + +2.1 +date 90.03.20.17.35.42; author sources; state Exp; +branches ; +next 2.0; + +2.0 +date 89.11.17.15.56.31; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 89.11.17.15.44.16; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +2.4 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC ANNO 1 +.NA +anno \- annotate messages +.SY +anno +\%[+folder] \%[msgs] +\%[\-component\ field] +\%[\-inplace] \%[\-noinplace] +\%[\-date] \%[\-nodate] +\%[\-text\ body] +\%[\-help] +.DE +\fIAnno\fR annotates the specified messages in the named folder using +the field and body. +Annotation is optionally performed by \fIdist\fR, \fIforw\fR, and +\fIrepl\fR, +to keep track of your distribution of, forwarding of, and replies to a +message. +By using \fIanno\fR, +you can perform arbitrary annotations of your own. +Each message selected will be annotated with the lines + + field:\ date + field:\ body + +The `\-nodate' switch inhibits the date annotation, +leaving only the body annotation. +The `\-inplace' switch causes annotation to be done in place in order +to preserve links to the annotated message. + +The field specified should be a valid 822-style message field name, +which means that it should consist of alphanumerics (or dashes) only. +The body specified is arbitrary text. + +If a `\-component\ field' is not specified when \fIanno\fR is invoked, +\fIanno\fR will prompt the user for the name of field for the annotation. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +dist (1), forw (1), repl (1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noinplace' +.Ds +`\-date' +.Co +If a folder is given, it will become the current folder. +The first message annotated will become the current message. +.En +@ + + +2.3 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +2.2 +log +@typo +@ +text +@d2 2 +a3 2 +.TH ANNO 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +2.1 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH ANNO 1 [mh.6] MH +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d2 2 +a3 2 +.SC ANNO 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d10 1 +d27 2 +d52 2 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/ap.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/ap.rf,v new file mode 100644 index 0000000..83ba160 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/ap.rf,v @@ -0,0 +1,209 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.10.21; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.30.49; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.41.25; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.35.43; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.15.57.20; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.15.56.13; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: ap.rf,v 1.6 1990/04/05 15:10:21 sources Exp jromine $ +.SC AP 8 +.NA +ap \- parse addresses 822-style +.SY +@@(MHETCPATH)/ap +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-normalize] \%[\-nonormalize] +\%[\-width\ columns] +addrs\ ... +\%[\-help] +.DE +\fIAp\fR is a program that parses addresses according to the ARPA Internet +standard. +It also understands many non\-standard formats. +It is useful for seeing how \fIMH\fR will interpret an address. + +The \fIap\fR program treats each argument as one or more addresses, +and prints those addresses out in the official 822\-format. +Hence, it is usually best to enclose each argument in double\-quotes for the +shell. + +To override the output format used by \fIap\fR, +the `\-format\ string' or `\-format\ file' switches are used. +This permits individual fields of the address to be extracted with ease. +The string is simply a format stringand thefile is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +In addition to the standard escapes, +\fIap\fR also recognizes the following additional escape: +.sp 1 +.nf +.ta \w'Escape 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +error string A diagnostic if the parse failed +.re +.fi + +If the `\-normalize' switch is given, +\fIap\fR will try to track down the official hostname of the address. + +Here is the default format string used by \fIap\fR: + +.ti +.5i +%<{error}%{error}: %{text}%|%(putstr(proper{text}))%> + +which says that if an error was detected, print the error, a `:', +and the address in error. +Otherwise, output the 822\-proper format of the address. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@@(MHETCPATH)/mtstailor~^tailor file +.Pr +None +.Sa +dp(8), +.br +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +`\-format' defaults as described above +.Ds +`\-normalize' +.Ds +`\-width' defaults to the width of the terminal +.Co +None +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIap\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. +.En +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d5 1 +a5 1 +ap \- parse addresses 822\-style +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH AP 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH AP 8 [mh.6] MH +@ + + +1.2 +log +@fixup +@ +text +@d2 2 +a3 2 +.SC AP 8 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d31 2 +a32 1 +\fIscan\fR also recognizes the following additional escape: +d34 3 +a36 3 +.ta \w'escape 'u +\fIescape\fR \fIsubstitution\fR +error a diagnostic if the parse failed +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bbaka.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bbaka.rf,v new file mode 100644 index 0000000..1355851 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bbaka.rf,v @@ -0,0 +1,121 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.11.03; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.30.50; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.26; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.44; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.19.59; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC BBAKA 8 +.NA +bbaka \- generate an alias list for BBoards +.SY +@@(BBHOME)/bbaka +\%[system] +.DE +The \fIbbaka\fR program reads the BBoards database and produces on its +standard output a file suitable for inclusion in either the \fIMMDF\-II\fR +aliases file (if the argument `system' is given). +If the argument is not given, +then \fIbbaka\fR produces on its standard output a file suitable for becoming +the @@(MHETCPATH)/BBoardsAliases file. +.Fi +^@@(BBHOME)/BBoards~^BBoards database +^@@(MHETCPATH)/BBoardsAliases~^BBoards aliases file for \fIMH\fR +.Pr +None +.Sa +bboards(5) +.De +None +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBAKA 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBAKA 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBAKA 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bbc.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bbc.rf,v new file mode 100644 index 0000000..8a6e8c2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bbc.rf,v @@ -0,0 +1,326 @@ +head 2.6; +access; +symbols; +locks; strict; + + +2.6 +date 95.12.06.22.48.30; author jromine; state Exp; +branches; +next 2.5; + +2.5 +date 92.02.05.21.00.33; author jromine; state Exp; +branches; +next 2.4; + +2.4 +date 90.04.05.15.07.52; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.03.22.11.30.51; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.03.20.19.41.27; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.03.20.17.35.45; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.33; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.06.02.11.27.08; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.6 +log +@fixup some envar references +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: bbc.rf,v 2.5 1992/02/05 21:00:33 jromine Exp jromine $ +.SC BBC 1 +.NA +bbc \- check on BBoards +.SY +bbc +\%[bboards\ ...] +\%[\-topics] \%[\-check] \%[\-read] +\%[\-quiet] \%[\-verbose] +\%[\-archive] \%[\-noarchive] +\%[\-protocol] \%[\-noprotocol] +\%[\-mshproc\ program] +\%[switches\ for\ \fImshproc\fR] +\%[\-rcfile rcfile] \%[\-norcfile] +\%[\-file\ BBoardsfile] \%[\-user\ BBoardsuser] +@@BEGIN: BPOP +\%[\-host\ host] +\%[\-rpop] \%[\-norpop] +@@END: BPOP +@@BEGIN: NNTP +\%[\-host\ host] +@@END: NNTP +\%[\-help] +.DE +\fIbbc\fR is a BBoard +reading/checking program that interfaces to the BBoard +channel. + +The \fIbbc\fR program has three action switches which direct its operation: + +The `\-read' switch invokes the \fImsh\fR program on the named +\fIBBoards\fR. If you also specify +the `\-archive' switch, then \fIbbc\fR will invoke the \fImsh\fR program on +the archives of the named \fIBBoards\fR. If no \fIBBoards\fR are given +on the command line, and you specified `\-archive', +\fIbbc\fR will not read your `bboards' profile entry, but will +read the archives of the \*(lqsystem\*(rq \fIBBoard\fR instead. + +The `\-check' switch types out status information for the named \fIBBoards\fR. +\fIbbc\fR +can print one of several messages depending on the status of both the +BBoard +and the user's reading habits. +As with each of these messages, the number +given is the item number of the last item placed in the +BBoard. +This number (which is marked in the messages as the \*(lqBBoard\-Id\*(rq) is +ever increasing. Hence, when \fIbbc\fR +says \*(lqn items\*(rq, it really means that the highest BBoard\-Id is \*(lqn\*(rq. +There may, or may not actually be \*(lqn\*(rq items in the BBoard. +Some common messages are: +.in +1i + +.ti -.5i +\fBBBoard \-\- n items unseen\fR +.br +This message tells how many items the user has not yet seen. +When invoked with the `\-quiet' switch, +this is the only informative line that \fIbbc\fR will possibly print out. + +.ti -.5i +\fBBBoard \-\- empty\fR +.br +The BBoard is empty. + +.ti -.5i +\fBBBoard \-\- n items (none seen)\fR +.br +The BBoard has items in it, but the user hasn't seen any. + +.ti -.5i +\fBBBoard \-\- n items (all seen)\fR +.br +The BBoard is non\-empty, and the user has seen everything in it. + +.ti -.5i +\fBBBoard \-\- n items seen out of m\fR +.br +The BBoard has at most m\-n items that the user has not seen. +.in -1i + +The `\-topics' switch directs \fIbbc\fR to print three items about the named +\fIBBoards\fR: +it's official name, +the number of items present, +and the date and time of the last update. +If no \fIBBoards\fR +are named, then all BBoards +are listed. If the `\-verbose' switch is given, more information is output. + +The `\-quiet' switch specifies that \fIbbc\fR should be silent if no +\fIBBoards\fR are found with new information. +The `\-verbose' switch specifies that \fIbbc\fR is to consider you to be +interested in \fIBBoards\fR that you've already seen everything in. + +To override the default \fImshproc\fR and the profile entry, +use the `\-mshproc\ program' switch. +Any arguments not understood by \fIbbc\fR are passed to this program. +The `\-protocol' switch tells \fIbbc\fR that your \fImshproc\fR knows about +the special \fIbbc\fR protocol for reporting back information. +\fImsh\fR\0(1), the default \fImshproc\fR, knows all about this. + +The `\-file\ BBoardsfile' switch tells \fIbbc\fR to use a non\-standard +\fIBBoards\fR file when performing its calculations. +Similarly, the `\-user BBoardsuser' switch tells \fIbbc\fR to use a +non\-standard username. +Both of these switches are useful for debugging a new \fIBBoards\fR or +\fIPOP\fR file. +@@BEGIN: BPOP + +If the local host is configured as a POP BBoards client, +or if the `\-host\ host' switch is given, +then \fIbbc\fR will query the POP service host as to the status of the BBoards. +The `\-user\ user' switch then takes on a new meaning: +it refers to the name of the guest account for BBoards on the service host. +The `\-rpop' switch uses the UNIX \fIrPOP\fR +(authentication done via trusted connections). +In contrast, the `\-norpop' switch uses the ARPA \fIPOP\fR +(in which case \fIbbc\fR will prompt for a password, +unless the \-user specifies the guest account). +@@END: BPOP +@@BEGIN: NNTP + +If the local host is configured as an NNTP BBoards client, +or if the `\-host\ host' switch is given, +then \fIbbc\fR will query the NNTP service host +as to the status of the BBoards. +For NNTP BBoards clients, +the `\-user\ user' and the `\-rpop' switches are ignored. +@@END: NNTP + +The \fI\&.bbrc\fR file in the +user's \fB$HOME\fR directory +is used to keep track of what messages have been read. +The `\-rcfile\ rcfile' switch overrides the use of \fI\&.bbrc\fR for +this purpose. +If the value given to the switch is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. +If this switch is not given (or the `\-norcfile' switch is given), +then \fIbbc\fR consults the envariable \fBMHBBRC\fR, +and honors it similarly. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$HOME/\&.bbrc~^BBoard \*(lqcurrent\*(rq message information +.Pr +^Path:~^To determine the user's MH directory +.Ps +^bboards:~^To specify interesting BBoards +.Ps +^mshproc:~^Program to read a given BBoard +.Sa +bbl(1), bboards(1), msh(1) +.De +`\-read' +.Ds +`\-noarchive' +.Ds +`\-protocol' +.Ds +`bboards' defaults to \*(lqsystem\*(rq +.Ds +`\-file @@(BBHOME)/BBoards' +.Ds +`\-user bboards' +@@BEGIN: BPOP +`\-rpop' unless the guest account for BBoards is used +@@END: BPOP +.Co +None +.Bu +The `\-user' switch takes effect only if followed by the `\-file' switch. +.En +@ + + +2.5 +log +@describe .bbrc a little better +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: bbc.rf,v 2.4 1990/04/05 15:07:52 sources Exp jromine $ +d142 1 +a142 1 +then \fIbbc\fR consults the envariable \fB$MHBBRC\fR, +@ + + +2.4 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d133 3 +d137 1 +a137 1 +user\-specific BBoards information. +a143 2 +If this envariable is not set, +then the file \fI\&.bbrc\fR in the user's \fB$HOME\fR directory is used. +d146 1 +a146 1 +^$HOME/\&.bbrc~^BBoard information +@ + + +2.3 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +2.2 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBC 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +2.1 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBC 1 [mh.6] MH +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d2 2 +a3 2 +.SC BBC 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d20 3 +d122 9 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bbexp.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bbexp.rf,v new file mode 100644 index 0000000..e5c2cf1 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bbexp.rf,v @@ -0,0 +1,124 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.11.10; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.30.52; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.28; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.46; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.10; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC BBEXP 8 +.NA +bbexp \- expunge the BBoards area +.SY +@@(BBHOME)/bbexp +\%[\-\fIfirst\-metric\fR] \%[\-\fIsecond\-metric\fR] +\%[bboards\ ...] +.DE +The \fIbbexp\fR program reads the BBoards database and calls \fImsh\fR to +archive the named BBoards (or all BBoards if none are specified). + +The first\-metric (which defaults to 12) gives the age in days of the +\*(lqBB\-Posted:\*(rq field for messages which should be expunged. +The second\-metric (which defaults to 20) gives the age in days of the +\*(lqDate:\*(rq field for messages which should be expunged. +Any message which meets either metric will be either archived or removed, +depending on what the \fIBBoards\fR\0(5) file says. +.Fi +^@@(BBHOME)/BBoards~^BBoards database +.Pr +None +.Sa +msh(1), bboards(5) +.De +None +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBEXP 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBEXP 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBEXP 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bbl.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bbl.rf,v new file mode 100644 index 0000000..f5ad02a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bbl.rf,v @@ -0,0 +1,295 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.11.17; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.30.53; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.29; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.47; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.30; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC BBL 1 +.NA +bbl \- manage a BBoard +.SY +bbl +\%[+folder] +\%[\-shell\ program] +\%[\-verbose] \%[\-noverbose] +bboard +\%[\-help] +.DE +\fIbbl\fR allows a \fIBBleader\fR to manage a BBoard. +The process is relatively simple: a \fIBBleader\fR +invokes the \fIbbl\fR program to set\-up an environment in which the messages +contained in the BBoard +may be accessed as if they were messages in an \fIMH\fR folder. + +To do this, \fIbbl\fR, \fIincs\fR the \fIBBoard\fR +to the folder \*(lq+bbl\*(rq, and \fIincs\fR the archives for the \fIBBoard\fR +to the folder \*(lq+bbl/arc\*(rq. The \fIBBleader\fR +then gets a new shell in which \fIMH\fR +commands (among others) may be executed. When the \fIBBleader\fR +is done, CTRL\-D is typed, which terminates the shell. \fIbbl\fR then +asks the \fIBBleader\fR +as to how the BBoard +should be reconstructed. +Usually, this results in zeroing the existing \fIBBoard\fR +file, and \fIpack\fRing the \*(lq+bbl\*(rq folder into the \fIBBoard\fR +file. Similar actions are taken for the archive. + +The `\-shell' switch specifies what process that \fIbbl\fR should invoke +as your command interpreter. This need not be a rooted filename. +If this switch is not specified, +\fIbbl\fR looks at the envariable \fB$SHELL\fR for a value. +If this envariable is not set, then \fIbbl\fR uses your login shell. + +The `\-verbose' switch directs \fIbbl\fR to type the shell commands that it +executes to get the job done (e.g., \fIchmod\fR\0s, \fIinc\fR\0s, etc.) + +As \fIbbl\fR processing is most likely not intuitively obvious to most +prospective BBoard\-leaders, a short diatribe is in order. As pointed out in +\fIBBleader\fR(1), +a BBoard\-leader (of the fictitious BBoard \*(lqhacks\*(rq) +has three primary maintenance functions: +.in +.5i + +.ti -.5i +\fBRead the BBoard\fR +.br +You don't need \fIbbl\fR +to do this, use \fIbbc\fR instead. + +.ti -.5i +\fBRemove inappropriate material\fR +.br +Do this by running \fIbbl\fR. +An example of this might be: +.sp +.nf +\01 % bbl hacks +\02 [ Working folder is +bbl, Archive folder is +bbl/arc ] +\03 [ Type CTRL\-D to finish ] +\04 % scan +.ta \w'\05 'u +\w'20 'u +\w'10/14 'u +\w'1345-PDT 'u +\w'Reasonable Person 'u +\05 20 10/14 1345-PDT Silly User Nonsensical message +\06 21 10/14 1707-PDT Silly User Another one +\07 22 10/14 2144-PDT Reasonable Person Legit message +.re +\09 % rmm 20 21 +\10 % \^D +\11 Incorporate changes? y +\12 Remove +bbl? y +\13 Update archives? n +\14 Remove +bbl/arc? y +\15 [+inbox now current] +\16 % +.fi +.sp +In item 1, the BBoard\-Leader invokes \fIbbl\fR +on the BBoard called \*(lqhacks\*(rq. The \fIbbl\fR +program responds by typing items 2 and 3 which tell the user what \fIMH\fR +folders are being used and that a sub\-shell is now in use (respectively). +The user does a scan of the +bbl folder +(\fIbbl\fR sets the current\-folder to be the one with the BBoard in it.) +and finds two messages that should be removed (numbers 20 and 21). +The user then removes these using the \fIrmm\fR +program (item 9) and then types a CTRL\-D to return to +\fIbbl\fR (item 10). +At this point, +\fIbbl\fR +asks how the BBoard should be reconstructed. Item 11 asks if the contents of +the +bbl folder should OVERWRITE the contents of the BBoard. The user +responds `yes', +that it should (hence the two \fIrmm\fR'd messages disappear). +Next on item 12, +the user is asked if the +bbl folder should be killed, since the BBoards +have been successfully updated, the user answers `yes'. +On item 13, the user is +asked if the archives should be updated. Since the user made no changes, the +answer `no' is made. (The user could have answered `yes' with no disastrous +effects, but knew that nothing had been updated). Finally, on item 14, the +user indicates that the +bbl/arc subfolder should be killed, by answering +`yes'. + +.ti -.5i +\fBArchive non\-recent material\fR +.br +Do this by running \fIbbl\fR. +An example of this might be: +.sp +.nf +\01 % bbl hacks +\02 [ Working folder is +bbl, Archive folder is +bbl/arc ] +\03 [ Type CTRL\-D to finish ] +\04 % scan +.ta \w'\05 'u +\w'20 'u +\w'10/14 'u +\w'1345-PDT 'u +\w'GFISHER@@UCI-20B 'u +\05 11 10/12 1905-PST Marshall Rose New MMail/BBck +\06 12 10/12 1916-PST Stephen Willson PATH, nfinger, and ls +\07 13 10/12 2329-PDT G@@UCI-20A 833-5122 hours +\08 14 10/13 1045-PDT MELLON@@UCI-20B Reporting line +\09 15 10/13 1112-PST Tim Shimeall Re: 833-5122 hours +\10 16 10/13 1045-PDT MELLON@@UCI-20B Reporting line +\11 17 10/13 2042-PST Dana Roode Ucifinger +\12 18 10/13 2045-PST Dana Roode Files in /usr/restores +\13 19 10/14 1028-PDT WILLSON@@UCI-20B Re: term no pause +\14 20 10/14 1345-PDT Martin Katz Re: term no pause +\15 21 10/14 1707-PDT SCRIBE@@UCI-20A Scribe Use +\16 22 10/14 2144-PDT GFISHER@@UCI-20B New Twemacs +\17 23 10/15 1227-PDT Rob Rittenhouse Re: New Twemacs +.re +\18 % file +bbl/arc \-src +bbl 11\-12 17\-20 21 +\19 % ^D +\20 Incorporate changes? y +\21 Remove +bbl? y +\22 Update archives? y +\23 Remove +bbl/arc? y +\24 [+inbox now current] +\25 % +.fi +.sp +The important command given is in item 18, in which the user \fIfiles\fR +some messages from +bbl into +bbl/arc. When CTRL\-D is typed, the user +directs \fIbbl\fR +to update both the BBoard and its archives, which does the proper action. +As an alternate to this scenario, +some creative \fIBBleaders\fR might use the \fIpick\fR command to do all of +the work: + +.in +.5i +.nf +pick \-sequence select \-before \-12 \-datefield BB-Posted \-zero +pick \-sequence select \-before \-20 \-nozero +scan select +refile select +bbl/arc +.fi +.in -.5i + +In order to facilitate the use of automation shell scripts, +if the standard input for \fIbbl\fR is \fInot\fR a tty, +then \fIbbl\fR will not ask any questions and will proceed as if +the user's answer was \*(lqyes\*(rq for all questions. +Hence, \fIbbl\fR may be run under \fIcron\fR\0(8) to provide for +automatic archiving. +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^incproc:~^Program to incorporate a mail drop into a folder +.Ps +^packproc:~^Program to pack a folder into a msgbox +.Ps +^rmfproc:~^Program to remove a folder +.Sa +bbc(1), bbleader(1), bboards(1) +.De +`+folder' defaults to \*(lqbbl\*(rq +.Ds +`\-nofile' +.Ds +`\-shell' defaults to \fB$SHELL\fR or your login shell +.Co +None +.Hi +In the early days of the UCI BBoards facility, +\fIBBleaders\fR actually used to run this program by hand. +Now, this \fIbbl\fR is often run automatically by the system to perform +automatic archiving. +.Bu +Note that \fIbbl\fR executes a lot of \fIMH\fR +commands, and as such, each of these commands can and will read +your \fI\&.mh\(ruprofile\fR for defaults. +Please read the \fBBUGS\fR section of \fImh\-profile\fR\0(5) +for some hints to help you avoid many silly problems. + +Also, \fIbbl\fR is unforgiving in doing exactly what it is told, +so take special care in answering \fIbbl\fR's questions. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBL 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBL 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBL 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bbleader.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bbleader.rf,v new file mode 100644 index 0000000..e7c1c22 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bbleader.rf,v @@ -0,0 +1,216 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.11.34; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.30.54; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.30; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.35.48; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.38; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: bbleader.rf,v 1.5 1990/04/05 15:11:34 sources Exp jromine $ +.SC BBLEADER 1 +.NA +BBleader \- responsiblities of an MH BBoard-leader +.SY +bbl +bboard +\%[+folder] +\%[\-shell\ shell] +\%[\-verbose] +\%[\-help] +.DE +What follows is a description of the responsibilities of a BBleader. +This is a working collection of facts: +there are no simple or elegant rules. +In the discussion that follows, +substitute in the name of your BBoard wherever you see the ficticious +name ``hacks''. + +.in +.5i +.ti -.5i +\fBPreliminary Maintenance\fR +.br +When you are appointed a BBleader by the person who is acting as the +\fIPostMaster\fR you should first make sure that +the four addresses associated with your BBoard are correct +(see \fIbboards\fR\0(1)). +To check this, try \*(lqbbc -topics -verbose hacks\*(rq. +You should be listed under local leader(s), and the BBoard addresses should +be correct. + +.ti -.5i +\fBPeriodic Maintenance\fR +.br +There are three functions that you should perform periodically: +.in +.75i +.br +.ti -.5i +\fBRead the BBoard\fR\0: +If you're a BBoard leader you should be keeping up on what's going on. +.br +.ti -.5i +\fBRemove inappropriate material\fR\0: +If offsensive or otherwise non-sensical material shows up, +or if a duplicate message appears, +use the \fIBBl\fR program, delete the offending messages from the folder. +.br +.ti -.5i +\fBArchive non-recent material\fR\0: +The archive facility has been upgraded to be almost fully automated. +BBoards with the Auto-Archive flag set will have old material automatically +placed in the archive area once a week. You may also archive material +yourself if you like, or if your BBoard is not set to Auto-Archive. +Just file messages in the folder ``+bbl'' into the folder ``+bbl/arc'' +You should archive material whenever it takes a long time to read in a +BBoard using \fIbbc\fR and \fImsh\fR. +The only exception to this is (possibly) the \fBap-news\fR and +\fBny-times\fR BBoards, +in which case non-recent material is usually deleted, +and an archive is not kept. +.in -.75i + +.ti -.5i +\fBSporadic Maintenance\fR +.br +As a BBoard leader +there are three groups of people that you will be required to deal with: +.in +.75i +.br +.ti -.5i +\fBBBoard users\fR\0: +Correspondence from BBoard users is usually addressed to +\fBlocal\-hacks\-request\fR. +Although the nature of such correspondence varies, +the most usual topic is how to get access to archives for the BBoard. +In such cases, if the archives are on-line in the ~bboards/archive/ area, +then you should refer the BBoard user to the appropriate files. +If not, then you should contact the \fIPostMaster\fR and ask +for archive retrieval. +Archives may be accessed through the normal +\fIbbc\fR and \fImsh\fR programs, using the `\-archive' switch to \fIbbc\fR. +.br +.ti -.5i +\fBBBoard leaders\fR\0: +You may have to correspond with the people who maintain the +\fBInternet\fR mailing list for the BBoard. +Their address is \fBhacks\-request\fR. +.br +.ti -.5i +\fBPostOffice personnel\fR\0: +You may need help or advice. The address to turn to is \fIPostMaster\fR. +.in -.75i +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +bboards(1), bbc(1), bbl(1), msh(1) +.De +The default bboard is \*(lqsystem\*(rq +.Co +None +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d5 1 +a5 1 +BBleader \- responsiblities of a BBoard\-leader +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBLEADER 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBLEADER 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBLEADER 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bboards.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bboards.rf,v new file mode 100644 index 0000000..34c7092 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bboards.rf,v @@ -0,0 +1,203 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 94.04.15.23.10.56; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.11.40; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.30.55; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.32; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.35.49; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.39; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@note NNTP interaction, but mostly, just make +this page a little longer to work-around a troff +problem +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: bboards.rf,v 1.5 1990/04/05 15:11:40 sources Exp jromine $ +.SC BBOARDS 1 +.NA +bboards \- the UCI BBoards facility +.SY +bbc +\%[\-check] +\%[\-read] +bboards ... +\%[\-help] +.DE +The home directory of \fIbboards\fR is where the BBoard system is kept. +This documentation describes some of the nuances of the BBoard system. + +Note that if your system is configured to use the Network News +Transfer Protocol (\fBNNTP\fP) to read BBoards, +@@BEGIN: NNTP +(your system does seem to be configured this way), +@@END: NNTP +then there is no local bboards setup; instead, \fIbbc\fP +opens an \fBNNTP\fP connection to the local server. + +.in +.5i +.ti -.5i +\fBBBoards, BBoard\-IDs\fR +.br +A BBoard is just a file containing a group of messages relating to the same +topic. +These files live in the ~bboards home directory. +Each message in a BBoard file has in its header the line +\*(lqBBoard-Id: n\*(rq, +where \*(lqn\*(rq is an ascending decimal number. +This id-number is unique for each message in a BBoards file. +It should NOT be confused with the message number of a message, +which can change as messages are removed from the BBoard. + +.ti -.5i +\fBBBoard Handling\fR +.br +To read BBoards, use the \fIbbc\fR and \fImsh\fR programs. +The \fImsh\fR command is a monolithic program which contains all the +functionality of \fIMH\fR in a single program. +The `\-check' switch to \fIbbc\fR lets you check on the status of BBoards, +and the `\-read' switch tells \fIbbc\fR to invoke \fImsh\fR to read +those BBoards. + +.ti -.5i +\fBCreating a BBoard\fR +.br +Both public, and private BBoards are supported. +Contact the mail address \fIPostMaster\fR if you'd like to have a BBoard +created. + +.ti -.5i +\fBBBoard addresses\fR +.br +Each BBoard has associated with it 4 addresses, +these are (for the ficticious BBoard called ``hacks''): +.in +.75i +.br +.ti -.5i +\fBhacks\fR\0: The Internet wide distribution list. +.br +.ti -.5i +\fBdist-hacks\fR\0: The local BBoard. +.br +.ti -.5i +\fBhacks-request\fR\0: +The people responsible for the BBoard at the Internet level. +.br +.ti -.5i +\fBlocal-hacks-request\fR\0: +The people responsible for the BBoard locally. +.in -.75i +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$HOME/\&.bbrc~^BBoard information +.Pr +^Path:~^To determine the user's MH directory +.Ps +^bboards:~^To specify interesting BBoards +.Ps +^mshproc:~^Program to read a given BBoard +.Sa +bbc(1), bbl(1), bbleader(1), msh(1) +.De +The default bboard is \*(lqsystem\*(rq +.Co +None +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d15 8 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBOARDS 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBOARDS 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBOARDS 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bboards5.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bboards5.rf,v new file mode 100644 index 0000000..547b854 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bboards5.rf,v @@ -0,0 +1,145 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.11.49; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.30.56; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.33; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.50; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.40; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC BBOARDS 5 +.NA +BBoards \- BBoards database +.SY +@@(BBHOME)/BBoards +.DE +The BBoards database +contains for each BBoard the following information: + +.nf +.ta \w'encrypted password 'u +\fIfield\fR \fIvalue\fR +name the name of the BBoard +aliases local aliases for the BBoard + (separated by commas) +primary file the .mbox file +encrypted password leadership password +leaders local list maintainers (separated by commas) + usernames from the \fIpasswd\fR\0(5) file, + or groupnames preceded by `=' from the + \fIgroup\fR\0(5) file +network address the list address +request address the list maintainer's address +relay the host acting as relay for the local domain +distribution sites (separated by commas) +flags special flags (see ) +.re +.fi + +This is an ASCII file. Each field within each BBoard's entry +is separated from the next by a colon. +Each BBoard entry is separated from the next by a new-line. +If the password field is null, no password is demanded; +if it contains a single asterisk, then no password is valid. + +This file resides in the home directory of the login \*(lqbboards\*(rq. +Because of the encrypted passwords, +it can and does have general read permission. +.Fi +^@@(BBHOME)/BBoards~^BBoards database +.Sa +bbaka(8), bbexp(8), bboards (8), bbtar(8) +.Bu +A binary indexed file format should be available for fast access. + +Appropriate precautions must be taken to lock the file against changes +if it is to be edited with a text editor. +A \fIvibb\fR program is needed. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBOARDS 5 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBOARDS 5 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBOARDS 5 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bboards8.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bboards8.rf,v new file mode 100644 index 0000000..a30a957 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bboards8.rf,v @@ -0,0 +1,140 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.11.57; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.30.57; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.34; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.51; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.41; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC BBOARDS 8 +.NA +bboards \- BBoards channel/mailer +.SY +/usr/mmdf/chans/bboards +fd1 fd2 \%[y] + +.ti .5i +@@(MHETCPATH)/sbboards +bboard\ ... + +.ti .5i +@@(MHETCPATH)/sbboards +file maildrop directory bboards.bboard +.DE +For \fIMMDF\fR, the BBoards channel delivers mail to the BBoards system. +For \fISendMail\fR and stand\-alone \fIMH\fR, the SBBoards mailer performs +this task. + +For each address given, +these programs consult the \fIbboards\fR\0(5) file to ascertain information +about the BBoard named by the address. +The programs then perform local delivery, if appropriate. +After that, +with the exception of \fIsbboards\fR running under stand\-alone \fIMH\fR, +the programs perform redistribution, if appropriate. + +For redistribution, +the return address is set to be the request address at the local host, +so bad addresses down the line return to the nearest point of authority. +If any failures occur during redistribution, +a mail message is sent to the local request address. +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +^@@(BBHOME)/BBoards~^BBoards database +.Pr +None +.Sa +bboards(5), bbaka(8) +.De +None +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBOARDS 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBOARDS 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBOARDS 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/bbtar.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/bbtar.rf,v new file mode 100644 index 0000000..06b2467 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/bbtar.rf,v @@ -0,0 +1,140 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.12.03; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.30.59; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.35; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.52; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.42; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC BBTAR 8 +.NA +bbtar \- generate the names of archive files to be put to tape +.SY +@@(BBHOME)/bbtar +\%[private] \%[public] +.DE +The \fIbbtar\fR program reads the BBoards database and produces on its +standard output the names of BBoards archives which should be put to tape, +for direct use in a \fItar\fR\0(1) command. + +If the argument `private' is given, +only private BBoards are considered. +If the argument `public' is given, +only public BBoards are considered. +This lets the BBoards administrator write two tapes, +one for general read\-access (the public BBoards), +and one for restricted access. +The default is all BBoards + +For example: + +.nf +.in +.5i +cd archive # change to the archive directory +tar cv `bbtar private` # save all private BBoard archives +.in -.5i +.fi + +After the archives have been saved to tape, +they are usually removed. +The archives are then filled again, +usually automatically by cron jobs which run \fIbbexp\fR\0(8). +.Fi +^@@(BBHOME)/BBoards~^BBoards database +.Pr +None +.Sa +bboards(5), bbexp(8) +.De +None +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BBTAR 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BBTAR 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BBTAR 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/burst.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/burst.rf,v new file mode 100644 index 0000000..1bc3048 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/burst.rf,v @@ -0,0 +1,195 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.12.10; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.00; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.36; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.54; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.43; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC BURST 1 +.NA +burst \- explode digests into messages +.SY +burst +\%[+folder] \%[msgs] +\%[\-inplace] \%[\-noinplace] +\%[\-quiet] \%[\-noquiet] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +.DE +\fIBurst\fR considers the specified messages in the named folder to be +Internet digests, and explodes them in that folder. + +If `\-inplace' is given, +each digest is replaced by the \*(lqtable of contents\*(rq for the digest +(the original digest is removed). +\fIBurst\fR then renumbers all of the messages following the digest in the +folder to make room for each of the messages contained within the digest. +These messages are placed immediately after the digest. + +If `\-noinplace' is given, +each digest is preserved, +no table of contents is produced, +and the messages contained within the digest are placed at the end of +the folder. +Other messages are not tampered with in any way. + +The `\-quiet' switch directs \fIburst\fR to be silent about reporting +messages that are not in digest format. + +The `\-verbose' switch directs \fIburst\fR to tell the user the general +actions that it is taking to explode the digest. + +It turns out that \fIburst\fR works equally well on forwarded messages and +blind\-carbon\-copies as on Internet digests, +provided that the former two were generated by \fIforw\fR or \fIsend\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Msg\-Protect:~^To set mode when creating a new message +.Sa +\fIProposed Standard for Message Encapsulation\fR (aka RFC\-934), +.br +inc(1), msh(1), pack(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noinplace' +.Ds +`\-noquiet' +.Ds +`\-noverbose' +.Co +If a folder is given, it will become the current folder. +If `\-inplace' is given, +then the first message burst becomes the current message. +This leaves the context ready for a \fIshow\fR of the table of contents +of the digest, and a \fInext\fR to see the first message of the digest. +If `\-noinplace' is given, +then the first message extracted from the first digest burst becomes the +current message. +This leaves the context in a similar, but not identical, +state to the context achieved when using `\-inplace'. +.Bu +The \fIburst\fR program enforces a limit on the number of messages which may +be \fIburst\fR from a single message. +This number is on the order of 1000 messages. +There is usually no limit on the number of messages which may reside in the +folder after the \fIburst\fRing. + +Although \fIburst\fR uses a sophisticated algorithm to determine where one +encapsulated message ends and another begins, +not all digestifying programs use an encapsulation algorithm. +In degenerate cases, +this usually results in \fIburst\fR finding an encapsulation boundary +prematurely and splitting a single encapsulated message into two or more +messages. +These erroneous digestifying programs should be fixed. + +Furthermore, +any text which appears after the last encapsulated message is not placed +in a seperate message by \fIburst\fR. +In the case of digestified messages, +this text is usally an \*(lqEnd of digest\*(rq string. +As a result of this possibly un\-friendly behavior on the part of \fIburst\fR, +note that when the `\-inplace' option is used, +this trailing information is lost. +In practice, +this is not a problem since correspondents usually place remarks in text +prior to the first encapsulated message, +and this information is not lost. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH BURST 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH BURST 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC BURST 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/comp.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/comp.rf,v new file mode 100644 index 0000000..655f213 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/comp.rf,v @@ -0,0 +1,229 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 90.12.17.16.29.30; author mh; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.12.17; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.01; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.37; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.35.56; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.44; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@document "-editor" better +jlr +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: comp.rf,v 1.5 90/04/05 15:12:17 sources Exp Locker: mh $ +.SC COMP 1 +.NA +comp \- compose a message +.SY +comp +\%[+folder] \%[msg] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-file\ file] +\%[\-form\ formfile] +\%[\-use] \%[\-nouse] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIComp\fR is used to create a new message to be mailed. +It copies a message form to +the draft being composed and then invokes an editor on the draft +(unless `\-noedit' is given, in which case the initial edit is suppressed). + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so @@(MHETCPATH)/components +.ec +.in -.5i +.fi + +If the file named \*(lqcomponents\*(rq exists in the user's MH directory, +it will be used instead of this form. +The file specified by `\-form\ formfile' will be used if given. +You may also start \fIcomp\fR using the contents of an existing +message as the form. +If you supply either a `+folder' or `msg' argument, that message will be used +as the form. You may not supply both a `\-form\ formfile' and a `+folder' or +\&`msg' argument. +The line of dashes +or a blank line must be left between the header and the +body of the message for the message to be identified properly when it is +sent (see \fIsend\fR\0(1)). +The switch `\-use' directs \fIcomp\fR to +continue editing an already started message. +That is, if a +\fIcomp\fR (or \fIdist\fR, \fIrepl\fR, or \fIforw\fR\0) is terminated without +sending the draft, the draft can be edited again via +\*(lqcomp\ \-use\*(rq. + +If the draft already exists, \fIcomp\fR will ask +you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIcomp\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with the appropriate form; +\fBlist\fR will display the draft; +\fBuse\fR will use the draft for further composition; +and \fBrefile\ +folder\fR will +file the draft in the given folder, and give you a new draft with the +appropriate form. +(The `+folder' argument to \fBrefile\fR is required.) + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +The `\-file\ file' switch says to use the named file as the message draft. + +The `\-editor\ editor' switch indicates the editor to +use for the initial edit. +Upon exiting from the editor, +\fIcomp\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^@@(MHETCPATH)/components~^The message skeleton +^or /components~^Rather than the standard skeleton +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +dist(1), forw(1), repl(1), send(1), whatnow(1), mh-profile(5) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to the current message +.Ds +`\-nodraftfolder' +.Ds +`\-nouse' +.Co +None +.Bu +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIcomp\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIcomp\fR won't run it. +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d71 2 +d99 1 +a99 1 +dist(1), forw(1), repl(1), send(1), whatnow(1) +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH COMP 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH COMP 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC COMP 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/conflict.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/conflict.rf,v new file mode 100644 index 0000000..59fee5a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/conflict.rf,v @@ -0,0 +1,145 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.12.24; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.02; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.38; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.57; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.45; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC CONFLICT 8 +.NA +conflict \- search for alias/password conflicts +.SY +@@(MHETCPATH)/conflict +\%[\-mail\ name] +\%[\-search\ directory] +\%[aliasfiles...] +\%[\-help] +.DE +\fIConflict\fR is a program that checks to see if the interface between +\fIMH\fR and transport system is in good shape + +\fIConflict\fR +also checks for maildrops in @@(MHDROPHAK) which do not belong +to a valid user. +It assumes that no user name will start with `.', +and thus ignores files in @@(MHDROPHAK) which begin with `.'. +It also checks for entries in the \fIgroup\fR\0(5) +file which do not belong to a valid user, +and for users who do not have a valid group number. +In addition duplicate users and groups are noted. + +If the `\-mail\ name' switch is used, +then the results will be sent to the specified \fIname\fR. +Otherwise, the results are sent to the standard output. + +The `\-search\ directory' switch can be used to search directories +other than @@(MHDROPHAK) and to report anomalies in those directories. +The `\-search\ directory' switch can appear more than one time in an +invocation to \fIconflict\fR. + +\fIConflict\fR should be run under \fIcron\fR\0(8), +or whenever system accounting takes place. +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +^/etc/passwd~^List of users +^/etc/group~^List of groups +^@@(MHBINPATH)/mhmail~^Program to send mail +^@@(MHDROPHAK)/~^Directory of mail drop +.Pr +None +.Sa +mh\-alias(5) +.De +`aliasfiles' defaults to @@(MHETCPATH)/MailAliases +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH CONFLICT 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH CONFLICT 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC CONFLICT 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/dist.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/dist.rf,v new file mode 100644 index 0000000..9df63bc --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/dist.rf,v @@ -0,0 +1,241 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.12.30; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.03; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.40; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.35.58; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.47; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC DIST 1 +.NA +dist \- redistribute a message to additional addresses +.SY +dist +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-form\ formfile] +\%[\-inplace] \%[\-noinplace] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIDist\fR is similar to \fIforw\fR. +It prepares the specified +message for redistribution to addresses that (presumably) are +not on the original address list. + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so @@(MHETCPATH)/distcomps +.ec +.in -.5i +.fi + +If the file named \*(lqdistcomps\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-form\ formfile' will be +used if given. +The form used will be prepended to the message being resent. + +If the draft already exists, +\fIdist\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIdist\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +Only those addresses in \*(lqResent\-To:\*(rq, \*(lqResent\-cc:\*(rq, and +\*(lqResent\-Bcc:\*(rq will be sent. +Also, a \*(lqResent\-Fcc:\ folder\*(rq will be honored (see \fIsend\fR\0(1)). +Note that with \fIdist\fR, the draft should contain only +\*(lqResent\-xxx:\*(rq fields and no body. +The headers and the body of the original message are copied to the draft when +the message is sent. +Use care in constructing the headers for the redistribution. + +If the `\-annotate' switch is given, the message being +distributed will be annotated with the lines: + + Resent:\ date + Resent:\ addrs + +where each address list contains as many lines as required. +This annotation +will be done only if the message is sent directly from \fIdist\fR. +If the message is not sent immediately from \fIdist\fR, +\*(lqcomp \-use\*(rq may be used to re\-edit and send the constructed message, +but the annotations won't take place. +The '\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. +Note that while in the editor, +the message being resent is available through a link named \*(lq@@\*(rq +(assuming the default \fIwhatnowproc\fR\0). +In addition, the actual pathname of the message is stored in the envariable +\fB$editalt\fR, +and the pathname of the folder containing the message is stored in the +envariable \fB$mhfolder\fR. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIdist\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^@@(MHETCPATH)/distcomps~^The message skeleton +^or /distcomps~^Rather than the standard skeleton +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^fileproc:~^Program to refile the message +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +comp(1), forw(1), repl(1), send(1), whatnow(1) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to cur +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noinplace' +.Co +If a folder is given, it will become the current folder. +The message distributed will become the current message. +.Hi +\fIDist\fR originally used headers of the form \*(lqDistribute\-xxx:\*(rq +instead of \*(lqResent\-xxx:\*(rq. In order to conform with the +ARPA Internet standard, RFC\-822, +the \*(lqResent\-xxx:\*(rq form is now used. +\fIDist\fR will recognize \*(lqDistribute\-xxx:\*(rq type headers and +automatically convert them to \*(lqResent\-xxx:\*(rq. +.Bu +\fIDist\fR does not \fIrigorously\fR check the message being +distributed for adherence to the transport standard, +but \fIpost\fR called by \fIsend\fR does. +The \fIpost\fR program will balk (and rightly so) at poorly formatted messages, +and \fIdist\fR won't correct things for you. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIdist\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIdist\fR won't run it. + +If your current working directory is not writable, +the link named \*(lq@@\*(rq is not available. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH DIST 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH DIST 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC DIST 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/dp.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/dp.rf,v new file mode 100644 index 0000000..9527ed9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/dp.rf,v @@ -0,0 +1,187 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.08.58; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.05; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.41.41; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.35.59; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.15.58.04; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.15.57.51; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: dp.rf,v 1.6 1990/04/05 15:08:58 sources Exp jromine $ +.SC DP 8 +.NA +dp \- parse dates 822-style +.SY +@@(MHETCPATH)/dp +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +dates\ ... +\%[\-help] +.DE +\fIDp\fR is a program that parses dates according to the ARPA Internet +standard. +It also understands many non\-standard formats, +such as those produced by TOPS\-20 sites and some UNIX sites using +\fIctime\fR\0(3). +It is useful for seeing how \fIMH\fR will interpret a date. + +The \fIdp\fR program treats each argument as a single date, +and prints the date out in the official 822\-format. +Hence, it is usually best to enclose each argument in double\-quotes for the +shell. + +To override the output format used by \fIdp\fR, +the `\-format\ string' or `\-format\ file' switches are used. +This permits individual fields of the address to be extracted with ease. +The string is simply a format stringand thefile is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +Here is the default format string used by \fIdp\fR: + +.nf +.ti +.5i +%<(nodate{text})error: %{text}%|%(putstr(pretty{text}))%> +.fi + +which says that if an error was detected, print the error, a `:', +and the date in error. +Otherwise, output the 822\-proper format of the date. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +None +.Sa +ap(8) +.br +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +`\-format' default as described above +.Ds +`\-width' default to the width of the terminal +.Co +None +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIdp\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d5 1 +a5 1 +dp \- parse dates 822\-style +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH DP 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH DP 8 [mh.6] MH +@ + + +1.2 +log +@fixup +@ +text +@d2 2 +a3 2 +.SC DP 8 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d33 1 +d36 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/fmtdump.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/fmtdump.rf,v new file mode 100644 index 0000000..5e0ced0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/fmtdump.rf,v @@ -0,0 +1,209 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 92.12.02.21.38.37; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.11.11.17.33.50; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.02.12.20.06.28; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 92.02.03.16.43.08; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 91.01.25.15.47.30; author mh; state Exp; +branches; +next 1.1; + +1.1 +date 91.01.25.15.41.02; author mh; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@fixup +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: fmtdump.rf,v 1.5 1992/11/11 17:33:50 jromine Exp jromine $ +.SC FMTDUMP 8 +.NA +fmtdump \- decode MH format files +.SY +@@(MHETCPATH)/fmtdump +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-help] +.DE +\fIFmtdump\fR is a program that parses an \fIMH\fP format file +and produces a pseudo-language listing of the how \fIMH\fP +interprets the file. + +The `\-format\ string' and `\-form\ formatfile' switches may be used +to specify a format string or format file to read. +The string is simply a format string and the file is simply a format file. +See \fImh-format\fR\|(5) for the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@@(MHETCPATH)/scan.default~^The default format file +.Pr +^Path:~^To determine the user's MH directory +.Sa +mh-format(5), mh-sequences(8) +.Co +None +.Bu +The output may not be useful unless you are familiar +with the internals of the mh-format subroutines. +.En +@ + + +1.5 +log +@add -form/-format switches +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: fmtdump.rf,v 1.4 1992/02/12 20:06:28 jromine Exp jromine $ +d5 1 +a5 1 +fmtdump \- decode \fIMH\fP format files +@ + + +1.4 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: fmtdump.rf,v 1.3 1992/02/03 16:43:08 jromine Exp jromine $ +d7 4 +a10 1 +@@(MHETCPATH)/fmtdump formatfile +d15 5 +d21 4 +a24 1 +none +@ + + +1.3 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: fmtdump.rf,v 1.2 1991/01/25 15:47:30 mh Exp jromine $ +d12 2 +@ + + +1.2 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: fmtdump.rf,v 1.6 90/04/05 15:08:58 sources Exp $ +d13 1 +a13 1 +mh-format(8), mh-sequences(8) +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: dp.rf,v 1.6 90/04/05 15:08:58 sources Exp $ +.SC DP 8 +d5 1 +a5 1 +dp \- parse dates 822\-style +d7 1 +a7 6 +@@(MHETCPATH)/dp +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +dates\ ... +\%[\-help] +d9 3 +a11 32 +\fIDp\fR is a program that parses dates according to the ARPA Internet +standard. +It also understands many non\-standard formats, +such as those produced by TOPS\-20 sites and some UNIX sites using +\fIctime\fR\0(3). +It is useful for seeing how \fIMH\fR will interpret a date. + +The \fIdp\fR program treats each argument as a single date, +and prints the date out in the official 822\-format. +Hence, it is usually best to enclose each argument in double\-quotes for the +shell. + +To override the output format used by \fIdp\fR, +the `\-format\ string' or `\-format\ file' switches are used. +This permits individual fields of the address to be extracted with ease. +The string is simply a format stringand thefile is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +Here is the default format string used by \fIdp\fR: + +.nf +.ti +.5i +%<(nodate{text})error: %{text}%|%(putstr(pretty{text}))%> +.fi + +which says that if an error was detected, print the error, a `:', +and the date in error. +Otherwise, output the 822\-proper format of the date. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +None +d13 1 +a13 7 +ap(8) +.br +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +`\-format' default as described above +.Ds +`\-width' default to the width of the terminal +d17 2 +a18 4 +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIdp\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/folder.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/folder.rf,v new file mode 100644 index 0000000..23bea3b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/folder.rf,v @@ -0,0 +1,588 @@ +head 1.15; +access; +symbols; +locks; strict; + + +1.15 +date 93.08.27.18.13.47; author jromine; state Exp; +branches; +next 1.14; + +1.14 +date 93.08.26.22.59.29; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 93.08.26.22.56.45; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 93.08.19.21.20.51; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.10.29.21.50.27; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.02.18.17.47.49; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.07.23.57.18; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.02.07.20.16.07; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.06.22.01.06; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.12.18.14.28.05; author mh; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.12.37; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.06; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.43; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.00; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.48; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.15 +log +@use -[no]create instead of -create policy +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: folder.rf,v 1.14 1993/08/26 22:59:29 jromine Exp jromine $ +.SC FOLDER 1 +.NA +folder, folders \- set/list current folder/message +.SY +folder +\%[+folder] \%[msg] +\%[\-all] +\%[\-create] \%[\-nocreate] +\%[\-print] +.\" \%[\-noprint] +\%[\-fast] \%[\-nofast] +\%[\-header] \%[\-noheader] +\%[\-recurse] \%[\-norecurse] +\%[\-total] \%[\-nototal] +\%[\-list] \%[\-nolist] +\%[\-push] \%[\-pop] +\%[\-pack] \%[\-nopack] +\%[\-verbose] \%[\-noverbose] +\%[\-help] + +.ti .5i +folders +.DE +Since the \fIMH\fR environment is the shell, it is easy to lose +track of the current folder from day to day. +When \fIfolder\fR is given the `\-print' switch (the default), +\fIfolder\fR will +list the current folder, the number of messages in it, the +range of the messages (low\-high), and the current message within +the folder, and will flag extra files if they exist. +An example of this summary is: + +.nf +.if t .in +.5i +.ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u +inbox+ has \016 messages (\0\03\-\022); cur=\0\05. +.re +.if t .in -.5i +.fi + +If a `+folder' and/or `msg' are specified, they will +become the current folder and/or message. +By comparison, +when a `+folder' argument is given, +this corresponds to a \*(lqcd\*(rq operation in the \fIshell\fR; +when no `+folder' argument is given, +this corresponds roughly to a \*(lqpwd\*(rq operation in the \fIshell\fR. + +If the specified (or default) folder doesn't exist, +the default action is to query the user +as to whether the folder should be created; +when standard input is not a tty, the answer to +the query is assumed to be \*(lqyes\*(rq. + +Specifying `\-create' will cause \fIfolder\fP to create +new folders without any query. +(This is the easy way to create an empty folder for use later.) +Specifying `\-nocreate' will +cause \fIfolder\fP to exit without creating a non-existant folder. +.\" +.\" note - this doesn't work at present +.\" If `\-noprint' is specified, +.\" a `+folder' and/or `msg' may still be specified +.\" to set the current folder and/or message, +.\" but the folder summary will not be printed. +.Uh "Multiple Folders" +Specifying `\-all' +will produce a summary line for each top-level +folder in the user's MH directory, sorted alphabetically. +(If \fIfolder\fR +is invoked by a name ending with \*(lqs\*(rq (e.g., \fIfolders\fR\0), +`\-all' is assumed). +Specifying `\-recurse' with `\-all' will also +produce a line for all sub-folders. +These folders are all preceded by the read\-only folders, +which occur as \*(lqatr\-cur\-\*(rq entries in the user's \fIMH\fR context. +For example, + +.ne 9 +.nf +.if t .in +.5i +.ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u +Folder \0\0\0# of messages (\0range\0) cur msg (other files) +/fsd/rs/m/tacc has \035 messages (\0\01\-\035); cur=\023. +/rnd/phyl/Mail/EP has \082 messages (\0\01\-108); cur=\082. +ff has \0no messages. +inbox+ has \016 messages (\0\03\-\022); cur=\0\05. +mh has \076 messages (\0\01\-\076); cur=\070. +notes has \0\02 messages (\0\01\-\0\02); cur=\0\01. +ucom has 124 messages (\0\01\-124); cur=\0\06; (others). +.ta \w'/rnd/phyl/Mail/EP has 'u +\0\0\0\0\0\0\0\0\0\0TOTAL= 339 messages in 7 folders +.re +.if t .in -.5i +.fi + +The \*(lq+\*(rq after inbox indicates that it is the current folder. +The \*(lq(others)\*(rq indicates that the folder `ucom' has files +which aren't messages. +These files may either be sub\-folders, +or files that don't belong under the MH file naming scheme. + +The header is output if either a `\-all' or a `\-header' switch +is specified; it is suppressed by `\-noheader'. +A `\-total' switch will produce only the +summary line. + +If `\-fast' is given, only the folder name (or names in the +case of `\-all') will be listed. +(This is faster because the +folders need not be read.) + +If a `+folder' +is given along with the `\-all' switch, +\fIfolder\fR will, +in addition to setting the current folder, +list the top\-level folders for the current folder (with `\-norecurse') +or list all sub-folders under the current folder recursively (with `\-recurse'). +In this case, if a `msg' is also supplied, +it will become the current message of `+folder'. + +The `\-recurse' switch lists each folder recursively, so +use of this option effectively defeats the speed enhancement of the `\-fast' +option, +since each folder must be searched for subfolders. +Nevertheless, the combination of these options is useful. + +.Uh "Compacting a Folder" +The `\-pack' switch will compress the message names in the +designated folders, removing holes in message numbering. +The `\-verbose' switch directs \fIfolder\fR to tell the user the general +actions that it is taking to compress the folder. + +.Uh "The Folder Stack" +The `\-push' switch directs \fIfolder\fR to push the current folder onto the +\fIfolder\-stack\fR, +and make the `+folder' argument the current folder. +If `+folder' is not given, +the current folder and the top of the \fIfolder\-stack\fR are exchanged. +This corresponds to the \*(lqpushd\*(rq operation in the \fICShell\fR. + +The `\-pop' switch directs \fIfolder\fR to discard the top of the +\fIfolder\-stack\fR, +after setting the current folder to that value. +No `+folder' argument is allowed. +This corresponds to the \*(lqpopd\*(rq operation in the \fICShell\fR. +The `\-push' switch and the `\-pop' switch are mutually exclusive: +the last occurrence of either one overrides any previous occurrence of the +other. Both of these switches also set `\-list' by default. + +The `\-list' switch directs \fIfolder\fR to list the contents of the +\fIfolder\-stack\fR. +No `+folder' argument is allowed. +After a successful `\-push' or `\-pop', the `\-list' action is taken, +unless a `\-nolist' switch follows them on the command line. +This corresponds to the \*(lqdirs\*(rq operation in the \fICShell\fR. +The `\-push', `\-pop', and `\-list' switches turn +off `\-print'. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Folder\-Stack:~^To determine the folder stack +.\" .Ps +.\" ^lsproc:~^Program to list the contents of a folder +.Sa +refile(1), mhpath(1) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to none +.Ds +`\-nofast' +.Ds +`\-noheader' +.Ds +`\-nototal' +.Ds +`\-nopack' +.Ds +`\-norecurse' +.Ds +`\-noverbose' +.Ds +`\-print' is the default if no `\-list', `\-push', or `\-pop' is specified +.Ds +`\-list' is the default if `\-push', or `\-pop' is specified +.Co +If `+folder' and/or `msg' are given, they will become the +current folder and/or message. +.Hi +In previous versions of \fIMH\fR, +the `\-fast' switch prevented context changes from +occurring for the current folder. +This is no longer the case: if `+folder' is given, +then \fIfolder\fR will always change the current folder to that. +.Bu +`\-all' forces `\-header' and `\-total'. +.sp +There is no way to restore the default behavior +(to ask the user whether to create a non-existant folder) +after `\-create' or `\-nocreate' is given. +.En +@ + + +1.14 +log +@note default: -create ask +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.13 1993/08/26 22:56:45 jromine Exp jromine $ +d10 1 +a10 1 +\%[\-create\0policy] +d52 4 +a55 16 +the action taken is controlled with the `\-create' switch. +One of three arguments may be specified: +.sp +.in +1i +.ta 1i +.ti -1i +\fBalways\fP indicates that \fIfolder\fR should create the folder. +.ti -1i +\fBask\fP indicates that \fIfolder\fR should ask the user. +(When standard input is not a tty, the folder is created without any query.) +.ti -1i +\fBnever\fP indicates that \fIfolder\fR should not create the folder. +.in -1i +.sp +(Using \*(lqfolder -create always +folder\*(rq +is an easy way to create an empty folder for use later.) +d57 6 +a67 1 + +a179 2 +`\-create\0ask' +.Ds +d206 4 +@ + + +1.13 +log +@document folder -create policy +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.12 1993/08/19 21:20:51 jromine Exp jromine $ +d186 2 +@ + + +1.12 +log +@note that -all forces -total +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.11 1992/10/29 21:50:27 jromine Exp jromine $ +d10 1 +a44 6 +If the specified (or default) folder doesn't exist, +the user will be queried as to whether the folder should be created. +When standard input is not a tty, the folder is +created without any query. +(This is the easy way to create an empty folder for use later.) + +d50 18 +@ + + +1.11 +log +@zap lsproc +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.10 1992/02/18 17:47:49 jromine Exp jromine $ +d199 1 +a199 1 +`\-all' forces `\-header'. +@ + + +1.10 +log +@document bug +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.9 1992/02/07 23:57:18 jromine Exp jromine $ +d165 2 +a166 2 +.Ps +^lsproc:~^Program to list the contents of a folder +@ + + +1.9 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.8 1992/02/07 20:16:07 jromine Exp jromine $ +d198 2 +@ + + +1.8 +log +@undocument -noprint +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.7 1992/02/06 22:01:06 jromine Exp jromine $ +d126 1 +a126 1 +desginated folders, removing holes in message numbering. +@ + + +1.7 +log +@rewrite +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.6 1990/12/18 14:28:05 mh Exp jromine $ +d10 2 +a11 1 +\%[\-print] \%[\-noprint] +d153 2 +a154 1 +The `\-push', `\-pop', and `\-list' switches set `\-noprint'. +@ + + +1.6 +log +@mention creating a folder when stdin is not a tty +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: folder.rf,v 1.5 90/04/05 15:12:37 sources Exp Locker: mh $ +d10 1 +a12 1 +\%[\-pack] \%[\-nopack] +a14 1 +\%[\-print] \%[\-noprint] +d17 2 +a25 1 + +d27 1 +a27 8 +the current folder and/or message may be set, +or all folders may be listed. +When a `+folder' argument is given, +this corresponds to a \*(lqcd\*(rq operation in the \fICShell\fR; +when no `+folder' argument is given, +this corresponds roughly to a \*(lqpwd\*(rq operation in the \fICShell\fR. + +\fIFolder\fR will +d31 1 +a31 1 +An example of the output is: +d43 19 +d63 8 +a70 3 +will produce a line for each folder in the user's MH directory, +sorted alphabetically. +These folders are preceded by the read\-only folders, +d74 1 +d98 1 +a98 1 +The header is output if either an `\-all' or a `\-header' switch +a99 3 +Also, if \fIfolder\fR +is invoked by a name ending with \*(lqs\*(rq (e.g., \fIfolders\fR\0), +`\-all' is assumed. +a102 6 +If a `+folder' and/or `msg' is given along with the `\-all' switch, +\fIfolder\fR will, +in addition to setting the current folder and/or message, +list the top\-level folders for the current folder (with `\-norecurse') +or list all folders under the current folder recursively (with `\-recurse'). + +d108 8 +a115 2 +The `\-pack' switch will compress the message names in a folder, removing +holes in message numbering. +d117 2 +a118 2 +The `\-recurse' switch will list each folder recursively. +Use of this option effectively defeats the speed enhancement of the `\-fast' +d123 5 +a127 5 +If the specified (or default) folder doesn't exist, +the user will be queried as to whether the folder should be created. +When standard input is not a tty, the folder is +created without any query. +(This is the easy way to create an empty folder for use later.) +d129 1 +d144 1 +a144 1 +other. +d149 2 +a150 1 +After a successful `\-push' or `\-pop', the `\-list' action is taken. +d152 1 +d182 2 +d185 2 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d109 3 +a111 1 +the user will be queried if the folder should be created. +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH FOLDER 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH FOLDER 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC FOLDER 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/forw.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/forw.rf,v new file mode 100644 index 0000000..113bbc2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/forw.rf,v @@ -0,0 +1,490 @@ +head 1.11; +access; +symbols; +locks; strict; + + +1.11 +date 92.10.16.21.36.02; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 90.12.18.14.40.06; author mh; state Exp; +branches; +next 1.9; + +1.9 +date 90.04.05.15.08.44; author sources; state Exp; +branches; +next 1.8; + +1.8 +date 90.03.23.15.03.30; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.23.14.57.30; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.22.11.31.07; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.20.19.41.45; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.17.36.01; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.16.14.28.23; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.07.13.15.02; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.07.13.05.39; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.11 +log +@MIME changes +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: forw.rf,v 1.10 1990/12/18 14:40:06 mh Exp jromine $ +.SC FORW 1 +.NA +forw \- forward messages +.SY +forw +\%[+folder] \%[msgs] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +\%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +@@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@@END: MIME +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +forw +\%[+folder] \%[msgs] +\%[\-digest\ list] \%[\-issue\ number] \%[\-volume\ number] +\%[other\ switches\ for\ \fIforw\fR] +\%[\-help] +.DE +\fIForw\fR may be used to prepare a message containing other +messages. +It constructs the new message from the components file +or `\-form\ formfile' (see \fIcomp\fR\0), with a body composed of the +message(s) to be forwarded. +An editor is invoked as in \fIcomp\fR, +and after editing is complete, the user is prompted before the message +is sent. + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so @@(MHETCPATH)/forwcomps +.ec +.in -.5i +.fi + +If the file named \*(lqforwcomps\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-form\ formfile' will be +used if given. + +If the draft already exists, +\fIforw\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIforw\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +If the `\-annotate' switch is given, each message being +forwarded will be annotated with the lines + + Forwarded:\ date + Forwarded:\ addrs + +where each address list contains as many lines as required. +This annotation +will be done only if the message is sent directly from \fIforw\fR. +If the message is not sent immediately from \fIforw\fR, +\*(lqcomp\ \-use\*(rq may be used to re\-edit and send the constructed message, +but +the annotations won't take place. +The '\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. + +Although \fIforw\fR uses the `\-form\ formfile' switch to direct it how to +construct the beginning of the draft, the `\-filter\ filterfile', +`\-format', and `\-noformat' +switches direct \fIforw\fR as to how each forwarded message should be +formatted in the body of the draft. +If `\-noformat' is specified, +then each forwarded message is output exactly as it appears. +If `\-format' or `\-filter\ filterfile' is specified, +then each forwarded message is filtered (re\-formatted) prior to being +output to the body of the draft. +The filter file for \fIforw\fR should be a standard form file for +\fImhl\fR, +as \fIforw\fR will invoke \fImhl\fR to format the forwarded messages. +The default message filter (what you get with `\-format') is: + +.nf +.in +.5i +.ne 10 +.eo +.so @@(MHETCPATH)/mhl.forward +.ec +.in -.5i +.fi + +If the file named \*(lqmhl.forward\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-filter\ filterfile' will be +used if given. +To summarize: +`\-noformat' will reproduce each forwarded message exactly, +`\-format' will use \fImhl\fR and a default filterfile, \*(lqmhl.forward\*(rq, +to format each forwarded message, and +`\-filter\ filterfile' will use the named filterfile to format each +forwarded message with \fImhl\fR. + +Each forwarded message is separated with an encapsulation delimiter +and +dashes in the first column of the forwarded messages will be prepended +with `\-\ ' so that +when received, the message is suitable for bursting by \fIburst\fR\0(1). +This follows the Internet RFC\-934 guidelines. + +For users of \fIprompter\fR\0(1), by specifying prompter's `-prepend' +switch in the \&.mh\(ruprofile file, any commentary text is entered before +the forwarded messages. (A major win!) + +@@BEGIN: MIME +To use the MIME rules for encapsulation, +specify the `\-mime' switch. +This directs \fIforw\fR to generate an \fImhn\fR composition file. +Note that MH will not invoke \fImhn\fR automatically, +unless you add this line to your \&.mh\(ruprofile file: +.sp +.in +.5i +automhnproc: mhn +.in -.5i +.sp +Otherwise, +you must specifically give the command +.sp +.in +.5i +What now? edit mhn +.in -.5i +.sp +prior to sending the draft. + +To automate this somewhat, +create a link to \fIprompter\fR called \fIrapid\fR +and put these lines in your \&.mh\(ruprofile file: +.sp +.in +.5i +.nf +forw: -editor rapid -mime +rapid: -rapid +rapid-next: mhn +.fi +.in -.5i +.sp +Then, +you can simply do: +.sp +.in +.5i +.nf +\fIforw msgs\fR +To: \fImailbox\fR +cc: +Subject: \fIwhatever\fR + +--------Enter initial text + +\fIblah, blah, blah.\fR + +-------- + +What now? \fIedit\fR +What now? \fIsend\fR +... +.fi +.in -.5i +.sp +The \fIedit\fR command invokes \fImhn\fR automatically. + +@@END: MIME +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIforw\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) + +The `\-digest\ list', `\-issue\ number', and `\-volume\ number' switches +implement a digest facility for \fIMH\fR. Specifying these switches +enables and/or overloads the following escapes: +.sp 1 +.nf +.ta \w'Component 'u +\w'Escape 'u +\w'Returns 'u +\fIType\fR \fIEscape\fR \fIReturns\fR \fIDescription\fR +\fIcomponent\fR \fIdigest\fR string Argument to `\-digest' +\fIfunction\fR \fIcur\fR integer Argument to `\-volume' +\fIfunction\fR \fImsg\fR integer Argument to `\-issue' +.re +.fi + +Consult the \fBAdvanced Features\fR section of +the \fIMH\fR User's Manual for more information on making digests. +.Fi +^@@(MHETCPATH)/forwcomps~^The message skeleton +^or /forwcomps~^Rather than the standard skeleton +^@@(MHETCPATH)/digestcomps~^The message skeleton if `\-digest' is given +^or /digestcomps~^Rather than the standard skeleton +^@@(MHETCPATH)/mhl.forward~^The message filter +^or /mhl.forward~^Rather than the standard filter +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^mhlproc:~^Program to filter messages being forwarded +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +\fIProposed Standard for Message Encapsulation\fR (aka RFC\-934), +.br +comp(1), dist(1), repl(1), send(1), whatnow(1), mh\-format(5) +.De +`+folder' defaults to the current folder +`msgs' defaults to cur +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noformat' +.Ds +`\-noinplace' +@@BEGIN: MIME +.Ds +`\-nomime' +@@END: MIME +.Co +If a folder is given, it will become the current folder. +The first message forwarded will become the current message. +.Bu +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIforw\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIforw\fR won't run it. + +When \fIforw\fR is told to annotate the messages it forwards, +it doesn't actually annotate them until the draft is successfully sent. +If from the \fIwhatnowproc\fR, +you \fIpush\fR instead of \fIsend\fR, +it's possible to confuse \fIforw\fR by re\-ordering the file +(e.g., by using `folder\0\-pack') before the message is successfully sent. +\fIDist\fR and \fIrepl\fR don't have this problem. + +To avoid prepending the leading dash characters in forwarded messages, +there is a `\-nodashmunging' option. See the \*(lqHidden Features\*(rq +section of the \fIMH Administrator's Guide\fR for more details. +.En +@ + + +1.10 +log +@mention -nodashmunging +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: forw.rf,v 1.9 90/04/05 15:08:44 sources Exp Locker: mh $ +d16 3 +d125 57 +d252 4 +@ + + +1.9 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d116 1 +d209 4 +@ + + +1.8 +log +@ make -[no]dashmunging hidden +@ +text +@d2 1 +@ + + +1.7 +log +@fix +@ +text +@a15 1 +\%[\-dashmunging] \%[\-nodashmunging] +a114 2 +Specifying `\-nodashmunging' will inhibit prepending the leading +dash and space characters, but this may confuse later bursters. +a189 2 +.Ds +`\-dashmunging' +@ + + +1.6 +log +@put things back, do .NA stuff another way +@ +text +@d140 1 +a140 1 +enables the following additional \fIcomponent\fR escapes: +d143 5 +a147 5 +.ta \w'Escape 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +\fIdigest\fR string Argument specified with `\-digest' +\fIissue\fR integer Argument specified with `\-issue' +\fIvolume\fR integer Argument specified with `\-volume' +@ + + +1.5 +log +@typo +@ +text +@d2 2 +a3 2 +.TH FORW 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.4 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH FORW 1 [mh.6] MH +@ + + +1.3 +log +@minor docs +@ +text +@d2 2 +a3 2 +.SC FORW 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.2 +log +@document -[no]dashmunging +@ +text +@d139 14 +a152 2 +implement a digest facility for \fIMH\fR. +See the \fIMH\fR user's manual for more information. +d181 1 +a181 1 +comp(1), dist(1), repl(1), send(1), whatnow(1) +@ + + +1.1 +log +@Initial revision +@ +text +@d16 1 +d111 4 +a114 1 +Each forwarded message is separated with an encapsulation delimiter so that +d116 2 +d181 2 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/inc.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/inc.rf,v new file mode 100644 index 0000000..280ec87 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/inc.rf,v @@ -0,0 +1,372 @@ +head 1.8; +access; +symbols; +locks; strict; + + +1.8 +date 92.02.04.21.41.21; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.04.00.04.30; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.09.20.22.39; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.10.43; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.08; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.46; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.03; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.13.44.01; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.8 +log +@contributed patch +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: inc.rf,v 1.7 1992/02/04 00:04:30 jromine Exp jromine $ +.SC INC 1 +.NA +inc \- incorporate new mail +.SY +inc +\%[+folder] +\%[\-audit\ audit\-file] \%[\-noaudit] +\%[\-changecur] \%[\-nochangecur] +@@BEGIN: TMA +\%[\-decrypt] \%[\-nodecrypt] +@@END: TMA +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-file\ name] +\%[\-silent] \%[\-nosilent] +\%[\-truncate] \%[\-notruncate] +\%[\-width\ columns] +@@BEGIN: MF +\%[\-uucp] \%[\-nouucp] +@@END: MF +@@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +\%[\-pack\ file] \%[\-nopack] +@@END: POP +\%[\-help] +.DE +\fIInc\fR incorporates mail from the user's incoming mail drop +into an \fIMH\fR folder. +If `+folder' isn't specified, +a folder in the user's \fIMH\fR directory will be used, either that +specified by the \*(lqInbox:\*(rq entry in the user's profile, or +the folder named \*(lqinbox\*(rq. +The +new messages being incorporated are assigned numbers starting +with the next highest number in the folder. +If the specified (or default) folder doesn't exist, +the user will be queried prior to its creation. +As the messages are processed, +a \fIscan\fR listing of the new mail is produced. + +If the user's profile contains a \*(lqMsg\-Protect: nnn\*(rq entry, it +will be used as the protection on the newly created messages, +otherwise the \fIMH\fR default of 0644 will be used. +During all operations on messages, +this initially assigned protection will +be preserved for each message, so \fIchmod\fR(1) may be used to set a +protection on an individual message, and its protection will be +preserved thereafter. + +If the switch `\-audit\ audit\-file' is specified (usually as a +default switch in the profile), then \fIinc\fR will append a header +line and a line per message to the end of the specified +audit\-file with the format: + +.nf +.ti 1i +\*(<> date +.ti 1.5i + +.ti 1.5i + +.ti 2.5i + +.fi + +This is useful for keeping track of volume and source of incoming +mail. +Eventually, \fIrepl\fR, \fIforw\fR, \fIcomp\fR, and \fIdist\fR may also +produce audits to this (or another) file, perhaps with +\*(lqMessage\-Id:\*(rq information to keep an exact correspondence history. +\*(lqAudit\-file\*(rq will be in the user's MH directory unless a full +path is specified. + +\fIInc\fR will incorporate even improperly formatted messages into the +user's MH folder, inserting a blank line prior to the offending +component and printing a comment identifying the bad message. + +In all cases, the user's mail drop will be zeroed, +unless the `\-notruncate' switch is given. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIinc\fR will add each of the newly incorporated messages to each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +Note that \fIinc\fR will not zero each sequence prior to adding messages. + +The interpretation of the `\-form\ formatfile', `\-format\ string', +and `\-width\ columns' switches is the same as in \fIscan\fR\0(1). +@@BEGIN: MF + +If the `\-uucp' switch is given, \fIUUCP\fR mail will be \fRinc\fRorporated +as well. This option will work only on those sites that optionally +use \*(lqmail filtering\*(rq software. +@@END: MF + +By using the `\-file\ name' switch, one can direct \fIinc\fR to incorporate +messages from a file other than the user's maildrop. +Note that the name file will NOT be zeroed, +unless the `\-truncate' switch is given. + +If the envariable \fB$MAILDROP\fR is set, +then \fIinc\fR uses it as the location of the user's maildrop instead of the +default (the `-file\ name' switch still overrides this, however). +If this envariable is not set, +then \fIinc\fR will consult the profile entry \*(lqMailDrop\*(rq for this +information. +If the value found is not absolute, +then it is interpreted relative to the user's \fIMH\fR directory. +If the value is not found, +then \fIinc\fR will look in the standard system location for the user's +maildrop. + +The `\-silent' switch directs \fIinc\fR to be quiet and not ask any questions +at all. +This is useful for putting \fIinc\fR in the background and going on to other +things. +@@BEGIN: POP + +If the local host is configured as a POP client, +or if the `\-host\ host' switch is given, +then \fIinc\fR will query the POP service host as to the status of mail +waiting. +If the `\-user\ user' switch is not given, +then the current username is used. +Normally, +\fIinc\fR will prompt for a password to use. +However, +if the `\-apop' switch is given, +\fIinc\fR will generate authentication credentials to provide +for origin authentication and replay protection, +but which do not involve sending a password in the clear over the network. +Otherwise, +if the `\-rpop' switch is given, +then \fIinc\fR will try to use a \*(lqtrusted\*(rq connection +(ala the BSD r-commands). + +If \fIinc\fR uses POP, +then the `\-pack\ file' switch is considered. +If given, +then \fIinc\fR simply uses the POP to \fIpackf\fR\0(1) the user's maildrop +from the POP service host to the named file. +This switch is provided for those users who prefer to use \fImsh\fR to +read their maildrops. +@@END: POP +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@@(MHETCPATH)/mtstailor~^tailor file +^@@(MHDROPLOC)~^Location of mail drop +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Inbox:~^To determine the inbox, default \*(lqinbox\*(rq +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Msg\-Protect:~^To set mode when creating a new message and audit\-file +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Sa +@@BEGIN: POP +\fIPost Office Protocol - version 3\fR (aka RFC\-1081), +.br +@@END: POP +mhmail(1), scan(1), mh\-mail(5), post(8) +.De +`+folder' defaulted by \*(lqInbox\*(rq above +.Ds +`\-noaudit' +.Ds +`\-changecur' +@@BEGIN: TMA +`\-decrypt' +@@END: TMA +.Ds +`\-format' defaulted as described above +.Ds +`\-nosilent' +.Ds +`\-truncate' if `\-file\ name' not given, `\-notruncate' otherwise +.Ds +`\-width' defaulted to the width of the terminal +@@BEGIN: MF +.Ds +`\-uucp' +@@END: MF +@@BEGIN: POP +.Ds +`\-nopack' +.Ds +`\-rpop' +@@END: POP +.Co +The folder into which messages are being incorporated will become the +current folder. +The first message incorporated will become the current message, +unless the `\-nochangecur' option is specified. +This leaves the context ready for a \fIshow\fR +of the first new message. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIinc\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En +@ + + +1.7 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: inc.rf,v 1.6 1990/04/09 20:22:39 sources Exp jromine $ +d25 2 +a27 1 +\%[\-rpop] \%[\-norpop] +d128 13 +a140 6 +The `\-user\ user' switch may be given to specify the name of the POP +subscriber you wish to check mail for on the POP service host. +The `\-rpop' switch uses the UNIX \fIrPOP\fR +(authentication done via trusted connections). +In contrast, the `\-norpop' switch uses the ARPA \fIPOP\fR +(in which case \fIinc\fR will prompt for a password). +@ + + +1.6 +log +@fixup RFC references +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: inc.rf,v 1.5 90/04/05 15:10:43 sources Exp Locker: sources $ +d33 3 +a35 1 +the folder named \*(lqinbox\*(rq in the user's \fIMH\fR directory will be used. +d151 2 +d165 1 +a165 1 +`+folder' defaults to \*(lqinbox\*(rq +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d156 1 +a156 1 +\fIPost Office Protocol (revised)\fR (aka RFC\-819 with revisions), +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH INC 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH INC 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC INC 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/install-mh.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/install-mh.rf,v new file mode 100644 index 0000000..fd32469 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/install-mh.rf,v @@ -0,0 +1,150 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 92.12.02.21.38.49; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.12.44; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.09; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.47; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.04; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.50; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@fixup +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: install-mh.rf,v 1.5 1990/04/05 15:12:44 sources Exp jromine $ +.SC INSTALL-MH 8 +.NA +install-mh \- initialize the MH environment +.SY +@@(MHETCPATH)/install\-mh +\%[\-auto] +\%[\-compat] +.DE +When a user runs any \fIMH\fR program for the first time, +the program will invoke \fIinstall\-mh\fR (with the `\-auto' switch) +to query the user for the initial \fIMH\fR environment. +The user does \fBNOT\fR invoke this program directly. +The user is asked for the name of the directory that will be designated +as the user's \fIMH\fR directory. +If this directory does not exist, the user is asked if it should be +created. +Normally, this directory should be under the user's home directory, +and has the default name of Mail/. +After \fIinstall\-mh\fR has written the initial \&.mh\(ruprofile for +the user, +control returns to the original \fIMH\fR program. + +As with all \fIMH\fR commands, +\fIinstall\-mh\fR first consults the \fB$HOME\fR envariable to +determine the user's home directory. +If \fB$HOME\fR is not set, +then the \fI/etc/passwd\fR file is consulted. + +When converting from \fImh.3\fR to \fImh.4\fR, +\fIinstall\-mh\fR is automatically invoked with the `\-compat' switch. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To set the user's MH directory +.Co +With `\-auto', the current folder is changed to \*(lqinbox\*(rq. +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d5 1 +a5 1 +install\-mh \- initialize the MH environment +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH INSTALL-MH 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH INSTALL-MH 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC INSTALL-MH 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/maildelivery.5,v b/docs/historical/mh-6.8.5/conf/doc/RCS/maildelivery.5,v new file mode 100644 index 0000000..9d3206a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/maildelivery.5,v @@ -0,0 +1,298 @@ +head 1.2; +access; +symbols; +locks; strict; +comment @# @; + + +1.2 +date 92.10.26.17.02.08; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.10.26.17.01.26; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.2 +log +@fixes from Jerry Peek. These should probably be sent to bug-mmdf as well. +@ +text +@.tr ~ +.de NP +.IP "\fI\\$1\fP" 10 +.. +.de II +.nr P- \\n()P \" save the preceeding IP space +.nr )P 0 \" now set it to 0 +.NP "\\$1\fP" +.nr )P \\n(P- \" restore the preceeding IP space +.. +.ds M \fI.maildelivery\fP +.TH MAILDELIVERY 5 "1 October, 1985" +.SH NAME +maildelivery +.SH SYNOPSIS +User delivery specification file +.SH DESCRIPTION +The delivery of mail by the local channel can run through various +courses, including using a user tailorable file. +The delivery follows the following strategy, giving up at any point +it considers the message delivered. +.RS +.IP "1)" 4 +If the address indicates a pipe or file default +then that is carried out. +.IP "2)" 4 +The file \*M +(or something similar) in the home directory is read if it exists +and the actions in it are followed. +.IP "3)" 4 +A system-wide file is consulted next, such as +.I /usr/lib/maildelivery +and the actions are similar to 2. +.IP "4)" 4 +If the message still hasn't been delivered, then it is put into +the user's normal mailbox +.RI ( .mail +or +.IR mailbox ) +depending on the system. +.RE +.PP +The format of the \*M file is +.RS +.B field +.I +.B pattern +.I +.B action +.I +.B result +.I +.B string +.RE +where +.br +.NP field +is name of a field that is to be searched for a pattern. +This is any header field that you might find in a message. +The most commonly used headers are usually +From, to, cc, subject and sender. +As well as the standard headers, there are some psuedo-headers +that are can also be used. These are :- +.RS +.II source +The out of band sender information. This is the address MMDF would +use for reporting delivery problems with the message. +.II addr +the address that was used to mail to you, normally 'yourname' or +\&'yourname=string' (see below). +.II default +if the message hasn't been delivered yet, this field is matched. +.II * +this case is always true regardless of any other action. +.RE +.NP pattern +is some sequence of characters that may be matched in the +above +.IR field . +Case is not significant. +.IP \fIaction\fP 10 +is one of the mail delivery actions supported by the +local channel. Currently the supported actions are +.B file +or +.BR > , +which +appends the message to the given file, with delimiters; +.B pipe +or +.BR | , +which starts up a process with the message +as the standard input; +and +.B destroy +which throws the message away. +There is also +.B qpipe +or +.BR ^ , +which fakes a pipe command and is quicker than the standard pipe, +but does not do header reformatting. +.br +For piped commands, the exit status of the command is significant. +An exit status of 0 implies that the command succeeded and everything +went well. An exit status of octal 0300-0377 indicates that a permanent +failure occured and the message should be rejected; these error codes +are given in mmdf.h. Any other exit +status indicates a temporary failure and the delivery attempt will +be aborted and restarted at a later time. +.NP result +is one of the letters A, R or ? which stand for +Accept, Reject and "Accept if not delivered yet". +They have the following effects: +.RS +.II A +If the result of this line's action is OK, then the message can be +considered delivered. +.II R +The message is not to be considered delivered by this action. +.II ? +This is equivalent to +.I A +except that the action is not carried +out if the message has already been accepted. +.RE +.PP +The file is always read completely so that several matches +can be made, and several actions taken. +As a security check, the \*M file must be owned by either +the user or root, and must not have group or general +write permission. In addition the system delivery file has the above +restrictions but must also be owned by root. +If the field specified does not need a pattern a dash (\-) +or similar symbol is usually inserted to show that the field is present +but not used. +The field separator character can be either a tab, space or comma (,). +These characters can be included in a string by quoting them with +double quotes (") (double quotes can be included with a backslash '\e'). +.PP +MMDF treats local addresses which contain an equals sign ('=') +in a special manner. Everything in a local address +from an equals sign to the '@@' is ignored and passed on to the +local channel. The local channel will make the entire string available +for matching against the +.I addr +string of the \*M file. +For example, if you were to +subscribe to a digest as "foo=digest@@bar.NET", +.B submit +and the local channel will verify +that it is legal to deliver +to "foo", but then the entire string "foo=digest" will be available +for string matching against the \*M file for the +.B addr +field. +.SH ENVIRONMENT +The environment in which piped programs are run +contains a few standard features, specifically: +.ne 5 +.sp +.nf +HOME is set to the user's home directory. +USER is set to the user's login name. +SHELL is set to the user's login shell (defaults to /bin/sh). +.sp +.fi +The default umask is set up to 077, this gives a very protective +creation mask. +Initgroups is called if the 4.2 version of UNIX is running. +If further requirements are needed, then a shell script +can be run first to set up more complex environments. +.PP +There are certain built-in variables that you can give to +a piped program. These are +.IR $(sender) , +.IR $(address) , +.IR $(size) , +.I $(reply-to) +and +.IR $(info) . +.I $(sender) +is set to the return address for the message. +.I $(address) +is set to the address that was used to mail to you, normally `yourname' +or `yourname=string'. +.I $(size) +is set to the size in bytes of this message. +.I $(reply-to) +is set to the Reply-To: field (or the From: field if the former is +missing) and so can be used for automatic replies. +.I $(info) +is the info field from the internal mail header and is probably only +of interest to the system maintainers. +.SH EXAMPLE +.PP +Here is a rough idea of what a \*M file looks like: +.ne 12 +.nf +.sp +# lines \fIstarting\fP with a '#' are ignored. +# as are blank lines +# file mail with mmdf2 in the "To:" line into file mmdf2.log +To~~~~mmdf2~~~~file~~~~A~~~~mmdf2.log +# Messages from mmdf pipe to the program err-message-archive +From~~~~mmdf~~~~pipe~~~~A~~~~err-message-archive +# Anything with the "Sender:" address "uk-mmdf-workers" +# file in mmdf2.log if not filed already +Sender~~~~uk-mmdf-workers~~~~file~~~~?~~~~mmdf2.log +# "To:" unix \- put in file unix-news +To~~~~Unix~~~~>~~~~A~~~~unix-news +# if the address is jpo=mmdf \- pipe into mmdf-redist +Addr~~~~jpo=mmdf~~~~|~~~~A~~~~mmdf-redist +# if the address is jpo=ack \- send an acknowledgement copy back +Addr~~~~jpo=ack~~~~|~~~~R~~~~"resend~~\-r~~$(reply-to)" +# anything from steve \- destroy! +from~~~~steve~~~~destroy~~~~A~~~~\- +# anything not matched yet \- put into mailbox +default~~~~\-~~~~>~~~~?~~~~mailbox +# always run rcvalert +*~~~~\-~~~~|~~~~R~~~~rcvalert +.sp +.fi +.SH FILES +$HOME/.maildelivery +\- the file's normal location. +.br +/usr/lib/maildelivery \- +the system file. This should be protected against attack. It +may contain contents such as: +.ne 4 +.sp +.nf +default~~~~\-~~~~pipe~~~~A~~~~stdreceive +*~~~~\-~~~~|~~~~R~~~~ttynotify +.fi +.sp +This allows interfacing to non-standard mail systems, +ones that don't believe in delimiter-separated mailboxes. +.SH "SEE ALSO" +rcvtrip(1) +.SH BUGS +And why not? +@ + + +1.1 +log +@Initial revision +@ +text +@d70 1 +a70 1 +'yourname=string' (see below). +d107 1 +a107 1 +failure occured and the message should be rejected, these error codes +d170 1 +a170 1 +Initgroups is called if 4.2 version of UNIX is running. +d215 1 +a215 1 +Addr~~~~jpo=ack~~~~|~~~~R~~~~resend~~\-r~~$(reply-to) +d226 1 +a226 1 +\- the files normal location. +d238 2 +a239 2 +This alows interfacing to non-standard mail systems, +ones that don't believe in delimiter-separated mailboxes +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mark.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mark.rf,v new file mode 100644 index 0000000..fe18431 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mark.rf,v @@ -0,0 +1,309 @@ +head 1.9; +access; +symbols; +locks; strict; + + +1.9 +date 93.08.20.00.04.30; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 93.08.19.21.21.01; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.12.00.23.13; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.12.26.17.03.28; author mh; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.12.51; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.10; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.49; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.05; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.51; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@typo +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mark.rf,v 1.8 1993/08/19 21:21:01 jromine Exp jromine $ +.SC MARK 1 +.NA +mark \- mark messages +.SY +mark +\%[+folder] \%[msgs] +\%[\-sequence\ name\ ...] +\%[\-add] \%[\-delete] \%[\-list] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] +.DE +The \fImark\fR command manipulates message sequences by adding or +deleting message numbers from folder\-specific message sequences, +or by listing those sequences and messages. +A message sequence is a keyword, just like one of the +\*(lqreserved\*(rq message names, +such as \*(lqfirst\*(rq or \*(lqnext\*(rq. +Unlike the \*(lqreserved\*(rq message names, +which have a fixed semantics on a per\-folder basis, +the semantics of a message sequence may be defined, modified, and +removed by the user. +Message sequences are folder\-specific, e.g., +the sequence name \*(lqseen\*(rq in the context of folder \*(lq+inbox\*(rq +need not have any relation whatsoever to the sequence of the same name +in a folder of a different name. + +Three action switches direct the operation of \fImark\fR. +These switches are mutually exclusive: +the last occurrence of any of them overrides any previous occurrence of the +other two. + +The `\-add' switch tells \fImark\fR to add messages to sequences +or to create a new sequence. +For each sequence named via the `\-sequence\ name' argument +(which must occur at least once) +the messages named via `msgs' +(which defaults to \*(lqcur\*(rq if no `msgs' are given), +are added to the sequence. +The messages to be added need not be absent from the sequence. +If the `\-zero' switch is specified, +the sequence will be emptied prior to adding the messages. +Hence, `\-add\ \-zero' means that each sequence should be initialized +to the indicated messages, +while `\-add\ \-nozero' means that each sequence should be appended to +by the indicated messages. + +The `\-delete' switch tells \fImark\fR to delete messages from +sequences, and is the dual of `\-add'. +For each of the named sequences, +the named messages are removed from the sequence. +These messages need not be already present in the sequence. +If the `\-zero' switch is specified, +then all messages in the folder are appended to the sequence prior to +removing the messages. +Hence, `\-delete\ \-zero' means that each sequence should contain all +messages except those indicated, +while `\-delete\ \-nozero' means that only the indicated messages +should be removed from each sequence. +As expected, the command `mark\0\-sequence\0seen\0\-delete\0all' +deletes the sequence \*(lqseen\*(rq from the current folder. + +When creating (or modifying) a sequence, +the `\-public' switch indicates that the sequence should be made readable +for other \fIMH\fR users. +In contrast, the `\-nopublic' switch indicates that the sequence should be +private to the user's \fIMH\fR environment. + +The `\-list' switch tells \fImark\fR to list both the sequences defined +for the folder and the messages associated with those sequences. +\fIMark\fR will list the name of each sequence given by +`\-sequence\ name' and the messages associated with that sequence. +If `\-sequence' isn't used, all sequences will be listed, +with private sequences being so indicated. +The `\-zero' switch does not affect the operation of `\-list'. + +The current restrictions on sequences are: + +.in +.25i +The name used to denote a message sequence must consist of +an alphabetic character followed by zero or more +alphanumeric characters, and cannot be one of the (reserved) +message names \*(lqnew\*(rq, \*(lqfirst\*(rq, +\*(lqlast\*(rq, \*(lqall\*(rq, \*(lqnext\*(rq, or \*(lqprev\*(rq. + +Only a certain number of sequences may be defined for a given folder. +This number is usually limited to 26 (10 on small systems). + +Message ranges with user\-defined +sequence names are restricted to the form \*(lqname:n\*(rq or +\*(lqname:-n\*(rq, and refer to the first or last `n' messages +of the sequence `name', respectively. +Constructs of the form \*(lqname1\-name2\*(rq are forbidden. +.in -.25i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +pick (1), mh-sequence (5) +.De +`+folder' defaults to the current folder +.Ds +`\-add' if `\-sequence' is specified, `\-list' otherwise +.Ds +`msgs' defaults to cur (or all if `\-list' is specified) +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-nozero' +.Co +If a folder is given, it will become the current folder. +.Hh +Use \*(lqpick sequence \-list\*(rq +to enumerate the messages in a sequence (such as for use +by a shell script). +.En +@ + + +1.8 +log +@list reserved message sequence names +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mark.rf,v 1.7 1992/02/12 00:23:13 jromine Exp jromine $ +d84 3 +a86 3 +alphanumeric characters, and cannot be one of the reserved +message names (\*(lqnew\*(rq, \*(lqall\*(rq, \*(lqfirst\*(rq, +\*(lqlast\*(rq, \*(lqnext\*(rq, and \*(lqprev\*(rq). +@ + + +1.7 +log +@add hints +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mark.rf,v 1.6 1990/12/26 17:03:28 mh Exp jromine $ +d84 3 +a86 3 +alphanumeric characters, and can not be one of the \*(lqreserved\*(rq +message names +(e.g., \*(lqfirst\*(rq, \*(lqcur\*(rq, and so forth). +@ + + +1.6 +log +@document user-defined sequence ranges +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mark.rf,v 1.5 90/04/05 15:12:51 sources Exp Locker: mh $ +d73 4 +a76 3 +\fIMark\fR will list each sequence named via `\-sequence\ name' +(or all of them if `\-sequence' isn't used), +and the messages associated with that sequence. +d89 1 +a89 1 +This number is usually limited to 10. +d104 1 +a104 1 +pick (1) +d117 4 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d81 3 +a83 2 +The name used to denote a message sequence must consist solely of +alphabetic characters, and can not be one of the \*(lqreserved\*(rq +d90 5 +a94 3 +The name used to denote a message sequence can not occur as part of a +message range, e.g., constructs like \*(lqseen:20\*(rq or +\*(lqseen\-10\*(rq are forbidden. +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MARK 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MARK 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MARK 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/me2man.sed,v b/docs/historical/mh-6.8.5/conf/doc/RCS/me2man.sed,v new file mode 100644 index 0000000..9644cb8 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/me2man.sed,v @@ -0,0 +1,64 @@ +head 1.3; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.3 +date 90.04.08.15.03.06; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.22.20.13.24; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.22.20.12.03; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.3 +log +@add footer +@ +text +@/^\.SC/s/^\.SC\(.*\)$/.TH\1 @@(MHCENTERFOOT) @@(MHLEFTFOOT)/ +/^\.NA$/c\ +.SH NAME +/^\.SY$/c\ +.SH SYNOPSIS\ +.in +.5i\ +.ti -.5i +/^\.DE$/c\ +.in -.5i\ +.SH DESCRIPTION +@ + + +1.2 +log +@add .DE as well +@ +text +@d1 1 +a1 1 +/^\.SC/s/^\.SC\(.*\)$/.TH\1 MH [mh.6]/ +@ + + +1.1 +log +@Initial revision +@ +text +@d8 3 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mf.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mf.rf,v new file mode 100644 index 0000000..13a17c2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mf.rf,v @@ -0,0 +1,154 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.12.57; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.12; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.41.50; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.06; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.20.53; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC MF 1 +.NA +muinc, musift, uminc, umsift \- mail filters +.SY +@@(MHETCPATH)/muinc + +.ti .5i +@@(MHETCPATH)/musift +\%[files\ ...] + +.ti .5i +@@(MHETCPATH)/uminc + +.ti .5i +@@(MHETCPATH)/umsift +\%[files\ ...] +.DE +The mail filters +are a set of programs that filter mail from one format to another. +In particular, \fIUUCP\fR\- and \fIMMDF\fR\-style mail files are handled. + +\fImuinc\fR +filters mail from the user's \fIMMDF\fR maildrop into the user's \fIUUCP\fR +maildrop; +similarly, +\fIuminc\fR +filters mail from the user's \fIUUCP\fR maildrop into the user's \fIMMDF\fR +maildrop. +These two programs respect each system's maildrop locking protocols. + +\fImusift\fR +filters each file on the command line +(or the standard input if no arguments are given), +and places the result on the standard output in \fIUUCP\fR format. +The files (or standard input) are expected to be in \fIMMDF\fR format. +\fIumsift\fR +does the same thing filtering \fIUUCP\fR formatted files (or input), +and places the \fIMMDF\fR formatted result on the standard output. +No locking protocols are used by these programs. + +If the files aren't in the expected format, +the mail filters will try to recover. +In really bad cases, +you may lose big. +.Fi +^/usr/spool/mail/~^UUCP spool area for maildrops +^@@(MHDROPLOC)~^Location of standard maildrop +.Pr +None +.Sa +\fIProposed Standard for Message Header Munging\fR (aka RFC\-886), +.br +inc(1) +.De +.Co +.Bu +Numerous; protocol translation is very difficult. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MF 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MF 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MF 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-alias.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-alias.rf,v new file mode 100644 index 0000000..ae2d5f2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-alias.rf,v @@ -0,0 +1,443 @@ +head 1.11; +access; +symbols; +locks; strict; + + +1.11 +date 92.12.11.21.44.16; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.11.00.48.48; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.01.30.19.05.13; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 90.04.05.15.10.15; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.22.19.30.56; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.13; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.41.51; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.07; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.15.40.27; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.15.33.46; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.11 +log +@note bug in blind list forward references +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-alias.rf,v 1.10 1992/05/12 22:23:34 jromine Exp jromine $ +.SC MH-ALIAS 5 +.NA +mh-alias \- alias file for MH message system +.SY +any \fIMH\fR command +.DE +This describes both \fIMH\fR personal alias files and +the (primary) alias file for mail delivery, the file + + @@(MHETCPATH)/MailAliases + +It does \fBnot\fR describe aliases files used by the message transport system. +Each line of the alias file has the format: + + alias : address\-group +.br +or +.br + alias ; address\-group +.br +or +.br + < alias\-file +.br +or +.br + ; comment +.br + +where: + + address\-group := address\-list +.br + | \*(lq<\*(rq file +.br + | \*(lq=\*(rq UNIX\-group +.br + | \*(lq+\*(rq UNIX\-group +.br + | \*(lq*\*(rq + +.br + address\-list := address +.br + | address\-list, address +.br + +Continuation lines in alias files end with `\\' followed by the newline +character. + +Alias\-file and file are UNIX file names. +UNIX\-group is a group name (or number) from \fI/etc/group\fR. +An address is a \*(lqsimple\*(rq Internet\-style address. +Througout this file, case is ignored, except for alias\-file names. + +If the line starts with a `<', then the file named after the `<' is +read for more alias definitions. The reading is done recursively, so a `<' +may occur in the beginning of an alias file with the expected results. + +If the address\-group starts with a `<', +then the file named after the `<' is read and its contents are added to +the address\-list for the alias. + +If the address\-group starts with an `=', +then the file \fI/etc/group\fR is consulted +for the UNIX\-group named after the `='. +Each login name occurring as a member of the group is added to the +address\-list for the alias. + +In contrast, if the address\-group starts with a `+', +then the file \fI/etc/group\fR is consulted +to determine the group\-id of the UNIX\-group named after the `+'. +Each login name occurring in the \fI/etc/passwd\fR file whose group\-id +is indicated by this group is added to the address\-list for the alias. + +If the address\-group is simply `*', +then the file \fI/etc/passwd\fR is consulted +and all login names with a userid greater than some magic number +(usually 200) are added to the address\-list for the alias. + +In match, a trailing * on an alias will match just about anything appropriate. +(See example below.) + +An approximation of the way aliases are resolved at posting time is +(it's not really done this way): + +.in +.5i +1) Build a list of all addresses from the message to be +delivered, eliminating duplicate addresses. + +2) If this draft originated on the local host, +then for those addresses in the message that have no host specified, +perform alias resolution. + +3) For each line in the alias file, +compare \*(lqalias\*(rq against all of the existing addresses. +If a match, remove the matched \*(lqalias\*(rq from the address list, +and add each new address in the address\-group to the address list +if it is not already on the list. +The alias itself is not usually output, +rather the address\-group that the alias maps to is output instead. +If \*(lqalias\*(rq is terminated with a `;' instead of a `:', +then both the \*(lqalias\*(rq and the address are output +in the correct format. +(This makes replies possible since \fIMH\fR aliases and +personal aliases are unknown to the mail transport system.) +.in -.5i + +Since the alias file is read line by line, forward references +work, but backward references are not recognized, thus, there is +no recursion. + +.ne 10 +\fBExample:\fR +.nf +.in +.5i +<@@(MHETCPATH)/BBoardAliases +sgroup: fred, fear, freida +b-people: Blind List: bill, betty; +fred: frated@@UCI +UNIX\-committee: \*(rq are defined +to be \*(lqnews\*(rq. + +The key thing to understand about aliasing in \fIMH\fR +is that aliases in \fIMH\fR alias files are expanded into the +headers of messages posted. +This aliasing occurs first, +at posting time, +without the knowledge of the message transport system. +In contrast, +once the message transport system is given a message to deliver +to a list of addresses, +for each address that appears to be local, +a system\-wide alias file is consulted. +These aliases are \fBNOT\fR expanded into the headers of messages delivered. +.Hh +To use aliasing in \fIMH\fR quickly, do the following: + +.in +.5i +First, in your \fI\&.mh\(ruprofile\fR, +choose a name for your alias file, say \*(lqaliases\*(rq, +and add the line: + +.nf +.in +.5i +Aliasfile: aliases +.\" ali: \-alias aliases +.\" send: \-alias aliases +.\" whom: \-alias ailases +.in -.5i +.fi + +Second, create the file \*(lqaliases\*(rq in your \fIMH\fR directory. + +Third, start adding aliases to your \*(lqaliases\*(rq file as appropriate. +.in -.5i +.Fi +^@@(MHETCPATH)/MailAliases~^Primary alias file +.Pr +^Aliasfile:~^For a default alias file +.Sa +ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8) +.De +None +.Co +None +.Hi +In previous releases of \fIMH\fR, +only a single, system\-wide mh\-alias file was supported. +@@BEGIN: MMDFMTS +Now that \fIMH\fR uses \fIMMDF\fR as a transport system, +the system\-wide aliasing facility can be more consistently controlled by the +latter. +This means that at most sites, +the system\-wide mh\-alias file will be empty (or trivial at best). +@@END: MMDFMTS +@@BEGIN: MHMTS +This led to a number of problems, +since only mail\-system administrators were capable of (un)defining +aliases. +@@END: MHMTS +@@BEGIN: SENDMTS +This led to a number of problems, +since only mail\-system administrators were capable of (un)defining +aliases. +@@END: SENDMTS +Hence, +the semantics of mh\-alias were extended to support personal alias files. +Users of \fIMH\fR no longer need to bother mail\-system administrators for +keeping information in the system\-wide alias file, +as each \fIMH\fR user can create/modify/remove aliases at will from any +number of personal files. +.Bu +Although the forward-referencing semantics of \fImh\-alias\fR files prevent +recursion, the \*(lq<\ alias\-file\*(rq command may defeat this. Since the +number of file descriptors is finite (and very limited), such infinite +recursion will terminate with a meaningless diagnostic when all the fds are +used up. +.sp +Forward references do not work correctly inside blind lists. +.En +@ + + +1.10 +log +@fixup for nroff problems +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-alias.rf,v 1.9 1992/02/11 00:48:48 jromine Exp jromine $ +d115 1 +d137 1 +d142 1 +d149 1 +d225 1 +a225 1 +Although the forward\-referencing semantics of \fImh\-alias\fR files prevent +d230 2 +@ + + +1.9 +log +@Document Aliasfile may be more than one file +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: mh-alias.rf,v 1.8 1992/01/30 19:05:13 jromine Exp jromine $ +.SC MH\-ALIAS 5 +d5 1 +a5 1 +mh\-alias \- alias file for MH message system +@ + + +1.8 +log +@document blind lists +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-alias.rf,v 1.7 1990/04/05 15:10:15 sources Exp jromine $ +d168 1 +a168 1 +choose a name for your primary alias file, say \*(lqaliases\*(rq, +@ + + +1.7 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d120 1 +d136 4 +@ + + +1.6 +log +@document comment lines +@ +text +@d2 1 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d26 4 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MH\-ALIAS 5 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MH\-ALIAS 5 [mh.6] MH +@ + + +1.2 +log +@document Aliasfile: profile entry +@ +text +@d2 2 +a3 2 +.SC MH\-ALIAS 5 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d159 1 +a159 1 +and add three lines: +d163 4 +a166 3 +ali: \-alias aliases +send: \-alias aliases +whom: \-alias ailases +d177 1 +a177 1 +None +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-chart.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-chart.rf,v new file mode 100644 index 0000000..b86774a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-chart.rf,v @@ -0,0 +1,1147 @@ +head 2.25; +access; +symbols; +locks; strict; + + +2.25 +date 93.10.26.20.12.45; author jromine; state Exp; +branches; +next 2.24; + +2.24 +date 93.10.26.16.00.12; author jromine; state Exp; +branches; +next 2.23; + +2.23 +date 93.09.09.22.34.48; author jromine; state Exp; +branches; +next 2.22; + +2.22 +date 93.09.01.20.49.46; author jromine; state Exp; +branches; +next 2.21; + +2.21 +date 93.08.27.18.14.18; author jromine; state Exp; +branches; +next 2.20; + +2.20 +date 93.08.26.22.56.45; author jromine; state Exp; +branches; +next 2.19; + +2.19 +date 93.08.20.17.13.30; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 92.11.11.17.34.01; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 92.10.16.21.36.08; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.02.09.20.55.28; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.02.04.21.42.01; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.02.04.21.12.57; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 92.01.31.16.41.02; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 92.01.29.22.50.50; author jromine; state Exp; +branches; +next 2.10; + +2.10 +date 91.01.07.11.13.54; author mh; state Exp; +branches; +next 2.9; + +2.9 +date 90.04.08.18.22.55; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.04.05.21.43.10; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.04.05.20.40.25; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.04.05.15.08.08; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.03.22.11.31.14; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.21.10.20.27; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.03.20.19.41.52; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.03.20.17.36.08; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.03.18.23.26.17; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.34; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.06.02.11.27.09; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.25 +log +@mhn fixup +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-chart.rf,v 2.24 1993/10/26 16:00:12 jromine Exp jromine $ +.if '\*(ZZ'-man' \{\ +.SC MH-CHART 1 +.NA +mh-chart \- Chart of MH Commands +.SY +.\} +.in 1i +.na +.ti .5i +.ne 7 +ali +\%[\-alias\ aliasfile] +\%[\-list] \%[\-nolist] +\%[\-normalize] \%[\-nonormalize] +\%[\-user] \%[\-nouser] +aliases\ ... +\%[\-help] + +.ti .5i +.ne 6 +anno +\%[+folder] \%[msgs] +\%[\-component\ field] +\%[\-inplace] \%[\-noinplace] +\%[\-date] \%[\-nodate] +\%[\-text\ body] +\%[\-help] + +@@BEGIN: BBOARDS +.ti .5i +.ne 12 +bbc +\%[bboards\ ...] +\%[\-topics] \%[\-check] \%[\-read] +\%[\-quiet] \%[\-verbose] +\%[\-archive] \%[\-noarchive] +\%[\-protocol] \%[\-noprotocol] +\%[\-mshproc\ program] +\%[switches\ for\ \fImshproc\fR] +\%[\-rcfile rcfile] \%[\-norcfile] +\%[\-file\ BBoardsfile] \%[\-user\ BBoardsuser] +@@BEGIN: BPOP +\%[\-host\ host] +\%[\-rpop] \%[\-norpop] +@@END: BPOP +@@BEGIN: NNTP +\%[\-host\ host] +@@END: NNTP +\%[\-help] + +@@BEGIN: BBSERVER +.ti .5i +.ne 6 +bbl +\%[+folder] +\%[\-shell\ program] +\%[\-verbose] \%[\-noverbose] +bboard +\%[\-help] + +@@END: BBSERVER +@@END: BBOARDS +.ti .5i +.ne 6 +burst +\%[+folder] \%[msgs] +\%[\-inplace] \%[\-noinplace] +\%[\-quiet] \%[\-noquiet] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +@@BEGIN: TMA + +.ti .5i +.ne 7 +cipher +\%[\-cbc] \%[\-cks] \%[\-ecb] +\%[\-encipher] \%[\-decipher] +\%[\-kd\ key] \%[\-iv\ vector] +\%[\-auto] \%[\-noauto] +\%[\-echo] \%[\-noecho] +\%[\-help] +@@END: TMA + +.ti .5i +.ne 9 +comp +\%[+folder] \%[msg] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-file\ file] +\%[\-form\ formfile] +\%[\-use] \%[\-nouse] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +@@BEGIN: TMA + +.ti .5i +.ne 5 +decipher +\%[+folder] \%[msgs] +\%[\-insitu] \%[\-noinsitu] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +@@END: TMA + +.ti .5i +.ne 9 +dist +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-form\ formfile] +\%[\-inplace] \%[\-noinplace] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +.ne 4 +@@(MHETCPATH)/fmtdump +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-help] + +.ti .5i +.ne 12 +folder +\%[+folder] \%[msg] +\%[\-all] +\%[\-fast] \%[\-nofast] +\%[\-header] \%[\-noheader] +\%[\-pack] \%[\-nopack] +\%[\-recurse] \%[\-norecurse] +\%[\-total] \%[\-nototal] +\%[\-print] \%[\-noprint] +\%[\-list] \%[\-nolist] +\%[\-push] \%[\-pop] +\%[\-help] + +.ti .5i +folders + +.ti .5i +.ne 11 +forw +\%[+folder] \%[msgs] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +\%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +@@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@@END: MIME +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +.ne 5 +forw +\%[+folder] \%[msgs] +\%[\-digest\ list] \%[\-issue\ number] \%[\-volume\ number] +\%[other\ switches\ for\ \fIforw\fR] +\%[\-help] + +.ti .5i +.ne 11 +@@BEGIN: MF +.ne 12 +@@END: MF +@@BEGIN: POP +.ne 13 +@@END: POP +inc +\%[+folder] +\%[\-audit\ audit\-file] \%[\-noaudit] +\%[\-changecur] \%[\-nochangecur] +@@BEGIN: TMA +\%[\-decrypt] \%[\-nodecrypt] +@@END: TMA +\%[\-file\ name] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-silent] \%[\-nosilent] +\%[\-truncate] \%[\-notruncate] +\%[\-width\ columns] +@@BEGIN: MF +\%[\-uucp] \%[\-nouucp] +@@END: MF +@@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +\%[\-pack\ file] \%[\-nopack] +@@END: POP +\%[\-help] + +.ti .5i +.ne 7 +mark +\%[+folder] \%[msgs] +\%[\-sequence\ name\ ...] +\%[\-add] \%[\-delete] \%[\-list] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] + +.ti .5i +.ne 9 +@@(MHETCPATH)/mhl +\%[\-bell] \%[\-nobell] +\%[\-clear] \%[\-noclear] +\%[\-folder\ +folder] +\%[\-form\ formfile] +\%[\-length\ lines] \%[\-width\ columns] +\%[\-moreproc\ program] \%[\-nomoreproc] +\%[files\ ...] +\%[\-help] + +.ti .5i +.ne 8 +mhmail +\%[ +addrs\ ... +\%[\-body\ text] +\%[\-cc\ addrs\ ...] +\%[\-from\ addr] +\%[\-subject subject]] +\%[\-help] +@@BEGIN: MIME + +.ti .5i +.ne 9 +mhn +\%[\%[+folder] \%[msgs] | \%[\-file\0file]] +.br +\%[\-part\0number]... \%[\-type\0content]... +.br +\%[\-list\0\%[\-headers]\0\%[\-noheaders] +.br + \%[\-realsize]\0\%[\-norealsize]] \%[-nolist] +.br +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly] +.br + \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow] +.br +\%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore] +.br +\%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy] +.br +\%[\-check]\0\%[\-nocheck] +.br +\%[\-ebcdicsafe]\0\%[\-noebcdicsafe] +.br +\%[\-rfc934mode]\0\%[\-norfc934mode] +.br +\%[\-verbose]\0\%[\-noverbose] +.br +\%[\-help] +@@END: MIME + +.ti .5i +.ne 5 +mhparam +\%[profile-components] +\%[\-components] \%[\-nocomponents] +\%[\-all] +\%[\-help] + +.ti .5i +.ne 3 +mhpath +\%[+folder] \%[msgs] +\%[\-help] + +.ti .5i +.ne 5 +@@BEGIN: POP +.ne 7 +@@END: POP +msgchk +\%[\-date] \%[\-nodate] +\%[\-notify\ all/mail/nomail] \%[\-nonotify\ all/mail/nomail] +@@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@@END: POP +\%[users\ ...] +\%[\-help] + +.ti .5i +.ne 5 +msh +\%[\-prompt\ string] +\%[\-scan] \%[\-noscan] +\%[\-topcur] \%[\-notopcur] +\%[file] +\%[\-help] + +.ti .5i +.ne 6 +next +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 4 +packf +\%[+folder] \%[msgs] +\%[-file\ name] +\%[\-help] + +.ie t \{\ +.ta .4i 1.8i +.nf +.in .5i +.ne 7 +^pick~^^\0\-cc~^ \%[+folder] \%[msgs] \%[\-help] +^^^\0\-date~^ \%[\-before\ date] \%[\-after\ date] \%[\-datefield\ field] +^^^\0\-from~^ +^^^\s+2\b'\(lt\(bv\(bv\(lk\(bv\(bv\(lb'\s0\-search~\s+2\b'\(rt\(bv\(bv\(rk\(bv\(bv\(rb'\s0^ pattern \%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +^^^\0\-subject~^ +^^^\0\-to~^ \%[\-sequence\ name\ ...] \%[\-public] \%[\-nopublic] \%[\-zero] \%[\-nozero] +^^^\0\-\|\-component~^ \%[\-list] \%[\-nolist] +.fi +.re +.in 1i +.\} +.el \{\ +.ti .5i +.ne 10 +pick +\%[+folder] \%[msgs] +\%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +\%[\-\|\-component\ pattern] +\%[\-after\ date] \%[\-before\ date] \%[\-datefield\ field] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-list] \%[\-nolist] +\%[\-help] +.\} +@@BEGIN: MPOP + +.ti .5i +.ne 11 +popi +\%[+folder] +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@@BEGIN: BPOP +\%[\-auto] \%[\-noauto] +\%[\-mshproc\ program] +@@END: BPOP +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +\%[\-help] +@@END: MPOP + + +.ti .5i +.ne 6 +prev +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 7 +prompter +\%[\-erase\ chr] +\%[\-kill\ chr] +\%[\-prepend] \%[\-noprepend] +\%[\-rapid] \%[\-norapid] +\%[\-doteof] \%[\-nodoteof] +file +\%[\-help] + +.ti .5i +.ne 7 +@@(MHETCPATH)/rcvstore +\%[+folder] +\%[\-create] \%[\-nocreate] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] + +.ti .5i +.ne 9 +refile +\%[msgs] +\%[\-draft] +\%[\-link] \%[\-nolink] +\%[\-preserve] \%[\-nopreserve] +\%[\-src\ +folder] +\%[\-file\ file] ++folder ... +\%[\-help] + +.ti .5i +.ne 15 +repl +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-cc\ all/to/cc/me] \%[\-nocc\ all/to/cc/me] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-fcc\ +folder] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +.\" \%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +\%[\-query] \%[\-noquery] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-width\ columns] +\%[\-help] + +.ti .5i +.ne 4 +rmf +\%[+folder] +\%[\-interactive] \%[\-nointeractive] +\%[\-help] + +.ti .5i +.ne 3 +rmm +\%[+folder] \%[msgs] +\%[\-help] + +.ti .5i +.ne 8 +scan +\%[+folder] \%[msgs] +\%[\-clear] \%[\-noclear] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-header] \%[\-noheader] +\%[\-width\ columns] +\%[\-reverse] \%[\-noreverse] +\%[\-file filename] +\%[\-help] + +.ti .5i +.ne 15 +send +\%[\-alias\ aliasfile] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +@@BEGIN: TMA +\%[\-encrypt] \%[\-noencrypt] +@@END: TMA +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +\%[\-forward] \%[\-noforward] +@@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@@END: MIME +\%[\-msgid] \%[\-nomsgid] +\%[\-push] \%[\-nopush] +@@BEGIN: MIME +\%[\-split\ seconds] +@@END: MIME +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +\%[file\ ...] +\%[\-help] + +.ti .5i +.ne 7 +show +\%[+folder] \%[msgs] +\%[\-draft] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 5 +sortm +\%[+folder] \%[msgs] +\%[\-datefield\ field] +\%[\-textfield\ field] \%[\-notextfield] +\%[\-limit days] \%[\-nolimit] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +@@BEGIN: TMA + +.ti .5i +.ne 11 +tma +\%[\-boot\ file] \%[\-id\ kdsid] \%[\-mk\ key] +\%[\-kds\ server] +\%[\-add] \%[\-delete] \%[\-list] \%[\-reset] +\%[\-user\ name] +\%[\-fetch] \%[\-nofetch] +\%[\-expire\ days] \%[\-fexpire\ days] +\%[\-count\ uses] \%[\-fcount\ uses] +\%[\-echo] \%[\-noecho] +\%[\-verbose] \%[\-noverbose] +addrs\ ... +\%[\-help] +@@END: TMA + +.ti .5i +.ne 5 +vmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] + +.ti .5i +.ne 6 +whatnow +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-prompt\ string] +\%[file] +\%[\-help] + +.ti .5i +.ne 7 +whom +\%[\-alias\ aliasfile] +\%[\-check] \%[\-nocheck] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[file] +\%[\-help] + +.ti .5i +.ne 7 +@@(MHETCPATH)/ap +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-normalize] \%[\-nonormalize] +\%[\-width\ columns] +addrs\ ... +\%[\-help] + +.ti .5i +.ne 5 +@@(MHETCPATH)/conflict +\%[\-mail\ name] +\%[\-search\ directory] +\%[aliasfiles\ ...] +\%[\-help] + +.ti .5i +.ne 5 +@@(MHETCPATH)/dp +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +dates\ ... +\%[\-help] + +.ti .5i +.ne 3 +@@(MHETCPATH)/install\-mh +\%[\-auto] +\%[\-compat] +@@BEGIN: APOP + +.ti .5i +.ne 3 +popauth +\%[\-init] \%[\-list] \%[\-user\ name] +\%[\-help] +@@END: APOP + +.ti .5i +.ne 11 +@@(MHETCPATH)/post +\%[\-alias\ aliasfile] +@@BEGIN: TMA +\%[\-encrypt] \%[\-noencrypt] +@@END: TMA +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +@@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@@END: MIME +\%[\-msgid] \%[\-nomsgid] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +file +\%[\-help] + +.ti .5i +.ne 10 +@@(MHETCPATH)/slocal \%[address\ info\ sender] +\%[\-addr\ address] +\%[\-info\ data] +\%[\-sender\ sender] +\%[\-user\ username] +\%[\-mailbox\ mbox] +\%[\-file\ file] +\%[\-maildelivery\ deliveryfile] +\%[\-verbose] \%[\-noverbose] +\%[\-debug] +\%[\-help] +.ad +.in 0 +@ + + +2.24 +log +@add -nocache, -rcache, -wcache +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.19 1993/08/20 17:13:30 jromine Exp $ +d239 2 +a240 2 +\%[+folder] \%[msgs] +\%[\-file\0file] +@ + + +2.23 +log +@fixes from mtr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.21 1993/08/27 18:14:18 jromine Exp $ +a131 1 +\%[\-create] \%[\-nocreate] +d239 1 +a239 1 +\%[+folder] \%[msgs] +d253 1 +a253 1 +\%[\-cache\0policy] +@ + + +2.22 +log +@document mhn -file +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.21 1993/08/27 18:14:18 jromine Exp jromine $ +d255 1 +d257 1 +d259 1 +d261 1 +d263 1 +@ + + +2.21 +log +@use folder -[no]create +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.20 1993/08/26 22:56:45 jromine Exp jromine $ +d240 3 +a242 1 +\%[+folder] \%[msgs] \%[\-part\0number]... \%[\-type\0content]... +@ + + +2.20 +log +@document folder -create policy +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.19 1993/08/20 17:13:30 jromine Exp jromine $ +d132 1 +a132 1 +\%[\-create\0policy] +@ + + +2.19 +log +@fixup for mhn changes +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.18 1992/11/11 17:34:01 jromine Exp jromine $ +d132 1 +@ + + +2.18 +log +@add fmtdump switches, slocal, popauth +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.17 1992/10/16 21:36:08 jromine Exp jromine $ +d241 1 +a241 1 +\%[\-list\0\%[\-header]\0\%[\-noheader] +d245 1 +a245 1 +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly]] +d247 1 +a247 1 + \%[\-form\0formfile]] \%[\-noshow] +d251 5 +a255 4 +\%[\-verbose] \%[\-noverbose] +\%[\-rfc934mode] \%[\-norfc934mode] +\%[\-ebcdic] \%[\-noebcdicsafe] +.br +@ + + +2.17 +log +@MIME changes +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.16 1992/05/12 22:23:34 jromine Exp jromine $ +d121 5 +a125 3 +.ne 2 +fmtdump +\%[filename] +d571 1 +d574 7 +d597 14 +@ + + +2.16 +log +@fixup for nroff problems +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.15 1992/02/09 20:55:28 jromine Exp jromine $ +d154 3 +d232 1 +d254 1 +d341 1 +d358 1 +a360 1 + +d459 3 +d464 1 +d466 1 +d579 3 +@ + + +2.15 +log +@add mhparam/fmtdump +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.14 1992/02/04 21:42:01 jromine Exp jromine $ +d4 1 +a4 1 +.SC MH\-CHART 1 +d6 1 +a6 1 +mh\-chart \- Chart of \fIMH\fR Commands +@ + + +2.14 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.13 1992/02/04 21:12:57 jromine Exp jromine $ +d121 1 +a121 1 +.ne 3 +d249 8 +@ + + +2.13 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.12 1992/01/31 16:41:02 jromine Exp jromine $ +d191 2 +a193 1 +\%[\-rpop] \%[\-norpop] +d267 1 +@ + + +2.12 +log +@Multimedia MH +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.11 1992/01/29 22:50:50 jromine Exp $ +d326 18 +@ + + +2.11 +log +@add fmtdump +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.10 1991/01/07 11:13:54 mh Exp jromine $ +d230 21 +d427 1 +@ + + +2.10 +log +@document scan -file filename +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.9 90/04/08 18:22:55 sources Exp Locker: mh $ +d119 5 +@ + + +2.9 +log +@agreement +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.8 90/04/05 21:43:10 sources Exp Locker: sources $ +d384 1 +@ + + +2.8 +log +@prompter fix +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.7 90/04/05 20:40:25 sources Exp Locker: sources $ +d18 1 +a18 1 +names\ ... +@ + + +2.7 +log +@add sortm options +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-chart.rf,v 2.6 90/04/05 15:08:08 sources Exp Locker: sources $ +d317 1 +@ + + +2.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d420 2 +@ + + +2.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +2.4 +log +@changes for "bbhome: none" +@ +text +@d3 2 +a4 2 +.TH MH\-CHART 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d6 1 +a6 1 +.SH .SY +@ + + +2.3 +log +@typo +@ +text +@d52 1 +d62 1 +@ + + +2.2 +log +@fixup for makewhatis +@ +text +@d3 1 +a3 1 +.TH MH\-CHART 1 [mh.6] MH +@ + + +2.1 +log +@probably still not up to date +@ +text +@d3 2 +a4 2 +.SC MH\-CHART 1 +.NA +d6 1 +a6 1 +.SY +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d350 1 +a350 1 +\%[\-format] \%[\-noformat] +d379 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d26 1 +d47 3 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-format.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-format.rf,v new file mode 100644 index 0000000..5ee9fb7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-format.rf,v @@ -0,0 +1,2188 @@ +head 1.47; +access; +symbols; +locks; strict; + + +1.47 +date 95.12.06.23.33.39; author jromine; state Exp; +branches; +next 1.46; + +1.46 +date 94.04.21.19.11.19; author jromine; state Exp; +branches; +next 1.45; + +1.45 +date 93.08.19.20.26.17; author jromine; state Exp; +branches; +next 1.44; + +1.44 +date 93.06.12.06.49.57; author jromine; state Exp; +branches; +next 1.43; + +1.43 +date 92.12.02.18.41.50; author jromine; state Exp; +branches; +next 1.42; + +1.42 +date 92.11.20.19.35.06; author jromine; state Exp; +branches; +next 1.41; + +1.41 +date 92.10.28.23.03.14; author jromine; state Exp; +branches; +next 1.40; + +1.40 +date 92.10.27.00.20.03; author jromine; state Exp; +branches; +next 1.39; + +1.39 +date 92.10.26.17.03.42; author jromine; state Exp; +branches; +next 1.38; + +1.38 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.37; + +1.37 +date 92.02.18.17.28.26; author jromine; state Exp; +branches; +next 1.36; + +1.36 +date 92.02.14.19.14.42; author jromine; state Exp; +branches; +next 1.35; + +1.35 +date 92.02.11.05.03.41; author jromine; state Exp; +branches; +next 1.34; + +1.34 +date 92.02.09.22.11.10; author jromine; state Exp; +branches; +next 1.33; + +1.33 +date 92.02.09.07.18.01; author jromine; state Exp; +branches; +next 1.32; + +1.32 +date 92.02.07.01.08.25; author jromine; state Exp; +branches; +next 1.31; + +1.31 +date 92.02.06.00.13.07; author jromine; state Exp; +branches; +next 1.30; + +1.30 +date 92.01.29.22.55.31; author jromine; state Exp; +branches; +next 1.29; + +1.29 +date 91.01.11.09.17.35; author mh; state Exp; +branches; +next 1.28; + +1.28 +date 91.01.11.09.15.19; author mh; state Exp; +branches; +next 1.27; + +1.27 +date 90.12.27.17.22.27; author mh; state Exp; +branches; +next 1.26; + +1.26 +date 90.04.05.15.09.13; author sources; state Exp; +branches; +next 1.25; + +1.25 +date 90.04.04.23.07.22; author sources; state Exp; +branches; +next 1.24; + +1.24 +date 90.04.02.18.07.25; author sources; state Exp; +branches; +next 1.23; + +1.23 +date 90.04.02.17.56.48; author sources; state Exp; +branches; +next 1.22; + +1.22 +date 90.04.02.17.49.02; author sources; state Exp; +branches; +next 1.21; + +1.21 +date 90.03.31.18.24.07; author sources; state Exp; +branches; +next 1.20; + +1.20 +date 90.03.22.11.31.15; author sources; state Exp; +branches; +next 1.19; + +1.19 +date 90.03.20.22.21.11; author sources; state Exp; +branches; +next 1.18; + +1.18 +date 90.03.20.19.41.54; author sources; state Exp; +branches; +next 1.17; + +1.17 +date 90.03.20.17.36.10; author sources; state Exp; +branches; +next 1.16; + +1.16 +date 90.03.20.10.20.21; author sources; state Exp; +branches; +next 1.15; + +1.15 +date 90.03.19.16.02.45; author sources; state Exp; +branches; +next 1.14; + +1.14 +date 90.03.18.23.27.00; author sources; state Exp; +branches; +next 1.13; + +1.13 +date 90.03.18.20.55.16; author sources; state Exp; +branches; +next 1.12; + +1.12 +date 90.03.18.19.54.04; author sources; state Exp; +branches; +next 1.11; + +1.11 +date 90.03.18.16.49.19; author sources; state Exp; +branches; +next 1.10; + +1.10 +date 90.03.15.20.11.07; author sources; state Exp; +branches; +next 1.9; + +1.9 +date 90.03.15.11.27.04; author sources; state Exp; +branches; +next 1.8; + +1.8 +date 90.03.15.11.20.39; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.15.10.50.08; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.15.10.40.21; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.15.10.11.44; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.15.00.06.45; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.14.17.34.00; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.14.09.51.17; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.14.09.50.29; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.47 +log +@document %% and \\ +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-format.rf,v 1.46 1994/04/21 19:11:19 jromine Exp jromine $ +.SC MH-FORMAT 5 +.NA +mh-format \- format file for MH message system +.SY +some \fIMH\fR commands +.DE +Several \fIMH\fR commands utilize either a \fIformat\fR string or a +\fIformat\fR file during their execution. +For example, +\fIscan\fR\0(1) uses a format string which directs it how to generate the +scan listing for each message; +\fIrepl\fR\0(1) uses a format file which directs it how to generate the +reply to a message, and so on. + +Format strings are designed to be efficiently parsed by \fIMH\fR which +means they are not necessarily simple to write and understand. +This means that novice, casual, or even advanced users of \fIMH\fR should +not have to deal with them. +Some canned scan listing formats are in +@@(MHETCPATH)/scan.time, @@(MHETCPATH)/scan.size, and @@(MHETCPATH)/scan.timely. +Look in @@(MHETCPATH) for other \fIscan\fR and \fIrepl\fR format files +which may have been written at your site. + +It suffices to have your local \fIMH\fR expert actually write new format +commands or modify existing ones. +This manual section explains how to do that. +Note: familiarity with the C \fIprintf\fR routine is assumed. + +A format string consists of ordinary text, and special +multi-character \fIescape\fR sequences which begin with `%'. +When specifying a format string, +the usual C backslash characters are honored: +`\\b', `\\f', `\\n', `\\r', and `\\t'. +Continuation lines in format files end with `\\' followed +by the newline character. +To put a literal `%' or `\\' in a format string, use two of them: +`%%' and `\\\\'. +.\" talk about syntax first, then semantics +There are three types of \fIescape\fR sequences: +header \fIcomponents\fR, built-in \fIfunctions\fR, and flow \fIcontrol\fR. + +A \fIcomponent\fR escape is specified as `%{\fIcomponent\fR\^}', +and exists for each header found in the message being processed. +For example `%{date}' refers to the \*(lqDate:\*(rq field of the appropriate +message. +All component escapes have a string value. +Normally, component values are compressed by +converting any control characters (tab and newline included) to spaces, +then eliding any leading or multiple spaces. +However, +commands may give different interpretations to some component escapes; +be sure to refer to each command's manual entry for complete details. + +A \fIfunction\fR escape is specified as `%(\fIfunction\fR\^)'. +All functions are built-in, and most have a string or numeric value. + +.ne 12 +.Uh "Control-flow escapes" +A \fIcontrol\fR escape is one of: `%<', `%?', `%|', or `%>'. +.\" `%[', or `%]'. +These are combined into the conditional execution construct: +.sp +.nf + % +.fi +.sp +Extra white space is shown here only for clarity. +These constructs may be nested without ambiguity. +They form a general \fBif\-elseif\-else\-endif\fP block where +only one of the \fIformat text\fP segments is interpreted. + +The `%<' and `%?' control escapes causes a condition to be evaluated. +This condition +may be either a \fIcomponent\fP or a \fIfunction\fP. +The four constructs have the following syntax: +.sp 1 +.nf + %<{component} + %<(function) + %?{component} + %?(function) +.fi +.sp +These control escapes test whether +the function or component value is non-zero (for integer-valued escapes), +or non-empty (for string-valued escapes). + +If this test evaulates true, +then the format text +up to the next corresponding control escape +(one of `%|', `%?', or `%>') +is interpreted normally. +Next, +all format text (if any) up to the corresponding `%>' control +escape is skipped. +The `%>' control escape is not interpreted; +normal +interpretation resumes after the `%>' escape. + +If the test evaluates false, however, +then the format text +up to the next corresponding control escape +(again, one of `%|', `%?', or `%>') +is skipped, instead of being interpreted. +If the control escape encountered was `%?', +then the condition associated with that control escape is +evaluated, and interpretation +proceeds after that test +as described in the previous paragraph. +If the control escape encountered was `%|', +then the format text +up to the corresponding `%>' escape +is interpreted normally. +As above, +the `%>' escape is not interpreted and normal +interpretation resumes after the `%>' escape. + +The `%?' control escape and its following format text +is optional, and may be included zero or more times. +The `%|' control escape and its following format text +is also optional, and may be included zero or one times. + +.\" The '%[' and '%]' escapes form a loop construct. +.\" For format strings which are executed repeatedly +.\" (as with \fIscan\fP), these escapes delimit the main +.\" body of execution. Format text which occurs +.\" before the '%[' escape is executed once only, prior +.\" to processing the first message; format text occuring +.\" after the '%]' escape is ignored. +.\" (These escapes may not be nested). +.\" +.Uh "Function escapes" +.ne 10 +Most functions expect an argument of a particular type: +.sp 1 +.nf +.ta +\w'Argument 'u +\w'An optional component, 'u +\fIArgument\fR \fIDescription\fR \fIExample Syntax\fR +literal A literal number, %(\fIfunc\fR 1234) + or string %(\fIfunc\fR text string) +comp Any header component %(\fIfunc\fR\^{\fIin-reply-to\fR\^}) +date A date component %(\fIfunc\fR\^{\fIdate\fR\^}) +addr An address component %(\fIfunc\fR\^{\fIfrom\fR\^}) +expr An optional component, %(\fIfunc\fR\^(\fIfunc2\fR\^)) + function or control, %(\fIfunc\fR %<{\fIreply-to\fR\^}%|%{\fIfrom\fR\^}%>) + perhaps nested %(\fIfunc\fR\^(\fIfunc2\fR\^{\fIcomp\fR\^})) +.re +.fi + +The types \fIdate\fR and \fIaddr\fR have the same syntax +as \fIcomp\fR, but require that the header +component be a date string, or address string, respectively. + +All arguments except those of type \fIexpr\fR are required. +For the \fIexpr\fR argument type, +the leading `%' must be omitted for component and function escape arguments, +and must be present (with a leading space) for control escape arguments. + +The evaluation of format strings +is based on a simple machine with an +integer register \fInum\fR, and a text string register \fIstr\fR. +When a function escape is processed, +if it accepts an optional \fIexpr\fR argument which is not present, +it reads the current value of either \fInum\fR or \fIstr\fR as appropriate. + +.\" return values +.Uh "Return values" +Component escapes write the value of their message header in \fIstr\fR. +Function escapes write their return value in +\fInum\fR for functions returning \fIinteger\fR or \fIboolean\fR values, +and in \fIstr\fR for functions returning string values. +(The \fIboolean\fR type is a subset of integers with usual +values 0=false and 1=true.) +Control escapes return a \fIboolean\fP value, and set \fInum\fP. + +All component escapes, and those +function escapes which return an \fIinteger\fR or \fIstring\fR value, +pass this value back to their caller +in addition to setting \fIstr\fR or \fInum\fR. +These escapes will print out this value +unless called as part of an argument to another escape sequence. +Escapes which return a \fIboolean\fR value do pass this value +back to their caller in \fInum\fP, but will never print out the value. + +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +msg integer message number +cur integer message is current +.\" unseen integer message is unseen +size integer size of message +strlen integer length of \fIstr\fR +width integer output buffer size in bytes +charleft integer bytes left in output buffer +timenow integer seconds since the UNIX epoch +me string the user's mailbox +eq literal boolean \fInum\fR == \fIarg\fR +ne literal boolean \fInum\fR != \fIarg\fR +gt literal boolean \fInum\fR > \fIarg\fR +match literal boolean \fIstr\fR contains \fIarg\fR +amatch literal boolean \fIstr\fR starts with \fIarg\fR +plus literal integer \fIarg\fR plus \fInum\fR +minus literal integer \fIarg\fR minus \fInum\fR +divide literal integer \fInum\fR divided by \fIarg\fR +modulo literal integer \fInum\fR modulo \fIarg\fR +num literal integer Set \fInum\fR to \fIarg\fR +lit literal string Set \fIstr\fR to \fIarg\fR +getenv literal string Set \fIstr\fR to environment value of \fIarg\fR +profile literal string Set \fIstr\fR to profile component \fIarg\fR value +.\" dat literal int return value of dat[arg] +nonzero expr boolean \fInum\fR is non-zero +zero expr boolean \fInum\fR is zero +null expr boolean \fIstr\fR is empty +nonnull expr boolean \fIstr\fR is non-empty +void expr Set \fIstr\fR or \fInum\fR +comp comp string Set \fIstr\fR to component text +compval comp integer \fInum\fR set to \*(lq\fBatoi\fR(\fIcomp\fR\^)\*(rq +.\" compflag comp integer Set \fInum\fR to component flags bits (internal) +trim expr trim trailing white-space from \fIstr\fR +putstr expr print \fIstr\fR +putstrf expr print \fIstr\fR in a fixed width +putnum expr print \fInum\fR +putnumf expr print \fInum\fR in a fixed width +.\" addtoseq literal add msg to sequence (LBL option) +.re +.fi + +These functions require a date component as an argument: +.sp 1 +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +sec date integer seconds of the minute +min date integer minutes of the hour +hour date integer hours of the day (0-23) +wday date integer day of the week (Sun=0) +day date string day of the week (abbrev.) +weekday date string day of the week +sday date integer day of the week known? + (0=implicit,\-1=unknown) +mday date integer day of the month +yday date integer day of the year +mon date integer month of the year +month date string month of the year (abbrev.) +lmonth date string month of the year +year date integer year (may be > 100) +zone date integer timezone in hours +tzone date string timezone string +szone date integer timezone explicit? + (0=implicit,\-1=unknown) +date2local date coerce date to local timezone +date2gmt date coerce date to GMT +dst date integer daylight savings in effect? +clock date integer seconds since the UNIX epoch +rclock date integer seconds prior to current time +tws date string official 822 rendering +pretty date string user-friendly rendering +nodate date integer \fIstr\fR not a date string +.re +.fi + +.ne 12 +These functions require an address component as an argument. +The return value of functions noted with `*' pertain only to +the first address present in the header component. +.sp 1 +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +proper addr string official 822 rendering +friendly addr string user-friendly rendering +addr addr string mbox@@host or host!mbox rendering* +pers addr string the personal name* +note addr string commentary text* +mbox addr string the local mailbox* +mymbox addr integer the user's addresses? (0=no,1=yes) +host addr string the host domain* +nohost addr integer no host was present* +type addr integer host type* (0=local,1=network, + \-1=uucp,2=unknown) +path addr string any leading host route* +ingrp addr integer address was inside a group* +gname addr string name of group* +formataddr expr append \fIarg\fR to \fIstr\fR as a + (comma separated) address list +putaddr literal print \fIstr\fR address list with + \fIarg\fR as optional label; + get line width from \fInum\fR +.re +.fi + +When escapes are nested, evaluation is done from inner-most to outer-most. +The outer-most escape must begin with `%'; the inner escapes must not. +For example, + +.ti +.5i +%<(mymbox{from}) To: %{to}%> + +writes the value of the header component \*(lqFrom:\*(rq to \fIstr\fR\^; +then (\fImymbox\fR\^) reads \fIstr\fR +and writes its result to \fInum\fR; +then the control escape evaluates \fInum\fR. If \fInum\fR is +non-zero, the string \*(lqTo: \*(rq is printed followed by +the value of the header component \*(lqTo:\*(rq. + +A minor explanation of (\fImymbox\fR\^{\fIcomp\fR\^}) is in order. +In general, it checks each of the addresses in the header component +\*(lq\fIcomp\fR\*(rq +against the user's mailbox name and any \fIAlternate-Mailboxes\fR. +It returns true if any address matches, however, it +also returns true if the \*(lq\fIcomp\fR\*(rq header is not present +in the message. If needed, the (\fInull\fR\^) function can be +used to explicitly test for this condition. + +When a function or component escape is interpreted and the result +will be immediately printed, +an optional field width can be +specified to print the field in exactly a given number of characters. +For example, a numeric escape like %4(\fIsize\fR\^) will print at most 4 +digits of the message size; overflow will be indicated by a `?' in the +first position (like `?234'). +A string escape like %4(\fIme\fR\^) will print the first 4 characters and +truncate at the end. +Short fields are padded at the right with the fill character (normally, +a blank). If the field width argument begins with a leading zero, +then the fill character is set to a zero. + +As above, +the functions (\fIputnumf\fR\^) and (\fIputstrf\fR\^) print their result in +exactly the number of characters specified by their leading field width +argument. +For example, +%06(\fIputnumf\fR\^(\fIsize\fR\^)) will print the message size +in a field six characters wide filled with leading zeros; +%14(\fIputstrf\^\fR{\fIfrom\^\fR}) will print +the \*(lqFrom:\*(rq header component in fourteen characters with +trailing spaces added as needed. +For \fIputstrf\fR, +using a negative value for the field width causes right-justification +of the string within the field, +with padding on the left up to the field width. +The functions (\fIputnum\fR\^) and (\fIputstr\fR\^) print their result in +the minimum number of characters required, and ignore any leading +field width argument. + +The available output width is kept in an internal register; any output past +this width will be truncated. + +Comments may be inserted in most places where a function argument +is not expected. A comment begins with `%;' and ends with +a (non-escaped) newline. + +With all this in mind, +here's the default format string for \fIscan\fR. +It's been divided into several pieces for readability. +The first part is: + +.ti +.5i +%4(msg)%<(cur)+%| %>%<{replied}\-%?{encrypted}E%| %> + +which says that the message number should be printed in four digits, +if the message is the current message then a `+' else a space should be +printed, +and if a \*(lqReplied:\*(rq field is present then a `\-' else +if an \*(lqEncrypted:\*(rq field is present then an `E' otherwise +a space should be printed. +Next: + +.ti +.5i +%02(mon{date})/%02(mday{date}) + +the month and date are printed in two digits (zero filled) separated by +a slash. +Next, + +.ti +.5i +%<{date} %|*> + +If a \*(lqDate:\*(rq field was present, +then a space is printed, otherwise a `*'. +Next, + +.ti +.5i +%<(mymbox{from})%<{to}To:%14(friendly{to})%>%> + +if the message is from me, +and there is a \*(lqTo:\*(rq header, +print `To:' followed by a \*(lquser-friendly\*(rq rendering of the +first address in the \*(lqTo:\*(rq field. +Continuing, + +.ti +.5i +%<(zero)%17(friendly{from})%> + +if either of the above two tests failed, +then the \*(lqFrom:\*(rq address is printed +in a \*(lquser-friendly\*(rq format. +And finally, + +.ti +.5i +%{subject}%<{body}<<%{body}%> + +the subject and initial body (if any) are printed. + +For a more complicated example, next consider +the default \fIreplcomps\fR format file. + +.ti +.5i +%(lit)%(formataddr %<{reply-to} + +This clears \fIstr\fR and formats the \*(lqReply-To:\*(rq header +if present. If not present, the else-if clause is executed. + +.ti +.5i +%?{from}%?{sender}%?{return-path}%>)\\ + +This formats the +\*(lqFrom:\*(rq, \*(lqSender:\*(rq and \*(lqReturn-Path:\*(rq +headers, stopping as soon as one of them is present. Next: + +.ti +.5i +%<(nonnull)%(void(width))%(putaddr To: )\\n%>\\ + +If the \fIformataddr\fR result is non-null, it is printed as +an address (with line folding if needed) in a field \fIwidth\fR +wide with a leading label of \*(lqTo: \*(rq. + +.ti +.5i +%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\\ + +\fIstr\fR is cleared, and the +\*(lqTo:\*(rq and \*(lqCc:\*(rq headers, along with the user's +address +(depending on what was specified with +the \*(lq\-cc\*(rq switch to \fIrepl\fR\^) are formatted. + +.ti +.5i +%<(nonnull)%(void(width))%(putaddr cc: )\\n%>\\ + +If the result is non-null, it is printed as above with a +leading label of \*(lqcc: \*(rq. + +.ti +.5i +%<{fcc}Fcc: %{fcc}\\n%>\\ + +If a \*(lq\-fcc\ folder\*(rq switch was given to \fIrepl\fR +(see \fIrepl\fR\0(1) for more details about %{\fIfcc\fR\^}), +an \*(lqFcc:\*(rq header is output. + +.ti +.5i +%<{subject}Subject: Re: %{subject}\\n%>\\ + +If a subject component was present, +a suitable reply subject is output. + +.nf +.ti +.5i +%<{date}In-reply-to: Your message of "\\ +.ti +.5i +%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} +.ti +.5i + %{message-id}%>\\n%>\\ +.ti +.5i +\-\-\-\-\-\-\-\- +.fi + +If a date component was present, +an \*(lqIn-Reply-To:\*(rq header is output with the preface +\*(lqYour message of \*(rq. If the date was parseable, it is +output in a user-friendly format, otherwise it is output as-is. +The message-id is included if present. +As with all plain-text, +the row of dashes are output as-is. + +This last part is a good example for a little more elaboration. +Here's that part again in pseudo-code: +.sp 1 +.nf +.in +.5i +.ta .5i 1i 1.5i 2i +if (comp_exists(date)) then + print (\*(lqIn-reply-to: Your message of \\\*(lq\*(rq) + if (not_date_string(date.value) then + print (date.value) + else + print (pretty(date.value)) + endif + print (\*(lq\\\*(rq\*(rq) + if (comp_exists(message-id)) then + print (\*(lq\\n\\t\*(rq) + print (message-id.value) + endif + print (\*(lq\\n\*(rq) +endif +.re +.in -.5i +.fi +.sp 1 +Although this seems complicated, +in point of fact, +this method is flexible enough to extract individual fields and print them in +any format the user desires. +.Fi +None +.Pr +None +.Sa +scan(1), repl(1), ap(8), dp(8) +.De +None +.Co +None +.Hi +This software was contributed for MH 6.3. Prior to this, output +format specifications were much easier to write, but considerably +less flexible. +.Bu +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. +.En +@ + + +1.46 +log +@think about documenting %[ %] +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.45 1993/08/19 20:26:17 jromine Exp jromine $ +d38 2 +@ + + +1.45 +log +@re-describe "profile" +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.44 1993/06/12 06:49:57 jromine Exp jromine $ +d60 1 +d132 9 +d227 1 +a227 1 +.\" compflag comp integer Set \fInum\fR to component flags bits +@ + + +1.44 +log +@document %(profile xxx) +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.43 1992/12/02 18:41:50 jromine Exp jromine $ +d208 1 +a208 1 +profile literal string Set \fIstr\fR to value of profile or context \fIarg\fR +@ + + +1.43 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.42 1992/11/20 19:35:06 jromine Exp jromine $ +d208 1 +@ + + +1.42 +log +@format typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.41 1992/10/28 23:03:14 jromine Exp jromine $ +d348 1 +a348 1 +is not expected. A comment line begins with `%;' and ends with +@ + + +1.41 +log +@make scan/repl strings match actual defaults +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.40 1992/10/27 00:20:03 jromine Exp jromine $ +d297 1 +a297 1 +writes the value of the header component \*(lqFrom:\*(rq to \fIstr\fR; +@ + + +1.40 +log +@typos; fixups +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.39 1992/10/26 17:03:42 jromine Exp jromine $ +d352 1 +a352 1 +here's a format string for \fIscan\fR. +d357 1 +a357 1 +%4(msg)%<(cur)+%| %>%<{replied}\-%| %> +d362 3 +a364 2 +and if a \*(lqReplied:\*(rq field is present then a `\-' else a space should +be printed. +@ + + +1.39 +log +@fixup typos (from Jerry Peek) +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.38 1992/05/12 22:23:34 jromine Exp jromine $ +d352 1 +a352 1 +here's the default format string for \fIscan\fR. +d457 1 +a457 1 +%<(nodate{date})%{date}%|%(tws{date})%>."%<{message-id} +d467 1 +a467 1 +output in official format, otherwise it is output as-is. +@ + + +1.38 +log +@fixup for nroff problems +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.37 1992/02/18 17:28:26 jromine Exp jromine $ +d40 1 +a40 1 +header \fIcomponents\fR, built-in \fIfunctions\fR, and, flow \fIcontrol\fR. +d102 2 +a103 2 +all format text up to the corresponding `%>' control +escape (if any) is skipped. +d483 1 +a483 1 + print (rfc822(date.value)) +@ + + +1.37 +log +@undocument unseen +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: mh-format.rf,v 1.36 1992/02/14 19:14:42 jromine Exp jromine $ +.SC MH\-FORMAT 5 +d5 1 +a5 1 +mh\-format \- format file for MH message system +@ + + +1.36 +log +@fix compval +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.35 1992/02/11 05:03:41 jromine Exp jromine $ +d189 1 +a189 1 +unseen integer message is unseen +@ + + +1.35 +log +@document unseen +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.34 1992/02/09 22:11:10 jromine Exp jromine $ +d215 1 +a215 1 +compval comp integer \fInum\fR set to \*(lq\fBatoi\fR(\fIstr\fR\^)\*(rq +@ + + +1.34 +log +@document control escape return values +put new scan.default and replcomps format strings in. +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.33 1992/02/09 07:18:01 jromine Exp jromine $ +d189 1 +@ + + +1.33 +log +@add modulo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.32 1992/02/07 01:08:25 jromine Exp jromine $ +d173 1 +d181 2 +a182 2 +Function escapes which return a \fIboolean\fR value do pass this value +back to their caller, but will never print out the value. +d221 1 +a221 1 +.\" addtoseq literal add msg to sequence +d346 4 +d380 1 +a380 1 +%<(mymbox{from})To:%14(friendly{to}) +d383 1 +d389 1 +a389 1 +%|%17(friendly{from})%> +d391 3 +a393 2 +if the message isn't from me, +then the print the \*(lqFrom:\*(rq address is printed. +d405 1 +a405 1 +%(lit)%(formataddr %<{reply-to}%| +d408 1 +a408 1 +if present. If not present, the else clause is executed: +d411 1 +a411 1 +%<{from}%|%<{sender}%|%<{return-path}%>%>%>%>)\\ +@ + + +1.32 +log +@date/year +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.31 1992/02/06 00:13:07 jromine Exp jromine $ +d202 1 +d206 1 +a206 1 +.\" dat literal int ? +d220 1 +@ + + +1.31 +log +@remove putstr[f] -- they're not in the default file +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.30 1992/01/29 22:55:31 jromine Exp jromine $ +d240 1 +a240 1 +year date integer year of the century +@ + + +1.30 +log +@document getenv +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.29 1991/01/11 09:17:35 mh Exp jromine $ +d349 1 +a349 1 +%4(putnumf(msg))%<(cur)+%| %>%<{replied}\-%| %> +d359 1 +a359 1 +%02(putnumf(mon{date}))/%02(putnumf(mday{date})) +d373 1 +a373 1 +%<(mymbox{from})To:%14(putstrf(friendly{to})) +d381 1 +a381 1 +%|%17(putstrf(friendly{from}))%> +@ + + +1.29 +log +@change "\-" to "-" where appropriate +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.28 91/01/11 09:15:19 mh Exp Locker: mh $ +d204 1 +@ + + +1.28 +log +@add "elseif" documentation +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.27 90/12/27 17:22:27 mh Exp Locker: mh $ +d32 1 +a32 1 +multi\-character \fIescape\fR sequences which begin with `%'. +d40 1 +a40 1 +header \fIcomponents\fR, built\-in \fIfunctions\fR, and, flow \fIcontrol\fR. +d205 1 +a205 1 +nonzero expr boolean \fInum\fR is non\-zero +d208 1 +a208 1 +nonnull expr boolean \fIstr\fR is non\-empty +d213 1 +a213 1 +trim expr trim trailing white\-space from \fIstr\fR +d250 1 +a250 1 +pretty date string user\-friendly rendering +d264 1 +a264 1 +friendly addr string user\-friendly rendering +d375 1 +a375 1 +print `To:' followed by a \*(lquser\-friendly\*(rq rendering of the +d410 1 +a410 1 +If the \fIformataddr\fR result is non\-null, it is printed as +d426 1 +a426 1 +If the result is non\-null, it is printed as above with a +d456 1 +a456 1 +output in official format, otherwise it is output as\-is. +d458 2 +a459 2 +As with all plain\-text, +the row of dashes are output as\-is. +d462 1 +a462 1 +Here's that part again in pseudo\-code: +@ + + +1.27 +log +@document "addr" format +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-format.rf,v 1.26 90/04/05 15:09:13 sources Exp Locker: mh $ +d55 1 +a55 1 +All functions are built\-in, and most have a string or numeric value. +d57 5 +a61 5 +.ne 7 +A \fIcontrol\fR escape is one of: `%<', `%|', or `%>'. +These form one of four conditional execution constructs with the +following syntax: +.sp 1 +d63 10 +a72 4 + %<(\fIfunction\fR\^)Command-String%> + %<{\fIcomponent\fR\^}Command-String%> + %<(\fIfunction\fR\^)Then-Command-String%|Else-Command-String%> + %<{\fIcomponent\fR\^}Then-Command-String%|Else-Command-String%> +d75 1 +d77 2 +d80 15 +a94 6 +In the first two forms of the construct, +if the function or component value is non\-zero (for integer\-valued escapes), +or non\-empty (for string\-valued escapes), +then everything up to the corresponding `%>' +is interpreted, otherwise, skip to the corresponding '%>' and +start interpreting again. +d96 11 +a106 7 +In the second two forms of the construct, +the first command string is interpreted +if the function or component value is non\-zero or non\-null, +and the second command string is interpreted otherwise. Only one +of the command strings will be interpreted. +Interpreting the '%|' control escape causes +a skip to the corresponding '%>'. +d108 24 +d166 1 +d290 1 +a290 1 +%<(mymbox{from} To: %{to}%> +d450 1 +a450 1 +-------- +@ + + +1.26 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d218 1 +@ + + +1.25 +log +@minor revision +@ +text +@d2 1 +@ + + +1.24 +log +@typo +@ +text +@d352 1 +a352 1 +%<{from}%|%<{sender}%|%<{return-path}%>%>%>%>) +d359 1 +a359 1 +%<(nonnull)%(void(width))%(putaddr To: )\\n%> +d366 1 +a366 1 +%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me)) +d375 1 +a375 1 +%<(nonnull)%(void(width))%(putaddr cc: )\\n%> +d381 1 +a381 1 +%<{fcc}Fcc: %{fcc}\\n%> +d388 1 +a388 1 +%<{subject}Subject: Re: %{subject}\\n%> +d395 1 +a395 1 +%<{date}In-reply-to: Your message of +d397 1 +a397 1 +%<(nodate{date})%{date}%|%(tws{date})%>.%<{message-id} +d399 1 +a399 1 + %{message-id}%>\\n%> +d412 1 +a412 1 +This is a good example for a little more elaboration. +d419 1 +a419 1 + print (\*(lqIn-reply-to: Your message of \*(rq) +d425 1 +@ + + +1.23 +log +@typo +@ +text +@d243 2 +a244 2 +writes the value of the header component \fI{from}\fR to \fIstr\fR; +then \fI(mymbox)\fR reads \fIstr\fR +d248 1 +a248 1 +the value of the header component \fI{to}\fR. +d256 1 +a256 1 +in the message. If needed, the (\fInull\fR) function can be +d263 1 +a263 1 +For example, a numeric escape like \fI%4(size)\fR will print at most 4 +d266 1 +a266 1 +A string escape like \fI%4(me)\fR will print the first 4 characters and +d273 1 +a273 1 +the functions \fIputnumf\fR and \fIputstrf\fR print their result in +d286 1 +a286 1 +The functions \fIputnum\fR and \fIputstr\fR print their result in +d352 1 +a352 1 +%<{from}%|%<{sender}%|%{return-path}%>%>%>) +d372 1 +a372 1 +the \*(lq\-cc\*(rq switch to \fIrepl\fR) are formatted. +@ + + +1.22 +log +@revised +@ +text +@d250 1 +a250 1 +A minor explanation of (\fImymbox\fR\|{\fIcomp\fR\|}) is in order. +d277 1 +a277 1 +%06(\fIputnumffR\|(\fIsizefR\|)) will print the message size +d279 1 +a279 1 +%14(\fIputstrf\|\fR{\fIfrom\|\fR}) will print +d384 1 +a384 1 +(see \fIrepl\fR\0(1) for more details about %{\fIfcc\fR\|}), +@ + + +1.21 +log +@follow TECO manual description of conditionals +@ +text +@d56 4 +a59 3 +A \fIcontrol\fR escape is one of: +`%<(\fIfunction\fR\^)' or `%<{\fIcomponent\fR\^}', `%|', and `%>'. +These form a conditional execution construct with the following syntax: +d62 4 +a65 3 + %<\fIescape\fR command-string %> +or + %<\fIescape\fR then-command-string %| else-command-string %> +d70 1 +a70 1 +In the first form of the construct, +d77 1 +a77 1 +In the second form of the construct, +d167 1 +a167 1 +putstrf expr print \fIstr\fR in fixed width +d169 1 +a169 1 +putnumf expr print \fInum\fR in fixed width +d259 4 +a262 2 +When a function escape is interpreted, an optional output width can be +specified to limit the field width to a maximum number of characters. +d267 4 +a270 1 +truncate at the end. +d272 6 +a277 3 +The functions \fIputnumf\fR and \fIputstrf\fR print their result in +exactly the number of characters specified. For example, +\fI%06(putnumf(size))\fR will print the message size +d279 1 +a279 1 +\fI%14(putstrf{from})\fR will print +d282 7 +@ + + +1.20 +log +@put things back, do .NA stuff another way +@ +text +@d57 13 +a69 4 +`%<(\fIfunction\fR\^)' or `%<{\fIcomponent\fR\^}', `%|', and `%>', +which correspond to if\-then\-else constructs. +They may be nested without ambiguity. +If the function or component value is non\-zero (for integer\-valued escapes), +d71 11 +a81 4 +then everything up to the corresponding `%|' or `%>' +(whichever comes first) is interpreted; +otherwise, skip to the corresponding `%|' or `%>' (whichever comes first) +and start interpreting again. +@ + + +1.19 +log +@add example pseudo-code from Phyllis Kantar +@ +text +@d2 2 +a3 2 +.TH MH\-FORMAT 5 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.18 +log +@typo +@ +text +@d373 1 +a373 1 +\*(lqYour message of\*(rq. If the date was parseable, it is +d379 23 +@ + + +1.17 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MH\-FORMAT 5 [mh.6] MH +@ + + +1.16 +log +@more fixes from Phyllis Kantar +@ +text +@d2 2 +a3 2 +.SC MH\-FORMAT 5 +.NA +d5 1 +a5 1 +.SY +@ + + +1.15 +log +@fix some typos +@ +text +@d58 3 +a60 2 +which correspond to if\-then\-else constructs: +if the function or component value is non\-zero (for integer\-valued escapes), +d62 3 +a64 2 +then everything up to `%|' or `%>' (whichever comes first) is interpreted; +otherwise, then skip to `%|' or `%>' (whichever comes first) +d202 1 +a202 1 +mymbox addr integer the user's mailbox? (0=no,1=yes) +d226 2 +a227 1 +then \fI(mymbox)\fR reads \fIstr\fR and writes its result to \fInum\fR; +d232 9 +d278 2 +a279 1 +the month and date are printed in two digits (zero filled). +d285 2 +a286 2 +If no \*(lqDate:\*(rq field was present, +then a `*' is printed, otherwise a space. +d350 2 +a351 1 +If a \*(lq\-fcc\ folder\*(rq switch was given, +d357 2 +a358 1 +A suitable reply subject is output. +d371 6 +a376 2 +If a date was present, +An \*(lqIn-Reply-To:\*(rq header is output. As with all plain\-text, +d388 1 +a388 1 +ap(8), dp(8) +@ + + +1.14 +log +@mention component compression +@ +text +@d147 1 +a147 1 +putstrf expr print \fIstr\fR in fixed width. +d149 1 +a149 1 +putnumf expr print \fInum\fR in fixed width. +d159 1 +a159 1 +min date integer minutes of the day +d174 1 +a174 1 +zsone date integer timezone explicit? +d332 1 +a332 1 +leading lable of \*(lqcc: \*(rq. +d337 2 +a338 1 +If a \*(lq\-fcc\*(rq switch was given, an \*(lqFcc:\*(rq header is output. +d352 2 +d357 2 +a358 1 +An \*(lqIn-Reply-To:\*(rq header is output. +@ + + +1.13 +log +@remove some info about repl - complete details in repl(1). +@ +text +@d46 5 +a50 1 +Different commands may interpret some component escapes differently; +@ + + +1.12 +log +@suggest referencing command man pages for more details +@ +text +@d293 1 +a293 2 +the default \fIreplcomps\fR format file. \fIrepl\fR +resets the line width each time after printing a `\\n'. +d338 1 +a338 2 +If a subject was present, it is output prefaced with \*(lqRe: \*(rq. +(The \fI{subject}\fR component has any leading \*(lqRe: \*(rq stripped). +d349 2 +a350 2 +An \*(lqIn-Reply-To:\*(rq header is output. If a date was present, +it is included with the preface \*(lqYour message of \*(rq. +@ + + +1.11 +log +@indicate which {addr} funcs return value for first addr only' +@ +text +@d46 2 +@ + + +1.10 +log +@document "trim" +@ +text +@d182 3 +a184 1 +These functions require an address component as an argument: +d191 3 +a193 3 +pers addr string the personal name +note addr string commentary text +mbox addr string the local mailbox +d195 3 +a197 3 +host addr string the host domain +nohost addr integer no host was present +type addr integer host type (0=local,1=network, +d199 3 +a201 4 +path addr string any leading host route +ingrp addr integer address was inside a group +gname addr string name of group + (set for first address only) +@ + + +1.9 +log +@minor fixup +@ +text +@d139 1 +@ + + +1.8 +log +@final. this is a major revision -- i hope it was worth it. +/JLR +@ +text +@d28 1 +a58 11 +.\" Some functions expect an extra literal string or integer parameter, +.\" and are specified as `%(\fIfunction\fR argument)'. +.\" Many functions require a component argument, and are +.\" specified as `%(\fIfunction\fR\^{\fIcomponent\fR\^})'. +.\" Some functions will accept another function as an argument. These +.\" may be nested, and are evaluated inner\-most to outer\-most. +.\" This nesting is specified as `%(\fIfunction2\fR\^(\fIfunction1\fR\^))'. +.\" If a function accepts an argument, it is of +.\" one of these six types: \fIint\fR\^, +.\" \fIstring\fR\^, \fIcomp\fR\^, \fIexpr\fR\^, +.\" \fIdate\fR\^, and \fIaddr\fR\^. +d146 2 +a147 3 +These functions require a date header component as an argument: +.\" When \fIstr\fR is a date, these escapes are useful: + +d181 1 +a181 2 +These functions require an address header component as an argument: +.\" When \fIstr\fR is an address, these escapes are useful: +d231 5 +a235 3 +\fI%6(putnumf(size))\fR will print the message size right\-justified +in a field six characters wide; \fI%14(putstrf{from})\fR will print +the \*(lqFrom:\*(rq header component left\-justified in fourteen characters. +d340 1 +a340 1 +%<{date}In-reply-to: Your message of \\ +a353 1 + +@ + + +1.7 +log +@checkpoint before mentioning replcomps +@ +text +@d20 5 +d27 1 +a27 1 +This manual section attempts to explain how to do that. +d298 62 +a364 6 +If the `\-form\ formatfile' switch is given, +\fIscan\fR will treat each line in the named file as a format string and act +accordingly. +This lets the user employ canned scan listing formats. +Take a look at the three files +@@(MHETCPATH)/scan.time, @@(MHETCPATH)/scan.size, and @@(MHETCPATH)/scan.timely. +@ + + +1.6 +log +@checkpoint +@ +text +@d39 1 +a39 1 +Component escapes are all string valued. +d41 2 +a42 2 +A \fIfunction\fR escape is specified as `%(\fIfunction\fR\^)', +and is statically defined. +d47 1 +a47 1 +if the function or component is non\-zero (for integer\-valued escapes), +d88 1 +a88 1 +and must be present for control escape arguments. +d102 2 +a103 2 +(The \fIboolean\fR type is a subset of integers; 0=false and 1=true are +usually the only values.) +d145 1 +a145 1 +putstrf expr print using width; \*(lq\fI%20(putstrf)\fR\*(rq +d147 1 +a147 1 +putnumf expr print using width; \*(lq\fI%4(putnumf)\fR\*(rq +d228 2 +a229 2 +When a function escape is interpreted, the output width can be +limited to a maximum number of characters. +d235 6 +@ + + +1.5 +log +@almost done +@ +text +@d35 1 +a35 1 +A \fIcomponent\fR escape is specified as `%{\fIcomponent\fR\|}', +d41 1 +a41 1 +A \fIfunction\fR escape is specified as `%(\fIfunction\fR\|)', +d45 1 +a45 1 +`%<(\fIfunction\fR\|)' or `%<{\fIcomponent\fR\|}', `%|', and `%>', +d56 1 +a56 1 +.\" specified as `%(\fIfunction\fR\|{\fIcomponent\fR\|})'. +d59 1 +a59 1 +.\" This nesting is specified as `%(\fIfunction2\fR\|(\fIfunction1\fR\|))'. +d61 3 +a63 3 +.\" one of these six types: \fIint\fR\|, +.\" \fIstring\fR\|, \fIcomp\fR\|, \fIexpr\fR\|, +.\" \fIdate\fR\|, and \fIaddr\fR\|. +d72 6 +a77 6 +comp Any header component %(\fIfunc\fR\|{\fIin-reply-to\fR\|}) +date A date component %(\fIfunc\fR\|{\fIdate\fR\|}) +addr An address component %(\fIfunc\fR\|{\fIfrom\fR\|}) +expr An optional component, %(\fIfunc\fR\|(\fIfunc2\fR\|)) + function or control, %(\fIfunc\fR\|(\fIfunc2\fR\|{\fIcomp\fR\|})) + perhaps nested %(\fIfunc\fR %<{\fIreply-to\fR\|}%|%{\fIfrom\fR\|}%>) +d85 5 +d97 1 +d142 1 +a142 1 +compval comp integer \fInum\fR set to \*(lq\fBatoi\fR(\fIstr\fR\|)\*(rq +@ + + +1.4 +log +@checkpoint +@ +text +@d17 1 +a17 1 +means they are not necessarily simple for humans to parse. +d26 1 +a26 1 +When specifying a string, +a30 1 + +d32 1 +a32 2 + +The \fIescape\fR sequences are of three types: +a59 2 + +Most functions expect an argument of a particular type: +d64 3 +a66 1 + +d68 10 +a77 9 +.ta 4 +\w'Argument 'u +\w'a component or function, 'u + \fIArgument\fR \fIDescription\fR \fISyntax\fR + int a literal number %(\fIfunc\fR number) + string a literal string %(\fIfunc\fR text string) + comp any header component %(\fIfunc\fR\|{\fIcomp\fR\|}) + date a date component %(\fIfunc\fR\|{\fIdate\fR\|}) + addr an address component %(\fIfunc\fR\|{\fIaddr\fR\|}) + expr a component or function, %(\fIfunc\fR\|(\fIfunc2\fR\|)) + perhaps nested %(\fIfunc\fR\|(\fIfunc2\fR\|{\fIcomp\fR\|})) +d81 2 +a82 1 +The types \fIdate\fR and \fIaddr\fR require that the header +d89 1 +a89 1 +if it requires a non\-literal argument, +d92 6 +a97 5 +Function results are written in +\fInum\fR for \fIint\fR and \fIbool\fR values, or \fIstr\fR +for string values. (The \fIbool\fR type +is a subset of integers; usually 0=false, 1=true.) +All component escapes set \fIstr\fR with the value of their message header. +d99 8 +a106 3 +.\" A few function escapes accept a literal string or numeric argument, +.\" but most use the value of \fInum\fR or \fIstr\fR +.\" as their argument if needed. +a107 7 +All component escapes, and +nearly all function escapes return a value in addition to setting \fIstr\fR +or \fInum\fR. These escapes will print out this value +unless called from within another escape sequence. +A few function escapes do not print their results; these are indicated +in the \fIPrint Result?\fR column of the tables below. + +d109 34 +a142 35 +.ta \w'Rbool,no 'u +\w'Formataddr 'u +\w'Argument 'u +\fIReturn\fR \fIFunction\fR \fIArgument\fR \fIDescription\fR +\fIPrint?\fR +int msg message number +int cur message is current +int size size of message +int strlen length of \fIstr\fR +int width output buffer size in bytes +int charleft bytes left in output buffer +int timenow seconds since the UNIX epoch +string me the user's mailbox +bool,no eq lit int \fInum\fR == \fIarg\fR +bool,no ne lit int \fInum\fR != \fIarg\fR +bool,no gt lit int \fInum\fR > \fIarg\fR +int plus lit int \fIarg\fR plus \fInum\fR +int minus lit int \fIarg\fR minus \fInum\fR +int divide lit int \fInum\fR divided by \fIarg\fR +int num lit int Set \fInum\fR to \fIarg\fR +.\" int dat lit int ? +bool,no match lit str \fIstr\fR contains \fIarg\fR +bool,no amatch lit str \fIstr\fR starts with \fIarg\fR +string lit lit str Set \fIstr\fR to \fIarg\fR +bool,no nonzero expr \fInum\fR is non\-zero +bool,no zero expr \fInum\fR is zero +bool,no null expr \fIstr\fR is empty +bool,no nonnull expr \fIstr\fR is non\-empty +no void expr Set \fIstr\fR or \fInum\fR +string comp comp Set \fIstr\fR to component text +int compval comp \fInum\fR set to \fBatoi\fR of \fIstr\fR +bool compflag comp Set \fInum\fR to component flags bits + putstr expr print \fIstr\fR + putstrf expr print using width; \*(lq\fI%20(putstrf)\fR\*(rq + putnum expr print \fInum\fR + putnumf expr print using width; \*(lq\fI%4(putnumf)\fR\*(rq +.re +d145 3 +a147 1 +When \fIstr\fR is a date, these escapes are useful: +d149 9 +a157 10 +.ta \w'Rbool,no 'u +\w'Formataddr 'u +\w'Argument 'u +\fIReturn\fR \fIFunction\fR \fIArgument\fR \fIDescription\fR +\fIPrint?\fR +int sec date seconds of the minute +int min date minutes of the day +int hour date hours of the day (0-23) +int wday date day of the week (Sun=0) +string day date day of the week (abbrev.) +string weekday date day of the week +bool sday date day of the week known? +d159 9 +a167 9 +int mday date day of the month +int yday date day of the year +int mon date month of the year +string month date month of the year (abbrev.) +string lmonth date month of the year +int year date year of the century +int zone date timezone in hours +string tzone date timezone string +bool zsone date timezone explicit? +d169 9 +a177 9 +bool dst date daylight savings in effect? +int clock date seconds since the UNIX epoch +int rclock date seconds prior to current time +string tws date official 822 rendering +string pretty date user\-friendly rendering +bool,no nodate date \fIstr\fR not a date string +no date2local date coerce date to local timezone +no date2gmt date coerce date to GMT +.re +d180 4 +a183 1 +When \fIstr\fR is an address, these escapes are useful: +d185 11 +a195 12 +.ta \w'Rbool,no 'u +\w'Formataddr 'u +\w'Argument 'u +\fIReturn\fR \fIFunction\fR \fIArgument\fR \fIDescription\fR +\fIPrint?\fR +string proper addr official 822 rendering +string friendly addr user\-friendly rendering +string pers addr the personal name +string note addr commentary text +string mbox addr the local mailbox +bool mymbox addr is this the user's mailbox? +string host addr the host domain +bool nohost addr no host was present +bool type addr host type (0=local,1=network, +d197 3 +a199 3 +string path addr any leading host route +bool ingrp addr address was inside a group +string gname addr name of group +d201 1 +a201 1 +no formataddr expr append \fIarg\fR to \fIstr\fR as a +d203 1 +a203 1 + putaddr lit str print \fIstr\fR address list with +d206 1 +a206 1 +.re +d211 1 +a211 4 +For example, \fI%<(mymbox{from} To: %{to}%>\fR writes the value of \fI{from}\f +R +to \fIstr\fR; then \fI(mymbox)\fR reads \fIstr\fR and writes to \fInum\fR; +then the control escape evaluates \fInum\fR. +d213 9 +d277 1 +a277 1 + %{subject}%<{body}<<%{body}%> +d279 1 +a279 1 +the subject and initial body are printed. +d302 4 +@ + + +1.3 +log +@major revision +@ +text +@d16 2 +a17 2 +Format strings are designed to be efficiently parsed by \fIMH\fR since they +represent an integral part of \fIMH\fR. +d19 1 +a19 1 +deal with them. +d22 1 +a22 1 +This manual section explains how to do just that. +d24 2 +a25 2 +A format string is similar to a \fIprintf\fR\0(3) string, +but uses multi\-letter `%'\-escapes. +d29 2 +a30 2 +Continuation lines in format files end with `\\' followed by the newline +character. +d32 1 +a32 8 +The interpretation model is based on a simple machine with two registers, +\fInum\fR and \fIstr\fR. +The former contains an integer value, the latter a string value. +When an escape is processed, +if it requires an argument, +it reads the current value of either \fInum\fR or \fIstr\fR; +and, +if it returns a value, it writes either \fInum\fR or \fIstr\fR. +d34 6 +a39 5 +Escapes are of three types: +\fIcomponents\fR, \fIfunctions\fR, and, \fIcontrol\fR. +A component escape is specified as `%{name}', +and is created for each header found in the message being processed. +For example `%{date} refers to the \*(lqDate:\*(rq field of the appropriate +d41 1 +a41 1 +A component escape is always string valued. +d43 5 +a47 1 +A control escape is one of: `%', +d49 1 +a49 1 +if `escape' is non\-zero (for integer\-valued escapes), +d55 14 +a68 5 +A function escape is specified as `%(name)', +and is statically defined. +Some function escapes accept an extra literal parameter, +like `%(name literal)'. +Here is the list: +d70 41 +a110 1 +.ta \w'Rstring 'u +\w'Formataddr 'u +\w'Astring 'u +\w'yes 'u +d112 32 +a143 32 +\fItype\fR \fIPrint?\fR +int num int yes Set \fInum\fR to \fIarg\fR +string lit string yes Set \fIstr\fR to \fIarg\fR (could be empty) + void expr no Set \fIstr\fR or \fInum\fR -- not interpreted +bool eq int no \fInum\fR == \fIarg\fR +bool ne int no \fInum\fR != \fIarg\fR +bool gt int no \fInum\fR > \fIarg\fR +bool nonzero expr no \fInum\fR is non\-zero +bool zero expr no \fInum\fR is zero +bool match string no \fIstr\fR contains \fIarg\fR +bool amatch string no \fIstr\fR starts with \fIarg\fR +bool null expr no \fIstr\fR is empty +bool nonnull expr no \fIstr\fR is non\-empty +int plus int yes add \fIarg\fR to \fInum\fR +int minus int yes subtract \fIarg\fR from \fInum\fR, or change sign +int divide int yes divide \fInum\fR by \fIarg\fR +int dat int yes ? +string comp comp yes ? +int compval comp yes \fInum\fR set to \fBatoi\fR of \fIstr\fR +bool compflag comp yes NOT WORTH IT? RETURNS -1 OR 0.? +int msg yes message number +int cur yes message is current +int size yes size of message +int strlen yes length of \fIstr\fR +int width yes size (characters) of output buffer +int charleft yes space left in output buffer +int timenow yes seconds since the UNIX epoch +string me yes the user's mailbox + putstr expr yes print \fIstr\fR + putstrf expr yes print using width; \*(lq\fI%20(putstrf)\fR\*(rq + putnum expr yes print \fInum\fR + putnumf expr yes print using width; \*(lq\fI%4(putnumf)\fR\*(rq +d149 1 +a149 1 +.ta \w'Rstring 'u +\w'Formataddr 'u +\w'Astring 'u +\w'yes 'u +d151 27 +a177 23 +\fItype\fR \fIPrint?\fR +int sec date yes seconds of the minute +int min date yes minutes of the day +int hour date yes hours of the day (24 hour clock) +int wday date yes day of the week (Sun=0) +string day date yes day of the week (3 character abbrev.) +string weekday date yes day of the week (long form) +bool sday date yes day of the week known (0=implicit,\-1=unknown) +int mday date yes day of the month +int yday date yes day of the year +int mon date yes month of the year +string month date yes month of the year (3 character abbrev.) +string lmonth date yes month of the year (long form) +int year date yes year of the century +int zone date yes timezone in hours +string tzone date yes timezone string +bool zsone date yes timezone explicit (0=implicit,\-1=unknown) +bool dst date yes daylight savings in effect +int clock date yes seconds since the UNIX epoch +int rclock date yes seconds prior to current time +string tws date yes official 822 rendering of the date +string pretty date yes a more user\-friendly rendering +bool nodate date no string not parseable as a date +d183 1 +a183 1 +.ta \w'Rstring 'u +\w'Formataddr 'u +\w'Astring 'u +\w'yes 'u +d185 20 +a204 17 +\fItype\fR \fIPrint?\fR +string pers addr yes the personal name of the address +string mbox addr yes the local part of the address +string host addr yes the domain part of the address +string path addr yes the route part of the address +int type addr yes host type (\-1=uucp,0=local,1=network,2=unknown) +bool nohost addr yes no host was present in the address +bool ingrp addr yes the address appeared inside a group +string gname addr yes name of the group (set for first address only) +string note addr yes commentary text +string proper addr yes official 822 rendering of the address +string friendly addr yes a more user\-friendly rendering +bool mymbox addr yes the address refers to the user's mailbox + formataddr expr no append \fIarg\fR to \fIstr\fP as an address list + putaddr string yes print stored address list with \fIarg\fR as + optional label; get line width from \fInum\fR + EXAMPLE: \fI%(void(width))%(putaddr Cc: )\fR +@ + + +1.2 +log +@changes from Jerry Peek +@ +text +@d59 2 +a60 3 +Some function escapes accept an extra literal parameter, like `%(name literal) +'; +these are shown in the list below as \fIL\fR. +d63 34 +a96 39 +.ta \w'formataddr 'u +\w'argument 'u +\w'returns 'u +\fIescape\fR \fIargument\fR \fIreturns\fR \fIinterpretation\fR +nonzero integer integer \fInum\fR is non\-zero +zero integer integer \fInum\fR is zero +eq \fIL\fR integer integer \fInum\fR == \fIL\fR +ne \fIL\fR integer integer \fInum\fR != \fIL\fR +gt \fIL\fR integer integer \fInum\fR > \fIL\fR +num \fIL\fR integer put \fIL\fR into \fInum\fR +dat ? ? ? +null string integer \fIstr\fR is empty +nonnull string integer \fIstr\fR is non\-empty +match \fIL\fP string integer \fIstr\fR contains \fIL\fR +amatch \fIL\fR string integer \fIstr\fR starts with \fIL\fR +compval string integer set \fIint\fR to number at start of \fIstr\fR + (EXAMPLE: if \fIstr\fR is \fI20 Nov 89\fR, + \fInum\fR would be set to 20.)??? +compflag string integer NOT WORTH IT? RETURNS -1 OR 0.? +void integer integer Do not interpret; just put in \fIint\fR + (EXAMPLE: \fI%(void(rclock{date}))\fR puts + \fIrclock\fR value into \fIint\fR) +void string string Do not interpret; just put in \fIstr\fR +putstr string print \fIstr\fR +putstrf string print \fIstr\fR in the specified width + (e.g., %20(putstrf{subject}) +putnum integer print \fInum\fR +putnumf integer print \fInum\fR in the specified width + (e.g., %4(putnumf(msg)) +msg integer message number +cur integer message is current +size integer size of message +strlen string integer length of \fIstr\fR +me string the user's mailbox +plus \fIL\fR integer add \fIL\fR to \fInum\fR +minus \fIL\fR integer subtract \fIL\fR from \fInum\fR, then change si +gn + EXAMPLES: \fI%(void(minus))\fR, \fI%(void(minus 25))\fR +width integer size (characters) of output buffer +charleft integer space left in output buffer +timenow integer seconds since the UNIX epoch +d102 25 +a126 26 +.ta \w'formataddr 'u +\w'argument 'u +\w'returns 'u +\fIescape\fR \fIargument\fR \fIreturns\fR \fIinterpretation\fR +sec string integer seconds of the minute +min string integer minutes of the day +hour string integer hours of the day (24 hour clock) +mday string integer day of the month +mon string integer month of the year +wday string integer day of the week (Sunday=0) +year string integer year of the century +yday string integer day of the year +dst string integer daylight savings in effect +zone string integer timezone +sday string integer day of the week known + 1 for explicit in date + 0 for implicit (\fIMH\fR figured it out) + \-1 for unknown (\fIMH\fR couldn't figure it out) +clock string integer seconds since the UNIX epoch +rclock string integer seconds prior to current time +month string string month of the year +lmonth string string month of the year (long form) +tzone string string timezone +day string string day of the week +weekday string string day of the week (long) +tws string string official 822 rendering of the date +pretty string string a more user\-friendly rendering +nodate string date wasn't parseable +d132 19 +a150 27 +.ta \w'formataddr 'u +\w'argument 'u +\w'returns 'u +\fIescape\fR \fIargument\fR \fIreturns\fR \fIinterpretation\fR +pers string string the personal name of the address +mbox string string the local part of the address +host string string the domain part of the address +path string string the route part of the address +type string integer the type of host + \-1 for uucp + 0 for local + 1 for network + 2 for unknown +nohost string integer no host was present in the address +ingrp string integer the address appeared inside a group +gname string string name of the group (present for first + address only) +note string string commentary text +proper string string official 822 rendering of the address +friendly string string a more user\-friendly rendering +mymbox string the address refers to the user's mailbox +formataddr string append \fIL\fR to \fIstr\fP as an address list + (if \fIstr\fR wasn't empty, add comma and space before) +putaddr \fIL\fR print stored address list; + \fIL\fR is optional label; + get line width from \fInum\fR + EXAMPLE: \fI%(void(width))%(putaddr Cc: )\fR +lit \fIL\fP string Put \fIL\fR into \fIstr\fR + (if no \fIL\fR, empty \fIstr\fR) +@ + + +1.1 +log +@Initial revision +@ +text +@d59 3 +d68 5 +a72 3 +eq integer integer \fInum\fR == width +ne integer integer \fInum\fR != width +gt integer integer width > \fInum\fR +d75 10 +d96 5 +a100 2 +plus integer add width to \fInum\fR +minus integer subtract \fInum\fR from width +d158 8 +a165 1 +formataddr string print \fIstr\fR in an address list +d169 18 +d205 1 +a205 1 +the hours and minutes are printed in two digits (zero filled). +d231 1 +a231 1 +%{subject}%<{body}<<%{body}%> +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-hack.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-hack.rf,v new file mode 100644 index 0000000..d90b46f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-hack.rf,v @@ -0,0 +1,179 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.13.03; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.17; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.55; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.11; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.55; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-hack.rf,v 1.5 1990/04/05 15:13:03 sources Exp jromine $ +.SC MH-HACK 8 +.NA +mh-hack \- how to hack MH +.SY +big hack attack +.DE +This is a description of how one can modify the \fIMH\fR system. +The \fIMH\fR distribution has a lot of complex inter\-relations, +so before you go modifying any code, you should read this and +understand what is going on. + +.in +.5i +.ti -.5i +\fBADDING A NEW PROGRAM\fR +.br +Suppose you want to create a new \fIMH\fR command called +\*(lqpickle\*(rq. +First, create and edit \*(lqpickle.c\*(rq in the \fBuip/\fR directory. +Next edit \fBconf/makefiles/uip\fR to include \*(lqpickle\*(rq. +This file has directions at the end of it which explain how it should +be modified. +Next, update any documentation (described below). +At this point you can re\-configure \fIMH\fR. +See \fImh\-gen(8)\fR for instructions on how to do this +(basically, you want \*(lqmhconfig MH\*(rq). + +.ti -.5i +\fBADDING A NEW SUBROUTINE\fR +.br +Suppose you want to create a new \fIMH\fR routine called +\*(lqpickle\*(rq. +First, create and edit \*(lqpickle.c\*(rq in the \fBsbr/\fR directory. +Next edit \fBconf/makefiles/sbr\fR to include \*(lqpickle\*(rq. +This file has directions at the end of it which explain how it should +be modified. +You should modify \fBconfig/mh.h\fR to define \*(lqpickle ();\*(rq. +Similarly, \fBsbr/llib\-lsbr\fR should be modified for \fIlint\fR. +At this point you can re\-configure \fIMH\fR. + +.ti -.5i +\fBUPDATING DOCUMENTATION\fR +.br +Edit whatever files you want in \fBconf/doc/\fR. +When documenting a new program, such as \*(lqpickle\*(rq, +you should create a manual page with the name \*(lqpickle.rf\*(rq. +The file \fBconf/doc/template\fR has a manual page template that you +can use. +If you are documenting a new program, then you should also update three +other files: +The file \fBconf/doc/mh.rf\fR should be modified to include the +\*(lq\&.NA\*(rq section from \*(lqpickle.rf\*(rq. +The file \fBconf/doc/mh\-chart.rf\fR should be modified to include +the \*(lq\&.SY\*(rq section from \*(lqpickle.rf\*(rq. +Finally, the file \fBconf/doc/MH.rf\fR should be modified to include a +\*(lq\&.so pickle.me\*(rq. +Naturally, none of these changes will be reflected in the configuration +until you actually run \fImhconfig\fR. +.in -.5i +.Fi +Too numerous to mention. Honest. +.Sa +mh\-gen(8) +.Bu +Hacking is an art, but most programmers are butchers, not artists. +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id:$ +.SC MH\-HACK 8 +d5 1 +a5 1 +mh\-hack \- how to hack MH +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MH\-HACK 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MH\-HACK 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MH\-HACK 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-mail.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-mail.rf,v new file mode 100644 index 0000000..7776efd --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-mail.rf,v @@ -0,0 +1,339 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.13.12; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.18; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.41.56; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.12; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.20.56; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-mail.rf,v 1.5 1990/04/05 15:13:12 sources Exp jromine $ +.SC MH-MAIL 5 +.NA +mh-mail \- message format for MH message system +.SY +any \fIMH\fR command +.DE +\fIMH\fR processes messages in a particular format. +It should be noted that although neither Bell nor Berkeley mailers produce +message files in the format that \fIMH\fR prefers, +\fIMH\fR can read message files in that antiquated format. + +Each user possesses a mail drop box which initially receives +all messages processed by \fIpost\fR\0(8). +\fIInc\fR\0(1) will read from that drop box and incorporate the new messages +found there into the user's own mail folders (typically `+inbox'). +The mail drop +box consists of one or more messages. +@@BEGIN: MMDFMTS +To facilitate the +separation of messages, each message begins and ends with +a line consisting of nothing but four CTRL\-A (octal 001) +characters. +@@END: MMDFMTS +@@BEGIN: MHMTS +To facilitate the +separation of messages, each message begins and ends with +a line consisting of nothing but four CTRL\-A (octal 001) +characters. +@@END: MHMTS + +Messages +are expected to consist of lines of text. +Graphics and binary data are not handled. +No data compression is accepted. +All text is clear +ASCII 7-bit data. + +The general \*(lqmemo\*(rq framework of RFC\-822 is used. +A message consists of a block of information in a rigid format, +followed by general text with no specified format. +The rigidly formatted first part of a message is called the header, +and the free-format portion is called the body. +The header must always exist, but the body is optional. +These parts are separated by an empty line, +i.e., two consecutive newline characters. +Within \fIMH\fR, +the header and body may be separated by a line consisting of dashes: + +.nf +.in +.5i +.ne 10 +.eo +.so @@(MHETCPATH)/components +.ec +.in -.5i +.fi + +The header is composed of one or more header items. +Each header item can be viewed as a single logical line of ASCII +characters. +If the text of a header item extends across several +real lines, the continuation lines are indicated by leading +spaces or tabs. + +Each header item is called a component and is composed of a +keyword or name, along with associated text. +The keyword begins at the +left margin, may NOT contain spaces or tabs, may not exceed 63 +characters (as specified by RFC\-822), and is terminated by a colon (`:'). +Certain +components (as identified by their keywords) must follow rigidly +defined formats in their text portions. + +The text for most formatted components +(e.g., \*(lqDate:\*(rq and \*(lqMessage\-Id:\*(rq) +is produced automatically. +The only ones entered by the +user are address fields such as \*(lqTo:\*(rq, \*(lqcc:\*(rq, etc. +Internet addresses +are assigned mailbox names and host computer specifications. +The +rough format is \*(lqlocal@@domain\*(rq, such as \*(lqMH@@UCI\*(rq, +or \*(lqMH@@UCI\-ICSA.ARPA\*(rq. +Multiple addresses are separated by commas. +A missing host/domain is assumed to be the local host/domain. + +As mentioned above, +a blank line (or a line of dashes) +signals that all following text up to the end of the file is the body. +No formatting is expected or enforced within the body. + +Following is a list of header components that are considered +meaningful to various MH programs. +.in +.5i +.ti -.5i +Date: +.br +Added by \fIpost\fR\0(8), +contains date and time of the message's entry into the transport system. + +.ti -.5i +From: +.br +Added by \fIpost\fR\0(8), +contains the address of the author or authors (may be more than one if a +\*(lqSender:\*(rq field is present). +Replies are typically directed to addresses in the \*(lqReply\-To:\*(rq or +\*(lqFrom:\*(rq field (the former has precedence if present). + +.ti -.5i +Sender: +.br +Added by \fIpost\fR\0(8) +in the event that the message already has a \*(lqFrom:\*(rq line. +This line contains the address of the actual sender. +Replies are never sent to addresses in the \*(lqSender:\*(rq field. + +.ti -.5i +To: +.br +Contains addresses of primary recipients. + +.ti -.5i +cc: +.br +Contains addresses of secondary recipients. + +.ti -.5i +Bcc: +.br +Still more recipients. +However, the \*(lqBcc:\*(rq line is not copied onto the message as delivered, +so these recipients are not listed. +\fIMH\fR uses an encapsulation method for blind copies, see \fIsend\fR\0(1). + +.ti -.5i +Fcc: +.br +Causes \fIpost\fR\0(8) to copy the message into the specified folder for the +sender, +if the message was successfully given to the transport system. + +.ti -.5i +Message\-ID: +.br +A unique message identifier added by \fIpost\fR\0(8) if the `\-msgid' flag +is set. + +.ti -.5i +Subject: +.br +Sender's commentary. It is displayed by \fIscan\fR\0(1). + +.ti -.5i +In\-Reply\-To: +.br +A commentary line added by \fIrepl\fR\0(1) when replying to a message. + +.ti -.5i +Resent\-Date: +.br +Added when redistributing a message by \fIpost\fR\0(8). + +.ti -.5i +Resent\-From: +.br +Added when redistributing a message by \fIpost\fR\0(8). + +.ti -.5i +Resent\-To: +.br +New recipients for a message resent by \fIdist\fR\0(1). + +.ti -.5i +Resent\-cc: +.br +Still more recipients. +See \*(lqcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Bcc: +.br +Even more recipients. +See \*(lqBcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Fcc: +.br +Copy resent message into a folder. +See \*(lqFcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Message\-Id: +.br +A unique identifier glued on by \fIpost\fR\0(8) if the `\-msgid' flag +is set. +See \*(lqMessage\-Id:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent: +.br +Annotation for \fIdist\fR\0(1) under the `\-annotate' option. + +.ti -.5i +Forwarded: +.br +Annotation for \fIforw\fR\0(1) under the `\-annotate' option. + +.ti -.5i +Replied: +.br +Annotation for \fIrepl\fR\0(1) under the `\-annotate' option. +.in -.5i +.sp +.Fi +^@@(MHDROPLOC)~^Location of mail drop +.Pr +None +.Sa +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +None +.Co +None +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id:$ +.SC MH\-MAIL 5 +d5 1 +a5 1 +mh\-mail \- message format for MH message system +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MH\-MAIL 5 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MH\-MAIL 5 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MH\-MAIL 5 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-mts.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-mts.rf,v new file mode 100644 index 0000000..e690daa --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-mts.rf,v @@ -0,0 +1,306 @@ +head 1.10; +access; +symbols; +locks; strict; + + +1.10 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.05.22.28.18; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.02.05.22.26.49; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 90.11.21.10.09.32; author mh; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.08.37; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.19; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.41.57; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.14; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.05.14.48.11; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.05.14.47.20; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.10 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-mts.rf,v 1.9 1992/02/05 22:28:18 jromine Exp jromine $ +.SC MH-MTS 8 +.NA +mh-mts \- the MH interface to the message transport system +.SY +SendMail + +.ti .5i +Zmailer + +.ti .5i +MMDF (any release) + +.ti .5i +stand\-alone +.DE +\fIMH\fR can use a wide range of message transport systems to deliver mail. +Although the \fIMH\fR administrator usually doesn't get to choose which MTS +to use (since it's already in place), +this document briefly describes the interfaces. + +When communicating with \fISendMail\fR, +\fIMH\fR always uses the SMTP to post mail. +Depending on the \fIMH\fR configuration, +\fISendMail\fR may be invoked directly (via a \fIfork\fR and an \fIexec\fR), +or \fIMH\fR may open a TCP/IP connection to the SMTP server on the localhost. + +When communicating with \fIzmailer\fP, +the \fISendMail\fP compatibility program is +required to be installed in /usr/lib. +\fIMH\fP communicates with \fIzmailer\fP +by using the SMTP. +It does this by invoking the \fB/usr/lib/sendmail\fP +compatibility program directly, with the `\-bs' option. + +When communicating with \fIMMDF\fR, +normally \fIMH\fR uses the \*(lqmm\(ru\*(rq routines to post mail. +However, depending on the \fIMH\fR configuration, +\fIMH\fR instead may open a TCP/IP connection to the SMTP server on the +localhost. + +When using the stand\-alone system (\fBNOT\fR recommended), +\fIMH\fR delivers local mail itself and queues \fIUUCP\fR and network mail. +The network mail portion will probably have to be modified to reflect the +local host's tastes, since there is no well\-known practice in this area for +all types of UNIX hosts. + +If you are running a UNIX system with TCP/IP networking, +then it is felt that the best interface is achieved by using either +\fISendMail\fR or \fIMMDF\fR with the SMTP option. +This gives greater flexibility. +To enable this option you append the /smtp suffix to the mts option in the +\fIMH\fR configuration. +This yields two primary advantages: +First, +you don't have to know where \fIsubmit\fR or \fISendMail\fR live. +This means that \fIMH\fR binaries (e.g., \fIpost\fR\0) +don't have to have this information hard\-coded, +or can run different programs altogether; +and, +second, you can post mail with the server on different systems, so you don't +need either \fIMMDF\fR or \fISendMail\fR on your local host. +Big win in conserving cycles and disk space. +Since \fIMH\fR supports the notion of a server search\-list in this respect, +this approach can be tolerant of faults. +Be sure to set \*(lqservers:\*(rq as described in +mh\-tailor(8) if you use this option. + +There are four disadvantages to using the SMTP option: +First, only UNIX systems with TCP/IP are supported. +Second, you need to have an SMTP server running somewhere on any network your +local host can reach. +Third, this bypasses any authentication mechanisms in \fIMMDF\fR +or \fISendMail\fR. +Fourth, +the file \fB/etc/hosts\fR is used for hostname lookups +(although there is an exception file). +In response to these disadvantages though: +First, there's got to be an SMTP server somewhere around if you're in the +Internet or have a local network. +Since the server search\-list is very general, +a wide\-range of options are possible. +Second, +SMTP should be fixed to have authentication mechanisms in it, like POP. +Third, +\fIMH\fR won't choke on mail to hosts whose official names it can't verify, +it'll just plug along +(and besides +if you enable the BERK or DUMB configuration options, +\fIMH\fR ignores the hosts file altogether). +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +.Pr +None +.Sa +\fIMMDF\-II: A Technical Review\fR, +Proceedings, Usenix Summer '84 Conference +.br +\fISENDMAIL \-\- An Internetwork Mail Router\fR +.br +mh\-tailor(8), post(8) +.De +None +.Co +None +.Bu +The @@(MHETCPATH)/mtstailor file ignores the information in the \fIMMDF\-II\fR +tailoring file. +It should not. +.En +@ + + +1.9 +log +@typo +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: mh-mts.rf,v 1.8 1992/02/05 22:26:49 jromine Exp jromine $ +.SC MH\-MTS 8 +d5 1 +a5 1 +mh\-mts \- the MH interface to the message transport system +@ + + +1.8 +log +@document zmailer +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-mts.rf,v 1.7 1990/11/21 10:09:32 mh Exp jromine $ +d8 3 +@ + + +1.7 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-mts.rf,v 1.6 90/04/05 15:08:37 sources Exp Locker: mh $ +d25 8 +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d56 2 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MH\-MTS 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MH\-MTS 8 [mh.6] MH +@ + + +1.2 +log +@SOCKETS +@ +text +@d2 2 +a3 2 +.SC MH\-MTS 8 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d35 1 +a35 1 +non\-4.2BSD hosts. +d37 1 +a37 1 +If you are running a 4.2BSD UNIX system, +d57 1 +a57 1 +First, only 4.2BSD UNIX is supported. +d66 1 +a66 4 +First, 4.2BSD UNIX is the best UNIX around for networking. +When other UNIXes get TCP/IP and real networking, +\fIMH\fR can be modified. +Second, there's got to be an SMTP server somewhere around if you're in the +d70 2 +a72 2 +SMTP should be fixed to have authentication mechanisms in it, like POP. +Fourth, +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-profile.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-profile.rf,v new file mode 100644 index 0000000..b43cfe5 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-profile.rf,v @@ -0,0 +1,1024 @@ +head 1.21; +access; +symbols; +locks; strict; + + +1.21 +date 96.02.08.18.06.13; author jromine; state Exp; +branches; +next 1.20; + +1.20 +date 93.08.19.23.43.36; author jromine; state Exp; +branches; +next 1.19; + +1.19 +date 92.12.02.22.13.41; author jromine; state Exp; +branches; +next 1.18; + +1.18 +date 92.12.02.22.12.10; author jromine; state Exp; +branches; +next 1.17; + +1.17 +date 92.12.02.21.47.22; author jromine; state Exp; +branches; +next 1.16; + +1.16 +date 92.12.02.21.41.38; author jromine; state Exp; +branches; +next 1.15; + +1.15 +date 92.10.29.22.23.58; author jromine; state Exp; +branches; +next 1.14; + +1.14 +date 92.10.26.17.05.09; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 92.10.20.19.34.57; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.02.11.00.47.53; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.02.10.20.28.34; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.04.00.04.47; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 90.12.18.12.49.13; author mh; state Exp; +branches; +next 1.7; + +1.7 +date 90.04.05.15.09.46; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.02.14.29.06; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.20; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.41.59; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.15; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.15.40.28; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.15.29.23; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.21 +log +@note continuation line format +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-profile.rf,v 1.20 1993/08/19 23:43:36 jromine Exp jromine $ +.SC MH-PROFILE 5 +.NA +mh-profile \- user profile customization for MH message handler +.SY +\&\fI.mh\(ruprofile\fP +.DE +Each user of \fIMH\fR is expected to have a file named \fI\&.mh\(ruprofile\fR +in his or her home directory. This file contains a set of +user parameters used by some or all of the \fIMH\fR +family of programs. Each entry in the file is of the format + + \fIprofile\-component\fR: \fIvalue\fR + +If the text of an entry extends across several +real lines, the continuation lines are indicated by leading +spaces or tabs. +The possible profile components are exemplified below. +Only `Path:' is mandatory. +The others are optional; +some have default values if they are not present. +In the notation used below, +(profile, default) indicates whether the information is kept in the user's +\fIMH\fR profile or \fIMH\fR context, +and indicates what the default value is. + +.in +1i +.ti -1i +Path: Mail +.br +Locates \fIMH\fR transactions in directory \*(lqMail\*(rq. +(profile, no default) + +.ti -1i +context: context +.br +Declares the location of the \fIMH\fR context file, +see the \fBHISTORY\fR section below. +(profile, default: /context) + +.ti -1i +Current\-Folder:\ inbox +.br +Keeps track of the current open folder. +(context, default: folder specified by \*(lqInbox\*(rq) + +.ti -1i +Inbox: inbox +.br +Defines the name of your inbox. +(profile, default: inbox) + +.ti -1i +Previous\-Sequence:\ pseq +.br +Names the sequences which should be defined as the `msgs' or `msg' +argument given to the program. +If not present, or empty, no sequences are defined. +Otherwise, +for each name given, +the sequence is first zero'd and then each message is added to the sequence. +(profile, no default) + +.ti -1i +Sequence\-Negation:\ not +.br +Defines the string which, when prefixed to a sequence name, +negates that sequence. +Hence, +\*(lqnotseen\*(rq means all those messages that are not a member of +the sequence \*(lqseen\*(rq. +(profile, no default) + +.ti -1i +Unseen\-Sequence:\ unseen +.br +Names the sequences which should be defined as those messages recently +incorporated by \fIinc\fR. +\fIShow\fR knows to remove messages from this sequence once it thinks they +have been seen. +If not present, or empty, no sequences are defined. +Otherwise, +each message is added to each sequence name given. +(profile, no default) + +.ti -1i +mh\-sequences:\ \&.mh\(rusequences +.br +The name of the file in each folder which defines public sequences. +To disable the use of public sequences, +leave the value portion of this entry blank. +(profile, default: \&.mh\(rusequences) + +.ti -1i +atr\-\fIseq\fR\-\fIfolder\fR:\ 172\0178\-181\0212 +.br +Keeps track of the private sequence called \fIseq\fR in the specified folder. +(context, no default) + +.ti -1i +Editor:\ /usr/ucb/ex +.br +Defines editor to be used by +\fIcomp\fR\0(1), \fIdist\fR\0(1), \fIforw\fR\0(1), and \fIrepl\fR\0(1). +(profile, default: @@(MHEDITOR)) + +.ti -1i +Msg\-Protect:\ 644 +.br +Defines octal protection bits for message files. +See \fIchmod\fR\0(1) for an explanation of the octal number. +(profile, default: 0644) + +.ti -1i +Folder\-Protect:\ 711 +.br +Defines protection bits for folder directories. +(profile, default: 0711) + +.ti -1i +\fIprogram\fR:\ default switches +.br +Sets default switches to be used whenever the mh program +\fIprogram\fR is invoked. +For example, one could override the \fIEditor\fR: +profile component when replying to messages by adding a +component such as: +.br + repl: \-editor /bin/ed +.br +(profile, no defaults) + +.ti -1i +\fIlasteditor\fR\-next:\ nexteditor +.br +Names \*(lqnexteditor\*(rq to be the default editor after using \*(lqlasteditor\*(rq. +This takes effect at \*(lqWhat now?\*(rq level in +\fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR. +After editing the draft with \*(lqlasteditor\*(rq, +the default editor is set to be \*(lqnexteditor\*(rq. +If the user types \*(lqedit\*(rq without any arguments to \*(lqWhat now?\*(rq, +then \*(lqnexteditor\*(rq is used. +(profile, no default) + +.ti -1i +bboards: system +.br +Tells \fIbbc\fR which BBoards you are interested in. +(profile, default: system) + +.ti -1i +Folder\-Stack: \fIfolders\fR +.br +The contents of the folder-stack for the \fIfolder\fR command. +(context, no default) + +.ti -1i +mhe: +.br +If present, tells \fIinc\fR to compose an \fIMHE\fR auditfile in addition to +its other tasks. +\fIMHE\fR is Brian Reid's \fIEmacs\fR front-end for \fIMH\fR. +An early version is supplied with the \fImh.6\fR distribution. +(profile, no default) + +.ti -1i +Alternate\-Mailboxes: mh@@uci\-750a, bug-mh* +.br +Tells \fIrepl\fR and \fIscan\fR which addresses are really yours. +In this way, \fIrepl\fR knows which addresses should be included in the reply, +and \fIscan\fR knows if the message really originated from you. +Addresses must be separated by a comma, +and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the +mailboxes you indicate, +as local nicknames for hosts are not replaced with their official site names. +For each address, +if a host is not given, +then that address on any host is considered to be you. +In addition, +an asterisk (`*') may appear at either or both ends of the mailbox and host +to indicate wild-card matching. +(profile, default: your user-id) + +.ti -1i +Aliasfile: aliases other-alias +.br +Indicates aliases files for \fIali\fR, \fIwhom\fR, and \fIsend\fR. +This may be used instead of the `\-alias file' switch. +(profile, no default) + +.ti -1i +Draft\-Folder: drafts +.br +Indicates a default draft folder for \fIcomp\fR, \fIdist\fR, \fIforw\fR, +and \fIrepl\fR. +(profile, no default) + +.ti -1i +digest\-issue\-\fIlist\fR:\ 1 +.br +Tells \fIforw\fR the last issue of the last volume sent for the digest +\fIlist\fR. +(context, no default) + +.ti -1i +digest\-volume\-\fIlist\fR:\ 1 +.br +Tells \fIforw\fR the last volume sent for the digest \fIlist\fR. +(context, no default) + +.ti -1i +MailDrop: .mail +.br +Tells \fIinc\fR your maildrop, if different from the default. +This is superceded by the \fBMAILDROP\fR envariable. +(profile, default: @@(MHDROPLOC)) + +.ti -1i +Signature: RAND MH System (agent: Marshall Rose) +.br +Tells \fIsend\fR your mail signature. +This is superceded by the \fBSIGNATURE\fR envariable. +If \fBSIGNATURE\fR is not set and this profile entry is not present, +the \*(lqgcos\*(rq field of the \fI/etc/passwd\fP file will be used; +otherwise, +on hosts where \fIMH\fR was configured with the UCI option, +the file $HOME/.signature is consulted. +Your signature will be added to the address \fIsend\fP +puts in the \*(lqFrom:\*(rq header; +do not include an address in the signature text. +(profile, no default) +.in -1i + +The following profile elements are used whenever an \fIMH\fR program +invokes some other program such as \fImore\fR\0(1). +The \fI\&.mh\(ruprofile\fR can be used to select alternate +programs if the user wishes. The default values are given in +the examples. + +.nf +.in +.5i +.ta \w'whatnowproc: 'u +^fileproc:~^@@(MHBINPATH)/refile +^incproc:~^@@(MHBINPATH)/inc +^installproc:~^@@(MHETCPATH)/install\-mh +^lproc:~^/usr/ucb/more +^mailproc:~^@@(MHBINPATH)/mhmail +^mhlproc:~^@@(MHETCPATH)/mhl +^moreproc:~^/usr/ucb/more +^mshproc:~^@@(MHBINPATH)/msh +^packproc:~^@@(MHBINPATH)/packf +^postproc:~^@@(MHETCPATH)/post +^rmmproc:~^none +^rmfproc:~^@@(MHBINPATH)/rmf +^sendproc:~^@@(MHBINPATH)/send +^showproc:~^/usr/ucb/more +^whatnowproc:~^@@(MHBINPATH)/whatnow +^whomproc:~^@@(MHBINPATH)/whom +.re +.in -.5i +.fi + +If you define the envariable \fBMH\fR, +you can specify a profile other than \fI\&.mh\(ruprofile\fR to be read +by the \fIMH\fR programs that you invoke. +If the value of \fBMH\fR is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. +This is one of the very few exceptions in \fIMH\fR where non-absolute +pathnames are not considered relative to the user's \fIMH\fR directory. + +Similarly, +if you define the envariable \fBMHCONTEXT\fR, +you can specify a context other than the normal context file +(as specified in the \fIMH\fR profile). +As always, +unless the value of \fBMHCONTEXT\fR is absolute, +it will be presumed to start from your \fIMH\fR directory. + +\fIMH\fR programs also support other envariables: + +.in +.5i +.ti -.5i +\fBMAILDROP\fR\0: tells \fIinc\fR the default maildrop +.br +This supercedes the \*(lqMailDrop:\*(rq profile entry. + +.ti -.5i +\fBSIGNATURE\fR\0: tells \fIsend\fR and \fIpost\fR your mail signature +.br +This supercedes the \*(lqSignature:\*(rq profile entry. + +.ti -.5i +\fBHOME\fR\0: tells all \fIMH\fR programs your home directory + +.ti -.5i +\fBSHELL\fR\0: tells \fIbbl\fR the default shell to run + +.ti -.5i +\fBTERM\fR\0: tells \fIMH\fR your terminal type +.br +The \fBTERMCAP\fR envariable is also consulted. +In particular, +these tell \fIscan\fR and \fImhl\fR how to clear your terminal, +and how many columns wide your terminal is. +They also tell \fImhl\fR how many lines long your terminal screen is. + +.ti -.5i +\fBeditalt\fR\0: the alternate message +.br +This is set by \fIdist\fR and \fIrepl\fR during edit sessions +so you can peruse the message being distributed or replied to. +The message is also available through a link called \*(lq@@\*(rq +in the current directory if your current working directory and +the folder the message lives in are on the same UNIX filesystem. + +.ti -.5i +\fBmhdraft\fR\0: the path to the working draft +.br +This is set by \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR +to tell the \fIwhatnowproc\fR which file to ask \*(lqWhat now?\*(rq questions +about. +In addition, +\fIdist\fR, \fIforw\fR, and \fIrepl\fR set \fBmhfolder\fR if appropriate. +Further, +\fIdist\fR and \fIrepl\fR set \fBmhaltmsg\fR to tell the +\fIwhatnowproc\fR about an alternate message associated with the draft +(the message being distributed or replied to), +and +\fIdist\fR sets \fBmhdist\fR to tell the \fIwhatnowproc\fR that +message re-distribution is occurring. +Also, +\fBmheditor\fR is set to tell the \fIwhatnowproc\fR the user's choice of +editor (unless overridden by `\-noedit'). +Similarly, +\fBmhuse\fR may be set by \fIcomp\fR. +Finally, +\fBmhmessages\fR is set by \fIdist\fR, \fIforw\fR, and \fIrepl\fR +if annotations are to occur +(along with \fBmhannotate\fR, and \fBmhinplace\fR). +It's amazing all the information that has to get passed via envariables to +make the \*(lqWhat now?\*(rq interface look squeaky clean to the \fIMH\fR +user, isn't it? +The reason for all this +is that the \fIMH\fR user can select \fIany\fR program as the +\fIwhatnowproc\fR, including one of the standard shells. +As a result, it's not possible to pass information via an argument list. +.br +If the WHATNOW option was set during \fIMH\fR configuration +(type `\-help' to an \fIMH\fR command to find out), +and if this envariable is set, +if the commands \fIrefile\fR, \fIsend\fR, \fIshow\fR, or \fIwhom\fR +are not given any `msgs' arguments, +then they will default to using the file indicated by \fBmhdraft\fR. +This is useful for getting the default behavior supplied by the default +\fIwhatnowproc\fR. + +.ti -.5i +\fBmhfolder\fR\0: the folder containing the alternate message +.br +This is set by \fIdist\fR and \fIrepl\fR during edit sessions +so you can peruse other messages in the current folder +besides the one being distributed or replied to. +The \fBmhfolder\fR envariable is also +set by \fIshow\fR, \fIprev\fR, and \fInext\fR +for use by \fImhl\fR. + +.ti -.5i +\fBMHBBRC\fR\0: +.br +If you define the envariable \fBMHBBRC\fR, +you can specify a BBoards information file other than \fI\&.bbrc\fR to be +read by \fIbbc\fR. +If the value of \fBMHBBRC\fR is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. + +.ti -.5i +\fBMHFD\fR\0: +.br +If the OVERHEAD option was set during \fIMH\fR configuration +(type `\-help' to an \fIMH\fR command to find out), +then if this envariable is set, +\fIMH\fR considers it to be the number of a file descriptor which is opened, +read-only to the \fIMH\fR profile. +Similarly, +if the envariable \fBMHCONTEXTFD\fR is set, +this is the number of a file descriptor which is opened read-only +to the \fIMH\fR context. +This feature of \fIMH\fR is experimental, +and is used to examine possible speed improvements for \fIMH\fR startup. +Note that these envariables must be set and non-empty to enable this feature. +However, +if OVERHEAD is enabled during \fIMH\fR configuration, +then when \fIMH\fR programs call other \fIMH\fR programs, +this scheme is used. +These file descriptors are not closed throughout the execution of the +\fIMH\fR program, +so children may take advantage of this. +This approach is thought to be completely safe and does result in some +performance enhancements. +.in -.5i + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^or $MH~^Rather than the standard profile +^/context~^The user context +^or $CONTEXT~^Rather than the standard context +^/\&.mh\(rusequences~^Public sequences for +.Pr +All +.Sa +mh(1), environ(5), mh-sequence(5) +.De +None +.Co +All +.Hi +In previous versions of \fIMH\fR, +the current-message value of a writable folder was kept in a file +called \*(lqcur\*(rq in the folder itself. +In \fImh.3\fR, +the \fI\&.mh\(ruprofile\fR contained the current-message values for +all folders, regardless of their writability. + +In all versions of \fIMH\fR since \fImh.4\fR, +the \fI\&.mh\(ruprofile\fR contains only static information, +which \fIMH\fR programs will \fBNOT\fR update. +Changes in context are made to the \fIcontext\fR file kept in the users MH +\fIdirectory\fR. +This includes, but is not limited to: +the \*(lqCurrent\-Folder\*(rq entry and all private sequence information. +Public sequence information is kept in a file called \fI\&.mh\(rusequences\fR +in each folder. + +To convert from the format used in releases of \fIMH\fR prior +to the format used in the \fImh.4\fR release, +\fIinstall\-mh\fR should be invoked with the `\-compat' switch. +This generally happens automatically on \fIMH\fR systems generated with the +\*(lqCOMPAT\*(rq option during \fIMH\fR configuration. + +The \fI\&.mh\(ruprofile\fR may override the path of the \fIcontext\fR file, +by specifying a \*(lqcontext\*(rq entry (this must be in lower-case). +If the entry is not absolute (does not start with a \fB/\fR\0), +then it is interpreted relative to the user's \fIMH\fR directory. +As a result, +you can actually have more than one set of private sequences by using +different context files. +.Bu +The shell quoting conventions are not available in the \&.mh\(ruprofile. +Each token is separated by whitespace. + +There is some question as to what kind of arguments should be placed in +the profile as options. +In order to provide a clear answer, +recall command line semantics of all \fIMH\fR programs: +conflicting switches (e.g., `\-header and `\-noheader') +may occur more than one time on the command line, +with the last switch taking effect. +Other arguments, +such as message sequences, filenames and folders, +are always remembered on the invocation line and are not superseded by +following arguments of the same type. +Hence, it is safe to place only switches (and their arguments) +in the profile. + +If one finds that an \fIMH\fR +program is being invoked again and again with the same arguments, +and those arguments aren't switches, +then there are a few possible solutions to this problem. +The first is to create a (soft) link in your \fI$HOME/bin\fR directory +to the \fIMH\fR program of your choice. +By giving this link a different name, +you can create a new entry in your profile +and use an alternate set of defaults for the \fIMH\fR command. +Similarly, you could create a small shell script which called the +\fIMH\fR program of your choice with an alternate set of invocation +line switches (using links and an alternate profile entry is preferable +to this solution). + +Finally, the \fIcsh\fR user could create an alias for the command of the form: + +.ti +.5i +alias cmd 'cmd arg1 arg2 ...' + +In this way, the user can avoid lengthy type-in to the shell, +and still give \fIMH\fR commands safely. (Recall that some \fIMH\fR +commands invoke others, and that in all cases, the profile is read, +meaning that aliases are disregarded beyond an initial command invocation) +.En +@ + + +1.20 +log +@note use of gcos field for signature +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.19 1992/12/02 22:13:41 jromine Exp jromine $ +d12 1 +a12 1 +family of programs. Each line of the file is of the format +d16 3 +@ + + +1.19 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.18 1992/12/02 22:12:10 jromine Exp jromine $ +d221 4 +a224 2 +On hosts where \fIMH\fR was configured with the UCI option, +if \fBSIGNATURE\fR is not set and this profile entry is not present, +@ + + +1.18 +log +@fixup NA +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.17 1992/12/02 21:47:22 jromine Exp jromine $ +d5 1 +a5 1 +mh-profile \- user customization for MH message handler +@ + + +1.17 +log +@NA fixup +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.16 1992/12/02 21:41:38 jromine Exp jromine $ +d5 1 +a5 1 +mh-profile \- MH user profile +@ + + +1.16 +log +@fixup \- stuff +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.15 1992/10/29 22:23:58 jromine Exp jromine $ +d5 1 +a5 1 +mh-profile \- user profile customization for MH message system +@ + + +1.15 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.14 1992/10/26 17:05:09 jromine Exp jromine $ +d5 1 +a5 1 + \&.mh\(ruprofile \- user profile customization for MH message system +d7 1 +a7 1 +any \fIMH\fR command +d152 1 +a152 1 +The contents of the folder\-stack for the \fIfolder\fR command. +d160 1 +a160 1 +\fIMHE\fR is Brian Reid's \fIEmacs\fR front\-end for \fIMH\fR. +d179 1 +a179 1 +to indicate wild\-card matching. +d265 1 +a265 1 +This is one of the very few exceptions in \fIMH\fR where non\-absolute +d308 1 +a308 1 +so you can peruse the message being distributed or replied-to. +d324 1 +a324 1 +(the message being distributed or replied\-to), +d327 1 +a327 1 +message re\-distribution is occurring. +d359 1 +a359 1 +besides the one being distributed or replied-to. +d380 2 +a381 2 +\fIMH\fR considers it to be the number of a file\-descriptor which is opened, +read\-only to the \fIMH\fR profile. +d384 1 +a384 1 +this is the number of a file\-descriptor which is opened read\-only +d388 1 +a388 1 +Note that these envariables must be set and non\-empty to enable this feature. +d393 1 +a393 1 +These file\-descriptors are not closed throughout the execution of the +d416 1 +a416 1 +the current\-message value of a writable folder was kept in a file +d419 1 +a419 1 +the \fI\&.mh\(ruprofile\fR contained the current\-message values for +d482 1 +a482 1 +In this way, the user can avoid lengthy type\-in to the shell, +@ + + +1.14 +log +@fixes from Jerry Peek; don't put '$' in front of envar names +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.13 1992/10/20 19:34:57 jromine Exp jromine $ +d164 1 +a164 1 +.ti \-1i +@ + + +1.13 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.12 1992/05/12 22:23:34 jromine Exp jromine $ +d81 1 +a81 2 +for each name given, +the sequence is first zero'd and then each message is added to the sequence. +d213 1 +a213 1 +This is superceded by the \fB$MAILDROP\fR envariable. +d220 1 +a220 1 +This is superceded by the \fB$SIGNATURE\fR envariable. +d222 1 +a222 1 +if \fB$SIGNATURE\fR is not set and this profile entry is not present, +d259 1 +a259 1 +If you define the envariable \fB$MH\fR, +d262 1 +a262 1 +If the value of \fB$MH\fR is not absolute, +d269 1 +a269 1 +if you define the envariable \fB$MHCONTEXT\fR, +d273 1 +a273 1 +unless the value of \fB$MHCONTEXT\fR is absolute, +d280 1 +a280 1 +\fB$MAILDROP\fR\0: tells \fIinc\fR the default maildrop +d285 1 +a285 1 +\fB$SIGNATURE\fR\0: tells \fIsend\fR and \fIpost\fR your mail signature +d290 1 +a290 1 +\fB$HOME\fR\0: tells all \fIMH\fR programs your home directory +d293 1 +a293 1 +\fB$SHELL\fR\0: tells \fIbbl\fR the default shell to run +d296 1 +a296 1 +\fB$TERM\fR\0: tells \fIMH\fR your terminal type +d298 1 +a298 1 +The \fB$TERMCAP\fR envariable is also consulted. +d305 1 +a305 1 +\fB$editalt\fR\0: the alternate message +d314 1 +a314 1 +\fB$mhdraft\fR\0: the path to the working draft +d320 1 +a320 1 +\fIdist\fR, \fIforw\fR, and \fIrepl\fR set \fB$mhfolder\fR if appropriate. +d322 1 +a322 1 +\fIdist\fR and \fIrepl\fR set \fB$mhaltmsg\fR to tell the +d326 1 +a326 1 +\fIdist\fR sets \fB$mhdist\fR to tell the \fIwhatnowproc\fR that +d329 1 +a329 1 +\fB$mheditor\fR is set to tell the \fIwhatnowproc\fR the user's choice of +d332 1 +a332 1 +\fB$mhuse\fR may be set by \fIcomp\fR. +d334 1 +a334 1 +\fB$mhmessages\fR is set by \fIdist\fR, \fIforw\fR, and \fIrepl\fR +d336 1 +a336 1 +(along with \fB$mhannotate\fR, and \fB$mhinplace\fR). +d350 1 +a350 1 +then they will default to using the file indicated by \fB$mhdraft\fR. +d355 1 +a355 1 +\fB$mhfolder\fR\0: the folder containing the alternate message +d360 1 +a360 1 +The \fB$mhfolder\fR envariable is also +d365 1 +a365 1 +\fB$MHBBRC\fR\0: +d367 1 +a367 1 +If you define the envariable \fB$MHBBRC\fR, +d370 1 +a370 1 +If the value of \fB$MHBBRC\fR is not absolute, +d375 1 +a375 1 +\fB$MHFD\fR\0: +d383 1 +a383 1 +if the envariable \fB$MHCONTEXTFD\fR is set, +@ + + +1.12 +log +@fixup for nroff problems +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.11 1992/02/11 00:47:53 jromine Exp jromine $ +d301 1 +a301 1 +these tells \fIscan\fR and \fImhl\fR how to clear your terminal, +@ + + +1.11 +log +@document Aliasfile may be more than one file +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: mh-profile.rf,v 1.10 1992/02/10 20:28:34 jromine Exp jromine $ +.SC MH\-PROFILE 5 +d5 1 +a5 1 + \&.mh\(ruprofile \- user customization for MH message system +@ + + +1.10 +log +@mention mh-sequence +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.9 1992/02/04 00:04:47 jromine Exp jromine $ +d184 1 +a184 1 +Aliasfile: aliases +d186 1 +a186 1 +Indicates a default aliases file for \fIali\fR, \fIwhom\fR, and \fIsend\fR. +@ + + +1.9 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.8 1990/12/18 12:49:13 mh Exp jromine $ +d410 1 +a410 1 +mh(1), environ(5) +@ + + +1.8 +log +@do not add to signature +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.7 90/04/05 15:09:46 sources Exp Locker: mh $ +d43 7 +a49 1 +(context, default: +inbox) +@ + + +1.7 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d219 3 +@ + + +1.6 +log +@RAND fixes +@ +text +@d2 1 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d211 1 +a211 1 +Signature: Rand MH System (agent: Marshall Rose) +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MH\-PROFILE 5 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MH\-PROFILE 5 [mh.6] MH +@ + + +1.2 +log +@document Aliasfile: profile entry +@ +text +@d2 2 +a3 2 +.SC MH\-PROFILE 5 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d177 7 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-sequence.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-sequence.rf,v new file mode 100644 index 0000000..7cc8e65 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-sequence.rf,v @@ -0,0 +1,686 @@ +head 1.11; +access; +symbols; +locks; strict; + + +1.11 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.02.06.22.46.37; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 91.01.09.11.34.34; author mh; state Exp; +branches; +next 1.8; + +1.8 +date 91.01.07.16.45.12; author mh; state Exp; +branches; +next 1.7; + +1.7 +date 91.01.07.16.41.26; author mh; state Exp; +branches; +next 1.6; + +1.6 +date 91.01.07.16.34.25; author mh; state Exp; +branches; +next 1.5; + +1.5 +date 91.01.07.16.26.52; author mh; state Exp; +branches; +next 1.4; + +1.4 +date 91.01.07.16.14.39; author mh; state Exp; +branches; +next 1.3; + +1.3 +date 90.12.27.14.59.21; author mh; state Exp; +branches; +next 1.2; + +1.2 +date 90.12.27.14.55.16; author mh; state Exp; +branches; +next 1.1; + +1.1 +date 90.12.27.12.25.16; author mh; state Exp; +branches; +next ; + + +desc +@jlr +@ + + +1.11 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-sequence.rf,v 1.10 1992/02/06 22:46:37 jromine Exp jromine $ +.SC MH-SEQUENCE 5 +.NA +mh-sequence \- sequence specification for MH message system +.SY +most \fIMH\fR commands +.DE +Most \fIMH\fP commands accept a `msg' or `msgs' specification, where +`msg' indicates one message and `msgs' indicates one or more +messages. +To designate a message, you may use either its number (e.g., 1, 10, 234) +or one of these \*(lqreserved\*(rq message names: +.in +.5i +.sp 1 +.nf +.ta +\w'\fIName\fP 'u +\fIName\fP \fIDescription\fR +first the first message in the folder +last the last message in the folder +cur the most recently accessed message +prev the message numerically preceding \*(lqcur\*(rq +next the message numerically following \*(lqcur\*(rq +.re +.fi +.in -.5i + +In commands that take a `msg' argument, the default is \*(lqcur\*(rq. +As a shorthand, \*(lq\&.\*(rq is equivalent to \*(lqcur\*(rq. + +For example: In a folder containing five messages numbered 5, 10, 94, +177 and 325, \*(lqfirst\*(rq is 5 and \*(lqlast\*(rq is 325. +If \*(lqcur\*(rq is 94, then \*(lqprev\*(rq is 10 and \*(lqnext\*(rq +is 177. + +The word `msgs' indicates that one or more messages may be specified. +Such a specification consists of one message designation or of several message +designations separated by spaces. +A message designation consists either +of a message name as defined above, or a message range. + +A message range is specified as \*(lqname1\-name2\*(rq +or \*(lqname:n\*(rq, +where `name', `name1' and `name2' are message names, and `n' is an integer. + +The specification \*(lqname1\-name2\*(rq +designates all currently-existing messages from `name1' to `name2' inclusive. +The message name \*(lqall\*(rq is a shorthand for the message +range \*(lqfirst\-last\*(rq. + +The specification \*(lqname:n\*(rq designates up to `n' messages. +These messages start with `name' if `name' is a message number +or one of the reserved names \*(lqfirst\*(rq \*(lqcur\*(rq, or \*(lqnext\*(rq, +The messages end with `name' if `name' is \*(lqprev\*(rq or \*(lqlast\*(rq. +The interpretation of `n' may be overridden by preceding `n' with +a plus or minus sign; `+n' always means up to `n' messages starting +with `name', and `\-n' always means up to `n' messages ending +with `name'. + +In commands which accept a `msgs' argument, the default is either +\*(lqcur\*(rq or \*(lqall\*(rq, depending on which makes more sense +for each command (see the individual man pages for details). +Repeated specifications of the same message have the same effect as +a single specification of the message. + +.Uh "User\-Defined Message Sequences" +In addition to the \*(lqreserved\*(rq (pre-defined) message names given above, +\fIMH\fP supports user-defined sequence names. +User-defined sequences allow the \fIMH\fR user a tremendous amount of power +in dealing with groups of messages in the same folder +by allowing the user to bind a group of messages to a meaningful symbolic +name. + +The name used to denote a message sequence must consist of +an alphabetic character followed by zero or more +alphanumeric characters, and can not be one of the \*(lqreserved\*(rq +message names above. +After defining a sequence, +it can be used wherever an \fIMH\fR command expects a `msg' or `msgs' +argument. + +Some forms of message ranges are allowed with user-defined +sequences. The +specification \*(lqname:n\*(rq may be used, and it +designates up to the first `n' messages (or last `n' messages for `\-n') +which are elements of the user-defined sequence `name'. + +The specifications \*(lqname:next\*(rq and \*(lqname:prev\*(rq +may also be used, and they designate the +next or previous message (relative to the current message) +which is an element of the user-defined sequence `name'. +The specificaitions +\*(lqname:first\*(rq and \*(lqname:last\*(rq are equivalent +to \*(lqname:1\*(rq and \*(lqname:\-1\*(rq, respectively. +The specification \*(lqname:cur\*(rq is not allowed +(use just \*(lqcur\*(rq instead). +The syntax of these message range +specifcations is subject to change +in the future. + +User-defined sequence names +are specific to each folder. +They are defined using the \fIpick\fP and \fImark\fP commands. + +.Uh "Public and Private User-Defined Sequences" +There are two varieties of sequences: \fIpublic\fR sequences +and \fIprivate\fR sequences. +\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user that +can read that folder and are kept in the \&.mh\(rusequences file in the folder. +\fIPrivate\fR sequences are accessible only to the \fIMH\fR user that defined +those sequences and are kept in the user's \fIMH\fR context file. +By default, +\fIpick\fR and \fImark\fR create \fIpublic\fR sequences +if the folder for which the sequences are being defined is writable by the +\fIMH\fR user. +Otherwise, \fIprivate\fR sequences are created. +This can be overridden with the `\-public' and `\-private' switches +to \fImark\fP. + +.Uh "Sequence Negation" +\fIMH\fP provides the ability to select all messages +not elements of a user-defined sequence. To do this, +the user should define the entry +\*(lqSequence\-Negation\*(rq in the \fIMH\fR profile file; +its value may be any string. +This string is then used to preface an existing user-defined +sequence name. This specification then refers to those messages +not elements of the specified sequence name. +For example, if the profile entry is: + +.ti +.5i +Sequence\-Negation:\^ not + +then anytime an \fIMH\fR command is given \*(lqnotfoo\*(rq as a `msg' or +`msgs' argument, +it would substitute all messages that are not elements of the sequence +\*(lqfoo\*(rq. + +Obviously, +the user should beware of defining sequences with names that +begin with the value of the +\*(lqSequence\-Negation\*(rq profile entry. + +.Uh "The Previous Sequence" +\fIMH\fR provides the ability +to remember the `msgs' or +`msg' argument last given to an \fIMH\fR command. +The entry \*(lqPrevious\-Sequence\*(rq should be defined in the +\fIMH\fR profile; its value should be a sequence name or multiple +sequence names separated by spaces. +If this entry is defined, when +when an \fIMH\fP command finishes, +it will define the sequence(s) named in the value of this entry to be +those messages that were specified to the command. +Hence, a profile entry of + +.ti +.5i +Previous\-Sequence:\^ pseq + +directs any \fIMH\fR command that accepts a `msg' or `msgs' argument to +define the sequence \*(lqpseq\*(rq as those messages when it finishes. + +\fBNote:\fP there can be a performance penalty in using the +\*(lqPrevious\-Sequence\*(rq facility. +If it is used, +\fBall\fP \fIMH\fR programs have to write the sequence information +to the \&.mh\(rusequences file for +the folder each time they run. +If the \*(lqPrevious\-Sequence\*(rq profile entry is not included, +only \fIpick\fR and \fImark\fR will write to the \&.mh\(rusequences file. + +.Uh "The Unseen Sequence" +Finally, some users like to indicate messages which have not been +previously seen by them. +Both \fIinc\fR and \fIshow\fR honor the profile entry +\*(lqUnseen\-Sequence\*(rq to support this activity. +This entry in the \&.mh\(ruprofile should be defined +as one or more sequence names separated by spaces. +If there is a value for \*(lqUnseen\-Sequence\*(rq in the profile, +then whenever \fIinc\fR places new messages in a folder, +the new messages will also be added to the sequence(s) named +in the value of this entry. +Hence, a profile entry of + +.ti +.5i +Unseen\-Sequence:\^ unseen + +directs \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq. +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile, +however, the sequence(s) will \fBnot\fR be zeroed by \fIinc\fP. + +Similarly, +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\^) displays a message, +that message will be removed +from any sequences named by the +\*(lqUnseen\-Sequence\*(rq entry in the profile. + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/context~^The user context +^/\&.mh\(rusequences~^Public sequences for +.Pr +^Sequence\-Negation:~^To designate messages not in a sequence +.Ps +^Previous\-Sequence:~^The last message specification given +.Ps +^Unseen\-Sequence:~^Those messages not yet seen by the user +.Sa +mh(1), mark(1), pick(1), mh-profile(5) +.De +None +.Co +All +.Bu +User-defined sequences are stored in the \&.mh\(rusequences file +as a series of message specifications separated by spaces. +If a user-defined sequence contains too many individual +message specifications, +that line in the file may become too long for \fIMH\fP to handle. +This will generate the error message \*(lq\&.mh\(rusequences is +poorly formatted\*(rq. You'll have to edit the file by hand to +remove the offending line. + +This can happen to users who define the \*(lqPrevious\-Sequence\*(rq entry in +the \fIMH\fP profile +and have a folder containing many messages with gaps in the numbering. +A workaround for large folders is to minimize numbering gaps by using +\*(lqfolder\ \-pack\*(rq often. +.En +@ + + +1.10 +log +@minor note +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: mh-sequence.rf,v 1.9 1991/01/09 11:34:34 mh Exp jromine $ +.SC MH\-SEQUENCE 5 +d5 1 +a5 1 +mh\-sequence \- sequence specification for MH message system +@ + + +1.9 +log +@document name:{first,last,next,prev} +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-sequence.rf,v 1.8 91/01/07 16:45:12 mh Exp Locker: mh $ +d61 2 +a62 1 +\*(lqcur\*(rq or \*(lqall\*(rq, depending on which makes more sense. +@ + + +1.8 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-sequence.rf,v 1.7 91/01/07 16:41:26 mh Exp Locker: mh $ +d81 2 +a82 2 +A restricted form of message ranges are allowed with user\-defined +sequences. Only the +d87 14 +a100 1 +These user-defined sequence names +@ + + +1.7 +log +@fix +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-sequence.rf,v 1.6 91/01/07 16:34:25 mh Exp Locker: mh $ +d66 1 +a66 1 +In addition to the \(*lqreserved\(*rq (pre-defined) message names given above, +@ + + +1.6 +log +@fixup +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-sequence.rf,v 1.5 91/01/07 16:26:52 mh Exp Locker: mh $ +a183 15 +.Bu +User-defined sequences are stored in the \&.mh\(rusequences file +as a series of message specifications separated by spaces. +If a user-defined sequence contains too many individual +message specifications, +that line in the file may become too long for \fIMH\fP to handle. +This will generate the error message \*(lq\&.mh\(rusequences is +poorly formatted\*(rq. You'll have to edit the file by hand to +remove the offending line. + +This can happen to users who define the \*(lqPrevious\-Sequence\*(rq entry in +the \fIMH\fP profile +and have a folder containing many messages with gaps in the numbering. +A workaround for large folders is to minimize numbering gaps by using +\*(lqfolder\ \-pack\*(rq often. +d200 15 +@ + + +1.5 +log +@change from Jerry Peek +@ +text +@d1 4 +a4 7 +.\" This file is automatically generated. Do not edit! +.\" include the -mh macro file +.so /usr/local/lib/mh/tmac.h +.\" This file is automatically generated. Do not edit! +.\" @@(#)$Id: mh-sequence.rf,v 1.3 90/12/27 14:59:21 mh Exp $ +.TH MH\-SEQUENCE 5 MH.6.7 [mh.6] +.SH NAME +d6 1 +a6 3 +.SH SYNOPSIS +.in +.5i +.ti -.5i +d8 1 +a8 2 +.in -.5i +.SH DESCRIPTION +@ + + +1.4 +log +@use Uh macro +@ +text +@d1 7 +a7 4 +.\" @@(MHWARNING) +.\" @@(#)$Id: mh-sequence.rf,v 1.3 90/12/27 14:59:21 mh Exp Locker: mh $ +.SC MH\-SEQUENCE 5 +.NA +d9 3 +a11 1 +.SY +d13 2 +a14 1 +.DE +d16 1 +a16 1 +`msg' indicates one message, and `msgs' indicates one or more +d18 1 +a18 1 +To designate a message, you may use either its number (e.g., 1, 10, 234), +d28 1 +a28 1 +prev the message numerically preceding \*(lqcur\*(rq +d37 5 +d43 2 +a44 2 +Such a specification consists of several message designations separated +by spaces. +d49 2 +a50 2 +or \*(lqname1:n\*(rq, +where `name1' and `name2' are message names, and `n' is an integer. +d53 1 +a53 1 +designates all the messages from `name1' to `name2' inclusive. +d57 2 +a58 2 +The specification \*(lqname1:n\*(rq designates up to `n' messages, +starting with `name1' if `name1' is a message number +d60 1 +a60 1 +and ending with `name1' if `name1' is \*(lqprev\*(rq, or \*(lqlast\*(rq. +d63 2 +a64 2 +with `name1', and `\-n' always means up to `n' messages ending +with `name1'. +d72 2 +a73 2 +In addition to the pre-defined message names given above, +\fIMH\fP supports user-defined sequences names. +d94 2 +a95 2 +are specific to each folder, and are +defined using the \fIpick\fP and \fImark\fP commands. +d98 1 +a98 1 +There are two varieties of sequences: \fIpublic\fR sequences, +d105 1 +a105 1 +\fIpick\fR (and \fImark\fR\^) create \fIpublic\fR sequences +d116 1 +a116 1 +\*(lqSequence\-Negation\*(rq in the \&.mh\(ruprofile; +d141 1 +a141 1 +\&.mh\(ruprofile; its value should be a sequence name, or multiple +d155 1 +a155 1 +\fBNote:\fP there is a performance penalty in using the +d158 2 +a159 1 +\fBall\fP \fIMH\fR programs have to update the sequence information for +d161 2 +a162 2 +Although most programs read this information, +usually only \fIpick\fR and \fImark\fR have to write this information out. +d190 15 +@ + + +1.3 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-sequence.rf,v 1.2 90/12/27 14:55:16 mh Exp Locker: mh $ +a8 3 +.de UH +.SS "\\$1" +.. +d60 1 +a60 1 +.UH "User\-Defined Message Sequences" +d86 1 +a86 1 +.UH "Public and Private User-Defined Sequences" +d101 1 +a101 1 +.UH "Sequence Negation" +d125 1 +a125 1 +.UH "The Previous Sequence" +d152 1 +a152 1 +.UH "The Unseen Sequence" +@ + + +1.2 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-sequence.rf,v 1.1 90/12/27 12:25:16 mh Exp $ +d83 1 +a83 1 +which are part of the user-defined sequence `name'. +d97 1 +a97 1 +\fIpick\fR (and \fImark\fR\|) create \fIpublic\fR sequences +d116 1 +a116 1 +Sequence\-Negation:\| not +d142 1 +a142 1 +Previous\-Sequence:\| pseq +d169 1 +a169 1 +Unseen\-Sequence:\| unseen +d176 1 +a176 1 +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\|) displays a message, +d192 1 +a192 1 +mark(1), pick(1), mh-profile(5) +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-profile.rf,v 1.8 90/12/18 12:49:13 mh Exp $ +d7 1 +a7 1 +any \fIMH\fR commands +d12 2 +a13 3 +Most \fIMH\fP commands accept a `msg' or `msgs' argument. +The word +`msg' refers to one message, and `msgs' refers to one or more +d15 2 +a16 5 +This describes how messages are specified to \fIMH\fP commands. + +.ne 10 +A message name may be a number (e.g., 1, 10, 234) or one of +the \*(lqreserved\*(rq message names: +d20 1 +a20 1 +.ta +\w'first 'u +d25 1 +a25 1 +prev the message numerically preceeding \*(lqcur\*(rq +a26 1 +\&. a shorthand for \*(lqcur\*(rq +d32 1 +d40 3 +a42 4 +A message range is specified as \*(lqname1\-name2\*(rq, where +`name1' and `name2' are message names, or +as \*(lqname1:n\*(rq, where `name1' +is a message name and `n' is an integer. +d44 2 +a45 2 +The specification \*(lqname1\-name2\*(rq desginates up to +This designates all the messages from `name1' to `name2' inclusive. +d49 1 +a49 1 +The specification \*(lqname1:n\*(rq desginates up to `n' messages, +d53 1 +a53 1 +The interpretation of `n' may be overridden by preceeding `n' with +d60 2 +d97 1 +a97 1 +\fIpick\fR (and \fImark\fR\0) create \fIpublic\fR sequences +d105 9 +a113 4 +The \fIMH\fP user may desire to specify all messages not +present in a user-defined sequence. +This capability is realized through the entry +\*(lqSequence\-Negation:\*(rq in the \&.mh\(ruprofile. +a114 7 +The \*(lqSequence\-Negation:\*(rq profile entry may consist of +any string. If it is defined, +it may be used to preface an existing user-defined +sequence name. This designation then refers to those messages +not present in the specified sequence name. +For example, if the entry is: + +d116 1 +a116 1 +Sequence\-Negation:\0not +d124 1 +a124 1 +the user should beware of defining new sequences whose names +d126 1 +a126 1 +\*(lqSequence\-Negation:\*(rq profile entry. +d132 7 +a138 5 +If the entry \*(lqPrevious\-Sequence:\*(rq is defined in the +\&.mh\(ruprofile, +then when the command finishes, +it will define the sequence(s) named in the value of this entry as being +exactly those messages that were specified. +d142 1 +a142 1 +Previous\-Sequence:\0pseq +a145 2 +More than one sequence name may be placed in this entry, +separated with spaces. +d147 5 +a151 5 +There is a performance penalty in using the +\*(lqPrevious\-Sequence:\*(rq entry. +It +is that all \fIMH\fR progams have to update the sequence information for +the folder each time they run +d154 1 +d156 1 +a156 1 +Finally, some users like to distinguish between messages which have been +d160 6 +a165 5 +Whenever \fIinc\fR places new messages in a folder, +if the entry \*(lqUnseen\-Sequence:\*(rq is defined in the \&.mh\(ruprofile, +then when the command finishes, +\fIinc\fR will add the new messages to the sequence(s) named in the value of +this entry. +d169 1 +a169 1 +Unseen\-Sequence:\0 unseen +d172 2 +a173 3 +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile +however, +the sequence(s) will \fBnot\fR be zero'd. +d176 3 +a178 2 +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\0) displays a message, +they remove those messages from any sequences named by the +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh-tailor.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-tailor.rf,v new file mode 100644 index 0000000..e239b20 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh-tailor.rf,v @@ -0,0 +1,1032 @@ +head 2.21; +access; +symbols; +locks; strict; + + +2.21 +date 94.03.23.23.32.50; author jromine; state Exp; +branches; +next 2.20; + +2.20 +date 93.09.01.21.20.56; author jromine; state Exp; +branches; +next 2.19; + +2.19 +date 92.12.02.22.16.12; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 92.12.02.22.12.10; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 92.12.02.21.54.24; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.12.02.21.47.04; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.05.12.22.14.47; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.02.11.01.01.06; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 92.02.11.00.55.16; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 91.01.07.16.13.27; author mh; state Exp; +branches; +next 2.10; + +2.10 +date 91.01.07.16.13.07; author mh; state Exp; +branches; +next 2.9; + +2.9 +date 90.04.09.09.33.58; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.04.08.12.24.46; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.04.05.15.08.18; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.04.05.13.26.13; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.02.14.29.25; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.22.11.31.22; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.03.21.10.20.29; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.03.20.19.42.00; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.03.20.17.36.16; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.35; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.06.02.11.27.10; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.21 +log +@document change to clientname +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh-tailor.rf,v 2.20 1993/09/01 21:20:56 jromine Exp jromine $ +.SC MH-TAILOR 5 +.NA +mh-tailor, mtstailor \- system customization for MH message handler + +.SY +\fI@@(MHETCPATH)/mtstailor\fP +.DE +The file @@(MHETCPATH)/mtstailor defines run-time options for those \fIMH\fR +programs which interact (in some form) with the message transport system. +At present, these (user) programs are: +\fIap\fR, \fIconflict\fR, \fIinc\fR, \fImsgchk\fR, +\fImsh\fR, \fIpost\fR, \fIrcvdist\fR, and \fIrcvpack\fR. + +Each option should be given on a single line. Blank lines +and lines which begin with `#' are ignored. +The options available along with default values and a description of their +meanings are listed below: + +.in +.5i +.ti -.5i +localname: +.br +The host name \fIMH\fR considers local. +If not set, depending on the version of UNIX you're running, +\fIMH\fR will query the system for this value +(e.g., , gethostname, etc.). +This has no equivalent in the \fIMH\fR configuration file. +POP client hosts should set this value to the name of the POP service host. + +.ti -.5i +localdomain: +.br +If this is set, a `.' followed by this string will be +appended to your host name. +This might be useful for sites +where the host name returned by the system +(e.g., , gethostname, etc.), +is not a \*(lqfully qualified domain name\*(rq +(i.e., does not contain a `.'). + +.ti -.5i +clientname: +.br +The host name \fIMH\fP will give in the +SMTP \fBHELO\fP (and \fBEHLO\fP) command, when posting mail. +If not set, the host name \fIMH\fR considers local is used +(see \*(lqlocalname\*(rq above). +If empty, no \fBHELO\fP command will be given. +Although the \fBHELO\fP command is required by RFC 821, +many SMTP servers do not require it. +.sp +Early versions of SendMail will fail if the host name +given in the \fBHELO\fP command is the local host; +later versions of SendMail will complain if you omit the +\fBHELO\fP command. If you run SendMail, find out what +your system expects and set this field if needed. + +.ti -.5i +systemname: +.br +The name of the local host in the \fIUUCP\fR \*(lqdomain\*(rq. +If not set, depending on the version of UNIX you're running, +\fIMH\fR will query the system for this value. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +mmdfldir: @@(MHDROPATH) +.br +The directory where maildrops are kept. +If this is empty, the user's home directory is used. +This overrides the \*(lqmail\*(rq field in the \fIMH\fR configuration file. + +.ti -.5i +mmdflfil: @@(MHDROPFIL) +.br +The name of the maildrop file in the directory where maildrops are kept. +If this is empty, the user's login name is used. +This overrides the \*(lqmail\*(rq field in the \fIMH\fR configuration file. + +.ti -.5i +mmdelim1: \\001\\001\\001\\001\\n +.br +The beginning-of-message delimiter for maildrops. + +.ti -.5i +mmdelim2: \\001\\001\\001\\001\\n +.br +The end-of-message delimiter for maildrops. + +.ti -.5i +mmailid: 0 +.br +If non-zero, then support for MMailids in \fB/etc/passwd\fR is enabled. +Basically, the pw_gecos field in the password file is of the form + +.ti +.5i +My Full Name + +The \fIMH\fR internal routines that deal with user and full names will return +\*(lqmailid\*(rq and \*(lqMy Full Name\*(rq respectively. + +.ti -.5i +lockstyle: 0 +.br +The locking discipline to perform. +A value of \*(lq0\*(rq means to use kernel-level locking +if available. +(See below for more details.) +On systems compiled without kernel-level locking, +standard \fIBellMail\fR locking is used. +A value of \*(lq1\*(rq means to use \fIBellMail\fR locking always +(the name of the lock is based on the file name). +A value of \*(lq2\*(rq means to use \fIMMDF\fR locking always +(the name of the lock is based on device/inode pairs). + +.ti -.5i +lockldir: +.br +The name of the directory for making locks. +If your system isn't configured to use kernel-level locking, +then this directory is used when creating locks. +If the value is empty, +then the directory of the file to be locked is used. + +.ti -.5i +maildelivery: @@(MHETCPATH)/maildelivery +.br +The name of the system-wide default \fI\&.maildelivery\fR file. +See \fImhook\fR\0(1) for the details. + +.ti -.5i +everyone: 200 +.br +The highest user-id which should NOT receive mail addressed to +\*(lqeveryone\*(rq. + +.ti -.5i +noshell: +.br +If set, then each user-id greater than \*(lqeveryone\*(rq +that has a login shell equivalent to the given value (e.g., +\*(lq/bin/csh\*(rq) +indicates that mail for \*(lqeveryone\*(rq should not be sent to them. +This is useful for handling admin, dummy, and guest logins. +.\" @@BEGIN: MF +.in -.5i +.Uh "Mail Filtering" +These options are only available if you compiled \fIMH\fP with +\*(lqoptions\ MF\*(rq. + +.in +.5i +.ti -.5i +uucpchan: name of \fIUUCP\fR channel +.br +Usually \*(lqUUCP\*(rq. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +uucpldir: /usr/spool/mail +.br +The name of the directory where \fIUUCP\fR maildrops are kept. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +uucplfil: +.br +The name of the maildrop file in the directory where \fIUUCP\fR maildrops are +kept. +If this is empty, the user's login name is used. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +umincproc: @@(MHETCPATH)/uminc +.br +The path to the program that filters \fIUUCP\fR\^-style maildrops to +\fIMMDF\fR\^-style maildrops. +.\" @@END: MF +.\" @@BEGIN: MHMTS +.in -.5i +.Uh "Stand-Alone Delivery" +These options are only available if you compiled \fIMH\fP +to use stand-alone delivery (i.e., \*(lqmts:\ mh\*(rq). + +.in +.5i +.ti -.5i +mailqdir: /usr/spool/netmail +.br +The directory where network mail is queued. + +.ti -.5i +tmailqdir: /usr/tmp +.br +The directory where network mail queue files are built. + +.ti -.5i +syscpy: 1 +.br +If ON, unauthorized mail is copied to the overseer. + +.ti -.5i +overseer: root +.br +The user that receives reports of unauthorized mail. + +.ti -.5i +mailer: root +.br +The user acting for the mail system. + +.ti -.5i +fromtmp: /tmp/rml.f.XXXXXX +.br +The \fImktemp\fR template for storing from lines. + +.ti -.5i +msgtmp: /tmp/rml.m.XXXXXX +.br +The \fImktemp\fR template for storing the rest of the message. + +.ti -.5i +errtmp: /tmp/rml.e.XXXXXX +.br +The \fImktemp\fR template for storing error messages from other mailers. + +.ti -.5i +tmpmode: 0600 +.br +The octal mode which temporary files are set to. + +.ti -.5i +okhosts: @@(MHETCPATH)/Rmail.OKHosts +.br +A file containing a list of hosts that can send ARPAnet mail. + +.ti -.5i +okdests: @@(MHETCPATH)/RMail.OKDests +.br +A file containing a list of hosts that can always receive mail. +.\" @@END: MHMTS +.\" @@BEGIN: SMTP +.in -.5i +.Uh "The `/smtp' MTS Suffix" +These options are only available if you compiled \fIMH\fP with +the \*(lq/smtp\*(rq suffix to your \*(lqmts:\*(rq configuration. + +.in +.5i +.ti -.5i +hostable: @@(MHETCPATH)/hosts +.br +The exceptions file for /etc/hosts used by \fIpost\fR to try to find official +names. +The format of this file is quite simple: + +.in +.5i +1. Comments are surrounded by sharp (`#') and newline. +.br +2. Words are surrounded by white space. +.br +3. The first word on the line is the official name of a host. +.br +4. All words following the official names are aliases for that host. +.in -.5i + +.ti -.5i +servers: localhost \\01localnet +.br +A lists of hosts and networks which to look for SMTP servers +when posting local mail. +It turns out this is a major win for hosts which don't run an message +transport system. +The value of \*(lqservers\*(rq should be one or more items. +Each item is the name of either a host or a net +(in the latter case, precede the name of the net by a \\01). +This list is searched when looking for a smtp server to post mail. +If a host is present, the SMTP port on that host is tried. +If a net is present, +the SMTP port on each host in that net is tried. +Note that if you are running with the BIND code, +then any networks specified are ignored +(sorry, the interface went away under BIND). +.\" @@END: SMTP +.\" @@BEGIN: SENDMTS +.in -.5i +.Uh "SendMail" +This option is only available if you compiled \fIMH\fP to +use \fISendMail\fP as your delivery agent (i.e., \*(lqmts:\ sendmail\*(rq). + +.in +.5i +.ti -.5i +sendmail: /usr/lib/sendmail +.br +The pathname to the \fIsendmail\fR program. +.\" @@END: SENDMTS +.\" @@BEGIN: POP +.in -.5i +.Uh "Post Office Protocol" +This option is only available if you compiled \fIMH\fP with POP +support enabled (i.e., \*(lqpop:\ on\*(rq). + +.in +.5i +.ti -.5i +pophost: +.br +The name of the default POP service host. +If this is not set, +then \fIMH\fR looks in the standard maildrop areas for waiting mail, +otherwise the named POP service host is consulted. +.\" @@END: POP +.\" @@BEGIN: BBSERVER +.in -.5i +.Uh "BBoards Delivery" +This option is only available if you compiled \fIMH\fP with +\*(lqbbdelivery:\ on\*(rq. + +.in +.5i +.ti -.5i +bbdomain: +.br +The local BBoards domain (a UCI hack). +.\" @@END: BBSERVER +.\" @@BEGIN: BPOP +.in -.5i +.Uh "BBoards & The POP" +These options are only available if you compiled \fIMH\fP with +\*(lqbboards:\ pop\*(rq and \*(lqpop:\ on\*(rq. + +.in +.5i +.ti -.5i +popbbhost: +.br +The POP service host which also acts as a BBoard server. +This variable should be set on the POP BBoards client host. + +.ti -.5i +popbbuser: +.br +The guest account on the POP/BB service host. +This should be a different login ID than either the POP user or the BBoards +user. +(The user-id \*(lqftp\*(rq is highly recommended.) +This variable should be set on both the POP BBoards client and service hosts. + +.ti -.5i +popbblist: @@(MHETCPATH)/hosts.popbb +.br +A file containing of lists of hosts that are allowed to use the POP facility +to access BBoards using the guest account. +If this file is not present, +then no check is made. +This variable should be set on the POP BBoards service host. +.\" @@END: BPOP +.\" @@BEGIN: NNTP +.in -.5i +.if n .ne 8 +.Uh "BBoards & The NNTP" +This option is only available if you compiled \fIMH\fP with +\*(lqbboards:\ nntp\*(rq and \*(lqpop:\ on\*(rq. + +.in +.5i +.ti -.5i +nntphost: +.br +The host which provides the NNTP service. +This variable should be set on the NNTP BBoards client host. +.\" @@END: NNTP +.in -.5i +.Uh "File Locking" +A few words on locking: +\fIMH\fR has a flexible locking system for making locks on files. +There are two \fBmtstailor\fR variables you should be aware of +\*(lqlockstyle\*(rq and \*(lqlockldir\*(rq. +The first controls the method of locking, +the second says where lock files should be created. + +The \*(lqlockstyle\*(rq variable can take on three values: 0, 1, 2. +A value of 0 is useful on systems with kernel-level locking. +If you are on a \fBBSD42\fP system, \fIMH\fP assumes +you have the \fIflock\fR system call. +On other systems: +define \fBFLOCK\fP if you want to use the \fIflock\fP system call; +define \fBLOCKF\fP if you want to use the \fIlockf\fP system call; +or define \fBFCNTL\fP if you want to use the \fIfcntl\fP system call +for kernel-level locking. +If you haven't configured \fIMH\fP to use kernel-level locking, +a locking style of 0 is considered the same as locking style 1. + +A value of 1 or 2 specifies that a file should be created whose existence +means \*(lqlocked\*(rq and whose non-existence means \*(lqunlocked\*(rq. +A value of 1 says to construct the lockname by appending \*(lq.lock\*(rq to +the name of the file being locked. +A value of 2 says to construct the lockname by looking at the device and +inode numbers of the file being locked. +If the \*(lqlockldir\*(rq variable is not specified, +lock files will be created in the directory where the file being locked +resides. +Otherwise, lock files will be created in the directory specified by +\*(lqlockldir\*(rq. +Prior to installing \fIMH\fR, +you should see how locking is done at your site, +and set the appropriate values. +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +.Pr +None +.Sa +mh\-gen(8), mh\-mts(8) +.De +As listed above +.Co +None +.En +@ + + +2.20 +log +@document "clientname" +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.19 1992/12/02 22:16:12 jromine Exp jromine $ +d48 3 +a50 1 +If not set, no \fBHELO\fP command will be given. +d58 1 +a58 1 +your system expects and set this field accordingly. +@ + + +2.19 +log +@italic correction +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.18 1992/12/02 22:12:10 jromine Exp jromine $ +d30 1 +a30 1 +POP client hosts have this value set to the name of the POP service host. +d44 15 +d354 1 +@ + + +2.18 +log +@fixup NA +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.17 1992/12/02 21:54:24 jromine Exp jromine $ +d160 2 +a161 2 +The path to the program that filters \fIUUCP\fR-style maildrops to +\fIMMDF\fR-style maildrops. +@ + + +2.17 +log +@explain comment line format +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.16 1992/12/02 21:47:04 jromine Exp jromine $ +d5 2 +a6 1 +mh-tailor, mtstailor \- MH system configuration file +@ + + +2.16 +log +@NA fixup, and \- fixups +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.15 1992/05/12 22:23:34 jromine Exp jromine $ +d15 2 +@ + + +2.15 +log +@fixup for nroff problems +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.14 1992/05/12 22:14:47 jromine Exp jromine $ +d5 1 +a5 1 +@@(MHETCPATH)/mtstailor \- system customization for MH message system +d7 1 +a7 1 +any \fIMH\fR command that interacts with the MTS +d9 1 +a9 1 +The file @@(MHETCPATH)/mtstailor defines run\-time options for those \fIMH\fR +d65 1 +a65 1 +The beginning\-of\-message delimiter for maildrops. +d70 1 +a70 1 +The end\-of\-message delimiter for maildrops. +d87 1 +a87 1 +The locking\-discipline to perform. +d110 1 +a110 1 +The name of the system\-wide default \fI\&.maildelivery\fR file. +d116 1 +a116 1 +The highest user\-id which should NOT receive mail addressed to +d157 2 +a158 2 +The path to the program that filters \fIUUCP\fR\-style maildrops to +\fIMMDF\fR\-style maildrops. +d239 1 +a239 1 +2. Words are surrounded by whitespace. +d322 1 +a322 1 +(The user\-id \*(lqftp\*(rq is highly recommended.) +d369 1 +a369 1 +means \*(lqlocked\*(rq and whose non\-existence means \*(lqunlocked\*(rq. +@ + + +2.14 +log +@typo +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: mh-tailor.rf,v 2.13 1992/02/11 01:01:06 jromine Exp jromine $ +.SC MH\-TAILOR 5 +@ + + +2.13 +log +@document localdomain +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.12 1992/02/11 00:55:16 jromine Exp jromine $ +d215 1 +a215 1 +A file containing a list of hosts that can sent ARPAnet mail. +@ + + +2.12 +log +@locking +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.11 1991/01/07 16:13:27 mh Exp jromine $ +d28 11 +@ + + +2.11 +log +@delete SS macro +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.10 91/01/07 16:13:07 mh Exp Locker: mh $ +d77 4 +a80 3 +A value of \*(lq0\*(rq means to use \fIflock\fR if available, +or \fIlockf\fR if \fBLOCKF\fP was defined when building \fIMH\fP. +On non-\fBBSD42\fP systems, +d91 1 +a91 1 +If your system doesn't have the \fIflock\fR or \fIlockf\fP syscalls, +d344 1 +d346 9 +a354 4 +A value of 0 is useful on \fBBSD42\fP systems. +If you included the \fBLOCKF\fP option when building \fIMH\fP, the +\fIlockf\fP syscall is used, otherwise the \fIflock\fP syscall is used. +If you're not on a 4.2BSD system, +@ + + +2.10 +log +@document LOCKF +use Uh instead of SS +jlr +@ +text +@d2 1 +a2 11 +.\" @@(#)$Id: mh-tailor.rf,v 2.9 90/04/09 09:33:58 sources Exp Locker: mh $ +.if !'\*(ZZ'-man' \{\ +.rm SS +.de SS +.sp +.in .25i +.b "\\s-2\&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6\\s0" +.sp +.in .5i +.. +.\} +@ + + +2.9 +log +@typos +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.8 90/04/08 12:24:46 sources Exp Locker: sources $ +d88 3 +a90 1 +standard \fIBellMail\fR locking otherwise. +d100 1 +a100 1 +If your system doesn't have the \fIflock\fR syscall, +d126 2 +a127 1 +.SS "Mail Filtering" +d159 2 +a160 1 +.SS "Stand-Alone Delivery" +d221 2 +a222 1 +.SS "The \*(lq/smtp\*(rq MTS Suffix" +d263 2 +a264 1 +.SS "SendMail" +d275 2 +a276 1 +.SS "Post Office Protocol" +d290 2 +a291 1 +.SS "BBoards Delivery" +d302 2 +a303 1 +.SS "BBoards & The POP" +d333 2 +a334 1 +.SS "BBoards & The NNTP" +d346 1 +a346 1 + +d354 6 +a359 2 +A value of 0 says to use the flock syscall if you're running on 4.2BSD, +(otherwise use a locking style of 1). +@ + + +2.8 +log +@describe all options, for novice MH administrators +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh-tailor.rf,v 2.7 90/04/05 15:08:18 sources Exp Locker: sources $ +d296 1 +a296 1 +\*(lqbboards:\ pop\*(rq. +d300 1 +a300 1 +popbbhost +d306 1 +a306 1 +popbbuser +d326 1 +a326 1 +\*(lqbboards:\ nntp\*(rq. +@ + + +2.7 +log +@add ID +@ +text +@d2 11 +a12 1 +.\" @@(#)$Id:$ +d36 1 +a36 1 +@@BEGIN: POP +a37 2 +@@END: POP +This has no equivalent in the \fIMH\fR configuration file. +a45 1 +@@BEGIN: MF +a47 7 +uucpchan: name of \fIUUCP\fR channel +.br +Usually \*(lqUUCP\*(rq. +This has no equivalent in the \fIMH\fR configuration file. +@@END: MF + +.ti -.5i +a59 1 +@@BEGIN: MF +a61 15 +uucpldir: /usr/spool/mail +.br +The name of the directory where \fIUUCP\fR maildrops are kept. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +uucplfil: +.br +The name of the maildrop file in the directory where \fIUUCP\fR maildrops are +kept. +If this is empty, the user's login name is used. +This has no equivalent in the \fIMH\fR configuration file. +@@END: MF + +.ti -.5i +a81 1 +@@BEGIN: MF +a83 7 +umincproc: @@(MHETCPATH)/uminc +.br +The path to the program that filters \fIUUCP\fR\-style maildrops to +\fIMMDF\fR\-style maildrops. +@@END: MF + +.ti -.5i +a101 1 +@@BEGIN: MHMTS +d104 58 +d215 5 +a219 2 +@@END: MHMTS +@@BEGIN: SMTP +d221 1 +d256 5 +a260 2 +@@END: SMTP +@@BEGIN: SENDMTS +d262 1 +d267 5 +a271 2 +@@END: SENDMTS +@@BEGIN: POP +d273 1 +d281 5 +a285 2 +@@END: POP +@@BEGIN: BBSERVER +d287 1 +d292 5 +a296 2 +@@END: BBSERVER +@@BEGIN: BPOP +d298 1 +d322 5 +a326 2 +@@END: BPOP +@@BEGIN: NNTP +d328 1 +d334 1 +a334 22 +@@END: NNTP + +.ti -.5i +maildelivery: @@(MHETCPATH)/maildelivery +.br +The name of the system\-wide default \fI\&.maildelivery\fR file. +See \fImhook\fR\0(1) for the details. + +.ti -.5i +everyone: 200 +.br +The highest user\-id which should NOT receive mail addressed to +\*(lqeveryone\*(rq. + +.ti -.5i +noshell: +.br +If set, then each user-id greater than \*(lqeveryone\*(rq +that has a login shell equivalent to the given value (e.g., +\*(lq/bin/csh\*(rq) +indicates that mail for \*(lqeveryone\*(rq should not be sent to them. +This is useful for handling admin, dummy, and guest logins. +@ + + +2.6 +log +@typo +@ +text +@d2 1 +@ + + +2.5 +log +@RAND fixes +@ +text +@d272 1 +a272 1 +nntphost +@ + + +2.4 +log +@put things back, do .NA stuff another way +@ +text +@d309 1 +a309 1 +A value of 1 or 2 specifies that a file should be created whose existance +@ + + +2.3 +log +@changes for "bbhome: none" +@ +text +@d2 2 +a3 2 +.TH MH\-TAILOR 5 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +2.2 +log +@typo +@ +text +@d236 1 +a236 1 +@@BEGIN: BBOARDS +d242 1 +a242 1 +@@END: BBOARDS +@ + + +2.1 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MH\-TAILOR 5 [mh.6] MH +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d2 2 +a3 2 +.SC MH\-TAILOR 5 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d269 8 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mh.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mh.rf,v new file mode 100644 index 0000000..aacafe0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mh.rf,v @@ -0,0 +1,499 @@ +head 1.12; +access; +symbols; +locks; strict; + + +1.12 +date 92.10.28.17.00.27; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.02.09.20.55.28; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 91.01.07.16.56.36; author mh; state Exp; +branches; +next 1.9; + +1.9 +date 90.04.05.15.08.50; author sources; state Exp; +branches; +next 1.8; + +1.8 +date 90.04.02.14.29.43; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.22.23.18.13; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.22.11.31.23; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.21.10.20.31; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.42.02; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.18; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.15.20.28.32; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.15.20.24.55; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.12 +log +@include slocal(1) +move mhparam to (1) +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mh.rf,v 1.11 1992/02/09 20:55:28 jromine Exp jromine $ +.if '\*(ZZ'-man' \{\ +.SC MH 1 +.NA +mh \- Message Handler +.SY +any \fIMH\fR command +.DE +\fIMH\fR is the name of a powerful message handling system. +Rather then being a single comprehensive program, +\fIMH\fR consists of a collection of fairly simple +single-purpose programs to send, receive, save, +and retrieve messages. The user should refer +to the \fIMH User's Manual\fR +and the pages for the \fIMH\fR +programs in the Unix Programmers Manual. + +Unlike \fImail\fR, the standard UNIX mail user interface program, +\fIMH\fR is not a closed system which must be explicitly run, +then exited when you wish to return to the shell. +You may freely intersperse \fIMH\fR commands with other shell commands, +allowing you to read and answer your mail while you have (for example) +a compilation running, +or search for a file or run programs as needed to find the answer to +someone's question before answering their mail. + +The rest of this manual entry is a quick tutorial which will teach you the +basics of \fIMH\fR. +You should read the manual entries for the individual programs for complete +documentation. + +To get started using \fIMH\fR, put the directory +\fB@@(MHBINPATH)\fR on your \fB$PATH\fR. +This is best done in one of the files: +\fB\&.profile\fR, \fB\&.login\fR, or \fB\&.cshrc\fR +in your home directory. +(Check the manual entry for the shell you use, +in case you don't know how to do this.) +Run the \fIinc\fR command. +If you've never used \fIMH\fR before, +it will create the necessary default files and directories after +asking you if you wish it to do so. + +\fIinc\fR moves mail from your system maildrop +into your \fIMH\fR `+inbox' folder, +breaking it up into separate files +and converting it to \fIMH\fR format as it goes. +It prints one line for each message it processes, +containing the from field, the subject field +and as much of the first line of the message as will fit. +It leaves the first message it processes as your current message. +You'll need to run \fIinc\fR each time you wish to incorporate new mail +into your \fIMH\fR file. + +\fIscan\fR prints a list of the messages in your current folder. + +The commands: +\fIshow\fR, \fInext\fR, and \fIprev\fR +are used to read specific messages from the current folder. +\fIshow\fR displays the current message, +or a specific message, which may be specified by its number, +which you pass as an argument to \fIshow\fR. +\fInext\fR and \fIprev\fR display, respectively, +the message numerically after or before the current message. +In all cases, the message displayed becomes the current message. +If there is no current message, +\fIshow\fR may be called with an argument, +or \fInext\fR may be used to advance to the first message. + +\fIrmm\fR (remove message) deletes the current message. +It may be called with message numbers passed as arguments, +to delete specific messages. + +\fIrepl\fR is used to respond to the current message (by default). +It places you in the editor with a prototype response form. +While you're in the editor, +you may peruse the item you're responding to by reading the file \fB@@\fR. +After completing your response, +type \fBl\fR to review it, +or \fBs\fR to send it. + +\fIcomp\fR allows you to compose a message by putting you in the editor on +a prototype message form, +and then lets you send it. + +All the \fIMH\fR commands may be run with the single argument: `\-help', +which causes them to print a list of the arguments they may be invoked with. + +Commands which take a message number as an argument +(\fIscan\fR, \fIshow\fR, \fIrepl\fR, ...) +also take one of the words: +\fIfirst\fR, \fIprev\fR, \fIcur\fR, \fInext\fR, or \fIlast\fR +to indicate (respectively) the first, previous, current, next, or last +message in the current folder (assuming they are defined). + +Commands which take a range of message numbers +(\fIrmm\fR, \fIscan\fR, \fIshow\fR, ...) +also take any of the abbreviations: +.sp +.in +5 +.ti -3 +.I - +- Indicates all messages in the range to , inclusive. The range +.B must +be nonempty. +.sp +.ti -3 +.I :+N +.ti -3 +.I :-N +- Up to +.I N +messages beginning with (or ending with) message +.I num. +.I Num +may be any of the pre-defined symbols: +.I first, prev, cur, next +or +.I last. +.sp +.ti -3 +.I first:N +.ti -3 +.I prev:N +.ti -3 +.I next:N +.ti -3 +.I last:N +- The first, previous, next or last +.I N +messages, if they exist. +.in -5 + +There are many other possibilities such as creating multiple folders for +different topics, and automatically refiling messages according to subject, +source, destination, or content. +These are beyond the scope of this manual entry. + +Following is a list of all the \fIMH\fR commands: +.\} + +.nf +.in .5i +.ta 1.5i +^ali (1)~^\- list mail aliases +^anno (1)~^\- annotate messages +@@BEGIN: BBOARDS +^bbc (1)~^\- check on BBoards +@@BEGIN: BBSERVER +^bbl (1)~^\- manage a BBoard +^bbleader (1)~^\- responsiblities of a BBoard\-leader +@@END: BBSERVER +^bboards (1)~^\- the UCI BBoards facility +@@END: BBOARDS +^burst (1)~^\- explode digests into messages +@@BEGIN: TMA +^cipher (1)~^\- en/de\-cipher txt +@@END: TMA +^comp (1)~^\- compose a message +@@BEGIN: TMA +^decipher (1)~^\- decipher messages +@@END: TMA +^dist (1)~^\- redistribute a message to additional addresses +^folder (1)~^\- set/list current folder/message +^folders (1)~^\- list all folders +^forw (1)~^\- forward messages +^inc (1)~^\- incorporate new mail +^mark (1)~^\- mark messages +^mhl (1)~^\- produce formatted listings of MH messages +^mhmail (1)~^\- send or read mail +^mhook (1)~^\- MH receive\-mail hooks +^mhparam (1)~^\- print MH profile components +^mhpath (1)~^\- print full pathnames of MH messages and folders +^msgchk (1)~^\- check for messages +^msh (1)~^\- MH shell (and BBoard reader) +^next (1)~^\- show the next message +^packf (1)~^\- compress a folder into a single file +^pick (1)~^\- select messages by content +^prev (1)~^\- show the previous message +^prompter (1)~^\- prompting editor front end +^rcvstore (1)~^\- incorporate new mail asynchronously +^refile (1)~^\- file messages in other folders +^repl (1)~^\- reply to a message +^rmf (1)~^\- remove folder +^rmm (1)~^\- remove messages +^scan (1)~^\- produce a one line per message scan listing +^send (1)~^\- send a message +^show (1)~^\- show (list) messages +^slocal (1)~^\- special local mail delivery +^sortm (1)~^\- sort messages +@@BEGIN: TMA +^tma (1)~^\- manipulate the TTI Trusted Mail Agent (TMA) +@@END: TMA +^vmh (1)~^\- visual front\-end to MH +^whatnow (1)~^\- prompting front\-end for send +^whom (1)~^\- report to whom a message would go +.if '\*(ZZ'-man' \{\ +.sp 1 +^mh\-alias (5)~^\- alias file for MH message system +^mh\-format (5)~^\- format file for MH message system +^mh\-mail (5)~^\- message format for MH message system +^mh\-profile (5)~^\- user customization for MH message system +^mh\-sequence (5)~^\- sequence specification for MH message system +.sp 1 +^ap (8)~^\- parse addresses 822\-style +^conflict (8)~^\- search for alias/password conflicts +^dp (8)~^\- parse dates 822\-style +^fmtdump (8)~^\- decode \fIMH\fP format files +^install\-mh (8)~^\- initialize the MH environment +^post (8)~^\- deliver a message +.\} +.fi +.re + +.if '\*(ZZ'-man' \{\ +.Fi +^@@(MHBINPATH)~^directory containing \fIMH\fR commands +^@@(MHETCPATH)~^\fIMH\fR library +.Sa +\fIThe RAND \fIMH\fR Message Handling System: User's Manual\fR, +.br +\fIThe RAND \fIMH\fR Message Handling System: Tutorial\fR, +.br +\fIThe RAND \fIMH\fR Message Handling System: The UCI BBoards Facility\fR, +.br +\fIMH.5: How to process 200 messages a day and still get some real work +done\fR +.br +.Bu +If problems are encountered with an \fIMH\fR program, +the problems should be reported to the local maintainers of \fIMH\fR. +When doing this, +the name of the program should be reported, +along with the version information for the program. +.br +To find out what version of an \fIMH\fR program is being run, +invoke the program with the `\-help' switch. +In addition to listing the syntax of the command, +the program will list information pertaining to its version. +This information includes the version of \fIMH\fR, +the host it was generated on, +and the date the program was loaded. +A second line of information, +found on versions of \fIMH\fR after #5.380 include \fIMH\fR configuration +options. +For example, + +.nf +.in +.5i +version: MH 6.1 #1[UCI] (glacier) of Wed Nov 6 01:13:53 PST 1985 +options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP] +.in -.5i +.fi + +The `6.1 #1[UCI]' indicates that the program is from the UCI \fIMH.6.1\fR +version of \fIMH\fR. +The program was generated on the host `glacier' on +`Wed Nov 6 01:13:53 PST 1985'. +It's usually a good idea to send the output of the `\-help' switch along +with your report. + +If there is no local \fIMH\fR maintainer, +try the address \fBBug-MH\fR. +If that fails, use the Internet mailbox \fBBug-MH@@ICS.UCI.EDU\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.\" .Ps +.\" for each additional profile entry +.\" .Sa +.\" the see\-also's go here +.\" .De +.\" the first default goes here +.\" .Ds +.\" for each additional default +.\" .Co +.\" context changes go here +.\" You can also have +.\" .Hh \- the helpful hints section +.\" .Hi \- the history section +.\" .Bu \- the bugs section +.En +.\} +@ + + +1.11 +log +@add mhparam/fmtdump +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh.rf,v 1.10 1991/01/07 16:56:36 mh Exp jromine $ +d173 1 +d190 1 +a210 1 +^mhparam (8)~^\- print MH profile components +@ + + +1.10 +log +@add mh-sequence +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mh.rf,v 1.9 90/04/05 15:08:50 sources Exp Locker: mh $ +d207 1 +d209 1 +@ + + +1.9 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d202 1 +@ + + +1.8 +log +@RAND fixes +@ +text +@d2 1 +@ + + +1.7 +log +@typo +@ +text +@d216 1 +a216 1 +\fIThe Rand \fIMH\fR Message Handling System: User's Manual\fR, +d218 1 +a218 1 +\fIThe Rand \fIMH\fR Message Handling System: Tutorial\fR, +d220 1 +a220 1 +\fIThe Rand \fIMH\fR Message Handling System: The UCI BBoards Facility\fR, +@ + + +1.6 +log +@put things back, do .NA stuff another way +@ +text +@a279 1 +.En +@ + + +1.5 +log +@changes for "bbhome: none" +@ +text +@d3 2 +a4 2 +.TH MH 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d6 1 +a6 1 +.SH .SY +@ + + +1.4 +log +@typo +@ +text +@d149 1 +d152 1 +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d3 1 +a3 1 +.TH MH 1 [mh.6] MH +@ + + +1.2 +log +@add bug reporting section +@ +text +@d3 2 +a4 2 +.SC MH 1 +.NA +d6 1 +a6 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d223 55 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mhl.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mhl.rf,v new file mode 100644 index 0000000..b230aeb --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mhl.rf,v @@ -0,0 +1,471 @@ +head 1.11; +access; +symbols; +locks; strict; + + +1.11 +date 92.12.04.18.59.22; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.11.18.00.45.57; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.11.18.00.27.02; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.10.26.17.05.53; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 90.04.05.15.10.28; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.28.16.07.45; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.24; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.42.03; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.19; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.10.31.28; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.10.27.56; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.11 +log +@typo +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mhl.rf,v 1.10 1992/11/18 00:45:57 jromine Exp jromine $ +.SC MHL 1 +.NA +mhl \- produce formatted listings of MH messages +.SY +@@(MHETCPATH)/mhl +\%[\-bell] \%[\-nobell] +\%[\-clear] \%[\-noclear] +\%[\-folder\ +folder] +\%[\-form\ formfile] +\%[\-length\ lines] \%[\-width\ columns] +\%[\-moreproc\ program] \%[\-nomoreproc] +\%[files\ ...] +\%[\-help] +.DE +\fIMhl\fR is a formatted message listing program. +It can be used as a replacement for \fImore\fR\0(1) +(the default \fIshowproc\fR\0). +As with \fImore\fR, +each of the messages specified as arguments (or the standard input) will be +output. +If more than one message file is specified, +the user will be prompted prior to each one, +and a or will begin the output, +with clearing the screen (if appropriate), +and (usually CTRL\-D) suppressing the screen clear. +An (usually CTRL\-C) will abort the current message output, +prompting for the next message (if there is one), +and a (usually CTRL-\\) will terminate the program (without core dump). + +The `\-bell' option tells \fImhl\fR to ring the terminal's bell at the end of each page, +while the `\-clear' option tells \fImhl\fR to clear the scree at the end of +each page (or output a formfeed after each message). +Both of these switches (and their inverse counterparts) +take effect only if the profile entry \fImoreproc\fR is defined but empty, +and \fImhl\fR is outputting to a terminal. +If the \fImoreproc\fR entry is defined and non-empty, +and \fImhl\fR is outputting to a terminal, +then \fImhl\fR will cause the \fImoreproc\fR to be placed between the +terminal and \fImhl\fR and the switches are ignored. +Furthermore, +if the `\-clear' switch is used and \fImhl's\fR output is directed to a +terminal, +then \fImhl\fR will consult the \fB$TERM\fR and \fB$TERMCAP\fR +envariables to determine the user's +terminal type in order to find out how to clear the screen. +If the `\-clear' switch is used and \fImhl's\fR output is not directed to +a terminal (e.g., a pipe or a file), +then \fImhl\fR will send a formfeed after each message. + +To override the default \fImoreproc\fR and the profile entry, +use the `\-moreproc\ program' switch. +Note that \fImhl\fR will never start a \fImoreproc\fR if invoked on a +hardcopy terminal. + +The `\-length\ length' and `\-width\ width' switches set the screen length and +width, respectively. +These default to the values indicated by \fB$TERMCAP\fR, +if appropriate, +otherwise they default to 40 and 80, respectively. + +The default format file used by \fImhl\fR is called \fImhl.format\fR +(which is first searched for in the user's \fIMH\fR directory, +and then sought in the \fI@@(MHETCPATH)\fR directory), +this can be changed by using the `\-form\ formatfile' switch. + +Finally, +the `\-folder\ +folder' switch sets the \fIMH\fR folder name, +which is used for the \*(lqmessagename:\*(rq field described below. +The envariable \fB$mhfolder\fR is consulted for the default value, +which \fIshow\fR, \fInext\fR, and \fIprev\fR initialize appropriately. + +\fIMhl\fR operates in two phases: +1) read and parse the format file, +and 2) process each message (file). +During phase 1, +an internal description of the format is produced as a structured list. +In phase 2, +this list is walked for each message, +outputting message information under the format constraints from the format +file. + +The \*(lqmhl.format\*(rq form file contains information controlling +screen clearing, screen size, wrap\-around control, transparent text, +component ordering, and component formatting. +Also, a list of components to ignore may be specified, +and a couple of \*(lqspecial\*(rq components are defined to provide added +functionality. +Message output will be in the order specified by the order in the format file. + +Each line of mhl.format has one of the formats: + + ;comment + :cleartext + variable[,variable...] + component:[variable,...] + +A line beginning with a `;' is a comment, and is ignored. +A line beginning with a `:' is clear text, +and is output exactly as is. +A line containing only a `:' produces a blank line in the output. +A line beginning with \*(lqcomponent:\*(rq defines the format for the specified +component, +and finally, remaining lines define the global environment. + +For example, the line: + +.ti +.5i +width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5 + +defines the screen size to be 80 columns by 40 rows, +specifies that the screen should be cleared prior to each page, +that the overflow indentation is 5, +and that overflow text should be flagged with \*(lq***\*(rq. + +Following are all of the current variables and their arguments. +If they follow a component, +they apply only to that component, +otherwise, their affect is global. +Since the whole format is parsed before any output processing, +the last global switch setting for a variable applies to the whole message +if that variable is used in a global context +(i.e., bell, clearscreen, width, length). + +.nf +.in +.5i +.ta \w'noclearscreen 'u +\w'integer/G 'u +\fIvariable\fR \fItype\fR \fIsemantics\fR +width integer screen width or component width +length integer screen length or component length +offset integer positions to indent \*(lqcomponent: \*(rq +overflowtext string text to use at the beginning of an + overflow line +overflowoffset integer positions to indent overflow lines +compwidth integer positions to indent component text + after the first line is output +uppercase flag output text of this component in all + upper case +nouppercase flag don't uppercase +clearscreen flag/G clear the screen prior to each page +noclearscreen flag/G don't clearscreen +bell flag/G ring the bell at the end of each page +nobell flag/G don't bell +component string/L name to use instead of \*(lqcomponent\*(rq for + this component +nocomponent flag don't output \*(lqcomponent: \*(rq for this + component +center flag center component on line (works for + one\-line components only) +nocenter flag don't center +leftadjust flag strip off leading whitespace on each + line of text +noleftadjust flag don't leftadjust +compress flag change newlines in text to spaces +nocompress flag don't compress +split flag don't combine multiple fields into a single field +nosplit flag combine multiple fields into a single field +newline flag print newline at end of components (default) +nonewline flag don't print newline at end of components +formatfield string format string for this component (see below) +addrfield flag field contains addresses +datefield flag field contains dates +.re +.in -.5i +.fi + +To specify the value of integer\-valued and string\-valued variables, +follow their name with an equals\-sign and the value. +Integer\-valued variables are given decimal values, +while string\-valued variables are given arbitrary text bracketed by +double\-quotes. +If a value is suffixed by \*(lq/G\*(rq or \*(lq/L\*(rq, +then its value is useful in a global\-only or local\-only context +(respectively). + +A line of the form: + + ignores=component,... + +specifies a list of components which are never output. + +The component \*(lqMessageName\*(rq (case\-insensitive) +will output the actual message name (file name) preceded by +the folder name if one is specified or found in the environment. +The format is identical to that produced by the `\-header' option to +\fIshow\fR. + +The component \*(lqExtras\*(rq will output all of the components of the message +which were not matched by explicit components, +or included in the ignore list. +If this component is not specified, +an ignore list is not needed since all non\-specified components will be +ignored. + +If \*(lqnocomponent\*(rq is NOT specified, then the component name will be +output as it appears in the format file. + +The default format is: + +.nf +.in +.5i +.ne 15 +.eo +.so @@(MHETCPATH)/mhl.format +.ec +.in -.5i +.fi + +The variable \*(lqformatfield\*(rq specifies a format string +(see \fImh\-format\fR\0(5)). +The flag variables \*(lqaddrfield\*(rq and \*(lqdatefield\*(rq +(which are mutually exclusive), +tell \fImhl\fR to interpret the escapes in the format string +as either addresses or dates, respectively. + +By default, +\fImhl\fR does not apply any formatting string to fields containing address or +dates (see \fImh\-mail\fR\0(5) for a list of these fields). +Note that this results in faster operation +since \fImhl\fR must parse both addresses and dates in order to apply a +format string to them. +If desired, +\fImhl\fR can be given a default format string for either address or date +fields (but not both). +To do this, +on a global line specify: either the flag addrfield or datefield, +along with the apropriate formatfield variable string. +.Fi +^@@(MHETCPATH)/mhl.format~^The message template +^or /mhl.format~^Rather than the standard template +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^moreproc:~^Program to use as interactive front\-end +.Sa +show(1), ap(8), dp(8) +.De +`\-bell' +.Ds +`\-noclear' +.Ds +`\-length 40' +.Ds +`\-width 80' +.Co +None +.Bu +There should be some way to pass `bell' and `clear' information to the +front\-end. + +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. + +The \*(lqnonewline\*(rq option interacts badly +with \*(lqcompress\*(rq and \*(lqsplit\*(rq. +.En +@ + + +1.10 +log +@restore indent +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhl.rf,v 1.9 1992/11/18 00:27:02 jromine Exp jromine $ +d254 1 +a254 1 +The \*(lqnonewline\(*rq option interacts badly +@ + + +1.9 +log +@document "newline" and "nonewline" +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhl.rf,v 1.8 1992/10/26 17:05:53 jromine Exp jromine $ +d127 1 +a127 1 +.in +.25i +@ + + +1.8 +log +@typo fix from Jerry Peek +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhl.rf,v 1.7 1990/04/05 15:10:28 sources Exp jromine $ +d127 1 +a127 1 +.in +.5i +d159 2 +d253 3 +@ + + +1.7 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d169 1 +a169 1 +while string\-valued variables are given arbirtray text bracketed by +@ + + +1.6 +log +@use formatstrings on any field +@ +text +@d2 1 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d208 1 +a208 2 +(see \fImh\-format\fR\0(5)), which may be used only on +address and date header components. +d211 2 +a212 1 +control the interpretation of the escapes. +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MHL 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MHL 1 [mh.6] MH +@ + + +1.2 +log +@make formatfield interpretation clearer +@ +text +@d2 2 +a3 2 +.SC MHL 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d158 1 +a158 1 +formatfield string format string for this component +d208 3 +a210 2 +(see \fImh\-format\fR(5)). +The variables \*(lqaddrfield\*(rq and \*(lqdatefield\*(rq +d224 2 +a225 3 +on a global line +specify either the variable addrfield or the variable datefield, +along with the variable formatfield. +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mhmail.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mhmail.rf,v new file mode 100644 index 0000000..2e7c74f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mhmail.rf,v @@ -0,0 +1,151 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.13.18; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.25; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.04; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.20; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.02; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC MHMAIL 1 +.NA +mhmail \- send or read mail +.SY +mhmail +\%[ +addrs\ ... +\%[\-body\ text] +\%[\-cc\ addrs\ ...] +\%[\-from\ addr] +\%[\-subject subject]] +\%[\-help] +.DE +\fIMHmail\fR +is intended as a replacement for the standard Bell mail program +(\fIbellmail\fR\0(1)), compatible with \fIMH\fR. +When invoked without arguments, it simply +invokes \fIinc\fR\0(1) +to incorporate new messages from the user's maildrop. +When one or more users is specified, a message is read from +the standard input and spooled to a temporary file. +\fIMHmail\fR then invokes \fIpost\fR\0(8) +with the name of the temporary file as +its argument to deliver the message to the specified user. + +The `\-subject\ subject' switch can be used to specify the \*(lqSubject:\*(rq field +of the message. The `\-body\ text' switch can be used to specify the text of +the message; if it is specified, then the standard input is not read. +Normally, addresses appearing as arguments are put in the \*(lqTo:\*(rq field. +If the `\-cc' switch is used, all addresses following it are placed in the +\*(lqcc:\*(rq field. + +By using `\-from\ addr', +you can specify the \*(lqFrom:\*(rq header of the draft. +Naturally, +\fIpost\fR will fill\-in the \*(lqSender:\*(rq header correctly. + +This program is intended for the use of programs +such as \fIat\fR\0(1), which expect +to send mail automatically to various users. +Normally, real people (as opposed to the \*(lqunreal\*(rq ones) +will prefer to use \fIcomp\fR\0(1) and \fIsend\fR\0(1) to send messages. +.Fi +^@@(MHBINPATH)/inc~^Program to incorporate a maildrop into a folder +^@@(MHETCPATH)/post~^Program to deliver a message +^/tmp/mhmail*~^Temporary copy of message +.Pr +None +.Sa +inc(1), post(8) +.De +None +.Co +If \fIinc\fR is invoked, then \fIinc\fR's context changes occur. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MHMAIL 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MHMAIL 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MHMAIL 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mhn.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mhn.rf,v new file mode 100644 index 0000000..59df99b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mhn.rf,v @@ -0,0 +1,1767 @@ +head 1.14; +access; +symbols; +locks; strict; +comment @# @; + + +1.14 +date 93.10.26.20.12.56; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 93.10.26.16.23.27; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 93.10.26.16.02.50; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 93.09.09.22.32.07; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 93.09.01.20.49.46; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 93.08.20.15.42.08; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.12.10.23.59.10; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.11.16.22.31.42; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.11.02.16.58.55; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.10.26.16.55.42; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.10.20.20.30.08; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 92.10.16.17.12.29; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 92.03.03.17.13.54; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.01.31.16.26.38; author jromine; state Exp; +branches; +next ; + + +desc +@multimedia MH +@ + + +1.14 +log +@fixup re: content-id +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mhn.rf,v 1.13 1993/10/26 16:23:27 jromine Exp jromine $ +.SC MHN 1 +.NA +mhn \- multi-media MH +.SY +mhn +\%[\%[+folder] \%[msgs] | \%[\-file\0file]] +.br +\%[\-part\0number]... \%[\-type\0content]... +.br +\%[\-list\0\%[\-headers]\0\%[\-noheaders] +.br + \%[\-realsize]\0\%[\-norealsize]] \%[-nolist] +.br +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly] +.br + \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow] +.br +\%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore] +.br +\%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy] +.br +\%[\-check]\0\%[\-nocheck] +.br +\%[\-ebcdicsafe]\0\%[\-noebcdicsafe] +.br +\%[\-rfc934mode]\0\%[\-norfc934mode] +.br +\%[\-verbose]\0\%[\-noverbose] +.br +\%[\-help] +.DE +The \fImhn\fR command manipulates multi-media messages as specified in +RFC 1521. + +Four action switches direct the operation of \fImhn\fR, +namely `\-list', `\-show', `\-store', and `-cache'. +Any of these switches may be used concurrently. +Normally these action switches will operate on the content of each of the +named messages. +However, +by using the `\-part' and `\-type' switches, +the scope of the operation can be focused on particular +subparts (of a multipart content) and/or particular content types. + +A part specification consists of a series of numbers separated by dots. +For example, +in a multipart content containing three parts, +these would be named as 1, 2, and 3, respectively. +If part 2 was also a multipart content containing two parts, +these would be named as 2.1 and 2.2, respectively. +Note that the `\-part' switch is effective for only messages +containing a multipart content. +If a message has some other kind of content, +or if the part is itself another multipart content, +the `\-part' switch will not prevent the content from being acted upon. + +A content specification consists of a content type and a subtype. +The initial list of \*(lqstandard\*(rq content types and subtypes can be found +in RFC 1521. +.ne 18 +A list of commonly used contents is briefly reproduced here: +.sp +.nf +.in +.5i +.ta \w'application 'u +Type Subtypes +---- -------- +text plain +multipart mixed, alternative, digest, parallel +message rfc822, partial, external-body +application octet-stream, postscript +image jpeg, gif, x-pbm, x-pgm, x-ppm, x-xwd +audio basic +video mpeg +.re +.in -.5i +.fi +.sp +Subtypes are mandatory. +.PP +To specify a content, +regardless of its subtype, +just use the name of the content, +e.g., +\*(lqaudio\*(rq. +To specify a specific subtype, +separate the two with a slash, +e.g., +\*(lqaudio/basic\*(rq. +Note that regardless of the values given to the `\-type' switch, +a multipart content (of any subtype listed above) is always acted upon. +Further note that if the `\-type' switch is used, +and it is desirable to act on a message/external-body content, +then the `\-type' switch must be used twice: +once for message/external-body and once for the content externally referenced. + +Each content may optionally have an integrity check associated with it. +If present and the `-check' switch is given, +then \fImhn\fR will attempt to verify the integrity of the content. + +The option `\-file\ file' directs \fImhn\fR to use the specified +file as the source message, rather than a message from +a folder. +Note that the file should be a validly formatted message, +just like any other \fIMH\fR message. +It should \fBNOT\fR be in mail drop format +(to convert a file in mail drop format to a folder of \fIMH\fR messages, +see \fIinc\fR\0(1)). + +.Uh "Listing the Contents" +The `\-list' switch tells \fImhn\fR to list the table of contents +associated with the named messages. +The `\-headers' switch indicates that a one-line banner should be +displayed above the listing. +The `\-realsize' switch tells \fImhn\fR to evaluate the \*(lqnative\*(rq +(decoded) format of each content prior to listing. +This provides an accurate count at the expense of a small delay. + +.Uh "Showing the Contents" +The `\-show' switch tells \fImhn\fR to display the contents of the named +messages. +The headers of the message are displayed with the \fImhlproc\fR, +using format file \fImhl.headers\fR. +(The choice of format file can be overridden by the `\-form\0formfile' switch.) + +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be displayed. +This is accomplished by consulting a display string, +and executing it under \fB/bin/sh\fR, +with the standard input set to the content. +.ne 16 +The display string may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%F 'u +%a additional arguments +%e exclusive execution +%f filename containing content +%F %e, %f, and stdin is terminal not content +%l display listing prior to displaying content +%p %l, and ask for confirmation +%s subtype +%d content description +.re +.in -.5i +.fi +.sp +For those display strings containing the e- or F-escape, +\fImhn\fR will execute at most one of these at any given time. +Although the F-escape expands to be the filename containing the content, +the e-escape has no expansion as far as the shell is concerned. + +When the p-escape prompts for confirmation, +typing INTR (usually control-C) will tell \fImhn\fR not to display +that content. +(The p-escape can be disabled by specifying `\-nopause'.) +Further, +when \fImhn\fR is display a content, +typing QUIT (usually control-\\) will tell \fImhn\fR to wrap things up +immediately. + +Note that if the content being displayed is multipart, +but not one of the subtypes listed above, +then the f- and F-escapes expand to multiple filenames, +one for each subordinate content. +Further, +stdin is not redirected from the terminal to the content. + +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-show-/ +.in -.5i +.sp +to determine the command to use to display the content. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-show- +.in -.5i +.sp +to determine the display command. +.ne 10 +If this isn't found, +\fImhn\fR has two default values: +.sp +.nf +.in +.5i +mhn-show-text/plain: %pmoreproc '%F' +mhn-show-message/rfc822: %pshow -file '%F' +.in -.5i +.fi +.sp +If neither apply, +\fImhn\fR will check to see if the message has a application/octet-stream +content with parameter \*(lqtype=tar\*(rq. +If so, +\fImhn\fR will use an appropriate command. +If not, +\fImhn\fR will complain. + +.ne 10 +Example entries might be: +.sp +.nf +.in +.5i +mhn-show-audio/basic: raw2audio 2>/dev/null | play +mhn-show-image: xv '%f' +mhn-show-application/PostScript: lpr -Pps +.in -.5i +.fi +.sp +Note that when using the f- or F-escape, +it's a good idea to use single-quotes around the escape. +This prevents misinterpretation by the shell of any funny characters +that might be present in the filename. + +Because the text content might be in a non-ASCII character set, +when \fImhn\fR encounters a \*(lqcharset\*(rq parameter for this content, +it checks to see whether the environment variable $MM_CHARSET is set +and whether the value of this environment variable is equal to the value of +the charset parameter. +If not, +then +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-charset- +.in -.5i +.sp +which should contain a command creating an environment to render the +character set. +This command string should containing a single \*(lq%s\*(rq, +which will be filled-in with the command to display the content. + +An example entry might be: +.sp +.in +.5i +mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-120-*-*-c-*-iso8859-*' -e %s +.in -.5i +.sp +Note that many pagination programs strip off the high-order bit. +However, +newer releases of the \fIless\fR program have modest support for +single-octet character sets. +The source to \fIless\fR version 177, +which has such support, +is found in the MH source tree under \fBmiscellany/less-177\fR. +In order to view messages sent in the ISO 8859/1 character set using +\fIless\fR, +.ne 9 +put these lines in your \&.login file: +.sp +.nf +.in +.5i +setenv LESSCHARSET latin1 +setenv LESS "-f" +.in -.5i +.fi +.sp +The first line tells \fIless\fR to use 8859/1 definition for determing +whether a character is \*(lqnormal\*(rq, \*(lqcontrol\*(lq, or +\*(lqbinary\*(rq. +The second line tells \fIless\fR not to warn you if it encounters a +file that has non-ASCII characters. +Then, +simply set the \fBmoreproc\fR profile entry to \fIless\fR, +and it will get called automatically. +(To handle other single-octet character sets, +look at the \fIless\fR\0(1) manual entry for information about the +\fBLESSCHARDEF\fR environment variable.) + +Finally, +\fImhn\fR will process each message serially\0--\0it won't start showing +the next message until all the commands executed to display the +current message have terminated. +In the case of a multipart content (of any subtype listed above), +the content contains advice indicating if the parts should be +displayed serially or in parallel. +Because this may cause confusion, +particularly on uni-window displays, +the `\-serialonly' switch can be given to tell \fImhn\fR to never +display parts in parallel. + +.Uh "Storing the Contents" +The `\-store' switch tells \fImhn\fR to store the contents of the +named messages in \*(lqnative\*(rq (decoded) format. +Two things must be determined: +the directory to store the content, +and the filenames. +Files are written in the directory given by the \fBmhn-storage\fR +profile entry, +.ne 6 +e.g., +.sp +.in +.5i +mhn-storage: /tmp +.in -.5i +.sp +If this entry isn't present, +the current working directory is used. + +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be stored. +This is achieved through the use of a formatting string, +.ne 13 +which may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%P 'u +%m message number +%P .part +%p part +%s subtype +.re +.in -.5i +.fi +.sp +If the content isn't part of a multipart (of any subtype listed above) content, +the p-escapes are ignored. +Note that if the formatting string starts with a \*(lq+\*(rq character, +then these escapes are ignored, +and the content is stored in the named folder. +(A formatting string consisting solely of a \*(lq+\*(rq character +indicates the current folder.) +Further, +a formatting string consisting solely of a \*(lq-\*(rq character +indicates the standard-output. + +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-store-/ +.in -.5i +.sp +to determine the formatting string. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-store- +.in -.5i +.sp +to determine the formatting string. +If this isn't found, +\fImhn\fR will check to see if the content is application/octet-stream +with parameter \*(lqtype=tar\*(rq. +If so, +\fImhn\fR will choose an appropriate filename. +If the content is not application/octet-stream, +then \fImhn\fR will check to see if the content is a message. +If so, +\fImhn\fR will use the value \*(lq+\*(rq. +If not, +\fImhn\fR will use the value \*(lq%m%P.%s\*(rq. + +Note that if the formatting string starts with a '/', +then content will be stored in the full path given +(rather than using the value of \fBmhn-storage\fR or the current working +directory.) +Similarly, +if the formatting string starts with a '|', +then \fImhn\fR will execute a command which should ultimately store +the content. +Note that before executing the command, +\fImhn\fR will change to the appropriate directory. +Also note that if the formatting string starts with a '|', +then \fImhn\fR will also honor the a-escape when processing the +formatting string. + +.ne 10 +Example entries might be: +.sp +.nf +.in +.5i +mhn-store-text: %m%P.txt +mhn-store-audio/basic: | raw2audio -e ulaw -s 8000 -c 1 > %m%P.au +mhn-store-application/PostScript: %m%P.ps +.in -.5i +.fi +.sp +Further, +note that when asked to store a content containing a partial message, +\fImhn\fR will try to locate all of the portions and combine them accordingly. +Thus, +if someone's sent you a message in several parts, +you might put them all in their own folder and do: +.sp +.in +.5i +mhn all -store +.in -.5i +.sp +This will store exactly one message, +containing the sum of the parts. +Note that if \fImhn\fR can not locate each part, +it will not store anything. + +Finally, +if the `\-auto' switch is given and the content contains information +indicating the filename the content should be stored as +(and if the filename doesn't begin with a '/'), +then the filename from the content will be used instead. + +.Uh "External Access" +For contents of type message/external-body, +.ne 12 +\fImhn\fR supports these access-types: +.sp +.nf +.in +.5i +afs +anon-ftp +ftp +local-file +mail-server +.in -.5i +.fi +.sp +For the \*(lqanon-ftp\*(rq and \*(lqftp\*(rq access types, +if your system supports a SOCKETs interface to TCP/IP, +then \fImhn\fR will use a built-in FTP client. +Otherwise, +\fImhn\fR will look for the \fBmhn-access-ftp\fR profile entry, +.ne 6 +e.g., +.sp +.in +.5i +mhn-access-ftp: myftp.sh +.in -.5i +.sp +to determine the pathname of a program to perform the FTP retrieval. +.ne 14 +This program is invoked with these arguments: +.sp +.nf +.in +.5i +domain name of FTP-site +username +password +remote directory +remote filename +local filename +\*(lqascii\*(rq or \*(lqbinary\*(rq +.in -.5i +.fi +.sp +The program should terminate with a zero-valued exit-status if the +retrieval is successful. + +.Uh "The Content Cache" +When \fImhn\fR encounters an external content containing a +\*(lqContent-ID:\*(rq field, +and if the content allows caching, +then depending on the caching behavior of \fImhn\fR, +the content might be read from or written to a cache. + +The caching behavior of \fImhn\fR is controlled with +the `\-rcache' and `\-wcache' switches, +which define the policy for reading from, +and writing to, +the cache, respectively. +One of four policies may be specified: +\*(lqpublic\*(rq, +indicating that \fImhn\fR should make use of a +publically-accessible content cache; +\*(lqprivate\*(rq, +indicating that \fImhn\fR should make use of the user's +private content cache; +\*(lqnever\*(rq, +indicating that \fImhn\fR should never make use of caching; +and, +\*(lqask\*(rq, +indicating that \fImhn\fR should ask the user. + +There are two directories where contents may be cached: +the profile entry \fBmhn-cache\fR names a directory containing +world-readable contents, +and, +the profile entry \fBmhn-private-cache\fR names a directory containing +private contents. +The former should be an absolute (rooted) directory name. +.ne 6 +For example, +.sp +.in +.5i +mhn-cache: /tmp +.in -.5i +.sp +might be used if you didn't care that the cache got wiped after each reboot +of the system. +The latter is interpreted relative to the user's MH directory, +if not rooted, +.ne 6 +e.g., +.sp +.in +.5i +mhn-private-cache: .cache +.in -.5i +.sp +(which is the default value). + +.Uh "Caching the Contents" +When you encounter a content of type message/external-body with access type +\*(lqmail-server\*(rq, +\fImhn\fR will ask you if may send a message to a mail-server +requesting the content, +.ne 14 +e.g., +.sp +.nf +.in +.5i +% show 1 +Retrieve content by asking mail-server@@... + +SEND file + +? yes +mhn: request sent +.in -.5i +.fi +.sp +Regardless of your decision, +\fImhn\fR can't perform any other processing on the content. + +However, +if \fImhn\fR is allowed to request the content, +then when it arrives, +there should be a top-level \*(lqContent-ID:\*(rq field which +corresponds to the value in the original message/external-body content. +You should now use the `-cache' switch to tell \fImhn\fR to enter the +arriving content into the content cache, +.ne 8 +e.g., +.sp +.nf +.in +.5i +% mhn -cache 2 +caching message 2 as file ... +.in -.5i +.fi +.sp +You can then re-process the original message/external-body content, +and \*(lqthe right thing should happen\*(rq, +.ne 8 +e.g., +.sp +.nf +.in +.5i +% show 1 +\0... +.in -.5i +.fi + +.Uh "Composing the Contents" +The \fImhn\fR program can also be used as a simple editor to aid in +composing multi-media messages. +When invoked by a \fIwhatnow\fR program, +\fImhn\fR will expect the body of the draft to be formatted as an +\*(lq\fImhn\fR composition file.\*(rq + +.ne 59 +The syntax of this is straight-forward: +.sp +.nf +.in +.5i + body ::= 1*(content | EOL) + + content ::= directive | plaintext + + directive ::= "#" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "<" id ">" ] + [ "[" description "]" ] + [ filename ] + EOL + + | "#@@" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "<" id ">" ] + [ "[" description "]" ] + external-parameters + EOL + + | "#forw" + [ "<" id ">" ] + [ "[" description "]" ] + [ "+"folder ] [ 0*msg ] + EOL + + | "#begin" + [ "<" id ">" ] + [ "[" description "]" ] + [ "alternative" + | "parallel" + | something-else ] + EOL + 1*body + "#end" EOL + + plaintext ::= [ "Content-Description:" + description EOL EOL ] + 1*line + [ "#" EOL ] + + | "#<" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "[" description "]" ] + EOL + 1*line + [ "#" EOL ] + + line ::= "##" text EOL + -- interpreted as "#"text EOL + | text EOL +.in -.5i +.fi +.sp +Basically, +the body contains one or more contents. +A content consists of either a directive, +indicated with a \*(lq#\*(rq as the first character of a line; +or, +plaintext (one or more lines of text). +The continuation character, \*(lq\\\*(lq, may be used to enter a single +.ne 11 +directive on more than one line, +e.g., +.sp +.nf +.in +.5i +#@@application/octet-stream; \\ + type=tar; \\ + x-conversions=compress +.in -.5i +.fi +.sp +There are four kinds of directives: +\*(lqtype\*(rq directives, +which name the type and subtype of the content; +\*(lqexternal-type\*(rq directives, +which also name the type and subtype of the content; +the \*(lqforw\*(rq directive, +which is used to forward a digest of messages; +and, +the \*(lqbegin\*(rq directive, +which is used to create a multipart content. + +For the type directives, +the user may optionally specify the name of a file containing the +contents in \*(lqnative\*(rq (decoded) format. +(If the filename starts with the \*(lq|\*(rq character, +then this gives a command whose output is captured accordingly.) +If a filename is not given, +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be composed. +This is accomplished by consulting a composition string, +and executing it under \fB/bin/sh\fR, +with the standard output set to the content. +.ne 13 +The composition string may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%P 'u +%a additional arguments +%f filename containing content +%F %f, and stdout is not re-directed +%s subtype +.re +.in -.5i +.fi +.sp +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-compose-/ +.in -.5i +.sp +to determine the command to use to compose the content. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-compose- +.in -.5i +.sp +to determine the composition command. +If this isn't found, +\fImhn\fR will complain. + +An example entry might be: +.sp +.in +.5i +mhn-compose-audio/basic: record | raw2audio -F +.in -.5i +.sp +Because commands like these will vary, +depending on the display environment used for login, +composition strings for different contents should probably be put in +the file specified by the \fB$MHN\fR environment variable, +instead of directly in your user profile. + +The external-type directives are used to provide a reference to a content, +rather than enclosing the contents itself. +Hence, +instead of providing a filename as with the type directives, +external-parameters are supplied. +These look like regular parameters, +.ne 15 +so they must be separated accordingly, +e.g., +.sp +.nf +.in +.5i +#@@application/octet-stream; \\ + type=tar; \\ + x-conversions=compress [] \\ + access-type=anon-ftp; \\ + name="mh-mime.tar.Z"; \\ + directory="mrose/mh-mime"; \\ + site="ftp.ics.uci.edu" +.in -.5i +.fi +.sp +By specifying \*(lq[]\*(rq, +an empty description string is given, +and the start of the external-parameters is identified. +.ne 19 +These parameters are of the form: +.sp +.nf +.in +.5i +.ta \w'access-type= 'u +access-type= usually \fIanon-ftp\fR or \fImail-server\fR +name= filename +permission= read-only or read-write +site= hostname +directory= directoryname (optional) +mode= usually \fIascii\fR or \fIimage\fR (optional) +size= number of octets +server= mailbox +subject= subject to send +body= command to send for retrieval +.re +.in -.5i +.fi +.sp + +For the forw directive, +the user may optionally specify the name of the folder and which +messages are to be forwarded. +if a folder is not given, +it defaults to the current folder. +Similarly, +if a message is not given, +it defaults to the current message. +Hence, +the forw directive is similar to the \fIforw\fR\0(1) command, +except that the former uses the MIME rules for encapsulation +rather than those specified in RFC 934. +Usage of the `\-rfc934mode' switch indicates whether \fImhn\fR should +attempt to utilize the encapsulation rules in such a way as to appear +that RFC 934 is being used. +If given, +then RFC 934-compliant user-agents should be able to burst the message on +reception\0--\0providing that the messages being encapsulated do not +contain encapsulated messages themselves. +The drawback of this approach is that the encapsulations are generated +by placing an extra newline at the end of the body of each message. + +For the begin directive, +the user must specify at least one content between +the begin and end pairs. + +For all of these directives, +the user may include a brief description of the content between +the \*(lq[\*(rq character and the \*(lq]\*(rq character. +By default, +\fImhn\fR will generate a unique \*(lqContent-ID:\*(rq for each directive; +however, +the user may override this by defining the ID using the +\*(lq<\*(rq and \*(lq>\*(rq characters. +Putting this all together, +.ne 15 +here is a brief example of what a user's components file might look like: +.sp +.nf +.in +.5i +To: +cc: +Subject: +-------- +#audio/basic [Flint phone] \\ + |raw2audio -F < /home/mrose/lib/multi-media/flint.au +#image/gif [MTR's photo] \\ + /home/mrose/lib/multi-media/mrose.gif +.in -.5i +.fi +.sp +For a later example, +we'll call this components file \fImhncomps\fR. + +As noted earlier, +in addition to directives, +plaintext can be present. +Plaintext is gathered, +until a directive is found or the draft is exhausted, +and this is made to form a text content. +If the plaintext must contain a \*(lq#\*(rq at the beginning of a line, +simply double it, +.ne 6 +e.g., +.sp +.in +.5i +##when sent, this line will start with only one # +.in -.5i +.sp +If you want to end the plaintext prior to a directive, +e.g., +to have two plaintext contents adjacent, +simply insert a line containing a single \*(lq#\*(rq character, +.ne 10 +e.g., +.sp +.nf +.in +.5i +this is the first content +# +and this is the second +.in -.5i +.fi +.sp +Finally, +if the plaintext starts with a line of the form: +.sp +.in +.5i +Content-Description: text +.in -.5i +.sp +then this will be used to describe the plaintext content. +\fBNOTE WELL:\fR you must follow this line with a blank line before +starting your text. + +By default, +plaintext is captured as a text/plain content. +You can override this by starting the plaintext with \*(lq#<\*(rq +followed by a content-type specification, +.ne 11 +e.g., +.sp +.nf +.in +.5i +#\fR +-------- + +What now? \fBedit\fR (this invokes \fImhn\fR) + +What now? \fBsend\fR +.in -.5i +.fi +.sp +You have to remember to type the additional edit command, +but it should be fairly obvious from the interaction. + +Finally, +you should consider adding this line to your profile: +.sp +.in +.5i +lproc: show +.in -.5i +.sp +This way, +if you decide to \fBlist\fR after invoking \fImhn\fR as your editor, +the command +.sp +.in +.5i +What now? list +.in -.5i +.sp +will work as you expect. + +.Uh "Sending Files via Mail" +When you want to send a bunch of files to someone, +you can run the \fIviamail\fR shell script, +which is similar the tarmail command: +.sp +.in +.5i +@@(MHETCPATH)/viamail mailpath \*(lqsubject\*(rq files\0... +.in -.5i +.sp +\fIviamail\fR will archive the directories/files you name with \fItar\fR\0(1), +and then mail the compressed archive to the `mailpath' with the given +`subject'. +The archive will be automatically split up into as many messages as +necessary in order to get past most mailers. + +Sometimes you want \fIviamail\fR to pause after posting a partial message. +This is usually the case when you are running \fIsendmail\fR and +expect to generate a lot of partial messages. +If the first argument given to \fIviamail\fR starts with a dash, +then it is interpreted as the number of seconds to pause in between postings, +.ne 6 +e.g., +.sp +.in +.5i +@@(MHETCPATH)/viamail -300 mailpath \*(lqsubject\*(rq files\0... +.in -.5i +.sp +will pause 5 minutes in between each posting. + +When these messages are received, +invoke \fImhn\fR once, +with the list of messages, +and the `\-store' command. +The \fImhn\fR program will then store exactly one message containing the +archive. +You can then use `\-show' to find out what's inside; +possibly followed by `\-store' to write the archive to a file where you +.ne 26 +can subsequently uncompress and untar it, e.g., +.sp +.nf +.in +.5i +% mhn -list all + msg part type/subtype size description + 1 message/partial 47K part 1 of 4 + 2 message/partial 47K part 2 of 4 + 3 message/partial 47K part 3 of 4 + 4 message/partial 18K part 4 of 4 +% mhn -store all +% mhn -list -verbose last + msg part type/subtype size description + 5 application/octet-stream 118K + (extract with uncompress | tar xvpf -) + type=tar + x-conversions=compress +% mhn -show last + msg part type/subtype size description + 5 application/octet-stream 118K +-- headers of message, followed by \fItar\fR listing appears here +% mhn -store last +% uncompress < 5.tar.Z | tar xvpf - +.in -.5i +.fi +.sp +Alternately, +by using the `\-auto' switch, +\fImhn\fR will automatically do the extraction for you, +.ne 26 +e.g., +.sp +.nf +.in +.5i +% mhn -list all + msg part type/subtype size description + 1 message/partial 47K part 1 of 4 + 2 message/partial 47K part 2 of 4 + 3 message/partial 47K part 3 of 4 + 4 message/partial 18K part 4 of 4 +% mhn -store all +% mhn -list -verbose last + msg part type/subtype size description + 5 application/octet-stream 118K + (extract with uncompress | tar xvpf -) + type=tar + x-conversions=compress +% mhn -show last + msg part type/subtype size description + 5 application/octet-stream 118K +-- headers of message, followed by \fItar\fR listing appears here +% mhn -store -auto last +-- \fItar\fR listing appears here as files are extracted +.in -.5i +.fi +.sp +As the second \fItar\fR listing is generated, +the files are extracted. +A prudent user will never put `\-auto' in the \&.mh\(ruprofile file. +The correct procedure is to first use `\-show', +to find out what will be extracted. +Then \fImhn\fR can be invoked with `\-store' and `\-auto' to perform +the extraction. + +.Uh "User Environment" +Because the display environment in which \fImhn\fR operates may vary +for a user, +\fImhn\fR will look for the environment variable \fB$MHN\fR. +If present, +this specifies the name of an additional user profile which should be read. +Hence, +when a user logs in on a particular display device, +this environment variable should be set to refer to a file containing +definitions useful for the display device. +Normally, +only entries of the form +.sp +.in +.5i +mhn-show-/ +.br +mhn-show- +.in -.5i +.sp +need be present. +Finally, +\fImhn\fR will attempt to consult one other additional user profile, +.ne 6 +e.g., +.sp +.in +.5i +@@(MHETCPATH)/mhn_defaults +.in -.5i +.sp +which is created automatically during MH installation. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$MHN~^Additional profile entries +^@@(MHETCPATH)/mhn_defaults~^System-default profile entries +^@@(MHETCPATH)/mhl.headers~^The headers template +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^mhlproc:~^Default program to display message headers +.Ps +^mhn-access-ftp:~^Program to retrieve contents via FTP +.Ps +^mhn-cache~^Public directory to store cached external contents +.Ps +^mhn-charset-~^Template for environment to render character sets +.Ps +^mhn-compose-*~^Template for composing contents +.Ps +^mhn-private-cache~^Personal directory to store cached external contents +.Ps +^mhn-show-*~^Template for displaying contents +.Ps +^mhn-storage~^Directory to store contents +.Ps +^mhn-store-*~^Template for storing contents +.Ps +^moreproc:~^Default program to display text/plain content +.Sa +mhl(1) +.br +\fIMIME: Mechanisms for Specifying and Describing the Format of +Internet Message Bodies\fR +(RFC 1521), +.br +\fIProposed Standard for Message Encapsulation\fR +(RFC 934). +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noauto' +.Ds +`\-nocache' +.Ds +`\-nocheck' +.Ds +`\-noebcdicsafe' +.Ds +`\-form\0mhl.headers' +.Ds +`\-headers' +.Ds +`\-pause' +.Ds +`\-rcache\0ask' +.Ds +`\-realsize' +.Ds +`\-rfc934mode' +.Ds +`\-noserialonly' +.Ds +`\-show' +.Ds +`\-noverbose' +.Ds +`\-wcache\0ask' +.Co +If a folder is given, +it will become the current folder. +The last message selected will become the current message. +.Bu +Partial messages contained within a multipart content are not reassembled +with the `\-store' switch. +.En +@ + + +1.13 +log +@change RFC 1341 -> 1521 (new RFC) +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.12 1993/10/26 16:02:50 jromine Exp jromine $ +d8 2 +a9 2 +\%[+folder] \%[msgs] +\%[\-file\0file] +d568 1 +a568 1 +.ne 55 +d580 1 +d588 1 +d594 1 +d600 1 +d789 5 +@ + + +1.12 +log +@update -cache, -rcache, -wcache +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.9 1993/08/20 15:42:08 jromine Exp $ +d35 1 +a35 1 +RFC 1341. +d61 1 +a61 1 +in RFC 1341. +d70 1 +a70 1 +text plain, richtext +d1122 1 +a1122 1 +(RFC 1341), +@ + + +1.11 +log +@fixes from mtr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.9 1993/08/20 15:42:08 jromine Exp jromine $ +d8 2 +a9 2 +\%[+folder] \%[msgs] +\%[\-file\0file] +d22 1 +a22 1 +\%[\-cache\0policy] +d37 2 +a38 2 +Three action switches direct the operation of \fImhn\fR, +namely `\-list', `\-show', and `\-store'. +d298 1 +d426 2 +a427 1 +If your system supports a SOCKETs interface to TCP/IP, +d431 1 +d455 1 +a455 1 +retrieval is success. +d461 30 +a490 9 +then \fImhn\fR looks for the profile entry \fBmhn-cache\fR to +determine if the content should be read from/written to a cache. +Any content written to the cache will, +by default, +be world-readable. +(To prevent this, +use a directory name with the desired read and execute permissions.) +The \fBmhn-cache\fR profile entry names the directory used for caching, +e.g., +d498 10 +d509 12 +a520 6 +The caching behavior of \fImhn\fR is controlled with the `\-cache' switch. +One of three arguments may be specified: +always, indicating that \fImhn\fR should make use of caching whenever possible; +ask, indicating that \fImhn\fR should ask the user; +and, +never, indicating that \fImhn\fR should never make use of caching. +d522 39 +d568 1 +a568 1 +.ne 54 +d639 1 +a639 1 + conversions=x-compress +d724 1 +a724 1 + conversions=x-compress [] \\ +d735 1 +a735 1 +.ne 16 +d813 1 +d976 1 +d1010 1 +a1010 1 + conversions=x-compress +d1040 1 +a1040 1 + conversions=x-compress +d1080 1 +d1102 1 +a1102 1 +^mhn-cache~^Directory to store cached external contents +d1108 2 +d1133 1 +a1133 1 +`\-cache\0ask' +d1145 2 +d1156 2 +@ + + +1.10 +log +@document mhn -file +@ +text +@d93 1 +a93 1 +a multipart content is always acted upon. +d146 1 +d165 7 +d282 1 +a282 1 +In the case of a multipart content, +d324 1 +a324 1 +If the content isn't part of a multipart content, +d520 2 +a521 1 + | "parallel" ] +d1044 2 +@ + + +1.9 +log +@fixes from mtr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.8 1992/12/10 23:59:10 jromine Exp jromine $ +d8 3 +a10 1 +\%[+folder] \%[msgs] \%[\-part\0number]... \%[\-type\0content]... +d102 9 +@ + + +1.8 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.7 1992/11/16 22:31:42 jromine Exp jromine $ +d14 1 +a14 1 +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly]] +d16 1 +a16 1 + \%[\-form\0formfile]] \%[\-noshow] +d20 1 +a20 3 +\%[\-verbose] \%[\-noverbose] +\%[\-rfc934mode] \%[\-norfc934mode] +\%[\-ebcdicsafe] \%[\-noebcdicsafe] +d22 8 +d71 1 +a71 1 +application octet-stream, oda, postscript +d97 4 +d147 1 +d456 7 +d644 2 +a646 1 +site= hostname +d648 1 +d650 1 +d774 3 +d1027 4 +d1036 2 +@ + + +1.7 +log +@specify only character cell fonts with mhn. +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.6 1992/11/02 16:58:55 jromine Exp jromine $ +d195 2 +a196 2 +it checks to see if the environment variable $MM_CHARSET is set, +and that that the value of this environment variable is equal to the value of +@ + + +1.6 +log +@fixes from mtr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.5 1992/10/26 16:55:42 jromine Exp jromine $ +d214 1 +a214 1 +mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-120-*-*-*-*-iso8859-*' -e %s +@ + + +1.5 +log +@add quotes around %f +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.4 1992/10/20 20:30:08 jromine Exp jromine $ +d358 3 +a360 4 + +Further note that when asked to store a content containing a partial +message, \fImhn\fR will try to locate all of the portions and combine +them accordingly. +d380 44 +d974 2 +a1024 8 + +For contents of type message/external-body, +those with a parameter of \*(lqaccess-type=tftp\*(rq will not be +automatically retrieved. +Further, +those with a parameter \*(lqaccess-type=ftp\*(rq or +\*(lqaccess-type=anon-ftp\*(rq will be automatically retrieved +only if your system supports a SOCKETs interface to TCP/IP. +@ + + +1.4 +log +@MIME upgrade 10 +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.3 1992/10/16 17:12:29 jromine Exp jromine $ +d164 2 +a165 2 +mhn-show-text/plain: %pmoreproc %F +mhn-show-message/rfc822: %pshow -file %F +d183 1 +a183 1 +mhn-show-image: xv %f +d188 4 +@ + + +1.3 +log +@revisions from mtr -- mime/update9 +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.1 1992/01/31 16:26:38 jromine Exp $ +d54 1 +d91 1 +d100 1 +d112 1 +d158 1 +d177 1 +a208 1 +.nf +a211 1 +.fi +d222 1 +d256 1 +d276 1 +d343 1 +d377 1 +d398 1 +a398 30 +Because the display environment in which \fImhn\fR operates may vary +for a user, +\fImhn\fR will look for the environment variable \fB$MHN\fR. +If present, +this specifies the name of an additional user profile which should be read. +Hence, +when a user logs in on a particular display device, +this environment variable should be set to refer to a file containing +definitions useful for the display device. +Normally, +only entries of the form +.sp +.in +.5i +mhn-show-/ +.br +mhn-show- +.in -.5i +.sp +need be present. +Finally, +\fImhn\fR will attempt to consult one other additional user profile, +e.g., +.sp +.in +.5i +@@(MHETCPATH)/mhn_defaults +.in -.5i +.sp +which is created automatically during MH installation. + +.bp +d404 2 +d467 1 +d501 1 +d552 1 +d571 1 +d619 1 +d656 1 +d682 1 +d706 1 +d708 1 +a708 1 +unless you add this line to your \&.mh\(ruprofile file: +d724 1 +d738 1 +d785 1 +a806 1 +.nf +a809 1 +.fi +d821 1 +d851 1 +d885 30 +@ + + +1.2 +log +@fixes from mtr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhn.rf,v 1.1 1992/01/31 16:26:38 jromine Exp jromine $ +d10 1 +a10 1 +\%[\-list\0\%[\-header]\0\%[\-noheader] +d22 1 +a22 1 +\%[\-ebcdic] \%[\-noebcdicsafe] +d27 1 +a27 1 +the MIME draft. +d52 2 +a53 2 +The list of \*(lqstandard\*(rq content types and subtypes can be found +in the MIME draft. +d65 1 +a65 1 +image g3fax, jpeg, gif, x-pbm, x-pgm, x-ppm +d86 1 +a86 1 +and it is desirable to act on a message/external content, +d88 1 +a88 1 +once for message/external and once for the content externally referenced. +d92 1 +a92 1 +The `\-header' switch indicates that a one-line banner should be +d119 1 +d125 1 +a125 1 +For those display string containing the e- or F-escape, +d128 1 +a128 1 +the e-escape has no expansion as far as the shell is concerned.. +d130 8 +d159 2 +a160 2 +mhn-show-text/plain: moreproc %F +mhn-show-message/rfc822: show -file %F +d178 1 +a178 1 +mhn-show-application/PostScript: pageview - +d183 56 +d248 2 +a249 2 +the `\-serialonly' switch can be given to tell \fImhn\fR to always +display parts in serial. +d290 3 +d369 20 +d416 1 +a416 3 +which should be created by the system-administrator. +It only makes sense to do this if there is sufficiently homogeneity +among the displays attached to the system. +d439 1 +a439 1 + "#@@" type "/" subtype +d453 2 +a454 1 + [ "alternative" | "parallel" ] +d464 8 +d484 12 +d518 1 +a518 1 +The display string may contain these escapes: +d573 7 +a579 1 +#@@application/octet-stream; type=tar [] access-type=ftp; ... +d591 1 +d594 1 +a594 1 +access-type= usually \fIftp\fR or \fIanon-ftp\fR +d596 2 +a597 2 +site= hostname +expiration= 822-style date +d641 4 +a644 2 +#audio/basic [Flint phone] | raw2audio -F < /home/mrose/flint.au +#image/x-pbm [MTR's photo] /home/mrose/mrose.pbm +d690 19 +d717 2 +a718 2 +Note that MH will not invoke \fImhn\fR automatically. +You must specifically give the command +d721 7 +d731 2 +a732 1 +after you have constructed the \fImhn\fR composition file. +d756 4 +a759 2 +#audio/basic [Flint phone] | raw2audio -F < /home/mrose/flint.au +#image/x-pbm [MTR's photo] /home/mrose/mrose.pbm +d846 1 +a846 1 + conversions=compress +d875 1 +a875 1 + conversions=compress +d895 1 +a895 1 +^@@(MHETCPATH)/mhn_profile~^System-default profile entries +d904 4 +d921 2 +a922 1 +Internet Message Bodies\fR, +d935 1 +a935 1 +`\-header' +d954 5 +a958 2 +For contents of type message/external, +only those with parameter \*(lqaccess-type=ftp\*(rq or +d960 1 +a960 1 +(and only if your system supports a SOCKETs interface to TCP/IP). +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id$ +d65 1 +a65 2 +image g3fax, jpeg, gif, pbm, pgm, ppm, + tiff-b-netfax +d528 1 +a528 1 +#image/pbm [MTR's photo] /home/mrose/mrose.pbm +d614 1 +a614 1 +#image/pbm [MTR's photo] /home/mrose/mrose.pbm +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mhook.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mhook.rf,v new file mode 100644 index 0000000..cd93bd7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mhook.rf,v @@ -0,0 +1,753 @@ +head 1.16; +access; +symbols; +locks; strict; + + +1.16 +date 95.12.06.23.31.56; author jromine; state Exp; +branches; +next 1.15; + +1.15 +date 92.10.29.22.03.44; author jromine; state Exp; +branches; +next 1.14; + +1.14 +date 92.10.28.16.53.03; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 92.02.15.00.10.42; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.02.12.19.08.15; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.02.10.20.00.15; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.03.18.11.52; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 90.04.05.22.18.43; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.04.05.22.12.11; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.13.25; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.26; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.21.16.28.55; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.05; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.21; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.04; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.16 +log +@document %{addresses} for rcvdist +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mhook.rf,v 1.15 1992/10/29 22:03:44 jromine Exp jromine $ +.SC MHOOK 1 +.NA +mhook, rcvdist, rcvpack, rcvtty \- MH receive-mail hooks +.SY +.na +.ti .5i +@@(MHETCPATH)/rcvdist +\%[\-form\ formfile] +\%[switches\ for\ \fIpostproc\fR] +address\ ... +\%[\-help] + +.ti .5i +@@(MHETCPATH)/rcvpack +file +\%[\-help] + +.ti .5i +@@(MHETCPATH)/rcvtty +\%[command] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-bell] \%[\-nobell] +\%[\-newline] \%[\-nonewline] +\%[\-biff] +\%[\-help] +.ad +.DE +A receive\-mail hook is a program that is run whenever you receive a +mail message. +You do \fBNOT\fR invoke the hook yourself, +rather the hook is invoked on your behalf by your +system's Message Transport Agent. See \fIslocal\fP\0(1) +for details on how to activate receive\-mail hooks on your system. + +Four programs are currently available as part of \fIMH\fP, +\fIrcvdist\fR (redistribute incoming messages to additional recipients), +\fIrcvpack\fR (save incoming messages in a \fIpackf\fR'd file), +and \fIrcvtty\fR (notify user of incoming messages). +The fourth program, +\fIrcvstore\fR\0(1) is described separately. +They all reside in the \fI@@(MHETCPATH)/\fR directory. + +The \fIrcvdist\fR program will resend a copy of the message to all of the +addresses listed on its command line. +It uses the format string facility described in \fImh\-format\fR\0(5). +In addition, \fIrcvdist\fP +also recognizes the following additional \fIcomponent\fR escape: +.sp 1 +.ne 5 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +addresses string the addresses to distribute to +.re +.fi + +The \fIrcvpack\fR program will append a copy of the message to the file listed +on its command line. +Its use is obsoleted by the \*(lqfile\*(rq action of \fIslocal\fR. + +The \fIrcvtty\fR program executes the named file with the message as its +standard input, +and writes the resulting output +on your terminal. + +If no file is specified, or is bogus, etc., +then \fIrcvtty\fR will instead write a one\-line scan listing. +Either the `\-form\ formatfile' or `\-format\ string' option may be used +to override the default output format (see \fImh\-format\fP\0(5)). +A newline is output before the +message output, and the terminal bell is rung +after the output. The `\-nonewline' and `\-nobell' options +will inhibit these functions. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIrcvtty\fR also recognizes the following additional \fIcomponent\fR escapes: +.sp 1 +.ne 5 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +body string the (compressed) first part of the body +dtimenow date the current date +folder string the name of the current folder +.re +.fi + +Normally, \fIrcvtty\fP obeys +write permission as granted by \fImesg\fP\0(1). +With the `\-biff' option, \fIrcvtty\fP will obey the notification +status set by \fIbiff\fP\0(1) instead. +If the terminal access daemon (TTYD) is available on your system, +then \fIrcvtty\fR will give its output to the daemon for output +instead of writing on the user's terminal. +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +^$HOME/\&.maildelivery~^The file controlling local delivery +^@@(MHETCPATH)/maildelivery~^Rather than the standard file +.Sa +rcvstore (1), mh\-format(5), slocal(1) +.Bu +Only two return codes are meaningful, others should be. +.En +@ + + +1.15 +log +@document additional rcvtty escapes +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.14 1992/10/28 16:53:03 jromine Exp jromine $ +d49 10 +@ + + +1.14 +log +@move slocal to (1) +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.13 1992/05/12 22:23:34 jromine Exp jromine $ +d67 13 +@ + + +1.13 +log +@fixup for nroff problems +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.12 1992/02/15 00:10:42 jromine Exp jromine $ +d35 1 +a35 1 +system's Message Transport Agent. See \fIslocal\fP\0(8) +d80 1 +a80 1 +rcvstore (1), mh\-format(5), slocal (8) +@ + + +1.12 +log +@fix +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.11 1992/02/12 19:08:15 jromine Exp jromine $ +d5 1 +a5 1 +mhook, rcvdist, rcvpack, rcvtty \- MH receive\-mail hooks +@ + + +1.11 +log +@major revision +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.10 1992/02/10 20:00:15 jromine Exp jromine $ +d71 1 +a71 1 +status set by \fIbiff\fP\0(1). +@ + + +1.10 +log +@replace $USER with "username" +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.9 1992/02/03 18:11:52 jromine Exp jromine $ +d5 1 +a5 1 +mhook \- MH receive\-mail hooks +d7 1 +a7 18 +$HOME/\&.maildelivery +@@BEGIN: MHMTS +.ds SL \fIpost\fR +.ds ZS slocal +@@END: MHMTS +@@BEGIN: MMDFIMTS +.ds SL \fIslocal\fR +.ds ZS slocal +@@END: MMDFIMTS +@@BEGIN: MMDFIIMTS +.ds SL the local channel +.ds ZS mmdfII +@@END: MMDFIIMTS +@@BEGIN: SENDMTS +.ds SL \fIslocal\fR +.ds ZS slocal +@@END: SENDMTS + +d29 1 +d34 3 +a36 21 +@@BEGIN: MHMTS +rather the hook is invoked on your behalf by \fIMH\fR. +@@END: MHMTS +@@BEGIN: MMDFIMTS +rather the hook is invoked on your behalf by \fIMMDF\fR +when you (symbolically) link @@(MHETCPATH)/slocal to the file +bin/rcvmail in your home directory. +@@END: MMDFIMTS +@@BEGIN: MMDFIIMTS +rather the hook is invoked on your behalf by \fIMMDF\fR. +@@END: MMDFIIMTS +@@BEGIN: SENDMTS +rather the hook is invoked on your behalf by \fISendMail\fR, +when you include the line +.nf +.in +.5i + \*(lq| @@(MHETCPATH)/slocal -user username\*(rq +.in -.5i +.fi +in your \&.forward file in your home directory. +@@END: SENDMTS +d38 1 +a38 223 +The \fI\&.maildelivery\fR file, +which is an ordinary ASCII file, +controls how local delivery is performed. +This file is read by \*(SL. +.if '\*(ZS'slocal' \{\ + +The format of each line in the \fI\&.maildelivery\fR file is + +.ti +.5i +\fBfield pattern action result string\fR + +where + +.in +.5i +.ti -.25i +\fBfield\fR: +.br +The name of a field that is to be searched for a pattern. +This is any field in the headers of the message that might be present. +In addition, the following special fields are also defined: +.in +.25i +\fIsource\fR: the out\-of\-band sender information +.br +\fIaddr\fR: the address that was used to cause delivery to the recipient +.br +\fIdefault\fR: this matches \fIonly\fR if the message hasn't been delivered yet +.br +\fI*\fR: this always matches +.in -.25i + +.ti -.25i +\fBpattern\fR: +.br +The sequence of characters to match in the specified field. +Matching is case\-insensitive but not RE\-based. + +.ti -.25i +\fBaction\fR: +.br +The action to take to deliver the message. +This is one of + +.in +.5i +.ti -.5i +\fIfile\fR or \fI>\fR: +.br +Append the message to the file named by \fBstring\fR. +The message is appended to the file in the maildrop +format which is used by your message transport system. +If the message can be appended to the file, +then this action succeeds. + +When writing to the file, +a new field is added: + +.ti +.5i +Delivery\-Date:\ date + +which indicates the date and time that message was appended to the file. + +.ti -.5i +\fImbox\fR: +.br +Identical to \fIfile\fR, +but always appends the message using the format used by \fIpackf\fR +(the MMDF mailbox format). + +.ti -.5i +\fIpipe\fR or \fI|\fR: +.br +Pipe the message as the standard input to the command named by \fBstring\fR, +using the Bourne shell \fIsh\fR\0(1) to interpret the string. +Prior to giving the string to the shell, +it is expanded with the following built\-in variables: +.in +.25i +$(sender): the return address for the message +.br +$(address): the address that was used to cause delivery to the recipient +.br +$(size): the size of the message in bytes +.br +$(reply\-to): either the \*(lqReply\-To:\*(rq or \*(lqFrom:\*(rq field +of the message +.br +$(info): miscellaneous out\-of\-band information +.in -.25i + +When a process is invoked, its environment is: +the user/group id:s are set to recipient's id:s; +the working directory is the recipient's directory; +the umask is 0077; +the process has no /dev/tty; +the standard input is set to the message; +the standard output and diagnostic output are set to /dev/null; +all other file\-descriptors are closed; +the envariables \fB$USER\fR, \fB$HOME\fR, \fB$SHELL\fR are set +appropriately, +and no other envariables exist. + +The process is given a certain amount of time to execute. +If the process does not exit within this limit, +the process will be terminated with extreme prejudice. +The amount of time is calculated as ((size x 60) + 300) seconds, +where size is the number of bytes in the message. + +The exit status of the process is consulted in determining the success of the +action. +An exit status of zero means that the action succeeded. +Any other exit status (or abnormal termination) means that the action failed. + +In order to avoid any time limitations, +you might implement a process that began by \fIforking\fR. +The parent would return the appropriate value immediately, +and the child could continue on, +doing whatever it wanted for as long as it wanted. +This approach is somewhat risky if the parent is going to return an +exit status of zero. +If the parent is going to return a non\-zero exit status, +then this approach can lead to quicker delivery into your maildrop. + +.ti -.5i +\fIqpipe\fR or \fI\fR: +.br +Similar to \fIpipe\fR, +but executes the command directly, +after built\-in variable expansion, +without assistance from the shell. + +.ti -.5i +\fIdestroy\fR: +.br +This action always succeeds. +.in -.5i + +.ti -.25i +\fBresult\fR: +.br +Indicates how the action should be performed: + +.in +.5i +.ti -.5i +\fIA\fR: +.br +Perform the action. +If the action succeeds, then the message is considered delivered. + +.ti -.5i +\fIR\fR: +.br +Perform the action. +Regardless of the outcome of the action, +the message is not considered delivered. + +.ti -.5i +\fI?\fR: +.br +Perform the action only if the message has not been delivered. +If the action succeeds, then the message is considered delivered. + +.ti -.5i +\fIN\fR: +.br +Perform the action only if the message has not been delivered +and the previous action succeeded. +If this action succeeds, then the message is considered delivered. +.in -.5i +.in -.5i + +The file is always read completely, +so that several matches can be made and several actions can be taken. +The \fI\&.maildelivery\fR file must be owned either by the user or by root, +and must be writable only by the owner. +If the \fI\&.maildelivery\fR file can not be found, +or does not perform an action which delivers the message, +then the file @@(MHETCPATH)/maildelivery is read according to the same rules. +This file must be owned by the root and must be writable only by the root. +If this file can not be found +or does not perform an action which delivers the message, +then standard delivery to the user's maildrop, @@(MHDROPLOC), is performed. + +Arguments in the \fI\&.maildelivery\fR file are separated by white\-space or +comma. +Since double\-quotes are honored, +these characters may be included in a single argument by enclosing the +entire argument in double\-quotes. +A double\-quote can be included by preceeding it with a backslash. + +To summarize, here's an example: + +.nf +.in +.5i +.ta \w'default 'u +\w'uk-mmdf-workers 'u +\w'action 'u +\w'result 'u +#\fIfield\fR \fIpattern\fR \fIaction\fR \fIresult\fR \fIstring\fR +# lines starting with a '#' are ignored, as are blank lines +# +# file mail with mmdf2 in the \*(lqTo:\*(rq line into file mmdf2.log +To mmdf2 file A mmdf2.log +# Messages from mmdf pipe to the program err-message-archive +From mmdf pipe A err-message-archive +# Anything with the \*(lqSender:\*(rq address \*(lquk-mmdf-workers\*(rq +# file in mmdf2.log if not filed already +Sender uk-mmdf-workers file ? mmdf2.log +# \*(lqTo:\*(rq unix \- put in file unix-news +To Unix > A unix-news +# if the address is jpo=mmdf \- pipe into mmdf-redist +addr jpo=mmdf | A mmdf-redist +# if the address is jpo=ack \- send an acknowledgement copy back +addr jpo=ack | R \*(lqresend\0\-r\0$(reply-to)\*(rq +# anything from steve \- destroy! +From steve destroy A \- +# anything not matched yet \- put into mailbox +default \- > ? mailbox +# always run rcvalert +* \- | R rcvalert +.re +.in -.5i +.fi +.\} +.if '\*(ZS'mmdfII' \{\ +See \fImaildelivery\fR\0(5) for the details. +.\} + +Four programs are currently standardly available, +d52 1 +a52 1 +Its use is obsoleted by the \fI\&.maildelivery\fR. +d80 1 +a80 43 +.if '\*(ZS'slocal' \{\ +rcvstore (1), mh\-format(5) +.\} +.if '\*(ZS'mmdfII' \{\ +rcvstore (1), maildelivery(5), mh\-format(5) +.\} +.Co +None +.if '\*(ZS'slocal' \{\ +.Hi +For compatibility with older versions of \fIMH\fR, +if \fIslocal\fR can't find the user's \fI\&.maildelivery\fR file, +it will attempt to execute an old\-style rcvmail hook in the user's $HOME +directory. +In particular, +it will first attempt to execute + +.ti +.5i +\&.mh\(rureceive file maildrop directory user + +failing that it will attempt to execute + +.ti +.5i +$HOME/bin/rcvmail user file sender + +before giving up and writing to the user's maildrop. + +In addition, +whenever a hook or process is invoked, +file\-descriptor three (3) is set to the message in addition to the standard +input. + +@@BEGIN: MMDFIMTS +In addition to an exit status of zero, +the \fIMMDF\fR values \fIRP_MOK\fR (32) and \fIRP_OK\fR (9) +mean that the message has been fully delivered. +All other non\-zero exit status, +including abnormal termination, +is interpreted as the \fIMMDF\fR value \fIRP_MECH\fR (200), +which means \*(lquse an alternate route\*(rq +(deliver the message to the maildrop). +@@END: MMDFIMTS +.\} +a82 10 + +.if '\*(ZS'mmdfII' \{\ +Versions of \fIMMDF\fR with the \fImaildelivery\fR mechanism aren't +entirely backwards\-compatible with earlier versions. +If you have an old\-style hook, the best you can do is to have a one\-line +\fI\&.maildelivery\fR file: + +.ti +.15i +default \- pipe A \*(lqbin/rcvmail $(address) $(info) $(sender)\*(rq +.\} +@ + + +1.9 +log +@add "mbox" option +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.8 1990/04/05 22:18:43 sources Exp jromine $ +d66 1 +a66 1 + \*(lq| @@(MHETCPATH)/slocal -user $USER\*(rq +@ + + +1.8 +log +@rcvtty fixes +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.7 90/04/05 22:12:11 sources Exp Locker: sources $ +d119 2 +a120 1 +The standard maildrop delivery process is used. +d131 7 +@ + + +1.7 +log +@rcvtty docs +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.6 90/04/05 15:13:25 sources Exp Locker: sources $ +d39 6 +a44 1 +\%[command\ ...] +d310 1 +a310 1 +to override the default scan listing output format. +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d299 1 +a299 1 +and gives the resulting output to the terminal access daemon for display +d301 1 +a301 3 +If the terminal access daemon is unavailable on your system, +then \fIrcvtty\fR will write the output to your terminal +if, and only if, your terminal has \*(lqworld\-writable\*(rq permission. +d303 15 +a317 2 +then the \fIrcvtty\fR program will give a one\-line scan listing +to the terminal access daemon. +d324 1 +a324 1 +rcvstore (1) +d327 1 +a327 1 +rcvstore (1), maildelivery(5) +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@docunemt "N" flag +@ +text +@d2 2 +a3 2 +.TH MHOOK 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@typo +@ +text +@d202 1 +a202 1 +If the action succeeded, then the message is considered delivered. +d215 8 +a222 1 +If the action succeeded, then the message is considered delivered. +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MHOOK 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MHOOK 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mhparam.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mhparam.rf,v new file mode 100644 index 0000000..cacaa5d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mhparam.rf,v @@ -0,0 +1,118 @@ +head 1.2; +access; +symbols; +locks; strict; +comment @# @; + + +1.2 +date 92.11.16.22.27.09; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.02.06.17.14.05; author jromine; state Exp; +branches; +next ; + + +desc +@contributed by Jeffrey C Honig +@ + + +1.2 +log +@note that procs can be printed; default values will be given +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mhparam.rf,v 1.1 1992/02/06 17:14:05 jromine Exp jromine $ +.SC MHPARAM 1 +.NA +mhparam \- print MH profile components +.SY +mhparam +\%[components] +\%[-all] +\%[-component] \%[-nocomponent] +\%[\-help] +.DE +\fIMhparam\fR writes the value of the specified profile component to +the standard output separated by newlines. If the profile component +is not present, the default value (or nothing if there is no default) +is printed. + +If more than one component is specified in the `components' list, the component value is +preceded by the component name. If `\-component' is specified, the +component name is displayed even when only one component is specified. +If `\-nocomponent' is specified, the component name is not displayed +even when more than one component is specified. + +If `\-all' is specified, all components if the MH profile are +displayed and other arguments are ignored. + +Examples: + +.nf +.ta \w'AliasFile:'u+2n +.in +.5i +% mhparam path +Mail + +% mhparam mhlproc +@@(MHETCPATH)/mhl + +% mhparam \-component path +Path: Mail + +% mhparam AliasFile rmmproc +AliasFile: aliases +rmmproc: rmmproc + +% mhparam \-nocomponent AliasFile rmmproc +aliases +rmmproc +.in -.5i +.fi + +\fIMhparam\fR is also useful in back\-quoted operations: + +.nf +.in +.5i +% fgrep cornell.edu `mhpath +`/`mhparam aliasfile` + +.in -.5i +.fi +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Sa +mh-profile\|(5) +.De +`\-nocomponent' if only one component is specified +`\-component' if more than one component is specified +.Ds +`components' defaults to none +.Co +None +.En +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhparam.rf,v 1.6 90/04/05 15:08:26 sources Exp $ +d14 3 +a16 1 +the standard output separated by newlines. +d30 1 +d35 3 +d62 1 +a62 1 +mh-profile(5) +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/mhpath.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/mhpath.rf,v new file mode 100644 index 0000000..c28a0e8 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/mhpath.rf,v @@ -0,0 +1,257 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.02.11.22.40.23; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.08.26; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.28; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.42.07; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.23; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 89.11.17.16.25.35; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.16.23.44; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@minor re-format +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: mhpath.rf,v 1.6 1990/04/05 15:08:26 sources Exp jromine $ +.SC MHPATH 1 +.NA +mhpath \- print full pathnames of MH messages and folders +.SY +mhpath +\%[+folder] \%[msgs] +\%[\-help] +.DE +\fIMhpath\fR expands and sorts the message list `msgs' and writes +the full pathnames of the messages to the standard output +separated by newlines. +If no `msgs' are specified, +\fImhpath\fR outputs the folder pathname instead. +If the only argument is `+', your MH \fIPath\fR is output; +this can be useful is shell scripts. + +Contrasted with other MH commands, a message argument to \fImhpath\fR +may often be intended for \fIwriting\fR. +Because of this: +.sp +1) the name \*(lqnew\*(rq has been added to \fImhpath\fR's list of +reserved message names +(the others are \*(lqfirst\*(rq, \*(lqlast\*(rq, \*(lqprev\*(rq, +\*(lqnext\*(rq, \*(lqcur\*(rq, and \*(lqall\*(rq). +The new message is equivalent to the message after the +last message in a folder +(and equivalent to 1 in a folder without messages). +The \*(lqnew\*(rq message may not be used as part of a message range. +.sp +2) Within a message list, +the following designations may refer to messages that do not exist: +a single numeric message name, +the single message name \*(lqcur\*(rq, +and (obviously) the single message name \*(lqnew\*(rq. +All other message designations must refer to at least one existing message. +.sp +3) An empty folder is not in itself an error. + +Message numbers greater than the highest existing message in a folder as +part of a range designation are replaced with the next free message number. + +Examples: The current folder foo contains messages 3 5 6. +Cur is 4. + +.nf +.in +.5i +% mhpath +/r/phyl/Mail/foo + +% mhpath all +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 +/r/phyl/Mail/foo/6 + +% mhpath 2001 +/r/phyl/Mail/foo/7 + +% mhpath 1\-2001 +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 +/r/phyl/Mail/foo/6 + +% mhpath new +/r/phyl/Mail/foo/7 + +% mhpath last new +/r/phyl/Mail/foo/6 +/r/phyl/Mail/foo/7 + +% mhpath last\-new +bad message list \*(lqlast\-new\*(rq. + +% mhpath cur +/r/phyl/Mail/foo/4 + +% mhpath 1\-2 +no messages in range \*(lq1\-2\*(rq. + +% mhpath first:2 +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 + +% mhpath 1 2 +/r/phyl/Mail/foo/1 +/r/phyl/Mail/foo/2 +.in -.5i +.fi + +\fIMHpath\fR is also useful in back\-quoted operations: + +.nf +.in +.5i +% cd `mhpath +inbox` + +% echo `mhpath +` +/r/phyl/Mail +.in -.5i +.fi +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +folder(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to none +.Co +None +.Bu +Like all MH commands, \fImhpath\fR expands and sorts \%[msgs]. +So don't expect + +.ti +.5i +mv `mhpath 501 500` + +to move 501 to 500. +Quite the reverse. But + +.ti +.5i +mv `mhpath 501` `mhpath 500` + +will do the trick. + +Out of range message 0 is treated far more severely than large out of +range message numbers. +.En +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d22 1 +d31 1 +d38 1 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MHPATH 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MHPATH 1 [mh.6] MH +@ + + +1.2 +log +@document 'mhpath +' +@ +text +@d2 2 +a3 2 +.SC MHPATH 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d15 2 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/msgchk.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/msgchk.rf,v new file mode 100644 index 0000000..93257b4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/msgchk.rf,v @@ -0,0 +1,222 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.02.04.21.41.41; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.09.20.22.46; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.13.33; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.29; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.08; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.24; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.08; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@contributed patch +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: msgchk.rf,v 1.6 1990/04/09 20:22:46 sources Exp jromine $ +.SC MSGCHK 1 +.NA +msgchk \- check for messages +.SY +msgchk +\%[\-date] \%[\-nodate] +\%[\-notify\ all/mail/nomail] \%[\-nonotify\ all/mail/nomail] +@@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@@END: POP +\%[users\ ...] +\%[\-help] +.DE +The \fImsgchk\fR program checks all known mail drops for mail waiting +for you. +For those drops which have mail for you, +\fImsgchk\fR will indicate if it believes that you have seen the mail +in question before. + +The `\-notify\ type' switch indicates under what circumstances \fImsgchk\fR +should produce a message. +The default is `\-notify\ all' which says that \fImsgchk\fR should always +report the status of the users maildrop. +Other values for `type' include `mail' which says that \fImsgchk\fR should +report the status of waiting mail; +and, `nomail' which says that \fImsgchk\fR should report the status of empty +maildrops. +The `\-nonotify\ type' switch has the inverted sense, +so `\-nonotify\ all' directs \fImsgchk\fR to never report the status of +maildrops. +This is useful if the user wishes to check \fImsgchk\fR's exit status. +A non\-zero exit status indicates that mail was \fBnot\fR waiting for at +least one of the indicated users. + +If \fImsgchk\fR produces output, +then the `\-date' switch directs \fImsgchk\fR to print out the last date mail +was read, +if this can be determined. +@@BEGIN: POP + +If the local host is configured as a POP client, +or if the `\-host\ host' switch is given, +\fImsgchk\fR will query the POP service host as to the status of mail waiting. +If the `\-user\ user' switch is not given, +then the current username is used. +Normally, +\fImsgchk\fR will prompt for a password to use. +However, +if the `\-apop' switch is given, +\fImsgchk\fR will generate authentication credentials to provide +for origin authentication and replay protection, +but which do not involve sending a password in the clear over the network. +Otherwise, +if the `\-rpop' switch is given, +then \fImsgchk\fR will try to use a \*(lqtrusted\*(rq connection +(ala the BSD r-commands). +@@END: POP +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@@(MHETCPATH)/mtstailor~^tailor file +^@@(MHDROPLOC)~^Location of mail drop +.Pr +None +.Sa +@@BEGIN: POP +\fIPost Office Protocol - version 3\fR (aka RFC\-1081), +.br +@@END: POP +inc(1) +.De +`user' defaults to the current user +.Ds +`\-date' +.Ds +`\-notify\ all' +@@BEGIN: POP +.Ds +`\-rpop' +@@END: POP +.Co +None +.En +@ + + +1.6 +log +@fixup RFC references +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: msgchk.rf,v 1.5 90/04/05 15:13:33 sources Exp Locker: sources $ +d12 1 +d48 13 +a60 6 +The `\-user\ user' switch may be given to specify the name of the POP +subscriber you wish to check mail for on the POP service host. +The `\-rpop' switch uses the UNIX \fIrPOP\fR +(authentication done via trusted connections). +In contrast, the `\-norpop' switch uses the ARPA \fIPOP\fR +(in which case \fImsgchk\fR will prompt for a password). +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d62 1 +a62 1 +\fIPost Office Protocol (revised)\fR (aka RFC\-819 with revisions), +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MSGCHK 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MSGCHK 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MSGCHK 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/msh.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/msh.rf,v new file mode 100644 index 0000000..e4e1b2b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/msh.rf,v @@ -0,0 +1,386 @@ +head 1.9; +access; +symbols; +locks; strict; + + +1.9 +date 92.10.16.21.36.14; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 90.04.05.15.13.40; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.23.15.29.58; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.23.14.17.37; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.19.46.39; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.30; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.09; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.27; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.10; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@MIME changes +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: msh.rf,v 1.8 1990/04/05 15:13:40 sources Exp jromine $ +.SC MSH 1 +.NA +msh \- MH shell (and BBoard reader) +.SY +msh +\%[\-prompt\ string] +\%[\-scan] \%[\-noscan] +\%[\-topcur] \%[\-notopcur] +\%[file] +\%[\-help] +.DE +\fImsh\fR is an interactive program that +implements a subset of the normal \fIMH\fR commands +operating on a single file in \fIpackf\fR'd format. +That is, \fImsh\fR is used to read a file that contains a number of +messages, +as opposed to the standard +\fIMH\fR +style of reading a number of files, +each file being a separate message in a folder. +\fImsh\fR's chief advantage is that the normal \fIMH\fR style does not allow +a file to have more than one message in it. +Hence, \fImsh\fR is ideal for reading \fIBBoards\fR, +as these files are delivered by the transport system in this format. +In addition, \fImsh\fR can be used on other files, +such as message archives which have been \fIpack\fRed (see \fIpackf\fR\0(1)). +Finally, \fImsh\fR is an excellent \fIMH\fR +tutor. +As the only commands available to the user are \fIMH\fR commands, +this allows \fIMH\fR beginners to concentrate on how commands to +\fIMH\fR are formed and (more or less) what they mean. + +When invoked, \fImsh\fR reads the named file, and enters a command loop. +The user may type most of the normal +\fIMH\fR +commands. +The syntax and semantics of these commands typed to \fImsh\fR are +identical to their \fIMH\fR +counterparts. In cases where the nature of \fImsh\fR would be inconsistent +(e.g., specifying a `+folder' with some commands), +\fImsh\fR will duly inform the user. +The commands that \fImsh\fR currently supports +(in some slightly modified or restricted forms) are: +.sp 1 +.in +.5i +ali +.br +burst +.br +comp +.br +dist +.br +folder +.br +forw +.br +inc +.br +mark +.br +mhmail +.br +@@BEGIN: MIME +mhn +.br +@@END: MIME +msgchk +.br +next +.br +packf +.br +pick +.br +prev +.br +refile +.br +repl +.br +rmm +.br +scan +.br +send +.br +show +.br +sortm +.br +whatnow +.br +whom +.in -.5i + +In addition, +\fImsh\fR has a \*(lqhelp\*(rq command which gives a brief overview. +To terminate \fImsh\fR, type CTRL\-D, or use the \*(lqquit\*(rq command. +If \fImsh\fR is being invoked from \fIbbc\fR, +then typing CTRL\-D will also tell \fIbbc\fR to exit as well, +while using the \*(lqquit\*(rq command will return control to \fIbbc\fR, +and \fIbbc\fR will continue examining the list of BBoards +that it is scanning. + +If the file is writable and has been modified, +then using \*(lqquit\*(rq will query the user if the file should be updated. + +The `\-prompt string' switch sets the prompting string for \fImsh\fR. + +You may wish to use an alternate \fIMH\fR profile for the commands that +\fImsh\fR executes; +see \fImh-profile\fR\0(5) for details about the \fB$MH\fR envariable. + +When invoked from \fIbbc\fR, +two special features are enabled: +First, +the `\-scan' switch directs \fImsh\fR to do a `scan\0unseen' on +start\-up if new items are present in the BBoard. +This feature is best used from \fIbbc\fR, +which correctly sets the stage. +Second, +the \fImark\fR command in \fImsh\fR acts specially when you are reading +a BBoard, +since \fImsh\fR will consult the sequence \*(lqunseen\*(rq in determining +what messages you have actually read. +When \fImsh\fR exits, it reports this information to \fIbbc\fR. +In addition, if you give the \fImark\fR command with no arguments, +\fImsh\fR will interpret it +as `mark\0\-sequence\0unseen\0\-delete\0\-nozero\0all' +Hence, to discard all of the messages in the current BBoard you're +reading, just use the \fImark\fR command with no arguments. + +Normally, the \*(lqexit\*(rq command is identical to the \*(lqquit\*(rq +command in \fImsh\fR. +When run under \fIbbc\fR however, \*(lqexit\*(rq directs \fImsh\fR to mark +all messages as seen and then \*(lqquit\*(rq. +For speedy type\-in, +this command is often abbreviated as just \*(lqe\*(rq. + +When invoked from \fIvmh\fR, +another special feature is enabled: +The `topcur' switch directs \fImsh\fR to have the current message +\*(lqtrack\*(rq the top line of the \fIvmh\fR scan window. +Normally, \fImsh\fR has the current message \*(lqtrack\*(rq the center of the +window (under `\-notopcur', which is the default). + +\fImsh\fR supports an output redirection facility. +Commands may be followed by one of + +.nf +.in +.5i +.ta \w'| \fIcommand\fR 'u +^> \fIfile\fR~^write output to \fIfile\fR +^>> \fIfile\fR~^append output to \fIfile\fR +^| \fIcommand\fR~^pipe output to UNIX \fIcommand\fR +.re +.in -.5i +.fi + +If \fIfile\fR starts with a `\~' (tilde), +then a \fIcsh\fR-like expansion takes place. +Note that \fIcommand\fR is interpreted by \fIsh\fR\0(1). +Also note that \fImsh\fR does NOT support +history substitutions, variable substitutions, or alias substitutions. + +When parsing commands to the left of any redirection symbol, +\fImsh\fR will honor `\\' (back\-slash) as the quote next\-character symbol, +and `"' (double\-quote) as quote\-word delimiters. +All other input tokens are separated by whitespace +(spaces and tabs). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@@(MHETCPATH)/mtstailor~^tailor file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +.Ps +^fileproc:~^Program to file messages +.Ps +^showproc:~^Program to show messages +.Sa +bbc(1) +.De +`file' defaults to \*(lq./msgbox\*(rq +.Ds +`\-prompt\ (msh)\ ' +.Ds +`\-noscan' +.Ds +`\-notopcur' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fImsh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +There is a strict limit of messages per file in \fIpackf\fR'd format which +\fImsh\fR can handle. +Usually, this limit is 1000 messages. + +Please remember that \fImsh\fR is not the \fICShell\fR, +and that a lot of the nice facilities provided by the latter are not +present in the former. + +In particular, \fImsh\fR does not understand back\-quoting, +so the only effective way to use \fIpick\fR inside \fImsh\fR is to always use +the `\-seq\0select' switch. +Clever users of \fIMH\fR will put the line + +.ti +.5i +pick:\0\-seq\0select\0\-list + +in their \&.mh\(ruprofile file so that \fIpick\fR works equally well from +both the shell and \fImsh\fR. + +\fIsortm\fR always uses \*(lq\-noverbose\*(rq and +if \*(lq\-textfield\ field\*(lq is used, \*(lq\-limit 0\*(rq. + +The \fImsh\fR program inherits most (if not all) of the bugs from the +\fIMH\fR commands it implements. +.En +@ + + +1.8 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d66 4 +@ + + +1.7 +log +@typo +@ +text +@d2 1 +@ + + +1.6 +log +@fix +@ +text +@d1 1 +a1 1 +\" @@(MHWARNING) +@ + + +1.5 +log +@document sortm defieciencies +@ +text +@d1 1 +a1 1 +.\" @@(MHWARNING) +d217 2 +a218 2 +\fIsortm\fR switches \*(lq\-\[no\]verbose\*(rq and \*(lq\-\[no\]limit\*(rq +are unimplemented. +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d217 3 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH MSH 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH MSH 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC MSH 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/next.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/next.rf,v new file mode 100644 index 0000000..cb5bfe4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/next.rf,v @@ -0,0 +1,161 @@ +head 1.6; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.6 +date 90.12.17.16.03.31; author mh; state Exp; +branches ; +next 1.5; + +1.5 +date 90.04.05.15.13.47; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.31; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.10; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.28; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.11; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.6 +log +@delete "-format" default +jlr +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: next.rf,v 1.5 90/04/05 15:13:47 sources Exp Locker: mh $ +.SC NEXT 1 +.NA +next \- show the next message +.SY +next +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fINext\fR performs a \fIshow\fR on the next message in the specified +(or current) folder. +Like \fIshow\fR, it passes any switches on to the +program \fIshowproc\fR, which is called to list the message. +This command +is almost exactly equivalent to \*(lqshow next\*(rq. +Consult the manual entry for \fIshow\fR\0(1) for all the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^showproc:~^Program to show the message +.Sa +show(1), prev(1) +.De +`+folder' defaults to the current folder +.Ds +`\-header' +.Co +If a folder is specified, it will become the current folder. +The message that is shown (i.e., the next message in sequence) +will become the current message. +.Bu +\fInext\fR is really a link to the \fIshow\fR program. +As a result, +if you make a link to \fInext\fR and that link is not called \fInext\fR, +your link will act like \fIshow\fR instead. +To circumvent this, +add a profile\-entry for the link to your \fIMH\fR profile and add the +argument \fInext\fR to the entry. +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +a32 2 +.Ds +`\-format' +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH NEXT 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH NEXT 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC NEXT 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/packf.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/packf.rf,v new file mode 100644 index 0000000..95489da --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/packf.rf,v @@ -0,0 +1,202 @@ +head 1.8; +access; +symbols; +locks; strict; + + +1.8 +date 92.05.12.22.24.59; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.14.17.18.50; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.02.11.19.05.24; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.13.54; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.32; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.11; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.29; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.13; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.8 +log +@put "MH" in title +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: packf.rf,v 1.7 1992/02/14 17:18:50 jromine Exp jromine $ +.SC PACKF 1 +.NA +packf \- compress an MH folder into a single file +.SY +packf +\%[+folder] \%[msgs] +\%[\-file\ name] +\%[\-help] +.DE +\fIPackf\fR +takes messages from a folder and copies them to a single file. +Each message in the file is separated by four CTRL\-A's and a +@@BEGIN: MMDFMTS +newline (identical to the way messages are stored in your receiving mail drop). +@@END: MMDFMTS +@@BEGIN: MHMTS +newline (identical to the way messages are stored in your receiving mail drop). +@@END: MHMTS +@@BEGIN: SENDMTS +newline. +@@END: SENDMTS +Messages packed can be unpacked using \fIinc\fR. + +If the \fIname\fR given to the `\-file\ name' switch exists, +then the messages specified +will be appended to the end of the file, otherwise the file will be created +and the messages appended. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^\&.msgbox\&.map~^A binary index of the file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +.Sa +inc(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-file ./msgbox' +.Co +If a folder is given, it will become the current folder. +The first message packed will become the current message. +.Bu +\fIPackf\fP doesn't handle the old UUCP-style \*(lqmbox\*(rq format +(used by \fISendMail\fP). +To pack messages into this format, +use the script \fI@@(MHETCPATH)/packmbox\fP. +Note that \fIpackmbox\fP does not take the `\-file' option of \fIpackf\fP, +and instead writes its output on \fIstdout\fP. +.En +@ + + +1.7 +log +@document packmbox +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: packf.rf,v 1.6 1992/02/11 19:05:24 jromine Exp jromine $ +d5 1 +a5 1 +packf \- compress a folder into a single file +@ + + +1.6 +log +@document .map files +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: packf.rf,v 1.5 1990/04/05 15:13:54 sources Exp jromine $ +d50 7 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d32 1 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH PACKF 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH PACKF 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC PACKF 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/pick.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/pick.rf,v new file mode 100644 index 0000000..dfd6f17 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/pick.rf,v @@ -0,0 +1,489 @@ +head 1.9; +access; +symbols; +locks; strict; + + +1.9 +date 92.10.27.00.03.47; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.02.12.00.23.24; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.04.00.50.57; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.12.18.14.57.30; author mh; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.14.01; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.33; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.13; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.30; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.14; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@document [a-z] decificiency +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: pick.rf,v 1.8 1992/02/12 00:23:24 jromine Exp jromine $ +.SC PICK 1 +.NA +pick \- select messages by content +.SY +.ie t \{\ +.ta .4i 1.8i +.nf +.in .5i +^pick~^^\0\-cc~^ \%[+folder] \%[msgs] \%[\-help] +^^^\0\-date~^ \%[\-before\ date] \%[\-after\ date] \%[\-datefield\ field] +^^^\0\-from~^ +^^^\s+2\b'\(lt\(bv\(bv\(lk\(bv\(bv\(lb'\s0\-search~\s+2\b'\(rt\(bv\(bv\(rk\(bv\(bv\(rb'\s0^ pattern \%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +^^^\0\-subject~^ +^^^\0\-to~^ \%[\-sequence\ name\ ...] \%[\-public] \%[\-nopublic] \%[\-zero] \%[\-nozero] +^^^\0\-\|\-component~^ \%[\-list] \%[\-nolist] +.fi +.re +.in 1i +.\} +.el \{\ +.ti .5i +pick +\%[+folder] \%[msgs] +\%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +\%[\-\|\-component\ pattern] +\%[\-cc\ pattern] +\%[\-date\ pattern] +\%[\-from\ pattern] +\%[\-search\ pattern] +\%[\-subject\ pattern] +\%[\-to\ pattern] +\%[\-after\ date] \%[\-before\ date] \%[\-datefield\ field] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-list] \%[\-nolist] +\%[\-help] +.\} + +.ti .5i +typically: +.br +scan\0`pick\0\-from\0jones` +.br +pick\0\-to\0holloway\0\-sequence\0select +.br +show\0`pick\0\-before\0friday` +.DE +\fIPick\fR searches messages within a folder for the specified +contents, and then identifies those messages. +Two types of search primitives are available: +pattern matching and date constraint operations. + +A modified \fIgrep\fR(1) is used to perform the matching, so the +full regular expression (see \fIed\fR(1)) facility is available +within `pattern'. +With `\-search', `pattern' is used directly, +and with the others, the grep pattern constructed is: + +.ti +.5i +\*(lqcomponent[ \\t]*:\&.*pattern\*(rq + +This means that the pattern specified for a `\-search' will be +found everywhere in the message, including the header and the body, +while the other pattern matching requests are limited to the single +specified component. +The expression + +.ti +.5i +`\-\|\-component\ pattern' + +is a shorthand for specifying + +.ti +.5i +`\-search \*(lqcomponent[ \\t]*:\&.*pattern\*(rq\ ' + +It is used to pick a component which is not one of +\*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqDate:\*(rq, \*(lqFrom:\*(rq, +or \*(lqSubject:\*(rq. +An example is `pick\0\-\|\-reply\-to\0pooh'. + +Pattern matching is performed on a per\-line basis. +Within the header of +the message, each component is treated as one long line, but in +the body, each line is separate. +Lower\-case letters in the +search pattern will match either lower or upper case in the +message, while upper case will match only upper case. + +Note that since the `\-date' switch is a pattern matching operation (as +described above), +to find messages sent on a certain date +the pattern string must match the text of the +\*(lqDate:\*(rq field of the message. + +Independent of any pattern matching operations requested, +the switches `\-after date' or `\-before date' may also be used +to introduce date/time contraints on all of the messages. +By default, the \*(lqDate:\*(rq field is consulted, +but if another date yielding field +(such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq) should be used, +the `\-datefield\ field' switch may be used. + +With `\-before' and `\-after', +\fIpick\fR will actually parse the date fields in each of the messages +specified in `msgs' +and compare them to the date/time specified. +If `\-after' is given, +then only those messages whose \*(lqDate:\*(rq field value +is chronologically after +the date specified will be considered. +The `\-before' switch specifies the complimentary action. + +Both the `\-after' and `\-before' switches take legal 822\-style date +specifications as arguments. +\fIPick\fR will default certain missing fields so that the entire date +need not be specified. +These fields are (in order of defaulting): +timezone, time and timezone, date, date and timezone. +All defaults are taken from the current date, time, and timezone. + +In addition to 822\-style dates, +\fIpick\fR will also recognize any of the days of the week +(\*(lqsunday\*(rq, \*(lqmonday\*(rq, and so on), +and the special dates +\*(lqtoday\*(rq, \*(lqyesterday\*(rq (24 hours ago), +and \*(lqtomorrow\*(rq (24 hours from now). +All days of the week are judged to refer to a day in the past +(e.g., telling \fIpick\fR \*(lqsaturday\*(rq on +a \*(lqtuesday\*(rq means \*(lqlast\ saturday\*(rq +not \*(lqthis\ saturday\*(rq). + +Finally, in addition to these special specifications, +\fIpick\fR will also honor a specification of the form \*(lq\-dd\*(rq, +which means \*(lqdd days ago\*(rq. + +\fIPick\fR supports complex boolean operations on the searching primitives +with the `\-and', `\-or', `\-not', and `\-lbrace\ ...\ \-rbrace' switches. +For example, + +.ti +.5i +.ie t \{\ +pick\0\-after\0yesterday\0\-and\0\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace +.\} +.el \{\ +pick\0\-after\0yesterday\0\-and +.br +.ti +1i +\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace +.\} + +identifies messages recently sent by \*(lqfrieda\*(rq or \*(lqfear\*(rq. + +The matching primitives take precedence over the `\-not' switch, +which in turn takes precedence over `\-and' +which in turn takes precedence over `\-or'. +To override the default precedence, +the `\-lbrace' and `\-rbrace' switches are provided, +which act just like opening and closing parentheses in logical expressions. + +If no search criteria are given, all the messages +specified on the command +line are selected (this defaults to \*(lqall\*(rq). + +Once the search has been performed, +if the `\-list' switch is given, +the message numbers of the selected messages are written to the standard +output separated by newlines. +This is \fIextremely\fR useful for quickly generating arguments for other +\fIMH\fR programs by using the \*(lqbackquoting\*(rq syntax of the shell. +For example, +the command + +.ti +.5i +scan\0`pick\0+todo\0\-after\0\*(lq31 Mar 83 0123 PST\*(rq` + +says to \fIscan\fR those messages in the indicated folder which meet the +appropriate criterion. +Note that since \fIpick\fR\0's context changes are written out prior to +\fIscan\fR\0's invocation, +you need not give the folder argument to \fIscan\fR as well. + +Regardless of the operation of the `\-list' switch, +the `\-sequence name' switch may be given once for each sequence the user +wishes to define. +For each sequence named, +that sequence will be defined to mean exactly those messages selected by +\fIpick\fR. +For example, + +.ti +.5i +pick\0\-from\0frated\0\-seq\0fred + +defines a new message sequence for the current folder called \*(lqfred\*(rq +which contains exactly those messages that were selected. + +Note that whenever \fIpick\fR processes a `\-sequence\ name' switch, +it sets `\-nolist'. + +By default, \fIpick\fR will zero the sequence before adding it. +This action can be disabled with the `\-nozero' switch, +which means that the messages selected by \fIpick\fR will be added to the +sequence, if it already exists, and any messages already a part of that +sequence will remain so. + +The `\-public' and `\-nopublic' switches are used by \fIpick\fR in the same +way \fImark\fR uses them. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +mark(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-datefield date' +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-zero' +.Ds +`\-list' is the default if no `\-sequence', `\-nolist' otherwise +.Co +If a folder is given, it will become the current folder. +.Hi +In previous versions of \fIMH\fR, +the \fIpick\fR command would \fIshow\fR, \fIscan\fR, or \fIrefile\fR the +selected messages. +This was rather \*(lqinverted logic\*(rq from the UNIX point of view, +so \fIpick\fR was changed to define sequences and output those sequences. +Hence, \fIpick\fR can be used to generate the arguments for all other +\fIMH\fR commands, +instead of giving \fIpick\fR endless switches for invoking those commands +itself. + +Also, previous versions of \fIpick\fR balked if you didn't specify a search +string or a date/time constraint. +The current version does not, and merely matches the messages you specify. +This lets you type something like: + +.ti +.5i +show\0`pick\0last:20\0\-seq\0fear` + +instead of typing + +.in +.5i +.nf +mark\0\-add\0\-nozero\0\-seq\0fear\0last:20 +show\0fear +.fi +.in -.5i + +Finally, +timezones used to be ignored when comparing dates: +they aren't any more. +.Hh +Use \*(lqpick sequence \-list\*(rq +to enumerate the messages in a sequence (such as for use +by a shell script). +.Bu +The argument to the `\-after' and `\-before' switches must be interpreted +as a single token by the shell that invokes \fIpick\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +Furthermore, +any occurance of `\-datefield' must occur prior to the `\-after' +or `\-before' switch it applies to. + +If \fIpick\fR is used in a back\-quoted operation, +such as + +.ti +.5i +scan\0`pick\0\-from\0jones` + +and \fIpick\fR selects no messages +(e.g., no messages are from \*(lqjones\*(rq), +then the shell will still run the outer command (e.g., \*(lqscan\*(rq). +Since no messages were matched, +\fIpick\fR produced no output, +and the argument given to the outer command as a result of backquoting +\fIpick\fR is empty. +In the case of \fIMH\fR programs, +the outer command now acts as if the default `msg' or `msgs' should be used +(e.g., \*(lqall\*(rq in the case of \fIscan\fR\0). +To prevent this unexpected behavior, +if `\-list' was given, +and if its standard output is not a tty, +then \fIpick\fR outputs the illegal message number \*(lq0\*(rq when it fails. +This lets the outer command fail gracefully as well. +.sp +The pattern syntax \*(lq[l-r]\*(rq is not supported; each letter +to be matched must be included within the square brackets. +.En +@ + + +1.8 +log +@reformat +add hints +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: pick.rf,v 1.7 1992/02/04 00:50:57 jromine Exp jromine $ +d263 4 +d297 3 +a299 4 +.Hh +Use \*(lqpick sequence \-list\*(rq +to enumerate the messages in a sequence (such as for use +by a shell script). +@ + + +1.7 +log +@add -cc/date/from/... +nroff man page didn't include them. +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: pick.rf,v 1.6 90/12/18 14:57:30 mh Exp $ +d144 1 +d146 7 +d163 4 +d278 2 +a279 1 +and \fIpick\fR fails (e.g., no messages are from \*(lqjones\*(rq), +d293 4 +@ + + +1.6 +log +@clean up formatting. describe '-date' better +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: pick.rf,v 1.5 90/04/05 15:14:01 sources Exp Locker: mh $ +d28 6 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d86 6 +d99 3 +a101 1 +\fIPick\fR will actually parse the date fields in each of the messages +d103 1 +a103 4 +(unlike the `\-date' switch described above which does a pattern matching +operation), +and compare them to the date/time specified by use of the `\-after' +and `\-before' switches. +d117 1 +d122 2 +a123 1 +\*(lqtoday\*(rq, \*(lqyesterday\*(rq, and \*(lqtomorrow\*(rq. +d128 1 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH PICK 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH PICK 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC PICK 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/pop5.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/pop5.rf,v new file mode 100644 index 0000000..aa037fa --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/pop5.rf,v @@ -0,0 +1,166 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.14.09; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.34; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.16; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.31; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.15; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC POP 5 +.NA +POP \- POP database of subscribers +.SY +/usr/spool/pop/POP +.DE +The POP database has exactly the same format as the \fIBBoards\fR\0(5) +database, +although many fields are unused. +Currently, +only four fields are examined: + +.nf +.ta \w'encrypted password 'u +\fIfield\fR \fIvalue\fR +name the POP subscriber +primary file the maildrop for the POP subscriber + (relative to the POP directory) +encrypted password the POP subscriber's password +network address the remote user allowed to RPOP +.re +.fi + +This is an ASCII file. Each field within each POP subscriber's entry +is separated from the next by a colon. +Each POP subscriber is separated from the next by a new-line. +If the password field is null, then no password is valid. + +To add a new POP subscriber, +edit the file adding a line such as + +.ti +.5i +mrose::mrose:::::::0 + +Then, use \fIpopwrd\fR to set the password for the POP subscriber. +If you wish to allow POP subscribers to access their maildrops without +supplying a password (by using privileged ports), +fill\-in the network address field, as in: + +.ti +.5i +mrose::mrose:::mrose@@nrtc-isc::::0 + +which permits \*(lqmrose@@nrtc\-isc\*(rq to access the maildrop for the POP +subscriber \*(lqmrose\*(rq. +Multiple network addresses may be specified by separating them with commas, +as in: + +.ti +.5i +dave::dave:9X5/m4yWHvhCc::dave@@romano.wisc.edu,dave@@rsch.wisc.edu:::: + +To disable a POP subscriber from \fIreceiving\fR mail, +set the primary file name to the empty string. +To prevent a POP subscriber from \fIpicking\-up\fR mail, +set the encrypted password to \*(lq*\*(rq +and set the network address to the empty string. + +This file resides in home directory of the login \*(lqpop\*(rq. +Because of the encrypted passwords, +it can and does have general read permission. +.Fi +^/usr/spool/pop/POP~^POP database +.Sa +bboards(5), pop(8), popaka(8), popd(8), popwrd(8) +.Bu +A binary indexed file format should be available for fast access. + +Appropriate precautions must be taken to lock the file against changes +if it is to be edited with a text editor. +A \fIvipop\fR program is needed. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH POP 5 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH POP 5 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC POP 5 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/pop8.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/pop8.rf,v new file mode 100644 index 0000000..4c3ab13 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/pop8.rf,v @@ -0,0 +1,128 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.14.16; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.36; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.17; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.32; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.17; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC POP 8 +.NA +pop \- POP channel/mailer +.SY +/usr/mmdf/chans/pop +fd1 fd2 \%[y] + +.ti .5i +@@(MHETCPATH)/spop +POP\-subscriber\ ... +.DE +For \fIMMDF\-II\fR, the POP channel delivers mail to the POP spool area for +later retrieval by POP subscribers. +For \fISendMail\fR, the SPOP mailer performs this task. + +For each address given, +these programs consult the \fIpop\fR\0(5) file to obtain information +about the POP\-subscriber named by the address. +The programs then deliver the message to the spool area for the +POP\-subscriber. +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +bboards(5), bbaka(8) +.De +None +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH POP 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH POP 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC POP 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/popaka.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/popaka.rf,v new file mode 100644 index 0000000..220fdc7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/popaka.rf,v @@ -0,0 +1,118 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.14.23; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.38; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.18; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.33; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.18; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC POPAKA 8 +.NA +popaka \- generate POP entries for SendMail or MMDF\-II alias file +.SY +@@(MHETCPATH)/popaka +.DE +The \fIpopaka\fR program reads the POP database and produces +on its standard output a file suitable for inclusion in the SendMail or +\fIMMDF\-II\fR aliases +file. +The contents of this file divert mail for POP subscribers to the POP channel. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +pop(5) +.De +None +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH POPAKA 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH POPAKA 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC POPAKA 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/popauth.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/popauth.rf,v new file mode 100644 index 0000000..eb5592f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/popauth.rf,v @@ -0,0 +1,64 @@ +head 1.1; +access; +symbols; +locks; strict; +comment @# @; + + +1.1 +date 92.02.06.22.46.24; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.1 +log +@Initial revision +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id$ +.SC POPAUTH 8 +.NA +popauth - manipulate POP authorization DB +.SY +popauth +\%[\-init] \%[\-list] \%[\-user\ name] +\%[\-help] +.DE +The \fIpopauth\fR program allows a POP-subscriber to change the secret +value used to generate their authentication credentials. +In addition, +the super\-user or master POP user may use this program to either +initialize the database or to print public information from it. +\fIpopauth\fR is useful only when the APOP configuration option is defined. +(This configuration option defines the name of the POP authorization DB.) + +Under normal usage, +\fIpopauth\fR prompts for a new secret, +just like the \fIpasswd\fR program. +It then updates the POP authorization DB accordingly. + +With the `\-init' switch, +the super-user or master POP user can create a new (or zero the existing) +POP authorization DB. + +With the `\-list' switch, +the super-user or master POP user can print out public information +about the named subscriber (or all subscribers). +.Fi +^/etc/pop.auth.*~^POP authorization DB +.Pr +None +.Sa +popd(8) +.De +None +.Co +None +.En +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/popd.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/popd.rf,v new file mode 100644 index 0000000..748ddc4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/popd.rf,v @@ -0,0 +1,227 @@ +head 1.9; +access; +symbols; +locks; strict; + + +1.9 +date 92.02.04.21.13.28; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 90.04.09.20.22.49; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.04.09.10.06.15; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.09.09.56.01; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.10.37; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.39; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.20; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.34; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.13.10.22; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@contributed patch +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: popd.rf,v 1.8 1990/04/09 20:22:49 sources Exp jromine $ +.SC POPD 8 +.NA +popd \- the POP server +.SY +/usr/etc/popd +\%[\-p\ portno] +(under /etc/rc.local) +.DE +The \fIpopd\fR server implements the Post Office Protocol (version 3), +as described in RFC1081 and RFC1082. +Basically, the server listens on the TCP port named \*(lqpop\*(rq +for connections and enters the +POP upon establishing a connection. +The `\-p' option overrides the default TCP port. +.PP +If the POP2 configuration option is defined, +then the server also implements version 2 of the protocol. +.PP +If the APOP configuration option is defined, +then the server supports a non-standard mechanism for identity-establishment +in which authentication credentials are used to provide for origin +authentication and reply protection, +but which do not involve sending a password in the clear over the network. +See \fIpopauth\fR(8) for more details. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +\fIPost Office Protocol - version 3\fR (aka RFC\-1081), +.br +\fIPost Office Protocol - version 3: Extended service offerings\fP +(RFC\-1082), +.br +pop(5) +.De +None +.Co +None +.Hi +For historical reasons, the \fIMH\fP POP defaults to using +the port named \*(lqpop\*(rq (109) instead of its newly assigned +port named \*(lqpop3\*(rq (110). +See the POPSERVICE configuration option for more details. +.sp +Previous versions of the server (10/28/84) had the restriction that +the POP client may retrieve messages for login users only. +This restriction has been lifted, +and true POB support is available +(sending mail to a mailbox on the POP service host +which does not map to a user\-id in the password file). +.En +@ + + +1.8 +log +@fixup RFC references +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: popd.rf,v 1.7 90/04/09 10:06:15 sources Exp Locker: sources $ +d11 1 +a11 1 +The \fIpopd\fR server implements the Post Office protocol, +d17 10 +@ + + +1.7 +log +@*** empty log message *** +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: popd.rf,v 1.6 90/04/09 09:56:01 sources Exp Locker: sources $ +d12 1 +a12 1 +as described in RFC819 (revised, \fIMH\fR internal). +d25 1 +a25 1 +(RFC\-1082). +@ + + +1.6 +log +@*** empty log message *** +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: popd.rf,v 1.5 90/04/05 15:10:37 sources Exp Locker: sources $ +d13 2 +a14 1 +Basically, the server listens on TCP port 109 for connections and enters the +d33 5 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d21 4 +a24 1 +\fIPost Office Protocol (revised)\fR (aka RFC\-819 with revisions), +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH POPD 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH POPD 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC POPD 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/popi.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/popi.rf,v new file mode 100644 index 0000000..89cb04b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/popi.rf,v @@ -0,0 +1,147 @@ +head 1.1; +access; +symbols; +locks; strict; +comment @# @; + + +1.1 +date 92.02.06.22.46.24; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.1 +log +@Initial revision +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id$ +.SC POPI 1 +.NA +popi \- POP initiator +.SY +popi +\%[+folder] +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@@BEGIN: BPOP +\%[\-auto] \%[\-noauto] +\%[\-mshproc\ program] +@@END: BPOP +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +\%[\-help] +.DE +\fIpopi\fR is an interactive program that implements the client side +of the Post Office Protocol (version 3). + +When invoked, +\fIpopi\fR establishes a POP connection, +and enters a command loop. +The user may type most of the normal POP commands, +with a couple of additions: +The commands that \fIpop\fR currently supports are: +.sp 1 +.in +.5i +dele msg +.br +last +.br +list [msg] +.br +noop +.br +quit +.br +retr msg +.br +rset +.br +scan +.br +stat +.br +top +@@BEGIN: BPOP +.br +msh +@@END: BPOP +.in -.5i +.sp +The \fIretr\fR command retrieves a message into the folder specified +on the command line. +The \fIscan\fR command downloads an MH format-string to the server +(as determined from the `\-form\ formatfile' and `\-format switches), +so that future invocations of the \fIlist\fR command will include a +scan listing. +The \fIquit\fR command terminates \fIpopi\fR, +as does typing CTRL\-D. + +@@BEGIN: BPOP +The \fImsh\fR command invokes the \fImshproc\fR. +To override the default \fImshproc\fR and the profile entry, +use the `\-mshproc\ program' switch. +The `\-auto' switch causes \fIpopi\fR to invoke the \fImshproc\fR directly, +and thence terminate when the \fImshproc\fR terminates. +@@END: BPOP + +The `\-host\ host' switch specifies the POP server to use. +If the `\-user\ user' switch is not given, +then the current username is used. +Normally, +\fIpopi\fR will prompt for a password to use. +However, +if the `\-apop' switch is given, +\fIpopi\fR will generate authentication credentials to provide +for origin authentication and replay protection, +but which do not involve sending a password in the clear over the network. +Otherwise, +if the `\-rpop' switch is given, +then \fIpopi\fR will try to use a \*(lqtrusted\*(rq connection +(ala the BSD r-commands). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@@(MHETCPATH)/mtstailor~^tailor file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +@@BEGIN: BPOP +.Ps +^mshproc:~^Program to read a given BBoard +@@END: BPOP +.Sa +msh(1) +.De +`+folder' defaults to \*(lqinbox\*(rq +.Ds +`\-noapop' +.Ds +`\-norpop' +@@BEGIN: BPOP +.Ds +`\-auto' +@@END: BPOP +.Ds +`\-format' defaulted as described above +.Ds +`\-width' defaulted to the width of the terminal +.Co +The folder into which messages are being incorporated will become the +current folder. +The current message is unchanged. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIinc\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/popwrd.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/popwrd.rf,v new file mode 100644 index 0000000..6921ac2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/popwrd.rf,v @@ -0,0 +1,127 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.14.29; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.40; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.21; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.35; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.20; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC POPWRD 8 +.NA +popwrd \- set password for a POP subscriber +.SY +@@(MHETCPATH)/popwrd +POP\-subscriber +.DE +The \fIpopwrd\fR program lets the super\-user or the master POP user +or a \*(lqleader\*(rq of a POP subscriber change the password field for the +POP subscriber in the POP database. +This program is very similar to the \fIpasswd\fR\0(1) program. + +Since only the super\-user and the master POP user may change any other +fields of the POP database (using an ordinary editor), +it is possible for the system administrator to delegate responsibility to +others to manage groups of POP subscribers. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +pop(5) +.De +None +.Co +None +.Bu +Although \fIpopwrd\fR does locking against other invocations of \fIpopwrd\fR, +editor locking for the POP database in general is not implemented. +A \fIvipop\fR program is needed. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH POPWRD 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH POPWRD 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC POPWRD 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/post.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/post.rf,v new file mode 100644 index 0000000..6f2bcdc --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/post.rf,v @@ -0,0 +1,259 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.10.29.22.24.50; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.10.16.21.36.19; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.14.35; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.41; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.22; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.36; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.20; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@typo +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: post.rf,v 1.6 1992/10/16 21:36:19 jromine Exp jromine $ +.SC POST 8 +.NA +post \- deliver a message +.SY +@@(MHETCPATH)/post +\%[\-alias\ aliasfile] +\%[\-filter\ filterfile] \%[\-nofilter] +@@BEGIN: TMA +\%[\-encrypt] \%[\-noencrypt] +@@END: TMA +\%[\-format] \%[\-noformat] +@@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@@END: MIME +\%[\-msgid] \%[\-nomsgid] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +file +\%[\-help] +.DE +\fIPost\fR is the program called by \fIsend\fR\0(1) +to deliver the message in \fIfile\fR to local and remote users. +In fact, all of the functions attributed to \fIsend\fR +on its manual page are performed by \fIpost\fR, +with \fIsend\fR acting as a relatively simple preprocessor. +Thus, it is \fIpost\fR which parses the various header fields, +appends From: and Date: lines, +@@BEGIN: MMDFMTS +and interacts with the \fIMMDF\fR transport system. +@@END: MMDFMTS +@@BEGIN: MHMTS +and delivers and/or queues the messages. +@@END: MHMTS +@@BEGIN: SENDMTS +and interacts with the \fISendMail\fR transport system. +@@END: SENDMTS +\fIPost\fR will not normally be called directly by the user. + +\fIPost\fR +searches the \*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqBcc:\*(rq, \*(lqFcc:\*(rq, and \*(lqResent\-xxx:\*(rq +header lines of +the specified message for destination addresses, checks these +addresses for validity, and formats them so as to conform to +ARPAnet Internet Message Format protocol, +unless the `\-noformat' flag is set. +This will normally cause \*(lq@@\fIlocal\-site\fR\*(rq to +be appended to each local destination address, as well +as any local return addresses. +The `\-width\ columns' switch can be used to indicate the preferred length +of the header components that contain addresses. + +If a \*(lqBcc:\*(rq field is encountered, +its addresses will be used for delivery, +and the \*(lqBcc:\*(rq field will be removed from the message sent to sighted +recipients. +The blind recipients will receive an entirely new message with +a minimal set of headers. +Included in the body of the message will be a copy of the message sent to the +sighted recipients. +If `\-filter\ filterfile' is specified, +then this copy is filtered (re\-formatted) +prior to being sent to the blind recipients. +@@BEGIN: MIME +Otherwise, +to use the MIME rules for encapsulation, +specify the `\-mime' switch. +@@END: MIME + +The `\-alias\ aliasfile' switch can be used to specify a file that post should +take aliases from. More than one file can be specified, each being preceded +with `\-alias'. +In any event, +the primary alias file is read first. + +The `\-msgid' switch indicates that +a \*(lqMessage\-ID:\*(rq or \*(lqResent\-Message\-ID:\*(rq +field should be added to the header. + +The `\-verbose' switch indicates that the user should be informed of each +step of the posting/filing process. + +The `\-watch' switch indicates that the user would like to watch the transport +system's handling of the message (e.g., local and \*(lqfast\*(rq delivery). + +\fIPost\fR consults the envariable \fB$SIGNATURE\fR to +determine the sender's personal name in constructing the \*(lqFrom:\*(rq line +of the message. +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +^@@(MHBINPATH)/refile~^Program to process Fcc:s +^@@(MHETCPATH)/mhl~^Program to process Bcc:s +^@@(MHETCPATH)/MailAliases~^Primary alias file +.Pr +\fIpost\fR does \fBNOT\fR consult the user's \&.mh\(ruprofile +.Sa +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822), +.br +mhmail(1), send(1), mh\-mail(5), mh\-alias(5) +.De +`\-alias @@(MHETCPATH)/MailAliases' +@@BEGIN: TMA +`\-noencrypt' +@@END: TMA +.Ds +`\-format' +@@BEGIN: MIME +.Ds +`\-nomime' +@@END: MIME +.Ds +`\-nomsgid' +.Ds +`\-noverbose' +.Ds +`\-nowatch' +.Ds +`\-width\ 72' +.Ds +`\-nofilter' +.Co +None +.Bu +\*(lqReply\-To:\*(rq fields are allowed to have groups in them according to the +822 specification, +but \fIpost\fR won't let you use them. +.En +@ + + +1.6 +log +@MIME changes +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: post.rf,v 1.5 1990/04/05 15:14:35 sources Exp jromine $ +d118 1 +a118 1 +'\-nowatch' +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d14 3 +d66 5 +d109 4 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH POST 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH POST 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC POST 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/prev.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/prev.rf,v new file mode 100644 index 0000000..dc61186 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/prev.rf,v @@ -0,0 +1,161 @@ +head 1.6; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.6 +date 90.12.17.16.03.39; author mh; state Exp; +branches ; +next 1.5; + +1.5 +date 90.04.05.15.14.42; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.42; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.23; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.37; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.22; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.6 +log +@delete "-format" default +jlr +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: prev.rf,v 1.5 90/04/05 15:14:42 sources Exp Locker: mh $ +.SC PREV 1 +.NA +prev \- show the previous message +.SY +prev +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[\-switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fIPrev\fR performs a \fIshow\fR on the previous message in the specified +(or current) folder. +Like \fIshow\fR, it passes any switches on to the +program named by \fIshowproc\fR, which is called to list the message. +This command +is almost exactly equivalent to \*(lqshow prev\*(rq. +Consult the manual entry for \fIshow\fR\0(1) for all the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^showproc:~^Program to show the message +.Sa +show(1), next(1) +.De +`+folder' defaults to the current folder +.Ds +`\-header' +.Co +If a folder is specified, it will become the current folder. +The message that is shown (i.e., the previous message in sequence) +will become the current message. +.Bu +\fIprev\fR is really a link to the \fIshow\fR program. +As a result, +if you make a link to \fIprev\fR and that link is not called \fIprev\fR, +your link will act like \fIshow\fR instead. +To circumvent this, +add a profile\-entry for the link to your \fIMH\fR profile and add the +argument \fIprev\fR to the entry. +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +a32 2 +.Ds +`\-format' +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH PREV 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH PREV 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC PREV 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/prompter.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/prompter.rf,v new file mode 100644 index 0000000..e230e1d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/prompter.rf,v @@ -0,0 +1,260 @@ +head 1.8; +access; +symbols; +locks; strict; + + +1.8 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 90.12.18.15.12.01; author mh; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.09.05; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.43; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.42.24; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.38; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.08.13.48.04; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.08.13.47.11; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.8 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: prompter.rf,v 1.7 1990/12/18 15:12:01 mh Exp jromine $ +.SC PROMPTER 1 +.NA +prompter \- prompting editor front-end for MH +.SY +prompter +\%[\-erase\ chr] +\%[\-kill\ chr] +\%[\-prepend] \%[\-noprepend] +\%[\-rapid] \%[\-norapid] +\%[\-doteof] \%[\-nodoteof] +file +\%[\-help] +.DE +This program is normally not invoked directly by users +but takes the place of an editor and acts as an editor front\-end. +It operates on an 822\-style message draft skeleton specified by file, +normally provided by \fIcomp\fR, \fIdist\fR, \fIforw\fR, or \fIrepl\fR. + +\fIPrompter\fR is an editor which allows rapid composition of +messages. +It is particularly useful to network and low\-speed +(less than 2400 baud) users of \fIMH\fR. +It is an \fIMH\fR program in that +it can have its own profile entry with switches, +but it is not invoked directly by the user. +The commands \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR +invoke \fIprompter\fR as an editor, +either when invoked with `\-editor\ prompter', +or by the profile entry \*(lqEditor:\ prompter\*(rq, +or when given the command `edit\ prompter' at \*(lqWhat now?\*(rq level. + +For each empty component \fIprompter\fR finds in the draft, +the user is prompted for a response; +A will cause the whole component to be left out. +Otherwise, +a `\\' preceding a will continue the response on the next line, +allowing for multiline components. +Continuation lines \fBmust\fR begin with a space or tab. + +Each non\-empty component is copied to the draft and displayed on the +terminal. + +The start of the message body is denoted by a blank line or a line of dashes. +If the body is non\-empty, the prompt, which isn't written to the file, is + + \*(lq--------Enter additional text\*(rq, + +or (if `\-prepend' was given) + + \*(lq--------Enter initial text\*(rq. + +Message\-body typing is terminated with an end\-of\-file (usually CTRL\-D). +With the `\-doteof' switch, a period on a line all by itself also signifies +end\-of\-file. +At this point control is returned to the calling program, +where the user is asked \*(lqWhat now?\*(rq. +See \fIwhatnow\fR for the valid options to this query. + +By using the `\-prepend' switch, the user can add type\-in to the beginning +of the message body and have the rest of the body follow. +This is useful for the \fIforw\fR command. + +By using the `\-rapid' switch, +if the draft already contains text in the message\-body, +it is not displayed on the user's terminal. +This is useful for low\-speed terminals. + +The line editing characters for kill and erase may be +specified by the user via the arguments `\-kill\ chr' and `\-erase\ chr', +where chr may be a character; or `\\nnn', where \*(lqnnn\*(rq is the +octal value for the character. + +An interrupt (usually CTRL\-C) during component typing will abort +\fIprompter\fR and the \fIMH\fR command that invoked it. +An interrupt during message\-body typing is equivalent to CTRL\-D, +for historical reasons. +This means that \fIprompter\fR should finish up and exit. + +The first non\-flag argument to \fIprompter\fR +is taken as the name of the draft file, and +subsequent non\-flag arguments are ignored. +.\" (\fIRepl\fR invokes editors with two file arguments: +.\" the draft file name and the replied\-to message file name.) +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/tmp/prompter*~^Temporary copy of message +.Pr +prompter\-next: To name the editor to be used on exit from \fIprompter\fR +.Ps +^Msg\-Protect:~^To set mode when creating a new draft +.Sa +comp(1), dist(1), forw(1), repl(1), whatnow(1) +.De +`\-prepend' +.Ds +`\-norapid' +.Ds +`\-nodoteof' +.Co +None +.Hh +The `\-rapid' option is particularly useful with \fIforw\fP, and +`\-noprepend' is useful with \fIcomp\ \-use\fP. + +The user may wish to link \fIprompter\fR under several names +(e.g., \*(lqrapid\*(rq) and give appropriate switches +in the profile entries under these names (e.g., \*(lqrapid: -rapid\*(rq). +This facilitates invoking prompter differently for +different \fIMH\fP commands (e.g., \*(lqforw: -editor rapid\*(rq). +.Bu +\fIPrompter\fR uses \fIstdio\fR\0(3), so it will lose if you edit files +with nulls in them. +.En +@ + + +1.7 +log +@mention linking under different names +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: prompter.rf,v 1.6 90/04/05 15:09:05 sources Exp Locker: mh $ +d5 1 +a5 1 +prompter \- prompting editor front\-end +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d103 9 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH PROMPTER 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH PROMPTER 1 [mh.6] MH +@ + + +1.2 +log +@doteof +@ +text +@d2 2 +a3 2 +.SC PROMPTER 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d11 1 +d54 2 +d98 2 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/rcvstore.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/rcvstore.rf,v new file mode 100644 index 0000000..ee09e22 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/rcvstore.rf,v @@ -0,0 +1,217 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.11.20.00.40.37; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.02.04.00.04.56; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.14.48; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.44; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.25; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.40; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.24; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@note problems with unseen-sequence +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: rcvstore.rf,v 1.6 1992/02/04 00:04:56 jromine Exp jromine $ +.SC RCVSTORE 1 +.NA +rcvstore \- incorporate new mail asynchronously +.SY +@@(MHETCPATH)/rcvstore +\%[+folder] +\%[\-create] \%[\-nocreate] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] +.DE +\fIRcvstore\fR incorporates a message from the standard input +into an \fIMH\fR folder. +If `+folder' isn't specified, +a folder in the user's \fIMH\fR directory will be used, either that +specified by the \*(lqInbox:\*(rq entry in the user's profile, or +the folder named \*(lqinbox\*(rq. +The new message being incorporated is assigned the next highest +number in the folder. +If the specified (or default) folder doesn't exist, +then it will be created if the `\-create' option is specified, +otherwise \fIrcvstore\fP will exit. + +If the user's profile contains a \*(lqMsg\-Protect: nnn\*(rq entry, it +will be used as the protection on the newly created messages, +otherwise the \fIMH\fR default of 0644 will be used. +During all operations on messages, +this initially assigned protection will +be preserved for each message, so \fIchmod\fR(1) may be used to set a +protection on an individual message, and its protection will be +preserved thereafter. + +\fIRcvstore\fR will incorporate anything except zero length messages +into the user's MH folder. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIrcvstore\fR will add the newly incorporated message to each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +Note that \fIrcvstore\fR will not zero each sequence prior to adding messages. + +Furthermore, +the incoming messages may be added to user-defined sequences as +they arrive by appropriate use of the `\-sequence' option. +As with \fIpick\fP, +use of the `\-zero' and `\-nozero' switches can also be used to zero +old sequences or not. +Similarly, +use of the `\-public' and `\-nopublic switches +may be used to force additions to public and private sequences. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Inbox:~^To find the default inbox +.Ps +^Msg\-Protect:~^To set mode when creating a new message +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Sa +inc(1), pick(1), mh\-mail(5) +.De +`+folder' defaults to \*(lqinbox\*(rq +.Ds +`\-create' +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-nozero' +.Co +No context changes will be attempted, +with the exception of sequence manipulation. +.Bu +If you use the \*(lqUnseen\-Sequence\*(rq profile entry, +\fIrcvstore\fP could try to update the context while another +\fIMH\fP process is also trying to do so. +This can cause the context to become corrupted. +To avoid this, do not use \fIrcvstore\fP +if you use the \*(lqUnseen\-Sequence\*(rq profile entry. +.En +@ + + +1.6 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: rcvstore.rf,v 1.5 1990/04/05 15:14:48 sources Exp jromine $ +d80 7 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d18 3 +a20 2 +the folder named \*(lqinbox\*(rq in the user's \fIMH\fR directory will be used +instead. +d61 2 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH RCVSTORE 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH RCVSTORE 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC RCVSTORE 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/refile.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/refile.rf,v new file mode 100644 index 0000000..00685ae --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/refile.rf,v @@ -0,0 +1,357 @@ +head 1.12; +access; +symbols; +locks; strict; + + +1.12 +date 92.12.19.00.20.58; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.02.10.20.27.30; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.02.06.00.50.51; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.05.20.36.53; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 91.01.14.16.43.06; author mh; state Exp; +branches; +next 1.7; + +1.7 +date 90.12.18.15.46.28; author mh; state Exp; +branches; +next 1.6; + +1.6 +date 90.12.18.15.27.36; author mh; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.14.54; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.45; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.26; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.41; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.25; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.12 +log +@fixup grammar +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: refile.rf,v 1.11 1992/02/10 20:27:30 jromine Exp jromine $ +.SC REFILE 1 +.NA +refile \- file message in other folders +.SY +refile +\%[msgs] +\%[\-draft] +\%[\-link] \%[\-nolink] +\%[\-preserve] \%[\-nopreserve] +\%[\-src\ +folder] +\%[\-file\ file] +\%[\-rmmproc program] \%[\-normmproc] ++folder ... +\%[\-help] +.DE +\fIRefile\fR moves (\fImv\fR\0(1)) or links (\fIln\fR\0(1)) messages from a +source folder into one or more destination folders. +If you think +of a message as a sheet of paper, this operation is not +unlike filing the sheet of paper (or copies) in file cabinet +folders. +When a message is filed, it is linked into the +destination folder(s) if possible, and is copied otherwise. +As long +as the destination folders are all on the same file system, multiple filing +causes little storage overhead. +This facility provides a good way to cross\-file or multiply\-index +messages. +For example, if a message is received from Jones about +the ARPA Map Project, the command + + refile\0cur\0+jones\0+Map + +would allow the message to be found in either of the two +folders `jones' or `Map'. + +The option `\-file\ file' directs \fIrefile\fR to use the specified +file as the source message to be filed, rather than a message from +a folder. +Note that the file should be a validly formatted message, +just like any other \fIMH\fR message. +It should \fBNOT\fR be in mail drop format +(to convert a file in mail drop format to a folder of \fIMH\fR messages, +see \fIinc\fR\0(1)). + +If a destination folder doesn't exist, \fIrefile\fR will ask if you +want to create it. +A negative response will abort the file operation. +If the standard input for \fIrefile\fR is \fInot\fR a tty, +then \fIrefile\fR will not ask any questions and will proceed as if +the user answered \*(lqyes\*(rq to all questions. + +The option `\-link' preserves the source folder copy of the message +(i.e., it does a \fIln\fR(1) rather than a \fImv\fR(1)), whereas, +`\-nolink' deletes the filed messages from the source +folder. +Normally, when a message is filed, it is assigned the +next highest number available in each of the destination folders. +Use of the `\-preserve' switch will override this message +renaming, but name conflicts may occur, so +use this switch cautiously. + +If `\-link' is not specified (or `\-nolink' is specified), +the filed messages will be removed from the +source folder, by renaming them with a site-dependent prefix (usually +a comma). + +.ne 4 +If the user has a profile component such as + + rmmproc: /bin/rm + +then \fIrefile\fR +will instead call the named program to delete the message files. +The user may specify `\-rmmproc program' on the command line +to override this profile specification. +The \`-normmproc' option forces +the message files to be deleted +by renaming them as described above. + +The `\-draft' switch tells \fIrefile\fR to file the /draft. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^rmmproc:~^Program to delete the message +.Sa +folder(1) +.De +`\-src\ +folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-nolink' +.Ds +`\-nopreserve' +.Co +If `\-src\ +folder' is given, it will become the +current folder. +If neither `\-link' nor `all' is specified, +the current message in the source +folder will be set to the last message specified; otherwise, the +current message won't be changed. + +If the Previous\-Sequence profile entry is set, +in addition to defining the named sequences from the source folder, +\fIrefile\fR will also define those sequences for the destination folders. +See \fImh\-sequence\fR\0(5) for information concerning the previous sequence. +.Bu +Since \fIrefile\fR uses your \fIrmmproc\fP to delete the message, +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP without +specifying `\-normmproc', +or you will create an infinte loop. +.En +@ + + +1.11 +log +@previous-sequence docs in mh-sequence +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: refile.rf,v 1.10 1992/02/06 00:50:51 jromine Exp jromine $ +d53 1 +a53 1 +the user's answer was \*(lqyes\*(rq for all questions. +@ + + +1.10 +log +@document no prompting when stdin is not a tty +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: refile.rf,v 1.9 1992/02/05 20:36:53 jromine Exp jromine $ +d115 1 +a115 1 +See \fImh\-profile\fR\0(5) for information concerning the previous sequence. +@ + + +1.9 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: refile.rf,v 1.8 1991/01/14 16:43:06 mh Exp jromine $ +d51 3 +@ + + +1.8 +log +@document refile -[no]rmmproc +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: refile.rf,v 1.7 90/12/18 15:46:28 mh Exp Locker: mh $ +d112 1 +a112 1 +See \fImh\-profile\fR\0(1) for information concerning the previous sequence. +@ + + +1.7 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: refile.rf,v 1.6 90/12/18 15:27:36 mh Exp Locker: mh $ +d14 1 +d63 3 +a65 3 +the filed messages will be removed (\fIunlink\fR\0(2)) from the +source folder, +similar to the way \fImv\fR\0(1) works. +d67 1 +d72 7 +a78 3 +then instead of simply renaming the message file, +\fIrefile\fR +will call the named program to delete the file. +d115 2 +a116 1 +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP, +@ + + +1.6 +log +@mention not calling refile as rmmproc. +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: refile.rf,v 1.5 90/04/05 15:14:54 sources Exp Locker: mh $ +d108 2 +a109 2 +Since \fIrefile\fR uses your \*(lqrmmproc\*(rq to delete the message, +the \*(lqrmmproc\*(rq must \fBNOT\fP call \fIrefile\fP, +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d107 4 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH REFILE 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH REFILE 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC REFILE 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/repl.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/repl.rf,v new file mode 100644 index 0000000..7bdb996 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/repl.rf,v @@ -0,0 +1,582 @@ +head 1.14; +access; +symbols; +locks; strict; + + +1.14 +date 96.02.09.00.25.00; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 96.02.08.19.01.16; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 95.12.06.21.07.03; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.11.18.01.18.54; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 90.12.17.16.00.35; author mh; state Exp; +branches; +next 1.9; + +1.9 +date 90.04.05.15.09.27; author sources; state Exp; +branches; +next 1.8; + +1.8 +date 90.03.22.11.31.46; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.20.23.32.13; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.20.19.42.28; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.20.17.36.42; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.18.20.49.33; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.16.14.22.06; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.14.17.36; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.14.07.20; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.14 +log +@typo +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: repl.rf,v 1.13 1996/02/08 19:01:16 jromine Exp jromine $ +.SC REPL 1 +.NA +repl \- reply to a message +.SY +repl +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-cc\ all/to/cc/me] \%[\-nocc\ all/to/cc/me] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-fcc\ +folder] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +.\" \%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +@@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@@END: MIME +\%[\-query] \%[\-noquery] +\%[\-width\ columns] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIRepl\fR aids a user in producing a reply to an existing +message. +\fIRepl\fR uses a reply template to guide its actions when constructing +the message draft of the reply. +In its simplest form (with no arguments), +it will set up +a message\-form skeleton in reply to the current message in the +current folder, and invoke the whatnow shell. +The default reply template will direct \fIrepl\fR to construct +the composed message as follows: + +.nf +.in 1i +To: or +cc: , , and yourself +Subject: Re: +In\-reply\-to: Your message of . +.ti +\w'In\-reply\-to: 'u + +.in .5i +.fi + +where field names enclosed in angle brackets (<\ >) indicate the +contents of the named field from the message to which the reply +is being made. A reply template is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +The `\-cc\ type' switch takes an argument which specifies +who gets placed on the \*(lqcc:\*(rq list of the reply. +The `\-query' switch modifies the action of `\-cc\ type' switch by +interactively asking you if each address that normally would be placed +in the \*(lqTo:\*(rq and \*(lqcc:\*(rq list should actually be sent a copy. +(This is useful for special\-purpose replies.) +Note that the position of the `\-cc' and `\-nocc' switches, +like all other switches which take a positive and negative form, +is important. + +.\" --this seems to not be used anymore. /JLR +.\" With the `\-format' switch one can indicate if Internet\-style +.\" formatting should be used (or not be used with `\-noformat'). +.\" If present (the default), then +Lines beginning with the fields +\*(lqTo:\*(rq, \*(lqcc:\*(rq, and \*(rqBcc:\*(rq +will be standardized and have duplicate addresses removed. +In addition, the `\-width\ columns' switch will guide \fIrepl\fR's formatting +of these fields. + +If the file named \*(lqreplcomps\*(rq exists in the user's MH directory, +it will be used instead of the default form. +In either case, the file specified by `\-form\ formfile' will be used +if given. + +If the draft already exists, +\fIrepl\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIrepl\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. +Note that while in the editor, +the message being replied to is available through a link named \*(lq@@\*(rq +(assuming the default \fIwhatnowproc\fR\0). +In addition, the actual pathname of the message is stored in the envariable +\fB$editalt\fR, +and the pathname of the folder containing the message is stored in the +envariable \fB$mhfolder\fR. + +Although \fIrepl\fR uses the `\-form\ formfile' switch to direct it how +to construct the beginning of the draft, the `\-filter\ filterfile' +switch directs \fIrepl\fR as to how the message being replied\-to +should be formatted in the body of the draft. +If `\-filter' is not specified, +then the message being replied\-to is not included in the body of the +draft. +If `\-filter\ filterfile' is specified, +then the message being replied\-to is filtered (re\-formatted) prior to +being output to the body of the draft. +The filter file for \fIrepl\fR should be a standard form file for +\fImhl\fR, as \fIrepl\fR will invoke \fImhl\fR to format the message +being replied\-to. +There is no default message filter (`\-filter' must be followed by a +file name). +A filter file that is commonly used is: + +.nf +.in +.5i +: +body:nocomponent,compwidth=9,offset=9 +.in -.5i +.fi + +which says to output a blank line and then the body of the message +being replied\-to, indented by one tab\-stop. +Another format popular on USENET is: + +.nf +.in +.5i +.ie n \{ +message-id:nocomponent,\|nonewline,\\ +formatfield=\*(lqIn message %{text},\ \*(rq \} +.el message-id:nocomponent,\|nonewline,\|formatfield=\*(lqIn message %{text},\ \*(rq +from:nocomponent,\|formatfield=\*(lq%(friendly{text}) writes:\*(rq +body:component=\*(lq>\*(rq,\|overflowtext=\*(lq>\*(rq,\|overflowoffset=0 +.in -.5i +.fi + +Which cites the Message-ID and author +of the message being replied\-to, +and then outputs each line of the body prefaced +with the \*(lq>\*(rq character. + +@@BEGIN: MIME +To use the MIME rules for encapsulation, +specify the `\-mime' switch. +This directs \fIrepl\fR to generate an \fImhn\fR composition file. +Note that MH will not invoke \fImhn\fR automatically, +unless you add this line to your \&.mh\(ruprofile file: +.sp +.in +.5i +automhnproc: mhn +.in -.5i +.sp +Otherwise, +you must specifically give the command +.sp +.in +.5i +What now? edit mhn +.in -.5i +.sp +prior to sending the draft. + +If you don't want to use this feature, +the manual page for \fIforw\fR contains another idea on how you can +automate this somewhat. + +@@END: MIME +If the `\-annotate' switch is given, +the message being replied\-to will be annotated with the lines + + Replied:\ date + Replied:\ addrs + +where the address list contains one line for each addressee. +The annotation +will be done only if the message is sent directly from \fIrepl\fR. +If the message is not sent immediately from \fIrepl\fR, +\*(lqcomp\ \-use\*(rq may be used to re\-edit and send the constructed message, +but the annotations won't take place. +The `\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +The `\-fcc\ +folder' switch can be used to automatically specify a folder to +receive Fcc:s. +More than one folder, each preceeded by `\-fcc' can be named. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIrepl\fR also recognizes the following additional +\fIcomponent\fR escape: +.sp 1 +.nf +.ta \w'Escape 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +\fIfcc\fR string Any folders specified with `\-fcc\ folder' +.re +.fi + +To avoid reiteration, +\fIrepl\fR strips any leading `Re: ' strings from +the \fIsubject\fR component. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIrepl\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^@@(MHETCPATH)/replcomps~^The reply template +^or /replcomps~^Rather than the standard template +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^mhlproc:~^Program to filter message being replied\-to +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +comp(1), dist(1), forw(1), send(1), whatnow(1), mh\-format(5) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to cur +.Ds +`\-nocc\ all' at ATHENA sites, `\-cc\ all' otherwise +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noinplace' +@@BEGIN: MIME +.Ds +`\-nomime' +@@END: MIME +.Ds +`\-noquery' +.Ds +`\-width\ 72' +.Co +If a folder is given, it will become the current folder. +The message replied\-to will become the current message. +.Hi +Prior to using the format string mechanism, +`\-noformat' used to cause address headers to be output as\-is. +Now all address fields are formatted using Internet standard guidelines. +.Bu +If any addresses occur in the reply template, +addresses in the template that do not contain hosts are defaulted incorrectly. +Instead of using the localhost for the default, +\fIrepl\fR uses the sender's host. +Moral of the story: if you're going to include addresses in a reply template, +include the host portion of the address. + +The `\-width columns' switch is only used +to do address-folding; other headers are not line\-wrapped. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIrepl\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIrepl\fR won't run it. + +If your current working directory is not writable, +the link named \*(lq@@\*(rq is not available. +.En +@ + + +1.13 +log +@fix typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: repl.rf,v 1.12 1995/12/06 21:07:03 jromine Exp jromine $ +d141 1 +a141 1 +This directs \fIreply\fR to generate an \fImhn\fR composition file. +@ + + +1.12 +log +@add repl -mime +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: repl.rf,v 1.11 1992/11/18 01:18:54 jromine Exp jromine $ +d158 1 +a158 1 +If you don't want to use this featuer, +d160 1 +a160 1 +automate this somewhat +@ + + +1.11 +log +@demo using "nonewline"; pretty output for troff +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: repl.rf,v 1.10 1990/12/17 16:00:35 mh Exp jromine $ +d18 3 +d138 25 +d248 4 +@ + + +1.10 +log +@remove default "-format" +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: repl.rf,v 1.9 90/04/05 15:09:27 sources Exp Locker: mh $ +d121 6 +a126 3 +message-id:nocomponent,formatfield=\\ +"In message %{text}you write:" +body:component=">",overflowtext=">",overflowoffset=0 +d130 2 +a131 1 +Which cites the Message-ID of the message being replied\-to, +@ + + +1.9 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +a209 2 +.Ds +`\-format' +@ + + +1.8 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.7 +log +@update USENET repl filter example +@ +text +@d2 2 +a3 2 +.TH REPL 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.6 +log +@typo +@ +text +@d120 2 +a121 1 +: +d126 3 +a128 1 +Which prefaces each line of the body with the \*(lq>\*(rq character. +@ + + +1.5 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH REPL 1 [mh.6] MH +@ + + +1.4 +log +@remove -[no]format +mention {subject} semantics +@ +text +@d2 2 +a3 2 +.SC REPL 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.3 +log +@fixup +@ +text +@d15 1 +a15 1 +\%[\-format] \%[\-noformat] +d59 10 +a141 8 +With the `\-format' switch one can indicate if Internet\-style +formatting should be used (or not be used with `\-noformat'). +If present (the default), then lines beginning with the fields +\*(lqTo:\*(rq, \*(lqcc:\*(rq, and \*(rqBcc:\*(rq +will be standardized and have duplicate addresses removed. +In addition, the `\-width\ columns' switch will guide \fIrepl\fR's formatting +of these fields. + +d146 1 +a146 1 +In addition to the standard escapes, +d157 4 +d221 4 +d232 3 +@ + + +1.2 +log +@mention ">" format +@ +text +@d149 3 +a151 4 +.in +.5i +.ta \w'Escape 'u +\fIEscape\fR \fISubstitution\fR +\fIfcc\fR Any folders specified with `\-fcc\ folder' +a152 1 +.in -.5i +@ + + +1.1 +log +@Initial revision +@ +text +@d46 4 +a49 1 +is being made. The `\-cc\ type' switch takes an argument which specifies +d106 1 +d108 9 +a143 3 +A reply template is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +d145 3 +a147 1 +\fIrepl\fR also recognizes the following additional escape: +d149 4 +a152 3 +.ta \w'escape 'u +\fIescape\fR \fIsubstitution\fR +fcc any `\-fcc\ folder' switches +d154 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/rmail.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/rmail.rf,v new file mode 100644 index 0000000..fe75f51 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/rmail.rf,v @@ -0,0 +1,129 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.15.00; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.47; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.29; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.43; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.27; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC RMAIL 8 +.NA +rmail \- UUCP interface to mail +.SY +rmail +address\ ... +.DE +\fIRmail\fR is intended as a replacement for those systems without +\fISendMail\fR or \fIMMDF\fR. +It is normally invoked by \fIuux\fR on behalf of the remote \fIUUCP\fR site. +For each address, it decides where to send it: +either locally, via another \fIUUCP\fR link, or via the Internet. + +\fIRmail\fR implements a crude access control facility by consulting the +files \fBRmail.OkHosts\fR and \fBRmail.OkDests\fR in the \fB@@(MHETCPATH)/\fR +directory. +Hosts listed in the former file can send messages to anywhere they please. +Hosts listed in the latter file can receive messages from anywhere. +Note that a host listed in the first file is implicitly listed in the second +file. +.Fi +^@@(MHETCPATH)/mtstailor~^tailor file +^@@(MHETCPATH)/Rmail.OkHosts~^list of privileged hosts +^@@(MHETCPATH)/Rmail.OkDests~^list of privileged destinations +.Pr +None +.Sa +mf(1) +.De +None +.Co +None +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH RMAIL 8 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH RMAIL 8 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC RMAIL 8 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/rmf.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/rmf.rf,v new file mode 100644 index 0000000..7ea4c61 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/rmf.rf,v @@ -0,0 +1,195 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.05.12.22.24.59; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.02.04.00.05.10; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.15.06; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.48; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.30; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.44; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.27; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@put "MH" in title +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: rmf.rf,v 1.6 1992/02/04 00:05:10 jromine Exp jromine $ +.SC RMF 1 +.NA +rmf \- remove an MH folder +.SY +rmf +\%[+folder] +\%[\-interactive] \%[\-nointeractive] +\%[\-help] +.DE +\fIRmf\fR removes all of the messages (files) within the specified +(or default) folder, +and then removes the folder (directory) itself. +If there are any files within the folder which are not a part of \fIMH\fR, +they will \fInot\fR be removed, and an error will be produced. +If the folder is given explicitly or the `\-nointeractive' option is given, +then the folder will be removed without confirmation. +Otherwise, the user will be asked for confirmation. +If \fIrmf\fR can't find the current folder, for some reason, +the folder to be removed defaults to `+inbox' (unless overridden by +user's profile entry \*(lqInbox\*(rq) with confirmation. + +\fIRmf\fR irreversibly deletes messages that don't have other links, +so use it with caution. + +If the folder being removed is a subfolder, the parent +folder will become the new current folder, and \fIrmf\fR will +produce a message telling the user this has happened. +This provides an easy mechanism for selecting a set of messages, +operating on the list, then removing the list and returning to +the current folder from which the list was extracted. + +\fIRmf\fR of a read\-only folder will delete the private sequence +and cur information +(i.e., \*(lqatr\-\fIseq\fR\-\fIfolder\fR\*(rq entries) +from the profile without affecting the folder itself. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Inbox:~^To find the default inbox +.Sa +rmm(1) +.De +`+folder' defaults to the current folder, usually with confirmation +.Ds +`\-interactive' if +folder' not given, `\-nointeractive' otherwise +.Co +\fIRmf\fR will set the current folder to the parent folder if a +subfolder is removed; or if the current folder is removed, +it will make \*(lqinbox\*(rq current. +Otherwise, it doesn't change the +current folder or message. +.Bu +Although intuitively one would suspect that \fIrmf\fR works recursively, +it does not. +Hence if you have a sub\-folder within a folder, +in order to \fIrmf\fR the parent, +you must first \fIrmf\fR each of the children. +.En +@ + + +1.6 +log +@contributed patch +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: rmf.rf,v 1.5 1990/04/05 15:15:06 sources Exp jromine $ +d5 1 +a5 1 +rmf \- remove folder +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d21 2 +a22 1 +the folder to be removed defaults to `+inbox' with confirmation. +d44 2 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH RMF 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH RMF 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC RMF 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/rmm.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/rmm.rf,v new file mode 100644 index 0000000..f2d15d0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/rmm.rf,v @@ -0,0 +1,263 @@ +head 1.10; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.10 +date 91.01.25.15.22.28; author mh; state Exp; +branches ; +next 1.9; + +1.9 +date 91.01.14.16.42.57; author mh; state Exp; +branches ; +next 1.8; + +1.8 +date 90.12.18.15.46.24; author mh; state Exp; +branches ; +next 1.7; + +1.7 +date 90.12.18.15.38.47; author mh; state Exp; +branches ; +next 1.6; + +1.6 +date 90.12.18.15.27.24; author mh; state Exp; +branches ; +next 1.5; + +1.5 +date 90.04.05.15.15.12; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.49; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.31; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.46; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.28; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.10 +log +@jlr +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: rmm.rf,v 1.9 91/01/14 16:42:57 mh Exp Locker: mh $ +.SC RMM 1 +.NA +rmm \- remove messages +.SY +rmm +\%[+folder] \%[msgs] +\%[\-help] +.DE +\fIRmm\fR removes the specified messages by renaming the message +files with preceding commas. Many sites consider files that start with a +comma to be a temporary backup, and arrange for \fIcron\fR\0(8) +to remove such files once a day. + +If the user has a profile component such as + + rmmproc: /bin/rm + +then instead of simply renaming the message file, +\fIrmm\fR +will call the named program to delete the file. +Note that at most installations, +\fIcron\fR\0(8) is told to remove files that begin with a comma once a night. + +Some users of csh prefer the following: + + alias rmm 'refile +d' + +where folder +d is a folder for deleted messages, and + + alias mexp 'rm `mhpath +d all`' + +is used to \*(lqexpunge\*(rq deleted messages. + +The current message is not changed by \fIrmm\fR, so a \fInext\fR will +advance to the next message in the folder as expected. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^rmmproc:~^Program to delete the message +.Sa +rmf(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Co +If a folder is given, it will become the current folder. +.Bu +Since \fIrefile\fR uses your \fIrmmproc\fP to delete the message, +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP without +specifying `\-normmproc', +or you will create an infinte loop. +.En +@ + + +1.9 +log +@document refile -[no]rmmproc +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: rmm.rf,v 1.8 90/12/18 15:46:24 mh Exp Locker: mh $ +a53 14 +.Hh +If you're not a csh user, and you have an \fIrmmproc\fP script +which \fIrefile\fP\|s messages, +be sure you use something like: + +.ti +.5i +mv `mhpath msgs` `mhpath new +folder` + +Other work-arounds are possible, such as: + +.ti +.5i +cd `mhpath +` +.ti +.5i +MH=/dev/null MHCONTEXT=/dev/null refile $* +folder +@ + + +1.8 +log +@jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: rmm.rf,v 1.7 90/12/18 15:38:47 mh Exp Locker: mh $ +d70 2 +a71 1 +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP, +@ + + +1.7 +log +@give tricky example rmmproc +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: rmm.rf,v 1.6 90/12/18 15:27:24 mh Exp Locker: mh $ +d55 1 +a55 1 +If you're not a csh user, and you have an \*(lqrmmproc\*(rq script +d69 2 +a70 2 +Since \fIrefile\fR uses your \*(lqrmmproc\*(rq to delete the message, +the \*(lqrmmproc\*(rq must \fBNOT\fP call \fIrefile\fP, +@ + + +1.6 +log +@mention not calling refile as rmmproc. +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: rmm.rf,v 1.5 90/04/05 15:15:12 sources Exp Locker: mh $ +d61 7 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d54 11 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH RMM 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH RMM 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC RMM 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/scan.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/scan.rf,v new file mode 100644 index 0000000..d80b841 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/scan.rf,v @@ -0,0 +1,457 @@ +head 1.14; +access; +symbols; +locks; strict; + + +1.14 +date 95.12.06.23.22.17; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 94.04.21.19.11.44; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 93.08.19.20.43.27; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.10.29.22.01.56; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.01.29.22.56.18; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 91.01.07.11.13.47; author mh; state Exp; +branches; +next 1.8; + +1.8 +date 90.04.05.15.10.08; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.22.11.31.50; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.20.19.42.32; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.20.17.36.47; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.10.24.48; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.18.20.48.49; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.15.51.59; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.15.47.47; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.14 +log +@cleanup wording about "*" & missing Date: header +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: scan.rf,v 1.13 1994/04/21 19:11:44 jromine Exp jromine $ +.SC SCAN 1 +.NA +scan \- produce a one line per message scan listing +.SY +scan +\%[+folder] \%[msgs] +\%[\-clear] \%[\-noclear] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-header] \%[\-noheader] +\%[\-width\ columns] +\%[\-reverse] \%[\-noreverse] +\%[\-file filename] +\%[\-help] +.DE +\fIScan\fR produces a one\-line\-per\-message listing of the specified +messages. +Each \fIscan\fR line contains the message number (name), +the date, the \*(lqFrom:\*(rq field, the \*(lqSubject\*(rq field, and, if room +allows, some of the body of the message. +For example: + +.nf +.in +.5i +.ta \w'15+- 'u +\w'07/\|05x 'u +\w'Dcrocker 'u +15+ 07/\|05 Dcrocker nned\0\0\*(<> if the body is sufficiently short. +\fIScan\fR actually reads each of the specified +messages and parses them to extract the desired fields. +During parsing, appropriate error messages will be produced if +there are format errors in any of the messages. + +The `\-header' switch produces a header line prior to the \fIscan\fR +listing. +Currently, +the name of the folder and the current date and time are output +(see the \fBHISTORY\fR section for more information). + +If the `\-clear' switch is used and \fIscan's\fR output is directed to a +terminal, +then \fIscan\fR will consult the \fB$TERM\fR and \fB$TERMCAP\fR +envariables to determine your +terminal type in order to find out how to clear the screen prior to exiting. +If the `\-clear' switch is used and \fIscan's\fR output is not directed to +a terminal (e.g., a pipe or a file), +then \fIscan\fR will send a formfeed prior to exiting. + +For example, the command: + +.ti +.5i +(scan \-clear \-header; show all \-show pr \-f) | lpr + +produces a scan listing of the current folder, followed by a formfeed, +followed by a formatted listing of all messages in the folder, one per +page. Omitting `\-show\ pr\ \-f' will cause the messages to be concatenated, +separated by a one\-line header and two blank lines. + +To override the output format used by \fIscan\fR, +the `\-format\ string' or `\-form\ file' switches are used. +This permits individual fields of the scan listing to be extracted with ease. +The string is simply a format string and the file is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIscan\fR also recognizes the following additional \fIcomponent\fR escapes: +.sp 1 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +body string the (compressed) first part of the body +dtimenow date the current date +folder string the name of the current folder +.re +.fi + +.\" and the following \fIfunction\fP escape: +.\" .sp 1 +.\" .nf +.\" .ta \w'Dcompflagxfolderx 'u +\w'Returns 'u +.\" \fIEscape\fR \fIReturns\fR \fIDescription\fR +.\" compflag{folder} integer boolean state of `\-header' +.\" .re +.\" .fi +.\" +If no date header is present in the message, the \fIfunction\fR +escapes which operate on {\fIdate\fP\|} will return values for the +date of last modification of the message file itself. +This is particularly handy for scanning a \fIdraft folder\fR, +as message drafts usually aren't allowed to have dates in them. + +\fIscan\fR will update the \fIMH\fR context prior to starting the listing, +so interrupting a long \fIscan\fR listing preserves the new context. +\fIMH\fR purists hate this idea. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +inc(1), pick(1), show(1), mh\-format(5) +.De +`+folder' defaults to the folder current +.Ds +`msgs' defaults to all +.Ds +`\-format' defaulted as described above +.Ds +`\-noheader' +.Ds +`\-width' defaulted to the width of the terminal +.Co +If a folder is given, it will become the current folder. +.Hi +Prior to using the format string mechanism, +`\-header' used to generate a heading saying what each column in the listing +was. +Format strings prevent this from happening. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIscan\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.br +The value of +each \fIcomponent\fR escape is set by \fIscan\fR to the contents +of the first message header \fIscan\fR encounters +with the corresponding component name; +any following headers with the same component name are ignored. +.sp +The switch `\-reverse', makes \fIscan\fR list the messages +in reverse order; this should be considered a bug. +.sp +The `\-file filename' switch allows the user to obtain a \fIscan\fP +listing of a maildrop file as produced by \fIpackf\fP. This listing +includes every message in the file. The user should use \fImsh\fP +for more selective processing of the file. `\-reverse' is ignored +with this option. +.En +@ + + +1.13 +log +@consider documenting compflag{folder} +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: scan.rf,v 1.12 1993/08/19 20:43:27 jromine Exp jromine $ +d27 5 +a31 5 +.ta \w'15+- 'u +\w'7/\05 'u +\w'Dcrocker 'u +15+ 7/\05 Dcrocker nned\0\0\*(</draft +.Ds +`\-alias @@(MHETCPATH)/MailAliases' +.Ds +`\-nodraftfolder' +@@BEGIN: TMA +`\-noencrypt' +@@END: TMA +.Ds +`\-nofilter' +.Ds +`\-format' +.Ds +`\-forward' +@@BEGIN: MIME +.Ds +`\-nomime' +@@END: MIME +.Ds +`\-nomsgid' +.Ds +`\-nopush' +.Ds +`\-noverbose' +.Ds +`\-nowatch' +.Ds +`\-width\ 72' +.Co +None +.Bu +Under some configurations, it is not possible to mointor the +mail delivery transaction; `\-watch' is a no-op on those systems. +.sp +@@BEGIN: MIME +Using `\-split\00' doesn't work correctly. +@@END: MIME +.En +@ + + +1.11 +log +@note that -watch may not always work +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: send.rf,v 1.10 1992/10/16 21:36:23 jromine Exp jromine $ +d203 4 +@ + + +1.10 +log +@MIME changes +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: send.rf,v 1.9 1992/05/19 21:56:44 jromine Exp jromine $ +d200 3 +@ + + +1.9 +log +@MIME +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: send.rf,v 1.8 1992/02/11 00:47:53 jromine Exp jromine $ +d17 3 +d97 5 +d184 4 +@ + + +1.8 +log +@document Aliasfile may be more than one file +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: send.rf,v 1.7 1992/01/31 16:41:11 jromine Exp jromine $ +d19 1 +d21 1 +d57 1 +d70 1 +@ + + +1.7 +log +@Multimedia MH +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: send.rf,v 1.6 90/04/05 15:09:54 sources Exp $ +d137 1 +a137 1 +The file specified by the profile entry \*(lqAliasfile:\*(rq and any +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d19 1 +d55 12 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH SEND 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH SEND 1 [mh.6] MH +@ + + +1.2 +log +@document Aliasfile: profile entry +@ +text +@d2 2 +a3 2 +.SC SEND 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d123 3 +a125 3 +By using the `\-alias\ aliasfile' switch, the user can direct \fIsend\fR +to consult the named files for alias definitions +(more than one file, each preceded by `\-alias', can be named). +d133 2 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/show.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/show.rf,v new file mode 100644 index 0000000..94991e4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/show.rf,v @@ -0,0 +1,323 @@ +head 1.9; +access; +symbols; +locks; strict; + + +1.9 +date 95.12.06.22.48.30; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 93.10.26.20.09.07; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.05.19.21.57.39; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.01.31.16.41.16; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.15.20; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.52; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.35; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.49; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.30; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@fixup some envar references +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: show.rf,v 1.8 1993/10/26 20:09:07 jromine Exp jromine $ +.SC SHOW 1 +.NA +show \- show (list) messages +.SY +show +\%[+folder] \%[msgs] +\%[\-draft] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fIShow\fR lists each of the specified messages to the standard +output (typically, the terminal). +Typically, the messages are listed exactly +as they are, with no reformatting. +A program named by the \fIshowproc\fR profile component is +invoked to do the listing, and any switches not recognized by +\fIshow\fR are passed along to that program. +The default program is known as \fImore\fR\0(1). +To override the default and the \fIshowproc\fR profile component, +use the `\-showproc\ program' switch. +For example, `\-show\ pr' will cause the \fIpr\fR\0(1) program to list the +messages. +The \fIMH\fR command \fImhl\fR can be used as a \fIshowproc\fR +to show messages in a more uniform format. +Normally, this program is specified as the \fIshowproc\fR is the user's +\&.mh\(ruprofile. +See \fImhl\fR\0(1) for the details. +If the `\-noshowproc' option is specified, +`/bin/cat' is used instead of \fIshowproc\fR. +@@BEGIN: MIME + +If you have messages with multi-media contents, +the profile entry \fImhnproc\fR defines the name of a program to +manipulate multi-media messages. +(The \fImhn\fR\0(1) program, +which is suitable for this purpose, +is the default.) +If the `\-noshowproc' option is NOT specified, +and if one or more named messages has a multi-media content, +then the program indicated by \fImhnproc\fR will be run instead of +\fIshowproc\fR. +The use of the \fImhnproc\fR can also be disabled if the +environment variable \fBNOMHNPROC\fR is set. +Note that the \fImhnproc\fR may be invoked even for textual contents, +depending on the character set involved. +The environment variable \fBMM_CHARSET\fP should be set to the terminal's +character set to avoid gratuitous invocations of the \fImhnproc\fR. +@@END: MIME + +The `\-header' switch tells \fIshow\fR to display a one\-line +description of the message being shown. +This description includes the folder and the message number. + +If no `msgs' are specified, the current message is used. +If more than one message is specified, +\fImore\fR will prompt for a prior to listing each message. +\fImore\fR will list each message, a page at a time. +When the end of +page is reached, \fImore\fR will ring the bell and wait for a +or . +If a is entered, \fImore\fR will print the next line, +whereas will print the next screenful. +To exit \fImore\fR, type \*(lqq\*(rq. + +If the standard output is not a terminal, no queries are made, +and each file is listed with a one\-line header and two lines of +separation. + +\*(lqshow \-draft\*(rq will list the file /draft if it +exists. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIshow\fR will remove each of the messages shown from each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Ps +^showproc:~^Program to show messages +@@BEGIN: MIME +.Ps +^mhnproc:~^Program to show messages with multi-media content +@@END: MIME +.Sa +mhl(1), more(1), next(1), pick(1), prev(1), scan(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-header' +.Co +If a folder is given, it will become the current folder. +The last message shown will become the current message. +.Bu +The `\-header' switch doesn't work when `msgs' expands to more than +one message. +If the \fIshowproc\fR is \fImhl\fR, +then is problem can be circumvented by referencing +the \*(lqmessagename\*(rq field in the \fImhl\fR format file. + +\fIShow\fR updates the user's context before showing the message. +Hence \fIshow\fR will mark messages as seen prior to the user +actually seeing them. +This is generally not a problem, +unless the user relies on the \*(lqunseen\*(rq messages mechanism, +and interrupts \fIshow\fR while it is showing \*(lqunseen\*(rq messages. + +If \fIshowproc\fR is \fImhl\fR, +then \fIshow\fR uses a built\-in \fImhl\fR: +it does not actually run the \fImhl\fR program. +Hence, if you define your own \fIshowproc\fR, +don't call it \fImhl\fR since \fIshow\fR won't run it. + +If \fImore\fR\0(1) is your showproc (the default), +then avoid running \fIshow\fR in the background +with only its standard output piped to another process, as in + +.ti +.5i +show | imprint & + +Due to a bug in \fImore\fR, +show will go into a \*(lqtty input\*(rq state. +To avoid this problem, +re\-direct \fIshow\fR's diagnostic output as well. +For users of \fIcsh\fR: + +.ti +.5i +show |& imprint & + +For users of \fIsh\fR: + +.ti +.5i +show 2>&1 | imprint & +.En +@ + + +1.8 +log +@mention MM_CHARSET +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: show.rf,v 1.7 1992/05/19 21:57:39 jromine Exp $ +d47 1 +a47 1 +environment variable \fB$NOMHNPROC\fR is set. +d50 1 +a50 1 +The environment variable $MM_CHARSET should be set to the terminal's +@ + + +1.7 +log +@MIME +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: show.rf,v 1.6 1992/01/31 16:41:16 jromine Exp jromine $ +d36 7 +a42 6 +If you have messages with multi-media content, +you should define the profile entry \fImhnproc\fR, +which is the name of a program to manipulate multi-media messages. +The \fImhn\fR\0(1) program is suitable for this purpose. +Note that if the \fImhnproc\fR profile entry is defined, +the `\-noshowproc' option is NOT specified, +d48 4 +@ + + +1.6 +log +@Multimedia MH +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: show.rf,v 1.5 90/04/05 15:15:20 sources Exp $ +d34 1 +d47 1 +d86 1 +d89 1 +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d35 12 +d84 2 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH SHOW 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH SHOW 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC SHOW 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/slocal.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/slocal.rf,v new file mode 100644 index 0000000..8c36cbc --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/slocal.rf,v @@ -0,0 +1,1353 @@ +head 1.15; +access; +symbols; +locks; strict; +comment @# @; + + +1.15 +date 92.10.28.16.53.03; author jromine; state Exp; +branches; +next 1.14; + +1.14 +date 92.10.27.20.21.36; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 92.10.26.16.36.30; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 92.07.02.15.51.22; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.02.15.00.08.56; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.02.12.19.10.01; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.12.19.08.15; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.02.12.05.59.38; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.12.04.24.50; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.02.12.02.49.43; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.02.12.02.31.09; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.02.12.00.23.07; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 92.02.11.23.48.28; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 92.02.11.23.15.24; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.02.11.21.45.43; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.15 +log +@move slocal to (1) +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: slocal.rf,v 1.14 1992/10/27 20:21:36 jromine Exp jromine $ +.SC SLOCAL 1 +.NA +slocal \- special local mail delivery +.SY +@@(MHETCPATH)/slocal \%[address\ info\ sender] +.na +.br +\%[\-addr\ address] +\%[\-info\ data] +\%[\-sender\ sender] +.br +\%[\-user\ username] +\%[\-mailbox\ mbox] +\%[\-file\ file] +.\" \%[\-home\ homedir] +.br +\%[\-maildelivery\ deliveryfile] +\%[\-verbose] \%[\-noverbose] +\%[\-debug] +\%[\-help] +.ad +.DE +\fISlocal\fP is a program designed to allow you to have +your inbound mail processed according to a complex +set of selection criteria. +You do not normally invoke \fIslocal\fP yourself, +rather \fIslocal\fP is invoked on your behalf by your system's +Message Transfer Agent. + +The message selection +criteria used by \fIslocal\fP +is specified in the file \fI\&.maildelivery\fP +in the user's home directory. The format of this file +is given below. + +The message delivery address and message sender are +determined from the Message Transfer Agent +envelope information, if possible. Under \fISendMail\fP, +the sender will obtained from the UUCP \*(lqFrom\ \*(rq +line, if present. The user may override these values +with command line arguments, or arguments to +the `\-addr' and `\-sender' switches. + +The message is normally read from the standard input. +The `\-file' switch sets the name of the file from which +the message should be read, instead of reading stdin. +The `\-user' switch tells \fIslocal\fP +the name of the user for whom it is delivering mail. +The `\-mailbox' switch tells \fIslocal\fP the name +of the user's maildrop file. + +The `\-info' switch may be used to pass an arbitrary +argument to sub-processes which \fIslocal\fP may +invoke on your behalf. +The `\-verbose' switch causes \fIslocal\fP +to give information on stdout about its progress. +The `\-debug' switch produces more verbose debugging output on stderr. + +.Uh "Message Transfer Agents" +If your MTA is \fISendMail\fP, +you should include the line +.sp +.nf +.in +.5i + \*(lq|\ @@(MHETCPATH)/slocal\ \-user\ username\*(rq +.in -.5i +.fi +.sp +in your \&.forward file in your home directory. +This will cause \fISendMail\fP to invoke \fIslocal\fP on your behalf. + +If your MTA is \fIMMDF-I\fP, +you should (symbolically) link @@(MHETCPATH)/slocal to the file +bin/rcvmail in your home directory. +This will cause \fIMMDF-I\fP to invoke \fIslocal\fP on your behalf +with the correct \*(lq\fIaddress\ info\ sender\fP\*(rq arguments. + +If your MTA is \fIMMDF-II\fP, +then you should not use \fIslocal\fP. +An equivalent functionality is already provided by \fIMMDF-II\fP; +see maildelivery(5) for details. + +.Uh "The Maildelivery File" + +The \fI\&.maildelivery\fR file +controls how local delivery is performed. +Each line of this file +consists of five fields, separated by white-space or comma. +Since double-quotes are honored, +these characters may be included in a single argument by enclosing the +entire argument in double-quotes. +A double-quote can be included by preceding it with a backslash. +Lines beginning with `#' are ignored. +The format of each line in the \fI\&.maildelivery\fR file is: + + + \fBheader pattern action result string\fR +.sp +.in +.5i +.ti -.5i +\fBheader\fP: +.br +The name of a header field that is to be searched for a pattern. +This is any field in the headers of the message that might be present. +The following special fields are also defined: +.sp +.in +1i +.ta +1i +.ti -1i +\fIsource\fR the out-of-band sender information +.ti -1i +\fIaddr\fR the address that was used to cause delivery to the recipient +.ti -1i +\fIdefault\fR this matches \fIonly\fR if the message hasn't been delivered yet +.ti -1i +\fI*\fR this always matches +.in -1i + +.ti -.5i +\fBpattern\fR: +.br +The sequence +of characters to match in the specified header field. +Matching is case-insensitive, but does not use regular expressions. + +.ti -.5i +\fBaction\fR: +.br +The action to take to deliver the message: +.sp +.in +1i +.ta +1i +.ti -1i +\fIdestroy\fR This action always succeeds. + +.ti -1i +\fIfile\fR or > Append +the message to the file named by \fBstring\fR. +The message is appended to the file in the maildrop +format which is used by your message transport system. +If the message can be appended to the file, +then this action succeeds. +When writing to the file, +a \*(lqDelivery\-Date:\ date\*(rq header is added +which indicates the date and time that message was appended to the file. + +.ti -1i +\fImbox\fR Identical +to \fIfile\fR, +but always appends the message using the format used by \fIpackf\fR +(the MMDF mailbox format). + +.ti -1i +\fIpipe\fR or | Pipe +the message as the standard input to the command named by \fBstring\fR, +using the Bourne shell \fIsh\fR(1) to interpret the string. +Prior to giving the string to the shell, +it is expanded with the following built-in variables: +.sp +.in +1i +.ta +1i +.ti -1i +$(sender) the out-of-band sender information +.ti -1i +$(address) the address that was used to cause delivery to the recipient +.ti -1i +$(size) the size of the message in bytes +.ti -1i +$(reply\-to) either the \*(lqReply\-To:\*(rq or \*(lqFrom:\*(rq field +of the message +.ti -1i +$(info) the out-of-band information specified +.in -1i +.ti -1i +\fIqpipe\fR or +.ti -1i +\fI\fR Similar to \fIpipe\fR, +but executes the command directly, +after built-in variable expansion, +without assistance from the shell. +This action can be used to avoid quoting special characters +which your shell might interpret. +.in -1i + +.ti -.5i +\fBresult\fR: +.br +Indicates how the action should be performed: + +.in +1i +.ta +1i +.ti -1i +\fIA\fR Perform the action. +If the action succeeds, then the message is considered delivered. + +.ti -1i +\fIR\fR Perform the action. +Regardless of the outcome of the action, +the message is not considered delivered. + +.ti -1i +\fI?\fR Perform +the action only if the message has not been delivered. +If the action succeeds, then the message is considered delivered. + +.ti -1i +\fIN\fR Perform +the action only if the message has not been delivered +and the previous action succeeded. +If this action succeeds, then the message is considered delivered. +.sp +.in -1i +.in -.5i +To summarize, here's an example: +.sp +.if t .in +.5i +.nf +.ta \w'default 'u +\w'mh-workersxx 'uC +\w'destroy 'uC +\w'result 'u +#\fIfield\fR \fIpattern\fR \fIaction\fR \fIresult\fR \fIstring\fR +# lines starting with a '#' are ignored, as are blank lines +# +# file mail with mmdf2 in the \*(lqTo:\*(rq line into file mmdf2.log +\fITo mmdf2 file A mmdf2.log\fP +# Messages from mmdf pipe to the program err-message-archive +\fIFrom mmdf pipe A /bin/err-message-archive\fP +# Anything with the \*(lqSender:\*(rq address \*(lqmh-workers\*(rq +# file in mh.log if not filed already +\fISender mh-workers file ? mh.log\fP +# \*(lqTo:\*(rq unix \- put in file unix-news +\fITo Unix > A unix-news\fP +.\" # if the address is jpo=mmdf \- pipe into mmdf-redist +.\" \fIaddr jpo=mmdf | A mmdf-redist\fP +# if the address is jpo=ack \- send an acknowledgement copy back +\fIaddr jpo=ack \fP|\fI R \*(lq/bin/resend\0\-r\0$(reply-to)\*(rq\fP +# anything from steve \- destroy! +\fIFrom steve destroy A \-\fP +# anything not matched yet \- put into mailbox +\fIdefault \- > ? mailbox\fP +# always run rcvtty +\fI* \- \fP|\fI R /mh/lib/rcvtty\fP +.re +.fi +.if t .in -.5i + +The file is always read completely, +so that several matches can be made and several actions can be taken. +The \fI\&.maildelivery\fR file must be owned either by the user or by root, +and must be writable only by the owner. +If the \fI\&.maildelivery\fR file cannot be found, +or does not perform an action which delivers the message, +then the file @@(MHETCPATH)/maildelivery is read according to the same rules. +This file must be owned by the root and must be writable only by the root. +If this file cannot be found +or does not perform an action which delivers the message, +then standard delivery to the user's maildrop is performed. + +.Uh "Sub-process environment" +When a process is invoked, its environment is: +the user/group-ids are set to recipient's ids; +the working directory is the recipient's home directory; +the umask is 0077; +the process has no /dev/tty; +the standard input is set to the message; +the standard output and diagnostic output are set to /dev/null; +all other file-descriptors are closed; +the envariables \fB$USER\fR, \fB$HOME\fR, \fB$SHELL\fR are set +appropriately, +and no other envariables exist. + +The process is given a certain amount of time to execute. +If the process does not exit within this limit, +the process will be terminated with extreme prejudice. +The amount of time is calculated as ((size x 60) + 300) seconds, +where size is the number of bytes in the message. + +The exit status of the process is consulted in determining the success of the +action. +An exit status of zero means that the action succeeded. +Any other exit status (or abnormal termination) means that the action failed. + +In order to avoid any time limitations, +you might implement a process that began by \fIforking\fR. +The parent would return the appropriate value immediately, +and the child could continue on, +doing whatever it wanted for as long as it wanted. +This approach is somewhat risky if the parent is going to return an +exit status of zero. +If the parent is going to return a non-zero exit status, +then this approach can lead to quicker delivery into your maildrop. +@@BEGIN: MSGID + +.Uh "Duplicate Message Suppression" +\fIslocal\fR is able to detect and supress duplicate messages. +To enable this, +create two empty files in your $HOME directory: +\&.maildelivery.pag and \&.maildelivery.dir. +These are ndbm files which are used to store the Message-IDs of +incoming messages. +@@END: MSGID +.Fi +^@@(MHETCPATH)/mtstailor~^MH tailor file +^$HOME/\&.maildelivery~^The file controlling local delivery +^@@(MHETCPATH)/maildelivery~^Rather than the standard file +^@@(MHDROPLOC)~^The default maildrop +.Sa +rcvstore(1), mhook(1), mh\-format(5) +@@BEGIN: MMDFIIMTS +, maildelivery(5) +@@END: MMDFIIMTS +.De +`\-noverbose' +.Ds +`\-maildelivery \&.maildelivery' +.Ds +`\-mailbox @@(MHDROPLOC)' +.Ds +`\-file' defaults to stdin +.Ds +`\-user' defaults to the current user +.Co +None +.Hi +@@BEGIN: MHMTS +For compatibility with older versions of \fIMH\fR, +if \fIslocal\fR can't find the user's \fI\&.maildelivery\fR file, +it will attempt to execute an old-style rcvmail hook in the user's $HOME +directory. +In particular, +it will first attempt to execute + +.ti +.5i +\&.mh\(rureceive file maildrop directory user + +failing that it will attempt to execute + +.ti +.5i +$HOME/bin/rcvmail user file sender + +before giving up and writing to the user's maildrop. + +In addition, +whenever a hook or process is invoked, +file-descriptor three (3) is set to the message in addition to the standard +input. + +@@END: MHMTS +\fISlocal\fP is designed to be backward-compatible with the +\fImaildelivery\fP facility provided by \fIMMDF-II\fP. +Thus, the \fI\&.maildelivery\fP file syntax is limited, +as is the functionality of \fIslocal\fP. + +In addition to an exit status of zero, +the \fIMMDF\fR values \fIRP_MOK\fR (32) and \fIRP_OK\fR (9) +mean that the message has been fully delivered. +Any other non-zero exit status, +including abnormal termination, +is interpreted as the \fIMMDF\fR value \fIRP_MECH\fR (200), +which means \*(lquse an alternate route\*(rq +(deliver the message to the maildrop). +.Bu +Only two return codes are meaningful, others should be. + +\fISlocal\fP is designed to be +backwards-compatible with the \fImaildelivery\fP functionality provided +by \fBMMDF-II\fP. + +Versions of \fIMMDF\fR with the \fImaildelivery\fR mechanism aren't +entirely backwards-compatible with earlier versions of \fIMMDF\fP. +If you have an \fIMMDF-I\fP old-style hook, +the best you can do is to have a one-line +\fI\&.maildelivery\fR file: + +.ti +.5i +default \- pipe A \*(lqbin/rcvmail $(address) $(info) $(sender)\*(rq +.En +@ + + +1.14 +log +@note MMDF-II compatibility goal +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: slocal.rf,v 1.13 1992/10/26 16:36:30 jromine Exp jromine $ +.SC SLOCAL 8 +@ + + +1.13 +log +@document MSGID option +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.12 1992/07/02 15:51:22 jromine Exp jromine $ +d364 4 +@ + + +1.12 +log +@document troubles with "pipe" & special characters +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.11 1992/02/15 00:08:56 jromine Exp jromine $ +d292 1 +d294 8 +@ + + +1.11 +log +@changes from Stephen Gildea +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.10 1992/02/12 19:10:01 jromine Exp jromine $ +d183 2 +@ + + +1.10 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.9 1992/02/12 19:08:15 jromine Exp jromine $ +d90 2 +a91 2 +consists of five fields, separated by white\-space or comma. +Since double\-quotes are honored, +d93 2 +a94 2 +entire argument in double\-quotes. +A double\-quote can be included by preceeding it with a backslash. +d160 1 +a160 1 +it is expanded with the following built\-in variables: +d181 1 +a181 1 +after built\-in variable expansion, +d249 1 +a249 1 +If the \fI\&.maildelivery\fR file can not be found, +d253 1 +a253 1 +If this file can not be found +d260 1 +a260 1 +the working directory is the recipient's directory; +d265 1 +a265 1 +all other file\-descriptors are closed; +d288 1 +a288 1 +If the parent is going to return a non\-zero exit status, +d317 1 +a317 1 +it will attempt to execute an old\-style rcvmail hook in the user's $HOME +d334 1 +a334 1 +file\-descriptor three (3) is set to the message in addition to the standard +d346 1 +a346 1 +All other non\-zero exit status, +d355 3 +a357 3 +entirely backwards\-compatible with earlier versions of \fIMMDF\fP. +If you have an \fIMMDF-I\fP old\-style hook, +the best you can do is to have a one\-line +@ + + +1.9 +log +@major revision +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.8 1992/02/12 05:59:38 jromine Exp jromine $ +d28 1 +a28 1 +You do not normallynormally invoke \fIslocal\fP yourself, +@ + + +1.8 +log +@enclose cmd in quotes +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.7 1992/02/12 04:24:50 jromine Exp jromine $ +d28 1 +a28 1 +You do \fBNOT\fR invoke \fIslocal\fP yourself, +d174 1 +a174 2 +$(info) miscellaneous out-of-band information as specified +on the command line. +d216 1 +d218 1 +a218 2 +.in +.5i +.ta \w'defaultxxx 'u +\w'mh-workers 'uC +\w'action'uC +\w'result'u +a241 1 +.in -.5i +d243 1 +d245 12 +a290 12 +The file is always read completely, +so that several matches can be made and several actions can be taken. +The \fI\&.maildelivery\fR file must be owned either by the user or by root, +and must be writable only by the owner. +If the \fI\&.maildelivery\fR file can not be found, +or does not perform an action which delivers the message, +then the file @@(MHETCPATH)/maildelivery is read according to the same rules. +This file must be owned by the root and must be writable only by the root. +If this file can not be found +or does not perform an action which delivers the message, +then standard delivery to the user's maildrop is performed. + +d298 3 +a300 3 +#ifdef MMDF +maildelivery(5) +#endif +d314 29 +a342 24 +.\" For compatibility with older versions of \fIMH\fR, +.\" if \fIslocal\fR can't find the user's \fI\&.maildelivery\fR file, +.\" it will attempt to execute an old\-style rcvmail hook in the user's $HOME +.\" directory. +.\" In particular, +.\" it will first attempt to execute +.\" +.\" .ti +.5i +.\" \&.mh\(rureceive file maildrop directory user +.\" +.\" failing that it will attempt to execute +.\" +.\" .ti +.5i +.\" $HOME/bin/rcvmail user file sender +.\" +.\" before giving up and writing to the user's maildrop. +.\" +.\" In addition, +.\" whenever a hook or process is invoked, +.\" file\-descriptor three (3) is set to the message in addition to the standard +.\" input. +.\" +@@BEGIN: MMDFIMTS +.br +a350 2 +.br +@@END: MMDFIMTS +d353 10 +@ + + +1.7 +log +@typo +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.6 1992/02/12 02:49:43 jromine Exp jromine $ +d67 1 +a67 1 + |\ @@(MHETCPATH)/slocal\ \-user\ username +@ + + +1.6 +log +@looks OK +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.5 1992/02/12 02:31:09 jromine Exp jromine $ +d41 1 +a41 1 +the sender will obtained from the UUCP \*(lqFrom \*(rq +d58 1 +a58 1 +to give information on stdout about the its progress. +d78 1 +a78 1 +with the \*(lqaddress\ info\ sender\*(rq arguments. +@ + + +1.5 +log +@ckpt +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.4 1992/02/12 00:23:07 jromine Exp $ +d11 1 +d25 5 +a29 5 +\fISlocal\fP is a program designed to allow inbound +mail to be processed according to a set of selection +criteria. +You do \fBNOT\fR invoke the hook yourself, +rather the hook is invoked on your behalf by the +d33 2 +a34 1 +criteria is specified in the file \fI\&.maildelivery\fP +d38 1 +a38 1 +The delivery address and message sender are +d54 3 +d59 1 +a59 1 +The `\-debug' switch produces verbose debugging output on stderr. +d77 2 +a78 1 +This will cause \fIMMDF-I\fP to invoke \fIslocal\fP on your behalf. +d82 1 +a82 1 +An equivalent functionality is already provide by \fIMMDF-II\fP; +d87 1 +a87 2 +The \fI\&.maildelivery\fR file, +which is an ordinary ASCII file, +d89 7 +d98 2 +a99 1 + \fBfield pattern action result string\fR +d103 1 +a103 1 +\fBfield\fP: +d105 1 +a105 2 +The +name of a header field that is to be searched for a pattern. +d112 1 +a112 1 +\fIsource\fR the out\-of\-band sender information +d125 2 +a126 2 +of characters to match in the specified field. +Matching is case\-insensitive but not does not use regular expressions. +d158 1 +a158 1 +using the Bourne shell \fIsh\fR\0(1) to interpret the string. +d165 1 +a165 1 +$(sender) the return address for the message +d174 2 +a175 1 +$(info) miscellaneous out\-of\-band information +d212 1 +a212 1 + +a214 8 + +Arguments in the \fI\&.maildelivery\fR file are separated by white\-space or +comma. +Since double\-quotes are honored, +these characters may be included in a single argument by enclosing the +entire argument in double\-quotes. +A double\-quote can be included by preceeding it with a backslash. + +d216 1 +a216 1 + +d219 1 +a219 1 +.ta \w'default 'u +\w'mh-workersxxx 'uR +\w'action'uC +\w'result'u +d235 1 +a235 1 +\fIaddr jpo=ack | R \*(lq/bin/resend\0\-r\0$(reply-to)\*(rq\fP +d241 1 +a241 1 +\fI* \- | R /mh/lib/rcvtty\fP +d293 1 +a293 1 +^@@(MHETCPATH)/mtstailor~^tailor file +d299 3 +d304 8 +a350 9 + +Versions of \fIMMDF\fR with the \fImaildelivery\fR mechanism aren't +entirely backwards\-compatible with earlier versions. +If you have an old\-style hook, the best you can do is to have a one\-line +\fI\&.maildelivery\fR file: + +.ti +.15i +default \- pipe A \*(lqbin/rcvmail $(address) $(info) $(sender)\*(rq +.En +@ + + +1.4 +log +@ckpt +@ +text +@d2 2 +a3 2 +.\" @@(#)$Id: slocal.rf,v 1.3 1992/02/11 23:48:28 jromine Exp jromine $ +.SC MHOOK 1 +d9 1 +d11 2 +d14 1 +d16 1 +a16 3 +\%[\-sender\ sender] +\%[\-mailbox\ mbox] +\%[\-home\ homedir] +d36 7 +a42 5 +.Uh "Variables" +\fISlocal\fP sets a number of variables which are +available as arguments to the programs invoked by \fIslocal\fP. +The default values of these parameters may be overridden +by command line arguments to \fIslocal\fP. +d44 8 +a51 33 +.in +.5i +.ti -.5i +address +.br +The destination address. +This is obtained from the message envelope delivery information, if possible. +If not present, the login name of the uid invoking slocal. +.ti -.5i +username +.br +The mbox part of \*(lqaddress\*(rq, else the value of \*(lqaddress\*rq. +.ti -.5i +homedir +.br +The user's home directory. This sets +.ti -.5i +mbox +.br +The user's maildrop file, if not \*(lq@@(MHDROPLOC)\*(rq. +.ti -.5i +file +.br +The file from which to read the message, if not stdin. +.ti -.5i +sender +.br +The message sender. +This is obtained from the message envelope delivery information, if possible. +Under \fISendMail\fP, it is +obtained from the UUCP \*(lqFrom \*(rq line, if present. +.in -.5i +The `\-maildelivery' switch sets the name of the +maildelivery file to read instructions from. +d54 1 +a54 1 +The `\-debug' switch produces verbose debugging output, printed on stderr. +d62 1 +a62 1 + | @@(MHETCPATH)/slocal -user username +d100 1 +a100 1 +\fIsource\fR: the out\-of\-band sender information +d102 1 +a102 1 +\fIaddr\fR: the address that was used to cause delivery to the recipient +d104 1 +a104 1 +\fIdefault\fR: this matches \fIonly\fR if the message hasn't been delivered yet +d106 1 +a106 1 +\fI*\fR: this always matches +d116 5 +a120 2 +.ti -1i +\fBaction\fR: The action to take to deliver the message: +d122 1 +a122 1 +.ta +1.5i +d124 4 +a127 1 +\fIfile\fR or \fI>\fR: Append +a132 1 + +d138 1 +a138 1 +\fImbox\fR: Identical +d143 2 +a144 2 +.ti -.5i +\fIpipe\fR or \fI|\fR: Pipe +d149 1 +d153 1 +a153 1 +$(sender): the return address for the message +d155 1 +a155 1 +$(address): the address that was used to cause delivery to the recipient +d157 1 +a157 1 +$(size): the size of the message in bytes +d159 1 +a159 1 +$(reply\-to): either the \*(lqReply\-To:\*(rq or \*(lqFrom:\*(rq field +d162 1 +a162 1 +$(info): miscellaneous out\-of\-band information +d164 8 +d173 69 +d243 1 +a243 1 +the user/group id:s are set to recipient's id:s; +a274 48 +.ti -.5i +\fIqpipe\fR or \fI\fR: +.br +Similar to \fIpipe\fR, +but executes the command directly, +after built\-in variable expansion, +without assistance from the shell. + +.ti -.5i +\fIdestroy\fR: +.br +This action always succeeds. +.in -.5i + +.ti -.25i +\fBresult\fR: +.br +Indicates how the action should be performed: + +.in +.5i +.ti -.5i +\fIA\fR: +.br +Perform the action. +If the action succeeds, then the message is considered delivered. + +.ti -.5i +\fIR\fR: +.br +Perform the action. +Regardless of the outcome of the action, +the message is not considered delivered. + +.ti -.5i +\fI?\fR: +.br +Perform the action only if the message has not been delivered. +If the action succeeds, then the message is considered delivered. + +.ti -.5i +\fIN\fR: +.br +Perform the action only if the message has not been delivered +and the previous action succeeded. +If this action succeeds, then the message is considered delivered. +.in -.5i +.in -.5i + +d285 1 +a285 1 +then standard delivery to the user's maildrop, @@(MHDROPLOC), is performed. +a286 38 +Arguments in the \fI\&.maildelivery\fR file are separated by white\-space or +comma. +Since double\-quotes are honored, +these characters may be included in a single argument by enclosing the +entire argument in double\-quotes. +A double\-quote can be included by preceeding it with a backslash. + +To summarize, here's an example: + +.nf +.in +.5i +.ta \w'default 'u +\w'uk-mmdf-workers 'u +\w'action 'u +\w'result 'u +#\fIfield\fR \fIpattern\fR \fIaction\fR \fIresult\fR \fIstring\fR +# lines starting with a '#' are ignored, as are blank lines +# +# file mail with mmdf2 in the \*(lqTo:\*(rq line into file mmdf2.log +To mmdf2 file A mmdf2.log +# Messages from mmdf pipe to the program err-message-archive +From mmdf pipe A err-message-archive +# Anything with the \*(lqSender:\*(rq address \*(lquk-mmdf-workers\*(rq +# file in mmdf2.log if not filed already +Sender uk-mmdf-workers file ? mmdf2.log +# \*(lqTo:\*(rq unix \- put in file unix-news +To Unix > A unix-news +# if the address is jpo=mmdf \- pipe into mmdf-redist +addr jpo=mmdf | A mmdf-redist +# if the address is jpo=ack \- send an acknowledgement copy back +addr jpo=ack | R \*(lqresend\0\-r\0$(reply-to)\*(rq +# anything from steve \- destroy! +From steve destroy A \- +# anything not matched yet \- put into mailbox +default \- > ? mailbox +# always run rcvalert +* \- | R rcvalert +.re +.in -.5i +.fi + +a295 4 +.Ds +\fIaddress\fP is the user invoking \fIslocal\fP +.Ds +\fIuser\fP is the same as \fIaddress\fP +d299 22 +a320 22 +For compatibility with older versions of \fIMH\fR, +if \fIslocal\fR can't find the user's \fI\&.maildelivery\fR file, +it will attempt to execute an old\-style rcvmail hook in the user's $HOME +directory. +In particular, +it will first attempt to execute + +.ti +.5i +\&.mh\(rureceive file maildrop directory user + +failing that it will attempt to execute + +.ti +.5i +$HOME/bin/rcvmail user file sender + +before giving up and writing to the user's maildrop. + +In addition, +whenever a hook or process is invoked, +file\-descriptor three (3) is set to the message in addition to the standard +input. + +d322 1 +d331 1 +a332 1 +.\} +@ + + +1.3 +log +@ckpt +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: slocal.rf,v 1.1 1992/02/11 21:45:43 jromine Exp jromine $ +d101 1 +d105 1 +a105 1 +This file is read by \*(SL. +d107 2 +a108 7 +The format of each line in the \fI\&.maildelivery\fR file is + +.ti +.5i +\fBfield pattern action result string\fR + +where + +d110 2 +a111 2 +.ti -.25i +\fBfield\fR: +d113 2 +a114 1 +The name of a header field that is to be searched for a pattern. +d116 13 +a128 10 +In addition, the following special fields are also defined: +.in +.25i +\fIsource\fR: the out\-of\-band sender information +.br +\fIaddr\fR: the address that was used to cause delivery to the recipient +.br +\fIdefault\fR: this matches \fIonly\fR if the message hasn't been delivered yet +.br +\fI*\fR: this always matches +.in -.25i +d130 1 +a130 1 +.ti -.25i +d133 3 +a135 2 +The sequence of characters to match in the specified field. +Matching is case\-insensitive but not RE\-based. +d137 7 +a143 11 +.ti -.25i +\fBaction\fR: +.br +The action to take to deliver the message. +This is one of + +.in +.5i +.ti -.5i +\fIfile\fR or \fI>\fR: +.br +Append the message to the file named by \fBstring\fR. +d150 1 +a150 5 +a new field is added: + +.ti +.5i +Delivery\-Date:\ date + +d153 3 +a155 4 +.ti -.5i +\fImbox\fR: +.br +Identical to \fIfile\fR, +d160 2 +a161 3 +\fIpipe\fR or \fI|\fR: +.br +Pipe the message as the standard input to the command named by \fBstring\fR, +d165 10 +a174 8 +.in +.25i +$(sender): the return address for the message +.br +$(address): the address that was used to cause delivery to the recipient +.br +$(size): the size of the message in bytes +.br +$(reply\-to): either the \*(lqReply\-To:\*(rq or \*(lqFrom:\*(rq field +d176 3 +a178 3 +.br +$(info): miscellaneous out\-of\-band information +.in -.25i +@ + + +1.2 +log +@cut 1 +@ +text +@d7 2 +a8 1 +@@(MHETCPATH)/slocal \%[addr\ info\ sender] +d10 1 +a10 1 +\%[\-user\ name] +d14 3 +a16 2 +\%[\-home\ directory] +\%[\-maildelivery\ file] +d20 1 +d34 43 +a99 45 +.Uh Options +.in +.5i +.ti -.5i +\-addr\ address +.br +The destination address. +This is obtained from the message envelope delivery information, if possible. +If not present, the login name of the uid invoking slocal. +.ti -.5i +\-user\ name +.br +The mbox part of "addr", else the value of "addr" +.ti -.5i +\-mailbox\ mbox +.br +The user's maildrop file, if not \*(lq@@(MHDROPLOC)\*(rq. +.ti -.5i +\-home\ directory +.br +The user's home directory. +.ti -.5i +\-file\ file +.br +The file from which to read the message, if not stdin. +.ti -.5i +\-sender\ sender +.br +The message sender. +This is obtained from the message envelope delivery information, if possible. +Under \fISendMail\fP, it is +obtained from the UUCP \*(lqFrom \*(rq line, if present. +.ti -.5i +\-maildelivery\ file +.br +The maildelivery file to read instructions from. +.ti -.5i +\-verbose +.br +Give information on stdout about the progress of slocal. +.ti -.5i +\-debug +.br +Verbose debugging output, printed on stderr. +Helpful when debugging your .maildelivery file. +.in -.5i +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: mhook.rf,v 1.10 1992/02/10 20:00:15 jromine Exp $ +d5 1 +a5 1 +mhook \- MH receive\-mail hooks +d7 10 +a16 23 +$HOME/\&.maildelivery +@@BEGIN: MHMTS +.ds SL \fIpost\fR +.ds ZS slocal +@@END: MHMTS +@@BEGIN: MMDFIMTS +.ds SL \fIslocal\fR +.ds ZS slocal +@@END: MMDFIMTS +@@BEGIN: MMDFIIMTS +.ds SL the local channel +.ds ZS mmdfII +@@END: MMDFIIMTS +@@BEGIN: SENDMTS +.ds SL \fIslocal\fR +.ds ZS slocal +@@END: SENDMTS + +.ti .5i +@@(MHETCPATH)/rcvdist +\%[\-form\ formfile] +\%[switches\ for\ \fIpostproc\fR] +address\ ... +d18 7 +d26 4 +a29 4 +.ti .5i +@@(MHETCPATH)/rcvpack +file +\%[\-help] +d31 4 +a34 27 +.ti .5i +@@(MHETCPATH)/rcvtty +\%[command] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-bell] \%[\-nobell] +\%[\-newline] \%[\-nonewline] +\%[\-biff] +\%[\-help] +.DE +A receive\-mail hook is a program that is run whenever you receive a +mail message. +You do \fBNOT\fR invoke the hook yourself, +@@BEGIN: MHMTS +rather the hook is invoked on your behalf by \fIMH\fR. +@@END: MHMTS +@@BEGIN: MMDFIMTS +rather the hook is invoked on your behalf by \fIMMDF\fR +when you (symbolically) link @@(MHETCPATH)/slocal to the file +bin/rcvmail in your home directory. +@@END: MMDFIMTS +@@BEGIN: MMDFIIMTS +rather the hook is invoked on your behalf by \fIMMDF\fR. +@@END: MMDFIIMTS +@@BEGIN: SENDMTS +rather the hook is invoked on your behalf by \fISendMail\fR, +when you include the line +d37 1 +a37 1 + \*(lq| @@(MHETCPATH)/slocal -user username\*(rq +d40 1 +d42 1 +a42 1 +@@END: SENDMTS +d44 56 +a103 1 +.if '\*(ZS'slocal' \{\ +d116 1 +a116 1 +The name of a field that is to be searched for a pattern. +a315 4 +.\} +.if '\*(ZS'mmdfII' \{\ +See \fImaildelivery\fR\0(5) for the details. +.\} +a316 37 +Four programs are currently standardly available, +\fIrcvdist\fR (redistribute incoming messages to additional recipients), +\fIrcvpack\fR (save incoming messages in a \fIpackf\fR'd file), +and \fIrcvtty\fR (notify user of incoming messages). +The fourth program, +\fIrcvstore\fR\0(1) is described separately. +They all reside in the \fI@@(MHETCPATH)/\fR directory. + +The \fIrcvdist\fR program will resend a copy of the message to all of the +addresses listed on its command line. +It uses the format string facility described in \fImh\-format\fR\0(5). + +The \fIrcvpack\fR program will append a copy of the message to the file listed +on its command line. +Its use is obsoleted by the \fI\&.maildelivery\fR. + +The \fIrcvtty\fR program executes the named file with the message as its +standard input, +and writes the resulting output +on your terminal. + +If no file is specified, or is bogus, etc., +then \fIrcvtty\fR will instead write a one\-line scan listing. +Either the `\-form\ formatfile' or `\-format\ string' option may be used +to override the default output format (see \fImh\-format\fP\0(5)). +A newline is output before the +message output, and the terminal bell is rung +after the output. The `\-nonewline' and `\-nobell' options +will inhibit these functions. + +Normally, \fIrcvtty\fP obeys +write permission as granted by \fImesg\fP\0(1). +With the `\-biff' option, \fIrcvtty\fP will obey the notification +status set by \fIbiff\fP\0(1). +If the terminal access daemon (TTYD) is available on your system, +then \fIrcvtty\fR will give its output to the daemon for output +instead of writing on the user's terminal. +d321 1 +d323 7 +a329 6 +.if '\*(ZS'slocal' \{\ +rcvstore (1), mh\-format(5) +.\} +.if '\*(ZS'mmdfII' \{\ +rcvstore (1), maildelivery(5), mh\-format(5) +.\} +a331 1 +.if '\*(ZS'slocal' \{\ +a368 1 +.if '\*(ZS'mmdfII' \{\ +a375 1 +.\} +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/sortm.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/sortm.rf,v new file mode 100644 index 0000000..3ed7139 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/sortm.rf,v @@ -0,0 +1,287 @@ +head 1.9; +access; +symbols; +locks; strict; + + +1.9 +date 93.08.27.20.21.19; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 90.04.05.15.15.26; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.28.10.48.27; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.23.13.43.25; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.15.01.28; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.53; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.36; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.51; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.31; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@change comments about the lack of "-pack" +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: sortm.rf,v 1.8 1990/04/05 15:15:26 sources Exp jromine $ +.SC SORTM 1 +.NA +sortm \- sort messages +.SY +sortm +\%[+folder] \%[msgs] +\%[\-datefield\ field] +\%[\-textfield\ field] \%[\-notextfield] +\%[\-limit days] \%[\-nolimit] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +.DE +\fISortm\fR sorts the specified messages in the named folder according +to the chronological order of the \*(lqDate:\*(rq field of each message. + +The `\-verbose' switch directs \fIsortm\fR to tell the user the general +actions that it is taking to place the folder in sorted order. + +The `\-datefield\ field' switch tells \fIsortm\fR the name of the field +to use when making the date comparison. +If the user has a special field in each message, +such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq, +then the `\-datefield' switch can be used to direct \fIsortm\fR which +field to examine. + +The `\-textfield\ field' switch causes \fIsortm\fR to sort messages by +the specified text field. +If this field is \*(lqsubject\*(rq, +any leading "re:" is stripped off. +In any case, all characters except letters and numbers are stripped +and the resulting strings are sorted +datefield\-major, textfield\-minor, +using a case insensitive comparison. + +With `\-textfield\ field', +if `\-limit\ days' is specified, messages with similar textfields +that are dated within `days' of each other appear together. +Specifying `\-nolimit' makes the limit infinity. +With `\-limit 0', the sort is instead made textfield\-major, date\-minor. + +.\"Ex +For example, to order a folder by date-major, subject-minor, use: + +.ti +.5i +sortm -textfield subject +folder + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +folder (1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-datefield date' +.Ds +`\-notextfield' +.Ds +`\-noverbose' +.Ds +`\-nolimit' +.Co +If a folder is given, it will become the current folder. +If the current message is moved, \fIsortm\fR will preserve its status +as current. +.Hi +Timezones used to be ignored when comparing dates: +they aren't any more. + +Messages which were in the folder, but not specified by `msgs', +used to be moved to the end of the folder; +now such messages are left untouched. + +\fISortm\fP sometimes did not preserve the message +numbering in a folder (e.g., messages +1, 3, and 5, might have been renumbered +to 1, 2, 3 after sorting). +This was a bug, and has been fixed. +To compress the message numbering in a folder, use +\*(lq\fIfolder\ \-pack\fR\|\*(rq as always. +.Bu +If \fIsortm\fR encounters a message without a date\-field, +or if the message has a date\-field that \fIsortm\fR cannot parse, +then \fIsortm\fR attempts to keep the message in the same relative +position. +This does not always work. +For instance, if the first message encountered lacks a date which can be +parsed, +then it will usually be placed at the end of the messages being sorted. + +When \fIsortm\fR complains about a message which it can't temporally order, +it complains about the message number \fIprior\fR to sorting. +It should indicate what the message number will be \fIafter\fR sorting. +.En +@ + + +1.8 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d81 7 +a87 7 +Previously, +\fIsortm\fR would try to fill any gaps in a folder within the +range of messages it sorted. +To improve performance, +\fIsortm\fR now minimizes the number of message moves. +To pack a folder, use +\*(lq\fIfolder\ \-pack\fR\|\*(rq instead. +@ + + +1.7 +log +@add some history +@ +text +@d2 1 +@ + + +1.6 +log +@fixup +@ +text +@a15 4 +Messages which are in the folder, but not specified by `msgs', +are moved to the end of the folder. +If a message does not exist (the folder has a gap), +\fIsortm\fR may fill the gap if convenient. +d39 2 +a40 1 +With `\-limit 0', the sort is made textfield\-major, date\-minor. +d75 12 +@ + + +1.5 +log +@document -subject +@ +text +@d9 2 +a11 2 +\%[\-subject] +\%[\-limit days] \%[\-nolimit] +d31 20 +a50 5 +The `\-subject' switch causes \fIsortm\fR to sort messages by subject; +the leading "re:" and all characters except letters are stripped and the +resulting strings are sorted using a case insensitive comparison. If +`\-limit\ days' is specified, messages with similar subjects that are +dated within `days' of each other appear together. +d66 2 +a68 2 +.Ds +`\-nosubject' +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d10 2 +d30 6 +d52 4 +d73 1 +a73 1 +When \fIsortm\fR complains about a message which it can't temporarlly order, +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH SORTM 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH SORTM 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC SORTM 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/tmac.h,v b/docs/historical/mh-6.8.5/conf/doc/RCS/tmac.h,v new file mode 100644 index 0000000..83961df --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/tmac.h,v @@ -0,0 +1,210 @@ +head 1.7; +access; +symbols; +locks; strict; +comment @ * @; + + +1.7 +date 92.10.30.19.45.32; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 91.01.07.16.12.37; author mh; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.40.17; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.58; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.22.11.22.32; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.14.29.10; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.13.15.41; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@add .re macro +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: tmac.h,v 1.6 1991/01/07 16:12:37 mh Exp jromine $ +.\" Try to keep only one copy of the documentation around +.\" by re-defining macros and so forth. +.\" +.fc ^ ~ +.\" I pity the fool who tampers with the next line... +.ds ZZ -man +.de SC \" Title section +.TH \\$1 \\$2 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.. +.de NA \" Name section +.SH NAME +.. +.de SY \" Synopsis section +.SH SYNOPSIS +.in +.5i +.ti -.5i +.. +.de DE \" Description section +.in -.5i +.SH DESCRIPTION +.. +.de Fi \" Files section +.SH FILES +.nf +.ta \w'@@(MHETCPATH)/ExtraBigFileName 'u +.. +.de Pr \" Profile section +.SH "PROFILE\ COMPONENTS" +.nf +.ta 2.4i +.ta \w'ExtraBigProfileName 'u +.. +.de Ps \" Profile next +.br +.. +.de Sa \" See Also section +.fi +.SH "SEE\ ALSO" +.. +.de De \" Defaults section +.SH "DEFAULTS" +.nf +.. +.de Ds \" Defaults next +.br +.. +.de Co \" Context section +.fi +.SH CONTEXT +.. +.de Hh \" Hints section +.fi +.SH "HELPFUL HINTS" +.. +.de Hi \" History section +.fi +.SH HISTORY +.. +.de Bu \" Bugs section +.fi +.SH BUGS +.. +.de En +.. +.de ip +.IP "\\$1" \\$2 +.. +.de Uh +.ne 4 +.SS "\\$1" +.. +.\" a useful -me macro +.de re +.ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +.. +@ + + +1.6 +log +@add Uh macro for sub sections +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: tmac.h,v 1.5 90/04/05 15:40:17 sources Exp Locker: mh $ +d73 4 +@ + + +1.5 +log +@Id +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d69 4 +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@put it back, and fix things another way +@ +text +@d9 1 +a9 1 +.TH \\$1 \\$2 MH [mh.6] +@ + + +1.2 +log +@fixed for backward compatibility with -man (for makewhatis & getNAME) +@ +text +@a7 4 +.rn SH Sh \" rename SH to Sh +.de SH +\\$1 +.. +d12 1 +a12 1 +.Sh NAME +d15 1 +a15 2 +.Sh SYNOPSIS +.rn Sh SH \" put SH back to normal +@ + + +1.1 +log +@Initial revision +@ +text +@d8 4 +d16 1 +a16 1 +.SH NAME +d19 2 +a20 1 +.SH SYNOPSIS +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/vmh.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/vmh.rf,v new file mode 100644 index 0000000..9b5d7a9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/vmh.rf,v @@ -0,0 +1,216 @@ +head 1.6; +access; +symbols; +locks; strict; + + +1.6 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.15.32; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.22.11.31.54; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.19.42.37; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.20.17.36.52; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.20.17.21.32; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@fixup for nroff problems +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: vmh.rf,v 1.5 1990/04/05 15:15:32 sources Exp jromine $ +.SC VMH 1 +.NA +vmh \- visual front-end to MH +.SY +vmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] +.DE +\fIvmh\fR is a program which implements the server side of +the \fIMH\fR window management protocol +and uses \fIcurses\fR\0(3) routines to maintain a split\-screen interface to +any program which implements the client side of the protocol. +This latter program, called the \fIvmhproc\fR, +is specified using the `\-vmhproc\ program' switch. + +The upshot of all this is that one can run \fImsh\fR on a display terminal +and get a nice visual interface. +To do this, for example, just add the line + +.ti +.5i +mshproc: vmh + +to your \&.mh\(ruprofile. +(This takes advantage of the fact that +\fImsh\fR is the default \fIvmhproc\fR for \fIvmh\fR.) + +In order to facilitate things, +if the `\-novmhproc' switch is given, +and \fIvmh\fR can't run on the user's terminal, +the \fIvmhproc\fR is run directly without the window management protocol. + +After initializing the protocol, +\fIvmh\fR prompts the user for a command to be given to the client. +Usually, this results in output being sent to one or more windows. +If a output to a window would cause it to scroll, +\fIvmh\fR prompts the user for instructions, +roughly permitting the capabilities of \fIless\fR or \fImore\fR +(e.g., the ability to scroll backwards and forwards): + +.nf +.in +.5i +.ta \w'RETURN 'u +\w'* 'u +SPACE advance to the next windowful +RETURN * advance to the next line +y * retreat to the previous line +d * advance to the next ten lines +u * retreat to the previous ten lines +g * go to an arbitrary line + (preceed g with the line number) +G * go to the end of the window + (if a line number is given, this acts like `g') +CTRL\-L refresh the entire screen +h print a help message +q abort the window +.re +.in -.5i +.fi + +(A `*' indicates that a numeric prefix is meaningful for this command.) + +Note that if a command resulted in more than one window's worth of +information being displayed, +and you allow the command which is generating information for the window to +gracefully finish +(i.e., you don't use the `q' command to abort information being sent to the +window), +then \fIvmh\fR will give you one last change to peruse the window. +This is useful for scrolling back and forth. +Just type `q' when you're done. + +To abnormally terminate \fIvmh\fR (without core dump), +use (usually CTRL\-\\). +For instance, +this does the \*(lqright\*(rq thing with \fIbbc\fR and \fImsh\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +msh(1) +.De +`\-prompt\ (vmh)\ ' +.Ds +`\-vmhproc\ msh' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIvmh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +At present, +there is no way to pass signals (e.g., interrupt, quit) to the client. +However, +generating QUIT when \fIvmh\fR is reading a command from the terminal is +sufficient to tell the client to go away quickly. + +Acts strangely (loses peer or botches window management protocol with peer) +on random occasions. +.En +@ + + +1.5 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d5 1 +a5 1 +vmh \- visual front\-end to MH +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH VMH 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH VMH 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC VMH 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/whatnow.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/whatnow.rf,v new file mode 100644 index 0000000..276bb3f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/whatnow.rf,v @@ -0,0 +1,294 @@ +head 1.9; +access; +symbols; +locks; strict; + + +1.9 +date 92.10.16.21.36.30; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.05.12.22.23.34; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 90.12.18.15.44.22; author mh; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.09.20; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.55; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.42.38; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.53; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.15.15.17.33; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.15.15.14.55; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@MIME changes +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: whatnow.rf,v 1.8 1992/05/12 22:23:34 jromine Exp jromine $ +.SC WHATNOW 1 +.NA +whatnow \- prompting front-end for send +.SY +whatnow +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-prompt\ string] +\%[file] +\%[\-help] +.DE +\fIWhatnow\fR is the default program that queries the user about the +disposition of a composed draft. +It is normally invoked by one of +\fIcomp\fR, \fIdist\fR, \fIforw\fR, or \fIrepl\fR +after the initial edit. + +When started, +the editor is started on the draft +(unless `\-noedit' is given, in which case the initial edit is suppressed). +Then, \fIwhatnow\fR repetitively +prompts the user with \*(lqWhat now?\*(rq and awaits a response. +The valid responses are: + +.nf +.in .5i +.ta \w'\fBrefile +folder\fR 'u +^\fBdisplay\fR~^to list the message being distributed/replied\-to on +^~^the terminal +^\fBedit\fR~^to re\-edit using the same editor that was used on the +^~^preceding round unless a profile entry +^~^\*(lq\-next: \*(rq names an alternate editor +^\fBedit \fR~^to invoke for further editing +^\fBlist\fR~^to list the draft on the terminal +^\fBpush\fR~^to send the message in the background +^\fBquit\fR~^to terminate the session and preserve the draft +^\fBquit \-delete\fR~^to terminate, then delete the draft +^\fBrefile +folder\fR~^to refile the draft into the given folder +^\fBsend\fR~^to send the message +^\fBsend \-watch\fR~^to cause the delivery process to be monitored +^\fBwhom\fR~^to list the addresses that the message will go to +^\fBwhom \-check\fR~^to list the addresses and verify that they are +^~^acceptable to the transport service +.fi +.re + +For the \fBedit\fR response, +any valid switch to the editor is valid. +Similarly, +for the \fBsend\fR and \fBwhom\fR responses, +any valid switch to \fIsend\fR\0(1) and \fIwhom\fR\0(1) commands, +respectively, +are valid. +For the \fBpush\fR response, +any valid switch to \fIsend\fR\0(1) is valid +(as this merely invokes \fIsend\fR with the `\-push' option). +For the \fIrefile\fR response, +any valid switch to the \fIfileproc\fR is valid. +For the \fBdisplay\fR and \fBlist\fR responses, +any valid argument to the \fIlproc\fR is valid. +If any non\-switch arguments are present, +then the pathname of the draft will be excluded from the argument list +given to the \fIlproc\fR +(this is useful for listing another \fIMH\fR message). + +See \fImh\-profile\fR\0(5) for further information +about how editors are used by MH. +It also discusses how complex envariables can be used to direct +\fIwhatnow\fR's actions. + +The `\-prompt\ string' switch sets the prompting string for \fIwhatnow\fR. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^\-next:~^To name an editor to be used after exit from +.Ps +@@BEGIN: MIME +^automhnproc:~^Program to automatically run prior to sending +^~^if the draft is an \fImhn\fR composition file +.Ps +@@END: MIME +^fileproc:~^Program to refile the message +.Ps +^lproc:~^Program to list the contents of a message +.Ps +^sendproc:~^Program to use to send the message +.Ps +^whomproc:~^Program to determine who a message would go to +.Sa +send(1), whom(1) +.De +`\-prompt\ \*(lqWhat\ Now?\ \*(rq' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIwhatnow\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +If the initial edit fails, \fIwhatnow\fR deletes your draft (by renaming +it with a leading comma); failure of a later edit preverves the draft. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIcomp\fR, \fIdist\fP, \fIforw\fP, and \fIrepl\fP use +a built\-in \fIwhatnow\fR, +and do not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since it won't be run. + +If \fIsendproc\fR is \fIsend\fR, +then \fIwhatnow\fR uses a built\-in \fIsend\fR, +it does not actually run the \fIsend\fR program. +Hence, if you define your own \fIsendproc\fR, +don't call it \fIsend\fR since \fIwhatnow\fR won't run it. +.En +@ + + +1.8 +log +@fixup for nroff problems +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: whatnow.rf,v 1.7 1990/12/18 15:44:22 mh Exp jromine $ +d92 5 +@ + + +1.7 +log +@comp, repl, etc. use built-in whatnow. +jlr +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id: whatnow.rf,v 1.6 90/04/05 15:09:20 sources Exp Locker: mh $ +d5 1 +a5 1 +whatnow \- prompting front\-end for send +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d25 2 +a26 1 +The valid responses are +d113 7 +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH WHATNOW 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH WHATNOW 1 [mh.6] MH +@ + + +1.2 +log +@document deleting initial draft -- should be fixed +@ +text +@d2 2 +a3 2 +.SC WHATNOW 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d109 3 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/whom.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/whom.rf,v new file mode 100644 index 0000000..164cf8e --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/whom.rf,v @@ -0,0 +1,186 @@ +head 1.7; +access; +symbols; +locks; strict; + + +1.7 +date 92.02.11.00.47.53; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.10.01; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.22.11.31.56; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.20.19.42.39; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.20.17.36.54; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.03.16.15.40.16; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.03.16.15.31.01; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@document Aliasfile may be more than one file +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id: whom.rf,v 1.6 1990/04/05 15:10:01 sources Exp jromine $ +.SC WHOM 1 +.NA +whom \- report to whom a message would go +.SY +whom +\%[\-alias\ aliasfile] +\%[\-check] \%[\-nocheck] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[file] +\%[\-help] +.DE +\fIWhom\fR is used to expand the headers of a message into a set of addresses +and optionally verify that those addresses are deliverable at that time +(if `\-check' is given). + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read +(more than one file, each preceeded by `\-alias', can be named). +See \fImh\-alias\fR\0(5) for more information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Aliasfile:~^For a default alias file +.Ps +^postproc:~^Program to post the message +.Sa +mh\-alias(5), post(8) +.De +`file' defaults to /draft +.Ds +`\-nocheck' +.Ds +`\-alias @@(MHETCPATH)/MailAliases' +.Co +None +.Bu +With the `\-check' option, \fIwhom\fR makes no guarantees that the addresses +listed as being ok are really deliverable, rather, an address being listed +as ok means that at the time that \fIwhom\fR was run the address was +thought to be deliverable by the transport service. For local addresses, this +is absolute; for network addresses, it means that the host is known; for uucp +addresses, it (often) means that the \fIUUCP\fR network is available for use. +.En +@ + + +1.6 +log +@add ID +@ +text +@d2 1 +a2 1 +.\" @@(#)$Id:$ +d25 1 +a25 1 +The file specified by the profile entry \*(lqAliasfile:\*(rq and any +@ + + +1.5 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.4 +log +@typo +@ +text +@d2 2 +a3 2 +.TH WHOM 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.3 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH WHOM 1 [mh.6] MH +@ + + +1.2 +log +@document Aliasfile: profile entry +@ +text +@d2 2 +a3 2 +.SC WHOM 1 +.NA +d5 1 +a5 1 +.SY +@ + + +1.1 +log +@Initial revision +@ +text +@d24 2 +a25 2 +By using the `\-alias\ aliasfile' switch, the user can direct \fIsend\fR +to consult the named files for alias definitions +d31 2 +d34 2 +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/RCS/wmh.rf,v b/docs/historical/mh-6.8.5/conf/doc/RCS/wmh.rf,v new file mode 100644 index 0000000..91e2194 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/RCS/wmh.rf,v @@ -0,0 +1,182 @@ +head 1.5; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +1.5 +date 90.04.05.15.15.38; author sources; state Exp; +branches ; +next 1.4; + +1.4 +date 90.03.22.11.31.57; author sources; state Exp; +branches ; +next 1.3; + +1.3 +date 90.03.20.19.42.41; author sources; state Exp; +branches ; +next 1.2; + +1.2 +date 90.03.20.17.36.55; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 90.03.20.17.21.34; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +1.5 +log +@add ID +@ +text +@.\" @@(MHWARNING) +.\" @@(#)$Id:$ +.SC WMH 1 +.NA +wmh \- window front\-end to MH +.SY +wmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] +.DE +\fIwmh\fR is a program which implements the server side of +the \fIMH\fR window management protocol +and uses the Integrated Solutions Graphics Workstation desktop to maintain a +multiple window interface to +any program which implements the client side of the protocol. +This latter program, called the \fIvmhproc\fR, +is specified using the `\-vmhproc\ program' switch. + +The upshot of all this is that one can run \fImsh\fR on an IS desktop +and get a nice window interface. +To do this, for example, just add the line + +.ti +.5i +mshproc: wmh + +to your \&.mh\(ruprofile. +(This takes advantage of the fact that +\fImsh\fR is the default \fIvmhproc\fR for \fIwmh\fR.) + +In order to facilitate things, +if the `\-novmhproc' switch is given, +and \fIwmh\fR can't run on the user's terminal +(i.e., the terminal is not a desktop), +the \fIvmhproc\fR is run directly without the window management protocol. + +After initializing the protocol, +\fIwmh\fR prompts the user for a command to be given to the client. +Usually, this results in output being sent to one or more windows. +If output to a window would cause it to scroll, +\fIwmh\fR uses an elevator bar to scroll through the window. +If click left is used inside the elevator bar, +the user can direct \fIwmh\fR as to what portion of the output should be +displayed; +if click middle is used, +the \*(lqpaging\*(rq menu is displayed; +and, +if click right is used, +the window scrolls to the next page +(or, the user explicitly moved to the end, the previous page). + +The mouse can also be used while in the command window: +click left does nothing; +click middle brings up the \*(lqwmh\*(rq menu; +and, +click right shows the next message (a moby hack for timesavings). +To abnormally terminate \fIwmh\fR (without core dump), +use (usually CTRL\-\\). +For instance, +this does the \*(lqright\*(rq thing with \fIbbc\fR and \fImsh\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +msh(1) +.De +`\-prompt\ (wmh)\ ' +.Ds +`\-vmhproc\ msh' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIwmh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +At present, +there is no way to pass signals (e.g., interrupt, quit) to the client. +However, +generating QUIT when \fIwmh\fR is reading a command from the terminal is +sufficient to tell the client to go away quickly. + +Acts strangely (loses peer or botches window management protocol with peer) +on random occasions. +.En +@ + + +1.4 +log +@put things back, do .NA stuff another way +@ +text +@d2 1 +@ + + +1.3 +log +@typo +@ +text +@d2 2 +a3 2 +.TH WMH 1 @@(MHCENTERFOOT) @@(MHLEFTFOOT) +.SH .NA +d5 1 +a5 1 +.SH .SY +@ + + +1.2 +log +@fixup for makewhatis +@ +text +@d2 1 +a2 1 +.TH WMH 1 [mh.6] MH +@ + + +1.1 +log +@Initial revision +@ +text +@d2 2 +a3 2 +.SC WMH 1 +.NA +d5 1 +a5 1 +.SY +@ diff --git a/docs/historical/mh-6.8.5/conf/doc/TODO b/docs/historical/mh-6.8.5/conf/doc/TODO new file mode 100644 index 0000000..e5f592e --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/TODO @@ -0,0 +1,20 @@ +[ TODO - Sun Jun 23 20:37:46 1985 - conf/doc/TODO - /mtr ] + + + All documentation + + Separate "Profile Components" into "Profile Components" and "Context + Components". + + + User's Manual + + New manual entries: mh-address(7) (like mailaddr(7)), + mh-sequences(5), mh-folder(5), mh-format(5). + + Describe relation between comp, et. al., whatnow, send, and post. + + Describe the invocation environment when an MH program runs another + program. + + Figure out how to get "man -k mh" to list all MH commands. diff --git a/docs/historical/mh-6.8.5/conf/doc/ali.rf b/docs/historical/mh-6.8.5/conf/doc/ali.rf new file mode 100644 index 0000000..c08636f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/ali.rf @@ -0,0 +1,57 @@ +.\" @(MHWARNING) +.\" @(#)$Id: ali.rf,v 1.7 1992/02/11 00:47:53 jromine Exp $ +.SC ALI 1 +.NA +ali \- list mail aliases +.SY +ali +\%[\-alias\ aliasfile] +\%[\-list] \%[\-nolist] +\%[\-normalize] \%[\-nonormalize] +\%[\-user] \%[\-nouser] +aliases\ ... +\%[\-help] +.DE +\fIAli\fR +searches the named mail alias files for each of the given \fIaliases\fR. +It creates a list of addresses for those \fIaliases\fR, +and writes that list on standard output. +If the `\-list' option is specified, each address appears on a separate line; +otherwise, the addresses are separated by commas and printed on +as few lines as possible. + +The `\-user' option directs \fIali\fR to perform its processing in an +inverted fashion: +instead of listing the addresses that each given alias expands to, +\fIali\fR will list the aliases that expand to each given address. +If the `\-normalize' switch is given, +\fIali\fR will try to track down the official hostname of the address. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read. +Each \fIalias\fR is processed as described in \fImh\-alias\fR\0(5). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/etc/passwd~^List of users +^/etc/group~^List of groups +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Aliasfile:~^For a default alias file +.Sa +mh\-alias(5) +.De +`\-alias @(MHETCPATH)/MailAliases' +.Ds +`\-nolist' +.Ds +`\-nonormalize' +.Ds +`\-nouser' +.Co +None +.Bu +The `\-user' option with `\-nonormalize' is not entirely accurate, +as it does not replace local nicknames for hosts with their official +site names. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/anno.rf b/docs/historical/mh-6.8.5/conf/doc/anno.rf new file mode 100644 index 0000000..45ad8b8 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/anno.rf @@ -0,0 +1,58 @@ +.\" @(MHWARNING) +.\" @(#)$Id: anno.rf,v 2.4 90/04/05 15:08:00 sources Exp $ +.SC ANNO 1 +.NA +anno \- annotate messages +.SY +anno +\%[+folder] \%[msgs] +\%[\-component\ field] +\%[\-inplace] \%[\-noinplace] +\%[\-date] \%[\-nodate] +\%[\-text\ body] +\%[\-help] +.DE +\fIAnno\fR annotates the specified messages in the named folder using +the field and body. +Annotation is optionally performed by \fIdist\fR, \fIforw\fR, and +\fIrepl\fR, +to keep track of your distribution of, forwarding of, and replies to a +message. +By using \fIanno\fR, +you can perform arbitrary annotations of your own. +Each message selected will be annotated with the lines + + field:\ date + field:\ body + +The `\-nodate' switch inhibits the date annotation, +leaving only the body annotation. +The `\-inplace' switch causes annotation to be done in place in order +to preserve links to the annotated message. + +The field specified should be a valid 822-style message field name, +which means that it should consist of alphanumerics (or dashes) only. +The body specified is arbitrary text. + +If a `\-component\ field' is not specified when \fIanno\fR is invoked, +\fIanno\fR will prompt the user for the name of field for the annotation. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +dist (1), forw (1), repl (1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noinplace' +.Ds +`\-date' +.Co +If a folder is given, it will become the current folder. +The first message annotated will become the current message. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/ap.rf b/docs/historical/mh-6.8.5/conf/doc/ap.rf new file mode 100644 index 0000000..a1125b4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/ap.rf @@ -0,0 +1,77 @@ +.\" @(MHWARNING) +.\" @(#)$Id: ap.rf,v 1.7 1992/05/12 22:23:34 jromine Exp $ +.SC AP 8 +.NA +ap \- parse addresses 822-style +.SY +@(MHETCPATH)/ap +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-normalize] \%[\-nonormalize] +\%[\-width\ columns] +addrs\ ... +\%[\-help] +.DE +\fIAp\fR is a program that parses addresses according to the ARPA Internet +standard. +It also understands many non\-standard formats. +It is useful for seeing how \fIMH\fR will interpret an address. + +The \fIap\fR program treats each argument as one or more addresses, +and prints those addresses out in the official 822\-format. +Hence, it is usually best to enclose each argument in double\-quotes for the +shell. + +To override the output format used by \fIap\fR, +the `\-format\ string' or `\-format\ file' switches are used. +This permits individual fields of the address to be extracted with ease. +The string is simply a format stringand thefile is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +In addition to the standard escapes, +\fIap\fR also recognizes the following additional escape: +.sp 1 +.nf +.ta \w'Escape 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +error string A diagnostic if the parse failed +.re +.fi + +If the `\-normalize' switch is given, +\fIap\fR will try to track down the official hostname of the address. + +Here is the default format string used by \fIap\fR: + +.ti +.5i +%<{error}%{error}: %{text}%|%(putstr(proper{text}))%> + +which says that if an error was detected, print the error, a `:', +and the address in error. +Otherwise, output the 822\-proper format of the address. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@(MHETCPATH)/mtstailor~^tailor file +.Pr +None +.Sa +dp(8), +.br +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +`\-format' defaults as described above +.Ds +`\-normalize' +.Ds +`\-width' defaults to the width of the terminal +.Co +None +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIap\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bbaka.rf b/docs/historical/mh-6.8.5/conf/doc/bbaka.rf new file mode 100644 index 0000000..5639f8c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bbaka.rf @@ -0,0 +1,27 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bbaka.rf,v 1.5 90/04/05 15:11:03 sources Exp $ +.SC BBAKA 8 +.NA +bbaka \- generate an alias list for BBoards +.SY +@(BBHOME)/bbaka +\%[system] +.DE +The \fIbbaka\fR program reads the BBoards database and produces on its +standard output a file suitable for inclusion in either the \fIMMDF\-II\fR +aliases file (if the argument `system' is given). +If the argument is not given, +then \fIbbaka\fR produces on its standard output a file suitable for becoming +the @(MHETCPATH)/BBoardsAliases file. +.Fi +^@(BBHOME)/BBoards~^BBoards database +^@(MHETCPATH)/BBoardsAliases~^BBoards aliases file for \fIMH\fR +.Pr +None +.Sa +bboards(5) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bbc.rf b/docs/historical/mh-6.8.5/conf/doc/bbc.rf new file mode 100644 index 0000000..8b92c41 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bbc.rf @@ -0,0 +1,174 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bbc.rf,v 2.6 1995/12/06 22:48:30 jromine Exp $ +.SC BBC 1 +.NA +bbc \- check on BBoards +.SY +bbc +\%[bboards\ ...] +\%[\-topics] \%[\-check] \%[\-read] +\%[\-quiet] \%[\-verbose] +\%[\-archive] \%[\-noarchive] +\%[\-protocol] \%[\-noprotocol] +\%[\-mshproc\ program] +\%[switches\ for\ \fImshproc\fR] +\%[\-rcfile rcfile] \%[\-norcfile] +\%[\-file\ BBoardsfile] \%[\-user\ BBoardsuser] +@BEGIN: BPOP +\%[\-host\ host] +\%[\-rpop] \%[\-norpop] +@END: BPOP +@BEGIN: NNTP +\%[\-host\ host] +@END: NNTP +\%[\-help] +.DE +\fIbbc\fR is a BBoard +reading/checking program that interfaces to the BBoard +channel. + +The \fIbbc\fR program has three action switches which direct its operation: + +The `\-read' switch invokes the \fImsh\fR program on the named +\fIBBoards\fR. If you also specify +the `\-archive' switch, then \fIbbc\fR will invoke the \fImsh\fR program on +the archives of the named \fIBBoards\fR. If no \fIBBoards\fR are given +on the command line, and you specified `\-archive', +\fIbbc\fR will not read your `bboards' profile entry, but will +read the archives of the \*(lqsystem\*(rq \fIBBoard\fR instead. + +The `\-check' switch types out status information for the named \fIBBoards\fR. +\fIbbc\fR +can print one of several messages depending on the status of both the +BBoard +and the user's reading habits. +As with each of these messages, the number +given is the item number of the last item placed in the +BBoard. +This number (which is marked in the messages as the \*(lqBBoard\-Id\*(rq) is +ever increasing. Hence, when \fIbbc\fR +says \*(lqn items\*(rq, it really means that the highest BBoard\-Id is \*(lqn\*(rq. +There may, or may not actually be \*(lqn\*(rq items in the BBoard. +Some common messages are: +.in +1i + +.ti -.5i +\fBBBoard \-\- n items unseen\fR +.br +This message tells how many items the user has not yet seen. +When invoked with the `\-quiet' switch, +this is the only informative line that \fIbbc\fR will possibly print out. + +.ti -.5i +\fBBBoard \-\- empty\fR +.br +The BBoard is empty. + +.ti -.5i +\fBBBoard \-\- n items (none seen)\fR +.br +The BBoard has items in it, but the user hasn't seen any. + +.ti -.5i +\fBBBoard \-\- n items (all seen)\fR +.br +The BBoard is non\-empty, and the user has seen everything in it. + +.ti -.5i +\fBBBoard \-\- n items seen out of m\fR +.br +The BBoard has at most m\-n items that the user has not seen. +.in -1i + +The `\-topics' switch directs \fIbbc\fR to print three items about the named +\fIBBoards\fR: +it's official name, +the number of items present, +and the date and time of the last update. +If no \fIBBoards\fR +are named, then all BBoards +are listed. If the `\-verbose' switch is given, more information is output. + +The `\-quiet' switch specifies that \fIbbc\fR should be silent if no +\fIBBoards\fR are found with new information. +The `\-verbose' switch specifies that \fIbbc\fR is to consider you to be +interested in \fIBBoards\fR that you've already seen everything in. + +To override the default \fImshproc\fR and the profile entry, +use the `\-mshproc\ program' switch. +Any arguments not understood by \fIbbc\fR are passed to this program. +The `\-protocol' switch tells \fIbbc\fR that your \fImshproc\fR knows about +the special \fIbbc\fR protocol for reporting back information. +\fImsh\fR\0(1), the default \fImshproc\fR, knows all about this. + +The `\-file\ BBoardsfile' switch tells \fIbbc\fR to use a non\-standard +\fIBBoards\fR file when performing its calculations. +Similarly, the `\-user BBoardsuser' switch tells \fIbbc\fR to use a +non\-standard username. +Both of these switches are useful for debugging a new \fIBBoards\fR or +\fIPOP\fR file. +@BEGIN: BPOP + +If the local host is configured as a POP BBoards client, +or if the `\-host\ host' switch is given, +then \fIbbc\fR will query the POP service host as to the status of the BBoards. +The `\-user\ user' switch then takes on a new meaning: +it refers to the name of the guest account for BBoards on the service host. +The `\-rpop' switch uses the UNIX \fIrPOP\fR +(authentication done via trusted connections). +In contrast, the `\-norpop' switch uses the ARPA \fIPOP\fR +(in which case \fIbbc\fR will prompt for a password, +unless the \-user specifies the guest account). +@END: BPOP +@BEGIN: NNTP + +If the local host is configured as an NNTP BBoards client, +or if the `\-host\ host' switch is given, +then \fIbbc\fR will query the NNTP service host +as to the status of the BBoards. +For NNTP BBoards clients, +the `\-user\ user' and the `\-rpop' switches are ignored. +@END: NNTP + +The \fI\&.bbrc\fR file in the +user's \fB$HOME\fR directory +is used to keep track of what messages have been read. +The `\-rcfile\ rcfile' switch overrides the use of \fI\&.bbrc\fR for +this purpose. +If the value given to the switch is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. +If this switch is not given (or the `\-norcfile' switch is given), +then \fIbbc\fR consults the envariable \fBMHBBRC\fR, +and honors it similarly. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$HOME/\&.bbrc~^BBoard \*(lqcurrent\*(rq message information +.Pr +^Path:~^To determine the user's MH directory +.Ps +^bboards:~^To specify interesting BBoards +.Ps +^mshproc:~^Program to read a given BBoard +.Sa +bbl(1), bboards(1), msh(1) +.De +`\-read' +.Ds +`\-noarchive' +.Ds +`\-protocol' +.Ds +`bboards' defaults to \*(lqsystem\*(rq +.Ds +`\-file @(BBHOME)/BBoards' +.Ds +`\-user bboards' +@BEGIN: BPOP +`\-rpop' unless the guest account for BBoards is used +@END: BPOP +.Co +None +.Bu +The `\-user' switch takes effect only if followed by the `\-file' switch. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bbexp.rf b/docs/historical/mh-6.8.5/conf/doc/bbexp.rf new file mode 100644 index 0000000..7470903 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bbexp.rf @@ -0,0 +1,30 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bbexp.rf,v 1.5 90/04/05 15:11:10 sources Exp $ +.SC BBEXP 8 +.NA +bbexp \- expunge the BBoards area +.SY +@(BBHOME)/bbexp +\%[\-\fIfirst\-metric\fR] \%[\-\fIsecond\-metric\fR] +\%[bboards\ ...] +.DE +The \fIbbexp\fR program reads the BBoards database and calls \fImsh\fR to +archive the named BBoards (or all BBoards if none are specified). + +The first\-metric (which defaults to 12) gives the age in days of the +\*(lqBB\-Posted:\*(rq field for messages which should be expunged. +The second\-metric (which defaults to 20) gives the age in days of the +\*(lqDate:\*(rq field for messages which should be expunged. +Any message which meets either metric will be either archived or removed, +depending on what the \fIBBoards\fR\0(5) file says. +.Fi +^@(BBHOME)/BBoards~^BBoards database +.Pr +None +.Sa +msh(1), bboards(5) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bbl.rf b/docs/historical/mh-6.8.5/conf/doc/bbl.rf new file mode 100644 index 0000000..2a7829c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bbl.rf @@ -0,0 +1,201 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bbl.rf,v 1.5 90/04/05 15:11:17 sources Exp $ +.SC BBL 1 +.NA +bbl \- manage a BBoard +.SY +bbl +\%[+folder] +\%[\-shell\ program] +\%[\-verbose] \%[\-noverbose] +bboard +\%[\-help] +.DE +\fIbbl\fR allows a \fIBBleader\fR to manage a BBoard. +The process is relatively simple: a \fIBBleader\fR +invokes the \fIbbl\fR program to set\-up an environment in which the messages +contained in the BBoard +may be accessed as if they were messages in an \fIMH\fR folder. + +To do this, \fIbbl\fR, \fIincs\fR the \fIBBoard\fR +to the folder \*(lq+bbl\*(rq, and \fIincs\fR the archives for the \fIBBoard\fR +to the folder \*(lq+bbl/arc\*(rq. The \fIBBleader\fR +then gets a new shell in which \fIMH\fR +commands (among others) may be executed. When the \fIBBleader\fR +is done, CTRL\-D is typed, which terminates the shell. \fIbbl\fR then +asks the \fIBBleader\fR +as to how the BBoard +should be reconstructed. +Usually, this results in zeroing the existing \fIBBoard\fR +file, and \fIpack\fRing the \*(lq+bbl\*(rq folder into the \fIBBoard\fR +file. Similar actions are taken for the archive. + +The `\-shell' switch specifies what process that \fIbbl\fR should invoke +as your command interpreter. This need not be a rooted filename. +If this switch is not specified, +\fIbbl\fR looks at the envariable \fB$SHELL\fR for a value. +If this envariable is not set, then \fIbbl\fR uses your login shell. + +The `\-verbose' switch directs \fIbbl\fR to type the shell commands that it +executes to get the job done (e.g., \fIchmod\fR\0s, \fIinc\fR\0s, etc.) + +As \fIbbl\fR processing is most likely not intuitively obvious to most +prospective BBoard\-leaders, a short diatribe is in order. As pointed out in +\fIBBleader\fR(1), +a BBoard\-leader (of the fictitious BBoard \*(lqhacks\*(rq) +has three primary maintenance functions: +.in +.5i + +.ti -.5i +\fBRead the BBoard\fR +.br +You don't need \fIbbl\fR +to do this, use \fIbbc\fR instead. + +.ti -.5i +\fBRemove inappropriate material\fR +.br +Do this by running \fIbbl\fR. +An example of this might be: +.sp +.nf +\01 % bbl hacks +\02 [ Working folder is +bbl, Archive folder is +bbl/arc ] +\03 [ Type CTRL\-D to finish ] +\04 % scan +.ta \w'\05 'u +\w'20 'u +\w'10/14 'u +\w'1345-PDT 'u +\w'Reasonable Person 'u +\05 20 10/14 1345-PDT Silly User Nonsensical message +\06 21 10/14 1707-PDT Silly User Another one +\07 22 10/14 2144-PDT Reasonable Person Legit message +.re +\09 % rmm 20 21 +\10 % \^D +\11 Incorporate changes? y +\12 Remove +bbl? y +\13 Update archives? n +\14 Remove +bbl/arc? y +\15 [+inbox now current] +\16 % +.fi +.sp +In item 1, the BBoard\-Leader invokes \fIbbl\fR +on the BBoard called \*(lqhacks\*(rq. The \fIbbl\fR +program responds by typing items 2 and 3 which tell the user what \fIMH\fR +folders are being used and that a sub\-shell is now in use (respectively). +The user does a scan of the +bbl folder +(\fIbbl\fR sets the current\-folder to be the one with the BBoard in it.) +and finds two messages that should be removed (numbers 20 and 21). +The user then removes these using the \fIrmm\fR +program (item 9) and then types a CTRL\-D to return to +\fIbbl\fR (item 10). +At this point, +\fIbbl\fR +asks how the BBoard should be reconstructed. Item 11 asks if the contents of +the +bbl folder should OVERWRITE the contents of the BBoard. The user +responds `yes', +that it should (hence the two \fIrmm\fR'd messages disappear). +Next on item 12, +the user is asked if the +bbl folder should be killed, since the BBoards +have been successfully updated, the user answers `yes'. +On item 13, the user is +asked if the archives should be updated. Since the user made no changes, the +answer `no' is made. (The user could have answered `yes' with no disastrous +effects, but knew that nothing had been updated). Finally, on item 14, the +user indicates that the +bbl/arc subfolder should be killed, by answering +`yes'. + +.ti -.5i +\fBArchive non\-recent material\fR +.br +Do this by running \fIbbl\fR. +An example of this might be: +.sp +.nf +\01 % bbl hacks +\02 [ Working folder is +bbl, Archive folder is +bbl/arc ] +\03 [ Type CTRL\-D to finish ] +\04 % scan +.ta \w'\05 'u +\w'20 'u +\w'10/14 'u +\w'1345-PDT 'u +\w'GFISHER@UCI-20B 'u +\05 11 10/12 1905-PST Marshall Rose New MMail/BBck +\06 12 10/12 1916-PST Stephen Willson PATH, nfinger, and ls +\07 13 10/12 2329-PDT G@UCI-20A 833-5122 hours +\08 14 10/13 1045-PDT MELLON@UCI-20B Reporting line +\09 15 10/13 1112-PST Tim Shimeall Re: 833-5122 hours +\10 16 10/13 1045-PDT MELLON@UCI-20B Reporting line +\11 17 10/13 2042-PST Dana Roode Ucifinger +\12 18 10/13 2045-PST Dana Roode Files in /usr/restores +\13 19 10/14 1028-PDT WILLSON@UCI-20B Re: term no pause +\14 20 10/14 1345-PDT Martin Katz Re: term no pause +\15 21 10/14 1707-PDT SCRIBE@UCI-20A Scribe Use +\16 22 10/14 2144-PDT GFISHER@UCI-20B New Twemacs +\17 23 10/15 1227-PDT Rob Rittenhouse Re: New Twemacs +.re +\18 % file +bbl/arc \-src +bbl 11\-12 17\-20 21 +\19 % ^D +\20 Incorporate changes? y +\21 Remove +bbl? y +\22 Update archives? y +\23 Remove +bbl/arc? y +\24 [+inbox now current] +\25 % +.fi +.sp +The important command given is in item 18, in which the user \fIfiles\fR +some messages from +bbl into +bbl/arc. When CTRL\-D is typed, the user +directs \fIbbl\fR +to update both the BBoard and its archives, which does the proper action. +As an alternate to this scenario, +some creative \fIBBleaders\fR might use the \fIpick\fR command to do all of +the work: + +.in +.5i +.nf +pick \-sequence select \-before \-12 \-datefield BB-Posted \-zero +pick \-sequence select \-before \-20 \-nozero +scan select +refile select +bbl/arc +.fi +.in -.5i + +In order to facilitate the use of automation shell scripts, +if the standard input for \fIbbl\fR is \fInot\fR a tty, +then \fIbbl\fR will not ask any questions and will proceed as if +the user's answer was \*(lqyes\*(rq for all questions. +Hence, \fIbbl\fR may be run under \fIcron\fR\0(8) to provide for +automatic archiving. +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^incproc:~^Program to incorporate a mail drop into a folder +.Ps +^packproc:~^Program to pack a folder into a msgbox +.Ps +^rmfproc:~^Program to remove a folder +.Sa +bbc(1), bbleader(1), bboards(1) +.De +`+folder' defaults to \*(lqbbl\*(rq +.Ds +`\-nofile' +.Ds +`\-shell' defaults to \fB$SHELL\fR or your login shell +.Co +None +.Hi +In the early days of the UCI BBoards facility, +\fIBBleaders\fR actually used to run this program by hand. +Now, this \fIbbl\fR is often run automatically by the system to perform +automatic archiving. +.Bu +Note that \fIbbl\fR executes a lot of \fIMH\fR +commands, and as such, each of these commands can and will read +your \fI\&.mh\(ruprofile\fR for defaults. +Please read the \fBBUGS\fR section of \fImh\-profile\fR\0(5) +for some hints to help you avoid many silly problems. + +Also, \fIbbl\fR is unforgiving in doing exactly what it is told, +so take special care in answering \fIbbl\fR's questions. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bbleader.rf b/docs/historical/mh-6.8.5/conf/doc/bbleader.rf new file mode 100644 index 0000000..4383f70 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bbleader.rf @@ -0,0 +1,105 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bbleader.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC BBLEADER 1 +.NA +BBleader \- responsiblities of an MH BBoard-leader +.SY +bbl +bboard +\%[+folder] +\%[\-shell\ shell] +\%[\-verbose] +\%[\-help] +.DE +What follows is a description of the responsibilities of a BBleader. +This is a working collection of facts: +there are no simple or elegant rules. +In the discussion that follows, +substitute in the name of your BBoard wherever you see the ficticious +name ``hacks''. + +.in +.5i +.ti -.5i +\fBPreliminary Maintenance\fR +.br +When you are appointed a BBleader by the person who is acting as the +\fIPostMaster\fR you should first make sure that +the four addresses associated with your BBoard are correct +(see \fIbboards\fR\0(1)). +To check this, try \*(lqbbc -topics -verbose hacks\*(rq. +You should be listed under local leader(s), and the BBoard addresses should +be correct. + +.ti -.5i +\fBPeriodic Maintenance\fR +.br +There are three functions that you should perform periodically: +.in +.75i +.br +.ti -.5i +\fBRead the BBoard\fR\0: +If you're a BBoard leader you should be keeping up on what's going on. +.br +.ti -.5i +\fBRemove inappropriate material\fR\0: +If offsensive or otherwise non-sensical material shows up, +or if a duplicate message appears, +use the \fIBBl\fR program, delete the offending messages from the folder. +.br +.ti -.5i +\fBArchive non-recent material\fR\0: +The archive facility has been upgraded to be almost fully automated. +BBoards with the Auto-Archive flag set will have old material automatically +placed in the archive area once a week. You may also archive material +yourself if you like, or if your BBoard is not set to Auto-Archive. +Just file messages in the folder ``+bbl'' into the folder ``+bbl/arc'' +You should archive material whenever it takes a long time to read in a +BBoard using \fIbbc\fR and \fImsh\fR. +The only exception to this is (possibly) the \fBap-news\fR and +\fBny-times\fR BBoards, +in which case non-recent material is usually deleted, +and an archive is not kept. +.in -.75i + +.ti -.5i +\fBSporadic Maintenance\fR +.br +As a BBoard leader +there are three groups of people that you will be required to deal with: +.in +.75i +.br +.ti -.5i +\fBBBoard users\fR\0: +Correspondence from BBoard users is usually addressed to +\fBlocal\-hacks\-request\fR. +Although the nature of such correspondence varies, +the most usual topic is how to get access to archives for the BBoard. +In such cases, if the archives are on-line in the ~bboards/archive/ area, +then you should refer the BBoard user to the appropriate files. +If not, then you should contact the \fIPostMaster\fR and ask +for archive retrieval. +Archives may be accessed through the normal +\fIbbc\fR and \fImsh\fR programs, using the `\-archive' switch to \fIbbc\fR. +.br +.ti -.5i +\fBBBoard leaders\fR\0: +You may have to correspond with the people who maintain the +\fBInternet\fR mailing list for the BBoard. +Their address is \fBhacks\-request\fR. +.br +.ti -.5i +\fBPostOffice personnel\fR\0: +You may need help or advice. The address to turn to is \fIPostMaster\fR. +.in -.75i +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +bboards(1), bbc(1), bbl(1), msh(1) +.De +The default bboard is \*(lqsystem\*(rq +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bboards.rf b/docs/historical/mh-6.8.5/conf/doc/bboards.rf new file mode 100644 index 0000000..c9077b1 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bboards.rf @@ -0,0 +1,92 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bboards.rf,v 1.6 1994/04/15 23:10:56 jromine Exp $ +.SC BBOARDS 1 +.NA +bboards \- the UCI BBoards facility +.SY +bbc +\%[\-check] +\%[\-read] +bboards ... +\%[\-help] +.DE +The home directory of \fIbboards\fR is where the BBoard system is kept. +This documentation describes some of the nuances of the BBoard system. + +Note that if your system is configured to use the Network News +Transfer Protocol (\fBNNTP\fP) to read BBoards, +@BEGIN: NNTP +(your system does seem to be configured this way), +@END: NNTP +then there is no local bboards setup; instead, \fIbbc\fP +opens an \fBNNTP\fP connection to the local server. + +.in +.5i +.ti -.5i +\fBBBoards, BBoard\-IDs\fR +.br +A BBoard is just a file containing a group of messages relating to the same +topic. +These files live in the ~bboards home directory. +Each message in a BBoard file has in its header the line +\*(lqBBoard-Id: n\*(rq, +where \*(lqn\*(rq is an ascending decimal number. +This id-number is unique for each message in a BBoards file. +It should NOT be confused with the message number of a message, +which can change as messages are removed from the BBoard. + +.ti -.5i +\fBBBoard Handling\fR +.br +To read BBoards, use the \fIbbc\fR and \fImsh\fR programs. +The \fImsh\fR command is a monolithic program which contains all the +functionality of \fIMH\fR in a single program. +The `\-check' switch to \fIbbc\fR lets you check on the status of BBoards, +and the `\-read' switch tells \fIbbc\fR to invoke \fImsh\fR to read +those BBoards. + +.ti -.5i +\fBCreating a BBoard\fR +.br +Both public, and private BBoards are supported. +Contact the mail address \fIPostMaster\fR if you'd like to have a BBoard +created. + +.ti -.5i +\fBBBoard addresses\fR +.br +Each BBoard has associated with it 4 addresses, +these are (for the ficticious BBoard called ``hacks''): +.in +.75i +.br +.ti -.5i +\fBhacks\fR\0: The Internet wide distribution list. +.br +.ti -.5i +\fBdist-hacks\fR\0: The local BBoard. +.br +.ti -.5i +\fBhacks-request\fR\0: +The people responsible for the BBoard at the Internet level. +.br +.ti -.5i +\fBlocal-hacks-request\fR\0: +The people responsible for the BBoard locally. +.in -.75i +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$HOME/\&.bbrc~^BBoard information +.Pr +^Path:~^To determine the user's MH directory +.Ps +^bboards:~^To specify interesting BBoards +.Ps +^mshproc:~^Program to read a given BBoard +.Sa +bbc(1), bbl(1), bbleader(1), msh(1) +.De +The default bboard is \*(lqsystem\*(rq +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bboards5.rf b/docs/historical/mh-6.8.5/conf/doc/bboards5.rf new file mode 100644 index 0000000..054ea08 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bboards5.rf @@ -0,0 +1,51 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bboards5.rf,v 1.5 90/04/05 15:11:49 sources Exp $ +.SC BBOARDS 5 +.NA +BBoards \- BBoards database +.SY +@(BBHOME)/BBoards +.DE +The BBoards database +contains for each BBoard the following information: + +.nf +.ta \w'encrypted password 'u +\fIfield\fR \fIvalue\fR +name the name of the BBoard +aliases local aliases for the BBoard + (separated by commas) +primary file the .mbox file +encrypted password leadership password +leaders local list maintainers (separated by commas) + usernames from the \fIpasswd\fR\0(5) file, + or groupnames preceded by `=' from the + \fIgroup\fR\0(5) file +network address the list address +request address the list maintainer's address +relay the host acting as relay for the local domain +distribution sites (separated by commas) +flags special flags (see ) +.re +.fi + +This is an ASCII file. Each field within each BBoard's entry +is separated from the next by a colon. +Each BBoard entry is separated from the next by a new-line. +If the password field is null, no password is demanded; +if it contains a single asterisk, then no password is valid. + +This file resides in the home directory of the login \*(lqbboards\*(rq. +Because of the encrypted passwords, +it can and does have general read permission. +.Fi +^@(BBHOME)/BBoards~^BBoards database +.Sa +bbaka(8), bbexp(8), bboards (8), bbtar(8) +.Bu +A binary indexed file format should be available for fast access. + +Appropriate precautions must be taken to lock the file against changes +if it is to be edited with a text editor. +A \fIvibb\fR program is needed. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bboards8.rf b/docs/historical/mh-6.8.5/conf/doc/bboards8.rf new file mode 100644 index 0000000..0ab8aa4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bboards8.rf @@ -0,0 +1,46 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bboards8.rf,v 1.5 90/04/05 15:11:57 sources Exp $ +.SC BBOARDS 8 +.NA +bboards \- BBoards channel/mailer +.SY +/usr/mmdf/chans/bboards +fd1 fd2 \%[y] + +.ti .5i +@(MHETCPATH)/sbboards +bboard\ ... + +.ti .5i +@(MHETCPATH)/sbboards +file maildrop directory bboards.bboard +.DE +For \fIMMDF\fR, the BBoards channel delivers mail to the BBoards system. +For \fISendMail\fR and stand\-alone \fIMH\fR, the SBBoards mailer performs +this task. + +For each address given, +these programs consult the \fIbboards\fR\0(5) file to ascertain information +about the BBoard named by the address. +The programs then perform local delivery, if appropriate. +After that, +with the exception of \fIsbboards\fR running under stand\-alone \fIMH\fR, +the programs perform redistribution, if appropriate. + +For redistribution, +the return address is set to be the request address at the local host, +so bad addresses down the line return to the nearest point of authority. +If any failures occur during redistribution, +a mail message is sent to the local request address. +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +^@(BBHOME)/BBoards~^BBoards database +.Pr +None +.Sa +bboards(5), bbaka(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/bbtar.rf b/docs/historical/mh-6.8.5/conf/doc/bbtar.rf new file mode 100644 index 0000000..12b57f6 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/bbtar.rf @@ -0,0 +1,46 @@ +.\" @(MHWARNING) +.\" @(#)$Id: bbtar.rf,v 1.5 90/04/05 15:12:03 sources Exp $ +.SC BBTAR 8 +.NA +bbtar \- generate the names of archive files to be put to tape +.SY +@(BBHOME)/bbtar +\%[private] \%[public] +.DE +The \fIbbtar\fR program reads the BBoards database and produces on its +standard output the names of BBoards archives which should be put to tape, +for direct use in a \fItar\fR\0(1) command. + +If the argument `private' is given, +only private BBoards are considered. +If the argument `public' is given, +only public BBoards are considered. +This lets the BBoards administrator write two tapes, +one for general read\-access (the public BBoards), +and one for restricted access. +The default is all BBoards + +For example: + +.nf +.in +.5i +cd archive # change to the archive directory +tar cv `bbtar private` # save all private BBoard archives +.in -.5i +.fi + +After the archives have been saved to tape, +they are usually removed. +The archives are then filled again, +usually automatically by cron jobs which run \fIbbexp\fR\0(8). +.Fi +^@(BBHOME)/BBoards~^BBoards database +.Pr +None +.Sa +bboards(5), bbexp(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/burst.rf b/docs/historical/mh-6.8.5/conf/doc/burst.rf new file mode 100644 index 0000000..65fa641 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/burst.rf @@ -0,0 +1,101 @@ +.\" @(MHWARNING) +.\" @(#)$Id: burst.rf,v 1.5 90/04/05 15:12:10 sources Exp $ +.SC BURST 1 +.NA +burst \- explode digests into messages +.SY +burst +\%[+folder] \%[msgs] +\%[\-inplace] \%[\-noinplace] +\%[\-quiet] \%[\-noquiet] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +.DE +\fIBurst\fR considers the specified messages in the named folder to be +Internet digests, and explodes them in that folder. + +If `\-inplace' is given, +each digest is replaced by the \*(lqtable of contents\*(rq for the digest +(the original digest is removed). +\fIBurst\fR then renumbers all of the messages following the digest in the +folder to make room for each of the messages contained within the digest. +These messages are placed immediately after the digest. + +If `\-noinplace' is given, +each digest is preserved, +no table of contents is produced, +and the messages contained within the digest are placed at the end of +the folder. +Other messages are not tampered with in any way. + +The `\-quiet' switch directs \fIburst\fR to be silent about reporting +messages that are not in digest format. + +The `\-verbose' switch directs \fIburst\fR to tell the user the general +actions that it is taking to explode the digest. + +It turns out that \fIburst\fR works equally well on forwarded messages and +blind\-carbon\-copies as on Internet digests, +provided that the former two were generated by \fIforw\fR or \fIsend\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Msg\-Protect:~^To set mode when creating a new message +.Sa +\fIProposed Standard for Message Encapsulation\fR (aka RFC\-934), +.br +inc(1), msh(1), pack(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noinplace' +.Ds +`\-noquiet' +.Ds +`\-noverbose' +.Co +If a folder is given, it will become the current folder. +If `\-inplace' is given, +then the first message burst becomes the current message. +This leaves the context ready for a \fIshow\fR of the table of contents +of the digest, and a \fInext\fR to see the first message of the digest. +If `\-noinplace' is given, +then the first message extracted from the first digest burst becomes the +current message. +This leaves the context in a similar, but not identical, +state to the context achieved when using `\-inplace'. +.Bu +The \fIburst\fR program enforces a limit on the number of messages which may +be \fIburst\fR from a single message. +This number is on the order of 1000 messages. +There is usually no limit on the number of messages which may reside in the +folder after the \fIburst\fRing. + +Although \fIburst\fR uses a sophisticated algorithm to determine where one +encapsulated message ends and another begins, +not all digestifying programs use an encapsulation algorithm. +In degenerate cases, +this usually results in \fIburst\fR finding an encapsulation boundary +prematurely and splitting a single encapsulated message into two or more +messages. +These erroneous digestifying programs should be fixed. + +Furthermore, +any text which appears after the last encapsulated message is not placed +in a seperate message by \fIburst\fR. +In the case of digestified messages, +this text is usally an \*(lqEnd of digest\*(rq string. +As a result of this possibly un\-friendly behavior on the part of \fIburst\fR, +note that when the `\-inplace' option is used, +this trailing information is lost. +In practice, +this is not a problem since correspondents usually place remarks in text +prior to the first encapsulated message, +and this information is not lost. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/comp.rf b/docs/historical/mh-6.8.5/conf/doc/comp.rf new file mode 100644 index 0000000..f91e7f8 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/comp.rf @@ -0,0 +1,116 @@ +.\" @(MHWARNING) +.\" @(#)$Id: comp.rf,v 1.6 1990/12/17 16:29:30 mh Exp $ +.SC COMP 1 +.NA +comp \- compose a message +.SY +comp +\%[+folder] \%[msg] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-file\ file] +\%[\-form\ formfile] +\%[\-use] \%[\-nouse] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIComp\fR is used to create a new message to be mailed. +It copies a message form to +the draft being composed and then invokes an editor on the draft +(unless `\-noedit' is given, in which case the initial edit is suppressed). + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so @(MHETCPATH)/components +.ec +.in -.5i +.fi + +If the file named \*(lqcomponents\*(rq exists in the user's MH directory, +it will be used instead of this form. +The file specified by `\-form\ formfile' will be used if given. +You may also start \fIcomp\fR using the contents of an existing +message as the form. +If you supply either a `+folder' or `msg' argument, that message will be used +as the form. You may not supply both a `\-form\ formfile' and a `+folder' or +\&`msg' argument. +The line of dashes +or a blank line must be left between the header and the +body of the message for the message to be identified properly when it is +sent (see \fIsend\fR\0(1)). +The switch `\-use' directs \fIcomp\fR to +continue editing an already started message. +That is, if a +\fIcomp\fR (or \fIdist\fR, \fIrepl\fR, or \fIforw\fR\0) is terminated without +sending the draft, the draft can be edited again via +\*(lqcomp\ \-use\*(rq. + +If the draft already exists, \fIcomp\fR will ask +you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIcomp\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with the appropriate form; +\fBlist\fR will display the draft; +\fBuse\fR will use the draft for further composition; +and \fBrefile\ +folder\fR will +file the draft in the given folder, and give you a new draft with the +appropriate form. +(The `+folder' argument to \fBrefile\fR is required.) + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +The `\-file\ file' switch says to use the named file as the message draft. + +The `\-editor\ editor' switch indicates the editor to +use for the initial edit. +Upon exiting from the editor, +\fIcomp\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^@(MHETCPATH)/components~^The message skeleton +^or /components~^Rather than the standard skeleton +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +dist(1), forw(1), repl(1), send(1), whatnow(1), mh-profile(5) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to the current message +.Ds +`\-nodraftfolder' +.Ds +`\-nouse' +.Co +None +.Bu +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIcomp\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIcomp\fR won't run it. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/config.sed b/docs/historical/mh-6.8.5/conf/doc/config.sed new file mode 100644 index 0000000..b953b22 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/config.sed @@ -0,0 +1,94 @@ +s%@(MHCONFIGFILE)%MH%g +s%@(MHWARNING)%This file is automatically generated. Do not edit!%g +s%@(MHRELEASE)%6.8.4%g +s%@(MHCENTERFOOT)%MH.6.8%g +s%@(MHLEFTFOOT)%[mh.6]%g +s%@(MHBINPATH)%/opt/mh-6.8.5/bin%g +s%@(MHETCPATH)%/opt/mh-6.8.5/lib%g +s%@(MHPOPDPATH)%/usr/etc%g +s%@(MHCHOWNPATH)%/usr/bin/chown%g +s%@(MHDROPATH)%/var/spool/mail%g +s%@(MHDROPFIL)%%g +s%@(MHDROPLOC)%/var/spool/mail/$USER%g +s%@(MHDROPHAK)%/var/spool/mail%g +s%@(MHMANDIR)%/opt/mh-6.8.5/man%g +s%@(MHCATMAN)%%g +s%@(MHMANDIR1)%man1%g +s%@(MHMANEXT1)%1%g +s%@(MHMANDIR2)%man2%g +s%@(MHMANEXT2)%2%g +s%@(MHMANDIR3)%man3%g +s%@(MHMANEXT3)%3%g +s%@(MHMANDIR4)%man4%g +s%@(MHMANEXT4)%4%g +s%@(MHMANDIR5)%man5%g +s%@(MHMANEXT5)%5%g +s%@(MHMANDIR6)%man6%g +s%@(MHMANEXT6)%6%g +s%@(MHMANDIR7)%man7%g +s%@(MHMANEXT7)%7%g +s%@(MHMANDIR8)%man8%g +s%@(MHMANEXT8)%8%g +s%@(MHHOSTVER)%%g +s%@(MHMANGEN)%%g +s%@(MHEDITOR)%/usr/bin/vi%g +s%@(MHCONFIG)%char *options[] = {"ATTVIBUG", "DBMPWD", "DUMB", "FCNTL", "FOLDPROT='\\"0711\\"'", "MHE", "MHRC", "MIME", "MORE='\\"/usr/bin/more\\"'", "MSGID", "MSGPROT='\\"0600\\"'", "RENAME", "RPATHS", "SENDMTS", "SHADOW", "SMTP", "SOCKETS", "SPRINTFTYPE=int", "SVR4", "SYS5", "SYS5DIR", "TYPESIG=void", "VSPRINTF", NULL};%g +s%@(MHCOMPILER)%cc%g +s%@(CP)%cp%g +s%@(LN)%ln%g +s%@(LEX)%lex -nt%g +s%@(MHOPTIONS)%-DSYS5 -DSVR4 -DFCNTL -DRENAME -DVSPRINTF -DATTVIBUG -DDBMPWD -DDUMB -DMORE='"/usr/bin/more"' -DMSGPROT='"0600"' -DMSGID -DRPATHS -DSOCKETS -DFOLDPROT='"0711"' -DSHADOW -DSYS5DIR -DMHRC -DMHE -DMIME -DSENDMTS -DSMTP -DSPRINTFTYPE=int -DTYPESIG=void -O -g%g +s%@(LDOPTIONS)%-s%g +s%@(LDOPTLIB)%-lnsl -lsocket -R/opt/mh-6.8.5/lib%g +s%@(LDCURSES)%-lcurses%g +/^@BEGIN: BBOARDS$/,/^@END: BBOARDS$/d +s%@(BBHOME)%/usr/spool/bboards%g +/^@BEGIN: BBSERVER$/,/^@END: BBSERVER$/d +/^@BEGIN: DEBUG$/,/^@END: DEBUG$/d +/^@BEGIN: OPTIM$/d +/^@END: OPTIM$/d +/^@BEGIN: MAILGROUP$/,/^@END: MAILGROUP$/d +/^@BEGIN: OLDLOAD$/,/^@END: OLDLOAD$/d +/^@BEGIN: NEWLOAD$/,/^@END: NEWLOAD$/d +/^@BEGIN: LORDER$/d +/^@END: LORDER$/d +/^@BEGIN: RANLIB$/,/^@END: RANLIB$/d +/^@BEGIN: SHAREDLIB$/d +/^@END: SHAREDLIB$/d +/^@BEGIN: STDLIB$/,/^@END: STDLIB$/d +s%@(SLIBDIR)%/opt/mh-6.8.5/lib%g +s%@(SLIBVER)%3.2%g +s%@(SLFLAGS)%-K pic%g +s%@(SLDFLAG)%%g +/^@BEGIN: SUN4SHLIB$/,/^@END: SUN4SHLIB$/d +/^@BEGIN: SYS5SHLIB$/d +/^@END: SYS5SHLIB$/d +/^@BEGIN: MMDFMTS$/,/^@END: MMDFMTS$/d +/^@BEGIN: MMDFIMTS$/,/^@END: MMDFIMTS$/d +/^@BEGIN: MMDFIIMTS$/,/^@END: MMDFIIMTS$/d +/^@BEGIN: MHMTS$/,/^@END: MHMTS$/d +/^@BEGIN: SENDMTS$/d +/^@END: SENDMTS$/d +/^@BEGIN: SENDMTSHACK$/d +/^@END: SENDMTSHACK$/d +s%@(POPUUMBOX)%-DPOPUUMBOX%g +/^@BEGIN: SMTP$/,/^@END: SMTP$/d +/^@BEGIN: POP$/,/^@END: POP$/d +/^@BEGIN: BPOP$/,/^@END: BPOP$/d +/^@BEGIN: NNTP$/,/^@END: NNTP$/d +/^@BEGIN: MF$/,/^@END: MF$/d +s%@(MHREMOVE)%mv -f%g +/^@BEGIN: APOP$/,/^@END: APOP$/d +/^@BEGIN: BSD43$/,/^@END: BSD43$/d +/^@BEGIN: BSD44$/,/^@END: BSD44$/d +/^@BEGIN: KPOP$/,/^@END: KPOP$/d +/^@BEGIN: HESIOD$/,/^@END: HESIOD$/d +/^@BEGIN: MIME$/d +/^@END: MIME$/d +/^@BEGIN: MPOP$/,/^@END: MPOP$/d +/^@BEGIN: MSGID$/d +/^@END: MSGID$/d +/^@BEGIN: NORUSERPASS$/,/^@END: NORUSERPASS$/d +/^@BEGIN: TMA$/,/^@END: TMA$/d +/^@BEGIN: TTYD$/,/^@END: TTYD$/d +/^@BEGIN: UCI$/,/^@END: UCI$/d diff --git a/docs/historical/mh-6.8.5/conf/doc/conflict.rf b/docs/historical/mh-6.8.5/conf/doc/conflict.rf new file mode 100644 index 0000000..6279e06 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/conflict.rf @@ -0,0 +1,51 @@ +.\" @(MHWARNING) +.\" @(#)$Id: conflict.rf,v 1.5 90/04/05 15:12:24 sources Exp $ +.SC CONFLICT 8 +.NA +conflict \- search for alias/password conflicts +.SY +@(MHETCPATH)/conflict +\%[\-mail\ name] +\%[\-search\ directory] +\%[aliasfiles...] +\%[\-help] +.DE +\fIConflict\fR is a program that checks to see if the interface between +\fIMH\fR and transport system is in good shape + +\fIConflict\fR +also checks for maildrops in @(MHDROPHAK) which do not belong +to a valid user. +It assumes that no user name will start with `.', +and thus ignores files in @(MHDROPHAK) which begin with `.'. +It also checks for entries in the \fIgroup\fR\0(5) +file which do not belong to a valid user, +and for users who do not have a valid group number. +In addition duplicate users and groups are noted. + +If the `\-mail\ name' switch is used, +then the results will be sent to the specified \fIname\fR. +Otherwise, the results are sent to the standard output. + +The `\-search\ directory' switch can be used to search directories +other than @(MHDROPHAK) and to report anomalies in those directories. +The `\-search\ directory' switch can appear more than one time in an +invocation to \fIconflict\fR. + +\fIConflict\fR should be run under \fIcron\fR\0(8), +or whenever system accounting takes place. +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +^/etc/passwd~^List of users +^/etc/group~^List of groups +^@(MHBINPATH)/mhmail~^Program to send mail +^@(MHDROPHAK)/~^Directory of mail drop +.Pr +None +.Sa +mh\-alias(5) +.De +`aliasfiles' defaults to @(MHETCPATH)/MailAliases +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/dist.rf b/docs/historical/mh-6.8.5/conf/doc/dist.rf new file mode 100644 index 0000000..1c44ba0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/dist.rf @@ -0,0 +1,147 @@ +.\" @(MHWARNING) +.\" @(#)$Id: dist.rf,v 1.5 90/04/05 15:12:30 sources Exp $ +.SC DIST 1 +.NA +dist \- redistribute a message to additional addresses +.SY +dist +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-form\ formfile] +\%[\-inplace] \%[\-noinplace] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIDist\fR is similar to \fIforw\fR. +It prepares the specified +message for redistribution to addresses that (presumably) are +not on the original address list. + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so @(MHETCPATH)/distcomps +.ec +.in -.5i +.fi + +If the file named \*(lqdistcomps\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-form\ formfile' will be +used if given. +The form used will be prepended to the message being resent. + +If the draft already exists, +\fIdist\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIdist\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +Only those addresses in \*(lqResent\-To:\*(rq, \*(lqResent\-cc:\*(rq, and +\*(lqResent\-Bcc:\*(rq will be sent. +Also, a \*(lqResent\-Fcc:\ folder\*(rq will be honored (see \fIsend\fR\0(1)). +Note that with \fIdist\fR, the draft should contain only +\*(lqResent\-xxx:\*(rq fields and no body. +The headers and the body of the original message are copied to the draft when +the message is sent. +Use care in constructing the headers for the redistribution. + +If the `\-annotate' switch is given, the message being +distributed will be annotated with the lines: + + Resent:\ date + Resent:\ addrs + +where each address list contains as many lines as required. +This annotation +will be done only if the message is sent directly from \fIdist\fR. +If the message is not sent immediately from \fIdist\fR, +\*(lqcomp \-use\*(rq may be used to re\-edit and send the constructed message, +but the annotations won't take place. +The '\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. +Note that while in the editor, +the message being resent is available through a link named \*(lq@\*(rq +(assuming the default \fIwhatnowproc\fR\0). +In addition, the actual pathname of the message is stored in the envariable +\fB$editalt\fR, +and the pathname of the folder containing the message is stored in the +envariable \fB$mhfolder\fR. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIdist\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^@(MHETCPATH)/distcomps~^The message skeleton +^or /distcomps~^Rather than the standard skeleton +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^fileproc:~^Program to refile the message +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +comp(1), forw(1), repl(1), send(1), whatnow(1) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to cur +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noinplace' +.Co +If a folder is given, it will become the current folder. +The message distributed will become the current message. +.Hi +\fIDist\fR originally used headers of the form \*(lqDistribute\-xxx:\*(rq +instead of \*(lqResent\-xxx:\*(rq. In order to conform with the +ARPA Internet standard, RFC\-822, +the \*(lqResent\-xxx:\*(rq form is now used. +\fIDist\fR will recognize \*(lqDistribute\-xxx:\*(rq type headers and +automatically convert them to \*(lqResent\-xxx:\*(rq. +.Bu +\fIDist\fR does not \fIrigorously\fR check the message being +distributed for adherence to the transport standard, +but \fIpost\fR called by \fIsend\fR does. +The \fIpost\fR program will balk (and rightly so) at poorly formatted messages, +and \fIdist\fR won't correct things for you. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIdist\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIdist\fR won't run it. + +If your current working directory is not writable, +the link named \*(lq@\*(rq is not available. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/dp.rf b/docs/historical/mh-6.8.5/conf/doc/dp.rf new file mode 100644 index 0000000..6869b07 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/dp.rf @@ -0,0 +1,61 @@ +.\" @(MHWARNING) +.\" @(#)$Id: dp.rf,v 1.7 1992/05/12 22:23:34 jromine Exp $ +.SC DP 8 +.NA +dp \- parse dates 822-style +.SY +@(MHETCPATH)/dp +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +dates\ ... +\%[\-help] +.DE +\fIDp\fR is a program that parses dates according to the ARPA Internet +standard. +It also understands many non\-standard formats, +such as those produced by TOPS\-20 sites and some UNIX sites using +\fIctime\fR\0(3). +It is useful for seeing how \fIMH\fR will interpret a date. + +The \fIdp\fR program treats each argument as a single date, +and prints the date out in the official 822\-format. +Hence, it is usually best to enclose each argument in double\-quotes for the +shell. + +To override the output format used by \fIdp\fR, +the `\-format\ string' or `\-format\ file' switches are used. +This permits individual fields of the address to be extracted with ease. +The string is simply a format stringand thefile is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +Here is the default format string used by \fIdp\fR: + +.nf +.ti +.5i +%<(nodate{text})error: %{text}%|%(putstr(pretty{text}))%> +.fi + +which says that if an error was detected, print the error, a `:', +and the date in error. +Otherwise, output the 822\-proper format of the date. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +None +.Sa +ap(8) +.br +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +`\-format' default as described above +.Ds +`\-width' default to the width of the terminal +.Co +None +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIdp\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/fmtdump.rf b/docs/historical/mh-6.8.5/conf/doc/fmtdump.rf new file mode 100644 index 0000000..38017ca --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/fmtdump.rf @@ -0,0 +1,32 @@ +.\" @(MHWARNING) +.\" @(#)$Id: fmtdump.rf,v 1.6 1992/12/02 21:38:37 jromine Exp $ +.SC FMTDUMP 8 +.NA +fmtdump \- decode MH format files +.SY +@(MHETCPATH)/fmtdump +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-help] +.DE +\fIFmtdump\fR is a program that parses an \fIMH\fP format file +and produces a pseudo-language listing of the how \fIMH\fP +interprets the file. + +The `\-format\ string' and `\-form\ formatfile' switches may be used +to specify a format string or format file to read. +The string is simply a format string and the file is simply a format file. +See \fImh-format\fR\|(5) for the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@(MHETCPATH)/scan.default~^The default format file +.Pr +^Path:~^To determine the user's MH directory +.Sa +mh-format(5), mh-sequences(8) +.Co +None +.Bu +The output may not be useful unless you are familiar +with the internals of the mh-format subroutines. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/folder.rf b/docs/historical/mh-6.8.5/conf/doc/folder.rf new file mode 100644 index 0000000..7da051d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/folder.rf @@ -0,0 +1,210 @@ +.\" @(MHWARNING) +.\" @(#)$Id: folder.rf,v 1.15 1993/08/27 18:13:47 jromine Exp $ +.SC FOLDER 1 +.NA +folder, folders \- set/list current folder/message +.SY +folder +\%[+folder] \%[msg] +\%[\-all] +\%[\-create] \%[\-nocreate] +\%[\-print] +.\" \%[\-noprint] +\%[\-fast] \%[\-nofast] +\%[\-header] \%[\-noheader] +\%[\-recurse] \%[\-norecurse] +\%[\-total] \%[\-nototal] +\%[\-list] \%[\-nolist] +\%[\-push] \%[\-pop] +\%[\-pack] \%[\-nopack] +\%[\-verbose] \%[\-noverbose] +\%[\-help] + +.ti .5i +folders +.DE +Since the \fIMH\fR environment is the shell, it is easy to lose +track of the current folder from day to day. +When \fIfolder\fR is given the `\-print' switch (the default), +\fIfolder\fR will +list the current folder, the number of messages in it, the +range of the messages (low\-high), and the current message within +the folder, and will flag extra files if they exist. +An example of this summary is: + +.nf +.if t .in +.5i +.ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u +inbox+ has \016 messages (\0\03\-\022); cur=\0\05. +.re +.if t .in -.5i +.fi + +If a `+folder' and/or `msg' are specified, they will +become the current folder and/or message. +By comparison, +when a `+folder' argument is given, +this corresponds to a \*(lqcd\*(rq operation in the \fIshell\fR; +when no `+folder' argument is given, +this corresponds roughly to a \*(lqpwd\*(rq operation in the \fIshell\fR. + +If the specified (or default) folder doesn't exist, +the default action is to query the user +as to whether the folder should be created; +when standard input is not a tty, the answer to +the query is assumed to be \*(lqyes\*(rq. + +Specifying `\-create' will cause \fIfolder\fP to create +new folders without any query. +(This is the easy way to create an empty folder for use later.) +Specifying `\-nocreate' will +cause \fIfolder\fP to exit without creating a non-existant folder. +.\" +.\" note - this doesn't work at present +.\" If `\-noprint' is specified, +.\" a `+folder' and/or `msg' may still be specified +.\" to set the current folder and/or message, +.\" but the folder summary will not be printed. +.Uh "Multiple Folders" +Specifying `\-all' +will produce a summary line for each top-level +folder in the user's MH directory, sorted alphabetically. +(If \fIfolder\fR +is invoked by a name ending with \*(lqs\*(rq (e.g., \fIfolders\fR\0), +`\-all' is assumed). +Specifying `\-recurse' with `\-all' will also +produce a line for all sub-folders. +These folders are all preceded by the read\-only folders, +which occur as \*(lqatr\-cur\-\*(rq entries in the user's \fIMH\fR context. +For example, + +.ne 9 +.nf +.if t .in +.5i +.ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u +Folder \0\0\0# of messages (\0range\0) cur msg (other files) +/fsd/rs/m/tacc has \035 messages (\0\01\-\035); cur=\023. +/rnd/phyl/Mail/EP has \082 messages (\0\01\-108); cur=\082. +ff has \0no messages. +inbox+ has \016 messages (\0\03\-\022); cur=\0\05. +mh has \076 messages (\0\01\-\076); cur=\070. +notes has \0\02 messages (\0\01\-\0\02); cur=\0\01. +ucom has 124 messages (\0\01\-124); cur=\0\06; (others). +.ta \w'/rnd/phyl/Mail/EP has 'u +\0\0\0\0\0\0\0\0\0\0TOTAL= 339 messages in 7 folders +.re +.if t .in -.5i +.fi + +The \*(lq+\*(rq after inbox indicates that it is the current folder. +The \*(lq(others)\*(rq indicates that the folder `ucom' has files +which aren't messages. +These files may either be sub\-folders, +or files that don't belong under the MH file naming scheme. + +The header is output if either a `\-all' or a `\-header' switch +is specified; it is suppressed by `\-noheader'. +A `\-total' switch will produce only the +summary line. + +If `\-fast' is given, only the folder name (or names in the +case of `\-all') will be listed. +(This is faster because the +folders need not be read.) + +If a `+folder' +is given along with the `\-all' switch, +\fIfolder\fR will, +in addition to setting the current folder, +list the top\-level folders for the current folder (with `\-norecurse') +or list all sub-folders under the current folder recursively (with `\-recurse'). +In this case, if a `msg' is also supplied, +it will become the current message of `+folder'. + +The `\-recurse' switch lists each folder recursively, so +use of this option effectively defeats the speed enhancement of the `\-fast' +option, +since each folder must be searched for subfolders. +Nevertheless, the combination of these options is useful. + +.Uh "Compacting a Folder" +The `\-pack' switch will compress the message names in the +designated folders, removing holes in message numbering. +The `\-verbose' switch directs \fIfolder\fR to tell the user the general +actions that it is taking to compress the folder. + +.Uh "The Folder Stack" +The `\-push' switch directs \fIfolder\fR to push the current folder onto the +\fIfolder\-stack\fR, +and make the `+folder' argument the current folder. +If `+folder' is not given, +the current folder and the top of the \fIfolder\-stack\fR are exchanged. +This corresponds to the \*(lqpushd\*(rq operation in the \fICShell\fR. + +The `\-pop' switch directs \fIfolder\fR to discard the top of the +\fIfolder\-stack\fR, +after setting the current folder to that value. +No `+folder' argument is allowed. +This corresponds to the \*(lqpopd\*(rq operation in the \fICShell\fR. +The `\-push' switch and the `\-pop' switch are mutually exclusive: +the last occurrence of either one overrides any previous occurrence of the +other. Both of these switches also set `\-list' by default. + +The `\-list' switch directs \fIfolder\fR to list the contents of the +\fIfolder\-stack\fR. +No `+folder' argument is allowed. +After a successful `\-push' or `\-pop', the `\-list' action is taken, +unless a `\-nolist' switch follows them on the command line. +This corresponds to the \*(lqdirs\*(rq operation in the \fICShell\fR. +The `\-push', `\-pop', and `\-list' switches turn +off `\-print'. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Folder\-Stack:~^To determine the folder stack +.\" .Ps +.\" ^lsproc:~^Program to list the contents of a folder +.Sa +refile(1), mhpath(1) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to none +.Ds +`\-nofast' +.Ds +`\-noheader' +.Ds +`\-nototal' +.Ds +`\-nopack' +.Ds +`\-norecurse' +.Ds +`\-noverbose' +.Ds +`\-print' is the default if no `\-list', `\-push', or `\-pop' is specified +.Ds +`\-list' is the default if `\-push', or `\-pop' is specified +.Co +If `+folder' and/or `msg' are given, they will become the +current folder and/or message. +.Hi +In previous versions of \fIMH\fR, +the `\-fast' switch prevented context changes from +occurring for the current folder. +This is no longer the case: if `+folder' is given, +then \fIfolder\fR will always change the current folder to that. +.Bu +`\-all' forces `\-header' and `\-total'. +.sp +There is no way to restore the default behavior +(to ask the user whether to create a non-existant folder) +after `\-create' or `\-nocreate' is given. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/forw.rf b/docs/historical/mh-6.8.5/conf/doc/forw.rf new file mode 100644 index 0000000..7032dc2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/forw.rf @@ -0,0 +1,277 @@ +.\" @(MHWARNING) +.\" @(#)$Id: forw.rf,v 1.11 1992/10/16 21:36:02 jromine Exp $ +.SC FORW 1 +.NA +forw \- forward messages +.SY +forw +\%[+folder] \%[msgs] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +\%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@END: MIME +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +forw +\%[+folder] \%[msgs] +\%[\-digest\ list] \%[\-issue\ number] \%[\-volume\ number] +\%[other\ switches\ for\ \fIforw\fR] +\%[\-help] +.DE +\fIForw\fR may be used to prepare a message containing other +messages. +It constructs the new message from the components file +or `\-form\ formfile' (see \fIcomp\fR\0), with a body composed of the +message(s) to be forwarded. +An editor is invoked as in \fIcomp\fR, +and after editing is complete, the user is prompted before the message +is sent. + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so @(MHETCPATH)/forwcomps +.ec +.in -.5i +.fi + +If the file named \*(lqforwcomps\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-form\ formfile' will be +used if given. + +If the draft already exists, +\fIforw\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIforw\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +If the `\-annotate' switch is given, each message being +forwarded will be annotated with the lines + + Forwarded:\ date + Forwarded:\ addrs + +where each address list contains as many lines as required. +This annotation +will be done only if the message is sent directly from \fIforw\fR. +If the message is not sent immediately from \fIforw\fR, +\*(lqcomp\ \-use\*(rq may be used to re\-edit and send the constructed message, +but +the annotations won't take place. +The '\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. + +Although \fIforw\fR uses the `\-form\ formfile' switch to direct it how to +construct the beginning of the draft, the `\-filter\ filterfile', +`\-format', and `\-noformat' +switches direct \fIforw\fR as to how each forwarded message should be +formatted in the body of the draft. +If `\-noformat' is specified, +then each forwarded message is output exactly as it appears. +If `\-format' or `\-filter\ filterfile' is specified, +then each forwarded message is filtered (re\-formatted) prior to being +output to the body of the draft. +The filter file for \fIforw\fR should be a standard form file for +\fImhl\fR, +as \fIforw\fR will invoke \fImhl\fR to format the forwarded messages. +The default message filter (what you get with `\-format') is: + +.nf +.in +.5i +.ne 10 +.eo +.so @(MHETCPATH)/mhl.forward +.ec +.in -.5i +.fi + +If the file named \*(lqmhl.forward\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-filter\ filterfile' will be +used if given. +To summarize: +`\-noformat' will reproduce each forwarded message exactly, +`\-format' will use \fImhl\fR and a default filterfile, \*(lqmhl.forward\*(rq, +to format each forwarded message, and +`\-filter\ filterfile' will use the named filterfile to format each +forwarded message with \fImhl\fR. + +Each forwarded message is separated with an encapsulation delimiter +and +dashes in the first column of the forwarded messages will be prepended +with `\-\ ' so that +when received, the message is suitable for bursting by \fIburst\fR\0(1). +This follows the Internet RFC\-934 guidelines. + +For users of \fIprompter\fR\0(1), by specifying prompter's `-prepend' +switch in the \&.mh\(ruprofile file, any commentary text is entered before +the forwarded messages. (A major win!) + +@BEGIN: MIME +To use the MIME rules for encapsulation, +specify the `\-mime' switch. +This directs \fIforw\fR to generate an \fImhn\fR composition file. +Note that MH will not invoke \fImhn\fR automatically, +unless you add this line to your \&.mh\(ruprofile file: +.sp +.in +.5i +automhnproc: mhn +.in -.5i +.sp +Otherwise, +you must specifically give the command +.sp +.in +.5i +What now? edit mhn +.in -.5i +.sp +prior to sending the draft. + +To automate this somewhat, +create a link to \fIprompter\fR called \fIrapid\fR +and put these lines in your \&.mh\(ruprofile file: +.sp +.in +.5i +.nf +forw: -editor rapid -mime +rapid: -rapid +rapid-next: mhn +.fi +.in -.5i +.sp +Then, +you can simply do: +.sp +.in +.5i +.nf +\fIforw msgs\fR +To: \fImailbox\fR +cc: +Subject: \fIwhatever\fR + +--------Enter initial text + +\fIblah, blah, blah.\fR + +-------- + +What now? \fIedit\fR +What now? \fIsend\fR +... +.fi +.in -.5i +.sp +The \fIedit\fR command invokes \fImhn\fR automatically. + +@END: MIME +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIforw\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) + +The `\-digest\ list', `\-issue\ number', and `\-volume\ number' switches +implement a digest facility for \fIMH\fR. Specifying these switches +enables and/or overloads the following escapes: +.sp 1 +.nf +.ta \w'Component 'u +\w'Escape 'u +\w'Returns 'u +\fIType\fR \fIEscape\fR \fIReturns\fR \fIDescription\fR +\fIcomponent\fR \fIdigest\fR string Argument to `\-digest' +\fIfunction\fR \fIcur\fR integer Argument to `\-volume' +\fIfunction\fR \fImsg\fR integer Argument to `\-issue' +.re +.fi + +Consult the \fBAdvanced Features\fR section of +the \fIMH\fR User's Manual for more information on making digests. +.Fi +^@(MHETCPATH)/forwcomps~^The message skeleton +^or /forwcomps~^Rather than the standard skeleton +^@(MHETCPATH)/digestcomps~^The message skeleton if `\-digest' is given +^or /digestcomps~^Rather than the standard skeleton +^@(MHETCPATH)/mhl.forward~^The message filter +^or /mhl.forward~^Rather than the standard filter +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^mhlproc:~^Program to filter messages being forwarded +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +\fIProposed Standard for Message Encapsulation\fR (aka RFC\-934), +.br +comp(1), dist(1), repl(1), send(1), whatnow(1), mh\-format(5) +.De +`+folder' defaults to the current folder +`msgs' defaults to cur +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noformat' +.Ds +`\-noinplace' +@BEGIN: MIME +.Ds +`\-nomime' +@END: MIME +.Co +If a folder is given, it will become the current folder. +The first message forwarded will become the current message. +.Bu +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIforw\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIforw\fR won't run it. + +When \fIforw\fR is told to annotate the messages it forwards, +it doesn't actually annotate them until the draft is successfully sent. +If from the \fIwhatnowproc\fR, +you \fIpush\fR instead of \fIsend\fR, +it's possible to confuse \fIforw\fR by re\-ordering the file +(e.g., by using `folder\0\-pack') before the message is successfully sent. +\fIDist\fR and \fIrepl\fR don't have this problem. + +To avoid prepending the leading dash characters in forwarded messages, +there is a `\-nodashmunging' option. See the \*(lqHidden Features\*(rq +section of the \fIMH Administrator's Guide\fR for more details. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/inc.rf b/docs/historical/mh-6.8.5/conf/doc/inc.rf new file mode 100644 index 0000000..f35d14d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/inc.rf @@ -0,0 +1,211 @@ +.\" @(MHWARNING) +.\" @(#)$Id: inc.rf,v 1.8 1992/02/04 21:41:21 jromine Exp $ +.SC INC 1 +.NA +inc \- incorporate new mail +.SY +inc +\%[+folder] +\%[\-audit\ audit\-file] \%[\-noaudit] +\%[\-changecur] \%[\-nochangecur] +@BEGIN: TMA +\%[\-decrypt] \%[\-nodecrypt] +@END: TMA +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-file\ name] +\%[\-silent] \%[\-nosilent] +\%[\-truncate] \%[\-notruncate] +\%[\-width\ columns] +@BEGIN: MF +\%[\-uucp] \%[\-nouucp] +@END: MF +@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +\%[\-pack\ file] \%[\-nopack] +@END: POP +\%[\-help] +.DE +\fIInc\fR incorporates mail from the user's incoming mail drop +into an \fIMH\fR folder. +If `+folder' isn't specified, +a folder in the user's \fIMH\fR directory will be used, either that +specified by the \*(lqInbox:\*(rq entry in the user's profile, or +the folder named \*(lqinbox\*(rq. +The +new messages being incorporated are assigned numbers starting +with the next highest number in the folder. +If the specified (or default) folder doesn't exist, +the user will be queried prior to its creation. +As the messages are processed, +a \fIscan\fR listing of the new mail is produced. + +If the user's profile contains a \*(lqMsg\-Protect: nnn\*(rq entry, it +will be used as the protection on the newly created messages, +otherwise the \fIMH\fR default of 0644 will be used. +During all operations on messages, +this initially assigned protection will +be preserved for each message, so \fIchmod\fR(1) may be used to set a +protection on an individual message, and its protection will be +preserved thereafter. + +If the switch `\-audit\ audit\-file' is specified (usually as a +default switch in the profile), then \fIinc\fR will append a header +line and a line per message to the end of the specified +audit\-file with the format: + +.nf +.ti 1i +\*(<> date +.ti 1.5i + +.ti 1.5i + +.ti 2.5i + +.fi + +This is useful for keeping track of volume and source of incoming +mail. +Eventually, \fIrepl\fR, \fIforw\fR, \fIcomp\fR, and \fIdist\fR may also +produce audits to this (or another) file, perhaps with +\*(lqMessage\-Id:\*(rq information to keep an exact correspondence history. +\*(lqAudit\-file\*(rq will be in the user's MH directory unless a full +path is specified. + +\fIInc\fR will incorporate even improperly formatted messages into the +user's MH folder, inserting a blank line prior to the offending +component and printing a comment identifying the bad message. + +In all cases, the user's mail drop will be zeroed, +unless the `\-notruncate' switch is given. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIinc\fR will add each of the newly incorporated messages to each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +Note that \fIinc\fR will not zero each sequence prior to adding messages. + +The interpretation of the `\-form\ formatfile', `\-format\ string', +and `\-width\ columns' switches is the same as in \fIscan\fR\0(1). +@BEGIN: MF + +If the `\-uucp' switch is given, \fIUUCP\fR mail will be \fRinc\fRorporated +as well. This option will work only on those sites that optionally +use \*(lqmail filtering\*(rq software. +@END: MF + +By using the `\-file\ name' switch, one can direct \fIinc\fR to incorporate +messages from a file other than the user's maildrop. +Note that the name file will NOT be zeroed, +unless the `\-truncate' switch is given. + +If the envariable \fB$MAILDROP\fR is set, +then \fIinc\fR uses it as the location of the user's maildrop instead of the +default (the `-file\ name' switch still overrides this, however). +If this envariable is not set, +then \fIinc\fR will consult the profile entry \*(lqMailDrop\*(rq for this +information. +If the value found is not absolute, +then it is interpreted relative to the user's \fIMH\fR directory. +If the value is not found, +then \fIinc\fR will look in the standard system location for the user's +maildrop. + +The `\-silent' switch directs \fIinc\fR to be quiet and not ask any questions +at all. +This is useful for putting \fIinc\fR in the background and going on to other +things. +@BEGIN: POP + +If the local host is configured as a POP client, +or if the `\-host\ host' switch is given, +then \fIinc\fR will query the POP service host as to the status of mail +waiting. +If the `\-user\ user' switch is not given, +then the current username is used. +Normally, +\fIinc\fR will prompt for a password to use. +However, +if the `\-apop' switch is given, +\fIinc\fR will generate authentication credentials to provide +for origin authentication and replay protection, +but which do not involve sending a password in the clear over the network. +Otherwise, +if the `\-rpop' switch is given, +then \fIinc\fR will try to use a \*(lqtrusted\*(rq connection +(ala the BSD r-commands). + +If \fIinc\fR uses POP, +then the `\-pack\ file' switch is considered. +If given, +then \fIinc\fR simply uses the POP to \fIpackf\fR\0(1) the user's maildrop +from the POP service host to the named file. +This switch is provided for those users who prefer to use \fImsh\fR to +read their maildrops. +@END: POP +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@(MHETCPATH)/mtstailor~^tailor file +^@(MHDROPLOC)~^Location of mail drop +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Inbox:~^To determine the inbox, default \*(lqinbox\*(rq +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Msg\-Protect:~^To set mode when creating a new message and audit\-file +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Sa +@BEGIN: POP +\fIPost Office Protocol - version 3\fR (aka RFC\-1081), +.br +@END: POP +mhmail(1), scan(1), mh\-mail(5), post(8) +.De +`+folder' defaulted by \*(lqInbox\*(rq above +.Ds +`\-noaudit' +.Ds +`\-changecur' +@BEGIN: TMA +`\-decrypt' +@END: TMA +.Ds +`\-format' defaulted as described above +.Ds +`\-nosilent' +.Ds +`\-truncate' if `\-file\ name' not given, `\-notruncate' otherwise +.Ds +`\-width' defaulted to the width of the terminal +@BEGIN: MF +.Ds +`\-uucp' +@END: MF +@BEGIN: POP +.Ds +`\-nopack' +.Ds +`\-rpop' +@END: POP +.Co +The folder into which messages are being incorporated will become the +current folder. +The first message incorporated will become the current message, +unless the `\-nochangecur' option is specified. +This leaves the context ready for a \fIshow\fR +of the first new message. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIinc\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/install-mh.rf b/docs/historical/mh-6.8.5/conf/doc/install-mh.rf new file mode 100644 index 0000000..3cb25ed --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/install-mh.rf @@ -0,0 +1,39 @@ +.\" @(MHWARNING) +.\" @(#)$Id: install-mh.rf,v 1.6 1992/12/02 21:38:49 jromine Exp $ +.SC INSTALL-MH 8 +.NA +install-mh \- initialize the MH environment +.SY +@(MHETCPATH)/install\-mh +\%[\-auto] +\%[\-compat] +.DE +When a user runs any \fIMH\fR program for the first time, +the program will invoke \fIinstall\-mh\fR (with the `\-auto' switch) +to query the user for the initial \fIMH\fR environment. +The user does \fBNOT\fR invoke this program directly. +The user is asked for the name of the directory that will be designated +as the user's \fIMH\fR directory. +If this directory does not exist, the user is asked if it should be +created. +Normally, this directory should be under the user's home directory, +and has the default name of Mail/. +After \fIinstall\-mh\fR has written the initial \&.mh\(ruprofile for +the user, +control returns to the original \fIMH\fR program. + +As with all \fIMH\fR commands, +\fIinstall\-mh\fR first consults the \fB$HOME\fR envariable to +determine the user's home directory. +If \fB$HOME\fR is not set, +then the \fI/etc/passwd\fR file is consulted. + +When converting from \fImh.3\fR to \fImh.4\fR, +\fIinstall\-mh\fR is automatically invoked with the `\-compat' switch. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To set the user's MH directory +.Co +With `\-auto', the current folder is changed to \*(lqinbox\*(rq. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/maildelivery.5 b/docs/historical/mh-6.8.5/conf/doc/maildelivery.5 new file mode 100644 index 0000000..c281a3b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/maildelivery.5 @@ -0,0 +1,243 @@ +.tr ~ +.de NP +.IP "\fI\\$1\fP" 10 +.. +.de II +.nr P- \\n()P \" save the preceeding IP space +.nr )P 0 \" now set it to 0 +.NP "\\$1\fP" +.nr )P \\n(P- \" restore the preceeding IP space +.. +.ds M \fI.maildelivery\fP +.TH MAILDELIVERY 5 "1 October, 1985" +.SH NAME +maildelivery +.SH SYNOPSIS +User delivery specification file +.SH DESCRIPTION +The delivery of mail by the local channel can run through various +courses, including using a user tailorable file. +The delivery follows the following strategy, giving up at any point +it considers the message delivered. +.RS +.IP "1)" 4 +If the address indicates a pipe or file default +then that is carried out. +.IP "2)" 4 +The file \*M +(or something similar) in the home directory is read if it exists +and the actions in it are followed. +.IP "3)" 4 +A system-wide file is consulted next, such as +.I /usr/lib/maildelivery +and the actions are similar to 2. +.IP "4)" 4 +If the message still hasn't been delivered, then it is put into +the user's normal mailbox +.RI ( .mail +or +.IR mailbox ) +depending on the system. +.RE +.PP +The format of the \*M file is +.RS +.B field +.I +.B pattern +.I +.B action +.I +.B result +.I +.B string +.RE +where +.br +.NP field +is name of a field that is to be searched for a pattern. +This is any header field that you might find in a message. +The most commonly used headers are usually +From, to, cc, subject and sender. +As well as the standard headers, there are some psuedo-headers +that are can also be used. These are :- +.RS +.II source +The out of band sender information. This is the address MMDF would +use for reporting delivery problems with the message. +.II addr +the address that was used to mail to you, normally 'yourname' or +\&'yourname=string' (see below). +.II default +if the message hasn't been delivered yet, this field is matched. +.II * +this case is always true regardless of any other action. +.RE +.NP pattern +is some sequence of characters that may be matched in the +above +.IR field . +Case is not significant. +.IP \fIaction\fP 10 +is one of the mail delivery actions supported by the +local channel. Currently the supported actions are +.B file +or +.BR > , +which +appends the message to the given file, with delimiters; +.B pipe +or +.BR | , +which starts up a process with the message +as the standard input; +and +.B destroy +which throws the message away. +There is also +.B qpipe +or +.BR ^ , +which fakes a pipe command and is quicker than the standard pipe, +but does not do header reformatting. +.br +For piped commands, the exit status of the command is significant. +An exit status of 0 implies that the command succeeded and everything +went well. An exit status of octal 0300-0377 indicates that a permanent +failure occured and the message should be rejected; these error codes +are given in mmdf.h. Any other exit +status indicates a temporary failure and the delivery attempt will +be aborted and restarted at a later time. +.NP result +is one of the letters A, R or ? which stand for +Accept, Reject and "Accept if not delivered yet". +They have the following effects: +.RS +.II A +If the result of this line's action is OK, then the message can be +considered delivered. +.II R +The message is not to be considered delivered by this action. +.II ? +This is equivalent to +.I A +except that the action is not carried +out if the message has already been accepted. +.RE +.PP +The file is always read completely so that several matches +can be made, and several actions taken. +As a security check, the \*M file must be owned by either +the user or root, and must not have group or general +write permission. In addition the system delivery file has the above +restrictions but must also be owned by root. +If the field specified does not need a pattern a dash (\-) +or similar symbol is usually inserted to show that the field is present +but not used. +The field separator character can be either a tab, space or comma (,). +These characters can be included in a string by quoting them with +double quotes (") (double quotes can be included with a backslash '\e'). +.PP +MMDF treats local addresses which contain an equals sign ('=') +in a special manner. Everything in a local address +from an equals sign to the '@' is ignored and passed on to the +local channel. The local channel will make the entire string available +for matching against the +.I addr +string of the \*M file. +For example, if you were to +subscribe to a digest as "foo=digest@bar.NET", +.B submit +and the local channel will verify +that it is legal to deliver +to "foo", but then the entire string "foo=digest" will be available +for string matching against the \*M file for the +.B addr +field. +.SH ENVIRONMENT +The environment in which piped programs are run +contains a few standard features, specifically: +.ne 5 +.sp +.nf +HOME is set to the user's home directory. +USER is set to the user's login name. +SHELL is set to the user's login shell (defaults to /bin/sh). +.sp +.fi +The default umask is set up to 077, this gives a very protective +creation mask. +Initgroups is called if the 4.2 version of UNIX is running. +If further requirements are needed, then a shell script +can be run first to set up more complex environments. +.PP +There are certain built-in variables that you can give to +a piped program. These are +.IR $(sender) , +.IR $(address) , +.IR $(size) , +.I $(reply-to) +and +.IR $(info) . +.I $(sender) +is set to the return address for the message. +.I $(address) +is set to the address that was used to mail to you, normally `yourname' +or `yourname=string'. +.I $(size) +is set to the size in bytes of this message. +.I $(reply-to) +is set to the Reply-To: field (or the From: field if the former is +missing) and so can be used for automatic replies. +.I $(info) +is the info field from the internal mail header and is probably only +of interest to the system maintainers. +.SH EXAMPLE +.PP +Here is a rough idea of what a \*M file looks like: +.ne 12 +.nf +.sp +# lines \fIstarting\fP with a '#' are ignored. +# as are blank lines +# file mail with mmdf2 in the "To:" line into file mmdf2.log +To~~~~mmdf2~~~~file~~~~A~~~~mmdf2.log +# Messages from mmdf pipe to the program err-message-archive +From~~~~mmdf~~~~pipe~~~~A~~~~err-message-archive +# Anything with the "Sender:" address "uk-mmdf-workers" +# file in mmdf2.log if not filed already +Sender~~~~uk-mmdf-workers~~~~file~~~~?~~~~mmdf2.log +# "To:" unix \- put in file unix-news +To~~~~Unix~~~~>~~~~A~~~~unix-news +# if the address is jpo=mmdf \- pipe into mmdf-redist +Addr~~~~jpo=mmdf~~~~|~~~~A~~~~mmdf-redist +# if the address is jpo=ack \- send an acknowledgement copy back +Addr~~~~jpo=ack~~~~|~~~~R~~~~"resend~~\-r~~$(reply-to)" +# anything from steve \- destroy! +from~~~~steve~~~~destroy~~~~A~~~~\- +# anything not matched yet \- put into mailbox +default~~~~\-~~~~>~~~~?~~~~mailbox +# always run rcvalert +*~~~~\-~~~~|~~~~R~~~~rcvalert +.sp +.fi +.SH FILES +$HOME/.maildelivery +\- the file's normal location. +.br +/usr/lib/maildelivery \- +the system file. This should be protected against attack. It +may contain contents such as: +.ne 4 +.sp +.nf +default~~~~\-~~~~pipe~~~~A~~~~stdreceive +*~~~~\-~~~~|~~~~R~~~~ttynotify +.fi +.sp +This allows interfacing to non-standard mail systems, +ones that don't believe in delimiter-separated mailboxes. +.SH "SEE ALSO" +rcvtrip(1) +.SH BUGS +And why not? diff --git a/docs/historical/mh-6.8.5/conf/doc/mark.rf b/docs/historical/mh-6.8.5/conf/doc/mark.rf new file mode 100644 index 0000000..3445078 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mark.rf @@ -0,0 +1,121 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mark.rf,v 1.9 1993/08/20 00:04:30 jromine Exp $ +.SC MARK 1 +.NA +mark \- mark messages +.SY +mark +\%[+folder] \%[msgs] +\%[\-sequence\ name\ ...] +\%[\-add] \%[\-delete] \%[\-list] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] +.DE +The \fImark\fR command manipulates message sequences by adding or +deleting message numbers from folder\-specific message sequences, +or by listing those sequences and messages. +A message sequence is a keyword, just like one of the +\*(lqreserved\*(rq message names, +such as \*(lqfirst\*(rq or \*(lqnext\*(rq. +Unlike the \*(lqreserved\*(rq message names, +which have a fixed semantics on a per\-folder basis, +the semantics of a message sequence may be defined, modified, and +removed by the user. +Message sequences are folder\-specific, e.g., +the sequence name \*(lqseen\*(rq in the context of folder \*(lq+inbox\*(rq +need not have any relation whatsoever to the sequence of the same name +in a folder of a different name. + +Three action switches direct the operation of \fImark\fR. +These switches are mutually exclusive: +the last occurrence of any of them overrides any previous occurrence of the +other two. + +The `\-add' switch tells \fImark\fR to add messages to sequences +or to create a new sequence. +For each sequence named via the `\-sequence\ name' argument +(which must occur at least once) +the messages named via `msgs' +(which defaults to \*(lqcur\*(rq if no `msgs' are given), +are added to the sequence. +The messages to be added need not be absent from the sequence. +If the `\-zero' switch is specified, +the sequence will be emptied prior to adding the messages. +Hence, `\-add\ \-zero' means that each sequence should be initialized +to the indicated messages, +while `\-add\ \-nozero' means that each sequence should be appended to +by the indicated messages. + +The `\-delete' switch tells \fImark\fR to delete messages from +sequences, and is the dual of `\-add'. +For each of the named sequences, +the named messages are removed from the sequence. +These messages need not be already present in the sequence. +If the `\-zero' switch is specified, +then all messages in the folder are appended to the sequence prior to +removing the messages. +Hence, `\-delete\ \-zero' means that each sequence should contain all +messages except those indicated, +while `\-delete\ \-nozero' means that only the indicated messages +should be removed from each sequence. +As expected, the command `mark\0\-sequence\0seen\0\-delete\0all' +deletes the sequence \*(lqseen\*(rq from the current folder. + +When creating (or modifying) a sequence, +the `\-public' switch indicates that the sequence should be made readable +for other \fIMH\fR users. +In contrast, the `\-nopublic' switch indicates that the sequence should be +private to the user's \fIMH\fR environment. + +The `\-list' switch tells \fImark\fR to list both the sequences defined +for the folder and the messages associated with those sequences. +\fIMark\fR will list the name of each sequence given by +`\-sequence\ name' and the messages associated with that sequence. +If `\-sequence' isn't used, all sequences will be listed, +with private sequences being so indicated. +The `\-zero' switch does not affect the operation of `\-list'. + +The current restrictions on sequences are: + +.in +.25i +The name used to denote a message sequence must consist of +an alphabetic character followed by zero or more +alphanumeric characters, and cannot be one of the (reserved) +message names \*(lqnew\*(rq, \*(lqfirst\*(rq, +\*(lqlast\*(rq, \*(lqall\*(rq, \*(lqnext\*(rq, or \*(lqprev\*(rq. + +Only a certain number of sequences may be defined for a given folder. +This number is usually limited to 26 (10 on small systems). + +Message ranges with user\-defined +sequence names are restricted to the form \*(lqname:n\*(rq or +\*(lqname:-n\*(rq, and refer to the first or last `n' messages +of the sequence `name', respectively. +Constructs of the form \*(lqname1\-name2\*(rq are forbidden. +.in -.25i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +pick (1), mh-sequence (5) +.De +`+folder' defaults to the current folder +.Ds +`\-add' if `\-sequence' is specified, `\-list' otherwise +.Ds +`msgs' defaults to cur (or all if `\-list' is specified) +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-nozero' +.Co +If a folder is given, it will become the current folder. +.Hh +Use \*(lqpick sequence \-list\*(rq +to enumerate the messages in a sequence (such as for use +by a shell script). +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/me2man.sed b/docs/historical/mh-6.8.5/conf/doc/me2man.sed new file mode 100644 index 0000000..a4cba66 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/me2man.sed @@ -0,0 +1,10 @@ +/^\.SC/s/^\.SC\(.*\)$/.TH\1 @(MHCENTERFOOT) @(MHLEFTFOOT)/ +/^\.NA$/c\ +.SH NAME +/^\.SY$/c\ +.SH SYNOPSIS\ +.in +.5i\ +.ti -.5i +/^\.DE$/c\ +.in -.5i\ +.SH DESCRIPTION diff --git a/docs/historical/mh-6.8.5/conf/doc/mf.rf b/docs/historical/mh-6.8.5/conf/doc/mf.rf new file mode 100644 index 0000000..35331c0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mf.rf @@ -0,0 +1,60 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mf.rf,v 1.5 90/04/05 15:12:57 sources Exp $ +.SC MF 1 +.NA +muinc, musift, uminc, umsift \- mail filters +.SY +@(MHETCPATH)/muinc + +.ti .5i +@(MHETCPATH)/musift +\%[files\ ...] + +.ti .5i +@(MHETCPATH)/uminc + +.ti .5i +@(MHETCPATH)/umsift +\%[files\ ...] +.DE +The mail filters +are a set of programs that filter mail from one format to another. +In particular, \fIUUCP\fR\- and \fIMMDF\fR\-style mail files are handled. + +\fImuinc\fR +filters mail from the user's \fIMMDF\fR maildrop into the user's \fIUUCP\fR +maildrop; +similarly, +\fIuminc\fR +filters mail from the user's \fIUUCP\fR maildrop into the user's \fIMMDF\fR +maildrop. +These two programs respect each system's maildrop locking protocols. + +\fImusift\fR +filters each file on the command line +(or the standard input if no arguments are given), +and places the result on the standard output in \fIUUCP\fR format. +The files (or standard input) are expected to be in \fIMMDF\fR format. +\fIumsift\fR +does the same thing filtering \fIUUCP\fR formatted files (or input), +and places the \fIMMDF\fR formatted result on the standard output. +No locking protocols are used by these programs. + +If the files aren't in the expected format, +the mail filters will try to recover. +In really bad cases, +you may lose big. +.Fi +^/usr/spool/mail/~^UUCP spool area for maildrops +^@(MHDROPLOC)~^Location of standard maildrop +.Pr +None +.Sa +\fIProposed Standard for Message Header Munging\fR (aka RFC\-886), +.br +inc(1) +.De +.Co +.Bu +Numerous; protocol translation is very difficult. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-alias.rf b/docs/historical/mh-6.8.5/conf/doc/mh-alias.rf new file mode 100644 index 0000000..2f4dedf --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-alias.rf @@ -0,0 +1,232 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-alias.rf,v 1.11 1992/12/11 21:44:16 jromine Exp $ +.SC MH-ALIAS 5 +.NA +mh-alias \- alias file for MH message system +.SY +any \fIMH\fR command +.DE +This describes both \fIMH\fR personal alias files and +the (primary) alias file for mail delivery, the file + + @(MHETCPATH)/MailAliases + +It does \fBnot\fR describe aliases files used by the message transport system. +Each line of the alias file has the format: + + alias : address\-group +.br +or +.br + alias ; address\-group +.br +or +.br + < alias\-file +.br +or +.br + ; comment +.br + +where: + + address\-group := address\-list +.br + | \*(lq<\*(rq file +.br + | \*(lq=\*(rq UNIX\-group +.br + | \*(lq+\*(rq UNIX\-group +.br + | \*(lq*\*(rq + +.br + address\-list := address +.br + | address\-list, address +.br + +Continuation lines in alias files end with `\\' followed by the newline +character. + +Alias\-file and file are UNIX file names. +UNIX\-group is a group name (or number) from \fI/etc/group\fR. +An address is a \*(lqsimple\*(rq Internet\-style address. +Througout this file, case is ignored, except for alias\-file names. + +If the line starts with a `<', then the file named after the `<' is +read for more alias definitions. The reading is done recursively, so a `<' +may occur in the beginning of an alias file with the expected results. + +If the address\-group starts with a `<', +then the file named after the `<' is read and its contents are added to +the address\-list for the alias. + +If the address\-group starts with an `=', +then the file \fI/etc/group\fR is consulted +for the UNIX\-group named after the `='. +Each login name occurring as a member of the group is added to the +address\-list for the alias. + +In contrast, if the address\-group starts with a `+', +then the file \fI/etc/group\fR is consulted +to determine the group\-id of the UNIX\-group named after the `+'. +Each login name occurring in the \fI/etc/passwd\fR file whose group\-id +is indicated by this group is added to the address\-list for the alias. + +If the address\-group is simply `*', +then the file \fI/etc/passwd\fR is consulted +and all login names with a userid greater than some magic number +(usually 200) are added to the address\-list for the alias. + +In match, a trailing * on an alias will match just about anything appropriate. +(See example below.) + +An approximation of the way aliases are resolved at posting time is +(it's not really done this way): + +.in +.5i +1) Build a list of all addresses from the message to be +delivered, eliminating duplicate addresses. + +2) If this draft originated on the local host, +then for those addresses in the message that have no host specified, +perform alias resolution. + +3) For each line in the alias file, +compare \*(lqalias\*(rq against all of the existing addresses. +If a match, remove the matched \*(lqalias\*(rq from the address list, +and add each new address in the address\-group to the address list +if it is not already on the list. +The alias itself is not usually output, +rather the address\-group that the alias maps to is output instead. +If \*(lqalias\*(rq is terminated with a `;' instead of a `:', +then both the \*(lqalias\*(rq and the address are output +in the correct format. +(This makes replies possible since \fIMH\fR aliases and +personal aliases are unknown to the mail transport system.) +.in -.5i + +Since the alias file is read line by line, forward references +work, but backward references are not recognized, thus, there is +no recursion. + +.ne 10 +\fBExample:\fR +.nf +.in +.5i +<@(MHETCPATH)/BBoardAliases +sgroup: fred, fear, freida +b-people: Blind List: bill, betty; +fred: frated@UCI +UNIX\-committee: \*(rq are defined +to be \*(lqnews\*(rq. + +The key thing to understand about aliasing in \fIMH\fR +is that aliases in \fIMH\fR alias files are expanded into the +headers of messages posted. +This aliasing occurs first, +at posting time, +without the knowledge of the message transport system. +In contrast, +once the message transport system is given a message to deliver +to a list of addresses, +for each address that appears to be local, +a system\-wide alias file is consulted. +These aliases are \fBNOT\fR expanded into the headers of messages delivered. +.Hh +To use aliasing in \fIMH\fR quickly, do the following: + +.in +.5i +First, in your \fI\&.mh\(ruprofile\fR, +choose a name for your alias file, say \*(lqaliases\*(rq, +and add the line: + +.nf +.in +.5i +Aliasfile: aliases +.\" ali: \-alias aliases +.\" send: \-alias aliases +.\" whom: \-alias ailases +.in -.5i +.fi + +Second, create the file \*(lqaliases\*(rq in your \fIMH\fR directory. + +Third, start adding aliases to your \*(lqaliases\*(rq file as appropriate. +.in -.5i +.Fi +^@(MHETCPATH)/MailAliases~^Primary alias file +.Pr +^Aliasfile:~^For a default alias file +.Sa +ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8) +.De +None +.Co +None +.Hi +In previous releases of \fIMH\fR, +only a single, system\-wide mh\-alias file was supported. +@BEGIN: MMDFMTS +Now that \fIMH\fR uses \fIMMDF\fR as a transport system, +the system\-wide aliasing facility can be more consistently controlled by the +latter. +This means that at most sites, +the system\-wide mh\-alias file will be empty (or trivial at best). +@END: MMDFMTS +@BEGIN: MHMTS +This led to a number of problems, +since only mail\-system administrators were capable of (un)defining +aliases. +@END: MHMTS +@BEGIN: SENDMTS +This led to a number of problems, +since only mail\-system administrators were capable of (un)defining +aliases. +@END: SENDMTS +Hence, +the semantics of mh\-alias were extended to support personal alias files. +Users of \fIMH\fR no longer need to bother mail\-system administrators for +keeping information in the system\-wide alias file, +as each \fIMH\fR user can create/modify/remove aliases at will from any +number of personal files. +.Bu +Although the forward-referencing semantics of \fImh\-alias\fR files prevent +recursion, the \*(lq<\ alias\-file\*(rq command may defeat this. Since the +number of file descriptors is finite (and very limited), such infinite +recursion will terminate with a meaningless diagnostic when all the fds are +used up. +.sp +Forward references do not work correctly inside blind lists. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-chart.rf b/docs/historical/mh-6.8.5/conf/doc/mh-chart.rf new file mode 100644 index 0000000..429dcca --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-chart.rf @@ -0,0 +1,621 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-chart.rf,v 2.25 1993/10/26 20:12:45 jromine Exp $ +.if '\*(ZZ'-man' \{\ +.SC MH-CHART 1 +.NA +mh-chart \- Chart of MH Commands +.SY +.\} +.in 1i +.na +.ti .5i +.ne 7 +ali +\%[\-alias\ aliasfile] +\%[\-list] \%[\-nolist] +\%[\-normalize] \%[\-nonormalize] +\%[\-user] \%[\-nouser] +aliases\ ... +\%[\-help] + +.ti .5i +.ne 6 +anno +\%[+folder] \%[msgs] +\%[\-component\ field] +\%[\-inplace] \%[\-noinplace] +\%[\-date] \%[\-nodate] +\%[\-text\ body] +\%[\-help] + +@BEGIN: BBOARDS +.ti .5i +.ne 12 +bbc +\%[bboards\ ...] +\%[\-topics] \%[\-check] \%[\-read] +\%[\-quiet] \%[\-verbose] +\%[\-archive] \%[\-noarchive] +\%[\-protocol] \%[\-noprotocol] +\%[\-mshproc\ program] +\%[switches\ for\ \fImshproc\fR] +\%[\-rcfile rcfile] \%[\-norcfile] +\%[\-file\ BBoardsfile] \%[\-user\ BBoardsuser] +@BEGIN: BPOP +\%[\-host\ host] +\%[\-rpop] \%[\-norpop] +@END: BPOP +@BEGIN: NNTP +\%[\-host\ host] +@END: NNTP +\%[\-help] + +@BEGIN: BBSERVER +.ti .5i +.ne 6 +bbl +\%[+folder] +\%[\-shell\ program] +\%[\-verbose] \%[\-noverbose] +bboard +\%[\-help] + +@END: BBSERVER +@END: BBOARDS +.ti .5i +.ne 6 +burst +\%[+folder] \%[msgs] +\%[\-inplace] \%[\-noinplace] +\%[\-quiet] \%[\-noquiet] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +@BEGIN: TMA + +.ti .5i +.ne 7 +cipher +\%[\-cbc] \%[\-cks] \%[\-ecb] +\%[\-encipher] \%[\-decipher] +\%[\-kd\ key] \%[\-iv\ vector] +\%[\-auto] \%[\-noauto] +\%[\-echo] \%[\-noecho] +\%[\-help] +@END: TMA + +.ti .5i +.ne 9 +comp +\%[+folder] \%[msg] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-file\ file] +\%[\-form\ formfile] +\%[\-use] \%[\-nouse] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +@BEGIN: TMA + +.ti .5i +.ne 5 +decipher +\%[+folder] \%[msgs] +\%[\-insitu] \%[\-noinsitu] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +@END: TMA + +.ti .5i +.ne 9 +dist +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-form\ formfile] +\%[\-inplace] \%[\-noinplace] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +.ne 4 +@(MHETCPATH)/fmtdump +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-help] + +.ti .5i +.ne 12 +folder +\%[+folder] \%[msg] +\%[\-all] +\%[\-fast] \%[\-nofast] +\%[\-header] \%[\-noheader] +\%[\-pack] \%[\-nopack] +\%[\-recurse] \%[\-norecurse] +\%[\-total] \%[\-nototal] +\%[\-print] \%[\-noprint] +\%[\-list] \%[\-nolist] +\%[\-push] \%[\-pop] +\%[\-help] + +.ti .5i +folders + +.ti .5i +.ne 11 +forw +\%[+folder] \%[msgs] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +\%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@END: MIME +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +.ne 5 +forw +\%[+folder] \%[msgs] +\%[\-digest\ list] \%[\-issue\ number] \%[\-volume\ number] +\%[other\ switches\ for\ \fIforw\fR] +\%[\-help] + +.ti .5i +.ne 11 +@BEGIN: MF +.ne 12 +@END: MF +@BEGIN: POP +.ne 13 +@END: POP +inc +\%[+folder] +\%[\-audit\ audit\-file] \%[\-noaudit] +\%[\-changecur] \%[\-nochangecur] +@BEGIN: TMA +\%[\-decrypt] \%[\-nodecrypt] +@END: TMA +\%[\-file\ name] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-silent] \%[\-nosilent] +\%[\-truncate] \%[\-notruncate] +\%[\-width\ columns] +@BEGIN: MF +\%[\-uucp] \%[\-nouucp] +@END: MF +@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +\%[\-pack\ file] \%[\-nopack] +@END: POP +\%[\-help] + +.ti .5i +.ne 7 +mark +\%[+folder] \%[msgs] +\%[\-sequence\ name\ ...] +\%[\-add] \%[\-delete] \%[\-list] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] + +.ti .5i +.ne 9 +@(MHETCPATH)/mhl +\%[\-bell] \%[\-nobell] +\%[\-clear] \%[\-noclear] +\%[\-folder\ +folder] +\%[\-form\ formfile] +\%[\-length\ lines] \%[\-width\ columns] +\%[\-moreproc\ program] \%[\-nomoreproc] +\%[files\ ...] +\%[\-help] + +.ti .5i +.ne 8 +mhmail +\%[ +addrs\ ... +\%[\-body\ text] +\%[\-cc\ addrs\ ...] +\%[\-from\ addr] +\%[\-subject subject]] +\%[\-help] +@BEGIN: MIME + +.ti .5i +.ne 9 +mhn +\%[\%[+folder] \%[msgs] | \%[\-file\0file]] +.br +\%[\-part\0number]... \%[\-type\0content]... +.br +\%[\-list\0\%[\-headers]\0\%[\-noheaders] +.br + \%[\-realsize]\0\%[\-norealsize]] \%[-nolist] +.br +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly] +.br + \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow] +.br +\%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore] +.br +\%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy] +.br +\%[\-check]\0\%[\-nocheck] +.br +\%[\-ebcdicsafe]\0\%[\-noebcdicsafe] +.br +\%[\-rfc934mode]\0\%[\-norfc934mode] +.br +\%[\-verbose]\0\%[\-noverbose] +.br +\%[\-help] +@END: MIME + +.ti .5i +.ne 5 +mhparam +\%[profile-components] +\%[\-components] \%[\-nocomponents] +\%[\-all] +\%[\-help] + +.ti .5i +.ne 3 +mhpath +\%[+folder] \%[msgs] +\%[\-help] + +.ti .5i +.ne 5 +@BEGIN: POP +.ne 7 +@END: POP +msgchk +\%[\-date] \%[\-nodate] +\%[\-notify\ all/mail/nomail] \%[\-nonotify\ all/mail/nomail] +@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@END: POP +\%[users\ ...] +\%[\-help] + +.ti .5i +.ne 5 +msh +\%[\-prompt\ string] +\%[\-scan] \%[\-noscan] +\%[\-topcur] \%[\-notopcur] +\%[file] +\%[\-help] + +.ti .5i +.ne 6 +next +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 4 +packf +\%[+folder] \%[msgs] +\%[-file\ name] +\%[\-help] + +.ie t \{\ +.ta .4i 1.8i +.nf +.in .5i +.ne 7 +^pick~^^\0\-cc~^ \%[+folder] \%[msgs] \%[\-help] +^^^\0\-date~^ \%[\-before\ date] \%[\-after\ date] \%[\-datefield\ field] +^^^\0\-from~^ +^^^\s+2\b'\(lt\(bv\(bv\(lk\(bv\(bv\(lb'\s0\-search~\s+2\b'\(rt\(bv\(bv\(rk\(bv\(bv\(rb'\s0^ pattern \%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +^^^\0\-subject~^ +^^^\0\-to~^ \%[\-sequence\ name\ ...] \%[\-public] \%[\-nopublic] \%[\-zero] \%[\-nozero] +^^^\0\-\|\-component~^ \%[\-list] \%[\-nolist] +.fi +.re +.in 1i +.\} +.el \{\ +.ti .5i +.ne 10 +pick +\%[+folder] \%[msgs] +\%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +\%[\-\|\-component\ pattern] +\%[\-after\ date] \%[\-before\ date] \%[\-datefield\ field] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-list] \%[\-nolist] +\%[\-help] +.\} +@BEGIN: MPOP + +.ti .5i +.ne 11 +popi +\%[+folder] +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@BEGIN: BPOP +\%[\-auto] \%[\-noauto] +\%[\-mshproc\ program] +@END: BPOP +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +\%[\-help] +@END: MPOP + + +.ti .5i +.ne 6 +prev +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 7 +prompter +\%[\-erase\ chr] +\%[\-kill\ chr] +\%[\-prepend] \%[\-noprepend] +\%[\-rapid] \%[\-norapid] +\%[\-doteof] \%[\-nodoteof] +file +\%[\-help] + +.ti .5i +.ne 7 +@(MHETCPATH)/rcvstore +\%[+folder] +\%[\-create] \%[\-nocreate] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] + +.ti .5i +.ne 9 +refile +\%[msgs] +\%[\-draft] +\%[\-link] \%[\-nolink] +\%[\-preserve] \%[\-nopreserve] +\%[\-src\ +folder] +\%[\-file\ file] ++folder ... +\%[\-help] + +.ti .5i +.ne 15 +repl +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-cc\ all/to/cc/me] \%[\-nocc\ all/to/cc/me] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-fcc\ +folder] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +.\" \%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +\%[\-query] \%[\-noquery] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-width\ columns] +\%[\-help] + +.ti .5i +.ne 4 +rmf +\%[+folder] +\%[\-interactive] \%[\-nointeractive] +\%[\-help] + +.ti .5i +.ne 3 +rmm +\%[+folder] \%[msgs] +\%[\-help] + +.ti .5i +.ne 8 +scan +\%[+folder] \%[msgs] +\%[\-clear] \%[\-noclear] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-header] \%[\-noheader] +\%[\-width\ columns] +\%[\-reverse] \%[\-noreverse] +\%[\-file filename] +\%[\-help] + +.ti .5i +.ne 15 +send +\%[\-alias\ aliasfile] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +@BEGIN: TMA +\%[\-encrypt] \%[\-noencrypt] +@END: TMA +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +\%[\-forward] \%[\-noforward] +@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@END: MIME +\%[\-msgid] \%[\-nomsgid] +\%[\-push] \%[\-nopush] +@BEGIN: MIME +\%[\-split\ seconds] +@END: MIME +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +\%[file\ ...] +\%[\-help] + +.ti .5i +.ne 7 +show +\%[+folder] \%[msgs] +\%[\-draft] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 5 +sortm +\%[+folder] \%[msgs] +\%[\-datefield\ field] +\%[\-textfield\ field] \%[\-notextfield] +\%[\-limit days] \%[\-nolimit] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +@BEGIN: TMA + +.ti .5i +.ne 11 +tma +\%[\-boot\ file] \%[\-id\ kdsid] \%[\-mk\ key] +\%[\-kds\ server] +\%[\-add] \%[\-delete] \%[\-list] \%[\-reset] +\%[\-user\ name] +\%[\-fetch] \%[\-nofetch] +\%[\-expire\ days] \%[\-fexpire\ days] +\%[\-count\ uses] \%[\-fcount\ uses] +\%[\-echo] \%[\-noecho] +\%[\-verbose] \%[\-noverbose] +addrs\ ... +\%[\-help] +@END: TMA + +.ti .5i +.ne 5 +vmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] + +.ti .5i +.ne 6 +whatnow +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-prompt\ string] +\%[file] +\%[\-help] + +.ti .5i +.ne 7 +whom +\%[\-alias\ aliasfile] +\%[\-check] \%[\-nocheck] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[file] +\%[\-help] + +.ti .5i +.ne 7 +@(MHETCPATH)/ap +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-normalize] \%[\-nonormalize] +\%[\-width\ columns] +addrs\ ... +\%[\-help] + +.ti .5i +.ne 5 +@(MHETCPATH)/conflict +\%[\-mail\ name] +\%[\-search\ directory] +\%[aliasfiles\ ...] +\%[\-help] + +.ti .5i +.ne 5 +@(MHETCPATH)/dp +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +dates\ ... +\%[\-help] + +.ti .5i +.ne 3 +@(MHETCPATH)/install\-mh +\%[\-auto] +\%[\-compat] +@BEGIN: APOP + +.ti .5i +.ne 3 +popauth +\%[\-init] \%[\-list] \%[\-user\ name] +\%[\-help] +@END: APOP + +.ti .5i +.ne 11 +@(MHETCPATH)/post +\%[\-alias\ aliasfile] +@BEGIN: TMA +\%[\-encrypt] \%[\-noencrypt] +@END: TMA +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@END: MIME +\%[\-msgid] \%[\-nomsgid] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +file +\%[\-help] + +.ti .5i +.ne 10 +@(MHETCPATH)/slocal \%[address\ info\ sender] +\%[\-addr\ address] +\%[\-info\ data] +\%[\-sender\ sender] +\%[\-user\ username] +\%[\-mailbox\ mbox] +\%[\-file\ file] +\%[\-maildelivery\ deliveryfile] +\%[\-verbose] \%[\-noverbose] +\%[\-debug] +\%[\-help] +.ad +.in 0 diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-format.rf b/docs/historical/mh-6.8.5/conf/doc/mh-format.rf new file mode 100644 index 0000000..dd1efd6 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-format.rf @@ -0,0 +1,531 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-format.rf,v 1.47 1995/12/06 23:33:39 jromine Exp $ +.SC MH-FORMAT 5 +.NA +mh-format \- format file for MH message system +.SY +some \fIMH\fR commands +.DE +Several \fIMH\fR commands utilize either a \fIformat\fR string or a +\fIformat\fR file during their execution. +For example, +\fIscan\fR\0(1) uses a format string which directs it how to generate the +scan listing for each message; +\fIrepl\fR\0(1) uses a format file which directs it how to generate the +reply to a message, and so on. + +Format strings are designed to be efficiently parsed by \fIMH\fR which +means they are not necessarily simple to write and understand. +This means that novice, casual, or even advanced users of \fIMH\fR should +not have to deal with them. +Some canned scan listing formats are in +@(MHETCPATH)/scan.time, @(MHETCPATH)/scan.size, and @(MHETCPATH)/scan.timely. +Look in @(MHETCPATH) for other \fIscan\fR and \fIrepl\fR format files +which may have been written at your site. + +It suffices to have your local \fIMH\fR expert actually write new format +commands or modify existing ones. +This manual section explains how to do that. +Note: familiarity with the C \fIprintf\fR routine is assumed. + +A format string consists of ordinary text, and special +multi-character \fIescape\fR sequences which begin with `%'. +When specifying a format string, +the usual C backslash characters are honored: +`\\b', `\\f', `\\n', `\\r', and `\\t'. +Continuation lines in format files end with `\\' followed +by the newline character. +To put a literal `%' or `\\' in a format string, use two of them: +`%%' and `\\\\'. +.\" talk about syntax first, then semantics +There are three types of \fIescape\fR sequences: +header \fIcomponents\fR, built-in \fIfunctions\fR, and flow \fIcontrol\fR. + +A \fIcomponent\fR escape is specified as `%{\fIcomponent\fR\^}', +and exists for each header found in the message being processed. +For example `%{date}' refers to the \*(lqDate:\*(rq field of the appropriate +message. +All component escapes have a string value. +Normally, component values are compressed by +converting any control characters (tab and newline included) to spaces, +then eliding any leading or multiple spaces. +However, +commands may give different interpretations to some component escapes; +be sure to refer to each command's manual entry for complete details. + +A \fIfunction\fR escape is specified as `%(\fIfunction\fR\^)'. +All functions are built-in, and most have a string or numeric value. + +.ne 12 +.Uh "Control-flow escapes" +A \fIcontrol\fR escape is one of: `%<', `%?', `%|', or `%>'. +.\" `%[', or `%]'. +These are combined into the conditional execution construct: +.sp +.nf + % +.fi +.sp +Extra white space is shown here only for clarity. +These constructs may be nested without ambiguity. +They form a general \fBif\-elseif\-else\-endif\fP block where +only one of the \fIformat text\fP segments is interpreted. + +The `%<' and `%?' control escapes causes a condition to be evaluated. +This condition +may be either a \fIcomponent\fP or a \fIfunction\fP. +The four constructs have the following syntax: +.sp 1 +.nf + %<{component} + %<(function) + %?{component} + %?(function) +.fi +.sp +These control escapes test whether +the function or component value is non-zero (for integer-valued escapes), +or non-empty (for string-valued escapes). + +If this test evaulates true, +then the format text +up to the next corresponding control escape +(one of `%|', `%?', or `%>') +is interpreted normally. +Next, +all format text (if any) up to the corresponding `%>' control +escape is skipped. +The `%>' control escape is not interpreted; +normal +interpretation resumes after the `%>' escape. + +If the test evaluates false, however, +then the format text +up to the next corresponding control escape +(again, one of `%|', `%?', or `%>') +is skipped, instead of being interpreted. +If the control escape encountered was `%?', +then the condition associated with that control escape is +evaluated, and interpretation +proceeds after that test +as described in the previous paragraph. +If the control escape encountered was `%|', +then the format text +up to the corresponding `%>' escape +is interpreted normally. +As above, +the `%>' escape is not interpreted and normal +interpretation resumes after the `%>' escape. + +The `%?' control escape and its following format text +is optional, and may be included zero or more times. +The `%|' control escape and its following format text +is also optional, and may be included zero or one times. + +.\" The '%[' and '%]' escapes form a loop construct. +.\" For format strings which are executed repeatedly +.\" (as with \fIscan\fP), these escapes delimit the main +.\" body of execution. Format text which occurs +.\" before the '%[' escape is executed once only, prior +.\" to processing the first message; format text occuring +.\" after the '%]' escape is ignored. +.\" (These escapes may not be nested). +.\" +.Uh "Function escapes" +.ne 10 +Most functions expect an argument of a particular type: +.sp 1 +.nf +.ta +\w'Argument 'u +\w'An optional component, 'u +\fIArgument\fR \fIDescription\fR \fIExample Syntax\fR +literal A literal number, %(\fIfunc\fR 1234) + or string %(\fIfunc\fR text string) +comp Any header component %(\fIfunc\fR\^{\fIin-reply-to\fR\^}) +date A date component %(\fIfunc\fR\^{\fIdate\fR\^}) +addr An address component %(\fIfunc\fR\^{\fIfrom\fR\^}) +expr An optional component, %(\fIfunc\fR\^(\fIfunc2\fR\^)) + function or control, %(\fIfunc\fR %<{\fIreply-to\fR\^}%|%{\fIfrom\fR\^}%>) + perhaps nested %(\fIfunc\fR\^(\fIfunc2\fR\^{\fIcomp\fR\^})) +.re +.fi + +The types \fIdate\fR and \fIaddr\fR have the same syntax +as \fIcomp\fR, but require that the header +component be a date string, or address string, respectively. + +All arguments except those of type \fIexpr\fR are required. +For the \fIexpr\fR argument type, +the leading `%' must be omitted for component and function escape arguments, +and must be present (with a leading space) for control escape arguments. + +The evaluation of format strings +is based on a simple machine with an +integer register \fInum\fR, and a text string register \fIstr\fR. +When a function escape is processed, +if it accepts an optional \fIexpr\fR argument which is not present, +it reads the current value of either \fInum\fR or \fIstr\fR as appropriate. + +.\" return values +.Uh "Return values" +Component escapes write the value of their message header in \fIstr\fR. +Function escapes write their return value in +\fInum\fR for functions returning \fIinteger\fR or \fIboolean\fR values, +and in \fIstr\fR for functions returning string values. +(The \fIboolean\fR type is a subset of integers with usual +values 0=false and 1=true.) +Control escapes return a \fIboolean\fP value, and set \fInum\fP. + +All component escapes, and those +function escapes which return an \fIinteger\fR or \fIstring\fR value, +pass this value back to their caller +in addition to setting \fIstr\fR or \fInum\fR. +These escapes will print out this value +unless called as part of an argument to another escape sequence. +Escapes which return a \fIboolean\fR value do pass this value +back to their caller in \fInum\fP, but will never print out the value. + +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +msg integer message number +cur integer message is current +.\" unseen integer message is unseen +size integer size of message +strlen integer length of \fIstr\fR +width integer output buffer size in bytes +charleft integer bytes left in output buffer +timenow integer seconds since the UNIX epoch +me string the user's mailbox +eq literal boolean \fInum\fR == \fIarg\fR +ne literal boolean \fInum\fR != \fIarg\fR +gt literal boolean \fInum\fR > \fIarg\fR +match literal boolean \fIstr\fR contains \fIarg\fR +amatch literal boolean \fIstr\fR starts with \fIarg\fR +plus literal integer \fIarg\fR plus \fInum\fR +minus literal integer \fIarg\fR minus \fInum\fR +divide literal integer \fInum\fR divided by \fIarg\fR +modulo literal integer \fInum\fR modulo \fIarg\fR +num literal integer Set \fInum\fR to \fIarg\fR +lit literal string Set \fIstr\fR to \fIarg\fR +getenv literal string Set \fIstr\fR to environment value of \fIarg\fR +profile literal string Set \fIstr\fR to profile component \fIarg\fR value +.\" dat literal int return value of dat[arg] +nonzero expr boolean \fInum\fR is non-zero +zero expr boolean \fInum\fR is zero +null expr boolean \fIstr\fR is empty +nonnull expr boolean \fIstr\fR is non-empty +void expr Set \fIstr\fR or \fInum\fR +comp comp string Set \fIstr\fR to component text +compval comp integer \fInum\fR set to \*(lq\fBatoi\fR(\fIcomp\fR\^)\*(rq +.\" compflag comp integer Set \fInum\fR to component flags bits (internal) +trim expr trim trailing white-space from \fIstr\fR +putstr expr print \fIstr\fR +putstrf expr print \fIstr\fR in a fixed width +putnum expr print \fInum\fR +putnumf expr print \fInum\fR in a fixed width +.\" addtoseq literal add msg to sequence (LBL option) +.re +.fi + +These functions require a date component as an argument: +.sp 1 +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +sec date integer seconds of the minute +min date integer minutes of the hour +hour date integer hours of the day (0-23) +wday date integer day of the week (Sun=0) +day date string day of the week (abbrev.) +weekday date string day of the week +sday date integer day of the week known? + (0=implicit,\-1=unknown) +mday date integer day of the month +yday date integer day of the year +mon date integer month of the year +month date string month of the year (abbrev.) +lmonth date string month of the year +year date integer year (may be > 100) +zone date integer timezone in hours +tzone date string timezone string +szone date integer timezone explicit? + (0=implicit,\-1=unknown) +date2local date coerce date to local timezone +date2gmt date coerce date to GMT +dst date integer daylight savings in effect? +clock date integer seconds since the UNIX epoch +rclock date integer seconds prior to current time +tws date string official 822 rendering +pretty date string user-friendly rendering +nodate date integer \fIstr\fR not a date string +.re +.fi + +.ne 12 +These functions require an address component as an argument. +The return value of functions noted with `*' pertain only to +the first address present in the header component. +.sp 1 +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +proper addr string official 822 rendering +friendly addr string user-friendly rendering +addr addr string mbox@host or host!mbox rendering* +pers addr string the personal name* +note addr string commentary text* +mbox addr string the local mailbox* +mymbox addr integer the user's addresses? (0=no,1=yes) +host addr string the host domain* +nohost addr integer no host was present* +type addr integer host type* (0=local,1=network, + \-1=uucp,2=unknown) +path addr string any leading host route* +ingrp addr integer address was inside a group* +gname addr string name of group* +formataddr expr append \fIarg\fR to \fIstr\fR as a + (comma separated) address list +putaddr literal print \fIstr\fR address list with + \fIarg\fR as optional label; + get line width from \fInum\fR +.re +.fi + +When escapes are nested, evaluation is done from inner-most to outer-most. +The outer-most escape must begin with `%'; the inner escapes must not. +For example, + +.ti +.5i +%<(mymbox{from}) To: %{to}%> + +writes the value of the header component \*(lqFrom:\*(rq to \fIstr\fR\^; +then (\fImymbox\fR\^) reads \fIstr\fR +and writes its result to \fInum\fR; +then the control escape evaluates \fInum\fR. If \fInum\fR is +non-zero, the string \*(lqTo: \*(rq is printed followed by +the value of the header component \*(lqTo:\*(rq. + +A minor explanation of (\fImymbox\fR\^{\fIcomp\fR\^}) is in order. +In general, it checks each of the addresses in the header component +\*(lq\fIcomp\fR\*(rq +against the user's mailbox name and any \fIAlternate-Mailboxes\fR. +It returns true if any address matches, however, it +also returns true if the \*(lq\fIcomp\fR\*(rq header is not present +in the message. If needed, the (\fInull\fR\^) function can be +used to explicitly test for this condition. + +When a function or component escape is interpreted and the result +will be immediately printed, +an optional field width can be +specified to print the field in exactly a given number of characters. +For example, a numeric escape like %4(\fIsize\fR\^) will print at most 4 +digits of the message size; overflow will be indicated by a `?' in the +first position (like `?234'). +A string escape like %4(\fIme\fR\^) will print the first 4 characters and +truncate at the end. +Short fields are padded at the right with the fill character (normally, +a blank). If the field width argument begins with a leading zero, +then the fill character is set to a zero. + +As above, +the functions (\fIputnumf\fR\^) and (\fIputstrf\fR\^) print their result in +exactly the number of characters specified by their leading field width +argument. +For example, +%06(\fIputnumf\fR\^(\fIsize\fR\^)) will print the message size +in a field six characters wide filled with leading zeros; +%14(\fIputstrf\^\fR{\fIfrom\^\fR}) will print +the \*(lqFrom:\*(rq header component in fourteen characters with +trailing spaces added as needed. +For \fIputstrf\fR, +using a negative value for the field width causes right-justification +of the string within the field, +with padding on the left up to the field width. +The functions (\fIputnum\fR\^) and (\fIputstr\fR\^) print their result in +the minimum number of characters required, and ignore any leading +field width argument. + +The available output width is kept in an internal register; any output past +this width will be truncated. + +Comments may be inserted in most places where a function argument +is not expected. A comment begins with `%;' and ends with +a (non-escaped) newline. + +With all this in mind, +here's the default format string for \fIscan\fR. +It's been divided into several pieces for readability. +The first part is: + +.ti +.5i +%4(msg)%<(cur)+%| %>%<{replied}\-%?{encrypted}E%| %> + +which says that the message number should be printed in four digits, +if the message is the current message then a `+' else a space should be +printed, +and if a \*(lqReplied:\*(rq field is present then a `\-' else +if an \*(lqEncrypted:\*(rq field is present then an `E' otherwise +a space should be printed. +Next: + +.ti +.5i +%02(mon{date})/%02(mday{date}) + +the month and date are printed in two digits (zero filled) separated by +a slash. +Next, + +.ti +.5i +%<{date} %|*> + +If a \*(lqDate:\*(rq field was present, +then a space is printed, otherwise a `*'. +Next, + +.ti +.5i +%<(mymbox{from})%<{to}To:%14(friendly{to})%>%> + +if the message is from me, +and there is a \*(lqTo:\*(rq header, +print `To:' followed by a \*(lquser-friendly\*(rq rendering of the +first address in the \*(lqTo:\*(rq field. +Continuing, + +.ti +.5i +%<(zero)%17(friendly{from})%> + +if either of the above two tests failed, +then the \*(lqFrom:\*(rq address is printed +in a \*(lquser-friendly\*(rq format. +And finally, + +.ti +.5i +%{subject}%<{body}<<%{body}%> + +the subject and initial body (if any) are printed. + +For a more complicated example, next consider +the default \fIreplcomps\fR format file. + +.ti +.5i +%(lit)%(formataddr %<{reply-to} + +This clears \fIstr\fR and formats the \*(lqReply-To:\*(rq header +if present. If not present, the else-if clause is executed. + +.ti +.5i +%?{from}%?{sender}%?{return-path}%>)\\ + +This formats the +\*(lqFrom:\*(rq, \*(lqSender:\*(rq and \*(lqReturn-Path:\*(rq +headers, stopping as soon as one of them is present. Next: + +.ti +.5i +%<(nonnull)%(void(width))%(putaddr To: )\\n%>\\ + +If the \fIformataddr\fR result is non-null, it is printed as +an address (with line folding if needed) in a field \fIwidth\fR +wide with a leading label of \*(lqTo: \*(rq. + +.ti +.5i +%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\\ + +\fIstr\fR is cleared, and the +\*(lqTo:\*(rq and \*(lqCc:\*(rq headers, along with the user's +address +(depending on what was specified with +the \*(lq\-cc\*(rq switch to \fIrepl\fR\^) are formatted. + +.ti +.5i +%<(nonnull)%(void(width))%(putaddr cc: )\\n%>\\ + +If the result is non-null, it is printed as above with a +leading label of \*(lqcc: \*(rq. + +.ti +.5i +%<{fcc}Fcc: %{fcc}\\n%>\\ + +If a \*(lq\-fcc\ folder\*(rq switch was given to \fIrepl\fR +(see \fIrepl\fR\0(1) for more details about %{\fIfcc\fR\^}), +an \*(lqFcc:\*(rq header is output. + +.ti +.5i +%<{subject}Subject: Re: %{subject}\\n%>\\ + +If a subject component was present, +a suitable reply subject is output. + +.nf +.ti +.5i +%<{date}In-reply-to: Your message of "\\ +.ti +.5i +%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} +.ti +.5i + %{message-id}%>\\n%>\\ +.ti +.5i +\-\-\-\-\-\-\-\- +.fi + +If a date component was present, +an \*(lqIn-Reply-To:\*(rq header is output with the preface +\*(lqYour message of \*(rq. If the date was parseable, it is +output in a user-friendly format, otherwise it is output as-is. +The message-id is included if present. +As with all plain-text, +the row of dashes are output as-is. + +This last part is a good example for a little more elaboration. +Here's that part again in pseudo-code: +.sp 1 +.nf +.in +.5i +.ta .5i 1i 1.5i 2i +if (comp_exists(date)) then + print (\*(lqIn-reply-to: Your message of \\\*(lq\*(rq) + if (not_date_string(date.value) then + print (date.value) + else + print (pretty(date.value)) + endif + print (\*(lq\\\*(rq\*(rq) + if (comp_exists(message-id)) then + print (\*(lq\\n\\t\*(rq) + print (message-id.value) + endif + print (\*(lq\\n\*(rq) +endif +.re +.in -.5i +.fi +.sp 1 +Although this seems complicated, +in point of fact, +this method is flexible enough to extract individual fields and print them in +any format the user desires. +.Fi +None +.Pr +None +.Sa +scan(1), repl(1), ap(8), dp(8) +.De +None +.Co +None +.Hi +This software was contributed for MH 6.3. Prior to this, output +format specifications were much easier to write, but considerably +less flexible. +.Bu +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-hack.rf b/docs/historical/mh-6.8.5/conf/doc/mh-hack.rf new file mode 100644 index 0000000..5f3e3d4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-hack.rf @@ -0,0 +1,67 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-hack.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC MH-HACK 8 +.NA +mh-hack \- how to hack MH +.SY +big hack attack +.DE +This is a description of how one can modify the \fIMH\fR system. +The \fIMH\fR distribution has a lot of complex inter\-relations, +so before you go modifying any code, you should read this and +understand what is going on. + +.in +.5i +.ti -.5i +\fBADDING A NEW PROGRAM\fR +.br +Suppose you want to create a new \fIMH\fR command called +\*(lqpickle\*(rq. +First, create and edit \*(lqpickle.c\*(rq in the \fBuip/\fR directory. +Next edit \fBconf/makefiles/uip\fR to include \*(lqpickle\*(rq. +This file has directions at the end of it which explain how it should +be modified. +Next, update any documentation (described below). +At this point you can re\-configure \fIMH\fR. +See \fImh\-gen(8)\fR for instructions on how to do this +(basically, you want \*(lqmhconfig MH\*(rq). + +.ti -.5i +\fBADDING A NEW SUBROUTINE\fR +.br +Suppose you want to create a new \fIMH\fR routine called +\*(lqpickle\*(rq. +First, create and edit \*(lqpickle.c\*(rq in the \fBsbr/\fR directory. +Next edit \fBconf/makefiles/sbr\fR to include \*(lqpickle\*(rq. +This file has directions at the end of it which explain how it should +be modified. +You should modify \fBconfig/mh.h\fR to define \*(lqpickle ();\*(rq. +Similarly, \fBsbr/llib\-lsbr\fR should be modified for \fIlint\fR. +At this point you can re\-configure \fIMH\fR. + +.ti -.5i +\fBUPDATING DOCUMENTATION\fR +.br +Edit whatever files you want in \fBconf/doc/\fR. +When documenting a new program, such as \*(lqpickle\*(rq, +you should create a manual page with the name \*(lqpickle.rf\*(rq. +The file \fBconf/doc/template\fR has a manual page template that you +can use. +If you are documenting a new program, then you should also update three +other files: +The file \fBconf/doc/mh.rf\fR should be modified to include the +\*(lq\&.NA\*(rq section from \*(lqpickle.rf\*(rq. +The file \fBconf/doc/mh\-chart.rf\fR should be modified to include +the \*(lq\&.SY\*(rq section from \*(lqpickle.rf\*(rq. +Finally, the file \fBconf/doc/MH.rf\fR should be modified to include a +\*(lq\&.so pickle.me\*(rq. +Naturally, none of these changes will be reflected in the configuration +until you actually run \fImhconfig\fR. +.in -.5i +.Fi +Too numerous to mention. Honest. +.Sa +mh\-gen(8) +.Bu +Hacking is an art, but most programmers are butchers, not artists. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-mail.rf b/docs/historical/mh-6.8.5/conf/doc/mh-mail.rf new file mode 100644 index 0000000..7ab0553 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-mail.rf @@ -0,0 +1,227 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-mail.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC MH-MAIL 5 +.NA +mh-mail \- message format for MH message system +.SY +any \fIMH\fR command +.DE +\fIMH\fR processes messages in a particular format. +It should be noted that although neither Bell nor Berkeley mailers produce +message files in the format that \fIMH\fR prefers, +\fIMH\fR can read message files in that antiquated format. + +Each user possesses a mail drop box which initially receives +all messages processed by \fIpost\fR\0(8). +\fIInc\fR\0(1) will read from that drop box and incorporate the new messages +found there into the user's own mail folders (typically `+inbox'). +The mail drop +box consists of one or more messages. +@BEGIN: MMDFMTS +To facilitate the +separation of messages, each message begins and ends with +a line consisting of nothing but four CTRL\-A (octal 001) +characters. +@END: MMDFMTS +@BEGIN: MHMTS +To facilitate the +separation of messages, each message begins and ends with +a line consisting of nothing but four CTRL\-A (octal 001) +characters. +@END: MHMTS + +Messages +are expected to consist of lines of text. +Graphics and binary data are not handled. +No data compression is accepted. +All text is clear +ASCII 7-bit data. + +The general \*(lqmemo\*(rq framework of RFC\-822 is used. +A message consists of a block of information in a rigid format, +followed by general text with no specified format. +The rigidly formatted first part of a message is called the header, +and the free-format portion is called the body. +The header must always exist, but the body is optional. +These parts are separated by an empty line, +i.e., two consecutive newline characters. +Within \fIMH\fR, +the header and body may be separated by a line consisting of dashes: + +.nf +.in +.5i +.ne 10 +.eo +.so @(MHETCPATH)/components +.ec +.in -.5i +.fi + +The header is composed of one or more header items. +Each header item can be viewed as a single logical line of ASCII +characters. +If the text of a header item extends across several +real lines, the continuation lines are indicated by leading +spaces or tabs. + +Each header item is called a component and is composed of a +keyword or name, along with associated text. +The keyword begins at the +left margin, may NOT contain spaces or tabs, may not exceed 63 +characters (as specified by RFC\-822), and is terminated by a colon (`:'). +Certain +components (as identified by their keywords) must follow rigidly +defined formats in their text portions. + +The text for most formatted components +(e.g., \*(lqDate:\*(rq and \*(lqMessage\-Id:\*(rq) +is produced automatically. +The only ones entered by the +user are address fields such as \*(lqTo:\*(rq, \*(lqcc:\*(rq, etc. +Internet addresses +are assigned mailbox names and host computer specifications. +The +rough format is \*(lqlocal@domain\*(rq, such as \*(lqMH@UCI\*(rq, +or \*(lqMH@UCI\-ICSA.ARPA\*(rq. +Multiple addresses are separated by commas. +A missing host/domain is assumed to be the local host/domain. + +As mentioned above, +a blank line (or a line of dashes) +signals that all following text up to the end of the file is the body. +No formatting is expected or enforced within the body. + +Following is a list of header components that are considered +meaningful to various MH programs. +.in +.5i +.ti -.5i +Date: +.br +Added by \fIpost\fR\0(8), +contains date and time of the message's entry into the transport system. + +.ti -.5i +From: +.br +Added by \fIpost\fR\0(8), +contains the address of the author or authors (may be more than one if a +\*(lqSender:\*(rq field is present). +Replies are typically directed to addresses in the \*(lqReply\-To:\*(rq or +\*(lqFrom:\*(rq field (the former has precedence if present). + +.ti -.5i +Sender: +.br +Added by \fIpost\fR\0(8) +in the event that the message already has a \*(lqFrom:\*(rq line. +This line contains the address of the actual sender. +Replies are never sent to addresses in the \*(lqSender:\*(rq field. + +.ti -.5i +To: +.br +Contains addresses of primary recipients. + +.ti -.5i +cc: +.br +Contains addresses of secondary recipients. + +.ti -.5i +Bcc: +.br +Still more recipients. +However, the \*(lqBcc:\*(rq line is not copied onto the message as delivered, +so these recipients are not listed. +\fIMH\fR uses an encapsulation method for blind copies, see \fIsend\fR\0(1). + +.ti -.5i +Fcc: +.br +Causes \fIpost\fR\0(8) to copy the message into the specified folder for the +sender, +if the message was successfully given to the transport system. + +.ti -.5i +Message\-ID: +.br +A unique message identifier added by \fIpost\fR\0(8) if the `\-msgid' flag +is set. + +.ti -.5i +Subject: +.br +Sender's commentary. It is displayed by \fIscan\fR\0(1). + +.ti -.5i +In\-Reply\-To: +.br +A commentary line added by \fIrepl\fR\0(1) when replying to a message. + +.ti -.5i +Resent\-Date: +.br +Added when redistributing a message by \fIpost\fR\0(8). + +.ti -.5i +Resent\-From: +.br +Added when redistributing a message by \fIpost\fR\0(8). + +.ti -.5i +Resent\-To: +.br +New recipients for a message resent by \fIdist\fR\0(1). + +.ti -.5i +Resent\-cc: +.br +Still more recipients. +See \*(lqcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Bcc: +.br +Even more recipients. +See \*(lqBcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Fcc: +.br +Copy resent message into a folder. +See \*(lqFcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Message\-Id: +.br +A unique identifier glued on by \fIpost\fR\0(8) if the `\-msgid' flag +is set. +See \*(lqMessage\-Id:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent: +.br +Annotation for \fIdist\fR\0(1) under the `\-annotate' option. + +.ti -.5i +Forwarded: +.br +Annotation for \fIforw\fR\0(1) under the `\-annotate' option. + +.ti -.5i +Replied: +.br +Annotation for \fIrepl\fR\0(1) under the `\-annotate' option. +.in -.5i +.sp +.Fi +^@(MHDROPLOC)~^Location of mail drop +.Pr +None +.Sa +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-mts.rf b/docs/historical/mh-6.8.5/conf/doc/mh-mts.rf new file mode 100644 index 0000000..2fa3c03 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-mts.rf @@ -0,0 +1,111 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-mts.rf,v 1.10 1992/05/12 22:23:34 jromine Exp $ +.SC MH-MTS 8 +.NA +mh-mts \- the MH interface to the message transport system +.SY +SendMail + +.ti .5i +Zmailer + +.ti .5i +MMDF (any release) + +.ti .5i +stand\-alone +.DE +\fIMH\fR can use a wide range of message transport systems to deliver mail. +Although the \fIMH\fR administrator usually doesn't get to choose which MTS +to use (since it's already in place), +this document briefly describes the interfaces. + +When communicating with \fISendMail\fR, +\fIMH\fR always uses the SMTP to post mail. +Depending on the \fIMH\fR configuration, +\fISendMail\fR may be invoked directly (via a \fIfork\fR and an \fIexec\fR), +or \fIMH\fR may open a TCP/IP connection to the SMTP server on the localhost. + +When communicating with \fIzmailer\fP, +the \fISendMail\fP compatibility program is +required to be installed in /usr/lib. +\fIMH\fP communicates with \fIzmailer\fP +by using the SMTP. +It does this by invoking the \fB/usr/lib/sendmail\fP +compatibility program directly, with the `\-bs' option. + +When communicating with \fIMMDF\fR, +normally \fIMH\fR uses the \*(lqmm\(ru\*(rq routines to post mail. +However, depending on the \fIMH\fR configuration, +\fIMH\fR instead may open a TCP/IP connection to the SMTP server on the +localhost. + +When using the stand\-alone system (\fBNOT\fR recommended), +\fIMH\fR delivers local mail itself and queues \fIUUCP\fR and network mail. +The network mail portion will probably have to be modified to reflect the +local host's tastes, since there is no well\-known practice in this area for +all types of UNIX hosts. + +If you are running a UNIX system with TCP/IP networking, +then it is felt that the best interface is achieved by using either +\fISendMail\fR or \fIMMDF\fR with the SMTP option. +This gives greater flexibility. +To enable this option you append the /smtp suffix to the mts option in the +\fIMH\fR configuration. +This yields two primary advantages: +First, +you don't have to know where \fIsubmit\fR or \fISendMail\fR live. +This means that \fIMH\fR binaries (e.g., \fIpost\fR\0) +don't have to have this information hard\-coded, +or can run different programs altogether; +and, +second, you can post mail with the server on different systems, so you don't +need either \fIMMDF\fR or \fISendMail\fR on your local host. +Big win in conserving cycles and disk space. +Since \fIMH\fR supports the notion of a server search\-list in this respect, +this approach can be tolerant of faults. +Be sure to set \*(lqservers:\*(rq as described in +mh\-tailor(8) if you use this option. + +There are four disadvantages to using the SMTP option: +First, only UNIX systems with TCP/IP are supported. +Second, you need to have an SMTP server running somewhere on any network your +local host can reach. +Third, this bypasses any authentication mechanisms in \fIMMDF\fR +or \fISendMail\fR. +Fourth, +the file \fB/etc/hosts\fR is used for hostname lookups +(although there is an exception file). +In response to these disadvantages though: +First, there's got to be an SMTP server somewhere around if you're in the +Internet or have a local network. +Since the server search\-list is very general, +a wide\-range of options are possible. +Second, +SMTP should be fixed to have authentication mechanisms in it, like POP. +Third, +\fIMH\fR won't choke on mail to hosts whose official names it can't verify, +it'll just plug along +(and besides +if you enable the BERK or DUMB configuration options, +\fIMH\fR ignores the hosts file altogether). +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +.Pr +None +.Sa +\fIMMDF\-II: A Technical Review\fR, +Proceedings, Usenix Summer '84 Conference +.br +\fISENDMAIL \-\- An Internetwork Mail Router\fR +.br +mh\-tailor(8), post(8) +.De +None +.Co +None +.Bu +The @(MHETCPATH)/mtstailor file ignores the information in the \fIMMDF\-II\fR +tailoring file. +It should not. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-profile.rf b/docs/historical/mh-6.8.5/conf/doc/mh-profile.rf new file mode 100644 index 0000000..b312df2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-profile.rf @@ -0,0 +1,491 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-profile.rf,v 1.21 1996/02/08 18:06:13 jromine Exp $ +.SC MH-PROFILE 5 +.NA +mh-profile \- user profile customization for MH message handler +.SY +\&\fI.mh\(ruprofile\fP +.DE +Each user of \fIMH\fR is expected to have a file named \fI\&.mh\(ruprofile\fR +in his or her home directory. This file contains a set of +user parameters used by some or all of the \fIMH\fR +family of programs. Each entry in the file is of the format + + \fIprofile\-component\fR: \fIvalue\fR + +If the text of an entry extends across several +real lines, the continuation lines are indicated by leading +spaces or tabs. +The possible profile components are exemplified below. +Only `Path:' is mandatory. +The others are optional; +some have default values if they are not present. +In the notation used below, +(profile, default) indicates whether the information is kept in the user's +\fIMH\fR profile or \fIMH\fR context, +and indicates what the default value is. + +.in +1i +.ti -1i +Path: Mail +.br +Locates \fIMH\fR transactions in directory \*(lqMail\*(rq. +(profile, no default) + +.ti -1i +context: context +.br +Declares the location of the \fIMH\fR context file, +see the \fBHISTORY\fR section below. +(profile, default: /context) + +.ti -1i +Current\-Folder:\ inbox +.br +Keeps track of the current open folder. +(context, default: folder specified by \*(lqInbox\*(rq) + +.ti -1i +Inbox: inbox +.br +Defines the name of your inbox. +(profile, default: inbox) + +.ti -1i +Previous\-Sequence:\ pseq +.br +Names the sequences which should be defined as the `msgs' or `msg' +argument given to the program. +If not present, or empty, no sequences are defined. +Otherwise, +for each name given, +the sequence is first zero'd and then each message is added to the sequence. +(profile, no default) + +.ti -1i +Sequence\-Negation:\ not +.br +Defines the string which, when prefixed to a sequence name, +negates that sequence. +Hence, +\*(lqnotseen\*(rq means all those messages that are not a member of +the sequence \*(lqseen\*(rq. +(profile, no default) + +.ti -1i +Unseen\-Sequence:\ unseen +.br +Names the sequences which should be defined as those messages recently +incorporated by \fIinc\fR. +\fIShow\fR knows to remove messages from this sequence once it thinks they +have been seen. +If not present, or empty, no sequences are defined. +Otherwise, +each message is added to each sequence name given. +(profile, no default) + +.ti -1i +mh\-sequences:\ \&.mh\(rusequences +.br +The name of the file in each folder which defines public sequences. +To disable the use of public sequences, +leave the value portion of this entry blank. +(profile, default: \&.mh\(rusequences) + +.ti -1i +atr\-\fIseq\fR\-\fIfolder\fR:\ 172\0178\-181\0212 +.br +Keeps track of the private sequence called \fIseq\fR in the specified folder. +(context, no default) + +.ti -1i +Editor:\ /usr/ucb/ex +.br +Defines editor to be used by +\fIcomp\fR\0(1), \fIdist\fR\0(1), \fIforw\fR\0(1), and \fIrepl\fR\0(1). +(profile, default: @(MHEDITOR)) + +.ti -1i +Msg\-Protect:\ 644 +.br +Defines octal protection bits for message files. +See \fIchmod\fR\0(1) for an explanation of the octal number. +(profile, default: 0644) + +.ti -1i +Folder\-Protect:\ 711 +.br +Defines protection bits for folder directories. +(profile, default: 0711) + +.ti -1i +\fIprogram\fR:\ default switches +.br +Sets default switches to be used whenever the mh program +\fIprogram\fR is invoked. +For example, one could override the \fIEditor\fR: +profile component when replying to messages by adding a +component such as: +.br + repl: \-editor /bin/ed +.br +(profile, no defaults) + +.ti -1i +\fIlasteditor\fR\-next:\ nexteditor +.br +Names \*(lqnexteditor\*(rq to be the default editor after using \*(lqlasteditor\*(rq. +This takes effect at \*(lqWhat now?\*(rq level in +\fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR. +After editing the draft with \*(lqlasteditor\*(rq, +the default editor is set to be \*(lqnexteditor\*(rq. +If the user types \*(lqedit\*(rq without any arguments to \*(lqWhat now?\*(rq, +then \*(lqnexteditor\*(rq is used. +(profile, no default) + +.ti -1i +bboards: system +.br +Tells \fIbbc\fR which BBoards you are interested in. +(profile, default: system) + +.ti -1i +Folder\-Stack: \fIfolders\fR +.br +The contents of the folder-stack for the \fIfolder\fR command. +(context, no default) + +.ti -1i +mhe: +.br +If present, tells \fIinc\fR to compose an \fIMHE\fR auditfile in addition to +its other tasks. +\fIMHE\fR is Brian Reid's \fIEmacs\fR front-end for \fIMH\fR. +An early version is supplied with the \fImh.6\fR distribution. +(profile, no default) + +.ti -1i +Alternate\-Mailboxes: mh@uci\-750a, bug-mh* +.br +Tells \fIrepl\fR and \fIscan\fR which addresses are really yours. +In this way, \fIrepl\fR knows which addresses should be included in the reply, +and \fIscan\fR knows if the message really originated from you. +Addresses must be separated by a comma, +and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the +mailboxes you indicate, +as local nicknames for hosts are not replaced with their official site names. +For each address, +if a host is not given, +then that address on any host is considered to be you. +In addition, +an asterisk (`*') may appear at either or both ends of the mailbox and host +to indicate wild-card matching. +(profile, default: your user-id) + +.ti -1i +Aliasfile: aliases other-alias +.br +Indicates aliases files for \fIali\fR, \fIwhom\fR, and \fIsend\fR. +This may be used instead of the `\-alias file' switch. +(profile, no default) + +.ti -1i +Draft\-Folder: drafts +.br +Indicates a default draft folder for \fIcomp\fR, \fIdist\fR, \fIforw\fR, +and \fIrepl\fR. +(profile, no default) + +.ti -1i +digest\-issue\-\fIlist\fR:\ 1 +.br +Tells \fIforw\fR the last issue of the last volume sent for the digest +\fIlist\fR. +(context, no default) + +.ti -1i +digest\-volume\-\fIlist\fR:\ 1 +.br +Tells \fIforw\fR the last volume sent for the digest \fIlist\fR. +(context, no default) + +.ti -1i +MailDrop: .mail +.br +Tells \fIinc\fR your maildrop, if different from the default. +This is superceded by the \fBMAILDROP\fR envariable. +(profile, default: @(MHDROPLOC)) + +.ti -1i +Signature: RAND MH System (agent: Marshall Rose) +.br +Tells \fIsend\fR your mail signature. +This is superceded by the \fBSIGNATURE\fR envariable. +If \fBSIGNATURE\fR is not set and this profile entry is not present, +the \*(lqgcos\*(rq field of the \fI/etc/passwd\fP file will be used; +otherwise, +on hosts where \fIMH\fR was configured with the UCI option, +the file $HOME/.signature is consulted. +Your signature will be added to the address \fIsend\fP +puts in the \*(lqFrom:\*(rq header; +do not include an address in the signature text. +(profile, no default) +.in -1i + +The following profile elements are used whenever an \fIMH\fR program +invokes some other program such as \fImore\fR\0(1). +The \fI\&.mh\(ruprofile\fR can be used to select alternate +programs if the user wishes. The default values are given in +the examples. + +.nf +.in +.5i +.ta \w'whatnowproc: 'u +^fileproc:~^@(MHBINPATH)/refile +^incproc:~^@(MHBINPATH)/inc +^installproc:~^@(MHETCPATH)/install\-mh +^lproc:~^/usr/ucb/more +^mailproc:~^@(MHBINPATH)/mhmail +^mhlproc:~^@(MHETCPATH)/mhl +^moreproc:~^/usr/ucb/more +^mshproc:~^@(MHBINPATH)/msh +^packproc:~^@(MHBINPATH)/packf +^postproc:~^@(MHETCPATH)/post +^rmmproc:~^none +^rmfproc:~^@(MHBINPATH)/rmf +^sendproc:~^@(MHBINPATH)/send +^showproc:~^/usr/ucb/more +^whatnowproc:~^@(MHBINPATH)/whatnow +^whomproc:~^@(MHBINPATH)/whom +.re +.in -.5i +.fi + +If you define the envariable \fBMH\fR, +you can specify a profile other than \fI\&.mh\(ruprofile\fR to be read +by the \fIMH\fR programs that you invoke. +If the value of \fBMH\fR is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. +This is one of the very few exceptions in \fIMH\fR where non-absolute +pathnames are not considered relative to the user's \fIMH\fR directory. + +Similarly, +if you define the envariable \fBMHCONTEXT\fR, +you can specify a context other than the normal context file +(as specified in the \fIMH\fR profile). +As always, +unless the value of \fBMHCONTEXT\fR is absolute, +it will be presumed to start from your \fIMH\fR directory. + +\fIMH\fR programs also support other envariables: + +.in +.5i +.ti -.5i +\fBMAILDROP\fR\0: tells \fIinc\fR the default maildrop +.br +This supercedes the \*(lqMailDrop:\*(rq profile entry. + +.ti -.5i +\fBSIGNATURE\fR\0: tells \fIsend\fR and \fIpost\fR your mail signature +.br +This supercedes the \*(lqSignature:\*(rq profile entry. + +.ti -.5i +\fBHOME\fR\0: tells all \fIMH\fR programs your home directory + +.ti -.5i +\fBSHELL\fR\0: tells \fIbbl\fR the default shell to run + +.ti -.5i +\fBTERM\fR\0: tells \fIMH\fR your terminal type +.br +The \fBTERMCAP\fR envariable is also consulted. +In particular, +these tell \fIscan\fR and \fImhl\fR how to clear your terminal, +and how many columns wide your terminal is. +They also tell \fImhl\fR how many lines long your terminal screen is. + +.ti -.5i +\fBeditalt\fR\0: the alternate message +.br +This is set by \fIdist\fR and \fIrepl\fR during edit sessions +so you can peruse the message being distributed or replied to. +The message is also available through a link called \*(lq@\*(rq +in the current directory if your current working directory and +the folder the message lives in are on the same UNIX filesystem. + +.ti -.5i +\fBmhdraft\fR\0: the path to the working draft +.br +This is set by \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR +to tell the \fIwhatnowproc\fR which file to ask \*(lqWhat now?\*(rq questions +about. +In addition, +\fIdist\fR, \fIforw\fR, and \fIrepl\fR set \fBmhfolder\fR if appropriate. +Further, +\fIdist\fR and \fIrepl\fR set \fBmhaltmsg\fR to tell the +\fIwhatnowproc\fR about an alternate message associated with the draft +(the message being distributed or replied to), +and +\fIdist\fR sets \fBmhdist\fR to tell the \fIwhatnowproc\fR that +message re-distribution is occurring. +Also, +\fBmheditor\fR is set to tell the \fIwhatnowproc\fR the user's choice of +editor (unless overridden by `\-noedit'). +Similarly, +\fBmhuse\fR may be set by \fIcomp\fR. +Finally, +\fBmhmessages\fR is set by \fIdist\fR, \fIforw\fR, and \fIrepl\fR +if annotations are to occur +(along with \fBmhannotate\fR, and \fBmhinplace\fR). +It's amazing all the information that has to get passed via envariables to +make the \*(lqWhat now?\*(rq interface look squeaky clean to the \fIMH\fR +user, isn't it? +The reason for all this +is that the \fIMH\fR user can select \fIany\fR program as the +\fIwhatnowproc\fR, including one of the standard shells. +As a result, it's not possible to pass information via an argument list. +.br +If the WHATNOW option was set during \fIMH\fR configuration +(type `\-help' to an \fIMH\fR command to find out), +and if this envariable is set, +if the commands \fIrefile\fR, \fIsend\fR, \fIshow\fR, or \fIwhom\fR +are not given any `msgs' arguments, +then they will default to using the file indicated by \fBmhdraft\fR. +This is useful for getting the default behavior supplied by the default +\fIwhatnowproc\fR. + +.ti -.5i +\fBmhfolder\fR\0: the folder containing the alternate message +.br +This is set by \fIdist\fR and \fIrepl\fR during edit sessions +so you can peruse other messages in the current folder +besides the one being distributed or replied to. +The \fBmhfolder\fR envariable is also +set by \fIshow\fR, \fIprev\fR, and \fInext\fR +for use by \fImhl\fR. + +.ti -.5i +\fBMHBBRC\fR\0: +.br +If you define the envariable \fBMHBBRC\fR, +you can specify a BBoards information file other than \fI\&.bbrc\fR to be +read by \fIbbc\fR. +If the value of \fBMHBBRC\fR is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. + +.ti -.5i +\fBMHFD\fR\0: +.br +If the OVERHEAD option was set during \fIMH\fR configuration +(type `\-help' to an \fIMH\fR command to find out), +then if this envariable is set, +\fIMH\fR considers it to be the number of a file descriptor which is opened, +read-only to the \fIMH\fR profile. +Similarly, +if the envariable \fBMHCONTEXTFD\fR is set, +this is the number of a file descriptor which is opened read-only +to the \fIMH\fR context. +This feature of \fIMH\fR is experimental, +and is used to examine possible speed improvements for \fIMH\fR startup. +Note that these envariables must be set and non-empty to enable this feature. +However, +if OVERHEAD is enabled during \fIMH\fR configuration, +then when \fIMH\fR programs call other \fIMH\fR programs, +this scheme is used. +These file descriptors are not closed throughout the execution of the +\fIMH\fR program, +so children may take advantage of this. +This approach is thought to be completely safe and does result in some +performance enhancements. +.in -.5i + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^or $MH~^Rather than the standard profile +^/context~^The user context +^or $CONTEXT~^Rather than the standard context +^/\&.mh\(rusequences~^Public sequences for +.Pr +All +.Sa +mh(1), environ(5), mh-sequence(5) +.De +None +.Co +All +.Hi +In previous versions of \fIMH\fR, +the current-message value of a writable folder was kept in a file +called \*(lqcur\*(rq in the folder itself. +In \fImh.3\fR, +the \fI\&.mh\(ruprofile\fR contained the current-message values for +all folders, regardless of their writability. + +In all versions of \fIMH\fR since \fImh.4\fR, +the \fI\&.mh\(ruprofile\fR contains only static information, +which \fIMH\fR programs will \fBNOT\fR update. +Changes in context are made to the \fIcontext\fR file kept in the users MH +\fIdirectory\fR. +This includes, but is not limited to: +the \*(lqCurrent\-Folder\*(rq entry and all private sequence information. +Public sequence information is kept in a file called \fI\&.mh\(rusequences\fR +in each folder. + +To convert from the format used in releases of \fIMH\fR prior +to the format used in the \fImh.4\fR release, +\fIinstall\-mh\fR should be invoked with the `\-compat' switch. +This generally happens automatically on \fIMH\fR systems generated with the +\*(lqCOMPAT\*(rq option during \fIMH\fR configuration. + +The \fI\&.mh\(ruprofile\fR may override the path of the \fIcontext\fR file, +by specifying a \*(lqcontext\*(rq entry (this must be in lower-case). +If the entry is not absolute (does not start with a \fB/\fR\0), +then it is interpreted relative to the user's \fIMH\fR directory. +As a result, +you can actually have more than one set of private sequences by using +different context files. +.Bu +The shell quoting conventions are not available in the \&.mh\(ruprofile. +Each token is separated by whitespace. + +There is some question as to what kind of arguments should be placed in +the profile as options. +In order to provide a clear answer, +recall command line semantics of all \fIMH\fR programs: +conflicting switches (e.g., `\-header and `\-noheader') +may occur more than one time on the command line, +with the last switch taking effect. +Other arguments, +such as message sequences, filenames and folders, +are always remembered on the invocation line and are not superseded by +following arguments of the same type. +Hence, it is safe to place only switches (and their arguments) +in the profile. + +If one finds that an \fIMH\fR +program is being invoked again and again with the same arguments, +and those arguments aren't switches, +then there are a few possible solutions to this problem. +The first is to create a (soft) link in your \fI$HOME/bin\fR directory +to the \fIMH\fR program of your choice. +By giving this link a different name, +you can create a new entry in your profile +and use an alternate set of defaults for the \fIMH\fR command. +Similarly, you could create a small shell script which called the +\fIMH\fR program of your choice with an alternate set of invocation +line switches (using links and an alternate profile entry is preferable +to this solution). + +Finally, the \fIcsh\fR user could create an alias for the command of the form: + +.ti +.5i +alias cmd 'cmd arg1 arg2 ...' + +In this way, the user can avoid lengthy type-in to the shell, +and still give \fIMH\fR commands safely. (Recall that some \fIMH\fR +commands invoke others, and that in all cases, the profile is read, +meaning that aliases are disregarded beyond an initial command invocation) +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-sequence.rf b/docs/historical/mh-6.8.5/conf/doc/mh-sequence.rf new file mode 100644 index 0000000..151c764 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-sequence.rf @@ -0,0 +1,229 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-sequence.rf,v 1.11 1992/05/12 22:23:34 jromine Exp $ +.SC MH-SEQUENCE 5 +.NA +mh-sequence \- sequence specification for MH message system +.SY +most \fIMH\fR commands +.DE +Most \fIMH\fP commands accept a `msg' or `msgs' specification, where +`msg' indicates one message and `msgs' indicates one or more +messages. +To designate a message, you may use either its number (e.g., 1, 10, 234) +or one of these \*(lqreserved\*(rq message names: +.in +.5i +.sp 1 +.nf +.ta +\w'\fIName\fP 'u +\fIName\fP \fIDescription\fR +first the first message in the folder +last the last message in the folder +cur the most recently accessed message +prev the message numerically preceding \*(lqcur\*(rq +next the message numerically following \*(lqcur\*(rq +.re +.fi +.in -.5i + +In commands that take a `msg' argument, the default is \*(lqcur\*(rq. +As a shorthand, \*(lq\&.\*(rq is equivalent to \*(lqcur\*(rq. + +For example: In a folder containing five messages numbered 5, 10, 94, +177 and 325, \*(lqfirst\*(rq is 5 and \*(lqlast\*(rq is 325. +If \*(lqcur\*(rq is 94, then \*(lqprev\*(rq is 10 and \*(lqnext\*(rq +is 177. + +The word `msgs' indicates that one or more messages may be specified. +Such a specification consists of one message designation or of several message +designations separated by spaces. +A message designation consists either +of a message name as defined above, or a message range. + +A message range is specified as \*(lqname1\-name2\*(rq +or \*(lqname:n\*(rq, +where `name', `name1' and `name2' are message names, and `n' is an integer. + +The specification \*(lqname1\-name2\*(rq +designates all currently-existing messages from `name1' to `name2' inclusive. +The message name \*(lqall\*(rq is a shorthand for the message +range \*(lqfirst\-last\*(rq. + +The specification \*(lqname:n\*(rq designates up to `n' messages. +These messages start with `name' if `name' is a message number +or one of the reserved names \*(lqfirst\*(rq \*(lqcur\*(rq, or \*(lqnext\*(rq, +The messages end with `name' if `name' is \*(lqprev\*(rq or \*(lqlast\*(rq. +The interpretation of `n' may be overridden by preceding `n' with +a plus or minus sign; `+n' always means up to `n' messages starting +with `name', and `\-n' always means up to `n' messages ending +with `name'. + +In commands which accept a `msgs' argument, the default is either +\*(lqcur\*(rq or \*(lqall\*(rq, depending on which makes more sense +for each command (see the individual man pages for details). +Repeated specifications of the same message have the same effect as +a single specification of the message. + +.Uh "User\-Defined Message Sequences" +In addition to the \*(lqreserved\*(rq (pre-defined) message names given above, +\fIMH\fP supports user-defined sequence names. +User-defined sequences allow the \fIMH\fR user a tremendous amount of power +in dealing with groups of messages in the same folder +by allowing the user to bind a group of messages to a meaningful symbolic +name. + +The name used to denote a message sequence must consist of +an alphabetic character followed by zero or more +alphanumeric characters, and can not be one of the \*(lqreserved\*(rq +message names above. +After defining a sequence, +it can be used wherever an \fIMH\fR command expects a `msg' or `msgs' +argument. + +Some forms of message ranges are allowed with user-defined +sequences. The +specification \*(lqname:n\*(rq may be used, and it +designates up to the first `n' messages (or last `n' messages for `\-n') +which are elements of the user-defined sequence `name'. + +The specifications \*(lqname:next\*(rq and \*(lqname:prev\*(rq +may also be used, and they designate the +next or previous message (relative to the current message) +which is an element of the user-defined sequence `name'. +The specificaitions +\*(lqname:first\*(rq and \*(lqname:last\*(rq are equivalent +to \*(lqname:1\*(rq and \*(lqname:\-1\*(rq, respectively. +The specification \*(lqname:cur\*(rq is not allowed +(use just \*(lqcur\*(rq instead). +The syntax of these message range +specifcations is subject to change +in the future. + +User-defined sequence names +are specific to each folder. +They are defined using the \fIpick\fP and \fImark\fP commands. + +.Uh "Public and Private User-Defined Sequences" +There are two varieties of sequences: \fIpublic\fR sequences +and \fIprivate\fR sequences. +\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user that +can read that folder and are kept in the \&.mh\(rusequences file in the folder. +\fIPrivate\fR sequences are accessible only to the \fIMH\fR user that defined +those sequences and are kept in the user's \fIMH\fR context file. +By default, +\fIpick\fR and \fImark\fR create \fIpublic\fR sequences +if the folder for which the sequences are being defined is writable by the +\fIMH\fR user. +Otherwise, \fIprivate\fR sequences are created. +This can be overridden with the `\-public' and `\-private' switches +to \fImark\fP. + +.Uh "Sequence Negation" +\fIMH\fP provides the ability to select all messages +not elements of a user-defined sequence. To do this, +the user should define the entry +\*(lqSequence\-Negation\*(rq in the \fIMH\fR profile file; +its value may be any string. +This string is then used to preface an existing user-defined +sequence name. This specification then refers to those messages +not elements of the specified sequence name. +For example, if the profile entry is: + +.ti +.5i +Sequence\-Negation:\^ not + +then anytime an \fIMH\fR command is given \*(lqnotfoo\*(rq as a `msg' or +`msgs' argument, +it would substitute all messages that are not elements of the sequence +\*(lqfoo\*(rq. + +Obviously, +the user should beware of defining sequences with names that +begin with the value of the +\*(lqSequence\-Negation\*(rq profile entry. + +.Uh "The Previous Sequence" +\fIMH\fR provides the ability +to remember the `msgs' or +`msg' argument last given to an \fIMH\fR command. +The entry \*(lqPrevious\-Sequence\*(rq should be defined in the +\fIMH\fR profile; its value should be a sequence name or multiple +sequence names separated by spaces. +If this entry is defined, when +when an \fIMH\fP command finishes, +it will define the sequence(s) named in the value of this entry to be +those messages that were specified to the command. +Hence, a profile entry of + +.ti +.5i +Previous\-Sequence:\^ pseq + +directs any \fIMH\fR command that accepts a `msg' or `msgs' argument to +define the sequence \*(lqpseq\*(rq as those messages when it finishes. + +\fBNote:\fP there can be a performance penalty in using the +\*(lqPrevious\-Sequence\*(rq facility. +If it is used, +\fBall\fP \fIMH\fR programs have to write the sequence information +to the \&.mh\(rusequences file for +the folder each time they run. +If the \*(lqPrevious\-Sequence\*(rq profile entry is not included, +only \fIpick\fR and \fImark\fR will write to the \&.mh\(rusequences file. + +.Uh "The Unseen Sequence" +Finally, some users like to indicate messages which have not been +previously seen by them. +Both \fIinc\fR and \fIshow\fR honor the profile entry +\*(lqUnseen\-Sequence\*(rq to support this activity. +This entry in the \&.mh\(ruprofile should be defined +as one or more sequence names separated by spaces. +If there is a value for \*(lqUnseen\-Sequence\*(rq in the profile, +then whenever \fIinc\fR places new messages in a folder, +the new messages will also be added to the sequence(s) named +in the value of this entry. +Hence, a profile entry of + +.ti +.5i +Unseen\-Sequence:\^ unseen + +directs \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq. +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile, +however, the sequence(s) will \fBnot\fR be zeroed by \fIinc\fP. + +Similarly, +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\^) displays a message, +that message will be removed +from any sequences named by the +\*(lqUnseen\-Sequence\*(rq entry in the profile. + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/context~^The user context +^/\&.mh\(rusequences~^Public sequences for +.Pr +^Sequence\-Negation:~^To designate messages not in a sequence +.Ps +^Previous\-Sequence:~^The last message specification given +.Ps +^Unseen\-Sequence:~^Those messages not yet seen by the user +.Sa +mh(1), mark(1), pick(1), mh-profile(5) +.De +None +.Co +All +.Bu +User-defined sequences are stored in the \&.mh\(rusequences file +as a series of message specifications separated by spaces. +If a user-defined sequence contains too many individual +message specifications, +that line in the file may become too long for \fIMH\fP to handle. +This will generate the error message \*(lq\&.mh\(rusequences is +poorly formatted\*(rq. You'll have to edit the file by hand to +remove the offending line. + +This can happen to users who define the \*(lqPrevious\-Sequence\*(rq entry in +the \fIMH\fP profile +and have a folder containing many messages with gaps in the numbering. +A workaround for large folders is to minimize numbering gaps by using +\*(lqfolder\ \-pack\*(rq often. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh-tailor.rf b/docs/historical/mh-6.8.5/conf/doc/mh-tailor.rf new file mode 100644 index 0000000..e168c24 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh-tailor.rf @@ -0,0 +1,413 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh-tailor.rf,v 2.21 1994/03/23 23:32:50 jromine Exp $ +.SC MH-TAILOR 5 +.NA +mh-tailor, mtstailor \- system customization for MH message handler + +.SY +\fI@(MHETCPATH)/mtstailor\fP +.DE +The file @(MHETCPATH)/mtstailor defines run-time options for those \fIMH\fR +programs which interact (in some form) with the message transport system. +At present, these (user) programs are: +\fIap\fR, \fIconflict\fR, \fIinc\fR, \fImsgchk\fR, +\fImsh\fR, \fIpost\fR, \fIrcvdist\fR, and \fIrcvpack\fR. + +Each option should be given on a single line. Blank lines +and lines which begin with `#' are ignored. +The options available along with default values and a description of their +meanings are listed below: + +.in +.5i +.ti -.5i +localname: +.br +The host name \fIMH\fR considers local. +If not set, depending on the version of UNIX you're running, +\fIMH\fR will query the system for this value +(e.g., , gethostname, etc.). +This has no equivalent in the \fIMH\fR configuration file. +POP client hosts should set this value to the name of the POP service host. + +.ti -.5i +localdomain: +.br +If this is set, a `.' followed by this string will be +appended to your host name. +This might be useful for sites +where the host name returned by the system +(e.g., , gethostname, etc.), +is not a \*(lqfully qualified domain name\*(rq +(i.e., does not contain a `.'). + +.ti -.5i +clientname: +.br +The host name \fIMH\fP will give in the +SMTP \fBHELO\fP (and \fBEHLO\fP) command, when posting mail. +If not set, the host name \fIMH\fR considers local is used +(see \*(lqlocalname\*(rq above). +If empty, no \fBHELO\fP command will be given. +Although the \fBHELO\fP command is required by RFC 821, +many SMTP servers do not require it. +.sp +Early versions of SendMail will fail if the host name +given in the \fBHELO\fP command is the local host; +later versions of SendMail will complain if you omit the +\fBHELO\fP command. If you run SendMail, find out what +your system expects and set this field if needed. + +.ti -.5i +systemname: +.br +The name of the local host in the \fIUUCP\fR \*(lqdomain\*(rq. +If not set, depending on the version of UNIX you're running, +\fIMH\fR will query the system for this value. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +mmdfldir: @(MHDROPATH) +.br +The directory where maildrops are kept. +If this is empty, the user's home directory is used. +This overrides the \*(lqmail\*(rq field in the \fIMH\fR configuration file. + +.ti -.5i +mmdflfil: @(MHDROPFIL) +.br +The name of the maildrop file in the directory where maildrops are kept. +If this is empty, the user's login name is used. +This overrides the \*(lqmail\*(rq field in the \fIMH\fR configuration file. + +.ti -.5i +mmdelim1: \\001\\001\\001\\001\\n +.br +The beginning-of-message delimiter for maildrops. + +.ti -.5i +mmdelim2: \\001\\001\\001\\001\\n +.br +The end-of-message delimiter for maildrops. + +.ti -.5i +mmailid: 0 +.br +If non-zero, then support for MMailids in \fB/etc/passwd\fR is enabled. +Basically, the pw_gecos field in the password file is of the form + +.ti +.5i +My Full Name + +The \fIMH\fR internal routines that deal with user and full names will return +\*(lqmailid\*(rq and \*(lqMy Full Name\*(rq respectively. + +.ti -.5i +lockstyle: 0 +.br +The locking discipline to perform. +A value of \*(lq0\*(rq means to use kernel-level locking +if available. +(See below for more details.) +On systems compiled without kernel-level locking, +standard \fIBellMail\fR locking is used. +A value of \*(lq1\*(rq means to use \fIBellMail\fR locking always +(the name of the lock is based on the file name). +A value of \*(lq2\*(rq means to use \fIMMDF\fR locking always +(the name of the lock is based on device/inode pairs). + +.ti -.5i +lockldir: +.br +The name of the directory for making locks. +If your system isn't configured to use kernel-level locking, +then this directory is used when creating locks. +If the value is empty, +then the directory of the file to be locked is used. + +.ti -.5i +maildelivery: @(MHETCPATH)/maildelivery +.br +The name of the system-wide default \fI\&.maildelivery\fR file. +See \fImhook\fR\0(1) for the details. + +.ti -.5i +everyone: 200 +.br +The highest user-id which should NOT receive mail addressed to +\*(lqeveryone\*(rq. + +.ti -.5i +noshell: +.br +If set, then each user-id greater than \*(lqeveryone\*(rq +that has a login shell equivalent to the given value (e.g., +\*(lq/bin/csh\*(rq) +indicates that mail for \*(lqeveryone\*(rq should not be sent to them. +This is useful for handling admin, dummy, and guest logins. +.\" @BEGIN: MF +.in -.5i +.Uh "Mail Filtering" +These options are only available if you compiled \fIMH\fP with +\*(lqoptions\ MF\*(rq. + +.in +.5i +.ti -.5i +uucpchan: name of \fIUUCP\fR channel +.br +Usually \*(lqUUCP\*(rq. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +uucpldir: /usr/spool/mail +.br +The name of the directory where \fIUUCP\fR maildrops are kept. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +uucplfil: +.br +The name of the maildrop file in the directory where \fIUUCP\fR maildrops are +kept. +If this is empty, the user's login name is used. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +umincproc: @(MHETCPATH)/uminc +.br +The path to the program that filters \fIUUCP\fR\^-style maildrops to +\fIMMDF\fR\^-style maildrops. +.\" @END: MF +.\" @BEGIN: MHMTS +.in -.5i +.Uh "Stand-Alone Delivery" +These options are only available if you compiled \fIMH\fP +to use stand-alone delivery (i.e., \*(lqmts:\ mh\*(rq). + +.in +.5i +.ti -.5i +mailqdir: /usr/spool/netmail +.br +The directory where network mail is queued. + +.ti -.5i +tmailqdir: /usr/tmp +.br +The directory where network mail queue files are built. + +.ti -.5i +syscpy: 1 +.br +If ON, unauthorized mail is copied to the overseer. + +.ti -.5i +overseer: root +.br +The user that receives reports of unauthorized mail. + +.ti -.5i +mailer: root +.br +The user acting for the mail system. + +.ti -.5i +fromtmp: /tmp/rml.f.XXXXXX +.br +The \fImktemp\fR template for storing from lines. + +.ti -.5i +msgtmp: /tmp/rml.m.XXXXXX +.br +The \fImktemp\fR template for storing the rest of the message. + +.ti -.5i +errtmp: /tmp/rml.e.XXXXXX +.br +The \fImktemp\fR template for storing error messages from other mailers. + +.ti -.5i +tmpmode: 0600 +.br +The octal mode which temporary files are set to. + +.ti -.5i +okhosts: @(MHETCPATH)/Rmail.OKHosts +.br +A file containing a list of hosts that can send ARPAnet mail. + +.ti -.5i +okdests: @(MHETCPATH)/RMail.OKDests +.br +A file containing a list of hosts that can always receive mail. +.\" @END: MHMTS +.\" @BEGIN: SMTP +.in -.5i +.Uh "The `/smtp' MTS Suffix" +These options are only available if you compiled \fIMH\fP with +the \*(lq/smtp\*(rq suffix to your \*(lqmts:\*(rq configuration. + +.in +.5i +.ti -.5i +hostable: @(MHETCPATH)/hosts +.br +The exceptions file for /etc/hosts used by \fIpost\fR to try to find official +names. +The format of this file is quite simple: + +.in +.5i +1. Comments are surrounded by sharp (`#') and newline. +.br +2. Words are surrounded by white space. +.br +3. The first word on the line is the official name of a host. +.br +4. All words following the official names are aliases for that host. +.in -.5i + +.ti -.5i +servers: localhost \\01localnet +.br +A lists of hosts and networks which to look for SMTP servers +when posting local mail. +It turns out this is a major win for hosts which don't run an message +transport system. +The value of \*(lqservers\*(rq should be one or more items. +Each item is the name of either a host or a net +(in the latter case, precede the name of the net by a \\01). +This list is searched when looking for a smtp server to post mail. +If a host is present, the SMTP port on that host is tried. +If a net is present, +the SMTP port on each host in that net is tried. +Note that if you are running with the BIND code, +then any networks specified are ignored +(sorry, the interface went away under BIND). +.\" @END: SMTP +.\" @BEGIN: SENDMTS +.in -.5i +.Uh "SendMail" +This option is only available if you compiled \fIMH\fP to +use \fISendMail\fP as your delivery agent (i.e., \*(lqmts:\ sendmail\*(rq). + +.in +.5i +.ti -.5i +sendmail: /usr/lib/sendmail +.br +The pathname to the \fIsendmail\fR program. +.\" @END: SENDMTS +.\" @BEGIN: POP +.in -.5i +.Uh "Post Office Protocol" +This option is only available if you compiled \fIMH\fP with POP +support enabled (i.e., \*(lqpop:\ on\*(rq). + +.in +.5i +.ti -.5i +pophost: +.br +The name of the default POP service host. +If this is not set, +then \fIMH\fR looks in the standard maildrop areas for waiting mail, +otherwise the named POP service host is consulted. +.\" @END: POP +.\" @BEGIN: BBSERVER +.in -.5i +.Uh "BBoards Delivery" +This option is only available if you compiled \fIMH\fP with +\*(lqbbdelivery:\ on\*(rq. + +.in +.5i +.ti -.5i +bbdomain: +.br +The local BBoards domain (a UCI hack). +.\" @END: BBSERVER +.\" @BEGIN: BPOP +.in -.5i +.Uh "BBoards & The POP" +These options are only available if you compiled \fIMH\fP with +\*(lqbboards:\ pop\*(rq and \*(lqpop:\ on\*(rq. + +.in +.5i +.ti -.5i +popbbhost: +.br +The POP service host which also acts as a BBoard server. +This variable should be set on the POP BBoards client host. + +.ti -.5i +popbbuser: +.br +The guest account on the POP/BB service host. +This should be a different login ID than either the POP user or the BBoards +user. +(The user-id \*(lqftp\*(rq is highly recommended.) +This variable should be set on both the POP BBoards client and service hosts. + +.ti -.5i +popbblist: @(MHETCPATH)/hosts.popbb +.br +A file containing of lists of hosts that are allowed to use the POP facility +to access BBoards using the guest account. +If this file is not present, +then no check is made. +This variable should be set on the POP BBoards service host. +.\" @END: BPOP +.\" @BEGIN: NNTP +.in -.5i +.if n .ne 8 +.Uh "BBoards & The NNTP" +This option is only available if you compiled \fIMH\fP with +\*(lqbboards:\ nntp\*(rq and \*(lqpop:\ on\*(rq. + +.in +.5i +.ti -.5i +nntphost: +.br +The host which provides the NNTP service. +This variable should be set on the NNTP BBoards client host. +.\" @END: NNTP +.in -.5i +.Uh "File Locking" +A few words on locking: +\fIMH\fR has a flexible locking system for making locks on files. +There are two \fBmtstailor\fR variables you should be aware of +\*(lqlockstyle\*(rq and \*(lqlockldir\*(rq. +The first controls the method of locking, +the second says where lock files should be created. + +The \*(lqlockstyle\*(rq variable can take on three values: 0, 1, 2. +A value of 0 is useful on systems with kernel-level locking. +If you are on a \fBBSD42\fP system, \fIMH\fP assumes +you have the \fIflock\fR system call. +On other systems: +define \fBFLOCK\fP if you want to use the \fIflock\fP system call; +define \fBLOCKF\fP if you want to use the \fIlockf\fP system call; +or define \fBFCNTL\fP if you want to use the \fIfcntl\fP system call +for kernel-level locking. +If you haven't configured \fIMH\fP to use kernel-level locking, +a locking style of 0 is considered the same as locking style 1. + +A value of 1 or 2 specifies that a file should be created whose existence +means \*(lqlocked\*(rq and whose non-existence means \*(lqunlocked\*(rq. +A value of 1 says to construct the lockname by appending \*(lq.lock\*(rq to +the name of the file being locked. +A value of 2 says to construct the lockname by looking at the device and +inode numbers of the file being locked. +If the \*(lqlockldir\*(rq variable is not specified, +lock files will be created in the directory where the file being locked +resides. +Otherwise, lock files will be created in the directory specified by +\*(lqlockldir\*(rq. +Prior to installing \fIMH\fR, +you should see how locking is done at your site, +and set the appropriate values. +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +.Pr +None +.Sa +mh\-gen(8), mh\-mts(8) +.De +As listed above +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mh.rf b/docs/historical/mh-6.8.5/conf/doc/mh.rf new file mode 100644 index 0000000..0324fe0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mh.rf @@ -0,0 +1,285 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mh.rf,v 1.12 1992/10/28 17:00:27 jromine Exp $ +.if '\*(ZZ'-man' \{\ +.SC MH 1 +.NA +mh \- Message Handler +.SY +any \fIMH\fR command +.DE +\fIMH\fR is the name of a powerful message handling system. +Rather then being a single comprehensive program, +\fIMH\fR consists of a collection of fairly simple +single-purpose programs to send, receive, save, +and retrieve messages. The user should refer +to the \fIMH User's Manual\fR +and the pages for the \fIMH\fR +programs in the Unix Programmers Manual. + +Unlike \fImail\fR, the standard UNIX mail user interface program, +\fIMH\fR is not a closed system which must be explicitly run, +then exited when you wish to return to the shell. +You may freely intersperse \fIMH\fR commands with other shell commands, +allowing you to read and answer your mail while you have (for example) +a compilation running, +or search for a file or run programs as needed to find the answer to +someone's question before answering their mail. + +The rest of this manual entry is a quick tutorial which will teach you the +basics of \fIMH\fR. +You should read the manual entries for the individual programs for complete +documentation. + +To get started using \fIMH\fR, put the directory +\fB@(MHBINPATH)\fR on your \fB$PATH\fR. +This is best done in one of the files: +\fB\&.profile\fR, \fB\&.login\fR, or \fB\&.cshrc\fR +in your home directory. +(Check the manual entry for the shell you use, +in case you don't know how to do this.) +Run the \fIinc\fR command. +If you've never used \fIMH\fR before, +it will create the necessary default files and directories after +asking you if you wish it to do so. + +\fIinc\fR moves mail from your system maildrop +into your \fIMH\fR `+inbox' folder, +breaking it up into separate files +and converting it to \fIMH\fR format as it goes. +It prints one line for each message it processes, +containing the from field, the subject field +and as much of the first line of the message as will fit. +It leaves the first message it processes as your current message. +You'll need to run \fIinc\fR each time you wish to incorporate new mail +into your \fIMH\fR file. + +\fIscan\fR prints a list of the messages in your current folder. + +The commands: +\fIshow\fR, \fInext\fR, and \fIprev\fR +are used to read specific messages from the current folder. +\fIshow\fR displays the current message, +or a specific message, which may be specified by its number, +which you pass as an argument to \fIshow\fR. +\fInext\fR and \fIprev\fR display, respectively, +the message numerically after or before the current message. +In all cases, the message displayed becomes the current message. +If there is no current message, +\fIshow\fR may be called with an argument, +or \fInext\fR may be used to advance to the first message. + +\fIrmm\fR (remove message) deletes the current message. +It may be called with message numbers passed as arguments, +to delete specific messages. + +\fIrepl\fR is used to respond to the current message (by default). +It places you in the editor with a prototype response form. +While you're in the editor, +you may peruse the item you're responding to by reading the file \fB@\fR. +After completing your response, +type \fBl\fR to review it, +or \fBs\fR to send it. + +\fIcomp\fR allows you to compose a message by putting you in the editor on +a prototype message form, +and then lets you send it. + +All the \fIMH\fR commands may be run with the single argument: `\-help', +which causes them to print a list of the arguments they may be invoked with. + +Commands which take a message number as an argument +(\fIscan\fR, \fIshow\fR, \fIrepl\fR, ...) +also take one of the words: +\fIfirst\fR, \fIprev\fR, \fIcur\fR, \fInext\fR, or \fIlast\fR +to indicate (respectively) the first, previous, current, next, or last +message in the current folder (assuming they are defined). + +Commands which take a range of message numbers +(\fIrmm\fR, \fIscan\fR, \fIshow\fR, ...) +also take any of the abbreviations: +.sp +.in +5 +.ti -3 +.I - +- Indicates all messages in the range to , inclusive. The range +.B must +be nonempty. +.sp +.ti -3 +.I :+N +.ti -3 +.I :-N +- Up to +.I N +messages beginning with (or ending with) message +.I num. +.I Num +may be any of the pre-defined symbols: +.I first, prev, cur, next +or +.I last. +.sp +.ti -3 +.I first:N +.ti -3 +.I prev:N +.ti -3 +.I next:N +.ti -3 +.I last:N +- The first, previous, next or last +.I N +messages, if they exist. +.in -5 + +There are many other possibilities such as creating multiple folders for +different topics, and automatically refiling messages according to subject, +source, destination, or content. +These are beyond the scope of this manual entry. + +Following is a list of all the \fIMH\fR commands: +.\} + +.nf +.in .5i +.ta 1.5i +^ali (1)~^\- list mail aliases +^anno (1)~^\- annotate messages +@BEGIN: BBOARDS +^bbc (1)~^\- check on BBoards +@BEGIN: BBSERVER +^bbl (1)~^\- manage a BBoard +^bbleader (1)~^\- responsiblities of a BBoard\-leader +@END: BBSERVER +^bboards (1)~^\- the UCI BBoards facility +@END: BBOARDS +^burst (1)~^\- explode digests into messages +@BEGIN: TMA +^cipher (1)~^\- en/de\-cipher txt +@END: TMA +^comp (1)~^\- compose a message +@BEGIN: TMA +^decipher (1)~^\- decipher messages +@END: TMA +^dist (1)~^\- redistribute a message to additional addresses +^folder (1)~^\- set/list current folder/message +^folders (1)~^\- list all folders +^forw (1)~^\- forward messages +^inc (1)~^\- incorporate new mail +^mark (1)~^\- mark messages +^mhl (1)~^\- produce formatted listings of MH messages +^mhmail (1)~^\- send or read mail +^mhook (1)~^\- MH receive\-mail hooks +^mhparam (1)~^\- print MH profile components +^mhpath (1)~^\- print full pathnames of MH messages and folders +^msgchk (1)~^\- check for messages +^msh (1)~^\- MH shell (and BBoard reader) +^next (1)~^\- show the next message +^packf (1)~^\- compress a folder into a single file +^pick (1)~^\- select messages by content +^prev (1)~^\- show the previous message +^prompter (1)~^\- prompting editor front end +^rcvstore (1)~^\- incorporate new mail asynchronously +^refile (1)~^\- file messages in other folders +^repl (1)~^\- reply to a message +^rmf (1)~^\- remove folder +^rmm (1)~^\- remove messages +^scan (1)~^\- produce a one line per message scan listing +^send (1)~^\- send a message +^show (1)~^\- show (list) messages +^slocal (1)~^\- special local mail delivery +^sortm (1)~^\- sort messages +@BEGIN: TMA +^tma (1)~^\- manipulate the TTI Trusted Mail Agent (TMA) +@END: TMA +^vmh (1)~^\- visual front\-end to MH +^whatnow (1)~^\- prompting front\-end for send +^whom (1)~^\- report to whom a message would go +.if '\*(ZZ'-man' \{\ +.sp 1 +^mh\-alias (5)~^\- alias file for MH message system +^mh\-format (5)~^\- format file for MH message system +^mh\-mail (5)~^\- message format for MH message system +^mh\-profile (5)~^\- user customization for MH message system +^mh\-sequence (5)~^\- sequence specification for MH message system +.sp 1 +^ap (8)~^\- parse addresses 822\-style +^conflict (8)~^\- search for alias/password conflicts +^dp (8)~^\- parse dates 822\-style +^fmtdump (8)~^\- decode \fIMH\fP format files +^install\-mh (8)~^\- initialize the MH environment +^post (8)~^\- deliver a message +.\} +.fi +.re + +.if '\*(ZZ'-man' \{\ +.Fi +^@(MHBINPATH)~^directory containing \fIMH\fR commands +^@(MHETCPATH)~^\fIMH\fR library +.Sa +\fIThe RAND \fIMH\fR Message Handling System: User's Manual\fR, +.br +\fIThe RAND \fIMH\fR Message Handling System: Tutorial\fR, +.br +\fIThe RAND \fIMH\fR Message Handling System: The UCI BBoards Facility\fR, +.br +\fIMH.5: How to process 200 messages a day and still get some real work +done\fR +.br +.Bu +If problems are encountered with an \fIMH\fR program, +the problems should be reported to the local maintainers of \fIMH\fR. +When doing this, +the name of the program should be reported, +along with the version information for the program. +.br +To find out what version of an \fIMH\fR program is being run, +invoke the program with the `\-help' switch. +In addition to listing the syntax of the command, +the program will list information pertaining to its version. +This information includes the version of \fIMH\fR, +the host it was generated on, +and the date the program was loaded. +A second line of information, +found on versions of \fIMH\fR after #5.380 include \fIMH\fR configuration +options. +For example, + +.nf +.in +.5i +version: MH 6.1 #1[UCI] (glacier) of Wed Nov 6 01:13:53 PST 1985 +options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP] +.in -.5i +.fi + +The `6.1 #1[UCI]' indicates that the program is from the UCI \fIMH.6.1\fR +version of \fIMH\fR. +The program was generated on the host `glacier' on +`Wed Nov 6 01:13:53 PST 1985'. +It's usually a good idea to send the output of the `\-help' switch along +with your report. + +If there is no local \fIMH\fR maintainer, +try the address \fBBug-MH\fR. +If that fails, use the Internet mailbox \fBBug-MH@ICS.UCI.EDU\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.\" .Ps +.\" for each additional profile entry +.\" .Sa +.\" the see\-also's go here +.\" .De +.\" the first default goes here +.\" .Ds +.\" for each additional default +.\" .Co +.\" context changes go here +.\" You can also have +.\" .Hh \- the helpful hints section +.\" .Hi \- the history section +.\" .Bu \- the bugs section +.En +.\} diff --git a/docs/historical/mh-6.8.5/conf/doc/mhl.rf b/docs/historical/mh-6.8.5/conf/doc/mhl.rf new file mode 100644 index 0000000..b988216 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mhl.rf @@ -0,0 +1,256 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mhl.rf,v 1.11 1992/12/04 18:59:22 jromine Exp $ +.SC MHL 1 +.NA +mhl \- produce formatted listings of MH messages +.SY +@(MHETCPATH)/mhl +\%[\-bell] \%[\-nobell] +\%[\-clear] \%[\-noclear] +\%[\-folder\ +folder] +\%[\-form\ formfile] +\%[\-length\ lines] \%[\-width\ columns] +\%[\-moreproc\ program] \%[\-nomoreproc] +\%[files\ ...] +\%[\-help] +.DE +\fIMhl\fR is a formatted message listing program. +It can be used as a replacement for \fImore\fR\0(1) +(the default \fIshowproc\fR\0). +As with \fImore\fR, +each of the messages specified as arguments (or the standard input) will be +output. +If more than one message file is specified, +the user will be prompted prior to each one, +and a or will begin the output, +with clearing the screen (if appropriate), +and (usually CTRL\-D) suppressing the screen clear. +An (usually CTRL\-C) will abort the current message output, +prompting for the next message (if there is one), +and a (usually CTRL-\\) will terminate the program (without core dump). + +The `\-bell' option tells \fImhl\fR to ring the terminal's bell at the end of each page, +while the `\-clear' option tells \fImhl\fR to clear the scree at the end of +each page (or output a formfeed after each message). +Both of these switches (and their inverse counterparts) +take effect only if the profile entry \fImoreproc\fR is defined but empty, +and \fImhl\fR is outputting to a terminal. +If the \fImoreproc\fR entry is defined and non-empty, +and \fImhl\fR is outputting to a terminal, +then \fImhl\fR will cause the \fImoreproc\fR to be placed between the +terminal and \fImhl\fR and the switches are ignored. +Furthermore, +if the `\-clear' switch is used and \fImhl's\fR output is directed to a +terminal, +then \fImhl\fR will consult the \fB$TERM\fR and \fB$TERMCAP\fR +envariables to determine the user's +terminal type in order to find out how to clear the screen. +If the `\-clear' switch is used and \fImhl's\fR output is not directed to +a terminal (e.g., a pipe or a file), +then \fImhl\fR will send a formfeed after each message. + +To override the default \fImoreproc\fR and the profile entry, +use the `\-moreproc\ program' switch. +Note that \fImhl\fR will never start a \fImoreproc\fR if invoked on a +hardcopy terminal. + +The `\-length\ length' and `\-width\ width' switches set the screen length and +width, respectively. +These default to the values indicated by \fB$TERMCAP\fR, +if appropriate, +otherwise they default to 40 and 80, respectively. + +The default format file used by \fImhl\fR is called \fImhl.format\fR +(which is first searched for in the user's \fIMH\fR directory, +and then sought in the \fI@(MHETCPATH)\fR directory), +this can be changed by using the `\-form\ formatfile' switch. + +Finally, +the `\-folder\ +folder' switch sets the \fIMH\fR folder name, +which is used for the \*(lqmessagename:\*(rq field described below. +The envariable \fB$mhfolder\fR is consulted for the default value, +which \fIshow\fR, \fInext\fR, and \fIprev\fR initialize appropriately. + +\fIMhl\fR operates in two phases: +1) read and parse the format file, +and 2) process each message (file). +During phase 1, +an internal description of the format is produced as a structured list. +In phase 2, +this list is walked for each message, +outputting message information under the format constraints from the format +file. + +The \*(lqmhl.format\*(rq form file contains information controlling +screen clearing, screen size, wrap\-around control, transparent text, +component ordering, and component formatting. +Also, a list of components to ignore may be specified, +and a couple of \*(lqspecial\*(rq components are defined to provide added +functionality. +Message output will be in the order specified by the order in the format file. + +Each line of mhl.format has one of the formats: + + ;comment + :cleartext + variable[,variable...] + component:[variable,...] + +A line beginning with a `;' is a comment, and is ignored. +A line beginning with a `:' is clear text, +and is output exactly as is. +A line containing only a `:' produces a blank line in the output. +A line beginning with \*(lqcomponent:\*(rq defines the format for the specified +component, +and finally, remaining lines define the global environment. + +For example, the line: + +.ti +.5i +width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5 + +defines the screen size to be 80 columns by 40 rows, +specifies that the screen should be cleared prior to each page, +that the overflow indentation is 5, +and that overflow text should be flagged with \*(lq***\*(rq. + +Following are all of the current variables and their arguments. +If they follow a component, +they apply only to that component, +otherwise, their affect is global. +Since the whole format is parsed before any output processing, +the last global switch setting for a variable applies to the whole message +if that variable is used in a global context +(i.e., bell, clearscreen, width, length). + +.nf +.in +.5i +.ta \w'noclearscreen 'u +\w'integer/G 'u +\fIvariable\fR \fItype\fR \fIsemantics\fR +width integer screen width or component width +length integer screen length or component length +offset integer positions to indent \*(lqcomponent: \*(rq +overflowtext string text to use at the beginning of an + overflow line +overflowoffset integer positions to indent overflow lines +compwidth integer positions to indent component text + after the first line is output +uppercase flag output text of this component in all + upper case +nouppercase flag don't uppercase +clearscreen flag/G clear the screen prior to each page +noclearscreen flag/G don't clearscreen +bell flag/G ring the bell at the end of each page +nobell flag/G don't bell +component string/L name to use instead of \*(lqcomponent\*(rq for + this component +nocomponent flag don't output \*(lqcomponent: \*(rq for this + component +center flag center component on line (works for + one\-line components only) +nocenter flag don't center +leftadjust flag strip off leading whitespace on each + line of text +noleftadjust flag don't leftadjust +compress flag change newlines in text to spaces +nocompress flag don't compress +split flag don't combine multiple fields into a single field +nosplit flag combine multiple fields into a single field +newline flag print newline at end of components (default) +nonewline flag don't print newline at end of components +formatfield string format string for this component (see below) +addrfield flag field contains addresses +datefield flag field contains dates +.re +.in -.5i +.fi + +To specify the value of integer\-valued and string\-valued variables, +follow their name with an equals\-sign and the value. +Integer\-valued variables are given decimal values, +while string\-valued variables are given arbitrary text bracketed by +double\-quotes. +If a value is suffixed by \*(lq/G\*(rq or \*(lq/L\*(rq, +then its value is useful in a global\-only or local\-only context +(respectively). + +A line of the form: + + ignores=component,... + +specifies a list of components which are never output. + +The component \*(lqMessageName\*(rq (case\-insensitive) +will output the actual message name (file name) preceded by +the folder name if one is specified or found in the environment. +The format is identical to that produced by the `\-header' option to +\fIshow\fR. + +The component \*(lqExtras\*(rq will output all of the components of the message +which were not matched by explicit components, +or included in the ignore list. +If this component is not specified, +an ignore list is not needed since all non\-specified components will be +ignored. + +If \*(lqnocomponent\*(rq is NOT specified, then the component name will be +output as it appears in the format file. + +The default format is: + +.nf +.in +.5i +.ne 15 +.eo +.so @(MHETCPATH)/mhl.format +.ec +.in -.5i +.fi + +The variable \*(lqformatfield\*(rq specifies a format string +(see \fImh\-format\fR\0(5)). +The flag variables \*(lqaddrfield\*(rq and \*(lqdatefield\*(rq +(which are mutually exclusive), +tell \fImhl\fR to interpret the escapes in the format string +as either addresses or dates, respectively. + +By default, +\fImhl\fR does not apply any formatting string to fields containing address or +dates (see \fImh\-mail\fR\0(5) for a list of these fields). +Note that this results in faster operation +since \fImhl\fR must parse both addresses and dates in order to apply a +format string to them. +If desired, +\fImhl\fR can be given a default format string for either address or date +fields (but not both). +To do this, +on a global line specify: either the flag addrfield or datefield, +along with the apropriate formatfield variable string. +.Fi +^@(MHETCPATH)/mhl.format~^The message template +^or /mhl.format~^Rather than the standard template +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^moreproc:~^Program to use as interactive front\-end +.Sa +show(1), ap(8), dp(8) +.De +`\-bell' +.Ds +`\-noclear' +.Ds +`\-length 40' +.Ds +`\-width 80' +.Co +None +.Bu +There should be some way to pass `bell' and `clear' information to the +front\-end. + +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. + +The \*(lqnonewline\*(rq option interacts badly +with \*(lqcompress\*(rq and \*(lqsplit\*(rq. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mhmail.rf b/docs/historical/mh-6.8.5/conf/doc/mhmail.rf new file mode 100644 index 0000000..751f297 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mhmail.rf @@ -0,0 +1,57 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mhmail.rf,v 1.5 90/04/05 15:13:18 sources Exp $ +.SC MHMAIL 1 +.NA +mhmail \- send or read mail +.SY +mhmail +\%[ +addrs\ ... +\%[\-body\ text] +\%[\-cc\ addrs\ ...] +\%[\-from\ addr] +\%[\-subject subject]] +\%[\-help] +.DE +\fIMHmail\fR +is intended as a replacement for the standard Bell mail program +(\fIbellmail\fR\0(1)), compatible with \fIMH\fR. +When invoked without arguments, it simply +invokes \fIinc\fR\0(1) +to incorporate new messages from the user's maildrop. +When one or more users is specified, a message is read from +the standard input and spooled to a temporary file. +\fIMHmail\fR then invokes \fIpost\fR\0(8) +with the name of the temporary file as +its argument to deliver the message to the specified user. + +The `\-subject\ subject' switch can be used to specify the \*(lqSubject:\*(rq field +of the message. The `\-body\ text' switch can be used to specify the text of +the message; if it is specified, then the standard input is not read. +Normally, addresses appearing as arguments are put in the \*(lqTo:\*(rq field. +If the `\-cc' switch is used, all addresses following it are placed in the +\*(lqcc:\*(rq field. + +By using `\-from\ addr', +you can specify the \*(lqFrom:\*(rq header of the draft. +Naturally, +\fIpost\fR will fill\-in the \*(lqSender:\*(rq header correctly. + +This program is intended for the use of programs +such as \fIat\fR\0(1), which expect +to send mail automatically to various users. +Normally, real people (as opposed to the \*(lqunreal\*(rq ones) +will prefer to use \fIcomp\fR\0(1) and \fIsend\fR\0(1) to send messages. +.Fi +^@(MHBINPATH)/inc~^Program to incorporate a maildrop into a folder +^@(MHETCPATH)/post~^Program to deliver a message +^/tmp/mhmail*~^Temporary copy of message +.Pr +None +.Sa +inc(1), post(8) +.De +None +.Co +If \fIinc\fR is invoked, then \fIinc\fR's context changes occur. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mhn.rf b/docs/historical/mh-6.8.5/conf/doc/mhn.rf new file mode 100644 index 0000000..877ad86 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mhn.rf @@ -0,0 +1,1174 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mhn.rf,v 1.14 1993/10/26 20:12:56 jromine Exp $ +.SC MHN 1 +.NA +mhn \- multi-media MH +.SY +mhn +\%[\%[+folder] \%[msgs] | \%[\-file\0file]] +.br +\%[\-part\0number]... \%[\-type\0content]... +.br +\%[\-list\0\%[\-headers]\0\%[\-noheaders] +.br + \%[\-realsize]\0\%[\-norealsize]] \%[-nolist] +.br +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly] +.br + \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow] +.br +\%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore] +.br +\%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy] +.br +\%[\-check]\0\%[\-nocheck] +.br +\%[\-ebcdicsafe]\0\%[\-noebcdicsafe] +.br +\%[\-rfc934mode]\0\%[\-norfc934mode] +.br +\%[\-verbose]\0\%[\-noverbose] +.br +\%[\-help] +.DE +The \fImhn\fR command manipulates multi-media messages as specified in +RFC 1521. + +Four action switches direct the operation of \fImhn\fR, +namely `\-list', `\-show', `\-store', and `-cache'. +Any of these switches may be used concurrently. +Normally these action switches will operate on the content of each of the +named messages. +However, +by using the `\-part' and `\-type' switches, +the scope of the operation can be focused on particular +subparts (of a multipart content) and/or particular content types. + +A part specification consists of a series of numbers separated by dots. +For example, +in a multipart content containing three parts, +these would be named as 1, 2, and 3, respectively. +If part 2 was also a multipart content containing two parts, +these would be named as 2.1 and 2.2, respectively. +Note that the `\-part' switch is effective for only messages +containing a multipart content. +If a message has some other kind of content, +or if the part is itself another multipart content, +the `\-part' switch will not prevent the content from being acted upon. + +A content specification consists of a content type and a subtype. +The initial list of \*(lqstandard\*(rq content types and subtypes can be found +in RFC 1521. +.ne 18 +A list of commonly used contents is briefly reproduced here: +.sp +.nf +.in +.5i +.ta \w'application 'u +Type Subtypes +---- -------- +text plain +multipart mixed, alternative, digest, parallel +message rfc822, partial, external-body +application octet-stream, postscript +image jpeg, gif, x-pbm, x-pgm, x-ppm, x-xwd +audio basic +video mpeg +.re +.in -.5i +.fi +.sp +Subtypes are mandatory. +.PP +To specify a content, +regardless of its subtype, +just use the name of the content, +e.g., +\*(lqaudio\*(rq. +To specify a specific subtype, +separate the two with a slash, +e.g., +\*(lqaudio/basic\*(rq. +Note that regardless of the values given to the `\-type' switch, +a multipart content (of any subtype listed above) is always acted upon. +Further note that if the `\-type' switch is used, +and it is desirable to act on a message/external-body content, +then the `\-type' switch must be used twice: +once for message/external-body and once for the content externally referenced. + +Each content may optionally have an integrity check associated with it. +If present and the `-check' switch is given, +then \fImhn\fR will attempt to verify the integrity of the content. + +The option `\-file\ file' directs \fImhn\fR to use the specified +file as the source message, rather than a message from +a folder. +Note that the file should be a validly formatted message, +just like any other \fIMH\fR message. +It should \fBNOT\fR be in mail drop format +(to convert a file in mail drop format to a folder of \fIMH\fR messages, +see \fIinc\fR\0(1)). + +.Uh "Listing the Contents" +The `\-list' switch tells \fImhn\fR to list the table of contents +associated with the named messages. +The `\-headers' switch indicates that a one-line banner should be +displayed above the listing. +The `\-realsize' switch tells \fImhn\fR to evaluate the \*(lqnative\*(rq +(decoded) format of each content prior to listing. +This provides an accurate count at the expense of a small delay. + +.Uh "Showing the Contents" +The `\-show' switch tells \fImhn\fR to display the contents of the named +messages. +The headers of the message are displayed with the \fImhlproc\fR, +using format file \fImhl.headers\fR. +(The choice of format file can be overridden by the `\-form\0formfile' switch.) + +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be displayed. +This is accomplished by consulting a display string, +and executing it under \fB/bin/sh\fR, +with the standard input set to the content. +.ne 16 +The display string may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%F 'u +%a additional arguments +%e exclusive execution +%f filename containing content +%F %e, %f, and stdin is terminal not content +%l display listing prior to displaying content +%p %l, and ask for confirmation +%s subtype +%d content description +.re +.in -.5i +.fi +.sp +For those display strings containing the e- or F-escape, +\fImhn\fR will execute at most one of these at any given time. +Although the F-escape expands to be the filename containing the content, +the e-escape has no expansion as far as the shell is concerned. + +When the p-escape prompts for confirmation, +typing INTR (usually control-C) will tell \fImhn\fR not to display +that content. +(The p-escape can be disabled by specifying `\-nopause'.) +Further, +when \fImhn\fR is display a content, +typing QUIT (usually control-\\) will tell \fImhn\fR to wrap things up +immediately. + +Note that if the content being displayed is multipart, +but not one of the subtypes listed above, +then the f- and F-escapes expand to multiple filenames, +one for each subordinate content. +Further, +stdin is not redirected from the terminal to the content. + +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-show-/ +.in -.5i +.sp +to determine the command to use to display the content. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-show- +.in -.5i +.sp +to determine the display command. +.ne 10 +If this isn't found, +\fImhn\fR has two default values: +.sp +.nf +.in +.5i +mhn-show-text/plain: %pmoreproc '%F' +mhn-show-message/rfc822: %pshow -file '%F' +.in -.5i +.fi +.sp +If neither apply, +\fImhn\fR will check to see if the message has a application/octet-stream +content with parameter \*(lqtype=tar\*(rq. +If so, +\fImhn\fR will use an appropriate command. +If not, +\fImhn\fR will complain. + +.ne 10 +Example entries might be: +.sp +.nf +.in +.5i +mhn-show-audio/basic: raw2audio 2>/dev/null | play +mhn-show-image: xv '%f' +mhn-show-application/PostScript: lpr -Pps +.in -.5i +.fi +.sp +Note that when using the f- or F-escape, +it's a good idea to use single-quotes around the escape. +This prevents misinterpretation by the shell of any funny characters +that might be present in the filename. + +Because the text content might be in a non-ASCII character set, +when \fImhn\fR encounters a \*(lqcharset\*(rq parameter for this content, +it checks to see whether the environment variable $MM_CHARSET is set +and whether the value of this environment variable is equal to the value of +the charset parameter. +If not, +then +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-charset- +.in -.5i +.sp +which should contain a command creating an environment to render the +character set. +This command string should containing a single \*(lq%s\*(rq, +which will be filled-in with the command to display the content. + +An example entry might be: +.sp +.in +.5i +mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-120-*-*-c-*-iso8859-*' -e %s +.in -.5i +.sp +Note that many pagination programs strip off the high-order bit. +However, +newer releases of the \fIless\fR program have modest support for +single-octet character sets. +The source to \fIless\fR version 177, +which has such support, +is found in the MH source tree under \fBmiscellany/less-177\fR. +In order to view messages sent in the ISO 8859/1 character set using +\fIless\fR, +.ne 9 +put these lines in your \&.login file: +.sp +.nf +.in +.5i +setenv LESSCHARSET latin1 +setenv LESS "-f" +.in -.5i +.fi +.sp +The first line tells \fIless\fR to use 8859/1 definition for determing +whether a character is \*(lqnormal\*(rq, \*(lqcontrol\*(lq, or +\*(lqbinary\*(rq. +The second line tells \fIless\fR not to warn you if it encounters a +file that has non-ASCII characters. +Then, +simply set the \fBmoreproc\fR profile entry to \fIless\fR, +and it will get called automatically. +(To handle other single-octet character sets, +look at the \fIless\fR\0(1) manual entry for information about the +\fBLESSCHARDEF\fR environment variable.) + +Finally, +\fImhn\fR will process each message serially\0--\0it won't start showing +the next message until all the commands executed to display the +current message have terminated. +In the case of a multipart content (of any subtype listed above), +the content contains advice indicating if the parts should be +displayed serially or in parallel. +Because this may cause confusion, +particularly on uni-window displays, +the `\-serialonly' switch can be given to tell \fImhn\fR to never +display parts in parallel. + +.Uh "Storing the Contents" +The `\-store' switch tells \fImhn\fR to store the contents of the +named messages in \*(lqnative\*(rq (decoded) format. +Two things must be determined: +the directory to store the content, +and the filenames. +Files are written in the directory given by the \fBmhn-storage\fR +profile entry, +.ne 6 +e.g., +.sp +.in +.5i +mhn-storage: /tmp +.in -.5i +.sp +If this entry isn't present, +the current working directory is used. + +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be stored. +This is achieved through the use of a formatting string, +.ne 13 +which may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%P 'u +%m message number +%P .part +%p part +%s subtype +.re +.in -.5i +.fi +.sp +If the content isn't part of a multipart (of any subtype listed above) content, +the p-escapes are ignored. +Note that if the formatting string starts with a \*(lq+\*(rq character, +then these escapes are ignored, +and the content is stored in the named folder. +(A formatting string consisting solely of a \*(lq+\*(rq character +indicates the current folder.) +Further, +a formatting string consisting solely of a \*(lq-\*(rq character +indicates the standard-output. + +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-store-/ +.in -.5i +.sp +to determine the formatting string. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-store- +.in -.5i +.sp +to determine the formatting string. +If this isn't found, +\fImhn\fR will check to see if the content is application/octet-stream +with parameter \*(lqtype=tar\*(rq. +If so, +\fImhn\fR will choose an appropriate filename. +If the content is not application/octet-stream, +then \fImhn\fR will check to see if the content is a message. +If so, +\fImhn\fR will use the value \*(lq+\*(rq. +If not, +\fImhn\fR will use the value \*(lq%m%P.%s\*(rq. + +Note that if the formatting string starts with a '/', +then content will be stored in the full path given +(rather than using the value of \fBmhn-storage\fR or the current working +directory.) +Similarly, +if the formatting string starts with a '|', +then \fImhn\fR will execute a command which should ultimately store +the content. +Note that before executing the command, +\fImhn\fR will change to the appropriate directory. +Also note that if the formatting string starts with a '|', +then \fImhn\fR will also honor the a-escape when processing the +formatting string. + +.ne 10 +Example entries might be: +.sp +.nf +.in +.5i +mhn-store-text: %m%P.txt +mhn-store-audio/basic: | raw2audio -e ulaw -s 8000 -c 1 > %m%P.au +mhn-store-application/PostScript: %m%P.ps +.in -.5i +.fi +.sp +Further, +note that when asked to store a content containing a partial message, +\fImhn\fR will try to locate all of the portions and combine them accordingly. +Thus, +if someone's sent you a message in several parts, +you might put them all in their own folder and do: +.sp +.in +.5i +mhn all -store +.in -.5i +.sp +This will store exactly one message, +containing the sum of the parts. +Note that if \fImhn\fR can not locate each part, +it will not store anything. + +Finally, +if the `\-auto' switch is given and the content contains information +indicating the filename the content should be stored as +(and if the filename doesn't begin with a '/'), +then the filename from the content will be used instead. + +.Uh "External Access" +For contents of type message/external-body, +.ne 12 +\fImhn\fR supports these access-types: +.sp +.nf +.in +.5i +afs +anon-ftp +ftp +local-file +mail-server +.in -.5i +.fi +.sp +For the \*(lqanon-ftp\*(rq and \*(lqftp\*(rq access types, +if your system supports a SOCKETs interface to TCP/IP, +then \fImhn\fR will use a built-in FTP client. +Otherwise, +\fImhn\fR will look for the \fBmhn-access-ftp\fR profile entry, +.ne 6 +e.g., +.sp +.in +.5i +mhn-access-ftp: myftp.sh +.in -.5i +.sp +to determine the pathname of a program to perform the FTP retrieval. +.ne 14 +This program is invoked with these arguments: +.sp +.nf +.in +.5i +domain name of FTP-site +username +password +remote directory +remote filename +local filename +\*(lqascii\*(rq or \*(lqbinary\*(rq +.in -.5i +.fi +.sp +The program should terminate with a zero-valued exit-status if the +retrieval is successful. + +.Uh "The Content Cache" +When \fImhn\fR encounters an external content containing a +\*(lqContent-ID:\*(rq field, +and if the content allows caching, +then depending on the caching behavior of \fImhn\fR, +the content might be read from or written to a cache. + +The caching behavior of \fImhn\fR is controlled with +the `\-rcache' and `\-wcache' switches, +which define the policy for reading from, +and writing to, +the cache, respectively. +One of four policies may be specified: +\*(lqpublic\*(rq, +indicating that \fImhn\fR should make use of a +publically-accessible content cache; +\*(lqprivate\*(rq, +indicating that \fImhn\fR should make use of the user's +private content cache; +\*(lqnever\*(rq, +indicating that \fImhn\fR should never make use of caching; +and, +\*(lqask\*(rq, +indicating that \fImhn\fR should ask the user. + +There are two directories where contents may be cached: +the profile entry \fBmhn-cache\fR names a directory containing +world-readable contents, +and, +the profile entry \fBmhn-private-cache\fR names a directory containing +private contents. +The former should be an absolute (rooted) directory name. +.ne 6 +For example, +.sp +.in +.5i +mhn-cache: /tmp +.in -.5i +.sp +might be used if you didn't care that the cache got wiped after each reboot +of the system. +The latter is interpreted relative to the user's MH directory, +if not rooted, +.ne 6 +e.g., +.sp +.in +.5i +mhn-private-cache: .cache +.in -.5i +.sp +(which is the default value). + +.Uh "Caching the Contents" +When you encounter a content of type message/external-body with access type +\*(lqmail-server\*(rq, +\fImhn\fR will ask you if may send a message to a mail-server +requesting the content, +.ne 14 +e.g., +.sp +.nf +.in +.5i +% show 1 +Retrieve content by asking mail-server@... + +SEND file + +? yes +mhn: request sent +.in -.5i +.fi +.sp +Regardless of your decision, +\fImhn\fR can't perform any other processing on the content. + +However, +if \fImhn\fR is allowed to request the content, +then when it arrives, +there should be a top-level \*(lqContent-ID:\*(rq field which +corresponds to the value in the original message/external-body content. +You should now use the `-cache' switch to tell \fImhn\fR to enter the +arriving content into the content cache, +.ne 8 +e.g., +.sp +.nf +.in +.5i +% mhn -cache 2 +caching message 2 as file ... +.in -.5i +.fi +.sp +You can then re-process the original message/external-body content, +and \*(lqthe right thing should happen\*(rq, +.ne 8 +e.g., +.sp +.nf +.in +.5i +% show 1 +\0... +.in -.5i +.fi + +.Uh "Composing the Contents" +The \fImhn\fR program can also be used as a simple editor to aid in +composing multi-media messages. +When invoked by a \fIwhatnow\fR program, +\fImhn\fR will expect the body of the draft to be formatted as an +\*(lq\fImhn\fR composition file.\*(rq + +.ne 59 +The syntax of this is straight-forward: +.sp +.nf +.in +.5i + body ::= 1*(content | EOL) + + content ::= directive | plaintext + + directive ::= "#" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "<" id ">" ] + [ "[" description "]" ] + [ filename ] + EOL + + | "#@" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "<" id ">" ] + [ "[" description "]" ] + external-parameters + EOL + + | "#forw" + [ "<" id ">" ] + [ "[" description "]" ] + [ "+"folder ] [ 0*msg ] + EOL + + | "#begin" + [ "<" id ">" ] + [ "[" description "]" ] + [ "alternative" + | "parallel" + | something-else ] + EOL + 1*body + "#end" EOL + + plaintext ::= [ "Content-Description:" + description EOL EOL ] + 1*line + [ "#" EOL ] + + | "#<" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "[" description "]" ] + EOL + 1*line + [ "#" EOL ] + + line ::= "##" text EOL + -- interpreted as "#"text EOL + | text EOL +.in -.5i +.fi +.sp +Basically, +the body contains one or more contents. +A content consists of either a directive, +indicated with a \*(lq#\*(rq as the first character of a line; +or, +plaintext (one or more lines of text). +The continuation character, \*(lq\\\*(lq, may be used to enter a single +.ne 11 +directive on more than one line, +e.g., +.sp +.nf +.in +.5i +#@application/octet-stream; \\ + type=tar; \\ + x-conversions=compress +.in -.5i +.fi +.sp +There are four kinds of directives: +\*(lqtype\*(rq directives, +which name the type and subtype of the content; +\*(lqexternal-type\*(rq directives, +which also name the type and subtype of the content; +the \*(lqforw\*(rq directive, +which is used to forward a digest of messages; +and, +the \*(lqbegin\*(rq directive, +which is used to create a multipart content. + +For the type directives, +the user may optionally specify the name of a file containing the +contents in \*(lqnative\*(rq (decoded) format. +(If the filename starts with the \*(lq|\*(rq character, +then this gives a command whose output is captured accordingly.) +If a filename is not given, +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be composed. +This is accomplished by consulting a composition string, +and executing it under \fB/bin/sh\fR, +with the standard output set to the content. +.ne 13 +The composition string may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%P 'u +%a additional arguments +%f filename containing content +%F %f, and stdout is not re-directed +%s subtype +.re +.in -.5i +.fi +.sp +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-compose-/ +.in -.5i +.sp +to determine the command to use to compose the content. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-compose- +.in -.5i +.sp +to determine the composition command. +If this isn't found, +\fImhn\fR will complain. + +An example entry might be: +.sp +.in +.5i +mhn-compose-audio/basic: record | raw2audio -F +.in -.5i +.sp +Because commands like these will vary, +depending on the display environment used for login, +composition strings for different contents should probably be put in +the file specified by the \fB$MHN\fR environment variable, +instead of directly in your user profile. + +The external-type directives are used to provide a reference to a content, +rather than enclosing the contents itself. +Hence, +instead of providing a filename as with the type directives, +external-parameters are supplied. +These look like regular parameters, +.ne 15 +so they must be separated accordingly, +e.g., +.sp +.nf +.in +.5i +#@application/octet-stream; \\ + type=tar; \\ + x-conversions=compress [] \\ + access-type=anon-ftp; \\ + name="mh-mime.tar.Z"; \\ + directory="mrose/mh-mime"; \\ + site="ftp.ics.uci.edu" +.in -.5i +.fi +.sp +By specifying \*(lq[]\*(rq, +an empty description string is given, +and the start of the external-parameters is identified. +.ne 19 +These parameters are of the form: +.sp +.nf +.in +.5i +.ta \w'access-type= 'u +access-type= usually \fIanon-ftp\fR or \fImail-server\fR +name= filename +permission= read-only or read-write +site= hostname +directory= directoryname (optional) +mode= usually \fIascii\fR or \fIimage\fR (optional) +size= number of octets +server= mailbox +subject= subject to send +body= command to send for retrieval +.re +.in -.5i +.fi +.sp + +For the forw directive, +the user may optionally specify the name of the folder and which +messages are to be forwarded. +if a folder is not given, +it defaults to the current folder. +Similarly, +if a message is not given, +it defaults to the current message. +Hence, +the forw directive is similar to the \fIforw\fR\0(1) command, +except that the former uses the MIME rules for encapsulation +rather than those specified in RFC 934. +Usage of the `\-rfc934mode' switch indicates whether \fImhn\fR should +attempt to utilize the encapsulation rules in such a way as to appear +that RFC 934 is being used. +If given, +then RFC 934-compliant user-agents should be able to burst the message on +reception\0--\0providing that the messages being encapsulated do not +contain encapsulated messages themselves. +The drawback of this approach is that the encapsulations are generated +by placing an extra newline at the end of the body of each message. + +For the begin directive, +the user must specify at least one content between +the begin and end pairs. + +For all of these directives, +the user may include a brief description of the content between +the \*(lq[\*(rq character and the \*(lq]\*(rq character. +By default, +\fImhn\fR will generate a unique \*(lqContent-ID:\*(rq for each directive; +however, +the user may override this by defining the ID using the +\*(lq<\*(rq and \*(lq>\*(rq characters. +Putting this all together, +.ne 15 +here is a brief example of what a user's components file might look like: +.sp +.nf +.in +.5i +To: +cc: +Subject: +-------- +#audio/basic [Flint phone] \\ + |raw2audio -F < /home/mrose/lib/multi-media/flint.au +#image/gif [MTR's photo] \\ + /home/mrose/lib/multi-media/mrose.gif +.in -.5i +.fi +.sp +For a later example, +we'll call this components file \fImhncomps\fR. + +As noted earlier, +in addition to directives, +plaintext can be present. +Plaintext is gathered, +until a directive is found or the draft is exhausted, +and this is made to form a text content. +If the plaintext must contain a \*(lq#\*(rq at the beginning of a line, +simply double it, +.ne 6 +e.g., +.sp +.in +.5i +##when sent, this line will start with only one # +.in -.5i +.sp +If you want to end the plaintext prior to a directive, +e.g., +to have two plaintext contents adjacent, +simply insert a line containing a single \*(lq#\*(rq character, +.ne 10 +e.g., +.sp +.nf +.in +.5i +this is the first content +# +and this is the second +.in -.5i +.fi +.sp +Finally, +if the plaintext starts with a line of the form: +.sp +.in +.5i +Content-Description: text +.in -.5i +.sp +then this will be used to describe the plaintext content. +\fBNOTE WELL:\fR you must follow this line with a blank line before +starting your text. + +By default, +plaintext is captured as a text/plain content. +You can override this by starting the plaintext with \*(lq#<\*(rq +followed by a content-type specification, +.ne 11 +e.g., +.sp +.nf +.in +.5i +#\fR +-------- + +What now? \fBedit\fR (this invokes \fImhn\fR) + +What now? \fBsend\fR +.in -.5i +.fi +.sp +You have to remember to type the additional edit command, +but it should be fairly obvious from the interaction. + +Finally, +you should consider adding this line to your profile: +.sp +.in +.5i +lproc: show +.in -.5i +.sp +This way, +if you decide to \fBlist\fR after invoking \fImhn\fR as your editor, +the command +.sp +.in +.5i +What now? list +.in -.5i +.sp +will work as you expect. + +.Uh "Sending Files via Mail" +When you want to send a bunch of files to someone, +you can run the \fIviamail\fR shell script, +which is similar the tarmail command: +.sp +.in +.5i +@(MHETCPATH)/viamail mailpath \*(lqsubject\*(rq files\0... +.in -.5i +.sp +\fIviamail\fR will archive the directories/files you name with \fItar\fR\0(1), +and then mail the compressed archive to the `mailpath' with the given +`subject'. +The archive will be automatically split up into as many messages as +necessary in order to get past most mailers. + +Sometimes you want \fIviamail\fR to pause after posting a partial message. +This is usually the case when you are running \fIsendmail\fR and +expect to generate a lot of partial messages. +If the first argument given to \fIviamail\fR starts with a dash, +then it is interpreted as the number of seconds to pause in between postings, +.ne 6 +e.g., +.sp +.in +.5i +@(MHETCPATH)/viamail -300 mailpath \*(lqsubject\*(rq files\0... +.in -.5i +.sp +will pause 5 minutes in between each posting. + +When these messages are received, +invoke \fImhn\fR once, +with the list of messages, +and the `\-store' command. +The \fImhn\fR program will then store exactly one message containing the +archive. +You can then use `\-show' to find out what's inside; +possibly followed by `\-store' to write the archive to a file where you +.ne 26 +can subsequently uncompress and untar it, e.g., +.sp +.nf +.in +.5i +% mhn -list all + msg part type/subtype size description + 1 message/partial 47K part 1 of 4 + 2 message/partial 47K part 2 of 4 + 3 message/partial 47K part 3 of 4 + 4 message/partial 18K part 4 of 4 +% mhn -store all +% mhn -list -verbose last + msg part type/subtype size description + 5 application/octet-stream 118K + (extract with uncompress | tar xvpf -) + type=tar + x-conversions=compress +% mhn -show last + msg part type/subtype size description + 5 application/octet-stream 118K +-- headers of message, followed by \fItar\fR listing appears here +% mhn -store last +% uncompress < 5.tar.Z | tar xvpf - +.in -.5i +.fi +.sp +Alternately, +by using the `\-auto' switch, +\fImhn\fR will automatically do the extraction for you, +.ne 26 +e.g., +.sp +.nf +.in +.5i +% mhn -list all + msg part type/subtype size description + 1 message/partial 47K part 1 of 4 + 2 message/partial 47K part 2 of 4 + 3 message/partial 47K part 3 of 4 + 4 message/partial 18K part 4 of 4 +% mhn -store all +% mhn -list -verbose last + msg part type/subtype size description + 5 application/octet-stream 118K + (extract with uncompress | tar xvpf -) + type=tar + x-conversions=compress +% mhn -show last + msg part type/subtype size description + 5 application/octet-stream 118K +-- headers of message, followed by \fItar\fR listing appears here +% mhn -store -auto last +-- \fItar\fR listing appears here as files are extracted +.in -.5i +.fi +.sp +As the second \fItar\fR listing is generated, +the files are extracted. +A prudent user will never put `\-auto' in the \&.mh\(ruprofile file. +The correct procedure is to first use `\-show', +to find out what will be extracted. +Then \fImhn\fR can be invoked with `\-store' and `\-auto' to perform +the extraction. + +.Uh "User Environment" +Because the display environment in which \fImhn\fR operates may vary +for a user, +\fImhn\fR will look for the environment variable \fB$MHN\fR. +If present, +this specifies the name of an additional user profile which should be read. +Hence, +when a user logs in on a particular display device, +this environment variable should be set to refer to a file containing +definitions useful for the display device. +Normally, +only entries of the form +.sp +.in +.5i +mhn-show-/ +.br +mhn-show- +.in -.5i +.sp +need be present. +Finally, +\fImhn\fR will attempt to consult one other additional user profile, +.ne 6 +e.g., +.sp +.in +.5i +@(MHETCPATH)/mhn_defaults +.in -.5i +.sp +which is created automatically during MH installation. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$MHN~^Additional profile entries +^@(MHETCPATH)/mhn_defaults~^System-default profile entries +^@(MHETCPATH)/mhl.headers~^The headers template +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^mhlproc:~^Default program to display message headers +.Ps +^mhn-access-ftp:~^Program to retrieve contents via FTP +.Ps +^mhn-cache~^Public directory to store cached external contents +.Ps +^mhn-charset-~^Template for environment to render character sets +.Ps +^mhn-compose-*~^Template for composing contents +.Ps +^mhn-private-cache~^Personal directory to store cached external contents +.Ps +^mhn-show-*~^Template for displaying contents +.Ps +^mhn-storage~^Directory to store contents +.Ps +^mhn-store-*~^Template for storing contents +.Ps +^moreproc:~^Default program to display text/plain content +.Sa +mhl(1) +.br +\fIMIME: Mechanisms for Specifying and Describing the Format of +Internet Message Bodies\fR +(RFC 1521), +.br +\fIProposed Standard for Message Encapsulation\fR +(RFC 934). +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noauto' +.Ds +`\-nocache' +.Ds +`\-nocheck' +.Ds +`\-noebcdicsafe' +.Ds +`\-form\0mhl.headers' +.Ds +`\-headers' +.Ds +`\-pause' +.Ds +`\-rcache\0ask' +.Ds +`\-realsize' +.Ds +`\-rfc934mode' +.Ds +`\-noserialonly' +.Ds +`\-show' +.Ds +`\-noverbose' +.Ds +`\-wcache\0ask' +.Co +If a folder is given, +it will become the current folder. +The last message selected will become the current message. +.Bu +Partial messages contained within a multipart content are not reassembled +with the `\-store' switch. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mhook.rf b/docs/historical/mh-6.8.5/conf/doc/mhook.rf new file mode 100644 index 0000000..b2c1e4a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mhook.rf @@ -0,0 +1,106 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mhook.rf,v 1.16 1995/12/06 23:31:56 jromine Exp $ +.SC MHOOK 1 +.NA +mhook, rcvdist, rcvpack, rcvtty \- MH receive-mail hooks +.SY +.na +.ti .5i +@(MHETCPATH)/rcvdist +\%[\-form\ formfile] +\%[switches\ for\ \fIpostproc\fR] +address\ ... +\%[\-help] + +.ti .5i +@(MHETCPATH)/rcvpack +file +\%[\-help] + +.ti .5i +@(MHETCPATH)/rcvtty +\%[command] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-bell] \%[\-nobell] +\%[\-newline] \%[\-nonewline] +\%[\-biff] +\%[\-help] +.ad +.DE +A receive\-mail hook is a program that is run whenever you receive a +mail message. +You do \fBNOT\fR invoke the hook yourself, +rather the hook is invoked on your behalf by your +system's Message Transport Agent. See \fIslocal\fP\0(1) +for details on how to activate receive\-mail hooks on your system. + +Four programs are currently available as part of \fIMH\fP, +\fIrcvdist\fR (redistribute incoming messages to additional recipients), +\fIrcvpack\fR (save incoming messages in a \fIpackf\fR'd file), +and \fIrcvtty\fR (notify user of incoming messages). +The fourth program, +\fIrcvstore\fR\0(1) is described separately. +They all reside in the \fI@(MHETCPATH)/\fR directory. + +The \fIrcvdist\fR program will resend a copy of the message to all of the +addresses listed on its command line. +It uses the format string facility described in \fImh\-format\fR\0(5). +In addition, \fIrcvdist\fP +also recognizes the following additional \fIcomponent\fR escape: +.sp 1 +.ne 5 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +addresses string the addresses to distribute to +.re +.fi + +The \fIrcvpack\fR program will append a copy of the message to the file listed +on its command line. +Its use is obsoleted by the \*(lqfile\*(rq action of \fIslocal\fR. + +The \fIrcvtty\fR program executes the named file with the message as its +standard input, +and writes the resulting output +on your terminal. + +If no file is specified, or is bogus, etc., +then \fIrcvtty\fR will instead write a one\-line scan listing. +Either the `\-form\ formatfile' or `\-format\ string' option may be used +to override the default output format (see \fImh\-format\fP\0(5)). +A newline is output before the +message output, and the terminal bell is rung +after the output. The `\-nonewline' and `\-nobell' options +will inhibit these functions. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIrcvtty\fR also recognizes the following additional \fIcomponent\fR escapes: +.sp 1 +.ne 5 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +body string the (compressed) first part of the body +dtimenow date the current date +folder string the name of the current folder +.re +.fi + +Normally, \fIrcvtty\fP obeys +write permission as granted by \fImesg\fP\0(1). +With the `\-biff' option, \fIrcvtty\fP will obey the notification +status set by \fIbiff\fP\0(1) instead. +If the terminal access daemon (TTYD) is available on your system, +then \fIrcvtty\fR will give its output to the daemon for output +instead of writing on the user's terminal. +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +^$HOME/\&.maildelivery~^The file controlling local delivery +^@(MHETCPATH)/maildelivery~^Rather than the standard file +.Sa +rcvstore (1), mh\-format(5), slocal(1) +.Bu +Only two return codes are meaningful, others should be. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mhparam.rf b/docs/historical/mh-6.8.5/conf/doc/mhparam.rf new file mode 100644 index 0000000..ea61db5 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mhparam.rf @@ -0,0 +1,70 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mhparam.rf,v 1.2 1992/11/16 22:27:09 jromine Exp $ +.SC MHPARAM 1 +.NA +mhparam \- print MH profile components +.SY +mhparam +\%[components] +\%[-all] +\%[-component] \%[-nocomponent] +\%[\-help] +.DE +\fIMhparam\fR writes the value of the specified profile component to +the standard output separated by newlines. If the profile component +is not present, the default value (or nothing if there is no default) +is printed. + +If more than one component is specified in the `components' list, the component value is +preceded by the component name. If `\-component' is specified, the +component name is displayed even when only one component is specified. +If `\-nocomponent' is specified, the component name is not displayed +even when more than one component is specified. + +If `\-all' is specified, all components if the MH profile are +displayed and other arguments are ignored. + +Examples: + +.nf +.ta \w'AliasFile:'u+2n +.in +.5i +% mhparam path +Mail + +% mhparam mhlproc +@(MHETCPATH)/mhl + +% mhparam \-component path +Path: Mail + +% mhparam AliasFile rmmproc +AliasFile: aliases +rmmproc: rmmproc + +% mhparam \-nocomponent AliasFile rmmproc +aliases +rmmproc +.in -.5i +.fi + +\fIMhparam\fR is also useful in back\-quoted operations: + +.nf +.in +.5i +% fgrep cornell.edu `mhpath +`/`mhparam aliasfile` + +.in -.5i +.fi +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Sa +mh-profile\|(5) +.De +`\-nocomponent' if only one component is specified +`\-component' if more than one component is specified +.Ds +`components' defaults to none +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/mhpath.rf b/docs/historical/mh-6.8.5/conf/doc/mhpath.rf new file mode 100644 index 0000000..597bcbe --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/mhpath.rf @@ -0,0 +1,132 @@ +.\" @(MHWARNING) +.\" @(#)$Id: mhpath.rf,v 1.7 1992/02/11 22:40:23 jromine Exp $ +.SC MHPATH 1 +.NA +mhpath \- print full pathnames of MH messages and folders +.SY +mhpath +\%[+folder] \%[msgs] +\%[\-help] +.DE +\fIMhpath\fR expands and sorts the message list `msgs' and writes +the full pathnames of the messages to the standard output +separated by newlines. +If no `msgs' are specified, +\fImhpath\fR outputs the folder pathname instead. +If the only argument is `+', your MH \fIPath\fR is output; +this can be useful is shell scripts. + +Contrasted with other MH commands, a message argument to \fImhpath\fR +may often be intended for \fIwriting\fR. +Because of this: +.sp +1) the name \*(lqnew\*(rq has been added to \fImhpath\fR's list of +reserved message names +(the others are \*(lqfirst\*(rq, \*(lqlast\*(rq, \*(lqprev\*(rq, +\*(lqnext\*(rq, \*(lqcur\*(rq, and \*(lqall\*(rq). +The new message is equivalent to the message after the +last message in a folder +(and equivalent to 1 in a folder without messages). +The \*(lqnew\*(rq message may not be used as part of a message range. +.sp +2) Within a message list, +the following designations may refer to messages that do not exist: +a single numeric message name, +the single message name \*(lqcur\*(rq, +and (obviously) the single message name \*(lqnew\*(rq. +All other message designations must refer to at least one existing message. +.sp +3) An empty folder is not in itself an error. + +Message numbers greater than the highest existing message in a folder as +part of a range designation are replaced with the next free message number. + +Examples: The current folder foo contains messages 3 5 6. +Cur is 4. + +.nf +.in +.5i +% mhpath +/r/phyl/Mail/foo + +% mhpath all +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 +/r/phyl/Mail/foo/6 + +% mhpath 2001 +/r/phyl/Mail/foo/7 + +% mhpath 1\-2001 +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 +/r/phyl/Mail/foo/6 + +% mhpath new +/r/phyl/Mail/foo/7 + +% mhpath last new +/r/phyl/Mail/foo/6 +/r/phyl/Mail/foo/7 + +% mhpath last\-new +bad message list \*(lqlast\-new\*(rq. + +% mhpath cur +/r/phyl/Mail/foo/4 + +% mhpath 1\-2 +no messages in range \*(lq1\-2\*(rq. + +% mhpath first:2 +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 + +% mhpath 1 2 +/r/phyl/Mail/foo/1 +/r/phyl/Mail/foo/2 +.in -.5i +.fi + +\fIMHpath\fR is also useful in back\-quoted operations: + +.nf +.in +.5i +% cd `mhpath +inbox` + +% echo `mhpath +` +/r/phyl/Mail +.in -.5i +.fi +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +folder(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to none +.Co +None +.Bu +Like all MH commands, \fImhpath\fR expands and sorts \%[msgs]. +So don't expect + +.ti +.5i +mv `mhpath 501 500` + +to move 501 to 500. +Quite the reverse. But + +.ti +.5i +mv `mhpath 501` `mhpath 500` + +will do the trick. + +Out of range message 0 is treated far more severely than large out of +range message numbers. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/msgchk.rf b/docs/historical/mh-6.8.5/conf/doc/msgchk.rf new file mode 100644 index 0000000..30bdae7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/msgchk.rf @@ -0,0 +1,86 @@ +.\" @(MHWARNING) +.\" @(#)$Id: msgchk.rf,v 1.7 1992/02/04 21:41:41 jromine Exp $ +.SC MSGCHK 1 +.NA +msgchk \- check for messages +.SY +msgchk +\%[\-date] \%[\-nodate] +\%[\-notify\ all/mail/nomail] \%[\-nonotify\ all/mail/nomail] +@BEGIN: POP +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@END: POP +\%[users\ ...] +\%[\-help] +.DE +The \fImsgchk\fR program checks all known mail drops for mail waiting +for you. +For those drops which have mail for you, +\fImsgchk\fR will indicate if it believes that you have seen the mail +in question before. + +The `\-notify\ type' switch indicates under what circumstances \fImsgchk\fR +should produce a message. +The default is `\-notify\ all' which says that \fImsgchk\fR should always +report the status of the users maildrop. +Other values for `type' include `mail' which says that \fImsgchk\fR should +report the status of waiting mail; +and, `nomail' which says that \fImsgchk\fR should report the status of empty +maildrops. +The `\-nonotify\ type' switch has the inverted sense, +so `\-nonotify\ all' directs \fImsgchk\fR to never report the status of +maildrops. +This is useful if the user wishes to check \fImsgchk\fR's exit status. +A non\-zero exit status indicates that mail was \fBnot\fR waiting for at +least one of the indicated users. + +If \fImsgchk\fR produces output, +then the `\-date' switch directs \fImsgchk\fR to print out the last date mail +was read, +if this can be determined. +@BEGIN: POP + +If the local host is configured as a POP client, +or if the `\-host\ host' switch is given, +\fImsgchk\fR will query the POP service host as to the status of mail waiting. +If the `\-user\ user' switch is not given, +then the current username is used. +Normally, +\fImsgchk\fR will prompt for a password to use. +However, +if the `\-apop' switch is given, +\fImsgchk\fR will generate authentication credentials to provide +for origin authentication and replay protection, +but which do not involve sending a password in the clear over the network. +Otherwise, +if the `\-rpop' switch is given, +then \fImsgchk\fR will try to use a \*(lqtrusted\*(rq connection +(ala the BSD r-commands). +@END: POP +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@(MHETCPATH)/mtstailor~^tailor file +^@(MHDROPLOC)~^Location of mail drop +.Pr +None +.Sa +@BEGIN: POP +\fIPost Office Protocol - version 3\fR (aka RFC\-1081), +.br +@END: POP +inc(1) +.De +`user' defaults to the current user +.Ds +`\-date' +.Ds +`\-notify\ all' +@BEGIN: POP +.Ds +`\-rpop' +@END: POP +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/msh.rf b/docs/historical/mh-6.8.5/conf/doc/msh.rf new file mode 100644 index 0000000..4324edd --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/msh.rf @@ -0,0 +1,227 @@ +.\" @(MHWARNING) +.\" @(#)$Id: msh.rf,v 1.9 1992/10/16 21:36:14 jromine Exp $ +.SC MSH 1 +.NA +msh \- MH shell (and BBoard reader) +.SY +msh +\%[\-prompt\ string] +\%[\-scan] \%[\-noscan] +\%[\-topcur] \%[\-notopcur] +\%[file] +\%[\-help] +.DE +\fImsh\fR is an interactive program that +implements a subset of the normal \fIMH\fR commands +operating on a single file in \fIpackf\fR'd format. +That is, \fImsh\fR is used to read a file that contains a number of +messages, +as opposed to the standard +\fIMH\fR +style of reading a number of files, +each file being a separate message in a folder. +\fImsh\fR's chief advantage is that the normal \fIMH\fR style does not allow +a file to have more than one message in it. +Hence, \fImsh\fR is ideal for reading \fIBBoards\fR, +as these files are delivered by the transport system in this format. +In addition, \fImsh\fR can be used on other files, +such as message archives which have been \fIpack\fRed (see \fIpackf\fR\0(1)). +Finally, \fImsh\fR is an excellent \fIMH\fR +tutor. +As the only commands available to the user are \fIMH\fR commands, +this allows \fIMH\fR beginners to concentrate on how commands to +\fIMH\fR are formed and (more or less) what they mean. + +When invoked, \fImsh\fR reads the named file, and enters a command loop. +The user may type most of the normal +\fIMH\fR +commands. +The syntax and semantics of these commands typed to \fImsh\fR are +identical to their \fIMH\fR +counterparts. In cases where the nature of \fImsh\fR would be inconsistent +(e.g., specifying a `+folder' with some commands), +\fImsh\fR will duly inform the user. +The commands that \fImsh\fR currently supports +(in some slightly modified or restricted forms) are: +.sp 1 +.in +.5i +ali +.br +burst +.br +comp +.br +dist +.br +folder +.br +forw +.br +inc +.br +mark +.br +mhmail +.br +@BEGIN: MIME +mhn +.br +@END: MIME +msgchk +.br +next +.br +packf +.br +pick +.br +prev +.br +refile +.br +repl +.br +rmm +.br +scan +.br +send +.br +show +.br +sortm +.br +whatnow +.br +whom +.in -.5i + +In addition, +\fImsh\fR has a \*(lqhelp\*(rq command which gives a brief overview. +To terminate \fImsh\fR, type CTRL\-D, or use the \*(lqquit\*(rq command. +If \fImsh\fR is being invoked from \fIbbc\fR, +then typing CTRL\-D will also tell \fIbbc\fR to exit as well, +while using the \*(lqquit\*(rq command will return control to \fIbbc\fR, +and \fIbbc\fR will continue examining the list of BBoards +that it is scanning. + +If the file is writable and has been modified, +then using \*(lqquit\*(rq will query the user if the file should be updated. + +The `\-prompt string' switch sets the prompting string for \fImsh\fR. + +You may wish to use an alternate \fIMH\fR profile for the commands that +\fImsh\fR executes; +see \fImh-profile\fR\0(5) for details about the \fB$MH\fR envariable. + +When invoked from \fIbbc\fR, +two special features are enabled: +First, +the `\-scan' switch directs \fImsh\fR to do a `scan\0unseen' on +start\-up if new items are present in the BBoard. +This feature is best used from \fIbbc\fR, +which correctly sets the stage. +Second, +the \fImark\fR command in \fImsh\fR acts specially when you are reading +a BBoard, +since \fImsh\fR will consult the sequence \*(lqunseen\*(rq in determining +what messages you have actually read. +When \fImsh\fR exits, it reports this information to \fIbbc\fR. +In addition, if you give the \fImark\fR command with no arguments, +\fImsh\fR will interpret it +as `mark\0\-sequence\0unseen\0\-delete\0\-nozero\0all' +Hence, to discard all of the messages in the current BBoard you're +reading, just use the \fImark\fR command with no arguments. + +Normally, the \*(lqexit\*(rq command is identical to the \*(lqquit\*(rq +command in \fImsh\fR. +When run under \fIbbc\fR however, \*(lqexit\*(rq directs \fImsh\fR to mark +all messages as seen and then \*(lqquit\*(rq. +For speedy type\-in, +this command is often abbreviated as just \*(lqe\*(rq. + +When invoked from \fIvmh\fR, +another special feature is enabled: +The `topcur' switch directs \fImsh\fR to have the current message +\*(lqtrack\*(rq the top line of the \fIvmh\fR scan window. +Normally, \fImsh\fR has the current message \*(lqtrack\*(rq the center of the +window (under `\-notopcur', which is the default). + +\fImsh\fR supports an output redirection facility. +Commands may be followed by one of + +.nf +.in +.5i +.ta \w'| \fIcommand\fR 'u +^> \fIfile\fR~^write output to \fIfile\fR +^>> \fIfile\fR~^append output to \fIfile\fR +^| \fIcommand\fR~^pipe output to UNIX \fIcommand\fR +.re +.in -.5i +.fi + +If \fIfile\fR starts with a `\~' (tilde), +then a \fIcsh\fR-like expansion takes place. +Note that \fIcommand\fR is interpreted by \fIsh\fR\0(1). +Also note that \fImsh\fR does NOT support +history substitutions, variable substitutions, or alias substitutions. + +When parsing commands to the left of any redirection symbol, +\fImsh\fR will honor `\\' (back\-slash) as the quote next\-character symbol, +and `"' (double\-quote) as quote\-word delimiters. +All other input tokens are separated by whitespace +(spaces and tabs). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@(MHETCPATH)/mtstailor~^tailor file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +.Ps +^fileproc:~^Program to file messages +.Ps +^showproc:~^Program to show messages +.Sa +bbc(1) +.De +`file' defaults to \*(lq./msgbox\*(rq +.Ds +`\-prompt\ (msh)\ ' +.Ds +`\-noscan' +.Ds +`\-notopcur' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fImsh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +There is a strict limit of messages per file in \fIpackf\fR'd format which +\fImsh\fR can handle. +Usually, this limit is 1000 messages. + +Please remember that \fImsh\fR is not the \fICShell\fR, +and that a lot of the nice facilities provided by the latter are not +present in the former. + +In particular, \fImsh\fR does not understand back\-quoting, +so the only effective way to use \fIpick\fR inside \fImsh\fR is to always use +the `\-seq\0select' switch. +Clever users of \fIMH\fR will put the line + +.ti +.5i +pick:\0\-seq\0select\0\-list + +in their \&.mh\(ruprofile file so that \fIpick\fR works equally well from +both the shell and \fImsh\fR. + +\fIsortm\fR always uses \*(lq\-noverbose\*(rq and +if \*(lq\-textfield\ field\*(lq is used, \*(lq\-limit 0\*(rq. + +The \fImsh\fR program inherits most (if not all) of the bugs from the +\fIMH\fR commands it implements. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/next.rf b/docs/historical/mh-6.8.5/conf/doc/next.rf new file mode 100644 index 0000000..f9c4560 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/next.rf @@ -0,0 +1,47 @@ +.\" @(MHWARNING) +.\" @(#)$Id: next.rf,v 1.6 90/12/17 16:03:31 mh Exp $ +.SC NEXT 1 +.NA +next \- show the next message +.SY +next +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fINext\fR performs a \fIshow\fR on the next message in the specified +(or current) folder. +Like \fIshow\fR, it passes any switches on to the +program \fIshowproc\fR, which is called to list the message. +This command +is almost exactly equivalent to \*(lqshow next\*(rq. +Consult the manual entry for \fIshow\fR\0(1) for all the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^showproc:~^Program to show the message +.Sa +show(1), prev(1) +.De +`+folder' defaults to the current folder +.Ds +`\-header' +.Co +If a folder is specified, it will become the current folder. +The message that is shown (i.e., the next message in sequence) +will become the current message. +.Bu +\fInext\fR is really a link to the \fIshow\fR program. +As a result, +if you make a link to \fInext\fR and that link is not called \fInext\fR, +your link will act like \fIshow\fR instead. +To circumvent this, +add a profile\-entry for the link to your \fIMH\fR profile and add the +argument \fInext\fR to the entry. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/packf.rf b/docs/historical/mh-6.8.5/conf/doc/packf.rf new file mode 100644 index 0000000..f6e77aa --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/packf.rf @@ -0,0 +1,57 @@ +.\" @(MHWARNING) +.\" @(#)$Id: packf.rf,v 1.8 1992/05/12 22:24:59 jromine Exp $ +.SC PACKF 1 +.NA +packf \- compress an MH folder into a single file +.SY +packf +\%[+folder] \%[msgs] +\%[\-file\ name] +\%[\-help] +.DE +\fIPackf\fR +takes messages from a folder and copies them to a single file. +Each message in the file is separated by four CTRL\-A's and a +@BEGIN: MMDFMTS +newline (identical to the way messages are stored in your receiving mail drop). +@END: MMDFMTS +@BEGIN: MHMTS +newline (identical to the way messages are stored in your receiving mail drop). +@END: MHMTS +@BEGIN: SENDMTS +newline. +@END: SENDMTS +Messages packed can be unpacked using \fIinc\fR. + +If the \fIname\fR given to the `\-file\ name' switch exists, +then the messages specified +will be appended to the end of the file, otherwise the file will be created +and the messages appended. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^\&.msgbox\&.map~^A binary index of the file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +.Sa +inc(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-file ./msgbox' +.Co +If a folder is given, it will become the current folder. +The first message packed will become the current message. +.Bu +\fIPackf\fP doesn't handle the old UUCP-style \*(lqmbox\*(rq format +(used by \fISendMail\fP). +To pack messages into this format, +use the script \fI@(MHETCPATH)/packmbox\fP. +Note that \fIpackmbox\fP does not take the `\-file' option of \fIpackf\fP, +and instead writes its output on \fIstdout\fP. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/pick.rf b/docs/historical/mh-6.8.5/conf/doc/pick.rf new file mode 100644 index 0000000..19932b6 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/pick.rf @@ -0,0 +1,300 @@ +.\" @(MHWARNING) +.\" @(#)$Id: pick.rf,v 1.9 1992/10/27 00:03:47 jromine Exp $ +.SC PICK 1 +.NA +pick \- select messages by content +.SY +.ie t \{\ +.ta .4i 1.8i +.nf +.in .5i +^pick~^^\0\-cc~^ \%[+folder] \%[msgs] \%[\-help] +^^^\0\-date~^ \%[\-before\ date] \%[\-after\ date] \%[\-datefield\ field] +^^^\0\-from~^ +^^^\s+2\b'\(lt\(bv\(bv\(lk\(bv\(bv\(lb'\s0\-search~\s+2\b'\(rt\(bv\(bv\(rk\(bv\(bv\(rb'\s0^ pattern \%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +^^^\0\-subject~^ +^^^\0\-to~^ \%[\-sequence\ name\ ...] \%[\-public] \%[\-nopublic] \%[\-zero] \%[\-nozero] +^^^\0\-\|\-component~^ \%[\-list] \%[\-nolist] +.fi +.re +.in 1i +.\} +.el \{\ +.ti .5i +pick +\%[+folder] \%[msgs] +\%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +\%[\-\|\-component\ pattern] +\%[\-cc\ pattern] +\%[\-date\ pattern] +\%[\-from\ pattern] +\%[\-search\ pattern] +\%[\-subject\ pattern] +\%[\-to\ pattern] +\%[\-after\ date] \%[\-before\ date] \%[\-datefield\ field] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-list] \%[\-nolist] +\%[\-help] +.\} + +.ti .5i +typically: +.br +scan\0`pick\0\-from\0jones` +.br +pick\0\-to\0holloway\0\-sequence\0select +.br +show\0`pick\0\-before\0friday` +.DE +\fIPick\fR searches messages within a folder for the specified +contents, and then identifies those messages. +Two types of search primitives are available: +pattern matching and date constraint operations. + +A modified \fIgrep\fR(1) is used to perform the matching, so the +full regular expression (see \fIed\fR(1)) facility is available +within `pattern'. +With `\-search', `pattern' is used directly, +and with the others, the grep pattern constructed is: + +.ti +.5i +\*(lqcomponent[ \\t]*:\&.*pattern\*(rq + +This means that the pattern specified for a `\-search' will be +found everywhere in the message, including the header and the body, +while the other pattern matching requests are limited to the single +specified component. +The expression + +.ti +.5i +`\-\|\-component\ pattern' + +is a shorthand for specifying + +.ti +.5i +`\-search \*(lqcomponent[ \\t]*:\&.*pattern\*(rq\ ' + +It is used to pick a component which is not one of +\*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqDate:\*(rq, \*(lqFrom:\*(rq, +or \*(lqSubject:\*(rq. +An example is `pick\0\-\|\-reply\-to\0pooh'. + +Pattern matching is performed on a per\-line basis. +Within the header of +the message, each component is treated as one long line, but in +the body, each line is separate. +Lower\-case letters in the +search pattern will match either lower or upper case in the +message, while upper case will match only upper case. + +Note that since the `\-date' switch is a pattern matching operation (as +described above), +to find messages sent on a certain date +the pattern string must match the text of the +\*(lqDate:\*(rq field of the message. + +Independent of any pattern matching operations requested, +the switches `\-after date' or `\-before date' may also be used +to introduce date/time contraints on all of the messages. +By default, the \*(lqDate:\*(rq field is consulted, +but if another date yielding field +(such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq) should be used, +the `\-datefield\ field' switch may be used. + +With `\-before' and `\-after', +\fIpick\fR will actually parse the date fields in each of the messages +specified in `msgs' +and compare them to the date/time specified. +If `\-after' is given, +then only those messages whose \*(lqDate:\*(rq field value +is chronologically after +the date specified will be considered. +The `\-before' switch specifies the complimentary action. + +Both the `\-after' and `\-before' switches take legal 822\-style date +specifications as arguments. +\fIPick\fR will default certain missing fields so that the entire date +need not be specified. +These fields are (in order of defaulting): +timezone, time and timezone, date, date and timezone. +All defaults are taken from the current date, time, and timezone. + +In addition to 822\-style dates, +\fIpick\fR will also recognize any of the days of the week +(\*(lqsunday\*(rq, \*(lqmonday\*(rq, and so on), +and the special dates +\*(lqtoday\*(rq, \*(lqyesterday\*(rq (24 hours ago), +and \*(lqtomorrow\*(rq (24 hours from now). +All days of the week are judged to refer to a day in the past +(e.g., telling \fIpick\fR \*(lqsaturday\*(rq on +a \*(lqtuesday\*(rq means \*(lqlast\ saturday\*(rq +not \*(lqthis\ saturday\*(rq). + +Finally, in addition to these special specifications, +\fIpick\fR will also honor a specification of the form \*(lq\-dd\*(rq, +which means \*(lqdd days ago\*(rq. + +\fIPick\fR supports complex boolean operations on the searching primitives +with the `\-and', `\-or', `\-not', and `\-lbrace\ ...\ \-rbrace' switches. +For example, + +.ti +.5i +.ie t \{\ +pick\0\-after\0yesterday\0\-and\0\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace +.\} +.el \{\ +pick\0\-after\0yesterday\0\-and +.br +.ti +1i +\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace +.\} + +identifies messages recently sent by \*(lqfrieda\*(rq or \*(lqfear\*(rq. + +The matching primitives take precedence over the `\-not' switch, +which in turn takes precedence over `\-and' +which in turn takes precedence over `\-or'. +To override the default precedence, +the `\-lbrace' and `\-rbrace' switches are provided, +which act just like opening and closing parentheses in logical expressions. + +If no search criteria are given, all the messages +specified on the command +line are selected (this defaults to \*(lqall\*(rq). + +Once the search has been performed, +if the `\-list' switch is given, +the message numbers of the selected messages are written to the standard +output separated by newlines. +This is \fIextremely\fR useful for quickly generating arguments for other +\fIMH\fR programs by using the \*(lqbackquoting\*(rq syntax of the shell. +For example, +the command + +.ti +.5i +scan\0`pick\0+todo\0\-after\0\*(lq31 Mar 83 0123 PST\*(rq` + +says to \fIscan\fR those messages in the indicated folder which meet the +appropriate criterion. +Note that since \fIpick\fR\0's context changes are written out prior to +\fIscan\fR\0's invocation, +you need not give the folder argument to \fIscan\fR as well. + +Regardless of the operation of the `\-list' switch, +the `\-sequence name' switch may be given once for each sequence the user +wishes to define. +For each sequence named, +that sequence will be defined to mean exactly those messages selected by +\fIpick\fR. +For example, + +.ti +.5i +pick\0\-from\0frated\0\-seq\0fred + +defines a new message sequence for the current folder called \*(lqfred\*(rq +which contains exactly those messages that were selected. + +Note that whenever \fIpick\fR processes a `\-sequence\ name' switch, +it sets `\-nolist'. + +By default, \fIpick\fR will zero the sequence before adding it. +This action can be disabled with the `\-nozero' switch, +which means that the messages selected by \fIpick\fR will be added to the +sequence, if it already exists, and any messages already a part of that +sequence will remain so. + +The `\-public' and `\-nopublic' switches are used by \fIpick\fR in the same +way \fImark\fR uses them. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +mark(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-datefield date' +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-zero' +.Ds +`\-list' is the default if no `\-sequence', `\-nolist' otherwise +.Co +If a folder is given, it will become the current folder. +.Hi +In previous versions of \fIMH\fR, +the \fIpick\fR command would \fIshow\fR, \fIscan\fR, or \fIrefile\fR the +selected messages. +This was rather \*(lqinverted logic\*(rq from the UNIX point of view, +so \fIpick\fR was changed to define sequences and output those sequences. +Hence, \fIpick\fR can be used to generate the arguments for all other +\fIMH\fR commands, +instead of giving \fIpick\fR endless switches for invoking those commands +itself. + +Also, previous versions of \fIpick\fR balked if you didn't specify a search +string or a date/time constraint. +The current version does not, and merely matches the messages you specify. +This lets you type something like: + +.ti +.5i +show\0`pick\0last:20\0\-seq\0fear` + +instead of typing + +.in +.5i +.nf +mark\0\-add\0\-nozero\0\-seq\0fear\0last:20 +show\0fear +.fi +.in -.5i + +Finally, +timezones used to be ignored when comparing dates: +they aren't any more. +.Hh +Use \*(lqpick sequence \-list\*(rq +to enumerate the messages in a sequence (such as for use +by a shell script). +.Bu +The argument to the `\-after' and `\-before' switches must be interpreted +as a single token by the shell that invokes \fIpick\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +Furthermore, +any occurance of `\-datefield' must occur prior to the `\-after' +or `\-before' switch it applies to. + +If \fIpick\fR is used in a back\-quoted operation, +such as + +.ti +.5i +scan\0`pick\0\-from\0jones` + +and \fIpick\fR selects no messages +(e.g., no messages are from \*(lqjones\*(rq), +then the shell will still run the outer command (e.g., \*(lqscan\*(rq). +Since no messages were matched, +\fIpick\fR produced no output, +and the argument given to the outer command as a result of backquoting +\fIpick\fR is empty. +In the case of \fIMH\fR programs, +the outer command now acts as if the default `msg' or `msgs' should be used +(e.g., \*(lqall\*(rq in the case of \fIscan\fR\0). +To prevent this unexpected behavior, +if `\-list' was given, +and if its standard output is not a tty, +then \fIpick\fR outputs the illegal message number \*(lq0\*(rq when it fails. +This lets the outer command fail gracefully as well. +.sp +The pattern syntax \*(lq[l-r]\*(rq is not supported; each letter +to be matched must be included within the square brackets. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/pop5.rf b/docs/historical/mh-6.8.5/conf/doc/pop5.rf new file mode 100644 index 0000000..b995eea --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/pop5.rf @@ -0,0 +1,72 @@ +.\" @(MHWARNING) +.\" @(#)$Id: pop5.rf,v 1.5 90/04/05 15:14:09 sources Exp $ +.SC POP 5 +.NA +POP \- POP database of subscribers +.SY +/usr/spool/pop/POP +.DE +The POP database has exactly the same format as the \fIBBoards\fR\0(5) +database, +although many fields are unused. +Currently, +only four fields are examined: + +.nf +.ta \w'encrypted password 'u +\fIfield\fR \fIvalue\fR +name the POP subscriber +primary file the maildrop for the POP subscriber + (relative to the POP directory) +encrypted password the POP subscriber's password +network address the remote user allowed to RPOP +.re +.fi + +This is an ASCII file. Each field within each POP subscriber's entry +is separated from the next by a colon. +Each POP subscriber is separated from the next by a new-line. +If the password field is null, then no password is valid. + +To add a new POP subscriber, +edit the file adding a line such as + +.ti +.5i +mrose::mrose:::::::0 + +Then, use \fIpopwrd\fR to set the password for the POP subscriber. +If you wish to allow POP subscribers to access their maildrops without +supplying a password (by using privileged ports), +fill\-in the network address field, as in: + +.ti +.5i +mrose::mrose:::mrose@nrtc-isc::::0 + +which permits \*(lqmrose@nrtc\-isc\*(rq to access the maildrop for the POP +subscriber \*(lqmrose\*(rq. +Multiple network addresses may be specified by separating them with commas, +as in: + +.ti +.5i +dave::dave:9X5/m4yWHvhCc::dave@romano.wisc.edu,dave@rsch.wisc.edu:::: + +To disable a POP subscriber from \fIreceiving\fR mail, +set the primary file name to the empty string. +To prevent a POP subscriber from \fIpicking\-up\fR mail, +set the encrypted password to \*(lq*\*(rq +and set the network address to the empty string. + +This file resides in home directory of the login \*(lqpop\*(rq. +Because of the encrypted passwords, +it can and does have general read permission. +.Fi +^/usr/spool/pop/POP~^POP database +.Sa +bboards(5), pop(8), popaka(8), popd(8), popwrd(8) +.Bu +A binary indexed file format should be available for fast access. + +Appropriate precautions must be taken to lock the file against changes +if it is to be edited with a text editor. +A \fIvipop\fR program is needed. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/pop8.rf b/docs/historical/mh-6.8.5/conf/doc/pop8.rf new file mode 100644 index 0000000..da89e49 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/pop8.rf @@ -0,0 +1,34 @@ +.\" @(MHWARNING) +.\" @(#)$Id: pop8.rf,v 1.5 90/04/05 15:14:16 sources Exp $ +.SC POP 8 +.NA +pop \- POP channel/mailer +.SY +/usr/mmdf/chans/pop +fd1 fd2 \%[y] + +.ti .5i +@(MHETCPATH)/spop +POP\-subscriber\ ... +.DE +For \fIMMDF\-II\fR, the POP channel delivers mail to the POP spool area for +later retrieval by POP subscribers. +For \fISendMail\fR, the SPOP mailer performs this task. + +For each address given, +these programs consult the \fIpop\fR\0(5) file to obtain information +about the POP\-subscriber named by the address. +The programs then deliver the message to the spool area for the +POP\-subscriber. +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +bboards(5), bbaka(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/popaka.rf b/docs/historical/mh-6.8.5/conf/doc/popaka.rf new file mode 100644 index 0000000..f38d817 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/popaka.rf @@ -0,0 +1,24 @@ +.\" @(MHWARNING) +.\" @(#)$Id: popaka.rf,v 1.5 90/04/05 15:14:23 sources Exp $ +.SC POPAKA 8 +.NA +popaka \- generate POP entries for SendMail or MMDF\-II alias file +.SY +@(MHETCPATH)/popaka +.DE +The \fIpopaka\fR program reads the POP database and produces +on its standard output a file suitable for inclusion in the SendMail or +\fIMMDF\-II\fR aliases +file. +The contents of this file divert mail for POP subscribers to the POP channel. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +pop(5) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/popauth.rf b/docs/historical/mh-6.8.5/conf/doc/popauth.rf new file mode 100644 index 0000000..f9cf135 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/popauth.rf @@ -0,0 +1,41 @@ +.\" @(MHWARNING) +.\" @(#)$Id: popauth.rf,v 1.1 1992/02/06 22:46:24 jromine Exp $ +.SC POPAUTH 8 +.NA +popauth - manipulate POP authorization DB +.SY +popauth +\%[\-init] \%[\-list] \%[\-user\ name] +\%[\-help] +.DE +The \fIpopauth\fR program allows a POP-subscriber to change the secret +value used to generate their authentication credentials. +In addition, +the super\-user or master POP user may use this program to either +initialize the database or to print public information from it. +\fIpopauth\fR is useful only when the APOP configuration option is defined. +(This configuration option defines the name of the POP authorization DB.) + +Under normal usage, +\fIpopauth\fR prompts for a new secret, +just like the \fIpasswd\fR program. +It then updates the POP authorization DB accordingly. + +With the `\-init' switch, +the super-user or master POP user can create a new (or zero the existing) +POP authorization DB. + +With the `\-list' switch, +the super-user or master POP user can print out public information +about the named subscriber (or all subscribers). +.Fi +^/etc/pop.auth.*~^POP authorization DB +.Pr +None +.Sa +popd(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/popd.rf b/docs/historical/mh-6.8.5/conf/doc/popd.rf new file mode 100644 index 0000000..f1f8fba --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/popd.rf @@ -0,0 +1,54 @@ +.\" @(MHWARNING) +.\" @(#)$Id: popd.rf,v 1.9 1992/02/04 21:13:28 jromine Exp $ +.SC POPD 8 +.NA +popd \- the POP server +.SY +/usr/etc/popd +\%[\-p\ portno] +(under /etc/rc.local) +.DE +The \fIpopd\fR server implements the Post Office Protocol (version 3), +as described in RFC1081 and RFC1082. +Basically, the server listens on the TCP port named \*(lqpop\*(rq +for connections and enters the +POP upon establishing a connection. +The `\-p' option overrides the default TCP port. +.PP +If the POP2 configuration option is defined, +then the server also implements version 2 of the protocol. +.PP +If the APOP configuration option is defined, +then the server supports a non-standard mechanism for identity-establishment +in which authentication credentials are used to provide for origin +authentication and reply protection, +but which do not involve sending a password in the clear over the network. +See \fIpopauth\fR(8) for more details. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +\fIPost Office Protocol - version 3\fR (aka RFC\-1081), +.br +\fIPost Office Protocol - version 3: Extended service offerings\fP +(RFC\-1082), +.br +pop(5) +.De +None +.Co +None +.Hi +For historical reasons, the \fIMH\fP POP defaults to using +the port named \*(lqpop\*(rq (109) instead of its newly assigned +port named \*(lqpop3\*(rq (110). +See the POPSERVICE configuration option for more details. +.sp +Previous versions of the server (10/28/84) had the restriction that +the POP client may retrieve messages for login users only. +This restriction has been lifted, +and true POB support is available +(sending mail to a mailbox on the POP service host +which does not map to a user\-id in the password file). +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/popi.rf b/docs/historical/mh-6.8.5/conf/doc/popi.rf new file mode 100644 index 0000000..0daf382 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/popi.rf @@ -0,0 +1,124 @@ +.\" @(MHWARNING) +.\" @(#)$Id: popi.rf,v 1.1 1992/02/06 22:46:24 jromine Exp $ +.SC POPI 1 +.NA +popi \- POP initiator +.SY +popi +\%[+folder] +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +@BEGIN: BPOP +\%[\-auto] \%[\-noauto] +\%[\-mshproc\ program] +@END: BPOP +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +\%[\-help] +.DE +\fIpopi\fR is an interactive program that implements the client side +of the Post Office Protocol (version 3). + +When invoked, +\fIpopi\fR establishes a POP connection, +and enters a command loop. +The user may type most of the normal POP commands, +with a couple of additions: +The commands that \fIpop\fR currently supports are: +.sp 1 +.in +.5i +dele msg +.br +last +.br +list [msg] +.br +noop +.br +quit +.br +retr msg +.br +rset +.br +scan +.br +stat +.br +top +@BEGIN: BPOP +.br +msh +@END: BPOP +.in -.5i +.sp +The \fIretr\fR command retrieves a message into the folder specified +on the command line. +The \fIscan\fR command downloads an MH format-string to the server +(as determined from the `\-form\ formatfile' and `\-format switches), +so that future invocations of the \fIlist\fR command will include a +scan listing. +The \fIquit\fR command terminates \fIpopi\fR, +as does typing CTRL\-D. + +@BEGIN: BPOP +The \fImsh\fR command invokes the \fImshproc\fR. +To override the default \fImshproc\fR and the profile entry, +use the `\-mshproc\ program' switch. +The `\-auto' switch causes \fIpopi\fR to invoke the \fImshproc\fR directly, +and thence terminate when the \fImshproc\fR terminates. +@END: BPOP + +The `\-host\ host' switch specifies the POP server to use. +If the `\-user\ user' switch is not given, +then the current username is used. +Normally, +\fIpopi\fR will prompt for a password to use. +However, +if the `\-apop' switch is given, +\fIpopi\fR will generate authentication credentials to provide +for origin authentication and replay protection, +but which do not involve sending a password in the clear over the network. +Otherwise, +if the `\-rpop' switch is given, +then \fIpopi\fR will try to use a \*(lqtrusted\*(rq connection +(ala the BSD r-commands). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^@(MHETCPATH)/mtstailor~^tailor file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +@BEGIN: BPOP +.Ps +^mshproc:~^Program to read a given BBoard +@END: BPOP +.Sa +msh(1) +.De +`+folder' defaults to \*(lqinbox\*(rq +.Ds +`\-noapop' +.Ds +`\-norpop' +@BEGIN: BPOP +.Ds +`\-auto' +@END: BPOP +.Ds +`\-format' defaulted as described above +.Ds +`\-width' defaulted to the width of the terminal +.Co +The folder into which messages are being incorporated will become the +current folder. +The current message is unchanged. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIinc\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/popwrd.rf b/docs/historical/mh-6.8.5/conf/doc/popwrd.rf new file mode 100644 index 0000000..f17d548 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/popwrd.rf @@ -0,0 +1,33 @@ +.\" @(MHWARNING) +.\" @(#)$Id: popwrd.rf,v 1.5 90/04/05 15:14:29 sources Exp $ +.SC POPWRD 8 +.NA +popwrd \- set password for a POP subscriber +.SY +@(MHETCPATH)/popwrd +POP\-subscriber +.DE +The \fIpopwrd\fR program lets the super\-user or the master POP user +or a \*(lqleader\*(rq of a POP subscriber change the password field for the +POP subscriber in the POP database. +This program is very similar to the \fIpasswd\fR\0(1) program. + +Since only the super\-user and the master POP user may change any other +fields of the POP database (using an ordinary editor), +it is possible for the system administrator to delegate responsibility to +others to manage groups of POP subscribers. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +pop(5) +.De +None +.Co +None +.Bu +Although \fIpopwrd\fR does locking against other invocations of \fIpopwrd\fR, +editor locking for the POP database in general is not implemented. +A \fIvipop\fR program is needed. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/post.rf b/docs/historical/mh-6.8.5/conf/doc/post.rf new file mode 100644 index 0000000..d8f2d08 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/post.rf @@ -0,0 +1,129 @@ +.\" @(MHWARNING) +.\" @(#)$Id: post.rf,v 1.7 1992/10/29 22:24:50 jromine Exp $ +.SC POST 8 +.NA +post \- deliver a message +.SY +@(MHETCPATH)/post +\%[\-alias\ aliasfile] +\%[\-filter\ filterfile] \%[\-nofilter] +@BEGIN: TMA +\%[\-encrypt] \%[\-noencrypt] +@END: TMA +\%[\-format] \%[\-noformat] +@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@END: MIME +\%[\-msgid] \%[\-nomsgid] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +file +\%[\-help] +.DE +\fIPost\fR is the program called by \fIsend\fR\0(1) +to deliver the message in \fIfile\fR to local and remote users. +In fact, all of the functions attributed to \fIsend\fR +on its manual page are performed by \fIpost\fR, +with \fIsend\fR acting as a relatively simple preprocessor. +Thus, it is \fIpost\fR which parses the various header fields, +appends From: and Date: lines, +@BEGIN: MMDFMTS +and interacts with the \fIMMDF\fR transport system. +@END: MMDFMTS +@BEGIN: MHMTS +and delivers and/or queues the messages. +@END: MHMTS +@BEGIN: SENDMTS +and interacts with the \fISendMail\fR transport system. +@END: SENDMTS +\fIPost\fR will not normally be called directly by the user. + +\fIPost\fR +searches the \*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqBcc:\*(rq, \*(lqFcc:\*(rq, and \*(lqResent\-xxx:\*(rq +header lines of +the specified message for destination addresses, checks these +addresses for validity, and formats them so as to conform to +ARPAnet Internet Message Format protocol, +unless the `\-noformat' flag is set. +This will normally cause \*(lq@\fIlocal\-site\fR\*(rq to +be appended to each local destination address, as well +as any local return addresses. +The `\-width\ columns' switch can be used to indicate the preferred length +of the header components that contain addresses. + +If a \*(lqBcc:\*(rq field is encountered, +its addresses will be used for delivery, +and the \*(lqBcc:\*(rq field will be removed from the message sent to sighted +recipients. +The blind recipients will receive an entirely new message with +a minimal set of headers. +Included in the body of the message will be a copy of the message sent to the +sighted recipients. +If `\-filter\ filterfile' is specified, +then this copy is filtered (re\-formatted) +prior to being sent to the blind recipients. +@BEGIN: MIME +Otherwise, +to use the MIME rules for encapsulation, +specify the `\-mime' switch. +@END: MIME + +The `\-alias\ aliasfile' switch can be used to specify a file that post should +take aliases from. More than one file can be specified, each being preceded +with `\-alias'. +In any event, +the primary alias file is read first. + +The `\-msgid' switch indicates that +a \*(lqMessage\-ID:\*(rq or \*(lqResent\-Message\-ID:\*(rq +field should be added to the header. + +The `\-verbose' switch indicates that the user should be informed of each +step of the posting/filing process. + +The `\-watch' switch indicates that the user would like to watch the transport +system's handling of the message (e.g., local and \*(lqfast\*(rq delivery). + +\fIPost\fR consults the envariable \fB$SIGNATURE\fR to +determine the sender's personal name in constructing the \*(lqFrom:\*(rq line +of the message. +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +^@(MHBINPATH)/refile~^Program to process Fcc:s +^@(MHETCPATH)/mhl~^Program to process Bcc:s +^@(MHETCPATH)/MailAliases~^Primary alias file +.Pr +\fIpost\fR does \fBNOT\fR consult the user's \&.mh\(ruprofile +.Sa +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822), +.br +mhmail(1), send(1), mh\-mail(5), mh\-alias(5) +.De +`\-alias @(MHETCPATH)/MailAliases' +@BEGIN: TMA +`\-noencrypt' +@END: TMA +.Ds +`\-format' +@BEGIN: MIME +.Ds +`\-nomime' +@END: MIME +.Ds +`\-nomsgid' +.Ds +`\-noverbose' +.Ds +`\-nowatch' +.Ds +`\-width\ 72' +.Ds +`\-nofilter' +.Co +None +.Bu +\*(lqReply\-To:\*(rq fields are allowed to have groups in them according to the +822 specification, +but \fIpost\fR won't let you use them. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/prev.rf b/docs/historical/mh-6.8.5/conf/doc/prev.rf new file mode 100644 index 0000000..7490caa --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/prev.rf @@ -0,0 +1,47 @@ +.\" @(MHWARNING) +.\" @(#)$Id: prev.rf,v 1.6 90/12/17 16:03:39 mh Exp $ +.SC PREV 1 +.NA +prev \- show the previous message +.SY +prev +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[\-switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fIPrev\fR performs a \fIshow\fR on the previous message in the specified +(or current) folder. +Like \fIshow\fR, it passes any switches on to the +program named by \fIshowproc\fR, which is called to list the message. +This command +is almost exactly equivalent to \*(lqshow prev\*(rq. +Consult the manual entry for \fIshow\fR\0(1) for all the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^showproc:~^Program to show the message +.Sa +show(1), next(1) +.De +`+folder' defaults to the current folder +.Ds +`\-header' +.Co +If a folder is specified, it will become the current folder. +The message that is shown (i.e., the previous message in sequence) +will become the current message. +.Bu +\fIprev\fR is really a link to the \fIshow\fR program. +As a result, +if you make a link to \fIprev\fR and that link is not called \fIprev\fR, +your link will act like \fIshow\fR instead. +To circumvent this, +add a profile\-entry for the link to your \fIMH\fR profile and add the +argument \fIprev\fR to the entry. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/prompter.rf b/docs/historical/mh-6.8.5/conf/doc/prompter.rf new file mode 100644 index 0000000..3ff4504 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/prompter.rf @@ -0,0 +1,115 @@ +.\" @(MHWARNING) +.\" @(#)$Id: prompter.rf,v 1.8 1992/05/12 22:23:34 jromine Exp $ +.SC PROMPTER 1 +.NA +prompter \- prompting editor front-end for MH +.SY +prompter +\%[\-erase\ chr] +\%[\-kill\ chr] +\%[\-prepend] \%[\-noprepend] +\%[\-rapid] \%[\-norapid] +\%[\-doteof] \%[\-nodoteof] +file +\%[\-help] +.DE +This program is normally not invoked directly by users +but takes the place of an editor and acts as an editor front\-end. +It operates on an 822\-style message draft skeleton specified by file, +normally provided by \fIcomp\fR, \fIdist\fR, \fIforw\fR, or \fIrepl\fR. + +\fIPrompter\fR is an editor which allows rapid composition of +messages. +It is particularly useful to network and low\-speed +(less than 2400 baud) users of \fIMH\fR. +It is an \fIMH\fR program in that +it can have its own profile entry with switches, +but it is not invoked directly by the user. +The commands \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR +invoke \fIprompter\fR as an editor, +either when invoked with `\-editor\ prompter', +or by the profile entry \*(lqEditor:\ prompter\*(rq, +or when given the command `edit\ prompter' at \*(lqWhat now?\*(rq level. + +For each empty component \fIprompter\fR finds in the draft, +the user is prompted for a response; +A will cause the whole component to be left out. +Otherwise, +a `\\' preceding a will continue the response on the next line, +allowing for multiline components. +Continuation lines \fBmust\fR begin with a space or tab. + +Each non\-empty component is copied to the draft and displayed on the +terminal. + +The start of the message body is denoted by a blank line or a line of dashes. +If the body is non\-empty, the prompt, which isn't written to the file, is + + \*(lq--------Enter additional text\*(rq, + +or (if `\-prepend' was given) + + \*(lq--------Enter initial text\*(rq. + +Message\-body typing is terminated with an end\-of\-file (usually CTRL\-D). +With the `\-doteof' switch, a period on a line all by itself also signifies +end\-of\-file. +At this point control is returned to the calling program, +where the user is asked \*(lqWhat now?\*(rq. +See \fIwhatnow\fR for the valid options to this query. + +By using the `\-prepend' switch, the user can add type\-in to the beginning +of the message body and have the rest of the body follow. +This is useful for the \fIforw\fR command. + +By using the `\-rapid' switch, +if the draft already contains text in the message\-body, +it is not displayed on the user's terminal. +This is useful for low\-speed terminals. + +The line editing characters for kill and erase may be +specified by the user via the arguments `\-kill\ chr' and `\-erase\ chr', +where chr may be a character; or `\\nnn', where \*(lqnnn\*(rq is the +octal value for the character. + +An interrupt (usually CTRL\-C) during component typing will abort +\fIprompter\fR and the \fIMH\fR command that invoked it. +An interrupt during message\-body typing is equivalent to CTRL\-D, +for historical reasons. +This means that \fIprompter\fR should finish up and exit. + +The first non\-flag argument to \fIprompter\fR +is taken as the name of the draft file, and +subsequent non\-flag arguments are ignored. +.\" (\fIRepl\fR invokes editors with two file arguments: +.\" the draft file name and the replied\-to message file name.) +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/tmp/prompter*~^Temporary copy of message +.Pr +prompter\-next: To name the editor to be used on exit from \fIprompter\fR +.Ps +^Msg\-Protect:~^To set mode when creating a new draft +.Sa +comp(1), dist(1), forw(1), repl(1), whatnow(1) +.De +`\-prepend' +.Ds +`\-norapid' +.Ds +`\-nodoteof' +.Co +None +.Hh +The `\-rapid' option is particularly useful with \fIforw\fP, and +`\-noprepend' is useful with \fIcomp\ \-use\fP. + +The user may wish to link \fIprompter\fR under several names +(e.g., \*(lqrapid\*(rq) and give appropriate switches +in the profile entries under these names (e.g., \*(lqrapid: -rapid\*(rq). +This facilitates invoking prompter differently for +different \fIMH\fP commands (e.g., \*(lqforw: -editor rapid\*(rq). +.Bu +\fIPrompter\fR uses \fIstdio\fR\0(3), so it will lose if you edit files +with nulls in them. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/rcvstore.rf b/docs/historical/mh-6.8.5/conf/doc/rcvstore.rf new file mode 100644 index 0000000..63d5398 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/rcvstore.rf @@ -0,0 +1,87 @@ +.\" @(MHWARNING) +.\" @(#)$Id: rcvstore.rf,v 1.7 1992/11/20 00:40:37 jromine Exp $ +.SC RCVSTORE 1 +.NA +rcvstore \- incorporate new mail asynchronously +.SY +@(MHETCPATH)/rcvstore +\%[+folder] +\%[\-create] \%[\-nocreate] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] +.DE +\fIRcvstore\fR incorporates a message from the standard input +into an \fIMH\fR folder. +If `+folder' isn't specified, +a folder in the user's \fIMH\fR directory will be used, either that +specified by the \*(lqInbox:\*(rq entry in the user's profile, or +the folder named \*(lqinbox\*(rq. +The new message being incorporated is assigned the next highest +number in the folder. +If the specified (or default) folder doesn't exist, +then it will be created if the `\-create' option is specified, +otherwise \fIrcvstore\fP will exit. + +If the user's profile contains a \*(lqMsg\-Protect: nnn\*(rq entry, it +will be used as the protection on the newly created messages, +otherwise the \fIMH\fR default of 0644 will be used. +During all operations on messages, +this initially assigned protection will +be preserved for each message, so \fIchmod\fR(1) may be used to set a +protection on an individual message, and its protection will be +preserved thereafter. + +\fIRcvstore\fR will incorporate anything except zero length messages +into the user's MH folder. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIrcvstore\fR will add the newly incorporated message to each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +Note that \fIrcvstore\fR will not zero each sequence prior to adding messages. + +Furthermore, +the incoming messages may be added to user-defined sequences as +they arrive by appropriate use of the `\-sequence' option. +As with \fIpick\fP, +use of the `\-zero' and `\-nozero' switches can also be used to zero +old sequences or not. +Similarly, +use of the `\-public' and `\-nopublic switches +may be used to force additions to public and private sequences. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Inbox:~^To find the default inbox +.Ps +^Msg\-Protect:~^To set mode when creating a new message +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Sa +inc(1), pick(1), mh\-mail(5) +.De +`+folder' defaults to \*(lqinbox\*(rq +.Ds +`\-create' +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-nozero' +.Co +No context changes will be attempted, +with the exception of sequence manipulation. +.Bu +If you use the \*(lqUnseen\-Sequence\*(rq profile entry, +\fIrcvstore\fP could try to update the context while another +\fIMH\fP process is also trying to do so. +This can cause the context to become corrupted. +To avoid this, do not use \fIrcvstore\fP +if you use the \*(lqUnseen\-Sequence\*(rq profile entry. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/refile.rf b/docs/historical/mh-6.8.5/conf/doc/refile.rf new file mode 100644 index 0000000..8d4f3fb --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/refile.rf @@ -0,0 +1,121 @@ +.\" @(MHWARNING) +.\" @(#)$Id: refile.rf,v 1.12 1992/12/19 00:20:58 jromine Exp $ +.SC REFILE 1 +.NA +refile \- file message in other folders +.SY +refile +\%[msgs] +\%[\-draft] +\%[\-link] \%[\-nolink] +\%[\-preserve] \%[\-nopreserve] +\%[\-src\ +folder] +\%[\-file\ file] +\%[\-rmmproc program] \%[\-normmproc] ++folder ... +\%[\-help] +.DE +\fIRefile\fR moves (\fImv\fR\0(1)) or links (\fIln\fR\0(1)) messages from a +source folder into one or more destination folders. +If you think +of a message as a sheet of paper, this operation is not +unlike filing the sheet of paper (or copies) in file cabinet +folders. +When a message is filed, it is linked into the +destination folder(s) if possible, and is copied otherwise. +As long +as the destination folders are all on the same file system, multiple filing +causes little storage overhead. +This facility provides a good way to cross\-file or multiply\-index +messages. +For example, if a message is received from Jones about +the ARPA Map Project, the command + + refile\0cur\0+jones\0+Map + +would allow the message to be found in either of the two +folders `jones' or `Map'. + +The option `\-file\ file' directs \fIrefile\fR to use the specified +file as the source message to be filed, rather than a message from +a folder. +Note that the file should be a validly formatted message, +just like any other \fIMH\fR message. +It should \fBNOT\fR be in mail drop format +(to convert a file in mail drop format to a folder of \fIMH\fR messages, +see \fIinc\fR\0(1)). + +If a destination folder doesn't exist, \fIrefile\fR will ask if you +want to create it. +A negative response will abort the file operation. +If the standard input for \fIrefile\fR is \fInot\fR a tty, +then \fIrefile\fR will not ask any questions and will proceed as if +the user answered \*(lqyes\*(rq to all questions. + +The option `\-link' preserves the source folder copy of the message +(i.e., it does a \fIln\fR(1) rather than a \fImv\fR(1)), whereas, +`\-nolink' deletes the filed messages from the source +folder. +Normally, when a message is filed, it is assigned the +next highest number available in each of the destination folders. +Use of the `\-preserve' switch will override this message +renaming, but name conflicts may occur, so +use this switch cautiously. + +If `\-link' is not specified (or `\-nolink' is specified), +the filed messages will be removed from the +source folder, by renaming them with a site-dependent prefix (usually +a comma). + +.ne 4 +If the user has a profile component such as + + rmmproc: /bin/rm + +then \fIrefile\fR +will instead call the named program to delete the message files. +The user may specify `\-rmmproc program' on the command line +to override this profile specification. +The \`-normmproc' option forces +the message files to be deleted +by renaming them as described above. + +The `\-draft' switch tells \fIrefile\fR to file the /draft. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^rmmproc:~^Program to delete the message +.Sa +folder(1) +.De +`\-src\ +folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-nolink' +.Ds +`\-nopreserve' +.Co +If `\-src\ +folder' is given, it will become the +current folder. +If neither `\-link' nor `all' is specified, +the current message in the source +folder will be set to the last message specified; otherwise, the +current message won't be changed. + +If the Previous\-Sequence profile entry is set, +in addition to defining the named sequences from the source folder, +\fIrefile\fR will also define those sequences for the destination folders. +See \fImh\-sequence\fR\0(5) for information concerning the previous sequence. +.Bu +Since \fIrefile\fR uses your \fIrmmproc\fP to delete the message, +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP without +specifying `\-normmproc', +or you will create an infinte loop. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/repl.rf b/docs/historical/mh-6.8.5/conf/doc/repl.rf new file mode 100644 index 0000000..fe3106e --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/repl.rf @@ -0,0 +1,282 @@ +.\" @(MHWARNING) +.\" @(#)$Id: repl.rf,v 1.14 1996/02/09 00:25:00 jromine Exp $ +.SC REPL 1 +.NA +repl \- reply to a message +.SY +repl +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-cc\ all/to/cc/me] \%[\-nocc\ all/to/cc/me] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-fcc\ +folder] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +.\" \%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@END: MIME +\%[\-query] \%[\-noquery] +\%[\-width\ columns] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIRepl\fR aids a user in producing a reply to an existing +message. +\fIRepl\fR uses a reply template to guide its actions when constructing +the message draft of the reply. +In its simplest form (with no arguments), +it will set up +a message\-form skeleton in reply to the current message in the +current folder, and invoke the whatnow shell. +The default reply template will direct \fIrepl\fR to construct +the composed message as follows: + +.nf +.in 1i +To: or +cc: , , and yourself +Subject: Re: +In\-reply\-to: Your message of . +.ti +\w'In\-reply\-to: 'u + +.in .5i +.fi + +where field names enclosed in angle brackets (<\ >) indicate the +contents of the named field from the message to which the reply +is being made. A reply template is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +The `\-cc\ type' switch takes an argument which specifies +who gets placed on the \*(lqcc:\*(rq list of the reply. +The `\-query' switch modifies the action of `\-cc\ type' switch by +interactively asking you if each address that normally would be placed +in the \*(lqTo:\*(rq and \*(lqcc:\*(rq list should actually be sent a copy. +(This is useful for special\-purpose replies.) +Note that the position of the `\-cc' and `\-nocc' switches, +like all other switches which take a positive and negative form, +is important. + +.\" --this seems to not be used anymore. /JLR +.\" With the `\-format' switch one can indicate if Internet\-style +.\" formatting should be used (or not be used with `\-noformat'). +.\" If present (the default), then +Lines beginning with the fields +\*(lqTo:\*(rq, \*(lqcc:\*(rq, and \*(rqBcc:\*(rq +will be standardized and have duplicate addresses removed. +In addition, the `\-width\ columns' switch will guide \fIrepl\fR's formatting +of these fields. + +If the file named \*(lqreplcomps\*(rq exists in the user's MH directory, +it will be used instead of the default form. +In either case, the file specified by `\-form\ formfile' will be used +if given. + +If the draft already exists, +\fIrepl\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIrepl\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. +Note that while in the editor, +the message being replied to is available through a link named \*(lq@\*(rq +(assuming the default \fIwhatnowproc\fR\0). +In addition, the actual pathname of the message is stored in the envariable +\fB$editalt\fR, +and the pathname of the folder containing the message is stored in the +envariable \fB$mhfolder\fR. + +Although \fIrepl\fR uses the `\-form\ formfile' switch to direct it how +to construct the beginning of the draft, the `\-filter\ filterfile' +switch directs \fIrepl\fR as to how the message being replied\-to +should be formatted in the body of the draft. +If `\-filter' is not specified, +then the message being replied\-to is not included in the body of the +draft. +If `\-filter\ filterfile' is specified, +then the message being replied\-to is filtered (re\-formatted) prior to +being output to the body of the draft. +The filter file for \fIrepl\fR should be a standard form file for +\fImhl\fR, as \fIrepl\fR will invoke \fImhl\fR to format the message +being replied\-to. +There is no default message filter (`\-filter' must be followed by a +file name). +A filter file that is commonly used is: + +.nf +.in +.5i +: +body:nocomponent,compwidth=9,offset=9 +.in -.5i +.fi + +which says to output a blank line and then the body of the message +being replied\-to, indented by one tab\-stop. +Another format popular on USENET is: + +.nf +.in +.5i +.ie n \{ +message-id:nocomponent,\|nonewline,\\ +formatfield=\*(lqIn message %{text},\ \*(rq \} +.el message-id:nocomponent,\|nonewline,\|formatfield=\*(lqIn message %{text},\ \*(rq +from:nocomponent,\|formatfield=\*(lq%(friendly{text}) writes:\*(rq +body:component=\*(lq>\*(rq,\|overflowtext=\*(lq>\*(rq,\|overflowoffset=0 +.in -.5i +.fi + +Which cites the Message-ID and author +of the message being replied\-to, +and then outputs each line of the body prefaced +with the \*(lq>\*(rq character. + +@BEGIN: MIME +To use the MIME rules for encapsulation, +specify the `\-mime' switch. +This directs \fIrepl\fR to generate an \fImhn\fR composition file. +Note that MH will not invoke \fImhn\fR automatically, +unless you add this line to your \&.mh\(ruprofile file: +.sp +.in +.5i +automhnproc: mhn +.in -.5i +.sp +Otherwise, +you must specifically give the command +.sp +.in +.5i +What now? edit mhn +.in -.5i +.sp +prior to sending the draft. + +If you don't want to use this feature, +the manual page for \fIforw\fR contains another idea on how you can +automate this somewhat. + +@END: MIME +If the `\-annotate' switch is given, +the message being replied\-to will be annotated with the lines + + Replied:\ date + Replied:\ addrs + +where the address list contains one line for each addressee. +The annotation +will be done only if the message is sent directly from \fIrepl\fR. +If the message is not sent immediately from \fIrepl\fR, +\*(lqcomp\ \-use\*(rq may be used to re\-edit and send the constructed message, +but the annotations won't take place. +The `\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +The `\-fcc\ +folder' switch can be used to automatically specify a folder to +receive Fcc:s. +More than one folder, each preceeded by `\-fcc' can be named. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIrepl\fR also recognizes the following additional +\fIcomponent\fR escape: +.sp 1 +.nf +.ta \w'Escape 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +\fIfcc\fR string Any folders specified with `\-fcc\ folder' +.re +.fi + +To avoid reiteration, +\fIrepl\fR strips any leading `Re: ' strings from +the \fIsubject\fR component. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIrepl\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^@(MHETCPATH)/replcomps~^The reply template +^or /replcomps~^Rather than the standard template +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^mhlproc:~^Program to filter message being replied\-to +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +comp(1), dist(1), forw(1), send(1), whatnow(1), mh\-format(5) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to cur +.Ds +`\-nocc\ all' at ATHENA sites, `\-cc\ all' otherwise +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noinplace' +@BEGIN: MIME +.Ds +`\-nomime' +@END: MIME +.Ds +`\-noquery' +.Ds +`\-width\ 72' +.Co +If a folder is given, it will become the current folder. +The message replied\-to will become the current message. +.Hi +Prior to using the format string mechanism, +`\-noformat' used to cause address headers to be output as\-is. +Now all address fields are formatted using Internet standard guidelines. +.Bu +If any addresses occur in the reply template, +addresses in the template that do not contain hosts are defaulted incorrectly. +Instead of using the localhost for the default, +\fIrepl\fR uses the sender's host. +Moral of the story: if you're going to include addresses in a reply template, +include the host portion of the address. + +The `\-width columns' switch is only used +to do address-folding; other headers are not line\-wrapped. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIrepl\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIrepl\fR won't run it. + +If your current working directory is not writable, +the link named \*(lq@\*(rq is not available. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/rmail.rf b/docs/historical/mh-6.8.5/conf/doc/rmail.rf new file mode 100644 index 0000000..c9ee5ca --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/rmail.rf @@ -0,0 +1,35 @@ +.\" @(MHWARNING) +.\" @(#)$Id: rmail.rf,v 1.5 90/04/05 15:15:00 sources Exp $ +.SC RMAIL 8 +.NA +rmail \- UUCP interface to mail +.SY +rmail +address\ ... +.DE +\fIRmail\fR is intended as a replacement for those systems without +\fISendMail\fR or \fIMMDF\fR. +It is normally invoked by \fIuux\fR on behalf of the remote \fIUUCP\fR site. +For each address, it decides where to send it: +either locally, via another \fIUUCP\fR link, or via the Internet. + +\fIRmail\fR implements a crude access control facility by consulting the +files \fBRmail.OkHosts\fR and \fBRmail.OkDests\fR in the \fB@(MHETCPATH)/\fR +directory. +Hosts listed in the former file can send messages to anywhere they please. +Hosts listed in the latter file can receive messages from anywhere. +Note that a host listed in the first file is implicitly listed in the second +file. +.Fi +^@(MHETCPATH)/mtstailor~^tailor file +^@(MHETCPATH)/Rmail.OkHosts~^list of privileged hosts +^@(MHETCPATH)/Rmail.OkDests~^list of privileged destinations +.Pr +None +.Sa +mf(1) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/rmf.rf b/docs/historical/mh-6.8.5/conf/doc/rmf.rf new file mode 100644 index 0000000..393ca76 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/rmf.rf @@ -0,0 +1,64 @@ +.\" @(MHWARNING) +.\" @(#)$Id: rmf.rf,v 1.7 1992/05/12 22:24:59 jromine Exp $ +.SC RMF 1 +.NA +rmf \- remove an MH folder +.SY +rmf +\%[+folder] +\%[\-interactive] \%[\-nointeractive] +\%[\-help] +.DE +\fIRmf\fR removes all of the messages (files) within the specified +(or default) folder, +and then removes the folder (directory) itself. +If there are any files within the folder which are not a part of \fIMH\fR, +they will \fInot\fR be removed, and an error will be produced. +If the folder is given explicitly or the `\-nointeractive' option is given, +then the folder will be removed without confirmation. +Otherwise, the user will be asked for confirmation. +If \fIrmf\fR can't find the current folder, for some reason, +the folder to be removed defaults to `+inbox' (unless overridden by +user's profile entry \*(lqInbox\*(rq) with confirmation. + +\fIRmf\fR irreversibly deletes messages that don't have other links, +so use it with caution. + +If the folder being removed is a subfolder, the parent +folder will become the new current folder, and \fIrmf\fR will +produce a message telling the user this has happened. +This provides an easy mechanism for selecting a set of messages, +operating on the list, then removing the list and returning to +the current folder from which the list was extracted. + +\fIRmf\fR of a read\-only folder will delete the private sequence +and cur information +(i.e., \*(lqatr\-\fIseq\fR\-\fIfolder\fR\*(rq entries) +from the profile without affecting the folder itself. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Inbox:~^To find the default inbox +.Sa +rmm(1) +.De +`+folder' defaults to the current folder, usually with confirmation +.Ds +`\-interactive' if +folder' not given, `\-nointeractive' otherwise +.Co +\fIRmf\fR will set the current folder to the parent folder if a +subfolder is removed; or if the current folder is removed, +it will make \*(lqinbox\*(rq current. +Otherwise, it doesn't change the +current folder or message. +.Bu +Although intuitively one would suspect that \fIrmf\fR works recursively, +it does not. +Hence if you have a sub\-folder within a folder, +in order to \fIrmf\fR the parent, +you must first \fIrmf\fR each of the children. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/rmm.rf b/docs/historical/mh-6.8.5/conf/doc/rmm.rf new file mode 100644 index 0000000..d35e048 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/rmm.rf @@ -0,0 +1,59 @@ +.\" @(MHWARNING) +.\" @(#)$Id: rmm.rf,v 1.10 91/01/25 15:22:28 mh Exp $ +.SC RMM 1 +.NA +rmm \- remove messages +.SY +rmm +\%[+folder] \%[msgs] +\%[\-help] +.DE +\fIRmm\fR removes the specified messages by renaming the message +files with preceding commas. Many sites consider files that start with a +comma to be a temporary backup, and arrange for \fIcron\fR\0(8) +to remove such files once a day. + +If the user has a profile component such as + + rmmproc: /bin/rm + +then instead of simply renaming the message file, +\fIrmm\fR +will call the named program to delete the file. +Note that at most installations, +\fIcron\fR\0(8) is told to remove files that begin with a comma once a night. + +Some users of csh prefer the following: + + alias rmm 'refile +d' + +where folder +d is a folder for deleted messages, and + + alias mexp 'rm `mhpath +d all`' + +is used to \*(lqexpunge\*(rq deleted messages. + +The current message is not changed by \fIrmm\fR, so a \fInext\fR will +advance to the next message in the folder as expected. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^rmmproc:~^Program to delete the message +.Sa +rmf(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Co +If a folder is given, it will become the current folder. +.Bu +Since \fIrefile\fR uses your \fIrmmproc\fP to delete the message, +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP without +specifying `\-normmproc', +or you will create an infinte loop. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/scan.rf b/docs/historical/mh-6.8.5/conf/doc/scan.rf new file mode 100644 index 0000000..e5c8a26 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/scan.rf @@ -0,0 +1,159 @@ +.\" @(MHWARNING) +.\" @(#)$Id: scan.rf,v 1.14 1995/12/06 23:22:17 jromine Exp $ +.SC SCAN 1 +.NA +scan \- produce a one line per message scan listing +.SY +scan +\%[+folder] \%[msgs] +\%[\-clear] \%[\-noclear] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-header] \%[\-noheader] +\%[\-width\ columns] +\%[\-reverse] \%[\-noreverse] +\%[\-file filename] +\%[\-help] +.DE +\fIScan\fR produces a one\-line\-per\-message listing of the specified +messages. +Each \fIscan\fR line contains the message number (name), +the date, the \*(lqFrom:\*(rq field, the \*(lqSubject\*(rq field, and, if room +allows, some of the body of the message. +For example: + +.nf +.in +.5i +.ta \w'15+- 'u +\w'07/\|05x 'u +\w'Dcrocker 'u +15+ 07/\|05 Dcrocker nned\0\0\*(<> if the body is sufficiently short. +\fIScan\fR actually reads each of the specified +messages and parses them to extract the desired fields. +During parsing, appropriate error messages will be produced if +there are format errors in any of the messages. + +The `\-header' switch produces a header line prior to the \fIscan\fR +listing. +Currently, +the name of the folder and the current date and time are output +(see the \fBHISTORY\fR section for more information). + +If the `\-clear' switch is used and \fIscan's\fR output is directed to a +terminal, +then \fIscan\fR will consult the \fB$TERM\fR and \fB$TERMCAP\fR +envariables to determine your +terminal type in order to find out how to clear the screen prior to exiting. +If the `\-clear' switch is used and \fIscan's\fR output is not directed to +a terminal (e.g., a pipe or a file), +then \fIscan\fR will send a formfeed prior to exiting. + +For example, the command: + +.ti +.5i +(scan \-clear \-header; show all \-show pr \-f) | lpr + +produces a scan listing of the current folder, followed by a formfeed, +followed by a formatted listing of all messages in the folder, one per +page. Omitting `\-show\ pr\ \-f' will cause the messages to be concatenated, +separated by a one\-line header and two blank lines. + +To override the output format used by \fIscan\fR, +the `\-format\ string' or `\-form\ file' switches are used. +This permits individual fields of the scan listing to be extracted with ease. +The string is simply a format string and the file is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIscan\fR also recognizes the following additional \fIcomponent\fR escapes: +.sp 1 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +body string the (compressed) first part of the body +dtimenow date the current date +folder string the name of the current folder +.re +.fi + +.\" and the following \fIfunction\fP escape: +.\" .sp 1 +.\" .nf +.\" .ta \w'Dcompflagxfolderx 'u +\w'Returns 'u +.\" \fIEscape\fR \fIReturns\fR \fIDescription\fR +.\" compflag{folder} integer boolean state of `\-header' +.\" .re +.\" .fi +.\" +If no date header is present in the message, the \fIfunction\fR +escapes which operate on {\fIdate\fP\|} will return values for the +date of last modification of the message file itself. +This is particularly handy for scanning a \fIdraft folder\fR, +as message drafts usually aren't allowed to have dates in them. + +\fIscan\fR will update the \fIMH\fR context prior to starting the listing, +so interrupting a long \fIscan\fR listing preserves the new context. +\fIMH\fR purists hate this idea. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +inc(1), pick(1), show(1), mh\-format(5) +.De +`+folder' defaults to the folder current +.Ds +`msgs' defaults to all +.Ds +`\-format' defaulted as described above +.Ds +`\-noheader' +.Ds +`\-width' defaulted to the width of the terminal +.Co +If a folder is given, it will become the current folder. +.Hi +Prior to using the format string mechanism, +`\-header' used to generate a heading saying what each column in the listing +was. +Format strings prevent this from happening. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIscan\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.br +The value of +each \fIcomponent\fR escape is set by \fIscan\fR to the contents +of the first message header \fIscan\fR encounters +with the corresponding component name; +any following headers with the same component name are ignored. +.sp +The switch `\-reverse', makes \fIscan\fR list the messages +in reverse order; this should be considered a bug. +.sp +The `\-file filename' switch allows the user to obtain a \fIscan\fP +listing of a maildrop file as produced by \fIpackf\fP. This listing +includes every message in the file. The user should use \fImsh\fP +for more selective processing of the file. `\-reverse' is ignored +with this option. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/send.rf b/docs/historical/mh-6.8.5/conf/doc/send.rf new file mode 100644 index 0000000..b0fcf16 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/send.rf @@ -0,0 +1,207 @@ +.\" @(MHWARNING) +.\" @(#)$Id: send.rf,v 1.12 1992/12/04 17:30:23 jromine Exp $ +.SC SEND 1 +.NA +send \- send a message +.SY +send +\%[\-alias\ aliasfile] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +@BEGIN: TMA +\%[\-encrypt] \%[\-noencrypt] +@END: TMA +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +\%[\-forward] \%[\-noforward] +@BEGIN: MIME +\%[\-mime] \%[\-nomime] +@END: MIME +\%[\-msgid] \%[\-nomsgid] +\%[\-push] \%[\-nopush] +@BEGIN: MIME +\%[\-split\ seconds] +@END: MIME +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +\%[file\ ...] +\%[\-help] +.DE +\fISend\fR will cause each of the specified files to +be delivered (via \fIpost\fR\0(8)) to each of the destinations +in the \*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqBcc:\*(rq, and \*(lqFcc:\*(rq +fields of the message. +If \fIsend\fR is re\-distributing a message, as invoked from \fIdist\fR, +then the corresponding \*(lqResent\-xxx\*(rq fields are examined +instead. + +If `\-push' is specified, +\fIsend\fR will detach itself from the user's terminal and perform its +actions in the background. +If \fIpush\fR\0'd and the draft can't be sent, +then the `\-forward' switch says that draft should be forwarded with +the failure notice sent to the user. +This differs from putting \fIsend\fR in the background because the output is +trapped and analyzed by \fIMH\fR. + +If `\-verbose' is specified, \fIsend\fR will indicate the interactions +occurring with the transport system, prior to actual delivery. +If `\-watch' is specified \fIsend\fR will monitor the delivery of local and +network mail. Hence, by specifying both switches, a large detail of +information can be gathered about each step of the message's entry into the +transport system. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. +@BEGIN: MIME + +If `\-split' is specified, +\fIsend\fR will split the draft into one or more partial messages +prior to sending. +This makes use of the multi-media content feature in MH. +Note however that if \fIsend\fR is invoked under \fIdist\fR\0(1), +then this switch is ignored\0--\0it makes no sense to redistribute a +message in this fashion. +Sometimes you want \fIsend\fR to pause after posting a partial message. +This is usually the case when you are running \fIsendmail\fR and +expect to generate a lot of partial messages. +The argument to `\-split' tells it how long to pause between postings. +@END: MIME + +\fISend\fR with no \fIfile\fR +argument will query whether the draft is the intended file, whereas +`\-draft' will suppress this question. +Once the transport system has successfully accepted custody of the message, +the file will be renamed +with a leading comma, which allows it to be retrieved until the +next draft message is sent. +If there are errors in the +formatting of the message, \fIsend\fR will abort with a (hopefully) +helpful error message. + +If a \*(lqBcc:\*(rq field is encountered, +its addresses will be used for delivery, +and the \*(lqBcc:\*(rq field will be removed from the message sent to sighted +recipients. +The blind recipients will receive an entirely new message with +a minimal set of headers. +Included in the body of the message will be a copy of the message sent to the +sighted recipients. +If `\-filter\ filterfile' is specified, +then this copy is filtered (re\-formatted) +prior to being sent to the blind recipients. +@BEGIN: MIME +Otherwise, +to use the MIME rules for encapsulation, +specify the `-mime' switch. +@END: MIME + +Prior to sending the message, the fields \*(lqFrom:\ user@local\*(rq, and +\*(lqDate:\ now\*(rq will be appended to the headers in the message. +If the envariable \fB$SIGNATURE\fR is set, +then its value is used as your personal name when +constructing the \*(lqFrom:\*(rq line of the message. +If this envariable is not set, +then \fIsend\fR will consult the profile entry \*(lqSignature\*(rq +for this information. +On hosts where \fIMH\fR was configured with the UCI option, +if \fB$SIGNATURE\fR is not set and the \*(lqSignature\*(rq profile entry +is not present, +then the file \fB$HOME\fR/.signature is consulted. +If `\-msgid' is +specified, then a \*(lqMessage\-ID:\*(rq field will also be added to the +message. + +If \fIsend\fR is re\-distributing a message +(when invoked by \fIdist\fR\0), +then \*(lqResent\-\*(rq will be prepended to each of these fields: +\*(lqFrom:\*(rq, \*(lqDate:\*(rq, and \*(lqMessage\-ID:\*(rq. +If the message already contains a \*(lqFrom:\*(rq field, then a +\*(lqSender: user@local\*(rq field will be added as well. +(An already existing +\*(lqSender:\*(rq field is an error!) + +By using the `\-format' switch, +each of the entries in +the \*(lqTo:\*(rq and \*(lqcc:\*(rq fields will be replaced +with \*(lqstandard\*(rq format entries. +This standard format is designed to be usable by all +of the message handlers on the various systems around the +Internet. +If `\-noformat' is given, +then headers are output exactly as they appear in the message draft. + +If an \*(lqFcc:\ folder\*(rq is encountered, the message will be copied +to the specified folder for the sender in the format in which it will appear +to any non\-Bcc receivers of the message. +That is, it will have the appended +fields and field reformatting. +The \*(lqFcc:\*(rq fields will be removed from all outgoing copies of the +message. + +By using the `\-width\ columns' switch, the user can direct \fIsend\fR as to +how long it should make header lines containing addresses. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read +(more than one file, each preceeded by `\-alias', can be named). +See \fImh\-alias\fR\0(5) for more information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Aliasfile:~^For a default alias file +.Ps +^Signature:~^To determine the user's mail signature +.Ps +^mailproc:~^Program to post failure notices +.Ps +^postproc:~^Program to post the message +.Sa +comp(1), dist(1), forw(1), repl(1), mh\-alias(5), post(8) +.De +`file' defaults to /draft +.Ds +`\-alias @(MHETCPATH)/MailAliases' +.Ds +`\-nodraftfolder' +@BEGIN: TMA +`\-noencrypt' +@END: TMA +.Ds +`\-nofilter' +.Ds +`\-format' +.Ds +`\-forward' +@BEGIN: MIME +.Ds +`\-nomime' +@END: MIME +.Ds +`\-nomsgid' +.Ds +`\-nopush' +.Ds +`\-noverbose' +.Ds +`\-nowatch' +.Ds +`\-width\ 72' +.Co +None +.Bu +Under some configurations, it is not possible to mointor the +mail delivery transaction; `\-watch' is a no-op on those systems. +.sp +@BEGIN: MIME +Using `\-split\00' doesn't work correctly. +@END: MIME +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/show.rf b/docs/historical/mh-6.8.5/conf/doc/show.rf new file mode 100644 index 0000000..9858775 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/show.rf @@ -0,0 +1,146 @@ +.\" @(MHWARNING) +.\" @(#)$Id: show.rf,v 1.9 1995/12/06 22:48:30 jromine Exp $ +.SC SHOW 1 +.NA +show \- show (list) messages +.SY +show +\%[+folder] \%[msgs] +\%[\-draft] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fIShow\fR lists each of the specified messages to the standard +output (typically, the terminal). +Typically, the messages are listed exactly +as they are, with no reformatting. +A program named by the \fIshowproc\fR profile component is +invoked to do the listing, and any switches not recognized by +\fIshow\fR are passed along to that program. +The default program is known as \fImore\fR\0(1). +To override the default and the \fIshowproc\fR profile component, +use the `\-showproc\ program' switch. +For example, `\-show\ pr' will cause the \fIpr\fR\0(1) program to list the +messages. +The \fIMH\fR command \fImhl\fR can be used as a \fIshowproc\fR +to show messages in a more uniform format. +Normally, this program is specified as the \fIshowproc\fR is the user's +\&.mh\(ruprofile. +See \fImhl\fR\0(1) for the details. +If the `\-noshowproc' option is specified, +`/bin/cat' is used instead of \fIshowproc\fR. +@BEGIN: MIME + +If you have messages with multi-media contents, +the profile entry \fImhnproc\fR defines the name of a program to +manipulate multi-media messages. +(The \fImhn\fR\0(1) program, +which is suitable for this purpose, +is the default.) +If the `\-noshowproc' option is NOT specified, +and if one or more named messages has a multi-media content, +then the program indicated by \fImhnproc\fR will be run instead of +\fIshowproc\fR. +The use of the \fImhnproc\fR can also be disabled if the +environment variable \fBNOMHNPROC\fR is set. +Note that the \fImhnproc\fR may be invoked even for textual contents, +depending on the character set involved. +The environment variable \fBMM_CHARSET\fP should be set to the terminal's +character set to avoid gratuitous invocations of the \fImhnproc\fR. +@END: MIME + +The `\-header' switch tells \fIshow\fR to display a one\-line +description of the message being shown. +This description includes the folder and the message number. + +If no `msgs' are specified, the current message is used. +If more than one message is specified, +\fImore\fR will prompt for a prior to listing each message. +\fImore\fR will list each message, a page at a time. +When the end of +page is reached, \fImore\fR will ring the bell and wait for a +or . +If a is entered, \fImore\fR will print the next line, +whereas will print the next screenful. +To exit \fImore\fR, type \*(lqq\*(rq. + +If the standard output is not a terminal, no queries are made, +and each file is listed with a one\-line header and two lines of +separation. + +\*(lqshow \-draft\*(rq will list the file /draft if it +exists. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIshow\fR will remove each of the messages shown from each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Ps +^showproc:~^Program to show messages +@BEGIN: MIME +.Ps +^mhnproc:~^Program to show messages with multi-media content +@END: MIME +.Sa +mhl(1), more(1), next(1), pick(1), prev(1), scan(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-header' +.Co +If a folder is given, it will become the current folder. +The last message shown will become the current message. +.Bu +The `\-header' switch doesn't work when `msgs' expands to more than +one message. +If the \fIshowproc\fR is \fImhl\fR, +then is problem can be circumvented by referencing +the \*(lqmessagename\*(rq field in the \fImhl\fR format file. + +\fIShow\fR updates the user's context before showing the message. +Hence \fIshow\fR will mark messages as seen prior to the user +actually seeing them. +This is generally not a problem, +unless the user relies on the \*(lqunseen\*(rq messages mechanism, +and interrupts \fIshow\fR while it is showing \*(lqunseen\*(rq messages. + +If \fIshowproc\fR is \fImhl\fR, +then \fIshow\fR uses a built\-in \fImhl\fR: +it does not actually run the \fImhl\fR program. +Hence, if you define your own \fIshowproc\fR, +don't call it \fImhl\fR since \fIshow\fR won't run it. + +If \fImore\fR\0(1) is your showproc (the default), +then avoid running \fIshow\fR in the background +with only its standard output piped to another process, as in + +.ti +.5i +show | imprint & + +Due to a bug in \fImore\fR, +show will go into a \*(lqtty input\*(rq state. +To avoid this problem, +re\-direct \fIshow\fR's diagnostic output as well. +For users of \fIcsh\fR: + +.ti +.5i +show |& imprint & + +For users of \fIsh\fR: + +.ti +.5i +show 2>&1 | imprint & +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/slocal.rf b/docs/historical/mh-6.8.5/conf/doc/slocal.rf new file mode 100644 index 0000000..a4dffdd --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/slocal.rf @@ -0,0 +1,377 @@ +.\" @(MHWARNING) +.\" @(#)$Id: slocal.rf,v 1.15 1992/10/28 16:53:03 jromine Exp $ +.SC SLOCAL 1 +.NA +slocal \- special local mail delivery +.SY +@(MHETCPATH)/slocal \%[address\ info\ sender] +.na +.br +\%[\-addr\ address] +\%[\-info\ data] +\%[\-sender\ sender] +.br +\%[\-user\ username] +\%[\-mailbox\ mbox] +\%[\-file\ file] +.\" \%[\-home\ homedir] +.br +\%[\-maildelivery\ deliveryfile] +\%[\-verbose] \%[\-noverbose] +\%[\-debug] +\%[\-help] +.ad +.DE +\fISlocal\fP is a program designed to allow you to have +your inbound mail processed according to a complex +set of selection criteria. +You do not normally invoke \fIslocal\fP yourself, +rather \fIslocal\fP is invoked on your behalf by your system's +Message Transfer Agent. + +The message selection +criteria used by \fIslocal\fP +is specified in the file \fI\&.maildelivery\fP +in the user's home directory. The format of this file +is given below. + +The message delivery address and message sender are +determined from the Message Transfer Agent +envelope information, if possible. Under \fISendMail\fP, +the sender will obtained from the UUCP \*(lqFrom\ \*(rq +line, if present. The user may override these values +with command line arguments, or arguments to +the `\-addr' and `\-sender' switches. + +The message is normally read from the standard input. +The `\-file' switch sets the name of the file from which +the message should be read, instead of reading stdin. +The `\-user' switch tells \fIslocal\fP +the name of the user for whom it is delivering mail. +The `\-mailbox' switch tells \fIslocal\fP the name +of the user's maildrop file. + +The `\-info' switch may be used to pass an arbitrary +argument to sub-processes which \fIslocal\fP may +invoke on your behalf. +The `\-verbose' switch causes \fIslocal\fP +to give information on stdout about its progress. +The `\-debug' switch produces more verbose debugging output on stderr. + +.Uh "Message Transfer Agents" +If your MTA is \fISendMail\fP, +you should include the line +.sp +.nf +.in +.5i + \*(lq|\ @(MHETCPATH)/slocal\ \-user\ username\*(rq +.in -.5i +.fi +.sp +in your \&.forward file in your home directory. +This will cause \fISendMail\fP to invoke \fIslocal\fP on your behalf. + +If your MTA is \fIMMDF-I\fP, +you should (symbolically) link @(MHETCPATH)/slocal to the file +bin/rcvmail in your home directory. +This will cause \fIMMDF-I\fP to invoke \fIslocal\fP on your behalf +with the correct \*(lq\fIaddress\ info\ sender\fP\*(rq arguments. + +If your MTA is \fIMMDF-II\fP, +then you should not use \fIslocal\fP. +An equivalent functionality is already provided by \fIMMDF-II\fP; +see maildelivery(5) for details. + +.Uh "The Maildelivery File" + +The \fI\&.maildelivery\fR file +controls how local delivery is performed. +Each line of this file +consists of five fields, separated by white-space or comma. +Since double-quotes are honored, +these characters may be included in a single argument by enclosing the +entire argument in double-quotes. +A double-quote can be included by preceding it with a backslash. +Lines beginning with `#' are ignored. +The format of each line in the \fI\&.maildelivery\fR file is: + + + \fBheader pattern action result string\fR +.sp +.in +.5i +.ti -.5i +\fBheader\fP: +.br +The name of a header field that is to be searched for a pattern. +This is any field in the headers of the message that might be present. +The following special fields are also defined: +.sp +.in +1i +.ta +1i +.ti -1i +\fIsource\fR the out-of-band sender information +.ti -1i +\fIaddr\fR the address that was used to cause delivery to the recipient +.ti -1i +\fIdefault\fR this matches \fIonly\fR if the message hasn't been delivered yet +.ti -1i +\fI*\fR this always matches +.in -1i + +.ti -.5i +\fBpattern\fR: +.br +The sequence +of characters to match in the specified header field. +Matching is case-insensitive, but does not use regular expressions. + +.ti -.5i +\fBaction\fR: +.br +The action to take to deliver the message: +.sp +.in +1i +.ta +1i +.ti -1i +\fIdestroy\fR This action always succeeds. + +.ti -1i +\fIfile\fR or > Append +the message to the file named by \fBstring\fR. +The message is appended to the file in the maildrop +format which is used by your message transport system. +If the message can be appended to the file, +then this action succeeds. +When writing to the file, +a \*(lqDelivery\-Date:\ date\*(rq header is added +which indicates the date and time that message was appended to the file. + +.ti -1i +\fImbox\fR Identical +to \fIfile\fR, +but always appends the message using the format used by \fIpackf\fR +(the MMDF mailbox format). + +.ti -1i +\fIpipe\fR or | Pipe +the message as the standard input to the command named by \fBstring\fR, +using the Bourne shell \fIsh\fR(1) to interpret the string. +Prior to giving the string to the shell, +it is expanded with the following built-in variables: +.sp +.in +1i +.ta +1i +.ti -1i +$(sender) the out-of-band sender information +.ti -1i +$(address) the address that was used to cause delivery to the recipient +.ti -1i +$(size) the size of the message in bytes +.ti -1i +$(reply\-to) either the \*(lqReply\-To:\*(rq or \*(lqFrom:\*(rq field +of the message +.ti -1i +$(info) the out-of-band information specified +.in -1i +.ti -1i +\fIqpipe\fR or +.ti -1i +\fI\fR Similar to \fIpipe\fR, +but executes the command directly, +after built-in variable expansion, +without assistance from the shell. +This action can be used to avoid quoting special characters +which your shell might interpret. +.in -1i + +.ti -.5i +\fBresult\fR: +.br +Indicates how the action should be performed: + +.in +1i +.ta +1i +.ti -1i +\fIA\fR Perform the action. +If the action succeeds, then the message is considered delivered. + +.ti -1i +\fIR\fR Perform the action. +Regardless of the outcome of the action, +the message is not considered delivered. + +.ti -1i +\fI?\fR Perform +the action only if the message has not been delivered. +If the action succeeds, then the message is considered delivered. + +.ti -1i +\fIN\fR Perform +the action only if the message has not been delivered +and the previous action succeeded. +If this action succeeds, then the message is considered delivered. +.sp +.in -1i +.in -.5i +To summarize, here's an example: +.sp +.if t .in +.5i +.nf +.ta \w'default 'u +\w'mh-workersxx 'uC +\w'destroy 'uC +\w'result 'u +#\fIfield\fR \fIpattern\fR \fIaction\fR \fIresult\fR \fIstring\fR +# lines starting with a '#' are ignored, as are blank lines +# +# file mail with mmdf2 in the \*(lqTo:\*(rq line into file mmdf2.log +\fITo mmdf2 file A mmdf2.log\fP +# Messages from mmdf pipe to the program err-message-archive +\fIFrom mmdf pipe A /bin/err-message-archive\fP +# Anything with the \*(lqSender:\*(rq address \*(lqmh-workers\*(rq +# file in mh.log if not filed already +\fISender mh-workers file ? mh.log\fP +# \*(lqTo:\*(rq unix \- put in file unix-news +\fITo Unix > A unix-news\fP +.\" # if the address is jpo=mmdf \- pipe into mmdf-redist +.\" \fIaddr jpo=mmdf | A mmdf-redist\fP +# if the address is jpo=ack \- send an acknowledgement copy back +\fIaddr jpo=ack \fP|\fI R \*(lq/bin/resend\0\-r\0$(reply-to)\*(rq\fP +# anything from steve \- destroy! +\fIFrom steve destroy A \-\fP +# anything not matched yet \- put into mailbox +\fIdefault \- > ? mailbox\fP +# always run rcvtty +\fI* \- \fP|\fI R /mh/lib/rcvtty\fP +.re +.fi +.if t .in -.5i + +The file is always read completely, +so that several matches can be made and several actions can be taken. +The \fI\&.maildelivery\fR file must be owned either by the user or by root, +and must be writable only by the owner. +If the \fI\&.maildelivery\fR file cannot be found, +or does not perform an action which delivers the message, +then the file @(MHETCPATH)/maildelivery is read according to the same rules. +This file must be owned by the root and must be writable only by the root. +If this file cannot be found +or does not perform an action which delivers the message, +then standard delivery to the user's maildrop is performed. + +.Uh "Sub-process environment" +When a process is invoked, its environment is: +the user/group-ids are set to recipient's ids; +the working directory is the recipient's home directory; +the umask is 0077; +the process has no /dev/tty; +the standard input is set to the message; +the standard output and diagnostic output are set to /dev/null; +all other file-descriptors are closed; +the envariables \fB$USER\fR, \fB$HOME\fR, \fB$SHELL\fR are set +appropriately, +and no other envariables exist. + +The process is given a certain amount of time to execute. +If the process does not exit within this limit, +the process will be terminated with extreme prejudice. +The amount of time is calculated as ((size x 60) + 300) seconds, +where size is the number of bytes in the message. + +The exit status of the process is consulted in determining the success of the +action. +An exit status of zero means that the action succeeded. +Any other exit status (or abnormal termination) means that the action failed. + +In order to avoid any time limitations, +you might implement a process that began by \fIforking\fR. +The parent would return the appropriate value immediately, +and the child could continue on, +doing whatever it wanted for as long as it wanted. +This approach is somewhat risky if the parent is going to return an +exit status of zero. +If the parent is going to return a non-zero exit status, +then this approach can lead to quicker delivery into your maildrop. +@BEGIN: MSGID + +.Uh "Duplicate Message Suppression" +\fIslocal\fR is able to detect and supress duplicate messages. +To enable this, +create two empty files in your $HOME directory: +\&.maildelivery.pag and \&.maildelivery.dir. +These are ndbm files which are used to store the Message-IDs of +incoming messages. +@END: MSGID +.Fi +^@(MHETCPATH)/mtstailor~^MH tailor file +^$HOME/\&.maildelivery~^The file controlling local delivery +^@(MHETCPATH)/maildelivery~^Rather than the standard file +^@(MHDROPLOC)~^The default maildrop +.Sa +rcvstore(1), mhook(1), mh\-format(5) +@BEGIN: MMDFIIMTS +, maildelivery(5) +@END: MMDFIIMTS +.De +`\-noverbose' +.Ds +`\-maildelivery \&.maildelivery' +.Ds +`\-mailbox @(MHDROPLOC)' +.Ds +`\-file' defaults to stdin +.Ds +`\-user' defaults to the current user +.Co +None +.Hi +@BEGIN: MHMTS +For compatibility with older versions of \fIMH\fR, +if \fIslocal\fR can't find the user's \fI\&.maildelivery\fR file, +it will attempt to execute an old-style rcvmail hook in the user's $HOME +directory. +In particular, +it will first attempt to execute + +.ti +.5i +\&.mh\(rureceive file maildrop directory user + +failing that it will attempt to execute + +.ti +.5i +$HOME/bin/rcvmail user file sender + +before giving up and writing to the user's maildrop. + +In addition, +whenever a hook or process is invoked, +file-descriptor three (3) is set to the message in addition to the standard +input. + +@END: MHMTS +\fISlocal\fP is designed to be backward-compatible with the +\fImaildelivery\fP facility provided by \fIMMDF-II\fP. +Thus, the \fI\&.maildelivery\fP file syntax is limited, +as is the functionality of \fIslocal\fP. + +In addition to an exit status of zero, +the \fIMMDF\fR values \fIRP_MOK\fR (32) and \fIRP_OK\fR (9) +mean that the message has been fully delivered. +Any other non-zero exit status, +including abnormal termination, +is interpreted as the \fIMMDF\fR value \fIRP_MECH\fR (200), +which means \*(lquse an alternate route\*(rq +(deliver the message to the maildrop). +.Bu +Only two return codes are meaningful, others should be. + +\fISlocal\fP is designed to be +backwards-compatible with the \fImaildelivery\fP functionality provided +by \fBMMDF-II\fP. + +Versions of \fIMMDF\fR with the \fImaildelivery\fR mechanism aren't +entirely backwards-compatible with earlier versions of \fIMMDF\fP. +If you have an \fIMMDF-I\fP old-style hook, +the best you can do is to have a one-line +\fI\&.maildelivery\fR file: + +.ti +.5i +default \- pipe A \*(lqbin/rcvmail $(address) $(info) $(sender)\*(rq +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/sortm.rf b/docs/historical/mh-6.8.5/conf/doc/sortm.rf new file mode 100644 index 0000000..6820319 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/sortm.rf @@ -0,0 +1,101 @@ +.\" @(MHWARNING) +.\" @(#)$Id: sortm.rf,v 1.9 1993/08/27 20:21:19 jromine Exp $ +.SC SORTM 1 +.NA +sortm \- sort messages +.SY +sortm +\%[+folder] \%[msgs] +\%[\-datefield\ field] +\%[\-textfield\ field] \%[\-notextfield] +\%[\-limit days] \%[\-nolimit] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +.DE +\fISortm\fR sorts the specified messages in the named folder according +to the chronological order of the \*(lqDate:\*(rq field of each message. + +The `\-verbose' switch directs \fIsortm\fR to tell the user the general +actions that it is taking to place the folder in sorted order. + +The `\-datefield\ field' switch tells \fIsortm\fR the name of the field +to use when making the date comparison. +If the user has a special field in each message, +such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq, +then the `\-datefield' switch can be used to direct \fIsortm\fR which +field to examine. + +The `\-textfield\ field' switch causes \fIsortm\fR to sort messages by +the specified text field. +If this field is \*(lqsubject\*(rq, +any leading "re:" is stripped off. +In any case, all characters except letters and numbers are stripped +and the resulting strings are sorted +datefield\-major, textfield\-minor, +using a case insensitive comparison. + +With `\-textfield\ field', +if `\-limit\ days' is specified, messages with similar textfields +that are dated within `days' of each other appear together. +Specifying `\-nolimit' makes the limit infinity. +With `\-limit 0', the sort is instead made textfield\-major, date\-minor. + +.\"Ex +For example, to order a folder by date-major, subject-minor, use: + +.ti +.5i +sortm -textfield subject +folder + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +folder (1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-datefield date' +.Ds +`\-notextfield' +.Ds +`\-noverbose' +.Ds +`\-nolimit' +.Co +If a folder is given, it will become the current folder. +If the current message is moved, \fIsortm\fR will preserve its status +as current. +.Hi +Timezones used to be ignored when comparing dates: +they aren't any more. + +Messages which were in the folder, but not specified by `msgs', +used to be moved to the end of the folder; +now such messages are left untouched. + +\fISortm\fP sometimes did not preserve the message +numbering in a folder (e.g., messages +1, 3, and 5, might have been renumbered +to 1, 2, 3 after sorting). +This was a bug, and has been fixed. +To compress the message numbering in a folder, use +\*(lq\fIfolder\ \-pack\fR\|\*(rq as always. +.Bu +If \fIsortm\fR encounters a message without a date\-field, +or if the message has a date\-field that \fIsortm\fR cannot parse, +then \fIsortm\fR attempts to keep the message in the same relative +position. +This does not always work. +For instance, if the first message encountered lacks a date which can be +parsed, +then it will usually be placed at the end of the messages being sorted. + +When \fIsortm\fR complains about a message which it can't temporally order, +it complains about the message number \fIprior\fR to sorting. +It should indicate what the message number will be \fIafter\fR sorting. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/template b/docs/historical/mh-6.8.5/conf/doc/template new file mode 100644 index 0000000..179e9fa --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/template @@ -0,0 +1,29 @@ +.\" @(MHWARNING) +.SC NAME SECTION +.NA +name \- action +.SY +name +.\" more switches here +\%[\-help] +.DE +.\" description of command here +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.\" .Ps +.\" for each additional profile entry +.Sa +.\" the see\-also's go here +.De +.\" the first default goes here +.\" .Ds +.\" for each additional default +.Co +.\" context changes go here +.\" You can also have +.\" .Hh \- the helpful hints section +.\" .Hi \- the history section +.\" .Bu \- the bugs section +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/tmac.h b/docs/historical/mh-6.8.5/conf/doc/tmac.h new file mode 100644 index 0000000..42622d4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/tmac.h @@ -0,0 +1,77 @@ +.\" @(MHWARNING) +.\" @(#)$Id: tmac.h,v 1.7 1992/10/30 19:45:32 jromine Exp $ +.\" Try to keep only one copy of the documentation around +.\" by re-defining macros and so forth. +.\" +.fc ^ ~ +.\" I pity the fool who tampers with the next line... +.ds ZZ -man +.de SC \" Title section +.TH \\$1 \\$2 @(MHCENTERFOOT) @(MHLEFTFOOT) +.. +.de NA \" Name section +.SH NAME +.. +.de SY \" Synopsis section +.SH SYNOPSIS +.in +.5i +.ti -.5i +.. +.de DE \" Description section +.in -.5i +.SH DESCRIPTION +.. +.de Fi \" Files section +.SH FILES +.nf +.ta \w'@(MHETCPATH)/ExtraBigFileName 'u +.. +.de Pr \" Profile section +.SH "PROFILE\ COMPONENTS" +.nf +.ta 2.4i +.ta \w'ExtraBigProfileName 'u +.. +.de Ps \" Profile next +.br +.. +.de Sa \" See Also section +.fi +.SH "SEE\ ALSO" +.. +.de De \" Defaults section +.SH "DEFAULTS" +.nf +.. +.de Ds \" Defaults next +.br +.. +.de Co \" Context section +.fi +.SH CONTEXT +.. +.de Hh \" Hints section +.fi +.SH "HELPFUL HINTS" +.. +.de Hi \" History section +.fi +.SH HISTORY +.. +.de Bu \" Bugs section +.fi +.SH BUGS +.. +.de En +.. +.de ip +.IP "\\$1" \\$2 +.. +.de Uh +.ne 4 +.SS "\\$1" +.. +.\" a useful -me macro +.de re +.ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +.. diff --git a/docs/historical/mh-6.8.5/conf/doc/tmac.hdr b/docs/historical/mh-6.8.5/conf/doc/tmac.hdr new file mode 100644 index 0000000..d61f7a7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/tmac.hdr @@ -0,0 +1,3 @@ +.\" @(MHWARNING) +.\" include the -mh macro file +.so @(MHETCPATH)/tmac.h diff --git a/docs/historical/mh-6.8.5/conf/doc/vmh.rf b/docs/historical/mh-6.8.5/conf/doc/vmh.rf new file mode 100644 index 0000000..5f8ecfe --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/vmh.rf @@ -0,0 +1,105 @@ +.\" @(MHWARNING) +.\" @(#)$Id: vmh.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC VMH 1 +.NA +vmh \- visual front-end to MH +.SY +vmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] +.DE +\fIvmh\fR is a program which implements the server side of +the \fIMH\fR window management protocol +and uses \fIcurses\fR\0(3) routines to maintain a split\-screen interface to +any program which implements the client side of the protocol. +This latter program, called the \fIvmhproc\fR, +is specified using the `\-vmhproc\ program' switch. + +The upshot of all this is that one can run \fImsh\fR on a display terminal +and get a nice visual interface. +To do this, for example, just add the line + +.ti +.5i +mshproc: vmh + +to your \&.mh\(ruprofile. +(This takes advantage of the fact that +\fImsh\fR is the default \fIvmhproc\fR for \fIvmh\fR.) + +In order to facilitate things, +if the `\-novmhproc' switch is given, +and \fIvmh\fR can't run on the user's terminal, +the \fIvmhproc\fR is run directly without the window management protocol. + +After initializing the protocol, +\fIvmh\fR prompts the user for a command to be given to the client. +Usually, this results in output being sent to one or more windows. +If a output to a window would cause it to scroll, +\fIvmh\fR prompts the user for instructions, +roughly permitting the capabilities of \fIless\fR or \fImore\fR +(e.g., the ability to scroll backwards and forwards): + +.nf +.in +.5i +.ta \w'RETURN 'u +\w'* 'u +SPACE advance to the next windowful +RETURN * advance to the next line +y * retreat to the previous line +d * advance to the next ten lines +u * retreat to the previous ten lines +g * go to an arbitrary line + (preceed g with the line number) +G * go to the end of the window + (if a line number is given, this acts like `g') +CTRL\-L refresh the entire screen +h print a help message +q abort the window +.re +.in -.5i +.fi + +(A `*' indicates that a numeric prefix is meaningful for this command.) + +Note that if a command resulted in more than one window's worth of +information being displayed, +and you allow the command which is generating information for the window to +gracefully finish +(i.e., you don't use the `q' command to abort information being sent to the +window), +then \fIvmh\fR will give you one last change to peruse the window. +This is useful for scrolling back and forth. +Just type `q' when you're done. + +To abnormally terminate \fIvmh\fR (without core dump), +use (usually CTRL\-\\). +For instance, +this does the \*(lqright\*(rq thing with \fIbbc\fR and \fImsh\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +msh(1) +.De +`\-prompt\ (vmh)\ ' +.Ds +`\-vmhproc\ msh' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIvmh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +At present, +there is no way to pass signals (e.g., interrupt, quit) to the client. +However, +generating QUIT when \fIvmh\fR is reading a command from the terminal is +sufficient to tell the client to go away quickly. + +Acts strangely (loses peer or botches window management protocol with peer) +on random occasions. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/whatnow.rf b/docs/historical/mh-6.8.5/conf/doc/whatnow.rf new file mode 100644 index 0000000..07a6f7b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/whatnow.rf @@ -0,0 +1,131 @@ +.\" @(MHWARNING) +.\" @(#)$Id: whatnow.rf,v 1.9 1992/10/16 21:36:30 jromine Exp $ +.SC WHATNOW 1 +.NA +whatnow \- prompting front-end for send +.SY +whatnow +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-prompt\ string] +\%[file] +\%[\-help] +.DE +\fIWhatnow\fR is the default program that queries the user about the +disposition of a composed draft. +It is normally invoked by one of +\fIcomp\fR, \fIdist\fR, \fIforw\fR, or \fIrepl\fR +after the initial edit. + +When started, +the editor is started on the draft +(unless `\-noedit' is given, in which case the initial edit is suppressed). +Then, \fIwhatnow\fR repetitively +prompts the user with \*(lqWhat now?\*(rq and awaits a response. +The valid responses are: + +.nf +.in .5i +.ta \w'\fBrefile +folder\fR 'u +^\fBdisplay\fR~^to list the message being distributed/replied\-to on +^~^the terminal +^\fBedit\fR~^to re\-edit using the same editor that was used on the +^~^preceding round unless a profile entry +^~^\*(lq\-next: \*(rq names an alternate editor +^\fBedit \fR~^to invoke for further editing +^\fBlist\fR~^to list the draft on the terminal +^\fBpush\fR~^to send the message in the background +^\fBquit\fR~^to terminate the session and preserve the draft +^\fBquit \-delete\fR~^to terminate, then delete the draft +^\fBrefile +folder\fR~^to refile the draft into the given folder +^\fBsend\fR~^to send the message +^\fBsend \-watch\fR~^to cause the delivery process to be monitored +^\fBwhom\fR~^to list the addresses that the message will go to +^\fBwhom \-check\fR~^to list the addresses and verify that they are +^~^acceptable to the transport service +.fi +.re + +For the \fBedit\fR response, +any valid switch to the editor is valid. +Similarly, +for the \fBsend\fR and \fBwhom\fR responses, +any valid switch to \fIsend\fR\0(1) and \fIwhom\fR\0(1) commands, +respectively, +are valid. +For the \fBpush\fR response, +any valid switch to \fIsend\fR\0(1) is valid +(as this merely invokes \fIsend\fR with the `\-push' option). +For the \fIrefile\fR response, +any valid switch to the \fIfileproc\fR is valid. +For the \fBdisplay\fR and \fBlist\fR responses, +any valid argument to the \fIlproc\fR is valid. +If any non\-switch arguments are present, +then the pathname of the draft will be excluded from the argument list +given to the \fIlproc\fR +(this is useful for listing another \fIMH\fR message). + +See \fImh\-profile\fR\0(5) for further information +about how editors are used by MH. +It also discusses how complex envariables can be used to direct +\fIwhatnow\fR's actions. + +The `\-prompt\ string' switch sets the prompting string for \fIwhatnow\fR. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^\-next:~^To name an editor to be used after exit from +.Ps +@BEGIN: MIME +^automhnproc:~^Program to automatically run prior to sending +^~^if the draft is an \fImhn\fR composition file +.Ps +@END: MIME +^fileproc:~^Program to refile the message +.Ps +^lproc:~^Program to list the contents of a message +.Ps +^sendproc:~^Program to use to send the message +.Ps +^whomproc:~^Program to determine who a message would go to +.Sa +send(1), whom(1) +.De +`\-prompt\ \*(lqWhat\ Now?\ \*(rq' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIwhatnow\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +If the initial edit fails, \fIwhatnow\fR deletes your draft (by renaming +it with a leading comma); failure of a later edit preverves the draft. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIcomp\fR, \fIdist\fP, \fIforw\fP, and \fIrepl\fP use +a built\-in \fIwhatnow\fR, +and do not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since it won't be run. + +If \fIsendproc\fR is \fIsend\fR, +then \fIwhatnow\fR uses a built\-in \fIsend\fR, +it does not actually run the \fIsend\fR program. +Hence, if you define your own \fIsendproc\fR, +don't call it \fIsend\fR since \fIwhatnow\fR won't run it. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/whom.rf b/docs/historical/mh-6.8.5/conf/doc/whom.rf new file mode 100644 index 0000000..cd304a6 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/whom.rf @@ -0,0 +1,56 @@ +.\" @(MHWARNING) +.\" @(#)$Id: whom.rf,v 1.7 1992/02/11 00:47:53 jromine Exp $ +.SC WHOM 1 +.NA +whom \- report to whom a message would go +.SY +whom +\%[\-alias\ aliasfile] +\%[\-check] \%[\-nocheck] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[file] +\%[\-help] +.DE +\fIWhom\fR is used to expand the headers of a message into a set of addresses +and optionally verify that those addresses are deliverable at that time +(if `\-check' is given). + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read +(more than one file, each preceeded by `\-alias', can be named). +See \fImh\-alias\fR\0(5) for more information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Aliasfile:~^For a default alias file +.Ps +^postproc:~^Program to post the message +.Sa +mh\-alias(5), post(8) +.De +`file' defaults to /draft +.Ds +`\-nocheck' +.Ds +`\-alias @(MHETCPATH)/MailAliases' +.Co +None +.Bu +With the `\-check' option, \fIwhom\fR makes no guarantees that the addresses +listed as being ok are really deliverable, rather, an address being listed +as ok means that at the time that \fIwhom\fR was run the address was +thought to be deliverable by the transport service. For local addresses, this +is absolute; for network addresses, it means that the host is known; for uucp +addresses, it (often) means that the \fIUUCP\fR network is available for use. +.En diff --git a/docs/historical/mh-6.8.5/conf/doc/wmh.rf b/docs/historical/mh-6.8.5/conf/doc/wmh.rf new file mode 100644 index 0000000..b338ab0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/doc/wmh.rf @@ -0,0 +1,88 @@ +.\" @(MHWARNING) +.\" @(#)$Id: wmh.rf,v 1.5 90/04/05 15:15:38 sources Exp $ +.SC WMH 1 +.NA +wmh \- window front\-end to MH +.SY +wmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] +.DE +\fIwmh\fR is a program which implements the server side of +the \fIMH\fR window management protocol +and uses the Integrated Solutions Graphics Workstation desktop to maintain a +multiple window interface to +any program which implements the client side of the protocol. +This latter program, called the \fIvmhproc\fR, +is specified using the `\-vmhproc\ program' switch. + +The upshot of all this is that one can run \fImsh\fR on an IS desktop +and get a nice window interface. +To do this, for example, just add the line + +.ti +.5i +mshproc: wmh + +to your \&.mh\(ruprofile. +(This takes advantage of the fact that +\fImsh\fR is the default \fIvmhproc\fR for \fIwmh\fR.) + +In order to facilitate things, +if the `\-novmhproc' switch is given, +and \fIwmh\fR can't run on the user's terminal +(i.e., the terminal is not a desktop), +the \fIvmhproc\fR is run directly without the window management protocol. + +After initializing the protocol, +\fIwmh\fR prompts the user for a command to be given to the client. +Usually, this results in output being sent to one or more windows. +If output to a window would cause it to scroll, +\fIwmh\fR uses an elevator bar to scroll through the window. +If click left is used inside the elevator bar, +the user can direct \fIwmh\fR as to what portion of the output should be +displayed; +if click middle is used, +the \*(lqpaging\*(rq menu is displayed; +and, +if click right is used, +the window scrolls to the next page +(or, the user explicitly moved to the end, the previous page). + +The mouse can also be used while in the command window: +click left does nothing; +click middle brings up the \*(lqwmh\*(rq menu; +and, +click right shows the next message (a moby hack for timesavings). +To abnormally terminate \fIwmh\fR (without core dump), +use (usually CTRL\-\\). +For instance, +this does the \*(lqright\*(rq thing with \fIbbc\fR and \fImsh\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +msh(1) +.De +`\-prompt\ (wmh)\ ' +.Ds +`\-vmhproc\ msh' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIwmh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +At present, +there is no way to pass signals (e.g., interrupt, quit) to the client. +However, +generating QUIT when \fIwmh\fR is reading a command from the terminal is +sufficient to tell the client to go away quickly. + +Acts strangely (loses peer or botches window management protocol with peer) +on random occasions. +.En diff --git a/docs/historical/mh-6.8.5/conf/examples/386bsd b/docs/historical/mh-6.8.5/conf/examples/386bsd new file mode 100644 index 0000000..d38356d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/386bsd @@ -0,0 +1,27 @@ +# 386bsd - MH 6.8, 386BSD system running SendMail +cc cc +bin /usr/local/bin +etc /usr/local/lib/mh +mandir /usr/local/man +mail /var/mail +chown /usr/sbin/chown +manuals gen +mts sendmail/smtp + +sprintf int +signal void +options BIND BSD42 BSD43 DBMPWD MORE='"/usr/bin/more"' +options SYS5DIR NTOHLSWAP OVERHEAD VSPRINTF WHATNOW ZONEINFO +options MHE MHRC MIME +options POSIX +options NORUSERPASS + +# +# POP +# +pop on +popdir /usr/local/lib/mh +#options APOP='"/etc/pop.auth"' +#options DPOP +#options MPOP +options RPOP diff --git a/docs/historical/mh-6.8.5/conf/examples/RCS/README,v b/docs/historical/mh-6.8.5/conf/examples/RCS/README,v new file mode 100644 index 0000000..6e61707 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/RCS/README,v @@ -0,0 +1,243 @@ +head 1.8; +access; +symbols; +locks + jromine:1.8; strict; +comment @# @; + + +1.8 +date 92.12.14.18.12.18; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.12.11.23.31.30; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.12.10.19.47.32; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.12.10.19.46.41; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.12.04.17.19.54; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 92.12.03.17.41.19; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 92.11.06.03.37.49; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.11.02.19.34.23; author jromine; state Exp; +branches; +next ; + + +desc +@document the example config files +@ + + +1.8 +log +@add bsd43.uiuc.edu convex.uiuc.edu +@ +text +@$Id: README,v 1.7 1992/12/11 23:31:30 jromine Exp jromine $ +These files are contributed MH config files from various sites. +Newer files give the version of MH and OS release number which +they are configured for. + +# aix.sap-ag.de - MH 6.8 options for AIX (AIX 3.2 on RS/6000 350). +# aix31.rpi.edu - MH 6.8, RS6000 AIX 3.1 with AFS Kerberos +# aos.cornell.edu - MH 6.8 Configuration for IBM/PC-RT running IBM/4.3 +# aux.rand.org - MH 6.8 under AUX in SYS5 mode +# bsd43.uiuc.edu - MH 6.8 VAX running 4.3 BSD-reno +# convex.uiuc.edu - MH 6.8 Convex C240 running ConvexOS v9.1 +# dbc - DBC's MH 6.8 config file +# dynix.uiuc.edu - MH 6.8 Sequent Symmetry running Dynix 3.1.2 +# encore +# fujitsu.clcs.com.au - MH 6.8 for Fujitsu/ICL DRS6000 running System V R4 +# gould +# hplpm.hpl.hp.com - Hewlett-Packard 9000 machines +# hpux.sap-ag.de - MH 6.8 options for HPUX (HPUX 8.05 on HP9000/720). +# hpux.uiuc.edu - MH 6.8 HP-9000/700 with HP-UX 8.0 and sendmail +# kosciusko.esd.3com.com - SunOS 4.0.3 +# krusty.smsc.sony.COM - System V Release 4 running mailsurr +# mhmts - stand-alone mhmts template +# mmdf - template using mts: mmdf +# ridge - ROS +# rs6000 - RISC 6000/320, with AIX 3.1 (3.03) +# sendmail - template using mts: sendmail +# shrike.irvine.com - MH 6.7.2 - HP 9000/700 HP/UX 8.x sendmail version +# solaris2.sun.com - MH 6.8 - Solaris 2.x +# sun3.5 - MH 6.8 configuration file for SunOS 3.5 +# sun4.0 - For Sun OS 4.* with SendMail, Yellow Pages and /etc/named. +# sun4.1.1 - MH 6.8 configuration file for SunOS 4.1.1 +# sun411.rpi.edu - MH 6.8, Sparcstation SunOS 4.1.1 with AFS Kerberos +# sys5r3.2 - SVr3.2 configuration file for MH 6.7.1: +# sys5r4 - a SYS5 R4 system +# sys5r4-ncr - an NCR system: Unix System V Release 4.0.2.0 (WINS) +# system5 - template +# uci.gcc - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# uci.hp-pa - MH 6.8 options for HPUX (HPUX 8.05 on HP9000/720). +# uci.sequent - MH 6.8 - Sequent running Dynix 3.1 +# uci.sun - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# uci.sun.debug - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# udel - UDel template +# ultrix.sap-ag.de - MH 6.8 options for ULTRIX (ULTRIX 4.2 on RISC). + +@ + + +1.7 +log +@add dynix.uiuc.edu hpux.uiuc.edu +@ +text +@d1 1 +a1 1 +$Id: README,v 1.6 1992/12/10 19:47:32 jromine Exp jromine $ +d10 2 +@ + + +1.6 +log +@typo +@ +text +@d1 1 +a1 1 +$Id: README,v 1.5 1992/12/10 19:46:41 jromine Exp jromine $ +d11 1 +d17 1 +@ + + +1.5 +log +@add fujitsu.com.au +@ +text +@d1 1 +a1 1 +$Id: README,v 1.4 1992/12/04 17:19:54 jromine Exp jromine $ +d12 1 +a12 1 +# fujitsu.com.au - MH 6.8 for Fujitsu/ICL DRS6000 running System V R4 +@ + + +1.4 +log +@revise +@ +text +@d1 1 +a1 1 +$Id: README,v 1.3 1992/12/03 17:41:19 jromine Exp jromine $ +d12 1 +@ + + +1.3 +log +@new config files +@ +text +@d1 1 +a1 1 +$Id: README,v 1.2 1992/11/06 03:37:49 jromine Exp jromine $ +d7 1 +d11 2 +a12 2 +# encore - encore, OS release unknown +# gould - gould, OS release unknown +d19 1 +a19 1 +# ridge - ROS (release unknown) +d27 1 +d31 1 +a31 1 +# system5 template +d39 1 +@ + + +1.2 +log +@add aux.rand.org +@ +text +@d1 1 +a1 1 +$Id: README,v 1.1 1992/11/02 19:34:23 jromine Exp $ +d6 31 +a36 35 +aux.rand.org MH 6.7.5 - AUX in SYS5 mode +aix.sap-ag.de MH 6.7.5 - AIX 3.2 on RS/6000 350 +dbc MH 6.7.5 - DBC's MH config file under SunOS 4 +hpux.sap-ag.de MH 6.7.5 - HPUX (HPUX 8.05 on HP9000/720). +ibm-aos MH 6.7.5 - IBM/PC-RT running IBM/4.3 (with HighC 2.1y) +sun3.5 MH 6.7.5 - SunOS 3.5 +sun4.1.1 MH 6.7.5 - SunOS 4.1.1 +uci.sequent MH 6.7.5 - Sequent running Dynix 3.1 +uci.sun MH 6.7.5 - Sun3 or Sun4 running Sun OS 4.1 +ultrix.sap-ag.de MH 6.7.5 - ULTRIX 4.2 on RISC +shrike.irvine.com MH 6.7.2 - HP 9000/700 HP/UX 8.x sendmail version +sys5r3.2 MH 6.7.1 - SVr3.2 configuration template +sys5r4 MH 6.7.1 - SYS5 R4 template +sys5r4-ncr an NCR system: Unix System V Release 4.0.2.0 (WINS) + +Older config files which may be of interest: + +encore encore +gould gould +hplpm.hpl.hp.com Hewlett-Packard 9000 machines +kosciusko.esd.3com.com SunOS 4.0.3 +krusty.smsc.sony.COM System V Release 4 running mailsurr +mhmts stand-alone mhmts template +mmdf mmdf template +paris.ics.uci.edu Sun OS 4.0.3c, YP, BIND, Shared Libraries, BBOARDS +ridge ridge +rs6000 RISC 6000/320, with AIX 3.1 (3.03) +sendmts sendmail template +sun4.0 Sun OS 4.* with SendMail, Yellow Pages, /etc/named. +system5 system5 template +uci UCI template +uci_debug UCI debug template +uci_gcc UCI testing with gcc +uci.sun.debug MH 6.7.5 - Sun OS 4.1 for debugging only +udel udel +@ + + +1.1 +log +@Initial revision +@ +text +@d1 1 +a1 1 +$Id$ +d3 2 +a4 2 +Newer files give the version of MH they were configured under +and OS release number. +d6 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/examples/README b/docs/historical/mh-6.8.5/conf/examples/README new file mode 100644 index 0000000..1f3d006 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/README @@ -0,0 +1,46 @@ +$Id: README,v 1.8 1992/12/14 18:12:18 jromine Exp jromine $ +These files are contributed MH config files from various sites. +Newer files give the version of MH and OS release number which +they are configured for. + +# 386bsd - MH 6.8, 386BSD system running SendMail +# aix.sap-ag.de - MH 6.8 options for AIX (AIX 3.2 on RS/6000 350). +# aix31.rpi.edu - MH 6.8, RS6000 AIX 3.1 with AFS Kerberos +# aos.cornell.edu - MH 6.8 Configuration for IBM/PC-RT running IBM/4.3 +# aux.rand.org - MH 6.8 under AUX in SYS5 mode +# bsd43.uiuc.edu - MH 6.8 VAX running 4.3 BSD-reno +# bsd44.berkeley.edu - MH 6.8, 4.4BSD system running SendMail +# convex.uiuc.edu - MH 6.8 Convex C240 running ConvexOS v9.1 +# dbc - DBC's MH 6.8 config file +# dynix.uiuc.edu - MH 6.8 Sequent Symmetry running Dynix 3.1.2 +# encore +# fujitsu.clcs.com.au - MH 6.8 for Fujitsu/ICL DRS6000 running System V R4 +# gould +# hplpm.hpl.hp.com - Hewlett-Packard 9000 machines +# hpux.sap-ag.de - MH 6.8 options for HPUX (HPUX 8.05 on HP9000/720). +# hpux.uiuc.edu - MH 6.8 HP-9000/700 with HP-UX 8.0 and sendmail +# kosciusko.esd.3com.com - SunOS 4.0.3 +# krusty.smsc.sony.COM - System V Release 4 running mailsurr +# mhmts - stand-alone mhmts template +# mmdf - template using mts: mmdf +# ridge - ROS +# rs6000 - RISC 6000/320, with AIX 3.1 (3.03) +# sendmail - template using mts: sendmail +# shrike.irvine.com - MH 6.7.2 - HP 9000/700 HP/UX 8.x sendmail version +# solaris2.sun.com - MH 6.8 - Solaris 2.x +# sun3.5 - MH 6.8 configuration file for SunOS 3.5 +# sun4.0 - For Sun OS 4.* with SendMail, Yellow Pages and /etc/named. +# sun4.1.1 - MH 6.8 configuration file for SunOS 4.1.1 +# sun411.rpi.edu - MH 6.8, Sparcstation SunOS 4.1.1 with AFS Kerberos +# sys5r3.2 - SVr3.2 configuration file for MH 6.7.1: +# sys5r4 - a SYS5 R4 system +# sys5r4-ncr - an NCR system: Unix System V Release 4.0.2.0 (WINS) +# system5 - template +# uci.gcc - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# uci.hp-pa - MH 6.8 options for HPUX (HPUX 8.05 on HP9000/720). +# uci.sequent - MH 6.8 - Sequent running Dynix 3.1 +# uci.sun - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# uci.sun.debug - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# udel - UDel template +# ultrix.sap-ag.de - MH 6.8 options for ULTRIX (ULTRIX 4.2 on RISC). + diff --git a/docs/historical/mh-6.8.5/conf/examples/aix.sap-ag.de b/docs/historical/mh-6.8.5/conf/examples/aix.sap-ag.de new file mode 100644 index 0000000..d08e2c7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/aix.sap-ag.de @@ -0,0 +1,19 @@ +# aix.sap-ag.de - MH 6.8 options for AIX (AIX 3.2 on RS/6000 350). +# Bill Wohler +# Sat, 31 Oct 92 18:45:00 +0100 +# +# General +# +bin /usr/local/bin/mh +ldoptions -s +mandir /usr/local/man +manuals standard +mts sendmail/smtp +options BIND DBMPWD ISI MHE MHRC OVERHEAD RPATHS WHATNOW UK +# +# Machine specific options +# +options SYS5 SYS5DIR SOCKETS +curses -lcurses +signal void +sprintf int diff --git a/docs/historical/mh-6.8.5/conf/examples/aix31.rpi.edu b/docs/historical/mh-6.8.5/conf/examples/aix31.rpi.edu new file mode 100644 index 0000000..a214257 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/aix31.rpi.edu @@ -0,0 +1,38 @@ +# aix31.rpi.edu - MH 6.8, RS6000 AIX 3.1 with AFS Kerberos +# Thu, 03 Dec 1992 13:45:09 +# James Ault +# +bin /campus/other/mh/6.7.1k/@sys/bin +debug off +etc /campus/other/mh/6.7.1k/@sys/lib +mail /usr/spool/mail +mailgroup off +mandir /campus/other/mh/6.7.1k/@sys/man +manuals standard +chown /bin/chown +editor prompter +remove mv -f +mts sendmail +bboards off +bbdelivery off +mf off +pop on +kpop on +hesiod off +options ATHENA ATZ BIND DBM DUMB FOLDPROT='"0711"' FLOCK +options MHE MHRC MORE='"/usr/bin/more"' MSGPROT='"0600"' +options NOMHSEQ OVERHEAD POP2 POPSERVICE='"kpop"' RPATHS +options RPOP SBACKUP='"\\043"' SOCKETS SYS5 SYS5DIR +options TZNAME VSPRINTF YP_LOOKUP +options AIX AIX3_1 ISI WP NETWORK KPOP TRANSARC_KAS +ccoptions -O -D_NO_PROTO -D_NONSTD_TYPES -D_MBI=void -U__STR__ +ccoptions -I/campus/athena/kerberos/V4/@sys/include +curses -lcurses +ldoptlibs -ldbm +ldoptlibs -L/campus/athena/kerberos/V4/@sys/lib -ldes -lkrb +ldoptlibs -lbsd +ranlib on +sprintf int +signal void +sharedlib off + diff --git a/docs/historical/mh-6.8.5/conf/examples/aos.cornell.edu b/docs/historical/mh-6.8.5/conf/examples/aos.cornell.edu new file mode 100644 index 0000000..5110034 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/aos.cornell.edu @@ -0,0 +1,36 @@ +# aos.cornell.edu - MH 6.8 Configuration for IBM/PC-RT running IBM/4.3 +# Jeffrey C Honig +# Wed, 02 Dec 92 14:55:44 -0500 +# +# Configuration for IBM/PC-RT running IBM/4.3 +# +# +# System stuff +# +bin /usr/local/bin +ccoptions -U__STDC__ +chown /etc/chown +editor prompter +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/local/man +manuals standard +mts sendmail/smtp +mf off +options BSD42 BSD43 BIND NTOHLSWAP DBMPWD LOCKF ZONEINFO +options UCI +options RENAME +signal int +# +# Options +# +bboards off +options MHE MHRC MIME MSGID +options SBACKUP='"\\043"' +remove mv -f +# +# POP +# +pop on +popdir /usr/local/sbin +options RPOP POPSERVICE='"pop3"' DPOP APOP diff --git a/docs/historical/mh-6.8.5/conf/examples/aux.rand.org b/docs/historical/mh-6.8.5/conf/examples/aux.rand.org new file mode 100644 index 0000000..c3223fc --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/aux.rand.org @@ -0,0 +1,34 @@ +# aux.rand.org - MH 6.8 under AUX in SYS5 mode +# Jim Guyton +# Thu, 05 Nov 1992 13:59:48 PST +# +# Note that I don't know what the default locking is on this system. +# Iswitched my sendmail to use 'miscellany/sendmail/spooler.c' so that +# I could be sure that inc and the delivery program both use the same +# lock. Also note that I'm just starting to use MH on this system and +# so this may not be optimal. +# +bin /usr/local/bin +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/local/man +manuals standard +chown /bin/chown +remove mv -f +cc cc +ccoptions -ZS -A 2 +curses -lcurses -ltermcap +ldoptions -s +ranlib off +sprintf int +mts sendmail/smtp +signal int + +# options BIND +options AUX +options DUMB FLOCK MHRC +options MIME NFS +options MORE='"/bin/more"' MSGID +options OVERHEAD RENAME RPATHS +options SOCKETS SYS5 SYS5DIR +options VSPRINTF diff --git a/docs/historical/mh-6.8.5/conf/examples/bsd43.uiuc.edu b/docs/historical/mh-6.8.5/conf/examples/bsd43.uiuc.edu new file mode 100644 index 0000000..609b452 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/bsd43.uiuc.edu @@ -0,0 +1,39 @@ +# bsd43.uiuc.edu - MH 6.8 VAX running 4.3 BSD-reno +# Paul Pomes - UofIllinois CSO +# Fri, 11 Dec 1992 22:28:58 -0600 +# +bboards off +bin /usr/local/bin +cc gcc -fpcc-struct-return +etc /usr/local/libdata/mh +ldoptlibs -lcompat +lex /usr/old/lex -nt +mail /var/spool/mail +mandir /usr/local/src/man +manuals standard +mts sendmail/smtp +pop off +ranlib on +remove rm -f +signal void +sprintf int +options BIND +options BSD42 +options BSD43 +options DBMPWD +options DUMB +options FLOCK +options FOLDPROT='"700"' +options MHE +options MHRC +options MIME +options MSGID +options MSGPROT='"600"' +options NTOHLSWAP +options OVERHEAD +options RENAME +options RPATHS +options SBACKUP='"\\043"' +options UNISTD +options VSPRINTF +options ZONEINFO diff --git a/docs/historical/mh-6.8.5/conf/examples/bsd44.berkeley.edu b/docs/historical/mh-6.8.5/conf/examples/bsd44.berkeley.edu new file mode 100644 index 0000000..3141071 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/bsd44.berkeley.edu @@ -0,0 +1,37 @@ +# bsd44.berkeley.edu - MH 6.8, 4.4BSD system running SendMail +# +cc cc +#ccoptions -g +#ldoptions -g +bin /usr/contrib/mh-6.8/bin +etc /usr/contrib/mh-6.8/lib +mandir /usr/contrib/man +mail /var/mail +chown /usr/sbin/chown +manuals bsd44/cat +mts sendmail/smtp + +sprintf int +signal void +options BIND BSD42 BSD43 DBMPWD MORE='"/usr/bin/more"' +options SYS5DIR NTOHLSWAP OVERHEAD VSPRINTF WHATNOW ZONEINFO +options MHE MHRC MIME +options POSIX +options BSD44 WAITINT UNISTD GCOS_HACK NORUSERPASS + +# +# POP +# +pop on +popdir /usr/contrib/mh-6.8/lib +#options APOP='"/etc/pop.auth"' +#options DPOP +#options MPOP +options POP2 +options RPOP +options POPSERVICE='"pop3"' +# +# +bboards nntp +bbdelivery off +remove rm -f diff --git a/docs/historical/mh-6.8.5/conf/examples/convex.uiuc.edu b/docs/historical/mh-6.8.5/conf/examples/convex.uiuc.edu new file mode 100644 index 0000000..a1dc82c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/convex.uiuc.edu @@ -0,0 +1,38 @@ +# convex.uiuc.edu - MH 6.8 Convex C240 running ConvexOS v9.1 +# Fri, 11 Dec 1992 17:32:53 -0600 +# Paul Pomes +# +bboards off +bin /usr/local/new +etc /usr/local/libdata/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +manuals standard +mts sendmail/smtp +pop off +ranlib on +remove rm -f +signal void +sprintf char * +options BIND +options BSD42 +options BSD43 +options DBMPWD +options DUMB +options FLOCK +options FOLDPROT='"700"' +options MHE +options MHRC +options MIME +options MSGID +options MSGPROT='"600"' +options NFS +options NTOHLSWAP +options OVERHEAD +options RENAME +options RPATHS +options SBACKUP='"\\043"' +options UNISTD +options VSPRINTF +options WAITINT diff --git a/docs/historical/mh-6.8.5/conf/examples/dbc b/docs/historical/mh-6.8.5/conf/examples/dbc new file mode 100644 index 0000000..6776f7b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/dbc @@ -0,0 +1,23 @@ +# dbc - DBC's MH 6.8 config file +# SunOS 4.1.1 rev B +# Wed, 02 Dec 1992 12:40:42 PST +# Marshall Rose +# +options SUN40 BSD42 BSD43 +options BIND MIME MSGID RPATHS UCI WHATNOW +# +bboards pop +bin /usr/local/bin +curses -lcurses -ltermcap +etc /usr/local/lib/mh +ldoptions -s -O +mail .maildrop +mandir /usr/local/man +manuals standard +editor prompter +mts zmailer/smtp +pop on +options APOP='"/etc/pop.auth"' MPOP +options POPSERVICE='"pop3"' +ranlib on +signal void diff --git a/docs/historical/mh-6.8.5/conf/examples/dynix.uiuc.edu b/docs/historical/mh-6.8.5/conf/examples/dynix.uiuc.edu new file mode 100644 index 0000000..97285b5 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/dynix.uiuc.edu @@ -0,0 +1,36 @@ +# dynix.uiuc.edu - MH 6.8 Sequent Symmetry running Dynix 3.1.2 +# Fri, 11 Dec 1992 14:06:09 CST +# Paul Pomes +# +bin /usr/local/new +bboards off +cc gcc -fpcc-struct-return +etc /usr/local/libdata/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +mts sendmail/smtp +pop off +remove rm -f +ranlib on +signal int +sprintf char * +options BIND +options BSD42 +options BSD43 +options DUMB +options FLOCK +options FOLDPROT='"700"' +options MHE +options MHRC +options MIME +options MSGID +options MSGPROT='"600"' +options NTOHLSWAP +options OVERHEAD +options RENAME +options RPATHS +options SBACKUP='"\\043"' +options UNISTD +options VSPRINTF +options ZONEINFO diff --git a/docs/historical/mh-6.8.5/conf/examples/encore b/docs/historical/mh-6.8.5/conf/examples/encore new file mode 100644 index 0000000..7c953d0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/encore @@ -0,0 +1,14 @@ +# encore +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals none +mts sendmail/smtp +options BSD42 WHATNOW +options MHE RPATHS +pop on +popbboards on +ccoptions -q nocompiler_registers +ldoptions -s diff --git a/docs/historical/mh-6.8.5/conf/examples/fujitsu.clcs.com.au b/docs/historical/mh-6.8.5/conf/examples/fujitsu.clcs.com.au new file mode 100644 index 0000000..41ee8b2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/fujitsu.clcs.com.au @@ -0,0 +1,28 @@ +# fujitsu.clcs.com.au - MH 6.8 for Fujitsu/ICL DRS6000 running System V R4 +# [This is known to work with OS Versions: 4.03 and 5.1.04] +# +# From: Stephen Prince +# Date: Tue, 08 Dec 1992 10:47:02 +1100 +# +bin /usr/local/bin/mh +etc /usr/local/lib/mh +bboards off +mail /var/mail +mailgroup mail +manuals gen +mandir /usr/local/man +mts sendmail/smtp +options ATTVIBUG BIND FCNTL SYS5 SYS5DIR SVR4 NFS +options SOCKETS SHADOW BERK MHRC MIME RPATHS RENAME +options VSPRINTF ZONEINFO FOLDPROT='"0750"' UNISTD +options MORE='"/usr/local/bin/less"' +signal void +pop off +ranlib off +oldload none +curses -lcurses +ldoptlibs -lsocket -lnsl +ccoptions -O -I/usr/include -I/usr/ucbinclude +sharedlib sys5 +slibdir /usr/lib +slflags -K pic diff --git a/docs/historical/mh-6.8.5/conf/examples/gould b/docs/historical/mh-6.8.5/conf/examples/gould new file mode 100644 index 0000000..aaf8a2c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/gould @@ -0,0 +1,9 @@ +# gould +bin /usr/local +bboards on +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals local +mts sendmail +options MHE +ldoptions -m 8 diff --git a/docs/historical/mh-6.8.5/conf/examples/hplpm.hpl.hp.com b/docs/historical/mh-6.8.5/conf/examples/hplpm.hpl.hp.com new file mode 100644 index 0000000..a9672b9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/hplpm.hpl.hp.com @@ -0,0 +1,27 @@ +# hplpm.hpl.hp.com - Hewlett-Packard 9000 machines +# From: Peter Marvit +# For a reasonably heterogeneous environemnt fof Hewlett-Packard 9000 +# machines (both series 300 and 800), conf/MH: +# +bin /usr/local/bin/mh +etc /usr/local/lib/mh +bboards off +bbdelivery off +debug off +pop off +ranlib off +mail /usr/mail +mailgroup mail +mandir /usr/local/man +manuals standard +chown /bin/chown +mts sendmail/smtp +editor vi +mf off +remove rm -f +options ATHENA ATZ BIND ISI MHE +options MHRC MORE='"/usr/bin/more"' NDIR NFS +options OVERHEAD RPATHS SENDMAILBUG SOCKETS SYS5 TZNAME WHATNOW +options SBACKUP='"\\043"' +curses -lcurses +ldoptions -nqs diff --git a/docs/historical/mh-6.8.5/conf/examples/hpux.sap-ag.de b/docs/historical/mh-6.8.5/conf/examples/hpux.sap-ag.de new file mode 100644 index 0000000..0ecf232 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/hpux.sap-ag.de @@ -0,0 +1,20 @@ +# hpux.sap-ag.de - MH 6.8 options for HPUX (HPUX 8.05 on HP9000/720). +# Bill Wohler +# Sat, 31 Oct 92 19:16:29 +0100 +# +# General +# +bin /usr/local/bin/mh +ldoptions -s +mandir /usr/local/man +manuals standard +mts sendmail/smtp +options BIND DBMPWD ISI MHE MHRC OVERHEAD RPATHS WHATNOW UK +# +# Machine specific options +# +ccoptions +DA1.0 +DS1.0 +options SYS5 NDIR SOCKETS _STRINGS +curses -lcurses -ltermlib +signal void +sprintf int diff --git a/docs/historical/mh-6.8.5/conf/examples/hpux.uiuc.edu b/docs/historical/mh-6.8.5/conf/examples/hpux.uiuc.edu new file mode 100644 index 0000000..d0fdba1 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/hpux.uiuc.edu @@ -0,0 +1,41 @@ +# hpux.uiuc.edu - MH 6.8 HP-9000/700 with HP-UX 8.0 and sendmail +# Fri, 11 Dec 1992 14:06:09 CST +# Paul Pomes +# +bin /usr/local/bin +bboards off +etc /usr/local/lib/mh +ldoptlibs -ldbm +mail /usr/mail +mandir /usr/local/man +mailgroup mail +manuals standard +mts sendmail/smtp +pop off +remove rm -f +signal void +sprintf int +options BIND +options DBMPWD +options DUMB +options FOLDPROT='"700"' +options LOCKF +options MHE +options MHRC +options MIME +options MORE='"/usr/bin/more"' +options MSGID +options MSGPROT='"600"' +options OVERHEAD +options RENAME +options RPATHS +options SBACKUP='"\\043"' +options SOCKETS +options SVR4 +options SYS5 +options SYS5DIR +options TERMINFO +options TZNAME +options UNISTD +options VSPRINTF +options NTOHLSWAP diff --git a/docs/historical/mh-6.8.5/conf/examples/kosciusko.esd.3com.com b/docs/historical/mh-6.8.5/conf/examples/kosciusko.esd.3com.com new file mode 100644 index 0000000..2727ccf --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/kosciusko.esd.3com.com @@ -0,0 +1,38 @@ +# kosciusko.esd.3com.com - SunOS 4.0.3 +# From: "Mark D. Baushke" +# Sun Hardware: Sun-4c/60 +# Sun Software: SunOS 4.0.3 +# DNS libc.so.1.3.1 (from uunet:sun-fixes) +# YP/NIS passwd + automounter maps +# automounter for home directories and /n tree +# VAX Hardware: VAX 11/785 +# VAX Software: MORE/bsd 4.3 (mt. Xinu) +# Window Systems (Sun hardware only): +# X11R4 (+ fixes 1-9) +# OpenWindows 1.0.1 +# sunview +# Interfaces tested: +# xmh (from X11R4), +# GNU Emacs 18.55 (mh-e version 3.6) +# Epoch 3.1 (mh-e version 3.6) +# shelltool (standard command-based user-interface) +# /bin/csh (standard command-based user-interface) +# +# The /n tree is a replicated filesystem (auto)mounted based on hardware +# and operating system. +# +bin /n/mh/mh-6.7/bin +etc /n/mh/mh-6.7/etc +mail /usr/spool/mail +mandir /n/mh/mh-6.7/man +manuals standard +mts sendmail/smtp +options BSD42 BSD43 SUN40 DUMB ATHENA +options MHE MHRC NFS BIND DBMPWD +options SBACKUP='"\\043"' OVERHEAD +ranlib on +ldoptions -n -s -O +bboards off +pop off +sharedlib off +tma off diff --git a/docs/historical/mh-6.8.5/conf/examples/krusty.smsc.sony.COM b/docs/historical/mh-6.8.5/conf/examples/krusty.smsc.sony.COM new file mode 100644 index 0000000..8caf8f4 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/krusty.smsc.sony.COM @@ -0,0 +1,22 @@ +# krusty.smsc.sony.COM - System V Release 4 running mailsurr +# +# David Elliott 1990, 1991 +# +# +bin /usr/local/bin/mh +etc /usr/local/lib/mh +mail /usr/mail +chown /bin/chown +manuals gen +mts sendmail/smtp +sprintf int +ldoptlibs -lsocket -lnsl -lgen +curses -lcurses +ranlib off +options ATTVIBUG +options MORE='"/bin/more"' +options SOCKETS +options SYS5 +options SYS5DIR +options SVR4 +options TYPESIG=void diff --git a/docs/historical/mh-6.8.5/conf/examples/mhmts b/docs/historical/mh-6.8.5/conf/examples/mhmts new file mode 100644 index 0000000..18766b5 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/mhmts @@ -0,0 +1,8 @@ +# mhmts - stand-alone mhmts template +bin /usr/local +bboards off +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals local +mts mh +mf on diff --git a/docs/historical/mh-6.8.5/conf/examples/mmdf b/docs/historical/mh-6.8.5/conf/examples/mmdf new file mode 100644 index 0000000..e477f55 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/mmdf @@ -0,0 +1,8 @@ +# mmdf - template using mts: mmdf +bin /usr/local +bboards off +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals local +mts mmdf +mf on diff --git a/docs/historical/mh-6.8.5/conf/examples/ridge b/docs/historical/mh-6.8.5/conf/examples/ridge new file mode 100644 index 0000000..72a8f35 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/ridge @@ -0,0 +1,15 @@ +# ridge - ROS +bin /usr/local/bin +mail /usr/mail +manuals standard +chown /bin/chown +remove cp +mts sendmail +bboards on +options SYS5 +options ISI MORE='"/bin/more"' +ccoptions -V 5 -I/usr/4.2/include +curses -lcurses +ranlib on +oldload none +ldoptlibs -lndir diff --git a/docs/historical/mh-6.8.5/conf/examples/rs6000 b/docs/historical/mh-6.8.5/conf/examples/rs6000 new file mode 100644 index 0000000..6c2967e --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/rs6000 @@ -0,0 +1,34 @@ +# rs6000 - RISC 6000/320, with AIX 3.1 (3.03) +# +bin /usr/local/bin +etc /usr/local/lib/mh +chown /bin/chown +mail /usr/spool/mail +mandir /usr/local/man +manuals standard +mts sendmail/smtp +pop off +options AIX AIX3_1 TYPESIG=void SYS5 SYS5DIR +options ATZ +options BIND +options DBMPWD +options MHE +options MHRC +options NETWORK +options NTOHLSWAP +options OVERHEAD +options RPATHS +options SOCKETS +options TZNAME +options WHATNOW +options SBACKUP='"\\043"' +options MSGPROT='"0600"' +options FOLDPROT='"0710"' +options NFOLDERS=500 +bboards off +curses -lcurses +ccoptions -g -D_NO_PROTO -D_NONSTD_TYPES -D_MBI=void -U__STR__ +ldoptions -g +ranlib on +sprintf int + diff --git a/docs/historical/mh-6.8.5/conf/examples/sendmts b/docs/historical/mh-6.8.5/conf/examples/sendmts new file mode 100644 index 0000000..2a62e07 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sendmts @@ -0,0 +1,7 @@ +# sendmail - template using mts: sendmail +bin /usr/local +bboards on +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals local +mts sendmail diff --git a/docs/historical/mh-6.8.5/conf/examples/shrike.irvine.com b/docs/historical/mh-6.8.5/conf/examples/shrike.irvine.com new file mode 100644 index 0000000..80cde61 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/shrike.irvine.com @@ -0,0 +1,50 @@ +# shrike.irvine.com - MH 6.7.2 - HP 9000/700 HP/UX 8.x sendmail version +# contributed by Jerry Sweet +# +# Notes: +# 1. Make sure you're using /bin/make, and not GNU Make. +# +# 2. You may have to modify h/string.h where strlen is declared as follows: +# +# #if defined(hpux) +# /* size_t strlen (); */ +# #else +# int strlen (); +# #endif +# +# 3. vmh.c won't compile. (Sorry, don't have any patches yet for that.) +# +# +bin /usr/local/bin/mh-6.7.2 +etc /usr/local/lib/mh-6.7.2 +mail /usr/spool/mail +mandir /usr/local/man +manuals standard +chown /bin/chown +editor prompter +remove mv -f +mts sendmail/smtp +pop on +options ATHENA +options ATZ +options BIND +options MHE +options MHRC +options MORE='"/usr/bin/more"' +options MSGPROT='"0600"' +options NDIR +options NTOHLSWAP +options POPUUMBOX +options SOCKETS +options SYS5 +options TZNAME +options TYPESIG=void +options VSPRINTF +options WHATNOW +options DPOP +options RPOP +options POP2 +options POPSERVICE='"pop3"' +ccoptions -O +curses -lcurses -ltermlib +sprintf int diff --git a/docs/historical/mh-6.8.5/conf/examples/solaris2.sun.com b/docs/historical/mh-6.8.5/conf/examples/solaris2.sun.com new file mode 100644 index 0000000..202a631 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/solaris2.sun.com @@ -0,0 +1,54 @@ +# solaris2.sun.com - MH 6.8 - Solaris 2.x +# Solaris 2.x (native, no source/binary compatability) +# contributed by Greg.Onufer@cheers.Bungi.COM +# Wed, 11 Nov 1992 00:43:19 PST + +# Bulletin Boards +bbdelivery off +bboards off + +# Compilation Environment +cc cc +ccoptions -O -g +curses -lcurses +# ldoptions may also need -R/opt/mh/lib +ldoptions -s +ldoptlibs -lnsl -lsocket +sharedlib sys5 +slflags -K pic +ranlib off +chown /usr/bin/chown +oldload none + +# RunTime Environment +bin /opt/mh/bin +etc /opt/mh/lib +slibdir /opt/mh/lib +mandir /opt/mh/man +manuals standard +editor /usr/bin/vi +mail /var/mail +mts sendmail/smtp + +# Compilation Options +options SYS5 +options SVR4 +options FCNTL +options RENAME +options VSPRINTF +options ATTVIBUG +options DBMPWD +options DUMB +options MORE='"/usr/bin/more"' +options MSGPROT='"0600"' +options MSGID +options RPATHS +options SOCKETS +options FOLDPROT='"0711"' +options SHADOW +options SYS5DIR +options MHRC +options MHE +options MIME +signal void +sprintf int diff --git a/docs/historical/mh-6.8.5/conf/examples/sun3.5 b/docs/historical/mh-6.8.5/conf/examples/sun3.5 new file mode 100644 index 0000000..2a43e13 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sun3.5 @@ -0,0 +1,40 @@ +# sun3.5 - MH 6.8 configuration file for SunOS 3.5 +# Fri, 28 Feb 1992 00:49:32 -0800 +# Casey Leedom +# + +# +# Options required by SunOS 3.5. (You can use FLOCK instead of LOCKF +# if you don't have multiple machine mounting mail spools with NFS.) +# +mts sendmail/smtp +options BIND BSD42 DBMPWD LOCKF +curses -lcurses -ltermcap +sprintf int + +# +# Site preference options. +# +# Note that if you choose not to use the option "BERK" and you use Domain +# Name Service via NIS, then you'd better add "ldoptlibs -lresolv" to +# prevent post(1) from hanging on hosts with MX records and no address +# records. (No, you really don't want to know why.) +# +# Also, under SunOS 3.5 you'll need to add "ccoptions -I../h -I../../h +# -I../../../h" because the supplied libresolv.a under SunOS 3.5 uses the +# newer BSD4.3 based hostent structure which is different from the BSD4.2 +# based hostent structure declared in /usr/include/netdb.h. Why does adding +# this help? There's a version of netdb.h in ../h that has the BSD4.3 based +# hostent structure. We need to use all the different forms of ../h because +# the MH makefile system doesn't offer a $(TOP) variable like the X Windows +# Makefile system ... (sigh) I told you that you didn't want to know about +# any of this ... +# +bin /usr/local/bin/mh +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals local +options FOLDPROT='"0700"' MHE MHRC MSGPROT='"0644"' NTOHLSWAP OVERHEAD RPATHS +ldoptions -s +ldoptlibs -lresolv +ccoptions -I../h -I../../h -I../../../h diff --git a/docs/historical/mh-6.8.5/conf/examples/sun4.0 b/docs/historical/mh-6.8.5/conf/examples/sun4.0 new file mode 100644 index 0000000..9b7e58b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sun4.0 @@ -0,0 +1,37 @@ +# sun4.0 - For Sun OS 4.* with SendMail, Yellow Pages and /etc/named. +# MH will post mail through an SMTP connection to the localhost's +# SendMail daemon. Be sure to set "servers" in your mtstailor file. +# +bin /usr/new/mh +etc /usr/new/lib/mh +mail /usr/spool/mail +manuals new +editor prompter +mts sendmail/smtp +options BSD42 BSD43 SUN40 +options DBMPWD +options BIND +signal void +curses -lcurses -ltermcap +ranlib on +ldoptions -s -O +# +# include "bbc" support to read NetNews via the NNTP. +# +bboards nntp +bbdelivery off +pop on +# +# These are optional: +# +# DUMB restricts some address defaulting +# RPATHS don't throw away UNIX "From " lines +# MHE for Emacs/MH interface +# SBACKUP change to "#" instead of "," +# MSGPROT default messages to 0600 protection mode +# +options DUMB +options RPATHS +options MHE +options SBACKUP='"\\043"' +options MSGPROT='"0600"' diff --git a/docs/historical/mh-6.8.5/conf/examples/sun4.1.1 b/docs/historical/mh-6.8.5/conf/examples/sun4.1.1 new file mode 100644 index 0000000..5efa3bb --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sun4.1.1 @@ -0,0 +1,30 @@ +# sun4.1.1 - MH 6.8 configuration file for SunOS 4.1.1 +# Fri, 28 Feb 1992 00:49:32 -0800 +# Casey Leedom +# + +# +# Options required by SunOS 4.1.1. (You can use FLOCK instead of LOCKF +# if you don't have multiple machine mounting mail spools with NFS.) +# +mts sendmail/smtp +options ATTVIBUG BIND BSD42 BSD43 DBMPWD +options LOCKF SUN40 SUN41 ZONEINFO +signal void +curses -lcurses -ltermcap + +# +# Site preference options. +# +# Note that if you choose not to use the option "BERK" and you use Domain +# Name Service via NIS, then you'd better add "ldoptlibs -lresolv" to +# prevent post(1) from hanging on hosts with MX records and no address +# records. (No, you really don't want to know why.) +# +bin /usr/local/bin/mh +etc /usr/local/lib/mh +mail /usr/spool/mail +manuals local +options FOLDPROT='"0700"' MHE MHRC MSGPROT='"0644"' NTOHLSWAP OVERHEAD RPATHS +ldoptions -s +ldoptlibs -lresolv diff --git a/docs/historical/mh-6.8.5/conf/examples/sun411.rpi.edu b/docs/historical/mh-6.8.5/conf/examples/sun411.rpi.edu new file mode 100644 index 0000000..f34ee75 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sun411.rpi.edu @@ -0,0 +1,36 @@ +# sun411.rpi.edu - MH 6.8, Sparcstation SunOS 4.1.1 with AFS Kerberos +# Thu, 03 Dec 1992 13:45:09 +# James Ault +# +bin /campus/other/mh/6.7.1k/@sys/bin +etc /campus/other/mh/6.7.1k/@sys/lib +mail /usr/spool/mail +mailgroup off +mandir /campus/other/mh/6.7.1k/@sys/man +manuals standard +chown /etc/chown +editor prompter +remove mv -f +mts sendmail +bboards off +bbdelivery off +mf off +pop on +kpop on +hesiod off +options ATHENA ATTVIBUG ATZ BIND BSD42 BSD43 DBM DUMB +options FOLDPROT='"0711"' FLOCK MHE MHRC MSGPROT='"0600"' +options NOMHSEQ OVERHEAD POP2 POPSERVICE='"kpop"' RPATHS +options RPOP KPOP TRANSARC_KAS SBACKUP='"\\043"' +options SUN40 SUN41 TZNAME ZONEINFO +options ISI WP YP_LOOKUP +ccoptions -O -I/campus/athena/kerberos/V4/@sys/include +curses -lcurses -ltermcap +ldoptions -n +ldoptlibs -L/campus/athena/kerberos/V4/@sys/lib -lkrb -ldes +ldoptlibs -L/campus/bsd/bind/4.8.3/@sys/lib -lresolv +lex lex -nt +sprintf int +signal void +ranlib on +sharedlib off diff --git a/docs/historical/mh-6.8.5/conf/examples/sys5r3.2 b/docs/historical/mh-6.8.5/conf/examples/sys5r3.2 new file mode 100644 index 0000000..2bf8e47 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sys5r3.2 @@ -0,0 +1,60 @@ +# sys5r3.2 - SVr3.2 configuration file for MH 6.7.1: + +# +# conf/MH configuration file for MH-6.7 to be used on: +# AT&T Unix System V.3.2 with BSD4.3-compatible sockets +# +# the items are listed in the order they appear in mh-gen(8) +# + +bin /usr/local/bin +debug off +etc /usr/local/lib/mh +mail /usr/mail +mailgroup mail +mandir /usr/man +manuals gen +chown /bin/chown +editor prompter +remove /bin/mv -f +# if no TCP/IP sendmail is available: change mts entry to sendmail +mts sendmail/smtp +bboards off +bbdelivery off +bbhome /usr/spool/bboards +mf off +pop off +# options SEE BELOW +cc cc +ccoptions -O +curses -lcurses +ldoptions -s +ldoptlibs +lex lex +sprintf int +sharedlib off +slibdir /usr/local/lib +oldload off +ranlib off +tma off + +# +# complete list of possible macros for use with 'options': +# ALTOS ATHENA ATZ BANG BERK BIND BSD41A BSD42 BSD43 COMPAT +# DBMPWD DPOP DUMB FOLDPROT='"0711"' ISI LINK='"@"' locname +# MHE MHRC MORE='"/usr/ucb/more"' MSGPROT='"0644"' NDIR NFS +# NOIOCTLH NOMHSEQ NTOHLSWAP OVERHEAD POPSERVICE='"pop"' +# RPATHS RPOP SBACKUP='","' SENDMAILBUG SHADOW SOCKETS +# SUN40 SYS5 SYS5DIR TTYD TYPESIG='int' TZNAME UCI UK V7 WP +# WHATNOW ZONEINFO +# + +# define BIND only of the BSD4.3 named (TCP/IP) is used +# define SOCKETS only if the system has BSD4.3 sockets (TCP/IP) +options ATZ BIND DUMB MHE MHRC MORE='"/usr/bin/pg"' +options OVERHEAD SHADOW SOCKETS SYS5 SYS5DIR +options TYPESIG='void' TZNAME WHATNOW + +# +# end of conf/MH configuration file +# diff --git a/docs/historical/mh-6.8.5/conf/examples/sys5r4 b/docs/historical/mh-6.8.5/conf/examples/sys5r4 new file mode 100644 index 0000000..10e53e6 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sys5r4 @@ -0,0 +1,28 @@ +# sys5r4 - a SYS5 R4 system +# contributed by andrew@werple.pub.uu.oz.au +# +bin /usr/local/bin +etc /usr/local/lib/mh +bboards on +chown /usr/bin/chown +editor /usr/bin/vi +mail /var/mail +mandir /usr/local/man +manuals local +mts sendmail +options BSD42 +options MORE='"/usr/local/bin/less"' +options MSGPROT='"0600"'SHADOW +options SYS5 +options SVR4 +options SYS5DIR +options TYPESIG=void +options UK +options on +sprintf int +cc cc +ccoptions -O +ldoptions -s +curses -lcurses +sharedlib sys5 +slibdir /usr/local/lib/mh diff --git a/docs/historical/mh-6.8.5/conf/examples/sys5r4-ncr b/docs/historical/mh-6.8.5/conf/examples/sys5r4-ncr new file mode 100644 index 0000000..b6494b9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/sys5r4-ncr @@ -0,0 +1,34 @@ +# sys5r4-ncr - an NCR system: Unix System V Release 4.0.2.0 (WINS) +# running MMDF2 with SMTP posting +# +# Apparently, there are two compilation environments: 4.2BSD and SYS5. +# This config file uses the SYS5 environment -- I never could get the +# 4.2BSD environment directory routines to work right. +# +# You may want to define SVR4; this option was added after MH was +# ported to the NCR, and I haven't been able to test it there. +# +# uip/vmh.c still won't compile because of loader problems with the +# curses & termlib libraries. Also, NCR should fix their loader not to try +# to search additional libraries for modules that have already been found. +# +bin /usr/local +etc /usr/local/lib/mh +mail .mail +manuals gen +chown /usr/bin/chown +mts mmdf2/smtp +mf off +ranlib off +bboards off +bbdelivery off +oldload none +cc /bin/cc +ldoptlibs -lnet -lnsl -lsocket +options MORE='"/usr/bin/more"' +options ncr +options SYS5 +options SYS5DIR +options SOCKETS +options TZNAME +options TYPESIG=void diff --git a/docs/historical/mh-6.8.5/conf/examples/system5 b/docs/historical/mh-6.8.5/conf/examples/system5 new file mode 100644 index 0000000..7abc210 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/system5 @@ -0,0 +1,8 @@ +# system5 - template +bin /usr/local +bboards on +etc /usr/local/lib/mh +mail mailbox +manuals gen +mts mh +options SYS5 TYPESIG=void diff --git a/docs/historical/mh-6.8.5/conf/examples/uci.gcc b/docs/historical/mh-6.8.5/conf/examples/uci.gcc new file mode 100644 index 0000000..06da66c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/uci.gcc @@ -0,0 +1,49 @@ +# uci.gcc - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# +bin /usr/bs/mh-6.8/bin +etc /usr/bs/mh-6.8/lib +popdir /usr/bs/mh-6.8/lib +mandir /usr/bs/mh-6.8/man +slibdir /usr/bs/mh-6.8/lib +bbhome /usr/bs/mh-6.8/bboards +mail /usr/spool/mail +mailgroup off +manuals none +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +#options APOP +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +#cc /usr/bs/sunc/cc +cc /usr/gnu/bin/gcc -ansi -fpcc-struct-return +ldoptions -s +ldoptlibs -ldbm +sharedlib off diff --git a/docs/historical/mh-6.8.5/conf/examples/uci.hp-pa b/docs/historical/mh-6.8.5/conf/examples/uci.hp-pa new file mode 100644 index 0000000..c2edb55 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/uci.hp-pa @@ -0,0 +1,64 @@ +# uci.hp-pa - MH 6.8 options for HPUX (HPUX 8.05 on HP9000/720). +# based on a file from Bill Wohler +# Sat, 31 Oct 92 19:16:29 +0100 +# +# +# Installation Paths +# +bin /usr/local/mh-6.8 +etc /usr/local/lib/mh-6.8 +popdir /usr/local/lib/mh-6.8 +mandir /usr/man/mh +manuals standard +chown /bin/chown +#ln ln -s +# +# Compiler/loader +# +ccoptions +DA1.0 +DS1.0 +curses -lcurses -ltermlib +ldoptions -s +# +# Message Transport System +# +mts mmdf2/smtp +# +# UCI BBoards Facility +# +#bboards nntp +bboards off +bbdelivery off +# +# Post Office Protocol +# +pop on +# +# General System Dependencies +# +signal void +sprintf int + +options BIND +options DBMPWD +options FCNTL +options MORE='"/usr/bin/more"' +options RENAME +options SOCKETS +options SYS5 +options SYS5DIR +options UNISTD +options VSPRINTF +options _CLASSIC_ANSI_TYPES + +# +# Site Preferences +# +options FOLDPROT='"0700"' +options MHE +options MHRC +options MIME +options MSGPROT='"0600"' +options OVERHEAD +options RPOP +options UCI +options WHATNOW diff --git a/docs/historical/mh-6.8.5/conf/examples/uci.sequent b/docs/historical/mh-6.8.5/conf/examples/uci.sequent new file mode 100644 index 0000000..03285cc --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/uci.sequent @@ -0,0 +1,51 @@ +# uci.sequent - MH 6.8 - Sequent running Dynix 3.1 +# +bin /usr/bs/mh-6.8/bin +etc /usr/bs/mh-6.8/lib +#mandir /usr/man +mandir /usr/bs/mh-6.8/man +#popdir /usr/etc +popdir /usr/bs/mh-6.8/lib +#slibdir /usr/bs/mh-6.8/lib +bbhome /usr/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +#bbdelivery on +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +#options APOP +curses -lcurses -ltermcap +ranlib on +# Sequent specicis +#options TYPESIG=int +signal int +#options DBMPWD +#options NFS +#options SUN40 +#options ATTVIBUG +#options MPOP +#options ZONEINFO +# +cc atscc +ldoptions -s +ldoptlibs -lseq +sharedlib off diff --git a/docs/historical/mh-6.8.5/conf/examples/uci.sun b/docs/historical/mh-6.8.5/conf/examples/uci.sun new file mode 100644 index 0000000..28ad78b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/uci.sun @@ -0,0 +1,52 @@ +# uci.sun - MH 6.8 - Sun3 or Sun4 running Sun OS 4 +# +bin /opt/mh-6.8.4/bin +etc /opt/mh-6.8.4/lib +popdir /opt/mh-6.8.4/lib +mandir /opt/mh-6.8.4/man +slibdir /opt/mh-6.8.4/lib +bbhome /usr/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +options NEWSAUTH +#options APOP +#options JLR +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +#cc /usr/bs/sunc/cc +#cc /usr/gnu/bin/gcc +#cc /opt/SUNWspro/3.0.1/bin/acc +ldoptions -s -L/opt/mh-6.8.4/lib +ldoptlibs -ldbm +sharedlib sun4 diff --git a/docs/historical/mh-6.8.5/conf/examples/uci.sun.debug b/docs/historical/mh-6.8.5/conf/examples/uci.sun.debug new file mode 100644 index 0000000..857ab53 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/uci.sun.debug @@ -0,0 +1,51 @@ +# uci.sun.debug - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# +bin /usr/bs/mh-6.8/bin +etc /usr/bs/mh-6.8/lib +popdir /usr/bs/mh-6.8/lib +mandir /usr/bs/mh-6.8/man +slibdir /usr/bs/mh-6.8/lib +bbhome /usr/bs/mh-6.8/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +#options APOP +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +cc /usr/bs/sunc/cc +#cc /usr/gnu/bin/gcc +#ldoptions -s -L/usr/bs/mh-6.8/lib +ldoptions -g +ccoptions -g +ldoptlibs -ldbm +#sharedlib sun4 diff --git a/docs/historical/mh-6.8.5/conf/examples/udel b/docs/historical/mh-6.8.5/conf/examples/udel new file mode 100644 index 0000000..19db6ad --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/udel @@ -0,0 +1,11 @@ +# udel - UDel template +bin /usr/uci +bboards on +etc /usr/uci/lib/mh +mail .mail +manuals local +mts mmdf2/smtp +options BSD42 MHE MSGPROT='"0600"' OVERHEAD RPOP WHATNOW +pop on +popbboards on +ldoptions -n -s diff --git a/docs/historical/mh-6.8.5/conf/examples/ultrix.sap-ag.de b/docs/historical/mh-6.8.5/conf/examples/ultrix.sap-ag.de new file mode 100644 index 0000000..d71a99d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/examples/ultrix.sap-ag.de @@ -0,0 +1,25 @@ +# ultrix.sap-ag.de - MH 6.8 options for ULTRIX (ULTRIX 4.2 on RISC). +# Bill Wohler +# Sat, 31 Oct 92 19:14:43 +0100 +# +# General +# +bin /usr/local/bin/mh +ldoptions -s +mandir /usr/local/man +manuals standard +mts sendmail/smtp +options BIND DBMPWD ISI MHE MHRC OVERHEAD RPATHS WHATNOW UK +# +# Machine specific options +# +options BSD42 BSD43 +curses -lcurses -ltermlib +signal void +# +# +# the compiler complains: +# formatsbr.c: +# uopt: Warning: fmtscan: this procedure not optimized because it +# exceeds size threshold; to optimize this procedure, use -Olimit option +# with value >= 679. diff --git a/docs/historical/mh-6.8.5/conf/local/MH b/docs/historical/mh-6.8.5/conf/local/MH new file mode 100644 index 0000000..fbeab12 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH @@ -0,0 +1,34 @@ +bin /usr/local +bboards nntp +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mailgroup off +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BIND +options BSD42 +options BSD43 +options DBM +options MHE +options MHRC +options NFS +options POP2 +options RPATHS +options RPOP +options SUN40 +options TYPESIG=void +options WHATNOW +options UCI +pop on +ldoptions -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib off +slibdir /usr/local/lib diff --git a/docs/historical/mh-6.8.5/conf/local/MH.beaver b/docs/historical/mh-6.8.5/conf/local/MH.beaver new file mode 100644 index 0000000..92a7f8a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.beaver @@ -0,0 +1,22 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 MHRC SUN40 +options MHE WHATNOW NFS +options UCI RPOP POP BIND +pop on +popbboards on +ldoptions -n -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib on diff --git a/docs/historical/mh-6.8.5/conf/local/MH.debug b/docs/historical/mh-6.8.5/conf/local/MH.debug new file mode 100644 index 0000000..b47eca7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.debug @@ -0,0 +1,28 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mailgroup off +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 +options SUN40 TYPESIG=void NFS +options MHE WHATNOW MHRC +options UCI BIND +pop on +options RPOP +nntpbboards on +popbboards off +ccoptions -g +ldoptions -g +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib off +slibdir /usr/local/lib diff --git a/docs/historical/mh-6.8.5/conf/local/MH.ics b/docs/historical/mh-6.8.5/conf/local/MH.ics new file mode 100644 index 0000000..7d15839 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.ics @@ -0,0 +1,22 @@ +bin /usr/local/bin +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 MHRC +options MHE WHATNOW +options UCI RPOP POP BIND +pop on +popbboards on +ldoptions -n -s +ldoptlibs -ldbm -lresolv +ccoptions -I/usr/src/bs/mh-6.6/h +curses -lcurses -ltermcap +ranlib on diff --git a/docs/historical/mh-6.8.5/conf/local/MH.icsf b/docs/historical/mh-6.8.5/conf/local/MH.icsf new file mode 100644 index 0000000..fc05e27 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.icsf @@ -0,0 +1,21 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 MHRC +options MHE WHATNOW +options UCI RPOP POP BIND +pop on +popbboards on +ldoptions -n -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on diff --git a/docs/historical/mh-6.8.5/conf/local/MH.jlr b/docs/historical/mh-6.8.5/conf/local/MH.jlr new file mode 100644 index 0000000..1821046 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.jlr @@ -0,0 +1,35 @@ +bin /usr/local +bboards nntp +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mailgroup off +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BIND +options BSD42 +options BSD43 +options DBM +options LOCKF +options MHE +options MHRC +options NFS +options POP2 +options RPATHS +options RPOP +options SUN40 +options TYPESIG=void +options WHATNOW +options UCI +pop on +ldoptions -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib off +slibdir /usr/local/lib diff --git a/docs/historical/mh-6.8.5/conf/local/MH.jlr.debug b/docs/historical/mh-6.8.5/conf/local/MH.jlr.debug new file mode 100644 index 0000000..2cd4c2b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.jlr.debug @@ -0,0 +1,27 @@ +bin /usr/local +bboards nntp +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mailgroup off +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 +options SUN40 TYPESIG=void NFS +options MHE WHATNOW MHRC +options UCI BIND RPATHS DBM +options JLR +pop on +options RPOP POP2 +ccoptions -g +ldoptions -g +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib off +slibdir /usr/local/lib diff --git a/docs/historical/mh-6.8.5/conf/local/MH.next b/docs/historical/mh-6.8.5/conf/local/MH.next new file mode 100644 index 0000000..214bf61 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.next @@ -0,0 +1,23 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 MHRC +options MHE WHATNOW NFS +options UCI RPOP POP BIND +pop on +popbboards on +ldoptions -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib off +ccoptions -I/usr/src/bs/mh-6.6.next/h diff --git a/docs/historical/mh-6.8.5/conf/local/MH.noman b/docs/historical/mh-6.8.5/conf/local/MH.noman new file mode 100644 index 0000000..5838f87 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.noman @@ -0,0 +1,24 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals none +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 MHRC SUN40 +options MHE WHATNOW NFS +options UCI BIND +pop on +options RPOP +nntpbboards on +popbboards off +ldoptions -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib off diff --git a/docs/historical/mh-6.8.5/conf/local/MH.raj b/docs/historical/mh-6.8.5/conf/local/MH.raj new file mode 100644 index 0000000..564305b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.raj @@ -0,0 +1,21 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts sendmail/smtp +options BSD42 BSD43 MHRC +options MHE WHATNOW NFS +options UCI RPOP POP +pop on +popbboards on +ldoptions -n -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on diff --git a/docs/historical/mh-6.8.5/conf/local/MH.rome b/docs/historical/mh-6.8.5/conf/local/MH.rome new file mode 100644 index 0000000..ff60b1d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.rome @@ -0,0 +1,22 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 MHRC +options MHE WHATNOW NFS +options UCI RPOP POP BIND +pop on +popbboards on +ldoptions -n -s +ldoptlibs -ldbm -lresolv +ccoptions -I/usr/src/bs/mh-6.6/h +curses -lcurses -ltermcap +ranlib on diff --git a/docs/historical/mh-6.8.5/conf/local/MH.sun3_running_4.0 b/docs/historical/mh-6.8.5/conf/local/MH.sun3_running_4.0 new file mode 100644 index 0000000..93678bc --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.sun3_running_4.0 @@ -0,0 +1,22 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 MHRC SUN40 +options MHE WHATNOW NFS +options UCI RPOP POP BIND +pop on +popbboards on +ldoptions -n -s +ldoptlibs -ldbm -lresolv +curses -lcurses -ltermcap +ranlib on +sharedlib on diff --git a/docs/historical/mh-6.8.5/conf/local/MH.sun4 b/docs/historical/mh-6.8.5/conf/local/MH.sun4 new file mode 100644 index 0000000..92a7f8a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/MH.sun4 @@ -0,0 +1,22 @@ +bin /usr/local +bboards on +bbhome /usr/bboards +etc /usr/local/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals local +chown /etc/chown +editor prompter +remove mv -f +mf off +mts mmdf2/smtp +options BSD42 BSD43 MHRC SUN40 +options MHE WHATNOW NFS +options UCI RPOP POP BIND +pop on +popbboards on +ldoptions -n -s +ldoptlibs -ldbm +curses -lcurses -ltermcap +ranlib on +sharedlib on diff --git a/docs/historical/mh-6.8.5/conf/local/uci.gcc b/docs/historical/mh-6.8.5/conf/local/uci.gcc new file mode 100644 index 0000000..06da66c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/uci.gcc @@ -0,0 +1,49 @@ +# uci.gcc - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# +bin /usr/bs/mh-6.8/bin +etc /usr/bs/mh-6.8/lib +popdir /usr/bs/mh-6.8/lib +mandir /usr/bs/mh-6.8/man +slibdir /usr/bs/mh-6.8/lib +bbhome /usr/bs/mh-6.8/bboards +mail /usr/spool/mail +mailgroup off +manuals none +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +#options APOP +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +#cc /usr/bs/sunc/cc +cc /usr/gnu/bin/gcc -ansi -fpcc-struct-return +ldoptions -s +ldoptlibs -ldbm +sharedlib off diff --git a/docs/historical/mh-6.8.5/conf/local/uci.hp-pa b/docs/historical/mh-6.8.5/conf/local/uci.hp-pa new file mode 100644 index 0000000..c2edb55 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/uci.hp-pa @@ -0,0 +1,64 @@ +# uci.hp-pa - MH 6.8 options for HPUX (HPUX 8.05 on HP9000/720). +# based on a file from Bill Wohler +# Sat, 31 Oct 92 19:16:29 +0100 +# +# +# Installation Paths +# +bin /usr/local/mh-6.8 +etc /usr/local/lib/mh-6.8 +popdir /usr/local/lib/mh-6.8 +mandir /usr/man/mh +manuals standard +chown /bin/chown +#ln ln -s +# +# Compiler/loader +# +ccoptions +DA1.0 +DS1.0 +curses -lcurses -ltermlib +ldoptions -s +# +# Message Transport System +# +mts mmdf2/smtp +# +# UCI BBoards Facility +# +#bboards nntp +bboards off +bbdelivery off +# +# Post Office Protocol +# +pop on +# +# General System Dependencies +# +signal void +sprintf int + +options BIND +options DBMPWD +options FCNTL +options MORE='"/usr/bin/more"' +options RENAME +options SOCKETS +options SYS5 +options SYS5DIR +options UNISTD +options VSPRINTF +options _CLASSIC_ANSI_TYPES + +# +# Site Preferences +# +options FOLDPROT='"0700"' +options MHE +options MHRC +options MIME +options MSGPROT='"0600"' +options OVERHEAD +options RPOP +options UCI +options WHATNOW diff --git a/docs/historical/mh-6.8.5/conf/local/uci.sequent b/docs/historical/mh-6.8.5/conf/local/uci.sequent new file mode 100644 index 0000000..edffec0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/uci.sequent @@ -0,0 +1,51 @@ +# uci.sequent - MH 6.8 - Sequent running Dynix 3.1 +# +bin /usr/local/mh-6.8 +etc /usr/local/lib/mh-6.8 +#mandir /usr/man +mandir /usr/local/man +#popdir /usr/etc +popdir /usr/local/lib/mh-6.8 +#slibdir /usr/bs/mh-6.8/lib +bbhome /usr/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +#bbdelivery on +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +#options APOP +curses -lcurses -ltermcap +ranlib on +# Sequent specicis +#options TYPESIG=int +signal int +#options DBMPWD +#options NFS +#options SUN40 +#options ATTVIBUG +#options MPOP +#options ZONEINFO +# +cc atscc +ldoptions -s +ldoptlibs -lseq +sharedlib off diff --git a/docs/historical/mh-6.8.5/conf/local/uci.sun b/docs/historical/mh-6.8.5/conf/local/uci.sun new file mode 100644 index 0000000..943e250 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/uci.sun @@ -0,0 +1,51 @@ +# uci.sun - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# +bin /opt/mh-beta/bin +etc /opt/mh-beta/lib +popdir /opt/mh-beta/lib +mandir /opt/mh-beta/man +slibdir /opt/mh-beta/lib +bbhome /usr/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +options NEWSAUTH +#options APOP +options JLR +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +cc /usr/bin/cc +#cc /usr/gnu/bin/gcc +ldoptions -s -L/opt/mh-beta/lib +ldoptlibs -ldbm +sharedlib sun4 diff --git a/docs/historical/mh-6.8.5/conf/local/uci.sun-g b/docs/historical/mh-6.8.5/conf/local/uci.sun-g new file mode 100644 index 0000000..1229d60 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/uci.sun-g @@ -0,0 +1,52 @@ +# uci.sun - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# +bin /opt/mh-beta/bin +etc /opt/mh-beta/lib +popdir /opt/mh-beta/lib +mandir /opt/mh-beta/man +slibdir /opt/mh-beta/lib +bbhome /usr/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +options NEWSAUTH +#options APOP +options JLR +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +#cc /opt/sunc/cc +cc /opt/SUNWspro/3.0.1/bin/acc -g +#cc /usr/gnu/bin/gcc +ldoptions -g -s -L/opt/mh-beta/lib +ldoptlibs -ldbm +sharedlib sun4 diff --git a/docs/historical/mh-6.8.5/conf/local/uci.sun.debug b/docs/historical/mh-6.8.5/conf/local/uci.sun.debug new file mode 100644 index 0000000..982dbe2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/uci.sun.debug @@ -0,0 +1,53 @@ +# uci.sun.debug - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# +bin /opt/mh-beta/bin +etc /opt/mh-beta/lib +popdir /opt/mh-beta/lib +mandir /opt/mh-beta/man +slibdir /opt/mh-beta/lib +bbhome /opt/mh-beta/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts mmdf2/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +options NEWSAUTH +#options APOP +options JLR +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +cc /opt/SUNWspro/3.0.1/bin/acc +#cc /usr/gnu/bin/gcc +#ldoptions -s -L/opt/mh-beta/lib +ldoptions -g +ccoptions -g +ldoptlibs -ldbm +#sharedlib sun4 diff --git a/docs/historical/mh-6.8.5/conf/local/uci.vangogh b/docs/historical/mh-6.8.5/conf/local/uci.vangogh new file mode 100644 index 0000000..607f53c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/local/uci.vangogh @@ -0,0 +1,51 @@ +# uci.sun.debug - MH 6.8 - Sun3 or Sun4 running Sun OS 4.1 +# +bin /usr/bs/mh-6.8/bin +etc /usr/bs/mh-6.8/lib +popdir /usr/bs/mh-6.8/lib +mandir /usr/bs/mh-6.8/man +slibdir /usr/bs/mh-6.8/lib +bbhome /usr/bs/mh-6.8/bboards +mail /usr/spool/mail +mailgroup off +manuals standard +chown /etc/chown +editor prompter +remove rm -f +mts sendmail/smtp +bboards nntp +bbdelivery off +mf off +pop on +options BIND +options BSD42 +options BSD43 +#options LOCKF +options MHE +options MHRC +options RPATHS +options WHATNOW +options MIME +options UCI +options POP2 +options RPOP +#options APOP +curses -lcurses -ltermcap +ranlib on +# Sun specifics +#options TYPESIG=void +signal void +options DBMPWD +options NFS +options SUN40 +options ATTVIBUG +#options MPOP +#options ZONEINFO +# +cc /usr/bs/sunc/cc +#cc /usr/gnu/bin/gcc +#ldoptions -s -L/usr/bs/mh-6.8/lib +ldoptions -g +ccoptions -g +ldoptlibs -ldbm +#sharedlib sun4 diff --git a/docs/historical/mh-6.8.5/conf/makefiles/MH-Makefile b/docs/historical/mh-6.8.5/conf/makefiles/MH-Makefile new file mode 100644 index 0000000..da71c89 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/MH-Makefile @@ -0,0 +1,135 @@ +############################################################################## +# Instructions to Make, for compilation of MH modules +# +# @(MHWARNING) +# @(#)$Id: MH-Makefile,v 2.16 1993/08/27 22:15:49 jromine Exp $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +SHELL = /bin/sh + +# Targets to Make: +# +# all: generate MH system, assumes configuration previously done +# +# depend: generate dependencies, for MH master maintainers only! +# +# lint: verify code, for MH master maintainers only! +# +# compat-v7: verify V7 restrictions, for MH master maintainers only! +# +# install: install system +# +# inst-all: install system +# +# inst-lib: install shared libraries +# +# mkdirs: make MH target directories +# +# tar: generate tar commands to move targets to other systems +# e.g., make TFLAGS="cf mh.tar" tar +# +# uninstall: undo installation +# +# distribution: +# revert source tree to MH distribution +# unconfig: +# removes configured files - for MH master maintainers only! +# +# checkout: MH maintainers only! +# +# clean: remove all objects and targets plus clean up +# +# unclean: remove scratch files and backups + + +############################################################################## +# Generate MH system +############################################################################## + +ALL = config sbr mts zotnet uip support doc + +all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(ALL); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(ALL); do (cd $$d; $(MAKE) lint); done + +compat-v7: all + miscellany/tools/7limit */x* */*/x* + miscellany/tools/8limit */*.o */*/*.o + + +INSTALL = zotnet support uip doc +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +MANDIR = $(DESTDIR)@(MHMANDIR) +SLIB = sbr + +install: inst-all + +inst-all: mkdirs inst-lib + for d in $(INSTALL); do (cd $$d; $(MAKE) inst-all); done + +inst-lib:; for d in $(SLIB); do (cd $$d; $(MAKE) inst-lib); done + +mkdirs: $(BINDIR) $(ETCDIR) $(MANDIR) + +$(BINDIR) $(ETCDIR) $(MANDIR): + mkdir $@ && chmod 0755 $@ + +tar:; @for d in $(INSTALL); \ + do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done + +uninstall:; for d in $(INSTALL); do (cd $$d; $(MAKE) uninstall); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +DISTRIBUTION= dist conf config sbr mts zotnet support uip doc papers + +distribution: READ-ME CHANGES + rm -f _* :* + @if test -f tma/mh/files; \ + then \ + echo rm -f `cat tma/mh/files`; rm -f `cat tma/mh/files`; \ + echo rm -rf tma; rm -rf tma; \ + fi + -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + cd support/pop/mmdfII/pop ; @(LN) ../../../../zotnet/mts/lock.c . + cd support/bboards/mmdfII/bboards ; @(LN) ../../../../zotnet/mts/lock.c . + cd zotnet/tws ; @(LN) ../tws.h . + cd uip ; @(LN) popsbr.c pshsbr.c + for d in $(DISTRIBUTION); \ + do (cd $$d; $(MAKE) distribution); done + +READ-ME: conf/mh-gen.8 + nroff -man conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@ + +CHANGES: papers/changes/mh-changes.ms + nroff -ms papers/changes/mh-changes.ms > changes.tmp + mv changes.tmp $@ + +unconfig:; rm -f _* :* core READ-ME + -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unconfig); done + cp conf/makefiles/MH-Unconfig tmp + mv tmp Makefile + +checkout: unclean lint compat-v7 + find . \( -name ":*" -o -name "_*" -o -name "#*" \) -a -print + +clean:; rm -f _* :* core + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) clean); done + +unclean:; rm -f _* :* core + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unclean); done diff --git a/docs/historical/mh-6.8.5/conf/makefiles/MH-Unconfig b/docs/historical/mh-6.8.5/conf/makefiles/MH-Unconfig new file mode 100644 index 0000000..2a07864 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/MH-Unconfig @@ -0,0 +1,20 @@ +all clean:; @echo "You must configure MH first -- see READ-ME for details" + +distribution unconfig: links READ-ME CHANGES + +READ-ME: conf/mh-gen.8 + nroff -man conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@ + +CHANGES: papers/changes/mh-changes.ms + nroff -ms papers/changes/mh-changes.ms > changes.tmp + mv changes.tmp $@ + +links:; -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + ln zotnet/mts/lock.c support/pop/mmdfII/pop/lock.c + ln zotnet/mts/lock.c support/bboards/mmdfII/bboards/lock.c + ln zotnet/tws.h zotnet/tws/tws.h + ln uip/popsbr.c uip/pshsbr.c diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Makefile,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Makefile,v new file mode 100644 index 0000000..da2b975 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Makefile,v @@ -0,0 +1,496 @@ +head 2.16; +access; +symbols; +locks; strict; + + +2.16 +date 93.08.27.22.15.49; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.12.03.16.23.40; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.12.02.22.19.13; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.11.18.16.51.59; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 92.11.06.18.53.55; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 92.11.02.22.56.13; author jromine; state Exp; +branches; +next 2.10; + +2.10 +date 92.10.29.17.41.35; author jromine; state Exp; +branches; +next 2.9; + +2.9 +date 92.10.29.16.25.20; author jromine; state Exp; +branches; +next 2.8; + +2.8 +date 92.10.16.16.51.06; author jromine; state Exp; +branches; +next 2.7; + +2.7 +date 92.03.03.17.25.21; author jromine; state Exp; +branches; +next 2.6; + +2.6 +date 92.02.06.17.25.23; author jromine; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.08.14.09.51; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.04.05.15.39.13; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.04.05.15.17.14; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.21.17.29.01; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.21.17.05.09; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.24; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.43.15; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.16 +log +@make MANDIR +@ +text +@############################################################################## +# Instructions to Make, for compilation of MH modules +# +# @@(MHWARNING) +# @@(#)$Id: MH-Makefile,v 2.15 1992/12/03 16:23:40 jromine Exp jromine $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +SHELL = /bin/sh + +# Targets to Make: +# +# all: generate MH system, assumes configuration previously done +# +# depend: generate dependencies, for MH master maintainers only! +# +# lint: verify code, for MH master maintainers only! +# +# compat-v7: verify V7 restrictions, for MH master maintainers only! +# +# install: install system +# +# inst-all: install system +# +# inst-lib: install shared libraries +# +# mkdirs: make MH target directories +# +# tar: generate tar commands to move targets to other systems +# e.g., make TFLAGS="cf mh.tar" tar +# +# uninstall: undo installation +# +# distribution: +# revert source tree to MH distribution +# unconfig: +# removes configured files - for MH master maintainers only! +# +# checkout: MH maintainers only! +# +# clean: remove all objects and targets plus clean up +# +# unclean: remove scratch files and backups + + +############################################################################## +# Generate MH system +############################################################################## + +ALL = config sbr mts zotnet uip support doc + +all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(ALL); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(ALL); do (cd $$d; $(MAKE) lint); done + +compat-v7: all + miscellany/tools/7limit */x* */*/x* + miscellany/tools/8limit */*.o */*/*.o + + +INSTALL = zotnet support uip doc +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +MANDIR = $(DESTDIR)@@(MHMANDIR) +SLIB = sbr + +install: inst-all + +inst-all: mkdirs inst-lib + for d in $(INSTALL); do (cd $$d; $(MAKE) inst-all); done + +inst-lib:; for d in $(SLIB); do (cd $$d; $(MAKE) inst-lib); done + +mkdirs: $(BINDIR) $(ETCDIR) $(MANDIR) + +$(BINDIR) $(ETCDIR) $(MANDIR): + mkdir $@@ && chmod 0755 $@@ + +tar:; @@for d in $(INSTALL); \ + do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done + +uninstall:; for d in $(INSTALL); do (cd $$d; $(MAKE) uninstall); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +DISTRIBUTION= dist conf config sbr mts zotnet support uip doc papers + +distribution: READ-ME CHANGES + rm -f _* :* + @@if test -f tma/mh/files; \ + then \ + echo rm -f `cat tma/mh/files`; rm -f `cat tma/mh/files`; \ + echo rm -rf tma; rm -rf tma; \ + fi + -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + cd support/pop/mmdfII/pop ; @@(LN) ../../../../zotnet/mts/lock.c . + cd support/bboards/mmdfII/bboards ; @@(LN) ../../../../zotnet/mts/lock.c . + cd zotnet/tws ; @@(LN) ../tws.h . + cd uip ; @@(LN) popsbr.c pshsbr.c + for d in $(DISTRIBUTION); \ + do (cd $$d; $(MAKE) distribution); done + +READ-ME: conf/mh-gen.8 + nroff -man conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@@ + +CHANGES: papers/changes/mh-changes.ms + nroff -ms papers/changes/mh-changes.ms > changes.tmp + mv changes.tmp $@@ + +unconfig:; rm -f _* :* core READ-ME + -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unconfig); done + cp conf/makefiles/MH-Unconfig tmp + mv tmp Makefile + +checkout: unclean lint compat-v7 + find . \( -name ":*" -o -name "_*" -o -name "#*" \) -a -print + +clean:; rm -f _* :* core + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) clean); done + +unclean:; rm -f _* :* core + for d in $(DISTRIBUTION); do (cd $$d; $(MAKE) unclean); done +@ + + +2.15 +log +@remove -Tcrt from nroff line +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.14 1992/12/02 22:19:13 jromine Exp jromine $ +d66 1 +d76 1 +a76 1 +mkdirs: $(BINDIR) $(ETCDIR) +d78 2 +a79 3 +$(BINDIR) $(ETCDIR): + mkdir $@@ + chmod 0755 $@@ +@ + + +2.14 +log +@add mh changes document +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.13 1992/11/18 16:51:59 jromine Exp jromine $ +d116 1 +a116 1 + nroff -ms -Tcrt papers/changes/mh-changes.ms > changes.tmp +@ + + +2.13 +log +@fixup the way @@(LN) works +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.12 1992/11/06 18:53:55 jromine Exp jromine $ +d93 1 +a93 1 +distribution: READ-ME +d114 4 +@ + + +2.12 +log +@use @@(LN) +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.11 1992/11/02 22:56:13 jromine Exp jromine $ +d104 4 +a107 4 + @@(LN) zotnet/mts/lock.c support/pop/mmdfII/pop/lock.c + @@(LN) zotnet/mts/lock.c support/bboards/mmdfII/bboards/lock.c + @@(LN) zotnet/tws.h zotnet/tws/tws.h + @@(LN) uip/popsbr.c uip/pshsbr.c +@ + + +2.11 +log +@make pshsbr.c from popsbr.c +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.10 1992/10/29 17:41:35 jromine Exp jromine $ +d104 4 +a107 4 + ln zotnet/mts/lock.c support/pop/mmdfII/pop/lock.c + ln zotnet/mts/lock.c support/bboards/mmdfII/bboards/lock.c + ln zotnet/tws.h zotnet/tws/tws.h + ln uip/popsbr.c uip/pshsbr.c +@ + + +2.10 +log +@fixup make unconfig +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.9 1992/10/29 16:25:20 jromine Exp jromine $ +d103 1 +d107 1 +d119 1 +@ + + +2.9 +log +@fixup make distribution & tws.h +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.8 1992/10/16 16:51:06 jromine Exp jromine $ +d93 2 +a94 1 +distribution:; rm -f _* :* +d109 5 +a113 1 +unconfig:; rm -f _* :* core +d118 1 +a118 2 + echo > tmp \ + 'all clean:; @@echo "You must configure MH first -- see READ-ME for details"' +@ + + +2.8 +log +@make install not force clean +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.7 1992/03/03 17:25:21 jromine Exp jromine $ +d101 1 +d104 1 +d109 3 +@ + + +2.7 +log +@add 'clean' target to empty makefile +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.6 1992/02/06 17:25:23 jromine Exp jromine $ +d21 1 +a21 1 +# install: install system and clean up afterwards +d68 1 +a68 1 +install: inst-all clean +@ + + +2.6 +log +@fixes +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.5 1990/04/08 14:09:51 sources Exp jromine $ +d109 1 +a109 1 + 'all:; @@echo "You must configure MH first -- see READ-ME for details"' +@ + + +2.5 +log +@*** empty log message *** +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.4 90/04/05 15:39:13 sources Exp Locker: sources $ +d23 2 +d27 1 +a27 1 +# inst-all: install system +d64 2 +d70 1 +a70 1 +inst-all: inst-lib +d75 6 +d99 4 +@ + + +2.4 +log +@add warning +@ +text +@d5 1 +a5 1 +# @@(#)$Id: MH-Makefile,v 2.3 90/04/05 15:17:14 sources Exp Locker: sources $ +d81 1 +a81 1 +DISTRIBUTION= conf config sbr mts zotnet support uip doc papers dist +@ + + +2.3 +log +@add ID +@ +text +@d3 3 +a6 1 +# @@(#)$Id:$ +@ + + +2.2 +log +@make unconfig changes +@ +text +@d4 1 +@ + + +2.1 +log +@checkpoint +@ +text +@d91 3 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d32 1 +a32 1 +# does "make dist" -- removes all configured files +@ + + +1.1 +log +@Initial revision +@ +text +@d20 2 +d31 2 +d59 1 +d63 2 +a64 1 +inst-all:; for d in $(INSTALL); do (cd $$d; $(MAKE) inst-all); done +d66 2 +d88 3 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Unconfig,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Unconfig,v new file mode 100644 index 0000000..d583883 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/MH-Unconfig,v @@ -0,0 +1,108 @@ +head 1.5; +access; +symbols; +locks; strict; +comment @# @; + + +1.5 +date 92.12.03.16.23.40; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.12.02.22.19.33; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 92.11.02.22.56.13; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 92.10.29.17.41.35; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.10.29.17.41.11; author jromine; state Exp; +branches; +next ; + + +desc +@new Unconfig make file for MH top level +@ + + +1.5 +log +@remove -Tcrt from nroff line +@ +text +@all clean:; @@echo "You must configure MH first -- see READ-ME for details" + +distribution unconfig: links READ-ME CHANGES + +READ-ME: conf/mh-gen.8 + nroff -man conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@@ + +CHANGES: papers/changes/mh-changes.ms + nroff -ms papers/changes/mh-changes.ms > changes.tmp + mv changes.tmp $@@ + +links:; -rm -f support/pop/mmdfII/pop/lock.c + -rm -f support/bboards/mmdfII/bboards/lock.c + -rm -f zotnet/tws/tws.h + -rm -f uip/pshsbr.c + ln zotnet/mts/lock.c support/pop/mmdfII/pop/lock.c + ln zotnet/mts/lock.c support/bboards/mmdfII/bboards/lock.c + ln zotnet/tws.h zotnet/tws/tws.h + ln uip/popsbr.c uip/pshsbr.c +@ + + +1.4 +log +@add mh changes +@ +text +@d10 1 +a10 1 + nroff -ms -Tcrt papers/changes/mh-changes.ms > changes.tmp +@ + + +1.3 +log +@make pshsbr.c from popsbr.c +@ +text +@d3 1 +a3 1 +distribution unconfig: links READ-ME +d8 4 +@ + + +1.2 +log +@fixup make unconfig +@ +text +@d12 1 +d16 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d3 1 +a3 1 +distribution: links READ-ME +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/config,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/config,v new file mode 100644 index 0000000..642c76a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/config,v @@ -0,0 +1,269 @@ +head 2.8; +access; +symbols; +locks; strict; + + +2.8 +date 92.02.05.21.52.46; author jromine; state Exp; +branches; +next 2.7; + +2.7 +date 90.04.08.22.00.29; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.04.08.20.23.04; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.05.15.17.20; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.12.11.29.13; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.23.17.34.23; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.21.16.59.28; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.06.12.51.03; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.36; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.16; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.8 +log +@add "regtest: on/off" to not include hostname and date +in version.c +@ +text +@############################################################################## +# Instructions to Make, for compilation of MH modules +# +# @@(MHWARNING) +# @@(#)$Id: config,v 2.7 1990/04/08 22:00:29 sources Exp jromine $ +############################################################################## + +OPTIONS = @@(MHOPTIONS) +LDOPTIONS= @@(LDOPTIONS) + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES = +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + + +############################################################################## +# Generate object file for MH configuration +############################################################################## + +CFILES = config.c version.c +OFILES = config.o version.o + +all: $(OFILES) + +lint:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +version version.c: true + @@/bin/sh version.sh @@(MHHOSTVER) @@(MHRELEASE) + +true:; + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f config.c version.c version + +clean: unclean + -rm -f *.o + +unclean:; -rm -f _* :* core eddep makedep + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = $(CFILES) + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +config.o: config.c +config.o: ../h/mh.h +#config.o: /usr/include/pwd.h +#config.o: /usr/include/stdio.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +2.7 +log +@remove version for "make distribution" +@ +text +@d5 1 +a5 1 +# @@(#)$Id: config,v 2.6 90/04/08 20:23:04 sources Exp Locker: sources $ +d37 1 +a37 1 + @@/bin/sh version.sh @@(MHRELEASE) +@ + + +2.6 +log +@run version.sh with release +@ +text +@d5 1 +a5 1 +# @@(#)$Id: config,v 2.5 90/04/05 15:17:20 sources Exp Locker: sources $ +d49 1 +a49 1 + -rm -f config.c version.c +@ + + +2.5 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d36 2 +a37 2 +version.c: true + @@/bin/sh version.sh +@ + + +2.4 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +2.3 +log +@version.sh changes +@ +text +@d12 1 +a12 1 +CFLAGS = -O $(OPTIONS) +@ + + +2.2 +log +@make unconfig changes +@ +text +@d28 2 +a29 2 +CFILES = config.c +OFILES = config.o +d35 2 +d38 2 +d48 1 +a48 1 + -rm -f config.c +@ + + +2.1 +log +@ANSI Compilance +@ +text +@d40 4 +a43 1 +unconfig distribution: clean +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d10 1 +a10 1 +CC = cc +@ + + +1.1 +log +@Initial revision +@ +text +@d40 1 +a40 1 +distribution: clean +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/dist,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/dist,v new file mode 100644 index 0000000..0c67160 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/dist,v @@ -0,0 +1,361 @@ +head 2.7; +access; +symbols; +locks; strict; + + +2.7 +date 92.12.02.22.21.43; author jromine; state Exp; +branches; +next 2.6; + +2.6 +date 90.04.08.20.01.28; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.08.19.55.42; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.04.08.14.04.31; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.04.05.20.15.38; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.04.05.15.17.43; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.04.05.13.23.57; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.37; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.17; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.7 +log +@rename mh-6.7 -> mh-changes +@ +text +@############################################################################## +# Instructions to Make, for generation of MH documentation sets +# +# @@(MHWARNING) +# @@(#)$Id: dist,v 2.6 1990/04/08 20:01:28 sources Exp jromine $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +SHELL = /bin/sh + + +############################################################################## +# Generation Rules +############################################################################## + +.SUFFIXES: .cat .dvi .imp + +.cat.imp:; catimp -i $@@ $< + +.dvi.imp:; dviimp -i $@@ $< + + +###################################################################### +# Here it is... +###################################################################### + +TARGETS = ../READ-ME \ + mh-gen.cat MH.cat ADMIN.cat mh-changes.cat \ + bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \ + mznet.dvi realwork.dvi trusted.dvi tutorial.dvi + +all:; @@cd ../config; make version + @@for f in $(TARGETS); do $(MAKE) $$f; done + + +doc: MH.doc ADMIN.doc mh-changes.doc + + +IMPRESS = mh-gen.imp MH.imp ADMIN.imp mh-changes.imp \ + bboards.imp beginners.imp \ + mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \ + trusted.imp tutorial.imp + +imp:; @@for f in $(IMPRESS); do $(MAKE) $$f; done + + +i-all: all true + lpr -t -J MH-gen mh-gen.cat + lpr -t -J MH MH.cat + lpr -t -J ADMIN ADMIN.cat + lpr -t -J MH-CHANGES mh-changes.cat + lpr -d -J BBoards bboards.dvi + lpr -d -J Beginners beginners.dvi + lpr -d -J MH-4-MM mh4mm.dvi + lpr -d -J mh6.5 mh6.dvi + lpr -d -J Multifarious multifarious.dvi + lpr -d -J MZnet mznet.dvi + lpr -d -J Realwork realwork.dvi + lpr -d -J Trusted trusted.dvi + lpr -d -J Tutorial tutorial.dvi + + +true:; + + +############################################################# +# Documentation Set +############################################################# + +ADMIN.cat MH.cat \ +ADMIN.doc MH.doc \ +ADMIN.imp MH.imp: true + cd ../doc; make $@@ + cp ../doc/$@@ $@@ + +../READ-ME: ../conf/mh-gen.8 + nroff -man ../conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@@ + +mh-gen.cat: ../conf/mh-gen.8 + itroff -t -man ../conf/mh-gen.8 > mh-gen.tmp + mv mh-gen.tmp $@@ + +mh-changes.cat \ +mh-changes.doc \ +mh-changes.imp: true + cd ../papers/changes; make $@@ + cp ../papers/changes/$@@ $@@ + +bboards.imp \ +bboards.dvi: true + cd ../papers/bboards; make $@@ + cp ../papers/bboards/$@@ $@@ + +beginners.imp \ +beginners.dvi: true + cd ../papers/beginners; make $@@ + cp ../papers/beginners/$@@ $@@ + +mh4mm.imp \ +mh4mm.dvi: true + cd ../papers/mh4mm; make $@@ + cp ../papers/mh4mm/$@@ $@@ + +mh6.imp \ +mh6.dvi: true + cd ../papers/mh6.5; make $@@ + cp ../papers/mh6.5/$@@ $@@ + +multifarious.imp \ +multifarious.dvi: true + cd ../papers/multifarious; make $@@ + cp ../papers/multifarious/$@@ $@@ + +mznet.imp \ +mznet.dvi: true + cd ../papers/mznet; make $@@ + cp ../papers/mznet/$@@ $@@ + +realwork.imp \ +realwork.dvi: true + cd ../papers/realwork; make $@@ + cp ../papers/realwork/$@@ $@@ + +trusted.imp \ +trusted.dvi: true + cd ../papers/trusted; make $@@ + cp ../papers/trusted/$@@ $@@ + +tutorial.imp \ +tutorial.dvi: true + cd ../papers/tutorial; make $@@ + cp ../papers/tutorial/$@@ $@@ + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +distribution: clean ../READ-ME + +unconfig clean: unclean + rm -f *.cat *.dvi *.imp *.doc + +unclean:; rm -f *.tmp _* :* core +@ + + +2.6 +log +@*** empty log message *** +@ +text +@d5 1 +a5 1 +# @@(#)$Id: dist,v 2.5 90/04/08 19:55:42 sources Exp Locker: sources $ +d28 1 +a28 1 + mh-gen.cat MH.cat ADMIN.cat mh6.7.cat \ +d36 1 +a36 1 +doc: MH.doc ADMIN.doc mh6.7.doc +d39 1 +a39 1 +IMPRESS = mh-gen.imp MH.imp ADMIN.imp mh6.7.imp \ +d51 1 +a51 1 + lpr -t -J MH.6.7 mh6.7.cat +d84 5 +a88 5 +mh6.7.cat \ +mh6.7.doc \ +mh6.7.imp: true + cd ../papers/mh6.7; make $@@ + cp ../papers/mh6.7/$@@ $@@ +@ + + +2.5 +log +@*** empty log message *** +@ +text +@d5 1 +a5 1 +# @@(#)$Id: dist,v 2.4 90/04/08 14:04:31 sources Exp Locker: sources $ +d36 1 +a36 1 +doc: MH.doc ADMIN.doc +d84 3 +a86 2 +mh6.7.imp \ +mh6.7.cat: true +@ + + +2.4 +log +@*** empty log message *** +@ +text +@d5 1 +a5 1 +# @@(#)$Id: dist,v 2.3 90/04/05 20:15:38 sources Exp Locker: sources $ +a69 4 +../ADMIN.doc: true + cd ../doc; make $@@ + cp ../doc/$@@ $@@ + +d139 1 +a139 1 +distribution: clean ../READ-ME ../ADMIN.doc +@ + + +2.3 +log +@fix +@ +text +@d5 1 +a5 1 +# @@(#)$Id: dist,v 2.2 90/04/05 15:17:43 sources Exp Locker: sources $ +d32 2 +a33 1 +all:; @@for f in $(TARGETS); do $(MAKE) $$f; done +d70 4 +d143 1 +a143 1 +distribution: clean ../READ-ME +@ + + +2.2 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d29 1 +a29 1 + bboards.dvi beginners.dvi mh4mm.dvi mh6.5.dvi multifarious.dvi \ +d40 1 +a40 1 + mh4mm.imp mh6.5.imp multifarious.imp mznet.imp realwork.imp \ +d54 1 +a54 1 + lpr -d -J mh6.5 mh6.5.dvi +d103 2 +a104 2 +mh6.5.imp \ +mh6.5.dvi: true +@ + + +2.1 +log +@add mh6.7 paper +@ +text +@d5 1 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d27 2 +a28 2 + mh-gen.cat MH.cat ADMIN.cat \ + bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \ +d37 3 +a39 2 +IMPRESS = mh-gen.imp MH.imp ADMIN.imp bboards.imp beginners.imp \ + mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \ +d49 1 +d53 1 +a53 1 + lpr -d -J mh6 mh6.dvi +d82 5 +d102 2 +a103 2 +mh6.imp \ +mh6.dvi: true +@ + + +1.1 +log +@Initial revision +@ +text +@d132 1 +a132 1 +clean: unclean +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/doc,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/doc,v new file mode 100644 index 0000000..5baba71 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/doc,v @@ -0,0 +1,1649 @@ +head 2.26; +access; +symbols; +locks; strict; + + +2.26 +date 93.08.27.22.15.57; author jromine; state Exp; +branches; +next 2.25; + +2.25 +date 93.06.03.17.43.20; author jromine; state Exp; +branches; +next 2.24; + +2.24 +date 92.10.28.17.01.04; author jromine; state Exp; +branches; +next 2.23; + +2.23 +date 92.10.28.16.46.58; author jromine; state Exp; +branches; +next 2.22; + +2.22 +date 92.10.27.20.08.26; author jromine; state Exp; +branches; +next 2.21; + +2.21 +date 92.10.20.17.44.20; author jromine; state Exp; +branches; +next 2.20; + +2.20 +date 92.10.20.16.58.57; author jromine; state Exp; +branches; +next 2.19; + +2.19 +date 92.05.20.21.09.36; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 92.02.14.00.29.53; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 92.02.06.17.06.57; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.02.06.00.09.36; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.02.04.21.13.47; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.01.31.16.39.19; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.01.29.23.33.31; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 91.01.25.15.49.10; author mh; state Exp; +branches; +next 2.11; + +2.11 +date 90.12.27.15.08.20; author mh; state Exp; +branches; +next 2.10; + +2.10 +date 90.04.08.15.06.00; author sources; state Exp; +branches; +next 2.9; + +2.9 +date 90.04.08.14.05.52; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.04.05.15.17.50; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.04.04.15.21.46; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.04.03.10.29.43; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.03.23.15.13.44; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.22.11.33.03; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.03.21.09.53.00; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.23.21.38.27; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.21.16.59.35; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.38; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.18; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.26 +log +@mkdir man1,man5,man8 +@ +text +@############################################################################## +# Instructions to Make, for generation of MH manual entries +# +# @@(MHWARNING) +# @@(#)$Id: doc,v 2.25 1993/06/03 17:43:20 jromine Exp jromine $ +############################################################################## + +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +MANDIR = $(DESTDIR)@@(MHMANDIR) +DIR1 = @@(MHMANDIR1) +EXT1 = @@(MHMANEXT1) +DIR5 = @@(MHMANDIR5) +EXT5 = @@(MHMANEXT5) +DIR8 = @@(MHMANDIR8) +EXT8 = @@(MHMANEXT8) +@@BEGIN: BBOARDS +OPTIONS1= bbc.$(EXT1) bbl.$(EXT1) bbleader.$(EXT1) bboards.$(EXT1) +options1= bbc bbl bbleader bboards +inst-options1= inst-bbc inst-bbl inst-bbleader inst-bboards +Toptions1= bbc.man bbl.man bbleader.man bboards.man +@@END: BBOARDS +@@BEGIN: TMA +OPTIONS2= cipher.$(EXT1) decipher.$(EXT1) tma.$(EXT1) +options2= cipher decipher tma +inst-options2= inst-cipher inst-decipher inst-tma +Toptions2= cipher.man decipher.man tma.man +@@END: TMA +REMOVE = @@(MHREMOVE) +MANPROT = 0644 + +MAN1 = ali.$(EXT1) anno.$(EXT1) burst.$(EXT1) comp.$(EXT1) \ + dist.$(EXT1) folder.$(EXT1) forw.$(EXT1) inc.$(EXT1) \ + mark.$(EXT1) mh-chart.$(EXT1) mh.$(EXT1) mhl.$(EXT1) \ + mhook.$(EXT1) mhmail.$(EXT1) \ +@@BEGIN: MIME + mhn.$(EXT1) \ +@@END: MIME + mhparam.$(EXT1) mhpath.$(EXT1) msgchk.$(EXT1) \ + msh.$(EXT1) next.$(EXT1) packf.$(EXT1) pick.$(EXT1) \ +@@BEGIN: MPOP + popi.$(EXT1) \ +@@END: MPOP + prev.$(EXT1) prompter.$(EXT1) rcvstore.$(EXT1) refile.$(EXT1) \ + repl.$(EXT1) rmf.$(EXT1) rmm.$(EXT1) scan.$(EXT1) \ + send.$(EXT1) show.$(EXT1) slocal.$(EXT1) \ + sortm.$(EXT1) vmh.$(EXT1) \ + whatnow.$(EXT1) whom.$(EXT1) $(OPTIONS1) $(OPTIONS2) +man1 = ali anno burst comp dist folder forw inc mark mh-chart mh mhl \ + mhook mhmail \ +@@BEGIN: MIME + mhn \ +@@END: MIME + mhparam mhpath msgchk msh next packf pick \ +@@BEGIN: MPOP + popi \ +@@END: MPOP + prev prompter \ + rcvstore refile repl rmf rmm scan send show slocal \ + sortm vmh whatnow \ + whom $(options1) $(options2) +inst-man1= inst-ali inst-anno inst-burst inst-comp inst-dist inst-folder \ + inst-forw inst-inc inst-mark inst-mh-chart inst-mh inst-mhl \ + inst-mhook inst-mhmail \ +@@BEGIN: MIME + inst-mhn \ +@@END: MIME + inst-mhparam inst-mhpath inst-msgchk inst-msh \ + inst-next inst-packf inst-pick \ +@@BEGIN: MPOP + inst-popi \ +@@END: MPOP + inst-prev inst-prompter \ + inst-rcvstore inst-refile inst-repl inst-rmf inst-rmm \ + inst-scan inst-send inst-show inst-slocal inst-sortm inst-vmh \ + inst-whatnow inst-whom $(inst-options1) $(inst-options2) +Tman1 = ali.man anno.man burst.man comp.man dist.man folder.man \ + forw.man inc.man mark.man mh-chart.man mh.man mhl.man \ + mhook.man mhmail.man \ +@@BEGIN: MIME + mhn.man \ +@@END: MIME + mhparam.man mhpath.man msgchk.man msh.man next.man packf.man \ +@@BEGIN: MPOP + popi.man \ +@@END: MPOP + pick.man prev.man prompter.man rcvstore.man \ + refile.man repl.man rmf.man rmm.man scan.man send.man \ + show.man slocal.man \ + sortm.man vmh.man whatnow.man whom.man $(Toptions1) \ + $(Toptions2) + +MAN5 = mh-alias.$(EXT5) mh-format.$(EXT5) mh-mail.$(EXT5) \ + mh-profile.$(EXT5) mh-sequence.$(EXT5) mh-tailor.$(EXT5) +man5 = mh-alias mh-format mh-mail mh-profile mh-sequence mh-tailor +inst-man5= inst-mh-alias inst-mh-format inst-mh-mail inst-mh-profile \ + inst-mh-sequence inst-mh-tailor +Tman5 = mh-alias.man mh-format.man mh-mail.man mh-profile.man \ + mh-sequence.man mh-tailor.man + +MAN8 = ap.$(EXT8) conflict.$(EXT8) dp.$(EXT8) install-mh.$(EXT8) \ +@@BEGIN: APOP + popauth.$(EXT8) \ +@@END: APOP + post.$(EXT8) fmtdump.$(EXT8) +man8 = ap conflict dp install-mh \ +@@BEGIN: APOP + popauth \ +@@END: APOP + post fmtdump +inst-man8= inst-ap inst-conflict inst-dp inst-install-mh \ +@@BEGIN: APOP + inst-popauth \ +@@END: APOP + inst-post \ + inst-fmtdump +Tman8 = ap.man conflict.man dp.man install-mh.man \ +@@BEGIN: APOP + popauth.man \ +@@END: APOP + post.man \ + fmtdump.man + + +############################################################################## +# Generation Rules +############################################################################## + +.SUFFIXES: .me .cat .doc .man .imp + +.me.cat:; itroff -t -me $< > $@@ + +.me.doc:; nroff -Tlpr -me $< > $@@ + +.me.man:; cat tmac.me $< | sed -f me2man.sed @@(MHCATMAN) > $@@ + +.cat.imp:; catimp -i $@@ $< + + +############################################################################## +# Generate MH manual entries +############################################################################## + +all: @@(MHMANGEN) $(man1) $(man5) $(man8) + +install: inst-all clean + +inst-all: @@(MHMANGEN) mkdirs inst-tmac \ + $(inst-man1) $(inst-man5) $(inst-man8) + +tar: @@(MHMANGEN) $(Tman1) $(Tman5) $(Tman8) + @@(MHMANGEN) @@touch tmac.h $(Tman1) $(Tman5) $(Tman8) + @@(MHMANGEN) @@make -n inst-all > MAKEDOC + @@(MHMANGEN) @@chmod +x MAKEDOC + @@(MHMANGEN) tar $(TFLAGS) MAKEDOC tmac.h $(Tman1) $(Tman5) $(Tman8) + @@(MHMANGEN) @@rm -f MAKEDOC + +uninstall:; cd $(MANDIR)/$(DIR1) ; rm -f $(MAN1) + cd $(MANDIR)/$(DIR5) ; rm -f $(MAN5) + cd $(MANDIR)/$(DIR8) ; rm -f $(MAN8) + + +############################################################################## +# Generate MH User's Manual/Administrator's Guide +############################################################################## + +manual: MH.doc + +guide: ADMIN.doc + +true:; + + +############################################################################## +# MH manual entries +############################################################################## + +mkdirs: $(MANDIR)/$(DIR1) $(MANDIR)/$(DIR5) $(MANDIR)/$(DIR8) + +$(MANDIR)/$(DIR1) $(MANDIR)/$(DIR5) $(MANDIR)/$(DIR8): + -mkdir $@@ && chmod 0755 $@@ + + +inst-tmac: $(ETCDIR)/tmac.h + +$(ETCDIR)/tmac.h: tmac.h + -$(REMOVE) $@@ ztmac.h + cp tmac.h $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-ali: $(MANDIR)/$(DIR1)/ali.$(EXT1) + +$(MANDIR)/$(DIR1)/ali.$(EXT1): ali.man + -$(REMOVE) $@@ zali.man + cp ali.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-anno: $(MANDIR)/$(DIR1)/anno.$(EXT1) + +$(MANDIR)/$(DIR1)/anno.$(EXT1): anno.man + -$(REMOVE) $@@ zanno.man + cp anno.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-ap: $(MANDIR)/$(DIR8)/ap.$(EXT8) + +$(MANDIR)/$(DIR8)/ap.$(EXT8): ap.man + -$(REMOVE) $@@ zap.man + cp ap.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-bbc: $(MANDIR)/$(DIR1)/bbc.$(EXT1) + +$(MANDIR)/$(DIR1)/bbc.$(EXT1): bbc.man + -$(REMOVE) $@@ zbbc.man + cp bbc.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-bbl: $(MANDIR)/$(DIR1)/bbl.$(EXT1) + +$(MANDIR)/$(DIR1)/bbl.$(EXT1): bbl.man + -$(REMOVE) $@@ zbbl.man + cp bbl.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-bbleader: $(MANDIR)/$(DIR1)/bbleader.$(EXT1) + +$(MANDIR)/$(DIR1)/bbleader.$(EXT1): bbleader.man + -$(REMOVE) $@@ zbbleader.man + cp bbleader.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-bboards: $(MANDIR)/$(DIR1)/bboards.$(EXT1) + +$(MANDIR)/$(DIR1)/bboards.$(EXT1): bboards.man + -$(REMOVE) $@@ zbboards.man + cp bboards.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-burst: $(MANDIR)/$(DIR1)/burst.$(EXT1) + +$(MANDIR)/$(DIR1)/burst.$(EXT1): burst.man + -$(REMOVE) $@@ zburst.man + cp burst.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-cipher: $(MANDIR)/$(DIR1)/cipher.$(EXT1) + +$(MANDIR)/$(DIR1)/cipher.$(EXT1): cipher.man + -$(REMOVE) $@@ zcipher.man + cp cipher.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-comp: $(MANDIR)/$(DIR1)/comp.$(EXT1) + +$(MANDIR)/$(DIR1)/comp.$(EXT1): comp.man + -$(REMOVE) $@@ zcomp.man + cp comp.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-conflict: $(MANDIR)/$(DIR8)/conflict.$(EXT8) + +$(MANDIR)/$(DIR8)/conflict.$(EXT8): conflict.man + -$(REMOVE) $@@ zconflict.man + cp conflict.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-decipher: $(MANDIR)/$(DIR1)/decipher.$(EXT1) + +$(MANDIR)/$(DIR1)/decipher.$(EXT1): decipher.man + -$(REMOVE) $@@ zdecipher.man + cp decipher.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-dist: $(MANDIR)/$(DIR1)/dist.$(EXT1) + +$(MANDIR)/$(DIR1)/dist.$(EXT1): dist.man + -$(REMOVE) $@@ zdist.man + cp dist.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-dp: $(MANDIR)/$(DIR8)/dp.$(EXT8) + +$(MANDIR)/$(DIR8)/dp.$(EXT8): dp.man + -$(REMOVE) $@@ zdp.man + cp dp.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-folder: $(MANDIR)/$(DIR1)/folder.$(EXT1) + +$(MANDIR)/$(DIR1)/folder.$(EXT1): folder.man + -$(REMOVE) $@@ zfolder.man + cp folder.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-fmtdump: $(MANDIR)/$(DIR8)/fmtdump.$(EXT8) + +$(MANDIR)/$(DIR8)/fmtdump.$(EXT8): fmtdump.man + -$(REMOVE) $@@ zfmtdump.man + cp fmtdump.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-forw: $(MANDIR)/$(DIR1)/forw.$(EXT1) + +$(MANDIR)/$(DIR1)/forw.$(EXT1): forw.man + -$(REMOVE) $@@ zforw.man + cp forw.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-inc: $(MANDIR)/$(DIR1)/inc.$(EXT1) + +$(MANDIR)/$(DIR1)/inc.$(EXT1): inc.man + -$(REMOVE) $@@ zinc.man + cp inc.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-install-mh: $(MANDIR)/$(DIR8)/install-mh.$(EXT8) + +$(MANDIR)/$(DIR8)/install-mh.$(EXT8): install-mh.man + -$(REMOVE) $@@ zinstall-mh.man + cp install-mh.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mark: $(MANDIR)/$(DIR1)/mark.$(EXT1) + +$(MANDIR)/$(DIR1)/mark.$(EXT1): mark.man + -$(REMOVE) $@@ zmark.man + cp mark.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh-alias: $(MANDIR)/$(DIR5)/mh-alias.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-alias.$(EXT5): mh-alias.man + -$(REMOVE) $@@ zmh-alias.man + cp mh-alias.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh-format: $(MANDIR)/$(DIR5)/mh-format.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-format.$(EXT5): mh-format.man + -$(REMOVE) $@@ zmh-format.man + cp mh-format.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh-chart: $(MANDIR)/$(DIR1)/mh-chart.$(EXT1) + +$(MANDIR)/$(DIR1)/mh-chart.$(EXT1): mh-chart.man + -$(REMOVE) $@@ zmh-chart.man + cp mh-chart.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh-mail: $(MANDIR)/$(DIR5)/mh-mail.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-mail.$(EXT5): mh-mail.man + -$(REMOVE) $@@ zmh-mail.man + cp mh-mail.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh-tailor: $(MANDIR)/$(DIR5)/mh-tailor.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-tailor.$(EXT5): mh-tailor.man + -$(REMOVE) $@@ zmh-tailor.man + cp mh-tailor.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh-profile: $(MANDIR)/$(DIR5)/mh-profile.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-profile.$(EXT5): mh-profile.man + -$(REMOVE) $@@ zmh-profile.man + cp mh-profile.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh-sequence: $(MANDIR)/$(DIR5)/mh-sequence.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-sequence.$(EXT5): mh-sequence.man + -$(REMOVE) $@@ zmh-sequence.man + cp mh-sequence.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mhook: $(MANDIR)/$(DIR1)/mhook.$(EXT1) + +$(MANDIR)/$(DIR1)/mhook.$(EXT1): mhook.man + -$(REMOVE) $@@ zmhook.man + cp mhook.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mh: $(MANDIR)/$(DIR1)/mh.$(EXT1) + +$(MANDIR)/$(DIR1)/mh.$(EXT1): mh.man + -$(REMOVE) $@@ zmh.man + cp mh.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mhl: $(MANDIR)/$(DIR1)/mhl.$(EXT1) + +$(MANDIR)/$(DIR1)/mhl.$(EXT1): mhl.man + -$(REMOVE) $@@ zmhl.man + cp mhl.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mhmail: $(MANDIR)/$(DIR1)/mhmail.$(EXT1) + +$(MANDIR)/$(DIR1)/mhmail.$(EXT1): mhmail.man + -$(REMOVE) $@@ zmhmail.man + cp mhmail.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mhn: $(MANDIR)/$(DIR1)/mhn.$(EXT1) + +$(MANDIR)/$(DIR1)/mhn.$(EXT1): mhn.man + -$(REMOVE) $@@ zmhn.man + cp mhn.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mhparam: $(MANDIR)/$(DIR1)/mhparam.$(EXT1) + +$(MANDIR)/$(DIR1)/mhparam.$(EXT1): mhparam.man + -$(REMOVE) $@@ zmhparam.man + cp mhparam.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mhpath: $(MANDIR)/$(DIR1)/mhpath.$(EXT1) + +$(MANDIR)/$(DIR1)/mhpath.$(EXT1): mhpath.man + -$(REMOVE) $@@ zmhpath.man + cp mhpath.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-msgchk: $(MANDIR)/$(DIR1)/msgchk.$(EXT1) + +$(MANDIR)/$(DIR1)/msgchk.$(EXT1): msgchk.man + -$(REMOVE) $@@ zmsgchk.man + cp msgchk.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-msh: $(MANDIR)/$(DIR1)/msh.$(EXT1) + +$(MANDIR)/$(DIR1)/msh.$(EXT1): msh.man + -$(REMOVE) $@@ zmsh.man + cp msh.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-next: $(MANDIR)/$(DIR1)/next.$(EXT1) + +$(MANDIR)/$(DIR1)/next.$(EXT1): next.man + -$(REMOVE) $@@ znext.man + cp next.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-packf: $(MANDIR)/$(DIR1)/packf.$(EXT1) + +$(MANDIR)/$(DIR1)/packf.$(EXT1): packf.man + -$(REMOVE) $@@ zpackf.man + cp packf.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-popauth: $(MANDIR)/$(DIR8)/popauth.$(EXT8) + +$(MANDIR)/$(DIR8)/popauth.$(EXT8): popauth.man + -$(REMOVE) $@@ zpopauth.man + cp popauth.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-popi: $(MANDIR)/$(DIR1)/popi.$(EXT1) + +$(MANDIR)/$(DIR1)/popi.$(EXT1): popi.man + -$(REMOVE) $@@ zpopi.man + cp popi.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-pick: $(MANDIR)/$(DIR1)/pick.$(EXT1) + +$(MANDIR)/$(DIR1)/pick.$(EXT1): pick.man + -$(REMOVE) $@@ zpick.man + cp pick.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-post: $(MANDIR)/$(DIR8)/post.$(EXT8) + +$(MANDIR)/$(DIR8)/post.$(EXT8): post.man + -$(REMOVE) $@@ zpost.man + cp post.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-prev: $(MANDIR)/$(DIR1)/prev.$(EXT1) + +$(MANDIR)/$(DIR1)/prev.$(EXT1): prev.man + -$(REMOVE) $@@ zprev.man + cp prev.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-prompter: $(MANDIR)/$(DIR1)/prompter.$(EXT1) + +$(MANDIR)/$(DIR1)/prompter.$(EXT1): prompter.man + -$(REMOVE) $@@ zprompter.man + cp prompter.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-rcvstore: $(MANDIR)/$(DIR1)/rcvstore.$(EXT1) + +$(MANDIR)/$(DIR1)/rcvstore.$(EXT1): rcvstore.man + -$(REMOVE) $@@ zrcvstore.man + cp rcvstore.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-refile: $(MANDIR)/$(DIR1)/refile.$(EXT1) + +$(MANDIR)/$(DIR1)/refile.$(EXT1): refile.man + -$(REMOVE) $@@ zrefile.man + cp refile.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-repl: $(MANDIR)/$(DIR1)/repl.$(EXT1) + +$(MANDIR)/$(DIR1)/repl.$(EXT1): repl.man + -$(REMOVE) $@@ zrepl.man + cp repl.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-rmm: $(MANDIR)/$(DIR1)/rmm.$(EXT1) + +$(MANDIR)/$(DIR1)/rmm.$(EXT1): rmm.man + -$(REMOVE) $@@ zrmm.man + cp rmm.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-rmf: $(MANDIR)/$(DIR1)/rmf.$(EXT1) + +$(MANDIR)/$(DIR1)/rmf.$(EXT1): rmf.man + -$(REMOVE) $@@ zrmf.man + cp rmf.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-scan: $(MANDIR)/$(DIR1)/scan.$(EXT1) + +$(MANDIR)/$(DIR1)/scan.$(EXT1): scan.man + -$(REMOVE) $@@ zscan.man + cp scan.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-send: $(MANDIR)/$(DIR1)/send.$(EXT1) + +$(MANDIR)/$(DIR1)/send.$(EXT1): send.man + -$(REMOVE) $@@ zsend.man + cp send.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-show: $(MANDIR)/$(DIR1)/show.$(EXT1) + +$(MANDIR)/$(DIR1)/show.$(EXT1): show.man + -$(REMOVE) $@@ zshow.man + cp show.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-slocal: $(MANDIR)/$(DIR1)/slocal.$(EXT1) + +$(MANDIR)/$(DIR1)/slocal.$(EXT1): slocal.man + -$(REMOVE) $@@ zslocal.man + cp slocal.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-sortm: $(MANDIR)/$(DIR1)/sortm.$(EXT1) + +$(MANDIR)/$(DIR1)/sortm.$(EXT1): sortm.man + -$(REMOVE) $@@ zsortm.man + cp sortm.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-tma: $(MANDIR)/$(DIR1)/tma.$(EXT1) + +$(MANDIR)/$(DIR1)/tma.$(EXT1): tma.man + -$(REMOVE) $@@ ztma.man + cp tma.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-vmh: $(MANDIR)/$(DIR1)/vmh.$(EXT1) + +$(MANDIR)/$(DIR1)/vmh.$(EXT1): vmh.man + -$(REMOVE) $@@ zvmh.man + cp vmh.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-whatnow: $(MANDIR)/$(DIR1)/whatnow.$(EXT1) + +$(MANDIR)/$(DIR1)/whatnow.$(EXT1): whatnow.man + -$(REMOVE) $@@ zwhatnow.man + cp whatnow.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-whom: $(MANDIR)/$(DIR1)/whom.$(EXT1) + +$(MANDIR)/$(DIR1)/whom.$(EXT1): whom.man + -$(REMOVE) $@@ zwhom.man + cp whom.man $@@ + -@@chmod $(MANPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +############################################################################## +# Dependencies +############################################################################## + +ali: ali.man +anno: anno.man +ap: ap.man +bbc: bbc.man +bbl: bbl.man +bbleader: bbleader.man +bboards: bboards.man +burst: burst.man +cipher: cipher.man +comp: comp.man +conflict: conflict.man +decipher: decipher.man +dist: dist.man +dp: dp.man +fmtdump: fmtdump.man +folder: folder.man +forw: forw.man +inc: inc.man +install-mh: install-mh.man +mark: mark.man +mh-alias: mh-alias.man +mh-format: mh-format.man +mh-chart: mh-chart.man +mh-mail: mh-mail.man +mh-profile: mh-profile.man +mh-sequence: mh-sequence.man +mh-tailor: mh-tailor.man +mhook: mhook.man +mh: mh.man +mhl: mhl.man +mhmail: mhmail.man +mhparam: mhparam.man +mhpath: mhpath.man +mhn: mhn.man +msgchk: msgchk.man +msh: msh.man +next: next.man +packf: packf.man +pick: pick.man +popauth: popauth.man +popi: popi.man +post: post.man +prev: prev.man +prompter: prompter.man +rcvstore: rcvstore.man +refile: refile.man +repl: repl.man +rmf: rmf.man +rmm: rmm.man +scan: scan.man +send: send.man +show: show.man +slocal: slocal.man +sortm: sortm.man +tma: tma.man +vmh: vmh.man +whatnow: whatnow.man +whom: whom.man + +MH.cat MH.doc: ali.me anno.me bbc.me bbl.me bbleader.me bboards.me comp.me \ + dist.me folder.me forw.me inc.me mark.me mh-chart.me mh.me \ + mhl.me mhmail.me \ +@@BEGIN: MIME + mhn.me \ +@@END: MIME + mhook.me mhparam.me mhpath.me msgchk.me msh.me \ + next.me packf.me pick.me \ +@@BEGIN: MPOP + popi.me \ +@@END: MPOP + prev.me prompter.me \ + rcvstore.me refile.me repl.me rmf.me rmm.me scan.me send.me \ + show.me slocal.me \ + sortm.me vmh.me whatnow.me whom.me mh-alias.me \ + mh-format.me mh-mail.me mh-profile.me mh-sequence.me \ + ap.me conflict.me dp.me install-mh.me fmtdump.me \ + post.me \ +@@BEGIN: TMA + cipher.me decipher.me tma.me \ +@@END: TMA + version.rf + +ADMIN.cat ADMIN.doc: \ + mh-tailor.me mh-mts.me \ + bboards5.me bbaka.me bbexp.me bboards8.me bbtar.me \ + pop5.me pop8.me popaka.me \ +@@BEGIN: APOP + popauth.me \ +@@END: APOP + popd.me popwrd.me \ + mf.me rmail.me \ + mh-hack.me \ +@@BEGIN: TMA + kdsc.me kdsd.me kdser.me \ +@@END: TMA + version.rf + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +lint:; + +version.rf: + cd ../config; make version + +unconfig: distribution + -rm -f version.rf me2man.sed Makefile + +distribution: clean + -rm -f *.me tmac.h + +clean: unclean + -rm -f *.man *.doc *.cat *.imp + +unclean:; -rm -f z* _* :* core MAKEDOC + +depend:; + + +############################################################################## +# MODIFICATIONS -- Adding a new program (e.g., pickle [section n]) +############################################################################## + +# Add pickle.$(EXT[N]) to MAN[N] +# Add pickle to man[n] +# Add inst-pickle to inst-man[n] +# Add pickle.man to Tman[n] +# +# Under the "MH manual entries" section, add this incantation +# inst-pickle: $(MANDIR)/$(DIR[n])/pickle.$(EXT[n]) +# +# $(MANDIR)/$(DIR[n])/pickle.$(EXT[n]): pickle.man +# -$(REMOVE) $@@ zpickle.man +# cp pickle.man $@@ +# -@@chmod $(MANPROT) $@@ +# -@@ls -l $@@ +# -@@echo "" +# +# Under the "Dependencies" section, add a line for pickle +# pickle: pickle.man +# +# Add pickle.me to MH.cat +@ + + +2.25 +log +@allow manuals to be installed "pre-nroff'd" (manuals: standard/cat) +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.24 1992/10/28 17:01:04 jromine Exp $ +d148 2 +a149 1 +inst-all: @@(MHMANGEN) inst-tmac $(inst-man1) $(inst-man5) $(inst-man8) +d177 6 +@ + + +2.24 +log +@move mhparam to (1) +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.23 1992/10/28 16:46:58 jromine Exp jromine $ +d135 1 +a135 1 +.me.man:; cat tmac.me $< | sed -f me2man.sed > $@@ +@ + + +2.23 +log +@put mh-tailor in (5) instead of (8) +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.22 1992/10/27 20:08:26 jromine Exp jromine $ +d39 1 +a39 1 + mhpath.$(EXT1) msgchk.$(EXT1) \ +d46 2 +a47 1 + send.$(EXT1) show.$(EXT1) sortm.$(EXT1) vmh.$(EXT1) \ +d54 1 +a54 1 + mhpath msgchk msh next packf pick \ +d68 1 +a68 1 + inst-mhpath inst-msgchk inst-msh \ +d83 1 +a83 1 + mhpath.man msgchk.man msh.man next.man packf.man \ +d105 1 +a105 1 + post.$(EXT8) fmtdump.$(EXT8) mhparam.$(EXT8) +d110 1 +a110 1 + post fmtdump mhparam +d116 1 +a116 1 + inst-fmtdump inst-mhparam +d122 1 +a122 1 + fmtdump.man mhparam.man +d475 1 +a475 1 +inst-mhparam: $(MANDIR)/$(DIR8)/mhparam.$(EXT8) +d477 1 +a477 1 +$(MANDIR)/$(DIR8)/mhparam.$(EXT8): mhparam.man +d779 1 +a779 1 + mhook.me mhpath.me msgchk.me msh.me \ +d789 1 +a789 1 + ap.me conflict.me dp.me install-mh.me fmtdump.me mhparam.me \ +@ + + +2.22 +log +@add slocal +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.21 1992/10/20 17:44:20 jromine Exp jromine $ +d93 2 +a94 2 + mh-profile.$(EXT5) mh-sequence.$(EXT5) +man5 = mh-alias mh-format mh-mail mh-profile mh-sequence +d96 1 +a96 1 + inst-mh-sequence +d98 1 +a98 1 + mh-sequence.man +d104 1 +a104 1 + post.$(EXT8) mh-tailor.$(EXT8) fmtdump.$(EXT8) mhparam.$(EXT8) +d109 1 +a109 1 + post mh-tailor fmtdump mhparam +d115 1 +a115 1 + inst-mh-tailor inst-fmtdump inst-mhparam +d121 1 +a121 1 + mh-tailor.man fmtdump.man mhparam.man +d402 1 +a402 1 +inst-mh-tailor: $(MANDIR)/$(DIR8)/mh-tailor.$(EXT8) +d404 1 +a404 1 +$(MANDIR)/$(DIR8)/mh-tailor.$(EXT8): mh-tailor.man +@ + + +2.21 +log +@typo +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.20 1992/10/20 16:58:57 jromine Exp jromine $ +d58 2 +a59 1 + rcvstore refile repl rmf rmm scan send show sortm vmh whatnow \ +d74 1 +a74 1 + inst-scan inst-send inst-show inst-sortm inst-vmh \ +d88 2 +a89 1 + show.man sortm.man vmh.man whatnow.man whom.man $(Toptions1) \ +d654 9 +d765 1 +d785 2 +a786 1 + show.me sortm.me vmh.me whatnow.me whom.me mh-alias.me \ +@ + + +2.20 +log +@merge mhparam, fmtdump, mh-sequence, popauth, popi, mhn +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.19 1992/05/20 21:09:36 jromine Exp jromine $ +d71 1 +a71 1 + inst-prev inst-prompter +@ + + +2.19 +log +@MIME +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.18 1992/02/14 00:29:53 jromine Exp jromine $ +d35 1 +a35 1 + mhook.$(EXT1) mhmail.$(EXT1) +d39 9 +a47 7 + mhpath.$(EXT1) \ + msgchk.$(EXT1) msh.$(EXT1) next.$(EXT1) packf.$(EXT1) \ + pick.$(EXT1) prev.$(EXT1) prompter.$(EXT1) rcvstore.$(EXT1) \ + refile.$(EXT1) repl.$(EXT1) rmf.$(EXT1) rmm.$(EXT1) \ + scan.$(EXT1) send.$(EXT1) show.$(EXT1) sortm.$(EXT1) \ + vmh.$(EXT1) whatnow.$(EXT1) whom.$(EXT1) $(OPTIONS1) \ + $(OPTIONS2) +d53 7 +a59 3 + mhpath msgchk msh next packf pick prev \ + prompter rcvstore refile repl rmf rmm scan send show sortm \ + vmh whatnow whom $(options1) $(options2) +d66 8 +a73 4 + inst-mhpath inst-msgchk \ + inst-msh inst-next inst-packf inst-pick inst-prev \ + inst-prompter inst-rcvstore inst-refile inst-repl inst-rmf \ + inst-rmm inst-scan inst-send inst-show inst-sortm inst-vmh \ +d81 8 +a88 5 + mhpath.man msgchk.man msh.man \ + next.man packf.man pick.man prev.man prompter.man \ + rcvstore.man refile.man repl.man rmf.man rmm.man scan.man \ + send.man show.man sortm.man vmh.man whatnow.man whom.man \ + $(Toptions1) $(Toptions2) +d91 6 +a96 4 + mh-profile.$(EXT5) +man5 = mh-alias mh-format mh-mail mh-profile +inst-man5= inst-mh-alias inst-mh-format inst-mh-mail inst-mh-profile +Tman5 = mh-alias.man mh-format.man mh-mail.man mh-profile.man +d99 3 +d103 10 +a112 2 +man8 = ap conflict dp install-mh post mh-tailor fmtdump mhparam +inst-man8= inst-ap inst-conflict inst-dp inst-install-mh inst-post \ +d114 5 +a118 1 +Tman8 = ap.man conflict.man dp.man install-mh.man post.man \ +a461 1 +@@BEGIN: MIME +a470 1 +@@END: MIME +d526 18 +d727 1 +a734 1 +@@BEGIN: MIME +a735 1 +@@END: MIME +d741 2 +d767 5 +a771 1 + next.me packf.me pick.me popi.me prev.me prompter.me \ +d785 5 +a789 1 + pop5.me pop8.me popaka.me popauth.me popd.me popwrd.me \ +@ + + +2.18 +log +@forget itroff stuff +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.17 1992/02/06 17:06:57 jromine Exp jromine $ +d35 5 +a39 1 + mhook.$(EXT1) mhmail.$(EXT1) mhn.$(EXT1) mhpath.$(EXT1) \ +d47 5 +a51 1 + mhook mhmail mhn mhpath msgchk msh next packf pick prev \ +d56 5 +a60 1 + inst-mhook inst-mhmail inst-mhn inst-mhpath inst-msgchk \ +d67 5 +a71 1 + mhook.man mhmail.man mhn.man mhpath.man msgchk.man msh.man \ +d432 1 +d442 1 +d688 1 +d690 1 +d715 5 +a719 1 + mhl.me mhmail.me mhn.me mhook.me mhpath.me msgchk.me msh.me \ +@ + + +2.17 +log +@add mhparam +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.16 1992/02/06 00:09:36 jromine Exp jromine $ +d117 1 +a117 1 +i-all: manual guide +d119 1 +a119 8 +i-print: manual guide true + lpr -t -J MH MH.cat + lpr -t -J MH ADMIN.cat + + +manual: MH.cat + +guide: ADMIN.cat +@ + + +2.16 +log +@add DESTDIR for MANDIR +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.15 1992/02/04 21:13:47 jromine Exp jromine $ +d68 2 +a69 2 + post.$(EXT8) mh-tailor.$(EXT8) fmtdump.$(EXT8) +man8 = ap conflict dp install-mh post mh-tailor fmtdump +d71 1 +a71 1 + inst-mh-tailor inst-fmtdump +d73 1 +a73 1 + mh-tailor.man fmtdump.man +d433 9 +d675 1 +d707 2 +a708 1 + ap.me conflict.me dp.me install-mh.me fmtdump.me post.me \ +@ + + +2.15 +log +@contributed patch +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.14 1992/01/31 16:39:19 jromine Exp jromine $ +d10 1 +a10 1 +MANDIR = @@(MHMANDIR) +@ + + +2.14 +log +@Multimedia MH +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.13 1992/01/29 23:33:31 jromine Exp $ +d693 4 +a696 4 + next.me packf.me pick.me prev.me prompter.me rcvstore.me \ + refile.me repl.me rmf.me rmm.me scan.me send.me show.me \ + sortm.me vmh.me whatnow.me whom.me mh-alias.me mh-format.me \ + mh-mail.me mh-profile.me mh-sequence.me \ +d706 1 +a706 1 + pop5.me pop8.me popaka.me popd.me popwrd.me \ +@ + + +2.13 +log +@add -Tlpr to nroff command +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.12 1991/01/25 15:49:10 mh Exp jromine $ +d35 7 +a41 6 + mhook.$(EXT1) mhmail.$(EXT1) mhpath.$(EXT1) msgchk.$(EXT1) \ + msh.$(EXT1) next.$(EXT1) packf.$(EXT1) pick.$(EXT1) \ + prev.$(EXT1) prompter.$(EXT1) rcvstore.$(EXT1) refile.$(EXT1) \ + repl.$(EXT1) rmf.$(EXT1) rmm.$(EXT1) scan.$(EXT1) \ + send.$(EXT1) show.$(EXT1) sortm.$(EXT1) vmh.$(EXT1) \ + whatnow.$(EXT1) whom.$(EXT1) $(OPTIONS1) $(OPTIONS2) +d43 3 +a45 3 + mhook mhmail mhpath msgchk msh next packf pick prev prompter \ + rcvstore refile repl rmf rmm scan send show sortm vmh whatnow \ + whom $(options1) $(options2) +d48 4 +a51 4 + inst-mhook inst-mhmail inst-mhpath inst-msgchk inst-msh \ + inst-next inst-packf inst-pick inst-prev inst-prompter \ + inst-rcvstore inst-refile inst-repl inst-rmf inst-rmm \ + inst-scan inst-send inst-show inst-sortm inst-vmh \ +d55 5 +a59 5 + mhook.man mhmail.man mhpath.man msgchk.man msh.man next.man \ + packf.man pick.man prev.man prompter.man rcvstore.man \ + refile.man repl.man rmf.man rmm.man scan.man send.man \ + show.man sortm.man vmh.man whatnow.man whom.man $(Toptions1) \ + $(Toptions2) +d62 4 +a65 6 + mh-profile.$(EXT5) mh-sequence.$(EXT5) +man5 = mh-alias mh-format mh-mail mh-profile mh-sequence +inst-man5= inst-mh-alias inst-mh-format inst-mh-mail inst-mh-profile \ + inst-mh-sequence +Tman5 = mh-alias.man mh-format.man mh-mail.man mh-profile.man \ + mh-sequence.man +d424 9 +a660 1 +mh-sequence: mh-sequence.man +d667 1 +d692 5 +a696 5 + mhl.me mhmail.me mhook.me mhpath.me msgchk.me msh.me next.me \ + packf.me pick.me prev.me prompter.me rcvstore.me refile.me \ + repl.me rmf.me rmm.me scan.me send.me show.me sortm.me vmh.me \ + whatnow.me whom.me mh-alias.me mh-format.me mh-mail.me \ + mh-profile.me mh-sequence.me \ +@ + + +2.12 +log +@add fmtdump +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.11 90/12/27 15:08:20 mh Exp Locker: mh $ +d85 1 +a85 1 +.me.doc:; nroff -me $< > $@@ +@ + + +2.11 +log +@add mh-sequence +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.10 90/04/08 15:06:00 sources Exp Locker: mh $ +d69 2 +a70 2 + post.$(EXT8) mh-tailor.$(EXT8) +man8 = ap conflict dp install-mh post mh-tailor +d72 1 +a72 1 + inst-mh-tailor +d74 1 +a74 1 + mh-tailor.man +d281 9 +d642 1 +d689 1 +a689 1 + ap.me conflict.me dp.me install-mh.me post.me \ +@ + + +2.10 +log +@add me2man.sd +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.9 90/04/08 14:05:52 sources Exp Locker: sources $ +d61 6 +a66 4 + mh-profile.$(EXT5) +man5 = mh-alias mh-format mh-mail mh-profile +inst-man5= inst-mh-alias inst-mh-format inst-mh-mail inst-mh-profile +Tman5 = mh-alias.man mh-format.man mh-mail.man mh-profile.man +d371 9 +d643 1 +d678 2 +a679 1 + mh-profile.me ap.me conflict.me dp.me install-mh.me post.me \ +@ + + +2.9 +log +@*** empty log message *** +@ +text +@d5 1 +a5 1 +# @@(#)$Id: doc,v 2.8 90/04/05 15:17:50 sources Exp Locker: sources $ +d694 1 +a694 1 + -rm -f version.rf Makefile +@ + + +2.8 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d689 3 +@ + + +2.7 +log +@typo +@ +text +@d5 1 +@ + + +2.6 +log +@add mh-tailor +@ +text +@d631 1 +@ + + +2.5 +log +@put bbl/bbleader back +@ +text +@d66 6 +a71 4 + post.$(EXT8) +man8 = ap conflict dp install-mh post +inst-man8= inst-ap inst-conflict inst-dp inst-install-mh inst-post +Tman8 = ap.man conflict.man dp.man install-mh.man post.man +d346 9 +@ + + +2.4 +log +@use sed to config man pages +@ +text +@a15 6 +@@BEGIN: BBSERVER +OPTIONS0= bbl.$(EXT1) bbleader.$(EXT1) +options0= bbl bbleader +inst-options0= inst-bbl inst-bbleader +Toptions0= bbl.man bbleader.man +@@END: BBSERVER +d17 4 +a20 4 +OPTIONS1= bbc.$(EXT1) bboards.$(EXT1) +options1= bbc bboards +inst-options1= inst-bbc inst-bboards +Toptions1= bbc.man bboards.man +d39 1 +a39 1 + whatnow.$(EXT1) whom.$(EXT1) $(OPTIONS0) $(OPTIONS1) $(OPTIONS2) +d43 1 +a43 1 + whom $(options0) $(options1) $(options2) +d50 1 +a50 2 + inst-whatnow inst-whom \ + $(inst-options0) $(inst-options1) $(inst-options2) +d56 2 +a57 2 + show.man sortm.man vmh.man whatnow.man whom.man \ + $(Toptions0) $(Toptions1) $(Toptions2) +@ + + +2.3 +log +@changes for "bbhome: none" +@ +text +@d89 1 +a89 1 +.me.man:; cat tmac.me $< > $@@ +@ + + +2.2 +log +@delete version.rf under "unconfig" +@ +text +@d16 6 +d23 4 +a26 4 +OPTIONS1= bbc.$(EXT1) bbl.$(EXT1) bbleader.$(EXT1) bboards.$(EXT1) +options1= bbc bbl bbleader bboards +inst-options1= inst-bbc inst-bbl inst-bbleader inst-bboards +Toptions1= bbc.man bbl.man bbleader.man bboards.man +d45 1 +a45 1 + whatnow.$(EXT1) whom.$(EXT1) $(OPTIONS1) $(OPTIONS2) +d49 1 +a49 1 + whom $(options1) $(options2) +d56 2 +a57 1 + inst-whatnow inst-whom $(inst-options1) $(inst-options2) +d63 2 +a64 2 + show.man sortm.man vmh.man whatnow.man whom.man $(Toptions1) \ + $(Toptions2) +@ + + +2.1 +log +@make unconfig changes +@ +text +@d678 1 +a678 1 + -rm -f Makefile +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d677 4 +a680 1 +unconfig distribution: clean +@ + + +1.1 +log +@Initial revision +@ +text +@d677 1 +a677 1 +distribution: clean +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/mtsM,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/mtsM,v new file mode 100644 index 0000000..cb44c2c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/mtsM,v @@ -0,0 +1,144 @@ +head 2.3; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +2.3 +date 90.04.18.13.47.30; author sources; state Exp; +branches ; +next 2.2; + +2.2 +date 90.04.05.15.17.58; author sources; state Exp; +branches ; +next 2.1; + +2.1 +date 90.02.21.16.59.39; author sources; state Exp; +branches ; +next 2.0; + +2.0 +date 89.11.17.15.56.40; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 89.11.17.15.44.19; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +2.3 +log +@remove lib files with "make clean" +@ +text +@############################################################################## +# Instructions to Make, for compilation of MTS-specific libraries +# +# @@(MHWARNING) +# @@(#)$Id: mtsM,v 2.2 90/04/05 15:17:58 sources Exp Locker: sources $ +############################################################################## + +# The following entries were inserted during MH configuration +@@BEGIN: MHMTS +MTS = mh +@@END: MHMTS +@@BEGIN: MMDFMTS +MTS = mmdf +@@END: MMDFMTS +@@BEGIN: SENDMTS +MTS = sendmail +@@END: SENDMTS + +LIB = libmts.a +LLIB = llib-lmts + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + + +############################################################################## +# Generate MTS-specific library +############################################################################## + +ALL = $(MTS) + +all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(ALL); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(ALL); do (cd $$d; $(MAKE) lint); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +DIRS = mh mmdf sendmail + +unconfig:; -rm -f $(LIB) $(LLIB) + for d in $(DIRS); do (cd $$d; $(MAKE) unconfig); done + -rm -f Makefile + +distribution:; -rm -f $(LIB) $(LLIB) + for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done + +clean:; -rm -f $(LIB) $(LLIB) + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done +@ + + +2.2 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d52 2 +a53 1 +clean:; for d in $(DIRS); do (cd $$d; $(MAKE) clean); done +@ + + +2.1 +log +@make unconfig changes +@ +text +@d5 1 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d44 5 +a48 1 +unconfig distribution:; -rm -f $(LIB) $(LLIB) +@ + + +1.1 +log +@Initial revision +@ +text +@d44 1 +a44 1 +distribution:; -rm -f $(LIB) $(LLIB) +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/papers,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/papers,v new file mode 100644 index 0000000..9e3105f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/papers,v @@ -0,0 +1,163 @@ +head 2.6; +access; +symbols; +locks; strict; + + +2.6 +date 92.12.02.21.57.34; author jromine; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.05.15.18.04; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.04.05.13.21.04; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.03.15.11.40.13; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.23.22.06.15; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.21.16.59.41; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.40; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.19; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.6 +log +@mh6.7 -> papers +@ +text +@############################################################################## +# Instructions to Make, for compilation of MH papers +# +# @@(MHWARNING) +# @@(#)$Id: papers,v 2.5 1990/04/05 15:18:04 sources Exp jromine $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + +DIRS = bboards beginners changes mh4 mh4mm mh5 mh6.5 \ + multifarious mznet realwork trusted tutorial + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +all:; for d in $(DIRS); do (cd $$d; $(MAKE)); done + +unconfig: distribution + -rm -f Makefile + +distribution:; for d in $(DIRS); do \ + (cd $$d; $(MAKE) distribution); done + +clean:; for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; for d in $(DIRS); do (cd $$d; $(MAKE) clean); done +@ + + +2.5 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d11 1 +a11 1 +DIRS = bboards beginners mh4 mh4mm mh5 mh6.5 mh6.7 \ +@ + + +2.4 +log +@add mh6.7 paper +@ +text +@d5 1 +@ + + +2.3 +log +@add "make all" +@ +text +@d10 2 +a11 2 +DIRS = bboards beginners mh4 mh4mm mh5 mh6.5 mh6 multifarious mznet \ + realwork trusted tutorial +@ + + +2.2 +log +@add mh6/ directory +@ +text +@d18 1 +@ + + +2.1 +log +@make unconfig changes +@ +text +@d10 1 +a10 1 +DIRS = bboards beginners mh4 mh4mm mh5 mh6.5 multifarious mznet \ +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d19 4 +a22 1 +unconfig distribution:; for d in $(DIRS); do \ +@ + + +1.1 +log +@Initial revision +@ +text +@d19 2 +a20 1 +distribution:; for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/sbr,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/sbr,v new file mode 100644 index 0000000..3541551 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/sbr,v @@ -0,0 +1,1013 @@ +head 2.21; +access; +symbols; +locks; strict; + + +2.21 +date 93.02.26.19.01.31; author jromine; state Exp; +branches; +next 2.20; + +2.20 +date 93.02.26.18.51.23; author jromine; state Exp; +branches; +next 2.19; + +2.19 +date 92.11.12.22.47.24; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 92.10.30.06.53.37; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 92.10.28.18.03.08; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.10.20.23.00.26; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.05.12.22.07.43; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.02.07.19.12.32; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.02.04.17.43.29; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 92.01.30.16.36.16; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 92.01.29.00.18.53; author jromine; state Exp; +branches; +next 2.10; + +2.10 +date 92.01.27.17.33.42; author jromine; state Exp; +branches; +next 2.9; + +2.9 +date 90.04.08.22.00.14; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.04.08.20.23.18; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.04.05.15.18.10; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.03.21.22.21.35; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.03.15.16.11.41; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.12.11.29.03; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.23.17.55.46; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.21.16.59.43; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.06.12.51.25; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.41; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.20; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.21 +log +@add NORUSERPASS for 386BSD +@ +text +@############################################################################## +# Instructions to Make, for compilation of MH modules +# +# @@(MHWARNING) +# @@(#)$Id: sbr,v 2.20 1993/02/26 18:51:23 jromine Exp jromine $ +############################################################################## + +OPTIONS = @@(MHOPTIONS) + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + + +@@BEGIN: STDLIB +LIBS = libmh.a +@@END: STDLIB +@@BEGIN: SHAREDLIB +@@BEGIN: SUN4SHLIB +LIBSA = libmh.sa +@@END: SUN4SHLIB +LIBS = shared libmh.a libmh.so $(LIBSA) +SLIBVER = @@(SLIBVER) +SLIBDIR = $(DESTDIR)@@(SLIBDIR) +SLFLAGS= @@(SLFLAGS) +@@END: SHAREDLIB + +PGMPROT = 0755 + +CFILES = add.c adios.c admonish.c addrsbr.c advertise.c advise.c \ + ambigsw.c atooi.c brkstring.c closefds.c concat.c copy.c \ + copyip.c cpydata.c cpydgst.c discard.c done.c fdcompare.c \ + gans.c getans.c getanswer.c getcpy.c help.c fmtcompile.c \ + formataddr.c formatsbr.c m_atoi.c m_backup.c m_convert.c \ + m_delete.c m_draft.c m_find.c m_fmsg.c m_foil.c m_getdefs.c \ + m_getfld.c m_getfolder.c m_gmprot.c m_gmsg.c m_maildir.c \ + m_name.c m_readefs.c m_remsg.c m_replace.c m_scratch.c \ + m_seq.c m_seqbits.c m_seqflag.c m_seqnew.c m_setcur.c \ + m_setseq.c m_setvis.c m_sync.c m_tmpfil.c m_update.c \ + makedir.c path.c peekc.c pidwait.c pidstatus.c \ + printsw.c push.c putenv.c pwd.c refile.c remdir.c r1bindex.c \ +@@BEGIN: NORUSERPASS + ruserpass.c \ +@@END: NORUSERPASS + showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \ + uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c + + +OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \ + ambigsw.o atooi.o brkstring.o closefds.o concat.o copy.o \ + copyip.o cpydata.o cpydgst.o discard.o done.o fdcompare.o \ + gans.o getans.o getanswer.o getcpy.o help.o fmtcompile.o \ + formataddr.o formatsbr.o m_atoi.o m_backup.o m_convert.o \ + m_delete.o m_draft.o m_find.o m_fmsg.o m_foil.o m_getdefs.o \ + m_getfld.o m_getfolder.o m_gmprot.o m_gmsg.o m_maildir.o \ + m_name.o m_readefs.o m_remsg.o m_replace.o m_scratch.o \ + m_seq.o m_seqbits.o m_seqflag.o m_seqnew.o m_setcur.o \ + m_setseq.o m_setvis.o m_sync.o m_tmpfil.o m_update.o \ + makedir.o path.o peekc.o pidwait.o pidstatus.o \ + printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o \ +@@BEGIN: NORUSERPASS + ruserpass.o \ +@@END: NORUSERPASS + showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \ + uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o + +@@BEGIN: SHAREDLIB +ODEFS = formatdef.o m_msgdef.o +@@END: SHAREDLIB + +@@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o: +@@BEGIN: SHAREDLIB + -rm -f $@@ shared/$@@ + $(CC) $(CFLAGS) -c $(SLFLAGS) $*.c + mv $@@ shared/$@@ + -rm -f $@@ +@@END: SHAREDLIB + $(CC) $(CFLAGS) -c $*.c +@@BEGIN: NEWLOAD + -ld -x -r $@@ + mv a.out $@@ +@@END: NEWLOAD +@@BEGIN: OLDLOAD + cc -s -o $@@ +@@END: OLDLOAD + +@@END: OPTIM +############################################################################## +# Generate MH subroutine library +############################################################################## + +all: $(LIBS) + +libmh.a: $(OFILES) + -mv $@@ z$@@ +@@BEGIN: RANLIB + ar r $@@ $(OFILES); ranlib $@@ +@@END: RANLIB +@@BEGIN: LORDER + ar r $@@ `lorder $(OFILES) | tsort` +@@END: LORDER + -@@ls -l $@@ + -@@echo "MH library built normally" + +@@BEGIN: SHAREDLIB +libmh.so: $(OFILES) + -mv -f $@@ z$@@ +@@BEGIN: SUN4SHLIB + (cd shared; ld -o ../$@@ -assert pure-text $(OFILES)) +@@END: SUN4SHLIB +@@BEGIN: SYS5SHLIB + (cd shared; ld -G -o ../$@@ -h $@@.$(SLIBVER) $(OFILES)) +@@END: SYS5SHLIB + -@@rm -f $@@.$(SLIBVER) + ln $@@ $@@.$(SLIBVER) + -@@ls -l $@@* + -@@echo "MH shared library built normally" + +@@BEGIN: SUN4SHLIB +libmh.sa: $(ODEFS) + -mv $@@ z$@@ +@@BEGIN: RANLIB + ar r $@@ $(ODEFS); ranlib $@@ +@@END: RANLIB +@@BEGIN: LORDER + ar r $@@ `lorder $(ODEFS) | tsort` +@@END: LORDER + -@@rm -f $@@.$(SLIBVER) + ln $@@ $@@.$(SLIBVER) + -@@ls -l $@@* + -@@echo "MH data interface description built normally" +@@END: SUN4SHLIB + +shared:; @@if [ -d shared ]; then exit 0; else set -x; mkdir shared; fi +@@END: SHAREDLIB + +############################################################################## +# Miscellaneous tasks +############################################################################## + +@@BEGIN: SHAREDLIB +inst-lib: libmh.so $(LIBSA) + -rm -f $(SLIBDIR)/libmh.so.$(SLIBVER) + cp libmh.so.$(SLIBVER) $(SLIBDIR)/libmh.so.$(SLIBVER) + -@@chmod $(PGMPROT) $(SLIBDIR)/libmh.so.$(SLIBVER) + -@@ls -l $(SLIBDIR)/libmh.so.* + -@@echo "Shared library installed normally" + -@@echo "" +@@BEGIN: SUN4SHLIB + -rm -f $(SLIBDIR)/libmh.sa.$(SLIBVER) + cp libmh.sa.$(SLIBVER) $(SLIBDIR)/libmh.sa.$(SLIBVER) + -@@chmod $(PGMPROT) $(SLIBDIR)/libmh.sa.$(SLIBVER) +@@BEGIN: RANLIB + cd $(SLIBDIR); ranlib libmh.sa.$(SLIBVER) +@@END: RANLIB + -@@ls -l $(SLIBDIR)/libmh.sa.* + -@@echo "Data interface description installed normally" + -@@echo "" +@@END: SUN4SHLIB +@@END: SHAREDLIB +@@BEGIN: STDLIB +inst-lib:; +@@END: STDLIB + +lint:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +unconfig: distribution + -rm -f Makefile + -rm -rf shared + +distribution: clean + -rm -f version + +clean: unclean + -rm -f *.o libmh.* +@@BEGIN: SHAREDLIB + -rm -f shared/*.o +@@END: SHAREDLIB + +unclean:; -rm -f zlibmh.* _* :* core eddep makedep + + +############################################################################## +# MODIFICATIONS -- Adding a new routine (e.g., pickle) +############################################################################## + +# +# Add any new .c files to CFILES +# Add any new .o files to OFILES +# +# +# Under the "Dependencies" section, add a line for pickle.o +# pickle.o: ../h/mh.h +# +# If other includes are read, modify this rule to reflect this +# Of course, if pickle.c doesn't include ../h/mh.h (or any +# other includes), you can leave this line out altogether + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = $(CFILES) + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +add.o: add.c +add.o: ../h/mh.h +#add.o: /usr/include/stdio.h +adios.o: adios.c +adios.o: ../h/mh.h +admonish.o: admonish.c +admonish.o: ../h/mh.h +addrsbr.o: addrsbr.c +addrsbr.o: ../h/mh.h +addrsbr.o: ../h/addrsbr.h +addrsbr.o: ../zotnet/mf.h +#addrsbr.o: /usr/include/stdio.h +#addrsbr.o: /usr/include/ctype.h +advertise.o: advertise.c +advertise.o: ../h/mh.h +#advertise.o: /usr/include/stdio.h +#advertise.o: /usr/include/sys/types.h +#advertise.o: /usr/include/sys/uio.h +advise.o: advise.c +advise.o: ../h/mh.h +ambigsw.o: ambigsw.c +ambigsw.o: ../h/mh.h +#ambigsw.o: /usr/include/stdio.h +atooi.o: atooi.c +brkstring.o: brkstring.c +brkstring.o: ../h/mh.h +closefds.o: closefds.c +closefds.o: ../h/mh.h +#closefds.o: /usr/include/stdio.h +concat.o: concat.c +concat.o: ../h/mh.h +#concat.o: /usr/include/stdio.h +#concat.o: /usr/include/varargs.h +copy.o: copy.c +copyip.o: copyip.c +cpydata.o: cpydata.c +cpydata.o: ../h/mh.h +#cpydata.o: /usr/include/stdio.h +cpydgst.o: cpydgst.c +cpydgst.o: ../h/mh.h +#cpydgst.o: /usr/include/stdio.h +discard.o: discard.c +discard.o: ../h/mh.h +#discard.o: /usr/include/stdio.h +#discard.o: /usr/include/sgtty.h +#discard.o: /usr/include/sys/types.h +#discard.o: /usr/include/termio.h +#discard.o: /usr/include/sys/ioctl.h +done.o: done.c +done.o: ../h/mh.h +fdcompare.o: fdcompare.c +fdcompare.o: ../h/mh.h +#fdcompare.o: /usr/include/stdio.h +gans.o: gans.c +gans.o: ../h/mh.h +#gans.o: /usr/include/stdio.h +getans.o: getans.c +getans.o: ../h/mh.h +#getans.o: /usr/include/setjmp.h +#getans.o: /usr/include/signal.h +#getans.o: /usr/include/stdio.h +getanswer.o: getanswer.c +getanswer.o: ../h/mh.h +#getanswer.o: /usr/include/stdio.h +getcpy.o: getcpy.c +getcpy.o: ../h/mh.h +#getcpy.o: /usr/include/stdio.h +help.o: help.c +help.o: ../h/mh.h +#help.o: /usr/include/stdio.h +formatsbr.o: formatsbr.c +formatsbr.o: ../h/mh.h +formatsbr.o: ../h/addrsbr.h +formatsbr.o: ../h/formatsbr.h +formatsbr.o: ../zotnet/tws.h +formatsbr.o: ../h/fmtcompile.h +#formatsbr.o: /usr/include/ctype.h +#formatsbr.o: /usr/include/stdio.h +#formatsbr.o: /usr/include/sys/types.h +#formatsbr.o: /usr/include/sys/stat.h +fmtcompile.o: fmtcompile.c +fmtcompile.o: ../h/mh.h +fmtcompile.o: ../h/addrsbr.h +fmtcompile.o: ../h/formatsbr.h +fmtcompile.o: ../zotnet/tws.h +fmtcompile.o: ../h/fmtcompile.h +#fmtcompile.o: /usr/include/ctype.h +#fmtcompile.o: /usr/include/stdio.h +#fmtcompile.o: /usr/include/sys/types.h +#fmtcompile.o: /usr/include/sys/stat.h +formataddr.o: formataddr.c +formataddr.o: ../h/mh.h +formataddr.o: ../h/addrsbr.h +formataddr.o: ../h/formatsbr.h +#formataddr.o: /usr/include/ctype.h +#formataddr.o: /usr/include/stdio.h +m_atoi.o: m_atoi.c +m_atoi.o: ../h/mh.h +m_backup.o: m_backup.c +m_backup.o: ../h/mh.h +#m_backup.o: /usr/include/stdio.h +m_convert.o: m_convert.c +m_convert.o: ../h/mh.h +#m_convert.o: /usr/include/stdio.h +#m_convert.o: /usr/include/ctype.h +m_delete.o: m_delete.c +m_delete.o: ../h/mh.h +#m_delete.o: /usr/include/stdio.h +m_draft.o: m_draft.c +m_draft.o: ../h/mh.h +#m_draft.o: /usr/include/errno.h +#m_draft.o: /usr/include/stdio.h +#m_draft.o: /usr/include/sys/types.h +#m_draft.o: /usr/include/sys/stat.h +m_find.o: m_find.c +m_find.o: ../h/mh.h +#m_find.o: /usr/include/stdio.h +m_fmsg.o: m_fmsg.c +m_fmsg.o: ../h/mh.h +#m_fmsg.o: /usr/include/stdio.h +m_foil.o: m_foil.c +m_foil.o: ../h/mh.h +#m_foil.o: /usr/include/stdio.h +m_getdefs.o: m_getdefs.c +m_getdefs.o: ../h/mh.h +#m_getdefs.o: /usr/include/stdio.h +#m_getdefs.o: /usr/include/errno.h +#m_getdefs.o: /usr/include/sys/types.h +#m_getdefs.o: /usr/include/sys/stat.h +#m_getdefs.o: /usr/include/pwd.h +m_getfld.o: m_getfld.c +m_getfld.o: ../h/mh.h +#m_getfld.o: /usr/include/stdio.h +m_getfld.o: ../zotnet/mts.h +#m_getfld.o: /usr/include/ctype.h +m_getfolder.o: m_getfolder.c +m_getfolder.o: ../h/mh.h +#m_getfolder.o: /usr/include/stdio.h +m_gmprot.o: m_gmprot.c +m_gmprot.o: ../h/mh.h +#m_gmprot.o: /usr/include/stdio.h +m_gmsg.o: m_gmsg.c +m_gmsg.o: ../h/mh.h +m_gmsg.o: ../h/local.h +#m_gmsg.o: /usr/include/stdio.h +#m_gmsg.o: /usr/include/sys/types.h +#m_gmsg.o: /usr/include/sys/stat.h +#m_gmsg.o: /usr/include/ndir.h +#m_gmsg.o: /usr/include/dir.h +#m_gmsg.o: /usr/include/sys/dir.h +m_maildir.o: m_maildir.c +m_maildir.o: ../h/mh.h +#m_maildir.o: /usr/include/stdio.h +m_name.o: m_name.c +m_name.o: ../h/mh.h +#m_name.o: /usr/include/stdio.h +m_readefs.o: m_readefs.c +m_readefs.o: ../h/mh.h +#m_readefs.o: /usr/include/stdio.h +m_remsg.o: m_remsg.c +m_remsg.o: ../h/mh.h +#m_remsg.o: /usr/include/stdio.h +m_replace.o: m_replace.c +m_replace.o: ../h/mh.h +#m_replace.o: /usr/include/stdio.h +m_scratch.o: m_scratch.c +m_scratch.o: ../h/mh.h +#m_scratch.o: /usr/include/stdio.h +m_seq.o: m_seq.c +m_seq.o: ../h/mh.h +#m_seq.o: /usr/include/stdio.h +m_seqbits.o: m_seqbits.c +m_seqbits.o: ../h/mh.h +#m_seqbits.o: /usr/include/stdio.h +m_seqflag.o: m_seqflag.c +m_seqflag.o: ../h/mh.h +m_seqnew.o: m_seqnew.c +m_seqnew.o: ../h/mh.h +#m_seqnew.o: /usr/include/ctype.h +#m_seqnew.o: /usr/include/stdio.h +m_setcur.o: m_setcur.c +m_setcur.o: ../h/mh.h +#m_setcur.o: /usr/include/stdio.h +m_setseq.o: m_setseq.c +m_setseq.o: ../h/mh.h +#m_setseq.o: /usr/include/stdio.h +m_setvis.o: m_setvis.c +m_setvis.o: ../h/mh.h +#m_setvis.o: /usr/include/stdio.h +m_sync.o: m_sync.c +m_sync.o: ../h/mh.h +#m_sync.o: /usr/include/stdio.h +m_tmpfil.o: m_tmpfil.c +m_tmpfil.o: ../h/mh.h +#m_tmpfil.o: /usr/include/stdio.h +m_update.o: m_update.c +m_update.o: ../h/mh.h +#m_update.o: /usr/include/stdio.h +#m_update.o: /usr/include/signal.h +makedir.o: makedir.c +makedir.o: ../h/mh.h +#makedir.o: /usr/include/stdio.h +path.o: path.c +path.o: ../h/mh.h +#path.o: /usr/include/stdio.h +peekc.o: peekc.c +peekc.o: ../h/mh.h +#peekc.o: /usr/include/stdio.h +pidwait.o: pidwait.c +pidwait.o: ../h/mh.h +#pidwait.o: /usr/include/signal.h +#pidwait.o: /usr/include/stdio.h +#pidwait.o: /usr/include/sys/wait.h +pidstatus.o: pidstatus.c +pidstatus.o: ../h/mh.h +#pidstatus.o: /usr/include/signal.h +#pidstatus.o: /usr/include/stdio.h +printsw.o: printsw.c +printsw.o: ../h/mh.h +push.o: push.c +push.o: ../h/mh.h +#push.o: /usr/include/stdio.h +#push.o: /usr/include/signal.h +putenv.o: putenv.c +putenv.o: ../h/mh.h +#putenv.o: /usr/include/stdio.h +pwd.o: pwd.c +pwd.o: ../h/mh.h +pwd.o: ../h/local.h +#pwd.o: /usr/include/stdio.h +#pwd.o: /usr/include/sys/types.h +#pwd.o: /usr/include/sys/stat.h +#pwd.o: /usr/include/ndir.h +#pwd.o: /usr/include/dir.h +refile.o: refile.c +refile.o: ../h/mh.h +#refile.o: /usr/include/stdio.h +remdir.o: remdir.c +remdir.o: ../h/mh.h +#remdir.o: /usr/include/stdio.h +r1bindex.o: r1bindex.c +showfile.o: showfile.c +showfile.o: ../h/mh.h +#showfile.o: /usr/include/stdio.h +smatch.o: smatch.c +smatch.o: ../h/mh.h +sprintb.o: sprintb.c +sprintb.o: ../h/mh.h +#sprintb.o: /usr/include/stdio.h +ssequal.o: ssequal.c +strindex.o: strindex.c +trimcpy.o: trimcpy.c +trimcpy.o: ../h/mh.h +#trimcpy.o: /usr/include/ctype.h +#trimcpy.o: /usr/include/stdio.h +uleq.o: uleq.c +uprf.o: uprf.c +vfgets.o: vfgets.c +vfgets.o: ../h/mh.h +#vfgets.o: /usr/include/stdio.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +2.20 +log +@use DESTDIR when installing lib +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.19 1992/11/12 22:47:24 jromine Exp jromine $ +d49 3 +d68 3 +@ + + +2.19 +log +@add SLFLAGS +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.18 1992/10/30 06:53:37 jromine Exp jromine $ +d31 1 +a31 1 +SLIBDIR = @@(SLIBDIR) +@ + + +2.18 +log +@for ranlib libmh.sa, cd to slibdir first +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.17 1992/10/28 18:03:08 jromine Exp jromine $ +d32 1 +d80 1 +a80 1 + $(CC) $(CFLAGS) -c -pic $*.c +d118 1 +a118 1 + (cd shared; ls -G -o ../$@@ -h $@@.$(SLIBVER) $(OFILES)) +@ + + +2.17 +log +@ranlib libmh.sa after installation +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.16 1992/10/20 23:00:26 jromine Exp jromine $ +d159 1 +a159 1 + ranlib $(SLIBDIR)/libmh.sa.$(SLIBVER) +@ + + +2.16 +log +@move "rm -f tws/tws.h" from sbr to zotnet Makefile (error) +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.15 1992/05/12 22:07:43 jromine Exp jromine $ +d158 3 +@ + + +2.15 +log +@fixup duplicate tws.h files +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.14 1992/02/07 19:12:32 jromine Exp jromine $ +a173 2 + -rm -f tws/tws.h + ln tws.h tws/tws.h +@ + + +2.14 +log +@add SYS5 shared libs +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.13 1992/02/04 17:43:29 jromine Exp jromine $ +d174 2 +@ + + +2.13 +log +@move sbr/m_whatnow.c to uip/whatnowproc.c +for shared libs +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.12 1992/01/30 16:36:16 jromine Exp jromine $ +d26 4 +a29 1 +LIBS = shared libmh.a libmh.so libmh.sa +d113 1 +d115 4 +d124 1 +d137 1 +d147 1 +a147 1 +inst-lib: libmh.so libmh.sa +d154 1 +d161 1 +@ + + +2.12 +log +@typo +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.11 1992/01/29 00:18:53 jromine Exp jromine $ +d43 1 +a43 1 + m_whatnow.c makedir.c path.c peekc.c pidwait.c pidstatus.c \ +d59 1 +a59 1 + m_whatnow.o makedir.o path.o peekc.o pidwait.o pidstatus.o \ +a414 3 +m_whatnow.o: m_whatnow.c +m_whatnow.o: ../h/mh.h +#m_whatnow.o: /usr/include/stdio.h +@ + + +2.11 +log +@typo +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.10 1992/01/27 17:33:42 jromine Exp jromine $ +a67 1 + +a87 1 + +@ + + +2.10 +log +@shared libs changes +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.9 1990/04/08 22:00:14 sources Exp jromine $ +d141 1 +a141 1 + cp $(LIB) $(SLIBDIR)/libmh.so.$(SLIBVER) +d147 1 +a147 1 + cp $(LIB) $(SLIBDIR)/$(LIB).$(SLIBVER) +@ + + +2.9 +log +@remove version for "make distribution" +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.8 90/04/08 20:23:18 sources Exp Locker: sources $ +d23 1 +a23 1 +LIB = libmh.a +d26 2 +a27 1 +LIB = libmh.so +d46 1 +a46 1 + uleq.c uprf.c vfgets.c +d48 1 +d62 1 +a62 1 + uleq.o uprf.o vfgets.o +d64 3 +d68 1 +d74 1 +d76 4 +a79 1 +.c.o:; $(CC) $(CFLAGS) -c $*.c -pic +d81 1 +a81 2 +@@BEGIN: STDLIB +.c.o:; $(CC) $(CFLAGS) -c $*.c +a88 1 +@@END: STDLIB +d96 1 +a96 1 +all: version $(LIB) +d98 1 +a98 1 +$(LIB): $(OFILES) +a99 1 +@@BEGIN: STDLIB +d108 1 +a108 1 +@@END: STDLIB +d110 5 +a114 3 + ld -o $@@ $(OFILES) + -@@rm -f $@@.`cat version` + ln $@@ $@@.`cat version` +a116 1 +@@END: SHAREDLIB +d118 12 +a129 2 +version: $(CFILES) + @@/bin/sh version.sh @@(MHRELEASE) +d131 2 +d139 6 +a144 6 +inst-lib: $(LIB) + -rm -f $(SLIBDIR)/$(LIB) + cp $(LIB) $(SLIBDIR)/$(LIB).`cat version` + -@@chmod $(PGMPROT) $(SLIBDIR)/$(LIB).`cat version` + -@@ls -l $(SLIBDIR)/$(LIB)* + -@@echo "Library installed normally" +d146 6 +d161 1 +d168 3 +d172 1 +a172 1 +unclean:; -rm -f z$(LIB) _* :* core eddep makedep +@ + + +2.8 +log +@*** empty log message *** +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sbr,v 2.7 90/04/05 15:18:10 sources Exp Locker: sources $ +d137 1 +@ + + +2.7 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d111 1 +a111 1 + @@/bin/sh version.sh +@ + + +2.6 +log +@add PGMPROT +@ +text +@d5 1 +@ + + +2.5 +log +@don't use "install" +@ +text +@d29 2 +@ + + +2.4 +log +@remove -O (put in mhconfig) +@ +text +@d117 4 +a120 2 + install -m 755 $(LIB).`cat version` $(SLIBDIR) + -@@ls $(SLIBDIR)/$(LIB)* +d122 1 +@ + + +2.3 +log +@version.sh changes +@ +text +@d11 1 +a11 1 +CFLAGS = -O $(OPTIONS) +@ + + +2.2 +log +@make unconfig changes +@ +text +@d85 1 +a85 1 +all: $(LIB) +d107 2 +d110 1 +a119 2 + -@@echo "Updating version" + @@./version.sh +@ + + +2.1 +log +@ANSI Compilance +@ +text +@d126 2 +a127 1 +unconfig distribution: clean +d129 2 +d132 1 +a132 6 +@@BEGIN: STDLIB + -rm -f *.o $(LIB) +@@END: STDLIB +@@BEGIN: SHAREDLIB + -rm -f *.o $(LIB)* +@@END: SHAREDLIB +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d9 1 +a9 1 +CC = cc +@ + + +1.1 +log +@Initial revision +@ +text +@d21 1 +d23 5 +d65 4 +d77 1 +d89 1 +d98 8 +d112 12 +d126 1 +a126 1 +distribution: clean +d129 1 +d131 4 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/supportM,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/supportM,v new file mode 100644 index 0000000..cf8c47f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/supportM,v @@ -0,0 +1,131 @@ +head 2.2; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +2.2 +date 90.04.05.15.18.17; author sources; state Exp; +branches ; +next 2.1; + +2.1 +date 90.02.21.16.59.44; author sources; state Exp; +branches ; +next 2.0; + +2.0 +date 89.11.17.15.56.45; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 89.11.17.15.44.21; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +2.2 +log +@add ID +@ +text +@############################################################################## +# Instructions to Make, for MH support processes +# +# @@(MHWARNING) +# @@(#)$Id:$ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + +DIRS = bboards general pop + + +############################################################################## +# Generate MH support processes +############################################################################## + +all:; for d in $(DIRS); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(DIRS); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(DIRS); do (cd $$d; $(MAKE) lint); done + + +############################################################################## +# Installation +############################################################################## + +install: inst-all clean + +inst-all:; for d in $(DIRS); do (cd $$d; $(MAKE) inst-all); done + +tar:; @@for d in $(DIRS); \ + do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done + +uninstall:; for d in $(DIRS); do (cd $$d; $(MAKE) uninstall); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + + +unconfig:; -rm -f _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) unconfig); done + -rm -f Makefile + +distribution:; -rm -f _* :* + for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done + +clean:; -rm -f _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; -rm -f _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done +@ + + +2.1 +log +@make unconfig changes +@ +text +@d5 1 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d43 5 +a47 1 +unconfig distribution:; rm -f _* :* +d50 1 +a50 1 +clean:; rm -f _* :* core +d53 1 +a53 1 +unclean:; rm -f _* :* core +@ + + +1.1 +log +@Initial revision +@ +text +@d43 1 +a43 1 +distribution:; rm -f _* :* +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/uip,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/uip,v new file mode 100644 index 0000000..b9bb2bb --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/uip,v @@ -0,0 +1,3361 @@ +head 2.39; +access; +symbols; +locks; strict; +comment @# @; + + +2.39 +date 92.12.18.17.57.45; author jromine; state Exp; +branches; +next 2.38; + +2.38 +date 92.11.18.16.54.29; author jromine; state Exp; +branches; +next 2.37; + +2.37 +date 92.11.12.23.24.21; author jromine; state Exp; +branches; +next 2.36; + +2.36 +date 92.11.12.19.11.04; author jromine; state Exp; +branches; +next 2.35; + +2.35 +date 92.11.11.20.25.32; author jromine; state Exp; +branches; +next 2.34; + +2.34 +date 92.11.11.17.34.34; author jromine; state Exp; +branches; +next 2.33; + +2.33 +date 92.11.05.19.16.02; author jromine; state Exp; +branches; +next 2.32; + +2.32 +date 92.11.05.01.39.01; author jromine; state Exp; +branches; +next 2.31; + +2.31 +date 92.11.05.00.02.44; author jromine; state Exp; +branches; +next 2.30; + +2.30 +date 92.11.04.03.30.31; author jromine; state Exp; +branches; +next 2.29; + +2.29 +date 92.11.02.22.55.38; author jromine; state Exp; +branches; +next 2.28; + +2.28 +date 92.10.28.17.36.07; author jromine; state Exp; +branches; +next 2.27; + +2.27 +date 92.10.20.22.51.34; author jromine; state Exp; +branches; +next 2.26; + +2.26 +date 92.10.20.17.39.10; author jromine; state Exp; +branches; +next 2.25; + +2.25 +date 92.10.20.17.38.40; author jromine; state Exp; +branches; +next 2.24; + +2.24 +date 92.10.20.17.16.09; author jromine; state Exp; +branches; +next 2.23; + +2.23 +date 92.05.20.22.32.55; author jromine; state Exp; +branches; +next 2.22; + +2.22 +date 92.02.11.16.37.52; author jromine; state Exp; +branches; +next 2.21; + +2.21 +date 92.02.11.16.25.28; author jromine; state Exp; +branches; +next 2.20; + +2.20 +date 92.02.06.17.10.57; author jromine; state Exp; +branches; +next 2.19; + +2.19 +date 92.02.04.21.14.35; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 92.02.04.17.43.29; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 92.01.31.22.48.03; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.01.31.21.37.07; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.01.31.16.39.54; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.01.24.23.18.46; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 91.05.17.15.29.03; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 91.01.25.15.50.18; author mh; state Exp; +branches; +next 2.11; + +2.11 +date 90.12.18.13.34.42; author mh; state Exp; +branches; +next 2.10; + +2.10 +date 90.12.18.13.26.29; author mh; state Exp; +branches; +next 2.9; + +2.9 +date 90.04.05.15.17.01; author sources; state Exp; +branches; +next 2.8; + +2.8 +date 90.03.12.14.27.52; author sources; state Exp; +branches; +next 2.7; + +2.7 +date 90.03.12.11.29.10; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.02.23.17.33.22; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.02.21.16.59.46; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.02.15.13.53.17; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.06.12.52.13; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.05.13.47.44; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.01.25.16.24.00; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.46; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 89.06.02.11.08.24; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 88.06.29.14.03.23; author sources; state Exp; +branches; +next ; + + +desc +@Initial revision. No mods. +Gary +@ + + +2.39 +log +@typo -- allow PSHLIB without POP +@ +text +@############################################################################## +# Instructions to Make, for compilation of MH processes +# +# @@(MHWARNING) +# @@(#)$Id: uip,v 2.38 1992/11/18 16:54:29 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +OPTIONS = @@(MHOPTIONS) +LDOPTIONS= @@(LDOPTIONS) +LDOPTLIB= @@(LDOPTLIB) +LDCURSES= @@(LDCURSES) +@@BEGIN: MMDFMTS +MTSBRS = +MTSMISC = +IMTSMISC= +LMTSMISC= +TMTSMISC= +@@END: MMDFMTS +@@BEGIN: MHMTS +MTSBRS = dropsbr.o +@@BEGIN: MF +MTSMISC = rmail umhook +IMTSMISC= inst-rmail inst-umhook +LMTSMISC= l-rmail l-umhook +TMTSMISC= rmail umhook +@@END: MF +@@END: MHMTS +@@BEGIN: SENDMTS +MTSBRS = +MTSMISC = +IMTSMISC= +LMTSMISC= +TMTSMISC= +@@END: SENDMTS +@@BEGIN: SENDMTSHACK +SMTSMISC= slocal +ISMTSMISC= inst-slocal +LSMTSMISC= l-slocal +TSMTSMISC= xslocal +@@END: SENDMTSHACK +SBBOARDS= $(ETCDIR)/sbboards +CHOWN = @@(MHCHOWNPATH) +REMOVE = @@(MHREMOVE) +@@BEGIN: BBOARDS +BBUID = bboards +BBCMDS = bbc bbl +IBBCMDS= inst-bbc inst-bbl +LBBCMDS= l-bbc l-bbl +TBBCMDS= xbbc xbbl +@@BEGIN: MHMTS +BBMISC = sbboards +IBBMISC= inst-sbboards +LBBMISC= l-sbboards +SBBOARDS= @@(BBHOME)/.mh_receive +TBBMISC= xsbboards +@@END: MHMTS +@@BEGIN: SENDMTSHACK +BBMISC = sbboards +IBBMISC= inst-sbboards +LBBMISC= l-sbboards +SBBOARDS= $(ETCDIR)/sbboards +TBBMISC= xsbboards +@@END: SENDMTSHACK +@@END: BBOARDS +@@BEGIN: POP +POPUID = pop +POPLIB = popsbr.o +POPLLIBS= popsbr.c +@@BEGIN: MPOP +POPCMDS = popi +IPOPCMDS= inst-popi +LPOPCMDS= l-popi +TPOPCMS= xpopi +@@END: MPOP +@@BEGIN: SENDMTSHACK +POPMISC= spop +IPOPMISC= inst-spop +LPOPMISC= l-spop +TPOPMISC= xspop +@@END: SENDMTSHACK +@@BEGIN: KPOP +KRBLIB = -lkrb -ldes +@@END: KPOP +@@END: POP +@@BEGIN: BPOP +PSHLIB = popsbr.o +PSHLLIBS= popsbr.c +@@END: BPOP +@@BEGIN: NNTP +PSHLIB = pshsbr.o +PSHLLIBS= -DPSHSBR popsbr.c +@@END: NNTP +@@BEGIN: HESIOD +HESLIB = -lhesiod +@@END: HESIOD +@@BEGIN: TMA +TMACMDS = cipher decipher tma +ITMACMDS= inst-cipher inst-decipher inst-tma +LTMACMDS= l-cipher l-decipher l-tma +TTMACMS= xcipher xdecipher xtma +#TMAMISC= kdsc +#ITMAMISC= inst-kdsc +#LKDSMISC= l-kdsc +#TTMAMISC= xkdsc +TMAOPTS = -I../tma/h +TMALIB = tmasbr.o ../tma/libtma.a +TMALLIBS= tmasbr.c ../tma/llib-ltma +KDSLIB = ../tma/libkds.a ../tma/libtma.a +KDSLLIBS= ../tma/llib-lkds +@@END: TMA + +CP = @@(CP) +LN = @@(LN) + +CC = @@(MHCOMPILER) +@@BEGIN: STDLIB +LD = @@(MHCOMPILER) +@@END: STDLIB +@@BEGIN: SHAREDLIB +LD = LD_LIBRARY_PATH=../sbr @@(MHCOMPILER) +@@END: SHAREDLIB +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LDFLAGS = $(LDOPTIONS) +@@BEGIN: STDLIB +LIBES = ../config/config.o ../sbr/libmh.a ../mts/libmts.a \ + ../zotnet/libzot.a +LDLIBS = $(LIBES) ../config/version.o $(LDOPTLIB) +@@END: STDLIB +@@BEGIN: SUN4SHLIB +SLIBVER = .@@(SLIBVER) +@@END: SUN4SHLIB +@@BEGIN: SHAREDLIB +LIBES = ../config/config.o ../sbr/libmh.so ../mts/libmts.a \ + ../zotnet/libzot.a +LDLIBES = ../config/config.o -Bdynamic @@(SLDFLAG) -lmh$(SLIBVER) \ + ../mts/libmts.a ../zotnet/libzot.a +LDLIBS = $(LDLIBES) ../config/version.o $(LDOPTLIB) +@@END: SHAREDLIB +LINT = lint +LFLAGS = -bhu $(OPTIONS) $(TMAOPTS) +LLIBS = ../sbr/llib-lmh ../zotnet/llib-lzotnet ../mts/llib-lmts + +PGMPROT = 0755 + +CMDS = ali anno burst comp dist folder folders forw inc mark mhmail \ +@@BEGIN: MIME + mhn \ +@@END: MIME + mhpath msgchk msh next packf pick prev prompter refile repl \ + rmf rmm scan send show sortm vmh whatnow whom $(BBCMDS) \ + $(TMACMDS) $(POPCMDS) +MISC = ap conflict dp install-mh mhl post rcvdist rcvpack rcvstore \ + rcvtty fmtdump mhparam \ +@@BEGIN: SMTP + sendmail \ +@@END: SMTP +@@BEGIN: SENDMTS + spost \ +@@END: SENDMTS + $(MTSMISC) $(BBMISC) $(POPMISC) $(SMTSMISC) $(TMAMISC) + +ICMDS = inst-ali inst-anno inst-burst inst-comp inst-dist inst-folder \ + inst-folders inst-forw inst-inc inst-mark inst-mhmail \ +@@BEGIN: MIME + inst-mhn \ +@@END: MIME + inst-mhpath inst-msgchk inst-msh inst-next inst-packf \ + inst-pick inst-prev inst-prompter inst-refile inst-repl \ + inst-rmf inst-rmm inst-scan inst-send inst-show inst-sortm \ + inst-vmh inst-whatnow inst-whom $(IBBCMDS) $(ITMACMDS) \ + $(IPOPCMDS) +IMISC = inst-ap inst-conflict inst-dp inst-install-mh inst-mhl \ + inst-post inst-rcvdist inst-rcvpack inst-rcvstore inst-rcvtty \ + inst-fmtdump inst-mhparam \ +@@BEGIN: SMTP + inst-sendmail \ +@@END: SMTP + $(IMTSMISC) \ +@@BEGIN: SENDMTS + inst-spost \ +@@END: SENDMTS + $(IBBMISC) $(IPOPMISC) $(ISMTSMISC) $(ITMAMISC) + +LCMDS = l-ali l-anno l-burst l-comp l-dist l-folder l-forw l-inc \ + l-mark l-mhmail \ +@@BEGIN: MIME + l-mhn \ +@@END: MIME + l-mhpath l-msgchk l-msh l-packf l-pick \ + l-prompter l-refile l-repl l-rmf l-rmm l-scan l-send \ + l-show l-sortm l-vmh l-whatnow l-whom $(LBBCMDS) $(LTMACMDS) \ + $(LPOPCMDS) +LMISC = l-ap l-conflict l-dp l-install-mh l-mhl l-post l-rcvdist \ + l-rcvpack l-rcvstore l-rcvtty l-fmtdump l-mhparam \ +@@BEGIN: SMTP + l-sendmail \ +@@END: SMTP + $(LMTSMISC) $(LBBMISC) \ +@@BEGIN: SENDMTS + l-spost \ +@@END: SENDMTS + $(LPOPMISC) $(LSMTSMISC) $(LTMAMISC) + +TCMDS = xali xanno xburst xcomp xdist xfolder xforw xinc xmark \ + xmhmail \ +@@BEGIN: MIME + xmhn \ +@@END: MIME + xmhpath xmsgchk xmsh xpackf xpick xprompter xrefile \ + xrepl xrmf xrmm xscan xsend xshow xsortm xvmh xwhatnow xwhom \ + $(TBBCMDS) $(TTMACMDS) $(TPOPCMDS) +TMISC = xap xconflict xdp xinstall-mh xmhl xpost xrcvdist xrcvpack \ + xrcvstore xrcvtty xfmtdump xmhparam \ +@@BEGIN: SMTP + xsendmail \ +@@END: SMTP + $(TMTSMISC) $(TBBMISC) $(TPOPMISC) \ + $(TSMTSMISC) \ +@@BEGIN: SENDMTS + xspost \ +@@END: SENDMTS + $(TTMAMISC) + +.c:; echo $@@ + +############################################################################## +# Generate MH processes +############################################################################## + +all: $(CMDS) $(MISC) + +install: inst-all clean + +inst-all: $(ICMDS) $(IMISC) + +tar: $(TCMDS) $(TMISC) + @@touch $(TCMDS) $(TMISC) + @@make -n inst-all > MAKEUIP + @@chmod +x MAKEUIP + tar $(TFLAGS) MAKEUIP $(TCMDS) $(TMISC) + @@rm -f MAKEUIP + +uninstall:; -cd $(BINDIR); rm -f $(CMDS) + -cd $(ETCDIR); rm -f $(MISC) + +lint: $(LCMDS) $(LMISC) + + +############################################################################## +# MH processes +############################################################################## + +inst-ali: $(BINDIR)/ali + +$(BINDIR)/ali: xali + -$(REMOVE) $@@ zali + $(CP) xali $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +ali: xali + +xali: ali.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ ali.o aliasbr.o $(LDLIBS) + +l-ali:; $(LINT) $(LFLAGS) ali.c aliasbr.c $(LLIBS) + + +inst-anno: $(BINDIR)/anno + +$(BINDIR)/anno: xanno + -$(REMOVE) $@@ zanno + $(CP) xanno $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +anno: xanno + +xanno: anno.o annosbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ anno.o annosbr.o $(LDLIBS) + +l-anno:; $(LINT) $(LFLAGS) anno.c annosbr.c $(LLIBS) + + +inst-ap: $(ETCDIR)/ap + +$(ETCDIR)/ap: xap + -$(REMOVE) $@@ zap + $(CP) xap $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +ap: xap + +xap: ap.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ ap.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-ap:; $(LINT) $(LFLAGS) ap.c trmsbr.c $(LLIBS) + + +inst-bbc: $(BINDIR)/bbc + +$(BINDIR)/bbc: xbbc + -$(REMOVE) $@@ zbbc +@@BEGIN: BPOP + -chmod u-s zbbc +@@END: BPOP + $(CP) xbbc $@@ + -@@chmod $(PGMPROT) $@@ +@@BEGIN: BPOP + -$(CHOWN) root $@@ + chmod u+s $@@ +@@END: BPOP + -@@ls -l $(BINDIR)/bbc + -@@echo "" + +bbc: xbbc + +xbbc: bbc.o $(PSHLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ bbc.o $(PSHLIB) $(LDLIBS) + +l-bbc:; $(LINT) $(LFLAGS) bbc.c $(PSHLLIBS) $(LLIBS) + +pshsbr.c: popsbr.c + rm -f $@@ + $(LN) popsbr.c $@@ + +pshsbr.o: pshsbr.c + $(CC) $(CFLAGS) -DPSHSBR -c pshsbr.c + + +inst-bbl: $(BINDIR)/bbl + +$(BINDIR)/bbl: xbbl + -$(REMOVE) $@@ zbbl + -chmod u-s zbbl + $(CP) xbbl $@@ + -chmod $(PGMPROT) $@@ + -$(CHOWN) $(BBUID) $@@ + chmod u+s $@@ + -@@ls -l $@@ + -@@echo "" + +bbl: xbbl + +xbbl: bbl.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ bbl.o $(LDLIBS) + +l-bbl:; $(LINT) $(LFLAGS) bbl.c $(LLIBS) + + +inst-burst: $(BINDIR)/burst + +$(BINDIR)/burst: xburst + -$(REMOVE) $@@ zburst + $(CP) xburst $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +burst: xburst + +xburst: burst.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ burst.o $(LDLIBS) + +l-burst:; $(LINT) $(LFLAGS) burst.c $(LLIBS) + + +inst-cipher: $(BINDIR)/cipher + +$(BINDIR)/cipher: xcipher + -$(REMOVE) $@@ zcipher + $(CP) xcipher $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +cipher: xcipher + +xcipher: cipher.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ cipher.o $(TMALIB) $(LDLIBS) + +l-cipher:; $(LINT) $(LFLAGS) cipher.c $(TMALLIBS) $(LLIBS) + + +inst-comp: $(BINDIR)/comp + +$(BINDIR)/comp: xcomp + -$(REMOVE) $@@ zcomp + $(CP) xcomp $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $(BINDIR)/comp + -@@echo "" + +comp: xcomp + +xcomp: comp.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ comp.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-comp:; $(LINT) $(LFLAGS) comp.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-conflict: $(ETCDIR)/conflict + +$(ETCDIR)/conflict: xconflict + -$(REMOVE) $@@ zconflict + $(CP) xconflict $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +conflict: xconflict + +xconflict: conflict.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ conflict.o aliasbr.o $(LDLIBS) + +l-conflict:; $(LINT) $(LFLAGS) conflict.c aliasbr.c $(LLIBS) + + +inst-decipher: $(BINDIR)/decipher + +$(BINDIR)/decipher: xdecipher + -$(REMOVE) $@@ zdecipher + $(CP) xdecipher $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +decipher: xdecipher + +xdecipher: decipher.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ decipher.o $(TMALIB) $(LDLIBS) + +l-decipher:; $(LINT) $(LFLAGS) decipher.c $(TMALLIBS) $(LLIBS) + + +inst-dist: $(BINDIR)/dist + +$(BINDIR)/dist: xdist + -$(REMOVE) $@@ zdist + $(CP) xdist $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +dist: xdist + +xdist: dist.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ dist.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-dist:; $(LINT) $(LFLAGS) dist.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-dp: $(ETCDIR)/dp + +$(ETCDIR)/dp: xdp + -$(REMOVE) $@@ zdp + $(CP) xdp $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $(ETCDIR)/dp + -@@echo "" + +dp: xdp + +xdp: dp.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ dp.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-dp:; $(LINT) $(LFLAGS) dp.c trmsbr.c $(LLIBS) + + +inst-fmtdump: $(ETCDIR)/fmtdump + +$(ETCDIR)/fmtdump: xfmtdump + -$(REMOVE) $@@ zfmtdump + cp xfmtdump $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +fmtdump: xfmtdump + +xfmtdump: fmtdump.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ fmtdump.o $(LDLIBS) + +l-fmtdump:; $(LINT) $(LFLAGS) fmtdump.c $(LLIBS) + + +inst-folders: inst-folder +inst-folder: $(BINDIR)/folder + +$(BINDIR)/folder: xfolder + -$(REMOVE) $@@ zfolder + $(CP) xfolder $@@ + -@@chmod $(PGMPROT) $@@ + rm -f $(BINDIR)/folders + -ln $@@ $(BINDIR)/folders + -@@ls -l $@@ + -@@echo "" + +folders: folder +folder: xfolder + +xfolder: folder.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ folder.o $(LDLIBS) + +l-folder:; $(LINT) $(LFLAGS) folder.c $(LLIBS) + + +inst-forw: $(BINDIR)/forw + +$(BINDIR)/forw: xforw + -$(REMOVE) $@@ zforw + $(CP) xforw $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +forw: xforw + +xforw: forw.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ forw.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-forw:; $(LINT) $(LFLAGS) forw.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-inc: $(BINDIR)/inc + +$(BINDIR)/inc: xinc + -$(REMOVE) $@@ zinc +@@BEGIN: POP + -chmod u-s zinc +@@END: POP + $(CP) xinc $@@ + -@@chmod $(PGMPROT) $@@ +@@BEGIN: MAILGROUP + -@@chgrp @@(MAILGROUP) $@@ + -@@chmod g+s $@@ +@@END: MAILGROUP +@@BEGIN: POP + -$(CHOWN) root $@@ + chmod u+s $@@ +@@END: POP + -@@ls -l $@@ + -@@echo "" + +inc: xinc + +xinc: inc.o scansbr.o dropsbr.o trmsbr.o \ + $(POPLIB) $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ inc.o scansbr.o dropsbr.o \ + trmsbr.o $(POPLIB) $(TMALIB) $(KRBLIB) $(HESLIB) \ + $(LDLIBS) $(LDCURSES) + +l-inc:; $(LINT) $(LFLAGS) inc.c scansbr.c \ + dropsbr.c trmsbr.c $(POPLLIBS) $(TMALLIBS) $(LLIBS) + + +inst-install-mh: $(ETCDIR)/install-mh + +$(ETCDIR)/install-mh: xinstall-mh + -$(REMOVE) $@@ zinstall-mh + $(CP) xinstall-mh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +install-mh: xinstall-mh + +xinstall-mh: install-mh.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ install-mh.o $(LDLIBS) + +l-install-mh:; $(LINT) $(LFLAGS) install-mh.c $(LLIBS) + + +inst-kdsc: $(ETCDIR)/kdsc + +$(ETCDIR)/kdsc: xkdsc + -$(REMOVE) $@@ zkdsc + $(CP) xkdsc $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +kdsc: xkdsc + +xkdsc: kdsc.o $(KDSLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ kdsc.o $(KDSLIB) $(LDLIBS) + +l-kdsc:; $(LINT) $(LFLAGS) kdsc.c $(KDSLLIBS) $(LLIBS) + + +inst-mark: $(BINDIR)/mark + +$(BINDIR)/mark: xmark + -$(REMOVE) $@@ zmark + $(CP) xmark $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +mark: xmark + +xmark: mark.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mark.o $(LDLIBS) + +l-mark:; $(LINT) $(LFLAGS) mark.c $(LLIBS) + + +inst-mhl: $(ETCDIR)/mhl + +$(ETCDIR)/mhl: xmhl + -$(REMOVE) $@@ zmhl + $(CP) xmhl $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +mhl: xmhl + +xmhl: mhl.o \ + mhlsbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mhl.o \ + mhlsbr.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-mhl:; $(LINT) $(LFLAGS) mhl.c \ + mhlsbr.c trmsbr.c $(LLIBS) + + +inst-mhmail: $(BINDIR)/mhmail + +$(BINDIR)/mhmail: xmhmail + -$(REMOVE) $@@ zmhmail + $(CP) xmhmail $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +mhmail: xmhmail + +xmhmail: mhmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mhmail.o $(LDLIBS) + +l-mhmail:; $(LINT) $(LFLAGS) mhmail.c $(LLIBS) + + +inst-mhn: $(BINDIR)/mhn + +$(BINDIR)/mhn: xmhn + -$(REMOVE) $@@ zmhn + cp xmhn $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +mhn: xmhn + +xmhn: mhn.o ftpsbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mhn.o ftpsbr.o trmsbr.o \ + $(LDLIBS) $(LDCURSES) + +l-mhn:; $(LINT) $(LFLAGS) mhn.c ftpsbr.c trmsbr.c $(LLIBS) + + +inst-mhparam: $(BINDIR)/mhparam + +$(BINDIR)/mhparam: xmhparam + -$(REMOVE) $@@ zmhparam + cp xmhparam $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +mhparam: xmhparam + +xmhparam: mhparam.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mhparam.o $(LDLIBS) $(LDCURSES) + +l-mhparam:; $(LINT) $(LFLAGS) mhparam.c $(LLIBS) + + +inst-mhpath: $(BINDIR)/mhpath + +$(BINDIR)/mhpath: xmhpath + -$(REMOVE) $@@ zmhpath + $(CP) xmhpath $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +mhpath: xmhpath + +xmhpath: mhpath.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mhpath.o $(LDLIBS) + +l-mhpath:; $(LINT) $(LFLAGS) mhpath.c $(LLIBS) + + +inst-msgchk: $(BINDIR)/msgchk + +$(BINDIR)/msgchk: xmsgchk + -$(REMOVE) $@@ zmsgchk +@@BEGIN: POP + -chmod u-s zmsgchk +@@END: POP + $(CP) xmsgchk $@@ + -@@chmod $(PGMPROT) $@@ +@@BEGIN: POP + -$(CHOWN) root $@@ + chmod u+s $@@ +@@END: POP + -@@ls -l $@@ + -@@echo "" + +msgchk: xmsgchk + +xmsgchk: msgchk.o $(POPLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ msgchk.o $(POPLIB) \ + $(KRBLIB) $(HESLIB) $(LDLIBS) + +l-msgchk:; $(LINT) $(LFLAGS) msgchk.c $(POPLLIBS) $(LLIBS) + + +inst-msh: $(BINDIR)/msh + +$(BINDIR)/msh: xmsh + -$(REMOVE) $@@ zmsh + $(CP) xmsh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +msh: xmsh + +xmsh: msh.o mshcmds.o vmhsbr.o \ + picksbr.o scansbr.o dropsbr.o mhlsbr.o trmsbr.o \ + $(PSHLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ msh.o mshcmds.o vmhsbr.o \ + picksbr.o scansbr.o dropsbr.o mhlsbr.o trmsbr.o \ + $(PSHLIB) $(LDLIBS) $(LDCURSES) + +l-msh:; $(LINT) $(LFLAGS) msh.c mshcmds.c vmhsbr.c \ + picksbr.c scansbr.c dropsbr.c mhlsbr.c trmsbr.c \ + $(PSHLLIBS) $(LLIBS) + + +inst-packf: $(BINDIR)/packf + +$(BINDIR)/packf: xpackf + -$(REMOVE) $@@ zpackf + $(CP) xpackf $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +packf: xpackf + +xpackf: packf.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ packf.o dropsbr.o $(LDLIBS) + +l-packf:; $(LINT) $(LFLAGS) packf.c dropsbr.c $(LLIBS) + + +inst-pick: $(BINDIR)/pick + +$(BINDIR)/pick: xpick + -$(REMOVE) $@@ zpick + $(CP) xpick $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +pick: xpick + +xpick: pick.o picksbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ pick.o picksbr.o $(LDLIBS) + +l-pick:; $(LINT) $(LFLAGS) pick.c picksbr.c $(LLIBS) + + +inst-popi: $(BINDIR)/popi + +$(BINDIR)/popi: xpopi + -$(REMOVE) $@@ zpopi + cp xpopi $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +popi: xpopi + +xpopi: popi.o $(POPLIB) trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ popi.o $(POPLIB) trmsbr.o $(LDLIBS) \ + $(LDCURSES) + +l-popi:; $(LINT) $(LFLAGS) popi.c $(POPLLIBS) trmsbr.c $(LLIBS) + + +inst-post: $(ETCDIR)/post + +$(ETCDIR)/post: xpost + -$(REMOVE) $@@ zpost +@@BEGIN: MHMTS + -chmod u-s zpost +@@END: MHMTS + $(CP) xpost $@@ + -@@chmod $(PGMPROT) $@@ +@@BEGIN: MHMTS + -$(CHOWN) root $@@ + chmod u+s $@@ +@@END: MHMTS + -@@ls -l $@@ + -@@echo "" + +post: xpost + +xpost: post.o \ + aliasbr.o $(MTSBRS) $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ post.o \ + aliasbr.o $(MTSBRS) $(TMALIB) $(LDLIBS) + +l-post:; $(LINT) $(LFLAGS) post.c \ + aliasbr.c $(TMALLIBS) $(LLIBS) + + +inst-prompter: $(BINDIR)/prompter + +$(BINDIR)/prompter: xprompter + -$(REMOVE) $@@ zprompter + $(CP) xprompter $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +prompter: xprompter + +xprompter: prompter.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ prompter.o $(LDLIBS) + +l-prompter:; $(LINT) $(LFLAGS) prompter.c $(LLIBS) + + +inst-rcvdist: $(ETCDIR)/rcvdist + +$(ETCDIR)/rcvdist: xrcvdist + -$(REMOVE) $@@ zrcvdist + $(CP) xrcvdist $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +rcvdist: xrcvdist + +xrcvdist: rcvdist.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rcvdist.o distsbr.o $(LDLIBS) + +l-rcvdist:; $(LINT) $(LFLAGS) rcvdist.c distsbr.c $(LLIBS) + + +inst-rcvpack: $(ETCDIR)/rcvpack + +$(ETCDIR)/rcvpack: xrcvpack + -$(REMOVE) $@@ zrcvpack + $(CP) xrcvpack $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +rcvpack: xrcvpack + +xrcvpack: rcvpack.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rcvpack.o dropsbr.o $(LDLIBS) + +l-rcvpack:; $(LINT) $(LFLAGS) rcvpack.c dropsbr.c $(LLIBS) + + +inst-rcvstore: $(ETCDIR)/rcvstore + +$(ETCDIR)/rcvstore: xrcvstore + -$(REMOVE) $@@ zrcvstore + $(CP) xrcvstore $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +rcvstore: xrcvstore + +xrcvstore: rcvstore.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rcvstore.o $(LDLIBS) + +l-rcvstore:; $(LINT) $(LFLAGS) rcvstore.c $(LLIBS) + + +inst-rcvtty: $(ETCDIR)/rcvtty + +$(ETCDIR)/rcvtty: xrcvtty + -$(REMOVE) $@@ zrcvtty + $(CP) xrcvtty $@@ + -@@chmod $(PGMPROT) $@@ +@@BEGIN: BSD43 + -@@chgrp tty $@@ + -@@chmod g+s $@@ +@@END: BSD43 + -@@ls -l $@@ + -@@echo "" + +rcvtty: xrcvtty + +xrcvtty: rcvtty.o scansbr.o trmsbr.o \ +@@BEGIN: TTYD + ttyw.o \ +@@END: TTYD + $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rcvtty.o scansbr.o trmsbr.o \ +@@BEGIN: TTYD + ttyw.o \ +@@END: TTYD + $(LDLIBS) $(LDCURSES) + +l-rcvtty:; $(LINT) $(LFLAGS) rcvtty.c scansbr.c trmsbr.c \ +@@BEGIN: TTYD + ttyw.c \ +@@END: TTYD + $(LLIBS) + + +inst-refile: $(BINDIR)/refile + +$(BINDIR)/refile: xrefile + -$(REMOVE) $@@ zrefile + $(CP) xrefile $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +refile: xrefile + +xrefile: refile.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ refile.o $(LDLIBS) + +l-refile:; $(LINT) $(LFLAGS) refile.c $(LLIBS) + + +inst-repl: $(BINDIR)/repl + +$(BINDIR)/repl: xrepl + -$(REMOVE) $@@ zrepl + $(CP) xrepl $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +repl: xrepl + +xrepl: repl.o replsbr.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ repl.o replsbr.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-repl:; $(LINT) $(LFLAGS) repl.c replsbr.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-rmail: /bin/rmail + +/bin/rmail: xrmail + -$(REMOVE) $@@ zrmail + -chmod u-s zrmail + $(CP) xrmail $@@ + -@@chmod $(PGMPROT) $@@ + -$(CHOWN) root $@@ + chmod u+s $@@ + -@@ls -l $@@ + -@@echo "" + +rmail: xrmail + +xrmail: rmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rmail.o $(LDLIBS) + +l-rmail:; $(LINT) $(LFLAGS) rmail.c $(LLIBS) + + +inst-rmf: $(BINDIR)/rmf + +$(BINDIR)/rmf: xrmf + -$(REMOVE) $@@ zrmf + $(CP) xrmf $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +rmf: xrmf + +xrmf: rmf.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rmf.o $(LDLIBS) + +l-rmf:; $(LINT) $(LFLAGS) rmf.c $(LLIBS) + + +inst-rmm: $(BINDIR)/rmm + +$(BINDIR)/rmm: xrmm + -$(REMOVE) $@@ zrmm + $(CP) xrmm $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +rmm: xrmm + +xrmm: rmm.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rmm.o $(LDLIBS) + +l-rmm:; $(LINT) $(LFLAGS) rmm.c $(LLIBS) + + +inst-scan: $(BINDIR)/scan + +$(BINDIR)/scan: xscan + -$(REMOVE) $@@ zscan + $(CP) xscan $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +scan: xscan + +xscan: scan.o \ + scansbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ scan.o \ + scansbr.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-scan:; $(LINT) $(LFLAGS) scan.c \ + scansbr.c trmsbr.c $(LLIBS) + + +inst-send: $(BINDIR)/send + +$(BINDIR)/send: xsend + -$(REMOVE) $@@ zsend + $(CP) xsend $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +send: xsend + +xsend: send.o \ + sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ send.o \ + sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-send:; $(LINT) $(LFLAGS) send.c \ + sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-next: inst-show +inst-prev: inst-show +inst-show: $(BINDIR)/show + +$(BINDIR)/show: xshow + -$(REMOVE) $@@ zshow + $(CP) xshow $@@ + -@@chmod $(PGMPROT) $@@ + rm -f $(BINDIR)/next + -ln $@@ $(BINDIR)/next + rm -f $(BINDIR)/prev + -ln $@@ $(BINDIR)/prev + -@@ls -l $@@ + -@@echo "" + +next: show +prev: show +show: xshow + +xshow: show.o \ + mhlsbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ show.o \ + mhlsbr.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-show:; $(LINT) $(LFLAGS) show.c \ + mhlsbr.c trmsbr.c $(LLIBS) + + +inst-sbboards: $(SBBOARDS) + +$(SBBOARDS): xsbboards + -$(REMOVE) $@@ zsbboards +@@BEGIN: SENDMTS + -chmod u-s zsbboards +@@END: SENDMTS + $(CP) xsbboards $@@ + -chmod $(PGMPROT) $@@ +@@BEGIN: SENDMTS + -$(CHOWN) $(BBUID) $@@ + chmod u+s $@@ +@@END: SENDMTS + -@@ls -l $@@ + -@@echo "" + +sbboards: xsbboards + +xsbboards: sbboards.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ sbboards.o dropsbr.o $(LDLIBS) + +l-sbboards:; $(LINT) $(LFLAGS) sbboards.c dropsbr.c $(LLIBS) + + +inst-slocal: $(ETCDIR)/slocal + +$(ETCDIR)/slocal: xslocal + -$(REMOVE) $@@ zslocal + $(CP) xslocal $@@ + -chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +slocal: xslocal + +xslocal: slocal.o aliasbr.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ slocal.o aliasbr.o dropsbr.o $(LDLIBS) + +l-slocal:; $(LINT) $(LFLAGS) slocal.c aliasbr.c dropsbr.c $(LLIBS) + + +inst-sortm: $(BINDIR)/sortm + +$(BINDIR)/sortm: xsortm + -$(REMOVE) $@@ zsortm + $(CP) xsortm $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +sortm: xsortm + +xsortm: sortm.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ sortm.o $(LDLIBS) + +l-sortm:; $(LINT) $(LFLAGS) sortm.c $(LLIBS) + + +inst-spop: $(ETCDIR)/spop + +$(ETCDIR)/spop: xspop + -$(REMOVE) $@@ zspop + -chmod u-s zspop + $(CP) xspop $@@ + -chmod $(PGMPROT) $@@ + -$(CHOWN) $(POPUID) $@@ + chmod u+s $@@ + -@@ls -l $@@ + -@@echo "" + +spop: xspop + +xspop: spop.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ spop.o dropsbr.o $(LDLIBS) + +spop.o: spop.c + $(CC) $(CFLAGS) -DSPOP -c spop.c + +l-spop:; $(LINT) $(LFLAGS) -DSPOP spop.c dropsbr.c $(LLIBS) + + +@@BEGIN: SENDMTS +inst-spost: $(ETCDIR)/spost + +$(ETCDIR)/spost: xspost + -$(REMOVE) $@@ zspost + $(CP) xspost $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +spost: xspost + +xspost: spost.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ spost.o aliasbr.o $(LDLIBS) + +l-spost:; $(LINT) $(LFLAGS) spost.c aliasbr.c $(LLIBS) +@@END: SENDMTS + + +@@BEGIN: SMTP +inst-sendmail: $(ETCDIR)/sendmail + +$(ETCDIR)/sendmail: xsendmail + -$(REMOVE) $@@ zsendmail + cp xsendmail $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "Don't forget to: ln -s /usr/lib/sendmail $@@" + -@@echo "" + +sendmail: xsendmail + +xsendmail: sendmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ sendmail.o $(LDLIBS) + +l-sendmail:; $(LINT) $(LFLAGS) sendmail.c $(LLIBS) +@@END: SMTP + +inst-tma: $(BINDIR)/tma + +$(BINDIR)/tma: xtma + -$(REMOVE) $@@ ztma + $(CP) xtma $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +tma: xtma + +xtma: tma.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ tma.o $(TMALIB) $(LDLIBS) + +l-tma:; $(LINT) $(LFLAGS) tma.c $(TMALLIBS) $(LLIBS) + + +inst-umhook: $(BINDIR)/umhook + +$(BINDIR)/umhook: xumhook + -$(REMOVE) $@@ zumhook + $(CP) xumhook $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +umhook: xumhook + +xumhook: umhook.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ umhook.o $(LDLIBS) $(LDCURSES) + +l-umhook:; $(LINT) $(LFLAGS) umhook.c $(LLIBS) + + +inst-vmh: $(BINDIR)/vmh + +$(BINDIR)/vmh: xvmh + -$(REMOVE) $@@ zvmh + $(CP) xvmh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +vmh: xvmh + +xvmh: vmh.o vmhsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ vmh.o vmhsbr.o $(LDCURSES) $(LDLIBS) + +l-vmh:; $(LINT) $(LFLAGS) vmh.c vmhsbr.c $(LLIBS) + + +xvmhtest: vmhtest.o vmhsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ vmhtest.o vmhsbr.o $(LDLIBS) + + +inst-whatnow: $(BINDIR)/whatnow + +$(BINDIR)/whatnow: xwhatnow + -$(REMOVE) $@@ zwhatnow + $(CP) xwhatnow $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +whatnow: xwhatnow + +xwhatnow: whatnow.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ whatnow.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-whatnow:; $(LINT) $(LFLAGS) whatnow.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-whom: $(BINDIR)/whom + +$(BINDIR)/whom: xwhom + -$(REMOVE) $@@ zwhom + $(CP) xwhom $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +whom: xwhom + +xwhom: whom.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ whom.o distsbr.o $(LDLIBS) + +l-whom:; $(LINT) $(LFLAGS) whom.c distsbr.c $(LLIBS) + + +inst-wmh: $(BINDIR)/wmh + +$(BINDIR)/wmh: xwmh + -$(REMOVE) $@@ zwmh + $(CP) xwmh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +wmh: xwmh + +xwmh: wmh.o vmhsbr.o $(LIBES) + ${CC} $(LDFLAGS) -o $@@ wmh.o vmhsbr.o $(LDLIBS) \ + -ltools -lbm -lvt + +wmh.o: wmh.c + ${CC} $(CFLAGS) -c $*.c + +l-wmh:; $(LINT) $(LFLAGS) wmh.c vmhsbr.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEUIP + + +############################################################################## +# MODIFICATIONS -- Adding a new program (e.g., pickle) +############################################################################## + +# +# If it's a user-program, add pickle to CMDS, inst-pickle to ICMDS, +# and l-pickle to LCMDS +# If not, add pickle to MISC, inst-pickle to IMISC, and l-pickle to +# LMISC +# +# Under the "MH processes" section, add this incantation +# inst-pickle: $(BINDIR)/pickle +# +# $(BINDIR)/pickle: xpickle +# -$(REMOVE) $@@ zpickle +# cp xpickle $@@ +# -@@chmod $(PGMPROT) $@@ +# -@@ls -l $@@ +# -@@echo "" +# +# pickle: xpickle +# +# xpickle: pickle.o $(LIBES) +# $(LD) $(LDFLAGS) -o $@@ pickle.o $(LDLIBS) +# +# l-pickle:; $(LINT) $(LFLAGS) pickle.c $(LLIBS) +# +# +# If other libraries are loaded in, modify the rule for xpickle and +# l-pickle to reflect this. +# +# Under the "Dependencies" section, add a line for pickle.o +# pickle.o: ../h/mh.h +# +# If other includes are read, modify this rule to reflect this + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = [a-z]*.c + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# CONFIGURATION DEPENDENT DEPENDENCIES START HERE +@@BEGIN: MMDFMTS +post.o: ../mts/mmdf/util.h ../mts/mmdf/mmdf.h +@@END: MMDFMTS +@@BEGIN: SENDMTS +post.o: ../mts/sendmail/smail.h +sbboards.o: ../mts/sendmail/smail.h +spop.o: ../mts/sendmail/smail.h +@@END: SENDMTS +# CONFIGURATION DEPENDENT DEPENDENCIES END HERE + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +ali.o: ali.c +ali.o: ../h/mh.h +ali.o: ../h/addrsbr.h +ali.o: ../h/aliasbr.h +#ali.o: /usr/include/stdio.h +aliasbr.o: aliasbr.c +aliasbr.o: ../h/mh.h +aliasbr.o: ../h/aliasbr.h +#aliasbr.o: /usr/include/ctype.h +#aliasbr.o: /usr/include/grp.h +#aliasbr.o: /usr/include/pwd.h +#aliasbr.o: /usr/include/stdio.h +anno.o: anno.c +anno.o: ../h/mh.h +#anno.o: /usr/include/ctype.h +#anno.o: /usr/include/stdio.h +annosbr.o: annosbr.c +annosbr.o: ../h/mh.h +annosbr.o: ../zotnet/tws.h +#annosbr.o: /usr/include/errno.h +#annosbr.o: /usr/include/stdio.h +#annosbr.o: /usr/include/sys/types.h +#annosbr.o: /usr/include/sys/stat.h +ap.o: ap.c +ap.o: ../h/mh.h +ap.o: ../h/addrsbr.h +ap.o: ../h/formatsbr.h +#ap.o: /usr/include/stdio.h +bbc.o: bbc.c +bbc.o: ../h/mh.h +bbc.o: ../zotnet/bboards.h +#bbc.o: /usr/include/stdio.h +@@BEGIN: BPOP +bbc.o: ../zotnet/mts.h +@@END: BPOP +#bbc.o: /usr/include/errno.h +#bbc.o: /usr/include/signal.h +#bbc.o: /usr/include/sys/types.h +#bbc.o: /usr/include/sys/stat.h +#bbc.o: /usr/include/sys/wait.h +#bbc.o: /usr/include/sys/time.h +#bbc.o: /usr/include/sys/resource.h +bbl.o: bbl.c +bbl.o: ../h/mh.h +bbl.o: ../h/local.h +bbl.o: ../zotnet/bboards.h +#bbl.o: /usr/include/ctype.h +#bbl.o: /usr/include/pwd.h +#bbl.o: /usr/include/stdio.h +#bbl.o: /usr/include/sys/types.h +#bbl.o: /usr/include/ndir.h +#bbl.o: /usr/include/dir.h +#bbl.o: /usr/include/sys/dir.h +#bbl.o: /usr/include/sys/stat.h +burst.o: burst.c +burst.o: ../h/mh.h +#burst.o: /usr/include/stdio.h +#burst.o: /usr/include/sys/types.h +#burst.o: /usr/include/sys/stat.h +cipher.o: cipher.c +cipher.o: ../h/mh.h +#cipher.o: /usr/include/sgtty.h +#cipher.o: /usr/include/signal.h +#cipher.o: /usr/include/stdio.h +cipher.o: ../tma/h/tma.h +comp.o: comp.c +comp.o: ../h/mh.h +#comp.o: /usr/include/stdio.h +#comp.o: /usr/include/sys/types.h +#comp.o: /usr/include/sys/stat.h +conflict.o: conflict.c +conflict.o: ../h/mh.h +conflict.o: ../h/aliasbr.h +conflict.o: ../h/local.h +#conflict.o: /usr/include/stdio.h +conflict.o: ../zotnet/mts.h +#conflict.o: /usr/include/grp.h +#conflict.o: /usr/include/pwd.h +#conflict.o: /usr/include/sys/types.h +#conflict.o: /usr/include/ndir.h +#conflict.o: /usr/include/dir.h +#conflict.o: /usr/include/sys/param.h +#conflict.o: /usr/include/sys/dir.h +#conflict.o: /usr/include/ctype.h +decipher.o: decipher.c +decipher.o: ../h/mh.h +#decipher.o: /usr/include/stdio.h +decipher.o: ../tma/h/tma.h +dist.o: dist.c +dist.o: ../h/mh.h +#dist.o: /usr/include/stdio.h +#dist.o: /usr/include/sys/types.h +#dist.o: /usr/include/sys/stat.h +distsbr.o: distsbr.c +distsbr.o: ../h/mh.h +#distsbr.o: /usr/include/ctype.h +#distsbr.o: /usr/include/stdio.h +dp.o: dp.c +dp.o: ../h/mh.h +dp.o: ../h/formatsbr.h +dp.o: ../zotnet/tws.h +#dp.o: /usr/include/stdio.h +dropsbr.o: dropsbr.c +#dropsbr.o: /usr/include/stdio.h +dropsbr.o: ../h/mh.h +dropsbr.o: ../h/dropsbr.h +dropsbr.o: ../zotnet/mts.h +#dropsbr.o: /usr/include/errno.h +#dropsbr.o: /usr/include/sys/types.h +#dropsbr.o: /usr/include/sys/stat.h +folder.o: folder.c +folder.o: ../h/mh.h +folder.o: ../h/local.h +#folder.o: /usr/include/errno.h +#folder.o: /usr/include/stdio.h +#folder.o: /usr/include/sys/types.h +#folder.o: /usr/include/ndir.h +#folder.o: /usr/include/dir.h +#folder.o: /usr/include/sys/dir.h +#folder.o: /usr/include/sys/stat.h +forw.o: forw.c +forw.o: ../h/mh.h +forw.o: ../h/formatsbr.h +forw.o: ../zotnet/tws.h +#forw.o: /usr/include/stdio.h +#forw.o: /usr/include/sys/types.h +#forw.o: /usr/include/sys/stat.h +fmtdump.o: fmtdump.c +fmtdump.o: ../h/mh.h +fmtdump.o: ../h/formatsbr.h +fmtdump.o: ../h/fmtcompile.h +#fmtdump.o: /usr/include/stdio.h +ftpsbr.o: ftpsbr.c +ftpsbr.o: ../h/mh.h +ftpsbr.o: ../h/mhn.h +#ftpsbr.o: /usr/include/ctype.h +#ftpsbr.o: /usr/include/stdio.h +#ftpsbr.o: /usr/include/arpa/ftp.h +#ftpsbr.o: /usr/include/varargs.h +#ftpsbr.o: /usr/include/sys/types.h +#ftpsbr.o: /usr/include/sys/socket.h +#ftpsbr.o: /usr/include/netinet/in.h +#ftpsbr.o: /usr/include/netdb.h +inc.o: inc.c +inc.o: ../h/mh.h +inc.o: ../h/dropsbr.h +inc.o: ../h/formatsbr.h +inc.o: ../h/scansbr.h +inc.o: ../zotnet/tws.h +#inc.o: /usr/include/stdio.h +inc.o: ../zotnet/mts.h +#inc.o: /usr/include/errno.h +#inc.o: /usr/include/signal.h +#inc.o: /usr/include/sys/types.h +#inc.o: /usr/include/sys/stat.h +install-mh.o: install-mh.c +install-mh.o: ../h/mh.h +#install-mh.o: /usr/include/pwd.h +#install-mh.o: /usr/include/stdio.h +#install-mh.o: /usr/include/sys/types.h +#install-mh.o: /usr/include/sys/stat.h +kdsc.o: kdsc.c +kdsc.o: ../h/mh.h +kdsc.o: ../zotnet/tws.h +kdsc.o: ../tma/h/kds.h +mark.o: mark.c +mark.o: ../h/mh.h +#mark.o: /usr/include/stdio.h +mhl.o: mhl.c +mhlsbr.o: mhlsbr.c +mhlsbr.o: ../h/mh.h +mhlsbr.o: ../h/addrsbr.h +mhlsbr.o: ../h/formatsbr.h +mhlsbr.o: ../zotnet/tws.h +#mhlsbr.o: /usr/include/ctype.h +#mhlsbr.o: /usr/include/setjmp.h +#mhlsbr.o: /usr/include/signal.h +#mhlsbr.o: /usr/include/stdio.h +#mhlsbr.o: /usr/include/sys/types.h +#mhlsbr.o: /usr/include/sys/stat.h +mhmail.o: mhmail.c +mhmail.o: ../h/mh.h +#mhmail.o: /usr/include/stdio.h +#mhmail.o: /usr/include/signal.h +mhn.o: mhn.c +mhn.o: ../h/mh.h +mhn.o: ../h/mhn.h +#mhn.o: /usr/include/ctype.h +#mhn.o: /usr/include/errno.h +#mhn.o: /usr/include/signal.h +#mhn.o: /usr/include/stdio.h +#mhn.o: /usr/include/sys/types.h +#mhn.o: /usr/include/sys/stat.h +#mhn.o: /usr/include/sys/wait.h +mhparam.o: mhparam.c +mhparam.o: ../h/mh.h +mhparam.o: ../h/strings.h +#mhparam.o: /usr/include/stdio.h +mhpath.o: mhpath.c +mhpath.o: ../h/mh.h +#mhpath.o: /usr/include/stdio.h +msgchk.o: msgchk.c +msgchk.o: ../h/mh.h +#msgchk.o: /usr/include/stdio.h +msgchk.o: ../zotnet/mts.h +msgchk.o: ../zotnet/tws.h +#msgchk.o: /usr/include/sys/types.h +#msgchk.o: /usr/include/sys/stat.h +#msgchk.o: /usr/include/pwd.h +msh.o: msh.c +msh.o: ../h/mh.h +msh.o: ../h/dropsbr.h +msh.o: ../h/formatsbr.h +msh.o: ../h/scansbr.h +msh.o: ../zotnet/tws.h +#msh.o: /usr/include/stdio.h +msh.o: ../zotnet/mts.h +#msh.o: /usr/include/ctype.h +#msh.o: /usr/include/sys/types.h +#msh.o: /usr/include/sys/stat.h +#msh.o: /usr/include/sgtty.h +#msh.o: /usr/include/termio.h +#msh.o: /usr/include/sys/ioctl.h +#msh.o: /usr/include/pwd.h +#msh.o: /usr/include/setjmp.h +#msh.o: /usr/include/signal.h +msh.o: ../h/mshsbr.h +msh.o: ../h/vmhsbr.h +mshcmds.o: mshcmds.c +mshcmds.o: ../h/mh.h +mshcmds.o: ../h/dropsbr.h +mshcmds.o: ../h/formatsbr.h +mshcmds.o: ../h/scansbr.h +mshcmds.o: ../zotnet/tws.h +#mshcmds.o: /usr/include/stdio.h +mshcmds.o: ../zotnet/mts.h +#mshcmds.o: /usr/include/ctype.h +#mshcmds.o: /usr/include/setjmp.h +#mshcmds.o: /usr/include/signal.h +mshcmds.o: ../h/mshsbr.h +@@BEGIN: MIME +mshcmds.o: ../h/mhn.h +@@END: MIME +packf.o: packf.c +packf.o: ../h/mh.h +packf.o: ../h/dropsbr.h +#packf.o: /usr/include/stdio.h +pick.o: pick.c +pick.o: ../h/mh.h +pick.o: ../zotnet/tws.h +#pick.o: /usr/include/stdio.h +picksbr.o: picksbr.c +picksbr.o: ../h/mh.h +picksbr.o: ../zotnet/tws.h +#picksbr.o: /usr/include/stdio.h +popsbr.o: popsbr.c +popsbr.o: ../h/strings.h +#popsbr.o: /usr/include/stdio.h +#popsbr.o: /usr/include/signal.h +pshsbr.o: popsbr.c +pshsbr.o: ../h/strings.h +pshsbr.o: ../h/nntp.h +#pshsbr.o: /usr/include/stdio.h +#pshsbr.o: /usr/include/signal.h +popi.o: popi.c +popi.o: ../h/mh.h +popi.o: ../h/strings.h +popi.o: ../h/formatsbr.h +popi.o: ../h/scansbr.h +popi.o: ../zotnet/mts.h +#popi.o: /usr/include/errno.h +#popi.o: /usr/include/sys/errno.h +#popi.o: /usr/include/stdio.h +#popi.o: /usr/include/sys/types.h +#popi.o: /usr/include/sys/stdtypes.h +#popi.o: /usr/include/sys/sysmacros.h +#popi.o: /usr/include/sys/stat.h +#popi.o: /usr/include/sys/types.h +post.o: post.c +post.o: ../h/mh.h +post.o: ../h/addrsbr.h +post.o: ../h/aliasbr.h +post.o: ../h/dropsbr.h +post.o: ../zotnet/tws.h +#post.o: /usr/include/ctype.h +#post.o: /usr/include/errno.h +#post.o: /usr/include/setjmp.h +#post.o: /usr/include/stdio.h +#post.o: /usr/include/sys/types.h +post.o: ../zotnet/mts.h +#post.o: /usr/include/sys/ioctl.h +#post.o: /usr/include/sys/stat.h +#post.o: /usr/include/signal.h +prompter.o: prompter.c +prompter.o: ../h/mh.h +#prompter.o: /usr/include/stdio.h +#prompter.o: /usr/include/errno.h +#prompter.o: /usr/include/sgtty.h +#prompter.o: /usr/include/sys/types.h +#prompter.o: /usr/include/termio.h +#prompter.o: /usr/include/sys/ioctl.h +#prompter.o: /usr/include/setjmp.h +#prompter.o: /usr/include/signal.h +rcvdist.o: rcvdist.c +rcvdist.o: ../h/mh.h +rcvdist.o: ../h/formatsbr.h +rcvdist.o: ../h/rcvmail.h +rcvdist.o: ../zotnet/tws.h +rcvpack.o: rcvpack.c +rcvpack.o: ../h/mh.h +rcvpack.o: ../h/dropsbr.h +rcvpack.o: ../h/rcvmail.h +rcvpack.o: ../zotnet/tws.h +rcvpack.o: ../zotnet/mts.h +rcvstore.o: rcvstore.c +rcvstore.o: ../h/mh.h +#rcvstore.o: /usr/include/errno.h +#rcvstore.o: /usr/include/signal.h +#rcvstore.o: /usr/include/stdio.h +#rcvstore.o: /usr/include/sys/types.h +#rcvstore.o: /usr/include/sys/stat.h +rcvtty.o: rcvtty.c +rcvtty.o: ../h/mh.h +rcvtty.o: ../h/rcvmail.h +rcvtty.o: ../h/scansbr.h +rcvtty.o: ../zotnet/tws.h +#rcvtty.o: /usr/include/signal.h +#rcvtty.o: /usr/include/sys/stat.h +#rcvtty.o: /usr/include/utmp.h +refile.o: refile.c +refile.o: ../h/mh.h +#refile.o: /usr/include/errno.h +#refile.o: /usr/include/stdio.h +#refile.o: /usr/include/sys/types.h +#refile.o: /usr/include/sys/stat.h +repl.o: repl.c +repl.o: ../h/mh.h +#repl.o: /usr/include/stdio.h +#repl.o: /usr/include/sys/types.h +#repl.o: /usr/include/sys/stat.h +replsbr.o: replsbr.c +replsbr.o: ../h/mh.h +replsbr.o: ../h/addrsbr.h +replsbr.o: ../h/formatsbr.h +#replsbr.o: /usr/include/ctype.h +#replsbr.o: /usr/include/stdio.h +rmail.o: rmail.c +rmail.o: ../h/mh.h +rmail.o: ../h/addrsbr.h +rmail.o: ../zotnet/mf.h +rmail.o: ../zotnet/tws.h +#rmail.o: /usr/include/stdio.h +rmail.o: ../zotnet/mts.h +#rmail.o: /usr/include/signal.h +rmf.o: rmf.c +rmf.o: ../h/mh.h +rmf.o: ../h/local.h +#rmf.o: /usr/include/stdio.h +#rmf.o: /usr/include/sys/types.h +#rmf.o: /usr/include/ndir.h +#rmf.o: /usr/include/dir.h +#rmf.o: /usr/include/sys/dir.h +rmm.o: rmm.c +rmm.o: ../h/mh.h +#rmm.o: /usr/include/stdio.h +sbboards.o: sbboards.c +sbboards.o: ../h/mh.h +sbboards.o: ../h/addrsbr.h +sbboards.o: ../h/dropsbr.h +sbboards.o: ../zotnet/bboards.h +sbboards.o: ../zotnet/tws.h +#sbboards.o: /usr/include/stdio.h +sbboards.o: ../zotnet/mts.h +#sbboards.o: /usr/include/pwd.h +#sbboards.o: /usr/include/sysexits.h +sbboards.o: ../mts/sendmail/smail.h +scan.o: scan.c +scan.o: ../h/mh.h +scan.o: ../h/formatsbr.h +scan.o: ../h/scansbr.h +scan.o: ../zotnet/tws.h +#scan.o: /usr/include/errno.h +#scan.o: /usr/include/stdio.h +scansbr.o: scansbr.c +scansbr.o: ../h/mh.h +scansbr.o: ../h/addrsbr.h +scansbr.o: ../h/formatsbr.h +scansbr.o: ../h/scansbr.h +scansbr.o: ../zotnet/tws.h +#scansbr.o: /usr/include/stdio.h +#scansbr.o: /usr/include/ctype.h +#scansbr.o: /usr/include/sys/types.h +#scansbr.o: /usr/include/sys/stat.h +send.o: send.c +send.o: ../h/mh.h +#send.o: /usr/include/stdio.h +#send.o: /usr/include/signal.h +#send.o: /usr/include/sys/types.h +#send.o: /usr/include/sys/stat.h +@@BEGIN: SMTP +sendmail.o: sendmail.c +sendmail.o: ../h/mh.h +sendmail.o: ../h/strings.h +sendmail.o: ../h/addrsbr.h +sendmail.o: ../h/aliasbr.h +sendmail.o: ../h/dropsbr.h +sendmail.o: ../zotnet/tws.h +sendmail.o: ../zotnet/mts.h +#sendmail.o: /usr/include/ctype.h +#sendmail.o: /usr/include/errno.h +#sendmail.o: /usr/include/sys/errno.h +#sendmail.o: /usr/include/setjmp.h +#sendmail.o: /usr/include/machine/setjmp.h +#sendmail.o: /usr/include/stdio.h +#sendmail.o: /usr/include/sys/types.h +#sendmail.o: /usr/include/sys/stdtypes.h +#sendmail.o: /usr/include/sys/sysmacros.h +#sendmail.o: /usr/include/signal.h +#sendmail.o: /usr/include/sys/signal.h +#sendmail.o: /usr/include/vm/faultcode.h +#sendmail.o: /usr/include/sys/stdtypes.h +@@END: SMTP +sendsbr.o: sendsbr.c +sendsbr.o: ../h/mh.h +#sendsbr.o: /usr/include/setjmp.h +#sendsbr.o: /usr/include/stdio.h +#sendsbr.o: /usr/include/signal.h +#sendsbr.o: /usr/include/sys/types.h +#sendsbr.o: /usr/include/sys/stat.h +@@BEGIN: MIME +sendsbr.o: ../h/mhn.h +@@END: MIME +show.o: show.c +show.o: ../h/mh.h +#show.o: /usr/include/stdio.h +@@BEGIN: MIME +show.o: ../h/mhn.h +@@END: MIME +slocal.o: slocal.c +slocal.o: ../h/mh.h +slocal.o: ../h/dropsbr.h +slocal.o: ../h/rcvmail.h +slocal.o: ../zotnet/tws.h +slocal.o: ../zotnet/mts.h +#slocal.o: /usr/include/pwd.h +#slocal.o: /usr/include/signal.h +#slocal.o: /usr/include/sys/ioctl.h +#slocal.o: /usr/include/sys/stat.h +#slocal.o: /usr/include/utmp.h +sortm.o: sortm.c +sortm.o: ../h/mh.h +sortm.o: ../zotnet/tws.h +#sortm.o: /usr/include/stdio.h +spop.o: spop.c +spop.o: ../h/mh.h +spop.o: ../h/addrsbr.h +spop.o: ../h/dropsbr.h +spop.o: ../zotnet/bboards.h +spop.o: ../zotnet/tws.h +#spop.o: /usr/include/stdio.h +spop.o: ../zotnet/mts.h +#spop.o: /usr/include/pwd.h +#spop.o: /usr/include/sysexits.h +spop.o: ../mts/sendmail/smail.h +spost.o: spost.c +#spost.o: /usr/include/ctype.h +#spost.o: /usr/include/stdio.h +#spost.o: /usr/include/signal.h +spost.o: ../h/mh.h +spost.o: ../h/addrsbr.h +spost.o: ../h/aliasbr.h +spost.o: ../h/dropsbr.h +spost.o: ../zotnet/tws.h +tma.o: tma.c +tma.o: ../h/mh.h +tma.o: ../h/addrsbr.h +tma.o: ../zotnet/tws.h +tma.o: ../tma/h/tma.h +tma.o: ../zotnet/mts.h +tmasbr.o: tmasbr.c +tmasbr.o: ../h/mh.h +tmasbr.o: ../h/scansbr.h +tmasbr.o: ../tma/h/tma.h +#tmasbr.o: /usr/include/sys/stat.h +trmsbr.o: trmsbr.c +trmsbr.o: ../h/mh.h +#trmsbr.o: /usr/include/stdio.h +#trmsbr.o: /usr/include/sgtty.h +#trmsbr.o: /usr/include/sys/types.h +#trmsbr.o: /usr/include/termio.h +#trmsbr.o: /usr/include/sys/ioctl.h +@@BEGIN: TTYD +ttym.o: ttym.c +#ttym.o: /usr/include/pwd.h +#ttym.o: /usr/include/signal.h +#ttym.o: /usr/include/sys/time.h +ttyw.o: ttyw.c +#ttyw.o: /usr/include/errno.h +#ttyw.o: /usr/include/stdio.h +#ttyw.o: /usr/include/strings.h +#ttyw.o: /usr/include/sys/types.h +#ttyw.o: /usr/include/sys/socket.h +#ttyw.o: /usr/include/netinet/in.h +#ttyw.o: /usr/include/netdb.h +#ttyw.o: /usr/include/arpa/inet.h +ttyw.o: ttyd.h +ttyw.o: ttym.c +@@END: TTYD +umhook.o: umhook.c +umhook.o: ../h/mh.h +umhook.o: ../zotnet/mf.h +#umhook.o: /usr/include/stdio.h +umhook.o: ../zotnet/mts.h +#umhook.o: /usr/include/pwd.h +#umhook.o: /usr/include/signal.h +#umhook.o: /usr/include/sys/ioctl.h +#umhook.o: /usr/include/sys/types.h +#umhook.o: /usr/include/sys/stat.h +vmh.o: vmh.c +#vmh.o: /usr/include/curses.h +vmh.o: ../h/mh.h +vmh.o: ../h/vmhsbr.h +#vmh.o: /usr/include/ctype.h +#vmh.o: /usr/include/errno.h +#vmh.o: /usr/include/setjmp.h +#vmh.o: /usr/include/signal.h +#vmh.o: /usr/include/sys/types.h +#vmh.o: /usr/include/sys/uio.h +vmhsbr.o: vmhsbr.c +vmhsbr.o: ../h/mh.h +vmhsbr.o: ../h/vmhsbr.h +#vmhsbr.o: /usr/include/stdio.h +vmhtest.o: vmhtest.c +vmhtest.o: ../h/mh.h +vmhtest.o: ../h/vmhsbr.h +#vmhtest.o: /usr/include/ctype.h +#vmhtest.o: /usr/include/stdio.h +whatnow.o: whatnow.c +whatnowproc.o: whatnowproc.c +whatnowproc.o: ../h/mh.h +whatnowproc.o: ../h/strings.h +#whatnowproc.o: /usr/include/stdio.h +whatnowsbr.o: whatnowsbr.c +whatnowsbr.o: ../h/mh.h +#whatnowsbr.o: /usr/include/stdio.h +#whatnowsbr.o: /usr/include/signal.h +#whatnowsbr.o: /usr/include/sys/types.h +#whatnowsbr.o: /usr/include/sys/stat.h +whom.o: whom.c +whom.o: ../h/mh.h +#whom.o: /usr/include/stdio.h +#whom.o: /usr/include/signal.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +2.38 +log +@don't include ttyw.o without TTYD +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.37 1992/11/12 23:24:21 jromine Exp jromine $ +d87 1 +a95 1 +@@END: POP +@ + + +2.37 +log +@fixup for NCR +change order of -lcurses +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.36 1992/11/12 19:11:04 jromine Exp jromine $ +d928 10 +a937 4 +xrcvtty: rcvtty.o \ + scansbr.o trmsbr.o ttyw.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ rcvtty.o \ + scansbr.o trmsbr.o ttyw.o $(LDLIBS) $(LDCURSES) +d939 5 +a943 2 +l-rcvtty:; $(LINT) $(LFLAGS) rcvtty.c \ + scansbr.c trmsbr.c ttyw.c $(LLIBS) +d1917 1 +d1933 1 +@ + + +2.36 +log +@typo +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.35 1992/11/11 20:25:32 jromine Exp jromine $ +d1261 1 +a1261 1 + $(LD) $(LDFLAGS) -o $@@ vmh.o vmhsbr.o $(LDLIBS) $(LDCURSES) +@ + + +2.35 +log +@remove pshsbr.c from make clean +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.34 1992/11/11 17:34:34 jromine Exp jromine $ +d336 1 +a336 1 + rm -f $@@.c +@ + + +2.34 +log +@typo +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.33 1992/11/05 19:16:02 jromine Exp jromine $ +d1338 1 +a1338 1 + -rm -f x* *.o pshsbr.c +@ + + +2.33 +log +@use LN for linking files +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.32 1992/11/05 01:39:01 jromine Exp jromine $ +d340 1 +a340 1 + ${CC} $(CFLAGS) -DPSHSBR -c pshsbr.c +@ + + +2.32 +log +@install sendmail replacement only if /smtp +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.31 1992/11/05 00:02:44 jromine Exp jromine $ +d116 1 +a283 3 +@@BEGIN: UCI + -@@ln -s anno $(BINDIR)/fanno +@@END: UCI +d336 2 +a337 2 + rm -f pshsbr.c + ln popsbr.c pshsbr.c +@ + + +2.31 +log +@fixup install of fanno +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.30 1992/11/04 03:30:31 jromine Exp jromine $ +d160 4 +a163 1 + rcvtty fmtdump mhparam sendmail \ +d181 5 +a185 1 + inst-fmtdump inst-mhparam inst-sendmail $(IMTSMISC) \ +d201 4 +a204 1 + l-rcvpack l-rcvstore l-rcvtty l-fmtdump l-mhparam l-sendmail \ +d220 4 +a223 1 + xrcvstore xrcvtty xfmtdump xmhparam xsendmail \ +d1198 1 +d1215 1 +a1216 1 + +d1818 1 +d1840 1 +@ + + +2.30 +log +@make sure sun4 shared libs load correct version of library. +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.29 1992/11/02 22:55:38 jromine Exp jromine $ +d271 1 +a271 1 + -@@ln -s $@@ $(BINDIR)/fanno +@ + + +2.29 +log +@make pshsbr.c from popsbr.c +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.28 1992/10/28 17:36:07 jromine Exp jromine $ +d136 3 +d142 1 +a142 1 +LDLIBES = ../config/config.o -Bdynamic @@(SLDFLAG) -lmh \ +@ + + +2.28 +log +@move mhparam to bindir +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.27 1992/10/20 22:51:34 jromine Exp jromine $ +d321 3 +a323 2 +pshsbr.o: popsbr.c + ${CC} $(CFLAGS) -DPSHSBR -c popsbr.c -o $@@ +d325 2 +d328 1 +d1323 1 +a1323 1 + -rm -f x* *.o +@ + + +2.27 +log +@add LDCURSES, trmsbr on mhn +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.26 1992/10/20 17:39:10 jromine Exp jromine $ +d666 1 +a666 1 +inst-mhparam: $(ETCDIR)/mhparam +d668 1 +a668 1 +$(ETCDIR)/mhparam: xmhparam +@ + + +2.26 +log +@typo - APOP->MPOP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.25 1992/10/20 17:38:40 jromine Exp jromine $ +d482 1 +a482 1 + $(LD) $(LDFLAGS) -o $@@ fmtdump.o $(LDLIBS) $(LDCURSES) +d660 2 +a661 1 + $(LD) $(LDFLAGS) -o $@@ mhn.o ftpsbr.o trmsbr.o $(LDLIBS) +@ + + +2.25 +log +@fixup for MIME, APOP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.24 1992/10/20 17:16:09 jromine Exp jromine $ +d72 1 +a72 1 +@@BEGIN: APOP +d77 1 +a77 1 +@@END: APOP +@ + + +2.24 +log +@fixup PSHSBR +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.23 1992/05/20 22:32:55 jromine Exp jromine $ +d72 1 +d77 1 +a83 1 +@@END: POP +d85 1 +a85 1 +KRBLIB = -lkrb -ldes -lhesiod +a86 1 + +d95 4 +d150 5 +a154 2 + mhn mhpath msgchk msh next packf pick prev prompter refile \ + repl rmf rmm scan send show sortm vmh whatnow whom $(BBCMDS) \ +d165 8 +a172 5 + inst-mhn inst-mhpath inst-msgchk inst-msh inst-next \ + inst-packf inst-pick inst-prev inst-prompter inst-refile \ + inst-repl inst-rmf inst-rmm inst-scan inst-send inst-show \ + inst-sortm inst-vmh inst-whatnow inst-whom $(IBBCMDS) \ + $(ITMACMDS) $(IPOPCMDS) +d182 5 +a186 1 + l-mark l-mhmail l-mhn l-mhpath l-msgchk l-msh l-packf l-pick \ +d199 6 +a204 3 + xmhmail xmhn xmhpath xmsgchk xmsh xpackf xpick xprompter \ + xrefile xrepl xrmf xrmm xscan xsend xshow xsortm xvmh \ + xwhatnow xwhom \ +d553 1 +a553 1 + trmsbr.o $(POPLIB) $(TMALIB) $(KRBLIB) \ +d659 2 +a660 2 +xmhn: mhn.o ftpsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mhn.o ftpsbr.o $(LDLIBS) +d662 1 +a662 1 +l-mhn:; $(LINT) $(LFLAGS) mhn.c ftpsbr.c $(LLIBS) +d718 2 +a719 1 + $(LD) $(LDFLAGS) -o $@@ msgchk.o $(POPLIB) $(KRBLIB) $(LDLIBS) +d1429 1 +d1431 1 +d1529 11 +d1591 4 +a1594 12 +mhn.o: ../h/mhn.h +ftpsbr.o: ftpsbr.c +ftpsbr.o: ../h/mh.h +ftpsbr.o: ../h/mhn.h +#ftpsbr.o: /usr/include/ctype.h +#ftpsbr.o: /usr/include/stdio.h +#ftpsbr.o: /usr/include/arpa/ftp.h +#ftpsbr.o: /usr/include/varargs.h +#ftpsbr.o: /usr/include/sys/types.h +#ftpsbr.o: /usr/include/sys/socket.h +#ftpsbr.o: /usr/include/netinet/in.h +#ftpsbr.o: /usr/include/netdb.h +d1637 1 +d1639 1 +d1661 14 +d1796 21 +d1824 1 +d1826 1 +d1830 1 +d1832 1 +d1933 1 +@ + + +2.23 +log +@move popsbr.c back into uip/ +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.22 1992/02/11 16:37:52 jromine Exp jromine $ +d93 1 +a93 1 +PSHLLIBS= pshsbr.c +d304 2 +d307 1 +d1627 9 +@ + + +2.22 +log +@move kclient.c into zotnet/mts/client.c +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.21 1992/02/11 16:25:28 jromine Exp jromine $ +d70 2 +a71 2 +POPLIB = ../support/pop/popsbr.o +POPLLIBS= ../support/pop/popsbr.c +d88 2 +a89 2 +PSHLIB = ../support/pop/popsbr.o +PSHLLIBS= ../support/pop/popsbr.c +a773 3 + +../support/pop/popsbr.o: ../support/pop/popsbr.c + cd ../support/pop; make popsbr.o +@ + + +2.21 +log +@ftp->ftpsbr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.20 1992/02/06 17:10:57 jromine Exp jromine $ +a83 1 +KPOPLIB = kclient.o +d531 1 +a531 1 + $(POPLIB) $(KPOPLIB) $(TMALIB) $(LIBES) +d533 1 +a533 1 + trmsbr.o $(POPLIB) $(TMALIB) $(KPOPLIB) $(KRBLIB) \ +d697 2 +a698 3 +xmsgchk: msgchk.o $(POPLIB) $(KPOPLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ msgchk.o $(POPLIB) \ + $(KPOPLIB) $(KRBLIB) $(LDLIBS) +@ + + +2.20 +log +@add mhparam +fix typos +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.19 1992/02/04 21:14:35 jromine Exp jromine $ +d640 2 +a641 2 +xmhn: mhn.o ftp.o $(LIBES) + $(LD) $(LDFLAGS) -o $@@ mhn.o ftp.o $(LDLIBS) +d643 1 +a643 1 +l-mhn:; $(LINT) $(LFLAGS) mhn.c ftp.c $(LLIBS) +d1563 11 +a1573 11 +ftp.o: ftp.c +ftp.o: ../h/mh.h +ftp.o: ../h/mhn.h +#ftp.o: /usr/include/ctype.h +#ftp.o: /usr/include/stdio.h +#ftp.o: /usr/include/arpa/ftp.h +#ftp.o: /usr/include/varargs.h +#ftp.o: /usr/include/sys/types.h +#ftp.o: /usr/include/sys/socket.h +#ftp.o: /usr/include/netinet/in.h +#ftp.o: /usr/include/netdb.h +@ + + +2.19 +log +@contributed patch +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.18 1992/02/04 17:43:29 jromine Exp jromine $ +d151 1 +a151 1 + rcvtty fmtdump sendmail \ +d166 1 +a166 1 + inst-fmtdump inst-sendmail $(IMTSMISC) \ +d178 1 +a178 1 + l-rcvpack l-rcvstore l-rcvtty l-fmtdump l-sendmail \ +d191 1 +a191 1 + xrcvstore xrcvtty xfmtdump xsendmail \ +d641 1 +a641 1 + $(CC) $(LDFLAGS) -o $@@ mhn.o ftp.o $(LDLIBS) +d646 17 +d774 1 +a774 1 + $(CC) $(LDFLAGS) -o $@@ popi.o $(POPLIB) trmsbr.o $(LDLIBS) \ +@ + + +2.18 +log +@move sbr/m_whatnow.c to uip/whatnowproc.c +for shared libs +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.17 1992/01/31 22:48:03 jromine Exp jromine $ +d70 6 +a75 2 +POPLIB = popsbr.o +POPLLIBS= popsbr.c +d89 2 +a90 2 +PSHLIB = popsbr.o +PSHLLIBS= popsbr.c +d149 1 +a149 1 + $(TMACMDS) +d163 1 +a163 1 + $(ITMACMDS) +d175 2 +a176 1 + l-show l-sortm l-vmh l-whatnow l-whom $(LBBCMDS) $(LTMACMDS) +d189 1 +a189 1 + $(TBBCMDS) $(TTMACMDS) +d745 21 +a1611 4 +popsbr.o: popsbr.c +popsbr.o: ../h/strings.h +#popsbr.o: /usr/include/stdio.h +#popsbr.o: /usr/include/signal.h +@ + + +2.17 +log +@add CP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.16 1992/01/31 21:37:07 jromine Exp jromine $ +d366 1 +a366 1 +xcomp: comp.o \ +d368 1 +a368 1 + $(LD) $(LDFLAGS) -o $@@ comp.o \ +d371 1 +a371 1 +l-comp:; $(LINT) $(LFLAGS) comp.c \ +d420 1 +a420 1 +xdist: dist.o \ +d422 1 +a422 1 + $(LD) $(LDFLAGS) -o $@@ dist.o \ +d425 1 +a425 1 +l-dist:; $(LINT) $(LFLAGS) dist.c \ +d495 1 +a495 1 +xforw: forw.o \ +d497 1 +a497 1 + $(LD) $(LDFLAGS) -o $@@ forw.o \ +d500 1 +a500 1 +l-forw:; $(LINT) $(LFLAGS) forw.c \ +d887 1 +a887 1 +xrepl: repl.o replsbr.o \ +d889 1 +a889 1 + $(LD) $(LDFLAGS) -o $@@ repl.o replsbr.o \ +d892 1 +a892 1 +l-repl:; $(LINT) $(LFLAGS) repl.c replsbr.c \ +d1821 3 +@ + + +2.16 +log +@kerberos +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.15 1992/01/31 16:39:54 jromine Exp jromine $ +d108 1 +a108 1 +CP = cp -p +@ + + +2.15 +log +@Multimedia MH +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.14 1992/01/24 23:18:46 jromine Exp $ +d79 5 +d108 2 +d227 1 +a227 1 + cp xali $@@ +d244 1 +a244 1 + cp xanno $@@ +d264 1 +a264 1 + cp xap $@@ +d284 1 +a284 1 + cp xbbc $@@ +d306 1 +a306 1 + cp xbbl $@@ +d325 1 +a325 1 + cp xburst $@@ +d342 1 +a342 1 + cp xcipher $@@ +d359 1 +a359 1 + cp xcomp $@@ +d379 1 +a379 1 + cp xconflict $@@ +d396 1 +a396 1 + cp xdecipher $@@ +d413 1 +a413 1 + cp xdist $@@ +d433 1 +a433 1 + cp xdp $@@ +d468 1 +a468 1 + cp xfolder $@@ +d488 1 +a488 1 + cp xforw $@@ +d511 1 +a511 1 + cp xinc $@@ +d526 5 +a530 5 +xinc: inc.o scansbr.o \ + dropsbr.o trmsbr.o $(POPLIB) $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ inc.o scansbr.o \ + dropsbr.o trmsbr.o $(POPLIB) $(TMALIB) $(LDLIBS) \ + $(LDCURSES) +d540 1 +a540 1 + cp xinstall-mh $@@ +d557 1 +a557 1 + cp xkdsc $@@ +d574 1 +a574 1 + cp xmark $@@ +d591 1 +a591 1 + cp xmhl $@@ +d611 1 +a611 1 + cp xmhmail $@@ +d645 1 +a645 1 + cp xmhpath $@@ +d665 1 +a665 1 + cp xmsgchk $@@ +d676 3 +a678 2 +xmsgchk: msgchk.o $(POPLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@@ msgchk.o $(POPLIB) $(LDLIBS) +d687 1 +a687 1 + cp xmsh $@@ +d710 1 +a710 1 + cp xpackf $@@ +d727 1 +a727 1 + cp xpick $@@ +d747 1 +a747 1 + cp xpost $@@ +d771 1 +a771 1 + cp xprompter $@@ +d788 1 +a788 1 + cp xrcvdist $@@ +d805 1 +a805 1 + cp xrcvpack $@@ +d822 1 +a822 1 + cp xrcvstore $@@ +d839 1 +a839 1 + cp xrcvtty $@@ +d863 1 +a863 1 + cp xrefile $@@ +d880 1 +a880 1 + cp xrepl $@@ +d901 1 +a901 1 + cp xrmail $@@ +d920 1 +a920 1 + cp xrmf $@@ +d937 1 +a937 1 + cp xrmm $@@ +d954 1 +a954 1 + cp xscan $@@ +d974 1 +a974 1 + cp xsend $@@ +d996 1 +a996 1 + cp xshow $@@ +d1025 1 +a1025 1 + cp xsbboards $@@ +d1046 1 +a1046 1 + cp xslocal $@@ +d1063 1 +a1063 1 + cp xsortm $@@ +d1081 1 +a1081 1 + cp xspop $@@ +d1104 1 +a1104 1 + cp xspost $@@ +d1140 1 +a1140 1 + cp xtma $@@ +d1157 1 +a1157 1 + cp xumhook $@@ +d1174 1 +a1174 1 + cp xvmh $@@ +d1195 1 +a1195 1 + cp xwhatnow $@@ +d1215 1 +a1215 1 + cp xwhom $@@ +d1232 1 +a1232 1 + cp xwmh $@@ +@ + + +2.14 +log +@remind about /usr/lib/sendmail link +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.13 1991/05/17 15:29:03 jromine Exp erickson $ +d136 2 +a137 2 + mhpath msgchk msh next packf pick prev prompter refile repl \ + rmf rmm scan send show sortm vmh whatnow whom $(BBCMDS) \ +d148 5 +a152 4 + inst-mhpath inst-msgchk inst-msh inst-next inst-packf \ + inst-pick inst-prev inst-prompter inst-refile inst-repl \ + inst-rmf inst-rmm inst-scan inst-send inst-show inst-sortm \ + inst-vmh inst-whatnow inst-whom $(IBBCMDS) $(ITMACMDS) +d162 1 +a162 1 + l-mark l-mhmail l-mhpath l-msgchk l-msh l-packf l-pick \ +d174 3 +a176 2 + xmhmail xmhpath xmsgchk xmsh xpackf xpick xprompter xrefile \ + xrepl xrmf xrmm xscan xsend xshow xsortm xvmh xwhatnow xwhom \ +d617 17 +d1501 22 +d1565 1 +d1710 1 +d1714 1 +@ + + +2.13 +log +@add new uip/sendmail program to be installed in ETCDIR +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.12 1991/01/25 15:50:18 mh Exp jromine $ +d1098 1 +d1100 1 +a1100 1 + +@ + + +2.12 +log +@add fmtdump +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.11 90/12/18 13:34:42 mh Exp Locker: mh $ +d140 1 +a140 1 + rcvtty fmtdump \ +d154 1 +a154 1 + inst-fmtdump $(IMTSMISC) \ +d165 1 +a165 1 + l-rcvpack l-rcvstore l-rcvtty l-fmtdump \ +d177 1 +a177 1 + xrcvstore xrcvtty xfmtdump \ +d1089 17 +@ + + +2.11 +log +@SLDFLAG +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.10 90/12/18 13:26:29 mh Exp Locker: mh $ +d140 1 +a140 1 + rcvtty \ +d154 1 +a154 1 + $(IMTSMISC) \ +d165 2 +a166 1 + l-rcvpack l-rcvstore l-rcvtty $(LMTSMISC) $(LBBMISC) \ +d177 2 +a178 1 + xrcvstore xrcvtty $(TMTSMISC) $(TBBMISC) $(TPOPMISC) \ +d437 17 +d1418 5 +@ + + +2.10 +log +@fix LD_LIBRARY_PATH +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: uip,v 2.9 90/04/05 15:17:01 sources Exp Locker: mh $ +d125 1 +a125 1 +LDLIBES = ../config/config.o -Bdynamic -lmh \ +@ + + +2.9 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d104 6 +d125 1 +a125 1 +LDLIBES = ../config/config.o -Bdynamic -L../sbr -lmh \ +d224 1 +a224 1 + $(CC) $(LDFLAGS) -o $@@ ali.o aliasbr.o $(LDLIBS) +d244 1 +a244 1 + $(CC) $(LDFLAGS) -o $@@ anno.o annosbr.o $(LDLIBS) +d261 1 +a261 1 + $(CC) $(LDFLAGS) -o $@@ ap.o trmsbr.o $(LDLIBS) $(LDCURSES) +d285 1 +a285 1 + $(CC) $(LDFLAGS) -o $@@ bbc.o $(PSHLIB) $(LDLIBS) +d305 1 +a305 1 + $(CC) $(LDFLAGS) -o $@@ bbl.o $(LDLIBS) +d322 1 +a322 1 + $(CC) $(LDFLAGS) -o $@@ burst.o $(LDLIBS) +d339 1 +a339 1 + $(CC) $(LDFLAGS) -o $@@ cipher.o $(TMALIB) $(LDLIBS) +d357 1 +a357 1 + $(CC) $(LDFLAGS) -o $@@ comp.o \ +d376 1 +a376 1 + $(CC) $(LDFLAGS) -o $@@ conflict.o aliasbr.o $(LDLIBS) +d393 1 +a393 1 + $(CC) $(LDFLAGS) -o $@@ decipher.o $(TMALIB) $(LDLIBS) +d411 1 +a411 1 + $(CC) $(LDFLAGS) -o $@@ dist.o \ +d430 1 +a430 1 + $(CC) $(LDFLAGS) -o $@@ dp.o trmsbr.o $(LDLIBS) $(LDCURSES) +d451 1 +a451 1 + $(CC) $(LDFLAGS) -o $@@ folder.o $(LDLIBS) +d469 1 +a469 1 + $(CC) $(LDFLAGS) -o $@@ forw.o \ +d500 1 +a500 1 + $(CC) $(LDFLAGS) -o $@@ inc.o scansbr.o \ +d520 1 +a520 1 + $(CC) $(LDFLAGS) -o $@@ install-mh.o $(LDLIBS) +d537 1 +a537 1 + $(CC) $(LDFLAGS) -o $@@ kdsc.o $(KDSLIB) $(LDLIBS) +d554 1 +a554 1 + $(CC) $(LDFLAGS) -o $@@ mark.o $(LDLIBS) +d572 1 +a572 1 + $(CC) $(LDFLAGS) -o $@@ mhl.o \ +d591 1 +a591 1 + $(CC) $(LDFLAGS) -o $@@ mhmail.o $(LDLIBS) +d608 1 +a608 1 + $(CC) $(LDFLAGS) -o $@@ mhpath.o $(LDLIBS) +d632 1 +a632 1 + $(CC) $(LDFLAGS) -o $@@ msgchk.o $(POPLIB) $(LDLIBS) +d651 1 +a651 1 + $(CC) $(LDFLAGS) -o $@@ msh.o mshcmds.o vmhsbr.o \ +d672 1 +a672 1 + $(CC) $(LDFLAGS) -o $@@ packf.o dropsbr.o $(LDLIBS) +d689 1 +a689 1 + $(CC) $(LDFLAGS) -o $@@ pick.o picksbr.o $(LDLIBS) +d714 1 +a714 1 + $(CC) $(LDFLAGS) -o $@@ post.o \ +d733 1 +a733 1 + $(CC) $(LDFLAGS) -o $@@ prompter.o $(LDLIBS) +d750 1 +a750 1 + $(CC) $(LDFLAGS) -o $@@ rcvdist.o distsbr.o $(LDLIBS) +d767 1 +a767 1 + $(CC) $(LDFLAGS) -o $@@ rcvpack.o dropsbr.o $(LDLIBS) +d784 1 +a784 1 + $(CC) $(LDFLAGS) -o $@@ rcvstore.o $(LDLIBS) +d806 1 +a806 1 + $(CC) $(LDFLAGS) -o $@@ rcvtty.o \ +d825 1 +a825 1 + $(CC) $(LDFLAGS) -o $@@ refile.o $(LDLIBS) +d843 1 +a843 1 + $(CC) $(LDFLAGS) -o $@@ repl.o replsbr.o \ +d865 1 +a865 1 + $(CC) $(LDFLAGS) -o $@@ rmail.o $(LDLIBS) +d882 1 +a882 1 + $(CC) $(LDFLAGS) -o $@@ rmf.o $(LDLIBS) +d899 1 +a899 1 + $(CC) $(LDFLAGS) -o $@@ rmm.o $(LDLIBS) +d917 1 +a917 1 + $(CC) $(LDFLAGS) -o $@@ scan.o \ +d937 1 +a937 1 + $(CC) $(LDFLAGS) -o $@@ send.o \ +d965 1 +a965 1 + $(CC) $(LDFLAGS) -o $@@ show.o \ +d991 1 +a991 1 + $(CC) $(LDFLAGS) -o $@@ sbboards.o dropsbr.o $(LDLIBS) +d1008 1 +a1008 1 + $(CC) $(LDFLAGS) -o $@@ slocal.o aliasbr.o dropsbr.o $(LDLIBS) +d1025 1 +a1025 1 + $(CC) $(LDFLAGS) -o $@@ sortm.o $(LDLIBS) +d1045 1 +a1045 1 + $(CC) $(LDFLAGS) -o $@@ spop.o dropsbr.o $(LDLIBS) +d1066 1 +a1066 1 + $(CC) $(LDFLAGS) -o $@@ spost.o aliasbr.o $(LDLIBS) +d1084 1 +a1084 1 + $(CC) $(LDFLAGS) -o $@@ tma.o $(TMALIB) $(LDLIBS) +d1101 1 +a1101 1 + $(CC) $(LDFLAGS) -o $@@ umhook.o $(LDLIBS) $(LDCURSES) +d1118 1 +a1118 1 + $(CC) $(LDFLAGS) -o $@@ vmh.o vmhsbr.o $(LDLIBS) $(LDCURSES) +d1124 1 +a1124 1 + $(CC) $(LDFLAGS) -o $@@ vmhtest.o vmhsbr.o $(LDLIBS) +d1140 1 +a1140 1 + $(CC) $(LDFLAGS) -o $@@ whatnow.o \ +d1159 1 +a1159 1 + $(CC) $(LDFLAGS) -o $@@ whom.o distsbr.o $(LDLIBS) +d1223 1 +a1223 1 +# $(CC) $(LDFLAGS) -o $@@ pickle.o $(LDLIBS) +@ + + +2.8 +log +@BSD43 for rcvtty +@ +text +@d5 1 +@ + + +2.7 +log +@remove -O (put in mhconfig) +@ +text +@d788 4 +@ + + +2.6 +log +@version.sh changes +@ +text +@d104 1 +a104 1 +CFLAGS = -O $(OPTIONS) +@ + + +2.5 +log +@make unconfig changes +@ +text +@d113 1 +a113 1 +LDLIBS = $(LIBES) version.o $(LDOPTLIB) +d120 1 +a120 1 +LDLIBS = $(LDLIBES) version.o $(LDOPTLIB) +d182 1 +a182 2 +all: version.o $(CMDS) $(MISC) + @@version.sh; $(CC) -O -c version.c +a1695 1 +version.o: version.c +@ + + +2.4 +log +@MAILGROUP stuff +@ +text +@d1179 4 +a1182 1 +unconfig distribution: clean +@ + + +2.3 +log +@ANSI Compilance +@ +text +@d479 4 +@ + + +2.2 +log +@remove chmod +t commands -- don't seem to be needed anymore +@ +text +@d102 1 +a102 1 +CC = cc +d1162 1 +a1162 1 + /bin/cc $(LDFLAGS) -o $@@ wmh.o vmhsbr.o $(LDLIBS) \ +d1166 1 +a1166 1 + /bin/cc $(CFLAGS) -c $*.c +@ + + +2.1 +log +@default rule for .c +@ +text +@a272 1 + -@@chmod +t $@@ +a343 1 + -@@chmod +t $@@ +a417 1 + -@@chmod +t $@@ +a482 1 + -@@chmod +t $@@ +a615 1 + -@@chmod +t $@@ +a696 1 + -@@chmod +t $@@ +a716 1 + -@@chmod +t $@@ +a937 1 + -@@chmod +t $@@ +a1118 1 + -@@chmod +t $@@ +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d176 1 +@ + + +1.2 +log +@*** empty log message *** +@ +text +@d82 4 +d118 2 +a119 2 +LDLIBES = ../config/config.o -Bdynamic -L../sbr -lmh ../mts/libmts.a \ + ../zotnet/libzot.a +d1183 1 +a1183 1 +distribution: clean +@ + + +1.1 +log +@Initial revision +@ +text +@d106 1 +d110 8 +d224 3 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/RCS/zotnetM,v b/docs/historical/mh-6.8.5/conf/makefiles/RCS/zotnetM,v new file mode 100644 index 0000000..512023f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/RCS/zotnetM,v @@ -0,0 +1,261 @@ +head 2.7; +access; +symbols; +locks; strict; + + +2.7 +date 92.10.29.16.25.20; author jromine; state Exp; +branches; +next 2.6; + +2.6 +date 92.10.20.23.00.26; author jromine; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.05.15.18.23; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.12.11.29.12; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.21.16.59.48; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.06.12.52.45; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.01.25.16.24.06; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.49; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.21; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.7 +log +@fixup make distribution & tws.h +@ +text +@############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @@(MHWARNING) +# @@(#)$Id: zotnetM,v 2.6 1992/10/20 23:00:26 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @@(MHOPTIONS) + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) -I. +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) -I. +@@END: DEBUG +LFLAGS = -bhu $(OPTIONS) -I. + +LIB = libzot.a +LLIB = llib-lzotnet + +OFILES = mts/mts.o mts/lock.o mts/client.o mf/mf.o \ +@@BEGIN: MHMTS + mf/mmuu.o mf/uumm.o \ +@@END: MHMTS + bboards/getbbent.o \ + tws/dtime.o tws/dtimep.o tws/lexstring.o + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + +DIRS = mts bboards tws mf + + +@@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o:; $(CC) $(CFLAGS) -c $*.c +@@BEGIN: NEWLOAD + -ld -x -r $@@ + mv a.out $@@ +@@END: NEWLOAD +@@BEGIN: OLDLOAD + cc -s -o $@@ +@@END: OLDLOAD + + +@@END: OPTIM + +.c:; echo $@@ + +############################################################################## +# Generate ZOTnet subroutine library +############################################################################## + +all: allaux $(LIB) + +$(LIB): $(OFILES) + -mv $@@ z$@@ +@@BEGIN: RANLIB + ar r $@@ $(OFILES); ranlib $@@ +@@END: RANLIB +@@BEGIN: LORDER + ar r $@@ `lorder $(OFILES) | tsort` +@@END: LORDER + -@@ls -l $@@ + -@@echo "ZOTnet library built normally" + +allaux:; for d in $(DIRS); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(DIRS); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(DIRS); do (cd $$d; $(MAKE) lint); done + + +############################################################################## +# Installation +############################################################################## + +install: inst-all clean + +inst-all:; for d in $(DIRS); do (cd $$d; $(MAKE) inst-all); done + +tar:; @@for d in $(DIRS); \ + do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done + +uninstall:; for d in $(DIRS); do (cd $$d; $(MAKE) uninstall); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig:; -rm -f $(LIB) z$(LIB) _* :* *.o core + for d in $(DIRS); do (cd $$d; $(MAKE) unconfig); done + -rm -f Makefile + +distribution:; -rm -f $(LIB) z$(LIB) _* :* + for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done + +clean:; -rm -f $(LIB) z$(LIB) _* :* *.o core + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; -rm -f z$(LIB) _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done +@ + + +2.6 +log +@move "rm -f tws/tws.h" from sbr to zotnet Makefile (error) +@ +text +@d5 1 +a5 1 +# @@(#)$Id: zotnetM,v 2.5 1990/04/05 15:18:23 sources Exp jromine $ +a101 2 + -rm -f tws/tws.h + ln tws.h tws/tws.h +@ + + +2.5 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d102 2 +@ + + +2.4 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +2.3 +log +@make unconfig changes +@ +text +@d12 1 +a12 1 +CFLAGS = -O $(OPTIONS) -I. +@ + + +2.2 +log +@ANSI Compilance +@ +text +@d96 5 +a100 1 +unconfig distribution:; -rm -f $(LIB) z$(LIB) _* :* +@ + + +2.1 +log +@default rule for .c +@ +text +@d10 1 +a10 1 +CC = cc +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d51 3 +@ + + +1.1 +log +@Initial revision +@ +text +@d93 1 +a93 1 +distribution:; -rm -f $(LIB) z$(LIB) _* :* +d96 1 +a96 1 +clean:; -rm -f $(LIB) z$(LIB) _* :* core +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/config b/docs/historical/mh-6.8.5/conf/makefiles/config new file mode 100644 index 0000000..984805d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/config @@ -0,0 +1,88 @@ +############################################################################## +# Instructions to Make, for compilation of MH modules +# +# @(MHWARNING) +# @(#)$Id: config,v 2.8 1992/02/05 21:52:46 jromine Exp $ +############################################################################## + +OPTIONS = @(MHOPTIONS) +LDOPTIONS= @(LDOPTIONS) + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES = +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + + +############################################################################## +# Generate object file for MH configuration +############################################################################## + +CFILES = config.c version.c +OFILES = config.o version.o + +all: $(OFILES) + +lint:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +version version.c: true + @/bin/sh version.sh @(MHHOSTVER) @(MHRELEASE) + +true:; + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f config.c version.c version + +clean: unclean + -rm -f *.o + +unclean:; -rm -f _* :* core eddep makedep + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = $(CFILES) + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +config.o: config.c +config.o: ../h/mh.h +#config.o: /usr/include/pwd.h +#config.o: /usr/include/stdio.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/dist b/docs/historical/mh-6.8.5/conf/makefiles/dist new file mode 100644 index 0000000..c3f032d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/dist @@ -0,0 +1,145 @@ +############################################################################## +# Instructions to Make, for generation of MH documentation sets +# +# @(MHWARNING) +# @(#)$Id: dist,v 2.7 1992/12/02 22:21:43 jromine Exp $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +SHELL = /bin/sh + + +############################################################################## +# Generation Rules +############################################################################## + +.SUFFIXES: .cat .dvi .imp + +.cat.imp:; catimp -i $@ $< + +.dvi.imp:; dviimp -i $@ $< + + +###################################################################### +# Here it is... +###################################################################### + +TARGETS = ../READ-ME \ + mh-gen.cat MH.cat ADMIN.cat mh-changes.cat \ + bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \ + mznet.dvi realwork.dvi trusted.dvi tutorial.dvi + +all:; @cd ../config; make version + @for f in $(TARGETS); do $(MAKE) $$f; done + + +doc: MH.doc ADMIN.doc mh-changes.doc + + +IMPRESS = mh-gen.imp MH.imp ADMIN.imp mh-changes.imp \ + bboards.imp beginners.imp \ + mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \ + trusted.imp tutorial.imp + +imp:; @for f in $(IMPRESS); do $(MAKE) $$f; done + + +i-all: all true + lpr -t -J MH-gen mh-gen.cat + lpr -t -J MH MH.cat + lpr -t -J ADMIN ADMIN.cat + lpr -t -J MH-CHANGES mh-changes.cat + lpr -d -J BBoards bboards.dvi + lpr -d -J Beginners beginners.dvi + lpr -d -J MH-4-MM mh4mm.dvi + lpr -d -J mh6.5 mh6.dvi + lpr -d -J Multifarious multifarious.dvi + lpr -d -J MZnet mznet.dvi + lpr -d -J Realwork realwork.dvi + lpr -d -J Trusted trusted.dvi + lpr -d -J Tutorial tutorial.dvi + + +true:; + + +############################################################# +# Documentation Set +############################################################# + +ADMIN.cat MH.cat \ +ADMIN.doc MH.doc \ +ADMIN.imp MH.imp: true + cd ../doc; make $@ + cp ../doc/$@ $@ + +../READ-ME: ../conf/mh-gen.8 + nroff -man ../conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@ + +mh-gen.cat: ../conf/mh-gen.8 + itroff -t -man ../conf/mh-gen.8 > mh-gen.tmp + mv mh-gen.tmp $@ + +mh-changes.cat \ +mh-changes.doc \ +mh-changes.imp: true + cd ../papers/changes; make $@ + cp ../papers/changes/$@ $@ + +bboards.imp \ +bboards.dvi: true + cd ../papers/bboards; make $@ + cp ../papers/bboards/$@ $@ + +beginners.imp \ +beginners.dvi: true + cd ../papers/beginners; make $@ + cp ../papers/beginners/$@ $@ + +mh4mm.imp \ +mh4mm.dvi: true + cd ../papers/mh4mm; make $@ + cp ../papers/mh4mm/$@ $@ + +mh6.imp \ +mh6.dvi: true + cd ../papers/mh6.5; make $@ + cp ../papers/mh6.5/$@ $@ + +multifarious.imp \ +multifarious.dvi: true + cd ../papers/multifarious; make $@ + cp ../papers/multifarious/$@ $@ + +mznet.imp \ +mznet.dvi: true + cd ../papers/mznet; make $@ + cp ../papers/mznet/$@ $@ + +realwork.imp \ +realwork.dvi: true + cd ../papers/realwork; make $@ + cp ../papers/realwork/$@ $@ + +trusted.imp \ +trusted.dvi: true + cd ../papers/trusted; make $@ + cp ../papers/trusted/$@ $@ + +tutorial.imp \ +tutorial.dvi: true + cd ../papers/tutorial; make $@ + cp ../papers/tutorial/$@ $@ + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +distribution: clean ../READ-ME + +unconfig clean: unclean + rm -f *.cat *.dvi *.imp *.doc + +unclean:; rm -f *.tmp _* :* core diff --git a/docs/historical/mh-6.8.5/conf/makefiles/doc b/docs/historical/mh-6.8.5/conf/makefiles/doc new file mode 100644 index 0000000..17094a9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/doc @@ -0,0 +1,864 @@ +############################################################################## +# Instructions to Make, for generation of MH manual entries +# +# @(MHWARNING) +# @(#)$Id: doc,v 2.26 1993/08/27 22:15:57 jromine Exp $ +############################################################################## + +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +MANDIR = $(DESTDIR)@(MHMANDIR) +DIR1 = @(MHMANDIR1) +EXT1 = @(MHMANEXT1) +DIR5 = @(MHMANDIR5) +EXT5 = @(MHMANEXT5) +DIR8 = @(MHMANDIR8) +EXT8 = @(MHMANEXT8) +@BEGIN: BBOARDS +OPTIONS1= bbc.$(EXT1) bbl.$(EXT1) bbleader.$(EXT1) bboards.$(EXT1) +options1= bbc bbl bbleader bboards +inst-options1= inst-bbc inst-bbl inst-bbleader inst-bboards +Toptions1= bbc.man bbl.man bbleader.man bboards.man +@END: BBOARDS +@BEGIN: TMA +OPTIONS2= cipher.$(EXT1) decipher.$(EXT1) tma.$(EXT1) +options2= cipher decipher tma +inst-options2= inst-cipher inst-decipher inst-tma +Toptions2= cipher.man decipher.man tma.man +@END: TMA +REMOVE = @(MHREMOVE) +MANPROT = 0644 + +MAN1 = ali.$(EXT1) anno.$(EXT1) burst.$(EXT1) comp.$(EXT1) \ + dist.$(EXT1) folder.$(EXT1) forw.$(EXT1) inc.$(EXT1) \ + mark.$(EXT1) mh-chart.$(EXT1) mh.$(EXT1) mhl.$(EXT1) \ + mhook.$(EXT1) mhmail.$(EXT1) \ +@BEGIN: MIME + mhn.$(EXT1) \ +@END: MIME + mhparam.$(EXT1) mhpath.$(EXT1) msgchk.$(EXT1) \ + msh.$(EXT1) next.$(EXT1) packf.$(EXT1) pick.$(EXT1) \ +@BEGIN: MPOP + popi.$(EXT1) \ +@END: MPOP + prev.$(EXT1) prompter.$(EXT1) rcvstore.$(EXT1) refile.$(EXT1) \ + repl.$(EXT1) rmf.$(EXT1) rmm.$(EXT1) scan.$(EXT1) \ + send.$(EXT1) show.$(EXT1) slocal.$(EXT1) \ + sortm.$(EXT1) vmh.$(EXT1) \ + whatnow.$(EXT1) whom.$(EXT1) $(OPTIONS1) $(OPTIONS2) +man1 = ali anno burst comp dist folder forw inc mark mh-chart mh mhl \ + mhook mhmail \ +@BEGIN: MIME + mhn \ +@END: MIME + mhparam mhpath msgchk msh next packf pick \ +@BEGIN: MPOP + popi \ +@END: MPOP + prev prompter \ + rcvstore refile repl rmf rmm scan send show slocal \ + sortm vmh whatnow \ + whom $(options1) $(options2) +inst-man1= inst-ali inst-anno inst-burst inst-comp inst-dist inst-folder \ + inst-forw inst-inc inst-mark inst-mh-chart inst-mh inst-mhl \ + inst-mhook inst-mhmail \ +@BEGIN: MIME + inst-mhn \ +@END: MIME + inst-mhparam inst-mhpath inst-msgchk inst-msh \ + inst-next inst-packf inst-pick \ +@BEGIN: MPOP + inst-popi \ +@END: MPOP + inst-prev inst-prompter \ + inst-rcvstore inst-refile inst-repl inst-rmf inst-rmm \ + inst-scan inst-send inst-show inst-slocal inst-sortm inst-vmh \ + inst-whatnow inst-whom $(inst-options1) $(inst-options2) +Tman1 = ali.man anno.man burst.man comp.man dist.man folder.man \ + forw.man inc.man mark.man mh-chart.man mh.man mhl.man \ + mhook.man mhmail.man \ +@BEGIN: MIME + mhn.man \ +@END: MIME + mhparam.man mhpath.man msgchk.man msh.man next.man packf.man \ +@BEGIN: MPOP + popi.man \ +@END: MPOP + pick.man prev.man prompter.man rcvstore.man \ + refile.man repl.man rmf.man rmm.man scan.man send.man \ + show.man slocal.man \ + sortm.man vmh.man whatnow.man whom.man $(Toptions1) \ + $(Toptions2) + +MAN5 = mh-alias.$(EXT5) mh-format.$(EXT5) mh-mail.$(EXT5) \ + mh-profile.$(EXT5) mh-sequence.$(EXT5) mh-tailor.$(EXT5) +man5 = mh-alias mh-format mh-mail mh-profile mh-sequence mh-tailor +inst-man5= inst-mh-alias inst-mh-format inst-mh-mail inst-mh-profile \ + inst-mh-sequence inst-mh-tailor +Tman5 = mh-alias.man mh-format.man mh-mail.man mh-profile.man \ + mh-sequence.man mh-tailor.man + +MAN8 = ap.$(EXT8) conflict.$(EXT8) dp.$(EXT8) install-mh.$(EXT8) \ +@BEGIN: APOP + popauth.$(EXT8) \ +@END: APOP + post.$(EXT8) fmtdump.$(EXT8) +man8 = ap conflict dp install-mh \ +@BEGIN: APOP + popauth \ +@END: APOP + post fmtdump +inst-man8= inst-ap inst-conflict inst-dp inst-install-mh \ +@BEGIN: APOP + inst-popauth \ +@END: APOP + inst-post \ + inst-fmtdump +Tman8 = ap.man conflict.man dp.man install-mh.man \ +@BEGIN: APOP + popauth.man \ +@END: APOP + post.man \ + fmtdump.man + + +############################################################################## +# Generation Rules +############################################################################## + +.SUFFIXES: .me .cat .doc .man .imp + +.me.cat:; itroff -t -me $< > $@ + +.me.doc:; nroff -Tlpr -me $< > $@ + +.me.man:; cat tmac.me $< | sed -f me2man.sed @(MHCATMAN) > $@ + +.cat.imp:; catimp -i $@ $< + + +############################################################################## +# Generate MH manual entries +############################################################################## + +all: @(MHMANGEN) $(man1) $(man5) $(man8) + +install: inst-all clean + +inst-all: @(MHMANGEN) mkdirs inst-tmac \ + $(inst-man1) $(inst-man5) $(inst-man8) + +tar: @(MHMANGEN) $(Tman1) $(Tman5) $(Tman8) + @(MHMANGEN) @touch tmac.h $(Tman1) $(Tman5) $(Tman8) + @(MHMANGEN) @make -n inst-all > MAKEDOC + @(MHMANGEN) @chmod +x MAKEDOC + @(MHMANGEN) tar $(TFLAGS) MAKEDOC tmac.h $(Tman1) $(Tman5) $(Tman8) + @(MHMANGEN) @rm -f MAKEDOC + +uninstall:; cd $(MANDIR)/$(DIR1) ; rm -f $(MAN1) + cd $(MANDIR)/$(DIR5) ; rm -f $(MAN5) + cd $(MANDIR)/$(DIR8) ; rm -f $(MAN8) + + +############################################################################## +# Generate MH User's Manual/Administrator's Guide +############################################################################## + +manual: MH.doc + +guide: ADMIN.doc + +true:; + + +############################################################################## +# MH manual entries +############################################################################## + +mkdirs: $(MANDIR)/$(DIR1) $(MANDIR)/$(DIR5) $(MANDIR)/$(DIR8) + +$(MANDIR)/$(DIR1) $(MANDIR)/$(DIR5) $(MANDIR)/$(DIR8): + -mkdir $@ && chmod 0755 $@ + + +inst-tmac: $(ETCDIR)/tmac.h + +$(ETCDIR)/tmac.h: tmac.h + -$(REMOVE) $@ ztmac.h + cp tmac.h $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-ali: $(MANDIR)/$(DIR1)/ali.$(EXT1) + +$(MANDIR)/$(DIR1)/ali.$(EXT1): ali.man + -$(REMOVE) $@ zali.man + cp ali.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-anno: $(MANDIR)/$(DIR1)/anno.$(EXT1) + +$(MANDIR)/$(DIR1)/anno.$(EXT1): anno.man + -$(REMOVE) $@ zanno.man + cp anno.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-ap: $(MANDIR)/$(DIR8)/ap.$(EXT8) + +$(MANDIR)/$(DIR8)/ap.$(EXT8): ap.man + -$(REMOVE) $@ zap.man + cp ap.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bbc: $(MANDIR)/$(DIR1)/bbc.$(EXT1) + +$(MANDIR)/$(DIR1)/bbc.$(EXT1): bbc.man + -$(REMOVE) $@ zbbc.man + cp bbc.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bbl: $(MANDIR)/$(DIR1)/bbl.$(EXT1) + +$(MANDIR)/$(DIR1)/bbl.$(EXT1): bbl.man + -$(REMOVE) $@ zbbl.man + cp bbl.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bbleader: $(MANDIR)/$(DIR1)/bbleader.$(EXT1) + +$(MANDIR)/$(DIR1)/bbleader.$(EXT1): bbleader.man + -$(REMOVE) $@ zbbleader.man + cp bbleader.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bboards: $(MANDIR)/$(DIR1)/bboards.$(EXT1) + +$(MANDIR)/$(DIR1)/bboards.$(EXT1): bboards.man + -$(REMOVE) $@ zbboards.man + cp bboards.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-burst: $(MANDIR)/$(DIR1)/burst.$(EXT1) + +$(MANDIR)/$(DIR1)/burst.$(EXT1): burst.man + -$(REMOVE) $@ zburst.man + cp burst.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-cipher: $(MANDIR)/$(DIR1)/cipher.$(EXT1) + +$(MANDIR)/$(DIR1)/cipher.$(EXT1): cipher.man + -$(REMOVE) $@ zcipher.man + cp cipher.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-comp: $(MANDIR)/$(DIR1)/comp.$(EXT1) + +$(MANDIR)/$(DIR1)/comp.$(EXT1): comp.man + -$(REMOVE) $@ zcomp.man + cp comp.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-conflict: $(MANDIR)/$(DIR8)/conflict.$(EXT8) + +$(MANDIR)/$(DIR8)/conflict.$(EXT8): conflict.man + -$(REMOVE) $@ zconflict.man + cp conflict.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-decipher: $(MANDIR)/$(DIR1)/decipher.$(EXT1) + +$(MANDIR)/$(DIR1)/decipher.$(EXT1): decipher.man + -$(REMOVE) $@ zdecipher.man + cp decipher.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-dist: $(MANDIR)/$(DIR1)/dist.$(EXT1) + +$(MANDIR)/$(DIR1)/dist.$(EXT1): dist.man + -$(REMOVE) $@ zdist.man + cp dist.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-dp: $(MANDIR)/$(DIR8)/dp.$(EXT8) + +$(MANDIR)/$(DIR8)/dp.$(EXT8): dp.man + -$(REMOVE) $@ zdp.man + cp dp.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-folder: $(MANDIR)/$(DIR1)/folder.$(EXT1) + +$(MANDIR)/$(DIR1)/folder.$(EXT1): folder.man + -$(REMOVE) $@ zfolder.man + cp folder.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-fmtdump: $(MANDIR)/$(DIR8)/fmtdump.$(EXT8) + +$(MANDIR)/$(DIR8)/fmtdump.$(EXT8): fmtdump.man + -$(REMOVE) $@ zfmtdump.man + cp fmtdump.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-forw: $(MANDIR)/$(DIR1)/forw.$(EXT1) + +$(MANDIR)/$(DIR1)/forw.$(EXT1): forw.man + -$(REMOVE) $@ zforw.man + cp forw.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-inc: $(MANDIR)/$(DIR1)/inc.$(EXT1) + +$(MANDIR)/$(DIR1)/inc.$(EXT1): inc.man + -$(REMOVE) $@ zinc.man + cp inc.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-install-mh: $(MANDIR)/$(DIR8)/install-mh.$(EXT8) + +$(MANDIR)/$(DIR8)/install-mh.$(EXT8): install-mh.man + -$(REMOVE) $@ zinstall-mh.man + cp install-mh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mark: $(MANDIR)/$(DIR1)/mark.$(EXT1) + +$(MANDIR)/$(DIR1)/mark.$(EXT1): mark.man + -$(REMOVE) $@ zmark.man + cp mark.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-alias: $(MANDIR)/$(DIR5)/mh-alias.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-alias.$(EXT5): mh-alias.man + -$(REMOVE) $@ zmh-alias.man + cp mh-alias.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-format: $(MANDIR)/$(DIR5)/mh-format.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-format.$(EXT5): mh-format.man + -$(REMOVE) $@ zmh-format.man + cp mh-format.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-chart: $(MANDIR)/$(DIR1)/mh-chart.$(EXT1) + +$(MANDIR)/$(DIR1)/mh-chart.$(EXT1): mh-chart.man + -$(REMOVE) $@ zmh-chart.man + cp mh-chart.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-mail: $(MANDIR)/$(DIR5)/mh-mail.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-mail.$(EXT5): mh-mail.man + -$(REMOVE) $@ zmh-mail.man + cp mh-mail.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-tailor: $(MANDIR)/$(DIR5)/mh-tailor.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-tailor.$(EXT5): mh-tailor.man + -$(REMOVE) $@ zmh-tailor.man + cp mh-tailor.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-profile: $(MANDIR)/$(DIR5)/mh-profile.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-profile.$(EXT5): mh-profile.man + -$(REMOVE) $@ zmh-profile.man + cp mh-profile.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-sequence: $(MANDIR)/$(DIR5)/mh-sequence.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-sequence.$(EXT5): mh-sequence.man + -$(REMOVE) $@ zmh-sequence.man + cp mh-sequence.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhook: $(MANDIR)/$(DIR1)/mhook.$(EXT1) + +$(MANDIR)/$(DIR1)/mhook.$(EXT1): mhook.man + -$(REMOVE) $@ zmhook.man + cp mhook.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh: $(MANDIR)/$(DIR1)/mh.$(EXT1) + +$(MANDIR)/$(DIR1)/mh.$(EXT1): mh.man + -$(REMOVE) $@ zmh.man + cp mh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhl: $(MANDIR)/$(DIR1)/mhl.$(EXT1) + +$(MANDIR)/$(DIR1)/mhl.$(EXT1): mhl.man + -$(REMOVE) $@ zmhl.man + cp mhl.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhmail: $(MANDIR)/$(DIR1)/mhmail.$(EXT1) + +$(MANDIR)/$(DIR1)/mhmail.$(EXT1): mhmail.man + -$(REMOVE) $@ zmhmail.man + cp mhmail.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhn: $(MANDIR)/$(DIR1)/mhn.$(EXT1) + +$(MANDIR)/$(DIR1)/mhn.$(EXT1): mhn.man + -$(REMOVE) $@ zmhn.man + cp mhn.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhparam: $(MANDIR)/$(DIR1)/mhparam.$(EXT1) + +$(MANDIR)/$(DIR1)/mhparam.$(EXT1): mhparam.man + -$(REMOVE) $@ zmhparam.man + cp mhparam.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhpath: $(MANDIR)/$(DIR1)/mhpath.$(EXT1) + +$(MANDIR)/$(DIR1)/mhpath.$(EXT1): mhpath.man + -$(REMOVE) $@ zmhpath.man + cp mhpath.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-msgchk: $(MANDIR)/$(DIR1)/msgchk.$(EXT1) + +$(MANDIR)/$(DIR1)/msgchk.$(EXT1): msgchk.man + -$(REMOVE) $@ zmsgchk.man + cp msgchk.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-msh: $(MANDIR)/$(DIR1)/msh.$(EXT1) + +$(MANDIR)/$(DIR1)/msh.$(EXT1): msh.man + -$(REMOVE) $@ zmsh.man + cp msh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-next: $(MANDIR)/$(DIR1)/next.$(EXT1) + +$(MANDIR)/$(DIR1)/next.$(EXT1): next.man + -$(REMOVE) $@ znext.man + cp next.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-packf: $(MANDIR)/$(DIR1)/packf.$(EXT1) + +$(MANDIR)/$(DIR1)/packf.$(EXT1): packf.man + -$(REMOVE) $@ zpackf.man + cp packf.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-popauth: $(MANDIR)/$(DIR8)/popauth.$(EXT8) + +$(MANDIR)/$(DIR8)/popauth.$(EXT8): popauth.man + -$(REMOVE) $@ zpopauth.man + cp popauth.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-popi: $(MANDIR)/$(DIR1)/popi.$(EXT1) + +$(MANDIR)/$(DIR1)/popi.$(EXT1): popi.man + -$(REMOVE) $@ zpopi.man + cp popi.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-pick: $(MANDIR)/$(DIR1)/pick.$(EXT1) + +$(MANDIR)/$(DIR1)/pick.$(EXT1): pick.man + -$(REMOVE) $@ zpick.man + cp pick.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-post: $(MANDIR)/$(DIR8)/post.$(EXT8) + +$(MANDIR)/$(DIR8)/post.$(EXT8): post.man + -$(REMOVE) $@ zpost.man + cp post.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-prev: $(MANDIR)/$(DIR1)/prev.$(EXT1) + +$(MANDIR)/$(DIR1)/prev.$(EXT1): prev.man + -$(REMOVE) $@ zprev.man + cp prev.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-prompter: $(MANDIR)/$(DIR1)/prompter.$(EXT1) + +$(MANDIR)/$(DIR1)/prompter.$(EXT1): prompter.man + -$(REMOVE) $@ zprompter.man + cp prompter.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-rcvstore: $(MANDIR)/$(DIR1)/rcvstore.$(EXT1) + +$(MANDIR)/$(DIR1)/rcvstore.$(EXT1): rcvstore.man + -$(REMOVE) $@ zrcvstore.man + cp rcvstore.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-refile: $(MANDIR)/$(DIR1)/refile.$(EXT1) + +$(MANDIR)/$(DIR1)/refile.$(EXT1): refile.man + -$(REMOVE) $@ zrefile.man + cp refile.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-repl: $(MANDIR)/$(DIR1)/repl.$(EXT1) + +$(MANDIR)/$(DIR1)/repl.$(EXT1): repl.man + -$(REMOVE) $@ zrepl.man + cp repl.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-rmm: $(MANDIR)/$(DIR1)/rmm.$(EXT1) + +$(MANDIR)/$(DIR1)/rmm.$(EXT1): rmm.man + -$(REMOVE) $@ zrmm.man + cp rmm.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-rmf: $(MANDIR)/$(DIR1)/rmf.$(EXT1) + +$(MANDIR)/$(DIR1)/rmf.$(EXT1): rmf.man + -$(REMOVE) $@ zrmf.man + cp rmf.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-scan: $(MANDIR)/$(DIR1)/scan.$(EXT1) + +$(MANDIR)/$(DIR1)/scan.$(EXT1): scan.man + -$(REMOVE) $@ zscan.man + cp scan.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-send: $(MANDIR)/$(DIR1)/send.$(EXT1) + +$(MANDIR)/$(DIR1)/send.$(EXT1): send.man + -$(REMOVE) $@ zsend.man + cp send.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-show: $(MANDIR)/$(DIR1)/show.$(EXT1) + +$(MANDIR)/$(DIR1)/show.$(EXT1): show.man + -$(REMOVE) $@ zshow.man + cp show.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-slocal: $(MANDIR)/$(DIR1)/slocal.$(EXT1) + +$(MANDIR)/$(DIR1)/slocal.$(EXT1): slocal.man + -$(REMOVE) $@ zslocal.man + cp slocal.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-sortm: $(MANDIR)/$(DIR1)/sortm.$(EXT1) + +$(MANDIR)/$(DIR1)/sortm.$(EXT1): sortm.man + -$(REMOVE) $@ zsortm.man + cp sortm.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-tma: $(MANDIR)/$(DIR1)/tma.$(EXT1) + +$(MANDIR)/$(DIR1)/tma.$(EXT1): tma.man + -$(REMOVE) $@ ztma.man + cp tma.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-vmh: $(MANDIR)/$(DIR1)/vmh.$(EXT1) + +$(MANDIR)/$(DIR1)/vmh.$(EXT1): vmh.man + -$(REMOVE) $@ zvmh.man + cp vmh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-whatnow: $(MANDIR)/$(DIR1)/whatnow.$(EXT1) + +$(MANDIR)/$(DIR1)/whatnow.$(EXT1): whatnow.man + -$(REMOVE) $@ zwhatnow.man + cp whatnow.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-whom: $(MANDIR)/$(DIR1)/whom.$(EXT1) + +$(MANDIR)/$(DIR1)/whom.$(EXT1): whom.man + -$(REMOVE) $@ zwhom.man + cp whom.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + + +############################################################################## +# Dependencies +############################################################################## + +ali: ali.man +anno: anno.man +ap: ap.man +bbc: bbc.man +bbl: bbl.man +bbleader: bbleader.man +bboards: bboards.man +burst: burst.man +cipher: cipher.man +comp: comp.man +conflict: conflict.man +decipher: decipher.man +dist: dist.man +dp: dp.man +fmtdump: fmtdump.man +folder: folder.man +forw: forw.man +inc: inc.man +install-mh: install-mh.man +mark: mark.man +mh-alias: mh-alias.man +mh-format: mh-format.man +mh-chart: mh-chart.man +mh-mail: mh-mail.man +mh-profile: mh-profile.man +mh-sequence: mh-sequence.man +mh-tailor: mh-tailor.man +mhook: mhook.man +mh: mh.man +mhl: mhl.man +mhmail: mhmail.man +mhparam: mhparam.man +mhpath: mhpath.man +mhn: mhn.man +msgchk: msgchk.man +msh: msh.man +next: next.man +packf: packf.man +pick: pick.man +popauth: popauth.man +popi: popi.man +post: post.man +prev: prev.man +prompter: prompter.man +rcvstore: rcvstore.man +refile: refile.man +repl: repl.man +rmf: rmf.man +rmm: rmm.man +scan: scan.man +send: send.man +show: show.man +slocal: slocal.man +sortm: sortm.man +tma: tma.man +vmh: vmh.man +whatnow: whatnow.man +whom: whom.man + +MH.cat MH.doc: ali.me anno.me bbc.me bbl.me bbleader.me bboards.me comp.me \ + dist.me folder.me forw.me inc.me mark.me mh-chart.me mh.me \ + mhl.me mhmail.me \ +@BEGIN: MIME + mhn.me \ +@END: MIME + mhook.me mhparam.me mhpath.me msgchk.me msh.me \ + next.me packf.me pick.me \ +@BEGIN: MPOP + popi.me \ +@END: MPOP + prev.me prompter.me \ + rcvstore.me refile.me repl.me rmf.me rmm.me scan.me send.me \ + show.me slocal.me \ + sortm.me vmh.me whatnow.me whom.me mh-alias.me \ + mh-format.me mh-mail.me mh-profile.me mh-sequence.me \ + ap.me conflict.me dp.me install-mh.me fmtdump.me \ + post.me \ +@BEGIN: TMA + cipher.me decipher.me tma.me \ +@END: TMA + version.rf + +ADMIN.cat ADMIN.doc: \ + mh-tailor.me mh-mts.me \ + bboards5.me bbaka.me bbexp.me bboards8.me bbtar.me \ + pop5.me pop8.me popaka.me \ +@BEGIN: APOP + popauth.me \ +@END: APOP + popd.me popwrd.me \ + mf.me rmail.me \ + mh-hack.me \ +@BEGIN: TMA + kdsc.me kdsd.me kdser.me \ +@END: TMA + version.rf + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +lint:; + +version.rf: + cd ../config; make version + +unconfig: distribution + -rm -f version.rf me2man.sed Makefile + +distribution: clean + -rm -f *.me tmac.h + +clean: unclean + -rm -f *.man *.doc *.cat *.imp + +unclean:; -rm -f z* _* :* core MAKEDOC + +depend:; + + +############################################################################## +# MODIFICATIONS -- Adding a new program (e.g., pickle [section n]) +############################################################################## + +# Add pickle.$(EXT[N]) to MAN[N] +# Add pickle to man[n] +# Add inst-pickle to inst-man[n] +# Add pickle.man to Tman[n] +# +# Under the "MH manual entries" section, add this incantation +# inst-pickle: $(MANDIR)/$(DIR[n])/pickle.$(EXT[n]) +# +# $(MANDIR)/$(DIR[n])/pickle.$(EXT[n]): pickle.man +# -$(REMOVE) $@ zpickle.man +# cp pickle.man $@ +# -@chmod $(MANPROT) $@ +# -@ls -l $@ +# -@echo "" +# +# Under the "Dependencies" section, add a line for pickle +# pickle: pickle.man +# +# Add pickle.me to MH.cat diff --git a/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mh,v b/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mh,v new file mode 100644 index 0000000..383c5c0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mh,v @@ -0,0 +1,269 @@ +head 1.10; +access; +symbols; +locks; strict; +comment @# @; + + +1.10 +date 92.11.20.17.14.07; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.11.18.16.51.59; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.11.05.19.13.39; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.04.17.42.12; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.15.55; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.12.11.26.29; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.12.10.27.04; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.21.16.54.09; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.06.12.53.30; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.06.12.53.05; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.10 +log +@try to use LN instead of hard link +@ +text +@############################################################################## +# Instructions to Make, for compilation of standalone-MTS library +# +# @@(MHWARNING) +# @@(#)$Id: mh,v 1.9 1992/11/18 16:51:59 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS= @@(MHOPTIONS) -I.. + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = +CP = @@(CP) +LN = @@(LN) + +LIB = mhmts.a + +CFILES = hosts.c netmail.c uucp.c +OFILES = hosts.o netmail.o uucp.o + + +@@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## +.c.o:; $(CC) $(CFLAGS) -c $*.c +@@BEGIN: NEWLOAD + -ld -x -r $@@ + mv a.out $@@ +@@END: NEWLOAD +@@BEGIN: OLDLOAD + ${CC} -s -o $@@ +@@END: OLDLOAD + + +@@END: OPTIM +############################################################################## +# Here it is... +############################################################################## + +all: $(LIB) +depend:; +lint: l-mhmts + +$(LIB): $(OFILES) + -mv $@@ z$@@ +@@BEGIN: RANLIB + ar r $@@ $(OFILES); ranlib $@@ +@@END: RANLIB +@@BEGIN: LORDER + ar r $@@ `lorder $(OFILES) | tsort` +@@END: LORDER + -rm -f ../libmts.a + -cd ..; $(LN) mh/$@@ libmts.a + -rm -f ../llib-lmts + -cd .. ; $(LN) mh/llib-lmhmts llib-lmts + -@@ls -l $@@ + -@@echo "standalone-MTS library built normally" + +l-mhmts:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +hosts.o: Makefile +netmail.o: Makefile +uucp.o: Makefile + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f *.o $(LIB) z$(LIB) + +unclean:; -rm -f _* :* core +@ + + +1.9 +log +@fixup the way @@(LN) works +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mh,v 1.8 1992/11/05 19:13:39 jromine Exp jromine $ +d62 1 +a62 1 + ln $@@ ../libmts.a +@ + + +1.8 +log +@use LN for llib files +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mh,v 1.7 1992/02/04 17:42:12 jromine Exp jromine $ +d64 1 +a64 1 + -$(LN) llib-lmhmts ../llib-lmts +@ + + +1.7 +log +@use CP instead of ld for llib in case of cross-device link +Stephen Gildea +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mh,v 1.6 1990/04/05 15:15:55 sources Exp jromine $ +d22 1 +d64 1 +a64 1 + -$(CP) llib-lmhmts ../llib-lmts +@ + + +1.6 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d21 1 +d63 1 +a63 1 + -ln llib-lmhmts ../llib-lmts +@ + + +1.5 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +1.4 +log +@llib ln command failure shouldn't abort make +/. +@ +text +@d12 1 +a12 1 +CFLAGS = -O $(OPTIONS) +@ + + +1.3 +log +@make unconfig changes +@ +text +@d61 1 +a61 1 + ln llib-lmhmts ../llib-lmts +@ + + +1.2 +log +@ANSI Compilance +@ +text +@d76 3 +@ + + +1.1 +log +@Initial revision +@ +text +@d10 1 +a10 1 +CC = cc +d37 1 +a37 1 + cc -s -o $@@ +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mmdf,v b/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mmdf,v new file mode 100644 index 0000000..54c7e9f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/mmdf,v @@ -0,0 +1,333 @@ +head 1.11; +access; +symbols; +locks; strict; +comment @# @; + + +1.11 +date 93.12.06.18.11.49; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.11.20.17.14.07; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.11.18.16.51.59; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.11.05.19.13.39; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.04.17.42.12; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.16.01; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.12.11.26.36; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.12.10.27.22; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.21.16.54.14; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.06.12.53.44; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.06.12.53.07; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.11 +log +@typo in CC= +@ +text +@############################################################################## +# Instructions to Make, for compilation of MMDF-MTS library +# +# @@(MHWARNING) +# @@(#)$Id: mmdf,v 1.10 1992/11/20 17:14:07 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @@(MHOPTIONS) -I.. + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = +CP = @@(CP) +LN = @@(LN) + +LIB = mmdfmts.a + +CFILES = hosts.c +OFILES = hosts.o + + +@@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o:; $(CC) $(CFLAGS) -c $*.c +@@BEGIN: NEWLOAD + -ld -x -r $@@ + mv a.out $@@ +@@END: NEWLOAD +@@BEGIN: OLDLOAD + ${CC} -s -o $@@ +@@END: OLDLOAD + + +@@END: OPTIM +############################################################################## +# Here it is... +############################################################################## + +all: $(LIB) +depend:; +lint: l-mmdf + +@@BEGIN: MMDFIMTS +$(LIB): $(OFILES) mmdf_lib.a util_lib.a + -mv $(LIB) z$(LIB) + -rm -fr tmp + mkdir tmp mmdf util + ln hosts.o mmdf_lib.a util_lib.a tmp + cd mmdf; ar x ../mmdf_lib.a; ln *.o ../tmp + cd util; ar x ../util_lib.a; ln *.o ../tmp + -@@rm -f tmp/signal.o #dont want 4.1 signal package +@@BEGIN: RANLIB + cd tmp; ar r ../$@@ *.o; ranlib $@@ +@@END: RANLIB +@@BEGIN: LORDER + cd tmp; ar r ../$@@ `lorder *.o | tsort` +@@END: LORDER + rm -fr tmp mmdf util + -rm -f ../libmts.a + -cd ..; $(LN) mmdf/$@@ libmts.a + -rm -f ../llib-lmts + -cd .. ; $(LN) mmdf/llib-lmmdf llib-lmts + -@@ls -l $@@ + -@@echo "MMDFI-MTS library built normally" +@@END: MMDFIMTS + +@@BEGIN: MMDFIIMTS +$(LIB): $(OFILES) libmmdf.a + -mv $(LIB) z$(LIB) +@@BEGIN: RANLIB + cp libmmdf.a $@@ + ar r $@@ hosts.o; ranlib $@@ +@@END: RANLIB +@@BEGIN: LORDER + mkdir tmp + cd tmp; ar x ../libmmdf.a + ln hosts.o tmp + cd tmp; ar r ../$@@ `lorder *.o | tsort` + rm -fr tmp +@@END: LORDER + -rm -f ../libmts.a + -cd ..; $(LN) mmdf/$@@ libmts.a + -rm -f ../llib-lmts + -cd ..; $(LN) mmdf/llib-lmmdf llib-lmts + -@@ls -l $@@ + -@@echo "MMDFII-MTS library built normally" +@@END: MMDFIIMTS + +l-mmdf:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +hosts.o: Makefile + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f *.o $(LIB) z$(LIB) + +unclean:; -rm -f _* :* core +@ + + +1.10 +log +@try to use LN instead of hard link +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mmdf,v 1.9 1992/11/18 16:51:59 jromine Exp jromine $ +d11 1 +a11 1 +CC = (MHCOMPILER) +@ + + +1.9 +log +@fixup the way @@(LN) works +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mmdf,v 1.8 1992/11/05 19:13:39 jromine Exp jromine $ +d71 1 +a71 1 + ln $@@ ../libmts.a +d93 1 +a93 1 + ln $@@ ../libmts.a +d95 1 +a95 1 + -$(LN) llib-lmmdf ../llib-lmts +@ + + +1.8 +log +@use LN for llib files +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mmdf,v 1.7 1992/02/04 17:42:12 jromine Exp jromine $ +d73 1 +a73 1 + -$(LN) llib-lmmdf ../llib-lmts +@ + + +1.7 +log +@use CP instead of ld for llib in case of cross-device link +Stephen Gildea +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mmdf,v 1.6 1990/04/05 15:16:01 sources Exp jromine $ +d22 1 +d73 1 +a73 1 + -$(CP) llib-lmmdf ../llib-lmts +d95 1 +a95 1 + -$(CP) llib-lmmdf ../llib-lmts +@ + + +1.6 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d21 1 +d72 1 +a72 1 + -ln llib-lmmdf ../llib-lmts +d94 1 +a94 1 + -ln llib-lmmdf ../llib-lmts +@ + + +1.5 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +1.4 +log +@llib ln command failure shouldn't abort make +/. +@ +text +@d12 1 +a12 1 +CFLAGS = -O $(OPTIONS) +@ + + +1.3 +log +@make unconfig changes +@ +text +@d70 1 +a70 1 + ln llib-lmmdf ../llib-lmts +d92 1 +a92 1 + ln llib-lmmdf ../llib-lmts +@ + + +1.2 +log +@ANSI Compilance +@ +text +@d106 3 +@ + + +1.1 +log +@Initial revision +@ +text +@d10 1 +a10 1 +CC = cc +d38 1 +a38 1 + cc -s -o $@@ +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/sendmail,v b/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/sendmail,v new file mode 100644 index 0000000..7a1113e --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/mts/RCS/sendmail,v @@ -0,0 +1,268 @@ +head 1.10; +access; +symbols; +locks; strict; +comment @# @; + + +1.10 +date 92.11.20.17.14.07; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.11.18.16.51.59; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.11.05.19.13.31; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.02.04.17.42.12; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.15.48; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.12.11.26.38; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.12.10.27.24; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.21.16.54.16; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.06.12.53.45; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.06.12.53.08; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.10 +log +@try to use LN instead of hard link +@ +text +@############################################################################## +# Instructions to Make, for compilation of SendMail/SMTP-MTS library +# +# @@(MHWARNING) +# @@(#)$Id: sendmail,v 1.9 1992/11/18 16:51:59 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @@(MHOPTIONS) -I.. + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LFLAGS = -bhu $(OPTIONS) +CP = @@(CP) +LN = @@(LN) + +LIB = sendmts.a + +CFILES = hosts.c smail.c +OFILES = hosts.o smail.o + + +@@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o:; $(CC) $(CFLAGS) -c $*.c +@@BEGIN: NEWLOAD + -ld -x -r $@@ + mv a.out $@@ +@@END: NEWLOAD +@@BEGIN: OLDLOAD + ${CC} -s -o $@@ +@@END: OLDLOAD + + +@@END: OPTIM +############################################################################## +# Here it is... +############################################################################## + +all: $(LIB) +depend:; +lint: l-sendmts + +$(LIB): $(OFILES) + -mv $@@ z$@@ +@@BEGIN: RANLIB + ar r $@@ $(OFILES); ranlib $@@ +@@END: RANLIB +@@BEGIN: LORDER + ar r $@@ `lorder $(OFILES) | tsort` +@@END: LORDER + -rm -f ../libmts.a + -cd ..; $(LN) sendmail/$@@ libmts.a + -rm -f ../llib-lmts + -cd .. ; $(LN) sendmail/llib-lsendmail llib-lmts + -@@ls -l $@@ + -@@echo "SendMail/SMTP-MTS library built normally" + +l-sendmts:; lint $(LFLAGS) $(CFILES) $(LLIBS) + +hosts.o: Makefile +smail.o: Makefile smail.h + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f bboardsMH.m4 popMH.m4 + +clean: unclean + -rm -f *.o $(LIB) z$(LIB) + +unclean:; -rm -f _* :* core +@ + + +1.9 +log +@fixup the way @@(LN) works +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sendmail,v 1.8 1992/11/05 19:13:31 jromine Exp jromine $ +d61 1 +a61 1 + ln $@@ ../libmts.a +@ + + +1.8 +log +@use LN for llib files +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sendmail,v 1.7 1992/02/04 17:42:12 jromine Exp jromine $ +d63 1 +a63 1 + -$(LN) llib-lsendmail ../llib-lmts +@ + + +1.7 +log +@use CP instead of ld for llib in case of cross-device link +Stephen Gildea +@ +text +@d5 1 +a5 1 +# @@(#)$Id: sendmail,v 1.6 1990/04/05 15:15:48 sources Exp jromine $ +d20 1 +d63 1 +a63 1 + -$(CP) llib-lsendmail ../llib-lmts +@ + + +1.6 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d19 1 +d62 1 +a62 1 + -ln llib-lsendmail ../llib-lmts +@ + + +1.5 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +1.4 +log +@llib ln command failure shouldn't abort make +/. +@ +text +@d12 1 +a12 1 +CFLAGS = -O $(OPTIONS) +@ + + +1.3 +log +@make unconfig changes +@ +text +@d60 1 +a60 1 + ln llib-lsendmail ../llib-lmts +@ + + +1.2 +log +@ANSI Compilance +@ +text +@d74 3 +@ + + +1.1 +log +@Initial revision +@ +text +@d10 1 +a10 1 +CC = cc +d36 1 +a36 1 + cc -s -o $@@ +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/mts/mh b/docs/historical/mh-6.8.5/conf/makefiles/mts/mh new file mode 100644 index 0000000..a1c2114 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/mts/mh @@ -0,0 +1,87 @@ +############################################################################## +# Instructions to Make, for compilation of standalone-MTS library +# +# @(MHWARNING) +# @(#)$Id: mh,v 1.10 1992/11/20 17:14:07 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS= @(MHOPTIONS) -I.. + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = +CP = @(CP) +LN = @(LN) + +LIB = mhmts.a + +CFILES = hosts.c netmail.c uucp.c +OFILES = hosts.o netmail.o uucp.o + + +@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## +.c.o:; $(CC) $(CFLAGS) -c $*.c +@BEGIN: NEWLOAD + -ld -x -r $@ + mv a.out $@ +@END: NEWLOAD +@BEGIN: OLDLOAD + ${CC} -s -o $@ +@END: OLDLOAD + + +@END: OPTIM +############################################################################## +# Here it is... +############################################################################## + +all: $(LIB) +depend:; +lint: l-mhmts + +$(LIB): $(OFILES) + -mv $@ z$@ +@BEGIN: RANLIB + ar r $@ $(OFILES); ranlib $@ +@END: RANLIB +@BEGIN: LORDER + ar r $@ `lorder $(OFILES) | tsort` +@END: LORDER + -rm -f ../libmts.a + -cd ..; $(LN) mh/$@ libmts.a + -rm -f ../llib-lmts + -cd .. ; $(LN) mh/llib-lmhmts llib-lmts + -@ls -l $@ + -@echo "standalone-MTS library built normally" + +l-mhmts:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +hosts.o: Makefile +netmail.o: Makefile +uucp.o: Makefile + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f *.o $(LIB) z$(LIB) + +unclean:; -rm -f _* :* core diff --git a/docs/historical/mh-6.8.5/conf/makefiles/mts/mmdf b/docs/historical/mh-6.8.5/conf/makefiles/mts/mmdf new file mode 100644 index 0000000..566f7d2 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/mts/mmdf @@ -0,0 +1,117 @@ +############################################################################## +# Instructions to Make, for compilation of MMDF-MTS library +# +# @(MHWARNING) +# @(#)$Id: mmdf,v 1.11 1993/12/06 18:11:49 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @(MHOPTIONS) -I.. + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = +CP = @(CP) +LN = @(LN) + +LIB = mmdfmts.a + +CFILES = hosts.c +OFILES = hosts.o + + +@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o:; $(CC) $(CFLAGS) -c $*.c +@BEGIN: NEWLOAD + -ld -x -r $@ + mv a.out $@ +@END: NEWLOAD +@BEGIN: OLDLOAD + ${CC} -s -o $@ +@END: OLDLOAD + + +@END: OPTIM +############################################################################## +# Here it is... +############################################################################## + +all: $(LIB) +depend:; +lint: l-mmdf + +@BEGIN: MMDFIMTS +$(LIB): $(OFILES) mmdf_lib.a util_lib.a + -mv $(LIB) z$(LIB) + -rm -fr tmp + mkdir tmp mmdf util + ln hosts.o mmdf_lib.a util_lib.a tmp + cd mmdf; ar x ../mmdf_lib.a; ln *.o ../tmp + cd util; ar x ../util_lib.a; ln *.o ../tmp + -@rm -f tmp/signal.o #dont want 4.1 signal package +@BEGIN: RANLIB + cd tmp; ar r ../$@ *.o; ranlib $@ +@END: RANLIB +@BEGIN: LORDER + cd tmp; ar r ../$@ `lorder *.o | tsort` +@END: LORDER + rm -fr tmp mmdf util + -rm -f ../libmts.a + -cd ..; $(LN) mmdf/$@ libmts.a + -rm -f ../llib-lmts + -cd .. ; $(LN) mmdf/llib-lmmdf llib-lmts + -@ls -l $@ + -@echo "MMDFI-MTS library built normally" +@END: MMDFIMTS + +@BEGIN: MMDFIIMTS +$(LIB): $(OFILES) libmmdf.a + -mv $(LIB) z$(LIB) +@BEGIN: RANLIB + cp libmmdf.a $@ + ar r $@ hosts.o; ranlib $@ +@END: RANLIB +@BEGIN: LORDER + mkdir tmp + cd tmp; ar x ../libmmdf.a + ln hosts.o tmp + cd tmp; ar r ../$@ `lorder *.o | tsort` + rm -fr tmp +@END: LORDER + -rm -f ../libmts.a + -cd ..; $(LN) mmdf/$@ libmts.a + -rm -f ../llib-lmts + -cd ..; $(LN) mmdf/llib-lmmdf llib-lmts + -@ls -l $@ + -@echo "MMDFII-MTS library built normally" +@END: MMDFIIMTS + +l-mmdf:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +hosts.o: Makefile + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f *.o $(LIB) z$(LIB) + +unclean:; -rm -f _* :* core diff --git a/docs/historical/mh-6.8.5/conf/makefiles/mts/sendmail b/docs/historical/mh-6.8.5/conf/makefiles/mts/sendmail new file mode 100644 index 0000000..781791e --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/mts/sendmail @@ -0,0 +1,86 @@ +############################################################################## +# Instructions to Make, for compilation of SendMail/SMTP-MTS library +# +# @(MHWARNING) +# @(#)$Id: sendmail,v 1.10 1992/11/20 17:14:07 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @(MHOPTIONS) -I.. + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LFLAGS = -bhu $(OPTIONS) +CP = @(CP) +LN = @(LN) + +LIB = sendmts.a + +CFILES = hosts.c smail.c +OFILES = hosts.o smail.o + + +@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o:; $(CC) $(CFLAGS) -c $*.c +@BEGIN: NEWLOAD + -ld -x -r $@ + mv a.out $@ +@END: NEWLOAD +@BEGIN: OLDLOAD + ${CC} -s -o $@ +@END: OLDLOAD + + +@END: OPTIM +############################################################################## +# Here it is... +############################################################################## + +all: $(LIB) +depend:; +lint: l-sendmts + +$(LIB): $(OFILES) + -mv $@ z$@ +@BEGIN: RANLIB + ar r $@ $(OFILES); ranlib $@ +@END: RANLIB +@BEGIN: LORDER + ar r $@ `lorder $(OFILES) | tsort` +@END: LORDER + -rm -f ../libmts.a + -cd ..; $(LN) sendmail/$@ libmts.a + -rm -f ../llib-lmts + -cd .. ; $(LN) sendmail/llib-lsendmail llib-lmts + -@ls -l $@ + -@echo "SendMail/SMTP-MTS library built normally" + +l-sendmts:; lint $(LFLAGS) $(CFILES) $(LLIBS) + +hosts.o: Makefile +smail.o: Makefile smail.h + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f bboardsMH.m4 popMH.m4 + +clean: unclean + -rm -f *.o $(LIB) z$(LIB) + +unclean:; -rm -f _* :* core diff --git a/docs/historical/mh-6.8.5/conf/makefiles/mtsM b/docs/historical/mh-6.8.5/conf/makefiles/mtsM new file mode 100644 index 0000000..e66537e --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/mtsM @@ -0,0 +1,55 @@ +############################################################################## +# Instructions to Make, for compilation of MTS-specific libraries +# +# @(MHWARNING) +# @(#)$Id: mtsM,v 2.3 90/04/18 13:47:30 sources Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +@BEGIN: MHMTS +MTS = mh +@END: MHMTS +@BEGIN: MMDFMTS +MTS = mmdf +@END: MMDFMTS +@BEGIN: SENDMTS +MTS = sendmail +@END: SENDMTS + +LIB = libmts.a +LLIB = llib-lmts + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + + +############################################################################## +# Generate MTS-specific library +############################################################################## + +ALL = $(MTS) + +all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(ALL); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(ALL); do (cd $$d; $(MAKE) lint); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +DIRS = mh mmdf sendmail + +unconfig:; -rm -f $(LIB) $(LLIB) + for d in $(DIRS); do (cd $$d; $(MAKE) unconfig); done + -rm -f Makefile + +distribution:; -rm -f $(LIB) $(LLIB) + for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done + +clean:; -rm -f $(LIB) $(LLIB) + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done diff --git a/docs/historical/mh-6.8.5/conf/makefiles/papers b/docs/historical/mh-6.8.5/conf/makefiles/papers new file mode 100644 index 0000000..0c2b68f --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/papers @@ -0,0 +1,29 @@ +############################################################################## +# Instructions to Make, for compilation of MH papers +# +# @(MHWARNING) +# @(#)$Id: papers,v 2.6 1992/12/02 21:57:34 jromine Exp $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + +DIRS = bboards beginners changes mh4 mh4mm mh5 mh6.5 \ + multifarious mznet realwork trusted tutorial + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +all:; for d in $(DIRS); do (cd $$d; $(MAKE)); done + +unconfig: distribution + -rm -f Makefile + +distribution:; for d in $(DIRS); do \ + (cd $$d; $(MAKE) distribution); done + +clean:; for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; for d in $(DIRS); do (cd $$d; $(MAKE) clean); done diff --git a/docs/historical/mh-6.8.5/conf/makefiles/sbr b/docs/historical/mh-6.8.5/conf/makefiles/sbr new file mode 100644 index 0000000..5ba5a02 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/sbr @@ -0,0 +1,499 @@ +############################################################################## +# Instructions to Make, for compilation of MH modules +# +# @(MHWARNING) +# @(#)$Id: sbr,v 2.21 1993/02/26 19:01:31 jromine Exp $ +############################################################################## + +OPTIONS = @(MHOPTIONS) + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + + +@BEGIN: STDLIB +LIBS = libmh.a +@END: STDLIB +@BEGIN: SHAREDLIB +@BEGIN: SUN4SHLIB +LIBSA = libmh.sa +@END: SUN4SHLIB +LIBS = shared libmh.a libmh.so $(LIBSA) +SLIBVER = @(SLIBVER) +SLIBDIR = $(DESTDIR)@(SLIBDIR) +SLFLAGS= @(SLFLAGS) +@END: SHAREDLIB + +PGMPROT = 0755 + +CFILES = add.c adios.c admonish.c addrsbr.c advertise.c advise.c \ + ambigsw.c atooi.c brkstring.c closefds.c concat.c copy.c \ + copyip.c cpydata.c cpydgst.c discard.c done.c fdcompare.c \ + gans.c getans.c getanswer.c getcpy.c help.c fmtcompile.c \ + formataddr.c formatsbr.c m_atoi.c m_backup.c m_convert.c \ + m_delete.c m_draft.c m_find.c m_fmsg.c m_foil.c m_getdefs.c \ + m_getfld.c m_getfolder.c m_gmprot.c m_gmsg.c m_maildir.c \ + m_name.c m_readefs.c m_remsg.c m_replace.c m_scratch.c \ + m_seq.c m_seqbits.c m_seqflag.c m_seqnew.c m_setcur.c \ + m_setseq.c m_setvis.c m_sync.c m_tmpfil.c m_update.c \ + makedir.c path.c peekc.c pidwait.c pidstatus.c \ + printsw.c push.c putenv.c pwd.c refile.c remdir.c r1bindex.c \ +@BEGIN: NORUSERPASS + ruserpass.c \ +@END: NORUSERPASS + showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \ + uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c + + +OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \ + ambigsw.o atooi.o brkstring.o closefds.o concat.o copy.o \ + copyip.o cpydata.o cpydgst.o discard.o done.o fdcompare.o \ + gans.o getans.o getanswer.o getcpy.o help.o fmtcompile.o \ + formataddr.o formatsbr.o m_atoi.o m_backup.o m_convert.o \ + m_delete.o m_draft.o m_find.o m_fmsg.o m_foil.o m_getdefs.o \ + m_getfld.o m_getfolder.o m_gmprot.o m_gmsg.o m_maildir.o \ + m_name.o m_readefs.o m_remsg.o m_replace.o m_scratch.o \ + m_seq.o m_seqbits.o m_seqflag.o m_seqnew.o m_setcur.o \ + m_setseq.o m_setvis.o m_sync.o m_tmpfil.o m_update.o \ + makedir.o path.o peekc.o pidwait.o pidstatus.o \ + printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o \ +@BEGIN: NORUSERPASS + ruserpass.o \ +@END: NORUSERPASS + showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \ + uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o + +@BEGIN: SHAREDLIB +ODEFS = formatdef.o m_msgdef.o +@END: SHAREDLIB + +@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o: +@BEGIN: SHAREDLIB + -rm -f $@ shared/$@ + $(CC) $(CFLAGS) -c $(SLFLAGS) $*.c + mv $@ shared/$@ + -rm -f $@ +@END: SHAREDLIB + $(CC) $(CFLAGS) -c $*.c +@BEGIN: NEWLOAD + -ld -x -r $@ + mv a.out $@ +@END: NEWLOAD +@BEGIN: OLDLOAD + cc -s -o $@ +@END: OLDLOAD + +@END: OPTIM +############################################################################## +# Generate MH subroutine library +############################################################################## + +all: $(LIBS) + +libmh.a: $(OFILES) + -mv $@ z$@ +@BEGIN: RANLIB + ar r $@ $(OFILES); ranlib $@ +@END: RANLIB +@BEGIN: LORDER + ar r $@ `lorder $(OFILES) | tsort` +@END: LORDER + -@ls -l $@ + -@echo "MH library built normally" + +@BEGIN: SHAREDLIB +libmh.so: $(OFILES) + -mv -f $@ z$@ +@BEGIN: SUN4SHLIB + (cd shared; ld -o ../$@ -assert pure-text $(OFILES)) +@END: SUN4SHLIB +@BEGIN: SYS5SHLIB + (cd shared; ld -G -o ../$@ -h $@.$(SLIBVER) $(OFILES)) +@END: SYS5SHLIB + -@rm -f $@.$(SLIBVER) + ln $@ $@.$(SLIBVER) + -@ls -l $@* + -@echo "MH shared library built normally" + +@BEGIN: SUN4SHLIB +libmh.sa: $(ODEFS) + -mv $@ z$@ +@BEGIN: RANLIB + ar r $@ $(ODEFS); ranlib $@ +@END: RANLIB +@BEGIN: LORDER + ar r $@ `lorder $(ODEFS) | tsort` +@END: LORDER + -@rm -f $@.$(SLIBVER) + ln $@ $@.$(SLIBVER) + -@ls -l $@* + -@echo "MH data interface description built normally" +@END: SUN4SHLIB + +shared:; @if [ -d shared ]; then exit 0; else set -x; mkdir shared; fi +@END: SHAREDLIB + +############################################################################## +# Miscellaneous tasks +############################################################################## + +@BEGIN: SHAREDLIB +inst-lib: libmh.so $(LIBSA) + -rm -f $(SLIBDIR)/libmh.so.$(SLIBVER) + cp libmh.so.$(SLIBVER) $(SLIBDIR)/libmh.so.$(SLIBVER) + -@chmod $(PGMPROT) $(SLIBDIR)/libmh.so.$(SLIBVER) + -@ls -l $(SLIBDIR)/libmh.so.* + -@echo "Shared library installed normally" + -@echo "" +@BEGIN: SUN4SHLIB + -rm -f $(SLIBDIR)/libmh.sa.$(SLIBVER) + cp libmh.sa.$(SLIBVER) $(SLIBDIR)/libmh.sa.$(SLIBVER) + -@chmod $(PGMPROT) $(SLIBDIR)/libmh.sa.$(SLIBVER) +@BEGIN: RANLIB + cd $(SLIBDIR); ranlib libmh.sa.$(SLIBVER) +@END: RANLIB + -@ls -l $(SLIBDIR)/libmh.sa.* + -@echo "Data interface description installed normally" + -@echo "" +@END: SUN4SHLIB +@END: SHAREDLIB +@BEGIN: STDLIB +inst-lib:; +@END: STDLIB + +lint:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +unconfig: distribution + -rm -f Makefile + -rm -rf shared + +distribution: clean + -rm -f version + +clean: unclean + -rm -f *.o libmh.* +@BEGIN: SHAREDLIB + -rm -f shared/*.o +@END: SHAREDLIB + +unclean:; -rm -f zlibmh.* _* :* core eddep makedep + + +############################################################################## +# MODIFICATIONS -- Adding a new routine (e.g., pickle) +############################################################################## + +# +# Add any new .c files to CFILES +# Add any new .o files to OFILES +# +# +# Under the "Dependencies" section, add a line for pickle.o +# pickle.o: ../h/mh.h +# +# If other includes are read, modify this rule to reflect this +# Of course, if pickle.c doesn't include ../h/mh.h (or any +# other includes), you can leave this line out altogether + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = $(CFILES) + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +add.o: add.c +add.o: ../h/mh.h +#add.o: /usr/include/stdio.h +adios.o: adios.c +adios.o: ../h/mh.h +admonish.o: admonish.c +admonish.o: ../h/mh.h +addrsbr.o: addrsbr.c +addrsbr.o: ../h/mh.h +addrsbr.o: ../h/addrsbr.h +addrsbr.o: ../zotnet/mf.h +#addrsbr.o: /usr/include/stdio.h +#addrsbr.o: /usr/include/ctype.h +advertise.o: advertise.c +advertise.o: ../h/mh.h +#advertise.o: /usr/include/stdio.h +#advertise.o: /usr/include/sys/types.h +#advertise.o: /usr/include/sys/uio.h +advise.o: advise.c +advise.o: ../h/mh.h +ambigsw.o: ambigsw.c +ambigsw.o: ../h/mh.h +#ambigsw.o: /usr/include/stdio.h +atooi.o: atooi.c +brkstring.o: brkstring.c +brkstring.o: ../h/mh.h +closefds.o: closefds.c +closefds.o: ../h/mh.h +#closefds.o: /usr/include/stdio.h +concat.o: concat.c +concat.o: ../h/mh.h +#concat.o: /usr/include/stdio.h +#concat.o: /usr/include/varargs.h +copy.o: copy.c +copyip.o: copyip.c +cpydata.o: cpydata.c +cpydata.o: ../h/mh.h +#cpydata.o: /usr/include/stdio.h +cpydgst.o: cpydgst.c +cpydgst.o: ../h/mh.h +#cpydgst.o: /usr/include/stdio.h +discard.o: discard.c +discard.o: ../h/mh.h +#discard.o: /usr/include/stdio.h +#discard.o: /usr/include/sgtty.h +#discard.o: /usr/include/sys/types.h +#discard.o: /usr/include/termio.h +#discard.o: /usr/include/sys/ioctl.h +done.o: done.c +done.o: ../h/mh.h +fdcompare.o: fdcompare.c +fdcompare.o: ../h/mh.h +#fdcompare.o: /usr/include/stdio.h +gans.o: gans.c +gans.o: ../h/mh.h +#gans.o: /usr/include/stdio.h +getans.o: getans.c +getans.o: ../h/mh.h +#getans.o: /usr/include/setjmp.h +#getans.o: /usr/include/signal.h +#getans.o: /usr/include/stdio.h +getanswer.o: getanswer.c +getanswer.o: ../h/mh.h +#getanswer.o: /usr/include/stdio.h +getcpy.o: getcpy.c +getcpy.o: ../h/mh.h +#getcpy.o: /usr/include/stdio.h +help.o: help.c +help.o: ../h/mh.h +#help.o: /usr/include/stdio.h +formatsbr.o: formatsbr.c +formatsbr.o: ../h/mh.h +formatsbr.o: ../h/addrsbr.h +formatsbr.o: ../h/formatsbr.h +formatsbr.o: ../zotnet/tws.h +formatsbr.o: ../h/fmtcompile.h +#formatsbr.o: /usr/include/ctype.h +#formatsbr.o: /usr/include/stdio.h +#formatsbr.o: /usr/include/sys/types.h +#formatsbr.o: /usr/include/sys/stat.h +fmtcompile.o: fmtcompile.c +fmtcompile.o: ../h/mh.h +fmtcompile.o: ../h/addrsbr.h +fmtcompile.o: ../h/formatsbr.h +fmtcompile.o: ../zotnet/tws.h +fmtcompile.o: ../h/fmtcompile.h +#fmtcompile.o: /usr/include/ctype.h +#fmtcompile.o: /usr/include/stdio.h +#fmtcompile.o: /usr/include/sys/types.h +#fmtcompile.o: /usr/include/sys/stat.h +formataddr.o: formataddr.c +formataddr.o: ../h/mh.h +formataddr.o: ../h/addrsbr.h +formataddr.o: ../h/formatsbr.h +#formataddr.o: /usr/include/ctype.h +#formataddr.o: /usr/include/stdio.h +m_atoi.o: m_atoi.c +m_atoi.o: ../h/mh.h +m_backup.o: m_backup.c +m_backup.o: ../h/mh.h +#m_backup.o: /usr/include/stdio.h +m_convert.o: m_convert.c +m_convert.o: ../h/mh.h +#m_convert.o: /usr/include/stdio.h +#m_convert.o: /usr/include/ctype.h +m_delete.o: m_delete.c +m_delete.o: ../h/mh.h +#m_delete.o: /usr/include/stdio.h +m_draft.o: m_draft.c +m_draft.o: ../h/mh.h +#m_draft.o: /usr/include/errno.h +#m_draft.o: /usr/include/stdio.h +#m_draft.o: /usr/include/sys/types.h +#m_draft.o: /usr/include/sys/stat.h +m_find.o: m_find.c +m_find.o: ../h/mh.h +#m_find.o: /usr/include/stdio.h +m_fmsg.o: m_fmsg.c +m_fmsg.o: ../h/mh.h +#m_fmsg.o: /usr/include/stdio.h +m_foil.o: m_foil.c +m_foil.o: ../h/mh.h +#m_foil.o: /usr/include/stdio.h +m_getdefs.o: m_getdefs.c +m_getdefs.o: ../h/mh.h +#m_getdefs.o: /usr/include/stdio.h +#m_getdefs.o: /usr/include/errno.h +#m_getdefs.o: /usr/include/sys/types.h +#m_getdefs.o: /usr/include/sys/stat.h +#m_getdefs.o: /usr/include/pwd.h +m_getfld.o: m_getfld.c +m_getfld.o: ../h/mh.h +#m_getfld.o: /usr/include/stdio.h +m_getfld.o: ../zotnet/mts.h +#m_getfld.o: /usr/include/ctype.h +m_getfolder.o: m_getfolder.c +m_getfolder.o: ../h/mh.h +#m_getfolder.o: /usr/include/stdio.h +m_gmprot.o: m_gmprot.c +m_gmprot.o: ../h/mh.h +#m_gmprot.o: /usr/include/stdio.h +m_gmsg.o: m_gmsg.c +m_gmsg.o: ../h/mh.h +m_gmsg.o: ../h/local.h +#m_gmsg.o: /usr/include/stdio.h +#m_gmsg.o: /usr/include/sys/types.h +#m_gmsg.o: /usr/include/sys/stat.h +#m_gmsg.o: /usr/include/ndir.h +#m_gmsg.o: /usr/include/dir.h +#m_gmsg.o: /usr/include/sys/dir.h +m_maildir.o: m_maildir.c +m_maildir.o: ../h/mh.h +#m_maildir.o: /usr/include/stdio.h +m_name.o: m_name.c +m_name.o: ../h/mh.h +#m_name.o: /usr/include/stdio.h +m_readefs.o: m_readefs.c +m_readefs.o: ../h/mh.h +#m_readefs.o: /usr/include/stdio.h +m_remsg.o: m_remsg.c +m_remsg.o: ../h/mh.h +#m_remsg.o: /usr/include/stdio.h +m_replace.o: m_replace.c +m_replace.o: ../h/mh.h +#m_replace.o: /usr/include/stdio.h +m_scratch.o: m_scratch.c +m_scratch.o: ../h/mh.h +#m_scratch.o: /usr/include/stdio.h +m_seq.o: m_seq.c +m_seq.o: ../h/mh.h +#m_seq.o: /usr/include/stdio.h +m_seqbits.o: m_seqbits.c +m_seqbits.o: ../h/mh.h +#m_seqbits.o: /usr/include/stdio.h +m_seqflag.o: m_seqflag.c +m_seqflag.o: ../h/mh.h +m_seqnew.o: m_seqnew.c +m_seqnew.o: ../h/mh.h +#m_seqnew.o: /usr/include/ctype.h +#m_seqnew.o: /usr/include/stdio.h +m_setcur.o: m_setcur.c +m_setcur.o: ../h/mh.h +#m_setcur.o: /usr/include/stdio.h +m_setseq.o: m_setseq.c +m_setseq.o: ../h/mh.h +#m_setseq.o: /usr/include/stdio.h +m_setvis.o: m_setvis.c +m_setvis.o: ../h/mh.h +#m_setvis.o: /usr/include/stdio.h +m_sync.o: m_sync.c +m_sync.o: ../h/mh.h +#m_sync.o: /usr/include/stdio.h +m_tmpfil.o: m_tmpfil.c +m_tmpfil.o: ../h/mh.h +#m_tmpfil.o: /usr/include/stdio.h +m_update.o: m_update.c +m_update.o: ../h/mh.h +#m_update.o: /usr/include/stdio.h +#m_update.o: /usr/include/signal.h +makedir.o: makedir.c +makedir.o: ../h/mh.h +#makedir.o: /usr/include/stdio.h +path.o: path.c +path.o: ../h/mh.h +#path.o: /usr/include/stdio.h +peekc.o: peekc.c +peekc.o: ../h/mh.h +#peekc.o: /usr/include/stdio.h +pidwait.o: pidwait.c +pidwait.o: ../h/mh.h +#pidwait.o: /usr/include/signal.h +#pidwait.o: /usr/include/stdio.h +#pidwait.o: /usr/include/sys/wait.h +pidstatus.o: pidstatus.c +pidstatus.o: ../h/mh.h +#pidstatus.o: /usr/include/signal.h +#pidstatus.o: /usr/include/stdio.h +printsw.o: printsw.c +printsw.o: ../h/mh.h +push.o: push.c +push.o: ../h/mh.h +#push.o: /usr/include/stdio.h +#push.o: /usr/include/signal.h +putenv.o: putenv.c +putenv.o: ../h/mh.h +#putenv.o: /usr/include/stdio.h +pwd.o: pwd.c +pwd.o: ../h/mh.h +pwd.o: ../h/local.h +#pwd.o: /usr/include/stdio.h +#pwd.o: /usr/include/sys/types.h +#pwd.o: /usr/include/sys/stat.h +#pwd.o: /usr/include/ndir.h +#pwd.o: /usr/include/dir.h +refile.o: refile.c +refile.o: ../h/mh.h +#refile.o: /usr/include/stdio.h +remdir.o: remdir.c +remdir.o: ../h/mh.h +#remdir.o: /usr/include/stdio.h +r1bindex.o: r1bindex.c +showfile.o: showfile.c +showfile.o: ../h/mh.h +#showfile.o: /usr/include/stdio.h +smatch.o: smatch.c +smatch.o: ../h/mh.h +sprintb.o: sprintb.c +sprintb.o: ../h/mh.h +#sprintb.o: /usr/include/stdio.h +ssequal.o: ssequal.c +strindex.o: strindex.c +trimcpy.o: trimcpy.c +trimcpy.o: ../h/mh.h +#trimcpy.o: /usr/include/ctype.h +#trimcpy.o: /usr/include/stdio.h +uleq.o: uleq.c +uprf.o: uprf.c +vfgets.o: vfgets.c +vfgets.o: ../h/mh.h +#vfgets.o: /usr/include/stdio.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/bboards,v b/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/bboards,v new file mode 100644 index 0000000..9c4469c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/bboards,v @@ -0,0 +1,602 @@ +head 2.12; +access; +symbols; +locks; strict; + + +2.12 +date 92.11.04.03.30.31; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 92.10.31.05.34.54; author jromine; state Exp; +branches; +next 2.10; + +2.10 +date 92.02.11.05.14.33; author jromine; state Exp; +branches; +next 2.9; + +2.9 +date 90.12.18.13.34.38; author mh; state Exp; +branches; +next 2.8; + +2.8 +date 90.12.18.13.26.21; author mh; state Exp; +branches; +next 2.7; + +2.7 +date 90.04.05.15.16.08; author sources; state Exp; +branches; +next 2.6; + +2.6 +date 90.03.28.11.17.33; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.03.21.10.01.44; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.20.20.50.11; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.03.12.11.27.05; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.21.16.56.09; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.06.12.54.41; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.42; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.48.03; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.12 +log +@make sure sun4 shared libs load correct version of library. +@ +text +@############################################################################## +# Instructions to Make, for BBoards support processes +# +# @@(MHWARNING) +# @@(#)$Id: bboards,v 2.11 1992/10/31 05:34:54 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +OPTIONS = @@(MHOPTIONS) -I.. +LDOPTIONS= @@(LDOPTIONS) +LDOPTLIB= @@(LDOPTLIB) +BBDIR = @@(BBHOME) +BBETC = $(BBDIR)/etc +CHOWN = @@(MHCHOWNPATH) +REMOVE = @@(MHREMOVE) +BBUID = bboards +@@BEGIN: BBSERVER +ALL = bbaka bbexp bbtar +INST-ALL= inst-bboards inst-bbaka inst-bbexp inst-bbtar \ + inst-daily inst-weekly inst-cshell inst-profile \ + inst-makebboards +TALL = BBoards xbbaka xbbexp xbbtar bboards.daily bboards.weekly \ + MakeBBoards cshrc mh_profile +@@END: BBSERVER + +CC = @@(MHCOMPILER) +@@BEGIN: STDLIB +LD = @@(MHCOMPILER) +@@END: STDLIB +@@BEGIN: SHAREDLIB +LD = LD_LIBRARY_PATH=../../sbr @@(MHCOMPILER) +@@END: SHAREDLIB +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +@@BEGIN: STDLIB +LIBES2 = ../../config/config.o ../../config/version.o \ + ../../sbr/libmh.a $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = $(LIBES2) $(LDOPTLIB) +@@END: STDLIB +@@BEGIN: SUN4SHLIB +SLIBVER = .@@(SLIBVER) +@@END: SUN4SHLIB +@@BEGIN: SHAREDLIB +LIBES2 = ../../config/config.o ../../config/version.o \ + ../../sbr/libmh.so $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = $(LIBES2) $(LDOPTLIB) +LDLIBS2 = ../../config/config.o ../../config/version.o \ + -Bdynamic @@(SLDFLAG) -lmh$(SLIBVER) $(LIBES1) $(LDOPTLIB) +@@END: SHAREDLIB + +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS1 = ../../zotnet/llib-lzotnet +LLIBS2 = ../../sbr/llib-lmh $(LLIBS1) + + +###################################################################### +# Here it is... +###################################################################### + +all: $(ALL) + +lint: l-bbaka l-bbexp l-bbtar + +install: inst-all clean + +inst-all: $(INST-ALL) + +tar: $(ALL) +@@BEGIN: BBSERVER + @@touch $(TALL) + @@make -n inst-all > MAKEBB + @@chmod +x MAKEBB + tar $(TFLAGS) MAKEBB $(TALL) + @@rm -f MAKEBB +@@END: BBSERVER + +uninstall:; +@@BEGIN: BBSERVER + -cd (BBDIR); \ + rm -f BBoards .cshrc .mh_profile + -cd (ETCDIR); \ + rm -f bbaka bbexp bbtar bboards.daily \ + bboards.weekly Makefile context +@@END: BBSERVER + + +###################################################################### +# Generate BBoards Support files and processes +###################################################################### + +inst-bboards: $(BBDIR)/BBoards + +$(BBDIR)/BBoards: BBoards + -@@if [ ! -f $@@ ]; then \ + $(REMOVE) $@@ zBBoards; \ + cp BBoards $@@; \ + else \ + echo "Will not overwrite existing $@@"; \ + fi + -$(CHOWN) $(BBUID) $@@ + -@@ls -l $@@ + -@@echo "" + + +###################################################################### +# bbaka +###################################################################### + +inst-bbaka: $(BBETC)/bbaka + +$(BBETC)/bbaka: xbbaka + -$(REMOVE) $@@ zbbaka + cp xbbaka $@@ + -$(CHOWN) $(BBUID) $@@ + -@@ls -l $@@ + -@@echo "" + +bbaka: xbbaka + +xbbaka: bbaka.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@@ bbaka.o $(LDLIBS1) + +l-bbaka:; $(LINT) $(LFLAGS) bbaka.c $(LLIBS1) + + +###################################################################### +# bbexp +###################################################################### + +inst-bbexp: $(BBETC)/bbexp + +$(BBETC)/bbexp: xbbexp + -$(REMOVE) $@@ zbbexp + cp xbbexp $@@ + -$(CHOWN) $(BBUID) $@@ + -@@ls -l $@@ + -@@echo "" + +bbexp: xbbexp + +xbbexp: bbexp.o ../../uip/dropsbr.o $(LIBES2) + $(LD) $(LDFLAGS) -o $@@ bbexp.o ../../uip/dropsbr.o $(LDLIBS2) + +l-bbexp:; $(LINT) $(LFLAGS) bbexp.c ../../uip/dropsbr.c $(LLIBS2) + + +###################################################################### +# bbtar +###################################################################### + +inst-bbtar: $(BBETC)/bbtar + +$(BBETC)/bbtar: xbbtar + -$(REMOVE) $@@ zbbtar + cp xbbtar $@@ + -$(CHOWN) $(BBUID) $@@ + -@@ls -l $@@ + -@@echo "" + +bbtar: xbbtar + +xbbtar: bbtar.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@@ bbtar.o $(LDLIBS1) + +l-bbtar:; $(LINT) $(LFLAGS) bbtar.c $(LLIBS1) + + +###################################################################### +# bboards.daily +###################################################################### + +inst-daily: $(BBETC)/bboards.daily + +$(BBETC)/bboards.daily: bboards.daily + -$(REMOVE) $@@ zbboards.daily + cp bboards.daily $@@ + -$(CHOWN) $(BBUID) $@@ + -@@chmod +x $@@ + -@@ls -l $@@ + -@@echo "" + + +###################################################################### +# bboards.weekly +###################################################################### + +inst-weekly: $(BBETC)/bboards.weekly + +$(BBETC)/bboards.weekly: bboards.weekly + -$(REMOVE) $@@ zbboards.weekly + cp bboards.weekly $@@ + -$(CHOWN) $(BBUID) $@@ + -@@chmod +x $@@ + -@@ls -l $@@ + -@@echo "" + + +###################################################################### +# MakeBBoards +###################################################################### + +inst-makebboards: $(BBETC)/Makefile + +$(BBETC)/Makefile: MakeBBoards + -$(REMOVE) $@@ zMakeBBoards + cp MakeBBoards $@@ + -$(CHOWN) $(BBUID) $@@ + -@@ls -l $@@ + -@@echo "" + + +###################################################################### +# .cshrc +###################################################################### + +inst-cshell: $(BBDIR)/.cshrc + +$(BBDIR)/.cshrc: cshrc + -$(REMOVE) $@@ z.cshrc + cp cshrc $@@ + -$(CHOWN) $(BBUID) $@@ + -@@ls -l $@@ + -@@echo "" + + +###################################################################### +# .mh_profile +###################################################################### + +inst-profile: $(BBDIR)/.mh_profile + +$(BBDIR)/.mh_profile: mh_profile + -$(REMOVE) $@@ z.mh_profile + cp mh_profile $@@ + -$(CHOWN) $(BBUID) $@@ + -@@ls -l $@@ + -@@touch $(BBETC)/context + -$(CHOWN) $(BBUID) $(BBETC)/context + -@@echo "" + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f mmdfII/bboards/lock.c + -rm -f Makefile + +distribution: clean + -rm -f bboards.daily bboards.weekly crontab MakeBBoards + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEBB + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = bbaka bbexp bbtar + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +bbaka.o: bbaka.c +bbaka.o: ../../h/strings.h +bbaka.o: ../../zotnet/bboards.h +#bbaka.o: /usr/include/stdio.h +bbaka.o: ../../zotnet/mts.h +bbexp.o: bbexp.c +bbexp.o: ../../h/mh.h +bbexp.o: ../../h/dropsbr.h +bbexp.o: ../../zotnet/bboards.h +#bbexp.o: /usr/include/pwd.h +#bbexp.o: /usr/include/signal.h +#bbexp.o: /usr/include/stdio.h +#bbexp.o: /usr/include/sys/types.h +#bbexp.o: /usr/include/sys/stat.h +#bbexp.o: /usr/include/stdio.h +bbexp.o: ../../zotnet/bboards.h +bbtar.o: bbtar.c +#bbtar.o: /usr/include/pwd.h +#bbtar.o: /usr/include/stdio.h +#bbtar.o: /usr/include/sys/types.h +#bbtar.o: /usr/include/sys/stat.h +bbtar.o: ../../zotnet/bboards.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +2.11 +log +@need to load with version.o & libmts.a for _version & _OfficialName +@ +text +@d5 1 +a5 1 +# @@(#)$Id: bboards,v 2.10 1992/02/11 05:14:33 jromine Exp jromine $ +d49 3 +d58 1 +a58 1 + -Bdynamic @@(SLDFLAG) -lmh $(LIBES1) $(LDOPTLIB) +@ + + +2.10 +log +@unconfig - remove lock.c +@ +text +@d5 1 +a5 1 +# @@(#)$Id: bboards,v 2.9 1990/12/18 13:34:38 mh Exp jromine $ +d42 1 +a42 1 +LIBES1 = ../../zotnet/libzot.a +d44 2 +a45 1 +LIBES2 = ../../config/config.o ../../sbr/libmh.a $(LIBES1) +d50 2 +a51 1 +LIBES2 = ../../config/config.o ../../sbr/libmh.so $(LIBES1) +d54 2 +a55 2 +LDLIBS2 = ../../config/config.o -Bdynamic @@(SLDFLAG) -lmh \ + $(LIBES1) $(LDOPTLIB) +@ + + +2.9 +log +@SLDFLAG +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: bboards,v 2.8 90/12/18 13:26:21 mh Exp Locker: mh $ +d253 1 +@ + + +2.8 +log +@fix LD_LIBRARY_PATH +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: bboards,v 2.7 90/04/05 15:16:08 sources Exp Locker: mh $ +d52 1 +a52 1 +LDLIBS2 = ../../config/config.o -Bdynamic -lmh \ +@ + + +2.7 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d29 6 +d52 1 +a52 1 +LDLIBS2 = ../../config/config.o -Bdynamic -L../../sbr -lmh \ +d127 1 +a127 1 + $(CC) $(LDFLAGS) -o $@@ bbaka.o $(LDLIBS1) +d148 1 +a148 1 + $(CC) $(LDFLAGS) -o $@@ bbexp.o ../../uip/dropsbr.o $(LDLIBS2) +d169 1 +a169 1 + $(CC) $(LDFLAGS) -o $@@ bbtar.o $(LDLIBS1) +@ + + +2.6 +log +@silence some stuff +@ +text +@d5 1 +@ + + +2.5 +log +@fix for "bbhome: none" +@ +text +@d93 1 +a93 1 + -if [ ! -f $@@ ]; then \ +@ + + +2.4 +log +@install "BBoards", but don't overwrite +@ +text +@d18 1 +a18 1 +@@BEGIN: BBOARDS +d25 1 +a25 1 +@@END: BBOARDS +d68 1 +a68 1 +@@BEGIN: BBOARDS +d74 1 +a74 1 +@@END: BBOARDS +d77 1 +a77 1 +@@BEGIN: BBOARDS +d83 1 +a83 1 +@@END: BBOARDS +@ + + +2.3 +log +@remove -O (put in mhconfig) +@ +text +@d20 1 +a20 1 +INST-ALL= inst-bbaka inst-bbexp inst-bbtar \ +d93 6 +a98 2 + -$(REMOVE) $@@ zBBoards + cp BBoards $@@ +@ + + +2.2 +log +@make unconfig changes +@ +text +@d29 1 +a29 1 +CFLAGS = -O $(OPTIONS) +@ + + +2.1 +log +@ANSI Compilance +@ +text +@d241 3 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d27 1 +a27 1 +CC = cc +@ + + +1.1 +log +@Initial revision +@ +text +@d20 1 +a20 1 +INST-ALL= inst-bboards inst-bbaka inst-bbexp inst-bbtar \ +d36 1 +d40 8 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/general,v b/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/general,v new file mode 100644 index 0000000..2c2ef21 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/general,v @@ -0,0 +1,804 @@ +head 1.20; +access; +symbols; +locks; strict; +comment @# @; + + +1.20 +date 95.12.06.20.57.55; author jromine; state Exp; +branches; +next 1.19; + +1.19 +date 93.08.20.15.56.25; author jromine; state Exp; +branches; +next 1.18; + +1.18 +date 92.10.28.18.56.06; author jromine; state Exp; +branches; +next 1.17; + +1.17 +date 92.10.26.16.38.00; author jromine; state Exp; +branches; +next 1.16; + +1.16 +date 92.10.16.21.36.34; author jromine; state Exp; +branches; +next 1.15; + +1.15 +date 92.02.14.16.25.03; author jromine; state Exp; +branches; +next 1.14; + +1.14 +date 92.02.09.21.29.00; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 92.01.31.22.48.43; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 92.01.31.21.37.07; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.01.31.16.38.59; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 90.04.05.15.16.25; author sources; state Exp; +branches; +next 1.9; + +1.9 +date 90.03.28.11.17.40; author sources; state Exp; +branches; +next 1.8; + +1.8 +date 90.03.21.09.57.11; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.03.20.20.33.18; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.03.20.20.30.34; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.15.21.13.57; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.15.21.05.13; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.15.16.48.07; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.21.16.56.14; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.06.12.54.15; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.20 +log +@pgp changes from mtr +@ +text +@############################################################################## +# Instructions to Make, for general support processes +# +# @@(MHWARNING) +# @@(#)$Id: general,v 1.19 1993/08/20 15:56:25 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +@@BEGIN: BBSERVER +BBUID = bboards +IOPTMISC= inst-bboards +UOPTMISC= BBoardAliases +TOPTMISC= BBoardAliases +@@END: BBSERVER +@@BEGIN: MIME +IOPTMIME= inst-mhndefs inst-viamail inst-pgpmime +UOPTMIME= mhn_defaults viamail +TOPTMIME= mhn_defaults viamail +@@END: MIME +REMOVE = @@(MHREMOVE) +FILPROT = 0644 +PGMPROT = 0755 +CP = @@(CP) + +TALL = MailAliases components digestcomps distcomps forwcomps \ + rcvdistcomps replcomps mhl.digest mhl.format mhl.forward \ + mhl.body mhl.headers scan.default scan.mailx scan.size \ + scan.time scan.timely packmbox $(TOPTMISC) $(TOPTMIME) + + +############################################################################## +# Generate miscellaneous stuff +############################################################################## + +all:; + +depend:; + +lint:; + +install: inst-all clean + +inst-all: inst-aliases inst-components inst-digestcomps inst-distcomps \ + inst-forwcomps inst-rcvdistcomps inst-replcomps inst-digest \ + inst-format inst-forward inst-body inst-headers inst-mailx \ + inst-default inst-size inst-time inst-timely \ + inst-packmbox $(IOPTMISC) $(IOPTMIME) + +tar:; @@touch $(TALL) + @@make -n inst-all > MAKEGEN + @@chmod +x MAKEGEN + tar $(TFLAGS) MAKEGEN $(TALL) + @@rm -f MAKEGEN + + +uninstall:; cd $(ETCDIR); \ + rm -f MailAliases components digestcomps distcomps forwcomps \ + rcvdistcomps replcomps mhl.digest mhl.format mhl.forward \ + mhl.body mhl.headers scan.default scan.mailx scan.size \ + scan.time scan.timely viamail packmbox \ + $(UOPTMISC) $(UOPTMIME) + + +############################################################################## +# Individual components +############################################################################## + +inst-aliases: $(ETCDIR)/MailAliases + +$(ETCDIR)/MailAliases: MailAliases + -@@if [ ! -f $@@ ]; then \ + $(REMOVE) $@@ zMailAliases; \ + $(CP) MailAliases $@@; \ + else \ + echo "Will not overwrite existing $@@"; \ + fi + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-components: $(ETCDIR)/components + +$(ETCDIR)/components: components + -$(REMOVE) $@@ zcomponents + $(CP) components $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-digestcomps: $(ETCDIR)/digestcomps + +$(ETCDIR)/digestcomps: digestcomps + -$(REMOVE) $@@ zdigestcomps + $(CP) digestcomps $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-distcomps: $(ETCDIR)/distcomps + +$(ETCDIR)/distcomps: distcomps + -$(REMOVE) $@@ zdistcomps + $(CP) distcomps $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-forwcomps: $(ETCDIR)/forwcomps + +$(ETCDIR)/forwcomps: forwcomps + -$(REMOVE) $@@ zforwcomps + $(CP) forwcomps $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-rcvdistcomps: $(ETCDIR)/rcvdistcomps + +$(ETCDIR)/rcvdistcomps: rcvdistcomps + -$(REMOVE) $@@ zrcvdistcomps + $(CP) rcvdistcomps $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-replcomps: $(ETCDIR)/replcomps + +$(ETCDIR)/replcomps: replcomps + -$(REMOVE) $@@ zreplcomps + $(CP) replcomps $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-digest: $(ETCDIR)/mhl.digest + +$(ETCDIR)/mhl.digest: mhl.digest + -$(REMOVE) $@@ zmhl.digest + $(CP) mhl.digest $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-format: $(ETCDIR)/mhl.format + +$(ETCDIR)/mhl.format: mhl.format + -$(REMOVE) $@@ zmhl.format + $(CP) mhl.format $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-forward: $(ETCDIR)/mhl.forward + +$(ETCDIR)/mhl.forward: mhl.forward + -$(REMOVE) $@@ zmhl.forward + $(CP) mhl.forward $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-body: $(ETCDIR)/mhl.body + +$(ETCDIR)/mhl.body: mhl.body + -$(REMOVE) $@@ zmhl.body + $(CP) mhl.body $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-headers: $(ETCDIR)/mhl.headers + +$(ETCDIR)/mhl.headers: mhl.headers + -$(REMOVE) $@@ zmhl.headers + cp mhl.headers $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-default: $(ETCDIR)/scan.default + +$(ETCDIR)/scan.default: scan.default + -$(REMOVE) $@@ zscan.default + $(CP) scan.default $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +inst-mailx: $(ETCDIR)/scan.mailx + +$(ETCDIR)/scan.mailx: scan.mailx + -$(REMOVE) $@@ zscan.mailx + $(CP) scan.mailx $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-size: $(ETCDIR)/scan.size + +$(ETCDIR)/scan.size: scan.size + -$(REMOVE) $@@ zscan.size + $(CP) scan.size $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-time: $(ETCDIR)/scan.time + +$(ETCDIR)/scan.time: scan.time + -$(REMOVE) $@@ zscan.time + $(CP) scan.time $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-timely: $(ETCDIR)/scan.timely + +$(ETCDIR)/scan.timely: scan.timely + -$(REMOVE) $@@ zscan.timely + $(CP) scan.timely $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-packmbox: $(ETCDIR)/packmbox + +$(ETCDIR)/packmbox: packmbox.sh + -$(REMOVE) $@@ zpackmbox.sh + cp packmbox.sh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-bboards: $(ETCDIR)/BBoardAliases + +$(ETCDIR)/BBoardAliases: BBoardAliases + -@@if [ ! -f $@@ ]; then \ + $(REMOVE) $@@ zBBoardAliases; \ + $(CP) BBoardAliases $@@; \ + else \ + echo "Will not overwrite existing $@@"; \ + fi + -@@chmod $(FILPROT) $@@ + -chown $(BBUID) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-viamail: $(ETCDIR)/viamail + +$(ETCDIR)/viamail: viamail.sh + -$(REMOVE) $@@ zviamail.sh + cp viamail.sh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-mhndefs: $(ETCDIR)/mhn_defaults + +$(ETCDIR)/mhn_defaults: true + -@@if [ ! -f $@@ ]; then \ + ./bootmhn.sh $(ETCDIR); \ + else \ + echo "Will not overwrite existing $@@"; \ + fi + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +inst-pgpmime: $(ETCDIR)/pgped.tcl $(BINDIR)/pgped $(BINDIR)/pgpshow + +$(ETCDIR)/pgped.tcl: pgped.tcl + -$(REMOVE) $@@ zpgped.tcl + cp pgped.tcl $@@ + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +$(BINDIR)/pgped: pgped.sh + -$(REMOVE) $@@ zpgped.sh + sed -e 's%@@LIB%$(ETCDIR)%' < pgped.sh > $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +$(BINDIR)/pgpshow: pgpshow.sh + -$(REMOVE) $@@ zpgpshow.sh + cp pgpshow.sh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f MailAliases + +clean: unclean + -rm -f x* + +unclean:; -rm -f z* _* :* core MAKEGEN + +true:; +@ + + +1.19 +log +@fixup from mtr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.18 1992/10/28 18:56:06 jromine Exp jromine $ +d18 1 +a18 1 +IOPTMIME= inst-mhndefs inst-viamail +d287 24 +@ + + +1.18 +log +@fix inst-viamail +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.17 1992/10/26 16:38:00 jromine Exp jromine $ +d281 1 +a281 1 + -if [ ! -f $@@ ]; then \ +@ + + +1.17 +log +@fixes for MIME install from MTR +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.16 1992/10/16 21:36:34 jromine Exp jromine $ +d18 1 +a18 1 +IOPTMIME= inst-mhndefs viamail +d48 1 +a48 1 + inst-default inst-size inst-time inst-timely inst-viamail \ +@ + + +1.16 +log +@include "true:" target +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.15 1992/02/14 16:25:03 jromine Exp jromine $ +d17 5 +d30 1 +a30 1 + scan.time scan.timely viamail packmbox $(TOPTMISC) +d49 1 +a49 1 + inst-packmbox $(IOPTMISC) +d63 1 +a63 1 + $(UOPTMISC) +a242 10 +inst-viamail: $(ETCDIR)/viamail + +$(ETCDIR)/viamail: viamail.sh + -$(REMOVE) $@@ zviamail.sh + cp viamail.sh $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +d264 23 +@ + + +1.15 +log +@add packmbox +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.14 1992/02/09 21:29:00 jromine Exp jromine $ +d287 2 +@ + + +1.14 +log +@add scan.default - duplicate of standard scan format string +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.13 1992/01/31 22:48:43 jromine Exp jromine $ +d25 1 +a25 1 + scan.time scan.timely viamail $(TOPTMISC) +d44 1 +a44 1 + $(IOPTMISC) +d57 1 +a57 1 + scan.time scan.timely viamail \ +d243 10 +@ + + +1.13 +log +@add CP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.12 1992/01/31 21:37:07 jromine Exp jromine $ +d24 2 +a25 2 + mhl.body mhl.headers scan.mailx scan.size scan.time \ + scan.timely viamail $(TOPTMISC) +d43 2 +a44 1 + inst-size inst-time inst-timely inst-viamail $(IOPTMISC) +d56 2 +a57 2 + mhl.body mhl.headers scan.mailx scan.size scan.time \ + scan.timely viamail \ +d188 9 +@ + + +1.12 +log +@kerberos +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.11 1992/01/31 16:38:59 jromine Exp jromine $ +d20 1 +a20 1 +CP = cp -p +@ + + +1.11 +log +@Multimedia MH +@ +text +@d5 1 +a5 1 +# @@(#)$Id: general,v 1.10 90/04/05 15:16:25 sources Exp $ +d20 1 +d69 1 +a69 1 + cp MailAliases $@@; \ +d82 1 +a82 1 + cp components $@@ +d92 1 +a92 1 + cp digestcomps $@@ +d102 1 +a102 1 + cp distcomps $@@ +d112 1 +a112 1 + cp forwcomps $@@ +d122 1 +a122 1 + cp rcvdistcomps $@@ +d132 1 +a132 1 + cp replcomps $@@ +d142 1 +a142 1 + cp mhl.digest $@@ +d152 1 +a152 1 + cp mhl.format $@@ +d162 1 +a162 1 + cp mhl.forward $@@ +d172 1 +a172 1 + cp mhl.body $@@ +d192 1 +a192 1 + cp scan.mailx $@@ +d202 1 +a202 1 + cp scan.size $@@ +d212 1 +a212 1 + cp scan.time $@@ +d222 1 +a222 1 + cp scan.timely $@@ +d243 1 +a243 1 + cp BBoardAliases $@@; \ +@ + + +1.10 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d19 1 +d23 2 +a24 1 + mhl.body scan.mailx scan.size scan.time scan.timely $(TOPTMISC) +d41 2 +a42 2 + inst-format inst-forward inst-body inst-mailx inst-size \ + inst-time inst-timely $(IOPTMISC) +d54 2 +a55 1 + mhl.body scan.mailx scan.size scan.time scan.timely \ +d177 10 +d223 10 +@ + + +1.9 +log +@silence some stuff +@ +text +@d5 1 +@ + + +1.8 +log +@fix for "bbhome: none" +@ +text +@d62 1 +a62 1 + -if [ ! -f $@@ ]; then \ +d216 1 +a216 1 + -if [ ! -f $@@ ]; then \ +@ + + +1.7 +log +@fixup +@ +text +@d10 1 +a10 1 +@@BEGIN: BBOARDS +d15 1 +a15 1 +@@END: BBOARDS +@ + + +1.6 +log +@fixup +@ +text +@d62 6 +a67 2 + -cp $@@ zMailAliases + test -f $@@ || cp MailAliases $@@ +@ + + +1.5 +log +@fix +@ +text +@d212 6 +a217 2 + -cp $@@ zBBoardAliases + test -f $@@ || cp BBoardAliases $@@ +@ + + +1.4 +log +@don't overinstall alias files +@ +text +@d62 1 +a62 1 + -$(REMOVE) $@@ zMailAliases +d212 1 +a212 1 + -$(REMOVE) $@@ zBBoardAliases +@ + + +1.3 +log +@add explicit chmod for installed files +@ +text +@d63 1 +a63 1 + cp MailAliases $@@ +d213 1 +a213 1 + cp BBoardAliases $@@ +@ + + +1.2 +log +@make unconfig changes +@ +text +@d17 1 +d64 1 +d74 1 +d84 1 +d94 1 +d104 1 +d114 1 +d124 1 +d134 1 +d144 1 +d154 1 +d164 1 +d174 1 +d184 1 +d194 1 +d204 1 +d214 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d207 3 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/pop,v b/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/pop,v new file mode 100644 index 0000000..ec12e27 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/support/RCS/pop,v @@ -0,0 +1,1003 @@ +head 2.26; +access; +symbols; +locks; strict; + + +2.26 +date 92.11.25.04.18.59; author jromine; state Exp; +branches; +next 2.25; + +2.25 +date 92.11.05.00.00.18; author jromine; state Exp; +branches; +next 2.24; + +2.24 +date 92.11.04.21.17.44; author jromine; state Exp; +branches; +next 2.23; + +2.23 +date 92.11.04.03.30.31; author jromine; state Exp; +branches; +next 2.22; + +2.22 +date 92.10.31.05.25.36; author jromine; state Exp; +branches; +next 2.21; + +2.21 +date 92.10.28.18.51.37; author jromine; state Exp; +branches; +next 2.20; + +2.20 +date 92.10.20.23.48.34; author jromine; state Exp; +branches; +next 2.19; + +2.19 +date 92.10.20.22.52.03; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 92.10.20.17.12.49; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 92.05.20.22.36.18; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.05.20.22.35.04; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.05.20.22.15.43; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.02.11.05.14.33; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.02.05.17.37.55; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 92.02.04.21.42.12; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 92.01.31.22.48.43; author jromine; state Exp; +branches; +next 2.10; + +2.10 +date 92.01.31.21.24.25; author jromine; state Exp; +branches; +next 2.9; + +2.9 +date 90.12.18.13.34.33; author mh; state Exp; +branches; +next 2.8; + +2.8 +date 90.12.18.13.26.13; author mh; state Exp; +branches; +next 2.7; + +2.7 +date 90.11.05.16.06.03; author mh; state Exp; +branches; +next 2.6; + +2.6 +date 90.11.05.15.56.12; author mh; state Exp; +branches; +next 2.5; + +2.5 +date 90.04.05.15.16.16; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.03.12.11.27.16; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.23.17.37.13; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.21.16.56.16; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.06.12.54.44; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.44; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.11.17.15.44.22; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.26 +log +@add default rule +@ +text +@############################################################################## +# Instructions to Make, for POP support processes +# +# @@(MHWARNING) +# @@(#)$Id: pop,v 2.25 1992/11/05 00:00:18 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHPOPDPATH) +LIBDIR = $(DESTDIR)@@(MHETCPATH) +OPTIONS = @@(MHOPTIONS) @@(POPUUMBOX) -I.. +LDOPTIONS= @@(LDOPTIONS) +LDOPTLIB= @@(LDOPTLIB) +@@BEGIN: MPOP +LDCURSES= @@(LDCURSES) +@@END: MPOP +PGMPROT = 0711 +REMOVE = @@(MHREMOVE) +CHOWN = @@(MHCHOWNPATH) +POPUID = pop +@@BEGIN: APOP +Apop = popauth +IApop = inst-popauth +Lpop = l-popauth +Tpop = xpopauth +@@END: APOP +@@BEGIN: POP +ALL = popd popaka $(Apop) popwrd +INST-ALL= inst-popd inst-popaka $(IApop) inst-popwrd +LALL = l-popd l-popaka $(Lpop) l-popwrd +TALL = xpopd xpopaka $(Tpop) xpopwrd +@@END: POP + +CP = @@(CP) +CC = @@(MHCOMPILER) +@@BEGIN: STDLIB +LD = @@(MHCOMPILER) +@@END: STDLIB +@@BEGIN: SHAREDLIB +LD = LD_LIBRARY_PATH=../../sbr @@(MHCOMPILER) +@@END: SHAREDLIB +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +@@BEGIN: STDLIB +LIBES2 = ../../config/config.o ../../sbr/libmh.a $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = $(LIBES2) ../../config/version.o $(LDOPTLIB) +@@END: STDLIB +@@BEGIN: SUN4SHLIB +SLIBVER = .@@(SLIBVER) +@@END: SUN4SHLIB +@@BEGIN: SHAREDLIB +LIBES2 = ../../config/config.o ../../sbr/libmh.so $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = ../../config/config.o ../../config/version.o \ + -Bdynamic @@(SLDFLAG) -lmh$(SLIBVER) $(LIBES1) $(LDOPTLIB) +@@END: SHAREDLIB + +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS1 = ../../zotnet/llib-lzotnet +LLIBS2 = ../../sbr/llib-lmh $(LLIBS1) + +.c:; echo $@@ + +################################################################ +# Here it is... +################################################################ + +all: $(ALL) + +lint: $(LALL) + +install: inst-all clean + +inst-all: $(INST-ALL) + +tar: $(ALL) +@@BEGIN: POP + @@touch $(TALL) + @@make -n inst-all > MAKEPOP + @@chmod +x MAKEPOP + tar $(TFLAGS) MAKEPOP $(TALL) + @@rm -f MAKEPOP +@@END: POP + +uninstall:; -cd $(ETCDIR); rm -f popd + -cd $(LIBDIR); rm -f popaka popwrd + -cd $(BINDIR); rm -f popauth + + +################################################################ +# popd +################################################################ + +inst-popd: $(ETCDIR)/popd + +$(ETCDIR)/popd: xpopd + -$(REMOVE) $@@ zpopd + -rm -f $@@ + $(CP) xpopd $@@ + -chmod 700 $@@ + -@@ls -l $@@ + -@@echo "" + +popd: xpopd + +xpopd: popd.o popser.o syslog.o \ + ../../uip/dropsbr.o \ +@@BEGIN: MPOP + ../../uip/scansbr.o \ +@@END: MPOP + $(LIBES2) + $(LD) $(LDFLAGS) -o $@@ popd.o popser.o syslog.o \ + ../../uip/dropsbr.o \ +@@BEGIN: MPOP + ../../uip/scansbr.o \ +@@END: MPOP + $(LDLIBS2) $(LDCURSES) + +l-popd:; $(LINT) $(LFLAGS) popd.c popser.c \ + ../../uip/dropsbr.c \ +@@BEGIN: MPOP + ../../uip/scansbr.c \ +@@END: MPOP + $(LLIBS2) + + +################################################################ +# popaka +################################################################ + +inst-popaka: $(LIBDIR)/popaka + +$(LIBDIR)/popaka: xpopaka + -$(REMOVE) $@@ zpopaka + $(CP) xpopaka $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +popaka: xpopaka + +xpopaka: popaka.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@@ popaka.o $(LDLIBS1) + +l-popaka:; $(LINT) $(LFLAGS) popaka.c $(LLIBS1) + + +################################################################ +# popauth +################################################################ + +inst-popauth: $(BINDIR)/popauth + +$(BINDIR)/popauth: xpopauth + -$(REMOVE) $@@ zpopauth + cp xpopauth $@@ + -@@chmod $(PGMPROT) $@@ + -$(CHOWN) $(POPUID) $@@ + chmod u+s $@@ + -@@ls -l $@@ + -@@echo "" + +popauth: xpopauth + +xpopauth: popauth.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@@ popauth.o $(LDLIBS2) + +l-popauth:; $(LINT) $(LFLAGS) popauth.c $(LLIBS2) + + +################################################################ +# popwrd +################################################################ + +inst-popwrd: $(LIBDIR)/popwrd + +$(LIBDIR)/popwrd: xpopwrd + -$(REMOVE) $@@ zpopwrd + -chmod u-s zpopwrd + $(CP) xpopwrd $@@ + -chmod $(PGMPROT) $@@ + -$(CHOWN) $(POPUID) $@@ + chmod u+s $@@ + -@@ls -l $@@ + -@@echo "" + +popwrd: xpopwrd + +xpopwrd: popwrd.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@@ popwrd.o $(LDLIBS1) + +l-popwrd:; $(LINT) $(LFLAGS) popwrd.c $(LLIBS1) + + +################################################################ +# smtpd +################################################################ + +inst-smtpd: $(ETCDIR)/smtpd + +$(ETCDIR)/smtpd: xsmtpd + -$(REMOVE) $@@ zsmtpd + $(CP) xsmtpd $@@ + -chmod 700 $@@ + -@@ls -l $@@ + -@@echo "" + +smtpd: xsmtpd + +xsmtpd: smtpd.o syslog.o + $(LD) $(LDFLAGS) -o $@@ smtpd.o syslog.o + +l-smtpd:; $(LINT) $(LFLAGS) smtpd.c + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f mmdfII/pop/lock.c + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEPOP + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = popd popser popaka popauth popwrd + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + $(CP) Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +popd.o: popd.c +#popd.o: /usr/include/errno.h +#popd.o: /usr/include/signal.h +#popd.o: /usr/include/stdio.h +#popd.o: /usr/include/strings.h +#popd.o: /usr/include/syslog.h +#popd.o: /usr/include/sys/types.h +#popd.o: /usr/include/sys/file.h +#popd.o: /usr/include/sys/ioctl.h +#popd.o: /usr/include/sys/socket.h +#popd.o: /usr/include/sys/time.h +#popd.o: /usr/include/sys/resource.h +#popd.o: /usr/include/sys/wait.h +#popd.o: /usr/include/netinet/in.h +#popd.o: /usr/include/netdb.h +#popd.o: /usr/include/arpa/inet.h +popser.o: popser.c +popser.o: ../../h/mh.h +popser.o: ../../h/dropsbr.h +popser.o: ../../zotnet/bboards.h +#popser.o: /usr/include/stdio.h +popser.o: ../../zotnet/mts.h +#popser.o: /usr/include/ctype.h +#popser.o: /usr/include/errno.h +#popser.o: /usr/include/pwd.h +#popser.o: /usr/include/signal.h +#popser.o: /usr/include/syslog.h +#popser.o: /usr/include/sys/types.h +#popser.o: /usr/include/sys/stat.h +popser.o: popauth.h +popaka.o: popaka.c +#popaka.o: /usr/include/stdio.h +popaka.o: ../../zotnet/bboards.h +popauth.o: popauth.c +popauth.o: ../../h/mh.h +popauth.o: popauth.h +popauth.o: ../../zotnet/bboards.h +popauth.o: ../../zotnet/mts.h +popwrd.o: popwrd.c +popwrd.o: ../../h/strings.h +popwrd.o: ../../zotnet/bboards.h +#popwrd.o: /usr/include/errno.h +#popwrd.o: /usr/include/pwd.h +#popwrd.o: /usr/include/signal.h +#popwrd.o: /usr/include/stdio.h +#popwrd.o: /usr/include/sys/types.h +#popwrd.o: /usr/include/sys/file.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +2.25 +log +@add DESTDIR on MHPOPDPATH +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.24 1992/11/04 21:17:44 jromine Exp jromine $ +d71 1 +@ + + +2.24 +log +@MPOP fixes from mtr - exclude trmsbr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.23 1992/11/04 03:30:31 jromine Exp jromine $ +d10 1 +a10 1 +ETCDIR = @@(MHPOPDPATH) +@ + + +2.23 +log +@make sure sun4 shared libs load correct version of library. +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.22 1992/10/31 05:25:36 jromine Exp jromine $ +d117 1 +a117 1 + ../../uip/scansbr.o ../../uip/trmsbr.o \ +d123 1 +a123 1 + ../../uip/scansbr.o ../../uip/trmsbr.o \ +d128 1 +d130 1 +a130 1 + ../../uip/trmsbr.c ../../uip/scansbr.c \ +d132 1 +a132 1 + ../../uip/dropsbr.c $(LLIBS2) +@ + + +2.22 +log +@don't load popd with scansbr unless MPOP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.21 1992/10/28 18:51:37 jromine Exp jromine $ +d56 3 +d63 1 +a63 1 + -Bdynamic @@(SLDFLAG) -lmh $(LIBES1) $(LDOPTLIB) +@ + + +2.21 +log +@add trmsbr/curses if MPOP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.20 1992/10/20 23:48:34 jromine Exp jromine $ +d112 1 +a112 1 + ../../uip/dropsbr.o ../../uip/scansbr.o \ +d114 1 +a114 1 + ../../uip/trmsbr.o \ +d118 1 +a118 1 + ../../uip/dropsbr.o ../../uip/scansbr.o \ +d120 1 +a120 1 + ../../uip/trmsbr.o \ +d126 1 +a126 1 + ../../uip/trmsbr.c \ +d128 1 +a128 1 + ../../uip/dropsbr.c ../../uip/scansbr.c $(LLIBS2) +@ + + +2.20 +log +@put popd in MHPOPDPATH +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.19 1992/10/20 22:52:03 jromine Exp jromine $ +d15 3 +d113 3 +d119 4 +a122 1 + $(LDLIBS2) +d125 3 +@ + + +2.19 +log +@add libmts.a on LIBES1. This seems to be needed to satisfy +an unresolved "OfficialName" symbol when using shared libraries. +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.18 1992/10/20 17:12:49 jromine Exp jromine $ +d10 1 +a10 1 +ETCDIR = /usr/etc +@ + + +2.18 +log +@cleanup APOP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.17 1992/05/20 22:36:18 jromine Exp jromine $ +d47 1 +a47 1 +LIBES1 = ../../zotnet/libzot.a +@ + + +2.17 +log +@move popsbr.c back into uip +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.16 1992/05/20 22:35:04 jromine Exp $ +d19 6 +d26 4 +a29 4 +ALL = popd popaka popauth popwrd +INST-ALL= inst-popd inst-popaka inst-popauth inst-popwrd +LALL = l-popd l-popaka l-popauth l-popwrd +TALL = xpopd xpopaka xpopauth xpopwrd +d228 1 +a228 1 +MODULES = popd popser popaka popwrd +@ + + +2.16 +log +@move popi back into uip/ +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.15 1992/05/20 22:15:43 jromine Exp jromine $ +d20 1 +a20 1 +ALL = popd popaka popauth popwrd popsbr +d22 1 +a22 1 +LALL = l-popd l-popaka l-popauth l-popwrd l-popsbr +d66 1 +a66 1 +lint: $(LALL) $(KLINT) +a181 9 +# popsbr +################################################################ + +popsbr: popsbr.o + +l-popsbr:; $(LINT) $(LFLAGS) popsbr.c $(LLIBS) + + +################################################################ +d222 1 +a222 1 +MODULES = popd popser popaka popwrd popsbr $(KALL) +a290 4 +popsbr.o: popsbr.c +popsbr.o: ../../h/strings.h +#popsbr.o: /usr/include/stdio.h +#popsbr.o: /usr/include/signal.h +@ + + +2.15 +log +@move popi from uip/ +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.14 1992/02/11 05:14:33 jromine Exp jromine $ +a18 6 +@@BEGIN: MPOP +CMPOP = popi +IMPOP = inst-popi +LMPOP = l-popi +TMPOP = xpopi +@@END: MPOP +d20 4 +a23 4 +ALL = popd popaka popauth popwrd popsbr $(CMPOP) +INST-ALL= inst-popd inst-popaka inst-popauth inst-popwrd $(IMPOP) +LALL = l-popd l-popaka l-popauth l-popwrd l-popsbr $(LMPOP) +TALL = xpopd xpopaka xpopauth xpopwrd $(TMPOP) +d83 1 +a83 1 + -cd $(BINDIR); rm -f popauth popi +a178 24 + + +################################################################ +# popi +################################################################ + +inst-popi: $(BINDIR)/popi + +$(BINDIR)/popi: xpopi + -$(REMOVE) $@@ zpopi + cp xpopi $@@ + -@@chmod $(PGMPROT) $@@ + -@@ls -l $@@ + -@@echo "" + +popi: xpopi + +xpopi: popi.o ../../uip/trmsbr.o $(LIBES2) + $(CC) $(LDFLAGS) -o $@@ popi.o \ + ../../uip/trmsbr.o $(LDLIBS2) $(LDCURSES) + +l-popi:; $(LINT) $(LFLAGS) popi.c + ../../uip/trmsbr.c $(LLIBS2) + +@ + + +2.14 +log +@unconfig - remove lock.c +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.13 1992/02/05 17:37:55 jromine Exp jromine $ +d19 6 +d26 4 +a29 9 +@@BEGIN: KPOP +KSBR = ../../uip/kclient.o +KLINT = l-kclient +KPOPLIBS= -lkrb -ldes +@@END: KPOP +ALL = popd popaka popauth popwrd popsbr +INST-ALL= inst-popd inst-popaka inst-popauth inst-popwrd +LALL = l-popd l-popaka l-popauth l-popwrd l-popsbr +TALL = xpopd xpopaka xpopauth xpopwrd +d89 1 +a89 1 + -cd $(BINDIR); rm -f popauth +d110 1 +a110 1 + $(KSBR) $(LIBES2) +d113 1 +a113 1 + $(KSBR) $(LDLIBS2) +d185 24 +@ + + +2.13 +log +@MIME changes +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.12 1992/02/04 21:42:12 jromine Exp jromine $ +d25 4 +a28 4 +ALL = popd popaka popwrd popsbr +INST-ALL= inst-popd inst-popaka inst-popwrd +LALL = l-popd l-popaka l-popwrd l-popsbr +TALL = xpopd xpopaka xpopwrd +d107 1 +a107 1 +xpopd: popd.o popser.o syslog.o +d221 1 +@ + + +2.12 +log +@contributed patch +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.11 1992/01/31 22:48:43 jromine Exp jromine $ +d88 1 +d107 3 +a109 2 +xpopd: popd.o popser.o syslog.o \ + ../../uip/dropsbr.o $(KSBR) $(LIBES2) +d111 2 +a112 1 + ../../uip/dropsbr.o $(KSBR) $(LDLIBS2) +d115 1 +a115 1 + ../../uip/dropsbr.c $(LLIBS2) +d137 23 +@ + + +2.11 +log +@add CP +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.10 1992/01/31 21:24:25 jromine Exp jromine $ +d260 1 +d264 5 +@ + + +2.10 +log +@kerberos +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.9 1990/12/18 13:34:33 mh Exp jromine $ +d31 1 +a31 1 +CP = cp -p +@ + + +2.9 +log +@SLDFLAG +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.8 90/12/18 13:26:13 mh Exp Locker: mh $ +d20 5 +d31 1 +d71 1 +a71 1 +lint: $(LALL) +d99 1 +a99 1 + cp xpopd $@@ +d107 1 +a107 1 + ../../uip/dropsbr.o $(LIBES2) +d109 1 +a109 1 + ../../uip/dropsbr.o $(LDLIBS2) +d123 1 +a123 1 + cp xpopaka $@@ +d145 1 +a145 1 + cp xpopwrd $@@ +d177 1 +a177 1 + cp xsmtpd $@@ +d209 1 +a209 1 +MODULES = popd popser popaka popwrd popsbr +d223 1 +a223 1 + cp Makefile _Makefile +@ + + +2.8 +log +@fix LD_LIBRARY_PATH +jlr +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.7 90/11/05 16:06:03 mh Exp Locker: mh $ +d50 1 +a50 1 + -Bdynamic -lmh $(LIBES1) $(LDOPTLIB) +@ + + +2.7 +log +@typo +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.6 90/11/05 15:56:12 mh Exp Locker: mh $ +d27 6 +d50 1 +a50 1 + -Bdynamic -L../../sbr -lmh $(LIBES1) $(LDOPTLIB) +d102 1 +a102 1 + $(CC) $(LDFLAGS) -o $@@ popd.o popser.o syslog.o \ +d125 1 +a125 1 + $(CC) $(LDFLAGS) -o $@@ popaka.o $(LDLIBS1) +d149 1 +a149 1 + $(CC) $(LDFLAGS) -o $@@ popwrd.o $(LDLIBS1) +d179 1 +a179 1 + $(CC) $(LDFLAGS) -o $@@ smtpd.o syslog.o +@ + + +2.6 +log +@special hack to fix popser.c +@ +text +@d5 1 +a5 1 +# @@(#)$Id: pop,v 2.5 90/04/05 15:16:16 sources Exp Locker: mh $ +d12 1 +a12 1 +OPTIONS = @@(MHOPTIONS) @@(UUCPMBOX) -I.. +@ + + +2.5 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d12 1 +a12 1 +OPTIONS = @@(MHOPTIONS) -I.. +@ + + +2.4 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +2.3 +log +@version.sh changes +@ +text +@d27 1 +a27 1 +CFLAGS = -O $(OPTIONS) +@ + + +2.2 +log +@make unconfig changes +@ +text +@d37 1 +a37 1 +LDLIBS2 = $(LIBES2) $(LDOPTLIB) +d42 2 +a43 2 +LDLIBS2 = ../../config/config.o -Bdynamic -L../../sbr -lmh \ + $(LIBES1) $(LDOPTLIB) +@ + + +2.1 +log +@ANSI Compilance +@ +text +@d181 3 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d25 1 +a25 1 +CC = cc +@ + + +1.1 +log +@Initial revision +@ +text +@d34 1 +d38 7 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/support/bboards b/docs/historical/mh-6.8.5/conf/makefiles/support/bboards new file mode 100644 index 0000000..3578467 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/support/bboards @@ -0,0 +1,319 @@ +############################################################################## +# Instructions to Make, for BBoards support processes +# +# @(MHWARNING) +# @(#)$Id: bboards,v 2.12 1992/11/04 03:30:31 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +OPTIONS = @(MHOPTIONS) -I.. +LDOPTIONS= @(LDOPTIONS) +LDOPTLIB= @(LDOPTLIB) +BBDIR = @(BBHOME) +BBETC = $(BBDIR)/etc +CHOWN = @(MHCHOWNPATH) +REMOVE = @(MHREMOVE) +BBUID = bboards +@BEGIN: BBSERVER +ALL = bbaka bbexp bbtar +INST-ALL= inst-bboards inst-bbaka inst-bbexp inst-bbtar \ + inst-daily inst-weekly inst-cshell inst-profile \ + inst-makebboards +TALL = BBoards xbbaka xbbexp xbbtar bboards.daily bboards.weekly \ + MakeBBoards cshrc mh_profile +@END: BBSERVER + +CC = @(MHCOMPILER) +@BEGIN: STDLIB +LD = @(MHCOMPILER) +@END: STDLIB +@BEGIN: SHAREDLIB +LD = LD_LIBRARY_PATH=../../sbr @(MHCOMPILER) +@END: SHAREDLIB +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +@BEGIN: STDLIB +LIBES2 = ../../config/config.o ../../config/version.o \ + ../../sbr/libmh.a $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = $(LIBES2) $(LDOPTLIB) +@END: STDLIB +@BEGIN: SUN4SHLIB +SLIBVER = .@(SLIBVER) +@END: SUN4SHLIB +@BEGIN: SHAREDLIB +LIBES2 = ../../config/config.o ../../config/version.o \ + ../../sbr/libmh.so $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = $(LIBES2) $(LDOPTLIB) +LDLIBS2 = ../../config/config.o ../../config/version.o \ + -Bdynamic @(SLDFLAG) -lmh$(SLIBVER) $(LIBES1) $(LDOPTLIB) +@END: SHAREDLIB + +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS1 = ../../zotnet/llib-lzotnet +LLIBS2 = ../../sbr/llib-lmh $(LLIBS1) + + +###################################################################### +# Here it is... +###################################################################### + +all: $(ALL) + +lint: l-bbaka l-bbexp l-bbtar + +install: inst-all clean + +inst-all: $(INST-ALL) + +tar: $(ALL) +@BEGIN: BBSERVER + @touch $(TALL) + @make -n inst-all > MAKEBB + @chmod +x MAKEBB + tar $(TFLAGS) MAKEBB $(TALL) + @rm -f MAKEBB +@END: BBSERVER + +uninstall:; +@BEGIN: BBSERVER + -cd (BBDIR); \ + rm -f BBoards .cshrc .mh_profile + -cd (ETCDIR); \ + rm -f bbaka bbexp bbtar bboards.daily \ + bboards.weekly Makefile context +@END: BBSERVER + + +###################################################################### +# Generate BBoards Support files and processes +###################################################################### + +inst-bboards: $(BBDIR)/BBoards + +$(BBDIR)/BBoards: BBoards + -@if [ ! -f $@ ]; then \ + $(REMOVE) $@ zBBoards; \ + cp BBoards $@; \ + else \ + echo "Will not overwrite existing $@"; \ + fi + -$(CHOWN) $(BBUID) $@ + -@ls -l $@ + -@echo "" + + +###################################################################### +# bbaka +###################################################################### + +inst-bbaka: $(BBETC)/bbaka + +$(BBETC)/bbaka: xbbaka + -$(REMOVE) $@ zbbaka + cp xbbaka $@ + -$(CHOWN) $(BBUID) $@ + -@ls -l $@ + -@echo "" + +bbaka: xbbaka + +xbbaka: bbaka.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ bbaka.o $(LDLIBS1) + +l-bbaka:; $(LINT) $(LFLAGS) bbaka.c $(LLIBS1) + + +###################################################################### +# bbexp +###################################################################### + +inst-bbexp: $(BBETC)/bbexp + +$(BBETC)/bbexp: xbbexp + -$(REMOVE) $@ zbbexp + cp xbbexp $@ + -$(CHOWN) $(BBUID) $@ + -@ls -l $@ + -@echo "" + +bbexp: xbbexp + +xbbexp: bbexp.o ../../uip/dropsbr.o $(LIBES2) + $(LD) $(LDFLAGS) -o $@ bbexp.o ../../uip/dropsbr.o $(LDLIBS2) + +l-bbexp:; $(LINT) $(LFLAGS) bbexp.c ../../uip/dropsbr.c $(LLIBS2) + + +###################################################################### +# bbtar +###################################################################### + +inst-bbtar: $(BBETC)/bbtar + +$(BBETC)/bbtar: xbbtar + -$(REMOVE) $@ zbbtar + cp xbbtar $@ + -$(CHOWN) $(BBUID) $@ + -@ls -l $@ + -@echo "" + +bbtar: xbbtar + +xbbtar: bbtar.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ bbtar.o $(LDLIBS1) + +l-bbtar:; $(LINT) $(LFLAGS) bbtar.c $(LLIBS1) + + +###################################################################### +# bboards.daily +###################################################################### + +inst-daily: $(BBETC)/bboards.daily + +$(BBETC)/bboards.daily: bboards.daily + -$(REMOVE) $@ zbboards.daily + cp bboards.daily $@ + -$(CHOWN) $(BBUID) $@ + -@chmod +x $@ + -@ls -l $@ + -@echo "" + + +###################################################################### +# bboards.weekly +###################################################################### + +inst-weekly: $(BBETC)/bboards.weekly + +$(BBETC)/bboards.weekly: bboards.weekly + -$(REMOVE) $@ zbboards.weekly + cp bboards.weekly $@ + -$(CHOWN) $(BBUID) $@ + -@chmod +x $@ + -@ls -l $@ + -@echo "" + + +###################################################################### +# MakeBBoards +###################################################################### + +inst-makebboards: $(BBETC)/Makefile + +$(BBETC)/Makefile: MakeBBoards + -$(REMOVE) $@ zMakeBBoards + cp MakeBBoards $@ + -$(CHOWN) $(BBUID) $@ + -@ls -l $@ + -@echo "" + + +###################################################################### +# .cshrc +###################################################################### + +inst-cshell: $(BBDIR)/.cshrc + +$(BBDIR)/.cshrc: cshrc + -$(REMOVE) $@ z.cshrc + cp cshrc $@ + -$(CHOWN) $(BBUID) $@ + -@ls -l $@ + -@echo "" + + +###################################################################### +# .mh_profile +###################################################################### + +inst-profile: $(BBDIR)/.mh_profile + +$(BBDIR)/.mh_profile: mh_profile + -$(REMOVE) $@ z.mh_profile + cp mh_profile $@ + -$(CHOWN) $(BBUID) $@ + -@ls -l $@ + -@touch $(BBETC)/context + -$(CHOWN) $(BBUID) $(BBETC)/context + -@echo "" + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f mmdfII/bboards/lock.c + -rm -f Makefile + +distribution: clean + -rm -f bboards.daily bboards.weekly crontab MakeBBoards + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEBB + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = bbaka bbexp bbtar + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +bbaka.o: bbaka.c +bbaka.o: ../../h/strings.h +bbaka.o: ../../zotnet/bboards.h +#bbaka.o: /usr/include/stdio.h +bbaka.o: ../../zotnet/mts.h +bbexp.o: bbexp.c +bbexp.o: ../../h/mh.h +bbexp.o: ../../h/dropsbr.h +bbexp.o: ../../zotnet/bboards.h +#bbexp.o: /usr/include/pwd.h +#bbexp.o: /usr/include/signal.h +#bbexp.o: /usr/include/stdio.h +#bbexp.o: /usr/include/sys/types.h +#bbexp.o: /usr/include/sys/stat.h +#bbexp.o: /usr/include/stdio.h +bbexp.o: ../../zotnet/bboards.h +bbtar.o: bbtar.c +#bbtar.o: /usr/include/pwd.h +#bbtar.o: /usr/include/stdio.h +#bbtar.o: /usr/include/sys/types.h +#bbtar.o: /usr/include/sys/stat.h +bbtar.o: ../../zotnet/bboards.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/support/general b/docs/historical/mh-6.8.5/conf/makefiles/support/general new file mode 100644 index 0000000..7b04bfb --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/support/general @@ -0,0 +1,330 @@ +############################################################################## +# Instructions to Make, for general support processes +# +# @(MHWARNING) +# @(#)$Id: general,v 1.20 1995/12/06 20:57:55 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +@BEGIN: BBSERVER +BBUID = bboards +IOPTMISC= inst-bboards +UOPTMISC= BBoardAliases +TOPTMISC= BBoardAliases +@END: BBSERVER +@BEGIN: MIME +IOPTMIME= inst-mhndefs inst-viamail inst-pgpmime +UOPTMIME= mhn_defaults viamail +TOPTMIME= mhn_defaults viamail +@END: MIME +REMOVE = @(MHREMOVE) +FILPROT = 0644 +PGMPROT = 0755 +CP = @(CP) + +TALL = MailAliases components digestcomps distcomps forwcomps \ + rcvdistcomps replcomps mhl.digest mhl.format mhl.forward \ + mhl.body mhl.headers scan.default scan.mailx scan.size \ + scan.time scan.timely packmbox $(TOPTMISC) $(TOPTMIME) + + +############################################################################## +# Generate miscellaneous stuff +############################################################################## + +all:; + +depend:; + +lint:; + +install: inst-all clean + +inst-all: inst-aliases inst-components inst-digestcomps inst-distcomps \ + inst-forwcomps inst-rcvdistcomps inst-replcomps inst-digest \ + inst-format inst-forward inst-body inst-headers inst-mailx \ + inst-default inst-size inst-time inst-timely \ + inst-packmbox $(IOPTMISC) $(IOPTMIME) + +tar:; @touch $(TALL) + @make -n inst-all > MAKEGEN + @chmod +x MAKEGEN + tar $(TFLAGS) MAKEGEN $(TALL) + @rm -f MAKEGEN + + +uninstall:; cd $(ETCDIR); \ + rm -f MailAliases components digestcomps distcomps forwcomps \ + rcvdistcomps replcomps mhl.digest mhl.format mhl.forward \ + mhl.body mhl.headers scan.default scan.mailx scan.size \ + scan.time scan.timely viamail packmbox \ + $(UOPTMISC) $(UOPTMIME) + + +############################################################################## +# Individual components +############################################################################## + +inst-aliases: $(ETCDIR)/MailAliases + +$(ETCDIR)/MailAliases: MailAliases + -@if [ ! -f $@ ]; then \ + $(REMOVE) $@ zMailAliases; \ + $(CP) MailAliases $@; \ + else \ + echo "Will not overwrite existing $@"; \ + fi + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-components: $(ETCDIR)/components + +$(ETCDIR)/components: components + -$(REMOVE) $@ zcomponents + $(CP) components $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-digestcomps: $(ETCDIR)/digestcomps + +$(ETCDIR)/digestcomps: digestcomps + -$(REMOVE) $@ zdigestcomps + $(CP) digestcomps $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-distcomps: $(ETCDIR)/distcomps + +$(ETCDIR)/distcomps: distcomps + -$(REMOVE) $@ zdistcomps + $(CP) distcomps $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-forwcomps: $(ETCDIR)/forwcomps + +$(ETCDIR)/forwcomps: forwcomps + -$(REMOVE) $@ zforwcomps + $(CP) forwcomps $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-rcvdistcomps: $(ETCDIR)/rcvdistcomps + +$(ETCDIR)/rcvdistcomps: rcvdistcomps + -$(REMOVE) $@ zrcvdistcomps + $(CP) rcvdistcomps $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-replcomps: $(ETCDIR)/replcomps + +$(ETCDIR)/replcomps: replcomps + -$(REMOVE) $@ zreplcomps + $(CP) replcomps $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-digest: $(ETCDIR)/mhl.digest + +$(ETCDIR)/mhl.digest: mhl.digest + -$(REMOVE) $@ zmhl.digest + $(CP) mhl.digest $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-format: $(ETCDIR)/mhl.format + +$(ETCDIR)/mhl.format: mhl.format + -$(REMOVE) $@ zmhl.format + $(CP) mhl.format $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-forward: $(ETCDIR)/mhl.forward + +$(ETCDIR)/mhl.forward: mhl.forward + -$(REMOVE) $@ zmhl.forward + $(CP) mhl.forward $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-body: $(ETCDIR)/mhl.body + +$(ETCDIR)/mhl.body: mhl.body + -$(REMOVE) $@ zmhl.body + $(CP) mhl.body $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-headers: $(ETCDIR)/mhl.headers + +$(ETCDIR)/mhl.headers: mhl.headers + -$(REMOVE) $@ zmhl.headers + cp mhl.headers $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-default: $(ETCDIR)/scan.default + +$(ETCDIR)/scan.default: scan.default + -$(REMOVE) $@ zscan.default + $(CP) scan.default $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mailx: $(ETCDIR)/scan.mailx + +$(ETCDIR)/scan.mailx: scan.mailx + -$(REMOVE) $@ zscan.mailx + $(CP) scan.mailx $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-size: $(ETCDIR)/scan.size + +$(ETCDIR)/scan.size: scan.size + -$(REMOVE) $@ zscan.size + $(CP) scan.size $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-time: $(ETCDIR)/scan.time + +$(ETCDIR)/scan.time: scan.time + -$(REMOVE) $@ zscan.time + $(CP) scan.time $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-timely: $(ETCDIR)/scan.timely + +$(ETCDIR)/scan.timely: scan.timely + -$(REMOVE) $@ zscan.timely + $(CP) scan.timely $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-packmbox: $(ETCDIR)/packmbox + +$(ETCDIR)/packmbox: packmbox.sh + -$(REMOVE) $@ zpackmbox.sh + cp packmbox.sh $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-bboards: $(ETCDIR)/BBoardAliases + +$(ETCDIR)/BBoardAliases: BBoardAliases + -@if [ ! -f $@ ]; then \ + $(REMOVE) $@ zBBoardAliases; \ + $(CP) BBoardAliases $@; \ + else \ + echo "Will not overwrite existing $@"; \ + fi + -@chmod $(FILPROT) $@ + -chown $(BBUID) $@ + -@ls -l $@ + -@echo "" + + +inst-viamail: $(ETCDIR)/viamail + +$(ETCDIR)/viamail: viamail.sh + -$(REMOVE) $@ zviamail.sh + cp viamail.sh $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-mhndefs: $(ETCDIR)/mhn_defaults + +$(ETCDIR)/mhn_defaults: true + -@if [ ! -f $@ ]; then \ + ./bootmhn.sh $(ETCDIR); \ + else \ + echo "Will not overwrite existing $@"; \ + fi + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-pgpmime: $(ETCDIR)/pgped.tcl $(BINDIR)/pgped $(BINDIR)/pgpshow + +$(ETCDIR)/pgped.tcl: pgped.tcl + -$(REMOVE) $@ zpgped.tcl + cp pgped.tcl $@ + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + +$(BINDIR)/pgped: pgped.sh + -$(REMOVE) $@ zpgped.sh + sed -e 's%@LIB%$(ETCDIR)%' < pgped.sh > $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +$(BINDIR)/pgpshow: pgpshow.sh + -$(REMOVE) $@ zpgpshow.sh + cp pgpshow.sh $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f MailAliases + +clean: unclean + -rm -f x* + +unclean:; -rm -f z* _* :* core MAKEGEN + +true:; diff --git a/docs/historical/mh-6.8.5/conf/makefiles/support/pop b/docs/historical/mh-6.8.5/conf/makefiles/support/pop new file mode 100644 index 0000000..868a525 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/support/pop @@ -0,0 +1,315 @@ +############################################################################## +# Instructions to Make, for POP support processes +# +# @(MHWARNING) +# @(#)$Id: pop,v 2.26 1992/11/25 04:18:59 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHPOPDPATH) +LIBDIR = $(DESTDIR)@(MHETCPATH) +OPTIONS = @(MHOPTIONS) @(POPUUMBOX) -I.. +LDOPTIONS= @(LDOPTIONS) +LDOPTLIB= @(LDOPTLIB) +@BEGIN: MPOP +LDCURSES= @(LDCURSES) +@END: MPOP +PGMPROT = 0711 +REMOVE = @(MHREMOVE) +CHOWN = @(MHCHOWNPATH) +POPUID = pop +@BEGIN: APOP +Apop = popauth +IApop = inst-popauth +Lpop = l-popauth +Tpop = xpopauth +@END: APOP +@BEGIN: POP +ALL = popd popaka $(Apop) popwrd +INST-ALL= inst-popd inst-popaka $(IApop) inst-popwrd +LALL = l-popd l-popaka $(Lpop) l-popwrd +TALL = xpopd xpopaka $(Tpop) xpopwrd +@END: POP + +CP = @(CP) +CC = @(MHCOMPILER) +@BEGIN: STDLIB +LD = @(MHCOMPILER) +@END: STDLIB +@BEGIN: SHAREDLIB +LD = LD_LIBRARY_PATH=../../sbr @(MHCOMPILER) +@END: SHAREDLIB +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +@BEGIN: STDLIB +LIBES2 = ../../config/config.o ../../sbr/libmh.a $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = $(LIBES2) ../../config/version.o $(LDOPTLIB) +@END: STDLIB +@BEGIN: SUN4SHLIB +SLIBVER = .@(SLIBVER) +@END: SUN4SHLIB +@BEGIN: SHAREDLIB +LIBES2 = ../../config/config.o ../../sbr/libmh.so $(LIBES1) +LDLIBS1 = $(LIBES1) $(LDOPTLIB) +LDLIBS2 = ../../config/config.o ../../config/version.o \ + -Bdynamic @(SLDFLAG) -lmh$(SLIBVER) $(LIBES1) $(LDOPTLIB) +@END: SHAREDLIB + +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS1 = ../../zotnet/llib-lzotnet +LLIBS2 = ../../sbr/llib-lmh $(LLIBS1) + +.c:; echo $@ + +################################################################ +# Here it is... +################################################################ + +all: $(ALL) + +lint: $(LALL) + +install: inst-all clean + +inst-all: $(INST-ALL) + +tar: $(ALL) +@BEGIN: POP + @touch $(TALL) + @make -n inst-all > MAKEPOP + @chmod +x MAKEPOP + tar $(TFLAGS) MAKEPOP $(TALL) + @rm -f MAKEPOP +@END: POP + +uninstall:; -cd $(ETCDIR); rm -f popd + -cd $(LIBDIR); rm -f popaka popwrd + -cd $(BINDIR); rm -f popauth + + +################################################################ +# popd +################################################################ + +inst-popd: $(ETCDIR)/popd + +$(ETCDIR)/popd: xpopd + -$(REMOVE) $@ zpopd + -rm -f $@ + $(CP) xpopd $@ + -chmod 700 $@ + -@ls -l $@ + -@echo "" + +popd: xpopd + +xpopd: popd.o popser.o syslog.o \ + ../../uip/dropsbr.o \ +@BEGIN: MPOP + ../../uip/scansbr.o \ +@END: MPOP + $(LIBES2) + $(LD) $(LDFLAGS) -o $@ popd.o popser.o syslog.o \ + ../../uip/dropsbr.o \ +@BEGIN: MPOP + ../../uip/scansbr.o \ +@END: MPOP + $(LDLIBS2) $(LDCURSES) + +l-popd:; $(LINT) $(LFLAGS) popd.c popser.c \ + ../../uip/dropsbr.c \ +@BEGIN: MPOP + ../../uip/scansbr.c \ +@END: MPOP + $(LLIBS2) + + +################################################################ +# popaka +################################################################ + +inst-popaka: $(LIBDIR)/popaka + +$(LIBDIR)/popaka: xpopaka + -$(REMOVE) $@ zpopaka + $(CP) xpopaka $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +popaka: xpopaka + +xpopaka: popaka.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ popaka.o $(LDLIBS1) + +l-popaka:; $(LINT) $(LFLAGS) popaka.c $(LLIBS1) + + +################################################################ +# popauth +################################################################ + +inst-popauth: $(BINDIR)/popauth + +$(BINDIR)/popauth: xpopauth + -$(REMOVE) $@ zpopauth + cp xpopauth $@ + -@chmod $(PGMPROT) $@ + -$(CHOWN) $(POPUID) $@ + chmod u+s $@ + -@ls -l $@ + -@echo "" + +popauth: xpopauth + +xpopauth: popauth.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ popauth.o $(LDLIBS2) + +l-popauth:; $(LINT) $(LFLAGS) popauth.c $(LLIBS2) + + +################################################################ +# popwrd +################################################################ + +inst-popwrd: $(LIBDIR)/popwrd + +$(LIBDIR)/popwrd: xpopwrd + -$(REMOVE) $@ zpopwrd + -chmod u-s zpopwrd + $(CP) xpopwrd $@ + -chmod $(PGMPROT) $@ + -$(CHOWN) $(POPUID) $@ + chmod u+s $@ + -@ls -l $@ + -@echo "" + +popwrd: xpopwrd + +xpopwrd: popwrd.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ popwrd.o $(LDLIBS1) + +l-popwrd:; $(LINT) $(LFLAGS) popwrd.c $(LLIBS1) + + +################################################################ +# smtpd +################################################################ + +inst-smtpd: $(ETCDIR)/smtpd + +$(ETCDIR)/smtpd: xsmtpd + -$(REMOVE) $@ zsmtpd + $(CP) xsmtpd $@ + -chmod 700 $@ + -@ls -l $@ + -@echo "" + +smtpd: xsmtpd + +xsmtpd: smtpd.o syslog.o + $(LD) $(LDFLAGS) -o $@ smtpd.o syslog.o + +l-smtpd:; $(LINT) $(LFLAGS) smtpd.c + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f mmdfII/pop/lock.c + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEPOP + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = popd popser popaka popauth popwrd + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + $(CP) Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +popd.o: popd.c +#popd.o: /usr/include/errno.h +#popd.o: /usr/include/signal.h +#popd.o: /usr/include/stdio.h +#popd.o: /usr/include/strings.h +#popd.o: /usr/include/syslog.h +#popd.o: /usr/include/sys/types.h +#popd.o: /usr/include/sys/file.h +#popd.o: /usr/include/sys/ioctl.h +#popd.o: /usr/include/sys/socket.h +#popd.o: /usr/include/sys/time.h +#popd.o: /usr/include/sys/resource.h +#popd.o: /usr/include/sys/wait.h +#popd.o: /usr/include/netinet/in.h +#popd.o: /usr/include/netdb.h +#popd.o: /usr/include/arpa/inet.h +popser.o: popser.c +popser.o: ../../h/mh.h +popser.o: ../../h/dropsbr.h +popser.o: ../../zotnet/bboards.h +#popser.o: /usr/include/stdio.h +popser.o: ../../zotnet/mts.h +#popser.o: /usr/include/ctype.h +#popser.o: /usr/include/errno.h +#popser.o: /usr/include/pwd.h +#popser.o: /usr/include/signal.h +#popser.o: /usr/include/syslog.h +#popser.o: /usr/include/sys/types.h +#popser.o: /usr/include/sys/stat.h +popser.o: popauth.h +popaka.o: popaka.c +#popaka.o: /usr/include/stdio.h +popaka.o: ../../zotnet/bboards.h +popauth.o: popauth.c +popauth.o: ../../h/mh.h +popauth.o: popauth.h +popauth.o: ../../zotnet/bboards.h +popauth.o: ../../zotnet/mts.h +popwrd.o: popwrd.c +popwrd.o: ../../h/strings.h +popwrd.o: ../../zotnet/bboards.h +#popwrd.o: /usr/include/errno.h +#popwrd.o: /usr/include/pwd.h +#popwrd.o: /usr/include/signal.h +#popwrd.o: /usr/include/stdio.h +#popwrd.o: /usr/include/sys/types.h +#popwrd.o: /usr/include/sys/file.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/supportM b/docs/historical/mh-6.8.5/conf/makefiles/supportM new file mode 100644 index 0000000..4d3da14 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/supportM @@ -0,0 +1,55 @@ +############################################################################## +# Instructions to Make, for MH support processes +# +# @(MHWARNING) +# @(#)$Id: supportM,v 2.2 90/04/05 15:18:17 sources Exp $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + +DIRS = bboards general pop + + +############################################################################## +# Generate MH support processes +############################################################################## + +all:; for d in $(DIRS); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(DIRS); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(DIRS); do (cd $$d; $(MAKE) lint); done + + +############################################################################## +# Installation +############################################################################## + +install: inst-all clean + +inst-all:; for d in $(DIRS); do (cd $$d; $(MAKE) inst-all); done + +tar:; @for d in $(DIRS); \ + do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done + +uninstall:; for d in $(DIRS); do (cd $$d; $(MAKE) uninstall); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + + +unconfig:; -rm -f _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) unconfig); done + -rm -f Makefile + +distribution:; -rm -f _* :* + for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done + +clean:; -rm -f _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; -rm -f _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done diff --git a/docs/historical/mh-6.8.5/conf/makefiles/uip b/docs/historical/mh-6.8.5/conf/makefiles/uip new file mode 100644 index 0000000..5979c1a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/uip @@ -0,0 +1,1979 @@ +############################################################################## +# Instructions to Make, for compilation of MH processes +# +# @(MHWARNING) +# @(#)$Id: uip,v 2.39 1992/12/18 17:57:45 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +OPTIONS = @(MHOPTIONS) +LDOPTIONS= @(LDOPTIONS) +LDOPTLIB= @(LDOPTLIB) +LDCURSES= @(LDCURSES) +@BEGIN: MMDFMTS +MTSBRS = +MTSMISC = +IMTSMISC= +LMTSMISC= +TMTSMISC= +@END: MMDFMTS +@BEGIN: MHMTS +MTSBRS = dropsbr.o +@BEGIN: MF +MTSMISC = rmail umhook +IMTSMISC= inst-rmail inst-umhook +LMTSMISC= l-rmail l-umhook +TMTSMISC= rmail umhook +@END: MF +@END: MHMTS +@BEGIN: SENDMTS +MTSBRS = +MTSMISC = +IMTSMISC= +LMTSMISC= +TMTSMISC= +@END: SENDMTS +@BEGIN: SENDMTSHACK +SMTSMISC= slocal +ISMTSMISC= inst-slocal +LSMTSMISC= l-slocal +TSMTSMISC= xslocal +@END: SENDMTSHACK +SBBOARDS= $(ETCDIR)/sbboards +CHOWN = @(MHCHOWNPATH) +REMOVE = @(MHREMOVE) +@BEGIN: BBOARDS +BBUID = bboards +BBCMDS = bbc bbl +IBBCMDS= inst-bbc inst-bbl +LBBCMDS= l-bbc l-bbl +TBBCMDS= xbbc xbbl +@BEGIN: MHMTS +BBMISC = sbboards +IBBMISC= inst-sbboards +LBBMISC= l-sbboards +SBBOARDS= @(BBHOME)/.mh_receive +TBBMISC= xsbboards +@END: MHMTS +@BEGIN: SENDMTSHACK +BBMISC = sbboards +IBBMISC= inst-sbboards +LBBMISC= l-sbboards +SBBOARDS= $(ETCDIR)/sbboards +TBBMISC= xsbboards +@END: SENDMTSHACK +@END: BBOARDS +@BEGIN: POP +POPUID = pop +POPLIB = popsbr.o +POPLLIBS= popsbr.c +@BEGIN: MPOP +POPCMDS = popi +IPOPCMDS= inst-popi +LPOPCMDS= l-popi +TPOPCMS= xpopi +@END: MPOP +@BEGIN: SENDMTSHACK +POPMISC= spop +IPOPMISC= inst-spop +LPOPMISC= l-spop +TPOPMISC= xspop +@END: SENDMTSHACK +@BEGIN: KPOP +KRBLIB = -lkrb -ldes +@END: KPOP +@END: POP +@BEGIN: BPOP +PSHLIB = popsbr.o +PSHLLIBS= popsbr.c +@END: BPOP +@BEGIN: NNTP +PSHLIB = pshsbr.o +PSHLLIBS= -DPSHSBR popsbr.c +@END: NNTP +@BEGIN: HESIOD +HESLIB = -lhesiod +@END: HESIOD +@BEGIN: TMA +TMACMDS = cipher decipher tma +ITMACMDS= inst-cipher inst-decipher inst-tma +LTMACMDS= l-cipher l-decipher l-tma +TTMACMS= xcipher xdecipher xtma +#TMAMISC= kdsc +#ITMAMISC= inst-kdsc +#LKDSMISC= l-kdsc +#TTMAMISC= xkdsc +TMAOPTS = -I../tma/h +TMALIB = tmasbr.o ../tma/libtma.a +TMALLIBS= tmasbr.c ../tma/llib-ltma +KDSLIB = ../tma/libkds.a ../tma/libtma.a +KDSLLIBS= ../tma/llib-lkds +@END: TMA + +CP = @(CP) +LN = @(LN) + +CC = @(MHCOMPILER) +@BEGIN: STDLIB +LD = @(MHCOMPILER) +@END: STDLIB +@BEGIN: SHAREDLIB +LD = LD_LIBRARY_PATH=../sbr @(MHCOMPILER) +@END: SHAREDLIB +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LDFLAGS = $(LDOPTIONS) +@BEGIN: STDLIB +LIBES = ../config/config.o ../sbr/libmh.a ../mts/libmts.a \ + ../zotnet/libzot.a +LDLIBS = $(LIBES) ../config/version.o $(LDOPTLIB) +@END: STDLIB +@BEGIN: SUN4SHLIB +SLIBVER = .@(SLIBVER) +@END: SUN4SHLIB +@BEGIN: SHAREDLIB +LIBES = ../config/config.o ../sbr/libmh.so ../mts/libmts.a \ + ../zotnet/libzot.a +LDLIBES = ../config/config.o -Bdynamic @(SLDFLAG) -lmh$(SLIBVER) \ + ../mts/libmts.a ../zotnet/libzot.a +LDLIBS = $(LDLIBES) ../config/version.o $(LDOPTLIB) +@END: SHAREDLIB +LINT = lint +LFLAGS = -bhu $(OPTIONS) $(TMAOPTS) +LLIBS = ../sbr/llib-lmh ../zotnet/llib-lzotnet ../mts/llib-lmts + +PGMPROT = 0755 + +CMDS = ali anno burst comp dist folder folders forw inc mark mhmail \ +@BEGIN: MIME + mhn \ +@END: MIME + mhpath msgchk msh next packf pick prev prompter refile repl \ + rmf rmm scan send show sortm vmh whatnow whom $(BBCMDS) \ + $(TMACMDS) $(POPCMDS) +MISC = ap conflict dp install-mh mhl post rcvdist rcvpack rcvstore \ + rcvtty fmtdump mhparam \ +@BEGIN: SMTP + sendmail \ +@END: SMTP +@BEGIN: SENDMTS + spost \ +@END: SENDMTS + $(MTSMISC) $(BBMISC) $(POPMISC) $(SMTSMISC) $(TMAMISC) + +ICMDS = inst-ali inst-anno inst-burst inst-comp inst-dist inst-folder \ + inst-folders inst-forw inst-inc inst-mark inst-mhmail \ +@BEGIN: MIME + inst-mhn \ +@END: MIME + inst-mhpath inst-msgchk inst-msh inst-next inst-packf \ + inst-pick inst-prev inst-prompter inst-refile inst-repl \ + inst-rmf inst-rmm inst-scan inst-send inst-show inst-sortm \ + inst-vmh inst-whatnow inst-whom $(IBBCMDS) $(ITMACMDS) \ + $(IPOPCMDS) +IMISC = inst-ap inst-conflict inst-dp inst-install-mh inst-mhl \ + inst-post inst-rcvdist inst-rcvpack inst-rcvstore inst-rcvtty \ + inst-fmtdump inst-mhparam \ +@BEGIN: SMTP + inst-sendmail \ +@END: SMTP + $(IMTSMISC) \ +@BEGIN: SENDMTS + inst-spost \ +@END: SENDMTS + $(IBBMISC) $(IPOPMISC) $(ISMTSMISC) $(ITMAMISC) + +LCMDS = l-ali l-anno l-burst l-comp l-dist l-folder l-forw l-inc \ + l-mark l-mhmail \ +@BEGIN: MIME + l-mhn \ +@END: MIME + l-mhpath l-msgchk l-msh l-packf l-pick \ + l-prompter l-refile l-repl l-rmf l-rmm l-scan l-send \ + l-show l-sortm l-vmh l-whatnow l-whom $(LBBCMDS) $(LTMACMDS) \ + $(LPOPCMDS) +LMISC = l-ap l-conflict l-dp l-install-mh l-mhl l-post l-rcvdist \ + l-rcvpack l-rcvstore l-rcvtty l-fmtdump l-mhparam \ +@BEGIN: SMTP + l-sendmail \ +@END: SMTP + $(LMTSMISC) $(LBBMISC) \ +@BEGIN: SENDMTS + l-spost \ +@END: SENDMTS + $(LPOPMISC) $(LSMTSMISC) $(LTMAMISC) + +TCMDS = xali xanno xburst xcomp xdist xfolder xforw xinc xmark \ + xmhmail \ +@BEGIN: MIME + xmhn \ +@END: MIME + xmhpath xmsgchk xmsh xpackf xpick xprompter xrefile \ + xrepl xrmf xrmm xscan xsend xshow xsortm xvmh xwhatnow xwhom \ + $(TBBCMDS) $(TTMACMDS) $(TPOPCMDS) +TMISC = xap xconflict xdp xinstall-mh xmhl xpost xrcvdist xrcvpack \ + xrcvstore xrcvtty xfmtdump xmhparam \ +@BEGIN: SMTP + xsendmail \ +@END: SMTP + $(TMTSMISC) $(TBBMISC) $(TPOPMISC) \ + $(TSMTSMISC) \ +@BEGIN: SENDMTS + xspost \ +@END: SENDMTS + $(TTMAMISC) + +.c:; echo $@ + +############################################################################## +# Generate MH processes +############################################################################## + +all: $(CMDS) $(MISC) + +install: inst-all clean + +inst-all: $(ICMDS) $(IMISC) + +tar: $(TCMDS) $(TMISC) + @touch $(TCMDS) $(TMISC) + @make -n inst-all > MAKEUIP + @chmod +x MAKEUIP + tar $(TFLAGS) MAKEUIP $(TCMDS) $(TMISC) + @rm -f MAKEUIP + +uninstall:; -cd $(BINDIR); rm -f $(CMDS) + -cd $(ETCDIR); rm -f $(MISC) + +lint: $(LCMDS) $(LMISC) + + +############################################################################## +# MH processes +############################################################################## + +inst-ali: $(BINDIR)/ali + +$(BINDIR)/ali: xali + -$(REMOVE) $@ zali + $(CP) xali $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +ali: xali + +xali: ali.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ ali.o aliasbr.o $(LDLIBS) + +l-ali:; $(LINT) $(LFLAGS) ali.c aliasbr.c $(LLIBS) + + +inst-anno: $(BINDIR)/anno + +$(BINDIR)/anno: xanno + -$(REMOVE) $@ zanno + $(CP) xanno $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +anno: xanno + +xanno: anno.o annosbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ anno.o annosbr.o $(LDLIBS) + +l-anno:; $(LINT) $(LFLAGS) anno.c annosbr.c $(LLIBS) + + +inst-ap: $(ETCDIR)/ap + +$(ETCDIR)/ap: xap + -$(REMOVE) $@ zap + $(CP) xap $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +ap: xap + +xap: ap.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ ap.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-ap:; $(LINT) $(LFLAGS) ap.c trmsbr.c $(LLIBS) + + +inst-bbc: $(BINDIR)/bbc + +$(BINDIR)/bbc: xbbc + -$(REMOVE) $@ zbbc +@BEGIN: BPOP + -chmod u-s zbbc +@END: BPOP + $(CP) xbbc $@ + -@chmod $(PGMPROT) $@ +@BEGIN: BPOP + -$(CHOWN) root $@ + chmod u+s $@ +@END: BPOP + -@ls -l $(BINDIR)/bbc + -@echo "" + +bbc: xbbc + +xbbc: bbc.o $(PSHLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ bbc.o $(PSHLIB) $(LDLIBS) + +l-bbc:; $(LINT) $(LFLAGS) bbc.c $(PSHLLIBS) $(LLIBS) + +pshsbr.c: popsbr.c + rm -f $@ + $(LN) popsbr.c $@ + +pshsbr.o: pshsbr.c + $(CC) $(CFLAGS) -DPSHSBR -c pshsbr.c + + +inst-bbl: $(BINDIR)/bbl + +$(BINDIR)/bbl: xbbl + -$(REMOVE) $@ zbbl + -chmod u-s zbbl + $(CP) xbbl $@ + -chmod $(PGMPROT) $@ + -$(CHOWN) $(BBUID) $@ + chmod u+s $@ + -@ls -l $@ + -@echo "" + +bbl: xbbl + +xbbl: bbl.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ bbl.o $(LDLIBS) + +l-bbl:; $(LINT) $(LFLAGS) bbl.c $(LLIBS) + + +inst-burst: $(BINDIR)/burst + +$(BINDIR)/burst: xburst + -$(REMOVE) $@ zburst + $(CP) xburst $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +burst: xburst + +xburst: burst.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ burst.o $(LDLIBS) + +l-burst:; $(LINT) $(LFLAGS) burst.c $(LLIBS) + + +inst-cipher: $(BINDIR)/cipher + +$(BINDIR)/cipher: xcipher + -$(REMOVE) $@ zcipher + $(CP) xcipher $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +cipher: xcipher + +xcipher: cipher.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ cipher.o $(TMALIB) $(LDLIBS) + +l-cipher:; $(LINT) $(LFLAGS) cipher.c $(TMALLIBS) $(LLIBS) + + +inst-comp: $(BINDIR)/comp + +$(BINDIR)/comp: xcomp + -$(REMOVE) $@ zcomp + $(CP) xcomp $@ + -@chmod $(PGMPROT) $@ + -@ls -l $(BINDIR)/comp + -@echo "" + +comp: xcomp + +xcomp: comp.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ comp.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-comp:; $(LINT) $(LFLAGS) comp.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-conflict: $(ETCDIR)/conflict + +$(ETCDIR)/conflict: xconflict + -$(REMOVE) $@ zconflict + $(CP) xconflict $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +conflict: xconflict + +xconflict: conflict.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ conflict.o aliasbr.o $(LDLIBS) + +l-conflict:; $(LINT) $(LFLAGS) conflict.c aliasbr.c $(LLIBS) + + +inst-decipher: $(BINDIR)/decipher + +$(BINDIR)/decipher: xdecipher + -$(REMOVE) $@ zdecipher + $(CP) xdecipher $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +decipher: xdecipher + +xdecipher: decipher.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ decipher.o $(TMALIB) $(LDLIBS) + +l-decipher:; $(LINT) $(LFLAGS) decipher.c $(TMALLIBS) $(LLIBS) + + +inst-dist: $(BINDIR)/dist + +$(BINDIR)/dist: xdist + -$(REMOVE) $@ zdist + $(CP) xdist $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +dist: xdist + +xdist: dist.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ dist.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-dist:; $(LINT) $(LFLAGS) dist.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-dp: $(ETCDIR)/dp + +$(ETCDIR)/dp: xdp + -$(REMOVE) $@ zdp + $(CP) xdp $@ + -@chmod $(PGMPROT) $@ + -@ls -l $(ETCDIR)/dp + -@echo "" + +dp: xdp + +xdp: dp.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ dp.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-dp:; $(LINT) $(LFLAGS) dp.c trmsbr.c $(LLIBS) + + +inst-fmtdump: $(ETCDIR)/fmtdump + +$(ETCDIR)/fmtdump: xfmtdump + -$(REMOVE) $@ zfmtdump + cp xfmtdump $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +fmtdump: xfmtdump + +xfmtdump: fmtdump.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ fmtdump.o $(LDLIBS) + +l-fmtdump:; $(LINT) $(LFLAGS) fmtdump.c $(LLIBS) + + +inst-folders: inst-folder +inst-folder: $(BINDIR)/folder + +$(BINDIR)/folder: xfolder + -$(REMOVE) $@ zfolder + $(CP) xfolder $@ + -@chmod $(PGMPROT) $@ + rm -f $(BINDIR)/folders + -ln $@ $(BINDIR)/folders + -@ls -l $@ + -@echo "" + +folders: folder +folder: xfolder + +xfolder: folder.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ folder.o $(LDLIBS) + +l-folder:; $(LINT) $(LFLAGS) folder.c $(LLIBS) + + +inst-forw: $(BINDIR)/forw + +$(BINDIR)/forw: xforw + -$(REMOVE) $@ zforw + $(CP) xforw $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +forw: xforw + +xforw: forw.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ forw.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-forw:; $(LINT) $(LFLAGS) forw.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-inc: $(BINDIR)/inc + +$(BINDIR)/inc: xinc + -$(REMOVE) $@ zinc +@BEGIN: POP + -chmod u-s zinc +@END: POP + $(CP) xinc $@ + -@chmod $(PGMPROT) $@ +@BEGIN: MAILGROUP + -@chgrp @(MAILGROUP) $@ + -@chmod g+s $@ +@END: MAILGROUP +@BEGIN: POP + -$(CHOWN) root $@ + chmod u+s $@ +@END: POP + -@ls -l $@ + -@echo "" + +inc: xinc + +xinc: inc.o scansbr.o dropsbr.o trmsbr.o \ + $(POPLIB) $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ inc.o scansbr.o dropsbr.o \ + trmsbr.o $(POPLIB) $(TMALIB) $(KRBLIB) $(HESLIB) \ + $(LDLIBS) $(LDCURSES) + +l-inc:; $(LINT) $(LFLAGS) inc.c scansbr.c \ + dropsbr.c trmsbr.c $(POPLLIBS) $(TMALLIBS) $(LLIBS) + + +inst-install-mh: $(ETCDIR)/install-mh + +$(ETCDIR)/install-mh: xinstall-mh + -$(REMOVE) $@ zinstall-mh + $(CP) xinstall-mh $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +install-mh: xinstall-mh + +xinstall-mh: install-mh.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ install-mh.o $(LDLIBS) + +l-install-mh:; $(LINT) $(LFLAGS) install-mh.c $(LLIBS) + + +inst-kdsc: $(ETCDIR)/kdsc + +$(ETCDIR)/kdsc: xkdsc + -$(REMOVE) $@ zkdsc + $(CP) xkdsc $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +kdsc: xkdsc + +xkdsc: kdsc.o $(KDSLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ kdsc.o $(KDSLIB) $(LDLIBS) + +l-kdsc:; $(LINT) $(LFLAGS) kdsc.c $(KDSLLIBS) $(LLIBS) + + +inst-mark: $(BINDIR)/mark + +$(BINDIR)/mark: xmark + -$(REMOVE) $@ zmark + $(CP) xmark $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +mark: xmark + +xmark: mark.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mark.o $(LDLIBS) + +l-mark:; $(LINT) $(LFLAGS) mark.c $(LLIBS) + + +inst-mhl: $(ETCDIR)/mhl + +$(ETCDIR)/mhl: xmhl + -$(REMOVE) $@ zmhl + $(CP) xmhl $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +mhl: xmhl + +xmhl: mhl.o \ + mhlsbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhl.o \ + mhlsbr.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-mhl:; $(LINT) $(LFLAGS) mhl.c \ + mhlsbr.c trmsbr.c $(LLIBS) + + +inst-mhmail: $(BINDIR)/mhmail + +$(BINDIR)/mhmail: xmhmail + -$(REMOVE) $@ zmhmail + $(CP) xmhmail $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +mhmail: xmhmail + +xmhmail: mhmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhmail.o $(LDLIBS) + +l-mhmail:; $(LINT) $(LFLAGS) mhmail.c $(LLIBS) + + +inst-mhn: $(BINDIR)/mhn + +$(BINDIR)/mhn: xmhn + -$(REMOVE) $@ zmhn + cp xmhn $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +mhn: xmhn + +xmhn: mhn.o ftpsbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhn.o ftpsbr.o trmsbr.o \ + $(LDLIBS) $(LDCURSES) + +l-mhn:; $(LINT) $(LFLAGS) mhn.c ftpsbr.c trmsbr.c $(LLIBS) + + +inst-mhparam: $(BINDIR)/mhparam + +$(BINDIR)/mhparam: xmhparam + -$(REMOVE) $@ zmhparam + cp xmhparam $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +mhparam: xmhparam + +xmhparam: mhparam.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhparam.o $(LDLIBS) $(LDCURSES) + +l-mhparam:; $(LINT) $(LFLAGS) mhparam.c $(LLIBS) + + +inst-mhpath: $(BINDIR)/mhpath + +$(BINDIR)/mhpath: xmhpath + -$(REMOVE) $@ zmhpath + $(CP) xmhpath $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +mhpath: xmhpath + +xmhpath: mhpath.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhpath.o $(LDLIBS) + +l-mhpath:; $(LINT) $(LFLAGS) mhpath.c $(LLIBS) + + +inst-msgchk: $(BINDIR)/msgchk + +$(BINDIR)/msgchk: xmsgchk + -$(REMOVE) $@ zmsgchk +@BEGIN: POP + -chmod u-s zmsgchk +@END: POP + $(CP) xmsgchk $@ + -@chmod $(PGMPROT) $@ +@BEGIN: POP + -$(CHOWN) root $@ + chmod u+s $@ +@END: POP + -@ls -l $@ + -@echo "" + +msgchk: xmsgchk + +xmsgchk: msgchk.o $(POPLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ msgchk.o $(POPLIB) \ + $(KRBLIB) $(HESLIB) $(LDLIBS) + +l-msgchk:; $(LINT) $(LFLAGS) msgchk.c $(POPLLIBS) $(LLIBS) + + +inst-msh: $(BINDIR)/msh + +$(BINDIR)/msh: xmsh + -$(REMOVE) $@ zmsh + $(CP) xmsh $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +msh: xmsh + +xmsh: msh.o mshcmds.o vmhsbr.o \ + picksbr.o scansbr.o dropsbr.o mhlsbr.o trmsbr.o \ + $(PSHLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ msh.o mshcmds.o vmhsbr.o \ + picksbr.o scansbr.o dropsbr.o mhlsbr.o trmsbr.o \ + $(PSHLIB) $(LDLIBS) $(LDCURSES) + +l-msh:; $(LINT) $(LFLAGS) msh.c mshcmds.c vmhsbr.c \ + picksbr.c scansbr.c dropsbr.c mhlsbr.c trmsbr.c \ + $(PSHLLIBS) $(LLIBS) + + +inst-packf: $(BINDIR)/packf + +$(BINDIR)/packf: xpackf + -$(REMOVE) $@ zpackf + $(CP) xpackf $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +packf: xpackf + +xpackf: packf.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ packf.o dropsbr.o $(LDLIBS) + +l-packf:; $(LINT) $(LFLAGS) packf.c dropsbr.c $(LLIBS) + + +inst-pick: $(BINDIR)/pick + +$(BINDIR)/pick: xpick + -$(REMOVE) $@ zpick + $(CP) xpick $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +pick: xpick + +xpick: pick.o picksbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ pick.o picksbr.o $(LDLIBS) + +l-pick:; $(LINT) $(LFLAGS) pick.c picksbr.c $(LLIBS) + + +inst-popi: $(BINDIR)/popi + +$(BINDIR)/popi: xpopi + -$(REMOVE) $@ zpopi + cp xpopi $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +popi: xpopi + +xpopi: popi.o $(POPLIB) trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ popi.o $(POPLIB) trmsbr.o $(LDLIBS) \ + $(LDCURSES) + +l-popi:; $(LINT) $(LFLAGS) popi.c $(POPLLIBS) trmsbr.c $(LLIBS) + + +inst-post: $(ETCDIR)/post + +$(ETCDIR)/post: xpost + -$(REMOVE) $@ zpost +@BEGIN: MHMTS + -chmod u-s zpost +@END: MHMTS + $(CP) xpost $@ + -@chmod $(PGMPROT) $@ +@BEGIN: MHMTS + -$(CHOWN) root $@ + chmod u+s $@ +@END: MHMTS + -@ls -l $@ + -@echo "" + +post: xpost + +xpost: post.o \ + aliasbr.o $(MTSBRS) $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ post.o \ + aliasbr.o $(MTSBRS) $(TMALIB) $(LDLIBS) + +l-post:; $(LINT) $(LFLAGS) post.c \ + aliasbr.c $(TMALLIBS) $(LLIBS) + + +inst-prompter: $(BINDIR)/prompter + +$(BINDIR)/prompter: xprompter + -$(REMOVE) $@ zprompter + $(CP) xprompter $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +prompter: xprompter + +xprompter: prompter.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ prompter.o $(LDLIBS) + +l-prompter:; $(LINT) $(LFLAGS) prompter.c $(LLIBS) + + +inst-rcvdist: $(ETCDIR)/rcvdist + +$(ETCDIR)/rcvdist: xrcvdist + -$(REMOVE) $@ zrcvdist + $(CP) xrcvdist $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +rcvdist: xrcvdist + +xrcvdist: rcvdist.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rcvdist.o distsbr.o $(LDLIBS) + +l-rcvdist:; $(LINT) $(LFLAGS) rcvdist.c distsbr.c $(LLIBS) + + +inst-rcvpack: $(ETCDIR)/rcvpack + +$(ETCDIR)/rcvpack: xrcvpack + -$(REMOVE) $@ zrcvpack + $(CP) xrcvpack $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +rcvpack: xrcvpack + +xrcvpack: rcvpack.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rcvpack.o dropsbr.o $(LDLIBS) + +l-rcvpack:; $(LINT) $(LFLAGS) rcvpack.c dropsbr.c $(LLIBS) + + +inst-rcvstore: $(ETCDIR)/rcvstore + +$(ETCDIR)/rcvstore: xrcvstore + -$(REMOVE) $@ zrcvstore + $(CP) xrcvstore $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +rcvstore: xrcvstore + +xrcvstore: rcvstore.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rcvstore.o $(LDLIBS) + +l-rcvstore:; $(LINT) $(LFLAGS) rcvstore.c $(LLIBS) + + +inst-rcvtty: $(ETCDIR)/rcvtty + +$(ETCDIR)/rcvtty: xrcvtty + -$(REMOVE) $@ zrcvtty + $(CP) xrcvtty $@ + -@chmod $(PGMPROT) $@ +@BEGIN: BSD43 + -@chgrp tty $@ + -@chmod g+s $@ +@END: BSD43 + -@ls -l $@ + -@echo "" + +rcvtty: xrcvtty + +xrcvtty: rcvtty.o scansbr.o trmsbr.o \ +@BEGIN: TTYD + ttyw.o \ +@END: TTYD + $(LIBES) + $(LD) $(LDFLAGS) -o $@ rcvtty.o scansbr.o trmsbr.o \ +@BEGIN: TTYD + ttyw.o \ +@END: TTYD + $(LDLIBS) $(LDCURSES) + +l-rcvtty:; $(LINT) $(LFLAGS) rcvtty.c scansbr.c trmsbr.c \ +@BEGIN: TTYD + ttyw.c \ +@END: TTYD + $(LLIBS) + + +inst-refile: $(BINDIR)/refile + +$(BINDIR)/refile: xrefile + -$(REMOVE) $@ zrefile + $(CP) xrefile $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +refile: xrefile + +xrefile: refile.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ refile.o $(LDLIBS) + +l-refile:; $(LINT) $(LFLAGS) refile.c $(LLIBS) + + +inst-repl: $(BINDIR)/repl + +$(BINDIR)/repl: xrepl + -$(REMOVE) $@ zrepl + $(CP) xrepl $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +repl: xrepl + +xrepl: repl.o replsbr.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ repl.o replsbr.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-repl:; $(LINT) $(LFLAGS) repl.c replsbr.c whatnowproc.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-rmail: /bin/rmail + +/bin/rmail: xrmail + -$(REMOVE) $@ zrmail + -chmod u-s zrmail + $(CP) xrmail $@ + -@chmod $(PGMPROT) $@ + -$(CHOWN) root $@ + chmod u+s $@ + -@ls -l $@ + -@echo "" + +rmail: xrmail + +xrmail: rmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rmail.o $(LDLIBS) + +l-rmail:; $(LINT) $(LFLAGS) rmail.c $(LLIBS) + + +inst-rmf: $(BINDIR)/rmf + +$(BINDIR)/rmf: xrmf + -$(REMOVE) $@ zrmf + $(CP) xrmf $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +rmf: xrmf + +xrmf: rmf.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rmf.o $(LDLIBS) + +l-rmf:; $(LINT) $(LFLAGS) rmf.c $(LLIBS) + + +inst-rmm: $(BINDIR)/rmm + +$(BINDIR)/rmm: xrmm + -$(REMOVE) $@ zrmm + $(CP) xrmm $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +rmm: xrmm + +xrmm: rmm.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rmm.o $(LDLIBS) + +l-rmm:; $(LINT) $(LFLAGS) rmm.c $(LLIBS) + + +inst-scan: $(BINDIR)/scan + +$(BINDIR)/scan: xscan + -$(REMOVE) $@ zscan + $(CP) xscan $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +scan: xscan + +xscan: scan.o \ + scansbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ scan.o \ + scansbr.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-scan:; $(LINT) $(LFLAGS) scan.c \ + scansbr.c trmsbr.c $(LLIBS) + + +inst-send: $(BINDIR)/send + +$(BINDIR)/send: xsend + -$(REMOVE) $@ zsend + $(CP) xsend $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +send: xsend + +xsend: send.o \ + sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ send.o \ + sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-send:; $(LINT) $(LFLAGS) send.c \ + sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-next: inst-show +inst-prev: inst-show +inst-show: $(BINDIR)/show + +$(BINDIR)/show: xshow + -$(REMOVE) $@ zshow + $(CP) xshow $@ + -@chmod $(PGMPROT) $@ + rm -f $(BINDIR)/next + -ln $@ $(BINDIR)/next + rm -f $(BINDIR)/prev + -ln $@ $(BINDIR)/prev + -@ls -l $@ + -@echo "" + +next: show +prev: show +show: xshow + +xshow: show.o \ + mhlsbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ show.o \ + mhlsbr.o trmsbr.o $(LDLIBS) $(LDCURSES) + +l-show:; $(LINT) $(LFLAGS) show.c \ + mhlsbr.c trmsbr.c $(LLIBS) + + +inst-sbboards: $(SBBOARDS) + +$(SBBOARDS): xsbboards + -$(REMOVE) $@ zsbboards +@BEGIN: SENDMTS + -chmod u-s zsbboards +@END: SENDMTS + $(CP) xsbboards $@ + -chmod $(PGMPROT) $@ +@BEGIN: SENDMTS + -$(CHOWN) $(BBUID) $@ + chmod u+s $@ +@END: SENDMTS + -@ls -l $@ + -@echo "" + +sbboards: xsbboards + +xsbboards: sbboards.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ sbboards.o dropsbr.o $(LDLIBS) + +l-sbboards:; $(LINT) $(LFLAGS) sbboards.c dropsbr.c $(LLIBS) + + +inst-slocal: $(ETCDIR)/slocal + +$(ETCDIR)/slocal: xslocal + -$(REMOVE) $@ zslocal + $(CP) xslocal $@ + -chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +slocal: xslocal + +xslocal: slocal.o aliasbr.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ slocal.o aliasbr.o dropsbr.o $(LDLIBS) + +l-slocal:; $(LINT) $(LFLAGS) slocal.c aliasbr.c dropsbr.c $(LLIBS) + + +inst-sortm: $(BINDIR)/sortm + +$(BINDIR)/sortm: xsortm + -$(REMOVE) $@ zsortm + $(CP) xsortm $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +sortm: xsortm + +xsortm: sortm.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ sortm.o $(LDLIBS) + +l-sortm:; $(LINT) $(LFLAGS) sortm.c $(LLIBS) + + +inst-spop: $(ETCDIR)/spop + +$(ETCDIR)/spop: xspop + -$(REMOVE) $@ zspop + -chmod u-s zspop + $(CP) xspop $@ + -chmod $(PGMPROT) $@ + -$(CHOWN) $(POPUID) $@ + chmod u+s $@ + -@ls -l $@ + -@echo "" + +spop: xspop + +xspop: spop.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ spop.o dropsbr.o $(LDLIBS) + +spop.o: spop.c + $(CC) $(CFLAGS) -DSPOP -c spop.c + +l-spop:; $(LINT) $(LFLAGS) -DSPOP spop.c dropsbr.c $(LLIBS) + + +@BEGIN: SENDMTS +inst-spost: $(ETCDIR)/spost + +$(ETCDIR)/spost: xspost + -$(REMOVE) $@ zspost + $(CP) xspost $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +spost: xspost + +xspost: spost.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ spost.o aliasbr.o $(LDLIBS) + +l-spost:; $(LINT) $(LFLAGS) spost.c aliasbr.c $(LLIBS) +@END: SENDMTS + + +@BEGIN: SMTP +inst-sendmail: $(ETCDIR)/sendmail + +$(ETCDIR)/sendmail: xsendmail + -$(REMOVE) $@ zsendmail + cp xsendmail $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "Don't forget to: ln -s /usr/lib/sendmail $@" + -@echo "" + +sendmail: xsendmail + +xsendmail: sendmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ sendmail.o $(LDLIBS) + +l-sendmail:; $(LINT) $(LFLAGS) sendmail.c $(LLIBS) +@END: SMTP + +inst-tma: $(BINDIR)/tma + +$(BINDIR)/tma: xtma + -$(REMOVE) $@ ztma + $(CP) xtma $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +tma: xtma + +xtma: tma.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ tma.o $(TMALIB) $(LDLIBS) + +l-tma:; $(LINT) $(LFLAGS) tma.c $(TMALLIBS) $(LLIBS) + + +inst-umhook: $(BINDIR)/umhook + +$(BINDIR)/umhook: xumhook + -$(REMOVE) $@ zumhook + $(CP) xumhook $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +umhook: xumhook + +xumhook: umhook.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ umhook.o $(LDLIBS) $(LDCURSES) + +l-umhook:; $(LINT) $(LFLAGS) umhook.c $(LLIBS) + + +inst-vmh: $(BINDIR)/vmh + +$(BINDIR)/vmh: xvmh + -$(REMOVE) $@ zvmh + $(CP) xvmh $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +vmh: xvmh + +xvmh: vmh.o vmhsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ vmh.o vmhsbr.o $(LDCURSES) $(LDLIBS) + +l-vmh:; $(LINT) $(LFLAGS) vmh.c vmhsbr.c $(LLIBS) + + +xvmhtest: vmhtest.o vmhsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ vmhtest.o vmhsbr.o $(LDLIBS) + + +inst-whatnow: $(BINDIR)/whatnow + +$(BINDIR)/whatnow: xwhatnow + -$(REMOVE) $@ zwhatnow + $(CP) xwhatnow $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +whatnow: xwhatnow + +xwhatnow: whatnow.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ whatnow.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LDLIBS) + +l-whatnow:; $(LINT) $(LFLAGS) whatnow.c \ + whatnowsbr.c sendsbr.c annosbr.c distsbr.c $(LLIBS) + + +inst-whom: $(BINDIR)/whom + +$(BINDIR)/whom: xwhom + -$(REMOVE) $@ zwhom + $(CP) xwhom $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +whom: xwhom + +xwhom: whom.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ whom.o distsbr.o $(LDLIBS) + +l-whom:; $(LINT) $(LFLAGS) whom.c distsbr.c $(LLIBS) + + +inst-wmh: $(BINDIR)/wmh + +$(BINDIR)/wmh: xwmh + -$(REMOVE) $@ zwmh + $(CP) xwmh $@ + -@chmod $(PGMPROT) $@ + -@ls -l $@ + -@echo "" + +wmh: xwmh + +xwmh: wmh.o vmhsbr.o $(LIBES) + ${CC} $(LDFLAGS) -o $@ wmh.o vmhsbr.o $(LDLIBS) \ + -ltools -lbm -lvt + +wmh.o: wmh.c + ${CC} $(CFLAGS) -c $*.c + +l-wmh:; $(LINT) $(LFLAGS) wmh.c vmhsbr.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEUIP + + +############################################################################## +# MODIFICATIONS -- Adding a new program (e.g., pickle) +############################################################################## + +# +# If it's a user-program, add pickle to CMDS, inst-pickle to ICMDS, +# and l-pickle to LCMDS +# If not, add pickle to MISC, inst-pickle to IMISC, and l-pickle to +# LMISC +# +# Under the "MH processes" section, add this incantation +# inst-pickle: $(BINDIR)/pickle +# +# $(BINDIR)/pickle: xpickle +# -$(REMOVE) $@ zpickle +# cp xpickle $@ +# -@chmod $(PGMPROT) $@ +# -@ls -l $@ +# -@echo "" +# +# pickle: xpickle +# +# xpickle: pickle.o $(LIBES) +# $(LD) $(LDFLAGS) -o $@ pickle.o $(LDLIBS) +# +# l-pickle:; $(LINT) $(LFLAGS) pickle.c $(LLIBS) +# +# +# If other libraries are loaded in, modify the rule for xpickle and +# l-pickle to reflect this. +# +# Under the "Dependencies" section, add a line for pickle.o +# pickle.o: ../h/mh.h +# +# If other includes are read, modify this rule to reflect this + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = [a-z]*.c + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# CONFIGURATION DEPENDENT DEPENDENCIES START HERE +@BEGIN: MMDFMTS +post.o: ../mts/mmdf/util.h ../mts/mmdf/mmdf.h +@END: MMDFMTS +@BEGIN: SENDMTS +post.o: ../mts/sendmail/smail.h +sbboards.o: ../mts/sendmail/smail.h +spop.o: ../mts/sendmail/smail.h +@END: SENDMTS +# CONFIGURATION DEPENDENT DEPENDENCIES END HERE + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +ali.o: ali.c +ali.o: ../h/mh.h +ali.o: ../h/addrsbr.h +ali.o: ../h/aliasbr.h +#ali.o: /usr/include/stdio.h +aliasbr.o: aliasbr.c +aliasbr.o: ../h/mh.h +aliasbr.o: ../h/aliasbr.h +#aliasbr.o: /usr/include/ctype.h +#aliasbr.o: /usr/include/grp.h +#aliasbr.o: /usr/include/pwd.h +#aliasbr.o: /usr/include/stdio.h +anno.o: anno.c +anno.o: ../h/mh.h +#anno.o: /usr/include/ctype.h +#anno.o: /usr/include/stdio.h +annosbr.o: annosbr.c +annosbr.o: ../h/mh.h +annosbr.o: ../zotnet/tws.h +#annosbr.o: /usr/include/errno.h +#annosbr.o: /usr/include/stdio.h +#annosbr.o: /usr/include/sys/types.h +#annosbr.o: /usr/include/sys/stat.h +ap.o: ap.c +ap.o: ../h/mh.h +ap.o: ../h/addrsbr.h +ap.o: ../h/formatsbr.h +#ap.o: /usr/include/stdio.h +bbc.o: bbc.c +bbc.o: ../h/mh.h +bbc.o: ../zotnet/bboards.h +#bbc.o: /usr/include/stdio.h +@BEGIN: BPOP +bbc.o: ../zotnet/mts.h +@END: BPOP +#bbc.o: /usr/include/errno.h +#bbc.o: /usr/include/signal.h +#bbc.o: /usr/include/sys/types.h +#bbc.o: /usr/include/sys/stat.h +#bbc.o: /usr/include/sys/wait.h +#bbc.o: /usr/include/sys/time.h +#bbc.o: /usr/include/sys/resource.h +bbl.o: bbl.c +bbl.o: ../h/mh.h +bbl.o: ../h/local.h +bbl.o: ../zotnet/bboards.h +#bbl.o: /usr/include/ctype.h +#bbl.o: /usr/include/pwd.h +#bbl.o: /usr/include/stdio.h +#bbl.o: /usr/include/sys/types.h +#bbl.o: /usr/include/ndir.h +#bbl.o: /usr/include/dir.h +#bbl.o: /usr/include/sys/dir.h +#bbl.o: /usr/include/sys/stat.h +burst.o: burst.c +burst.o: ../h/mh.h +#burst.o: /usr/include/stdio.h +#burst.o: /usr/include/sys/types.h +#burst.o: /usr/include/sys/stat.h +cipher.o: cipher.c +cipher.o: ../h/mh.h +#cipher.o: /usr/include/sgtty.h +#cipher.o: /usr/include/signal.h +#cipher.o: /usr/include/stdio.h +cipher.o: ../tma/h/tma.h +comp.o: comp.c +comp.o: ../h/mh.h +#comp.o: /usr/include/stdio.h +#comp.o: /usr/include/sys/types.h +#comp.o: /usr/include/sys/stat.h +conflict.o: conflict.c +conflict.o: ../h/mh.h +conflict.o: ../h/aliasbr.h +conflict.o: ../h/local.h +#conflict.o: /usr/include/stdio.h +conflict.o: ../zotnet/mts.h +#conflict.o: /usr/include/grp.h +#conflict.o: /usr/include/pwd.h +#conflict.o: /usr/include/sys/types.h +#conflict.o: /usr/include/ndir.h +#conflict.o: /usr/include/dir.h +#conflict.o: /usr/include/sys/param.h +#conflict.o: /usr/include/sys/dir.h +#conflict.o: /usr/include/ctype.h +decipher.o: decipher.c +decipher.o: ../h/mh.h +#decipher.o: /usr/include/stdio.h +decipher.o: ../tma/h/tma.h +dist.o: dist.c +dist.o: ../h/mh.h +#dist.o: /usr/include/stdio.h +#dist.o: /usr/include/sys/types.h +#dist.o: /usr/include/sys/stat.h +distsbr.o: distsbr.c +distsbr.o: ../h/mh.h +#distsbr.o: /usr/include/ctype.h +#distsbr.o: /usr/include/stdio.h +dp.o: dp.c +dp.o: ../h/mh.h +dp.o: ../h/formatsbr.h +dp.o: ../zotnet/tws.h +#dp.o: /usr/include/stdio.h +dropsbr.o: dropsbr.c +#dropsbr.o: /usr/include/stdio.h +dropsbr.o: ../h/mh.h +dropsbr.o: ../h/dropsbr.h +dropsbr.o: ../zotnet/mts.h +#dropsbr.o: /usr/include/errno.h +#dropsbr.o: /usr/include/sys/types.h +#dropsbr.o: /usr/include/sys/stat.h +folder.o: folder.c +folder.o: ../h/mh.h +folder.o: ../h/local.h +#folder.o: /usr/include/errno.h +#folder.o: /usr/include/stdio.h +#folder.o: /usr/include/sys/types.h +#folder.o: /usr/include/ndir.h +#folder.o: /usr/include/dir.h +#folder.o: /usr/include/sys/dir.h +#folder.o: /usr/include/sys/stat.h +forw.o: forw.c +forw.o: ../h/mh.h +forw.o: ../h/formatsbr.h +forw.o: ../zotnet/tws.h +#forw.o: /usr/include/stdio.h +#forw.o: /usr/include/sys/types.h +#forw.o: /usr/include/sys/stat.h +fmtdump.o: fmtdump.c +fmtdump.o: ../h/mh.h +fmtdump.o: ../h/formatsbr.h +fmtdump.o: ../h/fmtcompile.h +#fmtdump.o: /usr/include/stdio.h +ftpsbr.o: ftpsbr.c +ftpsbr.o: ../h/mh.h +ftpsbr.o: ../h/mhn.h +#ftpsbr.o: /usr/include/ctype.h +#ftpsbr.o: /usr/include/stdio.h +#ftpsbr.o: /usr/include/arpa/ftp.h +#ftpsbr.o: /usr/include/varargs.h +#ftpsbr.o: /usr/include/sys/types.h +#ftpsbr.o: /usr/include/sys/socket.h +#ftpsbr.o: /usr/include/netinet/in.h +#ftpsbr.o: /usr/include/netdb.h +inc.o: inc.c +inc.o: ../h/mh.h +inc.o: ../h/dropsbr.h +inc.o: ../h/formatsbr.h +inc.o: ../h/scansbr.h +inc.o: ../zotnet/tws.h +#inc.o: /usr/include/stdio.h +inc.o: ../zotnet/mts.h +#inc.o: /usr/include/errno.h +#inc.o: /usr/include/signal.h +#inc.o: /usr/include/sys/types.h +#inc.o: /usr/include/sys/stat.h +install-mh.o: install-mh.c +install-mh.o: ../h/mh.h +#install-mh.o: /usr/include/pwd.h +#install-mh.o: /usr/include/stdio.h +#install-mh.o: /usr/include/sys/types.h +#install-mh.o: /usr/include/sys/stat.h +kdsc.o: kdsc.c +kdsc.o: ../h/mh.h +kdsc.o: ../zotnet/tws.h +kdsc.o: ../tma/h/kds.h +mark.o: mark.c +mark.o: ../h/mh.h +#mark.o: /usr/include/stdio.h +mhl.o: mhl.c +mhlsbr.o: mhlsbr.c +mhlsbr.o: ../h/mh.h +mhlsbr.o: ../h/addrsbr.h +mhlsbr.o: ../h/formatsbr.h +mhlsbr.o: ../zotnet/tws.h +#mhlsbr.o: /usr/include/ctype.h +#mhlsbr.o: /usr/include/setjmp.h +#mhlsbr.o: /usr/include/signal.h +#mhlsbr.o: /usr/include/stdio.h +#mhlsbr.o: /usr/include/sys/types.h +#mhlsbr.o: /usr/include/sys/stat.h +mhmail.o: mhmail.c +mhmail.o: ../h/mh.h +#mhmail.o: /usr/include/stdio.h +#mhmail.o: /usr/include/signal.h +mhn.o: mhn.c +mhn.o: ../h/mh.h +mhn.o: ../h/mhn.h +#mhn.o: /usr/include/ctype.h +#mhn.o: /usr/include/errno.h +#mhn.o: /usr/include/signal.h +#mhn.o: /usr/include/stdio.h +#mhn.o: /usr/include/sys/types.h +#mhn.o: /usr/include/sys/stat.h +#mhn.o: /usr/include/sys/wait.h +mhparam.o: mhparam.c +mhparam.o: ../h/mh.h +mhparam.o: ../h/strings.h +#mhparam.o: /usr/include/stdio.h +mhpath.o: mhpath.c +mhpath.o: ../h/mh.h +#mhpath.o: /usr/include/stdio.h +msgchk.o: msgchk.c +msgchk.o: ../h/mh.h +#msgchk.o: /usr/include/stdio.h +msgchk.o: ../zotnet/mts.h +msgchk.o: ../zotnet/tws.h +#msgchk.o: /usr/include/sys/types.h +#msgchk.o: /usr/include/sys/stat.h +#msgchk.o: /usr/include/pwd.h +msh.o: msh.c +msh.o: ../h/mh.h +msh.o: ../h/dropsbr.h +msh.o: ../h/formatsbr.h +msh.o: ../h/scansbr.h +msh.o: ../zotnet/tws.h +#msh.o: /usr/include/stdio.h +msh.o: ../zotnet/mts.h +#msh.o: /usr/include/ctype.h +#msh.o: /usr/include/sys/types.h +#msh.o: /usr/include/sys/stat.h +#msh.o: /usr/include/sgtty.h +#msh.o: /usr/include/termio.h +#msh.o: /usr/include/sys/ioctl.h +#msh.o: /usr/include/pwd.h +#msh.o: /usr/include/setjmp.h +#msh.o: /usr/include/signal.h +msh.o: ../h/mshsbr.h +msh.o: ../h/vmhsbr.h +mshcmds.o: mshcmds.c +mshcmds.o: ../h/mh.h +mshcmds.o: ../h/dropsbr.h +mshcmds.o: ../h/formatsbr.h +mshcmds.o: ../h/scansbr.h +mshcmds.o: ../zotnet/tws.h +#mshcmds.o: /usr/include/stdio.h +mshcmds.o: ../zotnet/mts.h +#mshcmds.o: /usr/include/ctype.h +#mshcmds.o: /usr/include/setjmp.h +#mshcmds.o: /usr/include/signal.h +mshcmds.o: ../h/mshsbr.h +@BEGIN: MIME +mshcmds.o: ../h/mhn.h +@END: MIME +packf.o: packf.c +packf.o: ../h/mh.h +packf.o: ../h/dropsbr.h +#packf.o: /usr/include/stdio.h +pick.o: pick.c +pick.o: ../h/mh.h +pick.o: ../zotnet/tws.h +#pick.o: /usr/include/stdio.h +picksbr.o: picksbr.c +picksbr.o: ../h/mh.h +picksbr.o: ../zotnet/tws.h +#picksbr.o: /usr/include/stdio.h +popsbr.o: popsbr.c +popsbr.o: ../h/strings.h +#popsbr.o: /usr/include/stdio.h +#popsbr.o: /usr/include/signal.h +pshsbr.o: popsbr.c +pshsbr.o: ../h/strings.h +pshsbr.o: ../h/nntp.h +#pshsbr.o: /usr/include/stdio.h +#pshsbr.o: /usr/include/signal.h +popi.o: popi.c +popi.o: ../h/mh.h +popi.o: ../h/strings.h +popi.o: ../h/formatsbr.h +popi.o: ../h/scansbr.h +popi.o: ../zotnet/mts.h +#popi.o: /usr/include/errno.h +#popi.o: /usr/include/sys/errno.h +#popi.o: /usr/include/stdio.h +#popi.o: /usr/include/sys/types.h +#popi.o: /usr/include/sys/stdtypes.h +#popi.o: /usr/include/sys/sysmacros.h +#popi.o: /usr/include/sys/stat.h +#popi.o: /usr/include/sys/types.h +post.o: post.c +post.o: ../h/mh.h +post.o: ../h/addrsbr.h +post.o: ../h/aliasbr.h +post.o: ../h/dropsbr.h +post.o: ../zotnet/tws.h +#post.o: /usr/include/ctype.h +#post.o: /usr/include/errno.h +#post.o: /usr/include/setjmp.h +#post.o: /usr/include/stdio.h +#post.o: /usr/include/sys/types.h +post.o: ../zotnet/mts.h +#post.o: /usr/include/sys/ioctl.h +#post.o: /usr/include/sys/stat.h +#post.o: /usr/include/signal.h +prompter.o: prompter.c +prompter.o: ../h/mh.h +#prompter.o: /usr/include/stdio.h +#prompter.o: /usr/include/errno.h +#prompter.o: /usr/include/sgtty.h +#prompter.o: /usr/include/sys/types.h +#prompter.o: /usr/include/termio.h +#prompter.o: /usr/include/sys/ioctl.h +#prompter.o: /usr/include/setjmp.h +#prompter.o: /usr/include/signal.h +rcvdist.o: rcvdist.c +rcvdist.o: ../h/mh.h +rcvdist.o: ../h/formatsbr.h +rcvdist.o: ../h/rcvmail.h +rcvdist.o: ../zotnet/tws.h +rcvpack.o: rcvpack.c +rcvpack.o: ../h/mh.h +rcvpack.o: ../h/dropsbr.h +rcvpack.o: ../h/rcvmail.h +rcvpack.o: ../zotnet/tws.h +rcvpack.o: ../zotnet/mts.h +rcvstore.o: rcvstore.c +rcvstore.o: ../h/mh.h +#rcvstore.o: /usr/include/errno.h +#rcvstore.o: /usr/include/signal.h +#rcvstore.o: /usr/include/stdio.h +#rcvstore.o: /usr/include/sys/types.h +#rcvstore.o: /usr/include/sys/stat.h +rcvtty.o: rcvtty.c +rcvtty.o: ../h/mh.h +rcvtty.o: ../h/rcvmail.h +rcvtty.o: ../h/scansbr.h +rcvtty.o: ../zotnet/tws.h +#rcvtty.o: /usr/include/signal.h +#rcvtty.o: /usr/include/sys/stat.h +#rcvtty.o: /usr/include/utmp.h +refile.o: refile.c +refile.o: ../h/mh.h +#refile.o: /usr/include/errno.h +#refile.o: /usr/include/stdio.h +#refile.o: /usr/include/sys/types.h +#refile.o: /usr/include/sys/stat.h +repl.o: repl.c +repl.o: ../h/mh.h +#repl.o: /usr/include/stdio.h +#repl.o: /usr/include/sys/types.h +#repl.o: /usr/include/sys/stat.h +replsbr.o: replsbr.c +replsbr.o: ../h/mh.h +replsbr.o: ../h/addrsbr.h +replsbr.o: ../h/formatsbr.h +#replsbr.o: /usr/include/ctype.h +#replsbr.o: /usr/include/stdio.h +rmail.o: rmail.c +rmail.o: ../h/mh.h +rmail.o: ../h/addrsbr.h +rmail.o: ../zotnet/mf.h +rmail.o: ../zotnet/tws.h +#rmail.o: /usr/include/stdio.h +rmail.o: ../zotnet/mts.h +#rmail.o: /usr/include/signal.h +rmf.o: rmf.c +rmf.o: ../h/mh.h +rmf.o: ../h/local.h +#rmf.o: /usr/include/stdio.h +#rmf.o: /usr/include/sys/types.h +#rmf.o: /usr/include/ndir.h +#rmf.o: /usr/include/dir.h +#rmf.o: /usr/include/sys/dir.h +rmm.o: rmm.c +rmm.o: ../h/mh.h +#rmm.o: /usr/include/stdio.h +sbboards.o: sbboards.c +sbboards.o: ../h/mh.h +sbboards.o: ../h/addrsbr.h +sbboards.o: ../h/dropsbr.h +sbboards.o: ../zotnet/bboards.h +sbboards.o: ../zotnet/tws.h +#sbboards.o: /usr/include/stdio.h +sbboards.o: ../zotnet/mts.h +#sbboards.o: /usr/include/pwd.h +#sbboards.o: /usr/include/sysexits.h +sbboards.o: ../mts/sendmail/smail.h +scan.o: scan.c +scan.o: ../h/mh.h +scan.o: ../h/formatsbr.h +scan.o: ../h/scansbr.h +scan.o: ../zotnet/tws.h +#scan.o: /usr/include/errno.h +#scan.o: /usr/include/stdio.h +scansbr.o: scansbr.c +scansbr.o: ../h/mh.h +scansbr.o: ../h/addrsbr.h +scansbr.o: ../h/formatsbr.h +scansbr.o: ../h/scansbr.h +scansbr.o: ../zotnet/tws.h +#scansbr.o: /usr/include/stdio.h +#scansbr.o: /usr/include/ctype.h +#scansbr.o: /usr/include/sys/types.h +#scansbr.o: /usr/include/sys/stat.h +send.o: send.c +send.o: ../h/mh.h +#send.o: /usr/include/stdio.h +#send.o: /usr/include/signal.h +#send.o: /usr/include/sys/types.h +#send.o: /usr/include/sys/stat.h +@BEGIN: SMTP +sendmail.o: sendmail.c +sendmail.o: ../h/mh.h +sendmail.o: ../h/strings.h +sendmail.o: ../h/addrsbr.h +sendmail.o: ../h/aliasbr.h +sendmail.o: ../h/dropsbr.h +sendmail.o: ../zotnet/tws.h +sendmail.o: ../zotnet/mts.h +#sendmail.o: /usr/include/ctype.h +#sendmail.o: /usr/include/errno.h +#sendmail.o: /usr/include/sys/errno.h +#sendmail.o: /usr/include/setjmp.h +#sendmail.o: /usr/include/machine/setjmp.h +#sendmail.o: /usr/include/stdio.h +#sendmail.o: /usr/include/sys/types.h +#sendmail.o: /usr/include/sys/stdtypes.h +#sendmail.o: /usr/include/sys/sysmacros.h +#sendmail.o: /usr/include/signal.h +#sendmail.o: /usr/include/sys/signal.h +#sendmail.o: /usr/include/vm/faultcode.h +#sendmail.o: /usr/include/sys/stdtypes.h +@END: SMTP +sendsbr.o: sendsbr.c +sendsbr.o: ../h/mh.h +#sendsbr.o: /usr/include/setjmp.h +#sendsbr.o: /usr/include/stdio.h +#sendsbr.o: /usr/include/signal.h +#sendsbr.o: /usr/include/sys/types.h +#sendsbr.o: /usr/include/sys/stat.h +@BEGIN: MIME +sendsbr.o: ../h/mhn.h +@END: MIME +show.o: show.c +show.o: ../h/mh.h +#show.o: /usr/include/stdio.h +@BEGIN: MIME +show.o: ../h/mhn.h +@END: MIME +slocal.o: slocal.c +slocal.o: ../h/mh.h +slocal.o: ../h/dropsbr.h +slocal.o: ../h/rcvmail.h +slocal.o: ../zotnet/tws.h +slocal.o: ../zotnet/mts.h +#slocal.o: /usr/include/pwd.h +#slocal.o: /usr/include/signal.h +#slocal.o: /usr/include/sys/ioctl.h +#slocal.o: /usr/include/sys/stat.h +#slocal.o: /usr/include/utmp.h +sortm.o: sortm.c +sortm.o: ../h/mh.h +sortm.o: ../zotnet/tws.h +#sortm.o: /usr/include/stdio.h +spop.o: spop.c +spop.o: ../h/mh.h +spop.o: ../h/addrsbr.h +spop.o: ../h/dropsbr.h +spop.o: ../zotnet/bboards.h +spop.o: ../zotnet/tws.h +#spop.o: /usr/include/stdio.h +spop.o: ../zotnet/mts.h +#spop.o: /usr/include/pwd.h +#spop.o: /usr/include/sysexits.h +spop.o: ../mts/sendmail/smail.h +spost.o: spost.c +#spost.o: /usr/include/ctype.h +#spost.o: /usr/include/stdio.h +#spost.o: /usr/include/signal.h +spost.o: ../h/mh.h +spost.o: ../h/addrsbr.h +spost.o: ../h/aliasbr.h +spost.o: ../h/dropsbr.h +spost.o: ../zotnet/tws.h +tma.o: tma.c +tma.o: ../h/mh.h +tma.o: ../h/addrsbr.h +tma.o: ../zotnet/tws.h +tma.o: ../tma/h/tma.h +tma.o: ../zotnet/mts.h +tmasbr.o: tmasbr.c +tmasbr.o: ../h/mh.h +tmasbr.o: ../h/scansbr.h +tmasbr.o: ../tma/h/tma.h +#tmasbr.o: /usr/include/sys/stat.h +trmsbr.o: trmsbr.c +trmsbr.o: ../h/mh.h +#trmsbr.o: /usr/include/stdio.h +#trmsbr.o: /usr/include/sgtty.h +#trmsbr.o: /usr/include/sys/types.h +#trmsbr.o: /usr/include/termio.h +#trmsbr.o: /usr/include/sys/ioctl.h +@BEGIN: TTYD +ttym.o: ttym.c +#ttym.o: /usr/include/pwd.h +#ttym.o: /usr/include/signal.h +#ttym.o: /usr/include/sys/time.h +ttyw.o: ttyw.c +#ttyw.o: /usr/include/errno.h +#ttyw.o: /usr/include/stdio.h +#ttyw.o: /usr/include/strings.h +#ttyw.o: /usr/include/sys/types.h +#ttyw.o: /usr/include/sys/socket.h +#ttyw.o: /usr/include/netinet/in.h +#ttyw.o: /usr/include/netdb.h +#ttyw.o: /usr/include/arpa/inet.h +ttyw.o: ttyd.h +ttyw.o: ttym.c +@END: TTYD +umhook.o: umhook.c +umhook.o: ../h/mh.h +umhook.o: ../zotnet/mf.h +#umhook.o: /usr/include/stdio.h +umhook.o: ../zotnet/mts.h +#umhook.o: /usr/include/pwd.h +#umhook.o: /usr/include/signal.h +#umhook.o: /usr/include/sys/ioctl.h +#umhook.o: /usr/include/sys/types.h +#umhook.o: /usr/include/sys/stat.h +vmh.o: vmh.c +#vmh.o: /usr/include/curses.h +vmh.o: ../h/mh.h +vmh.o: ../h/vmhsbr.h +#vmh.o: /usr/include/ctype.h +#vmh.o: /usr/include/errno.h +#vmh.o: /usr/include/setjmp.h +#vmh.o: /usr/include/signal.h +#vmh.o: /usr/include/sys/types.h +#vmh.o: /usr/include/sys/uio.h +vmhsbr.o: vmhsbr.c +vmhsbr.o: ../h/mh.h +vmhsbr.o: ../h/vmhsbr.h +#vmhsbr.o: /usr/include/stdio.h +vmhtest.o: vmhtest.c +vmhtest.o: ../h/mh.h +vmhtest.o: ../h/vmhsbr.h +#vmhtest.o: /usr/include/ctype.h +#vmhtest.o: /usr/include/stdio.h +whatnow.o: whatnow.c +whatnowproc.o: whatnowproc.c +whatnowproc.o: ../h/mh.h +whatnowproc.o: ../h/strings.h +#whatnowproc.o: /usr/include/stdio.h +whatnowsbr.o: whatnowsbr.c +whatnowsbr.o: ../h/mh.h +#whatnowsbr.o: /usr/include/stdio.h +#whatnowsbr.o: /usr/include/signal.h +#whatnowsbr.o: /usr/include/sys/types.h +#whatnowsbr.o: /usr/include/sys/stat.h +whom.o: whom.c +whom.o: ../h/mh.h +#whom.o: /usr/include/stdio.h +#whom.o: /usr/include/signal.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/bboards,v b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/bboards,v new file mode 100644 index 0000000..57d406c --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/bboards,v @@ -0,0 +1,216 @@ +head 1.7; +access; +symbols; +locks; strict; +comment @# @; + + +1.7 +date 92.11.12.23.22.48; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.16.32; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.12.11.27.58; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.02.21.16.58.36; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.06.12.56.09; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.01.25.16.18.55; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.01.25.16.18.24; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@fix for broken "make"s +@ +text +@############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @@(MHWARNING) +# @@(#)$Id: bboards,v 1.6 1990/04/05 15:16:32 sources Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @@(MHOPTIONS) -I.. + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + +.c:; echo $@@ + +###################################################################### +# Here it is... +###################################################################### + +all: getbbent.o + +lint: l-getbbent + +install: inst-all clean + +inst-all:; + +tar:; + +uninstall:; + + +###################################################################### +# getbbent +###################################################################### + +getbbent: getbbent.o + +l-getbbent:; $(LINT) $(LFLAGS) getbbent.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f *.o + +unclean:; -rm -f _* :* core eddep makedep + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = getbbent +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +getbbent.o: getbbent.c +getbbent.o: bboards.h +getbbent.o: ../../h/strings.h +#getbbent.o: /usr/include/ctype.h +#getbbent.o: /usr/include/pwd.h +#getbbent.o: /usr/include/grp.h +#getbbent.o: /usr/include/stdio.h +#getbbent.o: /usr/include/sys/types.h +#getbbent.o: /usr/include/sys/stat.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +1.6 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d28 1 +a28 1 +all: getbbent +@ + + +1.5 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +1.4 +log +@make unconfig changes +@ +text +@d12 1 +a12 1 +CFLAGS = -O $(OPTIONS) +@ + + +1.3 +log +@ANSI Compilance +@ +text +@d53 3 +@ + + +1.2 +log +@add default rule for .c +@ +text +@d10 1 +a10 1 +CC = cc +@ + + +1.1 +log +@Initial revision +@ +text +@d21 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mf,v b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mf,v new file mode 100644 index 0000000..12210d7 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mf,v @@ -0,0 +1,343 @@ +head 1.6; +access; +symbols; +locks; strict; +comment @# @; + + +1.6 +date 92.01.29.23.10.03; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.16.45; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.12.11.28.05; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.21.16.58.41; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.06.12.56.22; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.06.12.55.20; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.6 +log +@add .c: rule for brain-dead "make" +@ +text +@############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @@(MHWARNING) +# @@(#)$Id: mf,v 1.5 1990/04/05 15:16:45 sources Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +OPTIONS = @@(MHOPTIONS) -I.. +LDOPTIONS= @@(LDOPTIONS) +@@BEGIN: MF +ALL = uminc umsift muinc musift +INST-ALL= inst-uminc inst-umsift inst-muinc inst-musift +TALL = xuminc xumsift xmuinc xmusift +@@END: MF +@@BEGIN: MHMTS +OFILES = uumm.o mmuu.o +@@END: MHMTS +REMOVE = @@(MHREMOVE) + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES = ../mts/mts.o ../mts/lock.o +TWSLIB = ../tws/dtime.o ../tws/dtimep.o +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + +.c:; echo $@@ + +###################################################################### +# Here it is... +###################################################################### + +all: mf.o $(ALL) $(OFILES) + +lint: l-mf + +install: inst-all clean + +inst-all: $(INST-ALL) + +tar: $(ALL) +@@BEGIN: MF + @@touch $(TALL) + @@make -n inst-all > MAKEMF + @@chmod +x MAKEMF + tar $(TFLAGS) MAKEMF $(TALL) + @@rm -f MAKEMF +@@END: MF + +uninstall:; +@@BEGIN: MF + -cd $(ETCDIR); rm -f $(ALL) +@@END: MF + + +###################################################################### +# uminc +###################################################################### + +inst-uminc: $(ETCDIR)/uminc + +$(ETCDIR)/uminc: xuminc + -$(REMOVE) $(ETCDIR)/uminc zuminc + cp xuminc $@@ + -@@ls -l $@@ + -@@echo "" + +uminc: xuminc + +xuminc: uminc.o uumm.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@@ uminc.o uumm.o mf.o $(TWSLIB) $(LIBES) + + +###################################################################### +# umsift +###################################################################### + +inst-umsift: $(ETCDIR)/umsift + +$(ETCDIR)/umsift: xumsift + -$(REMOVE) $(ETCDIR)/umsift zumsift + cp xumsift $@@ + -@@ls -l $@@ + -@@echo "" + +umsift: xumsift + +xumsift: umsift.o uumm.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@@ umsift.o uumm.o mf.o $(TWSLIB) $(LIBES) + + +###################################################################### +# uumm +###################################################################### + +uumm: uumm.o + + +###################################################################### +# muinc +###################################################################### + +inst-muinc: $(ETCDIR)/muinc + +$(ETCDIR)/muinc: xmuinc + -$(REMOVE) $(ETCDIR)/muinc zmuinc + cp xmuinc $@@ + -@@ls -l $@@ + -@@echo "" + +muinc: xmuinc + +xmuinc: muinc.o mmuu.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@@ muinc.o mmuu.o mf.o $(TWSLIB) $(LIBES) + + +#################################################################### +# musift +###################################################################### + +inst-musift: $(ETCDIR)/musift + +$(ETCDIR)/musift: xmusift + -$(REMOVE) $(ETCDIR)/musift zmusift + cp xmusift $@@ + -@@ls -l $@@ + -@@echo "" + +musift: xmusift + +xmusift: musift.o mmuu.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@@ musift.o mmuu.o mf.o $(TWSLIB) $(LIBES) + + +###################################################################### +# mmuu +###################################################################### + +mmuu: mmuu.o + + +###################################################################### +# mf +###################################################################### + +mf: mf.o + +l-mf:; $(LINT) $(LFLAGS) mf.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEMF + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = uminc umsift uumm muinc musift mmuu mf + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +uminc.o: uminc.c +uminc.o: mf.h +#uminc.o: /usr/include/stdio.h +uminc.o: ../mts/mts.h +#uminc.o: /usr/include/errno.h +#uminc.o: /usr/include/sys/types.h +#uminc.o: /usr/include/sys/stat.h +umsift.o: umsift.c +umsift.o: mf.h +#umsift.o: /usr/include/stdio.h +uumm.o: uumm.c +uumm.o: mf.h +uumm.o: ../tws/tws.h +#uumm.o: /usr/include/stdio.h +uumm.o: ../mts/mts.h +#uumm.o: /usr/include/ctype.h +#uumm.o: /usr/include/sys/types.h +#uumm.o: /usr/include/sys/stat.h +muinc.o: muinc.c +muinc.o: mf.h +#muinc.o: /usr/include/stdio.h +muinc.o: ../mts/mts.h +#muinc.o: /usr/include/errno.h +#muinc.o: /usr/include/sys/types.h +#muinc.o: /usr/include/sys/stat.h +musift.o: musift.c +musift.o: mf.h +#musift.o: /usr/include/stdio.h +mmuu.o: mmuu.c +mmuu.o: mf.h +mmuu.o: ../tws/tws.h +#mmuu.o: /usr/include/stdio.h +mmuu.o: ../mts/mts.h +#mmuu.o: /usr/include/ctype.h +#mmuu.o: /usr/include/sys/types.h +#mmuu.o: /usr/include/sys/stat.h +mf.o: mf.c +mf.o: mf.h +#mf.o: /usr/include/ctype.h +#mf.o: /usr/include/stdio.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +1.5 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d37 1 +@ + + +1.4 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +1.3 +log +@make unconfig changes +@ +text +@d24 1 +a24 1 +CFLAGS = -O $(OPTIONS) +@ + + +1.2 +log +@ANSI Compilance +@ +text +@d163 3 +@ + + +1.1 +log +@Initial revision +@ +text +@d22 1 +a22 1 +CC = cc +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mts,v b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mts,v new file mode 100644 index 0000000..3e45b09 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/mts,v @@ -0,0 +1,339 @@ +head 1.9; +access; +symbols; +locks; strict; +comment @# @; + + +1.9 +date 93.08.20.15.56.12; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.02.06.17.29.00; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.01.29.23.10.03; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.16.53; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.03.20.20.34.51; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.12.11.28.06; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.21.16.58.42; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.06.12.56.23; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.06.12.55.23; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@fixup from mtr. +@ +text +@############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @@(MHWARNING) +# @@(#)$Id: mts,v 1.8 1992/02/06 17:29:00 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +OPTIONS = @@(MHOPTIONS) -I.. +LDOPTIONS= @@(LDOPTIONS) +LDOPTLIB= @@(LDOPTLIB) +CHOWN = @@(MHCHOWNPATH) +REMOVE = @@(MHREMOVE) + +CC = @@(MHCOMPILER) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LDFLAGS = $(LDOPTIONS) +LLIBS = +LIBES = +LDLIBS = $(LIBES) $(LDOPTLIB) +FILPROT = 0644 +PGMPROT = 0755 + +OFILES = mts.o lock.o client.o +LFILES = l-mts l-lock l-client +IFILES = inst-mtstailor + +.c:; echo $@@ + +###################################################################### +# Here it is... +###################################################################### + +all: $(OFILES) + +lint: $(LFILES) + +install: inst-all clean + +inst-all: $(IFILES) + +tar:; @@touch mtstailor + @@make -n inst-all > MAKEMTS + @@chmod +x MAKEMTS + tar $(TFLAGS) MAKEMTS mtstailor + @@rm -f MAKEMTS + +uninstall:; + -cd $(ETCDIR); rm -f mtstailor + + +############################################################################## +# mts +############################################################################## + +mts: mts.o + +l-mts:; $(LINT) $(LFLAGS) mts.c $(LLIBS) + + +############################################################################## +# lock +############################################################################## + +lock: lock.o + +l-lock:; $(LINT) $(LFLAGS) lock.c $(LLIBS) + + +############################################################################## +# client +############################################################################## + +client: client.o + +l-client:; $(LINT) $(LFLAGS) client.c $(LLIBS) + + +############################################################################## +# mtstailor +############################################################################## + +inst-mtstailor: $(ETCDIR)/mtstailor + +$(ETCDIR)/mtstailor: mtstailor + -@@if [ ! -f $@@ ]; then \ + $(REMOVE) $@@ zmtstailor; \ + cp mtstailor $@@; \ + else \ + echo "Will not overwrite existing $@@"; \ + fi + -@@chmod $(FILPROT) $@@ + -@@ls -l $@@ + -@@echo "" + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f mts.c mtstailor + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEMTS + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = mts lock client + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +mts.o: mts.c +mts.o: ../../h/strings.h +#mts.o: /usr/include/ctype.h +#mts.o: /usr/include/stdio.h +mts.o: mts.h +#mts.o: /usr/include/netdb.h +#mts.o: /usr/include/whoami.h +#mts.o: /usr/include/sys/utsname.h +#mts.o: /usr/include/pwd.h +#mts.o: /usr/include/fcntl.h +lock.o: lock.c +lock.o: ../../h/strings.h +#lock.o: /usr/include/stdio.h +lock.o: mts.h +#lock.o: /usr/include/sys/types.h +#lock.o: /usr/include/sys/stat.h +#lock.o: /usr/include/sys/file.h +#lock.o: /usr/include/signal.h +client.o: client.c +client.o: ../../h/strings.h +#client.o: /usr/include/stdio.h +client.o: mts.h +#client.o: /usr/include/errno.h +#client.o: /usr/include/sys/types.h +#client.o: /usr/include/sys/socket.h +#client.o: /usr/include/netinet/in.h +#client.o: /usr/include/netdb.h +#client.o: /usr/include/arpa/inet.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +1.8 +log +@move targets to OFILES IFILES LFILES +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mts,v 1.7 1992/01/29 23:10:03 jromine Exp jromine $ +d95 1 +a95 1 + -if [ ! -f $@@ ]; then \ +@ + + +1.7 +log +@add .c: rule for brain-dead "make" +@ +text +@d5 1 +a5 1 +# @@(#)$Id: mts,v 1.6 1990/04/05 15:16:53 sources Exp jromine $ +d33 4 +d43 1 +a43 1 +all: mts lock client +d45 1 +a45 1 +lint: l-mts l-lock l-client +d49 1 +a49 1 +inst-all: inst-mtstailor +@ + + +1.6 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d33 1 +@ + + +1.5 +log +@fixup test +@ +text +@d5 1 +@ + + +1.4 +log +@remove -O (put in mhconfig) +@ +text +@d89 6 +a94 2 + -$(REMOVE) $@@ zmtstailor + cp mtstailor $@@ +@ + + +1.3 +log +@make unconfig changes +@ +text +@d18 1 +a18 1 +CFLAGS = -O $(OPTIONS) +@ + + +1.2 +log +@ANSI Compilance +@ +text +@d100 3 +@ + + +1.1 +log +@Initial revision +@ +text +@d16 1 +a16 1 +CC = cc +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/tws,v b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/tws,v new file mode 100644 index 0000000..1fb3a8b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/RCS/tws,v @@ -0,0 +1,462 @@ +head 1.16; +access; +symbols; +locks + jromine:1.16; strict; +comment @# @; + + +1.16 +date 93.02.26.21.50.51; author jromine; state Exp; +branches; +next 1.15; + +1.15 +date 92.11.18.16.54.16; author jromine; state Exp; +branches; +next 1.14; + +1.14 +date 92.11.12.23.23.50; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 92.11.11.20.29.22; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 92.11.02.23.45.21; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.02.03.16.39.08; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.01.30.00.31.18; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 90.04.05.15.16.39; author sources; state Exp; +branches; +next 1.8; + +1.8 +date 90.03.12.11.28.08; author sources; state Exp; +branches; +next 1.7; + +1.7 +date 90.02.23.10.32.19; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.02.21.16.58.43; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.02.08.15.47.51; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.02.08.15.47.00; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.06.12.56.24; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.01.25.16.18.47; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.01.25.16.18.25; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.16 +log +@use lexed version of dtimep.lex if lex fails +@ +text +@############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @@(MHWARNING) +# @@(#)$Id: tws,v 1.15 1992/11/18 16:54:16 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@@(MHBINPATH) +ETCDIR = $(DESTDIR)@@(MHETCPATH) +OPTIONS = @@(MHOPTIONS) -I.. +LDOPTIONS= @@(LDOPTIONS) +LDOPTLIB= @@(LDOPTLIB) + +CC = @@(MHCOMPILER) +LN = @@(LN) +LEX = @@(LEX) +@@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@@END: OPTIM +@@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = +LDFLAGS = $(LDOPTIONS) +LIBES = +LDLIBS = $(LIBES) $(LDOPTLIB) + +OFILES = dtimep.o lexstring.o dtime.o +LFILES = l-dtimep l-dtime l-date + +.c:; echo $@@ + +###################################################################### +# Here it is... +###################################################################### + +all: $(OFILES) date + +lint: $(LFILES) + +install: inst-all clean + +inst-all:; + +tar:; + +uninstall:; + + +###################################################################### +# date +###################################################################### + +date: date.o dtime.o $(LIBES) + $(CC) $(LDFLAGS) -o $@@ date.o dtime.o $(LDLIBS) + +l-date:; $(LINT) $(LFLAGS) date.c dtime.c $(LLIBS) + + +###################################################################### +# dtimep +###################################################################### + + +dtimep: dtimep.o lexstring.o + +dtimep.o: dtimep.c + +dtimep.c: dtimep.lex + $(LEX) dtimep.lex | sed -f lexedit.sed > dtimep.c + len=`wc -l dtimep.c | awk ' { print $$1 } '`; \ + if [ $$len -eq 1 ]; then cp dtimep.c-lexed dtimep.c; fi + +lexstring.o: lexstring.c + $(CC) $(CFLAGS) -c -DONECASE lexstring.c + +l-dtimep:; $(LINT) $(LFLAGS) dtimep.c -DONECASE lexstring.c $(LLIBS) + + +###################################################################### +# dtime +###################################################################### + +dtime: dtime.o + +l-dtime:; $(LINT) $(LFLAGS) dtime.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +tws.h: ../tws.h + rm -f $@@ + $(LN) ../tws.h $@@ + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f dtimep.c *.o date + +unclean:; -rm -f _* :* core eddep makedep + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = date dtime dtimep + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +date.o: date.c +date.o: ../tws.h +#date.o: /usr/include/stdio.h +dtime.o: dtime.c +dtime.o: ../tws.h +dtime.o: ../../h/strings.h +#dtime.o: /usr/include/stdio.h +#dtime.o: /usr/include/sys/types.h +#dtime.o: /usr/include/sys/sysmacros.h +#dtime.o: /usr/include/sys/timeb.h +#dtime.o: /usr/include/time.h +dtimep.o: dtimep.c +#dtimep.o: /usr/include/stdio.h +dtimep.o: ../tws.h +dtimep.o: ../../h/strings.h +#dtimep.o: /usr/include/ctype.h +#dtimep.o: /usr/include/sys/types.h +#dtimep.o: /usr/include/sys/sysmacros.h +#dtimep.o: /usr/include/sys/timeb.h +#dtimep.o: /usr/include/time.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY +@ + + +1.15 +log +@fixup LN +@ +text +@d5 1 +a5 1 +# @@(#)$Id: tws,v 1.14 1992/11/12 23:23:50 jromine Exp jromine $ +d74 2 +@ + + +1.14 +log +@link tws.h +@ +text +@d5 1 +a5 1 +# @@(#)$Id: tws,v 1.13 1992/11/11 20:29:22 jromine Exp jromine $ +d16 1 +@ + + +1.13 +log +@fixup for some brain-damaged makes +@ +text +@d5 1 +a5 1 +# @@(#)$Id: tws,v 1.12 1992/11/02 23:45:21 jromine Exp jromine $ +d30 1 +a30 1 +OFILES = dtimep.o lexstring.o dtime.o date +d39 1 +a39 1 +all: $(OFILES) +d93 3 +@ + + +1.12 +log +@make sure to remove dtimep.c -- it doesn't work as-is on all systems +@ +text +@d5 1 +a5 1 +# @@(#)$Id: tws,v 1.11 1992/02/03 16:39:08 jromine Exp jromine $ +d30 3 +d39 1 +a39 1 +all: dtimep dtime date +d41 1 +a41 1 +lint: l-dtimep l-dtime l-date +@ + + +1.11 +log +@typo +@ +text +@d5 1 +a5 1 +# @@(#)$Id: tws,v 1.10 1992/01/30 00:31:18 jromine Exp jromine $ +a77 7 + +lex: zap-dtime dtimep.c + +zap-dtime:; rm -f dtimep.c + + +###################################################################### +d97 1 +a97 1 + -rm -f *.o date +@ + + +1.10 +log +@don't delete lex'd flie +@ +text +@d5 1 +a5 1 +# @@(#)$Id: tws,v 1.9 1990/04/05 15:16:39 sources Exp jromine $ +d65 1 +a65 1 + +@ + + +1.9 +log +@add ID +@ +text +@d5 1 +a5 1 +# @@(#)$Id:$ +d78 7 +d97 1 +d104 1 +a104 1 + -rm -f dtimep.c *.o date +@ + + +1.8 +log +@remove -O (put in mhconfig) +@ +text +@d5 1 +@ + + +1.7 +log +@make sure tws.h is in zotnet/ not zotnet/tws/ +@ +text +@d17 1 +a17 1 +CFLAGS = -O $(OPTIONS) +@ + + +1.6 +log +@make unconfig changes +@ +text +@d127 1 +a127 1 +date.o: tws.h +d130 1 +a130 1 +dtime.o: tws.h +d134 1 +a136 1 +#dtime.o: /usr/include/sys/time.h +d139 1 +a139 1 +dtimep.o: tws.h +d142 4 +@ + + +1.5 +log +@*** empty log message *** +@ +text +@d89 3 +@ + + +1.4 +log +@LEX define +@ +text +@d68 1 +a68 1 + $(LEX) -nt dtimep.lex | sed -f lexedit.sed > dtimep.c +@ + + +1.3 +log +@ANSI Compilance +@ +text +@d15 1 +d68 1 +a68 1 + lex -nt dtimep.lex | sed -f lexedit.sed > dtimep.c +@ + + +1.2 +log +@add default rule for .c +@ +text +@d14 1 +a14 1 +CC = cc +@ + + +1.1 +log +@Initial revision +@ +text +@d28 1 +@ diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/bboards b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/bboards new file mode 100644 index 0000000..0531363 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/bboards @@ -0,0 +1,100 @@ +############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @(MHWARNING) +# @(#)$Id: bboards,v 1.7 1992/11/12 23:22:48 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @(MHOPTIONS) -I.. + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + +.c:; echo $@ + +###################################################################### +# Here it is... +###################################################################### + +all: getbbent.o + +lint: l-getbbent + +install: inst-all clean + +inst-all:; + +tar:; + +uninstall:; + + +###################################################################### +# getbbent +###################################################################### + +getbbent: getbbent.o + +l-getbbent:; $(LINT) $(LFLAGS) getbbent.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f *.o + +unclean:; -rm -f _* :* core eddep makedep + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = getbbent +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +getbbent.o: getbbent.c +getbbent.o: bboards.h +getbbent.o: ../../h/strings.h +#getbbent.o: /usr/include/ctype.h +#getbbent.o: /usr/include/pwd.h +#getbbent.o: /usr/include/grp.h +#getbbent.o: /usr/include/stdio.h +#getbbent.o: /usr/include/sys/types.h +#getbbent.o: /usr/include/sys/stat.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/mf b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/mf new file mode 100644 index 0000000..8a85c85 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/mf @@ -0,0 +1,243 @@ +############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @(MHWARNING) +# @(#)$Id: mf,v 1.6 1992/01/29 23:10:03 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +OPTIONS = @(MHOPTIONS) -I.. +LDOPTIONS= @(LDOPTIONS) +@BEGIN: MF +ALL = uminc umsift muinc musift +INST-ALL= inst-uminc inst-umsift inst-muinc inst-musift +TALL = xuminc xumsift xmuinc xmusift +@END: MF +@BEGIN: MHMTS +OFILES = uumm.o mmuu.o +@END: MHMTS +REMOVE = @(MHREMOVE) + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LDFLAGS = $(LDOPTIONS) +LIBES = ../mts/mts.o ../mts/lock.o +TWSLIB = ../tws/dtime.o ../tws/dtimep.o +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + +.c:; echo $@ + +###################################################################### +# Here it is... +###################################################################### + +all: mf.o $(ALL) $(OFILES) + +lint: l-mf + +install: inst-all clean + +inst-all: $(INST-ALL) + +tar: $(ALL) +@BEGIN: MF + @touch $(TALL) + @make -n inst-all > MAKEMF + @chmod +x MAKEMF + tar $(TFLAGS) MAKEMF $(TALL) + @rm -f MAKEMF +@END: MF + +uninstall:; +@BEGIN: MF + -cd $(ETCDIR); rm -f $(ALL) +@END: MF + + +###################################################################### +# uminc +###################################################################### + +inst-uminc: $(ETCDIR)/uminc + +$(ETCDIR)/uminc: xuminc + -$(REMOVE) $(ETCDIR)/uminc zuminc + cp xuminc $@ + -@ls -l $@ + -@echo "" + +uminc: xuminc + +xuminc: uminc.o uumm.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@ uminc.o uumm.o mf.o $(TWSLIB) $(LIBES) + + +###################################################################### +# umsift +###################################################################### + +inst-umsift: $(ETCDIR)/umsift + +$(ETCDIR)/umsift: xumsift + -$(REMOVE) $(ETCDIR)/umsift zumsift + cp xumsift $@ + -@ls -l $@ + -@echo "" + +umsift: xumsift + +xumsift: umsift.o uumm.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@ umsift.o uumm.o mf.o $(TWSLIB) $(LIBES) + + +###################################################################### +# uumm +###################################################################### + +uumm: uumm.o + + +###################################################################### +# muinc +###################################################################### + +inst-muinc: $(ETCDIR)/muinc + +$(ETCDIR)/muinc: xmuinc + -$(REMOVE) $(ETCDIR)/muinc zmuinc + cp xmuinc $@ + -@ls -l $@ + -@echo "" + +muinc: xmuinc + +xmuinc: muinc.o mmuu.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@ muinc.o mmuu.o mf.o $(TWSLIB) $(LIBES) + + +#################################################################### +# musift +###################################################################### + +inst-musift: $(ETCDIR)/musift + +$(ETCDIR)/musift: xmusift + -$(REMOVE) $(ETCDIR)/musift zmusift + cp xmusift $@ + -@ls -l $@ + -@echo "" + +musift: xmusift + +xmusift: musift.o mmuu.o mf.o $(TWSLIB) $(LIBES) + $(CC) $(LDFLAGS) -o $@ musift.o mmuu.o mf.o $(TWSLIB) $(LIBES) + + +###################################################################### +# mmuu +###################################################################### + +mmuu: mmuu.o + + +###################################################################### +# mf +###################################################################### + +mf: mf.o + +l-mf:; $(LINT) $(LFLAGS) mf.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEMF + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = uminc umsift uumm muinc musift mmuu mf + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +uminc.o: uminc.c +uminc.o: mf.h +#uminc.o: /usr/include/stdio.h +uminc.o: ../mts/mts.h +#uminc.o: /usr/include/errno.h +#uminc.o: /usr/include/sys/types.h +#uminc.o: /usr/include/sys/stat.h +umsift.o: umsift.c +umsift.o: mf.h +#umsift.o: /usr/include/stdio.h +uumm.o: uumm.c +uumm.o: mf.h +uumm.o: ../tws/tws.h +#uumm.o: /usr/include/stdio.h +uumm.o: ../mts/mts.h +#uumm.o: /usr/include/ctype.h +#uumm.o: /usr/include/sys/types.h +#uumm.o: /usr/include/sys/stat.h +muinc.o: muinc.c +muinc.o: mf.h +#muinc.o: /usr/include/stdio.h +muinc.o: ../mts/mts.h +#muinc.o: /usr/include/errno.h +#muinc.o: /usr/include/sys/types.h +#muinc.o: /usr/include/sys/stat.h +musift.o: musift.c +musift.o: mf.h +#musift.o: /usr/include/stdio.h +mmuu.o: mmuu.c +mmuu.o: mf.h +mmuu.o: ../tws/tws.h +#mmuu.o: /usr/include/stdio.h +mmuu.o: ../mts/mts.h +#mmuu.o: /usr/include/ctype.h +#mmuu.o: /usr/include/sys/types.h +#mmuu.o: /usr/include/sys/stat.h +mf.o: mf.c +mf.o: mf.h +#mf.o: /usr/include/ctype.h +#mf.o: /usr/include/stdio.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/mts b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/mts new file mode 100644 index 0000000..95bad41 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/mts @@ -0,0 +1,177 @@ +############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @(MHWARNING) +# @(#)$Id: mts,v 1.9 1993/08/20 15:56:12 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +OPTIONS = @(MHOPTIONS) -I.. +LDOPTIONS= @(LDOPTIONS) +LDOPTLIB= @(LDOPTLIB) +CHOWN = @(MHCHOWNPATH) +REMOVE = @(MHREMOVE) + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LDFLAGS = $(LDOPTIONS) +LLIBS = +LIBES = +LDLIBS = $(LIBES) $(LDOPTLIB) +FILPROT = 0644 +PGMPROT = 0755 + +OFILES = mts.o lock.o client.o +LFILES = l-mts l-lock l-client +IFILES = inst-mtstailor + +.c:; echo $@ + +###################################################################### +# Here it is... +###################################################################### + +all: $(OFILES) + +lint: $(LFILES) + +install: inst-all clean + +inst-all: $(IFILES) + +tar:; @touch mtstailor + @make -n inst-all > MAKEMTS + @chmod +x MAKEMTS + tar $(TFLAGS) MAKEMTS mtstailor + @rm -f MAKEMTS + +uninstall:; + -cd $(ETCDIR); rm -f mtstailor + + +############################################################################## +# mts +############################################################################## + +mts: mts.o + +l-mts:; $(LINT) $(LFLAGS) mts.c $(LLIBS) + + +############################################################################## +# lock +############################################################################## + +lock: lock.o + +l-lock:; $(LINT) $(LFLAGS) lock.c $(LLIBS) + + +############################################################################## +# client +############################################################################## + +client: client.o + +l-client:; $(LINT) $(LFLAGS) client.c $(LLIBS) + + +############################################################################## +# mtstailor +############################################################################## + +inst-mtstailor: $(ETCDIR)/mtstailor + +$(ETCDIR)/mtstailor: mtstailor + -@if [ ! -f $@ ]; then \ + $(REMOVE) $@ zmtstailor; \ + cp mtstailor $@; \ + else \ + echo "Will not overwrite existing $@"; \ + fi + -@chmod $(FILPROT) $@ + -@ls -l $@ + -@echo "" + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f mts.c mtstailor + +clean: unclean + -rm -f x* *.o + +unclean:; -rm -f z* _* :* core eddep makedep MAKEMTS + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = mts lock client + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +mts.o: mts.c +mts.o: ../../h/strings.h +#mts.o: /usr/include/ctype.h +#mts.o: /usr/include/stdio.h +mts.o: mts.h +#mts.o: /usr/include/netdb.h +#mts.o: /usr/include/whoami.h +#mts.o: /usr/include/sys/utsname.h +#mts.o: /usr/include/pwd.h +#mts.o: /usr/include/fcntl.h +lock.o: lock.c +lock.o: ../../h/strings.h +#lock.o: /usr/include/stdio.h +lock.o: mts.h +#lock.o: /usr/include/sys/types.h +#lock.o: /usr/include/sys/stat.h +#lock.o: /usr/include/sys/file.h +#lock.o: /usr/include/signal.h +client.o: client.c +client.o: ../../h/strings.h +#client.o: /usr/include/stdio.h +client.o: mts.h +#client.o: /usr/include/errno.h +#client.o: /usr/include/sys/types.h +#client.o: /usr/include/sys/socket.h +#client.o: /usr/include/netinet/in.h +#client.o: /usr/include/netdb.h +#client.o: /usr/include/arpa/inet.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnet/tws b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/tws new file mode 100644 index 0000000..c39a1ea --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnet/tws @@ -0,0 +1,162 @@ +############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @(MHWARNING) +# @(#)$Id: tws,v 1.16 1993/02/26 21:50:51 jromine Exp jromine $ +############################################################################## + +# The following entries were inserted during MH configuration +BINDIR = $(DESTDIR)@(MHBINPATH) +ETCDIR = $(DESTDIR)@(MHETCPATH) +OPTIONS = @(MHOPTIONS) -I.. +LDOPTIONS= @(LDOPTIONS) +LDOPTLIB= @(LDOPTLIB) + +CC = @(MHCOMPILER) +LN = @(LN) +LEX = @(LEX) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) +@END: DEBUG +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = +LDFLAGS = $(LDOPTIONS) +LIBES = +LDLIBS = $(LIBES) $(LDOPTLIB) + +OFILES = dtimep.o lexstring.o dtime.o +LFILES = l-dtimep l-dtime l-date + +.c:; echo $@ + +###################################################################### +# Here it is... +###################################################################### + +all: $(OFILES) date + +lint: $(LFILES) + +install: inst-all clean + +inst-all:; + +tar:; + +uninstall:; + + +###################################################################### +# date +###################################################################### + +date: date.o dtime.o $(LIBES) + $(CC) $(LDFLAGS) -o $@ date.o dtime.o $(LDLIBS) + +l-date:; $(LINT) $(LFLAGS) date.c dtime.c $(LLIBS) + + +###################################################################### +# dtimep +###################################################################### + + +dtimep: dtimep.o lexstring.o + +dtimep.o: dtimep.c + +dtimep.c: dtimep.lex + $(LEX) dtimep.lex | sed -f lexedit.sed > dtimep.c + -@len=`wc -l dtimep.c | awk ' { print $$1 } '`; \ + if [ $$len -gt 10 ]; \ + then exit 0; \ + else echo "lex failed: using pre-lexed dtimep.c"; \ + cp dtimep.c-lexed dtimep.c; \ + fi + +lexstring.o: lexstring.c + $(CC) $(CFLAGS) -c -DONECASE lexstring.c + +l-dtimep:; $(LINT) $(LFLAGS) dtimep.c -DONECASE lexstring.c $(LLIBS) + + +###################################################################### +# dtime +###################################################################### + +dtime: dtime.o + +l-dtime:; $(LINT) $(LFLAGS) dtime.c $(LLIBS) + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +tws.h: ../tws.h + rm -f $@ + $(LN) ../tws.h $@ + +unconfig: distribution + -rm -f Makefile + +distribution: clean + +clean: unclean + -rm -f dtimep.c *.o date + +unclean:; -rm -f _* :* core eddep makedep + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = date dtime dtimep + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +date.o: date.c +date.o: ../tws.h +#date.o: /usr/include/stdio.h +dtime.o: dtime.c +dtime.o: ../tws.h +dtime.o: ../../h/strings.h +#dtime.o: /usr/include/stdio.h +#dtime.o: /usr/include/sys/types.h +#dtime.o: /usr/include/sys/sysmacros.h +#dtime.o: /usr/include/sys/timeb.h +#dtime.o: /usr/include/time.h +dtimep.o: dtimep.c +#dtimep.o: /usr/include/stdio.h +dtimep.o: ../tws.h +dtimep.o: ../../h/strings.h +#dtimep.o: /usr/include/ctype.h +#dtimep.o: /usr/include/sys/types.h +#dtimep.o: /usr/include/sys/sysmacros.h +#dtimep.o: /usr/include/sys/timeb.h +#dtimep.o: /usr/include/time.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/conf/makefiles/zotnetM b/docs/historical/mh-6.8.5/conf/makefiles/zotnetM new file mode 100644 index 0000000..41719a9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/makefiles/zotnetM @@ -0,0 +1,108 @@ +############################################################################## +# Instructions to Make, for compilation of ZOT UIP/utility processes +# +# @(MHWARNING) +# @(#)$Id: zotnetM,v 2.7 1992/10/29 16:25:20 jromine Exp $ +############################################################################## + +# The following entries were inserted during MH configuration +OPTIONS = @(MHOPTIONS) + +CC = @(MHCOMPILER) +@BEGIN: OPTIM +CFLAGS = $(OPTIONS) -I. +@END: OPTIM +@BEGIN: DEBUG +CFLAGS = $(OPTIONS) -I. +@END: DEBUG +LFLAGS = -bhu $(OPTIONS) -I. + +LIB = libzot.a +LLIB = llib-lzotnet + +OFILES = mts/mts.o mts/lock.o mts/client.o mf/mf.o \ +@BEGIN: MHMTS + mf/mmuu.o mf/uumm.o \ +@END: MHMTS + bboards/getbbent.o \ + tws/dtime.o tws/dtimep.o tws/lexstring.o + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) +SHELL = /bin/sh + +DIRS = mts bboards tws mf + + +@BEGIN: OPTIM +############################################################################## +# Generation Rules +############################################################################## + +.c.o:; $(CC) $(CFLAGS) -c $*.c +@BEGIN: NEWLOAD + -ld -x -r $@ + mv a.out $@ +@END: NEWLOAD +@BEGIN: OLDLOAD + cc -s -o $@ +@END: OLDLOAD + + +@END: OPTIM + +.c:; echo $@ + +############################################################################## +# Generate ZOTnet subroutine library +############################################################################## + +all: allaux $(LIB) + +$(LIB): $(OFILES) + -mv $@ z$@ +@BEGIN: RANLIB + ar r $@ $(OFILES); ranlib $@ +@END: RANLIB +@BEGIN: LORDER + ar r $@ `lorder $(OFILES) | tsort` +@END: LORDER + -@ls -l $@ + -@echo "ZOTnet library built normally" + +allaux:; for d in $(DIRS); do (cd $$d; $(MAKE) all); done + +depend:; for d in $(DIRS); do (cd $$d; $(MAKE) depend); done + +lint:; for d in $(DIRS); do (cd $$d; $(MAKE) lint); done + + +############################################################################## +# Installation +############################################################################## + +install: inst-all clean + +inst-all:; for d in $(DIRS); do (cd $$d; $(MAKE) inst-all); done + +tar:; @for d in $(DIRS); \ + do (cd $$d; $(MAKE) TFLAGS="$(TFLAGS)" tar); done + +uninstall:; for d in $(DIRS); do (cd $$d; $(MAKE) uninstall); done + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig:; -rm -f $(LIB) z$(LIB) _* :* *.o core + for d in $(DIRS); do (cd $$d; $(MAKE) unconfig); done + -rm -f Makefile + +distribution:; -rm -f $(LIB) z$(LIB) _* :* + for d in $(DIRS); do (cd $$d; $(MAKE) distribution); done + +clean:; -rm -f $(LIB) z$(LIB) _* :* *.o core + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done + +unclean:; -rm -f z$(LIB) _* :* core + for d in $(DIRS); do (cd $$d; $(MAKE) unclean); done diff --git a/docs/historical/mh-6.8.5/conf/mh-gen.8 b/docs/historical/mh-6.8.5/conf/mh-gen.8 new file mode 100644 index 0000000..420f896 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/mh-gen.8 @@ -0,0 +1,1437 @@ +.\" @(#)$Id: mh-gen.8,v 2.119 1996/02/08 19:20:25 jromine Exp $ +.\" uneven inter-word spacing (nroff line adjusting) hampers readability +.if n .na +.TH MH-GEN 8 MH.6.8.4 [mh.6] +.SH NAME +mh-gen \- generating the MH system +.SH "READ THIS" +This documentation describes how to configure, generate, and install +the UCI version of the RAND \fIMH\fR system. \fBBe certain\fP to +read this document completely before you begin. You probably will +also want to familiarize yourself with the \fIMH\fP Administrator's +Guide before you install \fIMH\fP. A copy can be found in the +file \fBdoc/ADMIN.doc\fP is the \fIMH\fP sources. +.SH DISCLAIMER +Although the \fIMH\fR system was originally developed by the RAND Corporation, +and is now in the public domain, +the RAND Corporation assumes no responsibility for \fIMH\fR +or this particular modification of \fIMH\fR. +.PP +In addition, +the Regents of the University of California issue the following +\fBdisclaimer\fR in regard to the UCI version of \fIMH\fR: +.in +.5i +\*(lqAlthough each program has been tested by its contributor, +no warranty, express or implied, +is made by the contributor or the University of California, +as to the accuracy and functioning of the program +and related program material, +nor shall the fact of distribution constitute any such warranty, +and no responsibility is assumed by the contributor +or the University of California in connection herewith.\*(rq +.in -.5i +.PP +This version of \fIMH\fR is in the public domain, +and as such, +there are no real restrictions on its use. +The \fIMH\fR source code and documentation have no licensing restrictions +whatsoever. +As a courtesy, +the authors ask only that you provide appropriate credit to the RAND +Corporation and +the University of California for having developed the software. +.SH "GETTING HELP" +\fIMH\fR is a software package that is neither supported by the RAND +Corporation nor the University of California. +However, +since we do use the software ourselves and plan to continue using (and +improving) \fIMH\fR, +bug reports and their associated fixes should be reported back to us so that +we may include them in future releases. +The current computer mailbox for \fIMH\fR is \fBBug\-MH@ICS.UCI.EDU\fR. +Current information about MH can be obtained from +the \fBMH Home Page\fP on the World Wide Web at +\fBhttp://www.ics.uci.edu/~mh\fP. +.PP +Presently, +there are two Internet discussion groups, \fBMH\-Users@ICS.UCI.EDU\fR +and \fBMH\-Workers@ICS.UCI.EDU\fR. \fBMH\-Workers\fP is for people +discussing code changes to \fIMH\fP. \fBMH-Users\fP is for general +discussion about how to use \fIMH\fP. +\fBMH\-Users\fR is bi-directionally +gatewayed into USENET as \fBcomp.mail.mh\fR. +.SH "HOW TO GET MH" +Since you probably already have \fIMH\fP, +you may not need to read this unless you suspect you have an old version. +There are two ways to get the latest release: +.PP +1. If you can FTP to the ARPA Internet, use anonymous FTP to +ftp.ics.uci.edu and retrieve the file pub/mh/mh-6.8.tar.Z. +This is a tar image after being run through the compress program +(approximately 1.8MB). There should also be a \fBREADME\fR file in +that directory which tells what the current release of \fIMH\fP +is, and how to get updates. +.PP +You may also find MH on +various other hosts; to make sure you get the latest version and +don't waste your time re-fixing bugs, it's best to get it from +either ftp.ics.uci.edu or a site that mirrors ftp.ics.uci.edu. +.PP +2. You can send $75 US to the address below. +This covers the cost of a 6250 BPI 9-track magtape, +handling, and shipping. In addition, you'll get a +laser-printed hard-copy of the entire MH documentation set. Be +sure to include your USPS address with your check. Checks +must be drawn on U.S\&. funds and should be made payable to: + +.ti +1i +Regents of the University of California + +The distribution address is: + +.nf +.RS 1i +Attn: MH distribution +Office of Academic Computing +Univeristy of California at Irvine +Irvine, CA 92717-2225 USA + ++1 714 824 5153 +.fi +.RE +.PP +Sadly, if you just want the hard-copies of the documentation, you +still have to pay the $75. The tar image has the documentation +source (the manual is in roff format, but the rest are in TeX +format). Postscript formatted versions of the TeX papers are +available, as are crude tty-conversions of those papers. +.SH SYNOPSIS +MAKE +.SH DESCRIPTION +This is a description of how one can bring up an \fIMH\fR system. +It is assumed that you have super-user privileges in order to +(re\-)install \fIMH\fR. +Super-user privileges are not required to configure or generate \fIMH\fR. +.PP +Become the super-user and cd to /usr/src/local/ +(or whatever you keep your local sources). +The distribution tape contains the hierarchy for the mh.6-8/ directory. +Bring the sources on-line: +.sp 1 +.nf +# cd /usr/src/local +% tar xv +% cd mh-6.8 +.fi +.SH CONFIGURATION +First, go to the conf/ directory. +.sp 1 +.nf +% cd conf/ +.fi +.sp 1 +This directory contains files that will produce source files tailored +for your choice of \fIMH\fR configuration. +You should edit only the file \fBMH\fR. +This file contains configuration directives. +These configuration directives are read by the \fImhconfig\fR program to +produce customized files. +.sp +For examples of various configurations, +look in the directory \fBconf/examples/\fR. +The file \fBMH\fR provided in \fBconf/\fR is a reasonable default. +Lines beginning with `#' are comments, and are not otherwise interpreted. +.PP +Here are the \fIMH\fP configuration directives available. Be sure +to read through this list completely before attempting to decide +what directives are appropriate for your system. +.sp +More information on some of these options is available in the +the \fIAdministrator's Guide\fR. If you do not have a printed +copy, you should configure your system with the default +configuration file, \fBMH\fP, then generate and print a copy +of the guide (as described below). +.in +.5i + +.de Uh +.ti -.75i +.B "\\$1" +.ne 4 +.. +.Uh "Installation paths" +.ti -.5i +bin: /usr/local +.br +The directory where user\-invoked programs go (see manual section 1). + +.ti -.5i +etc: /usr/local/lib/mh +.br +The directory where pgm\-invoked programs go (see manual section 8). + +.ti -.5i +mail: /usr/spool/mail +.br +The directory where the maildrops are stored. +If this pathname is absolute (i.e., begins with a \fB/\fR\0), +then the user's maildrop is a file called \fB$USER\fR in this directory. +If the pathname is not absolute, +then the user's maildrop is in the user's home directory under the given name. + +.ti -.5i +mandir: /usr/man +.br +The parent directory of the manual entries. + +.ti -.5i +manuals: standard +.br +Where manual entries should be installed, +relative to the directory given with \*(lqmandir\*(rq. +Either \*(lqlocal\*(rq to install manual entries under \fBmanl/\fR, +or \*(lqnew\*(rq to install manual entries under \fBmann/\fR, +or \*(lqold\*(rq to install manual entries under \fBmano/\fR, +or \*(lqstandard\*(rq to install manual entries under \fBman?/\fR, +or \*(lqbsd44\*(rq to install manual entries as \fBman?/\fIpage\fP.0\fR, +or \*(lqgen\*(rq to generate but not install them, +or \*(lqnone\*(rq to neither generate nor install them. + +Any of these values may have the suffix \*(lq/cat\*(rq appended +to it. In that case, the manual entries will be formatted +with \*(lqnroff -man\*(rq and they will be installed in the +corresponding \*(lqcat?\*(rq directories. + +For example, +to install manual entries under \fB/usr/man/u_man/man?\fR, +use \*(lqstandard\*(rq and \fB/usr/man/u_man\fR for \*(lqmandir\*(rq. +To install formatted manual entires under \fB/usr/contrib/man/cat?\fR, +use \*(lqstandard/cat\*(rq and \fB/usr/contrib/man\fR for \*(lqmandir\*(rq. +To install formatted manual entries using the BSD44 convention, +use \*(lqbsd44/cat\*(rq. + +.ti -.5i +chown: /etc/chown +.br +The location of the \fIchown\fR\|(8) on your system. +If \fIchown\fR is in your search path, +just use the value of \*(lqchown\*(rq. +On SYS5 systems, +this should probably be \*(lq/bin/chown\*(rq. + +.ti -.5i +cp: cp +.br +The command to copy files when installing, if not \*(lqcp\*(rq. +(Some sites use \*(lqcp\0\-p\*(rq.) + +.ti -.5i +ln: ln +.br +The command to link files together in the source tree, if not \*(lqln\*(rq. +If you're using something like \fBlndir\fP to keep +your compile tree separate from your source tree, +set this to \*(lqln\0\-s\*(rq or \*(lqcp\*(rq. + +.ti -.5i +remove: mv \-f +.br +How \fIMH\fR should make backup copies +of existing files when installing new files. +To simply remove the old files, use \*(lqrm\0\-f\*(rq. + +.Uh "Compiler/loader" +.ti -.5i +cc: cc +.br +The name of your C compiler, if not \*(lqcc\*(rq. + +.ti -.5i +ccoptions: \-O +.br +Options given directly to \fIcc\fR\|(1). +The most common is \*(lq\-M\*(rq if you're running \fIMH\fR on an ALTOS. +This defaults to \*(lq\-O\*(rq. If you define this and want to +keep \*(lq\-O\*(rq, be sure to include it explicitly. +If you're using the \fIGNU\fP C compiler, it should +include `\-traditional'. See \*(lqoptions:\*(rq for `\-D' options. + +.ti -.5i +curses: \-lcurses\0\-ltermlib +.br +This should be the loader option required to load the \fItermcap\fR\|(3) +and \fIcurses\fR\|(3) libraries on your system. +On SYS5 systems, it probably should be just \*(lq\-lcurses\*(rq. +Some sites have reported that both \*(lq\-lcurses\*(rq and +\*(lq\-ltermlib\*(rq are necessary. + +.ti -.5i +ldoptions: \-s +.br +Options given directly to \fIld\fR\|(1) (via \fIcc\fR\|) at the beginning +of the command line. +Useful for machines which require arguments to tell \fIld\fR to increase the +stack space (e.g. the Gould, which uses \*(lq\-m\08\*(rq). +Usually, \*(lq\-s\*(rq is a good choice in any event. + +.ti -.5i +ldoptlibs: +.br +Options given directly to \fIld\fR\|(1) (via \fIcc\fR\|) at the end of the +command line. +The two most common are: +\*(lq\-ldbm\*(rq if you're running MMDF with the \fIdbm\fR package; +and, \*(lq\-lndir\*(rq if you are generating \fIMH\fR on a system +which does not load the new directory access mechanism by default +(e.g., 4.1BSD, SYS5). +If you don't have \fIlibndir\fR on your system, +the sources are in \fBmiscellany/libndir/\fR. + +.ti -.5i +lex: lex \-nt +.br +Alternative version of \fIlex\fR. Used in \fBzotnet/tws/\fR. + +.ti -.5i +oldload: off +.br +This controls how \fIMH\fP will try to process library object files to +eliminate local symbols. +Support for the ALTOS loader if \*(lqon\*(rq. +Support for loaders not handling `\-x\0\-r' correctly if \*(lqnone\*(rq. + +.ti -.5i +ranlib: on +.br +Support for systems with \fIranlib\fR\|(1). +For SYSTEM 5 systems, +this should be \*(lqoff\*(rq which tells \fIMH\fR to use \fIlorder\fR and +\fItsort\fR instead. +Some SYSTEM 5 sites reported that running this isn't always sufficient. +If this is the case, +then you should edit \fBconf/makefiles/uip\fR to include +\fB\&../sbr/libmh.a\fR and \fB../zotnet/libzot.a\fR twice in the LIBES +variable. + +.Uh "Message Transport System" +.ti -.5i +mts: sendmail +.br +Which message transport system to use. +Either \*(lqmmdf\*(rq to use \fIMMDF\fR as the transport system, +\*(lqmmdf2\*(rq to use \fIMMDF\-II\fR as the transport system, +\*(lqsendmail\*(rq to have \fISendMail\fR as the transport system, +\*(lqzmailer\*(rq to have \fIZMAILER\fP as the transport system, +or, \*(lqmh\*(rq to have \fIMH\fR as the transport system. + +On UNIX systems supporting TCP/IP networking via sockets +you can add the suffix \*(lq/smtp\*(rq to the mts setting. +This often yields a superior interface as \fIMH\fR will post mail with the +local \fISMTP\fR server instead of interacting directly with \fIMMDF\fR or +\fISendMail\fR. +Hence, for TCP/IP UNIX systems, +the \*(lq/smtp\*(rq suffix to either \*(lqsendmail\*(rq or \*(lqmmdf2\*(rq is +the preferred MTS configuration. +The \*(lq/smtp\*(rq suffix is described in detail in the \fIAdministrator's +Guide\fR; be sure to set \*(lqservers:\*(rq as described in +\fImh\-tailor\fR\|(8) if you use this option. + +.ti -.5i +mf: off +.br +Support for mail filtering on those systems in which the message transport +system isn't integrated with \fIUUCP\fR +This option is strictly for an \fIMH\fR system using either \fIMMDF\-I\fR +as its transport system or one using \*(lqstand\-alone delivery\*(rq. + +.Uh "UCI BBoards Facility" +.ti -.5i +bboards: off +.br +If \*(lqon\*(rq, include support for the UCI BBoards facility. +BBoards may be enabled with any mts setting. +If \*(lqoff\*(rq, the BBoard reading program \fIbbc\fR will not be installed. +If \*(lqnntp\*(rq, +include support for the UCI BBoards facility to read the Network News +via the NNTP. +If \*(lqpop\*(rq (formerly \*(lqpopbboards:\0on\*(rq), +include support for the UCI BBoards facility via the POP3 service; +this setting requires \*(lqpop:\0on\*(rq. + +.ti -.5i +bbdelivery: off +.br +If \*(lqoff\*(rq, +the BBoards delivery agent and library files will not be installed. +If +\*(lqon\*(rq, +and you set \*(lqbboards:\*(rq to something besides \*(lqoff\*(rq, +then +the BBoards delivery agent and library files will be installed +in the \fIbbhome\fR directory (see below). +To read remote BBoards, +the usual configuration would have \fIbbc\fR talk to a \fIPOP3\fR or +\fINNTP\fR server. +However, it may be useful to set this to \*(lqoff\*(rq if +you NFS mount the \fIbbhome\fR directory from another host +and want to use \fIbbc\fR to read those files directly. + +.ti -.5i +bbhome: /usr/spool/bboards +.br +The home directory for the BBoards user. + +.Uh "Post Office Protocol" +.ti -.5i +pop: off +.br +Support for POP service. +This allows local delivery for non\-local users +(a major win). +See \fBsupport/pop/pop.rfc\fR for more information on the POP. +This option currently works only on UNIX systems with TCP/IP sockets. +(It doesn't hurt to enable this option regardless of whether or not +you intend to use POP.) See also \*(lqbboards: pop\*(rq to enable +reading bboards with the POP. + +.ti -.5i +popdir: /usr/etc +.br +The directory where the POP daemon (\fBpopd\fP) will be installed. + +.ne 5 +.ti -.5i +options: +.br +\&`\-D' options to \fIcc\fR\|(1). +.sp +.in +.25i +.ti -.5i +APOP='\*(lq/etc/pop.auth\*(rq' +.br +This option indicates that the POP daemon will +support the non-standard \fBAPOP\fP command, +and specifies the name of \fBAPOP\fP authorization database. +The \fBAPOP\fP +command provides a challenge-based authentication system using +the \fBMD5\fP message digest algorithm. +This facility is documented in +\fIThe Internet Message\fR (ISBN 0\-13\-092941\-7), a book by Marshall T. Rose. +.sp +This option also causes the +\fBpopauth\fP program to be installed, which +allows the administrator to manipulate the \fBAPOP\fP +authorization database. +For more details, see \fBsupport/pop/pop-more.txt\fR +and the \fIAdministrator's Guide\fP. + +.ti -.5i +DPOP +.br +This option indicates that POP subscribers do not have +entries in the \fIpasswd\fR\|(5) file, +and instead have their own separate database (a win). + +.ti -.5i +KPOP +.br +Support for KERBEROS with POP. +This code builds +\fIpopd\fP, \fIinc\fP and \fImsgchk\fP to support only the +\*(lqkpop\*(rq protocol. +This code is still experimental, but is available for +those sites wishing to test it. + +.ti -.5i +MPOP +.br +This option indicates that the POP daemon will +support the non-standard +\fBXTND SCAN\fP command which provides performance +enhancements when using the POP over low-speed connections. +This option also causes an interactive POP +client program, \fBpopi\fP, to be compiled and installed. +A man page for the \fBpopi\fP program is also provided. +.sp +These extensions are described in +\fIThe Internet Message\fR, a book by Marshall T. Rose. +For more details, see \fBsupport/pop/pop-more.txt\fR. +\fBNote:\fP this option requires \*(lqbboards: pop\*(rq. + +.ti -.5i +POP2 +.br +Have the POP daemon understand the older +POP2 protocol as well as the \fIMH\fP POP3 protocol \- a major win. +The POP daemon auto-magically +determines which POP protocol your client is using. +If you're enabling POP service, +there's no reason not to enable this option as well. +See also \fIPOPSERVICE\fR. + +.ti -.5i +POPSERVICE +.br +The port name the \fIMH\fP POP will use. For historical reasons, +this defaults to \*(lqpop\*(rq. +.sp +In 1987, the \fIMH\fP POP protocol +(POP version 3) was published as RFC1081 and +was assigned its own port number (110), +which differs from the original POP (version 1 and 2) port number (109). +.sp +To have \fIMH\fP POP use the new assigned port number, +set POPSERVICE='\*(lqpop3\*(rq', and be sure that this service +name is listed in your \fB/etc/services\fP file on both POP client +and server hosts as \*(lq110/tcp\*(rq. +If you enable \fIPOP2\fP, you can safely leave \fIPOPSERVICE\fP +undefined unless you are using POP3 clients besides \fIMH\fP. + +.ti -.5i +RPOP +.br +This option indicates that support for the UNIX variant of POP, +RPOP, which uses privileged sockets for authentication be enabled. +This peacefully co-exists with the standard POP. + +.ti -.5i +SHADOW +.br +Indicates that the \fBpopd\fP POP server +can find encrypted passwords in the +\fB/etc/shadow\fR file (and not in the \fB/etc/passwd\fR file). +It should be used only for some (newer) SYSTEM 5 systems. +.in -.25i + +The \*(lqAPOP\*(rq and \*(lqMPOP\*(rq non-standard POP +facilities are documented in +\fIThe Internet Message\fR (ISBN 0\-13\-092941\-7), +a book by Marshall T. Rose. +For more details, see \fBsupport/pop/pop-more.txt\fR. +The \*(lqAPOP\*(rq option peacefully co-exists with the standard POP. +The \*(lqMPOP\*(rq option requires \*(lqbboards: pop\*(rq. + +.Uh "Shared libraries" +.ti -.5i +sharedlib: off +.br +If \*(lqsun4\*(rq, +makes libmh.a into a SunOS 4.0 (and later) shared library. +If you enable this, be sure to also use \*(lqoptions SUN40\*(rq. +If \*(lqsys5\*(rq, +makes libmh.a into a SYS5 R4 (and later) shared library. +If you enable this, be sure to also use \*(lqoptions SVR4\*(rq. + +.ti -.5i +slflags: \-pic +.br +The compiler flags to produce position independent code. + +.ti -.5i +slibdir: /usr/local/lib +.br +The directory where the \fIMH\fP shared library should go. + +.ne 4 +.ti -.25i +Under SunOS (sun4) +.br +Since some \fIMH\fP programs are setuid, they'll only look for +the library in \*(lqtrusted\*(rq locations. Putting the library +somewhere besides \fB/usr/lib\fP or \fB/usr/local/lib\fP is not advisable. + +If you \fBmust\fP do this, be sure that you add the +path given by \fBslibdir\fP to the compiler's library search list +(e.g., \*(lqldoptions:\0\-L/usr/mh/lib\*(rq) +and make sure the path starts with a leading `/'. + +You may need to run \fIldconfig\fP\|(8) manually whenever a new +shared object is installed on the system. +See \fIld\fR\|(1) for more information about using shared libraries. + +.ti -.25i +Under Solaris 2.0 (and newer) +.br +The above instructions for SunOS apply, except you should set +the run-time library search path using `\-R' instead of `\-L' +(e.g., \*(lqldoptions: \-R/usr/mh/lib\*(rq). + +.Uh "General System Dependencies" +.in -.5i +You should include the following directives +which are appropriate for your version of UNIX. +If you don't know what an +option does, it probably doesn't apply to you. +.in +.5i + +.ti -.5i +mailgroup: off +.br +If set, \fIinc\fR is made set-group-id to this group name. +Some SYS5 systems want this to be set to \*(lqmail\*(rq. +Set this if your \fB/usr/spool/mail\fP is not world-writeable. + +Note that \fBslocal\fP doesn't know how to deal with this, +and will not work under these systems; just making it set-group-id +will open a security hole. +If you're using \*(lqmailgroup\*(rq, +you should remove \fBslocal\fP (and its man page) from your system. + +.ti -.5i +signal: int +.br +The base type (int or void) of the function +parameter/return value of \fIsignal\fR\|(2). +The default is \fBint\fR. +Set \*(lqsignal void\*(rq on systems which use this type +(e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later). + +.ti -.5i +sprintf: char * +.br +The return value of the \fIsprintf\fR library routine. +This defaults to \*(lqchar\0*\*(rq. Set this to \*(lqint\*(rq if +you have an older version of SYSTEM 5 which has this routine return an +\*(lqint\*(rq type. + +.ne 5 +.ti -.5i +options: +.br +\&`\-D' options to \fIcc\fR\|(1). +.sp +.in +.25i +.ti -.5i +ALTOS +.br +Use on XENIX/v7 systems. +Also, be sure to use \*(lqoptions V7\*(rq. + +.ti -.5i +ATTVIBUG +.br +This option causes +\fIMH\fP to return to the \*(lqWhat now?\*(rq +prompt if your initial editor is \fBvi\fP +and it exits with non-zero status. +Use on Sun OS 4.1 and other systems where the +\fB/usr/ucb/vi\fP editor was changed to +exit with its status equal to the number of pseudo-\*(lqerrors\*(rq +encountered during the edit. This causes a problem for programs that +test the exit status of their editor and abort if the status is non-zero. +(This includes \fIMH\fP and programs like \fB/usr/etc/vipw\fP). + +.ti -.5i +AUX +.br +Use with AUX systems. + +.ti -.5i +BIND +.br +If you are running with the BIND code on UNIX systems +with TCP/IP sockets (e.g. 4.{2,3}BSD), +be sure to define this. + +.ti -.5i +BSD41A +.br +Use on 4.1a Berkeley UNIX systems. + +.ti -.5i +BSD42 +.br +Use on Berkeley UNIX systems on or after 4.2BSD. + +.ti -.5i +BSD43 +.br +Use on 4.3 Berkeley UNIX systems. +Also, be sure to use \*(lqoptions BSD42\*(rq. +If \fIopenlog\fR\|(3) (see \*(lqman 3 syslog\*(rq) +takes three arguments instead of two, +and your \fIwrite\fR\|(1) command is set\-group\-id +to group \*(lqtty\*(rq, use this option. +If only one of these conditions is true, you lose. + +.ti -.5i +BSD44 +.br +Use on Berkeley UNIX systems on or after 4.4BSD. +Also, be sure to use \*(lqoptions BSD43\*(rq +and \*(lqoptions BSD42\*(rq. + +.ti -.5i +DBMPWD +.br +Use this option if your \fIgetpwent\fR\|(3) routines read a +dbm database (such as with Yellow Pages) instead of doing +a sequential read of \fB/etc/passwd\fR. +Without DBMPWD the entire passwd file is read into +memory one entry at a time for alias expansion. +This is a performance improvement when reading +a standard \fB/etc/passwd\fR file, +but is \fIvery\fR slow on systems with a dbm database. +At one site that runs +YP on a large passwd file, it showed a 6:1 performance improvement. + +.ti -.5in +GCOS_HACK +.br +The so-called \*(lqgcos\*(rq field of the password file is +used as a last resort +to find the user's full name (see \fImh-profile\fP\|(5) for details). +Enable this option +if your \fIpasswd\fP\|(5) man page notes that the `&' +character in the \*(lqgcos\*(rq field stands for the login name. + +.ti -.5i +FCNTL +.br +Directs \fIMH\fP to use the \fBfcntl()\fP system call for kernel-level +locking. If you're using a SYS5 system, you may want +this option. (See also `FLOCK' and `LOCKF'). + +.ti -.5i +FLOCK +.br +Directs \fIMH\fP to use the \fBflock()\fP system call for kernel-level +locking. If you're on a BSD42 system, +and you're not using NFS to read or write maildrops, +you should enable this option. (See also `FCNTL' and `LOCKF'). + +.ti -.5i +HESIOD +.br +Support for HESIOD. +This code was contributed, and included no documentation. + +.ti -.5i +LOCKF +.br +Directs \fIMH\fP to use the \fBlockf()\fP system call for kernel-level +locking. If you're using NFS to read or +write maildrops, you should enable this option. (See also `FLOCK' +and `FCNTL'). + +.ti -.5i +locname +.br +Hard-wires the local name for the host \fIMH\fR is running on. +For example, locname='\*(lqPICKLE\*(rq'. +It's probably better to either let UNIX tell \fIMH\fR this information, +or to put the information in the host specific \fBmtstailor\fR file. + +.ti -.5i +MORE +.br +Defines the location of the \fImore\fR\|(1) program. +On ALTOS and DUAL systems, set +MORE='\*(lq/usr/bin/more\*(rq'. +The default is \*(lq/usr/ucb/more\*(rq. + +.ti -.5i +NDIR +.br +For non-Berkeley UNIX systems, +this \fIMH\fR will try to find the new directory access mechanism by looking +in \fB\fR if this option is given. +Otherwise, \fIMH\fR will try \fB\fR. +If you still can't get this to work on your system, +edit \fBh/local.h\fR as appropriate. +(See also `SYS5DIR'.) + +.ti -.5i +NFS +.br +Tells \fIMH\fR to hack around a problem in the NFS C library. +If you get an undefined symbol \*(lqruserpass\*(rq when compiling +\fIMH\fP, you probably need this option. If, however, you include this +option and get an undefined symbol \*(lq\(ru\^\(ruruserpass\*(rq +when compiling, then you should omit this option. +(See also `NORUSERPASS'.) + +.ti -.5i +NOIOCTLH +.br +Tells \fIMH\fR not to include the file \fB\fR. +To be used on systems where this file is not present. + +.ti -.5i +NORUSERPASS +.br +Tells \fIMH\fR that your system doesn't have the +\fIruserpass\fP\|(3) routine; +\fIMH\fR will include its own copy of this +routine in its library. +(See also `NFS'.) + +.ti -.5i +NTOHLSWAP +.br +Tells \fIMH\fR to use the \fBntohl()\fR macro when processing +\fImsh\fR binary map files. \fIMH\fR can use this macro on +systems with the include file \fBnetinet/in.h\fR, +to byte-swap the binary information in these map files. +If you're using the same map files on machines of different +architectures, enable this option. + +.ti -.5i +RENAME +.br +Include this option if your system has a \fBrename()\fP library +call. This is true on BSD42 and newer and some SYS5 systems. + +.ti -.5i +SENDMAILBUG +.br +Causes SMTP reply code 451 (failure) +to be considered the same as code 250 (OK). +Since this might cause problems, only +enable this if you are certain that your SendMail will +return this code even when it doesn't mean to indicate a failure. + +.\" .ti -.5i +.\" SMTP_ONEX +.\" .br +.\" Causes \fIMH\fP to give the \*(lqONEX\*(rq SMTP command +.\" when posting mail (a SendMail performance hack). +.\" Useful only if you're running a SendMail +.\" which will successfully reset with the \*(lqRSET\*(rq command +.\" after seeing the \*(lqONEX\*(rq command; +.\" otherwise, if you enable this +.\" you may have problems posting messages with \*(lqBCCs\*(rq. +.\" +.ti -.5i +SOCKETS +.br +Indicates the availability of a socket interface +for TCP/IP networking that is compatible with 4.{2,3}BSD UNIX. +It is not necessary to define this when BSD42 is already defined, +but it might be useful for SYSTEM 5 or HPUX systems with TCP/IP sockets. + +.ti -.5i +SUN40 +.br +Use on Sun OS 4.0 (and later?) systems. You also will need +\*(lqoptions BSD42\*(rq, \*(lqoptions BSD43\*(rq, and +\*(lqsignal void\*(rq. + +If you're using Sun's brain-damaged approach to offering Domain +Name Service through NIS, be sure to include +\*(lqoptions BIND\*(rq and +\*(lqldoptions \-lresolv\*(rq to work around some NIS/DNS bugs. + +.ti -.5i +SYS5 +.br +Use on AT&T SYSTEM 5 R3 (and newer?) UNIX systems. See also \fImailgroup\fR. + +.ti -.5i +SYS5DIR +.br +Define this if your system uses \*(lqstruct dirent\*(rq +instead of \*(lqstruct direct\*(rq. +This is true of System V Release 3.0 and later. +Uses include file \fB\fR +and the routines \fImkdir\fR, \fIrmdir\fR and \fIgetcwd\fR. + +.ti -.5i +SVR4 +.br +Use on AT&T SYSTEM 5 R4 (and newer?) UNIX systems. You should +also include \*(lqoptions SYS5\*(rq and \*(lqoptions SYS5DIR\*(rq. +See also \fImailgroup\fR. +You will also need to include \*(lqoldload none\*(rq if your \fBld\fP +doesn't handle `\-x\0\-r' correctly. + +.ti -.5i +TERMINFO +.br +Define TERMINFO if you have it. +You get it automatically if you're running SYS5, and you don't get +it if you're not. (If you're not SYS5, you probably have termcap.) + +.ti -.5i +TZNAME +.br +Use time zone names from the \fItzname\fR variable, set via \fItzset\fR. +Only applicable on SYSTEM 5 systems and only effective when you have +asked for alpha\-timezones (see the ATZ option). See also ZONEINFO. + +.ti -.5i +UNISTD +.br +Include this option if your system has the file \fB\fP. +If not specified, the LOCKF option will include \fB\fP. + +.ti -.5i +V7 +.br +Use on V7 UNIX systems. +Also, be sure to use \*(lqoptions void=int\*(rq. + +.ti -.5i +VSPRINTF +.br +Include this option if your system has the \fIvsprintf\fP\|(3) +library routine; otherwise, \fI\(rudoprnt\fP\|(3) will be used. + +.ti -.5i +WAITINT +.br +BSD42 based systems call the \fIwait\fP\|(2) +system routine with a pointer to type \fIunion wait\fP. +Include this option if you included \*(lqoptions BSD42\*(rq, but +your system calls the \fIwait\fP\|(2) +system routine with a pointer to type \fIint\fP +(the non-BSD42 default). + +.ti -.5i +ZONEINFO +.br +Specify this if you have a BSD43 based system that keeps time zone +information /etc/zoneinfo or /usr/lib/zoneinfo (SunOS), +and where +the \fIstruct tm\fP +returned by \fIlocaltime\fP\|(3) contains a \fItm_gmtoff\fP element +(see \fB/usr/include/time.h\fP). +With this fix the GMT offset specified in outgoing mail +will be corrected when the TZ enviornment variable is set +to a different time zone. See also TZNAME. +.in -.25i + +.Uh "Site Preferences" +.br +.in -.5i +These options change the +default behavior of \fIMH\fP or enable optional features. +Add the options which are appropriate for your configuration +or your site preferences. +.in +.5i + +.ti -.5i +editor: prompter +.br +The default editor for \fIMH\fR. + +.ne 5 +.ti -.5i +options: +.br +\&`\-D' options to \fIcc\fR\|(1). +.sp +.in +.25i +.ne 4 +.ti -.5i +ATZ +.br +Directs \fIMH\fR to use alpha\-timezones whenever possible. +You should not use this option if you are on the Internet, +since it will make your host non-compliant with RFC-1123 +(Requirements for Internet Hosts). + +.ti -.5i +ATHENA +.br +Makes \fIrepl\fR `\-nocc\0all' the default instead of `\-cc\0all'. +You may want to enable this if you're using \fIxmh\fR. + +.ti -.5i +BANG +.br +Directs \fIMH\fR to favor `!' over `@' in addressing. + +.ti -.5i +BERK +.br +Optional for for 4.{2,3}BSD sites running SendMail. +Disables nearly all of the RFC822 address and header-parsing routines +in favor of recognizing such formats as ASCnet, and so on. +If you don't need to disable the parser for this reason, +you probably want to use \*(lqoptions DUMB\*(rq instead. + +.ti -.5i +COMPAT +.br +If you previously ran a version of \fIMH\fR earlier than mh.4 use this option. +After a short grace period, +remove it and re-{configure,generate,install} everything. + +.ti -.5i +DUMB +.br +Directs \fIMH\fR not to try and rewrite addresses to their +\*(lqofficial\*(rq form. + +.ti -.5i +FOLDPROT +.br +Defines the octal value for default folder-protection. +For example, FOLDPROT='\^\*(lq0700\*(rq\^'. +The default is \*(lq0711\*(rq. + +.ti -.5i +ISI +.br +When using \*(lqrepl\0\-ccme\*(rq, +only \*(lqcc:\*(rq the first address found which belongs to the user; +any other \fIAlternate-Mailboxes\fR do not receive \*(lqcc:\*(rqs. + +.ti -.5i +LINK +.br +Defines the filename for alternate file name for \fIdist\fR and \fIrepl\fR. +For example, LINK='\^\*(lq\^\\\^\\\^043\*(rq\^' +to use the pound\-sign character. +The default is \*(lq@\*(rq. + +.ti -.5i +MHE +.br +Enables crude support for Brien Reid's MHE interface. +Recommended for use with the GNU Emacs mh-e package. + +.ti -.5i +MHRC +.br +Enables \fIMH\fR to recognize the \fICShell\fR's `~'\-construct. +This is useful for sites that run with a ~/.mhrc for their users. + +.ti -.5i +MIME +.br +Enables support for multi-media messages, +as specified in RFC 1341 \-\- a major win. +This allows you to include things like audio, +graphics, and the like, in your mail messages. +Several \fIMH\fP commands are extended to support these multi-media +messages, +and the \fImhn\fR command is provided to encode and decode +\fBMIME\fP messages. +For more details, see \fBmiscellany/multi-media/READ-ME\fP +and \fImhn\fR\|(1). + +.ti -.5i +MSGID +.br +Enables \fBslocal\fP to detect and surpress duplicate messages received. +This code uses the \fB\fP library, +and requires \*(lqoptions BSD42\*(rq since +it uses the \fIflock\fP\|(2) system call for locking. +(Note that this means its database locking does not work over NFS.) +It has only been tested under SUN40. + +.ti -.5i +MSGPROT +.br +Defines the octal value for default folder-protection. +For example, MSGPROT='\^\*(lq0600\*(rq\^'. +The default is \*(lq0644\*(rq. + +.ti -.5i +NOMHSEQ +.br +Directs \fIMH\fR to make private sequences the default. + +.ti -.5i +OVERHEAD +.br +Enable \fIMH\fR commands to read profile/context from open fd:s +without doing an open(); see \fImh-profile\fP\|(5) for the details. + +.ti -.5i +RPATHS +.br +Directs \fIinc\fR to note UNIX \*(lqFrom\ \*(rq lines as Return-Path: info. + +.ti -.5i +SBACKUP +.br +Defines the prefix string for backup file names. +For example, SBACKUP='\^\*(lq\^\\\^\\\^043\*(rq\^'. +The default is \*(lq,\*(rq. + +.ti -.5i +TMA +.br +Support for the TTI \fItrusted mail agent\fR (TMA). +Although the TTI TMA is \fBnot\fR in the public domain, +the \fIMH\fR support for the TTI TMA \fBis\fR in the public domain. +You should enable this option only if you are licensed to run the TMA +software +(otherwise, you don't have the software in your \fIMH\fR source tree). + +.ti -.5i +TTYD +.br +Support for TTYD. This is no longer in wide use, and is not recommended. + +.ti -.5i +UCI +.br +First, \*(lq_\*(rq and \*(lq#\*(rq are recognized as the prefixes for +scratch files. +Second, support for the UCI group\-leadership mechanism is enabled in +\fIconflict\fR. +Third, the first line of the file +file \fB$HOME/.signature\fR is used as the \fIFull Name\fR part +of your \*(lqFrom:\*(rq header. +This may conflict with the interpretation of this file by \fINews\fR. +If you're not at UCI, you probably don't want this option. + +.ti -.5i +UK +.br +Directs the \fIscan\fR program to generate UK-style dates by default. + +.ti -.5i +WHATNOW +.br +Enable certain \fIMH\fR commands to act differently when $mhdraft set. + +.ti -.5i +YEARMOD +.br +This option makes the \fImh-format\fP \fB%(year)\fP function +always return a value less than 100. +Enable this option if you have local \fImh-format\fP\|(5) files +which cannot handle 4-digit years. +You should convert these files to use a 4-character field width, +or use the \fB%(modulo 100)\fP function to obtain a 2-digit year value. +After a short grace period, +remove `YEARMOD' and re-{configure,generate,install} everything. +.in -.25i + +.Uh "Testing/debugging" +.ti -.5i +debug: off +.br +Support for debug mode of \fIMH\fR. +Don't use this unless you know what you're doing, +which isn't likely if you're reading this document! + +.ti -.5i +regtest: off +.br +Set this to \*(lqon\*(rq +if you are doing regression testing among different +compilations of \fIMH\fP, and you do not want the hostname +and compile date included in \fIMH\fP binaries. + +.sp +.in -.5i +.PP +Now edit \fBconf/config/mtstailor\fR, +depending on your choice of the setting +for mts in the \fIMH\fR configuration file. +for an mts setting of \*(lqmh\*(rq, +look at the file \fBconf/tailor/mhmts\fR; +for an mts setting of \*(lqsendmail\*(rq, \*(lqsendmail/smtp\*(rq, +\*(lqmmdf/smtp\*(rq, or \*(lqmmdf2/smtp\*(rq, +look at the file \fBconf/tailor/sendmts\fR; +and, +for an mts setting of \*(lqmmdf\*(rq, or \*(lqmmdf2\*(rq, +look at the file \fBconf/tailor/mmdf\fR. +.PP +Now install the configured files into the source areas. (On SYS5 +systems, or other systems where you get complaints about +\*(lq_index\*(rq and \*(lq_rindex\*(rq being undefined, +you should use \*(lqmake sys5\*(rq to compile mhconfig.) +.sp 1 +.nf +% make +% ./mhconfig MH +.fi +.PP +\fBBefore proceeding\fP, +you should familiarize yourself with the \fIAdministrator's Guide\fR. +To generate an \fInroff\fR version, go to the doc/ directory +and type: +.sp 1 +.nf +% (cd ../doc/; make ADMIN.doc) +.fi +.sp +.PP +If you're already running \fIMH\fR at your site, +you should also read the \fImh\fR changes document \fBCHANGES\fP. +The source is in \fBpapers/changes/\fR. +.PP +After reading the \fIAdministrator's Guide\fR, you may decide +to change your MH configuration. If so, cd back to the \fBconf/\fP +directory, re-edit the files \fBMH\fP +and \fBconf/config/mtstailor\fR, and re-run \fImhconfig\fP. +.PP +You now proceed based on your choice of a transport system +(the setting for mts above). +The best interface is achieved with \*(lqsendmail\*(rq +followed by \*(lqmmdf\*(rq or (\*(lqmmdf2\*(rq), +and then \*(lqmh\*(rq (stand\-alone delivery, not recommended). +.SS SENDMAIL +If you have not enabled BBoards or POP +then no further MTS\-specific action is required on your part! + +If you have enabled POP, but you +want to let \fISendMail\fP deliver mail POP mail using its +standard delivery program \fB/bin/mail\fP, +then, again, no further MTS\-specific action is required on your part! + +Otherwise, +go to the mts/sendmail/ directory. +.sp 1 +.nf +% cd ../mts/sendmail/ +.fi +.sp 1 +This directory contains files whose definitions correspond to the +configuration of your \fISendMail\fR system. +If you have enabled BBoards or POP service, +then you will need to re\-configure \fISendMail\fR. +First, in the \*(lqlocal info\*(rq section of your site's +\fISendMail\fR configuration file, +choose a free macro/class (B is used in this distribution), +and add these lines: +.sp 1 +.in +.5i +.nf +# BBoards support +DBbboards +CBbboards +.fi +.in -.5i +.sp 1 +Second, immediately after the inclusion of the zerobase file, +in the \*(lqmachine dependent part of ruleset zero\*(rq section, +add these lines: +.sp 1 +.in +.5i +.nf +# resolve names for the BBoards system +R$+<@$=B> $#bboards$@$2$:$1 topic@bboards +.fi +.in -.5i +.sp 1 +Be sure to use tabs when separating these fields. +Third, add the line +.sp 1 +.in +.5i +.nf +include(bboardsMH.m4) +.fi +.in -.5i +.sp 1 +after the line +.sp 1 +.in +.5i +.nf +include(localm.m4) +.fi +.in -.5i +.sp 1 +in your site's \fISendMail\fR configuration file. +Finally, you should link the file \fBmts/sendmail/bboardsMH.m4\fR into your +\fISendMail\fR cf/ directory and re\-configure \fISendMail\fR. +.PP +If you have enabled POP service, +a similar procedure must be used on the POP service host, +to re\-configure \fISendMail\fR. +First, in the \*(lqlocal info\*(rq section of your site's +\fISendMail\fR configuration file, +choose a free macro/class (P is used in this distribution), +and add these lines: +.sp 1 +.in +.5i +.nf +# POP support +DPpop +CPpop +.fi +.in -.5i +.sp 1 +Second, immediately after the inclusion of the zerobase file, +in the \*(lqmachine dependent part of ruleset zero\*(rq section, +add these lines: +.sp 1 +.in +.5i +.nf +# resolve names for the POP system +R$+<@$=P> $#pop$@$2$:$1 subscriber@pop +.fi +.in -.5i +.sp 1 +Be sure to use tabs when separating these fields. +Third, add the line +.sp 1 +.in +.5i +.nf +include(popMH.m4) +.fi +.in -.5i +.sp 1 +after the line +.sp 1 +.in +.5i +.nf +include(localm.m4) +.fi +.in -.5i +.sp 1 +in your site's \fISendMail\fR configuration file. +Finally, you should link the file \fBmts/sendmail/popMH.m4\fR into your +\fISendMail\fR cf/ directory and re\-configure \fISendMail\fR. +.SS MMDF +If you want \fIMMDF\fR to be your transport service, +and have \fBNOT\fR specified \*(lqmmdf/smtp\*(rq (or \*(lqmmdf2/smtp\*(rq) +as your mts setting, +then go to the mmdf/ directory. +(If you're using \*(lqmmdf/smtp\*(rq or \*(lqmmdf2/smtp\*(rq +as your mts setting, then skip to the next section.) +.sp 1 +.nf +% cd ../mts/mmdf/ +.fi +.sp 1 +This directory contains files whose definitions correspond to the +configuration of your \fIMMDF\fR system. +.PP +If you're running \fIMMDF\-I\fR, +then copy the following files from wherever you keep the \fIMMDF\fR sources +to this directory: mmdf/h/ch.h, mmdf/h/conf.h, utildir/conf_util.h, +utildir/ll_log.h, mmdf/h/mmdf.h, utildir/util.h, mmdf/mmdf_lib.a, +and utildir/util_lib.a. +.PP +If you're running \fIMMDF\-II\fR, +then copy the following files from where you keep the \fIMMDF\fR sources +to this directory: h/ch.h, h/conf.h, h/dm.h, h/ll_log.h, h/mmdf.h, h/util.h, +and lib/libmmdf.a +.PP +If you have enabled bboards, +then the directories \fBsupport/bboards/mmdfI\fR +and \fBsupport/bboards/mmdfII\fR +contain information you'll need to +put a UCI BBoards channel in your \fIMMDF\fR configuration. +Similarly, if you have enabled option \*(lqmf\*(rq and are +running \fIMMDF\-I\fR, +then the \fBzotnet/mf/mmdfI/\fR directory contains information you'll need to +put a \fIUUCP\fR channel in your \fIMMDF\-I\fR configuration. +Finally, the directory \fBsupport/pop/mmdfII\fR contains information you'll +need to put a POP channel in your \fIMMDF\-II\fR configuration. +.PP +Note that \fIMMDF\-II\fR is distributed with the BBoards channel, +although the version in the \fIMH\fR distribution might be more current, +the version in the \fIMMDF\-II\fR distribution has been tested with that +revision of \fIMMDF\fR. +.SS MMDF/SMTP +If you are using \*(lqmmdf/smtp\*(rq as your mts setting, +then no further MTS\-specific action is required on your part! +.SS MMDF2/SMTP +If you are using \*(lqmmdf2/smtp\*(rq as your mts setting, +then no further MTS\-specific action is required on your part! +.SS "STAND\-ALONE DELIVERY" +If, instead, you want \fIMH\fR to handle its own mail delivery, +then no further MTS\-specific action is required on your part! +.SH GENERATION +Go to the \fIMH\fP top-level directory and generate the system. +.sp 1 +.nf +% cd ../; make +.fi +.PP +This will cause a complete generation of the \fIMH\fR system. +If all goes well, proceed with installation. +If not, complain, as there \*(lqshould be no problems\*(rq at this step. +.SH INSTALLATION +If the directories you chose for the user\-programs, +support\-programs and manuals +(\*(lqbin\*(rq, \*(lqetc\*(rq, \*(lqpopdir\*(rq, \*(lqslibdir\*(rq, +and \*(lqmandir\*(rq in the \fBconf/MH\fR file) +don't exist, +you should create them at this point. +.PP +Next, if you enabled support for the UCI BBoards facility, +then create a login +called \*(lqbboards\*(rq with the following characteristics: +home directory is \fB/usr/spool/bboards/\fR with mode 755 +(actually, use the value for \*(lqbbhome\*(rq given in the \fIMH\fR +configuration file), +login shell is \fB/bin/csh\fR (or \fB/bin/sh\fR), +and, encrypted password field is \*(lq*\*(rq. +The \*(lqbboards\*(rq login should own the \fB/usr/spool/bboards/\fR +directory. +In addition to creating \fB/usr/spool/bboards/\fR, +also create \fB/usr/spool/bboards/etc/\fR +and \fB/usr/spool/bboards/archive/\fR. +These directories should also be owned by the \*(lqbboards\*(rq login. +.PP +If you enabled support for POP, +then on the POP service host, +create a login called \*(lqpop\*(rq with the following characteristics: +home directory is \fB/usr/spool/pop/\fR with mode 755, +login shell is \fB/bin/csh\fR, +and, encrypted password field is \*(lq*\*(rq. +If you don't have \fB/bin/csh\fR on your system (V7), +then \fB/bin/sh\fR is just fine. +The \*(lqpop\*(rq login should own the \fB/usr/spool/pop/\fR directory. +You'll also need to add a line to the \fB/etc/services\fR file and the +\fB/etc/rc.local\fR file, +see the \fIAdministrator's Guide\fR for more details. +.PP +If this is not the first time you have installed \fIMH\fR, +these files will need particular attention: + +.nf +.in +.5i +.ta \w'VeryVeryBigDirectoryName 'u +\fIDirectory\fR \fIFiles\fR +\*(lqetc/\*(rq MailAliases, BBoardAliases, mtstailor +/usr/spool/bboards/ BBoards, \&.cshrc, \&.mh\(ruprofile +/usr/spool/bboards/etc/ * +.re +.in -.5i +.fi +.PP +The \fBMailAliases\fR, \fBBBoardAliases\fR, \fBmtstailor\fR and \fBBBoards\fR +files will \fBNOT\fP be installed over existing copies; +you will need to edit these by +hand and merge in any changes from your previous \fIMH\fR release. +The other files under \fB/usr/spool/bboards/\fR will be overwritten +if they exist. +You may wish to preserve your old versions of these before installing +\fIMH\fR. +.PP +As the super-user, and from the mh.6/ directory, install the system. +.sp 1 +.nf +# make inst\-all +.fi +.sp 1 +This will cause the \fIMH\fR +processes and files to be transferred to the appropriate areas +with the appropriate attributes. +.SH TAILORING +See the \fIAdministrator's Guide\fR for information on tailoring \fIMH\fR for +the MTS, BBoards, and POP. +.SH DOCUMENTATION +In addition to this document, +the \fIAdministrator's Guide\fP, +and the \fIUser's Manual\fP, +there are several documents referenced by the user's manual which may be +useful. +The sources for all of these can be found under the \fBpapers/\fR directory. +.SH "OTHER THINGS" +Consult the directory \fBmiscellany/\fR for the sources to a number of things +which aren't part of the mainstream \fIMH\fR distribution, +but which are still quite useful. +.SH FILES +Too numerous to mention. Really. +.SH "SEE ALSO" +make(1) +.SH BUGS +The \fImhconfig\fR program should be smarter. +.PP +There's no way to print the \fIAdministrator's Guide\fP +until after you have configured the system; it is difficult +to configure the system without the \fIAdministrator's Guide\fP. +.PP +The Makefiles should know when \fImhconfig\fR has been run and force +\*(lqmake clean\*(rq behavior. diff --git a/docs/historical/mh-6.8.5/conf/mhconfig.c b/docs/historical/mh-6.8.5/conf/mhconfig.c new file mode 100644 index 0000000..bf7db3b --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/mhconfig.c @@ -0,0 +1,1048 @@ +/* mhconfig.c - configure MH */ +/* cc [-DSYS5] mhconfig.c -o mhconfig */ +#ifndef lint +static char ident[] = "@(#)$Id: mhconfig.c,v 2.73 1996/02/08 19:07:47 jromine Exp $"; +#endif /* lint */ + +#include +#include +#ifdef hpux +#define SYS5 +#endif +#ifdef SYS5 +#define index strchr +#define rindex strrchr +#endif /* SYS5 */ + +static void insopt(), mkopts(); + +extern char *strcpy(), *malloc(), *index(), *rindex(); +#ifdef notdef +extern char *sprintf(); /* rely on stdio.h to declare this */ +#endif + +#define BANNER "This is %s, for generic UNIX (MH.6 configuration program)\n\n" + + +#define SED "config.sed" +#define SEDOC "doc/config.sed" +#define MAKE "../%s/Makefile" + +#define WARNING "This file is automatically generated. Do not edit!" +#define MHRELEASE "6.8.4" /* for version: "Maj.min.pat" */ +#define MHCENTERFOOT "MH.6.8" /* for nroff page footers */ +#define MHLEFTFOOT "[mh.6]" /* [mh.6] MH.6.6 page# */ +#define MHSLIBVER "3.2" /* SunOS4 shared library version */ + +#define NOTOK (-1) + +#define NULLCP ((char *) 0) + +#define SVAL(s) (s ? s : "") + +#define QUOTE '\\' + +/* */ + +static int smtp = 0; +static int mpop = 0; + +static int sedP = 1; +static int filesP = 1; +static int docP = 1; +static int makeP = 1; + +static char *myname = "mhconfig"; +static char *config = NULL; +static char *myopts = NULL; + +static char *binpath = "/usr/local"; +static char *bbhome = "/usr/spool/bboards"; +static char *bboards = "off"; +static char *bbdelivery = "off"; +static char *ccoptions = NULL; +static char *chownpath = "/etc/chown"; +static char *compiler = "/bin/cc"; +static char *copy = "cp"; +static char *curses = "-lcurses -ltermlib"; +static char *debug = "off"; +static char *editor = "prompter"; +static char *etcpath = "/usr/local/lib/mh"; +static char *ldoptions = NULL; +static char *ldoptlibs = NULL; +static char *lex = "lex -nt"; +static char *ln = "ln"; +static char *mailgroup = "off"; +static char *mailpath = "/usr/spool/mail"; +static char *maildir = NULL; +static char *mailfile = NULL; +static char *mancat = "man"; +static char *mandir = "/usr/man"; +static char *manuals = "standard"; +static char *mf = "off"; +static char *mts = "sendmail"; +static char *poppath = "/usr/etc"; +static char *removeit = "mv -f"; +static char *regtest = "off"; +static char *oldload = "off"; +static char *options = NULL; +static char *pop = "off"; +static char *ranlib = "on"; +static char *sharedlib = "off"; +static char *signl = "int"; +static char *slibdir = "/usr/local/lib"; +static char *slflags = "-pic"; +static char *sprntf = NULL; + +/* */ + +#define unknown 0 +#define mmdf 1 +#define mmdf2 2 +#define mh 3 +#define sendmail 4 +static int mtsnum = unknown; + +static struct mtsopt { + char *mtskey; + char *optval; + int code; + int mtsflags; +#define NOFLAGS 0x00 +#define DOSMTP 0x01 +#define NOMF 0x02 +} mtsopts[] = { + "mmdf", "MMDFMTS MMDFI", mmdf, NOFLAGS, + "mmdf/smtp", "SENDMTS SMTP", mmdf, DOSMTP, + "mmdf2", "MMDFMTS MMDFII", mmdf2, NOFLAGS, + "mmdf2/smtp", "SENDMTS MMDFII SMTP", mmdf2, DOSMTP, + "mh", "MHMTS", mh, NOFLAGS, + "sendmail", "SENDMTS", sendmail, NOMF, + "sendmail/smtp", "SENDMTS SMTP", sendmail, NOMF, + "zmailer", "ZMAILER SENDMTS", sendmail, NOMF, + "zmailer/smtp", "ZMAILER SENDMTS SMTP", sendmail, NOMF, + NULL, NULL, unknown, NOFLAGS +}; + +/* other options which cause sed BEGIN/END configuration changes */ + +static struct copt { + char *c_name; + int c_value; +} copts[] = { + "APOP", 0, /* authenticated pop */ + "BSD43", 0, /* sgid ttys */ + "BSD44", 0, /* manual headings */ + "KPOP", 0, /* KERBEROS pop */ + "HESIOD", 0, + "MIME", 0, /* multi-media extensions */ + "MPOP", 0, /* mobile pop */ + "MSGID", 0, /* slocal dup surpression */ + "NORUSERPASS", 0, /* no ruserpass(3) */ + "TMA", 0, /* trusted mail */ + "TTYD", 0, + "UCI", 0, + NULL, 0 +}; + + + +/* */ + +static struct bind { + char *keyword; + + char **value; + + int flags; +#define BD_NIL 0x00 +#define BD_ADD 0x01 +} binds[] = { + "bin", &binpath, BD_NIL, + "bbhome", &bbhome, BD_NIL, + "bboards", &bboards, BD_NIL, + "bbdelivery", &bbdelivery, BD_NIL, + "ccoptions", &ccoptions, BD_ADD, + "chown", &chownpath, BD_NIL, + "cc", &compiler, BD_NIL, + "cp", ©, BD_NIL, + "curses", &curses, BD_NIL, + "debug", &debug, BD_NIL, + "editor", &editor, BD_NIL, + "etc", &etcpath, BD_NIL, + "ldoptions", &ldoptions, BD_ADD, + "ldoptlibs", &ldoptlibs, BD_ADD, + "lex", &lex, BD_NIL, + "ln", &ln, BD_NIL, + "mail", &mailpath, BD_NIL, + "mailgroup", &mailgroup, BD_NIL, + "mandir", &mandir, BD_NIL, + "manuals", &manuals, BD_NIL, + "mf", &mf, BD_NIL, + "mts", &mts, BD_NIL, + "oldload", &oldload, BD_NIL, + "options", &options, BD_ADD, + "pop", &pop, BD_NIL, + "popdir", &poppath, BD_NIL, + "ranlib", &ranlib, BD_NIL, + "remove", &removeit, BD_NIL, + "regtest", ®test, BD_NIL, + "sharedlib", &sharedlib, BD_NIL, + "signal", &signl, BD_NIL, + "slflags", &slflags, BD_NIL, + "slibdir", &slibdir, BD_NIL, + "sprintf", &sprntf, BD_NIL, + NULL +}; + +/* */ + +char *files[] = { + "../support/bboards/bboards.daily", + "../support/bboards/bboards.weekly", + "../support/bboards/crontab", + "../support/bboards/MakeBBoards", + "../config/config.c", + "../zotnet/mts/mts.c", + "../zotnet/mts/mtstailor", + "../support/general/MailAliases", + "../mts/sendmail/bboardsMH.m4", + "../mts/sendmail/popMH.m4", + NULL +}; + +static struct pair { + char *infile; + char *outfile; +} makefiles[] = { + "makefiles/MH-Makefile", ".", + "makefiles/config","config", + "makefiles/dist","dist", + "makefiles/doc","doc", + "makefiles/mtsM","mts", + "makefiles/mts/mh","mts/mh", + "makefiles/mts/mmdf","mts/mmdf", + "makefiles/mts/sendmail","mts/sendmail", + "makefiles/papers","papers", + "makefiles/sbr","sbr", + "makefiles/supportM","support", + "makefiles/support/bboards","support/bboards", + "makefiles/support/general","support/general", + "makefiles/support/pop","support/pop", + "makefiles/uip","uip", + "makefiles/zotnetM","zotnet", + "makefiles/zotnet/bboards","zotnet/bboards", + "makefiles/zotnet/mf","zotnet/mf", + "makefiles/zotnet/mts","zotnet/mts", + "makefiles/zotnet/tws","zotnet/tws", + NULL +}; + + +static do_sed(), do_sedfile(), do_files(), do_doc(), do_make(); +static shell(), arginit(), add_option(), trim(); + +static char *stradd (), *strdup (), *tail (); + +long time (); + +/* */ + +/* ARGSUSED */ + +main (argc, argv, envp) +int argc; +char **argv, + **envp; +{ + arginit (argv); + + if (sedP) + do_sed (); + if (filesP) + do_files (); + if (docP) + do_doc (); + if (makeP) + do_make (); + +#ifdef notdef + printf ("Don't forget to edit \"config/mtstailor\"\n"); +#endif + if (filesP || makeP) + printf ("Don't forget to run \"make clean\" in the top directory before compiling\n"); + + exit (0); +} + +/* */ + +static do_sed () { + if (docP != 2) + do_sedfile (SED, 0); + do_sedfile (SEDOC, smtp); +} + +static do_alldoc (fp) +FILE *fp; +{ + fprintf (fp, "%s\n%s\n%s\n%s\n", /* turn @BEGIN: XX into #ifdef XX */ + "s!^@BEGIN: \\(.*\\)$!.br\\", /* for MH wizard manual set */ + ".ti 0i\\", + "#ifdef \\1\\", + ".br!" + ); + fprintf (fp, "%s\n%s\n%s\n%s\n", + "s!^@END: \\(.*\\)$!.br\\", + ".ti 0i\\", + "#endif /* \\1\\ */", + ".br!" + ); +} + +/* */ + +static do_sedfile (sed, flag) +char *sed; +int flag; +{ + int i; + FILE * fp; + struct copt *op; + + if ((fp = fopen (sed, "w")) == NULL) + adios (sed, "unable to write"); + printf ("generating %s\n", sed); + + if (docP == 2) { + printf ("...using special all-doc format.\n"); + printf ("Be sure to reconfigure before compiling.\n"); + do_alldoc(fp); /* hack up doc/config.sed */ + } + + fprintf (fp, "s%%@(MHCONFIGFILE)%%%s%%g\n", SVAL(config)); + fprintf (fp, "s%%@(MHWARNING)%%%s%%g\n", WARNING); + fprintf (fp, "s%%@(MHRELEASE)%%%s%%g\n", MHRELEASE); + fprintf (fp, "s%%@(MHCENTERFOOT)%%%s%%g\n", MHCENTERFOOT); + fprintf (fp, "s%%@(MHLEFTFOOT)%%%s%%g\n", MHLEFTFOOT); + fprintf (fp, "s%%@(MHBINPATH)%%%s%%g\n", SVAL (binpath)); + fprintf (fp, "s%%@(MHETCPATH)%%%s%%g\n", SVAL (etcpath)); + fprintf (fp, "s%%@(MHPOPDPATH)%%%s%%g\n", SVAL (poppath)); + fprintf (fp, "s%%@(MHCHOWNPATH)%%%s%%g\n", SVAL (chownpath)); + fprintf (fp, "s%%@(MHDROPATH)%%%s%%g\n", SVAL (maildir)); + fprintf (fp, "s%%@(MHDROPFIL)%%%s%%g\n", SVAL (mailfile)); + if (maildir) + fprintf (fp, "s%%@(MHDROPLOC)%%%s/$USER%%g\n", SVAL (maildir)); + else + fprintf (fp, "s%%@(MHDROPLOC)%%$HOME/%s%%g\n", SVAL (mailfile)); + fprintf (fp, "s%%@(MHDROPHAK)%%%s%%g\n",/* HACK */ + maildir ? maildir : "/usr/spool/mail"); + + fprintf (fp, "s%%@(MHMANDIR)%%%s%%g\n", mandir); + fprintf (fp, "s%%@(MHCATMAN)%%%s%%g\n", + strcmp(mancat, "cat") == 0 ? "| nroff -man" : ""); + if (strcmp (manuals, "standard") == 0 || strcmp (manuals, "gen") == 0) + for (i = 1; i <= 8; i++) { + fprintf (fp, "s%%@(MHMANDIR%d)%%%s%d%%g\n", i, mancat, i); + fprintf (fp, "s%%@(MHMANEXT%d)%%%d%%g\n", i, i); + } + else + for (i = 1; i <= 8; i++) { + fprintf (fp, "s%%@(MHMANDIR%d)%%%s%c%%g\n", i, mancat, + strcmp (manuals, "new") == 0 ? 'n' + : strcmp (manuals, "old") == 0 ? 'o' + : strcmp (manuals, "bsd44") == 0 ? i + '0' + : 'l'); + fprintf (fp, "s%%@(MHMANEXT%d)%%%c%%g\n", i, + strcmp (manuals, "new") == 0 ? 'n' + : strcmp (manuals, "old") == 0 ? 'o' + : strcmp (manuals, "bsd44") == 0 ? '0' + : 'l'); + } + +/* */ + + if (strcmp (regtest, "on") == 0) + fprintf (fp, "s%%@(MHHOSTVER)%%%s%%g\n", "-n"); + else + fprintf (fp, "s%%@(MHHOSTVER)%%%s%%g\n", ""); + + if (strcmp (manuals, "gen") == 0 || strcmp (manuals, "none") == 0) + fprintf (fp, "s%%@(MHMANGEN)%%%s%%g\n", "#"); /* comment char */ + else + fprintf (fp, "s%%@(MHMANGEN)%%%s%%g\n", ""); + + fprintf (fp, "s%%@(MHEDITOR)%%%s%%g\n", SVAL (editor)); + fprintf (fp, "s%%@(MHCONFIG)%%%s%%g\n", SVAL (myopts)); + fprintf (fp, "s%%@(MHCOMPILER)%%%s%%g\n", SVAL (compiler)); + fprintf (fp, "s%%@(CP)%%%s%%g\n", SVAL (copy)); + fprintf (fp, "s%%@(LN)%%%s%%g\n", SVAL (ln)); + fprintf (fp, "s%%@(LEX)%%%s%%g\n", SVAL (lex)); + if (ccoptions) + fprintf (fp, "s%%@(MHOPTIONS)%%%s %s%%g\n", + SVAL (options), SVAL (ccoptions)); + else + fprintf (fp, "s%%@(MHOPTIONS)%%%s %s%%g\n", + SVAL (options), "-O"); + fprintf (fp, "s%%@(LDOPTIONS)%%%s%%g\n", SVAL (ldoptions)); + fprintf (fp, "s%%@(LDOPTLIB)%%%s%%g\n", SVAL (ldoptlibs)); + fprintf (fp, "s%%@(LDCURSES)%%%s%%g\n", SVAL (curses)); + + if (strcmp (bboards, "off") == 0) + fprintf (fp, "/^@BEGIN: BBOARDS$/,/^@END: BBOARDS$/d\n"); + else + fprintf (fp, "/^@BEGIN: BBOARDS$/d\n/^@END: BBOARDS$/d\n"); + fprintf (fp, "s%%@(BBHOME)%%%s%%g\n", SVAL (bbhome)); + if (strcmp (bbdelivery, "off") == 0) + fprintf (fp, "/^@BEGIN: BBSERVER$/,/^@END: BBSERVER$/d\n"); + else + fprintf (fp, "/^@BEGIN: BBSERVER$/d\n/^@END: BBSERVER$/d\n"); + + if (strcmp (debug, "on") == 0) { + fprintf (fp, "/^@BEGIN: DEBUG$/d\n/^@END: DEBUG$/d\n"); + fprintf (fp, "/^@BEGIN: OPTIM$/,/^@END: OPTIM$/d\n"); + } + else { + fprintf (fp, "/^@BEGIN: DEBUG$/,/^@END: DEBUG$/d\n"); + fprintf (fp, "/^@BEGIN: OPTIM$/d\n/^@END: OPTIM$/d\n"); + } + + if (strcmp (mailgroup, "off")) { /* for SYS5 sgid-inc */ + fprintf (fp, "/^@BEGIN: MAILGROUP$/d\n/^@END: MAILGROUP$/d\n"); + fprintf (fp, "s%%@(MAILGROUP)%%%s%%g\n", SVAL (mailgroup)); + } + else + fprintf (fp, "/^@BEGIN: MAILGROUP$/,/^@END: MAILGROUP$/d\n"); + + if (strcmp (oldload, "on") == 0) + fprintf (fp, "/^@BEGIN: OLDLOAD$/d\n/^@END: OLDLOAD$/d\n"); + else + fprintf (fp, "/^@BEGIN: OLDLOAD$/,/^@END: OLDLOAD$/d\n"); + if (strcmp (oldload, "off") == 0) + fprintf (fp, "/^@BEGIN: NEWLOAD$/d\n/^@END: NEWLOAD$/d\n"); + else + fprintf (fp, "/^@BEGIN: NEWLOAD$/,/^@END: NEWLOAD$/d\n"); + +/* */ + + if (strcmp (ranlib, "on") == 0) { + fprintf (fp, "/^@BEGIN: RANLIB$/d\n/^@END: RANLIB$/d\n"); + fprintf (fp, "/^@BEGIN: LORDER$/,/^@END: LORDER$/d\n"); + } + else { + fprintf (fp, "/^@BEGIN: LORDER$/d\n/^@END: LORDER$/d\n"); + fprintf (fp, "/^@BEGIN: RANLIB$/,/^@END: RANLIB$/d\n"); + } + + if (strcmp (sharedlib, "off")) { /* if not off */ + fprintf (fp, "/^@BEGIN: SHAREDLIB$/d\n/^@END: SHAREDLIB$/d\n"); + fprintf (fp, "/^@BEGIN: STDLIB$/,/^@END: STDLIB$/d\n"); + fprintf (fp, "s%%@(SLIBDIR)%%%s%%g\n", slibdir); + fprintf (fp, "s%%@(SLIBVER)%%%s%%g\n", MHSLIBVER); + fprintf (fp, "s%%@(SLFLAGS)%%%s%%g\n", SVAL(slflags)); + if (strcmp (sharedlib, "secure") == 0) + fprintf (fp, "s%%@(SLDFLAG)%%-L%s%%g\n",slibdir); + else + fprintf (fp, "s%%@(SLDFLAG)%%%%g\n"); + } + else { + fprintf (fp, "/^@BEGIN: STDLIB$/d\n/^@END: STDLIB$/d\n"); + fprintf (fp, "/^@BEGIN: SHAREDLIB$/,/^@END: SHAREDLIB$/d\n"); + } + if (strcmp (sharedlib, "sun4") == 0 || strcmp (sharedlib, "on") == 0) + fprintf (fp, "/^@BEGIN: SUN4SHLIB$/d\n/^@END: SUN4SHLIB$/d\n"); + else + fprintf (fp, "/^@BEGIN: SUN4SHLIB$/,/^@END: SUN4SHLIB$/d\n"); + if (strcmp (sharedlib, "sys5") == 0) + fprintf (fp, "/^@BEGIN: SYS5SHLIB$/d\n/^@END: SYS5SHLIB$/d\n"); + else + fprintf (fp, "/^@BEGIN: SYS5SHLIB$/,/^@END: SYS5SHLIB$/d\n"); + +/* */ + + if (flag || ((mtsnum == mmdf || mtsnum == mmdf2) && !smtp)) { + fprintf (fp, "/^@BEGIN: MMDFMTS$/d\n/^@END: MMDFMTS$/d\n"); + if (mtsnum == mmdf) + fprintf (fp, "/^@BEGIN: MMDFIMTS$/d\n/^@END: MMDFIMTS$/d\n"); + else + fprintf (fp, "/^@BEGIN: MMDFIMTS$/,/^@END: MMDFIMTS$/d\n"); + if (mtsnum == mmdf2) + fprintf (fp, "/^@BEGIN: MMDFIIMTS$/d\n/^@END: MMDFIIMTS$/d\n"); + else + fprintf (fp, "/^@BEGIN: MMDFIIMTS$/,/^@END: MMDFIIMTS$/d\n"); + } + else { + fprintf (fp, "/^@BEGIN: MMDFMTS$/,/^@END: MMDFMTS$/d\n"); + fprintf (fp, "/^@BEGIN: MMDFIMTS$/,/^@END: MMDFIMTS$/d\n"); + fprintf (fp, "/^@BEGIN: MMDFIIMTS$/,/^@END: MMDFIIMTS$/d\n"); + } + + if (mtsnum == mh) + fprintf (fp, "/^@BEGIN: MHMTS$/d\n/^@END: MHMTS$/d\n"); + else + fprintf (fp, "/^@BEGIN: MHMTS$/,/^@END: MHMTS$/d\n"); + + if (!flag && (mtsnum == sendmail || smtp)) + fprintf (fp, "/^@BEGIN: SENDMTS$/d\n/^@END: SENDMTS$/d\n"); + else + fprintf (fp, "/^@BEGIN: SENDMTS$/,/^@END: SENDMTS$/d\n"); + + switch (mtsnum) { + case mh: + case sendmail: + case mmdf: + fprintf (fp, "/^@BEGIN: SENDMTSHACK$/d\n/^@END: SENDMTSHACK$/d\n"); + break; + + default: + fprintf (fp, "/^@BEGIN: SENDMTSHACK$/,/^@END: SENDMTSHACK$/d\n"); + break; + } + +/* */ + + /* special hack for support/pop/popser.c */ + fprintf (fp, "s%%@(POPUUMBOX)%%%s%%g\n", + mtsnum == sendmail ? "-DPOPUUMBOX" : ""); + + if (smtp) + fprintf (fp, "/^@BEGIN: SMTP$/d\n/^@END: SMTP$/d\n"); + else + fprintf (fp, "/^@BEGIN: SMTP$/,/^@END: SMTP$/d\n"); + + if (strcmp (pop, "on") == 0) + fprintf (fp, "/^@BEGIN: POP$/d\n/^@END: POP$/d\n"); + else + fprintf (fp, "/^@BEGIN: POP$/,/^@END: POP$/d\n"); + + if (strcmp (bboards, "pop") == 0) + fprintf (fp, "/^@BEGIN: BPOP$/d\n/^@END: BPOP$/d\n"); + else + fprintf (fp, "/^@BEGIN: BPOP$/,/^@END: BPOP$/d\n"); + + if (strcmp (bboards, "nntp") == 0) + fprintf (fp, "/^@BEGIN: NNTP$/d\n/^@END: NNTP$/d\n"); + else + fprintf (fp, "/^@BEGIN: NNTP$/,/^@END: NNTP$/d\n"); + + if (strcmp (mf, "on") == 0) + fprintf (fp, "/^@BEGIN: MF$/d\n/^@END: MF$/d\n"); + else + fprintf (fp, "/^@BEGIN: MF$/,/^@END: MF$/d\n"); + + fprintf (fp, "s%%@(MHREMOVE)%%%s%%g\n", SVAL (removeit)); + + for (op = copts; op->c_name; op++) { + fprintf (fp, op->c_value ? "/^@BEGIN: %s$/d\n/^@END: %s$/d\n" : + "/^@BEGIN: %s$/,/^@END: %s$/d\n", + op->c_name, op->c_name); + } + + (void) fclose (fp); +} + +/* */ + +static do_files () { + char **pp; + + for (pp = files; *pp; pp++) + shell ("rm -f %s; sed -f %s < config/%s > %s", + *pp, SED, tail (*pp), *pp); +} + + +static do_doc () { + shell ("./mhdoc"); +} + + +static do_make () { + char buffer[BUFSIZ]; + struct pair *pp; + + for (pp = makefiles; pp -> infile; pp++) { + (void) sprintf (buffer, MAKE, pp -> outfile); + shell ("rm -f %s; sed -f %s < %s > %s", + buffer, SED, pp -> infile, buffer); + } +} + +/* */ + +/* VARARGS */ + +static shell (fmt, a, b, c, d) +char *fmt, + *a, + *b, + *c, + *d; +{ + char buffer[BUFSIZ]; + + (void) sprintf (buffer, fmt, a, b, c, d); + printf ("%s\n", buffer); + (void) fflush (stdout); + + if (system (buffer)) + adios (NULLCP, "failed"); +} + +/* */ + +static arginit (vec) +char **vec; +{ + int i; + char *ap, + *cp, + *dp, + buffer[BUFSIZ]; + struct bind *bp; + FILE * fp; + + myname = tail (*vec); + printf (BANNER, myname); + (void) fflush (stdout); + + for (vec++; *vec; vec++) { + if (strcmp (*vec, "-D") == 0) { + sedP = 1; filesP = makeP = 0; docP = 2; + continue; + } + if (strcmp (*vec, "-s") == 0) { + sedP = !sedP; + continue; + } + if (strcmp (*vec, "-f") == 0) { + filesP = !filesP; + continue; + } + if (strcmp (*vec, "-d") == 0) { + docP = !docP; + continue; + } + if (strcmp (*vec, "-m") == 0) { + makeP = !makeP; + continue; + } + if (strcmp (*vec, "-help") == 0) { + printf ("usage: %s [opt] file\n", myname); + printf ("%s\n%s\n%s\n%s\n", + " -s\tno sed files", " -f\tno config files", + " -d\tno doc files", " -m\tno makefiles"); + exit (0); + } + break; + } + if ((config = *vec) == NULL || vec[1] != NULL) /* no arg or too many */ + adios (NULLCP, "usage: %s file", myname); + +/* */ + + if ((fp = fopen (config, "r")) == NULL) + adios (config, "unable to read"); + + while (fgets (buffer, sizeof buffer, fp)) { + if (ap = index (buffer, '\n')) + *ap-- = '\0'; + else + ap = &buffer[strlen (buffer) - 1]; + while (ap >= buffer) + if (isspace (*ap)) + *ap = '\0'; + else + break; + for (cp = buffer; isspace (*cp); cp++) + continue; + if (*cp == '\0' || *cp == '#') + continue; + for (ap = cp; *ap; ap++) + if (isspace (*ap) || *ap == ':') { + *ap++ = '\0'; + while (isspace (*ap)) + ap++; + break; + } + for (bp = binds; bp -> keyword; bp++) + if (strcmp (bp -> keyword, cp) == 0) + break; + if (bp -> keyword == NULL) + adios (NULLCP, "unknown option %s in %s", cp, config); + else + if (*(bp -> value) == NULL || !(bp -> flags & BD_ADD)) + *(bp -> value) = strdup (ap); + else + *(bp -> value) = stradd (ap, stradd (" ", *(bp -> value))); + } + + (void) fclose (fp); + +/* */ + + if (binpath == NULL) + adios (NULLCP, "bin must be specified in %s", config); + trim (binpath); + + if (strcmp (bboards, "on") && strcmp (bboards, "off") && + strcmp (bboards, "pop") && strcmp (bboards, "nntp")) + adios (NULLCP, "bboards should be %s not %s", + "either \"on\", \"off\", \"pop\" or \"nntp\"", bboards); + if (strcmp (bboards, "off") == 0 && strcmp (bbdelivery, "off")) + adios (NULLCP, + "you cannot have \"bbdelivery\" \"%s\" with \"bboards\" \"%s\"", + bbdelivery, bboards); + if (bbhome == NULL) + adios (NULLCP, "bbhome must be specified in %s", config); + trim (bbhome); + + if (strcmp (debug, "on") && strcmp (debug, "off")) + adios (NULLCP, "debug should be either \"on\" or \"off\", not %s", + debug); + + if (etcpath == NULL) + adios (NULLCP, "etc must be specified in %s", config); + trim (etcpath); + + if (strcmp (mailgroup, "off")) /* if not "off" */ + add_option ("MAILGROUP"); + if (mailpath == NULL) + adios (NULLCP, "mail must be specified in %s", config); + trim (mailpath); + if (*mailpath == '/') + maildir = mailpath; + else + mailfile = mailpath; + + if (cp = index (manuals, '/')) { /* "standard/cat" */ + *cp++ = 0; + mancat = cp; + if (strcmp (mancat, "cat")) + adios (NULLCP,"invalid manuals setting: %s/%s",manuals, mancat); + } + if (strcmp (manuals, "standard") + && strcmp (manuals, "bsd44") + && strcmp (manuals, "local") + && strcmp (manuals, "new") + && strcmp (manuals, "old") + && strcmp (manuals, "gen") + && strcmp (manuals, "none")) + adios (NULLCP,"invalid manuals setting: %s",manuals); + + if (mts == NULL) + adios (NULLCP, "mts must be specified in %s", config); + for (i = 0; mtsopts[i].mtskey; i++) + if (strcmp (mts, mtsopts[i].mtskey) == 0) + break; + if ((mtsnum = mtsopts[i].code) == unknown) + adios (NULLCP, "invalid mts setting: %s", mts); + add_option (mtsopts[i].optval); + smtp = mtsopts[i].mtsflags & DOSMTP; + if (mtsopts[i].mtsflags & NOMF) + mf = "off"; /* hack... */ + + if (strcmp (pop, "on") && strcmp (pop, "off")) + adios (NULLCP, "pop should be either \"on\" or \"off\", not %s", pop); + if (strcmp (pop, "on") == 0) + add_option ("POP"); + + if (strcmp (bboards, "pop") == 0) { + add_option ("BPOP"); + if (strcmp (pop, "on")) + adios (NULLCP, "bboards \"pop\" requires pop \"on\""); + } + else if (strcmp (bboards, "nntp") == 0) { + add_option ("BPOP");/* used by msh.c & bbc.c, but see also pshsbr.c */ + add_option ("NNTP"); + if (mpop) + adios (NULLCP, + "bboards \"nntp\" is incompatible with \"options MPOP\""); + } + + if (strcmp (mf, "on") && strcmp (mf, "off")) + adios (NULLCP, "mf should be either \"on\" or \"off\", not %s", mf); + if (strcmp (mf, "on") == 0) + add_option ("MF"); + + if (sprntf && strcmp (sprntf, "char *")) {/* this defaults to "char *" */ + if (strcmp (sprntf, "int")) + adios (NULLCP, + "sprintf should be either \"int\" or \"char *\", not %s", + sprntf); + add_option ("SPRINTFTYPE=int"); + } + + if (strcmp (sharedlib, "on") && strcmp (sharedlib, "off") + && strcmp (sharedlib, "sun4") && strcmp (sharedlib, "sys5") + && strcmp (sharedlib, "secure")) + adios (NULLCP, + "sharedlib should be either \"sun4\", \"sys5\", or \"off\", not %s", + sharedlib); + + (void) sprintf(buffer, "TYPESIG=%s", signl); + add_option (buffer); + +/* loop over options string and add -D ccoptions */ + + begin_myopt (); + if (cp = options) { + for (ap = cp; *ap; ap++) + if (isspace (*ap)) + *ap = ' '; + options = NULL; + for (ap = cp; dp = index (ap, ' '); ap = dp) { + *dp++ = '\0'; + add_myopt (ap); + (void) sprintf (buffer, "%s-D%s", options ? " " : "", ap); + ap = buffer; + options = stradd (ap, options); + while (isspace (*dp)) + dp++; + } + if (*ap) { + add_myopt (ap); + (void) sprintf (buffer, "%s-D%s", options ? " " : "", ap); + ap = buffer; + options = stradd (ap, options); + } + free (cp); + } + end_myopt (); + if (strcmp (bboards, "nntp") == 0 && mpop) + adios (NULLCP, + "bboards \"nntp\" is incompatible with \"options MPOP\""); +} + +/* */ + +static add_option (s) +char *s; +{ + options = options ? stradd (s, stradd (" ", options)) : strdup (s); +} + + +begin_myopt () { + myopts = strdup ("char *options[] = {"); +} + + +add_myopt (s) +char *s; +{ + int len; + char *bp, + buffer[BUFSIZ]; + struct copt *op; + static int nameoutput = 0; + static int linepos = 0; + static int outputlinelen = 72; + + for (op = copts; op->c_name; op++) + if (!strncmp (op->c_name,s,strlen(op->c_name))) { + op->c_value = 1; + break; + } + + if (strcmp (s, "MPOP") == 0) + mpop = 1; + if (smtp && strcmp (s, "BERK") == 0) { + fprintf (stderr, "\"options BERK\" overriding smtp suffix...\n"); + smtp = 0; + } + if (!nameoutput) { + printf ("%s: ", bp = "options"); + linepos += (nameoutput = strlen (bp) + 2); + } + len = strlen (s); + if (linepos != nameoutput) + if (len + linepos + 3 > outputlinelen) + printf ("\n%*s", linepos = nameoutput, ""); + else + printf (" "), linepos++; + printf ("[%s]", s); + linepos += len + 2; + (void) fflush (stdout); + + bp = buffer; + *bp++ = '"'; + while (*s) { + if (*s == '"') + *bp++ = QUOTE, *bp++ = QUOTE; + *bp++ = *s++; + } + (void) strcpy (bp, "\", "); + insopt (buffer); +} + + +end_myopt () { + printf ("\n"); + (void) fflush (stdout); + mkopts(); + myopts = stradd ("NULL};", myopts); +} + +/* */ + +static trim (s) +char *s; +{ + char *p; + + if (s == NULL || (p = rindex (s, '/')) == NULL) + return; + if (*++p == '\0') + *--p = '\0'; +} + + +static char *tail (s) +char *s; +{ + char *p; + + if (p = rindex (s, '/')) + p++; + return ((p == NULL || *p == '\0') ? s : p); +} + +/* */ + +static char *stradd (s1, s2) +char *s1, + *s2; +{ + char *p; + + if (s1 == NULL || *s1 == '\0') + return s2; + if (s2 == NULL) + return strdup (s1); + if ((p = malloc ((unsigned) (strlen (s1) + strlen (s2) + 2))) == NULL) + adios (NULLCP, "insufficient memory"); + + (void) sprintf (p, "%s%s", s2, s1); + if (s2) + free (s2); + return p; +} + + +static char *strdup (s) +char *s; +{ + char *p; + + if ((p = malloc ((unsigned) (strlen (s) + 1))) == NULL) + adios (NULLCP, "insufficient memory"); + + (void) strcpy (p, s); + return p; +} + +/* */ + +#ifdef notdef +/* these used to be for SYS5 machines, but now this is compiled + * with -DSYS5 which redefines the SYS5 str[r]chr names to [r]index. + */ +static char *index (s, c) +char *s, + c; +{ + char i; + + while (i = *s++) + if (i == c) + return (s - 1); + + return NULL; +} + + +static char *rindex (s, c) +char *s, + c; +{ + char i, + *t; + + t = NULL; + while (i = *s++) + if (i == c) + t = s - 1; + + return t; +} +#endif /* notdef */ + +/* */ + +/* VARARGS */ + +adios (what, fmt, a, b, c) +char *what, + *fmt, + *a, + *b, + *c; +{ + (void) fflush (stdout); + + fprintf (stderr, "%s: ", myname); + fprintf (stderr, fmt, a, b, c); + if (what) { + (void) fputc (' ', stderr); + perror (what); + } + else + (void) fputc ('\n', stderr); + + exit (1); +} + +/* quick and dirty ordering of options for readability */ + +struct opt { + char *s; + struct opt *n; +}; + +static struct opt *optp = (struct opt *)NULL; + +static void +insopt(s) +char *s; /* string for sorting */ +{ + struct opt *p, + *np, + *lp = (struct opt *)NULL; + + if ((np = (struct opt *) malloc ((unsigned) sizeof (struct opt))) == + (struct opt *)NULL) + adios (NULL, "unable to malloc opt"); + np -> s = strdup(s); + np -> n = (struct opt *)NULL; + + for (p = optp; p; lp = p, p = p -> n) { + if (strcmp (p->s, s) > 0) + break; + } + if (p) + np -> n = p; + if (lp) + lp -> n = np; + else + optp = np; +} + +static void +mkopts() +{ + struct opt *p; + + for (p = optp; p; p = p -> n) + myopts = stradd (p->s, myopts); +} diff --git a/docs/historical/mh-6.8.5/conf/mhdoc b/docs/historical/mh-6.8.5/conf/mhdoc new file mode 100755 index 0000000..025435d --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/mhdoc @@ -0,0 +1,15 @@ +: run this script through /bin/sh +: '@(#)$Id: mhdoc,v 1.3 90/04/08 15:04:21 sources Exp $' + +echo grinding... + +sed -f doc/config.sed < doc/tmac.h > ../doc/tmac.h +sed -f doc/config.sed < doc/tmac.hdr > ../doc/tmac.me +sed -f doc/config.sed < doc/me2man.sed > ../doc/me2man.sed + +for f in doc/*.rf +do + sed -f doc/config.sed < $f > ../doc/`basename $f .rf`.me +done + +exit 0 diff --git a/docs/historical/mh-6.8.5/conf/tailor/RCS/uci,v b/docs/historical/mh-6.8.5/conf/tailor/RCS/uci,v new file mode 100644 index 0000000..7880db0 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/RCS/uci,v @@ -0,0 +1,72 @@ +head 2.1; +branch ; +access ; +symbols ; +locks ; strict; +comment @@; + + +2.1 +date 90.04.06.09.51.39; author sources; state Exp; +branches ; +next 2.0; + +2.0 +date 89.11.17.15.56.53; author sources; state Exp; +branches ; +next 1.1; + +1.1 +date 89.11.17.15.44.23; author sources; state Exp; +branches ; +next ; + + +desc +@@ + + +2.1 +log +@*** empty log message *** +@ +text +@mmdfldir: @@(MHDROPATH) +mmdflfil: @@(MHDROPFIL) +uucpldir: /usr/spool/mail +uucplfil: +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +mmailid: 0 +umincproc: +lockldir: + +hostable: @@(MHETCPATH)/hosts + +bbdomain: UCI +systemname: paris.ics.uci.edu + +nntphost: paris.ics.uci.edu + +servers: paris.ics.uci.edu ics.uci.edu \01localnet +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d16 1 +a16 1 +nntpbbhost: paris.ics.uci.edu +@ + + +1.1 +log +@Initial revision +@ +text +@d14 5 +@ diff --git a/docs/historical/mh-6.8.5/conf/tailor/bsd44.berkeley.edu b/docs/historical/mh-6.8.5/conf/tailor/bsd44.berkeley.edu new file mode 100644 index 0000000..94df72a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/bsd44.berkeley.edu @@ -0,0 +1,6 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +hostable: @(MHETCPATH)/hosts +servers: localhost \01localnet +sendmail: /usr/sbin/sendmail +lockstyle: 0 diff --git a/docs/historical/mh-6.8.5/conf/tailor/clcs.com.au b/docs/historical/mh-6.8.5/conf/tailor/clcs.com.au new file mode 100644 index 0000000..c2380ae --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/clcs.com.au @@ -0,0 +1,11 @@ +mmdfldir: /var/mail +mmdflfil: +hostable: /usr/local/lib/mh/hosts +sendmail: /usr/ucblib/sendmail +okhosts: /usr/local/lib/mh/Rmail.OKHosts +okdests: /usr/local/lib/mh/Rmail.OKDests + +systemname: mars +localname: mars +servers: mars \01localnet + diff --git a/docs/historical/mh-6.8.5/conf/tailor/dbc b/docs/historical/mh-6.8.5/conf/tailor/dbc new file mode 100644 index 0000000..8b32a41 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/dbc @@ -0,0 +1,4 @@ +mmdfldir: +mmdflfil: .maildrop +hostable: /usr/local/lib/mh/hosts +servers: localhost diff --git a/docs/historical/mh-6.8.5/conf/tailor/default b/docs/historical/mh-6.8.5/conf/tailor/default new file mode 100644 index 0000000..912a613 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/default @@ -0,0 +1,4 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +hostable: @(MHETCPATH)/hosts +servers: localhost \01localnet diff --git a/docs/historical/mh-6.8.5/conf/tailor/hplpm.hpl.hp.com b/docs/historical/mh-6.8.5/conf/tailor/hplpm.hpl.hp.com new file mode 100644 index 0000000..10b9763 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/hplpm.hpl.hp.com @@ -0,0 +1,9 @@ +mmdfldir: /usr/mail +mmdflfil: +# If you have a cluster, put the name of the root server in the line below +# servers: +# If you have a cluster, and make this file a CDF, put your hostname here +# Don't do it if you want "address hiding"; leaving localname blank will +# let outgoing mail be user@server. +localname: +sendmail: /usr/lib/sendmail diff --git a/docs/historical/mh-6.8.5/conf/tailor/mhmts b/docs/historical/mh-6.8.5/conf/tailor/mhmts new file mode 100644 index 0000000..077c050 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/mhmts @@ -0,0 +1,16 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +uucpldir: /usr/spool/mail +uucplfil: +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +mmailid: 0 +umincproc: +lockldir: + +mailqdir: /usr/spool/netmail +tmailqdir: /usr/tmp +overseer: root +mailer: root +okhosts: @(MHETCPATH)/Okhosts +okdests: @(MHETCPATH)/Okdests diff --git a/docs/historical/mh-6.8.5/conf/tailor/mmdf b/docs/historical/mh-6.8.5/conf/tailor/mmdf new file mode 100644 index 0000000..1c152a5 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/mmdf @@ -0,0 +1,9 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +uucpldir: /usr/spool/mail +uucplfil: +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +mmailid: 0 +umincproc: +lockldir: diff --git a/docs/historical/mh-6.8.5/conf/tailor/ncr-sys5r4 b/docs/historical/mh-6.8.5/conf/tailor/ncr-sys5r4 new file mode 100644 index 0000000..12a94dc --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/ncr-sys5r4 @@ -0,0 +1,10 @@ +localname: ncrtest.ncr.com +systemname: ncrtest +mmdfldir: +mmdflfil: .mail +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +hostable: /usr/local/lib/mh/hosts +servers: localhost \01localnet +lockldir: /usr/mmdf/log/locks +lockstyle: 2 diff --git a/docs/historical/mh-6.8.5/conf/tailor/paris.ics.uci.edu b/docs/historical/mh-6.8.5/conf/tailor/paris.ics.uci.edu new file mode 100644 index 0000000..71a6ca9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/paris.ics.uci.edu @@ -0,0 +1,18 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +uucpldir: /usr/spool/mail +uucplfil: +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +mmailid: 0 +umincproc: +lockldir: + +hostable: @(MHETCPATH)/hosts + +bbdomain: UCI +systemname: paris.ics.uci.edu + +nntphost: paris.ics.uci.edu + +servers: paris.ics.uci.edu ics.uci.edu \01localnet diff --git a/docs/historical/mh-6.8.5/conf/tailor/pop b/docs/historical/mh-6.8.5/conf/tailor/pop new file mode 100644 index 0000000..2bdae44 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/pop @@ -0,0 +1,6 @@ +localname: name-of-pop-service-host +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +hostable: @(MHETCPATH)/hosts +servers: name-of-smtp-service-host name-of-alternate-host localhost +pophost: name-of-pop-service-host diff --git a/docs/historical/mh-6.8.5/conf/tailor/risci.tn.cornell.edu b/docs/historical/mh-6.8.5/conf/tailor/risci.tn.cornell.edu new file mode 100644 index 0000000..6eb20a6 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/risci.tn.cornell.edu @@ -0,0 +1,4 @@ +mmdfldir: /usr/spool/mail +mmdflfil: +hostable: /usr/local/lib/mh/hosts +servers: localhost chumley devvax tcgould diff --git a/docs/historical/mh-6.8.5/conf/tailor/rpi.edu b/docs/historical/mh-6.8.5/conf/tailor/rpi.edu new file mode 100644 index 0000000..e021707 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/rpi.edu @@ -0,0 +1,9 @@ +everyone: 65334 +localname: rpi.edu +lockstyle: 0 +lockldir: +mmdfldir: /usr/spool/mail +mmdflfil: +hostable: /etc/hosts +servers: mail.its.rpi.edu mail1.its.rpi.edu rpi.edu \01rpi.edu +pophost: mail.its.rpi.edu diff --git a/docs/historical/mh-6.8.5/conf/tailor/sendmts b/docs/historical/mh-6.8.5/conf/tailor/sendmts new file mode 100644 index 0000000..c5dd52a --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/sendmts @@ -0,0 +1,12 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +uucpldir: /usr/spool/mail +uucplfil: +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +mmailid: 0 +umincproc: +lockldir: + +hostable: @(MHETCPATH)/hosts +sendmail: /usr/lib/sendmail diff --git a/docs/historical/mh-6.8.5/conf/tailor/uci b/docs/historical/mh-6.8.5/conf/tailor/uci new file mode 100644 index 0000000..71a6ca9 --- /dev/null +++ b/docs/historical/mh-6.8.5/conf/tailor/uci @@ -0,0 +1,18 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +uucpldir: /usr/spool/mail +uucplfil: +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +mmailid: 0 +umincproc: +lockldir: + +hostable: @(MHETCPATH)/hosts + +bbdomain: UCI +systemname: paris.ics.uci.edu + +nntphost: paris.ics.uci.edu + +servers: paris.ics.uci.edu ics.uci.edu \01localnet diff --git a/docs/historical/mh-6.8.5/config/Makefile b/docs/historical/mh-6.8.5/config/Makefile new file mode 100644 index 0000000..45b19ba --- /dev/null +++ b/docs/historical/mh-6.8.5/config/Makefile @@ -0,0 +1,83 @@ +############################################################################## +# Instructions to Make, for compilation of MH modules +# +# This file is automatically generated. Do not edit! +# @(#)$Id: config,v 2.8 1992/02/05 21:52:46 jromine Exp $ +############################################################################## + +OPTIONS = -DSYS5 -DSVR4 -DFCNTL -DRENAME -DVSPRINTF -DATTVIBUG -DDBMPWD -DDUMB -DMORE='"/usr/bin/more"' -DMSGPROT='"0600"' -DMSGID -DRPATHS -DSOCKETS -DFOLDPROT='"0711"' -DSHADOW -DSYS5DIR -DMHRC -DMHE -DMIME -DSENDMTS -DSMTP -DSPRINTFTYPE=int -DTYPESIG=void -O -g +LDOPTIONS= -s + +CC = cc +CFLAGS = $(OPTIONS) +LDFLAGS = $(LDOPTIONS) +LIBES = +LINT = lint +LFLAGS = -bhu $(OPTIONS) +LLIBS = + + +############################################################################## +# Generate object file for MH configuration +############################################################################## + +CFILES = config.c version.c +OFILES = config.o version.o + +all: $(OFILES) + +lint:; $(LINT) $(LFLAGS) $(CFILES) $(LLIBS) + +version version.c: true + @/bin/sh version.sh 6.8.4 + +true:; + +############################################################################## +# Miscellaneous tasks +############################################################################## + +unconfig: distribution + -rm -f Makefile + +distribution: clean + -rm -f config.c version.c version + +clean: unclean + -rm -f *.o + +unclean:; -rm -f _* :* core eddep makedep + + +############################################################################## +# Dependencies +############################################################################## + +MODULES = $(CFILES) + +depend:; for m in $(MODULES); do ( \ + i=`basename $$m .c`; \ + echo $$i.o: $$i.c >> makedep; \ + grep '^#[ ]*include' $$i.c | \ + sed -e 's,[^"]*"/\([^"]*\)".*,'$$i'.o: /\1,' \ + -e 's,[^"]*"\([^"]*\)".*,'$$i'.o: \1,' \ + -e 's,[^<]*<\(.*\)>.*,#'$$i'.o: /usr/include/\1,' \ + >> makedep \ + ); done + echo '/^# DO NOT DELETE THIS LINE/+2,$$d' > eddep + echo '$$r makedep' >> eddep + echo 'w' >> eddep + cp Makefile _Makefile + ed - Makefile < eddep + rm eddep makedep + echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile + echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile + +# DO NOT DELETE THIS LINE +# DEPENDENCIES START HERE +config.o: config.c +config.o: ../h/mh.h +#config.o: /usr/include/pwd.h +#config.o: /usr/include/stdio.h +# DEPENDENCIES MUST END AT END OF FILE +# IF YOU PUT STUFF HERE IT WILL GO AWAY diff --git a/docs/historical/mh-6.8.5/config/RCS/version.sh,v b/docs/historical/mh-6.8.5/config/RCS/version.sh,v new file mode 100644 index 0000000..b1adf60 --- /dev/null +++ b/docs/historical/mh-6.8.5/config/RCS/version.sh,v @@ -0,0 +1,280 @@ +head 1.9; +access; +symbols; +locks + jromine:1.9; strict; +comment @# @; + + +1.9 +date 92.01.30.22.20.41; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.01.25.01.13.49; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.01.25.01.12.23; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.21.25.14; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.05.15.56.13; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.04.05.15.55.51; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.05.17.07.16; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.26.09.40.57; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.23.17.58.55; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@awk fixes +@ +text +@: run this script through /bin/sh +: '@@(#)$Id: version.sh,v 1.8 1992/01/25 01:13:49 jromine Exp jromine $' +case $# in + 0) set "6.6";; +esac + +OFS="$IFS" IFS=: + +for A in rprompt hostname uname who +do + for D in $PATH + do + if [ ! -f $D/$A ]; then + continue + fi + case $A in + rprompt) LOCAL=`$A %h` + ;; + hostname) LOCAL=`$A` + ;; + uname) LOCAL=`$A -n` + ;; + who) LOCAL=`$A am i | sed -e 's%^\(.*\)!.*$%\1%'` + ;; + esac + break + done + if [ "x$LOCAL" != x ]; then + break + fi +done + +IFS=" " +Patch="../Patchlevel" + +if [ ! -r version ]; then echo "0" > version; fi +if [ ! -r ${Patch} ]; then Patch="" ; fi + +rm -f version.c + +cat version ${Patch} |\ +awk -F. ' +BEGIN { split ("'"${1}"'", ver, ".");\ + major = ver[1]; minor = ver[2]; patch = ver[3]} \ +NR == 1 { local = $(NF) } ;\ +NR == 2 { patch = $(NF) } ;\ +END { local++;\ + if (patch > 0) {\ + printf "char *version = \"@@(#)MH %s.%s.%s #%d[UCI] ", \ + major, minor, patch, local > "version.c"; \ + printf ".ds MH %s.%s.%s #%d[UCI]\n", \ + major, minor, patch, local > "../doc/version.rf"; \ + printf "MH %s.%s.%s #%d[UCI]\n", major, minor, patch, local ;\ + } else {\ + printf "char *version = \"@@(#)MH %s.%s #%d[UCI] ", \ + major, minor, local > "version.c"; \ + printf ".ds MH %s.%s #%d[UCI]\n", \ + major, minor, local > "../doc/version.rf"; \ + printf "MH %s.%s #%d[UCI]\n", major, minor, local ;\ + }\ + printf "%s.%s.%s.%d\n", major, minor, patch, local > "_version";\ +}' && mv _version version +echo '('$LOCAL') of '`date`'";' >> version.c +@ + + +1.8 +log +@typo +@ +text +@d2 1 +a2 1 +: '@@(#)$Id: version.sh,v 1.7 1992/01/25 01:12:23 jromine Exp jromine $' +d44 3 +a46 3 + major = ver[1]; minor = ver[2]; patch = ver[3]}\ +NR == 1 { local = $(NF) }\ +NR == 2 { patch = $(NF) }\ +@ + + +1.7 +log +@add @@(#) to version string +@ +text +@d2 1 +a2 1 +: '@@(#)$Id: version.sh,v 1.6 1990/04/05 21:25:14 sources Exp jromine $' +d49 1 +a49 1 + printf "char *version = \"MH %s.%s.%s #%d[UCI] ", \ +@ + + +1.6 +log +@update to take argument +@ +text +@d2 1 +a2 1 +: '@@(#)$Id: version.sh,v 1.5 90/04/05 15:56:13 sources Exp Locker: sources $' +d55 1 +a55 1 + printf "char *version = \"MH %s.%s #%d[UCI] ", \ +@ + + +1.5 +log +@Id +@ +text +@d2 4 +a5 1 +: '@@(#)$Id:$' +d36 1 +a36 1 +if [ ! -r version ]; then echo "6.6" > version; fi +d43 3 +a45 1 +NR == 1 { major = $1; minor = $2; patch = $3; local = $4 + 1}\ +d47 2 +a48 1 +END { if (patch > 0) {\ +@ + + +1.4 +log +@checkpoint +@ +text +@d2 1 +@ + + +1.3 +log +@checkpoint +@ +text +@d40 1 +a40 1 +NR == 2 { n=split($0,a," "); patch = a[n] }\ +d42 1 +a42 1 + printf "char *version = \"MH %d.%d.%d #%d[UCI] ", \ +d44 1 +a44 1 + printf ".ds MH %d.%d.%d #%d[UCI]\n", \ +d46 1 +a46 1 + printf "MH %d.%d.%d #%d[UCI]\n", major, minor, patch, local ;\ +d48 1 +a48 1 + printf "char *version = \"MH %d.%d #%d[UCI] ", \ +d50 1 +a50 1 + printf ".ds MH %d.%d #%d[UCI]\n", \ +d52 1 +a52 1 + printf "MH %d.%d #%d[UCI]\n", major, minor, local ;\ +d54 1 +a54 1 + printf "%d.%d.%d.%d\n", major, minor, patch, local > "_version";\ +@ + + +1.2 +log +@*** empty log message *** +@ +text +@d30 1 +a30 1 +VERS="../Version" +d32 2 +a33 1 +if [ ! -r ${VERS} ]; then echo "6.6" > ${VERS} ; fi +d37 1 +a37 1 +cat ${VERS} |\ +d40 1 +a40 1 +NR == 2 { patch = $1 }\ +d55 1 +a55 1 +}' && mv _version ${VERS} +@ + + +1.1 +log +@Initial revision +@ +text +@d29 2 +a30 1 +IFS= +d32 2 +a33 4 +if [ ! -r version.major ]; then echo 6 > version.major; fi +if [ ! -r version.minor ]; then echo 2 > version.minor; fi +if [ ! -r version.patch ]; then echo 0 > version.patch; fi +if [ ! -r version.local ]; then echo 0 > version.local; fi +d36 4 +a39 3 +echo `cat version.major` `cat version.minor` \ + `cat version.patch` `cat version.local` | \ +awk ' { major = $1; minor = $2; patch = $3; local = $4 + 1}\ +d53 2 +a54 1 + printf "%d\n", local > "version.local";}' +@ diff --git a/docs/historical/mh-6.8.5/config/config.c b/docs/historical/mh-6.8.5/config/config.c new file mode 100644 index 0000000..e5895de --- /dev/null +++ b/docs/historical/mh-6.8.5/config/config.c @@ -0,0 +1,369 @@ +/* config.c - master MH configuration file */ +#ifndef lint +static char ident[] = "@(#)$Id: config.c,v 1.11 1993/09/01 22:29:10 jromine Exp $"; +#endif /* lint */ + +/* This file is automatically generated. Do not edit! */ + +/* LINTLIBRARY */ + +#include "../h/mh.h" +#ifdef MHRC +#include +#endif /* MHRC */ +#include + + +#if defined(__STDC__) +#define binpath(file) "/opt/mh-6.8.5/bin/"#file +#define etcpath(file) "/opt/mh-6.8.5/lib/"#file +#else +#define binpath(file) "/opt/mh-6.8.5/bin/file" +#define etcpath(file) "/opt/mh-6.8.5/lib/file" +#endif + +static char Config[] = "@(#)Config: MH"; + +char *options[] = {"ATTVIBUG", "DBMPWD", "DUMB", "FCNTL", "FOLDPROT='\"0711\"'", "MHE", "MHRC", "MIME", "MORE='\"/usr/bin/more\"'", "MSGID", "MSGPROT='\"0600\"'", "RENAME", "RPATHS", "SENDMTS", "SHADOW", "SMTP", "SOCKETS", "SPRINTFTYPE=int", "SVR4", "SYS5", "SYS5DIR", "TYPESIG=void", "VSPRINTF", NULL}; + + +#ifndef __STDC__ +#ifdef MHRC +#ifdef SYS5 +struct passwd *getpwnam (); +#endif /* SYS5 */ +#endif /* MHRC */ +#endif + +/* */ + +static char lpath[BUFSIZ]; + +char *libpath (file) +char *file; +{ + char *cp; +#ifdef MHRC + char *pp; + struct passwd *pw; +#endif /* MHRC */ + +#ifdef MHRC + m_getdefs (); +#endif /* MHRC */ + + switch (*file) { + case '/': + return file; + +#ifdef MHRC + case '~': + if (cp = index (pp = file + 1, '/')) + *cp++ = '\0'; + if (*pp == '\0') + pp = mypath; + else + if (pw = getpwnam (pp)) + pp = pw -> pw_dir; + else { + if (cp) + *--cp = '/'; + goto try_it; + } + + (void) sprintf (lpath, "%s/%s", pp, cp ? cp : ""); + if (cp) + *--cp = '/'; + + if (access (lpath, 04) != NOTOK) + return lpath; /* else fall */ + try_it: ; +#endif /* MHRC */ + + default: + if (access ((cp = m_mailpath (file)), 04) != NOTOK) + return cp; + } + + (void) sprintf (lpath, etcpath (%s), file); + return (access (lpath, 04) != NOTOK ? lpath : file); +} + +/* */ + +/* + * Standard yes/no switches structure + */ + +struct swit anoyes[] = { + "no", 0, + "yes", 0, + NULL, 0 +}; + +/* */ + +/* + * MH constants + */ + +char *components = "components"; +char *current = "cur"; +char *defalt = "inbox"; +char *digestcomps = "digestcomps"; +char *distcomps = "distcomps"; +char *draft = "draft"; +char *forwcomps = "forwcomps"; +char *inbox = "inbox"; +char *mh_defaults = etcpath (mh.profile); +char *mh_profile = ".mh_profile"; +char *mhlformat = "mhl.format"; +char *mhlforward = "mhl.forward"; +char *nsequence = "Sequence-Negation"; +char *pfolder = "Current-Folder"; +char *psequence = "Previous-Sequence"; +char *rcvdistcomps = "rcvdistcomps"; +char *replcomps = "replcomps"; +char *usequence = "Unseen-Sequence"; +char *mhlibdir = "/opt/mh-6.8.5/lib"; /* NB: this will change */ + + +/* + * MH not-so constants + */ + +char *context = "context"; +#ifndef NOMHSEQ +char *mh_seq = ".mh_sequences"; +#else /* NOMHSEQ */ +char *mh_seq = NULL; +#endif /* NOMHSEQ */ + + +/* + * MH globals + */ + +char ctxflags; /* status of user's context */ + +char *invo_name; /* pgm invocation name */ +char *mypath; /* user's $HOME */ +char *defpath; /* pathname of user's profile */ +char *ctxpath; /* pathname of user's context */ + +struct node *m_defs; /* profile/context structure */ + +/* */ + +/* + * MH processes + */ + + +/* + * mhl runs this program as a visual-end. + */ + +char *faceproc = NULL; + + +/* + * This program is usually called directly by users, but it is + * also invoked by the post program to process an "fcc". + */ + +char *fileproc = binpath (refile); + + +/* + * This program is called to incorporate messages into a folder. + */ + +char *incproc = binpath (inc); + + +/* + * When a user runs an MH program for the first time, this program + * is called to create his MH profile, and mail directory. + */ + +char *installproc = etcpath (install-mh); + + +/* + * This is the program invoked by a "list" response to "What now?" + * whereas, showproc is the program invoked by show, next, prev. + */ + +#ifndef MORE +char *lproc = "/usr/ucb/more"; +#else /* MORE */ +char *lproc = MORE; +#endif /* MORE */ + + +/* + * This is the path for the Bell equivalent mail program. + */ + +char *mailproc = binpath (mhmail); + + +/* + * mhl runs this program as a front-end. + */ + +#ifndef MORE +char *moreproc = "/usr/ucb/more"; +#else /* MORE */ +char *moreproc = MORE; +#endif /* MORE */ + + +/* + * This program is mhl - the nifty message lister + */ + +char *mhlproc = etcpath (mhl); + + +/* + * This is the super handy BBoard reading program, which is really just the MH + * shell program + */ + +char *mshproc = binpath (msh); + + +/* + * This program is called to pack a folder. + */ + +char *packproc = binpath (packf); + + +/* + * This is the delivery program called through send to + * actually deliver mail to users. This is the interface to + * the MTS. + */ + +#if BERK && SENDMTS && !SMTP +char *postproc = etcpath (spost); +#else +char *postproc = etcpath (post); +#endif /* BERK */ + + +/* + * This program is called to remove a folder. + */ + +char *rmfproc = binpath (rmf); + + +/* + * This program is called to remove a message by rmm or refile -nolink. + * It's usually empty, which means to rename the file to a backup name. + */ + +char *rmmproc = NULL; + + +/* + * This program is usually called by the user's whatnowproc, but it + * may also be called directly to send a message previously composed. + */ + +char *sendproc = binpath (send); + + +/* + * This program is called to list messages by the show program. + * By setting showproc to mhl, the user can run mhl instead. + */ + +#ifndef MORE +char *showproc = "/usr/ucb/more"; +#else /* MORE */ +char *showproc = MORE; +#endif /* MORE */ + + +/* + * This program is called under stand-alone MH to deliver a message to + * a local user. Under other MTS's it can be used to emulate a + * MMDF-II .maildelivery mechanism. + */ + +char *slocalproc = etcpath (slocal); + + +/* + * This program is called by vmh as the back-end to the window management + * protocol + */ + +char *vmhproc = binpath (msh); + + +/* + * This program is called after comp, et. al., have built a draft + */ + +char *whatnowproc = binpath (whatnow); + + +/* + * This program is called to list/validate the addresses in a message. + */ + +char *whomproc = binpath (whom); + +/* */ + +/* + * This is the editor invoked by the various message composition + * programs. It SHOULD be a 2-D scope editor, such as Rand's ned + * or Berkeley's ex, but any editor will work. We use prompter as + * the default, since with -prepend it works just fine with forw. + */ + +char *sysed = "/usr/bin/vi"; + + +/* + * This is the MH alias file. + */ + +char *AliasFile = etcpath (MailAliases); + +/* */ + +/* + * File protections + */ + + +/* + * Folders (directories) are created with this protection (mode) + */ + +#ifndef FOLDPROT +#define FOLDPROT "0711" +#endif /* not FOLDPROT */ + +char *foldprot = FOLDPROT; + + +/* + * Every NEW message will be created with this protection. When a + * message is filed it retains its protection, so this only applies + * to messages coming in through inc. + */ + +#ifndef MSGPROT +#define MSGPROT "0644" +#endif /* not MSGPROT */ + +char *msgprot = MSGPROT; diff --git a/docs/historical/mh-6.8.5/config/version b/docs/historical/mh-6.8.5/config/version new file mode 100644 index 0000000..62695aa --- /dev/null +++ b/docs/historical/mh-6.8.5/config/version @@ -0,0 +1 @@ +6.8.4.17 diff --git a/docs/historical/mh-6.8.5/config/version.c b/docs/historical/mh-6.8.5/config/version.c new file mode 100644 index 0000000..b8a5c42 --- /dev/null +++ b/docs/historical/mh-6.8.5/config/version.c @@ -0,0 +1 @@ +char *version = "@(#)MH 6.8.4 #17[UCI] (octavian) of Mon Aug 11 09:28:06 PDT 1997"; diff --git a/docs/historical/mh-6.8.5/config/version.sh b/docs/historical/mh-6.8.5/config/version.sh new file mode 100644 index 0000000..c88bb73 --- /dev/null +++ b/docs/historical/mh-6.8.5/config/version.sh @@ -0,0 +1,67 @@ +: run this script through /bin/sh +: '@(#)$Id: version.sh,v 1.9 1992/01/30 22:20:41 jromine Exp jromine $' +case $# in + 0) set "6.6";; + 2) flag="$1"; shift;; +esac + +OFS="$IFS" IFS=: + +for A in rprompt hostname uname who +do + for D in $PATH + do + if [ ! -f $D/$A ]; then + continue + fi + case $A in + rprompt) LOCAL=`$A %h` + ;; + hostname) LOCAL=`$A` + ;; + uname) LOCAL=`$A -n` + ;; + who) LOCAL=`$A am i | sed -e 's%^\(.*\)!.*$%\1%'` + ;; + esac + break + done + if [ "x$LOCAL" != x ]; then + break + fi +done + +IFS=" " +Patch="../Patchlevel" + +if [ ! -r version ]; then echo "0" > version; fi +if [ ! -r ${Patch} ]; then Patch="" ; fi + +rm -f version.c + +cat version ${Patch} |\ +awk -F. ' +BEGIN { split ("'"${1}"'", ver, ".");\ + major = ver[1]; minor = ver[2]; patch = ver[3]} \ +NR == 1 { local = $(NF) } ;\ +NR == 2 { patch = $(NF) } ;\ +END { local++;\ + if (patch > 0) {\ + printf "char *version = \"@(#)MH %s.%s.%s #%d[UCI]", \ + major, minor, patch, local > "version.c"; \ + printf ".ds MH %s.%s.%s #%d[UCI]\n", \ + major, minor, patch, local > "../doc/version.rf"; \ + printf "MH %s.%s.%s #%d[UCI]\n", major, minor, patch, local ;\ + } else {\ + printf "char *version = \"@(#)MH %s.%s #%d[UCI] ", \ + major, minor, local > "version.c"; \ + printf ".ds MH %s.%s #%d[UCI]\n", \ + major, minor, local > "../doc/version.rf"; \ + printf "MH %s.%s #%d[UCI]\n", major, minor, local ;\ + }\ + printf "%s.%s.%s.%d\n", major, minor, patch, local > "_version";\ +}' && mv _version version +case x${flag} in + x) echo ' ('$LOCAL') of '`date`'";' >> version.c ;; + x-n) echo '";' >> version.c ;; +esac diff --git a/docs/historical/mh-6.8.5/dist/Makefile b/docs/historical/mh-6.8.5/dist/Makefile new file mode 100644 index 0000000..54f004e --- /dev/null +++ b/docs/historical/mh-6.8.5/dist/Makefile @@ -0,0 +1,145 @@ +############################################################################## +# Instructions to Make, for generation of MH documentation sets +# +# This file is automatically generated. Do not edit! +# @(#)$Id: dist,v 2.7 1992/12/02 22:21:43 jromine Exp $ +############################################################################## + +MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +SHELL = /bin/sh + + +############################################################################## +# Generation Rules +############################################################################## + +.SUFFIXES: .cat .dvi .imp + +.cat.imp:; catimp -i $@ $< + +.dvi.imp:; dviimp -i $@ $< + + +###################################################################### +# Here it is... +###################################################################### + +TARGETS = ../READ-ME \ + mh-gen.cat MH.cat ADMIN.cat mh-changes.cat \ + bboards.dvi beginners.dvi mh4mm.dvi mh6.dvi multifarious.dvi \ + mznet.dvi realwork.dvi trusted.dvi tutorial.dvi + +all:; @cd ../config; make version + @for f in $(TARGETS); do $(MAKE) $$f; done + + +doc: MH.doc ADMIN.doc mh-changes.doc + + +IMPRESS = mh-gen.imp MH.imp ADMIN.imp mh-changes.imp \ + bboards.imp beginners.imp \ + mh4mm.imp mh6.imp multifarious.imp mznet.imp realwork.imp \ + trusted.imp tutorial.imp + +imp:; @for f in $(IMPRESS); do $(MAKE) $$f; done + + +i-all: all true + lpr -t -J MH-gen mh-gen.cat + lpr -t -J MH MH.cat + lpr -t -J ADMIN ADMIN.cat + lpr -t -J MH-CHANGES mh-changes.cat + lpr -d -J BBoards bboards.dvi + lpr -d -J Beginners beginners.dvi + lpr -d -J MH-4-MM mh4mm.dvi + lpr -d -J mh6.5 mh6.dvi + lpr -d -J Multifarious multifarious.dvi + lpr -d -J MZnet mznet.dvi + lpr -d -J Realwork realwork.dvi + lpr -d -J Trusted trusted.dvi + lpr -d -J Tutorial tutorial.dvi + + +true:; + + +############################################################# +# Documentation Set +############################################################# + +ADMIN.cat MH.cat \ +ADMIN.doc MH.doc \ +ADMIN.imp MH.imp: true + cd ../doc; make $@ + cp ../doc/$@ $@ + +../READ-ME: ../conf/mh-gen.8 + nroff -man ../conf/mh-gen.8 > read-me.tmp + mv read-me.tmp $@ + +mh-gen.cat: ../conf/mh-gen.8 + itroff -t -man ../conf/mh-gen.8 > mh-gen.tmp + mv mh-gen.tmp $@ + +mh-changes.cat \ +mh-changes.doc \ +mh-changes.imp: true + cd ../papers/changes; make $@ + cp ../papers/changes/$@ $@ + +bboards.imp \ +bboards.dvi: true + cd ../papers/bboards; make $@ + cp ../papers/bboards/$@ $@ + +beginners.imp \ +beginners.dvi: true + cd ../papers/beginners; make $@ + cp ../papers/beginners/$@ $@ + +mh4mm.imp \ +mh4mm.dvi: true + cd ../papers/mh4mm; make $@ + cp ../papers/mh4mm/$@ $@ + +mh6.imp \ +mh6.dvi: true + cd ../papers/mh6.5; make $@ + cp ../papers/mh6.5/$@ $@ + +multifarious.imp \ +multifarious.dvi: true + cd ../papers/multifarious; make $@ + cp ../papers/multifarious/$@ $@ + +mznet.imp \ +mznet.dvi: true + cd ../papers/mznet; make $@ + cp ../papers/mznet/$@ $@ + +realwork.imp \ +realwork.dvi: true + cd ../papers/realwork; make $@ + cp ../papers/realwork/$@ $@ + +trusted.imp \ +trusted.dvi: true + cd ../papers/trusted; make $@ + cp ../papers/trusted/$@ $@ + +tutorial.imp \ +tutorial.dvi: true + cd ../papers/tutorial; make $@ + cp ../papers/tutorial/$@ $@ + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +distribution: clean ../READ-ME + +unconfig clean: unclean + rm -f *.cat *.dvi *.imp *.doc + +unclean:; rm -f *.tmp _* :* core diff --git a/docs/historical/mh-6.8.5/doc/.null b/docs/historical/mh-6.8.5/doc/.null new file mode 100644 index 0000000..e69de29 diff --git a/docs/historical/mh-6.8.5/doc/ADMIN.me b/docs/historical/mh-6.8.5/doc/ADMIN.me new file mode 100644 index 0000000..792b4e9 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/ADMIN.me @@ -0,0 +1,900 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: ADMIN.rf,v 2.17 1995/12/06 22:42:25 jromine Exp $ +.po +.75i +.de $c \" Major Heading printer +.ce +.b "\\s12\\n+(ch.\\ \\$1\\s0" \" 12 Point Bold Header +.(x + +\ \ \ \\n(ch.\\ \\ \\$1 +.)x +.sp 45p \" 45 point space or about 1/2 inch +.. +\".nr xs .15v \" Put index entries closer together +.(x + +Section +.)x _ +.de $0 \" Sub-Heading macro called AFTER printing the heading +.(x +.sp .3v +.ti .5i +\\$1 +.)x +.. +.de $s \" Macro to print footnote separator +\"\l'2i' \" No line drawn +.if n \ +. sp 1.3 \" But extra space to make up for it. +.. +.fc ^ ~ \" The characters ^ and ~ CANNOT BE USED +\" throughout this document except as field +\" delimiter & pad indicator! +.he ''-%-'' +.ll 32P \" 32 Picas or about 5+1/3 inch Line Length +.if n .ll 72m \" Use 72 ems for nroff +.nr ss 30p \" 30 point space before section titles +.nr fm 5v \" RAND likes bigger than normal [3v] bottom margins +.nr bm 7v \" ditto +.ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out. +.ds << <\\h!-(\\w'<'/2)!< +.ds >> >\\h!-(\\w'>'/2)!> +.ds ** \v'-3p'\s+1*\s0\v'+3p' +.so version.rf +.tp +.(l C +\fIdiscard this page\fR +.sp 4 +The RAND \fIMH\fR +Message Handling +System: +Administrator's Guide +.sp +UCI Version +.sp 2 +\*(td +\*(MH +.)l +.++ C +.+c INTRODUCTION + +.uh "Scope of this document" +.pp +This is the Administrator's Guide to \fIMH\fR. +If you don't maintain an \fIMH\fR system, +don't read this; +the information is entirely too technical. +If you are a maintainer, +then read this guide until you understand it, +follow the advice it gives, +and then forget about the guide. +.pp +Before continuing, I'll point out two facts: +.sp 2 +.(l C +\fIThis document will never contain all the information +you need to maintain MH. +.sp +Furthermore, this document will never contain everything +I know about maintaining MH.\fR +.)l +.sp 2 +\fIMH\fR, +and mailsystems in general, +are more complex than most people realize. +A combination of experience, intuition, and tenacity is required to maintain +\fIMH\fR properly. +This document can provide only guidelines for bringing up an \fIMH\fR system +and maintaining it. +There is a sufficient amount of customization possible that not all events or +problems can be forseen. + +.uh "Summary" +.pp +During \fIMH\fR generation, +you specify several configuration constants to the \fImhconfig\fR program. +These directives take into consideration such issues as hardware and +operating system dependencies in the source code. +They also factor out some major mailsystem administrative decisions +that are likely to be made consistantly at sites with more than one host. +The manual entry \fImh\-gen\fR\0(8) describes all the static configuration +directives. +.pp +However, +when you install \fIMH\fR you may wish to make some site\-specific +or host\-specific changes which aren't hardware or even software related. +Rather, they are administrative decisions. +That's what this guide is for: it describes all of the dynamically tailorable +directives. +.pp +Usually, after installing \fIMH\fR, you'll want to edit the +\fB/opt/mh-6.8.5/lib/mtstailor\fR file. +This file fine-tunes the way \fIMH\fR interacts with the message transport +system (MTS). +Section 2 talks about the MTS interface and MTS tailoring. +.pp +After that, if you're running the UCI BBoards facility, +or the POP facility, +you'll need to know how to maintain those systems. +Sections 3 and 4 talk about these. +.pp +If for some reason +you're not running an MTS that can handle both Internet and \fIUUCP\fR traffic, +you should read\-up on mail filtering in Section 5. +Although this is considered \*(lqold technology\*(rq now, +the mechanisms described in Section 5 were really quite useful when +first introduced way back in 1981. +.pp +Finally, you may want to know how to modify the \fIMH\fR source tree. +Section 6 talks (a little bit) about that. +.pp +The last two sections describe a few hidden features in \fIMH\fR, +and the configuration options that were in effect when this guide was +generated. +.pp +After \fIMH\fR is installed, you should define the address \*(lqBug\-MH\*(rq +to map to either you or the \fIPostMaster\fR at your site. +.pp +In addition, +if you want to tailor the behavior of \fIMH\fR for new users, +you can create and edit the file \fB/opt/mh-6.8.5/lib/mh.profile\fR. +When the \fIinstall-mh\fR program is run for a user, +if this file exists, it will copy it into the user's \&.mh\(ruprofile +file. + +.\" macros for the .me/.man files +.de SC +.he '\\$1(\\$2)'-%-'\\$1(\\$2)' +.bp +.(x +.ti .8i +\\$1 +.)x +.. +.de NA +.b \\s-2NAME\\s0 +.ti .5i +.. +.de SY +.sp +.b \\s-2SYNOPSIS\\s0 +.in 1i +.ti .5i +.na +.. +.de DE +.ad +.sp +.in 0 +.b \\s-2DESCRIPTION\\s0 +.sp +.fi +.in .5i +.. +.de Uh +.ad +.sp +.ti .25i +.b "\\s-2\\$1\\s0" +.sp +.fi +.. +.de Hh +.ad +.sp +.in 0 +.b "\\s-2Helpful Hints\\s0" +.sp +.fi +.in .5i +.. +.de Fi +.(b L +.ti 0 +.b \\s-2Files\\s0 +.ta \w'/opt/mh-6.8.5/lib/ExtraBigFileName 'u +.. +.de Pr +.)b +.(b L F +.ta \w'ExtraBigProfileName 'u +.ti 0 +.b "\\s-2Profile Components\\s0" +.ti .5i +.. +.de Ps +.ti .5i +.. +.de Sa +.)b +.(b L F +.ti 0 +.b "\\s-2See Also\\s0" +.br +.. +.de De +.)b +.(b L +.in .5i +.ti 0 +.b \\s-2Defaults\\s0 +.. +.de Ds +.. +.de Co +.)b +.(b L F +.ti 0 +.b \\s-2Context\\s0 +.br +.. +.de Hi +.)b +.(b L F +.ti 0 +.b \\s-2History\\s0 +.br +.. +.de Bu +.)b +.(b L F +.ti 0 +.b \\s-2Bugs\\s0 +.br +.. +.de En +.)b +.in 0 +.. + +.+c "THE MTS INTERFACE" +.pp +The file \fB/opt/mh-6.8.5/lib/mtstailor\fR customizes +certain host\-specific parameters of \fIMH\fR +related primarily to interactions with the transport system. +The parameters in this file override the compiled\-in defaults given during +\fIMH\fR configuration. +Rather than recompiling \fIMH\fR on each host to make minor customizations, +it is easier simply to modify the \fBmtstailor\fR file. +All hosts at a given site normally use the same \fBmtstailor\fR file, +though this need not be the case. +.pp +It is a good idea to run the \fIconflict\fR\0(8) program each morning +under \fIcron\fR. +The following line usually suffices: + +.ti +.5i +00 05 * * * /opt/mh-6.8.5/lib/conflict -mail PostMaster + +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '[mh.6]'MH.6.8'UCI version' +.po -.50i +.so mh-tailor.me +.so mh-mts.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "BBOARDS" +.pp +The UCI BBoards facility has two aspects: message reading, and +message delivery. The configuration directives applicable to +BBoards are \*(lqbboards: on/off/pop/nntp\*(rq and +\*(lqbbdelivery: on/off\*(rq. +.uh "BBoard Delivery" +.pp +If you enabled BBoards delivery (\*(lqbbdelivery: on\*(rq) +during configuration, +then the initial environment for bboards delivery +was set\-up during installation. +A BBoard called \*(lqsystem\*(rq is established, +which is the BBoard for general discussion. +.pp +To add more BBoards, become the \*(lqbboards\*(rq user, +and edit the \fB/usr/spool/bboards/BBoards\fR file. +The file \fBsupport/bboards/Example\fR is a copy of the +\fB/usr/spool/bboards/BBoards\fR file that we use at UCI. +When you add a BBoard, +you don't have to create the files associated with it, +the BBoards delivery system will do that automatically. +.pp +Private BBoards may be created. +To add the fictitious private BBoard \*(lqhacks\*(rq, +add the appropriate entry to the BBoards file, +create the empty file \fB/usr/spool/bboards/hacks.mbox\fR (or whatever), +change the mode of this file to 0640, +and change the group of the file to be the groupid of the people that you +want to be able to read it. +Also be sure to add the \*(lqbboards\*(rq user to this group +(in \fB/etc/group\fR), +so the archives can be owned correctly. +.pp +By using the special INVIS flag for a BBoard, +special purpose BBoards may be set\-up which are invisible to the \fIMH\fR +user. +For example, +if a site distributes a BBoard both locally to a number of machines and to a +number of distant machines. +It might be useful to have two distribution lists: +one for all machines on the list, and the other for local machines only. +This is actually very simple to do. +For the main list, +put the standard entry of information in the \fB/usr/spool/bboards/BBoards\fR file, +with the complete distribution list. +For the local machines list, +and add a similar entry to the \fB/usr/spool/bboards/BBoards\fR file. +All the fields should be the same except three: +the BBoard name should reflect a local designation (e.g., \*(lql\-hacks\*(rq), +the distribution list should contain only machines at the local site, +and the flags field should contain the INVIS flag. +Since the two entries share the same primary and archive files, +messages sent to either list are read by local users, +while only thoses messages sent to the main list are read by all users. +.pp +Two automatic facilities for dealing with BBoards exist: +automatic archiving and automatic aliasing. +The file \fBsupport/bboards/crontab\fR contains some entries that you +should add to your \fB/usr/lib/crontab\fR file to run the specified programs +at times that are convenient for you. +The \fBbboards.daily\fR file is run once a day and generates an alias file +for \fIMH\fR. +By using this file, users of \fIMH\fR can use, for example, +\*(lqunix\-wizards\*(rq instead of \*(lqunix\-wizards@brl\-vgr\*(rq +when they want to send a message to the \*(lqunix\-wizards\*(rq +discussion group. +This is a major win, since you just have to know the name of the group, +not the address where it's located. +.pp +The \fBbboards.weekly\fR file is run once a week and handles old +messages (those received more than 12 days ago) in the BBoards area. +In short, +those BBoards which are marked for automatic archiving +will have their old messages placed in the \fB/usr/spool/bboards/archive/\fR area, +or have their old messages removed. +Not only does this make BBoards faster to read, +but it conveniently partitions the new messages from the old messages +so you can easily put the old messages on tape and then remove them. +It turns out that this automatic archiving capability is also a major +win. +.pp +At UCI, +our policy is to save archived messages on tape (every two months or so). +We use a program called \fIbbtar\fR to implement our particular policy. +Since some BBoards are private (see above), +we save the archives on two tapes: +one containing the world\-readable archives +(this tape is read-only accessible to all users by calling the operator), +and the other containing the non\-world\-readable ones +(this tape is kept locked\-up somewhere). +.uh "BBoards with the POP" +.pp +If you configured \fIMH\fP with \*(lqbboards: pop\*(rq and \*(lqpop: on\*(rq, +then the \fIMH\fR user is allowed to read BBoards on a server machine +instead of the local host (thus saving disk space). +For completely transparent behavior, +the administrator may set certain variables in the \fBmtstailor\fR file +on the client host. +The variable \*(lqpopbbhost\*(rq indicates the host where BBoards are +kept +(it doesn't have to be the POP service host, +but this host must run both a POP server and the BBoards system). +The variable \*(lqpopbbuser\*(rq indicates the guest account on this host +for BBoards. +This username should not be either the POP user or the BBoards user. +Usually the anonymous FTP user (ftp) is the best choice. +Finally, the variable \*(lqpopbblist\*(rq indicates the name of a file which +contains a list of hosts (one to a line, official host names only) which +should be allowed to use the POP facility to access BBoards via the guest +account. +(If the file is not present, then no check is made.) +.pp +The \*(lqpopbbuser\*(rq variable should be set on both the client and service +host. +The \*(lqpopbbhost\*(rq variable need be set only on the client host +(the value, of course, is the name of the service host). +The \*(lqpopbblist\*(rq variable need be set only on the service host. +.pp +Finally, +on the client host, +if a POP service host is not explicitly given by the user +(i.e., \*(lqpopbbhost\*(rq is implicitly used), +then \fIbbc\fR will explicitly check the local host prior to contacting +the service host. +This allows each POP client host to have a few local BBoards +(e.g., each host could have one called \*(lqsystem\*(rq), +and then have the POP service host used for all the rest +(a site\-wide BBoard might be known as \*(lqgeneral\*(rq). +.uh "BBoards with the NNTP" +.pp +If you configured \fIMH\fP with \*(lqbboards: nntp\*(rq and \*(lqpop: on\*(rq, +then +the \fIMH\fR user is allowed to read the Network News on a +server machine using the standard \fIbbc\fR command. +For completely transparent behavior, +the administrator may set the \*(lqnntphost\*(rq variable in the +\fBmtstailor\fR file to indicate the host where the Network News is kept. +The \*(lqnntphost\*(rq variable should be set only on the client host +Finally, +on the client host, +if an NNTP service host is not explicitly given by the user +(i.e., \*(lqnntphost\*(rq is implicitly used), +then \fIbbc\fR will explicitly check the local host prior to contacting +the service host. +This allows each NNTP client host to have a few local BBoards +(e.g., each host could have one called \*(lqsystem\*(rq), +and then have the NNTP service host used for to read the Network News. +.pp +Reading BBoards via the POP and via the NNTP are mutually exclusive. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '[mh.6]'MH.6.8'UCI version' +.po -.50i +.so bboards5.me +.so bbaka.me +.so bbexp.me +.so bboards8.me +.so bbtar.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "POP" +.pp +For POP (Post Office Protocol) client hosts, +you need to edit the \fB/opt/mh-6.8.5/lib/mtstailor\fR file to know about two +hosts: +the SMTP service host and the POP service host. +Normally, these are the same. +Change the \*(lqlocalname\*(rq field of the \fBmtstailor\fR file +of \fIMH\fR in the file to be the name of the POP service host. +This makes replies to mail generated on the POP client host possible, +since \fIMH\fR will consider use the hostname of the POP service host as the +local hostname for outgoing mail. +Also set the value of \*(lqpophost\*(rq to this value. +This tells \fIinc\fR and \fImsgchk\fR to use POP instead of looking for mail +locally. +Finally, +make sure the value of \*(lqservers\*(rq includes the name of the SMTP +service host. +The recommended value for \*(lqservers\*(rq is: + +.ti +.5i +servers:\ SMTP\-service\-host localhost \\01localnet +.pp +If you want more information on the Post Office Protocol used by \fIMH\fR, +consult the files \fBsupport/pop/rfc1081.txt\fP and +\fBsupport/pop/rfc1082.txt\fP which describe the \fIMH\fP version of +the POP: POP3. +.pp +For POP service hosts, +you need to run a daemon, \fIpopd\fR\0(8). +The daemon should start at multi\-user boot time, +so adding the lines: +.sp +.nf +.in +.5i +if [ \-f /etc/popd ]; then + /etc/popd & echo \-n ' pop' >/dev/console +fi +.in -.5i +.fi +.sp +to the \fB/etc/rc.local\fR file is sufficient. +.pp +The port assigned to the POP3 protocol is \*(lq110\*(rq. +For historical reasons, many sites are using port \*(lq109\*(rq +which is the port assigned to the \*(lqPOP\*(rq (version 1 and 2) protocol. +The configuration option \*(lqPOPSERVICE\*(rq is the name of the +port number that \fIMH\fP POP will try to use, and defaults to the +name \*(lqpop\*(rq. +.pp +To generate \fIMH\fP to use newer assigned port number, +in your \fIMH\fP config file, add: +.sp +.ti +.5i +options POPSERVICE='\*(lqpop3\*(rq' +.sp +And on both the POP client and service hosts, +you need to define the port that the POP service uses. +Add the line: +.sp +.nf +.in +.5i +pop3 110/tcp +.in -.5i +.fi +.sp +to the \fB/etc/services\fR file (if it's not already there). +.pp +There are two ways to administer POP: +In \*(lqnaive\*(rq mode, +each user-id in the \fIpasswd\fR\0(5) file is considered a POP subscriber. +No changes are required for the mailsystem on the POP service host. +However, +this method requires that each POP subscriber have an entry in the password +file. +The POP server will fetch the user's mail from wherever maildrops are kept on +the POP service host. +This means that if maildrops are kept in the user's home directory, +then each POP subscriber must have a home directory. +.pp +In \*(lqsmart\*(rq mode +(enabled via \*(lqDPOP\*(rq being given as a configuration option), +the list of POP subscribers and the list of +login users are completely separate name spaces. +A separate database (simple file similar to the \fIBBoards\fR\0(5) file) +is used to record information about each POP subscriber. +Unfortunately, +the local mailsystem must be changed to reflect this. +This requires two changes (both of which are simple): +First, +the aliasing mechanism is augmented so that POP subscriber addresses +are diverted to a special delivery mechanism. +\fIMH\fR comes with a program, \fIpopaka\fR\0(8), +which generates the additional information to be put in the mailsystem's +alias file. +Second, +a special POP channel (for MMDF-II) or POP mailer (for SendMail) +performs the actual delivery (\fImh.6\fR supplies both). +All it really does is just place the mail in the POP spool area. +.pp +These two different philosophies are not compatible on the same POP service +host: one or the other, but not both may be run. +Clever mailsystem people will note that +the POP mechanism is really a special case of the more general +BBoards mechanism. +.pp +In addition, there is one user-visible difference, +which the administrator controls the availability of. +The difference is whether the POP subscriber must supply a password to the POP +server: +The first method uses the standard ARPA technique of sending a username and a +password. +The appropriate programs (\fIinc\fR, \fImsgchk\fR, and possibly \fIbbc\fR\0) +will prompt the user for this information. +.pp +The second method +(which is enabled via \*(lqRPOP\*(rq being given as a configuration option) +uses the Berkeley UNIX reserved port method for authentication. +This requires that the two or three mentioned above programs be +\fIsetuid\fR to root. +(There are no known holes in any of these programs.) +.pp +To add a POP subscriber, +for the first method, one simply follows the usual procedures for adding a +new user, which eventually results in adding a line to the \fIpasswd\fR\0(5) +file; +for the second method, one must edit the POP database file +(kept in the home directory of the POP user), +and then run the \fIpopaka\fR program. +The output of this program is placed in the aliases file for the transport +system (e.g., \fB/usr/lib/aliases\fR for SendMail). +.pp +Authentication for POP subscribers differs +depending on the two methods. +When the user supplies a password for the POP session: +under the first method, +the contents of the password field for the user's entry in the +\fIpasswd\fR\0(5) is consulted; +under the second method, +the contents of the password field for the subscriber's entry in the +\fIpop\fR\0(5) file is consulted. +(To set this field, the \fIpopwrd\fR\0(8) program is used.) +.pp +If you are allowing RPOP, +under the first method, +the user's \fI\&.rhosts\fR file is consulted; +under the second method, +the contents of the network address field for the subscriber's entry +in the \fIpop\fR\0(5) file is consulted. +.pp +In addition, +a third authentication scheme is available. +When the APOP configuration option is given, +e.g., +.sp +.ti +.5i +options APOP='\*(lq/etc/pop.auth\*(rq' +.sp +In this case, +the server also allows a client to supply authentication +credentials to provide for origin authentication and reply protection, +but which do not involve sending a password in the clear over the network. +A POP authorization DB, +having as its name the value of APOP configuration option, +is used to keep track of this information. +This file is created and manipulated by the \fIpopauth\fR\0(8) program. +Because this file contains secret information, +it must be protected mode 0600 and owned by the super-user. +Hence, +your first step after installing the software is to issue +.sp +.ti +.5i +# popauth -init +.sp +which creates and initalizes the POP authorization DB. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '[mh.6]'MH.6.8'UCI version' +.po -.50i +.so pop5.me +.so pop8.me +.so popaka.me +.so popauth.me +.so popd.me +.so popwrd.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "MAIL FILTERING" +.pp +There was a time when users on a UNIX host might have had two maildrops: +one from \fIMMDF\fR and the other from \fIUUCP\fR. +This was really a bad problem since it prevented using a single +user\-interface on all of your mail. +Furthermore, +if you wanted to send a message to addresses on different mailsystems, +you couldn't send just one message. +To solve all these problems, +the notion of \fImail filtering\fR was developed that allowed sophisticated +munging and relaying between the two pseudo\-domains. +.pp +\fIMH\fR will perform mail filtering, transparently, if given the MF +configuration option. +However, +with the advent of \fISendMail\fR and further maturation of \fIMMDF\fR, +\fIMH\fR doesn't really need to do this anymore, +since these message transport agents handle it. +.pp +The mail\-filtering stuff is too complicated. +It should be simpler, but, protocol translation really \fIis\fR difficult. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '[mh.6]'MH.6.8'UCI version' +.po -.50i +.so mf.me +.so rmail.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "MH HACKING" +.pp +Finally, here's a little information on modifying the \fIMH\fR sources. +A word of advice however: +.sp 2 +.ce +.b \s+4DON'T\s0 +.sp 2 +.lp +If you really want new \fIMH\fR capabilities, +write a shell script instead. +After all, +that's what UNIX is all about, isn't it? +.pp +Here's the organization of the \fIMH\fR source tree. +.sp +.nf +.in +.5i +.ta \w'miscellany/ 'u +\w'sendmail/ 'u +conf/ configurator tree +config/ compiled configuration constants +dist/ distributor +doc/ manual entries +h/ include files +miscellany/ various sundries +mts/ MTS\-specific areas + mh/ standalone delivery + mmdf/ MMDF\-I, MMDF\-II + sendmail/ SendMail, SMTP +papers/ papers about \fIMH\fR +sbr/ subroutines +support/ support programs and files + bboards/ UCI BBoards facility + general/ templates + pop/ POP facility +tma/ Trusted Mail Agent (not present in all distributions) +uip/ programs +zotnet/ MTS\-independent areas + bboards/ UCI BBoards facility + mf/ Mail Filtering + mts/ MTS constants + tws/ date routines +.re +.in -.5i +.fi +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '[mh.6]'MH.6.8'UCI version' +.po -.50i +.so mh-hack.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} + +.+c "HIDDEN FEATURES" +.pp +The capabilities discussed here should not be used on a production basis, +as they are either experimental, are useful for debugging \fIMH\fR, or +are otherwise not recommended. + +.uh "Debug Facilities" +.pp +The \fImark\fR command has a `\-debug' switch which essentially prints out +all the internal \fIMH\fR data structures for the folder you're looking at. +.pp +The \fIpost\fR command has a `\-debug' switch which does everything but +actually post the message for you. +Instead of posting the draft, it sends it to the standard output. +Similarly, +\fIsend\fR has a `\-debug' switch which gets passed to \fIpost\fR. +.pp +Some \fIMH\fR commands look at envariables to determine debug\-mode operation +of certain new facilities. +The current list of envariables is: +.sp +.nf +.in +.5i +.ta \w'MHLPOPDEBUG 'u +^MHFDEBUG~^OVERHEAD facility +^MHLDEBUG~^mhl +^MHPDEBUG~^pick +^MHPOPDEBUG~^POP transactions +^MHVDEBUG~^window management transactions +^MHWDEBUG~^alternate\-mailboxes +.re +.in -.5i +.fi + +.uh "Forwarding Mail" +.pp +The \fIforw\fR and \fImhl\fR commands have two switches, +`\-dashmunging' and `\-nodashmunging' which enable or disable +the prepending of `\-\ ' in forwarded messages. To use +`\-nodashmunging', you must use an \fImhl\fR filter file. + +.uh "Send" +.pp +The \fIsend\fR command has two switches, `\-unique' and `\-nounique', +which are useful to certain individuals who, for obscure reasons, +do not use draft\-folders. +.pp +\*(lqDistribution Carbon Copy\*(rq addresses may be specified in +the \fIDcc:\fR header. +This header is removed before posting the message,and a copy of the message +is distributed to each listed address. +This could be considered a form of Blind +Carbon Copy which is best used for sending to an address which +would never reply (such as an auto\-archiver). + +.uh "Posting Mail" +.pp +If you're running a version of \fIMH\fR which talks directly to an +\fISMTP\fR server (or perhaps an advanced \fIMMDF\fR submit process), +there are lots of interesting switches for your amusement which \fIsend\fR +and \fIpost\fR understand: +.nf +.in +.5i +.ta \w'-server host 'u +^-mail~^Use the \fIMAIL\fR command (default) +^-saml~^Use the \fISAML\fR command +^-send~^Use the \fISEND\fR command +^-soml~^Use the \fISOML\fR command +^-snoop~^Watch the \fISMTP\fR transaction +^-client host~^Claim to be \*(lqhost\*(rq when posting mail +^-server host~^Post mail with \*(lqhost\*(rq +.re +.in -.5i +.fi +.pp +The last switch is to be useful when \fIMH\fR resides on small +workstations (or PC:s) in a network\-\-they can post their outgoing mail with +a local relay, +and reduce the load on the local system. +On POP client hosts, +the `\-server\ host' switch is defaulted appropriately using the SMTP +search\-list mechanism. +The \fIwhom\fR command understands the last three switches. + +.+c "CONFIGURATION OPTIONS" +.pp +This manual was generated with the following configuration options in +effect: +.sp 2 +.hl +.nf +.in +1.25i +.ta \w'BBoards Home Directory 'u +^Generation Date~^\*(td +^Primary Directory~^/opt/mh-6.8.5/bin/ +^Secondary Directory~^/opt/mh-6.8.5/lib/ +^Maildrop Location~^/var/spool/mail/$USER +^Transport System~^SendMail \*(SM +.re +.in -1.5i +.fi +.hl +.\" table of contents +.he '''' +.fo '''' +.bp +.ce +.b \\s12CONTENTS\\s0 +.sp 3 +.xp y +.xp x +.bp +.\" And now the COVER sheet +.po +.325i +.ll 32P +.nf + +.sp 1.5in +.ps 24 +.vs 32 +.ft B +.ce 4 +THE RAND MH +MESSAGE HANDLING +SYSTEM: +ADMINISTRATOR'S GUIDE +.ft R +.sp .8i +.ps 20 +.vs 24 +.ce +UCI Version +.sp 0.7i +.ce 2 +Marshall T. Rose +.sp 0.5i +.ft I +.ce 3 +First Edition: +MH Classic +\s-2(Not to be confused with a well\-known soft drink)\s+2 +.ft R +.vs +.sp 1i +.ps 18 +.vs 22 +.ce 2 +\*(td +\*(MH diff --git a/docs/historical/mh-6.8.5/doc/MH.me b/docs/historical/mh-6.8.5/doc/MH.me new file mode 100644 index 0000000..d4384e5 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/MH.me @@ -0,0 +1,2344 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: MH.rf,v 1.30 1995/12/06 01:27:51 jromine Exp $ +.po +.75i +.de $c \" Major Heading printer +.ce +.b "\\s12\\n+(ch.\\ \\$1\\s0" \" 12 Point Bold Header +.(x + +\ \ \ \\n(ch.\\ \\ \\$1 +.)x +.sp 45p \" 45 point space or about 1/2 inch +.. +\".nr xs .15v \" Put index entries closer together +.(x + +Section +.)x _ +.de $0 \" Sub-Heading macro called AFTER printing the heading +.(x +.sp .3v +.ti .5i +\\$1 +.)x +.. +.de $s \" Macro to print footnote separator +\"\l'2i' \" No line drawn +.if n \ +. sp 1.3 \" But extra space to make up for it. +.. +.fc ^ ~ \" The characters ^ and ~ CANNOT BE USED +\" throughout this document except as field +\" delimiter & pad indicator! +.he ''-%-'' +.ll 32P \" 32 Picas or about 5+1/3 inch Line Length +.if n .ll 72m \" Use 72 ems for nroff +.nr ss 30p \" 30 point space before section titles +.nr fm 5v \" RAND likes bigger than normal [3v] bottom margins +.nr bm 7v \" ditto +.ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out. +.ds << <\\h!-(\\w'<'/2)!< +.ds >> >\\h!-(\\w'>'/2)!> +.ds ** \v'-3p'\s+1*\s0\v'+3p' +.so version.rf +.tp +.(l C +\fIdiscard this page\fR +.sp 4 +The RAND \fIMH\fR +Message Handling System: +User's Manual +.sp +UCI Version +.sp 2 +\*(td +\*(MH +.)l +.++ C +.+c INTRODUCTION +.pp +Although people can travel cross-country in hours and can +reach others by telephone in seconds, communications still depend +heavily upon paper, most of which is distributed through the mails. +.pp +There are several major reasons for this continued dependence on +written documents. +First, a written document may be proofread +and corrected prior to its distribution, giving the author +complete control over his words. +Thus, a written document is +better than a telephone conversation in this respect. +Second, +a carefully written document is far less likely to be +misinterpreted or poorly translated than a phone conversation. +Third, a signature offers reasonable verification of authorship, +which cannot be provided with media such as telegrams. +.pp +However, the need for +.u fast , +accurate, and reproducible document distribution is +obvious. +One solution in widespread use is the telefax. +Another +that is rapidly gaining popularity is electronic mail. +Electronic mail is similar to telefax in that the data to be sent +are digitized, transmitted via phone lines, and +turned back into a document at the receiver. +The advantage of +electronic mail is in its compression factor. +Whereas a telefax +must scan a page in very fine lines and send all of the black and +white information, electronic mail assigns characters fixed +codes which can be transmitted as a few bits of information. +Telefax presently has the advantage of being able to transmit an +arbitrary page, including pictures, but electronic mail is +beginning to deal with this problem. +Electronic mail also integrates well +with current directions in office automation, allowing documents +prepared with sophisticated equipment at one site to be quickly +transferred and printed at another site. +.pp +Currently, most electronic mail is intraorganizational, +with mail transfer remaining within one computer. +As computer +networking becomes more common, however, it is becoming more feasible to +communicate with anyone whose computer can be linked to your +own via a network. +.pp +The pioneering efforts on general-purpose electronic mail +were by organizations using the DoD ARPAnet[1]. +The capability to send messages between computers existed before +the ARPAnet was developed, but it was used only in limited ways. +With the advent of the +ARPAnet, tools began to be developed which made it convenient for +individuals or organizations to distribute messages +over broad geographic areas, using +diverse computer facilities. +The interest and activity in +message systems has now reached such proportions that steps +have been taken within the DoD to coordinate and +unify the development of military message systems. +The use of electronic mail is expected to increase +dramatically in the next few years. +The utility of such systems +in the command and control and intelligence environments is +clear, and applications in these areas will probably lead the +way. +As the costs for sending and handling electronic messages +continue their rapid decrease, such uses can be +expected to spread rapidly into other areas and, of course, will +not be limited to the DoD. +.pp +A message system provides tools that help users (individuals +or organizations) deal with messages in various ways. +Messages +must be composed, sent, received, stored, retrieved, +forwarded, and replied to. +Today's best interactive computer +systems provide a variety of word-processing and information +handling capabilities. +The message handling facilities should be +well integrated with the rest of the system, so as to be a +graceful extension of overall system capability. +.pp +The message system described in this report, \fIMH\fR, provides most of the +features that can be found in other message systems and also +incorporates some new ones. +It has been built on the UNIX time-sharing +system[2], a popular operating system for the DEC PDP-11\** +and VAX-11 classes of computers. +.(f +\** PDP and VAX are trademarks of Digital Equipment Corporation. +.)f +A \*(lqsecure\*(rq operating +system similar to UNIX is currently being developed[3], +and that system will also run \fIMH\fR. +.pp +This report provides a complete description of \fIMH\fR and +thus may serve as a user's manual, although parts of the report +will be of interest to non-users as well. +Sections 2 and 3, the +Overview and Tutorial, present the key +ideas of \fIMH\fR and will give those not familiar with message systems +an idea of what such systems are like. +.pp +\fIMH\fR consists of a set of commands which use some special +files and conventions. +The final section is divided into three parts. +The first part covers the information +a user needs to know in addition to the +commands. +Then, each of the \fIMH\fR commands is described in detail. +Finally, other obscure details are revealed. +A summary of the commands is given in Appendix A, +and the syntax of message sequences is given in Appendix B. +.pp +A novel approach has been taken in the design of \fIMH\fR. +Instead of creating a large subsystem that appears as a single +command to the user (such as MS[4]), +\fIMH\fR is a collection of separate commands +which are run as separate programs. +The file and directory +system of UNIX are used directly. +Messages are stored as +individual files (datasets), and collections of them are grouped +into directories. +In contrast, most other message systems store +messages in a complicated data structure within a monolithic +file. +With the \fIMH\fR approach, UNIX commands can be +interleaved with commands invoking the functions of the message +handler. +Conversely, existing UNIX commands +can be used in connection with messages. +For +example, all the usual UNIX editing, text-formatting, and printing +facilities can be applied directly to individual messages. +MH, +therefore, consists of a relatively small amount of new code; it +makes extensive use of other UNIX software to provide the +capabilities found in other message systems. +.+c OVERVIEW +.pp +There are three main aspects of \fIMH\fR\0: the way messages are +stored (the message database), the user's profile (which directs +how certain actions of the message handler take place), and the +commands for dealing with messages. +.pp +Under \fIMH\fR, each message is stored as a separate file. +A user +can take any action with a message that he could with an ordinary +file in UNIX. +A UNIX directory in which messages are stored is +called a folder. +Each folder contains some standard entries to support +the message-handling functions. +The messages in a folder have numerical +names. +These folders (directories) +are entries in a particular directory path, described in +the user profile, through which \fIMH\fR can find message folders. +Using the UNIX \*(lqlink\*(rq facility, it is possible for one copy of a +message to be \*(lqfiled\*(rq in more than one folder, providing a +message index facility. +Also, using the UNIX tree-structured +file system, it is possible to have a folder within a folder, +nested arbitrarily deep, +and have the full power of the \fIMH\fR commands available. +.pp +Each user of \fIMH\fR has a user profile, a file in +his \fB$HOME\fR (initial login) directory called \fI\&.mh\(ruprofile\fR. +This profile contains several +pieces of information used by the \fIMH\fR commands: +a path name to the directory that contains the message folders +and parameters that tailor \fIMH\fR commands +to the individual user's requirements. +There is also another file, +called the user context, +which contains information concerning which folder the user last referenced +(the \*(lqcurrent\*(rq folder). +It also contains +most of the necessary state information concerning how +the user is dealing with his messages, enabling \fIMH\fR to be +implemented as a set of individual UNIX commands, in contrast to the +usual approach of a monolithic subsystem. +.pp +In \fIMH\fR, incoming mail is appended +to the end of a file in a system spooling area for the user. +This area is called the mail drop directory, +and the file is called the user's mail drop. +Normally when the user logins in, +s/he is informed of new mail +(or the \fIMH\fR program \fImsgchk\fR may be run). +The user adds the new messages to his/her collection of \fIMH\fR messages +by invoking the command +\fIinc\fR. +The \fIinc\fR (incorporate) command adds the new +messages to a folder called \*(lqinbox\*(rq, assigning them names which +are consecutive integers starting with the next highest integer +available in inbox. +\fIinc\fR also produces a +\fIscan\fR summary of +the messages thus incorporated. +A folder can be compacted into a single file, +for easy storage, +by using the \fIpackf\fR command. +Also, +messages within a folder can be sorted by date and time with the \fIsortm\fR +command. + +.pp +There are four commands for examining the messages in a +folder: +\fIshow\fR, +\fIprev\fR, +\fInext\fR, +and +\fIscan\fR. +The \fIshow\fR command displays a message in a folder, +\fIprev\fR displays the message preceding the current message, and +\fInext\fR displays the message following the current message. +\fIMH\fR lets the user choose the program that displays individual messages. +A special program, \fImhl\fR, can be used to display messages according +to the user's preferences. +The \fIscan\fR command summarizes the messages in a folder, +normally producing one line per message, showing who the message is from, +the date, the subject, etc. +.pp +The user may move a message from one folder to another with +the command +\fIrefile\fR. +Messages may be removed from a folder +by means of the command +\fIrmm\fR. +In addition, a user may query +what the current folder is and may specify that a new folder +become the current folder, through the command +\fIfolder\fR. +All folders may be summarized with the \fIfolders\fR command. +A message folder (or subfolder) may be removed by means of +the command +\fIrmf\fR. +.pp +A set of messages based on content may be selected by +use of the command \fIpick\fR. +This command searches through +messages in a folder and selects those that match a given +set of criteria. +These messages are then bound to a \*(lqsequence\*(rq name for use with other +\fIMH\fR commands. +The \fImark\fR command manipulates these sequences. +.pp +There are five commands enabling the user to create new +messages and send them: +\fIcomp\fR, +\fIdist\fR, +\fIforw\fR, +\fIrepl\fR, +and +\fIsend\fR. +The \fIcomp\fR command +provides the facility for the user to compose a +new message; +\fIdist\fR redistributes mail to additional addressees; +\fIforw\fR enables the user to forward messages; and +\fIrepl\fR facilitates the generation of a reply to an incoming message. +The last three commands may optionally annotate the original message. +Messages may be arbitrarily annotated with the \fIanno\fR command. +Once a draft has been constructed by one of the four above composition +programs, +a user\-specifiable program is run to query the user as to the disposition of +the draft prior to sending. +\fIMH\fR provides the simple \fIwhatnow\fR program to start users off. +If +a message is not sent directly by one of these commands, it may +be sent at a later time using the command +\fIsend\fR. +\fIMH\fR allows the use of any UNIX editor when composing a message. +For rapid entry, a special editor, \fIprompter\fR, is provided. +For programs, a special mail-sending program, \fImhmail\fR, is provided. +.pp +\fIMH\fR supports a personal aliasing facility which gives users the +capability to considerably shorten address typein +and use meaningful names for addresses. +The \fIali\fR program can be used to query \fIMH\fR as to the expansion of a +list of aliases. +After composing a message, but prior to sending, the \fIwhom\fR command +can be used to determine exactly who a message would go to. +.pp +\fIMH\fR provides a natural interface for telling the user's shell the names +of \fIMH\fR messages and folders. +The \fImhpath\fR program achieves this capability. +.pp +The \fIburst\fR command can be used to \*(lqshred\*(rq digests of messages +into individual messages. +.pp +All of the elements summarized above +are described in more detail in the following sections. +Many of the +normal facilities of UNIX provide additional capabilities for +dealing with messages in various ways. +For example, it is +possible to print messages +on the line-printer without requiring any additional code within +\fIMH\fR\0. +Using standard UNIX facilities, any terminal output can be +redirected to a file for repeated or future viewing. +In general, +the flexibility and capabilities of the UNIX interface with the +user are preserved as a result of the integration of \fIMH\fR into the UNIX +structure. +.+c TUTORIAL +.pp +This tutorial provides a brief introduction to the \fIMH\fR commands. +It should be sufficient +to allow the user to read his mail, do some simple manipulations of +it, and create and send messages. +.pp +A message has two major pieces: the +header and the body. +The body consists of the text of the message +(whatever you care to type in). +It follows the header and is separated from +it by an empty line. +(When you compose a message, the form that appears +on your terminal shows a line of dashes after the header. +This is for +convenience and is replaced by an empty line when the message is +sent.) The header is composed of several components, including the +subject of the message and the person to whom it is addressed. +Each component starts with a name +and a colon; components must not start with a blank. +The text of the +component may take more than one line, but each continuation line must +start with a blank. +Messages typically have \*(lqTo:\*(rq, \*(lqcc:\*(rq, and +\*(lqSubject:\*(rq components. +When composing a message, you should include +the \*(lqTo:\*(rq and \*(lqSubject:\*(rq components; +the \*(lqcc:\*(rq (for people you want to send copies to) is not necessary. +.pp +The basic \fIMH\fR commands are +\fIinc\fR, +\fIscan\fR, +\fIshow\fR, +\fInext\fR, +\fIprev\fR, +\fIrmm\fR, +\fIcomp\fR, +and +\fIrepl\fR. +These are described below. + +\fIinc\fR +.pp +When you get the message \*(lqYou have mail\*(rq, type the command \fIinc\fR. +You will get a \*(lqscan listing\*(rq such as: + +.nf +.in +.5i +.ta \w'7+ 'u +\w'11/26 'u +\w'To:norm 'u +7+ \07/13 Cas revival of measurement work +8 10/\09 Norm NBS people and publications +9 11/26 To:norm question \*(<\0\fIx\fR~^will copy the message to file x. +.br +^\fIshow\fR\0|\0\fIlpr\fR~^will print the message, using the \fIlpr\fR command. +.br +^\fInext\fR~^will show the message that follows the current message. +.br +^\fIprev\fR~^will show the message previous to the current message. +.br +^\fIrmm\fR~^will remove the current message. +.br +^\fIrmm\03\fR~^will remove message 3. +.)b + +.ne 5 +\fIcomp\fR +.pp +The +\fIcomp\fR command puts you in the editor to write or edit a message. +Fill in or +delete the \*(lqTo:\*(rq, \*(lqcc:\*(rq, and \*(lqSubject:\*(rq fields, +as appropriate, and type the body of the message. +Then +exit normally from the editor. +You will be asked +\*(lqWhat now?\*(rq. +Type a carriage return to see the options. +Typing \fBsend\fR +will cause the message to be sent; typing \fBquit\fR will cause an exit +from +\fIcomp\fR, +with the message draft saved. +.pp +If you quit without sending the message, it will be saved in a file +called /Mail/draft (where is your \fB$HOME\fR directory). +You can resume editing the message later with \*(lqcomp\0\-use\*(rq; +or you can send the message later, using the \fIsend\fR command. + +.ne 4 +\fIcomp\0\-editor\0prompter\fR +.pp +This command uses a different editor and is useful for preparing +\*(lqquick and dirty\*(rq messages. +It prompts you for each component of the +header. +Type the information for that component, or type a carriage +return to omit the component. +After that, type the body of the +message. +Backspacing is the only form of editing allowed with this editor. +When the body is complete, type a carriage return followed by +(usually ). +This completes the initial preparation of the message; from then on, use +the same procedures as with +\fIcomp\fR (above). + +.ne 5 +\fIrepl\fR +.br +\fIrepl\fR\0n +.pp +This command makes up an initial message form with a header +that is appropriate for +replying to an existing message. +The message being answered is the +current message if no message number is mentioned, or n if a number +is specified. +After the header is completed, you can finish the message as in +\fIcomp\fR (above). +.pp +This is enough information to get you going using \fIMH\fR. +There are more commands, +and the commands described here have more features. +Subsequent sections +explain \fIMH\fR in complete detail. +The system is quite powerful if you +want to use its sophisticated features, but the foregoing commands +suffice for sending and receiving messages. +.pp +There are numerous additional capabilities you may wish to explore. +For example, the +\fIpick\fR command will select a subset of messages +based on specified criteria such as sender and/or subject. +Groups of +messages may be designated, as described in Sec. IV, +under \fBMessage Naming\fR. +The file \fI\&.mh\(ruprofile\fR can be used to tailor your use of +the message system to your needs and preferences, as described in Sec. IV, +under \fBThe User Profile\fR. +In general, you may +learn additional features of the system selectively, according to your +requirements, +by studying the relevant sections of this manual. +There is no need to +learn all the details of the system at once. +.+c "DETAILED DESCRIPTION" +.pp +This section describes the \fIMH\fR system in detail, including the components +of the user profile, the conventions for message naming, and some of +the other \fIMH\fR conventions. +Readers who are +generally familiar with computer systems will be able to follow +the principal ideas, although some details may be meaningful only to +those familiar with UNIX. +.uh "THE USER PROFILE" +.pp +The first time an \fIMH\fR command is issued by a new user, the system +prompts for a \*(lqPath\*(rq and creates an \fIMH\fR \*(lqprofile\*(rq. +.pp +Each \fIMH\fR user has a profile which contains tailoring +information for each individual program. +Other profile entries control the \fIMH\fR path (where folders and +special files are kept), folder and message protections, editor +selection, and default arguments for each \fIMH\fR program. +Each user of \fIMH\fR also has a context file which contains +current state information for the \fIMH\fR package +(the location of the context file is kept in the user's \fIMH\fR directory, +or may be named in the user profile). +When a folder becomes +the current folder, it is recorded in the user's context. +(Other state information is kept in the context file, +see the manual entry for \fImh\-profile\0\fR(5) for more details.) +In general, +the term \*(lqprofile entry\*(rq refer to entries in either the profile or +context file. +Users of \fIMH\fR needn't worry about the distinction, +\fIMH\fR handles these things automatically. +.pp +The \fIMH\fR profile is stored in the file \fI\&.mh\(ruprofile\fR in the +user's \fB$HOME\fR directory\**. +.(f +\** By defining the envariable \fB$MH\fR, +you can specify an alternate profile to be used by \fIMH\fR commands. +.)f +It has the format of a message without +any body. +That is, each profile entry is on one line, with a +keyword followed by a colon (:) followed by text particular to +the keyword. +.br +\(rh\ \ \& +\fIThis file must not have blank lines.\fR +.br +The keywords +may have any combination of upper and lower case. +(See the information of \fImh\-mail\fR later on in this manual +for a description of message formats.) +.pp +For the average \fIMH\fR user, the only profile entry of +importance is \*(lqPath\*(rq. +Path specifies a directory in which \fIMH\fR +folders and certain files such as \*(lqdraft\*(rq are found. +The +argument to this keyword must be a legal UNIX path that names an +existing directory. +If this path is not absolute +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the user's \fB$HOME\fR directory. +All folder and message references within +\fIMH\fR will relate to this path unless full path names are used. +.pp +Message protection defaults to 644, and folder protection to +711. +These may be changed by profile entries \*(lqMsg-Protect\*(rq +and \*(lqFolder-Protect\*(rq, respectively. +The argument to these +keywords is an octal number which is used as the UNIX file mode\**. +.(f +\** See \fIchmod\fR\0(1) in the \fIUNIX Programmer's Manual\fR\0[5]. +.)f +.pp +When an \fIMH\fR program starts running, it looks through the +user's profile for an entry with a keyword matching the program's +name. +For example, when +\fIcomp\fR is run, it looks for a \*(lqcomp\*(rq +profile entry. +If one is found, the text of the profile entry is +used as the default switch setting until all defaults are overridden +by explicit switches passed to the program as arguments. +Thus the profile +entry \*(lqcomp:\0\-form\0standard.list\*(rq would direct +\fIcomp\fR to use the +file \*(lqstandard.list\*(rq as the message skeleton. +If an explicit +form switch is given to the +\fIcomp\fR command, it will override the +switch obtained from the profile. +.pp +In UNIX, a program may exist under several names, +either by linking or aliasing. +The actual invocation name is used by an \fIMH\fR +program when scanning for its profile defaults\**. +.(f +\** Unfortunately, +the shell does not preserve aliasing information when calling a program, +hence if a program is invoked by an alias different than its name, +the program will examine the profile entry for it's name, +not the alias that the user invoked it as. +The correct solution is to create a (soft) link in your \fI$HOME/bin\fR +directory to the \fIMH\fR program of your choice. +By giving this link a different name, +you can use an alternate set of defaults for the command. +.)f +Thus, each \fIMH\fR program +may have several names by which it can be invoked, and each name +may have a different set of default switches. +For example, if +\fIcomp\fR is invoked by the name +\fIicomp\fR, +the profile entry +\*(lqicomp\*(rq will control the default switches for this invocation of +the +\fIcomp\fR program. +This provides a powerful +definitional facility for commonly used switch settings. +.pp +The default editor +for editing within +\fIcomp\fR, +\fIrepl\fR, +\fIforw\fR, +and +\fIdist\fR, +is usually \fIprompter\fR, +but might be something else at your site, +such as \fI/usr/ucb/ex\fR or \fI/bin/e\fR. +A different editor may be used by specifying +the profile entry +\*(lqEditor: \*(rq. +The argument to \*(lqEditor\*(rq is the name of an +executable program or shell command file which can be found via +the user's $PATH defined search path, excluding the current +directory. +The \*(lqEditor:\*(rq profile specification +may in turn be overridden by a `\-editor\0' +profile switch associated with +\fIcomp\fR, +\fIrepl\fR, +\fIforw\fR, +or +\fIdist\fR. +Finally, an explicit editor switch specified with any +of these four commands will have ultimate precedence. +.pp +During message composition, more than one editor may be +used. +For example, one editor (such as \fIprompter\fR\0) +may be used +initially, and a second editor may be invoked later to revise +the message being composed +(see the discussion of +\fIcomp\fR in Section 5 for details). +A profile entry \*(lq\-next:\0\*(rq specifies the name of +the editor to be used after a particular editor. +Thus \*(lqcomp:\0\-e\0prompter\*(rq +causes the initial text to be collected by +\fIprompter\fR, +and the profile entry \*(lqprompter\-next:\0ed\*(rq names ed as the +editor to be invoked for the next round of editing. +.pp +Some of the \fIMH\fR commands, such as +\fIshow\fR, +can be used on +message folders owned by others, if those folders are readable. +However, +you cannot write in someone else's folder. +All the \fIMH\fR command +actions not requiring write permission may be used with +a \*(lqread-only\*(rq folder. +.pp +Table 1 lists examples of some of the currently defined profile +entries, typical arguments, and the programs that reference the +entries. +.bp +.in .9i +.ll -.9i +.ta \w':\0default switches 'u +.sp 30p +.ce +Table 1 +.sp 8p +.ce +P\s-2ROFILE\s0 C\s-2OMPONENTS\s0 +.hl \" ~12p preceding + 1v (12p) after +.nf +^^\fIMH\fR Programs that +^Keyword and Argument~^\ use Component\h'|\n(.lu-.9i'\v'4p'\l'|0'\v'-4p' \" \l'..' does underlining +.sp +^Path:\0Mail~^All +^Current-Folder:\0inbox~^Most +^Editor:\0/usr/ucb/ex~^\fIcomp, dist, forw, repl\fR +^Inbox:\0inbox~^\fIinc, rmf\fR +^Msg\-Protect:\0644~^\fIinc\fR +^Folder\-Protect:\0711~^\fIinc, pick, refile\fR +^:\0default switches~^All +^prompter\-next:\0ed~^\fIcomp, dist, forw, repl\fR +.hl +.ll +.9i +.in 0 +.fi +.pp +Path +.u should +be present. +Current\-Folder is maintained +automatically by many \fIMH\fR commands (see the \fBContext\fR sections of +the individual commands in Sec. IV). +All other entries are optional, +defaulting to the values described above. +.uh "MESSAGE NAMING" +.pp +Messages may be referred to explicitly or implicitly when +using \fIMH\fR commands. +A formal syntax of message names is given in Appendix B, but the +following description should be sufficient for most \fIMH\fR users. +Some details of message naming that apply only to certain +commands are included in the description of those +commands. +.pp +Most of the \fIMH\fR commands accept arguments specifying one or +more folders, and one or more messages to operate on. +The use of +the word \*(lqmsg\*(rq as an argument to a command means that exactly one +message name may be specified. +A message name may be a number, +such as 1, 33, or 234, or it may be +one of the \*(lqreserved\*(rq message names: +first, last, prev, next, and cur. +(As a shorthand, a +period (\&.) is equivalent to cur.) +The meanings of these names are straightforward: +\*(lqfirst\*(rq is the first message in the folder; +\*(lqlast\*(rq is the last message in the folder; +\*(lqprev\*(rq is the message numerically previous to the current message; +\*(lqnext\*(rq is the message numerically following the current message; +\*(lqcur\*(rq (or \*(lq\&.\*(rq) is the current message in the folder. +In addition, +\fIMH\fR supports user\-defined\-sequences; +see the description of the \fImark\fR command for more information. +.pp +The default in commands that take a \*(lqmsg\*(rq argument is +always \*(lqcur\*(rq. +.pp +The word \*(lqmsgs\*(rq indicates that several messages may be +specified. +Such a specification consists of several message +designations separated by spaces. +A message designation is +either a message name or a message range. +A message range is a +specification of the form name1\-name2 or name1:n, where name1 and +name2 are message names and n is an integer. +The first form +designates all the messages from name1 to name2 inclusive; this +must be a non-empty range. +The second form specifies up to n +messages, starting with name1 if name1 is a number, or first, +cur, or next, and ending with name1 if name1 is last or +prev. +This interpretation of n is overridden if n is preceded +by a plus sign or a minus sign; ++n always means up to n messages starting with +name1, and \-n always means up to n messages ending with name1. +Repeated specifications of the same message have the same effect +as a single specification of +the message. +Examples of +specifications are: + +.(b +1 5 7\-11 22 +first 6 8 next +first\-10 +last:5 +.)b +.pp +The message name \*(lqall\*(rq is a shorthand for \*(lqfirst\-last\*(rq, +indicating all of the messages in the folder. +.pp +In commands that accept \*(lqmsgs\*(rq arguments, the default is +either cur or all, depending on which makes more sense. +.pp +In all of the \fIMH\fR commands, a plus sign preceding an argument +indicates a folder name. +Thus, \*(lq+inbox\*(rq is the name of the +user's standard inbox. +If an explicit folder argument is given +to an \fIMH\fR command, it will become the current folder (that is, +the \*(lqCurrent-Folder:\*(rq entry +in the user's profile will be changed to this folder). +In the case of the +\fIrefile\fR command, which +can have multiple output folders, a new source folder (other than +the default current folder) is specified by `\-src\0+folder'. +.uh "OTHER MH CONVENTIONS" +.pp +One very powerful feature of \fIMH\fR is that the \fIMH\fR commands may +be issued from any current directory, and the proper path to +the appropriate folder(s) will be taken from the user's profile. +If the \fIMH\fR path is not appropriate for a specific folder or file, +the automatic prepending of the \fIMH\fR path can be avoided by +beginning a folder or file name with \fB/\fR, +or with \fB\&./\fR or \fB\&.\&./\fR component. +Thus any specific absolute path may be specified along with any path +relative to the current working directory. +.pp +Arguments to the various programs may be given in any order, +with the exception of a few switches whose arguments must follow +immediately, such as `\-src\0+folder' for \fIrefile\fR. +.pp +Whenever an \fIMH\fR command prompts the user, the valid options +will be listed in response to a . +(The first of the +listed options is the default if end-of-file is encountered, +such as from a command file.) +A valid response is any \fIunique\fR abbreviation of one of the listed options. +.pp +Standard UNIX documentation conventions are used in this report +to describe \fIMH\fR command syntax. +Arguments enclosed in brackets +([ ]) are optional; exactly one of the arguments enclosed +within braces ({ }) must be specified, and all other +arguments are required. +The use of ellipsis dots (...) indicates +zero or more repetitions of the previous item. +For example, +\*(lq+folder ...\*(rq would indicate that one or more \*(lq+folder\*(rq +arguments is required +and \*(lq[+folder ...]\*(rq indicates that 0 or more +\*(lq+folder\*(rq arguments may be given. +.pp +\fIMH\fR departs from UNIX standards by using switches that consist of +more than one character, e.g. `\-header'. +To minimize typing, +only a unique abbreviation of a switch need be typed; thus, for +`\-header', `\-hea' is probably sufficient, depending on the +other switches the command accepts. +Each \fIMH\fR program +accepts the switch `\-help' (which \fBmust\fR be spelled out fully) +and produces a syntax description and a list of switches. +In the +list of switches, parentheses indicate required characters. +For example, all `\-help' switches will appear as \*(lq\-(help)\*(rq, +indicating that no abbreviation is accepted. +Furthermore, +the `\-help' switch tells the version of the \fIMH\fR program you invoked. +.pp +Many \fIMH\fR switches have both on and off forms, such as +`\-format' and `\-noformat'. +In many of the descriptions which follow, +only one form is defined; the other form, often used to +nullify profile switch settings, is assumed to be the opposite. +.br +.bp +.uh "MH COMMANDS" +.pp +The \fIMH\fR package comprises several programs: +.\" I pity the fool who tampers with the next line... +.ds ZZ -me +.so mh.me +.pp +These programs are described below. +The form of the descriptions +conforms to the standard +form for the description of UNIX commands. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '[mh.6]'MH.6.8'UCI version' +.de SC +.he '\\$1(\\$2)'-%-'\\$1(\\$2)' +.bp +.(x +.ti .8i +\\$1 +.)x +.. +.de NA +.b \\s-2NAME\\s0 +.ti .5i +.. +.de SY +.sp +.b \\s-2SYNOPSIS\\s0 +.in 1i +.ti .5i +.na +.. +.de DE +.ad +.sp +.in 0 +.b \\s-2DESCRIPTION\\s0 +.sp +.fi +.in .5i +.. +.de Uh +.ad +.sp +.ti -.25i +.b "\\s-2\\$1\\s0" +.sp +.fi +.. +.de Hh +.ad +.sp +.in 0 +.b "\\s-2Helpful Hints\\s0" +.sp +.fi +.in .5i +.. +.de Fi +.(b L +.ti 0 +.b \\s-2Files\\s0 +.ta \w'/opt/mh-6.8.5/lib/ExtraBigFileName 'u +.. +.de Pr +.)b +.(b L F +.ta \w'ExtraBigProfileName 'u +.ti 0 +.b "\\s-2Profile Components\\s0" +.ti .5i +.. +.de Ps +.ti .5i +.. +.de Sa +.)b +.(b L F +.ti 0 +.b "\\s-2See Also\\s0" +.br +.. +.de De +.)b +.(b L +.in .5i +.ti 0 +.b \\s-2Defaults\\s0 +.. +.de Ds +.. +.de Co +.)b +.(b L F +.ti 0 +.b \\s-2Context\\s0 +.br +.. +.de Hi +.)b +.(b L F +.ti 0 +.b \\s-2History\\s0 +.br +.. +.de Bu +.)b +.(b L F +.ti 0 +.b \\s-2Bugs\\s0 +.br +.. +.de En +.)b +.in 0 +.. +.po -.50i +.so ali.me +.so anno.me +.so burst.me +.so comp.me +.so dist.me +.so folder.me +.so forw.me +.so inc.me +.so mark.me +.so mhl.me +.so mhmail.me +.so mhn.me +.so mhook.me +.so mhparam.me +.so mhpath.me +.so msgchk.me +.so msh.me +.so next.me +.so packf.me +.so pick.me +.so prev.me +.so prompter.me +.so rcvstore.me +.so refile.me +.so repl.me +.so rmf.me +.so rmm.me +.so scan.me +.so send.me +.so show.me +.so slocal.me +.so sortm.me +.so vmh.me +.so whatnow.me +.so whom.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +.bp +.uh "MORE DETAILS" +.pp +This section describes some of the more intense points of the \fIMH\fR system, +by expanding on topics previously discussed. +The format presented conforms to the standard form for the description of UNIX +documentation. +.if t \{ +.ll 6.5i +.lt 6.5i +\} +.fo '[mh.6]'MH.6.8'UCI version' +.po -.50i +.so mh-alias.me +.so mh-format.me +.so mh-mail.me +.so mh-profile.me +.so mh-sequence.me +.so ap.me +.so conflict.me +.so dp.me +.so fmtdump.me +.so install-mh.me +.so post.me +.po +.50i +.he ''-%-'' +.fo '''' +.br +.if t \{ +.ll 32P +.lt 32P +\} +.+c "REPORTING PROBLEMS" +.pp +If problems are encountered with an \fIMH\fR program, +the problems should be reported to the local maintainers of \fIMH\fR. +When doing this, +the name of the program should be reported, +along with the version information for the program. +To find out what version of an \fIMH\fR program is being run, +invoke the program with the `\-help' switch. +In addition to listing the syntax of the command, +the program will list information pertaining to its version. +This information includes the version of \fIMH\fR, +the host it was generated on, +and the date the program was loaded. +A second line of information, +found on versions of \fIMH\fR after #5.380 include \fIMH\fR configuration +options. +For example, + +.in +.5i +version: MH 6.1 #1[UCI] (nrtc-gremlin) of Wed Nov 6 01:13:53 PST 1985 +.br +options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP] +.in -.5i + +The `6.1 #1[UCI]' indicates that the program is from the UCI \fImh.6\fR +version of \fIMH\fR. +The program was generated on the host `nrtc-gremlin' on +`Wed Nov 6 01:13:53 PST 1985'. +It's usually a good idea to send the output of the `\-help' switch along +with your report. + +If there is no local \fIMH\fR maintainer, +try the address \fBBug-MH\fR. +If that fails, use the Internet mailbox \fBBug-MH@ICS.UCI.EDU\fR. + +.+c "ADVANCED FEATURES" +.de UH +.lp +.b "\\$1" +.pp +.(x +.ti .8i +\\$1 +.)x +.. +.pp +This section describes some features of \fIMH\fR that were included strictly +for advanced \fIMH\fR users. +These capabilities permit \fIMH\fR to exhibit more powerful behavior for the +seasoned \fIMH\fR users. +.uh "USER\-DEFINED SEQUENCES" +.pp +User\-defined sequences allow the \fIMH\fR user a tremendous amount of power +in dealing with groups of messages in the same folder +by allowing the user to bind a group of messages to a meaningful symbolic +name. +The user may choose any name for a message sequence, +as long as it consists of alphanumeric characters and does not conflict with +the standard \fIMH\fR reserved message names +(e.g., \*(lqfirst\*(rq, etc). +After defining a sequence, +it can be used wherever an \fIMH\fR command expects a `msg' or `msgs' +argument. +.pp +A restricted form of message ranges are allowed with user\-defined +sequences. The form \*(lqname:n\*(rq, specifies up to the first `n' messages +which are part of the user\-defined sequence `name'. +A leading plus sign is allowed on `n', but is ignored. +The interpretation of n is overridden if n is preceded +by a minus sign; +`\-n' always means up to the last `n' messages which are part of the +sequence `name'. +.pp +Although all \fIMH\fR commands expand user\-defined sequences as appropriate, +there are two commands that allow the user to define and manipulate them: +\fIpick\fR and \fImark\fR. +.UH "Pick and User\-Defined Sequences" +.pp +Most users of \fIMH\fR will use user\-defined sequences only with +the \fIpick\fR command. +By giving the `\-sequence\ name' switch to \fIpick\fR +(which can occur more than once on the command line), +each sequence named is defined as those messages which \fIpick\fR matched +according the the selection criteria it was given. +Hence, + +.ti +.5i +pick\0\-from\0frated\0\-seq\0fred + +finds all those messages in the current folder which were from +\*(lqfrated\*(rq, +creates a sequence called \*(lqfred\*(rq, +and then adds them to the sequence. +The user could then invoke + +.ti +.5i +scan\0fred + +to get a \fIscan\fR listing of those messages. +Note that by default, +\fIpick\fR creates the named sequences +before it adds the selected messages to the sequence. +Hence, if the named sequence already existed, +the sequence is destroyed prior to being re-defined +(nothing happens to the messages that were a part of this sequence, +they simply cease to be members of that sequence). +By using the `\-nozero' switch, this behavior can be inhibited, +as in + +.in +.5i +pick\0\-from\0frated\0\-seq\0sgroup +.br +pick\0\-from\0fear\0\-seq\0sgroup\0\-nozero +.br +pick\0\-from\0freida\0\-seq\0sgroup\0\-nozero +.in -.5i + +finds all those messages in the current folder which were from +\*(lqfrated\*(rq, \*(lqfear\*(rq, or \*(lqfreida\*(rq, +and defines the sequence called \*(lqsgroup\*(rq as exactly those messages. +These operations amounted to an \*(lqinclusive\-or\*(rq of three selection +criteria, +using \fIpick\fR, +one can also generate the \*(lqand\*(rq of some selection criteria as well: + +.in +.5i +pick\0\-from\0frated\0\-seq\0fred +.br +pick\0\-before\0friday\0\-seq\0fred\0fred +.in -.5i + +This example defines the sequence called \*(lqfred\*(rq as exactly those +messages from \*(lqfrated\*(rq that were dated prior to \*(lqfriday\*(rq.\** +.(f +\** Of course, +it is much easier to simply use the built\-in boolean operation of +\fIpick\fR to get the desired results: + +.ti +.5i +pick\0\-from\0frated\0\-or\0\-from\0fear\0\-or\0\-from\0freida\0\-seq\0sgroup + +and + +.ti +.5i +pick\0\-from\0frated\0\-and\0\-before\0friday\0\-seq\0fred + +do exactly the same thing as the five commands listed above. +Hence, the `\-nozero' option to \fIpick\fR is only useful to manipulate +existing sequences. +.)f +.pp +\fIPick\fR is normally used as a back\-quoted command, +for example, + +.ti +.5i +scan\0`pick\0\-from\0postmaster` + +Now suppose that the user decides that another command should be issued, +using exactly those messages. +Since, +\fIpick\fR wasn't given a `\-sequence\ name' argument in this example, +the user would end\-up typing the entire back\-quoted command again. +A simpler way is to add a default sequence name to the \&.mh\(ruprofile. +For example, + +.ti +.5i +pick:\0\-seq\0select\0\-list + +will tell \fIpick\fR to always define the sequence \*(lqselect\*(rq whenever +it's run. +The `-list' is necessary since the `\-sequence\ name' switch sets `\-nolist' +whenever the former is encountered. +Hence, this profile entry makes \fIpick\fR define the \*(lqselect\*(rq +sequence and otherwise behave exactly as if there was no profile entry at all. +.UH "Mark and User\-Defined Sequences" +.pp +The \fImark\fR command lets the user perform low\-level manipulation of +sequences, +and also provides a well\-needed debug facility to the +implementors/developers/maintainers of \fIMH\fR (the \fIMH\fR\-hacks). +In the future, a user\-friendly \*(lqfront\-end\*(rq for \fImark\fR will +probably be developed to give the \fIMH\fR user a way to take better +advantage of the underlying facilities. +.UH "Public and Private User\-Defined Sequences" +.pp +There are two kinds of sequences: \fIpublic\fR sequences, +and \fIprivate\fR sequences. +\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user that +can read that folder and are kept in the \&.mh\(rusequences file in the folder. +\fIPrivate\fR sequences are accessible only to the \fIMH\fR user that defined +those sequences and are kept in the user's \fIMH\fR context file. +By default, +\fIpick\fR (and \fImark\fR\0) create \fIpublic\fR sequences +if the folder for which the sequences are being defined is writable by the +\fIMH\fR user. +Otherwise, \fIprivate\fR sequences are created. +This can be overridden with the `\-public' and `\-nopublic' switches. +.UH "Sequence Negation" +.pp +In addition to telling an \fIMH\fR command to use the messages in the sequence +\*(lqseen\*(rq, as in + +.ti +.5i +refile\0seen\0+old + +it would be useful to be easily able to tell an \fIMH\fR command to use all +messages \fIexcept\fR those in the sequence. +One way of doing this would be to use \fImark\fR and define the sequence +explicitly, +as in + +.ti +.5i +mark\0\-delete\0\-zero\0seen\0\-seq\0notseen + +which, +owing to \fImark\fR\0's cryptic interpretation of `\-delete' and `\-zero', +defines the sequence \*(lqnotseen\*(rq to be all messages not in the sequence +\*(lqseen\*(rq. +Naturally, +anytime the sequence \*(lqseen\*(rq is changed, +\*(lqnotseen\*(rq will have to be updated. +Another way to achieve this is to define the entry +\*(lqSequence\-Negation:\*(rq in the \&.mh\(ruprofile. +If the entry was + +.ti +.5i +Sequence\-Negation:\0not + +then anytime an \fIMH\fR command was given \*(lqnotseen\*(rq as a `msg' or +`msgs' argument, +it would substitute all messages that are not a member of the sequence +\*(lqseen\*(rq. +That is, + +.ti +.5i +refile\0notseen\0+new + +does just that. +The value of the \*(lqSequence\-Negation:\*(rq entry in the profile can be +any string. +Hence, +experienced users of \fIMH\fR do not use a word, +but rather a special character which their shell does not interpret +(users of the \fICShell\fR use a single caret or circumflex (usually shift\-6), +while users of the Bourne shell use an exclamation\-mark). +This is because there is nothing to prevent a user of \fIMH\fR from defining a +sequence with this string as its prefix, +if the string is nothing by letters and digits. +Obviously, +this could lead to confusing behavior +if the \*(lqSequence\-Negation:\*(rq entry leads \fIMH\fR to believe that two +sequences are opposites by virtue of their names differing by the prefix +string. +.UH "The Previous Sequence" +.pp +Many times users find themselves issuing a series of commands on the same +sequences of messages. +If the user first defined these messages as a sequence, +then considerable typing may be saved. +If the user doesn't have this foresight, +\fIMH\fR provides a handy way of having \fIMH\fR remember the `msgs' or +`msg' argument last given to an \fIMH\fR command. +If the entry \*(lqPrevious\-Sequence:\*(rq is defined in the +\&.mh\(ruprofile, +then when the command finishes, +it will define the sequence(s) named in the value of this entry as being +exactly those messages that were specified. +Hence, a profile entry of + +.ti +.5i +Previous\-Sequence:\0pseq + +directs any \fIMH\fR command that accepts a `msg' or `msgs' argument to +define the sequence \*(lqpseq\*(rq as those messages when it finishes. +More than one sequence name may be placed in this entry, +separated with spaces. +The one disadvantage of this approach +is that the \fIMH\fR progams have to update the sequence information for +the folder each time they run +(although most programs read this information, +usually only \fIpick\fR and \fImark\fR have to write this information out). +.UH "The Unseen Sequence" +.pp +Finally, some users like to distinguish between messages which have been +previously seen by them. +Both \fIinc\fR and \fIshow\fR honorthe profile entry +\*(lqUnseen\-Sequence\*(rq to support this activity. +Whenever \fIinc\fR places new messages in a folder, +if the entry \*(lqUnseen\-Sequence\*(rq is defined in the \&.mh\(ruprofile, +then when the command finishes, +\fIinc\fR will add the new messages to the sequence(s) named in the value of +this entry. +Hence, a profile entry of + +.ti +.5i +Unseen\-Sequence:\0 unseen + +directs \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq. +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile +however, +the sequence(s) will \fBnot\fR be zero'd. +.pp +Similarly, +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\0) displays a message, +they remove those messages from any sequences named by the +\*(lqUnseen\-Sequence\*(rq entry in the profile. +.uh "COMPOSITION OF MAIL" +.pp +There are a number of interesting advanced facilities for the composition of +outgoing mail. + +.UH "The Draft Folder" +.pp +The \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands have two +switches, `\-draftfolder\0+folder' and `\-draftmessage\0msg'. +If `\-draftfolder\0+folder' is used, +these commands are directed to construct a draft message in the indicated +folder. +(The \*(lqDraft\-Folder:\*(rq profile entry may be used to declare a +default draft folder for use with +\fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR) +If `\-draftmessage\0msg' is not used, it defaults to `new' +(unless the user invokes \fIcomp\fR with `\-use', +in which case the default is `cur'). +Hence, the user may have several message compositions in progress +simultaneously. +Now, all of the \fIMH\fR tools are available on each of the user's message +drafts +(e.g., \fIshow\fR, \fIscan\fR, \fIpick\fR, and so on). +If the folder does not exist, +the user is asked if it should be created (just like with \fIrefile\fR\0). +Also, +the last draft message the user was composing is known as `cur' in the +draft folder. +.pp +Furthermore, +the \fIsend\fR command has these switches as well. +Hence, from the shell, +the user can send off whatever drafts desired using the +standard \fIMH\fR `msgs' convention with `\-draftmessage msgs'. +If no `msgs' are given, it defaults to `cur'. +.pp +In addition, +all five programs have a `\-nodraftfolder' switch, +which undoes the last occurrence of `\-draftfolder\0folder' +(useful if the latter occurs in the user's \fIMH\fR profile). +.pp +If the user does not give the `\-draftfolder\0+folder' switch, +then all these commands act ``normally''. +Note that the `\-draft' switch to \fIsend\fR and \fIshow\fR +still refers to the file called `draft' in the user's \fIMH\fR +directory. +In the interests of economy of expression, +when using \fIcomp\fR or \fIsend\fR, +the user needn't prefix the draft `msg' or `msgs' with +`\-draftmessage'. +Both of these commands accept a `file' or `files' argument, +and they will, if given `\-draftfolder\0+folder' treat these arguments +as `msg' or `msgs'.\** +.(f +\** This may appear to be inconsistent, at first, +but it saves a lot of typing. +.)f +Hence, + +.ti +.5i +send -draftf +drafts first + +is the same as + +.ti +.5i +send -draftf +drafts -draftm first + +.pp +To make all this a bit more clear, here are some examples. +Let's assume that the following entries are in the \fIMH\fR profile: + +.in +.5i +.nf +Draft\-Folder: +drafts +sendf: -draftfolder +drafts +.fi +.in -.5i + +Furthermore, +let's assume that the program \fIsendf\fR is a (symbolic) link in the user's +\fB$HOME/bin/\fR directory to \fIsend\fR. +Then, any of the commands + +.in +.5i +.nf +comp +dist +forw +repl +.fi +.in -.5i + +constructs the message draft in the `draft' folder using the `new' +message number. +Furthermore, +they each define `cur' in this folder to be that message draft. +If the user were to use the \fIquit\fR option at `What now?' level, +then later on, +if no other draft composition was done, +the draft could be sent with simply + +.ti +.5i +sendf + +Or, +if more editing was required, +the draft could be edited with + +.ti +.5i +comp -use + +Instead, +if other drafts had been composed in the meantime, +so that this message draft was no longer known as `cur' in the `draft' +folder, +then the user could \fIscan\fR the folder to see which message draft in the +folder should be used for editing or sending. +Clever users could even employ a back-quoted \fIpick\fR to do the work: + +.ti +.5i +comp -use `pick +drafts -to bug-mh` + +or + +.ti +.5i +sendf `pick +drafts -to bug-mh` + +Note that in the \fIcomp\fR example, +the output from \fIpick\fR must resolve to a single message draft +(it makes no sense to talk about composing two or more drafts with one +invocation of \fIcomp\fR\0). +In contrast, +in the \fIsend\fR example, +as many message drafts as desired can appear, +since \fIsend\fR doesn't mind sending more than one draft at a time. +.pp +Note that the argument `\-draftfolder\0+folder' is not +included in the profile entry for \fIsend\fR, +since when \fIcomp\fR, et. al., invoke \fIsend\fR directly, +they supply \fIsend\fR with the UNIX pathname of the message draft, +and \fBnot\fR a `draftmessage\0msg' argument. +As far as \fIsend\fR is concerned, +a \fIdraft folder\fR is not being used. +.pp +It is important to realize that \fIMH\fR treats the draft folder like a standard +\fIMH\fR folder in nearly all respects. +There are two exceptions: +.u first , +under no circumstancs will the `\-draftfolder\0folder' switch cause the +named folder to become the current folder.\** +.(f +\** Obviously, +if the folder appeared in the context of a standard `+folder' +argument to an \fIMH\fR program, as in + +.ti +.5i +scan +drafts + +it might become the current folder, depending on the context changes of the +\fIMH\fR program in question. +.)f +.u Second , +although conceptually \fIsend\fR deletes the `msgs' named in the draft +folder, +it does not call `delete-prog' to perform the deletion. + +.UH "What Happens if the Draft Exists" +.pp +When the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands are +invoked and the draft you indicated already exists, +these programs will prompt the user for a reponse directing the program's +action. +The prompt is + +.ti +.5i +Draft ``/usr/src/uci/mh/mhbox/draft'' exists (xx bytes). +.ti +.5i +Disposition? + +The appropriate responses and their meanings are: +.u replace : +deletes the draft and starts afresh; +.u list : +lists the draft; +.u refile : +files the draft into a folder and starts afresh; +and, +.u quit : +leaves the draft intact and exits. +In addition, if you specified `\-draftfolder\0folder' to the command, +then one other response will be accepted: +.u new : +finds a new draft, +just as if `\-draftmessage\0new' had been given. +Finally, the \fIcomp\fR command will accept one more response: +.u use : +re-uses the draft, +just as if `\-use' had been given. + +.UH "The Push Option at What now? Level" +.pp +The \fIpush\fR option to the \*(lqWhat now?\*(rq query +in the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands, +directs the command to \fIsend\fR the draft +in a special detached fashion, +with all normal output discarded. +If \fIpush\fR is used and the draft can not be sent, +then \fIMH\fR will send the user a message, +indicating the name of the draft file, +and an explanation of the failure. +.\" Although using \fIpush\fR calls \fIsend\fR\0(1), +.\" the \fIsend\fR command will consult the profile entry for \fIpush\fR. +.pp +The user can also invoke \fIsend\fR from the shell with the `\-push' +switch, +which makes \fIsend\fR act like it had been \fIpush\fR\0'd by one of the +composition commands. +.\" composition commands.\** +.\" .(f +.\" \** Note that in this case, +.\" \fIsend\fR consults the profile entry for whatever name it was invoked as, +.\" such as \fIsendf\fR. +.\" .)f +.pp +By using \fIpush\fR, the user can free the shell to do other things, +because it appears to the shell that the \fIMH\fR command has finished. +As a result the shell will immediately prompt for another command, +despite the fact that the command is really still running. +Note that if the user indicates that annotations are to be performed +(with `\-annotate' to \fIdist\fR, \fIforw\fR, or \fIrepl\fR), +the annotations will be performed after the message has been +successfully sent. +This action will appear to occur asynchronously. +Obviously, if one of the messages that is to be annotated is +removed before the draft has been successfully sent, +then when \fIMH\fR tries to make the annotations, +it won't be able to do so. +In previous versions of \fIMH\fR, +this resulted in an error message mysteriously appearing on the user's +terminal. +In \fImh.5\fR and later versions, +in this special circumstance, no error will be generated. +.pp +If send is \fIpush\fR\0'd, +then the `\-forward' switch is examined if a failure notice is generated. +If given, +then the draft is forwarded with the failure notice sent to the user. +This allows rapid \fIburst\fR\0'ing of the failure notice to retrieve the +unsent draft. + +.UH "Options at What now? Level" +.pp +By default, +the message composition programs call a program called \fIwhatnow\fR before +the initial draft composition. +The \fIMH\fR user can specify any program for this. +Following is some information about the default \*(lqWhat now?\*(rq level. +More detailed information can be found in the \fIwhatnow\fR\0(1) manual entry. +.pp +When using the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands at +\*(lqWhat now?\*(rq level, +the \fIedit\fR, \fIlist\fR, \fIheaders\fR, \fIrefile\fR, +and (for the \fIdist\fR and \fIrepl\fR commands) the \fIdisplay\fR options +will pass on any additional arguments given them to whatever program they +invoke. +.pp +In \fImh.1\fR (the original RAND \fIMH\fR\0) +and \fImh.2\fR (the first UCI version of \fIMH\fR\0), +\fIMH\fR used a complicated heuristic to determine if the draft should be +deleted or preserved after an unsuccessful edit. +In \fImh.3\fR, +\fIMH\fR was changed to preserve the draft always, +since \fIcomp\fR, et. al., +could usually look at a draft, apply another set of heuristics, +and decide if it was important or not. +With the notion of a \fIdraft folder\fR, +in which one by default gets a `new' message draft, +the edit deletion/preservation algorithm was re-implemented, +to keep the draft folder from being cluttered with aborted edits. +.pp +Also, +note that by default, +if the draft cannot be successfully sent, +these commands return to \*(lqWhat now?\*(rq level. +But, when \fIpush\fR is used, this does not happen (obviously). +Hence, +if these commands were expected to annotate any messages, +this will have to be done by hand, later on, with the \fIanno\fR command. +.pp +Finally, if the `\-delete' switch is not given to the \fIquit\fR option, +then these commands will inform the user of the name of the unsent draft file. + +.UH "Digests" +.pp +The \fIforw\fR command has the beginnings of a digestifying facility, +with the `\-digest\ list', `\-issue\ number', and `\-volume\ number' switches. + +If \fIforw\fR is given \*(lqlist\*(rq to the `\-digest' switch +as the name of the discussion group, +and the `\-issue\ number' switch is not given, +then \fIforw\fR looks for an entry in the user's \fIMH\fR context called +\*(lq\fIdigest\fR\-issue\-list\*(rq and increments its value to use as the +issue number. +Similarly, +if the `\-volume\ number' switch is not given, +then \fIforw\fR looks for \*(lq\fIdigest\fR\-volume\-list\*(rq +(but does not increment its value) to use as the volume number. + +Having calculated the name of the digest and the volume and issue numbers, +\fIforw\fR will now process the components file using the same format string +mechanism used by \fIrepl\fR. +The current `%'\-escapes are: + +.nf +.ta \w'escape 'u +\w'integer 'u +\fIescape\fR \fItype\fR \fIsubstitution\fR +digest string digest name +msg integer issue number +cur integer volume number +.re +.fi + +In addition, to capture the current date, +any of the escapes valid for \fIdp\fR\0(8) are also valid for \fIforw\fR. + +The default components file used by \fIforw\fR when in digest mode is: + +.nf +.in +.5i +.ne 10 +.eo +.so /opt/mh-6.8.5/lib/digestcomps +.ec +.in -.5i +.fi + +Hence, when the `\-digest' switch is present, +the first step taken by \fIforw\fR is to expand the format strings in the +component file. +The next step is to compose the draft using +the standard digest encapsulation algorithm +(even putting an \*(lqEnd of list Digest\*(rq trailer in the draft). +Once the draft is composed by \fIforw\fR, +\fIforw\fR writes out the volume and issue profile entries for the digest, +and then invokes the editor. + +Naturally, when composing the draft, +\fIforw\fR will honor the `\-filter\ filterfile' switch, +which is given to \fImhl\fR to filter each message being forwarded prior to +encapsulation in the draft. +A good filter file to use, which is called \fImhl.digest\fR, is: + +.nf +.in +.5i +.ne 10 +.eo +.so /opt/mh-6.8.5/lib/mhl.digest +.ec +.in -.5i +.fi + +.uh "FOLDER HANDLING" +.pp +There are two interesting facilities for manipulating folders: +relative folder addressing, +which allows a user to shorten the typing of long folder names; +and +the folder\-stack, +which permits a user to keep a stack of current folders. + +.UH "Relative Folder Addressing" +.pp +By default, when `+folder' is given, +and the folder name is not absolute +(does not start with \fB/\fR, \fB\&./\fR, or \fB\&.\&./\fR), +then the UNIX pathname of the folder is interpreted relative to the user's +\fIMH\fR directory. +Although this mechanism works fine for top\-level folders and their immediate +sub\-folders, +once the depth of the sub\-folder tree grows, it becomes rather unwieldly: + +.ti +.5i +scan\0+mh/mh.4/draft/flames + +is a lot of typing. +\fIMH\fR can't do anything if the current folder was \*(lq+inbox\*(rq, +but if the current folder was, say, \*(lq+mh/mh.4/draft\*(rq, +\fIMH\fR has a short\-hand notation to reference a sub\-folder of the +current folder. +Using the `@folder' notation, +the \fIMH\fR user can direct any \fIMH\fR program which expects a `+folder' +argument to look for the folder relative to the current folder instead of the +user's \fIMH\fR directory. +Hence, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq, +then + +.ti +.5i +scan\0@flames + +would do the trick handily. +In addition, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq, + +.ti +.5i +scan\0@../pick + +would scan the folder \*(lq+mh/mh.4/pick\*(rq, +since, in the UNIX fashion, +it references the folder \*(lqpick\*(rq which is a sub\-folder of +the folder that is the parent of the current folder. +Since most advanced \fIMH\fR users seem to exhibit a large degree of locality +in referencing folders when they process mail, +this convention should receive a wide range of uses. + +.UH "The Folder\-Stack" +.pp +The \fIfolder\-stack\fR mechanism in \fIMH\fR gives the \fIMH\fR user a +facility similar to the \fICShell\fR\0's directory\-stack. +Simply put, + +.ti +.5i +folder\0\-push\0+foo + +makes \*(lqfoo\*(rq the current folder, +saving the folder that was previously the current folder on the +\fIfolder\-stack\fR. +As expected, + +.ti +.5i +folder\0\-pop + +takes the top of the \fIfolder\-stack\fR and makes it the current folder. +Each of these switches lists the \fIfolder\-stack\fR when they execute. +It is simple to write a \fIpushf\fR command as a shell script. +It's one line: + +.ti +.5i +exec\0folder\0\-push\0$@ + +Probably a better way is to link \fIfolder\fR to the $HOME/bin/ directory under +the name of \fIpushf\fR and then add the entry + +.ti +.5i +pushf:\0\-push + +to the \&.mh\(ruprofile. +.pp +The manual page for \fIfolder\fR discusses the analogy between the +\fICShell\fR directory stack commands and the switches in \fIfolder\fR which +manipulate the \fIfolder\-stack\fR. +The \fIfolder\fR command uses the context entry `Folder\-Stack:' to keep +track of the folders in the user's stack of folders. +\" +\" On to the Appendices +\" +.fo ''-%-'' +.he '''' +.(x +.sp +Appendix +.)x _ +.de $c \" Major Heading printer +.ce +Appendix \\n+(ch +.sp 2p +.ce +.b "\\s12\\$1\\s0" \" 12 Point Bold Header +.(x +\ \ \ \\n(ch.\\ \\ \\$2 +.)x +.sp 45p \" 45 points or about 1/2 inch +.. +.++ A +.bp +.$c "COMMAND SUMMARY" "Command Summary" +.po -.50i +.so mh-chart.me +.po +.50i +.if t \{ +.ll 32P +.lt 32P +\} +.bp +.$c "MESSAGE NAME BNF" "Message Name BNF" + +.nf +.in 1i +.ta \w'user-defined-sequence 'u +\w':= 'u +\w'user-defined-sequence 'u +msgs := msgspec | + msgs msgspec + +msgspec := msg | + msg-range | + msg-sequence | + user-defined-sequence + +msg := msg-name | + + +msg-name := \*(lqfirst\*(rq | + \*(lqlast\*(rq | + \*(lqcur\*(rq | + \*(lq\&.\*(rq | + \*(lqnext\*(rq | + \*(lqprev\*(rq + +msg-range := msg\*(lq\-\*(rqmsg | + \*(lqall\*(rq + +msg-sequence := msg\*(lq:\*(rqsigned-number + +signed-number := \*(lq+\*(rq | + \*(lq\-\*(rq | + + +user-defined-sequence := | + * +.re +.fi +.sp +.lp +Where is a decimal number greater than zero. +.lp +Msg-range specifies all of the messages in the given range +and must not be empty. +.lp +Msg-sequence specifies up to of messages, beginning +with \*(lqmsg\*(rq (in the case of first, cur, next, or ), +or ending with \*(lqmsg\*(rq (in the case of prev or last). ++ forces \*(lqstarting with msg\*(rq, and \- forces +\*(lqending with number\*(rq. +In all cases, \*(lqmsg\*(rq must exist. +.lp +User\-defined sequences are defined and manipulated with the \fIpick\fR +and \fImark\fR commands. +.in 0 +.bp +.ce +.b \\s12REFERENCES\\s0 +.(x +.sp +REFERENCES +.)x +.sp 3 +.in .4i +.ti 0 +1. Crocker, D. H., J. J. Vittal, K. T. Pogran, and D. A. Henderson, Jr., +\*(lqStandard for the Format of ARPA Network Text Messages,\*(rq +\fIRFC733\fR, +November 1977. + +.ti 0 +2. Thompson, K., and D. M. Ritchie, \*(lqThe UNIX Time-sharing System,\*(rq +\fICommunications of the ACM\fR, Vol. 17, July 1974, pp. 365-375. + +.ti 0 +3. McCauley, E. J., and P. J. Drongowski, \*(lqKSOS\-The Design of a Secure +Operating System,\*(rq \fIAFIPS Conference Proceedings\fR, +National Computer Conference, +Vol. 48, 1979, pp. 345-353. + +.ti 0 +4. Crocker, David H., \fIFramework and Functions of the \*(lqMS\*(rq Personal +Message System\fR, The RAND Corporation, R-2134-ARPA, December 1977. + +.ti 0 +5. Thompson, K., and D. M. Ritchie, \fIUNIX Programmer's Manual\fR, 6th ed., +Western Electric Company, May 1975 (available only to UNIX licensees). + +.ti 0 +6. Crocker, D. H., +\*(lqStandard for the Format of ARPA Internet Text Messages,\*(rq +\fIRFC822\fR, +August 1982. +.de $c +.ce +.b "\\s12\\$1\\s0" \" 12 Point Bold Header +.(x y +.sp +\\$1 +.)x +.sp 3 +.. +.++ P +.bp 1 +.fo '''' +.he ''-%-'' +.+c "READ THIS" +.pp +Although the \fIMH\fR system was originally developed by the RAND Corporation, +and is now in the public domain, +the RAND Corporation assumes no responsibility for \fIMH\fR +or this particular version of \fIMH\fR. +.pp +In addition, +the Regents of the University of California issue the following +\fBdisclaimer\fR in regard to the UCI version of \fIMH\fR: +.sp 1 +.in +.5i +\*(lqAlthough each program has been tested by its contributor, +no warranty, express or implied, +is made by the contributor or the University of California, +as to the accuracy and functioning of the program +and related program material, +nor shall the fact of distribution constitute any such warranty, +and no responsibility is assumed by the contributor +or the University of California in connection herewith.\*(rq +.in -.5i +.pp +This version of \fIMH\fR is in the public domain, +and as such, +there are no real restrictions on its use. +The \fIMH\fR source code and documentation have no licensing restrictions +whatsoever. +As a courtesy, +the authors ask only that you provide appropriate credit to the RAND +Corporation and the University of California for having developed the software. +.pp +\fIMH\fR is a software package that is supported neither by the RAND +Corporation nor the University of California. +However, +since we do use the software ourselves and plan to continue using +(and improving) \fIMH\fR, +bug reports and their associated fixes should be reported back to us so that +we may include them in future releases. +The current computer mailbox for \fIMH\fR is \fBBug\-MH@ICS.UCI.EDU\fR +(in the ARPA Internet), +and \fB...!ucbvax!ucivax!bug\-mh\fR (UUCP). +Presently, +there are two Internet discussion groups, \fBMH\-Users@ICS.UCI.EDU\fR +and \fBMH\-Workers@ICS.UCI.EDU\fR. \fBMH\-Workers\fP is for people +discussing code changes to \fIMH\fP. \fBMH-Users\fP is for general +discussion about how to use \fIMH\fP. +\fBMH\-Users\fR is bi-directionally +gatewayed into USENET as \fBcomp.mail.mh\fR. +.+c "OBTAINING MH" +.pp +Since you probably already have \fIMH\fP, +you may not need to read this unless you suspect you have an old version. +On the Internet, you may retrieve the lastest release from one of: + +.nf +.in +1i +ftp://ftp.ics.uci.edu/pub/mh/mh-6.8.tar.Z +ftp://ftp.uu.uunet/networking/mail/mh/mh-6.8.tar.Z +http://wuarchive.wustl.edu/packages/mail/mh/mh-6.8.tar.Z +.fi +.in -1i + +.lp +This is a tar image after being run through the compress program +(approximately 2Mb). There is also an \fIMH\fP World Wide Web +Home Page at \*(lqhttp://www.ics.uci.edu/\~mh\*(rq +which tells what the current release of \fIMH\fP +is, and how to get updates. +.pp +You may also find MH on +various other hosts; to make sure you get the latest version and +don't waste your time re-fixing bugs, it's best to get it from +either ftp.ics.uci.edu or a site which mirrors ftp.ics.uci.edu. +.pp +Alternatively, you can send $75 US to the address below. +This covers the cost of a 6250 BPI 9-track magtape, +handling, and shipping. In addition, you'll get a +laser-printed hard-copy of the entire MH documentation set. Be +sure to include your USPS address with your check. Checks +must be drawn on U.S\&. funds and should be made payable to: + +.ti +1i +Regents of the University of California + +The distribution address is: + +.nf +.in +1i +Attn: MH distribution +Office of Academic Computing +University of California, Irvine +Irvine, CA 92717-2225 + ++1 714 824 5153 +.fi +.in -1i +.pp +If you just want the hard-copies of the documentation, you +still have to pay the $75. The tar image has the documentation +source (the manual is in roff format, but the rest are in TeX +format). Postscript formatted versions of the TeX papers are +available, as are crude tty-conversions of those papers. +.+c FOREWORD +.pp +This document describes the RAND \fIMH\fR Message Handling System. +Its primary purpose is to serve as a user's manual. +It has been heavily based on a previous version of the manual, +prepared by Bruce Borden, Stockton Gaines, and Norman Shapiro. +.pp +\fIMH\fR is a particularly novel system, +and thus it is often more prone to change than other pieces of production +software. +As such, some specific points in this manual may not be correct in the +future. +In all cases, the on\-line sections of this manual, +available through the UNIX\** \fIman\fR command, +should present the most current information. +.(f +\** UNIX is a trademark of AT&T Bell Laboratories. +.)f +.pp +When reading this document as a user's manual, +certain sections are more interesting than others. +The Preface and Summary are not particularly interesting to those +interested in learning \fIMH\fR. +The Introduction is slightly more interesting, +as it touches upon the organization of the remainder of this document. +The most useful sections are the Overview, Tutorial, and Detailed +Description. +The Overview should be read by all \fIMH\fR users, regardless of their +expertise (beginning, novice, advanced, or hacker). +The Tutorial should be read by all beginning and novice \fIMH\fR users, +as it presents a nice description of the \fIMH\fR system. +The Detailed Description should be read by the day\-to\-day user of \fIMH\fR, +as it spells out all of the realities of the \fIMH\fR system. +The Advanced Features section discusses some powerful \fIMH\fR capabilities for +advanced users. +Appendix A is particularly useful for novices, +as it summarizes the invocation syntax of all the \fIMH\fR commands. +.pp +There are also several other documents which may be useful to you: +\fIThe RAND MH Message Handling System: Tutorial\fR, +which is a tutorial for \fIMH\fR; +\fIThe RAND MH Message Handling System: The UCI BBoards Facility\fR, +which describes the BBoards handling under \fIMH\fR; +\fIMH.5: How to process 200 messages a day and still get some real work +done\fR, +which was presented at the 1985 Summer Usenix Conference and +Exhibition in Portland, Oregon; +\fIMH: A Multifarious User Agent\fR, +which has been accepted for publication by Computer Networks; +\fIMZnet: Mail Service for Personal Micro\-Computer Systems\fR, +which was presented at the First International Symposium on Computer Message +Systems in Nottingham, U.K.; +and, +\fIDesign of the TTI Prototype Trusted Mail Agent\fR, +which describes a proprietary \*(lqtrusted\*(rq mail system built on \fIMH\fR. +There are also documents, mostly specific to U.C.\0Irvine which you may find +interesting: +\fIMH for Beginners\fR, and \fIMH for MM Users\fR. +All of these documents exist in the \fImh.6\fR distribution sent to your +site. +There's also a document, +\fIChanges to the RAND MH Message Handling System: MH.6\fR, +which describes user\-visible changes made to \fIMH\fR since the last major +release. +.pp +This manual is very large, as it describes a large, powerful system in +gruesome detail. +The important thing to remember is: +.sp 2 +.ce +.b "\s+4DON'T PANIC\s0\**" +.sp 2 +As explained in the tutorial, you really need to know only 5 commands to +handle most of your mail. +.(f +\** Note the large, \fIfriendly\fR letters. +.)f +.pp +Very advanced users may wish to consult +\fIThe RAND MH Message Handling System: Administrator's Guide\fR, +which is also present in the \fImh.6\fR distribution sent to your site. +.+c ACKNOWLEDGMENTS +.pp +The \fIMH\fR system described herein is based on the original RAND \fIMH\fR +system. +It has been extensively developed (perhaps too much so) by Marshall T. Rose and +John L. Romine at the University of California, Irvine. +Einar A. Stefferud, Jerry N. Sweet, and Terry P. Domae provided numerous +suggestions to improve the UCI version of \fIMH\fR. +Of course, +a large number of people have helped \fIMH\fR along. +The list of ``\fIMH\fR immortals'' is too long to list here. +However, Van Jacobson deserves a special acknowledgement for his tireless +work in improving the performance of \fIMH\fR. +Some programs have been speeded-up by a factor of 10 or 20. +All of users of \fIMH\fR, everywhere, owe a special thanks to Van. +For this release, numerous \fIMH\-Workers\fP sent in fixes and other +changes. A handful of courageous \fIMH\-Workers\fP volunteered +to beta\-test these changes; their help is particularly appreciated. +.pp +This manual is based on the original \fIMH\fR manual written at RAND by +Bruce Borden, Stockton Gaines, and Norman Shapiro. +.+c PREFACE +.pp +This report describes a system for dealing with messages transmitted on a +computer. Such messages might originate with other users of the same +computer or might come from an outside source through a network to which the user's +computer is connected. Such computer-based message systems are +becoming increasingly widely used, both within and outside the Department +of Defense. +.pp +The message handling system \fIMH\fR was developed for two reasons. +One was to investigate some +research ideas concerning how a message system might take advantage of +the architecture of the UNIX time-sharing operating system for +Digital Equipment Corporation PDP-11 and VAX computers, and the special +features of UNIX's command-level interface with the user (the +\*(lqshell\*(rq). The other reason was to provide a better and more +adaptable base than that of conventional designs +on which to build a command and control message system. +The effort has succeeded in both +regards, although this report mainly describes the message system itself +and how it fits in with UNIX. +.pp +The present report should be of interest to three groups of readers. First, +it is a complete reference manual for the users of \fIMH\fR. +Second, it should be +of interest to those who have a general knowledge of computer-based +message systems, both in civilian and military applications. Finally, +it should be of interest to those who build large subsystems that +interface with users, since it illustrates a new approach to such +interfaces. +.pp +The original \fIMH\fR system was developed by Bruce Borden, +using an approach suggested by Stockton Gaines and Norman Shapiro. +Valuable assistance was provided by Phyllis Kantar in the later +stages of the system's implementation. +Several colleagues +contributed to the ideas included in this system, particularly +Robert Anderson and David Crocker. +In addition, valuable experience +in message systems, and a valuable source of ideas, was available +to us in the form of a previous message system for UNIX called +MS, designed at RAND by David Crocker. +.pp +This report was originally prepared as part of the RAND project entitled +\*(lqData Automation Research\*(rq, sponsored by Project AIR FORCE. +.+c SUMMARY +.pp +Electronic communication of text messages is becoming +commonplace. Computer-based message systems\-software +packages that provide tools for dealing with messages\-are used in many +contexts. In particular, message systems are becoming +increasingly important in command and control and intelligence +applications. +.pp +This report describes a message handling system called \fIMH\fR. +This system provides the user +with tools to compose, send, receive, store, retrieve, forward, and +reply to messages. \fIMH\fR has been built on the UNIX time-sharing system, +a popular operating system developed for the DEC PDP-11 and VAX classes of +computers. +.pp +A complete description of \fIMH\fR is given for users of +the system. For those who do not intend to use the system, this description +gives a general idea of what a message system is like. The system involves +some new ideas about how large subsystems can be constructed. +.pp +The interesting and unusual features of \fIMH\fR include the +following: The user command interface to \fIMH\fR is the UNIX \*(lqshell\*(rq +(the standard UNIX command interpreter). Each separable +component of message handling, such as message composition or +message display, is a separate command. Each program is driven from +and updates a private user environment, which is stored as a file +between program invocations. This private environment also contains +information to \*(lqcustom tailor\*(rq \fIMH\fR to the individual's tastes. +\fIMH\fR stores each message as a separate file under UNIX, and it utilizes the +tree-structured UNIX file system to organize groups of files within +separate directories or \*(lqfolders\*(rq. All of the UNIX facilities +for dealing with files and directories, such as +renaming, copying, deleting, cataloging, off-line printing, etc., are +applicable to messages and directories of messages (folders). Thus, +important capabilities needed in a message system are available in \fIMH\fR +without the need (often seen in other message systems) for code that +duplicates the facilities of the supporting operating system. +It also allows users familiar with the shell to use \fIMH\fR with minimal +effort. +.he '''' +.fo '''' +.bp +.ce +.b \\s12CONTENTS\\s0 +.sp 3 +.xp y +.xp x +.bp +.\" And now the COVER sheet +.po +.325i +.ll 32P +.nf + +.sp 1.5in +.ps 24 +.vs 32 +.ft B +.ce 4 +THE RAND MH +MESSAGE HANDLING +SYSTEM: +USER'S MANUAL +.ft R +.sp .8i +.ps 20 +.vs 24 +.ce +UCI Version +.sp 0.7i +.ce 2 +Marshall T. Rose +John L. Romine +.sp 0.5i +.ce 2 +Based on the original manual by +Borden, Gaines, and Shapiro +.vs +.sp 1i +.ps 18 +.vs 22 +.ce 2 +\*(td +\*(MH diff --git a/docs/historical/mh-6.8.5/doc/MH.ps b/docs/historical/mh-6.8.5/doc/MH.ps new file mode 100644 index 0000000..2f48896 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/MH.ps @@ -0,0 +1,64717 @@ +%!PS-Adobe-1.0 +%%DocumentFonts: +%%Creator: troff->tpscript +%%CreationDate: Tue Dec 5 17:26:15 1995 +%%Pages: (atend) +%%EndComments +/vmstat save def +initmatrix + +0.1000 dup scale +clippath pathbbox pop pop exch pop 0 exch translate +clippath pathbbox /pgtop exch def pop pop pop +/page { copypage erasepage restore save home } def +/home { newpath 0 pgtop moveto } def +/mf { statusdict /manualfeed true put + } def +/af { statusdict /manualfeed false put } def +af +0 0 moveto +2 setlinecap +/y { neg 0 exch rmoveto } def +/X { currentpoint exch pop moveto } def +/Y { pgtop exch sub currentpoint pop exch moveto } def +/s { show } def +/l { neg rlineto currentpoint stroke moveto } def +/c { +2 div /rad exch def currentpoint /y0 exch def /x0 exch def +newpath x0 rad add y0 rad 0 360 arc stroke +x0 rad add rad add y0 moveto + } def +/a { +/y2 exch neg def /x2 exch def /y1 exch neg def /x1 exch def +x1 y1 rmoveto currentpoint +currentpoint +x2 x2 mul y2 y2 mul add sqrt +y1 neg x1 neg atan +y2 x2 atan +newpath arc stroke moveto x2 y2 rmoveto +} def +/e { +2 div /yrad exch def 2 div /xrad exch def +currentpoint /y0 exch def /x0 exch def +x0 xrad add y0 translate +xrad yrad scale +newpath 0 0 1 0 360 arc +savematrix setmatrix +stroke +x0 xrad add xrad add y0 moveto +} def +/spln { +rcurveto currentpoint stroke moveto +} def +/ft { /fonttype exch def /xsiz exch def /ysiz exch def /sl exch def + fonttype [ xsiz pt 0 sl sin sl cos div ysiz pt mul ysiz pt 0 0 ] + makefont setfont + xsiz 1.7 div setlinewidth } def +/pt { 10 mul } def + +-90 230 translate +/savematrix matrix currentmatrix def +/BracketFontDict 9 dict def /$workingdict 10 dict def +BracketFontDict begin +/FontType 3 def +/FontName (Bracket) cvn def +/FontMatrix [ 0.001 0 0 0.001 0 0] def +/FontBBox [ -50 -250 1000 1000 ] def +/Encoding 256 array def 0 1 255 { Encoding exch /.notdef put } for +Encoding +dup 65 /Cbv put +dup 66 /Clt put +dup 67 /Clk put +dup 68 /Clb put +dup 69 /Crt put +dup 70 /Crk put +dup 71 /Crb put +dup 72 /Clc put +dup 73 /Clf put +dup 74 /Crc put +dup 75 /Crf put +dup 76 /Cbr put +dup 77 /Crn put +dup 78 /Cci put +dup 79 /C|| put +dup 80 /C^^ put +dup 81 /Cr1 put +dup 82 /Cr2 put +pop +/CharProcs 24 dict dup begin +/setC { 0 -50 -250 500 1000 setcachedevice} def +/C.bv {220 -250 moveto 0 1000 rlineto +60 0 rlineto 0 -1000 rlineto fill } def +/C.barc { 750 moveto 180 0 rlineto 0 -60 rlineto -180 0 rlineto fill } def +/C.barf { -250 moveto 180 0 rlineto 0 60 rlineto -180 0 rlineto fill } def +/C.brk.end { 1 setlinewidth moveto rlineto rcurveto +reversepath 60 0 rlineto rlineto rcurveto fill } def +/C.setl {dup dtransform exch round exch idtransform pop setlinewidth } def +/Cbv { +500 setC +C.bv +} def +/Clt { +500 setC + 0 150 50 210 140 250 0 730 0 150 50 250 200 250 0 750 220 -250 C.brk.end +} def +/Clk { +500 setC + 1 setlinewidth 220 -250 moveto 0 400 rlineto 0 50 -50 100 -100 100 rcurveto 50 0 100 50 100 100 rcurveto 0 400 rlineto 60 0 rlineto 0 -400 rlineto 0 -50 -50 -100 -100 -100 rcurveto 50 0 100 -50 100 -100 rcurveto 0 -400 rlineto closepath fill +} def +/Clb { +500 setC + 0 -150 50 -210 140 -250 0 -730 0 -150 50 -250 200 -250 0 -750 220 750 C.brk.end +} def +/Crt { +500 setC + 0 150 -50 250 -200 250 0 750 0 150 -50 210 -140 250 0 730 220 -250 C.brk.end +} def +/Crk { +500 setC + 1 setlinewidth 220 -250 moveto 0 400 rlineto 0 50 50 100 100 100 rcurveto -50 0 -100 50 -100 100 rcurveto 0 400 rlineto 60 0 rlineto 0 -400 rlineto 0 -50 50 -100 100 -100 rcurveto -50 0 -100 -50 -100 -100 rcurveto 0 -400 rlineto fill +} def +/Crb { +500 setC + 0 -150 -50 -250 -200 -250 0 -750 0 -150 -50 -210 -140 -250 0 -730 220 750 C.brk.end +} def +/Clc { +500 setC + C.bv 280 C.barc +} def +/Clf { +500 setC + C.bv 280 C.barf +} def +/Crc { +500 setC + C.bv 40 C.barc +} def +/Crf { +500 setC + C.bv 40 C.barf +} def +/Cbr { +0 0 -50 -250 0 1000 setcachedevice + 40 C.setl 0 -250 moveto 0 1000 rlineto stroke +} def +/Crn { +500 setC + 40 C.setl 0 895 moveto 500 0 rlineto stroke +} def +/Cci { +1000 0 -50 -250 1000 1000 setcachedevice + 40 C.setl 500 250 400 0 360 arc stroke +} def +/C|| { +170 0 -50 -250 170 1000 setcachedevice + +} def +/C^^ { +80 0 -50 -250 80 1000 setcachedevice + +} def +/Cr1 { +800 0 -50 -250 800 1000 setcachedevice + 40 C.setl 0 setlinejoin 700 180 moveto -650 currentlinewidth add 0 rlineto 200 -200 rlineto 50 360 moveto 650 currentlinewidth sub 0 rlineto -200 200 rlineto stroke +} def +/Cr2 { +800 0 -50 -250 800 1000 setcachedevice + 40 C.setl 2 setlinejoin 217 18 moveto -150 150 rlineto 150 150 rlineto -150 -150 rlineto 633 0 rlineto 50 360 moveto 633 0 rlineto -150 150 rlineto 150 -150 rlineto -150 -150 rlineto stroke +} def +end def +/BuildChar +{ + $workingdict begin + /charcode exch def + /fontdict exch def + fontdict /CharProcs get begin + fontdict /Encoding get + charcode get load + gsave + 0 setlinecap 0 setgray newpath + exec + grestore + end end +} def end +/BracketFont BracketFontDict definefont pop +/f.R /Times-Roman findfont def +/f.I /Times-Italic findfont def +/f.B /Times-Bold findfont def +/f.BI /Times-BoldItalic findfont def +/f.H /Helvetica findfont def +/f.HB /Helvetica-Bold findfont def +/f.HO /Helvetica-Oblique findfont def +/f.HX /Helvetica-BoldOblique findfont def +/f.C /Courier findfont def +/f.CB /Courier-Bold findfont def +/f.CO /Courier-Oblique findfont def +/f.CX /Courier-BoldOblique findfont def +/f.BR /Bookman-Light findfont def +/f.BO /Bookman-LightItalic findfont def +/f.BB /Bookman-Demi findfont def +/f.BX /Bookman-DemiItalic findfont def +/f.S /Symbol findfont def +/f.S2 /BracketFont findfont def + +0.0 10 10 f.R ft +save +home +%%EndProlog + +0 Y +%%Page: 1 1 + +874 X +1002 Y +2449 X +0.0 10 10 f.I ft(discard)s +2774 X(this)s +2944 X(page)s +874 X +1602 Y +2472 X +0.0 10 10 f.R ft(The)s +2652 X(RAND)s +2960 X +0.0 10 10 f.I ft(MH)s +874 X +1722 Y +2247 X +0.0 10 10 f.R ft(Message)s +2621 X(Handling)s +3018 X(System:)s +874 X +1842 Y +2499 X(User's)s +2784 X(Manual)s +874 X +2082 Y +2537 X(UCI)s +2734 X(Version)s +874 X +2442 Y +2427 X(December)s +2861 X(5,)s +2961 X(1995)s +874 X +2562 Y +2465 X(6.8.3a)s +2734 X(#10[UCI])s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 1 2 + +874 X +960 Y +2255 X +0.0 12 12 f.B ft(1. INTRODUCTION)s +874 X +1572 Y +1124 X +0.0 10 10 f.R ft(Although)s +1536 X(people)s +1836 X(can)s +2007 X(travel)s +2267 X(cross-country)s +2843 X(in)s +2954 X(hours)s +3209 X(and)s +3386 X(can)s +3557 X(reach)s +3805 X(others)s +4082 X(by)s +4215 X(telephone)s +4636 X(in)s +874 X +1692 Y(seconds,)s +1243 X(communications)s +1932 X(still)s +2111 X(depend)s +2427 X(heavily)s +2749 X(upon)s +2977 X(paper,)s +3251 X(most)s +3473 X(of)s +3583 X(which)s +3854 X(is)s +3948 X(distributed)s +4403 X(through)s +874 X +1812 Y(the)s +1021 X(mails.)s +874 X +1974 Y +1124 X(There)s +1398 X(are)s +1561 X(several)s +1885 X(major)s +2160 X(reasons)s +2501 X(for)s +2659 X(this)s +2845 X(continued)s +3280 X(dependence)s +3791 X(on)s +3932 X(written)s +4256 X(documents.)s +874 X +2094 Y(First,)s +1120 X(a)s +1201 X(written)s +1521 X(document)s +1952 X(may)s +2161 X(be)s +2292 X(proofread)s +2716 X(and)s +2896 X(corrected)s +3302 X(prior)s +3532 X(to)s +3646 X(its)s +3777 X(distribution,)s +4300 X(giving)s +4592 X(the)s +874 X +2214 Y(author)s +1165 X(complete)s +1567 X(control)s +1886 X(over)s +2099 X(his)s +2252 X(words.)s +2582 X(Thus,)s +2843 X(a)s +2923 X(written)s +3242 X(document)s +3672 X(is)s +3775 X(better)s +4038 X(than)s +4246 X(a)s +4326 X(telephone)s +874 X +2334 Y(conversation)s +1411 X(in)s +1516 X(this)s +1688 X(respect.)s +2047 X(Second,)s +2393 X(a)s +2464 X(carefully)s +2845 X(written)s +3155 X(document)s +3575 X(is)s +3668 X(far)s +3804 X(less)s +3980 X(likely)s +4234 X(to)s +4338 X(be)s +4458 X(misin-)s +874 X +2454 Y(terpreted)s +1264 X(or)s +1383 X(poorly)s +1680 X(translated)s +2104 X(than)s +2311 X(a)s +2390 X(phone)s +2669 X(conversation.)s +3264 X(Third,)s +3546 X(a)s +3625 X(signature)s +4026 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ers)s +4288 X(reasonable)s +874 X +2574 Y(veri\256cation)s +1354 X(of)s +1462 X(authorship,)s +1934 X(which)s +2203 X(cannot)s +2494 X(be)s +2613 X(provided)s +2993 X(with)s +3196 X(media)s +3465 X(such)s +3673 X(as)s +3781 X(telegrams.)s +874 X +2736 Y +1124 X(However,)s +1545 X(the)s +1698 X(need)s +1917 X(for)s +2064 X(fast)s +2064 X +0.0 10 10 f.S ft(_)s +2108 X(__)s +0.0 10 10 f.R ft(,)s +2264 X(accurate,)s +2651 X(and)s +2825 X(reproducible)s +3359 X(document)s +3783 X(distribution)s +4275 X(is)s +4372 X(obvious.)s +874 X +2856 Y(One)s +1066 X(solution)s +1415 X(in)s +1519 X(widespread)s +1998 X(use)s +2156 X(is)s +2248 X(the)s +2395 X(telefax.)s +2741 X(Another)s +3093 X(that)s +3268 X(is)s +3360 X(rapidly)s +3668 X(gaining)s +3993 X(popularity)s +4429 X(is)s +4521 X(elec-)s +874 X +2976 Y(tronic)s +1154 X(mail.)s +1429 X(Electronic)s +1886 X(mail)s +2111 X(is)s +2225 X(similar)s +2550 X(to)s +2675 X(telefax)s +2993 X(in)s +3118 X(that)s +3315 X(the)s +3484 X(data)s +3697 X(to)s +3822 X(be)s +3963 X(sent)s +4171 X(are)s +4339 X(digitized,)s +874 X +3096 Y(transmitted)s +1353 X(via)s +1504 X(phone)s +1777 X(lines,)s +2019 X(and)s +2191 X(turned)s +2474 X(back)s +2690 X(into)s +2874 X(a)s +2946 X(document)s +3368 X(at)s +3468 X(the)s +3618 X(receiver.)s +4016 X(The)s +4199 X(advantage)s +4631 X(of)s +874 X +3216 Y(electronic)s +1303 X(mail)s +1517 X(is)s +1620 X(in)s +1734 X(its)s +1865 X(compression)s +2406 X(factor.)s +2724 X(Whereas)s +3108 X(a)s +3188 X(telefax)s +3495 X(must)s +3725 X(scan)s +3937 X(a)s +4016 X(page)s +4239 X(in)s +4352 X(very)s +4564 X(\256ne)s +874 X +3336 Y(lines)s +1098 X(and)s +1276 X(send)s +1493 X(all)s +1627 X(of)s +1744 X(the)s +1900 X(black)s +2150 X(and)s +2328 X(white)s +2584 X(information,)s +3115 X(electronic)s +3542 X(mail)s +3754 X(assigns)s +4077 X(characters)s +4514 X(\256xed)s +874 X +3456 Y(codes)s +1132 X(which)s +1407 X(can)s +1576 X(be)s +1701 X(transmitted)s +2182 X(as)s +2296 X(a)s +2371 X(few)s +2551 X(bits)s +2727 X(of)s +2841 X(information.)s +3394 X(Telefax)s +3729 X(presently)s +4126 X(has)s +4290 X(the)s +4443 X(advan-)s +874 X +3576 Y(tage)s +1068 X(of)s +1179 X(being)s +1428 X(able)s +1621 X(to)s +1726 X(transmit)s +2081 X(an)s +2202 X(arbitrary)s +2572 X(page,)s +2812 X(including)s +3217 X(pictures,)s +3585 X(but)s +3740 X(electronic)s +4160 X(mail)s +4365 X(is)s +4459 X(begin-)s +874 X +3696 Y(ning)s +1086 X(to)s +1198 X(deal)s +1398 X(with)s +1610 X(this)s +1789 X(problem.)s +2206 X(Electronic)s +2650 X(mail)s +2862 X(also)s +3057 X(integrates)s +3478 X(well)s +3683 X(with)s +3894 X(current)s +4209 X(directions)s +4636 X(in)s +874 X +3816 Y(o)s +Cff(ice)s +1131 X(automation,)s +1636 X(allowing)s +2016 X(documents)s +2479 X(prepared)s +2857 X(with)s +3065 X(sophisticated)s +3617 X(equipment)s +4069 X(at)s +4171 X(one)s +4345 X(site)s +4513 X(to)s +4620 X(be)s +874 X +3936 Y(quickly)s +1199 X(transferred)s +1655 X(and)s +1824 X(printed)s +2132 X(at)s +2229 X(another)s +2553 X(site.)s +874 X +4098 Y +1124 X(Currently,)s +1589 X(most)s +1840 X(electronic)s +2289 X(mail)s +2523 X(is)s +2646 X(intraorganizational,)s +3481 X(with)s +3715 X(mail)s +3949 X(transfer)s +4309 X(remaining)s +874 X +4218 Y(within)s +1160 X(one)s +1334 X(computer.)s +1791 X(As)s +1931 X(computer)s +2337 X(networking)s +2821 X(becomes)s +3199 X(more)s +3433 X(common,)s +3837 X(however,)s +4234 X(it)s +4319 X(is)s +4415 X(becom-)s +874 X +4338 Y(ing)s +1028 X(more)s +1259 X(feasible)s +1594 X(to)s +1697 X(communicate)s +2260 X(with)s +2463 X(anyone)s +2776 X(whose)s +3056 X(computer)s +3458 X(can)s +3621 X(be)s +3740 X(linked)s +4015 X(to)s +4118 X(your)s +4326 X(own)s +4523 X(via)s +4670 X(a)s +874 X +4458 Y(network.)s +874 X +4620 Y +1124 X(The)s +1319 X(pioneering)s +1786 X(e)s +Cff(orts)s +2080 X(on)s +2219 X(general-purpose)s +2900 X(electronic)s +3332 X(mail)s +3549 X(were)s +3781 X(by)s +3920 X(organizations)s +4497 X(using)s +874 X +4740 Y(the)s +1028 X(DoD)s +1254 X(ARPAnet[1].)s +1841 X(The)s +2027 X(capability)s +2452 X(to)s +2561 X(send)s +2775 X(messages)s +3183 X(between)s +3546 X(computers)s +3993 X(existed)s +4307 X(before)s +4592 X(the)s +874 X +4860 Y(ARPAnet)s +1314 X(was)s +1519 X(developed,)s +2004 X(but)s +2182 X(it)s +2288 X(was)s +2493 X(used)s +2726 X(only)s +2954 X(in)s +3082 X(limited)s +3416 X(ways.)s +3721 X(With)s +3971 X(the)s +4143 X(advent)s +4459 X(of)s +4592 X(the)s +874 X +4980 Y(ARPAnet,)s +1322 X(tools)s +1551 X(began)s +1823 X(to)s +1935 X(be)s +2063 X(developed)s +2507 X(which)s +2785 X(made)s +3035 X(it)s +3124 X(convenient)s +3595 X(for)s +3744 X(individuals)s +4222 X(or)s +4338 X(organiza-)s +874 X +5100 Y(tions)s +1095 X(to)s +1199 X(distribute)s +1603 X(messages)s +2006 X(over)s +2209 X(broad)s +2461 X(geographic)s +2929 X(areas,)s +3183 X(using)s +3425 X(diverse)s +3738 X(computer)s +4140 X(facilities.)s +4559 X(The)s +874 X +5220 Y(interest)s +1196 X(and)s +1368 X(activity)s +1696 X(in)s +1802 X(message)s +2168 X(systems)s +2513 X(has)s +2674 X(now)s +2873 X(reached)s +3209 X(such)s +3419 X(proportions)s +3907 X(that)s +4084 X(steps)s +4311 X(have)s +4526 X(been)s +874 X +5340 Y(taken)s +1127 X(within)s +1420 X(the)s +1579 X(DoD)s +1810 X(to)s +1925 X(coordinate)s +2383 X(and)s +2564 X(unify)s +2812 X(the)s +2971 X(development)s +3524 X(of)s +3644 X(military)s +3998 X(message)s +4372 X(systems.)s +874 X +5460 Y(The)s +1059 X(use)s +1222 X(of)s +1335 X(electronic)s +1758 X(mail)s +1966 X(is)s +2063 X(expected)s +2447 X(to)s +2554 X(increase)s +2909 X(dramatically)s +3437 X(in)s +3544 X(the)s +3695 X(next)s +3896 X(few)s +4074 X(years.)s +4363 X(The)s +4547 X(util-)s +874 X +5580 Y(ity)s +1020 X(of)s +1142 X(such)s +1364 X(systems)s +1720 X(in)s +1837 X(the)s +1998 X(command)s +2431 X(and)s +2614 X(control)s +2936 X(and)s +3119 X(intelligence)s +3624 X(environments)s +4207 X(is)s +4313 X(clear,)s +4570 X(and)s +874 X +5700 Y(applications)s +1391 X(in)s +1503 X(these)s +1742 X(areas)s +1980 X(will)s +2170 X(probably)s +2559 X(lead)s +2758 X(the)s +2913 X(way.)s +3162 X(As)s +3306 X(the)s +3461 X(costs)s +3694 X(for)s +3843 X(sending)s +4187 X(and)s +4364 X(handling)s +874 X +5820 Y(electronic)s +1299 X(messages)s +1708 X(continue)s +2084 X(their)s +2299 X(rapid)s +2536 X(decrease,)s +2935 X(such)s +3149 X(uses)s +3352 X(can)s +3521 X(be)s +3646 X(expected)s +4031 X(to)s +4140 X(spread)s +4431 X(rapidly)s +874 X +5940 Y(into)s +1055 X(other)s +1285 X(areas)s +1514 X(and,)s +1708 X(of)s +1816 X(course,)s +2126 X(will)s +2307 X(not)s +2460 X(be)s +2579 X(limited)s +2888 X(to)s +2991 X(the)s +3138 X(DoD.)s +874 X +6102 Y +1124 X(A)s +1226 X(message)s +1594 X(system)s +1902 X(provides)s +2276 X(tools)s +2501 X(that)s +2681 X(help)s +2883 X(users)s +3118 X(\(individuals)s +3626 X(or)s +3739 X(organizations\))s +4340 X(deal)s +4536 X(with)s +874 X +6222 Y(messages)s +1283 X(in)s +1393 X(various)s +1719 X(ways.)s +2006 X(Messages)s +2426 X(must)s +2653 X(be)s +2779 X(composed,)s +3241 X(sent,)s +3459 X(received,)s +3853 X(stored,)s +4154 X(retrieved,)s +4565 X(for-)s +874 X +6342 Y(warded,)s +1225 X(and)s +1402 X(replied)s +1712 X(to.)s +1873 X(Today's)s +2233 X(best)s +2427 X(interactive)s +2881 X(computer)s +3290 X(systems)s +3639 X(provide)s +3976 X(a)s +4052 X(variety)s +4361 X(of)s +4476 X(word-)s +874 X +6462 Y(processing)s +1341 X(and)s +1525 X(information)s +2037 X(handling)s +2427 X(capabilities.)s +2971 X(The)s +3165 X(message)s +3542 X(handling)s +3931 X(facilities)s +4314 X(should)s +4620 X(be)s +874 X +6582 Y(well)s +1081 X(integrated)s +1515 X(with)s +1728 X(the)s +1885 X(rest)s +2063 X(of)s +2180 X(the)s +2336 X(system,)s +2673 X(so)s +2796 X(as)s +2913 X(to)s +3025 X(be)s +3153 X(a)s +3231 X(graceful)s +3591 X(extension)s +4008 X(of)s +4125 X(overall)s +4436 X(system)s +874 X +6702 Y(capability.)s +874 X +6864 Y +1124 X(The)s +1310 X(message)s +1679 X(system)s +1988 X(described)s +2401 X(in)s +2509 X(this)s +2684 X(report,)s +2977 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +3187 X(provides)s +3561 X(most)s +3786 X(of)s +3899 X(the)s +4051 X(features)s +4396 X(that)s +4576 X(can)s +874 X +6984 Y(be)s +1000 X(found)s +1265 X(in)s +1375 X(other)s +1612 X(message)s +1982 X(systems)s +2330 X(and)s +2505 X(also)s +2697 X(incorporates)s +3221 X(some)s +3463 X(new)s +3660 X(ones.)s +3924 X(It)s +4016 X(has)s +4180 X(been)s +4399 X(built)s +4614 X(on)s +874 X +7124 Y(the)s +1024 X(UNIX)s +1301 X(time-sharing)s +1834 X(system[2],)s +2281 X(a)s +2353 X(popular)s +2686 X(operating)s +3091 X(system)s +3396 X(for)s +3539 X(the)s +3688 X(DEC)s +3915 X(PDP-11)s +7084 Y +0.0 7 7 f.R ft(1)s +7124 Y +4294 X +0.0 10 10 f.R ft(and)s +4465 X(VAX-)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 2 3 + +874 X +600 Y +2736 X +0.0 10 10 f.B ft(-2-)s +874 X +960 Y +0.0 10 10 f.R ft(11)s +1017 X(classes)s +1336 X(of)s +1461 X(computers.)s +1969 X(A)s +2083 X(``secure'')s +2511 X(operating)s +2930 X(system)s +3250 X(similar)s +3570 X(to)s +3690 X(UNIX)s +3981 X(is)s +4090 X(currently)s +4492 X(being)s +874 X +1080 Y(developed[3],)s +1450 X(and)s +1619 X(that)s +1794 X(system)s +2097 X(will)s +2278 X(also)s +2464 X(run)s +2622 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +874 X +1242 Y +1124 X(This)s +1351 X(report)s +1638 X(provides)s +2031 X(a)s +2124 X(complete)s +2539 X(description)s +3032 X(of)s +3164 X +0.0 10 10 f.I ft(MH)s +3368 X +0.0 10 10 f.R ft(and)s +3560 X(thus)s +3775 X(may)s +3995 X(serve)s +4253 X(as)s +4384 X(a)s +4476 X(user's)s +874 X +1362 Y(manual,)s +1225 X(although)s +1606 X(parts)s +1831 X(of)s +1945 X(the)s +2098 X(report)s +2367 X(will)s +2554 X(be)s +2679 X(of)s +2793 X(interest)s +3118 X(to)s +3227 X(non-users)s +3646 X(as)s +3760 X(well.)s +4013 X(Sections)s +4383 X(2)s +4464 X(and)s +4639 X(3,)s +874 X +1482 Y(the)s +1030 X(Overview)s +1457 X(and)s +1635 X(Tutorial,)s +2016 X(present)s +2337 X(the)s +2492 X(key)s +2669 X(ideas)s +2907 X(of)s +3023 X +0.0 10 10 f.I ft(MH)s +3211 X +0.0 10 10 f.R ft(and)s +3388 X(will)s +3577 X(give)s +3782 X(those)s +4026 X(not)s +4187 X(familiar)s +4536 X(with)s +874 X +1602 Y(message)s +1237 X(systems)s +1579 X(an)s +1698 X(idea)s +1889 X(of)s +1997 X(what)s +2216 X(such)s +2424 X(systems)s +2766 X(are)s +2912 X(like.)s +874 X +1764 Y +1124 X +0.0 10 10 f.I ft(MH)s +1315 X +0.0 10 10 f.R ft(consists)s +1668 X(of)s +1787 X(a)s +1867 X(set)s +2014 X(of)s +2133 X(commands)s +2602 X(which)s +2882 X(use)s +3051 X(some)s +3298 X(special)s +3610 X(\256les)s +3812 X(and)s +3991 X(conventions.)s +4559 X(The)s +874 X +1884 Y(\256nal)s +1089 X(section)s +1409 X(is)s +1512 X(divided)s +1848 X(into)s +2040 X(three)s +2275 X(parts.)s +2555 X(The)s +2746 X(\256rst)s +2938 X(part)s +3129 X(covers)s +3425 X(the)s +3583 X(information)s +4091 X(a)s +4171 X(user)s +4373 X(needs)s +4636 X(to)s +874 X +2004 Y(know)s +1133 X(in)s +1248 X(addition)s +1613 X(to)s +1728 X(the)s +1887 X(commands.)s +2407 X(Then,)s +2674 X(each)s +2893 X(of)s +3013 X(the)s +3172 X +0.0 10 10 f.I ft(MH)s +3363 X +0.0 10 10 f.R ft(commands)s +3832 X(is)s +3935 X(described)s +4353 X(in)s +4467 X(detail.)s +874 X +2124 Y(Finally,)s +1212 X(other)s +1446 X(obscure)s +1785 X(details)s +2075 X(are)s +2225 X(revealed.)s +2641 X(A)s +2742 X(summary)s +3143 X(of)s +3255 X(the)s +3406 X(commands)s +3868 X(is)s +3964 X(given)s +4214 X(in)s +4320 X(Appendix)s +874 X +2244 Y(A,)s +996 X(and)s +1165 X(the)s +1312 X(syntax)s +1598 X(of)s +1706 X(message)s +2069 X(sequences)s +2498 X(is)s +2590 X(given)s +2837 X(in)s +2940 X(Appendix)s +3359 X(B.)s +874 X +2406 Y +1124 X(A)s +1222 X(novel)s +1470 X(approach)s +1861 X(has)s +2020 X(been)s +2234 X(taken)s +2476 X(in)s +2580 X(the)s +2728 X(design)s +3015 X(of)s +3124 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +3354 X(Instead)s +3667 X(of)s +3775 X(creating)s +4121 X(a)s +4190 X(large)s +4414 X(subsys-)s +874 X +2526 Y(tem)s +1069 X(that)s +1263 X(appears)s +1611 X(as)s +1738 X(a)s +1826 X(single)s +2109 X(command)s +2547 X(to)s +2669 X(the)s +2835 X(user)s +3045 X(\(such)s +3305 X(as)s +3432 X(MS[4]\),)s +3795 X +0.0 10 10 f.I ft(MH)s +3994 X +0.0 10 10 f.R ft(is)s +4105 X(a)s +4193 X(collection)s +4631 X(of)s +874 X +2646 Y(separate)s +1225 X(commands)s +1683 X(which)s +1952 X(are)s +2098 X(run)s +2256 X(as)s +2364 X(separate)s +2715 X(programs.)s +3167 X(The)s +3347 X(\256le)s +3500 X(and)s +3669 X(directory)s +4054 X(system)s +4357 X(of)s +4465 X(UNIX)s +874 X +2766 Y(are)s +1023 X(used)s +1234 X(directly.)s +1617 X(Messages)s +2033 X(are)s +2182 X(stored)s +2454 X(as)s +2564 X(individual)s +2997 X(\256les)s +3191 X(\(datasets\),)s +3625 X(and)s +3796 X(collections)s +4256 X(of)s +4366 X(them)s +4593 X(are)s +874 X +2886 Y(grouped)s +1232 X(into)s +1419 X(directories.)s +1921 X(In)s +2035 X(contrast,)s +2407 X(most)s +2633 X(other)s +2869 X(message)s +3238 X(systems)s +3586 X(store)s +3811 X(messages)s +4219 X(in)s +4328 X(a)s +4403 X(compli-)s +874 X +3006 Y(cated)s +1115 X(data)s +1312 X(structure)s +1691 X(within)s +1977 X(a)s +2051 X(monolithic)s +2515 X(\256le.)s +2723 X(With)s +2953 X(the)s +3105 X +0.0 10 10 f.I ft(MH)s +3290 X +0.0 10 10 f.R ft(approach,)s +3710 X(UNIX)s +3989 X(commands)s +4452 X(can)s +4620 X(be)s +874 X +3126 Y(interleaved)s +1349 X(with)s +1558 X(commands)s +2022 X(invoking)s +2409 X(the)s +2562 X(functions)s +2965 X(of)s +3079 X(the)s +3232 X(message)s +3601 X(handler.)s +3981 X(Conversely,)s +4492 X(exist-)s +874 X +3246 Y(ing)s +1042 X(UNIX)s +1331 X(commands)s +1804 X(can)s +1982 X(be)s +2116 X(used)s +2339 X(in)s +2457 X(connection)s +2935 X(with)s +3153 X(messages.)s +3620 X(For)s +3799 X(example,)s +4202 X(all)s +4342 X(the)s +4503 X(usual)s +874 X +3366 Y(UNIX)s +1152 X(editing,)s +1484 X(text-formatting,)s +2143 X(and)s +2316 X(printing)s +2662 X(facilities)s +3035 X(can)s +3202 X(be)s +3325 X(applied)s +3647 X(directly)s +3980 X(to)s +4086 X(individual)s +4520 X(mes-)s +874 X +3486 Y(sages.)s +1166 X(MH,)s +1378 X(therefore,)s +1788 X(consists)s +2131 X(of)s +2240 X(a)s +2309 X(relatively)s +2711 X(small)s +2953 X(amount)s +3278 X(of)s +3386 X(new)s +3577 X(code;)s +3818 X(it)s +3899 X(makes)s +4179 X(extensive)s +4581 X(use)s +874 X +3606 Y(of)s +982 X(other)s +1212 X(UNIX)s +1486 X(software)s +1854 X(to)s +1957 X(provide)s +2287 X(the)s +2434 X(capabilities)s +2914 X(found)s +3172 X(in)s +3275 X(other)s +3505 X(message)s +3868 X(systems.)s +874 X +6892 Y +1090 X +0.0 5 5 f.R ft(1)s +6924 Y +1135 X +0.0 8 8 f.R ft(PDP)s +1303 X(and)s +1438 X(VAX)s +1632 X(are)s +1748 X(trademarks)s +2120 X(of)s +2206 X(Digital)s +2447 X(Equipment)s +2817 X(Corporation.)s +7920 Y +page +0.0 8 8 f.R ft +%%Page: 3 4 + +874 X +960 Y +2394 X +0.0 12 12 f.B ft(2. OVERVIEW)s +874 X +1572 Y +1124 X +0.0 10 10 f.R ft(There)s +1386 X(are)s +1537 X(three)s +1766 X(main)s +1996 X(aspects)s +2314 X(of)s +2427 X +0.0 10 10 f.I ft(MH)s +2632 X +0.0 10 10 f.R ft(:)s +2714 X(the)s +2890 X(way)s +3110 X(messages)s +3541 X(are)s +3691 X(stored)s +3964 X(\(the)s +4148 X(message)s +4515 X(data-)s +874 X +1692 Y(base\),)s +1141 X(the)s +1295 X(user's)s +1565 X(pro\256le)s +1858 X(\(which)s +2167 X(directs)s +2464 X(how)s +2667 X(certain)s +2969 X(actions)s +3283 X(of)s +3397 X(the)s +3550 X(message)s +3919 X(handler)s +4249 X(take)s +4446 X(place\),)s +874 X +1812 Y(and)s +1043 X(the)s +1190 X(commands)s +1648 X(for)s +1789 X(dealing)s +2108 X(with)s +2311 X(messages.)s +874 X +1974 Y +1124 X(Under)s +1406 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +1619 X(each)s +1834 X(message)s +2204 X(is)s +2303 X(stored)s +2579 X(as)s +2694 X(a)s +2770 X(separate)s +3128 X(\256le.)s +3338 X(A)s +3442 X(user)s +3640 X(can)s +3810 X(take)s +4008 X(any)s +4184 X(action)s +4460 X(with)s +4670 X(a)s +874 X +2094 Y(message)s +1239 X(that)s +1416 X(he)s +1537 X(could)s +1786 X(with)s +1990 X(an)s +2110 X(ordinary)s +2474 X(\256le)s +2628 X(in)s +2732 X(UNIX.)s +3057 X(A)s +3155 X(UNIX)s +3430 X(directory)s +3816 X(in)s +3920 X(which)s +4190 X(messages)s +4593 X(are)s +874 X +2214 Y(stored)s +1154 X(is)s +1257 X(called)s +1531 X(a)s +1611 X(folder.)s +1935 X(Each)s +2170 X(folder)s +2444 X(contains)s +2813 X(some)s +3060 X(standard)s +3434 X(entries)s +3736 X(to)s +3850 X(support)s +4186 X(the)s +4343 X(message-)s +874 X +2334 Y(handling)s +1266 X(functions.)s +1730 X(The)s +1927 X(messages)s +2346 X(in)s +2466 X(a)s +2552 X(folder)s +2832 X(have)s +3062 X(numerical)s +3503 X(names.)s +3850 X(These)s +4130 X(folders)s +4449 X(\(direc-)s +874 X +2454 Y(tories\))s +1156 X(are)s +1304 X(entries)s +1597 X(in)s +1701 X(a)s +1771 X(particular)s +2179 X(directory)s +2565 X(path,)s +2788 X(described)s +3196 X(in)s +3300 X(the)s +3448 X(user)s +3640 X(pro\256le,)s +3952 X(through)s +4289 X(which)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +2574 Y +0.0 10 10 f.R ft(can)s +1039 X(\256nd)s +1222 X(message)s +1587 X(folders.)s +1941 X(Using)s +2207 X(the)s +2356 X(UNIX)s +2632 X(``link'')s +2946 X(facility,)s +3280 X(it)s +3362 X(is)s +3455 X(possible)s +3809 X(for)s +3951 X(one)s +4121 X(copy)s +4341 X(of)s +4450 X(a)s +4520 X(mes-)s +874 X +2694 Y(sage)s +1079 X(to)s +1185 X(be)s +1307 X(``\256led'')s +1645 X(in)s +1751 X(more)s +1984 X(than)s +2184 X(one)s +2356 X(folder,)s +2646 X(providing)s +3062 X(a)s +3133 X(message)s +3498 X(index)s +3747 X(facility.)s +4107 X(Also,)s +4348 X(using)s +4592 X(the)s +874 X +2814 Y(UNIX)s +1162 X(tree-structured)s +1782 X(\256le)s +1949 X(system,)s +2291 X(it)s +2385 X(is)s +2490 X(possible)s +2856 X(to)s +2972 X(have)s +3198 X(a)s +3280 X(folder)s +3556 X(within)s +3850 X(a)s +3932 X(folder,)s +4233 X(nested)s +4526 X(arbi-)s +874 X +2934 Y(trarily)s +1143 X(deep,)s +1381 X(and)s +1550 X(have)s +1763 X(the)s +1910 X(full)s +2074 X(power)s +2348 X(of)s +2456 X(the)s +2603 X +0.0 10 10 f.I ft(MH)s +2783 X +0.0 10 10 f.R ft(commands)s +3241 X(available.)s +874 X +3096 Y +1124 X(Each)s +1356 X(user)s +1555 X(of)s +1671 X +0.0 10 10 f.I ft(MH)s +1859 X +0.0 10 10 f.R ft(has)s +2025 X(a)s +2102 X(user)s +2301 X(pro\256le,)s +2620 X(a)s +2696 X(\256le)s +2856 X(in)s +2966 X(his)s +3115 X +0.0 10 10 f.B ft($HOME)s +3514 X +0.0 10 10 f.R ft(\(initial)s +3813 X(login\))s +4084 X(directory)s +4476 X(called)s +874 X +3216 Y +0.0 10 10 f.I ft(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +0.0 10 10 f.R ft(.)s +1414 X(This)s +1624 X(pro\256le)s +1917 X(contains)s +2282 X(several)s +2596 X(pieces)s +2877 X(of)s +2991 X(information)s +3494 X(used)s +3708 X(by)s +3839 X(the)s +3992 X +0.0 10 10 f.I ft(MH)s +4178 X +0.0 10 10 f.R ft(commands:)s +4670 X(a)s +874 X +3336 Y(path)s +1088 X(name)s +1345 X(to)s +1464 X(the)s +1627 X(directory)s +2028 X(that)s +2219 X(contains)s +2593 X(the)s +2756 X(message)s +3135 X(folders)s +3453 X(and)s +3638 X(parameters)s +4116 X(that)s +4307 X(tailor)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +3456 Y +0.0 10 10 f.R ft(commands)s +1334 X(to)s +1439 X(the)s +1588 X(individual)s +2021 X(user's)s +2286 X(requirements.)s +2884 X(There)s +3143 X(is)s +3237 X(also)s +3425 X(another)s +3751 X(\256le,)s +3931 X(called)s +4196 X(the)s +4345 X(user)s +4537 X(con-)s +874 X +3576 Y(text,)s +1112 X(which)s +1419 X(contains)s +1815 X(information)s +2350 X(concerning)s +2856 X(which)s +3163 X(folder)s +3464 X(the)s +3649 X(user)s +3877 X(last)s +4078 X(referenced)s +4559 X(\(the)s +874 X +3696 Y(``current'')s +1317 X(folder\).)s +1667 X(It)s +1757 X(also)s +1947 X(contains)s +2309 X(most)s +2533 X(of)s +2645 X(the)s +2795 X(necessary)s +3210 X(state)s +3421 X(information)s +3921 X(concerning)s +4392 X(how)s +4592 X(the)s +874 X +3816 Y(user)s +1068 X(is)s +1163 X(dealing)s +1485 X(with)s +1691 X(his)s +1836 X(messages,)s +2266 X(enabling)s +2638 X +0.0 10 10 f.I ft(MH)s +2821 X +0.0 10 10 f.R ft(to)s +2927 X(be)s +3049 X(implemented)s +3599 X(as)s +3710 X(a)s +3782 X(set)s +3921 X(of)s +4032 X(individual)s +4465 X(UNIX)s +874 X +3936 Y(commands,)s +1357 X(in)s +1460 X(contrast)s +1801 X(to)s +1904 X(the)s +2051 X(usual)s +2287 X(approach)s +2677 X(of)s +2785 X(a)s +2854 X(monolithic)s +3313 X(subsystem.)s +874 X +4098 Y +1124 X(In)s +1239 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +1451 X(incoming)s +1861 X(mail)s +2071 X(is)s +2170 X(appended)s +2584 X(to)s +2694 X(the)s +2848 X(end)s +3024 X(of)s +3139 X(a)s +3215 X(\256le)s +3375 X(in)s +3485 X(a)s +3561 X(system)s +3871 X(spooling)s +4248 X(area)s +4445 X(for)s +4592 X(the)s +874 X +4218 Y(user.)s +1115 X(This)s +1318 X(area)s +1508 X(is)s +1600 X(called)s +1863 X(the)s +2010 X(mail)s +2213 X(drop)s +2421 X(directory,)s +2831 X(and)s +3000 X(the)s +3147 X(\256le)s +3300 X(is)s +3392 X(called)s +3655 X(the)s +3802 X(user's)s +4065 X(mail)s +4268 X(drop.)s +4526 X(Nor-)s +874 X +4338 Y(mally)s +1134 X(when)s +1382 X(the)s +1536 X(user)s +1734 X(logins)s +2011 X(in,)s +2146 X(s/he)s +2339 X(is)s +2438 X(informed)s +2836 X(of)s +2951 X(new)s +3148 X(mail)s +3357 X(\(or)s +3504 X(the)s +3657 X +0.0 10 10 f.I ft(MH)s +3843 X +0.0 10 10 f.R ft(program)s +4212 X +0.0 10 10 f.I ft(msgchk)s +4542 X +0.0 10 10 f.R ft(may)s +874 X +4458 Y(be)s +995 X(run\).)s +1238 X(The)s +1420 X(user)s +1613 X(adds)s +1823 X(the)s +1972 X(new)s +2165 X(messages)s +2569 X(to)s +2673 X(his/her)s +2971 X(collection)s +3391 X(of)s +3500 X +0.0 10 10 f.I ft(MH)s +3681 X +0.0 10 10 f.R ft(messages)s +4084 X(by)s +4210 X(invoking)s +4592 X(the)s +874 X +4578 Y(command)s +1317 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft(.)s +1538 X(The)s +1742 X +0.0 10 10 f.I ft(inc)s +1913 X +0.0 10 10 f.R ft(\(incorporate\))s +2482 X(command)s +2925 X(adds)s +3157 X(the)s +3328 X(new)s +3543 X(messages)s +3969 X(to)s +4096 X(a)s +4189 X(folder)s +4476 X(called)s +874 X +4698 Y(``inbox'',)s +1294 X(assigning)s +1706 X(them)s +1940 X(names)s +2229 X(which)s +2507 X(are)s +2662 X(consecutive)s +3167 X(integers)s +3517 X(starting)s +3851 X(with)s +4063 X(the)s +4219 X(next)s +4425 X(highest)s +874 X +4818 Y(integer)s +1196 X(available)s +1601 X(in)s +1723 X(inbox.)s +2045 X +0.0 10 10 f.I ft(inc)s +2211 X +0.0 10 10 f.R ft(also)s +2416 X(produces)s +2820 X(a)s +2908 X +0.0 10 10 f.I ft(scan)s +3135 X +0.0 10 10 f.R ft(summary)s +3551 X(of)s +3678 X(the)s +3844 X(messages)s +4265 X(thus)s +4476 X(incor-)s +874 X +4938 Y(porated.)s +1250 X(A)s +1349 X(folder)s +1614 X(can)s +1779 X(be)s +1900 X(compacted)s +2359 X(into)s +2542 X(a)s +2613 X(single)s +2879 X(\256le,)s +3059 X(for)s +3202 X(easy)s +3406 X(storage,)s +3746 X(by)s +3873 X(using)s +4117 X(the)s +4266 X +0.0 10 10 f.I ft(packf)s +4509 X +0.0 10 10 f.R ft(com-)s +874 X +5058 Y(mand.)s +1171 X(Also,)s +1410 X(messages)s +1812 X(within)s +2093 X(a)s +2162 X(folder)s +2425 X(can)s +2588 X(be)s +2707 X(sorted)s +2976 X(by)s +3101 X(date)s +3292 X(and)s +3461 X(time)s +3664 X(with)s +3867 X(the)s +4014 X +0.0 10 10 f.I ft(sortm)s +4267 X +0.0 10 10 f.R ft(command.)s +874 X +5340 Y +1124 X(There)s +1388 X(are)s +1541 X(four)s +1739 X(commands)s +2204 X(for)s +2352 X(examining)s +2806 X(the)s +2960 X(messages)s +3369 X(in)s +3479 X(a)s +3555 X(folder:)s +3853 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +4115 X +0.0 10 10 f.I ft(prev)s +0.0 10 10 f.R ft(,)s +4348 X +0.0 10 10 f.I ft(next)s +0.0 10 10 f.R ft(,)s +4570 X(and)s +874 X +5460 Y +0.0 10 10 f.I ft(scan)s +0.0 10 10 f.R ft(.)s +1136 X(The)s +1320 X +0.0 10 10 f.I ft(show)s +1555 X +0.0 10 10 f.R ft(command)s +1978 X(displays)s +2335 X(a)s +2408 X(message)s +2775 X(in)s +2881 X(a)s +2953 X(folder,)s +3244 X +0.0 10 10 f.I ft(prev)s +3449 X +0.0 10 10 f.R ft(displays)s +3805 X(the)s +3955 X(message)s +4321 X(preceding)s +874 X +5580 Y(the)s +1023 X(current)s +1332 X(message,)s +1722 X(and)s +1893 X +0.0 10 10 f.I ft(next)s +2086 X +0.0 10 10 f.R ft(displays)s +2441 X(the)s +2590 X(message)s +2955 X(following)s +3371 X(the)s +3520 X(current)s +3829 X(message.)s +4244 X +0.0 10 10 f.I ft(MH)s +4426 X +0.0 10 10 f.R ft(lets)s +4592 X(the)s +874 X +5700 Y(user)s +1079 X(choose)s +1395 X(the)s +1556 X(program)s +1933 X(that)s +2122 X(displays)s +2489 X(individual)s +2934 X(messages.)s +3400 X(A)s +3511 X(special)s +3827 X(program,)s +4229 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(,)s +4443 X(can)s +4620 X(be)s +874 X +5820 Y(used)s +1088 X(to)s +1197 X(display)s +1517 X(messages)s +1925 X(according)s +2349 X(to)s +2457 X(the)s +2609 X(user's)s +2877 X(preferences.)s +3415 X(The)s +3600 X +0.0 10 10 f.I ft(scan)s +3813 X +0.0 10 10 f.R ft(command)s +4237 X(summarizes)s +874 X +5940 Y(the)s +1028 X(messages)s +1436 X(in)s +1545 X(a)s +1620 X(folder,)s +1914 X(normally)s +2306 X(producing)s +2742 X(one)s +2917 X(line)s +3098 X(per)s +3256 X(message,)s +3650 X(showing)s +4020 X(who)s +4223 X(the)s +4376 X(message)s +874 X +6060 Y(is)s +966 X(from,)s +1210 X(the)s +1357 X(date,)s +1573 X(the)s +1720 X(subject,)s +2053 X(etc.)s +874 X +6222 Y +1124 X(The)s +1305 X(user)s +1497 X(may)s +1695 X(move)s +1943 X(a)s +2013 X(message)s +2377 X(from)s +2597 X(one)s +2767 X(folder)s +3031 X(to)s +3135 X(another)s +3460 X(with)s +3663 X(the)s +3810 X(command)s +4229 X +0.0 10 10 f.I ft(re\256le)s +0.0 10 10 f.R ft(.)s +4509 X(Mes-)s +874 X +6342 Y(sages)s +1122 X(may)s +1325 X(be)s +1450 X(removed)s +1830 X(from)s +2055 X(a)s +2130 X(folder)s +2399 X(by)s +2530 X(means)s +2816 X(of)s +2930 X(the)s +3083 X(command)s +3508 X +0.0 10 10 f.I ft(rmm)s +0.0 10 10 f.R ft(.)s +3772 X(In)s +3886 X(addition,)s +4270 X(a)s +4345 X(user)s +4542 X(may)s +874 X +6462 Y(query)s +1135 X(what)s +1363 X(the)s +1519 X(current)s +1834 X(folder)s +2105 X(is)s +2205 X(and)s +2382 X(may)s +2587 X(specify)s +2908 X(that)s +3091 X(a)s +3168 X(new)s +3367 X(folder)s +3638 X(become)s +3981 X(the)s +4136 X(current)s +4451 X(folder,)s +874 X +6582 Y(through)s +1222 X(the)s +1381 X(command)s +1812 X +0.0 10 10 f.I ft(folder)s +0.0 10 10 f.R ft(.)s +2137 X(All)s +2301 X(folders)s +2614 X(may)s +2822 X(be)s +2952 X(summarized)s +3476 X(with)s +3690 X(the)s +3848 X +0.0 10 10 f.I ft(folders)s +4162 X +0.0 10 10 f.R ft(command.)s +4642 X(A)s +874 X +6702 Y(message)s +1237 X(folder)s +1500 X(\(or)s +1641 X(subfolder\))s +2076 X(may)s +2273 X(be)s +2392 X(removed)s +2766 X(by)s +2891 X(means)s +3171 X(of)s +3279 X(the)s +3426 X(command)s +3845 X +0.0 10 10 f.I ft(rmf)s +0.0 10 10 f.R ft(.)s +874 X +6864 Y +1124 X(A)s +1229 X(set)s +1372 X(of)s +1487 X(messages)s +1896 X(based)s +2155 X(on)s +2287 X(content)s +2613 X(may)s +2817 X(be)s +2943 X(selected)s +3296 X(by)s +3428 X(use)s +3593 X(of)s +3708 X(the)s +3862 X(command)s +4288 X +0.0 10 10 f.I ft(pick)s +0.0 10 10 f.R ft(.)s +4536 X(This)s +874 X +6984 Y(command)s +1296 X(searches)s +1661 X(through)s +2000 X(messages)s +2405 X(in)s +2511 X(a)s +2583 X(folder)s +2849 X(and)s +3021 X(selects)s +3315 X(those)s +3554 X(that)s +3732 X(match)s +4004 X(a)s +4076 X(given)s +4326 X(set)s +4465 X(of)s +4576 X(cri-)s +874 X +7104 Y(teria.)s +1126 X(These)s +1389 X(messages)s +1791 X(are)s +1937 X(then)s +2134 X(bound)s +2409 X(to)s +2512 X(a)s +2581 X(``sequence'')s +3103 X(name)s +3344 X(for)s +3485 X(use)s +3643 X(with)s +3846 X(other)s +4076 X +0.0 10 10 f.I ft(MH)s +4256 X +0.0 10 10 f.R ft(commands.)s +874 X +7320 Y +2736 X +0.0 10 10 f.B ft(-3-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 4 5 + +874 X +600 Y +2736 X(-4-)s +874 X +960 Y +0.0 10 10 f.R ft(The)s +1054 X +0.0 10 10 f.I ft(mark)s +1284 X +0.0 10 10 f.R ft(command)s +1703 X(manipulates)s +2211 X(these)s +2441 X(sequences.)s +874 X +1122 Y +1124 X(There)s +1383 X(are)s +1531 X(\256ve)s +1708 X(commands)s +2168 X(enabling)s +2538 X(the)s +2686 X(user)s +2878 X(to)s +2982 X(create)s +3245 X(new)s +3437 X(messages)s +3840 X(and)s +4010 X(send)s +4219 X(them:)s +4473 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +874 X +1242 Y +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +1076 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +1317 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +1535 X(and)s +1711 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(.)s +1976 X(The)s +2163 X +0.0 10 10 f.I ft(comp)s +2411 X +0.0 10 10 f.R ft(command)s +2836 X(provides)s +3211 X(the)s +3364 X(facility)s +3678 X(for)s +3825 X(the)s +3978 X(user)s +4175 X(to)s +4284 X(compose)s +4670 X(a)s +874 X +1362 Y(new)s +1071 X(message;)s +1468 X +0.0 10 10 f.I ft(dist)s +1644 X +0.0 10 10 f.R ft(redistributes)s +2169 X(mail)s +2378 X(to)s +2486 X(additional)s +2916 X(addressees;)s +3400 X +0.0 10 10 f.I ft(forw)s +3614 X +0.0 10 10 f.R ft(enables)s +3943 X(the)s +4095 X(user)s +4291 X(to)s +4399 X(forward)s +874 X +1482 Y(messages;)s +1309 X(and)s +1482 X +0.0 10 10 f.I ft(repl)s +1672 X +0.0 10 10 f.R ft(facilitates)s +2089 X(the)s +2240 X(generation)s +2690 X(of)s +2802 X(a)s +2875 X(reply)s +3109 X(to)s +3216 X(an)s +3339 X(incoming)s +3746 X(message.)s +4163 X(The)s +4347 X(last)s +4515 X(three)s +874 X +1602 Y(commands)s +1343 X(may)s +1551 X(optionally)s +1993 X(annotate)s +2367 X(the)s +2525 X(original)s +2871 X(message.)s +3294 X(Messages)s +3717 X(may)s +3924 X(be)s +4053 X(arbitrarily)s +4487 X(anno-)s +874 X +1722 Y(tated)s +1108 X(with)s +1326 X(the)s +1487 X +0.0 10 10 f.I ft(anno)s +1726 X +0.0 10 10 f.R ft(command.)s +2209 X(Once)s +2458 X(a)s +2541 X(draft)s +2768 X(has)s +2940 X(been)s +3167 X(constructed)s +3666 X(by)s +3805 X(one)s +3988 X(of)s +4110 X(the)s +4271 X(four)s +4476 X(above)s +874 X +1842 Y(composition)s +1398 X(programs,)s +1829 X(a)s +1902 X(user\261speci\256able)s +2574 X(program)s +2941 X(is)s +3037 X(run)s +3199 X(to)s +3306 X(query)s +3562 X(the)s +3713 X(user)s +3907 X(as)s +4018 X(to)s +4124 X(the)s +4274 X(disposition)s +874 X +1962 Y(of)s +987 X(the)s +1139 X(draft)s +1357 X(prior)s +1581 X(to)s +1689 X(sending.)s +2080 X +0.0 10 10 f.I ft(MH)s +2265 X +0.0 10 10 f.R ft(provides)s +2638 X(the)s +2789 X(simple)s +3085 X +0.0 10 10 f.I ft(whatnow)s +3476 X +0.0 10 10 f.R ft(program)s +3843 X(to)s +3950 X(start)s +4151 X(users)s +4385 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(.)s +4575 X(If)s +4670 X(a)s +874 X +2082 Y(message)s +1242 X(is)s +1339 X(not)s +1497 X(sent)s +1688 X(directly)s +2023 X(by)s +2153 X(one)s +2327 X(of)s +2439 X(these)s +2673 X(commands,)s +3160 X(it)s +3245 X(may)s +3446 X(be)s +3569 X(sent)s +3759 X(at)s +3860 X(a)s +3933 X(later)s +4139 X(time)s +4346 X(using)s +4592 X(the)s +874 X +2202 Y(command)s +1295 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(.)s +1555 X +0.0 10 10 f.I ft(MH)s +1737 X +0.0 10 10 f.R ft(allows)s +2025 X(the)s +2174 X(use)s +2334 X(of)s +2444 X(any)s +2615 X(UNIX)s +2891 X(editor)s +3151 X(when)s +3394 X(composing)s +3860 X(a)s +3930 X(message.)s +4344 X(For)s +4509 X(rapid)s +874 X +2322 Y(entry,)s +1139 X(a)s +1218 X(special)s +1530 X(editor,)s +1823 X +0.0 10 10 f.I ft(prompter)s +0.0 10 10 f.R ft(,)s +2255 X(is)s +2357 X(provided.)s +2797 X(For)s +2970 X(programs,)s +3406 X(a)s +3484 X(special)s +3795 X(mail-sending)s +4351 X(program,)s +874 X +2442 Y +0.0 10 10 f.I ft(mhmail)s +0.0 10 10 f.R ft(,)s +1224 X(is)s +1316 X(provided.)s +874 X +2604 Y +1124 X +0.0 10 10 f.I ft(MH)s +1309 X +0.0 10 10 f.R ft(supports)s +1678 X(a)s +1752 X(personal)s +2120 X(aliasing)s +2461 X(facility)s +2774 X(which)s +3048 X(gives)s +3289 X(users)s +3523 X(the)s +3674 X(capability)s +4097 X(to)s +4204 X(considerably)s +874 X +2724 Y(shorten)s +1200 X(address)s +1531 X(typein)s +1813 X(and)s +1989 X(use)s +2154 X(meaningful)s +2641 X(names)s +2928 X(for)s +3076 X(addresses.)s +3540 X(The)s +3727 X +0.0 10 10 f.I ft(ali)s +3865 X +0.0 10 10 f.R ft(program)s +4235 X(can)s +4405 X(be)s +4531 X(used)s +874 X +2844 Y(to)s +985 X(query)s +1245 X +0.0 10 10 f.I ft(MH)s +1433 X +0.0 10 10 f.R ft(as)s +1549 X(to)s +1660 X(the)s +1815 X(expansion)s +2253 X(of)s +2369 X(a)s +2446 X(list)s +2602 X(of)s +2718 X(aliases.)s +3066 X(After)s +3308 X(composing)s +3779 X(a)s +3855 X(message,)s +4250 X(but)s +4410 X(prior)s +4636 X(to)s +874 X +2964 Y(sending,)s +1235 X(the)s +1382 X +0.0 10 10 f.I ft(whom)s +1646 X +0.0 10 10 f.R ft(command)s +2065 X(can)s +2228 X(be)s +2347 X(used)s +2555 X(to)s +2658 X(determine)s +3082 X(exactly)s +3395 X(who)s +3592 X(a)s +3661 X(message)s +4024 X(would)s +4299 X(go)s +4424 X(to.)s +874 X +3126 Y +1124 X +0.0 10 10 f.I ft(MH)s +1316 X +0.0 10 10 f.R ft(provides)s +1697 X(a)s +1778 X(natural)s +2092 X(interface)s +2477 X(for)s +2629 X(telling)s +2921 X(the)s +3079 X(user's)s +3353 X(shell)s +3578 X(the)s +3736 X(names)s +4027 X(of)s +4146 X +0.0 10 10 f.I ft(MH)s +4337 X +0.0 10 10 f.R ft(messages)s +874 X +3246 Y(and)s +1043 X(folders.)s +1395 X(The)s +1575 X +0.0 10 10 f.I ft(mhpath)s +1900 X +0.0 10 10 f.R ft(program)s +2263 X(achieves)s +2631 X(this)s +2801 X(capability.)s +874 X +3408 Y +1124 X(Finally,)s +1463 X +0.0 10 10 f.I ft(MH)s +1648 X +0.0 10 10 f.R ft(supports)s +2017 X(the)s +2169 X(UCI)s +2371 X(BBoards)s +2750 X(facility.)s +3112 X +0.0 10 10 f.I ft(bbc)s +3285 X +0.0 10 10 f.R ft(can)s +3452 X(be)s +3575 X(used)s +3787 X(to)s +3894 X(query)s +4150 X(the)s +4301 X(status)s +4558 X(of)s +4670 X(a)s +874 X +3528 Y(group)s +1143 X(of)s +1262 X(BBoards,)s +1673 X(while)s +1931 X +0.0 10 10 f.I ft(msh)s +2128 X +0.0 10 10 f.R ft(can)s +2302 X(be)s +2432 X(used)s +2651 X(to)s +2765 X(read)s +2971 X(them.)s +3256 X(The)s +3446 X +0.0 10 10 f.I ft(burst)s +3687 X +0.0 10 10 f.R ft(command)s +4116 X(can)s +4289 X(be)s +4418 X(used)s +4636 X(to)s +874 X +3648 Y(``shred'')s +1247 X(digests)s +1550 X(of)s +1658 X(messages)s +2060 X(into)s +2241 X(individual)s +2672 X(messages.)s +874 X +3810 Y +1124 X(All)s +1282 X(of)s +1395 X(the)s +1547 X(elements)s +1932 X(summarized)s +2450 X(above)s +2718 X(are)s +2869 X(described)s +3281 X(in)s +3389 X(more)s +3624 X(detail)s +3876 X(in)s +3984 X(the)s +4136 X(following)s +4554 X(sec-)s +874 X +3930 Y(tions.)s +1154 X(Many)s +1422 X(of)s +1540 X(the)s +1697 X(normal)s +2015 X(facilities)s +2394 X(of)s +2512 X(UNIX)s +2796 X(provide)s +3135 X(additional)s +3569 X(capabilities)s +4058 X(for)s +4208 X(dealing)s +4536 X(with)s +874 X +4050 Y(messages)s +1292 X(in)s +1411 X(various)s +1746 X(ways.)s +2042 X(For)s +2222 X(example,)s +2626 X(it)s +2723 X(is)s +2831 X(possible)s +3199 X(to)s +3317 X(print)s +3546 X(messages)s +3963 X(on)s +4103 X(the)s +4265 X(line-printer)s +874 X +4170 Y(without)s +1209 X(requiring)s +1604 X(any)s +1777 X(additional)s +2206 X(code)s +2423 X(within)s +2708 X +0.0 10 10 f.I ft(MH)s +2913 X +0.0 10 10 f.R ft(.)s +2991 X(Using)s +3258 X(standard)s +3624 X(UNIX)s +3901 X(facilities,)s +4298 X(any)s +4470 X(termi-)s +874 X +4290 Y(nal)s +1029 X(output)s +1318 X(can)s +1489 X(be)s +1616 X(redirected)s +2047 X(to)s +2158 X(a)s +2235 X(\256le)s +2396 X(for)s +2545 X(repeated)s +2915 X(or)s +3031 X(future)s +3301 X(viewing.)s +3705 X(In)s +3820 X(general,)s +4170 X(the)s +4324 X(\257exibility)s +874 X +4410 Y(and)s +1048 X(capabilities)s +1533 X(of)s +1646 X(the)s +1798 X(UNIX)s +2077 X(interface)s +2455 X(with)s +2663 X(the)s +2815 X(user)s +3011 X(are)s +3162 X(preserved)s +3579 X(as)s +3692 X(a)s +3766 X(result)s +4018 X(of)s +4130 X(the)s +4281 X(integration)s +874 X +4530 Y(of)s +982 X +0.0 10 10 f.I ft(MH)s +1162 X +0.0 10 10 f.R ft(into)s +1343 X(the)s +1490 X(UNIX)s +1764 X(structure.)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 5 6 + +874 X +960 Y +2414 X +0.0 12 12 f.B ft(3. TUTORIAL)s +874 X +1572 Y +1124 X +0.0 10 10 f.R ft(This)s +1335 X(tutorial)s +1657 X(provides)s +2034 X(a)s +2111 X(brief)s +2332 X(introduction)s +2854 X(to)s +2965 X(the)s +3120 X +0.0 10 10 f.I ft(MH)s +3308 X +0.0 10 10 f.R ft(commands.)s +3824 X(It)s +3917 X(should)s +4216 X(be)s +4342 X(su)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icient)s +874 X +1692 Y(to)s +979 X(allow)s +1228 X(the)s +1377 X(user)s +1570 X(to)s +1674 X(read)s +1871 X(his)s +2014 X(mail,)s +2243 X(do)s +2369 X(some)s +2606 X(simple)s +2899 X(manipulations)s +3492 X(of)s +3601 X(it,)s +3708 X(and)s +3878 X(create)s +4141 X(and)s +4311 X(send)s +4520 X(mes-)s +874 X +1812 Y(sages.)s +874 X +1974 Y +1124 X(A)s +1223 X(message)s +1588 X(has)s +1748 X(two)s +1925 X(major)s +2185 X(pieces:)s +2514 X(the)s +2663 X(header)s +2955 X(and)s +3126 X(the)s +3275 X(body.)s +3552 X(The)s +3734 X(body)s +3961 X(consists)s +4305 X(of)s +4415 X(the)s +4564 X(text)s +874 X +2094 Y(of)s +985 X(the)s +1135 X(message)s +1500 X(\(whatever)s +1925 X(you)s +2102 X(care)s +2294 X(to)s +2399 X(type)s +2598 X(in\).)s +2786 X(It)s +2874 X(follows)s +3201 X(the)s +3350 X(header)s +3642 X(and)s +3813 X(is)s +3907 X(separated)s +4310 X(from)s +4531 X(it)s +4614 X(by)s +874 X +2214 Y(an)s +996 X(empty)s +1273 X(line.)s +1500 X(\(When)s +1798 X(you)s +1975 X(compose)s +2357 X(a)s +2428 X(message,)s +2818 X(the)s +2967 X(form)s +3188 X(that)s +3365 X(appears)s +3696 X(on)s +3823 X(your)s +4033 X(terminal)s +4393 X(shows)s +4670 X(a)s +874 X +2334 Y(line)s +1054 X(of)s +1167 X(dashes)s +1463 X(after)s +1675 X(the)s +1827 X(header.)s +2172 X(This)s +2380 X(is)s +2477 X(for)s +2623 X(convenience)s +3151 X(and)s +3325 X(is)s +3422 X(replaced)s +3788 X(by)s +3917 X(an)s +4040 X(empty)s +4319 X(line)s +4498 X(when)s +874 X +2454 Y(the)s +1028 X(message)s +1398 X(is)s +1497 X(sent.\))s +1773 X(The)s +1959 X(header)s +2255 X(is)s +2353 X(composed)s +2789 X(of)s +2903 X(several)s +3216 X(components,)s +3755 X(including)s +4164 X(the)s +4317 X(subject)s +4631 X(of)s +874 X +2574 Y(the)s +1024 X(message)s +1390 X(and)s +1562 X(the)s +1712 X(person)s +2006 X(to)s +2112 X(whom)s +2390 X(it)s +2474 X(is)s +2569 X(addressed.)s +3040 X(Each)s +3267 X(component)s +3739 X(starts)s +3978 X(with)s +4184 X(a)s +4256 X(name)s +4499 X(and)s +4670 X(a)s +874 X +2694 Y(colon;)s +1153 X(components)s +1664 X(must)s +1887 X(not)s +2043 X(start)s +2243 X(with)s +2449 X(a)s +2521 X(blank.)s +2821 X(The)s +3004 X(text)s +3182 X(of)s +3293 X(the)s +3443 X(component)s +3915 X(may)s +4115 X(take)s +4309 X(more)s +4542 X(than)s +874 X +2814 Y(one)s +1053 X(line,)s +1263 X(but)s +1425 X(each)s +1641 X(continuation)s +2175 X(line)s +2359 X(must)s +2588 X(start)s +2794 X(with)s +3006 X(a)s +3084 X(blank.)s +3390 X(Messages)s +3812 X(typically)s +4196 X(have)s +4418 X(``To:'',)s +874 X +2934 Y(``cc:'',)s +1194 X(and)s +1385 X(``Subject:'')s +1892 X(components.)s +2472 X(When)s +2757 X(composing)s +3243 X(a)s +3334 X(message,)s +3743 X(you)s +3939 X(should)s +4252 X(include)s +4592 X(the)s +874 X +3054 Y(``To:'')s +1179 X(and)s +1357 X(``Subject:'')s +1851 X(components;)s +2396 X(the)s +2552 X(``cc:'')s +2834 X(\(for)s +3017 X(people)s +3317 X(you)s +3500 X(want)s +3727 X(to)s +3838 X(send)s +4054 X(copies)s +4342 X(to\))s +4486 X(is)s +4586 X(not)s +874 X +3174 Y(necessary.)s +874 X +3336 Y +1124 X(The)s +1305 X(basic)s +1536 X +0.0 10 10 f.I ft(MH)s +1717 X +0.0 10 10 f.R ft(commands)s +2176 X(are)s +2322 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft(,)s +2494 X +0.0 10 10 f.I ft(scan)s +0.0 10 10 f.R ft(,)s +2727 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +2983 X +0.0 10 10 f.I ft(next)s +0.0 10 10 f.R ft(,)s +3199 X +0.0 10 10 f.I ft(prev)s +0.0 10 10 f.R ft(,)s +3426 X +0.0 10 10 f.I ft(rmm)s +0.0 10 10 f.R ft(,)s +3659 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +3925 X(and)s +4094 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(.)s +4330 X(These)s +4593 X(are)s +874 X +3456 Y(described)s +1281 X(below.)s +874 X +3696 Y +0.0 10 10 f.I ft(inc)s +874 X +3858 Y +1124 X +0.0 10 10 f.R ft(When)s +1401 X(you)s +1589 X(get)s +1749 X(the)s +1909 X(message)s +2285 X(``You)s +2561 X(have)s +2787 X(mail'',)s +3094 X(type)s +3304 X(the)s +3464 X(command)s +3896 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft(.)s +4106 X(You)s +4316 X(will)s +4510 X(get)s +4670 X(a)s +874 X +3978 Y(``scan)s +1142 X(listing'')s +1484 X(such)s +1692 X(as:)s +874 X +4218 Y +1234 X(7+)s +1440 X(7/13)s +1668 X(Cas)s +2068 X(revival)s +2370 X(of)s +2478 X(measurement)s +3035 X(work)s +874 X +4338 Y +1234 X(8)s +1390 X(10/)s +1568 X(9)s +1668 X(Norm)s +2068 X(NBS)s +2288 X(people)s +2579 X(and)s +2748 X(publications)s +874 X +4458 Y +1234 X(9)s +1390 X(11/26)s +1668 X(To:norm)s +2068 X(question)s +2432 X(<)s +2460 X()s +1596 X +0.0 10 10 f.I ft(x)s +1727 X +0.0 10 10 f.R ft(will)s +1908 X(copy)s +2127 X(the)s +2274 X(message)s +2637 X(to)s +2740 X(\256le)s +2893 X(x.)s +874 X +1362 Y +1234 X +0.0 10 10 f.I ft(show)s +1490 X +0.0 10 10 f.R ft(|)s +1560 X +0.0 10 10 f.I ft(lpr)s +1727 X +0.0 10 10 f.R ft(will)s +1908 X(print)s +2122 X(the)s +2269 X(message,)s +2657 X(using)s +2899 X(the)s +3046 X +0.0 10 10 f.I ft(lpr)s +3188 X +0.0 10 10 f.R ft(command.)s +874 X +1482 Y +1234 X +0.0 10 10 f.I ft(next)s +1727 X +0.0 10 10 f.R ft(will)s +1908 X(show)s +2144 X(the)s +2291 X(message)s +2654 X(that)s +2829 X(follows)s +3154 X(the)s +3301 X(current)s +3608 X(message.)s +874 X +1602 Y +1234 X +0.0 10 10 f.I ft(prev)s +1727 X +0.0 10 10 f.R ft(will)s +1908 X(show)s +2144 X(the)s +2291 X(message)s +2654 X(previous)s +3023 X(to)s +3126 X(the)s +3273 X(current)s +3580 X(message.)s +874 X +1722 Y +1234 X +0.0 10 10 f.I ft(rmm)s +1727 X +0.0 10 10 f.R ft(will)s +1908 X(remove)s +2232 X(the)s +2379 X(current)s +2686 X(message.)s +874 X +1842 Y +1234 X +0.0 10 10 f.I ft(rmm)s +1467 X(3)s +1727 X +0.0 10 10 f.R ft(will)s +1908 X(remove)s +2232 X(message)s +2595 X(3.)s +874 X +2124 Y +0.0 10 10 f.I ft(comp)s +874 X +2286 Y +1124 X +0.0 10 10 f.R ft(The)s +1305 X +0.0 10 10 f.I ft(comp)s +1547 X +0.0 10 10 f.R ft(command)s +1967 X(puts)s +2160 X(you)s +2336 X(in)s +2440 X(the)s +2588 X(editor)s +2847 X(to)s +2951 X(write)s +3182 X(or)s +3291 X(edit)s +3467 X(a)s +3537 X(message.)s +3951 X(Fill)s +4117 X(in)s +4221 X(or)s +4329 X(delete)s +4592 X(the)s +874 X +2406 Y(``To:'',)s +1201 X(``cc:'',)s +1505 X(and)s +1680 X(``Subject:'')s +2171 X(\256elds,)s +2444 X(as)s +2558 X(appropriate,)s +3068 X(and)s +3242 X(type)s +3444 X(the)s +3596 X(body)s +3826 X(of)s +3939 X(the)s +4091 X(message.)s +4509 X(Then)s +874 X +2526 Y(exit)s +1053 X(normally)s +1443 X(from)s +1666 X(the)s +1817 X(editor.)s +2129 X(You)s +2330 X(will)s +2515 X(be)s +2637 X(asked)s +2892 X(``What)s +3202 X(now?''.)s +3562 X(Type)s +3795 X(a)s +3867 X(carriage)s +4215 X(return)s +4481 X(to)s +4587 X(see)s +874 X +2646 Y(the)s +1023 X(options.)s +1395 X(Typing)s +1711 X +0.0 10 10 f.B ft(send)s +1933 X +0.0 10 10 f.R ft(will)s +2116 X(cause)s +2363 X(the)s +2511 X(message)s +2875 X(to)s +2979 X(be)s +3099 X(sent;)s +3314 X(typing)s +3596 X +0.0 10 10 f.B ft(quit)s +3795 X +0.0 10 10 f.R ft(will)s +3977 X(cause)s +4224 X(an)s +4344 X(exit)s +4520 X(from)s +874 X +2766 Y +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +1140 X(with)s +1343 X(the)s +1490 X(message)s +1853 X(draft)s +2066 X(saved.)s +874 X +2928 Y +1124 X(If)s +1269 X(you)s +1498 X(quit)s +1733 X(without)s +2117 X(sending)s +2506 X(the)s +2706 X(message,)s +3147 X(it)s +3281 X(will)s +3515 X(be)s +3687 X(saved)s +3992 X(in)s +4148 X(a)s +4270 X(\256le)s +4476 X(called)s +874 X +3048 Y(/Mail/draft)s +1673 X(\(where)s +1987 X()s +2353 X(is)s +2458 X(your)s +2679 X +0.0 10 10 f.B ft($HOME)s +3084 X +0.0 10 10 f.R ft(directory\).)s +3565 X(You)s +3775 X(can)s +3951 X(resume)s +4277 X(editing)s +4592 X(the)s +874 X +3168 Y(message)s +1237 X(later)s +1439 X(with)s +1642 X(``comp)s +1980 X(\261use'';)s +2282 X(or)s +2390 X(you)s +2565 X(can)s +2728 X(send)s +2936 X(the)s +3083 X(message)s +3446 X(later,)s +3673 X(using)s +3915 X(the)s +4062 X +0.0 10 10 f.I ft(send)s +4270 X +0.0 10 10 f.R ft(command.)s +874 X +3408 Y +0.0 10 10 f.I ft(comp)s +1140 X(\261editor)s +1479 X(prompter)s +874 X +3570 Y +1124 X +0.0 10 10 f.R ft(This)s +1331 X(command)s +1754 X(uses)s +1955 X(a)s +2028 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erent)s +2395 X(editor)s +2656 X(and)s +2828 X(is)s +2923 X(useful)s +3195 X(for)s +3339 X(preparing)s +3749 X(``quick)s +4065 X(and)s +4237 X(dirty'')s +4520 X(mes-)s +874 X +3690 Y(sages.)s +1174 X(It)s +1269 X(prompts)s +1631 X(you)s +1815 X(for)s +1965 X(each)s +2181 X(component)s +2659 X(of)s +2776 X(the)s +2931 X(header.)s +3279 X(Type)s +3517 X(the)s +3672 X(information)s +4177 X(for)s +4326 X(that)s +4509 X(com-)s +874 X +3810 Y(ponent,)s +1203 X(or)s +1318 X(type)s +1522 X(a)s +1597 X(carriage)s +1948 X(return)s +2217 X(to)s +2326 X(omit)s +2541 X(the)s +2694 X(component.)s +3219 X(After)s +3460 X(that,)s +3666 X(type)s +3869 X(the)s +4022 X(body)s +4253 X(of)s +4367 X(the)s +4520 X(mes-)s +874 X +3930 Y(sage.)s +1128 X(Backspacing)s +1665 X(is)s +1759 X(the)s +1908 X(only)s +2113 X(form)s +2334 X(of)s +2444 X(editing)s +2749 X(allowed)s +3092 X(with)s +3297 X(this)s +3469 X(editor.)s +3778 X(When)s +4042 X(the)s +4190 X(body)s +4416 X(is)s +4509 X(com-)s +874 X +4050 Y(plete,)s +1121 X(type)s +1321 X(a)s +1393 X(carriage)s +1741 X(return)s +2007 X(followed)s +2390 X(by)s +2518 X()s +2852 X(\(usually)s +3202 X(\).)s +3786 X(This)s +3992 X(completes)s +4425 X(the)s +4575 X(ini-)s +874 X +4170 Y(tial)s +1027 X(preparation)s +1506 X(of)s +1614 X(the)s +1761 X(message;)s +2152 X(from)s +2371 X(then)s +2568 X(on,)s +2718 X(use)s +2876 X(the)s +3023 X(same)s +3253 X(procedures)s +3715 X(as)s +3823 X(with)s +4026 X +0.0 10 10 f.I ft(comp)s +4267 X +0.0 10 10 f.R ft(\(above\).)s +874 X +4410 Y +0.0 10 10 f.I ft(repl)s +874 X +4530 Y(repl)s +1085 X +0.0 10 10 f.R ft(n)s +874 X +4692 Y +1124 X(This)s +1340 X(command)s +1772 X(makes)s +2065 X(up)s +2203 X(an)s +2335 X(initial)s +2607 X(message)s +2983 X(form)s +3215 X(with)s +3431 X(a)s +3513 X(header)s +3816 X(that)s +4003 X(is)s +4107 X(appropriate)s +4598 X(for)s +874 X +4812 Y(replying)s +1232 X(to)s +1335 X(an)s +1454 X(existing)s +1796 X(message.)s +2209 X(The)s +2389 X(message)s +2752 X(being)s +2999 X(answered)s +3400 X(is)s +3492 X(the)s +3639 X(current)s +3946 X(message)s +4309 X(if)s +4395 X(no)s +4520 X(mes-)s +874 X +4932 Y(sage)s +1077 X(number)s +1408 X(is)s +1501 X(mentioned,)s +1974 X(or)s +2083 X(n)s +2159 X(if)s +2246 X(a)s +2316 X(number)s +2647 X(is)s +2740 X(speci\256ed.)s +3171 X(After)s +3406 X(the)s +3553 X(header)s +3843 X(is)s +3935 X(completed,)s +4401 X(you)s +4576 X(can)s +874 X +5052 Y(\256nish)s +1122 X(the)s +1269 X(message)s +1632 X(as)s +1740 X(in)s +1843 X +0.0 10 10 f.I ft(comp)s +2084 X +0.0 10 10 f.R ft(\(above\).)s +874 X +5214 Y +1124 X(This)s +1332 X(is)s +1429 X(enough)s +1753 X(information)s +2255 X(to)s +2363 X(get)s +2515 X(you)s +2695 X(going)s +2953 X(using)s +3200 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +3435 X(There)s +3697 X(are)s +3848 X(more)s +4083 X(commands,)s +4570 X(and)s +874 X +5334 Y(the)s +1035 X(commands)s +1507 X(described)s +1928 X(here)s +2137 X(have)s +2363 X(more)s +2606 X(features.)s +3009 X(Subsequent)s +3508 X(sections)s +3868 X(explain)s +4200 X +0.0 10 10 f.I ft(MH)s +4393 X +0.0 10 10 f.R ft(in)s +4509 X(com-)s +874 X +5454 Y(plete)s +1099 X(detail.)s +1402 X(The)s +1588 X(system)s +1897 X(is)s +1995 X(quite)s +2226 X(powerful)s +2617 X(if)s +2709 X(you)s +2890 X(want)s +3115 X(to)s +3224 X(use)s +3387 X(its)s +3512 X(sophisticated)s +4064 X(features,)s +4434 X(but)s +4592 X(the)s +874 X +5574 Y(foregoing)s +1287 X(commands)s +1745 X(su)s +Cff(ice)s +2036 X(for)s +2177 X(sending)s +2513 X(and)s +2682 X(receiving)s +3078 X(messages.)s +874 X +5736 Y +1124 X(There)s +1392 X(are)s +1549 X(numerous)s +1979 X(additional)s +2415 X(capabilities)s +2906 X(you)s +3092 X(may)s +3299 X(wish)s +3523 X(to)s +3636 X(explore.)s +4020 X(For)s +4194 X(example,)s +4592 X(the)s +874 X +5856 Y +0.0 10 10 f.I ft(pick)s +1067 X +0.0 10 10 f.R ft(command)s +1488 X(will)s +1671 X(select)s +1925 X(a)s +1996 X(subset)s +2273 X(of)s +2383 X(messages)s +2787 X(based)s +3040 X(on)s +3166 X(speci\256ed)s +3547 X(criteria)s +3855 X(such)s +4064 X(as)s +4173 X(sender)s +4459 X(and/or)s +874 X +5976 Y(subject.)s +1234 X(Groups)s +1555 X(of)s +1665 X(messages)s +2069 X(may)s +2267 X(be)s +2387 X(designated,)s +2865 X(as)s +2974 X(described)s +3382 X(in)s +3486 X(Sec.)s +3681 X(IV,)s +3837 X(under)s +4090 X +0.0 10 10 f.B ft(Message)s +4476 X(Nam-)s +874 X +6096 Y(ing)s +0.0 10 10 f.R ft(.)s +1093 X(The)s +1283 X(\256le)s +1446 X +0.0 10 10 f.I ft(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +1939 X +0.0 10 10 f.R ft(can)s +2112 X(be)s +2241 X(used)s +2459 X(to)s +2572 X(tailor)s +2817 X(your)s +3034 X(use)s +3201 X(of)s +3318 X(the)s +3474 X(message)s +3846 X(system)s +4158 X(to)s +4270 X(your)s +4487 X(needs)s +874 X +6216 Y(and)s +1053 X(preferences,)s +1571 X(as)s +1689 X(described)s +2106 X(in)s +2219 X(Sec.)s +2423 X(IV,)s +2588 X(under)s +2850 X +0.0 10 10 f.B ft(The)s +3052 X(User)s +3286 X(Pro\256le)s +0.0 10 10 f.R ft(.)s +3654 X(In)s +3772 X(general,)s +4125 X(you)s +4309 X(may)s +4515 X(learn)s +874 X +6336 Y(additional)s +1310 X(features)s +1661 X(of)s +1780 X(the)s +1937 X(system)s +2250 X(selectively,)s +2737 X(according)s +3165 X(to)s +3278 X(your)s +3496 X(requirements,)s +4077 X(by)s +4212 X(studying)s +4592 X(the)s +874 X +6456 Y(relevant)s +1220 X(sections)s +1567 X(of)s +1675 X(this)s +1845 X(manual.)s +2214 X(There)s +2471 X(is)s +2563 X(no)s +2688 X(need)s +2901 X(to)s +3004 X(learn)s +3228 X(all)s +3353 X(the)s +3500 X(details)s +3786 X(of)s +3894 X(the)s +4041 X(system)s +4344 X(at)s +4441 X(once.)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 7 8 + +874 X +960 Y +1990 X +0.0 12 12 f.B ft(4. DETAILED)s +2765 X(DESCRIPTION)s +874 X +1572 Y +1124 X +0.0 10 10 f.R ft(This)s +1343 X(section)s +1667 X(describes)s +2079 X(the)s +2242 X +0.0 10 10 f.I ft(MH)s +2437 X +0.0 10 10 f.R ft(system)s +2755 X(in)s +2873 X(detail,)s +3160 X(including)s +3578 X(the)s +3740 X(components)s +4263 X(of)s +4386 X(the)s +4548 X(user)s +874 X +1692 Y(pro\256le,)s +1191 X(the)s +1344 X(conventions)s +1858 X(for)s +2005 X(message)s +2374 X(naming,)s +2730 X(and)s +2904 X(some)s +3145 X(of)s +3258 X(the)s +3410 X(other)s +3645 X +0.0 10 10 f.I ft(MH)s +3830 X +0.0 10 10 f.R ft(conventions.)s +4393 X(Readers)s +874 X +1812 Y(who)s +1084 X(are)s +1243 X(generally)s +1652 X(familiar)s +2006 X(with)s +2222 X(computer)s +2637 X(systems)s +2992 X(will)s +3186 X(be)s +3317 X(able)s +3520 X(to)s +3635 X(follow)s +3933 X(the)s +4092 X(principal)s +4484 X(ideas,)s +874 X +1932 Y(although)s +1249 X(some)s +1485 X(details)s +1771 X(may)s +1968 X(be)s +2087 X(meaningful)s +2567 X(only)s +2770 X(to)s +2873 X(those)s +3109 X(familiar)s +3450 X(with)s +3653 X(UNIX.)s +874 X +2352 Y +0.0 10 10 f.B ft(THE)s +1111 X(USER)s +1403 X(PROFILE)s +0.0 10 10 f.R ft( )s +874 X +2514 Y +1124 X(The)s +1305 X(\256rst)s +1487 X(time)s +1691 X(an)s +1811 X +0.0 10 10 f.I ft(MH)s +1992 X +0.0 10 10 f.R ft(command)s +2412 X(is)s +2505 X(issued)s +2781 X(by)s +2907 X(a)s +2977 X(new)s +3169 X(user,)s +3386 X(the)s +3534 X(system)s +3838 X(prompts)s +4192 X(for)s +4334 X(a)s +4404 X(``Path'')s +874 X +2634 Y(and)s +1043 X(creates)s +1344 X(an)s +1463 X +0.0 10 10 f.I ft(MH)s +1643 X +0.0 10 10 f.R ft(``pro\256le''.)s +874 X +2796 Y +1124 X(Each)s +1352 X +0.0 10 10 f.I ft(MH)s +1536 X +0.0 10 10 f.R ft(user)s +1731 X(has)s +1893 X(a)s +1966 X(pro\256le)s +2256 X(which)s +2529 X(contains)s +2891 X(tailoring)s +3259 X(information)s +3760 X(for)s +3904 X(each)s +4114 X(individual)s +4548 X(pro-)s +874 X +2916 Y(gram.)s +1173 X(Other)s +1444 X(pro\256le)s +1749 X(entries)s +2059 X(control)s +2386 X(the)s +2551 X +0.0 10 10 f.I ft(MH)s +2749 X +0.0 10 10 f.R ft(path)s +2964 X(\(where)s +3283 X(folders)s +3603 X(and)s +3790 X(special)s +4110 X(\256les)s +4320 X(are)s +4484 X(kept\),)s +874 X +3036 Y(folder)s +1145 X(and)s +1321 X(message)s +1691 X(protections,)s +2192 X(editor)s +2457 X(selection,)s +2869 X(and)s +3045 X(default)s +3354 X(arguments)s +3802 X(for)s +3950 X(each)s +4164 X +0.0 10 10 f.I ft(MH)s +4351 X +0.0 10 10 f.R ft(program.)s +874 X +3156 Y(Each)s +1109 X(user)s +1311 X(of)s +1430 X +0.0 10 10 f.I ft(MH)s +1621 X +0.0 10 10 f.R ft(also)s +1818 X(has)s +1987 X(a)s +2067 X(context)s +2397 X(\256le)s +2561 X(which)s +2841 X(contains)s +3209 X(current)s +3526 X(state)s +3744 X(information)s +4251 X(for)s +4402 X(the)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +3276 Y +0.0 10 10 f.R ft(package)s +1228 X(\(the)s +1411 X(location)s +1761 X(of)s +1872 X(the)s +2022 X(context)s +2344 X(\256le)s +2500 X(is)s +2595 X(kept)s +2795 X(in)s +2901 X(the)s +3051 X(user's)s +3317 X +0.0 10 10 f.I ft(MH)s +3500 X +0.0 10 10 f.R ft(directory,)s +3913 X(or)s +4023 X(may)s +4222 X(be)s +4343 X(named)s +4636 X(in)s +874 X +3396 Y(the)s +1024 X(user)s +1218 X(pro\256le\).)s +1590 X(When)s +1856 X(a)s +1928 X(folder)s +2194 X(becomes)s +2571 X(the)s +2721 X(current)s +3031 X(folder,)s +3322 X(it)s +3406 X(is)s +3501 X(recorded)s +3876 X(in)s +3981 X(the)s +4130 X(user's)s +4395 X(context.)s +874 X +3516 Y(\(Other)s +1165 X(state)s +1379 X(information)s +1882 X(is)s +1980 X(kept)s +2183 X(in)s +2292 X(the)s +2445 X(context)s +2770 X(\256le,)s +2954 X(see)s +3112 X(the)s +3264 X(manual)s +3588 X(entry)s +3823 X(for)s +3969 X +0.0 10 10 f.I ft(mh\261pro\256le)s +4452 X +0.0 10 10 f.R ft(\(5\))s +4598 X(for)s +874 X +3636 Y(more)s +1105 X(details.\))s +1450 X(In)s +1559 X(general,)s +1903 X(the)s +2051 X(term)s +2260 X(``pro\256le)s +2613 X(entry'')s +2910 X(refer)s +3123 X(to)s +3227 X(entries)s +3519 X(in)s +3623 X(either)s +3876 X(the)s +4024 X(pro\256le)s +4311 X(or)s +4420 X(context)s +874 X +3756 Y(\256le.)s +1077 X(Users)s +1329 X(of)s +1437 X +0.0 10 10 f.I ft(MH)s +1617 X +0.0 10 10 f.R ft(needn't)s +1941 X(worry)s +2204 X(about)s +2451 X(the)s +2598 X(distinction,)s +3071 X +0.0 10 10 f.I ft(MH)s +3251 X +0.0 10 10 f.R ft(handles)s +3581 X(these)s +3811 X(things)s +4081 X(automatically.)s +874 X +3938 Y +1124 X(The)s +1311 X +0.0 10 10 f.I ft(MH)s +1498 X +0.0 10 10 f.R ft(pro\256le)s +1791 X(is)s +1890 X(stored)s +2166 X(in)s +2276 X(the)s +2430 X(\256le)s +2590 X +0.0 10 10 f.I ft(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +3080 X +0.0 10 10 f.R ft(in)s +3190 X(the)s +3344 X(user's)s +3614 X +0.0 10 10 f.B ft($HOME)s +4013 X +0.0 10 10 f.R ft(directory)s +3898 Y +0.0 7 7 f.R ft(1)s +3938 Y +0.0 10 10 f.R ft(.)s +4489 X(It)s +4581 X(has)s +874 X +4058 Y(the)s +1022 X(format)s +1314 X(of)s +1423 X(a)s +1493 X(message)s +1856 X(without)s +2187 X(any)s +2356 X(body.)s +2631 X(That)s +2839 X(is,)s +2956 X(each)s +3163 X(pro\256le)s +3449 X(entry)s +3679 X(is)s +3771 X(on)s +3896 X(one)s +4065 X(line,)s +4265 X(with)s +4468 X(a)s +4537 X(key-)s +874 X +4178 Y(word)s +1104 X(followed)s +1484 X(by)s +1609 X(a)s +1678 X(colon)s +1925 X(\(:\))s +2044 X(followed)s +2424 X(by)s +2549 X(text)s +2724 X(particular)s +3131 X(to)s +3234 X(the)s +3381 X(keyword.)s +874 X +4298 Y +0.0 10 10 f.S ft(\336)s +0.0 10 10 f.R ft( )s +1048 X +0.0 10 10 f.I ft(This)s +1246 X(\256le)s +1393 X(must)s +1607 X(not)s +1760 X(have)s +1973 X(blank)s +2220 X(lines.)s +874 X +4418 Y +0.0 10 10 f.R ft(The)s +1068 X(keywords)s +1495 X(may)s +1706 X(have)s +1933 X(any)s +2116 X(combination)s +2654 X(of)s +2775 X(upper)s +3040 X(and)s +3222 X(lower)s +3487 X(case.)s +3746 X(\(See)s +3961 X(the)s +4121 X(information)s +4631 X(of)s +874 X +4538 Y +0.0 10 10 f.I ft(mh\261mail)s +1249 X +0.0 10 10 f.R ft(later)s +1451 X(on)s +1576 X(in)s +1679 X(this)s +1849 X(manual)s +2168 X(for)s +2309 X(a)s +2378 X(description)s +2847 X(of)s +2955 X(message)s +3318 X(formats.\))s +874 X +4700 Y +1124 X(For)s +1289 X(the)s +1437 X(average)s +1772 X +0.0 10 10 f.I ft(MH)s +1953 X +0.0 10 10 f.R ft(user,)s +2170 X(the)s +2318 X(only)s +2522 X(pro\256le)s +2809 X(entry)s +3039 X(of)s +3147 X(importance)s +3621 X(is)s +3713 X(``Path''.)s +4098 X(Path)s +4301 X(speci\256es)s +4670 X(a)s +874 X +4820 Y(directory)s +1271 X(in)s +1386 X(which)s +1667 X +0.0 10 10 f.I ft(MH)s +1859 X +0.0 10 10 f.R ft(folders)s +2172 X(and)s +2352 X(certain)s +2659 X(\256les)s +2862 X(such)s +3081 X(as)s +3200 X(``draft'')s +3556 X(are)s +3713 X(found.)s +4032 X(The)s +4223 X(argument)s +4636 X(to)s +874 X +4940 Y(this)s +1054 X(keyword)s +1438 X(must)s +1668 X(be)s +1797 X(a)s +1876 X(legal)s +2105 X(UNIX)s +2389 X(path)s +2596 X(that)s +2781 X(names)s +3071 X(an)s +3200 X(existing)s +3552 X(directory.)s +3997 X(If)s +4098 X(this)s +4278 X(path)s +4485 X(is)s +4586 X(not)s +874 X +5060 Y(absolute)s +1241 X(\(i.e.,)s +1455 X(does)s +1672 X(not)s +1834 X(begin)s +2090 X(with)s +2302 X(a)s +2380 X +0.0 10 10 f.B ft(/)s +2458 X +0.0 10 10 f.R ft(\),)s +2550 X(it)s +2640 X(will)s +2830 X(be)s +2957 X(presumed)s +3378 X(to)s +3489 X(start)s +3694 X(from)s +3921 X(the)s +4076 X(user's)s +4347 X +0.0 10 10 f.B ft($HOME)s +874 X +5180 Y +0.0 10 10 f.R ft(directory.)s +1313 X(All)s +1470 X(folder)s +1737 X(and)s +1910 X(message)s +2277 X(references)s +2714 X(within)s +2999 X +0.0 10 10 f.I ft(MH)s +3183 X +0.0 10 10 f.R ft(will)s +3368 X(relate)s +3618 X(to)s +3724 X(this)s +3897 X(path)s +4097 X(unless)s +4375 X(full)s +4542 X(path)s +874 X +5300 Y(names)s +1154 X(are)s +1300 X(used.)s +874 X +5462 Y +1124 X(Message)s +1502 X(protection)s +1936 X(defaults)s +2280 X(to)s +2386 X(644,)s +2589 X(and)s +2761 X(folder)s +3027 X(protection)s +3460 X(to)s +3566 X(711.)s +3794 X(These)s +4060 X(may)s +4260 X(be)s +4382 X(changed)s +874 X +5582 Y(by)s +1011 X(pro\256le)s +1309 X(entries)s +1611 X(``Msg-Protect'')s +2273 X(and)s +2453 X(``Folder-Protect'',)s +3223 X(respectively.)s +3791 X(The)s +3982 X(argument)s +4395 X(to)s +4509 X(these)s +874 X +5722 Y(keywords)s +1287 X(is)s +1379 X(an)s +1498 X(octal)s +1717 X(number)s +2047 X(which)s +2316 X(is)s +2408 X(used)s +2616 X(as)s +2724 X(the)s +2871 X(UNIX)s +3145 X(\256le)s +3298 X(mode)s +5682 Y +0.0 7 7 f.R ft(2)s +5722 Y +0.0 10 10 f.R ft(.)s +874 X +5884 Y +1124 X(When)s +1390 X(an)s +1512 X +0.0 10 10 f.I ft(MH)s +1695 X +0.0 10 10 f.R ft(program)s +2061 X(starts)s +2300 X(running,)s +2664 X(it)s +2748 X(looks)s +2993 X(through)s +3332 X(the)s +3482 X(user's)s +3748 X(pro\256le)s +4037 X(for)s +4181 X(an)s +4303 X(entry)s +4536 X(with)s +874 X +6004 Y(a)s +964 X(keyword)s +1359 X(matching)s +1777 X(the)s +1945 X(program's)s +2401 X(name.)s +2713 X(For)s +2898 X(example,)s +3307 X(when)s +3569 X +0.0 10 10 f.I ft(comp)s +3831 X +0.0 10 10 f.R ft(is)s +3943 X(run,)s +4146 X(it)s +4247 X(looks)s +4509 X(for)s +4670 X(a)s +874 X +6124 Y(``comp'')s +1256 X(pro\256le)s +1545 X(entry.)s +1828 X(If)s +1922 X(one)s +2094 X(is)s +2189 X(found,)s +2475 X(the)s +2625 X(text)s +2803 X(of)s +2914 X(the)s +3064 X(pro\256le)s +3353 X(entry)s +3586 X(is)s +3680 X(used)s +3890 X(as)s +4000 X(the)s +4149 X(default)s +4453 X(switch)s +874 X +6244 Y(setting)s +1183 X(until)s +1409 X(all)s +1551 X(defaults)s +1909 X(are)s +2072 X(overridden)s +2545 X(by)s +2686 X(explicit)s +3027 X(switches)s +3412 X(passed)s +3719 X(to)s +3838 X(the)s +4001 X(program)s +4380 X(as)s +4504 X(argu-)s +874 X +6364 Y(ments.)s +1197 X(Thus)s +1430 X(the)s +1585 X(pro\256le)s +1879 X(entry)s +2117 X(``comp:)s +2483 X(\261form)s +2777 X(standard.list'')s +3362 X(would)s +3645 X(direct)s +3905 X +0.0 10 10 f.I ft(comp)s +4154 X +0.0 10 10 f.R ft(to)s +4265 X(use)s +4431 X(the)s +4586 X(\256le)s +874 X +6484 Y(``standard.list'')s +1524 X(as)s +1639 X(the)s +1793 X(message)s +2163 X(skeleton.)s +2578 X(If)s +2676 X(an)s +2801 X(explicit)s +3132 X(form)s +3357 X(switch)s +3649 X(is)s +3747 X(given)s +4000 X(to)s +4109 X(the)s +4262 X +0.0 10 10 f.I ft(comp)s +4509 X +0.0 10 10 f.R ft(com-)s +874 X +6604 Y(mand,)s +1146 X(it)s +1227 X(will)s +1408 X(override)s +1765 X(the)s +1912 X(switch)s +2198 X(obtained)s +2567 X(from)s +2786 X(the)s +2933 X(pro\256le.)s +874 X +6804 Y +1090 X +0.0 5 5 f.R ft(1)s +6836 Y +1135 X +0.0 8 8 f.R ft(By)s +1249 X(de\256ning)s +1531 X(the)s +1648 X(envariable)s +1998 X +0.0 8 8 f.B ft($MH)s +0.0 8 8 f.R ft(,)s +2215 X(you)s +2355 X(can)s +2485 X(specify)s +2734 X(an)s +2829 X(alternate)s +3121 X(pro\256le)s +3349 X(to)s +3431 X(be)s +3526 X(used)s +3692 X(by)s +3792 X +0.0 8 8 f.I ft(MH)s +3936 X +0.0 8 8 f.R ft(commands.)s +874 X +6940 Y +1090 X +0.0 5 5 f.R ft(2)s +6972 Y +1135 X +0.0 8 8 f.R ft(See)s +1270 X +0.0 8 8 f.I ft(chmod)s +1523 X +0.0 8 8 f.R ft(\(1\))s +1635 X(in)s +1717 X(the)s +1834 X +0.0 8 8 f.I ft(UNIX)s +2041 X(Programmer's)s +2531 X(Manual)s +2819 X +0.0 8 8 f.R ft([5].)s +874 X +7320 Y +2736 X +0.0 10 10 f.B ft(-7-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 8 9 + +874 X +600 Y +2736 X(-8-)s +874 X +960 Y +1124 X +0.0 10 10 f.R ft(In)s +1243 X(UNIX,)s +1552 X(a)s +1631 X(program)s +2004 X(may)s +2211 X(exist)s +2435 X(under)s +2697 X(several)s +3014 X(names,)s +3329 X(either)s +3591 X(by)s +3726 X(linking)s +4045 X(or)s +4163 X(aliasing.)s +4559 X(The)s +874 X +1100 Y(actual)s +1156 X(invocation)s +1622 X(name)s +1882 X(is)s +1993 X(used)s +2220 X(by)s +2364 X(an)s +2501 X +0.0 10 10 f.I ft(MH)s +2699 X +0.0 10 10 f.R ft(program)s +3080 X(when)s +3339 X(scanning)s +3737 X(for)s +3896 X(its)s +4034 X(pro\256le)s +4338 X(defaults)s +1060 Y +0.0 7 7 f.R ft(3)s +1100 Y +0.0 10 10 f.R ft(.)s +874 X +1220 Y(Thus,)s +1132 X(each)s +1347 X +0.0 10 10 f.I ft(MH)s +1535 X +0.0 10 10 f.R ft(program)s +1906 X(may)s +2111 X(have)s +2332 X(several)s +2647 X(names)s +2935 X(by)s +3068 X(which)s +3345 X(it)s +3433 X(can)s +3603 X(be)s +3729 X(invoked,)s +4108 X(and)s +4284 X(each)s +4498 X(name)s +874 X +1340 Y(may)s +1086 X(have)s +1314 X(a)s +1398 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erent)s +1775 X(set)s +1925 X(of)s +2047 X(default)s +2363 X(switches.)s +2796 X(For)s +2974 X(example,)s +3376 X(if)s +3476 X +0.0 10 10 f.I ft(comp)s +3731 X +0.0 10 10 f.R ft(is)s +3837 X(invoked)s +4198 X(by)s +4337 X(the)s +4498 X(name)s +874 X +1460 Y +0.0 10 10 f.I ft(icomp)s +0.0 10 10 f.R ft(,)s +1181 X(the)s +1341 X(pro\256le)s +1640 X(entry)s +1883 X(``icomp'')s +2303 X(will)s +2497 X(control)s +2818 X(the)s +2978 X(default)s +3293 X(switches)s +3675 X(for)s +3829 X(this)s +4012 X(invocation)s +4472 X(of)s +4592 X(the)s +874 X +1580 Y +0.0 10 10 f.I ft(comp)s +1127 X +0.0 10 10 f.R ft(program.)s +1552 X(This)s +1767 X(provides)s +2148 X(a)s +2229 X(powerful)s +2626 X(de\256nitional)s +3119 X(facility)s +3438 X(for)s +3590 X(commonly)s +4054 X(used)s +4273 X(switch)s +4570 X(set-)s +874 X +1700 Y(tings.)s +874 X +1862 Y +1124 X(The)s +1311 X(default)s +1620 X(editor)s +1885 X(for)s +2033 X(editing)s +2343 X(within)s +2631 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2904 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +3122 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +3363 X(and)s +3539 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +3740 X(is)s +3838 X(usually)s +4158 X +0.0 10 10 f.I ft(prompter)s +0.0 10 10 f.R ft(,)s +4586 X(but)s +874 X +1982 Y(might)s +1142 X(be)s +1270 X(something)s +1721 X(else)s +1910 X(at)s +2016 X(your)s +2233 X(site,)s +2431 X(such)s +2648 X(as)s +2765 X +0.0 10 10 f.I ft(/usr/ucb/ex)s +3243 X +0.0 10 10 f.R ft(or)s +3360 X +0.0 10 10 f.I ft(/bin/e)s +0.0 10 10 f.R ft(.)s +3672 X(A)s +3778 X(di)s +Cff(erent)s +4149 X(editor)s +4415 X(may)s +4620 X(be)s +874 X +2102 Y(used)s +1090 X(by)s +1223 X(specifying)s +1672 X(the)s +1827 X(pro\256le)s +2121 X(entry)s +2359 X(``Editor:)s +2736 X(''.)s +2884 X(The)s +3071 X(argument)s +3480 X(to)s +3590 X(``Editor'')s +4004 X(is)s +4103 X(the)s +4257 X(name)s +4505 X(of)s +4620 X(an)s +874 X +2222 Y(executable)s +1335 X(program)s +1708 X(or)s +1826 X(shell)s +2050 X(command)s +2479 X(\256le)s +2642 X(which)s +2921 X(can)s +3094 X(be)s +3223 X(found)s +3491 X(via)s +3647 X(the)s +3803 X(user's)s +4075 X($PATH)s +4420 X(de\256ned)s +874 X +2342 Y(search)s +1155 X(path,)s +1379 X(excluding)s +1800 X(the)s +1949 X(current)s +2258 X(directory.)s +2695 X(The)s +2877 X(``Editor:'')s +3313 X(pro\256le)s +3600 X(speci\256cation)s +4131 X(may)s +4329 X(in)s +4433 X(turn)s +4620 X(be)s +874 X +2462 Y(overridden)s +1350 X(by)s +1494 X(a)s +1582 X(`\261editor)s +1948 X(')s +2370 X(pro\256le)s +2675 X(switch)s +2979 X(associated)s +3432 X(with)s +3653 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +3937 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +4166 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +4418 X(or)s +4544 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(.)s +874 X +2582 Y(Finally,)s +1213 X(an)s +1336 X(explicit)s +1665 X(editor)s +1927 X(switch)s +2217 X(speci\256ed)s +2601 X(with)s +2808 X(any)s +2981 X(of)s +3093 X(these)s +3327 X(four)s +3522 X(commands)s +3984 X(will)s +4169 X(have)s +4386 X(ultimate)s +874 X +2702 Y(precedence.)s +874 X +2864 Y +1124 X(During)s +1438 X(message)s +1807 X(composition,)s +2358 X(more)s +2594 X(than)s +2797 X(one)s +2971 X(editor)s +3234 X(may)s +3436 X(be)s +3560 X(used.)s +3823 X(For)s +3992 X(example,)s +4385 X(one)s +4559 X(edi-)s +874 X +2984 Y(tor)s +1026 X(\(such)s +1283 X(as)s +1407 X +0.0 10 10 f.I ft(prompter)s +1829 X +0.0 10 10 f.R ft(\))s +1903 X(may)s +2116 X(be)s +2251 X(used)s +2475 X(initially,)s +2853 X(and)s +3037 X(a)s +3121 X(second)s +3438 X(editor)s +3711 X(may)s +3923 X(be)s +4057 X(invoked)s +4419 X(later)s +4636 X(to)s +874 X +3104 Y(revise)s +1150 X(the)s +1310 X(message)s +1685 X(being)s +1944 X(composed)s +2386 X(\(see)s +2583 X(the)s +2742 X(discussion)s +3196 X(of)s +3316 X +0.0 10 10 f.I ft(comp)s +3569 X +0.0 10 10 f.R ft(in)s +3684 X(Section)s +4021 X(5)s +4108 X(for)s +4261 X(details\).)s +4642 X(A)s +874 X +3224 Y(pro\256le)s +1167 X(entry)s +1404 X(``\261next:)s +2254 X('')s +2697 X(speci\256es)s +3073 X(the)s +3227 X(name)s +3475 X(of)s +3590 X(the)s +3744 X(editor)s +4009 X(to)s +4118 X(be)s +4243 X(used)s +4457 X(after)s +4670 X(a)s +874 X +3344 Y(particular)s +1314 X(editor.)s +1655 X(Thus)s +1913 X(``comp:)s +2279 X(\261e)s +2423 X(prompter'')s +2913 X(causes)s +3231 X(the)s +3411 X(initial)s +3703 X(text)s +3911 X(to)s +4046 X(be)s +4197 X(collected)s +4614 X(by)s +874 X +3464 Y +0.0 10 10 f.I ft(prompter)s +0.0 10 10 f.R ft(,)s +1302 X(and)s +1477 X(the)s +1629 X(pro\256le)s +1920 X(entry)s +2155 X(``prompter\261next:)s +2887 X(ed'')s +3077 X(names)s +3362 X(ed)s +3486 X(as)s +3599 X(the)s +3751 X(editor)s +4014 X(to)s +4122 X(be)s +4246 X(invoked)s +4598 X(for)s +874 X +3584 Y(the)s +1021 X(next)s +1218 X(round)s +1476 X(of)s +1584 X(editing.)s +874 X +3746 Y +1124 X(Some)s +1389 X(of)s +1509 X(the)s +1668 X +0.0 10 10 f.I ft(MH)s +1860 X +0.0 10 10 f.R ft(commands,)s +2355 X(such)s +2575 X(as)s +2695 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +2963 X(can)s +3138 X(be)s +3269 X(used)s +3489 X(on)s +3625 X(message)s +3999 X(folders)s +4312 X(owned)s +4614 X(by)s +874 X +3866 Y(others,)s +1174 X(if)s +1266 X(those)s +1508 X(folders)s +1816 X(are)s +1968 X(readable.)s +2386 X(However,)s +2807 X(you)s +2987 X(cannot)s +3283 X(write)s +3518 X(in)s +3626 X(someone)s +4011 X(else's)s +4268 X(folder.)s +4586 X(All)s +874 X +3986 Y(the)s +1040 X +0.0 10 10 f.I ft(MH)s +1239 X +0.0 10 10 f.R ft(command)s +1677 X(actions)s +2004 X(not)s +2175 X(requiring)s +2584 X(write)s +2832 X(permission)s +3314 X(may)s +3529 X(be)s +3666 X(used)s +3892 X(with)s +4113 X(a)s +4200 X(``read-only'')s +874 X +4106 Y(folder.)s +874 X +4268 Y +1124 X(Table)s +1379 X(1)s +1457 X(lists)s +1647 X(examples)s +2052 X(of)s +2163 X(some)s +2401 X(of)s +2511 X(the)s +2660 X(currently)s +3047 X(de\256ned)s +3368 X(pro\256le)s +3656 X(entries,)s +3974 X(typical)s +4273 X(arguments,)s +874 X +4388 Y(and)s +1043 X(the)s +1190 X(programs)s +1592 X(that)s +1767 X(reference)s +2161 X(the)s +2308 X(entries.)s +874 X +6604 Y +1090 X +0.0 5 5 f.R ft(3)s +6636 Y +1142 X +0.0 8 8 f.R ft(Unfortunately,)s +1635 X(the)s +1759 X(shell)s +1935 X(does)s +2107 X(not)s +2235 X(preserve)s +2529 X(aliasing)s +2802 X(information)s +3203 X(when)s +3402 X(calling)s +3644 X(a)s +3705 X(program,)s +4020 X(hence)s +4231 X(if)s +4305 X(a)s +4366 X(program)s +4661 X(is)s +874 X +6732 Y(invoked)s +1157 X(by)s +1263 X(an)s +1364 X(alias)s +1535 X(di)s +Cff(erent)s +1830 X(than)s +1993 X(its)s +2094 X(name,)s +2312 X(the)s +2435 X(program)s +2730 X(will)s +2879 X(examine)s +3173 X(the)s +3295 X(pro\256le)s +3528 X(entry)s +3716 X(for)s +3833 X(it's)s +3959 X(name,)s +4176 X(not)s +4303 X(the)s +4425 X(alias)s +4595 X(that)s +874 X +6828 Y(the)s +993 X(user)s +1147 X(invoked)s +1425 X(it)s +1490 X(as.)s +1617 X(The)s +1762 X(correct)s +2002 X(solution)s +2280 X(is)s +2354 X(to)s +2437 X(create)s +2646 X(a)s +2702 X(\(soft\))s +2894 X(link)s +3039 X(in)s +3122 X(your)s +3289 X +0.0 8 8 f.I ft($HOME/bin)s +3705 X +0.0 8 8 f.R ft(directory)s +4012 X(to)s +4095 X(the)s +4213 X +0.0 8 8 f.I ft(MH)s +4358 X +0.0 8 8 f.R ft(program)s +4648 X(of)s +874 X +6924 Y(your)s +1040 X(choice.)s +1307 X(By)s +1421 X(giving)s +1645 X(this)s +1780 X(link)s +1924 X(a)s +1979 X(di)s +Cff(erent)s +2268 X(name,)s +2480 X(you)s +2620 X(can)s +2750 X(use)s +2876 X(an)s +2971 X(alternate)s +3263 X(set)s +3371 X(of)s +3457 X(defaults)s +3728 X(for)s +3840 X(the)s +3957 X(command.)s +7920 Y +page +0.0 8 8 f.R ft +%%Page: 9 10 + +874 X +600 Y +2736 X +0.0 10 10 f.B ft(-9-)s +874 X +960 Y +2643 X +0.0 10 10 f.R ft(Table)s +2895 X(1)s +874 X +1160 Y +2334 X(P)s +0.0 8 8 f.R ft(ROFILE)s +2696 X +0.0 10 10 f.R ft(C)s +0.0 8 8 f.R ft(OMPONENTS)s +874 X +1280 Y +1522 X +0.0 10 10 f.R ft +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru +1566 X +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +874 X +1520 Y +2746 X +0.0 10 10 f.I ft(MH)s +2926 X +0.0 10 10 f.R ft(Programs)s +3334 X(that)s +874 X +1640 Y +1522 X(Keyword)s +1918 X(and)s +2087 X(Argument)s +2746 X( use)s +2929 X(Component)s +1680 Y +1522 X +Cru +1566 X +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +874 X +1880 Y +1522 X(Path:)s +1778 X(Mail)s +2746 X(All)s +874 X +2000 Y +1522 X(Current-Folder:)s +2199 X(inbox)s +2746 X(Most)s +874 X +2120 Y +1522 X(Editor:)s +1850 X(/usr/ucb/ex)s +2746 X +0.0 10 10 f.I ft(comp,)s +3012 X(dist,)s +3207 X(forw,)s +3441 X(repl)s +874 X +2240 Y +1522 X +0.0 10 10 f.R ft(Inbox:)s +1833 X(inbox)s +2746 X +0.0 10 10 f.I ft(inc,)s +2918 X(rmf)s +874 X +2360 Y +1522 X +0.0 10 10 f.R ft(Msg\261Protect:)s +2111 X(644)s +2746 X +0.0 10 10 f.I ft(inc)s +874 X +2480 Y +1522 X +0.0 10 10 f.R ft(Folder\261Protect:)s +2194 X(711)s +2746 X +0.0 10 10 f.I ft(inc,)s +2918 X(pick,)s +3134 X(re\256le)s +874 X +2600 Y +1522 X +0.0 10 10 f.R ft(:)s +2050 X(default)s +2352 X(switches)s +2746 X(All)s +874 X +2720 Y +1522 X(prompter\261next:)s +2188 X(ed)s +2746 X +0.0 10 10 f.I ft(comp,)s +3012 X(dist,)s +3207 X(forw,)s +3441 X(repl)s +874 X +2840 Y +1522 X +0.0 10 10 f.R ft +Cru +1566 X +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +Cru +874 X +3122 Y +1124 X(Path)s +1335 X(should)s +1335 X +0.0 10 10 f.S ft(_)s +1352 X(_____)s +1635 X +0.0 10 10 f.R ft(be)s +1762 X(present.)s +2133 X(Current\261Folder)s +2782 X(is)s +2882 X(maintained)s +3359 X(automatically)s +3936 X(by)s +4068 X(many)s +4322 X +0.0 10 10 f.I ft(MH)s +4509 X +0.0 10 10 f.R ft(com-)s +874 X +3242 Y(mands)s +1165 X(\(see)s +1355 X(the)s +1507 X +0.0 10 10 f.B ft(Context)s +1874 X +0.0 10 10 f.R ft(sections)s +2225 X(of)s +2337 X(the)s +2488 X(individual)s +2923 X(commands)s +3385 X(in)s +3492 X(Sec.)s +3690 X(IV\).)s +3907 X(All)s +4064 X(other)s +4298 X(entries)s +4593 X(are)s +874 X +3362 Y(optional,)s +1252 X(defaulting)s +1682 X(to)s +1785 X(the)s +1932 X(values)s +2212 X(described)s +2619 X(above.)s +874 X +3782 Y +0.0 10 10 f.B ft(MESSAGE)s +1389 X(NAMING)s +0.0 10 10 f.R ft( )s +874 X +3944 Y +1124 X(Messages)s +1543 X(may)s +1746 X(be)s +1871 X(referred)s +2216 X(to)s +2325 X(explicitly)s +2734 X(or)s +2848 X(implicitly)s +3269 X(when)s +3516 X(using)s +3764 X +0.0 10 10 f.I ft(MH)s +3950 X +0.0 10 10 f.R ft(commands.)s +4463 X(A)s +4565 X(for-)s +874 X +4064 Y(mal)s +1055 X(syntax)s +1347 X(of)s +1461 X(message)s +1830 X(names)s +2116 X(is)s +2214 X(given)s +2466 X(in)s +2574 X(Appendix)s +2998 X(B,)s +3120 X(but)s +3278 X(the)s +3430 X(following)s +3849 X(description)s +4323 X(should)s +4620 X(be)s +874 X +4184 Y(su)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icient)s +1275 X(for)s +1420 X(most)s +1644 X +0.0 10 10 f.I ft(MH)s +1828 X +0.0 10 10 f.R ft(users.)s +2112 X(Some)s +2369 X(details)s +2659 X(of)s +2771 X(message)s +3138 X(naming)s +3467 X(that)s +3646 X(apply)s +3897 X(only)s +4104 X(to)s +4210 X(certain)s +4509 X(com-)s +874 X +4304 Y(mands)s +1160 X(are)s +1306 X(included)s +1675 X(in)s +1778 X(the)s +1925 X(description)s +2394 X(of)s +2502 X(those)s +2738 X(commands.)s +874 X +4466 Y +1124 X(Most)s +1359 X(of)s +1471 X(the)s +1622 X +0.0 10 10 f.I ft(MH)s +1806 X +0.0 10 10 f.R ft(commands)s +2268 X(accept)s +2551 X(arguments)s +2996 X(specifying)s +3441 X(one)s +3613 X(or)s +3724 X(more)s +3957 X(folders,)s +4287 X(and)s +4459 X(one)s +4631 X(or)s +874 X +4586 Y(more)s +1121 X(messages)s +1540 X(to)s +1660 X(operate)s +1995 X(on.)s +2187 X(The)s +2384 X(use)s +2559 X(of)s +2684 X(the)s +2848 X(word)s +3095 X(``msg'')s +3436 X(as)s +3561 X(an)s +3697 X(argument)s +4116 X(to)s +4235 X(a)s +4320 X(command)s +874 X +4706 Y(means)s +1164 X(that)s +1349 X(exactly)s +1671 X(one)s +1849 X(message)s +2221 X(name)s +2471 X(may)s +2677 X(be)s +2805 X(speci\256ed.)s +3244 X(A)s +3350 X(message)s +3722 X(name)s +3972 X(may)s +4178 X(be)s +4306 X(a)s +4384 X(number,)s +874 X +4826 Y(such)s +1085 X(as)s +1196 X(1,)s +1299 X(33,)s +1452 X(or)s +1563 X(234,)s +1766 X(or)s +1877 X(it)s +1961 X(may)s +2161 X(be)s +2283 X(one)s +2455 X(of)s +2566 X(the)s +2716 X(``reserved'')s +3213 X(message)s +3579 X(names:)s +3889 X(\256rst,)s +4097 X(last,)s +4288 X(prev,)s +4517 X(next,)s +874 X +4946 Y(and)s +1052 X(cur.)s +1263 X(\(As)s +1441 X(a)s +1519 X(shorthand,)s +1972 X(a)s +2050 X(period)s +2339 X(\(.\))s +2464 X(is)s +2565 X(equivalent)s +3015 X(to)s +3127 X(cur.\))s +3346 X(The)s +3535 X(meanings)s +3951 X(of)s +4067 X(these)s +4305 X(names)s +4593 X(are)s +874 X +5066 Y(straightforward:)s +1559 X(``\256rst'')s +1889 X(is)s +1998 X(the)s +2162 X(\256rst)s +2360 X(message)s +2740 X(in)s +2860 X(the)s +3024 X(folder;)s +3331 X(``last'')s +3643 X(is)s +3751 X(the)s +3914 X(last)s +4094 X(message)s +4473 X(in)s +4592 X(the)s +874 X +5186 Y(folder;)s +1168 X(``prev'')s +1505 X(is)s +1600 X(the)s +1750 X(message)s +2115 X(numerically)s +2619 X(previous)s +2990 X(to)s +3095 X(the)s +3244 X(current)s +3553 X(message;)s +3946 X(``next'')s +4277 X(is)s +4371 X(the)s +4520 X(mes-)s +874 X +5306 Y(sage)s +1084 X(numerically)s +1594 X(following)s +2016 X(the)s +2171 X(current)s +2486 X(message;)s +2884 X(``cur'')s +3175 X(\(or)s +3323 X(``.''\))s +3545 X(is)s +3644 X(the)s +3798 X(current)s +4112 X(message)s +4482 X(in)s +4592 X(the)s +874 X +5426 Y(folder.)s +1189 X(In)s +1299 X(addition,)s +1679 X +0.0 10 10 f.I ft(MH)s +1861 X +0.0 10 10 f.R ft(supports)s +2227 X(user\261de\256ned\261sequences;)s +3246 X(see)s +3400 X(the)s +3549 X(description)s +4020 X(of)s +4130 X(the)s +4278 X +0.0 10 10 f.I ft(mark)s +4509 X +0.0 10 10 f.R ft(com-)s +874 X +5546 Y(mand)s +1121 X(for)s +1262 X(more)s +1492 X(information.)s +874 X +5708 Y +1124 X(The)s +1304 X(default)s +1606 X(in)s +1709 X(commands)s +2167 X(that)s +2342 X(take)s +2533 X(a)s +2602 X(``msg'')s +2926 X(argument)s +3328 X(is)s +3420 X(always)s +3722 X(``cur''.)s +874 X +5870 Y +1124 X(The)s +1305 X(word)s +1536 X(``msgs'')s +1900 X(indicates)s +2281 X(that)s +2457 X(several)s +2765 X(messages)s +3168 X(may)s +3366 X(be)s +3485 X(speci\256ed.)s +3915 X(Such)s +4140 X(a)s +4209 X(speci\256cation)s +874 X +5990 Y(consists)s +1216 X(of)s +1324 X(several)s +1631 X(message)s +1994 X(designations)s +2519 X(separated)s +2920 X(by)s +3045 X(spaces.)s +3380 X(A)s +3477 X(message)s +3840 X(designation)s +4326 X(is)s +4418 X(either)s +4670 X(a)s +874 X +6110 Y(message)s +1277 X(name)s +1558 X(or)s +1706 X(a)s +1815 X(message)s +2218 X(range.)s +2554 X(A)s +2691 X(message)s +3094 X(range)s +3379 X(is)s +3510 X(a)s +3618 X(speci\256cation)s +4187 X(of)s +4334 X(the)s +4520 X(form)s +874 X +6230 Y(name1\261name2)s +1493 X(or)s +1613 X(name1:n,)s +2019 X(where)s +2299 X(name1)s +2602 X(and)s +2783 X(name2)s +3086 X(are)s +3244 X(message)s +3619 X(names)s +3911 X(and)s +4092 X(n)s +4179 X(is)s +4282 X(an)s +4412 X(integer.)s +874 X +6350 Y(The)s +1059 X(\256rst)s +1245 X(form)s +1468 X(designates)s +1913 X(all)s +2042 X(the)s +2193 X(messages)s +2599 X(from)s +2822 X(name1)s +3117 X(to)s +3224 X(name2)s +3519 X(inclusive;)s +3937 X(this)s +4111 X(must)s +4335 X(be)s +4458 X(a)s +4531 X(non-)s +874 X +6470 Y(empty)s +1158 X(range.)s +1463 X(The)s +1652 X(second)s +1963 X(form)s +2191 X(speci\256es)s +2569 X(up)s +2703 X(to)s +2815 X(n)s +2899 X(messages,)s +3334 X(starting)s +3667 X(with)s +3878 X(name1)s +4177 X(if)s +4271 X(name1)s +4570 X(is)s +4670 X(a)s +874 X +6590 Y(number,)s +1235 X(or)s +1349 X(\256rst,)s +1561 X(cur,)s +1744 X(or)s +1858 X(next,)s +2086 X(and)s +2261 X(ending)s +2564 X(with)s +2772 X(name1)s +3068 X(if)s +3159 X(name1)s +3455 X(is)s +3552 X(last)s +3721 X(or)s +3834 X(prev.)s +4091 X(This)s +4299 X(interpreta-)s +874 X +6710 Y(tion)s +1058 X(of)s +1169 X(n)s +1247 X(is)s +1342 X(overridden)s +1802 X(if)s +1891 X(n)s +1969 X(is)s +2064 X(preceded)s +2451 X(by)s +2579 X(a)s +2650 X(plus)s +2844 X(sign)s +3038 X(or)s +3148 X(a)s +3219 X(minus)s +3491 X(sign;)s +3713 X(+n)s +3846 X(always)s +4150 X(means)s +4432 X(up)s +4559 X(to)s +4664 X(n)s +874 X +6830 Y(messages)s +1292 X(starting)s +1633 X(with)s +1852 X(name1,)s +2184 X(and)s +2369 X(\261n)s +2510 X(always)s +2828 X(means)s +3124 X(up)s +3265 X(to)s +3384 X(n)s +3475 X(messages)s +3893 X(ending)s +4205 X(with)s +4423 X(name1.)s +874 X +6950 Y(Repeated)s +1280 X(speci\256cations)s +1859 X(of)s +1977 X(the)s +2134 X(same)s +2374 X(message)s +2747 X(have)s +2970 X(the)s +3127 X(same)s +3367 X(e)s +Cff(ect)s +3623 X(as)s +3741 X(a)s +3819 X(single)s +4092 X(speci\256cation)s +4631 X(of)s +874 X +7070 Y(the)s +1021 X(message.)s +1434 X(Examples)s +1853 X(of)s +1961 X(speci\256cations)s +2530 X(are:)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 10 11 + +874 X +600 Y +2711 X +0.0 10 10 f.B ft(-10-)s +874 X +960 Y +1074 X +0.0 10 10 f.R ft(1)s +1149 X(5)s +1224 X(7\26111)s +1449 X(22)s +874 X +1080 Y +1074 X(\256rst)s +1255 X(6)s +1330 X(8)s +1405 X(next)s +874 X +1200 Y +1074 X(\256rst\26110)s +874 X +1320 Y +1074 X(last:5)s +874 X +1524 Y +1124 X(The)s +1306 X(message)s +1671 X(name)s +1913 X(``all'')s +2171 X(is)s +2264 X(a)s +2334 X(shorthand)s +2754 X(for)s +2896 X(``\256rst\261last'',)s +3424 X(indicating)s +3850 X(all)s +3976 X(of)s +4085 X(the)s +4233 X(messages)s +4636 X(in)s +874 X +1644 Y(the)s +1021 X(folder.)s +874 X +1806 Y +1124 X(In)s +1242 X(commands)s +1710 X(that)s +1895 X(accept)s +2184 X(``msgs'')s +2557 X(arguments,)s +3032 X(the)s +3188 X(default)s +3499 X(is)s +3600 X(either)s +3861 X(cur)s +4022 X(or)s +4139 X(all,)s +4298 X(depending)s +874 X +1926 Y(on)s +999 X(which)s +1268 X(makes)s +1548 X(more)s +1778 X(sense.)s +874 X +2088 Y +1124 X(In)s +1239 X(all)s +1371 X(of)s +1486 X(the)s +1640 X +0.0 10 10 f.I ft(MH)s +1826 X +0.0 10 10 f.R ft(commands,)s +2315 X(a)s +2390 X(plus)s +2588 X(sign)s +2786 X(preceding)s +3210 X(an)s +3335 X(argument)s +3743 X(indicates)s +4129 X(a)s +4204 X(folder)s +4473 X(name.)s +874 X +2208 Y(Thus,)s +1139 X(``+inbox'')s +1595 X(is)s +1702 X(the)s +1864 X(name)s +2120 X(of)s +2243 X(the)s +2405 X(user's)s +2683 X(standard)s +3060 X(inbox.)s +3377 X(If)s +3482 X(an)s +3615 X(explicit)s +3954 X(folder)s +4231 X(argument)s +4647 X(is)s +874 X +2328 Y(given)s +1136 X(to)s +1254 X(an)s +1388 X +0.0 10 10 f.I ft(MH)s +1583 X +0.0 10 10 f.R ft(command,)s +2042 X(it)s +2138 X(will)s +2333 X(become)s +2682 X(the)s +2843 X(current)s +3164 X(folder)s +3441 X(\(that)s +3663 X(is,)s +3794 X(the)s +3955 X(``Current-Folder:'')s +874 X +2448 Y(entry)s +1115 X(in)s +1229 X(the)s +1387 X(user's)s +1661 X(pro\256le)s +1958 X(will)s +2150 X(be)s +2280 X(changed)s +2648 X(to)s +2762 X(this)s +2943 X(folder\).)s +3299 X(In)s +3417 X(the)s +3574 X(case)s +3780 X(of)s +3898 X(the)s +4055 X +0.0 10 10 f.I ft(re\256le)s +4295 X +0.0 10 10 f.R ft(command,)s +874 X +2568 Y(which)s +1160 X(can)s +1340 X(have)s +1570 X(multiple)s +1946 X(output)s +2244 X(folders,)s +2587 X(a)s +2672 X(new)s +2879 X(source)s +3180 X(folder)s +3459 X(\(other)s +3738 X(than)s +3951 X(the)s +4114 X(default)s +4432 X(current)s +874 X +2688 Y(folder\))s +1170 X(is)s +1262 X(speci\256ed)s +1642 X(by)s +1767 X(`\261src)s +2016 X(+folder'.)s +874 X +3108 Y +0.0 10 10 f.B ft(OTHER)s +1261 X(MH)s +1458 X(CONVENTIONS)s +0.0 10 10 f.R ft( )s +874 X +3270 Y +1124 X(One)s +1330 X(very)s +1547 X(powerful)s +1947 X(feature)s +2263 X(of)s +2386 X +0.0 10 10 f.I ft(MH)s +2581 X +0.0 10 10 f.R ft(is)s +2688 X(that)s +2877 X(the)s +3038 X +0.0 10 10 f.I ft(MH)s +3232 X +0.0 10 10 f.R ft(commands)s +3704 X(may)s +3915 X(be)s +4048 X(issued)s +4337 X(from)s +4570 X(any)s +874 X +3390 Y(current)s +1187 X(directory,)s +1603 X(and)s +1778 X(the)s +1931 X(proper)s +2222 X(path)s +2425 X(to)s +2534 X(the)s +2687 X(appropriate)s +3171 X(folder\(s\))s +3544 X(will)s +3730 X(be)s +3854 X(taken)s +4100 X(from)s +4324 X(the)s +4476 X(user's)s +874 X +3510 Y(pro\256le.)s +1214 X(If)s +1309 X(the)s +1460 X +0.0 10 10 f.I ft(MH)s +1644 X +0.0 10 10 f.R ft(path)s +1845 X(is)s +1941 X(not)s +2098 X(appropriate)s +2581 X(for)s +2726 X(a)s +2799 X(speci\256c)s +3133 X(folder)s +3400 X(or)s +3512 X(\256le,)s +3693 X(the)s +3843 X(automatic)s +4265 X(prepending)s +874 X +3630 Y(of)s +988 X(the)s +1141 X +0.0 10 10 f.I ft(MH)s +1327 X +0.0 10 10 f.R ft(path)s +1530 X(can)s +1699 X(be)s +1824 X(avoided)s +2171 X(by)s +2302 X(beginning)s +2733 X(a)s +2808 X(folder)s +3076 X(or)s +3189 X(\256le)s +3347 X(name)s +3593 X(with)s +3801 X +0.0 10 10 f.B ft(/)s +0.0 10 10 f.R ft(,)s +3884 X(or)s +3997 X(with)s +4205 X +0.0 10 10 f.B ft(./)s +4288 X +0.0 10 10 f.R ft(or)s +4401 X +0.0 10 10 f.B ft(../)s +4509 X +0.0 10 10 f.R ft(com-)s +874 X +3750 Y(ponent.)s +1232 X(Thus)s +1468 X(any)s +1648 X(speci\256c)s +1988 X(absolute)s +2356 X(path)s +2563 X(may)s +2770 X(be)s +2899 X(speci\256ed)s +3289 X(along)s +3546 X(with)s +3759 X(any)s +3938 X(path)s +4145 X(relative)s +4479 X(to)s +4592 X(the)s +874 X +3870 Y(current)s +1181 X(working)s +1539 X(directory.)s +874 X +4032 Y +1124 X(Arguments)s +1603 X(to)s +1716 X(the)s +1873 X(various)s +2202 X(programs)s +2614 X(may)s +2820 X(be)s +2948 X(given)s +3204 X(in)s +3316 X(any)s +3494 X(order,)s +3763 X(with)s +3975 X(the)s +4131 X(exception)s +4553 X(of)s +4670 X(a)s +874 X +4152 Y(few)s +1048 X(switches)s +1417 X(whose)s +1697 X(arguments)s +2138 X(must)s +2358 X(follow)s +2644 X(immediately,)s +3194 X(such)s +3402 X(as)s +3510 X(`\261src)s +3759 X(+folder')s +4111 X(for)s +4252 X +0.0 10 10 f.I ft(re\256le)s +0.0 10 10 f.R ft(.)s +874 X +4314 Y +1124 X(Whenever)s +1561 X(an)s +1683 X +0.0 10 10 f.I ft(MH)s +1866 X +0.0 10 10 f.R ft(command)s +2288 X(prompts)s +2644 X(the)s +2794 X(user,)s +3013 X(the)s +3163 X(valid)s +3390 X(options)s +3712 X(will)s +3895 X(be)s +4016 X(listed)s +4260 X(in)s +4365 X(response)s +874 X +4434 Y(to)s +990 X(a)s +1072 X(.)s +1672 X(\(The)s +1898 X(\256rst)s +2092 X(of)s +2213 X(the)s +2373 X(listed)s +2628 X(options)s +2961 X(is)s +3066 X(the)s +3226 X(default)s +3541 X(if)s +3640 X(end-of-\256le)s +4098 X(is)s +4202 X(encountered,)s +874 X +4554 Y(such)s +1087 X(as)s +1200 X(from)s +1424 X(a)s +1498 X(command)s +1922 X(\256le.\))s +2138 X(A)s +2240 X(valid)s +2470 X(response)s +2849 X(is)s +2946 X(any)s +3120 X +0.0 10 10 f.I ft(unique)s +3421 X +0.0 10 10 f.R ft(abbreviation)s +3949 X(of)s +4061 X(one)s +4234 X(of)s +4346 X(the)s +4497 X(listed)s +874 X +4674 Y(options.)s +874 X +4836 Y +1124 X(Standard)s +1511 X(UNIX)s +1792 X(documentation)s +2417 X(conventions)s +2931 X(are)s +3083 X(used)s +3297 X(in)s +3406 X(this)s +3582 X(report)s +3851 X(to)s +3960 X(describe)s +4323 X +0.0 10 10 f.I ft(MH)s +4509 X +0.0 10 10 f.R ft(com-)s +874 X +4956 Y(mand)s +1128 X(syntax.)s +1471 X(Arguments)s +1947 X(enclosed)s +2328 X(in)s +2438 X(brackets)s +2802 X(\([)s +2900 X(]\))s +2998 X(are)s +3150 X(optional;)s +3537 X(exactly)s +3856 X(one)s +4031 X(of)s +4145 X(the)s +4298 X(arguments)s +874 X +5076 Y(enclosed)s +1249 X(within)s +1531 X(braces)s +1811 X(\({)s +1918 X(}\))s +2025 X(must)s +2246 X(be)s +2366 X(speci\256ed,)s +2772 X(and)s +2942 X(all)s +3068 X(other)s +3299 X(arguments)s +3740 X(are)s +3886 X(required.)s +4293 X(The)s +4473 X(use)s +4631 X(of)s +874 X +5196 Y(ellipsis)s +1185 X(dots)s +1379 X(\(...\))s +1547 X(indicates)s +1929 X(zero)s +2127 X(or)s +2237 X(more)s +2469 X(repetitions)s +2918 X(of)s +3028 X(the)s +3176 X(previous)s +3546 X(item.)s +3800 X(For)s +3965 X(example,)s +4354 X(``+folder)s +874 X +5316 Y(...'')s +1045 X(would)s +1325 X(indicate)s +1671 X(that)s +1851 X(one)s +2024 X(or)s +2136 X(more)s +2370 X(``+folder'')s +2825 X(arguments)s +3270 X(is)s +3366 X(required)s +3727 X(and)s +3900 X(``[+folder)s +4322 X(...]'')s +4525 X(indi-)s +874 X +5436 Y(cates)s +1098 X(that)s +1273 X(0)s +1348 X(or)s +1456 X(more)s +1686 X(``+folder'')s +2137 X(arguments)s +2578 X(may)s +2775 X(be)s +2894 X(given.)s +874 X +5598 Y +1124 X +0.0 10 10 f.I ft(MH)s +1310 X +0.0 10 10 f.R ft(departs)s +1629 X(from)s +1854 X(UNIX)s +2134 X(standards)s +2542 X(by)s +2673 X(using)s +2921 X(switches)s +3296 X(that)s +3477 X(consist)s +3786 X(of)s +3899 X(more)s +4134 X(than)s +4336 X(one)s +4510 X(char-)s +874 X +5718 Y(acter,)s +1136 X(e.g.)s +1324 X(`\261header'.)s +1799 X(To)s +1954 X(minimize)s +2376 X(typing,)s +2701 X(only)s +2923 X(a)s +3011 X(unique)s +3327 X(abbreviation)s +3870 X(of)s +3997 X(a)s +4085 X(switch)s +4389 X(need)s +4620 X(be)s +874 X +5838 Y(typed;)s +1162 X(thus,)s +1392 X(for)s +1546 X(`\261header',)s +1990 X(`\261hea')s +2282 X(is)s +2387 X(probably)s +2780 X(su)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icient,)s +3215 X(depending)s +3669 X(on)s +3807 X(the)s +3967 X(other)s +4210 X(switches)s +4592 X(the)s +874 X +5958 Y(command)s +1303 X(accepts.)s +1681 X(Each)s +1915 X +0.0 10 10 f.I ft(MH)s +2105 X +0.0 10 10 f.R ft(program)s +2478 X(accepts)s +2806 X(the)s +2963 X(switch)s +3259 X(`\261help')s +3582 X(\(which)s +3894 X +0.0 10 10 f.B ft(must)s +4140 X +0.0 10 10 f.R ft(be)s +4269 X(spelled)s +4586 X(out)s +874 X +6078 Y(fully\))s +1150 X(and)s +1348 X(produces)s +1761 X(a)s +1858 X(syntax)s +2172 X(description)s +2669 X(and)s +2866 X(a)s +2963 X(list)s +3139 X(of)s +3275 X(switches.)s +3722 X(In)s +3858 X(the)s +4033 X(list)s +4209 X(of)s +4345 X(switches,)s +874 X +6198 Y(parentheses)s +1388 X(indicate)s +1753 X(required)s +2134 X(characters.)s +2636 X(For)s +2824 X(example,)s +3236 X(all)s +3385 X(`\261help')s +3722 X(switches)s +4114 X(will)s +4318 X(appear)s +4631 X(as)s +874 X +6318 Y(``\261\(help\)'',)s +1358 X(indicating)s +1796 X(that)s +1984 X(no)s +2122 X(abbreviation)s +2659 X(is)s +2764 X(accepted.)s +3200 X(Furthermore,)s +3762 X(the)s +3922 X(`\261help')s +4248 X(switch)s +4547 X(tells)s +874 X +6438 Y(the)s +1021 X(version)s +1340 X(of)s +1448 X(the)s +1595 X +0.0 10 10 f.I ft(MH)s +1775 X +0.0 10 10 f.R ft(program)s +2138 X(you)s +2313 X(invoked.)s +874 X +6600 Y +1124 X(Many)s +1391 X +0.0 10 10 f.I ft(MH)s +1580 X +0.0 10 10 f.R ft(switches)s +1958 X(have)s +2180 X(both)s +2392 X(on)s +2526 X(and)s +2704 X(o)s +Cff +2849 X(forms,)s +3141 X(such)s +3358 X(as)s +3474 X(`\261format')s +3889 X(and)s +4066 X(`\261noformat'.)s +4631 X(In)s +874 X +6720 Y(many)s +1127 X(of)s +1241 X(the)s +1394 X(descriptions)s +1907 X(which)s +2181 X(follow,)s +2497 X(only)s +2705 X(one)s +2879 X(form)s +3103 X(is)s +3200 X(de\256ned;)s +3552 X(the)s +3704 X(other)s +3939 X(form,)s +4188 X(often)s +4423 X(used)s +4636 X(to)s +874 X +6840 Y(nullify)s +1166 X(pro\256le)s +1452 X(switch)s +1738 X(settings,)s +2094 X(is)s +2186 X(assumed)s +2555 X(to)s +2658 X(be)s +2777 X(the)s +2924 X(opposite.)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 11 12 + +874 X +600 Y +2711 X +0.0 10 10 f.B ft(-11-)s +874 X +960 Y(MH)s +1071 X(COMMANDS)s +0.0 10 10 f.R ft( )s +874 X +1122 Y +1124 X(The)s +1304 X +0.0 10 10 f.I ft(MH)s +1484 X +0.0 10 10 f.R ft(package)s +1835 X(comprises)s +2265 X(several)s +2572 X(programs:)s +874 X +1362 Y +1234 X(ali)s +1359 X(\(1\))s +2314 X(\261)s +2389 X(list)s +2537 X(mail)s +2740 X(aliases)s +874 X +1482 Y +1234 X(anno)s +1453 X(\(1\))s +2314 X(\261)s +2389 X(annotate)s +2752 X(messages)s +874 X +1602 Y +1234 X(bbc)s +1403 X(\(1\))s +2314 X(\261)s +2389 X(check)s +2646 X(on)s +2771 X(BBoards)s +874 X +1722 Y +1234 X(bboards)s +1575 X(\(1\))s +2314 X(\261)s +2389 X(the)s +2536 X(UCI)s +2733 X(BBoards)s +3108 X(facility)s +874 X +1842 Y +1234 X(burst)s +1459 X(\(1\))s +2314 X(\261)s +2389 X(explode)s +2730 X(digests)s +3033 X(into)s +3214 X(messages)s +874 X +1962 Y +1234 X(comp)s +1481 X(\(1\))s +2314 X(\261)s +2389 X(compose)s +2769 X(a)s +2838 X(message)s +874 X +2082 Y +1234 X(dist)s +1404 X(\(1\))s +2314 X(\261)s +2389 X(redistribute)s +2869 X(a)s +2938 X(message)s +3301 X(to)s +3404 X(additional)s +3829 X(addresses)s +874 X +2202 Y +1234 X(folder)s +1497 X(\(1\))s +2314 X(\261)s +2389 X(set/list)s +2676 X(current)s +2983 X(folder/message)s +874 X +2322 Y +1234 X(folders)s +1536 X(\(1\))s +2314 X(\261)s +2389 X(list)s +2537 X(all)s +2662 X(folders)s +874 X +2442 Y +1234 X(forw)s +1447 X(\(1\))s +2314 X(\261)s +2389 X(forward)s +2729 X(messages)s +874 X +2562 Y +1234 X(inc)s +1381 X(\(1\))s +2314 X(\261)s +2389 X(incorporate)s +2868 X(new)s +3059 X(mail)s +874 X +2682 Y +1234 X(mark)s +1464 X(\(1\))s +2314 X(\261)s +2389 X(mark)s +2619 X(messages)s +874 X +2802 Y +1234 X(mhl)s +1415 X(\(1\))s +2314 X(\261)s +2389 X(produce)s +2735 X(formatted)s +3148 X(listings)s +3463 X(of)s +3571 X(MH)s +3757 X(messages)s +874 X +2922 Y +1234 X(mhmail)s +1565 X(\(1\))s +2314 X(\261)s +2389 X(send)s +2597 X(or)s +2705 X(read)s +2901 X(mail)s +874 X +3042 Y +1234 X(mhook)s +1537 X(\(1\))s +2314 X(\261)s +2389 X(MH)s +2575 X(receive\261mail)s +3115 X(hooks)s +874 X +3162 Y +1234 X(mhparam)s +1636 X(\(1\))s +2314 X(\261)s +2389 X(print)s +2603 X(MH)s +2789 X(pro\256le)s +3075 X(components)s +874 X +3282 Y +1234 X(mhpath)s +1559 X(\(1\))s +2314 X(\261)s +2389 X(print)s +2603 X(full)s +2767 X(pathnames)s +3219 X(of)s +3327 X(MH)s +3513 X(messages)s +3915 X(and)s +4084 X(folders)s +874 X +3402 Y +1234 X(msgchk)s +1570 X(\(1\))s +2314 X(\261)s +2389 X(check)s +2646 X(for)s +2787 X(messages)s +874 X +3522 Y +1234 X(msh)s +1426 X(\(1\))s +2314 X(\261)s +2389 X(MH)s +2575 X(shell)s +2789 X(\(and)s +2991 X(BBoard)s +3327 X(reader\))s +874 X +3642 Y +1234 X(next)s +1431 X(\(1\))s +2314 X(\261)s +2389 X(show)s +2625 X(the)s +2772 X(next)s +2969 X(message)s +874 X +3762 Y +1234 X(packf)s +1480 X(\(1\))s +2314 X(\261)s +2389 X(compress)s +2791 X(a)s +2860 X(folder)s +3123 X(into)s +3304 X(a)s +3373 X(single)s +3637 X(\256le)s +874 X +3882 Y +1234 X(pick)s +1431 X(\(1\))s +2314 X(\261)s +2389 X(select)s +2641 X(messages)s +3043 X(by)s +3168 X(content)s +874 X +4002 Y +1234 X(prev)s +1436 X(\(1\))s +2314 X(\261)s +2389 X(show)s +2625 X(the)s +2772 X(previous)s +3141 X(message)s +874 X +4122 Y +1234 X(prompter)s +1625 X(\(1\))s +2314 X(\261)s +2389 X(prompting)s +2831 X(editor)s +3089 X(front)s +3308 X(end)s +874 X +4242 Y +1234 X(rcvstore)s +1580 X(\(1\))s +2314 X(\261)s +2389 X(incorporate)s +2868 X(new)s +3059 X(mail)s +3262 X(asynchronously)s +874 X +4362 Y +1234 X(re\256le)s +1464 X(\(1\))s +2314 X(\261)s +2389 X(\256le)s +2542 X(messages)s +2944 X(in)s +3047 X(other)s +3277 X(folders)s +874 X +4482 Y +1234 X(repl)s +1414 X(\(1\))s +2314 X(\261)s +2389 X(reply)s +2619 X(to)s +2722 X(a)s +2791 X(message)s +874 X +4602 Y +1234 X(rmf)s +1403 X(\(1\))s +2314 X(\261)s +2389 X(remove)s +2713 X(folder)s +874 X +4722 Y +1234 X(rmm)s +1448 X(\(1\))s +2314 X(\261)s +2389 X(remove)s +2713 X(messages)s +874 X +4842 Y +1234 X(scan)s +1436 X(\(1\))s +2314 X(\261)s +2389 X(produce)s +2735 X(a)s +2804 X(one)s +2973 X(line)s +3148 X(per)s +3300 X(message)s +3663 X(scan)s +3865 X(listing)s +874 X +4962 Y +1234 X(send)s +1442 X(\(1\))s +2314 X(\261)s +2389 X(send)s +2597 X(a)s +2666 X(message)s +874 X +5082 Y +1234 X(show)s +1470 X(\(1\))s +2314 X(\261)s +2389 X(show)s +2625 X(\(list\))s +2839 X(messages)s +874 X +5202 Y +1234 X(slocal)s +1492 X(\(1\))s +2314 X(\261)s +2389 X(special)s +2691 X(local)s +2910 X(mail)s +3113 X(delivery)s +874 X +5322 Y +1234 X(sortm)s +1487 X(\(1\))s +2314 X(\261)s +2389 X(sort)s +2564 X(messages)s +874 X +5442 Y +1234 X(vmh)s +1437 X(\(1\))s +2314 X(\261)s +2389 X(visual)s +2653 X(front\261end)s +3066 X(to)s +3169 X(MH)s +874 X +5562 Y +1234 X(whatnow)s +1625 X(\(1\))s +2314 X(\261)s +2389 X(prompting)s +2831 X(front\261end)s +3244 X(for)s +3385 X(send)s +874 X +5682 Y +1234 X(whom)s +1509 X(\(1\))s +2314 X(\261)s +2389 X(report)s +2652 X(to)s +2755 X(whom)s +3030 X(a)s +3099 X(message)s +3462 X(would)s +3737 X(go)s +874 X +5964 Y +1124 X(These)s +1391 X(programs)s +1797 X(are)s +1947 X(described)s +2358 X(below.)s +2681 X(The)s +2865 X(form)s +3087 X(of)s +3198 X(the)s +3348 X(descriptions)s +3859 X(conforms)s +4264 X(to)s +4370 X(the)s +4520 X(stan-)s +874 X +6084 Y(dard)s +1076 X(form)s +1295 X(for)s +1436 X(the)s +1583 X(description)s +2052 X(of)s +2160 X(UNIX)s +2434 X(commands.)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 12 13 + +514 X +600 Y +0.0 10 10 f.B ft(ALI\(1\))s +2771 X(-12-)s +4900 X(ALI\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(ali)s +999 X(\261)s +1074 X(list)s +1222 X(mail)s +1425 X(aliases)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(ali)s +999 X([\261alias alias\256le])s +1659 X([\261list])s +1923 X([\261nolist])s +2287 X([\261normalize])s +2827 X([\261nonormalize])s +3467 X([\261user])s +3774 X([\261nouser])s +4181 X(aliases ...)s +4597 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Ali)s +1022 X +0.0 10 10 f.R ft(searches)s +1389 X(the)s +1541 X(named)s +1837 X(mail)s +2045 X(alias)s +2258 X(\256les)s +2455 X(for)s +2601 X(each)s +2813 X(of)s +2926 X(the)s +3078 X(given)s +3330 X +0.0 10 10 f.I ft(aliases)s +0.0 10 10 f.R ft(.)s +3688 X(It)s +3779 X(creates)s +4085 X(a)s +4159 X(list)s +4312 X(of)s +4425 X(addresses)s +4837 X(for)s +4983 X(those)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(aliases)s +0.0 10 10 f.R ft(,)s +1208 X(and)s +1383 X(writes)s +1658 X(that)s +1839 X(list)s +1993 X(on)s +2124 X(standard)s +2493 X(output.)s +2830 X(If)s +2927 X(the)s +3080 X(`\261list')s +3350 X(option)s +3637 X(is)s +3735 X(speci\256ed,)s +4145 X(each)s +4357 X(address)s +4686 X(appears)s +5020 X(on)s +5150 X(a)s +514 X +2160 Y +874 X(separate)s +1225 X(line;)s +1428 X(otherwise,)s +1866 X(the)s +2013 X(addresses)s +2420 X(are)s +2566 X(separated)s +2967 X(by)s +3092 X(commas)s +3450 X(and)s +3619 X(printed)s +3927 X(on)s +4052 X(as)s +4160 X(few)s +4334 X(lines)s +4548 X(as)s +4656 X(possible.)s +514 X +2400 Y +874 X(The)s +1078 X(`\261user')s +1409 X(option)s +1714 X(directs)s +2029 X +0.0 10 10 f.I ft(ali)s +2184 X +0.0 10 10 f.R ft(to)s +2311 X(perform)s +2680 X(its)s +2823 X(processing)s +3298 X(in)s +3424 X(an)s +3566 X(inverted)s +3941 X(fashion:)s +4311 X(instead)s +4642 X(of)s +4773 X(listing)s +5072 X(the)s +514 X +2520 Y +874 X(addresses)s +1285 X(that)s +1464 X(each)s +1675 X(given)s +1926 X(alias)s +2138 X(expands)s +2494 X(to,)s +2626 X +0.0 10 10 f.I ft(ali)s +2761 X +0.0 10 10 f.R ft(will)s +2946 X(list)s +3097 X(the)s +3247 X(aliases)s +3541 X(that)s +3719 X(expand)s +4035 X(to)s +4141 X(each)s +4351 X(given)s +4601 X(address.)s +4978 X(If)s +5072 X(the)s +514 X +2640 Y +874 X(`\261normalize')s +1414 X(switch)s +1700 X(is)s +1792 X(given,)s +2064 X +0.0 10 10 f.I ft(ali)s +2195 X +0.0 10 10 f.R ft(will)s +2376 X(try)s +2512 X(to)s +2615 X(track)s +2839 X(down)s +3086 X(the)s +3233 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icial)s +3541 X(hostname)s +3949 X(of)s +4057 X(the)s +4204 X(address.)s +514 X +2880 Y +874 X(The)s +1074 X(\256les)s +1286 X(speci\256ed)s +1686 X(by)s +1831 X(the)s +1997 X(pro\256le)s +2302 X(entry)s +2551 X(``Alias\256le:'')s +3094 X(and)s +3282 X(any)s +3470 X(additional)s +3914 X(alias)s +4141 X(\256les)s +4352 X(given)s +4618 X(by)s +4762 X(the)s +4928 X(`\261alias)s +514 X +3000 Y +874 X(alias\256le')s +1243 X(switch)s +1529 X(will)s +1710 X(be)s +1829 X(read.)s +2075 X(Each)s +2299 X +0.0 10 10 f.I ft(alias)s +2519 X +0.0 10 10 f.R ft(is)s +2611 X(processed)s +3029 X(as)s +3137 X(described)s +3544 X(in)s +3647 X +0.0 10 10 f.I ft(mh\261alias)s +4064 X +0.0 10 10 f.R ft(\(5\).)s +514 X +3162 Y +0.0 8 8 f.B ft(Files)s +514 X +3282 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +3402 Y +874 X(/etc/passwd)s +2463 X(List)s +2644 X(of)s +2752 X(users)s +514 X +3522 Y +874 X(/etc/group)s +2463 X(List)s +2644 X(of)s +2752 X(groups)s +514 X +3726 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3846 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3966 Y +874 X(Alias\256le:)s +1790 X(For)s +1954 X(a)s +2023 X(default)s +2325 X(alias)s +2533 X(\256le)s +514 X +4170 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4290 Y +874 X +0.0 10 10 f.R ft(mh\261alias\(5\))s +514 X +4494 Y +0.0 8 8 f.B ft(Defaults)s +514 X +4614 Y +874 X +0.0 10 10 f.R ft(`\261alias)s +1165 X(/usr/bs/mh-beta/lib/MailAliases')s +514 X +4734 Y +874 X(`\261nolist')s +514 X +4854 Y +874 X(`\261nonormalize')s +514 X +4974 Y +874 X(`\261nouser')s +514 X +5178 Y +0.0 8 8 f.B ft(Context)s +514 X +5298 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5502 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5622 Y +874 X +0.0 10 10 f.R ft(The)s +1061 X(`\261user')s +1375 X(option)s +1663 X(with)s +1873 X(`\261nonormalize')s +2520 X(is)s +2619 X(not)s +2779 X(entirely)s +3116 X(accurate,)s +3503 X(as)s +3617 X(it)s +3704 X(does)s +3918 X(not)s +4077 X(replace)s +4395 X(local)s +4620 X(nicknames)s +5078 X(for)s +514 X +5742 Y +874 X(hosts)s +1105 X(with)s +1308 X(their)s +1516 X(o)s +Cff(icial)s +1824 X(site)s +1988 X(names.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 13 14 + +514 X +600 Y(ANNO\(1\))s +2771 X(-13-)s +4784 X(ANNO\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(anno)s +1093 X(\261)s +1168 X(annotate)s +1531 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(anno)s +1093 X([+folder])s +1478 X([msgs])s +1775 X([\261component \256eld])s +2563 X([\261inplace])s +2992 X([\261noinplace])s +3521 X([\261date])s +3828 X([\261nodate])s +4235 X([\261text body])s +4751 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Anno)s +1114 X +0.0 10 10 f.R ft(annotates)s +1520 X(the)s +1671 X(speci\256ed)s +2055 X(messages)s +2461 X(in)s +2568 X(the)s +2719 X(named)s +3014 X(folder)s +3281 X(using)s +3526 X(the)s +3676 X(\256eld)s +3882 X(and)s +4054 X(body.)s +4332 X(Annotation)s +4810 X(is)s +4905 X(option-)s +514 X +2040 Y +874 X(ally)s +1054 X(performed)s +1499 X(by)s +1629 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +1829 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2068 X(and)s +2242 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +2458 X(to)s +2566 X(keep)s +2784 X(track)s +3013 X(of)s +3126 X(your)s +3338 X(distribution)s +3829 X(of,)s +3966 X(forwarding)s +4438 X(of,)s +4575 X(and)s +4748 X(replies)s +5043 X(to)s +5150 X(a)s +514 X +2160 Y +874 X(message.)s +1293 X(By)s +1441 X(using)s +1689 X +0.0 10 10 f.I ft(anno)s +0.0 10 10 f.R ft(,)s +1945 X(you)s +2126 X(can)s +2295 X(perform)s +2647 X(arbitrary)s +3021 X(annotations)s +3512 X(of)s +3625 X(your)s +3838 X(own.)s +4090 X(Each)s +4319 X(message)s +4687 X(selected)s +5038 X(will)s +514 X +2280 Y +874 X(be)s +993 X(annotated)s +1406 X(with)s +1609 X(the)s +1756 X(lines)s +514 X +2520 Y +974 X(\256eld: date)s +514 X +2640 Y +974 X(\256eld: body)s +514 X +2880 Y +874 X(The)s +1058 X(`\261nodate')s +1469 X(switch)s +1759 X(inhibits)s +2089 X(the)s +2240 X(date)s +2435 X(annotation,)s +2911 X(leaving)s +3234 X(only)s +3440 X(the)s +3590 X(body)s +3818 X(annotation.)s +4318 X(The)s +4501 X(`\261inplace')s +4933 X(switch)s +514 X +3000 Y +874 X(causes)s +1159 X(annotation)s +1606 X(to)s +1709 X(be)s +1828 X(done)s +2047 X(in)s +2150 X(place)s +2385 X(in)s +2488 X(order)s +2723 X(to)s +2826 X(preserve)s +3188 X(links)s +3408 X(to)s +3511 X(the)s +3658 X(annotated)s +4071 X(message.)s +514 X +3240 Y +874 X(The)s +1063 X(\256eld)s +1275 X(speci\256ed)s +1664 X(should)s +1965 X(be)s +2092 X(a)s +2169 X(valid)s +2402 X(822-style)s +2807 X(message)s +3178 X(\256eld)s +3389 X(name,)s +3663 X(which)s +3940 X(means)s +4228 X(that)s +4411 X(it)s +4500 X(should)s +4800 X(consist)s +5111 X(of)s +514 X +3360 Y +874 X(alphanumerics)s +1481 X(\(or)s +1622 X(dashes\))s +1946 X(only.)s +2199 X(The)s +2379 X(body)s +2604 X(speci\256ed)s +2984 X(is)s +3076 X(arbitrary)s +3444 X(text.)s +514 X +3600 Y +874 X(If)s +974 X(a)s +1052 X(`\261component \256eld')s +1849 X(is)s +1949 X(not)s +2110 X(speci\256ed)s +2498 X(when)s +2747 X +0.0 10 10 f.I ft(anno)s +2980 X +0.0 10 10 f.R ft(is)s +3080 X(invoked,)s +3460 X +0.0 10 10 f.I ft(anno)s +3693 X +0.0 10 10 f.R ft(will)s +3882 X(prompt)s +4204 X(the)s +4359 X(user)s +4558 X(for)s +4707 X(the)s +4862 X(name)s +5111 X(of)s +514 X +3720 Y +874 X(\256eld)s +1077 X(for)s +1218 X(the)s +1365 X(annotation.)s +514 X +3882 Y +0.0 8 8 f.B ft(Files)s +514 X +4002 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4206 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4326 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +4446 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +4650 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4770 Y +874 X +0.0 10 10 f.R ft(dist)s +1044 X(\(1\),)s +1210 X(forw)s +1423 X(\(1\),)s +1589 X(repl)s +1769 X(\(1\))s +514 X +4974 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5094 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +5214 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +514 X +5334 Y +874 X(`\261noinplace')s +514 X +5454 Y +874 X(`\261date')s +514 X +5658 Y +0.0 8 8 f.B ft(Context)s +514 X +5778 Y +874 X +0.0 10 10 f.R ft(If)s +970 X(a)s +1044 X(folder)s +1312 X(is)s +1409 X(given,)s +1686 X(it)s +1772 X(will)s +1958 X(become)s +2298 X(the)s +2450 X(current)s +2762 X(folder.)s +3080 X(The)s +3265 X(\256rst)s +3451 X(message)s +3819 X(annotated)s +4237 X(will)s +4422 X(become)s +4761 X(the)s +4912 X(current)s +514 X +5898 Y +874 X(message.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 14 15 + +514 X +600 Y(BBC\(1\))s +2771 X(-14-)s +4872 X(BBC\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(bbc)s +1043 X(\261)s +1118 X(check)s +1375 X(on)s +1500 X(BBoards)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(bbc)s +1043 X([bboards ...])s +1550 X([\261topics])s +1930 X([\261check])s +2303 X([\261read])s +2615 X([\261quiet])s +2956 X([\261verbose])s +3407 X([\261archive])s +3841 X([\261noarchive])s +4375 X([\261protocol])s +514 X +1560 Y +1234 X([\261noprotocol])s +1808 X([\261mshproc program])s +2656 X([switches for )s +0.0 10 10 f.I ft(mshproc)s +0.0 10 10 f.R ft(])s +3601 X([\261rc\256le)s +3914 X(rc\256le])s +4177 X([\261norc\256le])s +514 X +1680 Y +1234 X([\261\256le BBoards\256le])s +2006 X([\261user BBoardsuser])s +2854 X([\261host host])s +3354 X([\261help])s +514 X +1920 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(bbc)s +1043 X +0.0 10 10 f.R ft(is)s +1135 X(a)s +1204 X(BBoard)s +1540 X(reading/checking)s +2252 X(program)s +2615 X(that)s +2790 X(interfaces)s +3202 X(to)s +3305 X(the)s +3452 X(BBoard)s +3788 X(channel.)s +514 X +2400 Y +874 X(The)s +1054 X +0.0 10 10 f.I ft(bbc)s +1223 X +0.0 10 10 f.R ft(program)s +1586 X(has)s +1744 X(three)s +1968 X(action)s +2237 X(switches)s +2606 X(which)s +2875 X(direct)s +3127 X(its)s +3247 X(operation:)s +514 X +2640 Y +874 X(The)s +1067 X(`\261read')s +1392 X(switch)s +1691 X(invokes)s +2040 X(the)s +2200 X +0.0 10 10 f.I ft(msh)s +2399 X +0.0 10 10 f.R ft(program)s +2775 X(on)s +2913 X(the)s +3073 X(named)s +3376 X +0.0 10 10 f.I ft(BBoards)s +0.0 10 10 f.R ft(.)s +3813 X(If)s +3916 X(you)s +4103 X(also)s +4301 X(specify)s +4626 X(the)s +4785 X(`\261archive')s +514 X +2760 Y +874 X(switch,)s +1193 X(then)s +1423 X +0.0 10 10 f.I ft(bbc)s +1600 X +0.0 10 10 f.R ft(will)s +1789 X(invoke)s +2094 X(the)s +2249 X +0.0 10 10 f.I ft(msh)s +2442 X +0.0 10 10 f.R ft(program)s +2812 X(on)s +2944 X(the)s +3098 X(archives)s +3462 X(of)s +3577 X(the)s +3731 X(named)s +4029 X +0.0 10 10 f.I ft(BBoards)s +0.0 10 10 f.R ft(.)s +4461 X(If)s +4559 X(no)s +4691 X +0.0 10 10 f.I ft(BBoards)s +5073 X +0.0 10 10 f.R ft(are)s +514 X +2880 Y +874 X(given)s +1122 X(on)s +1248 X(the)s +1396 X(command)s +1816 X(line,)s +2017 X(and)s +2187 X(you)s +2363 X(speci\256ed)s +2744 X(`\261archive',)s +3204 X +0.0 10 10 f.I ft(bbc)s +3374 X +0.0 10 10 f.R ft(will)s +3556 X(not)s +3710 X(read)s +3907 X(your)s +4116 X(`bboards')s +4524 X(pro\256le)s +4811 X(entry,)s +5066 X(but)s +514 X +3000 Y +874 X(will)s +1055 X(read)s +1251 X(the)s +1398 X(archives)s +1755 X(of)s +1863 X(the)s +2010 X(``system'')s +2445 X +0.0 10 10 f.I ft(BBoard)s +2781 X +0.0 10 10 f.R ft(instead.)s +514 X +3240 Y +874 X(The)s +1055 X(`\261check')s +1429 X(switch)s +1716 X(types)s +1953 X(out)s +2107 X(status)s +2361 X(information)s +2859 X(for)s +3001 X(the)s +3149 X(named)s +3441 X +0.0 10 10 f.I ft(BBoards)s +0.0 10 10 f.R ft(.)s +3867 X +0.0 10 10 f.I ft(bbc)s +4037 X +0.0 10 10 f.R ft(can)s +4201 X(print)s +4416 X(one)s +4585 X(of)s +4693 X(several)s +5000 X(mes-)s +514 X +3360 Y +874 X(sages)s +1118 X(depending)s +1562 X(on)s +1690 X(the)s +1840 X(status)s +2096 X(of)s +2207 X(both)s +2413 X(the)s +2563 X(BBoard)s +2902 X(and)s +3074 X(the)s +3224 X(user's)s +3489 X(reading)s +3815 X(habits.)s +4106 X(As)s +4244 X(with)s +4449 X(each)s +4658 X(of)s +4768 X(these)s +5000 X(mes-)s +514 X +3480 Y +874 X(sages,)s +1146 X(the)s +1299 X(number)s +1635 X(given)s +1888 X(is)s +1986 X(the)s +2139 X(item)s +2348 X(number)s +2684 X(of)s +2798 X(the)s +2951 X(last)s +3121 X(item)s +3330 X(placed)s +3621 X(in)s +3730 X(the)s +3883 X(BBoard.)s +4275 X(This)s +4484 X(number)s +4820 X(\(which)s +5127 X(is)s +514 X +3600 Y +874 X(marked)s +1214 X(in)s +1332 X(the)s +1494 X(messages)s +1911 X(as)s +2034 X(the)s +2196 X(``BBoard\261Id''\))s +2845 X(is)s +2952 X(ever)s +3163 X(increasing.)s +3663 X(Hence,)s +3982 X(when)s +4238 X +0.0 10 10 f.I ft(bbc)s +4422 X +0.0 10 10 f.R ft(says)s +4634 X(``n)s +4790 X(items'',)s +5138 X(it)s +514 X +3720 Y +874 X(really)s +1141 X(means)s +1436 X(that)s +1626 X(the)s +1788 X(highest)s +2117 X(BBoard\261Id)s +2601 X(is)s +2708 X(``n''.)s +2980 X(There)s +3252 X(may,)s +3489 X(or)s +3612 X(may)s +3823 X(not)s +3990 X(actually)s +4345 X(be)s +4478 X(``n'')s +4699 X(items)s +4955 X(in)s +5072 X(the)s +514 X +3840 Y +874 X(BBoard.)s +1260 X(Some)s +1513 X(common)s +1888 X(messages)s +2290 X(are:)s +514 X +4080 Y +1234 X +0.0 10 10 f.B ft(BBoard)s +1593 X(\261\261)s +1718 X(n)s +1799 X(items)s +2051 X(unseen)s +514 X +4200 Y +1594 X +0.0 10 10 f.R ft(This)s +1811 X(message)s +2188 X(tells)s +2394 X(how)s +2604 X(many)s +2864 X(items)s +3119 X(the)s +3279 X(user)s +3483 X(has)s +3654 X(not)s +3820 X(yet)s +3980 X(seen.)s +4220 X(When)s +4496 X(invoked)s +4856 X(with)s +5072 X(the)s +514 X +4320 Y +1594 X(`\261quiet')s +1935 X(switch,)s +2246 X(this)s +2416 X(is)s +2508 X(the)s +2655 X(only)s +2858 X(informative)s +3349 X(line)s +3524 X(that)s +3699 X +0.0 10 10 f.I ft(bbc)s +3868 X +0.0 10 10 f.R ft(will)s +4049 X(possibly)s +4408 X(print)s +4622 X(out.)s +514 X +4560 Y +1234 X +0.0 10 10 f.B ft(BBoard)s +1593 X(\261\261)s +1718 X(empty)s +514 X +4680 Y +1594 X +0.0 10 10 f.R ft(The)s +1774 X(BBoard)s +2110 X(is)s +2202 X(empty.)s +514 X +4920 Y +1234 X +0.0 10 10 f.B ft(BBoard)s +1593 X(\261\261)s +1718 X(n)s +1799 X(items)s +2051 X(\(none)s +2315 X(seen\))s +514 X +5040 Y +1594 X +0.0 10 10 f.R ft(The)s +1774 X(BBoard)s +2110 X(has)s +2268 X(items)s +2510 X(in)s +2613 X(it,)s +2719 X(but)s +2872 X(the)s +3019 X(user)s +3210 X(hasn't)s +3479 X(seen)s +3681 X(any.)s +514 X +5280 Y +1234 X +0.0 10 10 f.B ft(BBoard)s +1593 X(\261\261)s +1718 X(n)s +1799 X(items)s +2051 X(\(all)s +2215 X(seen\))s +514 X +5400 Y +1594 X +0.0 10 10 f.R ft(The)s +1774 X(BBoard)s +2110 X(is)s +2202 X(non\261empty,)s +2702 X(and)s +2871 X(the)s +3018 X(user)s +3209 X(has)s +3367 X(seen)s +3569 X(everything)s +4021 X(in)s +4124 X(it.)s +514 X +5640 Y +1234 X +0.0 10 10 f.B ft(BBoard)s +1593 X(\261\261)s +1718 X(n)s +1799 X(items)s +2051 X(seen)s +2259 X(out)s +2423 X(of)s +2531 X(m)s +514 X +5760 Y +1594 X +0.0 10 10 f.R ft(The)s +1774 X(BBoard)s +2110 X(has)s +2268 X(at)s +2365 X(most)s +2585 X(m\261n)s +2788 X(items)s +3030 X(that)s +3205 X(the)s +3352 X(user)s +3543 X(has)s +3701 X(not)s +3854 X(seen.)s +514 X +6000 Y +874 X(The)s +1073 X(`\261topics')s +1472 X(switch)s +1777 X(directs)s +2087 X +0.0 10 10 f.I ft(bbc)s +2275 X +0.0 10 10 f.R ft(to)s +2397 X(print)s +2629 X(three)s +2871 X(items)s +3131 X(about)s +3396 X(the)s +3561 X(named)s +3870 X +0.0 10 10 f.I ft(BBoards)s +0.0 10 10 f.R ft(:)s +4291 X(it's)s +4462 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icial)s +4788 X(name,)s +5072 X(the)s +514 X +6120 Y +874 X(number)s +1221 X(of)s +1346 X(items)s +1605 X(present,)s +1960 X(and)s +2146 X(the)s +2310 X(date)s +2518 X(and)s +2704 X(time)s +2924 X(of)s +3048 X(the)s +3211 X(last)s +3391 X(update.)s +3748 X(If)s +3855 X(no)s +3996 X +0.0 10 10 f.I ft(BBoards)s +4387 X +0.0 10 10 f.R ft(are)s +4549 X(named,)s +4881 X(then)s +5094 X(all)s +514 X +6240 Y +874 X(BBoards)s +1249 X(are)s +1395 X(listed.)s +1687 X(If)s +1778 X(the)s +1925 X(`\261verbose')s +2376 X(switch)s +2662 X(is)s +2754 X(given,)s +3026 X(more)s +3256 X(information)s +3753 X(is)s +3845 X(output.)s +514 X +6480 Y +874 X(The)s +1058 X(`\261quiet')s +1403 X(switch)s +1693 X(speci\256es)s +2066 X(that)s +2245 X +0.0 10 10 f.I ft(bbc)s +2418 X +0.0 10 10 f.R ft(should)s +2714 X(be)s +2837 X(silent)s +3083 X(if)s +3173 X(no)s +3301 X +0.0 10 10 f.I ft(BBoards)s +3679 X +0.0 10 10 f.R ft(are)s +3828 X(found)s +4089 X(with)s +4295 X(new)s +4489 X(information.)s +5039 X(The)s +514 X +6600 Y +874 X(`\261verbose')s +1329 X(switch)s +1618 X(speci\256es)s +1990 X(that)s +2168 X +0.0 10 10 f.I ft(bbc)s +2340 X +0.0 10 10 f.R ft(is)s +2435 X(to)s +2541 X(consider)s +2907 X(you)s +3085 X(to)s +3191 X(be)s +3313 X(interested)s +3729 X(in)s +3835 X +0.0 10 10 f.I ft(BBoards)s +4213 X +0.0 10 10 f.R ft(that)s +4391 X(you've)s +4696 X(already)s +5017 X(seen)s +514 X +6720 Y +874 X(everything)s +1326 X(in.)s +514 X +6960 Y +874 X(To)s +1014 X(override)s +1375 X(the)s +1526 X(default)s +1832 X +0.0 10 10 f.I ft(mshproc)s +2205 X +0.0 10 10 f.R ft(and)s +2378 X(the)s +2529 X(pro\256le)s +2819 X(entry,)s +3077 X(use)s +3238 X(the)s +3388 X(`\261mshproc program')s +4239 X(switch.)s +4578 X(Any)s +4778 X(arguments)s +514 X +7080 Y +874 X(not)s +1043 X(understood)s +1528 X(by)s +1669 X +0.0 10 10 f.I ft(bbc)s +1854 X +0.0 10 10 f.R ft(are)s +2016 X(passed)s +2323 X(to)s +2442 X(this)s +2628 X(program.)s +3057 X(The)s +3253 X(`\261protocol')s +3743 X(switch)s +4045 X(tells)s +4253 X +0.0 10 10 f.I ft(bbc)s +4437 X +0.0 10 10 f.R ft(that)s +4627 X(your)s +4850 X +0.0 10 10 f.I ft(mshproc)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 15 16 + +514 X +600 Y(BBC\(1\))s +2771 X(-15-)s +4872 X(BBC\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(knows)s +1163 X(about)s +1413 X(the)s +1563 X(special)s +1868 X +0.0 10 10 f.I ft(bbc)s +2040 X +0.0 10 10 f.R ft(protocol)s +2401 X(for)s +2545 X(reporting)s +2939 X(back)s +3155 X(information.)s +3705 X +0.0 10 10 f.I ft(msh)s +3916 X +0.0 10 10 f.R ft(\(1\),)s +4084 X(the)s +4233 X(default)s +4537 X +0.0 10 10 f.I ft(mshproc)s +0.0 10 10 f.R ft(,)s +4933 X(knows)s +514 X +1080 Y +874 X(all)s +999 X(about)s +1246 X(this.)s +514 X +1320 Y +874 X(The)s +1065 X(`\261\256le BBoards\256le')s +1848 X(switch)s +2145 X(tells)s +2348 X +0.0 10 10 f.I ft(bbc)s +2528 X +0.0 10 10 f.R ft(to)s +2642 X(use)s +2811 X(a)s +2891 X(non\261standard)s +3465 X +0.0 10 10 f.I ft(BBoards)s +3851 X +0.0 10 10 f.R ft(\256le)s +4014 X(when)s +4265 X(performing)s +4749 X(its)s +4879 X(calcula-)s +514 X +1440 Y +874 X(tions.)s +1151 X(Similarly,)s +1581 X(the)s +1735 X(`\261user)s +2016 X(BBoardsuser')s +2597 X(switch)s +2890 X(tells)s +3089 X +0.0 10 10 f.I ft(bbc)s +3265 X +0.0 10 10 f.R ft(to)s +3375 X(use)s +3540 X(a)s +3616 X(non\261standard)s +4186 X(username.)s +4649 X(Both)s +4875 X(of)s +4989 X(these)s +514 X +1560 Y +874 X(switches)s +1243 X(are)s +1389 X(useful)s +1658 X(for)s +1799 X(debugging)s +2246 X(a)s +2315 X(new)s +2506 X +0.0 10 10 f.I ft(BBoards)s +2881 X +0.0 10 10 f.R ft(or)s +2989 X +0.0 10 10 f.I ft(POP)s +3208 X +0.0 10 10 f.R ft(\256le.)s +514 X +1800 Y +874 X(If)s +973 X(the)s +1128 X(local)s +1354 X(host)s +1553 X(is)s +1652 X(con\256gured)s +2111 X(as)s +2226 X(an)s +2352 X(NNTP)s +2645 X(BBoards)s +3027 X(client,)s +3306 X(or)s +3421 X(if)s +3514 X(the)s +3668 X(`\261host host')s +4175 X(switch)s +4468 X(is)s +4567 X(given,)s +4846 X(then)s +5050 X +0.0 10 10 f.I ft(bbc)s +514 X +1920 Y +874 X +0.0 10 10 f.R ft(will)s +1079 X(query)s +1355 X(the)s +1526 X(NNTP)s +1836 X(service)s +2167 X(host)s +2383 X(as)s +2515 X(to)s +2642 X(the)s +2813 X(status)s +3090 X(of)s +3222 X(the)s +3393 X(BBoards.)s +3842 X(For)s +4030 X(NNTP)s +4340 X(BBoards)s +4738 X(clients,)s +5072 X(the)s +514 X +2040 Y +874 X(`\261user user')s +1372 X(and)s +1541 X(the)s +1688 X(`\261rpop')s +2012 X(switches)s +2381 X(are)s +2527 X(ignored.)s +514 X +2280 Y +874 X(The)s +1058 X +0.0 10 10 f.I ft(.bbrc)s +1295 X +0.0 10 10 f.R ft(\256le)s +1452 X(in)s +1559 X(the)s +1710 X(user's)s +1977 X +0.0 10 10 f.B ft($HOME)s +2373 X +0.0 10 10 f.R ft(directory)s +2762 X(is)s +2858 X(used)s +3070 X(to)s +3177 X(keep)s +3393 X(track)s +3620 X(of)s +3731 X(what)s +3953 X(messages)s +4358 X(have)s +4574 X(been)s +4790 X(read.)s +5039 X(The)s +514 X +2400 Y +874 X(`\261rc\256le rc\256le')s +1463 X(switch)s +1762 X(overrides)s +2171 X(the)s +2331 X(use)s +2502 X(of)s +2623 X +0.0 10 10 f.I ft(.bbrc)s +2869 X +0.0 10 10 f.R ft(for)s +3023 X(this)s +3206 X(purpose.)s +3610 X(If)s +3714 X(the)s +3874 X(value)s +4128 X(given)s +4388 X(to)s +4504 X(the)s +4664 X(switch)s +4962 X(is)s +5066 X(not)s +514 X +2520 Y +874 X(absolute,)s +1261 X(\(i.e.,)s +1470 X(does)s +1682 X(not)s +1839 X(begin)s +2090 X(with)s +2297 X(a)s +2370 X +0.0 10 10 f.B ft(/)s +2448 X +0.0 10 10 f.R ft(\),)s +2535 X(it)s +2619 X(will)s +2803 X(be)s +2925 X(presumed)s +3341 X(to)s +3447 X(start)s +3647 X(from)s +3869 X(the)s +4019 X(current)s +4329 X(working)s +4690 X(directory.)s +5128 X(If)s +514 X +2640 Y +874 X(this)s +1052 X(switch)s +1346 X(is)s +1446 X(not)s +1607 X(given)s +1862 X(\(or)s +2011 X(the)s +2166 X(`\261norc\256le')s +2620 X(switch)s +2914 X(is)s +3014 X(given\),)s +3327 X(then)s +3532 X +0.0 10 10 f.I ft(bbc)s +3708 X +0.0 10 10 f.R ft(consults)s +4068 X(the)s +4222 X(envariable)s +4669 X +0.0 10 10 f.B ft($MHBBRC)s +0.0 10 10 f.R ft(,)s +514 X +2760 Y +874 X(and)s +1043 X(honors)s +1340 X(it)s +1421 X(similarly.)s +514 X +2922 Y +0.0 8 8 f.B ft(Files)s +514 X +3042 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +3162 Y +874 X($HOME/.bbrc)s +2463 X(BBoard)s +2799 X(``current'')s +3238 X(message)s +3601 X(information)s +514 X +3366 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3486 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3606 Y +874 X(bboards:)s +1790 X(To)s +1926 X(specify)s +2239 X(interesting)s +2686 X(BBoards)s +514 X +3726 Y +874 X(mshproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(read)s +2458 X(a)s +2527 X(given)s +2774 X(BBoard)s +514 X +3930 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4050 Y +874 X +0.0 10 10 f.R ft(bbl\(1\),)s +1168 X(bboards\(1\),)s +1650 X(msh\(1\))s +514 X +4254 Y +0.0 8 8 f.B ft(Defaults)s +514 X +4374 Y +874 X +0.0 10 10 f.R ft(`\261read')s +514 X +4494 Y +874 X(`\261noarchive')s +514 X +4614 Y +874 X(`\261protocol')s +514 X +4734 Y +874 X(`bboards')s +1281 X(defaults)s +1622 X(to)s +1725 X(``system'')s +514 X +4854 Y +874 X(`\261\256le)s +1110 X(/usr/bboards/BBoards')s +514 X +4974 Y +874 X(`\261user)s +1148 X(bboards')s +514 X +5178 Y +0.0 8 8 f.B ft(Context)s +514 X +5298 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5502 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5622 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X(`\261user')s +1361 X(switch)s +1647 X(takes)s +1877 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ect)s +2123 X(only)s +2326 X(if)s +2412 X(followed)s +2792 X(by)s +2917 X(the)s +3064 X(`\261\256le')s +3333 X(switch.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 16 17 + +514 X +600 Y(BBOARDS\(1\))s +2771 X(-16-)s +4594 X(BBOARDS\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(bboards)s +1215 X(\261)s +1290 X(the)s +1437 X(UCI)s +1634 X(BBoards)s +2009 X(facility)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(bbc)s +1043 X([\261check])s +1416 X([\261read])s +1728 X(bboards)s +2069 X(...)s +2194 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.R ft(The)s +1056 X(home)s +1305 X(directory)s +1692 X(of)s +1802 X +0.0 10 10 f.I ft(bboards)s +2157 X +0.0 10 10 f.R ft(is)s +2251 X(where)s +2521 X(the)s +2670 X(BBoard)s +3008 X(system)s +3312 X(is)s +3405 X(kept.)s +3653 X(This)s +3857 X(documentation)s +4477 X(describes)s +4874 X(some)s +5111 X(of)s +514 X +2040 Y +874 X(the)s +1021 X(nuances)s +1367 X(of)s +1475 X(the)s +1622 X(BBoard)s +1958 X(system.)s +514 X +2280 Y +874 X(Note)s +1118 X(that)s +1318 X(if)s +1429 X(your)s +1662 X(system)s +1989 X(is)s +2105 X(con\256gured)s +2581 X(to)s +2708 X(use)s +2890 X(the)s +3061 X(Network)s +3459 X(News)s +3735 X(Transfer)s +4121 X(Protocol)s +4509 X(\()s +0.0 10 10 f.B ft(NNTP)s +0.0 10 10 f.R ft(\))s +4896 X(to)s +5023 X(read)s +514 X +2400 Y +874 X(BBoards,)s +1279 X(\(your)s +1525 X(system)s +1833 X(does)s +2046 X(seem)s +2281 X(to)s +2389 X(be)s +2513 X(con\256gured)s +2969 X(this)s +3143 X(way\),)s +3396 X(then)s +3597 X(there)s +3825 X(is)s +3921 X(no)s +4050 X(local)s +4273 X(bboards)s +4618 X(setup;)s +4886 X(instead,)s +514 X +2520 Y +874 X +0.0 10 10 f.I ft(bbc)s +1043 X +0.0 10 10 f.R ft(opens)s +1301 X(an)s +1420 X +0.0 10 10 f.B ft(NNTP)s +1717 X +0.0 10 10 f.R ft(connection)s +2180 X(to)s +2283 X(the)s +2430 X(local)s +2649 X(server.)s +514 X +2760 Y +874 X +0.0 10 10 f.B ft(BBoards,)s +1297 X(BBoard\261IDs)s +514 X +2880 Y +1234 X +0.0 10 10 f.R ft(A)s +1335 X(BBoard)s +1675 X(is)s +1771 X(just)s +1945 X(a)s +2018 X(\256le)s +2175 X(containing)s +2626 X(a)s +2699 X(group)s +2961 X(of)s +3073 X(messages)s +3479 X(relating)s +3813 X(to)s +3920 X(the)s +4071 X(same)s +4305 X(topic.)s +4583 X(These)s +4849 X(\256les)s +5044 X(live)s +514 X +3000 Y +1234 X(in)s +1365 X(the)s +1540 X(\304bboards)s +1942 X(home)s +2217 X(directory.)s +2680 X(Each)s +2932 X(message)s +3322 X(in)s +3452 X(a)s +3548 X(BBoard)s +3911 X(\256le)s +4091 X(has)s +4276 X(in)s +4406 X(its)s +4553 X(header)s +4870 X(the)s +5044 X(line)s +514 X +3120 Y +1234 X(``BBoard-Id:)s +1785 X(n'',)s +1956 X(where)s +2229 X(``n'')s +2441 X(is)s +2538 X(an)s +2661 X(ascending)s +3089 X(decimal)s +3434 X(number.)s +3818 X(This)s +4025 X(id-number)s +4470 X(is)s +4566 X(unique)s +4867 X(for)s +5012 X(each)s +514 X +3240 Y +1234 X(message)s +1607 X(in)s +1720 X(a)s +1799 X(BBoards)s +2184 X(\256le.)s +2397 X(It)s +2493 X(should)s +2795 X(NOT)s +3035 X(be)s +3163 X(confused)s +3557 X(with)s +3769 X(the)s +3925 X(message)s +4297 X(number)s +4636 X(of)s +4753 X(a)s +4831 X(message,)s +514 X +3360 Y +1234 X(which)s +1503 X(can)s +1666 X(change)s +1973 X(as)s +2081 X(messages)s +2483 X(are)s +2629 X(removed)s +3003 X(from)s +3222 X(the)s +3369 X(BBoard.)s +514 X +3600 Y +874 X +0.0 10 10 f.B ft(BBoard)s +1233 X(Handling)s +514 X +3720 Y +1234 X +0.0 10 10 f.R ft(To)s +1384 X(read)s +1594 X(BBoards,)s +2008 X(use)s +2180 X(the)s +2341 X +0.0 10 10 f.I ft(bbc)s +2524 X +0.0 10 10 f.R ft(and)s +2707 X +0.0 10 10 f.I ft(msh)s +2907 X +0.0 10 10 f.R ft(programs.)s +3373 X(The)s +3566 X +0.0 10 10 f.I ft(msh)s +3765 X +0.0 10 10 f.R ft(command)s +4197 X(is)s +4302 X(a)s +4384 X(monolithic)s +4856 X(program)s +514 X +3840 Y +1234 X(which)s +1512 X(contains)s +1879 X(all)s +2013 X(the)s +2169 X(functionality)s +2714 X(of)s +2831 X +0.0 10 10 f.I ft(MH)s +3020 X +0.0 10 10 f.R ft(in)s +3132 X(a)s +3210 X(single)s +3483 X(program.)s +3904 X(The)s +4092 X(`\261check')s +4473 X(switch)s +4767 X(to)s +4878 X +0.0 10 10 f.I ft(bbc)s +5055 X +0.0 10 10 f.R ft(lets)s +514 X +3960 Y +1234 X(you)s +1416 X(check)s +1680 X(on)s +1812 X(the)s +1966 X(status)s +2226 X(of)s +2341 X(BBoards,)s +2748 X(and)s +2924 X(the)s +3078 X(`\261read')s +3397 X(switch)s +3690 X(tells)s +3889 X +0.0 10 10 f.I ft(bbc)s +4065 X +0.0 10 10 f.R ft(to)s +4175 X(invoke)s +4479 X +0.0 10 10 f.I ft(msh)s +4672 X +0.0 10 10 f.R ft(to)s +4781 X(read)s +4983 X(those)s +514 X +4080 Y +1234 X(BBoards.)s +514 X +4320 Y +874 X +0.0 10 10 f.B ft(Creating)s +1276 X(a)s +1351 X(BBoard)s +514 X +4440 Y +1234 X +0.0 10 10 f.R ft(Both)s +1467 X(public,)s +1780 X(and)s +1962 X(private)s +2277 X(BBoards)s +2665 X(are)s +2824 X(supported.)s +3306 X(Contact)s +3655 X(the)s +3814 X(mail)s +4029 X(address)s +4365 X +0.0 10 10 f.I ft(PostMaster)s +4863 X +0.0 10 10 f.R ft(if)s +4961 X(you'd)s +514 X +4560 Y +1234 X(like)s +1409 X(to)s +1512 X(have)s +1725 X(a)s +1794 X(BBoard)s +2130 X(created.)s +514 X +4800 Y +874 X +0.0 10 10 f.B ft(BBoard)s +1233 X(addresses)s +514 X +4920 Y +1234 X +0.0 10 10 f.R ft(Each)s +1484 X(BBoard)s +1846 X(has)s +2030 X(associated)s +2490 X(with)s +2718 X(it)s +2824 X(4)s +2924 X(addresses,)s +3381 X(these)s +3636 X(are)s +3807 X(\(for)s +4006 X(the)s +4178 X(\256cticious)s +4595 X(BBoard)s +4956 X(called)s +514 X +5040 Y +1234 X(``hacks''\):)s +514 X +5160 Y +1414 X +0.0 10 10 f.B ft(hacks)s +1709 X +0.0 10 10 f.R ft(:)s +1762 X(The)s +1942 X(Internet)s +2277 X(wide)s +2496 X(distribution)s +2983 X(list.)s +514 X +5280 Y +1414 X +0.0 10 10 f.B ft(dist-hacks)s +1898 X +0.0 10 10 f.R ft(:)s +1951 X(The)s +2131 X(local)s +2350 X(BBoard.)s +514 X +5400 Y +1414 X +0.0 10 10 f.B ft(hacks-request)s +2058 X +0.0 10 10 f.R ft(:)s +2111 X(The)s +2291 X(people)s +2582 X(responsible)s +3062 X(for)s +3203 X(the)s +3350 X(BBoard)s +3686 X(at)s +3783 X(the)s +3930 X(Internet)s +4265 X(level.)s +514 X +5520 Y +1414 X +0.0 10 10 f.B ft(local-hacks-request)s +2291 X +0.0 10 10 f.R ft(:)s +2344 X(The)s +2524 X(people)s +2815 X(responsible)s +3295 X(for)s +3436 X(the)s +3583 X(BBoard)s +3919 X(locally.)s +514 X +5682 Y +0.0 8 8 f.B ft(Files)s +514 X +5802 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5922 Y +874 X($HOME/.bbrc)s +2463 X(BBoard)s +2799 X(information)s +514 X +6126 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +6246 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +6366 Y +874 X(bboards:)s +1790 X(To)s +1926 X(specify)s +2239 X(interesting)s +2686 X(BBoards)s +514 X +6486 Y +874 X(mshproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(read)s +2458 X(a)s +2527 X(given)s +2774 X(BBoard)s +514 X +6690 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +6810 Y +874 X +0.0 10 10 f.R ft(bbc\(1\),)s +1184 X(bbl\(1\),)s +1478 X(bbleader\(1\),)s +1987 X(msh\(1\))s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 17 18 + +514 X +600 Y(BBOARDS\(1\))s +2771 X(-17-)s +4594 X(BBOARDS\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Defaults)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X(default)s +1356 X(bboard)s +1658 X(is)s +1750 X(``system'')s +514 X +1284 Y +0.0 8 8 f.B ft(Context)s +514 X +1404 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 18 19 + +514 X +600 Y(BURST\(1\))s +2771 X(-18-)s +4744 X(BURST\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(burst)s +1099 X(\261)s +1174 X(explode)s +1515 X(digests)s +1818 X(into)s +1999 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(burst)s +1099 X([+folder])s +1484 X([msgs])s +1781 X([\261inplace])s +2210 X([\261noinplace])s +2739 X([\261quiet])s +3080 X([\261noquiet])s +3521 X([\261verbose])s +3972 X([\261noverbose])s +4523 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Burst)s +1118 X +0.0 10 10 f.R ft(considers)s +1522 X(the)s +1671 X(speci\256ed)s +2053 X(messages)s +2457 X(in)s +2562 X(the)s +2711 X(named)s +3004 X(folder)s +3269 X(to)s +3374 X(be)s +3495 X(Internet)s +3832 X(digests,)s +4162 X(and)s +4333 X(explodes)s +4714 X(them)s +4940 X(in)s +5044 X(that)s +514 X +2040 Y +874 X(folder.)s +514 X +2280 Y +874 X(If)s +967 X(`\261inplace')s +1398 X(is)s +1492 X(given,)s +1766 X(each)s +1974 X(digest)s +2239 X(is)s +2332 X(replaced)s +2695 X(by)s +2821 X(the)s +2969 X(``table)s +3255 X(of)s +3364 X(contents'')s +3789 X(for)s +3931 X(the)s +4079 X(digest)s +4344 X(\(the)s +4525 X(original)s +4862 X(digest)s +5127 X(is)s +514 X +2400 Y +874 X(removed\).)s +1341 X +0.0 10 10 f.I ft(Burst)s +1593 X +0.0 10 10 f.R ft(then)s +1800 X(renumbers)s +2256 X(all)s +2391 X(of)s +2509 X(the)s +2666 X(messages)s +3078 X(following)s +3502 X(the)s +3658 X(digest)s +3931 X(in)s +4043 X(the)s +4199 X(folder)s +4471 X(to)s +4583 X(make)s +4833 X(room)s +5078 X(for)s +514 X +2520 Y +874 X(each)s +1081 X(of)s +1189 X(the)s +1336 X(messages)s +1738 X(contained)s +2151 X(within)s +2432 X(the)s +2579 X(digest.)s +2893 X(These)s +3156 X(messages)s +3558 X(are)s +3704 X(placed)s +3989 X(immediately)s +4514 X(after)s +4721 X(the)s +4868 X(digest.)s +514 X +2760 Y +874 X(If)s +972 X(`\261noinplace')s +1508 X(is)s +1607 X(given,)s +1886 X(each)s +2100 X(digest)s +2371 X(is)s +2470 X(preserved,)s +2914 X(no)s +3046 X(table)s +3272 X(of)s +3387 X(contents)s +3752 X(is)s +3851 X(produced,)s +4279 X(and)s +4455 X(the)s +4609 X(messages)s +5017 X(con-)s +514 X +2880 Y +874 X(tained)s +1151 X(within)s +1440 X(the)s +1595 X(digest)s +1867 X(are)s +2021 X(placed)s +2314 X(at)s +2419 X(the)s +2574 X(end)s +2751 X(of)s +2867 X(the)s +3022 X(folder.)s +3343 X(Other)s +3603 X(messages)s +4013 X(are)s +4167 X(not)s +4327 X(tampered)s +4730 X(with)s +4940 X(in)s +5050 X(any)s +514 X +3000 Y +874 X(way.)s +514 X +3240 Y +874 X(The)s +1054 X(`\261quiet')s +1395 X(switch)s +1681 X(directs)s +1972 X +0.0 10 10 f.I ft(burst)s +2203 X +0.0 10 10 f.R ft(to)s +2306 X(be)s +2425 X(silent)s +2667 X(about)s +2914 X(reporting)s +3305 X(messages)s +3707 X(that)s +3882 X(are)s +4028 X(not)s +4181 X(in)s +4284 X(digest)s +4548 X(format.)s +514 X +3480 Y +874 X(The)s +1054 X(`\261verbose')s +1505 X(switch)s +1791 X(directs)s +2082 X +0.0 10 10 f.I ft(burst)s +2313 X +0.0 10 10 f.R ft(to)s +2416 X(tell)s +2569 X(the)s +2716 X(user)s +2907 X(the)s +3054 X(general)s +3372 X(actions)s +3680 X(that)s +3855 X(it)s +3936 X(is)s +4028 X(taking)s +4303 X(to)s +4406 X(explode)s +4747 X(the)s +4894 X(digest.)s +514 X +3720 Y +874 X(It)s +969 X(turns)s +1203 X(out)s +1365 X(that)s +1549 X +0.0 10 10 f.I ft(burst)s +1789 X +0.0 10 10 f.R ft(works)s +2067 X(equally)s +2395 X(well)s +2601 X(on)s +2735 X(forwarded)s +3178 X(messages)s +3589 X(and)s +3767 X(blind\261carbon\261copies)s +4633 X(as)s +4750 X(on)s +4884 X(Internet)s +514 X +3840 Y +874 X(digests,)s +1202 X(provided)s +1582 X(that)s +1757 X(the)s +1904 X(former)s +2200 X(two)s +2375 X(were)s +2593 X(generated)s +3005 X(by)s +3130 X +0.0 10 10 f.I ft(forw)s +3339 X +0.0 10 10 f.R ft(or)s +3447 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(.)s +514 X +4002 Y +0.0 8 8 f.B ft(Files)s +514 X +4122 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4326 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4446 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +4566 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +4686 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(message)s +514 X +4890 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5010 Y +874 X +0.0 10 10 f.I ft(Proposed)s +1282 X(Standard)s +1674 X(for)s +1816 X(Message)s +2190 X(Encapsulation)s +2793 X +0.0 10 10 f.R ft(\(aka)s +2989 X(RFC\261934\),)s +514 X +5130 Y +874 X(inc\(1\),)s +1162 X(msh\(1\),)s +1495 X(pack\(1\))s +514 X +5334 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5454 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +5574 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +514 X +5694 Y +874 X(`\261noinplace')s +514 X +5814 Y +874 X(`\261noquiet')s +514 X +5934 Y +874 X(`\261noverbose')s +514 X +6138 Y +0.0 8 8 f.B ft(Context)s +514 X +6258 Y +874 X +0.0 10 10 f.R ft(If)s +968 X(a)s +1040 X(folder)s +1306 X(is)s +1401 X(given,)s +1676 X(it)s +1759 X(will)s +1942 X(become)s +2279 X(the)s +2428 X(current)s +2737 X(folder.)s +3052 X(If)s +3145 X(`\261inplace')s +3576 X(is)s +3670 X(given,)s +3944 X(then)s +4143 X(the)s +4292 X(\256rst)s +4475 X(message)s +4840 X(burst)s +5067 X(be-)s +514 X +6378 Y +874 X(comes)s +1159 X(the)s +1311 X(current)s +1623 X(message.)s +2041 X(This)s +2249 X(leaves)s +2528 X(the)s +2680 X(context)s +3004 X(ready)s +3254 X(for)s +3399 X(a)s +3472 X +0.0 10 10 f.I ft(show)s +3707 X +0.0 10 10 f.R ft(of)s +3819 X(the)s +3970 X(table)s +4193 X(of)s +4305 X(contents)s +4667 X(of)s +4779 X(the)s +4930 X(digest,)s +514 X +6498 Y +874 X(and)s +1051 X(a)s +1128 X +0.0 10 10 f.I ft(next)s +1327 X +0.0 10 10 f.R ft(to)s +1438 X(see)s +1598 X(the)s +1753 X(\256rst)s +1941 X(message)s +2311 X(of)s +2426 X(the)s +2580 X(digest.)s +2901 X(If)s +2999 X(`\261noinplace')s +3535 X(is)s +3634 X(given,)s +3913 X(then)s +4117 X(the)s +4271 X(\256rst)s +4459 X(message)s +4829 X(extracted)s +514 X +6618 Y +874 X(from)s +1095 X(the)s +1244 X(\256rst)s +1427 X(digest)s +1693 X(burst)s +1920 X(becomes)s +2296 X(the)s +2445 X(current)s +2754 X(message.)s +3169 X(This)s +3374 X(leaves)s +3650 X(the)s +3799 X(context)s +4120 X(in)s +4225 X(a)s +4296 X(similar,)s +4625 X(but)s +4779 X(not)s +4933 X(identi-)s +514 X +6738 Y +874 X(cal,)s +1040 X(state)s +1248 X(to)s +1351 X(the)s +1498 X(context)s +1817 X(achieved)s +2196 X(when)s +2437 X(using)s +2679 X(`\261inplace'.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 19 20 + +514 X +600 Y(BURST\(1\))s +2771 X(-19-)s +4744 X(BURST\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(The)s +1058 X +0.0 10 10 f.I ft(burst)s +1293 X +0.0 10 10 f.R ft(program)s +1660 X(enforces)s +2025 X(a)s +2097 X(limit)s +2315 X(on)s +2443 X(the)s +2593 X(number)s +2926 X(of)s +3037 X(messages)s +3442 X(which)s +3714 X(may)s +3914 X(be)s +4036 X +0.0 10 10 f.I ft(burst)s +4270 X +0.0 10 10 f.R ft(from)s +4492 X(a)s +4564 X(single)s +4831 X(message.)s +514 X +1200 Y +874 X(This)s +1080 X(number)s +1413 X(is)s +1508 X(on)s +1636 X(the)s +1786 X(order)s +2024 X(of)s +2134 X(1000)s +2361 X(messages.)s +2815 X(There)s +3074 X(is)s +3168 X(usually)s +3484 X(no)s +3611 X(limit)s +3828 X(on)s +3955 X(the)s +4104 X(number)s +4436 X(of)s +4546 X(messages)s +4950 X(which)s +514 X +1320 Y +874 X(may)s +1071 X(reside)s +1334 X(in)s +1437 X(the)s +1584 X(folder)s +1847 X(after)s +2054 X(the)s +2201 X +0.0 10 10 f.I ft(burst)s +0.0 10 10 f.R ft(ing.)s +514 X +1560 Y +874 X(Although)s +1296 X +0.0 10 10 f.I ft(burst)s +1546 X +0.0 10 10 f.R ft(uses)s +1762 X(a)s +1850 X(sophisticated)s +2416 X(algorithm)s +2849 X(to)s +2970 X(determine)s +3412 X(where)s +3698 X(one)s +3885 X(encapsulated)s +4443 X(message)s +4824 X(ends)s +5050 X(and)s +514 X +1680 Y +874 X(another)s +1200 X(begins,)s +1513 X(not)s +1668 X(all)s +1795 X(digestifying)s +2300 X(programs)s +2704 X(use)s +2864 X(an)s +2984 X(encapsulation)s +3559 X(algorithm.)s +4024 X(In)s +4133 X(degenerate)s +4590 X(cases,)s +4851 X(this)s +5022 X(usu-)s +514 X +1800 Y +874 X(ally)s +1051 X(results)s +1339 X(in)s +1444 X +0.0 10 10 f.I ft(burst)s +1677 X +0.0 10 10 f.R ft(\256nding)s +1988 X(an)s +2109 X(encapsulation)s +2685 X(boundary)s +3089 X(prematurely)s +3598 X(and)s +3769 X(splitting)s +4124 X(a)s +4194 X(single)s +4459 X(encapsulated)s +5000 X(mes-)s +514 X +1920 Y +874 X(sage)s +1076 X(into)s +1257 X(two)s +1432 X(or)s +1540 X(more)s +1770 X(messages.)s +2222 X(These)s +2485 X(erroneous)s +2903 X(digestifying)s +3406 X(programs)s +3808 X(should)s +4100 X(be)s +4219 X(\256xed.)s +514 X +2160 Y +874 X(Furthermore,)s +1425 X(any)s +1595 X(text)s +1771 X(which)s +2041 X(appears)s +2371 X(after)s +2579 X(the)s +2727 X(last)s +2892 X(encapsulated)s +3433 X(message)s +3797 X(is)s +3890 X(not)s +4044 X(placed)s +4330 X(in)s +4434 X(a)s +4504 X(seperate)s +4856 X(message)s +514 X +2280 Y +874 X(by)s +1006 X +0.0 10 10 f.I ft(burst)s +0.0 10 10 f.R ft(.)s +1294 X(In)s +1409 X(the)s +1563 X(case)s +1766 X(of)s +1881 X(digesti\256ed)s +2330 X(messages,)s +2764 X(this)s +2941 X(text)s +3123 X(is)s +3222 X(usally)s +3493 X(an)s +3619 X(``End)s +3878 X(of)s +3993 X(digest'')s +4330 X(string.)s +4640 X(As)s +4783 X(a)s +4858 X(result)s +5111 X(of)s +514 X +2400 Y +874 X(this)s +1054 X(possibly)s +1423 X(un\261friendly)s +1924 X(behavior)s +2308 X(on)s +2443 X(the)s +2600 X(part)s +2790 X(of)s +2908 X +0.0 10 10 f.I ft(burst)s +0.0 10 10 f.R ft(,)s +3174 X(note)s +3381 X(that)s +3566 X(when)s +3817 X(the)s +3974 X(`\261inplace')s +4413 X(option)s +4704 X(is)s +4806 X(used,)s +5049 X(this)s +514 X +2520 Y +874 X(trailing)s +1192 X(information)s +1693 X(is)s +1788 X(lost.)s +2011 X(In)s +2122 X(practice,)s +2490 X(this)s +2663 X(is)s +2758 X(not)s +2914 X(a)s +2986 X(problem)s +3347 X(since)s +3580 X(correspondents)s +4212 X(usually)s +4529 X(place)s +4767 X(remarks)s +5116 X(in)s +514 X +2640 Y +874 X(text)s +1049 X(prior)s +1268 X(to)s +1371 X(the)s +1518 X(\256rst)s +1699 X(encapsulated)s +2239 X(message,)s +2627 X(and)s +2796 X(this)s +2966 X(information)s +3463 X(is)s +3555 X(not)s +3708 X(lost.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 20 21 + +514 X +600 Y(COMP\(1\))s +2771 X(-20-)s +4773 X(COMP\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(comp)s +1121 X(\261)s +1196 X(compose)s +1576 X(a)s +1645 X(message)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(comp)s +1121 X([+folder])s +1506 X([msg])s +1764 X([\261draftfolder +folder])s +2650 X([\261draftmessage msg])s +3509 X([\261nodraftfolder])s +4176 X([\261editor editor])s +4808 X([\261noedit])s +514 X +1560 Y +1234 X([\261\256le \256le])s +1656 X([\261form form\256le])s +2338 X([\261use])s +2612 X([\261nouse])s +2986 X([\261whatnowproc program])s +4033 X([\261nowhatnowproc])s +4817 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Comp)s +1142 X +0.0 10 10 f.R ft(is)s +1238 X(used)s +1450 X(to)s +1557 X(create)s +1823 X(a)s +1896 X(new)s +2091 X(message)s +2457 X(to)s +2563 X(be)s +2685 X(mailed.)s +3035 X(It)s +3124 X(copies)s +3407 X(a)s +3479 X(message)s +3845 X(form)s +4067 X(to)s +4173 X(the)s +4323 X(draft)s +4539 X(being)s +4789 X(composed)s +514 X +2160 Y +874 X(and)s +1070 X(then)s +1294 X(invokes)s +1657 X(an)s +1803 X(editor)s +2088 X(on)s +2240 X(the)s +2414 X(draft)s +2654 X(\(unless)s +2989 X(`\261noedit')s +3406 X(is)s +3524 X(given,)s +3822 X(in)s +3951 X(which)s +4246 X(case)s +4468 X(the)s +4641 X(initial)s +4926 X(edit)s +5127 X(is)s +514 X +2280 Y +874 X(suppressed\).)s +514 X +2520 Y +874 X(The)s +1054 X(default)s +1356 X(message)s +1719 X(form)s +1938 X(contains)s +2296 X(the)s +2443 X(following)s +2857 X(elements:)s +514 X +2760 Y +1234 X(To:)s +514 X +2880 Y +1234 X(cc:)s +514 X +3000 Y +1234 X(Subject:)s +514 X +3120 Y +1234 X(--------)s +514 X +3360 Y +874 X(If)s +967 X(the)s +1116 X(\256le)s +1271 X(named)s +1564 X(``components'')s +2206 X(exists)s +2461 X(in)s +2566 X(the)s +2715 X(user's)s +2980 X(MH)s +3168 X(directory,)s +3580 X(it)s +3663 X(will)s +3846 X(be)s +3967 X(used)s +4177 X(instead)s +4487 X(of)s +4597 X(this)s +4769 X(form.)s +5039 X(The)s +514 X +3480 Y +874 X(\256le)s +1034 X(speci\256ed)s +1421 X(by)s +1553 X(`\261form form\256le')s +2242 X(will)s +2430 X(be)s +2556 X(used)s +2771 X(if)s +2864 X(given.)s +3168 X(You)s +3372 X(may)s +3576 X(also)s +3769 X(start)s +3973 X +0.0 10 10 f.I ft(comp)s +4221 X +0.0 10 10 f.R ft(using)s +4469 X(the)s +4622 X(contents)s +4986 X(of)s +5100 X(an)s +514 X +3600 Y +874 X(existing)s +1217 X(message)s +1581 X(as)s +1690 X(the)s +1838 X(form.)s +2108 X(If)s +2200 X(you)s +2376 X(supply)s +2669 X(either)s +2922 X(a)s +2992 X(`+folder')s +3378 X(or)s +3487 X(`msg')s +3746 X(argument,)s +4173 X(that)s +4348 X(message)s +4711 X(will)s +4892 X(be)s +5011 X(used)s +514 X +3720 Y +874 X(as)s +989 X(the)s +1143 X(form.)s +1419 X(You)s +1623 X(may)s +1827 X(not)s +1987 X(supply)s +2286 X(both)s +2496 X(a)s +2572 X(`\261form form\256le')s +3261 X(and)s +3437 X(a)s +3513 X(`+folder')s +3905 X(or)s +4020 X(`msg')s +4285 X(argument.)s +4744 X(The)s +4930 X(line)s +5111 X(of)s +514 X +3840 Y +874 X(dashes)s +1172 X(or)s +1287 X(a)s +1363 X(blank)s +1617 X(line)s +1799 X(must)s +2026 X(be)s +2151 X(left)s +2315 X(between)s +2678 X(the)s +2831 X(header)s +3127 X(and)s +3302 X(the)s +3455 X(body)s +3686 X(of)s +3800 X(the)s +3953 X(message)s +4322 X(for)s +4469 X(the)s +4622 X(message)s +4991 X(to)s +5100 X(be)s +514 X +3960 Y +874 X(identi\256ed)s +1288 X(properly)s +1662 X(when)s +1914 X(it)s +2006 X(is)s +2109 X(sent)s +2306 X(\(see)s +2502 X +0.0 10 10 f.I ft(send)s +2735 X +0.0 10 10 f.R ft(\(1\)\).)s +2970 X(The)s +3161 X(switch)s +3458 X(`\261use')s +3743 X(directs)s +4044 X +0.0 10 10 f.I ft(comp)s +4295 X +0.0 10 10 f.R ft(to)s +4408 X(continue)s +4787 X(editing)s +5100 X(an)s +514 X +4080 Y +874 X(already)s +1196 X(started)s +1491 X(message.)s +1908 X(That)s +2120 X(is,)s +2241 X(if)s +2330 X(a)s +2402 X +0.0 10 10 f.I ft(comp)s +2646 X +0.0 10 10 f.R ft(\(or)s +2790 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2988 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +3202 X(or)s +3313 X +0.0 10 10 f.I ft(forw)s +3547 X +0.0 10 10 f.R ft(\))s +3608 X(is)s +3703 X(terminated)s +4158 X(without)s +4492 X(sending)s +4831 X(the)s +4981 X(draft,)s +514 X +4200 Y +874 X(the)s +1021 X(draft)s +1234 X(can)s +1397 X(be)s +1516 X(edited)s +1785 X(again)s +2026 X(via)s +2173 X(``comp \261use''.)s +514 X +4440 Y +874 X(If)s +973 X(the)s +1128 X(draft)s +1349 X(already)s +1675 X(exists,)s +1961 X +0.0 10 10 f.I ft(comp)s +2210 X +0.0 10 10 f.R ft(will)s +2399 X(ask)s +2565 X(you)s +2748 X(as)s +2864 X(to)s +2975 X(the)s +3129 X(disposition)s +3601 X(of)s +3716 X(the)s +3870 X(draft.)s +4140 X(A)s +4244 X(reply)s +4481 X(of)s +4596 X +0.0 10 10 f.B ft(quit)s +4801 X +0.0 10 10 f.R ft(will)s +4989 X(abort)s +514 X +4560 Y +874 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +1152 X(leaving)s +1483 X(the)s +1642 X(draft)s +1867 X(intact;)s +2154 X +0.0 10 10 f.B ft(replace)s +2501 X +0.0 10 10 f.R ft(will)s +2694 X(replace)s +3018 X(the)s +3177 X(existing)s +3530 X(draft)s +3754 X(with)s +3968 X(the)s +4126 X(appropriate)s +4616 X(form;)s +4874 X +0.0 10 10 f.B ft(list)s +5038 X +0.0 10 10 f.R ft(will)s +514 X +4680 Y +874 X(display)s +1194 X(the)s +1347 X(draft;)s +1594 X +0.0 10 10 f.B ft(use)s +1764 X +0.0 10 10 f.R ft(will)s +1951 X(use)s +2115 X(the)s +2268 X(draft)s +2487 X(for)s +2634 X(further)s +2936 X(composition;)s +3490 X(and)s +3665 X +0.0 10 10 f.B ft(re\256le +folder)s +4249 X +0.0 10 10 f.R ft(will)s +4436 X(\256le)s +4594 X(the)s +4746 X(draft)s +4964 X(in)s +5072 X(the)s +514 X +4800 Y +874 X(given)s +1137 X(folder,)s +1441 X(and)s +1626 X(give)s +1839 X(you)s +2030 X(a)s +2115 X(new)s +2322 X(draft)s +2550 X(with)s +2768 X(the)s +2930 X(appropriate)s +3424 X(form.)s +3708 X(\(The)s +3936 X(`+folder')s +4336 X(argument)s +4753 X(to)s +4871 X +0.0 10 10 f.B ft(re\256le)s +5127 X +0.0 10 10 f.R ft(is)s +514 X +4920 Y +874 X(required.\))s +514 X +5160 Y +874 X(The)s +1055 X(`\261draftfolder +folder')s +1942 X(and)s +2112 X(`\261draftmessage msg')s +2972 X(switches)s +3342 X(invoke)s +3640 X(the)s +3788 X +0.0 10 10 f.I ft(MH)s +3969 X +0.0 10 10 f.R ft(draft)s +4183 X(folder)s +4447 X(facility.)s +4805 X(This)s +5008 X(is)s +5100 X(an)s +514 X +5280 Y +874 X(advanced)s +1278 X(\(and)s +1483 X(highly)s +1767 X(useful\))s +2072 X(feature.)s +2426 X(Consult)s +2766 X(the)s +2916 X +0.0 10 10 f.B ft(Advanced)s +3372 X(Features)s +3771 X +0.0 10 10 f.R ft(section)s +4082 X(of)s +4193 X(the)s +4343 X +0.0 10 10 f.I ft(MH)s +4525 X +0.0 10 10 f.R ft(manual)s +4846 X(for)s +4989 X(more)s +514 X +5400 Y +874 X(information.)s +514 X +5640 Y +874 X(The)s +1054 X(`\261\256le \256le')s +1476 X(switch)s +1762 X(says)s +1959 X(to)s +2062 X(use)s +2220 X(the)s +2367 X(named)s +2658 X(\256le)s +2811 X(as)s +2919 X(the)s +3066 X(message)s +3429 X(draft.)s +514 X +5880 Y +874 X(The)s +1069 X(`\261editor editor')s +1716 X(switch)s +2017 X(indicates)s +2412 X(the)s +2574 X(editor)s +2847 X(to)s +2964 X(use)s +3136 X(for)s +3291 X(the)s +3452 X(initial)s +3725 X(edit.)s +3964 X(Upon)s +4225 X(exiting)s +4542 X(from)s +4775 X(the)s +4936 X(editor,)s +514 X +6000 Y +874 X +0.0 10 10 f.I ft(comp)s +1117 X +0.0 10 10 f.R ft(will)s +1300 X(invoke)s +1599 X(the)s +1748 X +0.0 10 10 f.I ft(whatnow)s +2137 X +0.0 10 10 f.R ft(program.)s +2552 X(See)s +2723 X +0.0 10 10 f.I ft(whatnow)s +3135 X +0.0 10 10 f.R ft(\(1\))s +3278 X(for)s +3421 X(a)s +3492 X(discussion)s +3936 X(of)s +4045 X(available)s +4431 X(options.)s +4802 X(The)s +4983 X(invo-)s +514 X +6120 Y +874 X(cation)s +1152 X(of)s +1269 X(this)s +1448 X(program)s +1820 X(can)s +1992 X(be)s +2120 X(inhibited)s +2510 X(by)s +2644 X(using)s +2895 X(the)s +3051 X(`\261nowhatnowproc')s +3844 X(switch.)s +4189 X(\(In)s +4338 X(truth)s +4560 X(of)s +4676 X(fact,)s +4883 X(it)s +4972 X(is)s +5072 X(the)s +514 X +6240 Y +874 X +0.0 10 10 f.I ft(whatnow)s +1263 X +0.0 10 10 f.R ft(program)s +1628 X(which)s +1899 X(starts)s +2137 X(the)s +2286 X(initial)s +2547 X(edit.)s +2774 X(Hence,)s +3080 X(`\261nowhatnowproc')s +3866 X(will)s +4049 X(prevent)s +4374 X(any)s +4544 X(edit)s +4720 X(from)s +4940 X(occur-)s +514 X +6360 Y +874 X(ring.\))s +514 X +6522 Y +0.0 8 8 f.B ft(Files)s +514 X +6642 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/components)s +2463 X(The)s +2643 X(message)s +3006 X(skeleton)s +514 X +6762 Y +874 X(or)s +982 X(/components)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(skeleton)s +514 X +6882 Y +874 X($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +7002 Y +874 X(/draft)s +2463 X(The)s +2643 X(draft)s +2856 X(\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 21 22 + +514 X +600 Y(COMP\(1\))s +2771 X(-21-)s +4773 X(COMP\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +1200 Y +874 X(Draft\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(draft\261folder)s +514 X +1320 Y +874 X(Editor:)s +1790 X(To)s +1926 X(override)s +2283 X(the)s +2430 X(default)s +2732 X(editor)s +514 X +1440 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(message)s +3519 X(\(draft\))s +514 X +1560 Y +874 X(\256leproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(re\256le)s +2492 X(the)s +2639 X(message)s +514 X +1680 Y +874 X(whatnowproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(ask)s +2420 X(the)s +2567 X(``What)s +2874 X(now?'')s +3181 X(questions)s +514 X +1884 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2004 Y +874 X +0.0 10 10 f.R ft(dist\(1\),)s +1185 X(forw\(1\),)s +1539 X(repl\(1\),)s +1860 X(send\(1\),)s +2209 X(whatnow\(1\),)s +2741 X(mh-pro\256le\(5\))s +514 X +2208 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2328 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +2448 Y +874 X(`msg')s +1132 X(defaults)s +1473 X(to)s +1576 X(the)s +1723 X(current)s +2030 X(message)s +514 X +2568 Y +874 X(`\261nodraftfolder')s +514 X +2688 Y +874 X(`\261nouse')s +514 X +2892 Y +0.0 8 8 f.B ft(Context)s +514 X +3012 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3216 Y +0.0 8 8 f.B ft(Bugs)s +514 X +3336 Y +874 X +0.0 10 10 f.R ft(If)s +969 X +0.0 10 10 f.I ft(whatnowproc)s +1543 X +0.0 10 10 f.R ft(is)s +1639 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +2055 X(then)s +2256 X +0.0 10 10 f.I ft(comp)s +2501 X +0.0 10 10 f.R ft(uses)s +2702 X(a)s +2775 X(built\261in)s +3116 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +3532 X(it)s +3616 X(does)s +3827 X(not)s +3983 X(actually)s +4327 X(run)s +4488 X(the)s +4638 X +0.0 10 10 f.I ft(whatnow)s +5028 X +0.0 10 10 f.R ft(pro-)s +514 X +3456 Y +874 X(gram.)s +1154 X(Hence,)s +1458 X(if)s +1544 X(you)s +1719 X(de\256ne)s +1988 X(your)s +2196 X(own)s +2393 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(,)s +2988 X(don't)s +3224 X(call)s +3393 X(it)s +3474 X +0.0 10 10 f.I ft(whatnow)s +3861 X +0.0 10 10 f.R ft(since)s +4091 X +0.0 10 10 f.I ft(comp)s +4332 X +0.0 10 10 f.R ft(won't)s +4590 X(run)s +4748 X(it.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 22 23 + +514 X +600 Y(DIST\(1\))s +2771 X(-22-)s +4844 X(DIST\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(dist)s +1044 X(\261)s +1119 X(redistribute)s +1599 X(a)s +1668 X(message)s +2031 X(to)s +2134 X(additional)s +2559 X(addresses)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(dist)s +1044 X([+folder])s +1429 X([msg])s +1687 X([\261annotate])s +2166 X([\261noannotate])s +2745 X([\261draftfolder +folder])s +3631 X([\261draftmessage msg])s +4490 X([\261nodraftfolder])s +514 X +1560 Y +1234 X([\261editor editor])s +1866 X([\261noedit])s +2257 X([\261form form\256le])s +2939 X([\261inplace])s +3368 X([\261noinplace])s +3897 X([\261whatnowproc program])s +514 X +1680 Y +1234 X([\261nowhatnowproc])s +2018 X([\261help])s +514 X +1920 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(Dist)s +1074 X +0.0 10 10 f.R ft(is)s +1174 X(similar)s +1485 X(to)s +1596 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(.)s +1863 X(It)s +1957 X(prepares)s +2326 X(the)s +2480 X(speci\256ed)s +2867 X(message)s +3237 X(for)s +3385 X(redistribution)s +3956 X(to)s +4066 X(addresses)s +4480 X(that)s +4662 X(\(presumably\))s +514 X +2280 Y +874 X(are)s +1020 X(not)s +1173 X(on)s +1298 X(the)s +1445 X(original)s +1781 X(address)s +2105 X(list.)s +514 X +2520 Y +874 X(The)s +1054 X(default)s +1356 X(message)s +1719 X(form)s +1938 X(contains)s +2296 X(the)s +2443 X(following)s +2857 X(elements:)s +514 X +2760 Y +1234 X(Resent-To:)s +514 X +2880 Y +1234 X(Resent-cc:)s +514 X +3120 Y +874 X(If)s +975 X(the)s +1132 X(\256le)s +1295 X(named)s +1596 X(``distcomps'')s +2169 X(exists)s +2432 X(in)s +2545 X(the)s +2702 X(user's)s +2975 X(MH)s +3171 X(directory,)s +3591 X(it)s +3682 X(will)s +3873 X(be)s +4002 X(used)s +4220 X(instead)s +4537 X(of)s +4654 X(this)s +4833 X(form.)s +5111 X(In)s +514 X +3240 Y +874 X(either)s +1129 X(case,)s +1353 X(the)s +1503 X(\256le)s +1659 X(speci\256ed)s +2042 X(by)s +2170 X(`\261form form\256le')s +2855 X(will)s +3039 X(be)s +3160 X(used)s +3370 X(if)s +3458 X(given.)s +3757 X(The)s +3939 X(form)s +4160 X(used)s +4370 X(will)s +4553 X(be)s +4674 X(prepended)s +5116 X(to)s +514 X +3360 Y +874 X(the)s +1021 X(message)s +1384 X(being)s +1631 X(resent.)s +514 X +3600 Y +874 X(If)s +967 X(the)s +1116 X(draft)s +1331 X(already)s +1651 X(exists,)s +1931 X +0.0 10 10 f.I ft(dist)s +2103 X +0.0 10 10 f.R ft(will)s +2286 X(ask)s +2446 X(you)s +2623 X(as)s +2733 X(to)s +2838 X(the)s +2987 X(disposition)s +3453 X(of)s +3562 X(the)s +3710 X(draft.)s +3974 X(A)s +4072 X(reply)s +4303 X(of)s +4412 X +0.0 10 10 f.B ft(quit)s +4611 X +0.0 10 10 f.R ft(will)s +4793 X(abort)s +5024 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +514 X +3720 Y +874 X(leaving)s +1202 X(the)s +1358 X(draft)s +1580 X(intact;)s +1863 X +0.0 10 10 f.B ft(replace)s +2206 X +0.0 10 10 f.R ft(will)s +2395 X(replace)s +2715 X(the)s +2870 X(existing)s +3220 X(draft)s +3441 X(with)s +3652 X(a)s +3729 X(blank)s +3984 X(skeleton;)s +4378 X(and)s +4555 X +0.0 10 10 f.B ft(list)s +4716 X +0.0 10 10 f.R ft(will)s +4905 X(display)s +514 X +3840 Y +874 X(the)s +1021 X(draft.)s +514 X +4080 Y +874 X(Only)s +1136 X(those)s +1409 X(addresses)s +1853 X(in)s +1993 X(``Resent\261To:'',)s +2672 X(``Resent\261cc:'',)s +3328 X(and)s +3533 X(``Resent\261Bcc:'')s +4231 X(will)s +4448 X(be)s +4603 X(sent.)s +4875 X(Also,)s +5150 X(a)s +514 X +4200 Y +874 X(``Resent\261Fcc: folder'')s +1801 X(will)s +1995 X(be)s +2127 X(honored)s +2491 X(\(see)s +2688 X +0.0 10 10 f.I ft(send)s +2921 X +0.0 10 10 f.R ft(\(1\)\).)s +3157 X(Note)s +3388 X(that)s +3575 X(with)s +3790 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +3997 X(the)s +4156 X(draft)s +4381 X(should)s +4685 X(contain)s +5016 X(only)s +514 X +4320 Y +874 X(``Resent\261xxx:'')s +1542 X(\256elds)s +1795 X(and)s +1975 X(no)s +2111 X(body.)s +2397 X(The)s +2588 X(headers)s +2928 X(and)s +3108 X(the)s +3266 X(body)s +3502 X(of)s +3621 X(the)s +3779 X(original)s +4126 X(message)s +4500 X(are)s +4657 X(copied)s +4959 X(to)s +5072 X(the)s +514 X +4440 Y +874 X(draft)s +1087 X(when)s +1328 X(the)s +1475 X(message)s +1838 X(is)s +1930 X(sent.)s +2166 X(Use)s +2346 X(care)s +2536 X(in)s +2639 X(constructing)s +3158 X(the)s +3305 X(headers)s +3634 X(for)s +3775 X(the)s +3922 X(redistribution.)s +514 X +4680 Y +874 X(If)s +965 X(the)s +1112 X(`\261annotate')s +1591 X(switch)s +1877 X(is)s +1969 X(given,)s +2241 X(the)s +2413 X(message)s +2776 X(being)s +3023 X(distributed)s +3476 X(will)s +3657 X(be)s +3776 X(annotated)s +4189 X(with)s +4392 X(the)s +4539 X(lines:)s +514 X +4920 Y +999 X(Resent: date)s +514 X +5040 Y +999 X(Resent: addrs)s +514 X +5280 Y +874 X(where)s +1150 X(each)s +1365 X(address)s +1697 X(list)s +1853 X(contains)s +2219 X(as)s +2335 X(many)s +2589 X(lines)s +2810 X(as)s +2925 X(required.)s +3339 X(This)s +3549 X(annotation)s +4003 X(will)s +4191 X(be)s +4317 X(done)s +4543 X(only)s +4753 X(if)s +4846 X(the)s +5000 X(mes-)s +514 X +5400 Y +874 X(sage)s +1077 X(is)s +1170 X(sent)s +1357 X(directly)s +1688 X(from)s +1908 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(.)s +2129 X(If)s +2221 X(the)s +2369 X(message)s +2733 X(is)s +2826 X(not)s +2980 X(sent)s +3167 X(immediately)s +3693 X(from)s +3913 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +4108 X(``comp)s +4421 X(\261use'')s +4695 X(may)s +4892 X(be)s +5011 X(used)s +514 X +5520 Y +874 X(to)s +986 X(re\261edit)s +1297 X(and)s +1475 X(send)s +1692 X(the)s +1848 X(constructed)s +2342 X(message,)s +2739 X(but)s +2901 X(the)s +3056 X(annotations)s +3550 X(won't)s +3816 X(take)s +4015 X(place.)s +4308 X(The)s +4496 X('\261inplace')s +4933 X(switch)s +514 X +5640 Y +874 X(causes)s +1159 X(annotation)s +1606 X(to)s +1709 X(be)s +1828 X(done)s +2047 X(in)s +2150 X(place)s +2385 X(in)s +2488 X(order)s +2723 X(to)s +2826 X(preserve)s +3188 X(links)s +3408 X(to)s +3511 X(the)s +3658 X(annotated)s +4071 X(message.)s +514 X +5880 Y +874 X(See)s +1053 X +0.0 10 10 f.I ft(comp)s +1319 X +0.0 10 10 f.R ft(\(1\))s +1470 X(for)s +1621 X(a)s +1700 X(description)s +2179 X(of)s +2297 X(the)s +2454 X(`\261editor')s +2838 X(and)s +3016 X(`\261noedit')s +3416 X(switches.)s +3844 X(Note)s +4072 X(that)s +4256 X(while)s +4512 X(in)s +4624 X(the)s +4780 X(editor,)s +5072 X(the)s +514 X +6000 Y +874 X(message)s +1250 X(being)s +1510 X(resent)s +1786 X(is)s +1891 X(available)s +2289 X(through)s +2637 X(a)s +2718 X(link)s +2911 X(named)s +3214 X(``@'')s +3475 X(\(assuming)s +3923 X(the)s +4082 X(default)s +4396 X +0.0 10 10 f.I ft(whatnowproc)s +4991 X +0.0 10 10 f.R ft(\).)s +5111 X(In)s +514 X +6120 Y +874 X(addition,)s +1259 X(the)s +1413 X(actual)s +1683 X(pathname)s +2103 X(of)s +2218 X(the)s +2372 X(message)s +2742 X(is)s +2841 X(stored)s +3117 X(in)s +3227 X(the)s +3381 X(envariable)s +3828 X +0.0 10 10 f.B ft($editalt)s +0.0 10 10 f.R ft(,)s +4207 X(and)s +4383 X(the)s +4537 X(pathname)s +4957 X(of)s +5072 X(the)s +514 X +6240 Y +874 X(folder)s +1137 X(containing)s +1584 X(the)s +1731 X(message)s +2094 X(is)s +2186 X(stored)s +2455 X(in)s +2558 X(the)s +2705 X(envariable)s +3145 X +0.0 10 10 f.B ft($mhfolder)s +0.0 10 10 f.R ft(.)s +514 X +6480 Y +874 X(The)s +1055 X(`\261draftfolder +folder')s +1942 X(and)s +2112 X(`\261draftmessage msg')s +2972 X(switches)s +3342 X(invoke)s +3640 X(the)s +3788 X +0.0 10 10 f.I ft(MH)s +3969 X +0.0 10 10 f.R ft(draft)s +4183 X(folder)s +4447 X(facility.)s +4805 X(This)s +5008 X(is)s +5100 X(an)s +514 X +6600 Y +874 X(advanced)s +1278 X(\(and)s +1483 X(highly)s +1767 X(useful\))s +2072 X(feature.)s +2426 X(Consult)s +2766 X(the)s +2916 X +0.0 10 10 f.B ft(Advanced)s +3372 X(Features)s +3771 X +0.0 10 10 f.R ft(section)s +4082 X(of)s +4193 X(the)s +4343 X +0.0 10 10 f.I ft(MH)s +4525 X +0.0 10 10 f.R ft(manual)s +4846 X(for)s +4989 X(more)s +514 X +6720 Y +874 X(information.)s +514 X +6960 Y +874 X(Upon)s +1126 X(exiting)s +1434 X(from)s +1658 X(the)s +1810 X(editor,)s +2098 X +0.0 10 10 f.I ft(dist)s +2272 X +0.0 10 10 f.R ft(will)s +2457 X(invoke)s +2758 X(the)s +2909 X +0.0 10 10 f.I ft(whatnow)s +3300 X +0.0 10 10 f.R ft(program.)s +3717 X(See)s +3890 X +0.0 10 10 f.I ft(whatnow)s +4302 X +0.0 10 10 f.R ft(\(1\))s +4447 X(for)s +4592 X(a)s +4665 X(discussion)s +5111 X(of)s +514 X +7080 Y +874 X(available)s +1263 X(options.)s +1637 X(The)s +1821 X(invocation)s +2272 X(of)s +2384 X(this)s +2558 X(program)s +2925 X(can)s +3092 X(be)s +3214 X(inhibited)s +3598 X(by)s +3726 X(using)s +3971 X(the)s +4121 X(`\261nowhatnowproc')s +4908 X(switch.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 23 24 + +514 X +600 Y(DIST\(1\))s +2771 X(-23-)s +4844 X(DIST\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(\(In)s +1028 X(truth)s +1255 X(of)s +1376 X(fact,)s +1588 X(it)s +1682 X(is)s +1787 X(the)s +1947 X +0.0 10 10 f.I ft(whatnow)s +2347 X +0.0 10 10 f.R ft(program)s +2723 X(which)s +3005 X(starts)s +3254 X(the)s +3414 X(initial)s +3686 X(edit.)s +3924 X(Hence,)s +4241 X(`\261nowhatnowproc')s +5038 X(will)s +514 X +1080 Y +874 X(prevent)s +1198 X(any)s +1367 X(edit)s +1542 X(from)s +1761 X(occurring.\))s +514 X +1242 Y +0.0 8 8 f.B ft(Files)s +514 X +1362 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/distcomps)s +2463 X(The)s +2643 X(message)s +3006 X(skeleton)s +514 X +1482 Y +874 X(or)s +982 X(/distcomps)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(skeleton)s +514 X +1602 Y +874 X($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +1722 Y +874 X(/draft)s +2463 X(The)s +2643 X(draft)s +2856 X(\256le)s +514 X +1926 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +2046 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +2166 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +2286 Y +874 X(Draft\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(draft\261folder)s +514 X +2406 Y +874 X(Editor:)s +1790 X(To)s +1926 X(override)s +2283 X(the)s +2430 X(default)s +2732 X(editor)s +514 X +2526 Y +874 X(\256leproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(re\256le)s +2492 X(the)s +2639 X(message)s +514 X +2646 Y +874 X(whatnowproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(ask)s +2420 X(the)s +2567 X(``What)s +2874 X(now?'')s +3181 X(questions)s +514 X +2850 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2970 Y +874 X +0.0 10 10 f.R ft(comp\(1\),)s +1262 X(forw\(1\),)s +1616 X(repl\(1\),)s +1937 X(send\(1\),)s +2286 X(whatnow\(1\))s +514 X +3174 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3294 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +3414 Y +874 X(`msg')s +1132 X(defaults)s +1473 X(to)s +1576 X(cur)s +514 X +3534 Y +874 X(`\261noannotate')s +514 X +3654 Y +874 X(`\261nodraftfolder')s +514 X +3774 Y +874 X(`\261noinplace')s +514 X +3978 Y +0.0 8 8 f.B ft(Context)s +514 X +4098 Y +874 X +0.0 10 10 f.R ft(If)s +966 X(a)s +1036 X(folder)s +1300 X(is)s +1393 X(given,)s +1666 X(it)s +1748 X(will)s +1930 X(become)s +2266 X(the)s +2414 X(current)s +2721 X(folder.)s +3034 X(The)s +3214 X(message)s +3577 X(distributed)s +4030 X(will)s +4211 X(become)s +4546 X(the)s +4693 X(current)s +5000 X(mes-)s +514 X +4218 Y +874 X(sage.)s +514 X +4422 Y +0.0 8 8 f.B ft(History)s +514 X +4542 Y +874 X +0.0 10 10 f.I ft(Dist)s +1067 X +0.0 10 10 f.R ft(originally)s +1482 X(used)s +1691 X(headers)s +2021 X(of)s +2130 X(the)s +2278 X(form)s +2498 X(``Distribute\261xxx:'')s +3284 X(instead)s +3593 X(of)s +3702 X(``Resent\261xxx:''.)s +4410 X(In)s +4518 X(order)s +4753 X(to)s +4856 X(conform)s +514 X +4662 Y +874 X(with)s +1091 X(the)s +1252 X(ARPA)s +1558 X(Internet)s +1906 X(standard,)s +2307 X(RFC\261822,)s +2760 X(the)s +2920 X(``Resent\261xxx:'')s +3590 X(form)s +3822 X(is)s +3927 X(now)s +4137 X(used.)s +4408 X +0.0 10 10 f.I ft(Dist)s +4613 X +0.0 10 10 f.R ft(will)s +4807 X(recognize)s +514 X +4782 Y +874 X(``Distribute\261xxx:'')s +1659 X(type)s +1856 X(headers)s +2185 X(and)s +2354 X(automatically)s +2923 X(convert)s +3247 X(them)s +3472 X(to)s +3575 X(``Resent\261xxx:''.)s +514 X +4986 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5106 Y +874 X +0.0 10 10 f.I ft(Dist)s +1076 X +0.0 10 10 f.R ft(does)s +1294 X(not)s +1457 X +0.0 10 10 f.I ft(rigorously)s +1909 X +0.0 10 10 f.R ft(check)s +2176 X(the)s +2333 X(message)s +2706 X(being)s +2963 X(distributed)s +3425 X(for)s +3575 X(adherence)s +4012 X(to)s +4124 X(the)s +4280 X(transport)s +4669 X(standard,)s +5066 X(but)s +514 X +5226 Y +874 X +0.0 10 10 f.I ft(post)s +1075 X +0.0 10 10 f.R ft(called)s +1347 X(by)s +1481 X +0.0 10 10 f.I ft(send)s +1698 X +0.0 10 10 f.R ft(does.)s +1965 X(The)s +2154 X +0.0 10 10 f.I ft(post)s +2355 X +0.0 10 10 f.R ft(program)s +2727 X(will)s +2917 X(balk)s +3123 X(\(and)s +3334 X(rightly)s +3635 X(so\))s +3791 X(at)s +3897 X(poorly)s +4192 X(formatted)s +4614 X(messages,)s +5050 X(and)s +514 X +5346 Y +874 X +0.0 10 10 f.I ft(dist)s +1044 X +0.0 10 10 f.R ft(won't)s +1302 X(correct)s +1603 X(things)s +1873 X(for)s +2014 X(you.)s +514 X +5586 Y +874 X(If)s +973 X +0.0 10 10 f.I ft(whatnowproc)s +1551 X +0.0 10 10 f.R ft(is)s +1651 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +2071 X(then)s +2276 X +0.0 10 10 f.I ft(dist)s +2454 X +0.0 10 10 f.R ft(uses)s +2659 X(a)s +2736 X(built\261in)s +3081 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +3501 X(it)s +3590 X(does)s +3806 X(not)s +3967 X(actually)s +4315 X(run)s +4480 X(the)s +4634 X +0.0 10 10 f.I ft(whatnow)s +5028 X +0.0 10 10 f.R ft(pro-)s +514 X +5706 Y +874 X(gram.)s +1154 X(Hence,)s +1458 X(if)s +1544 X(you)s +1719 X(de\256ne)s +1988 X(your)s +2196 X(own)s +2393 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(,)s +2988 X(don't)s +3224 X(call)s +3393 X(it)s +3474 X +0.0 10 10 f.I ft(whatnow)s +3861 X +0.0 10 10 f.R ft(since)s +4091 X +0.0 10 10 f.I ft(dist)s +4261 X +0.0 10 10 f.R ft(won't)s +4519 X(run)s +4677 X(it.)s +514 X +5946 Y +874 X(If)s +965 X(your)s +1173 X(current)s +1480 X(working)s +1838 X(directory)s +2223 X(is)s +2315 X(not)s +2468 X(writable,)s +2845 X(the)s +2992 X(link)s +3173 X(named)s +3464 X(``@'')s +3713 X(is)s +3805 X(not)s +3958 X(available.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 24 25 + +514 X +600 Y(FOLDER\(1\))s +2771 X(-24-)s +4661 X(FOLDER\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(folder,)s +1162 X(folders)s +1464 X(\261)s +1539 X(set/list)s +1826 X(current)s +2133 X(folder/message)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(folder)s +1137 X([+folder])s +1522 X([msg])s +1780 X([\261all])s +2021 X([\261create])s +2399 X([\261nocreate])s +2877 X([\261print])s +3207 X([\261fast])s +3492 X([\261nofast])s +3877 X([\261header])s +4283 X([\261noheader])s +4789 X([\261recurse])s +514 X +1560 Y +1234 X([\261norecurse])s +1762 X([\261total])s +2081 X([\261nototal])s +2500 X([\261list])s +2764 X([\261nolist])s +3128 X([\261push])s +3458 X([\261pop])s +3749 X([\261pack])s +4078 X([\261nopack])s +4507 X([\261verbose])s +514 X +1680 Y +1234 X([\261noverbose])s +1785 X([\261help])s +514 X +1920 Y +874 X(folders)s +514 X +2160 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2400 Y +874 X +0.0 10 10 f.R ft(Since)s +1125 X(the)s +1276 X +0.0 10 10 f.I ft(MH)s +1460 X +0.0 10 10 f.R ft(environment)s +1994 X(is)s +2090 X(the)s +2241 X(shell,)s +2484 X(it)s +2569 X(is)s +2665 X(easy)s +2871 X(to)s +2978 X(lose)s +3168 X(track)s +3396 X(of)s +3508 X(the)s +3658 X(current)s +3968 X(folder)s +4234 X(from)s +4456 X(day)s +4628 X(to)s +4734 X(day.)s +4956 X(When)s +514 X +2520 Y +874 X +0.0 10 10 f.I ft(folder)s +1139 X +0.0 10 10 f.R ft(is)s +1232 X(given)s +1480 X(the)s +1628 X(`\261print')s +1959 X(switch)s +2246 X(\(the)s +2427 X(default\),)s +2788 X +0.0 10 10 f.I ft(folder)s +3053 X +0.0 10 10 f.R ft(will)s +3235 X(list)s +3384 X(the)s +3532 X(current)s +3840 X(folder,)s +4129 X(the)s +4276 X(number)s +4606 X(of)s +4714 X(messages)s +5116 X(in)s +514 X +2640 Y +874 X(it,)s +983 X(the)s +1133 X(range)s +1382 X(of)s +1493 X(the)s +1643 X(messages)s +2048 X(\(low\261high\),)s +2545 X(and)s +2717 X(the)s +2867 X(current)s +3177 X(message)s +3543 X(within)s +3827 X(the)s +3977 X(folder,)s +4268 X(and)s +4440 X(will)s +4624 X(\257ag)s +4801 X(extra)s +5027 X(\256les)s +514 X +2760 Y +874 X(if)s +960 X(they)s +1157 X(exist.)s +1421 X(An)s +1568 X(example)s +1931 X(of)s +2039 X(this)s +2209 X(summary)s +2606 X(is:)s +514 X +3000 Y +1234 X(inbox+)s +1988 X(has)s +2196 X(16)s +2321 X(messages)s +2723 X(\()s +2856 X(3\261)s +3006 X(22\);)s +3192 X(cur=)s +3475 X(5.)s +514 X +3240 Y +874 X(If)s +979 X(a)s +1062 X(`+folder')s +1461 X(and/or)s +1755 X(`msg')s +2027 X(are)s +2187 X(speci\256ed,)s +2606 X(they)s +2817 X(will)s +3011 X(become)s +3359 X(the)s +3519 X(current)s +3839 X(folder)s +4115 X(and/or)s +4408 X(message.)s +4834 X(By)s +4989 X(com-)s +514 X +3360 Y +874 X(parison,)s +1229 X(when)s +1481 X(a)s +1561 X(`+folder')s +1957 X(argument)s +2370 X(is)s +2473 X(given,)s +2756 X(this)s +2937 X(corresponds)s +3455 X(to)s +3569 X(a)s +3648 X(``cd'')s +3909 X(operation)s +4321 X(in)s +4434 X(the)s +4591 X +0.0 10 10 f.I ft(shell)s +0.0 10 10 f.R ft(;)s +4843 X(when)s +5094 X(no)s +514 X +3480 Y +874 X(`+folder')s +1259 X(argument)s +1661 X(is)s +1753 X(given,)s +2025 X(this)s +2195 X(corresponds)s +2702 X(roughly)s +3038 X(to)s +3141 X(a)s +3210 X(``pwd'')s +3539 X(operation)s +3941 X(in)s +4044 X(the)s +4191 X +0.0 10 10 f.I ft(shell)s +0.0 10 10 f.R ft(.)s +514 X +3720 Y +874 X(If)s +977 X(the)s +1136 X(speci\256ed)s +1528 X(\(or)s +1681 X(default\))s +2028 X(folder)s +2303 X(doesn't)s +2634 X(exist,)s +2885 X(the)s +3044 X(default)s +3358 X(action)s +3639 X(is)s +3743 X(to)s +3858 X(query)s +4122 X(the)s +4280 X(user)s +4482 X(as)s +4601 X(to)s +4715 X(whether)s +5072 X(the)s +514 X +3840 Y +874 X(folder)s +1137 X(should)s +1429 X(be)s +1548 X(created;)s +1888 X(when)s +2129 X(standard)s +2492 X(input)s +2723 X(is)s +2815 X(not)s +2968 X(a)s +3037 X(tty,)s +3193 X(the)s +3340 X(answer)s +3647 X(to)s +3750 X(the)s +3897 X(query)s +4149 X(is)s +4241 X(assumed)s +4610 X(to)s +4713 X(be)s +4832 X(``yes''.)s +514 X +4080 Y +874 X(Specifying)s +1343 X(`\261create')s +1732 X(will)s +1924 X(cause)s +2181 X +0.0 10 10 f.I ft(folder)s +2456 X +0.0 10 10 f.R ft(to)s +2570 X(create)s +2843 X(new)s +3045 X(folders)s +3358 X(without)s +3700 X(any)s +3880 X(query.)s +4193 X(\(This)s +4440 X(is)s +4543 X(the)s +4701 X(easy)s +4914 X(way)s +5116 X(to)s +514 X +4200 Y +874 X(create)s +1150 X(an)s +1283 X(empty)s +1572 X(folder)s +1849 X(for)s +2004 X(use)s +2176 X(later.\))s +2450 X(Specifying)s +2922 X(`\261nocreate')s +3413 X(will)s +3607 X(cause)s +3866 X +0.0 10 10 f.I ft(folder)s +4143 X +0.0 10 10 f.R ft(to)s +4259 X(exit)s +4447 X(without)s +4791 X(creating)s +5150 X(a)s +514 X +4320 Y +874 X(non-existant)s +1393 X(folder.)s +514 X +4560 Y +694 X +0.0 8 8 f.B ft(Multiple)s +1006 X(Folders)s +514 X +4800 Y +874 X +0.0 10 10 f.R ft(Specifying)s +1339 X(`\261all')s +1587 X(will)s +1775 X(produce)s +2128 X(a)s +2204 X(summary)s +2608 X(line)s +2790 X(for)s +2938 X(each)s +3152 X(top-level)s +3539 X(folder)s +3809 X(in)s +3919 X(the)s +4073 X(user's)s +4342 X(MH)s +4534 X(directory,)s +4950 X(sorted)s +514 X +4920 Y +874 X(alphabetically.)s +1513 X(\(If)s +1640 X +0.0 10 10 f.I ft(folder)s +1907 X +0.0 10 10 f.R ft(is)s +2002 X(invoked)s +2352 X(by)s +2480 X(a)s +2552 X(name)s +2796 X(ending)s +3096 X(with)s +3302 X(``s'')s +3501 X(\(e.g.,)s +3731 X +0.0 10 10 f.I ft(folders)s +4059 X +0.0 10 10 f.R ft(\),)s +4145 X(`\261all')s +4389 X(is)s +4484 X(assumed\).)s +4939 X(Speci-)s +514 X +5040 Y +874 X(fying)s +1119 X(`\261recurse')s +1556 X(with)s +1768 X(`\261all')s +2018 X(will)s +2208 X(also)s +2403 X(produce)s +2758 X(a)s +2836 X(line)s +3020 X(for)s +3169 X(all)s +3302 X(sub-folders.)s +3834 X(These)s +4105 X(folders)s +4415 X(are)s +4569 X(all)s +4702 X(preceded)s +5094 X(by)s +514 X +5160 Y +874 X(the)s +1021 X(read\261only)s +1445 X(folders,)s +1772 X(which)s +2041 X(occur)s +2287 X(as)s +2395 X(``atr\261cur\261'')s +2884 X(entries)s +3175 X(in)s +3278 X(the)s +3425 X(user's)s +3688 X +0.0 10 10 f.I ft(MH)s +3868 X +0.0 10 10 f.R ft(context.)s +4237 X(For)s +4401 X(example,)s +514 X +5400 Y +1234 X(Folder)s +2138 X(#)s +2213 X(of)s +2321 X(messages)s +2723 X(\()s +2806 X(range)s +3077 X(\))s +3192 X(cur)s +3344 X(msg)s +3536 X(\(other)s +3799 X(\256les\))s +514 X +5520 Y +1234 X(/fsd/rs/m/tacc)s +1988 X(has)s +2196 X(35)s +2321 X(messages)s +2723 X(\()s +2856 X(1\261)s +3006 X(35\);)s +3192 X(cur=)s +3425 X(23.)s +514 X +5640 Y +1234 X(/rnd/phyl/Mail/EP)s +1988 X(has)s +2196 X(82)s +2321 X(messages)s +2723 X(\()s +2856 X(1\261108\);)s +3192 X(cur=)s +3425 X(82.)s +514 X +5760 Y +1234 X +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff +1988 X(has)s +2196 X(no)s +2321 X(messages.)s +514 X +5880 Y +1234 X(inbox+)s +1988 X(has)s +2196 X(16)s +2321 X(messages)s +2723 X(\()s +2856 X(3\261)s +3006 X(22\);)s +3192 X(cur=)s +3475 X(5.)s +514 X +6000 Y +1234 X(mh)s +1988 X(has)s +2196 X(76)s +2321 X(messages)s +2723 X(\()s +2856 X(1\261)s +3006 X(76\);)s +3192 X(cur=)s +3425 X(70.)s +514 X +6120 Y +1234 X(notes)s +1988 X(has)s +2246 X(2)s +2321 X(messages)s +2723 X(\()s +2856 X(1\261)s +3056 X(2\);)s +3192 X(cur=)s +3475 X(1.)s +514 X +6240 Y +1234 X(ucom)s +1988 X(has)s +2146 X(124)s +2321 X(messages)s +2723 X(\()s +2856 X(1\261124\);)s +3192 X(cur=)s +3475 X(6;)s +3578 X(\(others\).)s +514 X +6360 Y +1734 X(TOTAL=)s +2146 X(339)s +2321 X(messages)s +2723 X(in)s +2826 X(7)s +2901 X(folders)s +514 X +6600 Y +874 X(The)s +1059 X(``+'')s +1277 X(after)s +1489 X(inbox)s +1747 X(indicates)s +2131 X(that)s +2310 X(it)s +2395 X(is)s +2491 X(the)s +2642 X(current)s +2953 X(folder.)s +3270 X(The)s +3454 X(``\(others\)'')s +3925 X(indicates)s +4309 X(that)s +4488 X(the)s +4639 X(folder)s +4906 X(`ucom')s +514 X +6720 Y +874 X(has)s +1037 X(\256les)s +1234 X(which)s +1508 X(aren't)s +1769 X(messages.)s +2225 X(These)s +2492 X(\256les)s +2688 X(may)s +2889 X(either)s +3145 X(be)s +3268 X(sub\261folders,)s +3788 X(or)s +3900 X(\256les)s +4096 X(that)s +4275 X(don't)s +4515 X(belong)s +4816 X(under)s +5072 X(the)s +514 X +6840 Y +874 X(MH)s +1060 X(\256le)s +1213 X(naming)s +1538 X(scheme.)s +514 X +7080 Y +874 X(The)s +1058 X(header)s +1352 X(is)s +1448 X(output)s +1733 X(if)s +1823 X(either)s +2079 X(a)s +2152 X(`\261all')s +2397 X(or)s +2509 X(a)s +2582 X(`\261header')s +2992 X(switch)s +3282 X(is)s +3378 X(speci\256ed;)s +3790 X(it)s +3874 X(is)s +3969 X(suppressed)s +4435 X(by)s +4563 X(`\261noheader'.)s +5122 X(A)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 25 26 + +514 X +600 Y(FOLDER\(1\))s +2771 X(-25-)s +4661 X(FOLDER\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(`\261total')s +1193 X(switch)s +1479 X(will)s +1660 X(produce)s +2006 X(only)s +2209 X(the)s +2356 X(summary)s +2753 X(line.)s +514 X +1200 Y +874 X(If)s +982 X(`\261fast')s +1284 X(is)s +1393 X(given,)s +1682 X(only)s +1902 X(the)s +2066 X(folder)s +2346 X(name)s +2604 X(\(or)s +2762 X(names)s +3059 X(in)s +3179 X(the)s +3343 X(case)s +3556 X(of)s +3681 X(`\261all'\))s +3972 X(will)s +4170 X(be)s +4305 X(listed.)s +4613 X(\(This)s +4865 X(is)s +4973 X(faster)s +514 X +1320 Y +874 X(because)s +1214 X(the)s +1361 X(folders)s +1663 X(need)s +1876 X(not)s +2029 X(be)s +2148 X(read.\))s +514 X +1560 Y +874 X(If)s +971 X(a)s +1046 X(`+folder')s +1437 X(is)s +1535 X(given)s +1788 X(along)s +2041 X(with)s +2249 X(the)s +2401 X(`\261all')s +2647 X(switch,)s +2963 X +0.0 10 10 f.I ft(folder)s +3232 X +0.0 10 10 f.R ft(will,)s +3443 X(in)s +3551 X(addition)s +3909 X(to)s +4017 X(setting)s +4314 X(the)s +4466 X(current)s +4778 X(folder,)s +5071 X(list)s +514 X +1680 Y +874 X(the)s +1023 X(top\261level)s +1422 X(folders)s +1726 X(for)s +1869 X(the)s +2017 X(current)s +2325 X(folder)s +2589 X(\(with)s +2826 X(`\261norecurse'\))s +3388 X(or)s +3497 X(list)s +3646 X(all)s +3772 X(sub-folders)s +4247 X(under)s +4500 X(the)s +4648 X(current)s +4956 X(folder)s +514 X +1800 Y +874 X(recursively)s +1344 X(\(with)s +1582 X(`\261recurse'\).)s +2095 X(In)s +2205 X(this)s +2377 X(case,)s +2600 X(if)s +2688 X(a)s +2759 X(`msg')s +3019 X(is)s +3113 X(also)s +3301 X(supplied,)s +3691 X(it)s +3773 X(will)s +3955 X(become)s +4291 X(the)s +4439 X(current)s +4747 X(message)s +5111 X(of)s +514 X +1920 Y +874 X(`+folder'.)s +514 X +2160 Y +874 X(The)s +1076 X(`\261recurse')s +1526 X(switch)s +1834 X(lists)s +2042 X(each)s +2270 X(folder)s +2554 X(recursively,)s +3068 X(so)s +3203 X(use)s +3382 X(of)s +3511 X(this)s +3702 X(option)s +4004 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ectively)s +4471 X(defeats)s +4799 X(the)s +4967 X(speed)s +514 X +2280 Y +874 X(enhancement)s +1439 X(of)s +1561 X(the)s +1722 X(`\261fast')s +2021 X(option,)s +2341 X(since)s +2585 X(each)s +2806 X(folder)s +3083 X(must)s +3317 X(be)s +3450 X(searched)s +3836 X(for)s +3990 X(subfolders.)s +4494 X(Nevertheless,)s +5072 X(the)s +514 X +2400 Y +874 X(combination)s +1399 X(of)s +1507 X(these)s +1737 X(options)s +2057 X(is)s +2149 X(useful.)s +514 X +2760 Y +694 X +0.0 8 8 f.B ft(Compacting)s +1131 X(a)s +1191 X(Folder)s +514 X +3000 Y +874 X +0.0 10 10 f.R ft(The)s +1057 X(`\261pack')s +1389 X(switch)s +1678 X(will)s +1862 X(compress)s +2267 X(the)s +2417 X(message)s +2783 X(names)s +3066 X(in)s +3171 X(the)s +3320 X(designated)s +3774 X(folders,)s +4103 X(removing)s +4513 X(holes)s +4751 X(in)s +4856 X(message)s +514 X +3120 Y +874 X(numbering.)s +1398 X(The)s +1594 X(`\261verbose')s +2061 X(switch)s +2363 X(directs)s +2670 X +0.0 10 10 f.I ft(folder)s +2950 X +0.0 10 10 f.R ft(to)s +3069 X(tell)s +3238 X(the)s +3401 X(user)s +3608 X(the)s +3771 X(general)s +4105 X(actions)s +4429 X(that)s +4620 X(it)s +4717 X(is)s +4825 X(taking)s +5116 X(to)s +514 X +3240 Y +874 X(compress)s +1276 X(the)s +1423 X(folder.)s +514 X +3600 Y +694 X +0.0 8 8 f.B ft(The)s +848 X(Folder)s +1094 X(Stack)s +514 X +3840 Y +874 X +0.0 10 10 f.R ft(The)s +1062 X(`\261push')s +1400 X(switch)s +1694 X(directs)s +1993 X +0.0 10 10 f.I ft(folder)s +2265 X +0.0 10 10 f.R ft(to)s +2376 X(push)s +2598 X(the)s +2753 X(current)s +3068 X(folder)s +3339 X(onto)s +3550 X(the)s +3705 X +0.0 10 10 f.I ft(folder\261stack)s +0.0 10 10 f.R ft(,)s +4256 X(and)s +4432 X(make)s +4680 X(the)s +4834 X(`+folder')s +514 X +3960 Y +874 X(argument)s +1281 X(the)s +1433 X(current)s +1745 X(folder.)s +2063 X(If)s +2159 X(`+folder')s +2548 X(is)s +2644 X(not)s +2801 X(given,)s +3077 X(the)s +3228 X(current)s +3539 X(folder)s +3806 X(and)s +3979 X(the)s +4130 X(top)s +4287 X(of)s +4399 X(the)s +4550 X +0.0 10 10 f.I ft(folder\261stack)s +5073 X +0.0 10 10 f.R ft(are)s +514 X +4080 Y +874 X(exchanged.)s +1375 X(This)s +1578 X(corresponds)s +2085 X(to)s +2188 X(the)s +2335 X(``pushd'')s +2731 X(operation)s +3133 X(in)s +3236 X(the)s +3383 X +0.0 10 10 f.I ft(CShell)s +0.0 10 10 f.R ft(.)s +514 X +4320 Y +874 X(The)s +1056 X(`\261pop')s +1349 X(switch)s +1637 X(directs)s +1930 X +0.0 10 10 f.I ft(folder)s +2196 X +0.0 10 10 f.R ft(to)s +2301 X(discard)s +2615 X(the)s +2763 X(top)s +2917 X(of)s +3026 X(the)s +3174 X +0.0 10 10 f.I ft(folder\261stack)s +0.0 10 10 f.R ft(,)s +3719 X(after)s +3927 X(setting)s +4220 X(the)s +4368 X(current)s +4676 X(folder)s +4940 X(to)s +5044 X(that)s +514 X +4440 Y +874 X(value.)s +1175 X(No)s +1332 X(`+folder')s +1727 X(argument)s +2139 X(is)s +2241 X(allowed.)s +2642 X(This)s +2855 X(corresponds)s +3372 X(to)s +3485 X(the)s +3642 X(``popd'')s +4009 X(operation)s +4420 X(in)s +4532 X(the)s +4688 X +0.0 10 10 f.I ft(CShell)s +0.0 10 10 f.R ft(.)s +5039 X(The)s +514 X +4560 Y +874 X(`\261push')s +1205 X(switch)s +1492 X(and)s +1662 X(the)s +1810 X(`\261pop')s +2102 X(switch)s +2389 X(are)s +2536 X(mutually)s +2918 X(exclusive:)s +3349 X(the)s +3497 X(last)s +3662 X(occurrence)s +4124 X(of)s +4233 X(either)s +4485 X(one)s +4654 X(overrides)s +5050 X(any)s +514 X +4680 Y +874 X(previous)s +1243 X(occurrence)s +1704 X(of)s +1812 X(the)s +1959 X(other.)s +2239 X(Both)s +2459 X(of)s +2567 X(these)s +2797 X(switches)s +3166 X(also)s +3352 X(set)s +3488 X(`\261list')s +3752 X(by)s +3877 X(default.)s +514 X +4920 Y +874 X(The)s +1060 X(`\261list')s +1330 X(switch)s +1622 X(directs)s +1919 X +0.0 10 10 f.I ft(folder)s +2189 X +0.0 10 10 f.R ft(to)s +2298 X(list)s +2452 X(the)s +2605 X(contents)s +2968 X(of)s +3081 X(the)s +3233 X +0.0 10 10 f.I ft(folder\261stack)s +0.0 10 10 f.R ft(.)s +3807 X(No)s +3959 X(`+folder')s +4349 X(argument)s +4756 X(is)s +4853 X(allowed.)s +514 X +5040 Y +874 X(After)s +1118 X(a)s +1196 X(successful)s +1640 X(`\261push')s +1979 X(or)s +2096 X(`\261pop',)s +2421 X(the)s +2577 X(`\261list')s +2850 X(action)s +3128 X(is)s +3228 X(taken,)s +3502 X(unless)s +3785 X(a)s +3862 X(`\261nolist')s +4234 X(switch)s +4528 X(follows)s +4861 X(them)s +5094 X(on)s +514 X +5160 Y +874 X(the)s +1022 X(command)s +1442 X(line.)s +1668 X(This)s +1872 X(corresponds)s +2380 X(to)s +2484 X(the)s +2632 X(``dirs'')s +2940 X(operation)s +3343 X(in)s +3446 X(the)s +3593 X +0.0 10 10 f.I ft(CShell)s +0.0 10 10 f.R ft(.)s +3935 X(The)s +4115 X(`\261push',)s +4470 X(`\261pop',)s +4786 X(and)s +4955 X(`\261list')s +514 X +5280 Y +874 X(switches)s +1243 X(turn)s +1429 X(o)s +Cff +1565 X(`\261print'.)s +514 X +5442 Y +0.0 8 8 f.B ft(Files)s +514 X +5562 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5766 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +5886 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +6006 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +6126 Y +874 X(Folder\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(folder)s +514 X +6246 Y +874 X(Folder\261Stack:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(folder)s +2760 X(stack)s +514 X +6450 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +6570 Y +874 X +0.0 10 10 f.R ft(re\256le\(1\),)s +1245 X(mhpath\(1\))s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 26 27 + +514 X +600 Y(FOLDER\(1\))s +2771 X(-26-)s +4661 X(FOLDER\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Defaults)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +1200 Y +874 X(`msg')s +1132 X(defaults)s +1473 X(to)s +1576 X(none)s +514 X +1320 Y +874 X(`\261nofast')s +514 X +1440 Y +874 X(`\261noheader')s +514 X +1560 Y +874 X(`\261nototal')s +514 X +1680 Y +874 X(`\261nopack')s +514 X +1800 Y +874 X(`\261norecurse')s +514 X +1920 Y +874 X(`\261noverbose')s +514 X +2040 Y +874 X(`\261print')s +1204 X(is)s +1296 X(the)s +1443 X(default)s +1745 X(if)s +1831 X(no)s +1956 X(`\261list',)s +2245 X(`\261push',)s +2600 X(or)s +2708 X(`\261pop')s +2999 X(is)s +3091 X(speci\256ed)s +514 X +2160 Y +874 X(`\261list')s +1138 X(is)s +1230 X(the)s +1377 X(default)s +1679 X(if)s +1765 X(`\261push',)s +2120 X(or)s +2228 X(`\261pop')s +2519 X(is)s +2611 X(speci\256ed)s +514 X +2364 Y +0.0 8 8 f.B ft(Context)s +514 X +2484 Y +874 X +0.0 10 10 f.R ft(If)s +965 X(`+folder')s +1350 X(and/or)s +1630 X(`msg')s +1888 X(are)s +2034 X(given,)s +2306 X(they)s +2503 X(will)s +2684 X(become)s +3019 X(the)s +3166 X(current)s +3473 X(folder)s +3736 X(and/or)s +4016 X(message.)s +514 X +2688 Y +0.0 8 8 f.B ft(History)s +514 X +2808 Y +874 X +0.0 10 10 f.R ft(In)s +994 X(previous)s +1375 X(versions)s +1745 X(of)s +1865 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +2082 X(the)s +2241 X(`\261fast')s +2538 X(switch)s +2836 X(prevented)s +3266 X(context)s +3597 X(changes)s +3954 X(from)s +4184 X(occurring)s +4602 X(for)s +4754 X(the)s +4912 X(current)s +514 X +2928 Y +874 X(folder.)s +1190 X(This)s +1396 X(is)s +1491 X(no)s +1619 X(longer)s +1902 X(the)s +2052 X(case:)s +2279 X(if)s +2368 X(`+folder')s +2756 X(is)s +2851 X(given,)s +3126 X(then)s +3326 X +0.0 10 10 f.I ft(folder)s +3593 X +0.0 10 10 f.R ft(will)s +3777 X(always)s +4082 X(change)s +4392 X(the)s +4542 X(current)s +4851 X(folder)s +5116 X(to)s +514 X +3048 Y +874 X(that.)s +514 X +3252 Y +0.0 8 8 f.B ft(Bugs)s +514 X +3372 Y +874 X +0.0 10 10 f.R ft(`\261all')s +1115 X(forces)s +1383 X(`\261header')s +1789 X(and)s +1958 X(`\261total'.)s +514 X +3612 Y +874 X(There)s +1133 X(is)s +1227 X(no)s +1354 X(way)s +1547 X(to)s +1652 X(restore)s +1949 X(the)s +2097 X(default)s +2400 X(behavior)s +2775 X(\(to)s +2912 X(ask)s +3071 X(the)s +3219 X(user)s +3411 X(whether)s +3758 X(to)s +3862 X(create)s +4125 X(a)s +4195 X(non-existant)s +4715 X(folder\))s +5012 X(after)s +514 X +3732 Y +874 X(`\261create')s +1252 X(or)s +1360 X(`\261nocreate')s +1838 X(is)s +1930 X(given.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 27 28 + +514 X +600 Y(FORW\(1\))s +2771 X(-27-)s +4767 X(FORW\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(forw)s +1087 X(\261)s +1162 X(forward)s +1502 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(forw)s +1087 X([+folder])s +1472 X([msgs])s +1769 X([\261annotate])s +2248 X([\261noannotate])s +2827 X([\261draftfolder +folder])s +3713 X([\261draftmessage msg])s +514 X +1560 Y +1234 X([\261nodraftfolder])s +1901 X([\261editor editor])s +2533 X([\261noedit])s +2924 X([\261\256lter \256lter\256le])s +3596 X([\261form form\256le])s +4278 X([\261format])s +4685 X([\261noformat])s +514 X +1680 Y +1234 X([\261inplace])s +1663 X([\261noinplace])s +2192 X([\261mime])s +2561 X([\261nomime])s +3030 X([\261whatnowproc program])s +4077 X([\261nowhatnowproc])s +4861 X([\261help])s +514 X +1920 Y +874 X(forw)s +1087 X([+folder])s +1472 X([msgs])s +1769 X([\261digest list])s +2297 X([\261issue number])s +2968 X([\261volume number])s +3739 X([other switches for )s +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(])s +4754 X([\261help])s +514 X +2160 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2400 Y +874 X +0.0 10 10 f.I ft(Forw)s +1117 X +0.0 10 10 f.R ft(may)s +1315 X(be)s +1435 X(used)s +1644 X(to)s +1748 X(prepare)s +2072 X(a)s +2142 X(message)s +2506 X(containing)s +2954 X(other)s +3184 X(messages.)s +3636 X(It)s +3722 X(constructs)s +4152 X(the)s +4299 X(new)s +4490 X(message)s +4853 X(from)s +5072 X(the)s +514 X +2520 Y +874 X(components)s +1384 X(\256le)s +1539 X(or)s +1649 X(`\261form form\256le')s +2333 X(\(see)s +2520 X +0.0 10 10 f.I ft(comp)s +2786 X +0.0 10 10 f.R ft(\),)s +2871 X(with)s +3076 X(a)s +3147 X(body)s +3374 X(composed)s +3806 X(of)s +3916 X(the)s +4065 X(message\(s\))s +4535 X(to)s +4640 X(be)s +4760 X(forwarded.)s +514 X +2640 Y +874 X(An)s +1028 X(editor)s +1293 X(is)s +1392 X(invoked)s +1746 X(as)s +1860 X(in)s +1969 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2241 X(and)s +2416 X(after)s +2629 X(editing)s +2938 X(is)s +3036 X(complete,)s +3458 X(the)s +3611 X(user)s +3808 X(is)s +3906 X(prompted)s +4320 X(before)s +4605 X(the)s +4758 X(message)s +5127 X(is)s +514 X +2760 Y +874 X(sent.)s +514 X +3000 Y +874 X(The)s +1054 X(default)s +1356 X(message)s +1719 X(form)s +1938 X(contains)s +2296 X(the)s +2443 X(following)s +2857 X(elements:)s +514 X +3240 Y +1234 X(To:)s +514 X +3360 Y +1234 X(cc:)s +514 X +3480 Y +1234 X(Subject:)s +514 X +3600 Y +1234 X(--------)s +514 X +3840 Y +874 X(If)s +973 X(the)s +1128 X(\256le)s +1289 X(named)s +1588 X(``forwcomps'')s +2202 X(exists)s +2463 X(in)s +2574 X(the)s +2729 X(user's)s +3000 X(MH)s +3194 X(directory,)s +3611 X(it)s +3699 X(will)s +3887 X(be)s +4013 X(used)s +4228 X(instead)s +4543 X(of)s +4658 X(this)s +4835 X(form.)s +5111 X(In)s +514 X +3960 Y +874 X(either)s +1126 X(case,)s +1347 X(the)s +1494 X(\256le)s +1647 X(speci\256ed)s +2027 X(by)s +2152 X(`\261form form\256le')s +2834 X(will)s +3015 X(be)s +3134 X(used)s +3342 X(if)s +3428 X(given.)s +514 X +4200 Y +874 X(If)s +975 X(the)s +1131 X(draft)s +1353 X(already)s +1680 X(exists,)s +1967 X +0.0 10 10 f.I ft(forw)s +2185 X +0.0 10 10 f.R ft(will)s +2375 X(ask)s +2542 X(you)s +2726 X(as)s +2843 X(to)s +2955 X(the)s +3111 X(disposition)s +3585 X(of)s +3702 X(the)s +3858 X(draft.)s +4130 X(A)s +4236 X(reply)s +4475 X(of)s +4592 X +0.0 10 10 f.B ft(quit)s +4799 X +0.0 10 10 f.R ft(will)s +4989 X(abort)s +514 X +4320 Y +874 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +1121 X(leaving)s +1453 X(the)s +1613 X(draft)s +1839 X(intact;)s +2127 X +0.0 10 10 f.B ft(replace)s +2475 X +0.0 10 10 f.R ft(will)s +2669 X(replace)s +2994 X(the)s +3154 X(existing)s +3509 X(draft)s +3735 X(with)s +3951 X(a)s +4033 X(blank)s +4293 X(skeleton;)s +4692 X(and)s +4873 X +0.0 10 10 f.B ft(list)s +5038 X +0.0 10 10 f.R ft(will)s +514 X +4440 Y +874 X(display)s +1188 X(the)s +1335 X(draft.)s +514 X +4680 Y +874 X(If)s +965 X(the)s +1112 X(`\261annotate')s +1591 X(switch)s +1877 X(is)s +1969 X(given,)s +2241 X(each)s +2448 X(message)s +2811 X(being)s +3058 X(forwarded)s +3492 X(will)s +3673 X(be)s +3792 X(annotated)s +4205 X(with)s +4408 X(the)s +4555 X(lines)s +514 X +4920 Y +999 X(Forwarded: date)s +514 X +5040 Y +999 X(Forwarded: addrs)s +514 X +5280 Y +874 X(where)s +1150 X(each)s +1365 X(address)s +1697 X(list)s +1853 X(contains)s +2219 X(as)s +2335 X(many)s +2589 X(lines)s +2810 X(as)s +2925 X(required.)s +3339 X(This)s +3549 X(annotation)s +4003 X(will)s +4191 X(be)s +4317 X(done)s +4543 X(only)s +4753 X(if)s +4846 X(the)s +5000 X(mes-)s +514 X +5400 Y +874 X(sage)s +1085 X(is)s +1186 X(sent)s +1381 X(directly)s +1720 X(from)s +1948 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(.)s +2216 X(If)s +2316 X(the)s +2472 X(message)s +2843 X(is)s +2943 X(not)s +3104 X(sent)s +3298 X(immediately)s +3831 X(from)s +4058 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +4300 X(``comp \261use'')s +4895 X(may)s +5100 X(be)s +514 X +5520 Y +874 X(used)s +1096 X(to)s +1213 X(re\261edit)s +1529 X(and)s +1712 X(send)s +1934 X(the)s +2095 X(constructed)s +2594 X(message,)s +2996 X(but)s +3163 X(the)s +3324 X(annotations)s +3824 X(won't)s +4095 X(take)s +4299 X(place.)s +4597 X(The)s +4790 X('\261inplace')s +514 X +5640 Y +874 X(switch)s +1160 X(causes)s +1445 X(annotation)s +1892 X(to)s +1995 X(be)s +2114 X(done)s +2333 X(in)s +2436 X(place)s +2671 X(in)s +2774 X(order)s +3009 X(to)s +3112 X(preserve)s +3474 X(links)s +3694 X(to)s +3797 X(the)s +3944 X(annotated)s +4357 X(message.)s +514 X +5880 Y +874 X(See)s +1043 X +0.0 10 10 f.I ft(comp)s +1309 X +0.0 10 10 f.R ft(\(1\))s +1450 X(for)s +1591 X(a)s +1660 X(description)s +2129 X(of)s +2237 X(the)s +2384 X(`\261editor')s +2758 X(and)s +2927 X(`\261noedit')s +3318 X(switches.)s +514 X +6120 Y +874 X(Although)s +1282 X +0.0 10 10 f.I ft(forw)s +1496 X +0.0 10 10 f.R ft(uses)s +1698 X(the)s +1850 X(`\261form form\256le')s +2537 X(switch)s +2828 X(to)s +2936 X(direct)s +3193 X(it)s +3279 X(how)s +3481 X(to)s +3589 X(construct)s +3985 X(the)s +4137 X(beginning)s +4567 X(of)s +4679 X(the)s +4830 X(draft,)s +5072 X(the)s +514 X +6240 Y +874 X(`\261\256lter \256lter\256le',)s +1572 X(`\261format',)s +2005 X(and)s +2175 X(`\261noformat')s +2683 X(switches)s +3053 X(direct)s +3306 X +0.0 10 10 f.I ft(forw)s +3515 X +0.0 10 10 f.R ft(as)s +3623 X(to)s +3726 X(how)s +3923 X(each)s +4130 X(forwarded)s +4564 X(message)s +4927 X(should)s +514 X +6360 Y +874 X(be)s +1002 X(formatted)s +1424 X(in)s +1536 X(the)s +1692 X(body)s +1926 X(of)s +2043 X(the)s +2199 X(draft.)s +2471 X(If)s +2571 X(`\261noformat')s +3087 X(is)s +3188 X(speci\256ed,)s +3602 X(then)s +3808 X(each)s +4024 X(forwarded)s +4467 X(message)s +4838 X(is)s +4938 X(output)s +514 X +6480 Y +874 X(exactly)s +1193 X(as)s +1307 X(it)s +1394 X(appears.)s +1779 X(If)s +1876 X(`\261format')s +2289 X(or)s +2403 X(`\261\256lter \256lter\256le')s +3081 X(is)s +3179 X(speci\256ed,)s +3590 X(then)s +3793 X(each)s +4006 X(forwarded)s +4446 X(message)s +4814 X(is)s +4911 X(\256ltered)s +514 X +6600 Y +874 X(\(re\261formatted\))s +1489 X(prior)s +1717 X(to)s +1829 X(being)s +2085 X(output)s +2374 X(to)s +2485 X(the)s +2640 X(body)s +2873 X(of)s +2989 X(the)s +3144 X(draft.)s +3415 X(The)s +3603 X(\256lter)s +3825 X(\256le)s +3986 X(for)s +4135 X +0.0 10 10 f.I ft(forw)s +4352 X +0.0 10 10 f.R ft(should)s +4652 X(be)s +4779 X(a)s +4856 X(standard)s +514 X +6720 Y +874 X(form)s +1104 X(\256le)s +1268 X(for)s +1420 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(,)s +1631 X(as)s +1750 X +0.0 10 10 f.I ft(forw)s +1970 X +0.0 10 10 f.R ft(will)s +2161 X(invoke)s +2468 X +0.0 10 10 f.I ft(mhl)s +2653 X +0.0 10 10 f.R ft(to)s +2766 X(format)s +3067 X(the)s +3224 X(forwarded)s +3668 X(messages.)s +4130 X(The)s +4320 X(default)s +4632 X(message)s +5005 X(\256lter)s +514 X +6840 Y +874 X(\(what)s +1126 X(you)s +1301 X(get)s +1448 X(with)s +1651 X(`\261format'\))s +2091 X(is:)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 28 29 + +514 X +600 Y(FORW\(1\))s +2771 X(-28-)s +4767 X(FORW\(1\))s +514 X +960 Y +1234 X +0.0 10 10 f.R ft(width=80,over\257owtext=,over\257owo)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(set=10)s +514 X +1080 Y +1234 X(leftadjust,compress,compwidth=9)s +514 X +1200 Y +1234 X(Date:format\256eld="%<\(nodate{text}\)%{text}%|%\(tws{text}\)%>")s +514 X +1320 Y +1234 X(From:)s +514 X +1440 Y +1234 X(To:)s +514 X +1560 Y +1234 X(cc:)s +514 X +1680 Y +1234 X(Subject:)s +514 X +1800 Y +1234 X(:)s +514 X +1920 Y +1234 X(body:nocomponent,over\257owo)s +Cff(set=0,noleftadjust,nocompress)s +514 X +2160 Y +874 X(If)s +971 X(the)s +1123 X(\256le)s +1281 X(named)s +1577 X(``mhl.forward'')s +2235 X(exists)s +2493 X(in)s +2601 X(the)s +2753 X(user's)s +3021 X(MH)s +3212 X(directory,)s +3627 X(it)s +3713 X(will)s +3899 X(be)s +4023 X(used)s +4236 X(instead)s +4549 X(of)s +4662 X(this)s +4837 X(form.)s +5111 X(In)s +514 X +2280 Y +874 X(either)s +1139 X(case,)s +1373 X(the)s +1533 X(\256le)s +1699 X(speci\256ed)s +2092 X(by)s +2230 X(`\261\256lter \256lter\256le')s +2915 X(will)s +3109 X(be)s +3241 X(used)s +3461 X(if)s +3559 X(given.)s +3868 X(To)s +4016 X(summarize:)s +4519 X(`\261noformat')s +5038 X(will)s +514 X +2400 Y +874 X(reproduce)s +1303 X(each)s +1516 X(forwarded)s +1956 X(message)s +2325 X(exactly,)s +2669 X(`\261format')s +3082 X(will)s +3269 X(use)s +3433 X +0.0 10 10 f.I ft(mhl)s +3614 X +0.0 10 10 f.R ft(and)s +3788 X(a)s +3862 X(default)s +4169 X(\256lter\256le,)s +4541 X(``mhl.forward'',)s +514 X +2520 Y +874 X(to)s +990 X(format)s +1294 X(each)s +1514 X(forwarded)s +1961 X(message,)s +2362 X(and)s +2544 X(`\261\256lter \256lter\256le')s +3229 X(will)s +3422 X(use)s +3592 X(the)s +3751 X(named)s +4054 X(\256lter\256le)s +4408 X(to)s +4523 X(format)s +4826 X(each)s +5045 X(for-)s +514 X +2640 Y +874 X(warded)s +1192 X(message)s +1555 X(with)s +1758 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(.)s +514 X +2880 Y +874 X(Each)s +1103 X(forwarded)s +1542 X(message)s +1910 X(is)s +2007 X(separated)s +2413 X(with)s +2621 X(an)s +2745 X(encapsulation)s +3324 X(delimiter)s +3715 X(and)s +3889 X(dashes)s +4185 X(in)s +4293 X(the)s +4445 X(\256rst)s +4631 X(column)s +4960 X(of)s +5072 X(the)s +514 X +3000 Y +874 X(forwarded)s +1312 X(messages)s +1718 X(will)s +1903 X(be)s +2025 X(prepended)s +2468 X(with)s +2674 X(`\261 ')s +2843 X(so)s +2960 X(that)s +3138 X(when)s +3382 X(received,)s +3772 X(the)s +3922 X(message)s +4288 X(is)s +4383 X(suitable)s +4722 X(for)s +4866 X(bursting)s +514 X +3120 Y +874 X(by)s +999 X +0.0 10 10 f.I ft(burst)s +1255 X +0.0 10 10 f.R ft(\(1\).)s +1446 X(This)s +1649 X(follows)s +1974 X(the)s +2121 X(Internet)s +2456 X(RFC\261934)s +2871 X(guidelines.)s +514 X +3360 Y +874 X(For)s +1039 X(users)s +1270 X(of)s +1379 X +0.0 10 10 f.I ft(prompter)s +1801 X +0.0 10 10 f.R ft(\(1\),)s +1968 X(by)s +2094 X(specifying)s +2536 X(prompter's)s +3000 X(`-prepend')s +3445 X(switch)s +3731 X(in)s +3834 X(the)s +3981 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +4470 X(\256le,)s +4648 X(any)s +4817 X(commen-)s +514 X +3480 Y +874 X(tary)s +1054 X(text)s +1229 X(is)s +1321 X(entered)s +1639 X(before)s +1918 X(the)s +2065 X(forwarded)s +2499 X(messages.)s +2951 X(\(A)s +3081 X(major)s +3339 X(win!\))s +514 X +3720 Y +874 X(To)s +1023 X(use)s +1194 X(the)s +1354 X(MIME)s +1664 X(rules)s +1895 X(for)s +2048 X(encapsulation,)s +2659 X(specify)s +2984 X(the)s +3143 X(`\261mime')s +3524 X(switch.)s +3872 X(This)s +4087 X(directs)s +4390 X +0.0 10 10 f.I ft(forw)s +4611 X +0.0 10 10 f.R ft(to)s +4726 X(generate)s +5100 X(an)s +514 X +3840 Y +874 X +0.0 10 10 f.I ft(mhn)s +1079 X +0.0 10 10 f.R ft(composition)s +1607 X(\256le.)s +1818 X(Note)s +2045 X(that)s +2227 X(MH)s +2420 X(will)s +2608 X(not)s +2768 X(invoke)s +3072 X +0.0 10 10 f.I ft(mhn)s +3276 X +0.0 10 10 f.R ft(automatically,)s +3877 X(unless)s +4159 X(you)s +4366 X(add)s +4542 X(this)s +4719 X(line)s +4901 X(to)s +5011 X(your)s +514 X +3960 Y +874 X(.mh)s +Cru(pro\256le)s +1363 X(\256le:)s +514 X +4200 Y +1234 X(automhnproc:)s +1814 X(mhn)s +514 X +4440 Y +874 X(Otherwise,)s +1334 X(you)s +1509 X(must)s +1729 X(speci\256cally)s +2209 X(give)s +2406 X(the)s +2553 X(command)s +514 X +4680 Y +1234 X(What)s +1475 X(now?)s +1716 X(edit)s +1891 X(mhn)s +514 X +4920 Y +874 X(prior)s +1093 X(to)s +1196 X(sending)s +1532 X(the)s +1679 X(draft.)s +514 X +5160 Y +874 X(To)s +1017 X(automate)s +1415 X(this)s +1592 X(somewhat,)s +2054 X(create)s +2323 X(a)s +2399 X(link)s +2587 X(to)s +2697 X +0.0 10 10 f.I ft(prompter)s +3100 X +0.0 10 10 f.R ft(called)s +3369 X +0.0 10 10 f.I ft(rapid)s +3617 X +0.0 10 10 f.R ft(and)s +3792 X(put)s +3951 X(these)s +4187 X(lines)s +4407 X(in)s +4516 X(your)s +4730 X(.mh)s +Cru(pro\256le)s +514 X +5280 Y +874 X(\256le:)s +514 X +5520 Y +1234 X(forw:)s +1475 X(-editor)s +1766 X(rapid)s +1996 X(-mime)s +514 X +5640 Y +1234 X(rapid:)s +1492 X(-rapid)s +514 X +5760 Y +1234 X(rapid-next:)s +1697 X(mhn)s +514 X +6000 Y +874 X(Then,)s +1129 X(you)s +1304 X(can)s +1467 X(simply)s +1765 X(do:)s +514 X +6240 Y +1234 X +0.0 10 10 f.I ft(forw)s +1443 X(msgs)s +514 X +6360 Y +1234 X +0.0 10 10 f.R ft(To:)s +1398 X +0.0 10 10 f.I ft(mailbox)s +514 X +6480 Y +1234 X +0.0 10 10 f.R ft(cc:)s +514 X +6600 Y +1234 X(Subject:)s +1587 X +0.0 10 10 f.I ft(whatever)s +514 X +6840 Y +1234 X +0.0 10 10 f.R ft(--------Enter)s +1739 X(initial)s +1998 X(text)s +514 X +7080 Y +1234 X +0.0 10 10 f.I ft(blah,)s +1462 X(blah,)s +1690 X(blah.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 29 30 + +514 X +600 Y(FORW\(1\))s +2771 X(-29-)s +4767 X(FORW\(1\))s +514 X +960 Y +1234 X +0.0 10 10 f.R ft()s +514 X +1080 Y +1234 X(--------)s +514 X +1320 Y +1234 X(What)s +1475 X(now?)s +1716 X +0.0 10 10 f.I ft(edit)s +514 X +1440 Y +1234 X +0.0 10 10 f.R ft(What)s +1475 X(now?)s +1716 X +0.0 10 10 f.I ft(send)s +514 X +1680 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X +0.0 10 10 f.I ft(edit)s +1229 X +0.0 10 10 f.R ft(command)s +1648 X(invokes)s +1984 X +0.0 10 10 f.I ft(mhn)s +2181 X +0.0 10 10 f.R ft(automatically.)s +514 X +1920 Y +874 X(The)s +1055 X(`\261draftfolder +folder')s +1942 X(and)s +2112 X(`\261draftmessage msg')s +2972 X(switches)s +3342 X(invoke)s +3640 X(the)s +3788 X +0.0 10 10 f.I ft(MH)s +3969 X +0.0 10 10 f.R ft(draft)s +4183 X(folder)s +4447 X(facility.)s +4805 X(This)s +5008 X(is)s +5100 X(an)s +514 X +2040 Y +874 X(advanced)s +1278 X(\(and)s +1483 X(highly)s +1767 X(useful\))s +2072 X(feature.)s +2426 X(Consult)s +2766 X(the)s +2916 X +0.0 10 10 f.B ft(Advanced)s +3372 X(Features)s +3771 X +0.0 10 10 f.R ft(section)s +4082 X(of)s +4193 X(the)s +4343 X +0.0 10 10 f.I ft(MH)s +4525 X +0.0 10 10 f.R ft(manual)s +4846 X(for)s +4989 X(more)s +514 X +2160 Y +874 X(information.)s +514 X +2400 Y +874 X(Upon)s +1123 X(exiting)s +1428 X(from)s +1649 X(the)s +1798 X(editor,)s +2083 X +0.0 10 10 f.I ft(forw)s +2294 X +0.0 10 10 f.R ft(will)s +2477 X(invoke)s +2776 X(the)s +2925 X +0.0 10 10 f.I ft(whatnow)s +3314 X +0.0 10 10 f.R ft(program.)s +3729 X(See)s +3900 X +0.0 10 10 f.I ft(whatnow)s +4312 X +0.0 10 10 f.R ft(\(1\))s +4455 X(for)s +4598 X(a)s +4668 X(discussion)s +5111 X(of)s +514 X +2520 Y +874 X(available)s +1263 X(options.)s +1637 X(The)s +1821 X(invocation)s +2272 X(of)s +2384 X(this)s +2558 X(program)s +2925 X(can)s +3092 X(be)s +3214 X(inhibited)s +3598 X(by)s +3726 X(using)s +3971 X(the)s +4121 X(`\261nowhatnowproc')s +4908 X(switch.)s +514 X +2640 Y +874 X(\(In)s +1028 X(truth)s +1255 X(of)s +1376 X(fact,)s +1588 X(it)s +1682 X(is)s +1787 X(the)s +1947 X +0.0 10 10 f.I ft(whatnow)s +2347 X +0.0 10 10 f.R ft(program)s +2723 X(which)s +3005 X(starts)s +3254 X(the)s +3414 X(initial)s +3686 X(edit.)s +3924 X(Hence,)s +4241 X(`\261nowhatnowproc')s +5038 X(will)s +514 X +2760 Y +874 X(prevent)s +1198 X(any)s +1367 X(edit)s +1542 X(from)s +1761 X(occurring.\))s +514 X +3000 Y +874 X(The)s +1070 X(`\261digest list',)s +1639 X(`\261issue number',)s +2350 X(and)s +2534 X(`\261volume number')s +3320 X(switches)s +3704 X(implement)s +4172 X(a)s +4256 X(digest)s +4535 X(facility)s +4858 X(for)s +5014 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +514 X +3120 Y +874 X(Specifying)s +1332 X(these)s +1562 X(switches)s +1931 X(enables)s +2255 X(and/or)s +2535 X(overloads)s +2948 X(the)s +3095 X(following)s +3509 X(escapes:)s +514 X +3360 Y +874 X +0.0 10 10 f.I ft(Type)s +1391 X(Escape)s +1723 X(Returns)s +2084 X(Description)s +514 X +3480 Y +874 X(component)s +1391 X(digest)s +1723 X +0.0 10 10 f.R ft(string)s +2084 X(Argument)s +2514 X(to)s +2617 X(`\261digest')s +514 X +3600 Y +874 X +0.0 10 10 f.I ft(function)s +1391 X(cur)s +1723 X +0.0 10 10 f.R ft(integer)s +2084 X(Argument)s +2514 X(to)s +2617 X(`\261volume')s +514 X +3720 Y +874 X +0.0 10 10 f.I ft(function)s +1391 X(msg)s +1723 X +0.0 10 10 f.R ft(integer)s +2084 X(Argument)s +2514 X(to)s +2617 X(`\261issue')s +514 X +3960 Y +874 X(Consult)s +1211 X(the)s +1358 X +0.0 10 10 f.B ft(Advanced)s +1811 X(Features)s +2207 X +0.0 10 10 f.R ft(section)s +2515 X(of)s +2623 X(the)s +2770 X +0.0 10 10 f.I ft(MH)s +2950 X +0.0 10 10 f.R ft(User's)s +3235 X(Manual)s +3565 X(for)s +3706 X(more)s +3936 X(information)s +4433 X(on)s +4558 X(making)s +4883 X(digests.)s +514 X +4122 Y +0.0 8 8 f.B ft(Files)s +514 X +4242 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/forwcomps)s +2463 X(The)s +2643 X(message)s +3006 X(skeleton)s +514 X +4362 Y +874 X(or)s +982 X(/forwcomps)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(skeleton)s +514 X +4482 Y +874 X(/usr/bs/mh-beta/lib/digestcomps)s +2463 X(The)s +2643 X(message)s +3006 X(skeleton)s +3364 X(if)s +3450 X(`\261digest')s +3830 X(is)s +3922 X(given)s +514 X +4602 Y +874 X(or)s +982 X(/digestcomps)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(skeleton)s +514 X +4722 Y +874 X(/usr/bs/mh-beta/lib/mhl.forward)s +2463 X(The)s +2643 X(message)s +3006 X(\256lter)s +514 X +4842 Y +874 X(or)s +982 X(/mhl.forward)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(\256lter)s +514 X +4962 Y +874 X($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5082 Y +874 X(/draft)s +2463 X(The)s +2643 X(draft)s +2856 X(\256le)s +514 X +5286 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +5406 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +5526 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +5646 Y +874 X(Draft\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(draft\261folder)s +514 X +5766 Y +874 X(Editor:)s +1790 X(To)s +1926 X(override)s +2283 X(the)s +2430 X(default)s +2732 X(editor)s +514 X +5886 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(message)s +3519 X(\(draft\))s +514 X +6006 Y +874 X(\256leproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(re\256le)s +2492 X(the)s +2639 X(message)s +514 X +6126 Y +874 X(mhlproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(\256lter)s +2476 X(messages)s +2878 X(being)s +3125 X(forwarded)s +514 X +6246 Y +874 X(whatnowproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(ask)s +2420 X(the)s +2567 X(``What)s +2874 X(now?'')s +3181 X(questions)s +514 X +6450 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +6570 Y +874 X +0.0 10 10 f.I ft(Proposed)s +1282 X(Standard)s +1674 X(for)s +1816 X(Message)s +2190 X(Encapsulation)s +2793 X +0.0 10 10 f.R ft(\(aka)s +2989 X(RFC\261934\),)s +514 X +6690 Y +874 X(comp\(1\),)s +1262 X(dist\(1\),)s +1573 X(repl\(1\),)s +1894 X(send\(1\),)s +2243 X(whatnow\(1\),)s +2775 X(mh\261format\(5\))s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 30 31 + +514 X +600 Y(FORW\(1\))s +2771 X(-30-)s +4767 X(FORW\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Defaults)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +1200 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +514 X +1320 Y +874 X(`\261noannotate')s +514 X +1440 Y +874 X(`\261nodraftfolder')s +514 X +1560 Y +874 X(`\261noformat')s +514 X +1680 Y +874 X(`\261noinplace')s +514 X +1800 Y +874 X(`\261nomime')s +514 X +2004 Y +0.0 8 8 f.B ft(Context)s +514 X +2124 Y +874 X +0.0 10 10 f.R ft(If)s +969 X(a)s +1042 X(folder)s +1309 X(is)s +1405 X(given,)s +1681 X(it)s +1766 X(will)s +1951 X(become)s +2290 X(the)s +2441 X(current)s +2752 X(folder.)s +3069 X(The)s +3253 X(\256rst)s +3437 X(message)s +3803 X(forwarded)s +4240 X(will)s +4424 X(become)s +4762 X(the)s +4912 X(current)s +514 X +2244 Y +874 X(message.)s +514 X +2448 Y +0.0 8 8 f.B ft(Bugs)s +514 X +2568 Y +874 X +0.0 10 10 f.R ft(If)s +971 X +0.0 10 10 f.I ft(whatnowproc)s +1547 X +0.0 10 10 f.R ft(is)s +1645 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +2063 X(then)s +2266 X +0.0 10 10 f.I ft(forw)s +2481 X +0.0 10 10 f.R ft(uses)s +2684 X(a)s +2759 X(built\261in)s +3101 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +3518 X(it)s +3604 X(does)s +3817 X(not)s +3975 X(actually)s +4321 X(run)s +4484 X(the)s +4636 X +0.0 10 10 f.I ft(whatnow)s +5028 X +0.0 10 10 f.R ft(pro-)s +514 X +2688 Y +874 X(gram.)s +1154 X(Hence,)s +1458 X(if)s +1544 X(you)s +1719 X(de\256ne)s +1988 X(your)s +2196 X(own)s +2393 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(,)s +2988 X(don't)s +3224 X(call)s +3393 X(it)s +3474 X +0.0 10 10 f.I ft(whatnow)s +3861 X +0.0 10 10 f.R ft(since)s +4091 X +0.0 10 10 f.I ft(forw)s +4300 X +0.0 10 10 f.R ft(won't)s +4558 X(run)s +4716 X(it.)s +514 X +2928 Y +874 X(When)s +1144 X +0.0 10 10 f.I ft(forw)s +1360 X +0.0 10 10 f.R ft(is)s +1458 X(told)s +1645 X(to)s +1754 X(annotate)s +2123 X(the)s +2276 X(messages)s +2684 X(it)s +2771 X(forwards,)s +3181 X(it)s +3268 X(doesn't)s +3593 X(actually)s +3940 X(annotate)s +4309 X(them)s +4540 X(until)s +4755 X(the)s +4908 X(draft)s +5127 X(is)s +514 X +3048 Y +874 X(successfully)s +1402 X(sent.)s +1653 X(If)s +1759 X(from)s +1993 X(the)s +2154 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(,)s +2763 X(you)s +2952 X +0.0 10 10 f.I ft(push)s +3180 X +0.0 10 10 f.R ft(instead)s +3502 X(of)s +3624 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(,)s +3871 X(it's)s +4038 X(possible)s +4405 X(to)s +4522 X(confuse)s +4871 X +0.0 10 10 f.I ft(forw)s +5094 X +0.0 10 10 f.R ft(by)s +514 X +3168 Y +874 X(re\261ordering)s +1373 X(the)s +1529 X(\256le)s +1691 X(\(e.g.,)s +1927 X(by)s +2061 X(using)s +2312 X(`folder)s +2633 X(\261pack'\))s +2971 X(before)s +3259 X(the)s +3415 X(message)s +3787 X(is)s +3888 X(successfully)s +4410 X(sent.)s +4655 X +0.0 10 10 f.I ft(Dist)s +4856 X +0.0 10 10 f.R ft(and)s +5033 X +0.0 10 10 f.I ft(repl)s +514 X +3288 Y +874 X +0.0 10 10 f.R ft(don't)s +1110 X(have)s +1323 X(this)s +1493 X(problem.)s +514 X +3528 Y +874 X(To)s +1018 X(avoid)s +1272 X(prepending)s +1753 X(the)s +1907 X(leading)s +2233 X(dash)s +2448 X(characters)s +2883 X(in)s +2993 X(forwarded)s +3434 X(messages,)s +3868 X(there)s +4099 X(is)s +4198 X(a)s +4274 X(`\261nodashmunging')s +5061 X(op-)s +514 X +3648 Y +874 X(tion.)s +1105 X(See)s +1274 X(the)s +1421 X(``Hidden)s +1806 X(Features'')s +2235 X(section)s +2543 X(of)s +2651 X(the)s +2798 X +0.0 10 10 f.I ft(MH)s +2978 X(Administrator's)s +3637 X(Guide)s +3906 X +0.0 10 10 f.R ft(for)s +4047 X(more)s +4277 X(details.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 31 32 + +514 X +600 Y(INC\(1\))s +2771 X(-31-)s +4895 X(INC\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(inc)s +1021 X(\261)s +1096 X(incorporate)s +1575 X(new)s +1766 X(mail)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(inc)s +1021 X([+folder])s +1406 X([\261audit audit\261\256le])s +2150 X([\261noaudit])s +2591 X([\261changecur])s +3141 X([\261nochangecur])s +3791 X([\261form format\256le])s +4545 X([\261format string])s +514 X +1560 Y +1234 X([\261\256le name])s +1744 X([\261silent])s +2102 X([\261nosilent])s +2560 X([\261truncate])s +3022 X([\261notruncate])s +3584 X([\261width columns])s +4317 X([\261host host])s +514 X +1680 Y +1234 X([\261user user])s +1732 X([\261apop])s +2067 X([\261noapop])s +2502 X([\261rpop])s +2826 X([\261norpop])s +3250 X([\261pack \256le])s +3732 X([\261nopack])s +4161 X([\261help])s +514 X +1920 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(Inc)s +1031 X +0.0 10 10 f.R ft(incorporates)s +1554 X(mail)s +1762 X(from)s +1986 X(the)s +2138 X(user's)s +2406 X(incoming)s +2814 X(mail)s +3022 X(drop)s +3235 X(into)s +3421 X(an)s +3545 X +0.0 10 10 f.I ft(MH)s +3730 X +0.0 10 10 f.R ft(folder.)s +4048 X(If)s +4144 X(`+folder')s +4534 X(isn't)s +4741 X(speci\256ed,)s +5150 X(a)s +514 X +2280 Y +874 X(folder)s +1150 X(in)s +1266 X(the)s +1426 X(user's)s +1702 X +0.0 10 10 f.I ft(MH)s +1895 X +0.0 10 10 f.R ft(directory)s +2293 X(will)s +2487 X(be)s +2619 X(used,)s +2865 X(either)s +3130 X(that)s +3318 X(speci\256ed)s +3711 X(by)s +3849 X(the)s +4009 X(``Inbox:'')s +4440 X(entry)s +4682 X(in)s +4797 X(the)s +4956 X(user's)s +514 X +2400 Y +874 X(pro\256le,)s +1188 X(or)s +1299 X(the)s +1449 X(folder)s +1715 X(named)s +2008 X(``inbox''.)s +2445 X(The)s +2627 X(new)s +2820 X(messages)s +3224 X(being)s +3473 X(incorporated)s +4004 X(are)s +4152 X(assigned)s +4523 X(numbers)s +4894 X(starting)s +514 X +2520 Y +874 X(with)s +1079 X(the)s +1228 X(next)s +1427 X(highest)s +1743 X(number)s +2075 X(in)s +2180 X(the)s +2329 X(folder.)s +2644 X(If)s +2737 X(the)s +2886 X(speci\256ed)s +3268 X(\(or)s +3411 X(default\))s +3748 X(folder)s +4013 X(doesn't)s +4334 X(exist,)s +4575 X(the)s +4724 X(user)s +4917 X(will)s +5100 X(be)s +514 X +2640 Y +874 X(queried)s +1198 X(prior)s +1417 X(to)s +1520 X(its)s +1640 X(creation.)s +2036 X(As)s +2172 X(the)s +2319 X(messages)s +2721 X(are)s +2867 X(processed,)s +3310 X(a)s +3379 X +0.0 10 10 f.I ft(scan)s +3587 X +0.0 10 10 f.R ft(listing)s +3863 X(of)s +3971 X(the)s +4118 X(new)s +4309 X(mail)s +4512 X(is)s +4604 X(produced.)s +514 X +2880 Y +874 X(If)s +976 X(the)s +1134 X(user's)s +1408 X(pro\256le)s +1705 X(contains)s +2074 X(a)s +2154 X(``Msg\261Protect:)s +2795 X(nnn'')s +3047 X(entry,)s +3313 X(it)s +3405 X(will)s +3596 X(be)s +3725 X(used)s +3943 X(as)s +4061 X(the)s +4218 X(protection)s +4658 X(on)s +4793 X(the)s +4950 X(newly)s +514 X +3000 Y +874 X(created)s +1191 X(messages,)s +1623 X(otherwise)s +2041 X(the)s +2193 X +0.0 10 10 f.I ft(MH)s +2378 X +0.0 10 10 f.R ft(default)s +2685 X(of)s +2798 X(0644)s +3028 X(will)s +3214 X(be)s +3338 X(used.)s +3601 X(During)s +3914 X(all)s +4044 X(operations)s +4489 X(on)s +4618 X(messages,)s +5049 X(this)s +514 X +3120 Y +874 X(initially)s +1217 X(assigned)s +1592 X(protection)s +2028 X(will)s +2215 X(be)s +2340 X(preserved)s +2758 X(for)s +2905 X(each)s +3118 X(message,)s +3512 X(so)s +3632 X +0.0 10 10 f.I ft(chmod)s +0.0 10 10 f.R ft(\(1\))s +4045 X(may)s +4248 X(be)s +4373 X(used)s +4587 X(to)s +4696 X(set)s +4838 X(a)s +4912 X(protec-)s +514 X +3240 Y +874 X(tion)s +1055 X(on)s +1180 X(an)s +1299 X(individual)s +1730 X(message,)s +2118 X(and)s +2287 X(its)s +2407 X(protection)s +2837 X(will)s +3018 X(be)s +3137 X(preserved)s +3549 X(thereafter.)s +514 X +3480 Y +874 X(If)s +969 X(the)s +1120 X(switch)s +1410 X(`\261audit audit\261\256le')s +2158 X(is)s +2254 X(speci\256ed)s +2638 X(\(usually)s +2989 X(as)s +3101 X(a)s +3174 X(default)s +3480 X(switch)s +3769 X(in)s +3875 X(the)s +4025 X(pro\256le\),)s +4372 X(then)s +4572 X +0.0 10 10 f.I ft(inc)s +4722 X +0.0 10 10 f.R ft(will)s +4906 X(append)s +514 X +3600 Y +874 X(a)s +943 X(header)s +1233 X(line)s +1408 X(and)s +1577 X(a)s +1646 X(line)s +1821 X(per)s +1973 X(message)s +2336 X(to)s +2439 X(the)s +2586 X(end)s +2755 X(of)s +2863 X(the)s +3010 X(speci\256ed)s +3390 X(audit\261\256le)s +3793 X(with)s +3996 X(the)s +4143 X(format:)s +514 X +3840 Y +1234 X(<)s +1262 X()s +1468 X(>)s +1549 X(date)s +514 X +3960 Y +1594 X()s +514 X +4080 Y +1594 X()s +514 X +4200 Y +2314 X()s +514 X +4440 Y +874 X(This)s +1081 X(is)s +1177 X(useful)s +1450 X(for)s +1595 X(keeping)s +1940 X(track)s +2168 X(of)s +2280 X(volume)s +2609 X(and)s +2782 X(source)s +3071 X(of)s +3182 X(incoming)s +3588 X(mail.)s +3844 X(Eventually,)s +4330 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +4544 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +4781 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +5050 X(and)s +514 X +4560 Y +874 X +0.0 10 10 f.I ft(dist)s +1050 X +0.0 10 10 f.R ft(may)s +1253 X(also)s +1445 X(produce)s +1797 X(audits)s +2067 X(to)s +2176 X(this)s +2352 X(\(or)s +2499 X(another\))s +2862 X(\256le,)s +3046 X(perhaps)s +3387 X(with)s +3596 X(``Message\261Id:'')s +4269 X(information)s +4772 X(to)s +4881 X(keep)s +5100 X(an)s +514 X +4680 Y +874 X(exact)s +1134 X(correspondence)s +1809 X(history.)s +2187 X(``Audit\261\256le'')s +2774 X(will)s +2979 X(be)s +3122 X(in)s +3249 X(the)s +3420 X(user's)s +3707 X(MH)s +3917 X(directory)s +4326 X(unless)s +4625 X(a)s +4718 X(full)s +4906 X(path)s +5127 X(is)s +514 X +4800 Y +874 X(speci\256ed.)s +514 X +5040 Y +874 X +0.0 10 10 f.I ft(Inc)s +1033 X +0.0 10 10 f.R ft(will)s +1221 X(incorporate)s +1707 X(even)s +1927 X(improperly)s +2403 X(formatted)s +2823 X(messages)s +3232 X(into)s +3420 X(the)s +3574 X(user's)s +3844 X(MH)s +4037 X(folder,)s +4332 X(inserting)s +4714 X(a)s +4790 X(blank)s +5044 X(line)s +514 X +5160 Y +874 X(prior)s +1093 X(to)s +1196 X(the)s +1343 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ending)s +1751 X(component)s +2220 X(and)s +2389 X(printing)s +2731 X(a)s +2800 X(comment)s +3197 X(identifying)s +3661 X(the)s +3808 X(bad)s +3977 X(message.)s +514 X +5400 Y +874 X(In)s +982 X(all)s +1107 X(cases,)s +1367 X(the)s +1514 X(user's)s +1777 X(mail)s +1980 X(drop)s +2188 X(will)s +2369 X(be)s +2488 X(zeroed,)s +2803 X(unless)s +3078 X(the)s +3225 X(`\261notruncate')s +3787 X(switch)s +4073 X(is)s +4165 X(given.)s +514 X +5640 Y +874 X(If)s +978 X(the)s +1138 X(pro\256le)s +1437 X(entry)s +1680 X(``Unseen\261Sequence'')s +2581 X(is)s +2686 X(present)s +3012 X(and)s +3194 X(non\261empty,)s +3707 X(then)s +3917 X +0.0 10 10 f.I ft(inc)s +4077 X +0.0 10 10 f.R ft(will)s +4271 X(add)s +4452 X(each)s +4671 X(of)s +4791 X(the)s +4950 X(newly)s +514 X +5760 Y +874 X(incorporated)s +1456 X(messages)s +1911 X(to)s +2067 X(each)s +2327 X(sequence)s +2770 X(named)s +3114 X(by)s +3292 X(the)s +3492 X(pro\256le)s +3831 X(entry.)s +4163 X(This)s +4418 X(is)s +4562 X(similar)s +4917 X(to)s +5072 X(the)s +514 X +5880 Y +874 X(``Previous\261Sequence'')s +1831 X(pro\256le)s +2135 X(entry)s +2383 X(supported)s +2820 X(by)s +2962 X(all)s +3104 X +0.0 10 10 f.I ft(MH)s +3301 X +0.0 10 10 f.R ft(commands)s +3776 X(which)s +4062 X(take)s +4270 X(`msgs')s +4584 X(or)s +4709 X(`msg')s +4984 X(argu-)s +514 X +6000 Y +874 X(ments.)s +1188 X(Note)s +1407 X(that)s +1582 X +0.0 10 10 f.I ft(inc)s +1729 X +0.0 10 10 f.R ft(will)s +1910 X(not)s +2063 X(zero)s +2259 X(each)s +2466 X(sequence)s +2856 X(prior)s +3075 X(to)s +3178 X(adding)s +3475 X(messages.)s +514 X +6240 Y +874 X(The)s +1057 X(interpretation)s +1623 X(of)s +1734 X(the)s +1884 X(`\261form format\256le',)s +2666 X(`\261format string',)s +3354 X(and)s +3526 X(`\261width columns')s +4262 X(switches)s +4634 X(is)s +4729 X(the)s +4879 X(same)s +5111 X(as)s +514 X +6360 Y +874 X(in)s +977 X +0.0 10 10 f.I ft(scan)s +1210 X +0.0 10 10 f.R ft(\(1\).)s +514 X +6600 Y +874 X(By)s +1016 X(using)s +1258 X(the)s +1405 X(`\261\256le name')s +1915 X(switch,)s +2226 X(one)s +2395 X(can)s +2558 X(direct)s +2810 X +0.0 10 10 f.I ft(inc)s +2957 X +0.0 10 10 f.R ft(to)s +3060 X(incorporate)s +3539 X(messages)s +3941 X(from)s +4160 X(a)s +4229 X(\256le)s +4382 X(other)s +4612 X(than)s +4809 X(the)s +4956 X(user's)s +514 X +6720 Y +874 X(maildrop.)s +1310 X(Note)s +1529 X(that)s +1704 X(the)s +1851 X(name)s +2092 X(\256le)s +2245 X(will)s +2426 X(NOT)s +2656 X(be)s +2775 X(zeroed,)s +3090 X(unless)s +3365 X(the)s +3512 X(`\261truncate')s +3974 X(switch)s +4260 X(is)s +4352 X(given.)s +514 X +6960 Y +874 X(If)s +970 X(the)s +1122 X(envariable)s +1567 X +0.0 10 10 f.B ft($MAILDROP)s +2202 X +0.0 10 10 f.R ft(is)s +2299 X(set,)s +2465 X(then)s +2667 X +0.0 10 10 f.I ft(inc)s +2819 X +0.0 10 10 f.R ft(uses)s +3021 X(it)s +3107 X(as)s +3220 X(the)s +3372 X(location)s +3724 X(of)s +3837 X(the)s +3989 X(user's)s +4257 X(maildrop)s +4648 X(instead)s +4960 X(of)s +5072 X(the)s +514 X +7080 Y +874 X(default)s +1191 X(\(the)s +1386 X(`-\256le name')s +1894 X(switch)s +2195 X(still)s +2386 X(overrides)s +2797 X(this,)s +3007 X(however\).)s +3473 X(If)s +3579 X(this)s +3764 X(envariable)s +4218 X(is)s +4324 X(not)s +4491 X(set,)s +4666 X(then)s +4877 X +0.0 10 10 f.I ft(inc)s +5038 X +0.0 10 10 f.R ft(will)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 32 33 + +514 X +600 Y(INC\(1\))s +2771 X(-32-)s +4895 X(INC\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(consult)s +1202 X(the)s +1363 X(pro\256le)s +1663 X(entry)s +1906 X(``MailDrop'')s +2470 X(for)s +2624 X(this)s +2807 X(information.)s +3367 X(If)s +3471 X(the)s +3631 X(value)s +3885 X(found)s +4156 X(is)s +4261 X(not)s +4427 X(absolute,)s +4823 X(then)s +5033 X(it)s +5127 X(is)s +514 X +1080 Y +874 X(interpreted)s +1336 X(relative)s +1665 X(to)s +1773 X(the)s +1925 X(user's)s +2193 X +0.0 10 10 f.I ft(MH)s +2378 X +0.0 10 10 f.R ft(directory.)s +2818 X(If)s +2914 X(the)s +3066 X(value)s +3312 X(is)s +3409 X(not)s +3567 X(found,)s +3854 X(then)s +4055 X +0.0 10 10 f.I ft(inc)s +4206 X +0.0 10 10 f.R ft(will)s +4391 X(look)s +4598 X(in)s +4705 X(the)s +4856 X(standard)s +514 X +1200 Y +874 X(system)s +1177 X(location)s +1524 X(for)s +1665 X(the)s +1812 X(user's)s +2075 X(maildrop.)s +514 X +1440 Y +874 X(The)s +1057 X(`\261silent')s +1418 X(switch)s +1707 X(directs)s +2001 X +0.0 10 10 f.I ft(inc)s +2151 X +0.0 10 10 f.R ft(to)s +2257 X(be)s +2378 X(quiet)s +2605 X(and)s +2776 X(not)s +2931 X(ask)s +3091 X(any)s +3262 X(questions)s +3667 X(at)s +3766 X(all.)s +3943 X(This)s +4148 X(is)s +4242 X(useful)s +4513 X(for)s +4656 X(putting)s +4967 X +0.0 10 10 f.I ft(inc)s +5116 X +0.0 10 10 f.R ft(in)s +514 X +1560 Y +874 X(the)s +1021 X(background)s +1517 X(and)s +1686 X(going)s +1939 X(on)s +2064 X(to)s +2167 X(other)s +2397 X(things.)s +514 X +1800 Y +874 X(If)s +969 X(the)s +1120 X(local)s +1343 X(host)s +1539 X(is)s +1635 X(con\256gured)s +2091 X(as)s +2203 X(a)s +2276 X(POP)s +2489 X(client,)s +2765 X(or)s +2877 X(if)s +2967 X(the)s +3118 X(`\261host host')s +3622 X(switch)s +3912 X(is)s +4008 X(given,)s +4283 X(then)s +4483 X +0.0 10 10 f.I ft(inc)s +4633 X +0.0 10 10 f.R ft(will)s +4817 X(query)s +5072 X(the)s +514 X +1920 Y +874 X(POP)s +1091 X(service)s +1406 X(host)s +1606 X(as)s +1722 X(to)s +1833 X(the)s +1988 X(status)s +2249 X(of)s +2365 X(mail)s +2576 X(waiting.)s +2959 X(If)s +3058 X(the)s +3213 X(`\261user user')s +3719 X(switch)s +4013 X(is)s +4113 X(not)s +4274 X(given,)s +4554 X(then)s +4758 X(the)s +4912 X(current)s +514 X +2040 Y +874 X(username)s +1295 X(is)s +1401 X(used.)s +1673 X(Normally,)s +2120 X +0.0 10 10 f.I ft(inc)s +2281 X +0.0 10 10 f.R ft(will)s +2476 X(prompt)s +2804 X(for)s +2959 X(a)s +3041 X(password)s +3456 X(to)s +3572 X(use.)s +3793 X(However,)s +4221 X(if)s +4320 X(the)s +4480 X(`\261apop')s +4828 X(switch)s +5127 X(is)s +514 X +2160 Y +874 X(given,)s +1147 X +0.0 10 10 f.I ft(inc)s +1295 X +0.0 10 10 f.R ft(will)s +1477 X(generate)s +1840 X(authentication)s +2432 X(credentials)s +2890 X(to)s +2994 X(provide)s +3325 X(for)s +3466 X(origin)s +3730 X(authentication)s +4321 X(and)s +4490 X(replay)s +4764 X(protection,)s +514 X +2280 Y +874 X(but)s +1044 X(which)s +1330 X(do)s +1472 X(not)s +1642 X(involve)s +1984 X(sending)s +2336 X(a)s +2421 X(password)s +2839 X(in)s +2958 X(the)s +3121 X(clear)s +3355 X(over)s +3573 X(the)s +3736 X(network.)s +4154 X(Otherwise,)s +4630 X(if)s +4732 X(the)s +4895 X(`\261rpop')s +514 X +2400 Y +874 X(switch)s +1160 X(is)s +1252 X(given,)s +1524 X(then)s +1721 X +0.0 10 10 f.I ft(inc)s +1868 X +0.0 10 10 f.R ft(will)s +2049 X(try)s +2185 X(to)s +2288 X(use)s +2446 X(a)s +2515 X(``trusted'')s +2944 X(connection)s +3407 X(\(ala)s +3581 X(the)s +3728 X(BSD)s +3948 X(r-commands\).)s +514 X +2640 Y +874 X(If)s +982 X +0.0 10 10 f.I ft(inc)s +1146 X +0.0 10 10 f.R ft(uses)s +1360 X(POP,)s +1611 X(then)s +1825 X(the)s +1989 X(`\261pack \256le')s +2488 X(switch)s +2791 X(is)s +2900 X(considered.)s +3424 X(If)s +3532 X(given,)s +3821 X(then)s +4035 X +0.0 10 10 f.I ft(inc)s +4199 X +0.0 10 10 f.R ft(simply)s +4514 X(uses)s +4728 X(the)s +4891 X(POP)s +5116 X(to)s +514 X +2760 Y +874 X +0.0 10 10 f.I ft(packf)s +1140 X +0.0 10 10 f.R ft(\(1\))s +1295 X(the)s +1455 X(user's)s +1731 X(maildrop)s +2130 X(from)s +2362 X(the)s +2522 X(POP)s +2744 X(service)s +3064 X(host)s +3269 X(to)s +3385 X(the)s +3545 X(named)s +3849 X(\256le.)s +4065 X(This)s +4281 X(switch)s +4580 X(is)s +4685 X(provided)s +5078 X(for)s +514 X +2880 Y +874 X(those)s +1110 X(users)s +1340 X(who)s +1537 X(prefer)s +1799 X(to)s +1902 X(use)s +2060 X +0.0 10 10 f.I ft(msh)s +2246 X +0.0 10 10 f.R ft(to)s +2349 X(read)s +2545 X(their)s +2753 X(maildrops.)s +514 X +3042 Y +0.0 8 8 f.B ft(Files)s +514 X +3162 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +3282 Y +874 X(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(tailor)s +2699 X(\256le)s +514 X +3402 Y +874 X(/usr/spool/mail/$USER)s +2463 X(Location)s +2843 X(of)s +2951 X(mail)s +3154 X(drop)s +514 X +3606 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3726 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3846 Y +874 X(Alternate\261Mailboxes:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(mailboxes)s +514 X +3966 Y +874 X(Inbox:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(inbox,)s +2775 X(default)s +3077 X(``inbox'')s +514 X +4086 Y +874 X(Folder\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(folder)s +514 X +4206 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(message)s +3519 X(and)s +3688 X(audit\261\256le)s +514 X +4326 Y +874 X(Unseen\261Sequence:)s +1790 X(To)s +1926 X(name)s +2167 X(sequences)s +2596 X(denoting)s +2971 X(unseen)s +3273 X(messages)s +514 X +4530 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4650 Y +874 X +0.0 10 10 f.I ft(Post)s +1077 X(O)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ice)s +1341 X(Protocol)s +1716 X(-)s +1774 X(version)s +2093 X(3)s +2168 X +0.0 10 10 f.R ft(\(aka)s +2364 X(RFC\2611081\),)s +514 X +4770 Y +874 X(mhmail\(1\),)s +1346 X(scan\(1\),)s +1689 X(mh\261mail\(5\),)s +2211 X(post\(8\))s +514 X +4974 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5094 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaulted)s +1655 X(by)s +1780 X(``Inbox'')s +2170 X(above)s +514 X +5214 Y +874 X(`\261noaudit')s +514 X +5334 Y +874 X(`\261changecur')s +514 X +5454 Y +874 X(`\261format')s +1281 X(defaulted)s +1677 X(as)s +1785 X(described)s +2192 X(above)s +514 X +5574 Y +874 X(`\261nosilent')s +514 X +5694 Y +874 X(`\261truncate')s +1336 X(if)s +1422 X(`\261\256le)s +1658 X(name')s +1932 X(not)s +2085 X(given,)s +2357 X(`\261notruncate')s +2919 X(otherwise)s +514 X +5814 Y +874 X(`\261width')s +1243 X(defaulted)s +1639 X(to)s +1742 X(the)s +1889 X(width)s +2142 X(of)s +2250 X(the)s +2397 X(terminal)s +514 X +5934 Y +874 X(`\261nopack')s +514 X +6054 Y +874 X(`\261rpop')s +514 X +6258 Y +0.0 8 8 f.B ft(Context)s +514 X +6378 Y +874 X +0.0 10 10 f.R ft(The)s +1063 X(folder)s +1334 X(into)s +1523 X(which)s +1800 X(messages)s +2210 X(are)s +2364 X(being)s +2619 X(incorporated)s +3156 X(will)s +3345 X(become)s +3688 X(the)s +3843 X(current)s +4158 X(folder.)s +4479 X(The)s +4667 X(\256rst)s +4856 X(message)s +514 X +6498 Y +874 X(incorporated)s +1412 X(will)s +1602 X(become)s +1945 X(the)s +2100 X(current)s +2415 X(message,)s +2811 X(unless)s +3094 X(the)s +3249 X(`\261nochangecur')s +3907 X(option)s +4196 X(is)s +4296 X(speci\256ed.)s +4734 X(This)s +4945 X(leaves)s +514 X +6618 Y +874 X(the)s +1021 X(context)s +1340 X(ready)s +1586 X(for)s +1727 X(a)s +1796 X +0.0 10 10 f.I ft(show)s +2027 X +0.0 10 10 f.R ft(of)s +2135 X(the)s +2282 X(\256rst)s +2463 X(new)s +2654 X(message.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 33 34 + +514 X +600 Y(INC\(1\))s +2771 X(-33-)s +4895 X(INC\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(The)s +1064 X(argument)s +1476 X(to)s +1589 X(the)s +1746 X(`\261format')s +2163 X(switch)s +2458 X(must)s +2687 X(be)s +2815 X(interpreted)s +3281 X(as)s +3398 X(a)s +3476 X(single)s +3749 X(token)s +4005 X(by)s +4139 X(the)s +4295 X(shell)s +4518 X(that)s +4702 X(invokes)s +5047 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft(.)s +514 X +1200 Y +874 X(Therefore,)s +1316 X(one)s +1485 X(must)s +1705 X(usually)s +2019 X(place)s +2254 X(the)s +2401 X(argument)s +2803 X(to)s +2906 X(this)s +3076 X(switch)s +3362 X(inside)s +3626 X(double\261quotes.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 34 35 + +514 X +600 Y(MARK\(1\))s +2771 X(-34-)s +4762 X(MARK\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mark)s +1104 X(\261)s +1179 X(mark)s +1409 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(mark)s +1104 X([+folder])s +1489 X([msgs])s +1786 X([\261sequence name ...])s +2633 X([\261add])s +2918 X([\261delete])s +3297 X([\261list])s +3561 X([\261public])s +3952 X([\261nopublic])s +4443 X([\261zero])s +4755 X([\261nozero])s +514 X +1560 Y +1234 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.R ft(The)s +1087 X +0.0 10 10 f.I ft(mark)s +1350 X +0.0 10 10 f.R ft(command)s +1802 X(manipulates)s +2343 X(message)s +2738 X(sequences)s +3199 X(by)s +3356 X(adding)s +3685 X(or)s +3825 X(deleting)s +4204 X(message)s +4599 X(numbers)s +5000 X(from)s +514 X +2160 Y +874 X(folder\261speci\256c)s +1500 X(message)s +1871 X(sequences,)s +2333 X(or)s +2449 X(by)s +2582 X(listing)s +2866 X(those)s +3109 X(sequences)s +3545 X(and)s +3721 X(messages.)s +4180 X(A)s +4284 X(message)s +4654 X(sequence)s +5051 X(is)s +5150 X(a)s +514 X +2280 Y +874 X(keyword,)s +1304 X(just)s +1505 X(like)s +1711 X(one)s +1911 X(of)s +2050 X(the)s +2227 X(``reserved'')s +2751 X(message)s +3144 X(names,)s +3479 X(such)s +3717 X(as)s +3855 X(``\256rst'')s +4198 X(or)s +4336 X(``next''.)s +4745 X(Unlike)s +5072 X(the)s +514 X +2400 Y +874 X(``reserved'')s +1377 X(message)s +1749 X(names,)s +2063 X(which)s +2341 X(have)s +2563 X(a)s +2641 X(\256xed)s +2875 X(semantics)s +3303 X(on)s +3437 X(a)s +3515 X(per\261folder)s +3964 X(basis,)s +4223 X(the)s +4379 X(semantics)s +4807 X(of)s +4923 X(a)s +5000 X(mes-)s +514 X +2520 Y +874 X(sage)s +1079 X(sequence)s +1472 X(may)s +1672 X(be)s +1794 X(de\256ned,)s +2141 X(modi\256ed,)s +2550 X(and)s +2722 X(removed)s +3099 X(by)s +3227 X(the)s +3377 X(user.)s +3621 X(Message)s +3997 X(sequences)s +4428 X(are)s +4576 X(folder\261speci\256c,)s +514 X +2640 Y +874 X(e.g.,)s +1075 X(the)s +1229 X(sequence)s +1626 X(name)s +1874 X(``seen'')s +2215 X(in)s +2324 X(the)s +2477 X(context)s +2802 X(of)s +2916 X(folder)s +3185 X(``+inbox'')s +3632 X(need)s +3851 X(not)s +4010 X(have)s +4229 X(any)s +4404 X(relation)s +4740 X(whatsoever)s +514 X +2760 Y +874 X(to)s +977 X(the)s +1124 X(sequence)s +1514 X(of)s +1622 X(the)s +1769 X(same)s +1999 X(name)s +2240 X(in)s +2343 X(a)s +2412 X(folder)s +2675 X(of)s +2783 X(a)s +2852 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erent)s +3215 X(name.)s +514 X +3000 Y +874 X(Three)s +1157 X(action)s +1452 X(switches)s +1847 X(direct)s +2125 X(the)s +2298 X(operation)s +2726 X(of)s +2860 X +0.0 10 10 f.I ft(mark)s +0.0 10 10 f.R ft(.)s +3166 X(These)s +3455 X(switches)s +3850 X(are)s +4022 X(mutually)s +4428 X(exclusive:)s +4883 X(the)s +5055 X(last)s +514 X +3120 Y +874 X(occurrence)s +1335 X(of)s +1443 X(any)s +1612 X(of)s +1720 X(them)s +1945 X(overrides)s +2341 X(any)s +2510 X(previous)s +2879 X(occurrence)s +3340 X(of)s +3448 X(the)s +3595 X(other)s +3825 X(two.)s +514 X +3360 Y +874 X(The)s +1056 X(`\261add')s +1343 X(switch)s +1631 X(tells)s +1825 X +0.0 10 10 f.I ft(mark)s +2057 X +0.0 10 10 f.R ft(to)s +2162 X(add)s +2333 X(messages)s +2737 X(to)s +2842 X(sequences)s +3273 X(or)s +3383 X(to)s +3488 X(create)s +3752 X(a)s +3823 X(new)s +4015 X(sequence.)s +4456 X(For)s +4621 X(each)s +4829 X(sequence)s +514 X +3480 Y +874 X(named)s +1166 X(via)s +1314 X(the)s +1462 X(`\261sequence name')s +2210 X(argument)s +2613 X(\(which)s +2916 X(must)s +3137 X(occur)s +3384 X(at)s +3481 X(least)s +3689 X(once\))s +3935 X(the)s +4082 X(messages)s +4484 X(named)s +4775 X(via)s +4922 X(`msgs')s +514 X +3600 Y +874 X(\(which)s +1187 X(defaults)s +1539 X(to)s +1653 X(``cur'')s +1948 X(if)s +2045 X(no)s +2181 X(`msgs')s +2489 X(are)s +2646 X(given\),)s +2962 X(are)s +3119 X(added)s +3392 X(to)s +3505 X(the)s +3662 X(sequence.)s +4112 X(The)s +4302 X(messages)s +4714 X(to)s +4827 X(be)s +4956 X(added)s +514 X +3720 Y +874 X(need)s +1090 X(not)s +1246 X(be)s +1367 X(absent)s +1649 X(from)s +1870 X(the)s +2019 X(sequence.)s +2461 X(If)s +2554 X(the)s +2703 X(`\261zero')s +3017 X(switch)s +3305 X(is)s +3399 X(speci\256ed,)s +3806 X(the)s +3955 X(sequence)s +4347 X(will)s +4530 X(be)s +4651 X(emptied)s +5000 X(prior)s +514 X +3840 Y +874 X(to)s +988 X(adding)s +1296 X(the)s +1454 X(messages.)s +1917 X(Hence,)s +2232 X(`\261add \261zero')s +2774 X(means)s +3065 X(that)s +3251 X(each)s +3469 X(sequence)s +3869 X(should)s +4171 X(be)s +4300 X(initialized)s +4735 X(to)s +4848 X(the)s +5005 X(indi-)s +514 X +3960 Y +874 X(cated)s +1122 X(messages,)s +1561 X(while)s +1820 X(`\261add \261nozero')s +2463 X(means)s +2755 X(that)s +2942 X(each)s +3161 X(sequence)s +3563 X(should)s +3867 X(be)s +3998 X(appended)s +4417 X(to)s +4532 X(by)s +4669 X(the)s +4828 X(indicated)s +514 X +4080 Y +874 X(messages.)s +514 X +4320 Y +874 X(The)s +1061 X(`\261delete')s +1447 X(switch)s +1739 X(tells)s +1937 X +0.0 10 10 f.I ft(mark)s +2173 X +0.0 10 10 f.R ft(to)s +2282 X(delete)s +2551 X(messages)s +2959 X(from)s +3184 X(sequences,)s +3644 X(and)s +3819 X(is)s +3917 X(the)s +4070 X(dual)s +4273 X(of)s +4387 X(`\261add'.)s +4728 X(For)s +4898 X(each)s +5111 X(of)s +514 X +4440 Y +874 X(the)s +1031 X(named)s +1332 X(sequences,)s +1795 X(the)s +1951 X(named)s +2251 X(messages)s +2662 X(are)s +2817 X(removed)s +3200 X(from)s +3428 X(the)s +3584 X(sequence.)s +4033 X(These)s +4305 X(messages)s +4716 X(need)s +4938 X(not)s +5100 X(be)s +514 X +4560 Y +874 X(already)s +1211 X(present)s +1543 X(in)s +1664 X(the)s +1829 X(sequence.)s +2287 X(If)s +2396 X(the)s +2561 X(`\261zero')s +2891 X(switch)s +3195 X(is)s +3305 X(speci\256ed,)s +3728 X(then)s +3943 X(all)s +4086 X(messages)s +4506 X(in)s +4627 X(the)s +4792 X(folder)s +5073 X(are)s +514 X +4680 Y +874 X(appended)s +1311 X(to)s +1443 X(the)s +1619 X(sequence)s +2038 X(prior)s +2286 X(to)s +2418 X(removing)s +2855 X(the)s +3031 X(messages.)s +3512 X(Hence,)s +3845 X(`\261delete \261zero')s +4499 X(means)s +4808 X(that)s +5012 X(each)s +514 X +4800 Y +874 X(sequence)s +1272 X(should)s +1572 X(contain)s +1899 X(all)s +2032 X(messages)s +2442 X(except)s +2735 X(those)s +2979 X(indicated,)s +3403 X(while)s +3658 X(`\261delete \261nozero')s +4391 X(means)s +4679 X(that)s +4862 X(only)s +5072 X(the)s +514 X +4920 Y +874 X(indicated)s +1338 X(messages)s +1813 X(should)s +2178 X(be)s +2369 X(removed)s +2815 X(from)s +3106 X(each)s +3385 X(sequence.)s +3897 X(As)s +4105 X(expected,)s +4581 X(the)s +4800 X(command)s +514 X +5040 Y +874 X(`mark)s +1162 X(\261sequence)s +1627 X(seen)s +1854 X(\261delete)s +2192 X(all')s +2350 X(deletes)s +2652 X(the)s +2799 X(sequence)s +3189 X(``seen'')s +3523 X(from)s +3742 X(the)s +3889 X(current)s +4196 X(folder.)s +514 X +5280 Y +874 X(When)s +1142 X(creating)s +1493 X(\(or)s +1639 X(modifying\))s +2119 X(a)s +2193 X(sequence,)s +2613 X(the)s +2765 X(`\261public')s +3161 X(switch)s +3451 X(indicates)s +3835 X(that)s +4014 X(the)s +4165 X(sequence)s +4559 X(should)s +4855 X(be)s +4978 X(made)s +514 X +5400 Y +874 X(readable)s +1253 X(for)s +1411 X(other)s +1658 X +0.0 10 10 f.I ft(MH)s +1855 X +0.0 10 10 f.R ft(users.)s +2152 X(In)s +2277 X(contrast,)s +2660 X(the)s +2824 X(`\261nopublic')s +3332 X(switch)s +3635 X(indicates)s +4032 X(that)s +4223 X(the)s +4386 X(sequence)s +4792 X(should)s +5100 X(be)s +514 X +5520 Y +874 X(private)s +1176 X(to)s +1279 X(the)s +1426 X(user's)s +1689 X +0.0 10 10 f.I ft(MH)s +1869 X +0.0 10 10 f.R ft(environment.)s +514 X +5760 Y +874 X(The)s +1063 X(`\261list')s +1336 X(switch)s +1631 X(tells)s +1832 X +0.0 10 10 f.I ft(mark)s +2070 X +0.0 10 10 f.R ft(to)s +2181 X(list)s +2337 X(both)s +2548 X(the)s +2703 X(sequences)s +3140 X(de\256ned)s +3467 X(for)s +3616 X(the)s +3771 X(folder)s +4042 X(and)s +4219 X(the)s +4374 X(messages)s +4784 X(associated)s +514 X +5880 Y +874 X(with)s +1084 X(those)s +1327 X(sequences.)s +1813 X +0.0 10 10 f.I ft(Mark)s +2061 X +0.0 10 10 f.R ft(will)s +2249 X(list)s +2404 X(the)s +2558 X(name)s +2806 X(of)s +2921 X(each)s +3135 X(sequence)s +3532 X(given)s +3786 X(by)s +3918 X(`\261sequence name')s +4672 X(and)s +4847 X(the)s +5000 X(mes-)s +514 X +6000 Y +874 X(sages)s +1128 X(associated)s +1576 X(with)s +1792 X(that)s +1980 X(sequence.)s +2433 X(If)s +2537 X(`\261sequence')s +3056 X(isn't)s +3272 X(used,)s +3518 X(all)s +3656 X(sequences)s +4098 X(will)s +4292 X(be)s +4423 X(listed,)s +4702 X(with)s +4917 X(private)s +514 X +6120 Y +874 X(sequences)s +1303 X(being)s +1550 X(so)s +1664 X(indicated.)s +2105 X(The)s +2285 X(`\261zero')s +2597 X(switch)s +2883 X(does)s +3091 X(not)s +3244 X(a)s +Cff(ect)s +3490 X(the)s +3637 X(operation)s +4039 X(of)s +4147 X(`\261list'.)s +514 X +6360 Y +874 X(The)s +1054 X(current)s +1361 X(restrictions)s +1830 X(on)s +1955 X(sequences)s +2384 X(are:)s +514 X +6600 Y +1054 X(The)s +1237 X(name)s +1481 X(used)s +1692 X(to)s +1798 X(denote)s +2092 X(a)s +2164 X(message)s +2530 X(sequence)s +2923 X(must)s +3146 X(consist)s +3452 X(of)s +3563 X(an)s +3685 X(alphabetic)s +4123 X(character)s +4514 X(followed)s +4896 X(by)s +5023 X(zero)s +514 X +6720 Y +1054 X(or)s +1166 X(more)s +1400 X(alphanumeric)s +1972 X(characters,)s +2429 X(and)s +2601 X(cannot)s +2895 X(be)s +3017 X(one)s +3189 X(of)s +3300 X(the)s +3450 X(\(reserved\))s +3881 X(message)s +4247 X(names)s +4530 X(``new'',)s +4881 X(``\256rst'',)s +514 X +6840 Y +1054 X(``last'',)s +1375 X(``all'',)s +1657 X(``next'',)s +2011 X(or)s +2119 X(``prev''.)s +514 X +7080 Y +1054 X(Only)s +1283 X(a)s +1356 X(certain)s +1656 X(number)s +1990 X(of)s +2101 X(sequences)s +2533 X(may)s +2733 X(be)s +2855 X(de\256ned)s +3177 X(for)s +3321 X(a)s +3393 X(given)s +3643 X(folder.)s +3959 X(This)s +4165 X(number)s +4498 X(is)s +4593 X(usually)s +4910 X(limited)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 35 36 + +514 X +600 Y(MARK\(1\))s +2771 X(-35-)s +4762 X(MARK\(1\))s +514 X +960 Y +1054 X +0.0 10 10 f.R ft(to)s +1157 X(26)s +1282 X(\(10)s +1440 X(on)s +1565 X(small)s +1807 X(systems\).)s +514 X +1200 Y +1054 X(Message)s +1430 X(ranges)s +1717 X(with)s +1922 X(user\261de\256ned)s +2459 X(sequence)s +2851 X(names)s +3133 X(are)s +3280 X(restricted)s +3677 X(to)s +3781 X(the)s +3929 X(form)s +4149 X(``name:n'')s +4601 X(or)s +4710 X(``name:-n'',)s +514 X +1320 Y +1054 X(and)s +1228 X(refer)s +1445 X(to)s +1553 X(the)s +1705 X(\256rst)s +1891 X(or)s +2004 X(last)s +2173 X(`n')s +2319 X(messages)s +2726 X(of)s +2838 X(the)s +2989 X(sequence)s +3383 X(`name',)s +3719 X(respectively.)s +4280 X(Constructs)s +4737 X(of)s +4849 X(the)s +5000 X(form)s +514 X +1440 Y +1054 X(``name1\261name2'')s +1793 X(are)s +1939 X(forbidden.)s +514 X +1602 Y +0.0 8 8 f.B ft(Files)s +514 X +1722 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +1926 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +2046 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +2166 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +2370 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2490 Y +874 X +0.0 10 10 f.R ft(pick)s +1071 X(\(1\),)s +1237 X(mh-sequence)s +1788 X(\(5\))s +514 X +2694 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2814 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +2934 Y +874 X(`\261add')s +1159 X(if)s +1245 X(`\261sequence')s +1751 X(is)s +1843 X(speci\256ed,)s +2248 X(`\261list')s +2512 X(otherwise)s +514 X +3054 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +1767 X(\(or)s +1908 X(all)s +2033 X(if)s +2119 X(`\261list')s +2383 X(is)s +2475 X(speci\256ed\))s +514 X +3174 Y +874 X(`\261nopublic')s +1365 X(if)s +1451 X(the)s +1598 X(folder)s +1861 X(is)s +1953 X(read\261only,)s +2402 X(`\261public')s +2793 X(otherwise)s +514 X +3294 Y +874 X(`\261nozero')s +514 X +3498 Y +0.0 8 8 f.B ft(Context)s +514 X +3618 Y +874 X +0.0 10 10 f.R ft(If)s +965 X(a)s +1034 X(folder)s +1297 X(is)s +1389 X(given,)s +1661 X(it)s +1742 X(will)s +1923 X(become)s +2258 X(the)s +2405 X(current)s +2712 X(folder.)s +514 X +3858 Y +0.0 8 8 f.B ft(Helpful)s +791 X(Hints)s +514 X +4098 Y +874 X +0.0 10 10 f.R ft(Use)s +1054 X(``pick)s +1317 X(sequence)s +1707 X(\261list'')s +1971 X(to)s +2074 X(enumerate)s +2514 X(the)s +2661 X(messages)s +3063 X(in)s +3166 X(a)s +3235 X(sequence)s +3625 X(\(such)s +3866 X(as)s +3974 X(for)s +4115 X(use)s +4273 X(by)s +4398 X(a)s +4467 X(shell)s +4681 X(script\).)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 36 37 + +514 X +600 Y(MHL\(1\))s +2771 X(-36-)s +4839 X(MHL\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mhl)s +1055 X(\261)s +1130 X(produce)s +1476 X(formatted)s +1889 X(listings)s +2204 X(of)s +2312 X(MH)s +2498 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/mhl)s +1839 X([\261bell])s +2130 X([\261nobell])s +2521 X([\261clear])s +2855 X([\261noclear])s +3289 X([\261folder +folder])s +3987 X([\261form form\256le])s +514 X +1560 Y +1234 X([\261length lines])s +1839 X([\261width columns])s +2572 X([\261moreproc program])s +3458 X([\261nomoreproc])s +4081 X([\256les ...])s +4439 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Mhl)s +1075 X +0.0 10 10 f.R ft(is)s +1182 X(a)s +1266 X(formatted)s +1694 X(message)s +2072 X(listing)s +2363 X(program.)s +2791 X(It)s +2892 X(can)s +3070 X(be)s +3204 X(used)s +3427 X(as)s +3549 X(a)s +3632 X(replacement)s +4158 X(for)s +4313 X +0.0 10 10 f.I ft(more)s +4568 X +0.0 10 10 f.R ft(\(1\))s +4723 X(\(the)s +4917 X(default)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(showproc)s +1313 X +0.0 10 10 f.R ft(\).)s +1422 X(As)s +1559 X(with)s +1763 X +0.0 10 10 f.I ft(more)s +0.0 10 10 f.R ft(,)s +2019 X(each)s +2227 X(of)s +2336 X(the)s +2484 X(messages)s +2887 X(speci\256ed)s +3268 X(as)s +3377 X(arguments)s +3818 X(\(or)s +3959 X(the)s +4106 X(standard)s +4469 X(input\))s +4733 X(will)s +4914 X(be)s +5033 X(out-)s +514 X +2280 Y +874 X(put.)s +1100 X(If)s +1214 X(more)s +1467 X(than)s +1687 X(one)s +1879 X(message)s +2265 X(\256le)s +2441 X(is)s +2556 X(speci\256ed,)s +2984 X(the)s +3154 X(user)s +3368 X(will)s +3572 X(be)s +3714 X(prompted)s +4145 X(prior)s +4387 X(to)s +4513 X(each)s +4743 X(one,)s +4959 X(and)s +5150 X(a)s +514 X +2400 Y +874 X()s +1422 X(or)s +1541 X()s +1883 X(will)s +2075 X(begin)s +2333 X(the)s +2491 X(output,)s +2808 X(with)s +3022 X()s +3570 X(clearing)s +3927 X(the)s +4085 X(screen)s +4374 X(\(if)s +4503 X(appropriate\),)s +5050 X(and)s +514 X +2520 Y +874 X()s +1207 X(\(usually)s +1556 X(CTRL\261D\))s +1994 X(suppressing)s +2493 X(the)s +2642 X(screen)s +2922 X(clear.)s +3191 X(An)s +3339 X()s +4027 X(\(usually)s +4375 X(CTRL\261C\))s +4807 X(will)s +4989 X(abort)s +514 X +2640 Y +874 X(the)s +1041 X(current)s +1368 X(message)s +1751 X(output,)s +2077 X(prompting)s +2539 X(for)s +2700 X(the)s +2866 X(next)s +3082 X(message)s +3464 X(\(if)s +3602 X(there)s +3845 X(is)s +3956 X(one\),)s +4202 X(and)s +4390 X(a)s +4478 X()s +4872 X(\(usually)s +514 X +2760 Y +874 X(CTRL-\\\))s +1249 X(will)s +1430 X(terminate)s +1832 X(the)s +1979 X(program)s +2342 X(\(without)s +2706 X(core)s +2902 X(dump\).)s +514 X +3000 Y +874 X(The)s +1055 X(`\261bell')s +1347 X(option)s +1629 X(tells)s +1822 X +0.0 10 10 f.I ft(mhl)s +1998 X +0.0 10 10 f.R ft(to)s +2102 X(ring)s +2289 X(the)s +2437 X(terminal's)s +2868 X(bell)s +3044 X(at)s +3142 X(the)s +3290 X(end)s +3460 X(of)s +3569 X(each)s +3777 X(page,)s +4016 X(while)s +4264 X(the)s +4412 X(`\261clear')s +4746 X(option)s +5027 X(tells)s +514 X +3120 Y +874 X +0.0 10 10 f.I ft(mhl)s +1061 X +0.0 10 10 f.R ft(to)s +1176 X(clear)s +1406 X(the)s +1565 X(scree)s +1806 X(at)s +1915 X(the)s +2074 X(end)s +2255 X(of)s +2375 X(each)s +2594 X(page)s +2819 X(\(or)s +2972 X(output)s +3265 X(a)s +3345 X(formfeed)s +3746 X(after)s +3964 X(each)s +4182 X(message\).)s +4639 X(Both)s +4870 X(of)s +4989 X(these)s +514 X +3240 Y +874 X(switches)s +1246 X(\(and)s +1451 X(their)s +1662 X(inverse)s +1978 X(counterparts\))s +2531 X(take)s +2724 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ect)s +2972 X(only)s +3177 X(if)s +3265 X(the)s +3414 X(pro\256le)s +3702 X(entry)s +3934 X +0.0 10 10 f.I ft(moreproc)s +4349 X +0.0 10 10 f.R ft(is)s +4443 X(de\256ned)s +4764 X(but)s +4919 X(empty,)s +514 X +3360 Y +874 X(and)s +1048 X +0.0 10 10 f.I ft(mhl)s +1228 X +0.0 10 10 f.R ft(is)s +1325 X(outputting)s +1766 X(to)s +1873 X(a)s +1946 X(terminal.)s +2358 X(If)s +2453 X(the)s +2604 X +0.0 10 10 f.I ft(moreproc)s +3021 X +0.0 10 10 f.R ft(entry)s +3255 X(is)s +3351 X(de\256ned)s +3674 X(and)s +3847 X(non-empty,)s +4334 X(and)s +4507 X +0.0 10 10 f.I ft(mhl)s +4686 X +0.0 10 10 f.R ft(is)s +4782 X(outputting)s +514 X +3480 Y +874 X(to)s +979 X(a)s +1050 X(terminal,)s +1435 X(then)s +1634 X +0.0 10 10 f.I ft(mhl)s +1811 X +0.0 10 10 f.R ft(will)s +1994 X(cause)s +2242 X(the)s +2391 X +0.0 10 10 f.I ft(moreproc)s +2806 X +0.0 10 10 f.R ft(to)s +2911 X(be)s +3032 X(placed)s +3319 X(between)s +3678 X(the)s +3827 X(terminal)s +4186 X(and)s +4356 X +0.0 10 10 f.I ft(mhl)s +4532 X +0.0 10 10 f.R ft(and)s +4702 X(the)s +4850 X(switches)s +514 X +3600 Y +874 X(are)s +1024 X(ignored.)s +1407 X(Furthermore,)s +1959 X(if)s +2048 X(the)s +2198 X(`\261clear')s +2535 X(switch)s +2824 X(is)s +2919 X(used)s +3130 X(and)s +3302 X +0.0 10 10 f.I ft(mhl's)s +3552 X +0.0 10 10 f.R ft(output)s +3836 X(is)s +3931 X(directed)s +4280 X(to)s +4386 X(a)s +4458 X(terminal,)s +4844 X(then)s +5044 X +0.0 10 10 f.I ft(mhl)s +514 X +3720 Y +874 X +0.0 10 10 f.R ft(will)s +1067 X(consult)s +1393 X(the)s +1551 X +0.0 10 10 f.B ft($TERM)s +1937 X +0.0 10 10 f.R ft(and)s +2117 X +0.0 10 10 f.B ft($TERMCAP)s +2708 X +0.0 10 10 f.R ft(envariables)s +3198 X(to)s +3312 X(determine)s +3747 X(the)s +3905 X(user's)s +4179 X(terminal)s +4548 X(type)s +4756 X(in)s +4870 X(order)s +5116 X(to)s +514 X +3840 Y +874 X(\256nd)s +1057 X(out)s +1212 X(how)s +1411 X(to)s +1516 X(clear)s +1736 X(the)s +1885 X(screen.)s +2216 X(If)s +2309 X(the)s +2458 X(`\261clear')s +2794 X(switch)s +3082 X(is)s +3176 X(used)s +3386 X(and)s +3557 X +0.0 10 10 f.I ft(mhl's)s +3806 X +0.0 10 10 f.R ft(output)s +4089 X(is)s +4183 X(not)s +4338 X(directed)s +4686 X(to)s +4791 X(a)s +4861 X(terminal)s +514 X +3960 Y +874 X(\(e.g.,)s +1101 X(a)s +1170 X(pipe)s +1367 X(or)s +1475 X(a)s +1544 X(\256le\),)s +1755 X(then)s +1952 X +0.0 10 10 f.I ft(mhl)s +2127 X +0.0 10 10 f.R ft(will)s +2308 X(send)s +2516 X(a)s +2585 X(formfeed)s +2975 X(after)s +3182 X(each)s +3389 X(message.)s +514 X +4200 Y +874 X(To)s +1013 X(override)s +1373 X(the)s +1523 X(default)s +1828 X +0.0 10 10 f.I ft(moreproc)s +2244 X +0.0 10 10 f.R ft(and)s +2416 X(the)s +2566 X(pro\256le)s +2854 X(entry,)s +3111 X(use)s +3271 X(the)s +3420 X(`\261moreproc program')s +4308 X(switch.)s +4646 X(Note)s +4867 X(that)s +5044 X +0.0 10 10 f.I ft(mhl)s +514 X +4320 Y +874 X +0.0 10 10 f.R ft(will)s +1055 X(never)s +1301 X(start)s +1498 X(a)s +1567 X +0.0 10 10 f.I ft(moreproc)s +1980 X +0.0 10 10 f.R ft(if)s +2066 X(invoked)s +2413 X(on)s +2538 X(a)s +2607 X(hardcopy)s +3003 X(terminal.)s +514 X +4560 Y +874 X(The)s +1074 X(`\261length length')s +1760 X(and)s +1949 X(`\261width width')s +2591 X(switches)s +2980 X(set)s +3136 X(the)s +3303 X(screen)s +3601 X(length)s +3895 X(and)s +4083 X(width,)s +4380 X(respectively.)s +4956 X(These)s +514 X +4680 Y +874 X(default)s +1178 X(to)s +1283 X(the)s +1432 X(values)s +1714 X(indicated)s +2107 X(by)s +2234 X +0.0 10 10 f.B ft($TERMCAP)s +0.0 10 10 f.R ft(,)s +2841 X(if)s +2929 X(appropriate,)s +3435 X(otherwise)s +3850 X(they)s +4049 X(default)s +4353 X(to)s +4458 X(40)s +4585 X(and)s +4756 X(80,)s +4907 X(respec-)s +514 X +4800 Y +874 X(tively.)s +514 X +5040 Y +874 X(The)s +1057 X(default)s +1362 X(format)s +1656 X(\256le)s +1812 X(used)s +2023 X(by)s +2151 X +0.0 10 10 f.I ft(mhl)s +2329 X +0.0 10 10 f.R ft(is)s +2424 X(called)s +2690 X +0.0 10 10 f.I ft(mhl.format)s +3160 X +0.0 10 10 f.R ft(\(which)s +3465 X(is)s +3560 X(\256rst)s +3743 X(searched)s +4118 X(for)s +4261 X(in)s +4366 X(the)s +4515 X(user's)s +4780 X +0.0 10 10 f.I ft(MH)s +4962 X +0.0 10 10 f.R ft(direc-)s +514 X +5160 Y +874 X(tory,)s +1134 X(and)s +1351 X(then)s +1596 X(sought)s +1936 X(in)s +2087 X(the)s +2282 X +0.0 10 10 f.I ft(/usr/bs/mh-beta/lib)s +3117 X +0.0 10 10 f.R ft(directory\),)s +3608 X(this)s +3826 X(can)s +4037 X(be)s +4204 X(changed)s +4609 X(by)s +4782 X(using)s +5072 X(the)s +514 X +5280 Y +874 X(`\261form format\256le')s +1628 X(switch.)s +514 X +5520 Y +874 X(Finally,)s +1212 X(the)s +1363 X(`\261folder +folder')s +2065 X(switch)s +2355 X(sets)s +2534 X(the)s +2684 X +0.0 10 10 f.I ft(MH)s +2867 X +0.0 10 10 f.R ft(folder)s +3133 X(name,)s +3402 X(which)s +3674 X(is)s +3769 X(used)s +3980 X(for)s +4124 X(the)s +4274 X(``messagename:'')s +5016 X(\256eld)s +514 X +5640 Y +874 X(described)s +1286 X(below.)s +1610 X(The)s +1794 X(envariable)s +2238 X +0.0 10 10 f.B ft($mhfolder)s +2711 X +0.0 10 10 f.R ft(is)s +2807 X(consulted)s +3219 X(for)s +3364 X(the)s +3515 X(default)s +3821 X(value,)s +4091 X(which)s +4364 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +4624 X +0.0 10 10 f.I ft(next)s +0.0 10 10 f.R ft(,)s +4844 X(and)s +5017 X +0.0 10 10 f.I ft(prev)s +514 X +5760 Y +874 X +0.0 10 10 f.R ft(initialize)s +1249 X(appropriately.)s +514 X +6000 Y +874 X +0.0 10 10 f.I ft(Mhl)s +1068 X +0.0 10 10 f.R ft(operates)s +1433 X(in)s +1544 X(two)s +1727 X(phases:)s +2054 X(1\))s +2170 X(read)s +2374 X(and)s +2550 X(parse)s +2792 X(the)s +2946 X(format)s +3244 X(\256le,)s +3429 X(and)s +3605 X(2\))s +3720 X(process)s +4051 X(each)s +4265 X(message)s +4635 X(\(\256le\).)s +4911 X(During)s +514 X +6120 Y +874 X(phase)s +1129 X(1,)s +1232 X(an)s +1354 X(internal)s +1687 X(description)s +2159 X(of)s +2270 X(the)s +2420 X(format)s +2714 X(is)s +2809 X(produced)s +3208 X(as)s +3319 X(a)s +3391 X(structured)s +3818 X(list.)s +4019 X(In)s +4130 X(phase)s +4385 X(2,)s +4488 X(this)s +4661 X(list)s +4812 X(is)s +4906 X(walked)s +514 X +6240 Y +874 X(for)s +1015 X(each)s +1222 X(message,)s +1610 X(outputting)s +2047 X(message)s +2410 X(information)s +2907 X(under)s +3159 X(the)s +3306 X(format)s +3597 X(constraints)s +4055 X(from)s +4274 X(the)s +4421 X(format)s +4712 X(\256le.)s +514 X +6480 Y +874 X(The)s +1071 X(``mhl.format'')s +1692 X(form)s +1928 X(\256le)s +2098 X(contains)s +2473 X(information)s +2987 X(controlling)s +3468 X(screen)s +3764 X(clearing,)s +4152 X(screen)s +4447 X(size,)s +4668 X(wrap\261around)s +514 X +6600 Y +874 X(control,)s +1221 X(transparent)s +1703 X(text,)s +1917 X(component)s +2400 X(ordering,)s +2802 X(and)s +2985 X(component)s +3468 X(formatting.)s +3979 X(Also,)s +4231 X(a)s +4313 X(list)s +4474 X(of)s +4595 X(components)s +5116 X(to)s +514 X +6720 Y +874 X(ignore)s +1157 X(may)s +1357 X(be)s +1479 X(speci\256ed,)s +1887 X(and)s +2059 X(a)s +2131 X(couple)s +2425 X(of)s +2536 X(``special'')s +2973 X(components)s +3484 X(are)s +3633 X(de\256ned)s +3955 X(to)s +4061 X(provide)s +4393 X(added)s +4658 X(functionality.)s +514 X +6840 Y +874 X(Message)s +1248 X(output)s +1529 X(will)s +1710 X(be)s +1829 X(in)s +1932 X(the)s +2079 X(order)s +2314 X(speci\256ed)s +2694 X(by)s +2819 X(the)s +2966 X(order)s +3201 X(in)s +3304 X(the)s +3451 X(format)s +3742 X(\256le.)s +514 X +7080 Y +874 X(Each)s +1098 X(line)s +1273 X(of)s +1381 X(mhl.format)s +1853 X(has)s +2011 X(one)s +2180 X(of)s +2288 X(the)s +2435 X(formats:)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 37 38 + +514 X +600 Y(MHL\(1\))s +2771 X(-37-)s +4839 X(MHL\(1\))s +514 X +960 Y +999 X +0.0 10 10 f.R ft(;comment)s +514 X +1080 Y +999 X(:cleartext)s +514 X +1200 Y +999 X(variable[,variable...])s +514 X +1320 Y +999 X(component:[variable,...])s +514 X +1560 Y +874 X(A)s +979 X(line)s +1162 X(beginning)s +1595 X(with)s +1806 X(a)s +1883 X(`;')s +2010 X(is)s +2110 X(a)s +2187 X(comment,)s +2617 X(and)s +2794 X(is)s +2894 X(ignored.)s +3282 X(A)s +3387 X(line)s +3570 X(beginning)s +4003 X(with)s +4214 X(a)s +4291 X(`:')s +4418 X(is)s +4518 X(clear)s +4744 X(text,)s +4951 X(and)s +5127 X(is)s +514 X +1680 Y +874 X(output)s +1157 X(exactly)s +1472 X(as)s +1582 X(is.)s +1726 X(A)s +1825 X(line)s +2002 X(containing)s +2451 X(only)s +2656 X(a)s +2727 X(`:')s +2848 X(produces)s +3235 X(a)s +3306 X(blank)s +3555 X(line)s +3732 X(in)s +3836 X(the)s +3984 X(output.)s +4316 X(A)s +4414 X(line)s +4590 X(beginning)s +5016 X(with)s +514 X +1800 Y +874 X(``component:'')s +1510 X(de\256nes)s +1825 X(the)s +1979 X(format)s +2276 X(for)s +2423 X(the)s +2576 X(speci\256ed)s +2962 X(component,)s +3462 X(and)s +3637 X(\256nally,)s +3949 X(remaining)s +4385 X(lines)s +4605 X(de\256ne)s +4880 X(the)s +5033 X(glo-)s +514 X +1920 Y +874 X(bal)s +1021 X(environment.)s +514 X +2160 Y +874 X(For)s +1038 X(example,)s +1426 X(the)s +1573 X(line:)s +514 X +2400 Y +1234 X(width=80,length=40,clearscreen,over\257owtext="***",over\257owo)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(set=5)s +514 X +2640 Y +874 X(de\256nes)s +1183 X(the)s +1331 X(screen)s +1611 X(size)s +1792 X(to)s +1895 X(be)s +2014 X(80)s +2139 X(columns)s +2503 X(by)s +2628 X(40)s +2753 X(rows,)s +2997 X(speci\256es)s +3366 X(that)s +3541 X(the)s +3688 X(screen)s +3967 X(should)s +4259 X(be)s +4378 X(cleared)s +4690 X(prior)s +4909 X(to)s +5012 X(each)s +514 X +2760 Y +874 X(page,)s +1112 X(that)s +1287 X(the)s +1434 X(over\257ow)s +1814 X(indentation)s +2289 X(is)s +2381 X(5,)s +2481 X(and)s +2650 X(that)s +2825 X(over\257ow)s +3205 X(text)s +3380 X(should)s +3672 X(be)s +3791 X(\257agged)s +4110 X(with)s +4313 X(``***''.)s +514 X +3000 Y +874 X(Following)s +1314 X(are)s +1463 X(all)s +1591 X(of)s +1702 X(the)s +1851 X(current)s +2160 X(variables)s +2547 X(and)s +2718 X(their)s +2928 X(arguments.)s +3421 X(If)s +3514 X(they)s +3713 X(follow)s +4001 X(a)s +4072 X(component,)s +4568 X(they)s +4767 X(apply)s +5016 X(only)s +514 X +3120 Y +874 X(to)s +978 X(that)s +1154 X(component,)s +1649 X(otherwise,)s +2088 X(their)s +2297 X(a)s +Cff(ect)s +2544 X(is)s +2637 X(global.)s +2963 X(Since)s +3211 X(the)s +3359 X(whole)s +3629 X(format)s +3921 X(is)s +4014 X(parsed)s +4299 X(before)s +4578 X(any)s +4747 X(output)s +5028 X(pro-)s +514 X +3240 Y +874 X(cessing,)s +1219 X(the)s +1367 X(last)s +1532 X(global)s +1808 X(switch)s +2095 X(setting)s +2388 X(for)s +2530 X(a)s +2600 X(variable)s +2947 X(applies)s +3256 X(to)s +3360 X(the)s +3508 X(whole)s +3777 X(message)s +4140 X(if)s +4226 X(that)s +4401 X(variable)s +4747 X(is)s +4839 X(used)s +5047 X(in)s +5150 X(a)s +514 X +3360 Y +874 X(global)s +1149 X(context)s +1468 X(\(i.e.,)s +1673 X(bell,)s +1873 X(clearscreen,)s +2370 X(width,)s +2648 X(length\).)s +514 X +3600 Y +1234 X +0.0 10 10 f.I ft(variable)s +1831 X(type)s +2258 X(semantics)s +514 X +3720 Y +1234 X +0.0 10 10 f.R ft(width)s +1831 X(integer)s +2258 X(screen)s +2537 X(width)s +2790 X(or)s +2898 X(component)s +3367 X(width)s +514 X +3840 Y +1234 X(length)s +1831 X(integer)s +2258 X(screen)s +2537 X(length)s +2812 X(or)s +2920 X(component)s +3389 X(length)s +514 X +3960 Y +1234 X(o)s +Cff(set)s +1831 X(integer)s +2258 X(positions)s +2645 X(to)s +2748 X(indent)s +3023 X(``component:)s +3586 X('')s +514 X +4080 Y +1234 X(over\257owtext)s +1831 X(string)s +2258 X(text)s +2433 X(to)s +2536 X(use)s +2694 X(at)s +2791 X(the)s +2938 X(beginning)s +3363 X(of)s +3471 X(an)s +514 X +4200 Y +2258 X(over\257ow)s +2638 X(line)s +514 X +4320 Y +1234 X(over\257owo)s +Cff(set)s +1831 X(integer)s +2258 X(positions)s +2645 X(to)s +2748 X(indent)s +3023 X(over\257ow)s +3403 X(lines)s +514 X +4440 Y +1234 X(compwidth)s +1831 X(integer)s +2258 X(positions)s +2645 X(to)s +2748 X(indent)s +3023 X(component)s +3492 X(text)s +514 X +4560 Y +2258 X(after)s +2465 X(the)s +2612 X(\256rst)s +2793 X(line)s +2968 X(is)s +3060 X(output)s +514 X +4680 Y +1234 X(uppercase)s +1831 X(\257ag)s +2258 X(output)s +2539 X(text)s +2714 X(of)s +2822 X(this)s +2992 X(component)s +3461 X(in)s +3564 X(all)s +514 X +4800 Y +2258 X(upper)s +2510 X(case)s +514 X +4920 Y +1234 X(nouppercase)s +1831 X(\257ag)s +2258 X(don't)s +2494 X(uppercase)s +514 X +5040 Y +1234 X(clearscreen)s +1831 X(\257ag/G)s +2258 X(clear)s +2476 X(the)s +2623 X(screen)s +2902 X(prior)s +3121 X(to)s +3224 X(each)s +3431 X(page)s +514 X +5160 Y +1234 X(noclearscreen)s +1831 X(\257ag/G)s +2258 X(don't)s +2494 X(clearscreen)s +514 X +5280 Y +1234 X(bell)s +1831 X(\257ag/G)s +2258 X(ring)s +2444 X(the)s +2591 X(bell)s +2766 X(at)s +2863 X(the)s +3010 X(end)s +3179 X(of)s +3287 X(each)s +3494 X(page)s +514 X +5400 Y +1234 X(nobell)s +1831 X(\257ag/G)s +2258 X(don't)s +2494 X(bell)s +514 X +5520 Y +1234 X(component)s +1831 X(string/L)s +2258 X(name)s +2499 X(to)s +2602 X(use)s +2760 X(instead)s +3068 X(of)s +3176 X(``component'')s +3777 X(for)s +514 X +5640 Y +2258 X(this)s +2428 X(component)s +514 X +5760 Y +1234 X(nocomponent)s +1831 X(\257ag)s +2258 X(don't)s +2494 X(output)s +2775 X(``component:)s +3338 X('')s +3429 X(for)s +3570 X(this)s +514 X +5880 Y +2258 X(component)s +514 X +6000 Y +1234 X(center)s +1831 X(\257ag)s +2258 X(center)s +2526 X(component)s +2995 X(on)s +3120 X(line)s +3295 X(\(works)s +3597 X(for)s +514 X +6120 Y +2258 X(one\261line)s +2627 X(components)s +3135 X(only\))s +514 X +6240 Y +1234 X(nocenter)s +1831 X(\257ag)s +2258 X(don't)s +2494 X(center)s +514 X +6360 Y +1234 X(leftadjust)s +1831 X(\257ag)s +2258 X(strip)s +2461 X(o)s +Cff +2597 X(leading)s +2916 X(whitespace)s +3384 X(on)s +3509 X(each)s +514 X +6480 Y +2258 X(line)s +2433 X(of)s +2541 X(text)s +514 X +6600 Y +1234 X(noleftadjust)s +1831 X(\257ag)s +2258 X(don't)s +2494 X(leftadjust)s +514 X +6720 Y +1234 X(compress)s +1831 X(\257ag)s +2258 X(change)s +2565 X(newlines)s +2945 X(in)s +3048 X(text)s +3223 X(to)s +3326 X(spaces)s +514 X +6840 Y +1234 X(nocompress)s +1831 X(\257ag)s +2258 X(don't)s +2494 X(compress)s +514 X +6960 Y +1234 X(split)s +1831 X(\257ag)s +2258 X(don't)s +2494 X(combine)s +2863 X(multiple)s +3222 X(\256elds)s +3464 X(into)s +3645 X(a)s +3714 X(single)s +3978 X(\256eld)s +514 X +7080 Y +1234 X(nosplit)s +1831 X(\257ag)s +2258 X(combine)s +2627 X(multiple)s +2986 X(\256elds)s +3228 X(into)s +3409 X(a)s +3478 X(single)s +3742 X(\256eld)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 38 39 + +514 X +600 Y(MHL\(1\))s +2771 X(-38-)s +4839 X(MHL\(1\))s +514 X +960 Y +1234 X +0.0 10 10 f.R ft(newline)s +1831 X(\257ag)s +2258 X(print)s +2472 X(newline)s +2813 X(at)s +2910 X(end)s +3079 X(of)s +3187 X(components)s +3695 X(\(default\))s +514 X +1080 Y +1234 X(nonewline)s +1831 X(\257ag)s +2258 X(don't)s +2494 X(print)s +2708 X(newline)s +3049 X(at)s +3146 X(end)s +3315 X(of)s +3423 X(components)s +514 X +1200 Y +1234 X(format\256eld)s +1831 X(string)s +2258 X(format)s +2549 X(string)s +2802 X(for)s +2943 X(this)s +3113 X(component)s +3582 X(\(see)s +3767 X(below\))s +514 X +1320 Y +1234 X(addr\256eld)s +1831 X(\257ag)s +2258 X(\256eld)s +2461 X(contains)s +2819 X(addresses)s +514 X +1440 Y +1234 X(date\256eld)s +1831 X(\257ag)s +2258 X(\256eld)s +2461 X(contains)s +2819 X(dates)s +514 X +1680 Y +874 X(To)s +1016 X(specify)s +1335 X(the)s +1488 X(value)s +1735 X(of)s +1849 X(integer\261valued)s +2473 X(and)s +2648 X(string\261valued)s +3223 X(variables,)s +3639 X(follow)s +3931 X(their)s +4144 X(name)s +4390 X(with)s +4598 X(an)s +4722 X(equals\261sign)s +514 X +1800 Y +874 X(and)s +1051 X(the)s +1206 X(value.)s +1505 X(Integer\261valued)s +2136 X(variables)s +2529 X(are)s +2683 X(given)s +2937 X(decimal)s +3285 X(values,)s +3597 X(while)s +3851 X(string\261valued)s +4427 X(variables)s +4819 X(are)s +4972 X(given)s +514 X +1920 Y +874 X(arbitrary)s +1247 X(text)s +1427 X(bracketed)s +1844 X(by)s +1974 X(double\261quotes.)s +2637 X(If)s +2733 X(a)s +2807 X(value)s +3053 X(is)s +3150 X(su)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ixed)s +3502 X(by)s +3632 X(``/G'')s +3894 X(or)s +4007 X(``/L'',)s +4283 X(then)s +4485 X(its)s +4609 X(value)s +4854 X(is)s +4950 X(useful)s +514 X +2040 Y +874 X(in)s +977 X(a)s +1046 X(global\261only)s +1549 X(or)s +1657 X(local\261only)s +2104 X(context)s +2423 X(\(respectively\).)s +514 X +2280 Y +874 X(A)s +971 X(line)s +1146 X(of)s +1254 X(the)s +1401 X(form:)s +514 X +2520 Y +974 X(ignores=component,...)s +514 X +2760 Y +874 X(speci\256es)s +1243 X(a)s +1312 X(list)s +1460 X(of)s +1568 X(components)s +2076 X(which)s +2345 X(are)s +2491 X(never)s +2737 X(output.)s +514 X +3000 Y +874 X(The)s +1062 X(component)s +1539 X(``MessageName'')s +2291 X(\(case\261insensitive\))s +3039 X(will)s +3228 X(output)s +3517 X(the)s +3672 X(actual)s +3942 X(message)s +4312 X(name)s +4560 X(\(\256le)s +4753 X(name\))s +5034 X(pre-)s +514 X +3120 Y +874 X(ceded)s +1141 X(by)s +1276 X(the)s +1433 X(folder)s +1706 X(name)s +1957 X(if)s +2053 X(one)s +2232 X(is)s +2334 X(speci\256ed)s +2723 X(or)s +2840 X(found)s +3107 X(in)s +3219 X(the)s +3375 X(environment.)s +3964 X(The)s +4153 X(format)s +4453 X(is)s +4554 X(identical)s +4932 X(to)s +5044 X(that)s +514 X +3240 Y +874 X(produced)s +1270 X(by)s +1395 X(the)s +1542 X(`\261header')s +1948 X(option)s +2229 X(to)s +2332 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(.)s +514 X +3480 Y +874 X(The)s +1066 X(component)s +1547 X(``Extras'')s +1971 X(will)s +2164 X(output)s +2457 X(all)s +2594 X(of)s +2714 X(the)s +2873 X(components)s +3393 X(of)s +3513 X(the)s +3672 X(message)s +4047 X(which)s +4327 X(were)s +4556 X(not)s +4720 X(matched)s +5094 X(by)s +514 X +3600 Y +874 X(explicit)s +1206 X(components,)s +1746 X(or)s +1860 X(included)s +2235 X(in)s +2344 X(the)s +2497 X(ignore)s +2783 X(list.)s +2987 X(If)s +3084 X(this)s +3260 X(component)s +3735 X(is)s +3833 X(not)s +3992 X(speci\256ed,)s +4403 X(an)s +4528 X(ignore)s +4814 X(list)s +4968 X(is)s +5066 X(not)s +514 X +3720 Y +874 X(needed)s +1181 X(since)s +1411 X(all)s +1536 X(non\261speci\256ed)s +2116 X(components)s +2624 X(will)s +2805 X(be)s +2924 X(ignored.)s +514 X +3960 Y +874 X(If)s +973 X(``nocomponent'')s +1682 X(is)s +1782 X(NOT)s +2020 X(speci\256ed,)s +2433 X(then)s +2638 X(the)s +2793 X(component)s +3270 X(name)s +3519 X(will)s +3708 X(be)s +3835 X(output)s +4124 X(as)s +4240 X(it)s +4328 X(appears)s +4664 X(in)s +4774 X(the)s +4928 X(format)s +514 X +4080 Y +874 X(\256le.)s +514 X +4320 Y +874 X(The)s +1054 X(default)s +1356 X(format)s +1647 X(is:)s +514 X +4560 Y +1234 X(:)s +1287 X(--)s +1378 X(using)s +1620 X(template)s +1989 X(mhl.format)s +2461 X(--)s +514 X +4680 Y +1234 X(over\257owtext="***",over\257owo)s +Cff(set=5)s +514 X +4800 Y +1234 X(leftadjust,compwidth=9)s +514 X +4920 Y +1234 X(ignores=msgid,message-id,received)s +514 X +5040 Y +1234 X(Date:format\256eld="%<\(nodate{text}\)%{text}%|%\(pretty{text}\)%>")s +514 X +5160 Y +1234 X(To:)s +514 X +5280 Y +1234 X(cc:)s +514 X +5400 Y +1234 X(:)s +514 X +5520 Y +1234 X(From:)s +514 X +5640 Y +1234 X(Subject:)s +514 X +5760 Y +1234 X(:)s +514 X +5880 Y +1234 X(extras:nocomponent)s +514 X +6000 Y +1234 X(:)s +514 X +6120 Y +1234 X(body:nocomponent,over\257owtext=,over\257owo)s +Cff(set=0,noleftadjust)s +514 X +6360 Y +874 X(The)s +1062 X(variable)s +1416 X(``format\256eld'')s +2024 X(speci\256es)s +2400 X(a)s +2476 X(format)s +2774 X(string)s +3034 X(\(see)s +3226 X +0.0 10 10 f.I ft(mh\261format)s +3715 X +0.0 10 10 f.R ft(\(5\)\).)s +3946 X(The)s +4133 X(\257ag)s +4315 X(variables)s +4707 X(``addr\256eld'')s +514 X +6480 Y +874 X(and)s +1057 X(``date\256eld'')s +1572 X(\(which)s +1888 X(are)s +2048 X(mutually)s +2443 X(exclusive\),)s +2917 X(tell)s +3083 X +0.0 10 10 f.I ft(mhl)s +3271 X +0.0 10 10 f.R ft(to)s +3387 X(interpret)s +3763 X(the)s +3923 X(escapes)s +4265 X(in)s +4381 X(the)s +4541 X(format)s +4845 X(string)s +5111 X(as)s +514 X +6600 Y +874 X(either)s +1126 X(addresses)s +1533 X(or)s +1641 X(dates,)s +1896 X(respectively.)s +514 X +6840 Y +874 X(By)s +1019 X(default,)s +1349 X +0.0 10 10 f.I ft(mhl)s +1527 X +0.0 10 10 f.R ft(does)s +1738 X(not)s +1894 X(apply)s +2144 X(any)s +2316 X(formatting)s +2766 X(string)s +3022 X(to)s +3128 X(\256elds)s +3373 X(containing)s +3823 X(address)s +4149 X(or)s +4259 X(dates)s +4491 X(\(see)s +4678 X +0.0 10 10 f.I ft(mh\261mail)s +5078 X +0.0 10 10 f.R ft(\(5\))s +514 X +6960 Y +874 X(for)s +1020 X(a)s +1094 X(list)s +1247 X(of)s +1360 X(these)s +1595 X(\256elds\).)s +1925 X(Note)s +2149 X(that)s +2329 X(this)s +2503 X(results)s +2793 X(in)s +2900 X(faster)s +3150 X(operation)s +3556 X(since)s +3790 X +0.0 10 10 f.I ft(mhl)s +3969 X +0.0 10 10 f.R ft(must)s +4193 X(parse)s +4432 X(both)s +4639 X(addresses)s +5050 X(and)s +514 X +7080 Y +874 X(dates)s +1117 X(in)s +1233 X(order)s +1481 X(to)s +1597 X(apply)s +1857 X(a)s +1939 X(format)s +2243 X(string)s +2508 X(to)s +2623 X(them.)s +2910 X(If)s +3013 X(desired,)s +3363 X +0.0 10 10 f.I ft(mhl)s +3550 X +0.0 10 10 f.R ft(can)s +3725 X(be)s +3856 X(given)s +4115 X(a)s +4196 X(default)s +4510 X(format)s +4813 X(string)s +5078 X(for)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 39 40 + +514 X +600 Y(MHL\(1\))s +2771 X(-39-)s +4839 X(MHL\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(either)s +1131 X(address)s +1460 X(or)s +1573 X(date)s +1769 X(\256elds)s +2016 X(\(but)s +2207 X(not)s +2365 X(both\).)s +2656 X(To)s +2797 X(do)s +2927 X(this,)s +3127 X(on)s +3257 X(a)s +3331 X(global)s +3611 X(line)s +3791 X(specify:)s +4137 X(either)s +4394 X(the)s +4546 X(\257ag)s +4726 X(addr\256eld)s +5111 X(or)s +514 X +1080 Y +874 X(date\256eld,)s +1268 X(along)s +1515 X(with)s +1718 X(the)s +1865 X(apropriate)s +2294 X(format\256eld)s +2763 X(variable)s +3109 X(string.)s +514 X +1242 Y +0.0 8 8 f.B ft(Files)s +514 X +1362 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/mhl.format)s +2463 X(The)s +2643 X(message)s +3006 X(template)s +514 X +1482 Y +874 X(or)s +982 X(/mhl.format)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(template)s +514 X +1602 Y +874 X($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +1806 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1926 Y +874 X +0.0 10 10 f.R ft(moreproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(use)s +2420 X(as)s +2528 X(interactive)s +2974 X(front\261end)s +514 X +2130 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2250 Y +874 X +0.0 10 10 f.R ft(show\(1\),)s +1251 X(ap\(8\),)s +1511 X(dp\(8\))s +514 X +2454 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2574 Y +874 X +0.0 10 10 f.R ft(`\261bell')s +514 X +2694 Y +874 X(`\261noclear')s +514 X +2814 Y +874 X(`\261length)s +1232 X(40')s +514 X +2934 Y +874 X(`\261width)s +1210 X(80')s +514 X +3138 Y +0.0 8 8 f.B ft(Context)s +514 X +3258 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3462 Y +0.0 8 8 f.B ft(Bugs)s +514 X +3582 Y +874 X +0.0 10 10 f.R ft(There)s +1131 X(should)s +1423 X(be)s +1542 X(some)s +1778 X(way)s +1969 X(to)s +2072 X(pass)s +2269 X(`bell')s +2510 X(and)s +2679 X(`clear')s +2963 X(information)s +3460 X(to)s +3563 X(the)s +3710 X(front\261end.)s +514 X +3822 Y +874 X(On)s +1021 X(hosts)s +1252 X(where)s +1520 X +0.0 10 10 f.I ft(MH)s +1700 X +0.0 10 10 f.R ft(was)s +1880 X(con\256gured)s +2332 X(with)s +2535 X(the)s +2682 X(BERK)s +2974 X(option,)s +3280 X(address)s +3604 X(parsing)s +3923 X(is)s +4015 X(not)s +4168 X(enabled.)s +514 X +4062 Y +874 X(The)s +1054 X(``nonewline'')s +1627 X(option)s +1908 X(interacts)s +2271 X(badly)s +2518 X(with)s +2721 X(``compress'')s +3255 X(and)s +3424 X(``split''.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 40 41 + +514 X +600 Y(MHMAIL\(1\))s +2771 X(-40-)s +4634 X(MHMAIL\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mhmail)s +1205 X(\261)s +1280 X(send)s +1488 X(or)s +1596 X(read)s +1792 X(mail)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(mhmail)s +1205 X([)s +1263 X(addrs ...)s +1604 X([\261body text])s +2120 X([\261cc addrs ...])s +2690 X([\261from addr])s +3227 X([\261subject)s +3618 X(subject]])s +3992 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(MHmail)s +1243 X +0.0 10 10 f.R ft(is)s +1346 X(intended)s +1726 X(as)s +1845 X(a)s +1925 X(replacement)s +2448 X(for)s +2599 X(the)s +2756 X(standard)s +3129 X(Bell)s +3331 X(mail)s +3544 X(program)s +3917 X(\()s +0.0 10 10 f.I ft(bellmail)s +4328 X +0.0 10 10 f.R ft(\(1\)\),)s +4537 X(compatible)s +5016 X(with)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +1114 X(When)s +1387 X(invoked)s +1744 X(without)s +2085 X(arguments,)s +2561 X(it)s +2652 X(simply)s +2960 X(invokes)s +3306 X +0.0 10 10 f.I ft(inc)s +3478 X +0.0 10 10 f.R ft(\(1\))s +3629 X(to)s +3742 X(incorporate)s +4231 X(new)s +4432 X(messages)s +4844 X(from)s +5072 X(the)s +514 X +2160 Y +874 X(user's)s +1155 X(maildrop.)s +1609 X(When)s +1890 X(one)s +2077 X(or)s +2203 X(more)s +2451 X(users)s +2699 X(is)s +2809 X(speci\256ed,)s +3232 X(a)s +3319 X(message)s +3700 X(is)s +3809 X(read)s +4022 X(from)s +4258 X(the)s +4422 X(standard)s +4802 X(input)s +5050 X(and)s +514 X +2280 Y +874 X(spooled)s +1213 X(to)s +1319 X(a)s +1391 X(temporary)s +1829 X(\256le.)s +2035 X +0.0 10 10 f.I ft(MHmail)s +2396 X +0.0 10 10 f.R ft(then)s +2596 X(invokes)s +2935 X +0.0 10 10 f.I ft(post)s +3152 X +0.0 10 10 f.R ft(\(8\))s +3296 X(with)s +3502 X(the)s +3652 X(name)s +3896 X(of)s +4007 X(the)s +4157 X(temporary)s +4595 X(\256le)s +4751 X(as)s +4862 X(its)s +4984 X(argu-)s +514 X +2400 Y +874 X(ment)s +1099 X(to)s +1202 X(deliver)s +1504 X(the)s +1651 X(message)s +2014 X(to)s +2117 X(the)s +2264 X(speci\256ed)s +2644 X(user.)s +514 X +2640 Y +874 X(The)s +1057 X(`\261subject subject')s +1792 X(switch)s +2081 X(can)s +2247 X(be)s +2369 X(used)s +2580 X(to)s +2686 X(specify)s +3002 X(the)s +3152 X(``Subject:'')s +3640 X(\256eld)s +3846 X(of)s +3957 X(the)s +4106 X(message.)s +4521 X(The)s +4703 X(`\261body text')s +514 X +2760 Y +874 X(switch)s +1166 X(can)s +1335 X(be)s +1460 X(used)s +1674 X(to)s +1783 X(specify)s +2102 X(the)s +2255 X(text)s +2436 X(of)s +2550 X(the)s +2703 X(message;)s +3100 X(if)s +3192 X(it)s +3278 X(is)s +3375 X(speci\256ed,)s +3785 X(then)s +3987 X(the)s +4139 X(standard)s +4507 X(input)s +4743 X(is)s +4840 X(not)s +4998 X(read.)s +514 X +2880 Y +874 X(Normally,)s +1321 X(addresses)s +1742 X(appearing)s +2174 X(as)s +2296 X(arguments)s +2751 X(are)s +2911 X(put)s +3078 X(in)s +3195 X(the)s +3356 X(``To:'')s +3666 X(\256eld.)s +3933 X(If)s +4038 X(the)s +4199 X(`\261cc')s +4442 X(switch)s +4742 X(is)s +4848 X(used,)s +5094 X(all)s +514 X +3000 Y +874 X(addresses)s +1281 X(following)s +1695 X(it)s +1776 X(are)s +1922 X(placed)s +2207 X(in)s +2310 X(the)s +2457 X(``cc:'')s +2730 X(\256eld.)s +514 X +3240 Y +874 X(By)s +1028 X(using)s +1282 X(`\261from addr',)s +1856 X(you)s +2042 X(can)s +2216 X(specify)s +2540 X(the)s +2698 X(``From:'')s +3111 X(header)s +3412 X(of)s +3531 X(the)s +3689 X(draft.)s +3963 X(Naturally,)s +4401 X +0.0 10 10 f.I ft(post)s +4604 X +0.0 10 10 f.R ft(will)s +4796 X(\256ll\261in)s +5072 X(the)s +514 X +3360 Y +874 X(``Sender:'')s +1336 X(header)s +1626 X(correctly.)s +514 X +3600 Y +874 X(This)s +1078 X(program)s +1442 X(is)s +1535 X(intended)s +1905 X(for)s +2047 X(the)s +2195 X(use)s +2354 X(of)s +2463 X(programs)s +2866 X(such)s +3075 X(as)s +3184 X +0.0 10 10 f.I ft(at)s +3312 X +0.0 10 10 f.R ft(\(1\),)s +3479 X(which)s +3748 X(expect)s +4033 X(to)s +4136 X(send)s +4344 X(mail)s +4547 X(automatically)s +5116 X(to)s +514 X +3720 Y +874 X(various)s +1204 X(users.)s +1495 X(Normally,)s +1939 X(real)s +2124 X(people)s +2426 X(\(as)s +2578 X(opposed)s +2947 X(to)s +3061 X(the)s +3219 X(``unreal'')s +3636 X(ones\))s +3888 X(will)s +4080 X(prefer)s +4352 X(to)s +4465 X(use)s +4633 X +0.0 10 10 f.I ft(comp)s +4899 X +0.0 10 10 f.R ft(\(1\))s +5050 X(and)s +514 X +3840 Y +874 X +0.0 10 10 f.I ft(send)s +1107 X +0.0 10 10 f.R ft(\(1\))s +1248 X(to)s +1351 X(send)s +1559 X(messages.)s +514 X +4002 Y +0.0 8 8 f.B ft(Files)s +514 X +4122 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/bin/inc)s +2463 X(Program)s +2832 X(to)s +2935 X(incorporate)s +3414 X(a)s +3483 X(maildrop)s +3869 X(into)s +4050 X(a)s +4119 X(folder)s +514 X +4242 Y +874 X(/usr/bs/mh-beta/lib/post)s +2463 X(Program)s +2832 X(to)s +2935 X(deliver)s +3237 X(a)s +3306 X(message)s +514 X +4362 Y +874 X(/tmp/mhmail*)s +2463 X(Temporary)s +2931 X(copy)s +3150 X(of)s +3258 X(message)s +514 X +4566 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4686 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4890 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5010 Y +874 X +0.0 10 10 f.R ft(inc\(1\),)s +1162 X(post\(8\))s +514 X +5214 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5334 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5538 Y +0.0 8 8 f.B ft(Context)s +514 X +5658 Y +874 X +0.0 10 10 f.R ft(If)s +965 X +0.0 10 10 f.I ft(inc)s +1112 X +0.0 10 10 f.R ft(is)s +1204 X(invoked,)s +1576 X(then)s +1773 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft('s)s +1992 X(context)s +2311 X(changes)s +2657 X(occur.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 41 42 + +514 X +600 Y(MHN\(1\))s +2771 X(-41-)s +4834 X(MHN\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mhn)s +1077 X(\261)s +1152 X(multi-media)s +1666 X(MH)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(mhn)s +1077 X([[+folder])s +1495 X([msgs])s +1792 X(|)s +1837 X([\261\256le)s +2098 X(\256le]])s +514 X +1560 Y +1234 X([\261part)s +1522 X(number]...)s +1960 X([\261type)s +2265 X(content]...)s +514 X +1680 Y +1234 X([\261list)s +1490 X([\261headers])s +1960 X([\261noheaders])s +514 X +1800 Y +1409 X([\261realsize])s +1879 X([\261norealsize]])s +2457 X([-nolist])s +514 X +1920 Y +1234 X([\261show)s +1578 X([\261serialonly])s +2138 X([\261noserialonly])s +514 X +2040 Y +1409 X([\261form)s +1736 X(form\256le])s +2141 X([\261pause])s +2534 X([\261nopause]])s +3035 X([\261noshow])s +514 X +2160 Y +1234 X([\261store)s +1561 X([\261auto])s +1899 X([\261noauto]])s +2345 X([\261nostore])s +514 X +2280 Y +1234 X([\261cache])s +1601 X([\261nocache])s +2068 X([\261rcache)s +2460 X(policy])s +2768 X([\261wcache)s +3199 X(policy])s +514 X +2400 Y +1234 X([\261check])s +1632 X([\261nocheck])s +514 X +2520 Y +1234 X([\261ebcdicsafe])s +1820 X([\261noebcdicsafe])s +514 X +2640 Y +1234 X([\261rfc934mode])s +1882 X([\261norfc934mode])s +514 X +2760 Y +1234 X([\261verbose])s +1710 X([\261noverbose])s +514 X +2880 Y +1234 X([\261help])s +514 X +3120 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +3360 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X +0.0 10 10 f.I ft(mhn)s +1251 X +0.0 10 10 f.R ft(command)s +1670 X(manipulates)s +2178 X(multi-media)s +2692 X(messages)s +3094 X(as)s +3202 X(speci\256ed)s +3582 X(in)s +3685 X(RFC)s +3900 X(1521.)s +514 X +3600 Y +874 X(Four)s +1098 X(action)s +1377 X(switches)s +1756 X(direct)s +2018 X(the)s +2175 X(operation)s +2587 X(of)s +2705 X +0.0 10 10 f.I ft(mhn)s +0.0 10 10 f.R ft(,)s +2937 X(namely)s +3265 X(`\261list',)s +3563 X(`\261show',)s +3949 X(`\261store',)s +4318 X(and)s +4496 X(`-cache'.)s +4905 X(Any)s +5111 X(of)s +514 X +3720 Y +874 X(these)s +1116 X(switches)s +1497 X(may)s +1706 X(be)s +1837 X(used)s +2056 X(concurrently.)s +2646 X(Normally)s +3065 X(these)s +3306 X(action)s +3586 X(switches)s +3966 X(will)s +4158 X(operate)s +4487 X(on)s +4623 X(the)s +4781 X(content)s +5111 X(of)s +514 X +3840 Y +874 X(each)s +1088 X(of)s +1203 X(the)s +1357 X(named)s +1655 X(messages.)s +2113 X(However,)s +2534 X(by)s +2665 X(using)s +2913 X(the)s +3066 X(`\261part')s +3368 X(and)s +3543 X(`\261type')s +3862 X(switches,)s +4262 X(the)s +4415 X(scope)s +4673 X(of)s +4787 X(the)s +4940 X(opera-)s +514 X +3960 Y +874 X(tion)s +1055 X(can)s +1218 X(be)s +1337 X(focused)s +1672 X(on)s +1797 X(particular)s +2204 X(subparts)s +2562 X(\(of)s +2703 X(a)s +2772 X(multipart)s +3164 X(content\))s +3516 X(and/or)s +3796 X(particular)s +4203 X(content)s +4522 X(types.)s +514 X +4200 Y +874 X(A)s +977 X(part)s +1163 X(speci\256cation)s +1698 X(consists)s +2045 X(of)s +2158 X(a)s +2232 X(series)s +2489 X(of)s +2602 X(numbers)s +2976 X(separated)s +3382 X(by)s +3512 X(dots.)s +3759 X(For)s +3928 X(example,)s +4321 X(in)s +4429 X(a)s +4503 X(multipart)s +4900 X(content)s +514 X +4320 Y +874 X(containing)s +1322 X(three)s +1547 X(parts,)s +1792 X(these)s +2023 X(would)s +2299 X(be)s +2419 X(named)s +2710 X(as)s +2818 X(1,)s +2918 X(2,)s +3018 X(and)s +3187 X(3,)s +3287 X(respectively.)s +3844 X(If)s +3935 X(part)s +4115 X(2)s +4190 X(was)s +4370 X(also)s +4556 X(a)s +4625 X(multipart)s +5017 X(con-)s +514 X +4440 Y +874 X(tent)s +1050 X(containing)s +1498 X(two)s +1674 X(parts,)s +1919 X(these)s +2150 X(would)s +2426 X(be)s +2546 X(named)s +2838 X(as)s +2947 X(2.1)s +3098 X(and)s +3268 X(2.2,)s +3444 X(respectively.)s +4002 X(Note)s +4222 X(that)s +4398 X(the)s +4545 X(`\261part')s +4841 X(switch)s +5127 X(is)s +514 X +4560 Y +874 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ective)s +1245 X(for)s +1389 X(only)s +1595 X(messages)s +2000 X(containing)s +2450 X(a)s +2522 X(multipart)s +2917 X(content.)s +3289 X(If)s +3383 X(a)s +3455 X(message)s +3820 X(has)s +3980 X(some)s +4218 X(other)s +4450 X(kind)s +4655 X(of)s +4765 X(content,)s +5111 X(or)s +514 X +4680 Y +874 X(if)s +961 X(the)s +1108 X(part)s +1288 X(is)s +1380 X(itself)s +1605 X(another)s +1929 X(multipart)s +2321 X(content,)s +2665 X(the)s +2812 X(`\261part')s +3108 X(switch)s +3394 X(will)s +3575 X(not)s +3728 X(prevent)s +4052 X(the)s +4199 X(content)s +4518 X(from)s +4737 X(being)s +4984 X(acted)s +514 X +4800 Y +874 X(upon.)s +514 X +5040 Y +874 X(A)s +986 X(content)s +1320 X(speci\256cation)s +1865 X(consists)s +2222 X(of)s +2345 X(a)s +2429 X(content)s +2763 X(type)s +2974 X(and)s +3157 X(a)s +3240 X(subtype.)s +3640 X(The)s +3834 X(initial)s +4107 X(list)s +4269 X(of)s +4391 X(``standard'')s +4900 X(content)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 42 43 + +514 X +600 Y(MHN\(1\))s +2771 X(-42-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(types)s +1123 X(and)s +1305 X(subtypes)s +1693 X(can)s +1869 X(be)s +2001 X(found)s +2271 X(in)s +2386 X(RFC)s +2613 X(1521.)s +2900 X(A)s +3009 X(list)s +3169 X(of)s +3289 X(commonly)s +3754 X(used)s +3974 X(contents)s +4344 X(is)s +4448 X(brie\257y)s +4746 X(reproduced)s +514 X +1080 Y +874 X(here:)s +514 X +1320 Y +1234 X(Type)s +1728 X(Subtypes)s +514 X +1440 Y +1234 X(----)s +1728 X(--------)s +514 X +1560 Y +1234 X(text)s +1728 X(plain)s +514 X +1680 Y +1234 X(multipart)s +1728 X(mixed,)s +2028 X(alternative,)s +2499 X(digest,)s +2788 X(parallel)s +514 X +1800 Y +1234 X(message)s +1728 X(rfc822,)s +2038 X(partial,)s +2343 X(external-body)s +514 X +1920 Y +1234 X(application)s +1728 X(octet-stream,)s +2271 X(postscript)s +514 X +2040 Y +1234 X(image)s +1728 X(jpeg,)s +1950 X(gif,)s +2111 X(x-pbm,)s +2422 X(x-pgm,)s +2733 X(x-ppm,)s +3044 X(x-xwd)s +514 X +2160 Y +1234 X(audio)s +1728 X(basic)s +514 X +2280 Y +1234 X(video)s +1728 X(mpeg)s +514 X +2520 Y +874 X(Subtypes)s +1273 X(are)s +1426 X(mandatory.)s +1935 X(To)s +2078 X(specify)s +2398 X(a)s +2474 X(content,)s +2825 X(regardless)s +3261 X(of)s +3375 X(its)s +3501 X(subtype,)s +3868 X(just)s +4044 X(use)s +4208 X(the)s +4361 X(name)s +4608 X(of)s +4722 X(the)s +4875 X(content,)s +514 X +2640 Y +874 X(e.g.,)s +1073 X(``audio''.)s +1507 X(To)s +1648 X(specify)s +1966 X(a)s +2039 X(speci\256c)s +2373 X(subtype,)s +2738 X(separate)s +3093 X(the)s +3244 X(two)s +3423 X(with)s +3630 X(a)s +3703 X(slash,)s +3957 X(e.g.,)s +4155 X(``audio/basic''.)s +4821 X(Note)s +5044 X(that)s +514 X +2760 Y +874 X(regardless)s +1315 X(of)s +1435 X(the)s +1594 X(values)s +1886 X(given)s +2145 X(to)s +2260 X(the)s +2419 X(`\261type')s +2744 X(switch,)s +3067 X(a)s +3148 X(multipart)s +3552 X(content)s +3883 X(\(of)s +4036 X(any)s +4217 X(subtype)s +4565 X(listed)s +4819 X(above\))s +5127 X(is)s +514 X +2880 Y +874 X(always)s +1204 X(acted)s +1467 X(upon.)s +1770 X(Further)s +2117 X(note)s +2342 X(that)s +2545 X(if)s +2659 X(the)s +2833 X(`\261type')s +3173 X(switch)s +3486 X(is)s +3605 X(used,)s +3865 X(and)s +4061 X(it)s +4169 X(is)s +4288 X(desirable)s +4700 X(to)s +4830 X(act)s +4998 X(on)s +5150 X(a)s +514 X +3000 Y +874 X(message/external-body)s +1836 X(content,)s +2197 X(then)s +2411 X(the)s +2575 X(`\261type')s +2905 X(switch)s +3208 X(must)s +3444 X(be)s +3579 X(used)s +3803 X(twice:)s +4088 X(once)s +4317 X(for)s +4474 X(message/external-)s +514 X +3120 Y +874 X(body)s +1099 X(and)s +1268 X(once)s +1481 X(for)s +1622 X(the)s +1769 X(content)s +2088 X(externally)s +2512 X(referenced.)s +514 X +3360 Y +874 X(Each)s +1104 X(content)s +1429 X(may)s +1632 X(optionally)s +2069 X(have)s +2288 X(an)s +2413 X(integrity)s +2783 X(check)s +3046 X(associated)s +3487 X(with)s +3696 X(it.)s +3832 X(If)s +3928 X(present)s +4246 X(and)s +4420 X(the)s +4572 X(`-check')s +4933 X(switch)s +514 X +3480 Y +874 X(is)s +966 X(given,)s +1238 X(then)s +1435 X +0.0 10 10 f.I ft(mhn)s +1632 X +0.0 10 10 f.R ft(will)s +1813 X(attempt)s +2138 X(to)s +2241 X(verify)s +2504 X(the)s +2651 X(integrity)s +3015 X(of)s +3123 X(the)s +3270 X(content.)s +514 X +3720 Y +874 X(The)s +1054 X(option)s +1335 X(`\261\256le \256le')s +1757 X(directs)s +2048 X +0.0 10 10 f.I ft(mhn)s +2245 X +0.0 10 10 f.R ft(to)s +2348 X(use)s +2506 X(the)s +2653 X(speci\256ed)s +3033 X(\256le)s +3186 X(as)s +3294 X(the)s +3441 X(source)s +3726 X(message,)s +4114 X(rather)s +4371 X(than)s +4568 X(a)s +4637 X(message)s +5000 X(from)s +514 X +3840 Y +874 X(a)s +958 X(folder.)s +1286 X(Note)s +1520 X(that)s +1710 X(the)s +1872 X(\256le)s +2040 X(should)s +2347 X(be)s +2481 X(a)s +2565 X(validly)s +2883 X(formatted)s +3310 X(message,)s +3712 X(just)s +3896 X(like)s +4085 X(any)s +4268 X(other)s +4512 X +0.0 10 10 f.I ft(MH)s +4706 X +0.0 10 10 f.R ft(message.)s +5133 X(It)s +514 X +3960 Y +874 X(should)s +1171 X +0.0 10 10 f.B ft(NOT)s +1418 X +0.0 10 10 f.R ft(be)s +1542 X(in)s +1650 X(mail)s +1858 X(drop)s +2071 X(format)s +2367 X(\(to)s +2508 X(convert)s +2837 X(a)s +2911 X(\256le)s +3069 X(in)s +3177 X(mail)s +3385 X(drop)s +3598 X(format)s +3893 X(to)s +4000 X(a)s +4073 X(folder)s +4340 X(of)s +4452 X +0.0 10 10 f.I ft(MH)s +4636 X +0.0 10 10 f.R ft(messages,)s +5067 X(see)s +514 X +4080 Y +874 X +0.0 10 10 f.I ft(inc)s +1046 X +0.0 10 10 f.R ft(\(1\)\).)s +514 X +4440 Y +694 X +0.0 8 8 f.B ft(Listing)s +954 X(the)s +1080 X(Contents)s +514 X +4680 Y +874 X +0.0 10 10 f.R ft(The)s +1082 X(`\261list')s +1374 X(switch)s +1688 X(tells)s +1907 X +0.0 10 10 f.I ft(mhn)s +2131 X +0.0 10 10 f.R ft(to)s +2261 X(list)s +2436 X(the)s +2610 X(table)s +2856 X(of)s +2991 X(contents)s +3376 X(associated)s +3838 X(with)s +4068 X(the)s +4242 X(named)s +4560 X(messages.)s +5039 X(The)s +514 X +4800 Y +874 X(`\261headers')s +1331 X(switch)s +1629 X(indicates)s +2021 X(that)s +2208 X(a)s +2289 X(one-line)s +2653 X(banner)s +2961 X(should)s +3265 X(be)s +3395 X(displayed)s +3814 X(above)s +4088 X(the)s +4246 X(listing.)s +4583 X(The)s +4774 X(`\261realsize')s +514 X +4920 Y +874 X(switch)s +1166 X(tells)s +1364 X +0.0 10 10 f.I ft(mhn)s +1567 X +0.0 10 10 f.R ft(to)s +1676 X(evaluate)s +2039 X(the)s +2192 X(``native'')s +2599 X(\(decoded\))s +3028 X(format)s +3325 X(of)s +3439 X(each)s +3652 X(content)s +3977 X(prior)s +4202 X(to)s +4311 X(listing.)s +4642 X(This)s +4850 X(provides)s +514 X +5040 Y +874 X(an)s +993 X(accurate)s +1349 X(count)s +1596 X(at)s +1693 X(the)s +1840 X(expense)s +2186 X(of)s +2294 X(a)s +2363 X(small)s +2605 X(delay.)s +514 X +5400 Y +694 X +0.0 8 8 f.B ft(Showing)s +1009 X(the)s +1135 X(Contents)s +514 X +5640 Y +874 X +0.0 10 10 f.R ft(The)s +1060 X(`\261show')s +1418 X(switch)s +1710 X(tells)s +1908 X +0.0 10 10 f.I ft(mhn)s +2111 X +0.0 10 10 f.R ft(to)s +2220 X(display)s +2539 X(the)s +2691 X(contents)s +3054 X(of)s +3167 X(the)s +3319 X(named)s +3615 X(messages.)s +4072 X(The)s +4257 X(headers)s +4591 X(of)s +4704 X(the)s +4856 X(message)s +514 X +5760 Y +874 X(are)s +1022 X(displayed)s +1431 X(with)s +1635 X(the)s +1783 X +0.0 10 10 f.I ft(mhlproc)s +0.0 10 10 f.R ft(,)s +2167 X(using)s +2410 X(format)s +2702 X(\256le)s +2856 X +0.0 10 10 f.I ft(mhl.headers)s +0.0 10 10 f.R ft(.)s +3423 X(\(The)s +3637 X(choice)s +3923 X(of)s +4032 X(format)s +4324 X(\256le)s +4478 X(can)s +4642 X(be)s +4762 X(overridden)s +514 X +5880 Y +874 X(by)s +999 X(the)s +1146 X(`\261form)s +1473 X(form\256le')s +1853 X(switch.\))s +514 X +6120 Y +874 X +0.0 10 10 f.I ft(mhn)s +1092 X +0.0 10 10 f.R ft(will)s +1294 X(look)s +1518 X(for)s +1680 X(information)s +2197 X(in)s +2320 X(the)s +2487 X(user's)s +2770 X(pro\256le)s +3076 X(to)s +3199 X(determine)s +3643 X(how)s +3860 X(the)s +4027 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erent)s +4410 X(contents)s +4788 X(should)s +5100 X(be)s +514 X +6240 Y +874 X(displayed.)s +1345 X(This)s +1561 X(is)s +1666 X(accomplished)s +2253 X(by)s +2390 X(consulting)s +2844 X(a)s +2925 X(display)s +3251 X(string,)s +3541 X(and)s +3722 X(executing)s +4147 X(it)s +4240 X(under)s +4504 X +0.0 10 10 f.B ft(/bin/sh)s +0.0 10 10 f.R ft(,)s +4857 X(with)s +5072 X(the)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 43 44 + +514 X +600 Y(MHN\(1\))s +2771 X(-43-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(standard)s +1237 X(input)s +1468 X(set)s +1604 X(to)s +1707 X(the)s +1854 X(content.)s +2223 X(The)s +2403 X(display)s +2717 X(string)s +2970 X(may)s +3167 X(contain)s +3486 X(these)s +3716 X(escapes:)s +514 X +1200 Y +1234 X(%a)s +1423 X(additional)s +1848 X(arguments)s +514 X +1320 Y +1234 X(%e)s +1423 X(exclusive)s +1825 X(execution)s +514 X +1440 Y +1234 X(%f)s +1423 X(\256lename)s +1792 X(containing)s +2239 X(content)s +514 X +1560 Y +1234 X(%F)s +1423 X(%e,)s +1600 X(%f,)s +1766 X(and)s +1935 X(stdin)s +2155 X(is)s +2247 X(terminal)s +2605 X(not)s +2758 X(content)s +514 X +1680 Y +1234 X(%l)s +1423 X(display)s +1737 X(listing)s +2013 X(prior)s +2232 X(to)s +2335 X(displaying)s +2777 X(content)s +514 X +1800 Y +1234 X(%p)s +1423 X(%l,)s +1584 X(and)s +1753 X(ask)s +1911 X(for)s +2052 X(con\256rmation)s +514 X +1920 Y +1234 X(%s)s +1423 X(subtype)s +514 X +2040 Y +1234 X(%d)s +1423 X(content)s +1742 X(description)s +514 X +2280 Y +874 X(For)s +1043 X(those)s +1284 X(display)s +1603 X(strings)s +1900 X(containing)s +2352 X(the)s +2504 X(e-)s +2611 X(or)s +2724 X(F-escape,)s +3133 X +0.0 10 10 f.I ft(mhn)s +3335 X +0.0 10 10 f.R ft(will)s +3521 X(execute)s +3854 X(at)s +3955 X(most)s +4179 X(one)s +4352 X(of)s +4464 X(these)s +4698 X(at)s +4799 X(any)s +4972 X(given)s +514 X +2400 Y +874 X(time.)s +1130 X(Although)s +1536 X(the)s +1686 X(F-escape)s +2068 X(expands)s +2423 X(to)s +2529 X(be)s +2651 X(the)s +2801 X(\256lename)s +3173 X(containing)s +3623 X(the)s +3772 X(content,)s +4118 X(the)s +4267 X(e-escape)s +4636 X(has)s +4796 X(no)s +4923 X(expan-)s +514 X +2520 Y +874 X(sion)s +1066 X(as)s +1174 X(far)s +1309 X(as)s +1417 X(the)s +1564 X(shell)s +1778 X(is)s +1870 X(concerned.)s +514 X +2760 Y +874 X(When)s +1143 X(the)s +1296 X(p-escape)s +1675 X(prompts)s +2034 X(for)s +2180 X(con\256rmation,)s +2746 X(typing)s +3032 X(INTR)s +3295 X(\(usually)s +3647 X(control-C\))s +4093 X(will)s +4279 X(tell)s +4437 X +0.0 10 10 f.I ft(mhn)s +4639 X +0.0 10 10 f.R ft(not)s +4797 X(to)s +4905 X(display)s +514 X +2880 Y +874 X(that)s +1051 X(content.)s +1422 X(\(The)s +1637 X(p-escape)s +2012 X(can)s +2177 X(be)s +2298 X(disabled)s +2658 X(by)s +2785 X(specifying)s +3227 X(`\261nopause'.\))s +3754 X(Further,)s +4099 X(when)s +4341 X +0.0 10 10 f.I ft(mhn)s +4539 X +0.0 10 10 f.R ft(is)s +4632 X(display)s +4947 X(a)s +5017 X(con-)s +514 X +3000 Y +874 X(tent,)s +1074 X(typing)s +1355 X(QUIT)s +1618 X(\(usually)s +1965 X(control-\\\))s +2367 X(will)s +2548 X(tell)s +2701 X +0.0 10 10 f.I ft(mhn)s +2898 X +0.0 10 10 f.R ft(to)s +3001 X(wrap)s +3225 X(things)s +3495 X(up)s +3620 X(immediately.)s +514 X +3240 Y +874 X(Note)s +1102 X(that)s +1286 X(if)s +1381 X(the)s +1537 X(content)s +1865 X(being)s +2121 X(displayed)s +2538 X(is)s +2639 X(multipart,)s +3065 X(but)s +3227 X(not)s +3389 X(one)s +3567 X(of)s +3684 X(the)s +3839 X(subtypes)s +4222 X(listed)s +4472 X(above,)s +4768 X(then)s +4973 X(the)s +5128 X(f-)s +514 X +3360 Y +874 X(and)s +1069 X(F-escapes)s +1513 X(expand)s +1852 X(to)s +1981 X(multiple)s +2366 X(\256lenames,)s +2825 X(one)s +3020 X(for)s +3187 X(each)s +3420 X(subordinate)s +3937 X(content.)s +4332 X(Further,)s +4702 X(stdin)s +4948 X(is)s +5066 X(not)s +514 X +3480 Y +874 X(redirected)s +1297 X(from)s +1516 X(the)s +1663 X(terminal)s +2021 X(to)s +2124 X(the)s +2271 X(content.)s +514 X +3720 Y +874 X(First,)s +1108 X +0.0 10 10 f.I ft(mhn)s +1305 X +0.0 10 10 f.R ft(will)s +1486 X(look)s +1689 X(for)s +1830 X(an)s +1949 X(entry)s +2179 X(of)s +2287 X(the)s +2434 X(form:)s +514 X +3960 Y +1234 X(mhn-show-/)s +514 X +4200 Y +874 X(to)s +984 X(determine)s +1415 X(the)s +1569 X(command)s +1995 X(to)s +2105 X(use)s +2270 X(to)s +2380 X(display)s +2701 X(the)s +2855 X(content.)s +3231 X(If)s +3329 X(this)s +3506 X(isn't)s +3715 X(found,)s +4004 X +0.0 10 10 f.I ft(mhn)s +4207 X +0.0 10 10 f.R ft(will)s +4394 X(look)s +4603 X(for)s +4750 X(an)s +4875 X(entry)s +5111 X(of)s +514 X +4320 Y +874 X(the)s +1021 X(form:)s +514 X +4560 Y +1234 X(mhn-show-)s +514 X +4800 Y +874 X(to)s +977 X(determine)s +1401 X(the)s +1548 X(display)s +1862 X(command.)s +2331 X(If)s +2422 X(this)s +2592 X(isn't)s +2795 X(found,)s +3078 X +0.0 10 10 f.I ft(mhn)s +3275 X +0.0 10 10 f.R ft(has)s +3433 X(two)s +3608 X(default)s +3910 X(values:)s +514 X +5040 Y +1234 X(mhn-show-text/plain:)s +2120 X(%pmoreproc)s +2660 X('%F')s +514 X +5160 Y +1234 X(mhn-show-message/rfc822:)s +2368 X(%pshow)s +2737 X(-\256le)s +2923 X('%F')s +514 X +5400 Y +874 X(If)s +967 X(neither)s +1271 X(apply,)s +1545 X +0.0 10 10 f.I ft(mhn)s +1744 X +0.0 10 10 f.R ft(will)s +1927 X(check)s +2186 X(to)s +2291 X(see)s +2445 X(if)s +2533 X(the)s +2682 X(message)s +3047 X(has)s +3207 X(a)s +3278 X(application/octet-stream)s +4270 X(content)s +4591 X(with)s +4796 X(parameter)s +514 X +5520 Y +874 X(``type=tar''.)s +1414 X(If)s +1505 X(so,)s +1644 X +0.0 10 10 f.I ft(mhn)s +1841 X +0.0 10 10 f.R ft(will)s +2022 X(use)s +2180 X(an)s +2299 X(appropriate)s +2778 X(command.)s +3247 X(If)s +3338 X(not,)s +3516 X +0.0 10 10 f.I ft(mhn)s +3713 X +0.0 10 10 f.R ft(will)s +3894 X(complain.)s +514 X +5760 Y +874 X(Example)s +1254 X(entries)s +1545 X(might)s +1804 X(be:)s +514 X +6000 Y +1234 X(mhn-show-audio/basic:)s +2197 X(raw2audio)s +2643 X(2>/dev/null)s +3130 X(|)s +3175 X(play)s +514 X +6120 Y +1234 X(mhn-show-image:)s +1986 X(xv)s +2111 X('%f')s +514 X +6240 Y +1234 X(mhn-show-application/PostScript:)s +2626 X(lpr)s +2762 X(-Pps)s +514 X +6480 Y +874 X(Note)s +1108 X(that)s +1298 X(when)s +1554 X(using)s +1811 X(the)s +1973 X(f-)s +2079 X(or)s +2202 X(F-escape,)s +2621 X(it's)s +2789 X(a)s +2873 X(good)s +3113 X(idea)s +3319 X(to)s +3437 X(use)s +3610 X(single-quotes)s +4183 X(around)s +4500 X(the)s +4662 X(escape.)s +5016 X(This)s +514 X +6600 Y +874 X(prevents)s +1237 X(misinterpretation)s +1945 X(by)s +2070 X(the)s +2217 X(shell)s +2431 X(of)s +2539 X(any)s +2708 X(funny)s +2966 X(characters)s +3394 X(that)s +3569 X(might)s +3828 X(be)s +3947 X(present)s +4260 X(in)s +4363 X(the)s +4510 X(\256lename.)s +514 X +6840 Y +874 X(Because)s +1233 X(the)s +1382 X(text)s +1559 X(content)s +1880 X(might)s +2141 X(be)s +2262 X(in)s +2367 X(a)s +2438 X(non-ASCII)s +2908 X(character)s +3298 X(set,)s +3460 X(when)s +3702 X +0.0 10 10 f.I ft(mhn)s +3900 X +0.0 10 10 f.R ft(encounters)s +4358 X(a)s +4428 X(``charset'')s +4868 X(parame-)s +514 X +6960 Y +874 X(ter)s +1008 X(for)s +1153 X(this)s +1327 X(content,)s +1675 X(it)s +1760 X(checks)s +2060 X(to)s +2167 X(see)s +2323 X(whether)s +2673 X(the)s +2823 X(environment)s +3356 X(variable)s +3705 X($MM_CHARSET)s +4467 X(is)s +4562 X(set)s +4701 X(and)s +4873 X(whether)s +514 X +7080 Y +874 X(the)s +1027 X(value)s +1274 X(of)s +1388 X(this)s +1564 X(environment)s +2100 X(variable)s +2451 X(is)s +2548 X(equal)s +2794 X(to)s +2902 X(the)s +3054 X(value)s +3300 X(of)s +3413 X(the)s +3565 X(charset)s +3877 X(parameter.)s +4355 X(If)s +4451 X(not,)s +4634 X(then)s +4836 X +0.0 10 10 f.I ft(mhn)s +5038 X +0.0 10 10 f.R ft(will)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 44 45 + +514 X +600 Y(MHN\(1\))s +2771 X(-44-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(look)s +1077 X(for)s +1218 X(an)s +1337 X(entry)s +1567 X(of)s +1675 X(the)s +1822 X(form:)s +514 X +1200 Y +1234 X(mhn-charset-)s +514 X +1440 Y +874 X(which)s +1144 X(should)s +1437 X(contain)s +1757 X(a)s +1826 X(command)s +2245 X(creating)s +2591 X(an)s +2710 X(environment)s +3240 X(to)s +3343 X(render)s +3622 X(the)s +3769 X(character)s +4158 X(set.)s +4344 X(This)s +4547 X(command)s +4966 X(string)s +514 X +1560 Y +874 X(should)s +1166 X(containing)s +1613 X(a)s +1682 X(single)s +1946 X(``%s'',)s +2250 X(which)s +2519 X(will)s +2700 X(be)s +2819 X(\256lled-in)s +3161 X(with)s +3364 X(the)s +3511 X(command)s +3930 X(to)s +4033 X(display)s +4347 X(the)s +4494 X(content.)s +514 X +1800 Y +874 X(An)s +1021 X(example)s +1384 X(entry)s +1614 X(might)s +1873 X(be:)s +514 X +2040 Y +1234 X(mhn-charset-iso-8859-1:)s +2246 X(xterm)s +2504 X(-fn)s +2645 X('-*-*-medium-r-normal-*-*-120-*-*-c-*-iso8859-*')s +4753 X(-e)s +4855 X(%s)s +514 X +2280 Y +874 X(Note)s +1100 X(that)s +1282 X(many)s +1535 X(pagination)s +1988 X(programs)s +2396 X(strip)s +2605 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff +2747 X(the)s +2900 X(high-order)s +3352 X(bit.)s +3539 X(However,)s +3960 X(newer)s +4234 X(releases)s +4580 X(of)s +4694 X(the)s +4847 X +0.0 10 10 f.I ft(less)s +5028 X +0.0 10 10 f.R ft(pro-)s +514 X +2400 Y +874 X(gram)s +1112 X(have)s +1333 X(modest)s +1655 X(support)s +1988 X(for)s +2137 X(single-octet)s +2636 X(character)s +3033 X(sets.)s +3266 X(The)s +3453 X(source)s +3745 X(to)s +3855 X +0.0 10 10 f.I ft(less)s +4037 X +0.0 10 10 f.R ft(version)s +4363 X(177,)s +4570 X(which)s +4846 X(has)s +5011 X(such)s +514 X +2520 Y +874 X(support,)s +1231 X(is)s +1330 X(found)s +1595 X(in)s +1705 X(the)s +1859 X(MH)s +2052 X(source)s +2344 X(tree)s +2524 X(under)s +2782 X +0.0 10 10 f.B ft(miscellany/less-177)s +0.0 10 10 f.R ft(.)s +3674 X(In)s +3788 X(order)s +4029 X(to)s +4138 X(view)s +4363 X(messages)s +4771 X(sent)s +4963 X(in)s +5072 X(the)s +514 X +2640 Y +874 X(ISO)s +1060 X(8859/1)s +1363 X(character)s +1752 X(set)s +1888 X(using)s +2130 X +0.0 10 10 f.I ft(less)s +0.0 10 10 f.R ft(,)s +2330 X(put)s +2483 X(these)s +2713 X(lines)s +2927 X(in)s +3030 X(your)s +3238 X(.login)s +3494 X(\256le:)s +514 X +2880 Y +1234 X(setenv)s +1514 X(LESSCHARSET)s +2229 X(latin1)s +514 X +3000 Y +1234 X(setenv)s +1514 X(LESS)s +1773 X("-f")s +514 X +3240 Y +874 X(The)s +1059 X(\256rst)s +1245 X(line)s +1425 X(tells)s +1622 X +0.0 10 10 f.I ft(less)s +1802 X +0.0 10 10 f.R ft(to)s +1910 X(use)s +2073 X(8859/1)s +2381 X(de\256nition)s +2794 X(for)s +2939 X(determing)s +3373 X(whether)s +3723 X(a)s +3796 X(character)s +4189 X(is)s +4285 X(``normal'',)s +4754 X(``control``,)s +514 X +3360 Y +874 X(or)s +989 X(``binary''.)s +1458 X(The)s +1645 X(second)s +1954 X(line)s +2136 X(tells)s +2335 X +0.0 10 10 f.I ft(less)s +2517 X +0.0 10 10 f.R ft(not)s +2677 X(to)s +2787 X(warn)s +3018 X(you)s +3200 X(if)s +3293 X(it)s +3381 X(encounters)s +3845 X(a)s +3921 X(\256le)s +4081 X(that)s +4263 X(has)s +4427 X(non-ASCII)s +4902 X(charac-)s +514 X +3480 Y +874 X(ters.)s +1100 X(Then,)s +1362 X(simply)s +1667 X(set)s +1810 X(the)s +1964 X +0.0 10 10 f.B ft(moreproc)s +2411 X +0.0 10 10 f.R ft(pro\256le)s +2704 X(entry)s +2941 X(to)s +3051 X +0.0 10 10 f.I ft(less)s +0.0 10 10 f.R ft(,)s +3257 X(and)s +3432 X(it)s +3519 X(will)s +3706 X(get)s +3859 X(called)s +4128 X(automatically.)s +4753 X(\(To)s +4928 X(handle)s +514 X +3600 Y +874 X(other)s +1109 X(single-octet)s +1605 X(character)s +1999 X(sets,)s +2204 X(look)s +2412 X(at)s +2514 X(the)s +2666 X +0.0 10 10 f.I ft(less)s +2866 X +0.0 10 10 f.R ft(\(1\))s +3012 X(manual)s +3336 X(entry)s +3571 X(for)s +3717 X(information)s +4219 X(about)s +4470 X(the)s +4621 X +0.0 10 10 f.B ft(LESSCHAR-)s +514 X +3720 Y +874 X(DEF)s +1099 X +0.0 10 10 f.R ft(environment)s +1629 X(variable.\))s +514 X +3960 Y +874 X(Finally,)s +1221 X +0.0 10 10 f.I ft(mhn)s +1431 X +0.0 10 10 f.R ft(will)s +1625 X(process)s +1962 X(each)s +2182 X(message)s +2558 X(serially)s +2902 X(--)s +3018 X(it)s +3112 X(won't)s +3383 X(start)s +3593 X(showing)s +3970 X(the)s +4130 X(next)s +4339 X(message)s +4714 X(until)s +4935 X(all)s +5072 X(the)s +514 X +4080 Y +874 X(commands)s +1337 X(executed)s +1721 X(to)s +1829 X(display)s +2148 X(the)s +2300 X(current)s +2612 X(message)s +2980 X(have)s +3198 X(terminated.)s +3705 X(In)s +3818 X(the)s +3970 X(case)s +4171 X(of)s +4284 X(a)s +4358 X(multipart)s +4755 X(content)s +5078 X(\(of)s +514 X +4200 Y +874 X(any)s +1046 X(subtype)s +1385 X(listed)s +1630 X(above\),)s +1954 X(the)s +2104 X(content)s +2426 X(contains)s +2787 X(advice)s +3075 X(indicating)s +3503 X(if)s +3592 X(the)s +3742 X(parts)s +3964 X(should)s +4259 X(be)s +4380 X(displayed)s +4790 X(serially)s +5111 X(or)s +514 X +4320 Y +874 X(in)s +1000 X(parallel.)s +1397 X(Because)s +1777 X(this)s +1970 X(may)s +2190 X(cause)s +2459 X(confusion,)s +2926 X(particularly)s +3434 X(on)s +3582 X(uni-window)s +4113 X(displays,)s +4514 X(the)s +4684 X(`\261serialonly')s +514 X +4440 Y +874 X(switch)s +1160 X(can)s +1323 X(be)s +1442 X(given)s +1689 X(to)s +1792 X(tell)s +1945 X +0.0 10 10 f.I ft(mhn)s +2142 X +0.0 10 10 f.R ft(to)s +2245 X(never)s +2491 X(display)s +2805 X(parts)s +3024 X(in)s +3127 X(parallel.)s +514 X +4800 Y +694 X +0.0 8 8 f.B ft(Storing)s +967 X(the)s +1093 X(Contents)s +514 X +5040 Y +874 X +0.0 10 10 f.R ft(The)s +1063 X(`\261store')s +1407 X(switch)s +1702 X(tells)s +1903 X +0.0 10 10 f.I ft(mhn)s +2109 X +0.0 10 10 f.R ft(to)s +2221 X(store)s +2449 X(the)s +2605 X(contents)s +2972 X(of)s +3088 X(the)s +3243 X(named)s +3542 X(messages)s +3952 X(in)s +4063 X(``native'')s +4472 X(\(decoded\))s +4903 X(format.)s +514 X +5160 Y +874 X(Two)s +1090 X(things)s +1368 X(must)s +1596 X(be)s +1723 X(determined:)s +2233 X(the)s +2388 X(directory)s +2781 X(to)s +2892 X(store)s +3119 X(the)s +3274 X(content,)s +3626 X(and)s +3802 X(the)s +3956 X(\256lenames.)s +4421 X(Files)s +4648 X(are)s +4801 X(written)s +5116 X(in)s +514 X +5280 Y +874 X(the)s +1021 X(directory)s +1406 X(given)s +1653 X(by)s +1778 X(the)s +1925 X +0.0 10 10 f.B ft(mhn-storage)s +2488 X +0.0 10 10 f.R ft(pro\256le)s +2774 X(entry,)s +3029 X(e.g.,)s +514 X +5520 Y +1234 X(mhn-storage:)s +1786 X(/tmp)s +514 X +5760 Y +874 X(If)s +965 X(this)s +1135 X(entry)s +1365 X(isn't)s +1568 X(present,)s +1906 X(the)s +2053 X(current)s +2360 X(working)s +2718 X(directory)s +3103 X(is)s +3195 X(used.)s +514 X +6000 Y +874 X +0.0 10 10 f.I ft(mhn)s +1073 X +0.0 10 10 f.R ft(will)s +1256 X(look)s +1461 X(for)s +1604 X(information)s +2103 X(in)s +2208 X(the)s +2357 X(user's)s +2622 X(pro\256le)s +2910 X(to)s +3015 X(determine)s +3441 X(how)s +3640 X(the)s +3789 X(di)s +Cff(erent)s +4153 X(contents)s +4512 X(should)s +4805 X(be)s +4925 X(stored.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 45 46 + +514 X +600 Y(MHN\(1\))s +2771 X(-45-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(This)s +1077 X(is)s +1169 X(achieved)s +1548 X(through)s +1884 X(the)s +2031 X(use)s +2189 X(of)s +2297 X(a)s +2366 X(formatting)s +2813 X(string,)s +3091 X(which)s +3360 X(may)s +3557 X(contain)s +3876 X(these)s +4106 X(escapes:)s +514 X +1200 Y +1234 X(%m)s +1423 X(message)s +1786 X(number)s +514 X +1320 Y +1234 X(%P)s +1423 X(.part)s +514 X +1440 Y +1234 X(%p)s +1423 X(part)s +514 X +1560 Y +1234 X(%s)s +1423 X(subtype)s +514 X +1800 Y +874 X(If)s +966 X(the)s +1114 X(content)s +1434 X(isn't)s +1638 X(part)s +1818 X(of)s +1926 X(a)s +1995 X(multipart)s +2387 X(\(of)s +2528 X(any)s +2697 X(subtype)s +3033 X(listed)s +3275 X(above\))s +3571 X(content,)s +3915 X(the)s +4062 X(p-escapes)s +4474 X(are)s +4620 X(ignored.)s +5000 X(Note)s +514 X +1920 Y +874 X(that)s +1056 X(if)s +1149 X(the)s +1303 X(formatting)s +1757 X(string)s +2017 X(starts)s +2260 X(with)s +2470 X(a)s +2546 X(``+'')s +2766 X(character,)s +3187 X(then)s +3390 X(these)s +3626 X(escapes)s +3961 X(are)s +4113 X(ignored,)s +4474 X(and)s +4649 X(the)s +4802 X(content)s +5127 X(is)s +514 X +2040 Y +874 X(stored)s +1149 X(in)s +1258 X(the)s +1411 X(named)s +1708 X(folder.)s +2026 X(\(A)s +2161 X(formatting)s +2613 X(string)s +2871 X(consisting)s +3307 X(solely)s +3576 X(of)s +3689 X(a)s +3763 X(``+'')s +3981 X(character)s +4375 X(indicates)s +4760 X(the)s +4912 X(current)s +514 X +2160 Y +874 X(folder.\))s +1195 X(Further,)s +1539 X(a)s +1608 X(formatting)s +2055 X(string)s +2308 X(consisting)s +2739 X(solely)s +3003 X(of)s +3111 X(a)s +3180 X(``-'')s +3370 X(character)s +3759 X(indicates)s +4139 X(the)s +4286 X(standard-output.)s +514 X +2400 Y +874 X(First,)s +1108 X +0.0 10 10 f.I ft(mhn)s +1305 X +0.0 10 10 f.R ft(will)s +1486 X(look)s +1689 X(for)s +1830 X(an)s +1949 X(entry)s +2179 X(of)s +2287 X(the)s +2434 X(form:)s +514 X +2640 Y +1234 X(mhn-store-/)s +514 X +2880 Y +874 X(to)s +977 X(determine)s +1401 X(the)s +1548 X(formatting)s +1995 X(string.)s +2298 X(If)s +2389 X(this)s +2559 X(isn't)s +2762 X(found,)s +3045 X +0.0 10 10 f.I ft(mhn)s +3242 X +0.0 10 10 f.R ft(will)s +3423 X(look)s +3626 X(for)s +3767 X(an)s +3886 X(entry)s +4116 X(of)s +4224 X(the)s +4371 X(form:)s +514 X +3120 Y +1234 X(mhn-store-)s +514 X +3360 Y +874 X(to)s +1015 X(determine)s +1477 X(the)s +1662 X(formatting)s +2147 X(string.)s +2488 X(If)s +2617 X(this)s +2825 X(isn't)s +3066 X(found,)s +3387 X +0.0 10 10 f.I ft(mhn)s +3622 X +0.0 10 10 f.R ft(will)s +3841 X(check)s +4135 X(to)s +4275 X(see)s +4464 X(if)s +4587 X(the)s +4771 X(content)s +5127 X(is)s +514 X +3480 Y +874 X(application/octet-stream)s +1866 X(with)s +2071 X(parameter)s +2496 X(``type=tar''.)s +3038 X(If)s +3131 X(so,)s +3272 X +0.0 10 10 f.I ft(mhn)s +3471 X +0.0 10 10 f.R ft(will)s +3654 X(choose)s +3958 X(an)s +4079 X(appropriate)s +4560 X(\256lename.)s +4980 X(If)s +5072 X(the)s +514 X +3600 Y +874 X(content)s +1200 X(is)s +1299 X(not)s +1459 X(application/octet-stream,)s +2481 X(then)s +2685 X +0.0 10 10 f.I ft(mhn)s +2889 X +0.0 10 10 f.R ft(will)s +3077 X(check)s +3341 X(to)s +3451 X(see)s +3610 X(if)s +3703 X(the)s +3857 X(content)s +4183 X(is)s +4282 X(a)s +4358 X(message.)s +4778 X(If)s +4876 X(so,)s +5022 X +0.0 10 10 f.I ft(mhn)s +514 X +3720 Y +874 X +0.0 10 10 f.R ft(will)s +1055 X(use)s +1213 X(the)s +1360 X(value)s +1601 X(``+''.)s +1864 X(If)s +1955 X(not,)s +2133 X +0.0 10 10 f.I ft(mhn)s +2330 X +0.0 10 10 f.R ft(will)s +2511 X(use)s +2669 X(the)s +2816 X(value)s +3057 X(``%m%P.%s''.)s +514 X +3960 Y +874 X(Note)s +1100 X(that)s +1282 X(if)s +1375 X(the)s +1529 X(formatting)s +1983 X(string)s +2243 X(starts)s +2486 X(with)s +2696 X(a)s +2772 X('/',)s +2923 X(then)s +3127 X(content)s +3453 X(will)s +3641 X(be)s +3766 X(stored)s +4041 X(in)s +4150 X(the)s +4303 X(full)s +4473 X(path)s +4676 X(given)s +4929 X(\(rather)s +514 X +4080 Y +874 X(than)s +1080 X(using)s +1331 X(the)s +1487 X(value)s +1737 X(of)s +1854 X +0.0 10 10 f.B ft(mhn-storage)s +2426 X +0.0 10 10 f.R ft(or)s +2543 X(the)s +2699 X(current)s +3014 X(working)s +3380 X(directory.\))s +3831 X(Similarly,)s +4262 X(if)s +4356 X(the)s +4511 X(formatting)s +4966 X(string)s +514 X +4200 Y +874 X(starts)s +1122 X(with)s +1336 X(a)s +1416 X('|',)s +1563 X(then)s +1771 X +0.0 10 10 f.I ft(mhn)s +1979 X +0.0 10 10 f.R ft(will)s +2171 X(execute)s +2511 X(a)s +2591 X(command)s +3021 X(which)s +3301 X(should)s +3604 X(ultimately)s +4046 X(store)s +4276 X(the)s +4434 X(content.)s +4814 X(Note)s +5044 X(that)s +514 X +4320 Y +874 X(before)s +1158 X(executing)s +1576 X(the)s +1728 X(command,)s +2177 X +0.0 10 10 f.I ft(mhn)s +2379 X +0.0 10 10 f.R ft(will)s +2565 X(change)s +2876 X(to)s +2983 X(the)s +3134 X(appropriate)s +3617 X(directory.)s +4056 X(Also)s +4274 X(note)s +4475 X(that)s +4654 X(if)s +4744 X(the)s +4895 X(format-)s +514 X +4440 Y +874 X(ting)s +1055 X(string)s +1308 X(starts)s +1544 X(with)s +1747 X(a)s +1816 X('|',)s +1952 X(then)s +2149 X +0.0 10 10 f.I ft(mhn)s +2346 X +0.0 10 10 f.R ft(will)s +2527 X(also)s +2713 X(honor)s +2971 X(the)s +3118 X(a-escape)s +3485 X(when)s +3726 X(processing)s +4178 X(the)s +4325 X(formatting)s +4772 X(string.)s +514 X +4680 Y +874 X(Example)s +1254 X(entries)s +1545 X(might)s +1804 X(be:)s +514 X +4920 Y +1234 X(mhn-store-text:)s +1875 X(%m%P.txt)s +514 X +5040 Y +1234 X(mhn-store-audio/basic:)s +2180 X(|)s +2225 X(raw2audio)s +2671 X(-e)s +2773 X(ulaw)s +2992 X(-s)s +3089 X(8000)s +3314 X(-c)s +3416 X(1)s +3491 X(>)s +3572 X(%m%P.au)s +514 X +5160 Y +1234 X(mhn-store-application/PostScript:)s +2609 X(%m%P.ps)s +514 X +5400 Y +874 X(Further,)s +1225 X(note)s +1429 X(that)s +1611 X(when)s +1859 X(asked)s +2118 X(to)s +2228 X(store)s +2454 X(a)s +2530 X(content)s +2856 X(containing)s +3310 X(a)s +3386 X(partial)s +3673 X(message,)s +4068 X +0.0 10 10 f.I ft(mhn)s +4272 X +0.0 10 10 f.R ft(will)s +4460 X(try)s +4602 X(to)s +4711 X(locate)s +4980 X(all)s +5111 X(of)s +514 X +5520 Y +874 X(the)s +1029 X(portions)s +1390 X(and)s +1567 X(combine)s +1944 X(them)s +2177 X(accordingly.)s +2731 X(Thus,)s +2989 X(if)s +3083 X(someone's)s +3543 X(sent)s +3737 X(you)s +3920 X(a)s +3997 X(message)s +4368 X(in)s +4479 X(several)s +4793 X(parts,)s +5044 X(you)s +514 X +5640 Y +874 X(might)s +1133 X(put)s +1286 X(them)s +1511 X(all)s +1636 X(in)s +1739 X(their)s +1947 X(own)s +2144 X(folder)s +2407 X(and)s +2576 X(do:)s +514 X +5880 Y +1234 X(mhn)s +1437 X(all)s +1562 X(-store)s +514 X +6120 Y +874 X(This)s +1083 X(will)s +1270 X(store)s +1495 X(exactly)s +1814 X(one)s +1988 X(message,)s +2381 X(containing)s +2833 X(the)s +2985 X(sum)s +3182 X(of)s +3295 X(the)s +3447 X(parts.)s +3721 X(Note)s +3945 X(that)s +4125 X(if)s +4216 X +0.0 10 10 f.I ft(mhn)s +4418 X +0.0 10 10 f.R ft(can)s +4586 X(not)s +4744 X(locate)s +5012 X(each)s +514 X +6240 Y +874 X(part,)s +1079 X(it)s +1160 X(will)s +1341 X(not)s +1494 X(store)s +1713 X(anything.)s +514 X +6480 Y +874 X(Finally,)s +1212 X(if)s +1302 X(the)s +1453 X(`\261auto')s +1770 X(switch)s +2060 X(is)s +2156 X(given)s +2407 X(and)s +2580 X(the)s +2731 X(content)s +3054 X(contains)s +3416 X(information)s +3917 X(indicating)s +4345 X(the)s +4495 X(\256lename)s +4867 X(the)s +5017 X(con-)s +514 X +6600 Y +874 X(tent)s +1058 X(should)s +1359 X(be)s +1487 X(stored)s +1765 X(as)s +1882 X(\(and)s +2093 X(if)s +2188 X(the)s +2344 X(\256lename)s +2722 X(doesn't)s +3050 X(begin)s +3306 X(with)s +3518 X(a)s +3596 X('/'\),)s +3781 X(then)s +3986 X(the)s +4141 X(\256lename)s +4518 X(from)s +4745 X(the)s +4900 X(content)s +514 X +6720 Y +874 X(will)s +1055 X(be)s +1174 X(used)s +1382 X(instead.)s +514 X +7080 Y +694 X +0.0 8 8 f.B ft(External)s +1011 X(Access)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 46 47 + +514 X +600 Y(MHN\(1\))s +2771 X(-46-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(For)s +1038 X(contents)s +1396 X(of)s +1504 X(type)s +1701 X(message/external-body,)s +2671 X +0.0 10 10 f.I ft(mhn)s +2868 X +0.0 10 10 f.R ft(supports)s +3232 X(these)s +3462 X(access-types:)s +514 X +1200 Y +1234 X(afs)s +514 X +1320 Y +1234 X(anon-ftp)s +514 X +1440 Y +1234 X(ftp)s +514 X +1560 Y +1234 X(local-\256le)s +514 X +1680 Y +1234 X(mail-server)s +514 X +1920 Y +874 X(For)s +1042 X(the)s +1193 X(``anon-ftp'')s +1692 X(and)s +1865 X(``ftp'')s +2137 X(access)s +2420 X(types,)s +2685 X(if)s +2774 X(your)s +2985 X(system)s +3291 X(supports)s +3658 X(a)s +3730 X(SOCKETs)s +4186 X(interface)s +4562 X(to)s +4668 X(TCP/IP,)s +5022 X(then)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(mhn)s +1071 X +0.0 10 10 f.R ft(will)s +1252 X(use)s +1410 X(a)s +1479 X(built-in)s +1799 X(FTP)s +1997 X(client.)s +2294 X(Otherwise,)s +2754 X +0.0 10 10 f.I ft(mhn)s +2951 X +0.0 10 10 f.R ft(will)s +3132 X(look)s +3335 X(for)s +3476 X(the)s +3623 X +0.0 10 10 f.B ft(mhn-access-ftp)s +4291 X +0.0 10 10 f.R ft(pro\256le)s +4577 X(entry,)s +4832 X(e.g.,)s +514 X +2280 Y +1234 X(mhn-access-ftp:)s +1896 X(myftp.sh)s +514 X +2520 Y +874 X(to)s +982 X(determine)s +1411 X(the)s +1563 X(pathname)s +1981 X(of)s +2094 X(a)s +2168 X(program)s +2536 X(to)s +2644 X(perform)s +2995 X(the)s +3147 X(FTP)s +3350 X(retrieval.)s +3761 X(This)s +3968 X(program)s +4335 X(is)s +4431 X(invoked)s +4782 X(with)s +4989 X(these)s +514 X +2640 Y +874 X(arguments:)s +514 X +2880 Y +1234 X(domain)s +1559 X(name)s +1800 X(of)s +1908 X(FTP-site)s +514 X +3000 Y +1234 X(username)s +514 X +3120 Y +1234 X(password)s +514 X +3240 Y +1234 X(remote)s +1536 X(directory)s +514 X +3360 Y +1234 X(remote)s +1536 X(\256lename)s +514 X +3480 Y +1234 X(local)s +1453 X(\256lename)s +514 X +3600 Y +1234 X(``ascii'')s +1574 X(or)s +1682 X(``binary'')s +514 X +3840 Y +874 X(The)s +1054 X(program)s +1417 X(should)s +1709 X(terminate)s +2111 X(with)s +2314 X(a)s +2383 X(zero-valued)s +2878 X(exit-status)s +3314 X(if)s +3400 X(the)s +3547 X(retrieval)s +3904 X(is)s +3996 X(successful.)s +514 X +4200 Y +694 X +0.0 8 8 f.B ft(The)s +848 X(Content)s +1143 X(Cache)s +514 X +4440 Y +874 X +0.0 10 10 f.R ft(When)s +1138 X +0.0 10 10 f.I ft(mhn)s +1336 X +0.0 10 10 f.R ft(encounters)s +1794 X(an)s +1914 X(external)s +2261 X(content)s +2581 X(containing)s +3029 X(a)s +3099 X(``Content-ID:'')s +3740 X(\256eld,)s +3969 X(and)s +4139 X(if)s +4226 X(the)s +4374 X(content)s +4693 X(allows)s +4979 X(cach-)s +514 X +4560 Y +874 X(ing,)s +1052 X(then)s +1249 X(depending)s +1690 X(on)s +1815 X(the)s +1962 X(caching)s +2297 X(behavior)s +2671 X(of)s +2779 X +0.0 10 10 f.I ft(mhn)s +0.0 10 10 f.R ft(,)s +3001 X(the)s +3148 X(content)s +3467 X(might)s +3726 X(be)s +3845 X(read)s +4041 X(from)s +4260 X(or)s +4368 X(written)s +4676 X(to)s +4779 X(a)s +4848 X(cache.)s +514 X +4800 Y +874 X(The)s +1055 X(caching)s +1391 X(behavior)s +1766 X(of)s +1875 X +0.0 10 10 f.I ft(mhn)s +2073 X +0.0 10 10 f.R ft(is)s +2166 X(controlled)s +2596 X(with)s +2799 X(the)s +2946 X(`\261rcache')s +3346 X(and)s +3515 X(`\261wcache')s +3954 X(switches,)s +4348 X(which)s +4617 X(de\256ne)s +4886 X(the)s +5033 X(pol-)s +514 X +4920 Y +874 X(icy)s +1026 X(for)s +1172 X(reading)s +1501 X(from,)s +1750 X(and)s +1924 X(writing)s +2243 X(to,)s +2375 X(the)s +2526 X(cache,)s +2806 X(respectively.)s +3367 X(One)s +3562 X(of)s +3674 X(four)s +3869 X(policies)s +4209 X(may)s +4410 X(be)s +4533 X(speci\256ed:)s +4945 X(``pub-)s +514 X +5040 Y +874 X(lic'',)s +1100 X(indicating)s +1535 X(that)s +1720 X +0.0 10 10 f.I ft(mhn)s +1926 X +0.0 10 10 f.R ft(should)s +2227 X(make)s +2477 X(use)s +2644 X(of)s +2761 X(a)s +2839 X(publically-accessible)s +3710 X(content)s +4038 X(cache;)s +4326 X(``private'',)s +4794 X(indicating)s +514 X +5160 Y +874 X(that)s +1057 X +0.0 10 10 f.I ft(mhn)s +1262 X +0.0 10 10 f.R ft(should)s +1562 X(make)s +1811 X(use)s +1977 X(of)s +2093 X(the)s +2248 X(user's)s +2519 X(private)s +2829 X(content)s +3156 X(cache;)s +3443 X(``never'',)s +3854 X(indicating)s +4287 X(that)s +4470 X +0.0 10 10 f.I ft(mhn)s +4674 X +0.0 10 10 f.R ft(should)s +4973 X(never)s +514 X +5280 Y +874 X(make)s +1115 X(use)s +1273 X(of)s +1381 X(caching;)s +1744 X(and,)s +1938 X(``ask'',)s +2253 X(indicating)s +2678 X(that)s +2853 X +0.0 10 10 f.I ft(mhn)s +3050 X +0.0 10 10 f.R ft(should)s +3342 X(ask)s +3500 X(the)s +3647 X(user.)s +514 X +5520 Y +874 X(There)s +1142 X(are)s +1299 X(two)s +1485 X(directories)s +1942 X(where)s +2221 X(contents)s +2590 X(may)s +2798 X(be)s +2928 X(cached:)s +3268 X(the)s +3426 X(pro\256le)s +3723 X(entry)s +3964 X +0.0 10 10 f.B ft(mhn-cache)s +4465 X +0.0 10 10 f.R ft(names)s +4755 X(a)s +4834 X(directory)s +514 X +5640 Y +874 X(containing)s +1323 X(world-readable)s +1953 X(contents,)s +2338 X(and,)s +2534 X(the)s +2683 X(pro\256le)s +2971 X(entry)s +3203 X +0.0 10 10 f.B ft(mhn-private-cache)s +4034 X +0.0 10 10 f.R ft(names)s +4316 X(a)s +4386 X(directory)s +4772 X(containing)s +514 X +5760 Y +874 X(private)s +1176 X(contents.)s +1584 X(The)s +1764 X(former)s +2060 X(should)s +2352 X(be)s +2471 X(an)s +2590 X(absolute)s +2948 X(\(rooted\))s +3294 X(directory)s +3679 X(name.)s +3970 X(For)s +4134 X(example,)s +514 X +6000 Y +1234 X(mhn-cache:)s +1724 X(/tmp)s +514 X +6240 Y +874 X(might)s +1134 X(be)s +1254 X(used)s +1463 X(if)s +1550 X(you)s +1725 X(didn't)s +1989 X(care)s +2179 X(that)s +2354 X(the)s +2501 X(cache)s +2752 X(got)s +2905 X(wiped)s +3174 X(after)s +3381 X(each)s +3588 X(reboot)s +3868 X(of)s +3976 X(the)s +4123 X(system.)s +4476 X(The)s +4656 X(latter)s +4886 X(is)s +4978 X(inter-)s +514 X +6360 Y +874 X(preted)s +1148 X(relative)s +1472 X(to)s +1575 X(the)s +1722 X(user's)s +1985 X(MH)s +2171 X(directory,)s +2581 X(if)s +2667 X(not)s +2820 X(rooted,)s +3125 X(e.g.,)s +514 X +6600 Y +1234 X(mhn-private-cache:)s +2034 X(.cache)s +514 X +6840 Y +874 X(\(which)s +1176 X(is)s +1268 X(the)s +1415 X(default)s +1717 X(value\).)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 47 48 + +514 X +600 Y(MHN\(1\))s +2771 X(-47-)s +4834 X(MHN\(1\))s +514 X +960 Y +694 X +0.0 8 8 f.B ft(Caching)s +999 X(the)s +1125 X(Contents)s +514 X +1200 Y +874 X +0.0 10 10 f.R ft(When)s +1137 X(you)s +1312 X(encounter)s +1730 X(a)s +1799 X(content)s +2118 X(of)s +2226 X(type)s +2423 X(message/external-body)s +3368 X(with)s +3571 X(access)s +3850 X(type)s +4047 X(``mail-server'',)s +4683 X +0.0 10 10 f.I ft(mhn)s +4880 X +0.0 10 10 f.R ft(will)s +5061 X(ask)s +514 X +1320 Y +874 X(you)s +1049 X(if)s +1135 X(may)s +1332 X(send)s +1540 X(a)s +1609 X(message)s +1972 X(to)s +2075 X(a)s +2144 X(mail-server)s +2623 X(requesting)s +3064 X(the)s +3211 X(content,)s +3555 X(e.g.,)s +514 X +1560 Y +1234 X(%)s +1342 X(show)s +1578 X(1)s +514 X +1680 Y +1234 X(Retrieve)s +1597 X(content)s +1916 X(by)s +2041 X(asking)s +2327 X(mail-server@...)s +514 X +1920 Y +1234 X(SEND)s +1520 X(\256le)s +514 X +2160 Y +1234 X(?)s +1303 X(yes)s +514 X +2280 Y +1234 X(mhn:)s +1465 X(request)s +1778 X(sent)s +514 X +2520 Y +874 X(Regardless)s +1337 X(of)s +1445 X(your)s +1653 X(decision,)s +2036 X +0.0 10 10 f.I ft(mhn)s +2233 X +0.0 10 10 f.R ft(can't)s +2457 X(perform)s +2803 X(any)s +2972 X(other)s +3202 X(processing)s +3654 X(on)s +3779 X(the)s +3926 X(content.)s +514 X +2760 Y +874 X(However,)s +1312 X(if)s +1421 X +0.0 10 10 f.I ft(mhn)s +1641 X +0.0 10 10 f.R ft(is)s +1756 X(allowed)s +2120 X(to)s +2246 X(request)s +2582 X(the)s +2752 X(content,)s +3119 X(then)s +3338 X(when)s +3601 X(it)s +3704 X(arrives,)s +4047 X(there)s +4293 X(should)s +4607 X(be)s +4748 X(a)s +4839 X(top-level)s +514 X +2880 Y +874 X(``Content-ID:'')s +1526 X(\256eld)s +1741 X(which)s +2022 X(corresponds)s +2541 X(to)s +2656 X(the)s +2815 X(value)s +3067 X(in)s +3181 X(the)s +3339 X(original)s +3686 X(message/external-body)s +4642 X(content.)s +5022 X(You)s +514 X +3000 Y +874 X(should)s +1166 X(now)s +1363 X(use)s +1521 X(the)s +1668 X(`-cache')s +2018 X(switch)s +2304 X(to)s +2407 X(tell)s +2560 X +0.0 10 10 f.I ft(mhn)s +2757 X +0.0 10 10 f.R ft(to)s +2860 X(enter)s +3084 X(the)s +3231 X(arriving)s +3572 X(content)s +3891 X(into)s +4072 X(the)s +4219 X(content)s +4538 X(cache,)s +4814 X(e.g.,)s +514 X +3240 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-cache)s +1829 X(2)s +514 X +3360 Y +1234 X(caching)s +1569 X(message)s +1932 X(2)s +2007 X(as)s +2115 X(\256le)s +2268 X(...)s +514 X +3600 Y +874 X(You)s +1076 X(can)s +1244 X(then)s +1446 X(re-process)s +1885 X(the)s +2037 X(original)s +2378 X(message/external-body)s +3328 X(content,)s +3676 X(and)s +3849 X(``the)s +4066 X(right)s +4284 X(thing)s +4519 X(should)s +4815 X(happen'',)s +514 X +3720 Y +874 X(e.g.,)s +514 X +3960 Y +1234 X(%)s +1342 X(show)s +1578 X(1)s +514 X +4080 Y +1284 X(...)s +514 X +4440 Y +694 X +0.0 8 8 f.B ft(Composing)s +1101 X(the)s +1227 X(Contents)s +514 X +4680 Y +874 X +0.0 10 10 f.R ft(The)s +1064 X +0.0 10 10 f.I ft(mhn)s +1271 X +0.0 10 10 f.R ft(program)s +1644 X(can)s +1816 X(also)s +2011 X(be)s +2139 X(used)s +2356 X(as)s +2473 X(a)s +2551 X(simple)s +2852 X(editor)s +3119 X(to)s +3231 X(aid)s +3387 X(in)s +3499 X(composing)s +3972 X(multi-media)s +4495 X(messages.)s +4956 X(When)s +514 X +4800 Y +874 X(invoked)s +1222 X(by)s +1348 X(a)s +1418 X +0.0 10 10 f.I ft(whatnow)s +1806 X +0.0 10 10 f.R ft(program,)s +2194 X +0.0 10 10 f.I ft(mhn)s +2391 X +0.0 10 10 f.R ft(will)s +2572 X(expect)s +2857 X(the)s +3004 X(body)s +3229 X(of)s +3337 X(the)s +3484 X(draft)s +3697 X(to)s +3800 X(be)s +3919 X(formatted)s +4332 X(as)s +4440 X(an)s +4559 X(``)s +0.0 10 10 f.I ft(mhn)s +4822 X +0.0 10 10 f.R ft(composi-)s +514 X +4920 Y +874 X(tion)s +1055 X(\256le.'')s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 48 49 + +514 X +600 Y(MHN\(1\))s +2771 X(-48-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X(syntax)s +1340 X(of)s +1448 X(this)s +1618 X(is)s +1710 X(straight-forward:)s +514 X +1200 Y +1309 X(body)s +1734 X(::=)s +1971 X(1*\(content)s +2423 X(|)s +2468 X(EOL\))s +514 X +1440 Y +1309 X(content)s +1753 X(::=)s +1990 X(directive)s +2364 X(|)s +2409 X(plaintext)s +514 X +1680 Y +1309 X(directive)s +1758 X(::=)s +1995 X("#")s +2152 X(type)s +2349 X("/")s +2484 X(subtype)s +514 X +1800 Y +1934 X(0*\(";")s +2202 X(attribute)s +2560 X("=")s +2723 X(value\))s +514 X +1920 Y +1934 X([)s +1992 X("\(")s +2132 X(comment)s +2529 X("\)")s +2669 X(])s +514 X +2040 Y +1934 X([)s +1992 X("<")s +2155 X(id)s +2258 X(">")s +2421 X(])s +514 X +2160 Y +1934 X([)s +1992 X("[")s +2132 X(description)s +2601 X("]")s +2741 X(])s +514 X +2280 Y +1934 X([)s +1992 X(\256lename)s +2361 X(])s +514 X +2400 Y +1934 X(EOL)s +514 X +2640 Y +1784 X(|)s +1829 X("#@")s +2078 X(type)s +2275 X("/")s +2410 X(subtype)s +514 X +2760 Y +1934 X(0*\(";")s +2202 X(attribute)s +2560 X("=")s +2723 X(value\))s +514 X +2880 Y +1934 X([)s +1992 X("\(")s +2132 X(comment)s +2529 X("\)")s +2669 X(])s +514 X +3000 Y +1934 X([)s +1992 X("<")s +2155 X(id)s +2258 X(">")s +2421 X(])s +514 X +3120 Y +1934 X([)s +1992 X("[")s +2132 X(description)s +2601 X("]")s +2741 X(])s +514 X +3240 Y +1934 X(external-parameters)s +514 X +3360 Y +1934 X(EOL)s +514 X +3600 Y +1784 X(|)s +1829 X("#forw")s +514 X +3720 Y +1934 X([)s +1992 X("<")s +2155 X(id)s +2258 X(">")s +2421 X(])s +514 X +3840 Y +1934 X([)s +1992 X("[")s +2132 X(description)s +2601 X("]")s +2741 X(])s +514 X +3960 Y +1934 X([)s +1992 X("+"folder)s +2393 X(])s +2451 X([)s +2509 X(0*msg)s +2801 X(])s +514 X +4080 Y +1934 X(EOL)s +514 X +4320 Y +1784 X(|)s +1829 X("#begin")s +514 X +4440 Y +1984 X([)s +2042 X("<")s +2205 X(id)s +2308 X(">")s +2471 X(])s +514 X +4560 Y +1984 X([)s +2042 X("[")s +2182 X(description)s +2651 X("]")s +2791 X(])s +514 X +4680 Y +1984 X([)s +2092 X("alternative")s +514 X +4800 Y +2034 X(|)s +2079 X("parallel")s +514 X +4920 Y +2034 X(|)s +2079 X(something-else)s +2784 X(])s +514 X +5040 Y +1984 X(EOL)s +514 X +5160 Y +1934 X(1*body)s +514 X +5280 Y +1834 X("#end")s +2135 X(EOL)s +514 X +5520 Y +1309 X(plaintext)s +1759 X(::=)s +1996 X([)s +2054 X("Content-Description:")s +514 X +5640 Y +1984 X(description)s +2453 X(EOL)s +2672 X(EOL)s +2891 X(])s +514 X +5760 Y +1934 X(1*line)s +514 X +5880 Y +1834 X([)s +1892 X("#")s +2049 X(EOL)s +2268 X(])s +514 X +6120 Y +1784 X(|)s +1829 X("#<")s +2042 X(type)s +2239 X("/")s +2374 X(subtype)s +514 X +6240 Y +1934 X(0*\(";")s +2202 X(attribute)s +2560 X("=")s +2723 X(value\))s +514 X +6360 Y +1934 X([)s +1992 X("\(")s +2132 X(comment)s +2529 X("\)")s +2669 X(])s +514 X +6480 Y +1934 X([)s +1992 X("[")s +2132 X(description)s +2601 X("]")s +2741 X(])s +514 X +6600 Y +1934 X(EOL)s +514 X +6720 Y +1934 X(1*line)s +514 X +6840 Y +1834 X([)s +1892 X("#")s +2049 X(EOL)s +2268 X(])s +514 X +7080 Y +1309 X(line)s +1684 X(::=)s +1921 X("##")s +2128 X(text)s +2303 X(EOL)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 49 50 + +514 X +600 Y(MHN\(1\))s +2771 X(-49-)s +4834 X(MHN\(1\))s +514 X +960 Y +1834 X +0.0 10 10 f.R ft(--)s +1925 X(interpreted)s +2382 X(as)s +2490 X("#"text)s +2797 X(EOL)s +514 X +1080 Y +1784 X(|)s +1829 X(text)s +2004 X(EOL)s +514 X +1320 Y +874 X(Basically,)s +1298 X(the)s +1447 X(body)s +1674 X(contains)s +2034 X(one)s +2205 X(or)s +2315 X(more)s +2547 X(contents.)s +2957 X(A)s +3056 X(content)s +3377 X(consists)s +3721 X(of)s +3831 X(either)s +4084 X(a)s +4154 X(directive,)s +4554 X(indicated)s +4946 X(with)s +5150 X(a)s +514 X +1440 Y +874 X(``#'')s +1092 X(as)s +1211 X(the)s +1369 X(\256rst)s +1561 X(character)s +1961 X(of)s +2080 X(a)s +2159 X(line;)s +2372 X(or,)s +2515 X(plaintext)s +2900 X(\(one)s +3112 X(or)s +3230 X(more)s +3470 X(lines)s +3694 X(of)s +3812 X(text\).)s +4080 X(The)s +4270 X(continuation)s +4805 X(character,)s +514 X +1560 Y +874 X(``\\``,)s +1084 X(may)s +1281 X(be)s +1400 X(used)s +1608 X(to)s +1711 X(enter)s +1935 X(a)s +2004 X(single)s +2268 X(directive)s +2642 X(on)s +2767 X(more)s +2997 X(than)s +3194 X(one)s +3363 X(line,)s +3563 X(e.g.,)s +514 X +1800 Y +1234 X(#@application/octet-stream;)s +2394 X(\\)s +514 X +1920 Y +1334 X(type=tar;)s +1720 X(\\)s +514 X +2040 Y +1334 X(x-conversions=compress)s +514 X +2280 Y +874 X(There)s +1146 X(are)s +1307 X(four)s +1513 X(kinds)s +1770 X(of)s +1893 X(directives:)s +2349 X(``type'')s +2693 X(directives,)s +3146 X(which)s +3429 X(name)s +3684 X(the)s +3845 X(type)s +4056 X(and)s +4239 X(subtype)s +4589 X(of)s +4711 X(the)s +4872 X(content;)s +514 X +2400 Y +874 X(``external-type'')s +1571 X(directives,)s +2023 X(which)s +2306 X(also)s +2506 X(name)s +2760 X(the)s +2920 X(type)s +3130 X(and)s +3312 X(subtype)s +3661 X(of)s +3782 X(the)s +3942 X(content;)s +4302 X(the)s +4462 X(``forw'')s +4820 X(directive,)s +514 X +2520 Y +874 X(which)s +1150 X(is)s +1249 X(used)s +1464 X(to)s +1574 X(forward)s +1921 X(a)s +1997 X(digest)s +2268 X(of)s +2383 X(messages;)s +2820 X(and,)s +3021 X(the)s +3175 X(``begin'')s +3561 X(directive,)s +3966 X(which)s +4241 X(is)s +4339 X(used)s +4553 X(to)s +4662 X(create)s +4930 X(a)s +5005 X(mul-)s +514 X +2640 Y +874 X(tipart)s +1110 X(content.)s +514 X +2880 Y +874 X(For)s +1059 X(the)s +1227 X(type)s +1445 X(directives,)s +1904 X(the)s +2072 X(user)s +2284 X(may)s +2502 X(optionally)s +2953 X(specify)s +3286 X(the)s +3453 X(name)s +3714 X(of)s +3842 X(a)s +3931 X(\256le)s +4104 X(containing)s +4571 X(the)s +4738 X(contents)s +5116 X(in)s +514 X +3000 Y +874 X(``native'')s +1294 X(\(decoded\))s +1736 X(format.)s +2095 X(\(If)s +2237 X(the)s +2402 X(\256lename)s +2789 X(starts)s +3043 X(with)s +3264 X(the)s +3429 X(``|'')s +3624 X(character,)s +4056 X(then)s +4271 X(this)s +4459 X(gives)s +4713 X(a)s +4800 X(command)s +514 X +3120 Y +874 X(whose)s +1169 X(output)s +1465 X(is)s +1572 X(captured)s +1955 X(accordingly.\))s +2524 X(If)s +2630 X(a)s +2714 X(\256lename)s +3098 X(is)s +3205 X(not)s +3373 X(given,)s +3660 X +0.0 10 10 f.I ft(mhn)s +3872 X +0.0 10 10 f.R ft(will)s +4068 X(look)s +4286 X(for)s +4442 X(information)s +4954 X(in)s +5072 X(the)s +514 X +3240 Y +874 X(user's)s +1145 X(pro\256le)s +1439 X(to)s +1550 X(determine)s +1982 X(how)s +2187 X(the)s +2342 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erent)s +2713 X(contents)s +3079 X(should)s +3379 X(be)s +3506 X(composed.)s +3994 X(This)s +4205 X(is)s +4304 X(accomplished)s +4885 X(by)s +5017 X(con-)s +514 X +3360 Y +874 X(sulting)s +1185 X(a)s +1267 X(composition)s +1800 X(string,)s +2091 X(and)s +2273 X(executing)s +2699 X(it)s +2793 X(under)s +3058 X +0.0 10 10 f.B ft(/bin/sh)s +0.0 10 10 f.R ft(,)s +3411 X(with)s +3626 X(the)s +3785 X(standard)s +4160 X(output)s +4453 X(set)s +4601 X(to)s +4716 X(the)s +4875 X(content.)s +514 X +3480 Y +874 X(The)s +1054 X(composition)s +1574 X(string)s +1827 X(may)s +2024 X(contain)s +2343 X(these)s +2573 X(escapes:)s +514 X +3720 Y +1234 X(%a)s +1423 X(additional)s +1848 X(arguments)s +514 X +3840 Y +1234 X(%f)s +1423 X(\256lename)s +1792 X(containing)s +2239 X(content)s +514 X +3960 Y +1234 X(%F)s +1423 X(%f,)s +1589 X(and)s +1758 X(stdout)s +2028 X(is)s +2120 X(not)s +2273 X(re-directed)s +514 X +4080 Y +1234 X(%s)s +1423 X(subtype)s +514 X +4320 Y +874 X(First,)s +1108 X +0.0 10 10 f.I ft(mhn)s +1305 X +0.0 10 10 f.R ft(will)s +1486 X(look)s +1689 X(for)s +1830 X(an)s +1949 X(entry)s +2179 X(of)s +2287 X(the)s +2434 X(form:)s +514 X +4560 Y +1234 X(mhn-compose-/)s +514 X +4800 Y +874 X(to)s +981 X(determine)s +1409 X(the)s +1560 X(command)s +1983 X(to)s +2090 X(use)s +2252 X(to)s +2358 X(compose)s +2741 X(the)s +2891 X(content.)s +3263 X(If)s +3357 X(this)s +3530 X(isn't)s +3736 X(found,)s +4022 X +0.0 10 10 f.I ft(mhn)s +4222 X +0.0 10 10 f.R ft(will)s +4406 X(look)s +4612 X(for)s +4756 X(an)s +4878 X(entry)s +5111 X(of)s +514 X +4920 Y +874 X(the)s +1021 X(form:)s +514 X +5160 Y +1234 X(mhn-compose-)s +514 X +5400 Y +874 X(to)s +977 X(determine)s +1401 X(the)s +1548 X(composition)s +2068 X(command.)s +2537 X(If)s +2628 X(this)s +2798 X(isn't)s +3001 X(found,)s +3284 X +0.0 10 10 f.I ft(mhn)s +3481 X +0.0 10 10 f.R ft(will)s +3662 X(complain.)s +514 X +5640 Y +874 X(An)s +1021 X(example)s +1384 X(entry)s +1614 X(might)s +1873 X(be:)s +514 X +5880 Y +1234 X(mhn-compose-audio/basic:)s +2341 X(record)s +2620 X(|)s +2665 X(raw2audio)s +3111 X(-F)s +514 X +6120 Y +874 X(Because)s +1234 X(commands)s +1695 X(like)s +1873 X(these)s +2106 X(will)s +2290 X(vary,)s +2520 X(depending)s +2964 X(on)s +3091 X(the)s +3240 X(display)s +3556 X(environment)s +4088 X(used)s +4298 X(for)s +4441 X(login,)s +4699 X(composition)s +514 X +6240 Y +874 X(strings)s +1175 X(for)s +1325 X(di)s +Cff(erent)s +1696 X(contents)s +2062 X(should)s +2362 X(probably)s +2750 X(be)s +2877 X(put)s +3038 X(in)s +3149 X(the)s +3304 X(\256le)s +3465 X(speci\256ed)s +3853 X(by)s +3986 X(the)s +4141 X +0.0 10 10 f.B ft($MHN)s +4468 X +0.0 10 10 f.R ft(environment)s +5006 X(vari-)s +514 X +6360 Y +874 X(able,)s +1090 X(instead)s +1398 X(of)s +1506 X(directly)s +1836 X(in)s +1939 X(your)s +2147 X(user)s +2338 X(pro\256le.)s +514 X +6600 Y +874 X(The)s +1059 X(external-type)s +1615 X(directives)s +2033 X(are)s +2184 X(used)s +2396 X(to)s +2503 X(provide)s +2837 X(a)s +2910 X(reference)s +3308 X(to)s +3415 X(a)s +3488 X(content,)s +3836 X(rather)s +4097 X(than)s +4298 X(enclosing)s +4710 X(the)s +4861 X(contents)s +514 X +6720 Y +874 X(itself.)s +1153 X(Hence,)s +1461 X(instead)s +1773 X(of)s +1885 X(providing)s +2303 X(a)s +2376 X(\256lename)s +2749 X(as)s +2861 X(with)s +3068 X(the)s +3219 X(type)s +3420 X(directives,)s +3862 X(external-parameters)s +4681 X(are)s +4830 X(supplied.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 50 51 + +514 X +600 Y(MHN\(1\))s +2771 X(-50-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(These)s +1137 X(look)s +1340 X(like)s +1515 X(regular)s +1822 X(parameters,)s +2309 X(so)s +2423 X(they)s +2620 X(must)s +2840 X(be)s +2959 X(separated)s +3360 X(accordingly,)s +3881 X(e.g.,)s +514 X +1200 Y +1234 X(#@application/octet-stream;)s +2394 X(\\)s +514 X +1320 Y +1334 X(type=tar;)s +1720 X(\\)s +514 X +1440 Y +1334 X(x-conversions=compress)s +2352 X([])s +2443 X(\\)s +514 X +1560 Y +1334 X(access-type=anon-ftp;)s +2240 X(\\)s +514 X +1680 Y +1334 X(name="mh-mime.tar.Z";)s +2346 X(\\)s +514 X +1800 Y +1334 X(directory="mrose/mh-mime";)s +2546 X(\\)s +514 X +1920 Y +1334 X(site="ftp.ics.uci.edu")s +514 X +2160 Y +874 X(By)s +1040 X(specifying)s +1505 X(``[]'',)s +1777 X(an)s +1920 X(empty)s +2219 X(description)s +2712 X(string)s +2989 X(is)s +3105 X(given,)s +3401 X(and)s +3594 X(the)s +3765 X(start)s +3986 X(of)s +4118 X(the)s +4288 X(external-parameters)s +5127 X(is)s +514 X +2280 Y +874 X(identi\256ed.)s +1327 X(These)s +1590 X(parameters)s +2052 X(are)s +2198 X(of)s +2306 X(the)s +2453 X(form:)s +514 X +2520 Y +1234 X(access-type=)s +1799 X(usually)s +2113 X +0.0 10 10 f.I ft(anon-ftp)s +2477 X +0.0 10 10 f.R ft(or)s +2585 X +0.0 10 10 f.I ft(mail-server)s +514 X +2640 Y +1234 X +0.0 10 10 f.R ft(name=)s +1799 X(\256lename)s +514 X +2760 Y +1234 X(permission=)s +1799 X(read-only)s +2206 X(or)s +2314 X(read-write)s +514 X +2880 Y +1234 X(site=)s +1799 X(hostname)s +514 X +3000 Y +1234 X(directory=)s +1799 X(directoryname)s +2400 X(\(optional\))s +514 X +3120 Y +1234 X(mode=)s +1799 X(usually)s +2113 X +0.0 10 10 f.I ft(ascii)s +2327 X +0.0 10 10 f.R ft(or)s +2435 X +0.0 10 10 f.I ft(image)s +2704 X +0.0 10 10 f.R ft(\(optional\))s +514 X +3240 Y +1234 X(size=)s +1799 X(number)s +2129 X(of)s +2237 X(octets)s +514 X +3360 Y +1234 X(server=)s +1799 X(mailbox)s +514 X +3480 Y +1234 X(subject=)s +1799 X(subject)s +2107 X(to)s +2210 X(send)s +514 X +3600 Y +1234 X(body=)s +1799 X(command)s +2218 X(to)s +2321 X(send)s +2529 X(for)s +2670 X(retrieval)s +514 X +3960 Y +874 X(For)s +1040 X(the)s +1189 X(forw)s +1404 X(directive,)s +1805 X(the)s +1954 X(user)s +2147 X(may)s +2346 X(optionally)s +2779 X(specify)s +3094 X(the)s +3243 X(name)s +3485 X(of)s +3594 X(the)s +3742 X(folder)s +4006 X(and)s +4176 X(which)s +4446 X(messages)s +4849 X(are)s +4996 X(to)s +5100 X(be)s +514 X +4080 Y +874 X(forwarded.)s +1363 X(if)s +1454 X(a)s +1528 X(folder)s +1796 X(is)s +1893 X(not)s +2051 X(given,)s +2328 X(it)s +2414 X(defaults)s +2760 X(to)s +2868 X(the)s +3020 X(current)s +3332 X(folder.)s +3650 X(Similarly,)s +4078 X(if)s +4169 X(a)s +4242 X(message)s +4609 X(is)s +4705 X(not)s +4862 X(given,)s +5138 X(it)s +514 X +4200 Y +874 X(defaults)s +1220 X(to)s +1328 X(the)s +1480 X(current)s +1792 X(message.)s +2210 X(Hence,)s +2519 X(the)s +2671 X(forw)s +2889 X(directive)s +3267 X(is)s +3363 X(similar)s +3670 X(to)s +3777 X(the)s +3928 X +0.0 10 10 f.I ft(forw)s +4162 X +0.0 10 10 f.R ft(\(1\))s +4307 X(command,)s +4755 X(except)s +5044 X(that)s +514 X +4320 Y +874 X(the)s +1032 X(former)s +1339 X(uses)s +1547 X(the)s +1705 X(MIME)s +2013 X(rules)s +2243 X(for)s +2395 X(encapsulation)s +2980 X(rather)s +3248 X(than)s +3456 X(those)s +3703 X(speci\256ed)s +4094 X(in)s +4208 X(RFC)s +4434 X(934.)s +4670 X(Usage)s +4954 X(of)s +5072 X(the)s +514 X +4440 Y +874 X(`\261rfc934mode')s +1498 X(switch)s +1785 X(indicates)s +2166 X(whether)s +2513 X +0.0 10 10 f.I ft(mhn)s +2711 X +0.0 10 10 f.R ft(should)s +3004 X(attempt)s +3330 X(to)s +3433 X(utilize)s +3708 X(the)s +3855 X(encapsulation)s +4429 X(rules)s +4648 X(in)s +4751 X(such)s +4959 X(a)s +5028 X(way)s +514 X +4560 Y +874 X(as)s +989 X(to)s +1099 X(appear)s +1396 X(that)s +1578 X(RFC)s +1800 X(934)s +1982 X(is)s +2081 X(being)s +2334 X(used.)s +2598 X(If)s +2695 X(given,)s +2973 X(then)s +3176 X(RFC)s +3397 X(934-compliant)s +4011 X(user-agents)s +4496 X(should)s +4794 X(be)s +4919 X(able)s +5116 X(to)s +514 X +4680 Y +874 X(burst)s +1103 X(the)s +1254 X(message)s +1621 X(on)s +1750 X(reception)s +2171 X(--)s +2287 X(providing)s +2705 X(that)s +2884 X(the)s +3035 X(messages)s +3441 X(being)s +3691 X(encapsulated)s +4234 X(do)s +4362 X(not)s +4518 X(contain)s +4840 X(encapsu-)s +514 X +4800 Y +874 X(lated)s +1094 X(messages)s +1497 X(themselves.)s +2017 X(The)s +2198 X(drawback)s +2611 X(of)s +2720 X(this)s +2891 X(approach)s +3282 X(is)s +3375 X(that)s +3551 X(the)s +3699 X(encapsulations)s +4312 X(are)s +4458 X(generated)s +4870 X(by)s +4995 X(plac-)s +514 X +4920 Y +874 X(ing)s +1027 X(an)s +1146 X(extra)s +1370 X(newline)s +1711 X(at)s +1808 X(the)s +1955 X(end)s +2124 X(of)s +2232 X(the)s +2379 X(body)s +2604 X(of)s +2712 X(each)s +2919 X(message.)s +514 X +5160 Y +874 X(For)s +1038 X(the)s +1185 X(begin)s +1432 X(directive,)s +1831 X(the)s +1978 X(user)s +2169 X(must)s +2389 X(specify)s +2702 X(at)s +2799 X(least)s +3007 X(one)s +3176 X(content)s +3495 X(between)s +3852 X(the)s +3999 X(begin)s +4246 X(and)s +4415 X(end)s +4584 X(pairs.)s +514 X +5400 Y +874 X(For)s +1039 X(all)s +1165 X(of)s +1274 X(these)s +1505 X(directives,)s +1944 X(the)s +2092 X(user)s +2284 X(may)s +2482 X(include)s +2802 X(a)s +2872 X(brief)s +3086 X(description)s +3556 X(of)s +3665 X(the)s +3813 X(content)s +4133 X(between)s +4491 X(the)s +4639 X(``['')s +4830 X(character)s +514 X +5520 Y +874 X(and)s +1046 X(the)s +1196 X(``]'')s +1389 X(character.)s +1831 X(By)s +1976 X(default,)s +2306 X +0.0 10 10 f.I ft(mhn)s +2506 X +0.0 10 10 f.R ft(will)s +2690 X(generate)s +3055 X(a)s +3127 X(unique)s +3427 X(``Content-ID:'')s +4070 X(for)s +4213 X(each)s +4422 X(directive;)s +4826 X(however,)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 51 52 + +514 X +600 Y(MHN\(1\))s +2771 X(-51-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(the)s +1026 X(user)s +1222 X(may)s +1424 X(override)s +1786 X(this)s +1961 X(by)s +2091 X(de\256ning)s +2449 X(the)s +2600 X(ID)s +2734 X(using)s +2980 X(the)s +3131 X(``<'')s +3348 X(and)s +3521 X(``>'')s +3738 X(characters.)s +4220 X(Putting)s +4539 X(this)s +4713 X(all)s +4842 X(together,)s +514 X +1080 Y +874 X(here)s +1070 X(is)s +1162 X(a)s +1231 X(brief)s +1444 X(example)s +1807 X(of)s +1915 X(what)s +2134 X(a)s +2203 X(user's)s +2466 X(components)s +2974 X(\256le)s +3127 X(might)s +3386 X(look)s +3589 X(like:)s +514 X +1320 Y +1234 X(To:)s +514 X +1440 Y +1234 X(cc:)s +514 X +1560 Y +1234 X(Subject:)s +514 X +1680 Y +1234 X(--------)s +514 X +1800 Y +1234 X(#audio/basic)s +1764 X([Flint)s +2012 X(phone])s +2339 X(\\)s +514 X +1920 Y +1334 X(|raw2audio)s +1800 X(-F)s +1914 X(<)s +1995 X(/home/mrose/lib/multi-media/\257int.au)s +514 X +2040 Y +1234 X(#image/gif)s +1742 X([MTR's)s +2089 X(photo])s +2375 X(\\)s +514 X +2160 Y +1734 X(/home/mrose/lib/multi-media/mrose.gif)s +514 X +2400 Y +874 X(For)s +1038 X(a)s +1107 X(later)s +1309 X(example,)s +1697 X(we'll)s +1927 X(call)s +2096 X(this)s +2266 X(components)s +2774 X(\256le)s +2927 X +0.0 10 10 f.I ft(mhncomps)s +0.0 10 10 f.R ft(.)s +514 X +2640 Y +874 X(As)s +1012 X(noted)s +1261 X(earlier,)s +1567 X(in)s +1672 X(addition)s +2027 X(to)s +2132 X(directives,)s +2572 X(plaintext)s +2949 X(can)s +3114 X(be)s +3235 X(present.)s +3600 X(Plaintext)s +3983 X(is)s +4077 X(gathered,)s +4472 X(until)s +4682 X(a)s +4752 X(directive)s +5127 X(is)s +514 X +2760 Y +874 X(found)s +1135 X(or)s +1245 X(the)s +1394 X(draft)s +1609 X(is)s +1703 X(exhausted,)s +2154 X(and)s +2325 X(this)s +2497 X(is)s +2591 X(made)s +2834 X(to)s +2939 X(form)s +3160 X(a)s +3231 X(text)s +3408 X(content.)s +3779 X(If)s +3872 X(the)s +4021 X(plaintext)s +4398 X(must)s +4620 X(contain)s +4941 X(a)s +5012 X(``#'')s +514 X +2880 Y +874 X(at)s +971 X(the)s +1118 X(beginning)s +1543 X(of)s +1651 X(a)s +1720 X(line,)s +1920 X(simply)s +2218 X(double)s +2515 X(it,)s +2621 X(e.g.,)s +514 X +3120 Y +1234 X(##when)s +1575 X(sent,)s +1786 X(this)s +1956 X(line)s +2131 X(will)s +2312 X(start)s +2509 X(with)s +2712 X(only)s +2915 X(one)s +3084 X(#)s +514 X +3360 Y +874 X(If)s +975 X(you)s +1160 X(want)s +1389 X(to)s +1502 X(end)s +1681 X(the)s +1838 X(plaintext)s +2223 X(prior)s +2452 X(to)s +2565 X(a)s +2644 X(directive,)s +3053 X(e.g.,)s +3257 X(to)s +3370 X(have)s +3593 X(two)s +3778 X(plaintext)s +4163 X(contents)s +4530 X(adjacent,)s +4921 X(simply)s +514 X +3480 Y +874 X(insert)s +1121 X(a)s +1190 X(line)s +1365 X(containing)s +1812 X(a)s +1881 X(single)s +2145 X(``#'')s +2352 X(character,)s +2766 X(e.g.,)s +514 X +3720 Y +1234 X(this)s +1404 X(is)s +1496 X(the)s +1643 X(\256rst)s +1824 X(content)s +514 X +3840 Y +1234 X(#)s +514 X +3960 Y +1234 X(and)s +1403 X(this)s +1573 X(is)s +1665 X(the)s +1812 X(second)s +514 X +4200 Y +874 X(Finally,)s +1208 X(if)s +1294 X(the)s +1441 X(plaintext)s +1816 X(starts)s +2052 X(with)s +2255 X(a)s +2324 X(line)s +2499 X(of)s +2607 X(the)s +2754 X(form:)s +514 X +4440 Y +1234 X(Content-Description:)s +2103 X(text)s +514 X +4680 Y +874 X(then)s +1080 X(this)s +1259 X(will)s +1449 X(be)s +1577 X(used)s +1794 X(to)s +1906 X(describe)s +2272 X(the)s +2428 X(plaintext)s +2812 X(content.)s +3189 X +0.0 10 10 f.B ft(NOTE)s +3506 X(WELL:)s +3873 X +0.0 10 10 f.R ft(you)s +4056 X(must)s +4284 X(follow)s +4578 X(this)s +4756 X(line)s +4939 X(with)s +5150 X(a)s +514 X +4800 Y +874 X(blank)s +1121 X(line)s +1296 X(before)s +1575 X(starting)s +1900 X(your)s +2108 X(text.)s +514 X +5040 Y +874 X(By)s +1018 X(default,)s +1347 X(plaintext)s +1724 X(is)s +1818 X(captured)s +2188 X(as)s +2298 X(a)s +2369 X(text/plain)s +2774 X(content.)s +3145 X(You)s +3344 X(can)s +3509 X(override)s +3868 X(this)s +4040 X(by)s +4166 X(starting)s +4492 X(the)s +4640 X(plaintext)s +5016 X(with)s +514 X +5160 Y +874 X(``#<'')s +1137 X(followed)s +1517 X(by)s +1642 X(a)s +1711 X(content-type)s +2235 X(speci\256cation,)s +2790 X(e.g.,)s +514 X +5400 Y +1234 X(#)s +514 X +5160 Y +1234 X +0.0 10 10 f.R ft(--------)s +514 X +5400 Y +1234 X(What)s +1475 X(now?)s +1716 X +0.0 10 10 f.B ft(edit)s +1902 X +0.0 10 10 f.R ft(\(this)s +2105 X(invokes)s +2441 X +0.0 10 10 f.I ft(mhn)s +0.0 10 10 f.R ft(\))s +514 X +5640 Y +1234 X(What)s +1475 X(now?)s +1716 X +0.0 10 10 f.B ft(send)s +514 X +5880 Y +874 X +0.0 10 10 f.R ft(You)s +1090 X(have)s +1322 X(to)s +1444 X(remember)s +1892 X(to)s +2014 X(type)s +2230 X(the)s +2396 X(additional)s +2840 X(edit)s +3034 X(command,)s +3497 X(but)s +3669 X(it)s +3769 X(should)s +4079 X(be)s +4216 X(fairly)s +4475 X(obvious)s +4835 X(from)s +5072 X(the)s +514 X +6000 Y +874 X(interaction.)s +514 X +6240 Y +874 X(Finally,)s +1208 X(you)s +1383 X(should)s +1675 X(consider)s +2038 X(adding)s +2335 X(this)s +2505 X(line)s +2680 X(to)s +2783 X(your)s +2991 X(pro\256le:)s +514 X +6480 Y +1234 X(lproc:)s +1492 X(show)s +514 X +6720 Y +874 X(This)s +1077 X(way,)s +1293 X(if)s +1379 X(you)s +1554 X(decide)s +1839 X(to)s +1942 X +0.0 10 10 f.B ft(list)s +2095 X +0.0 10 10 f.R ft(after)s +2302 X(invoking)s +2683 X +0.0 10 10 f.I ft(mhn)s +2880 X +0.0 10 10 f.R ft(as)s +2988 X(your)s +3196 X(editor,)s +3479 X(the)s +3626 X(command)s +514 X +6960 Y +1234 X(What)s +1475 X(now?)s +1716 X(list)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 53 54 + +514 X +600 Y(MHN\(1\))s +2771 X(-53-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(will)s +1055 X(work)s +1285 X(as)s +1393 X(you)s +1568 X(expect.)s +514 X +1320 Y +694 X +0.0 8 8 f.B ft(Sending)s +991 X(Files)s +1170 X(via)s +1292 X(Mail)s +514 X +1560 Y +874 X +0.0 10 10 f.R ft(When)s +1143 X(you)s +1324 X(want)s +1549 X(to)s +1658 X(send)s +1872 X(a)s +1947 X(bunch)s +2222 X(of)s +2336 X(\256les)s +2534 X(to)s +2643 X(someone,)s +3054 X(you)s +3235 X(can)s +3404 X(run)s +3567 X(the)s +3719 X +0.0 10 10 f.I ft(viamail)s +4049 X +0.0 10 10 f.R ft(shell)s +4268 X(script,)s +4545 X(which)s +4819 X(is)s +4916 X(similar)s +514 X +1680 Y +874 X(the)s +1021 X(tarmail)s +1329 X(command:)s +514 X +1920 Y +1234 X(/usr/bs/mh-beta/lib/viamail)s +2343 X(mailpath)s +2718 X(``subject'')s +3158 X(\256les)s +3375 X(...)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(viamail)s +1200 X +0.0 10 10 f.R ft(will)s +1381 X(archive)s +1699 X(the)s +1846 X(directories/\256les)s +2487 X(you)s +2662 X(name)s +2903 X(with)s +3106 X +0.0 10 10 f.I ft(tar)s +3273 X +0.0 10 10 f.R ft(\(1\),)s +3439 X(and)s +3608 X(then)s +3805 X(mail)s +4008 X(the)s +4155 X(compressed)s +4651 X(archive)s +4969 X(to)s +5072 X(the)s +514 X +2280 Y +874 X(`mailpath')s +1325 X(with)s +1538 X(the)s +1695 X(given)s +1951 X(`subject'.)s +2384 X(The)s +2573 X(archive)s +2900 X(will)s +3090 X(be)s +3218 X(automatically)s +3796 X(split)s +4003 X(up)s +4137 X(into)s +4327 X(as)s +4444 X(many)s +4700 X(messages)s +5111 X(as)s +514 X +2400 Y +874 X(necessary)s +1286 X(in)s +1389 X(order)s +1624 X(to)s +1727 X(get)s +1874 X(past)s +2060 X(most)s +2280 X(mailers.)s +514 X +2640 Y +874 X(Sometimes)s +1353 X(you)s +1537 X(want)s +1765 X +0.0 10 10 f.I ft(viamail)s +2099 X +0.0 10 10 f.R ft(to)s +2211 X(pause)s +2472 X(after)s +2688 X(posting)s +3017 X(a)s +3094 X(partial)s +3382 X(message.)s +3803 X(This)s +4014 X(is)s +4114 X(usually)s +4436 X(the)s +4591 X(case)s +4795 X(when)s +5044 X(you)s +514 X +2760 Y +874 X(are)s +1022 X(running)s +1360 X +0.0 10 10 f.I ft(sendmail)s +1748 X +0.0 10 10 f.R ft(and)s +1919 X(expect)s +2205 X(to)s +2309 X(generate)s +2672 X(a)s +2742 X(lot)s +2874 X(of)s +2983 X(partial)s +3264 X(messages.)s +3717 X(If)s +3809 X(the)s +3957 X(\256rst)s +4139 X(argument)s +4542 X(given)s +4790 X(to)s +4894 X +0.0 10 10 f.I ft(viamail)s +514 X +2880 Y +874 X +0.0 10 10 f.R ft(starts)s +1110 X(with)s +1313 X(a)s +1382 X(dash,)s +1615 X(then)s +1812 X(it)s +1893 X(is)s +1985 X(interpreted)s +2442 X(as)s +2550 X(the)s +2697 X(number)s +3027 X(of)s +3135 X(seconds)s +3476 X(to)s +3579 X(pause)s +3831 X(in)s +3934 X(between)s +4291 X(postings,)s +4675 X(e.g.,)s +514 X +3120 Y +1234 X(/usr/bs/mh-beta/lib/viamail)s +2343 X(-300)s +2551 X(mailpath)s +2926 X(``subject'')s +3366 X(\256les)s +3583 X(...)s +514 X +3360 Y +874 X(will)s +1055 X(pause)s +1307 X(5)s +1382 X(minutes)s +1724 X(in)s +1827 X(between)s +2184 X(each)s +2391 X(posting.)s +514 X +3600 Y +874 X(When)s +1141 X(these)s +1375 X(messages)s +1781 X(are)s +1931 X(received,)s +2322 X(invoke)s +2623 X +0.0 10 10 f.I ft(mhn)s +2824 X +0.0 10 10 f.R ft(once,)s +3066 X(with)s +3273 X(the)s +3423 X(list)s +3574 X(of)s +3685 X(messages,)s +4115 X(and)s +4287 X(the)s +4437 X(`\261store')s +4775 X(command.)s +514 X +3720 Y +874 X(The)s +1056 X +0.0 10 10 f.I ft(mhn)s +1255 X +0.0 10 10 f.R ft(program)s +1620 X(will)s +1803 X(then)s +2002 X(store)s +2223 X(exactly)s +2538 X(one)s +2709 X(message)s +3074 X(containing)s +3523 X(the)s +3672 X(archive.)s +4042 X(You)s +4241 X(can)s +4406 X(then)s +4604 X(use)s +4763 X(`\261show')s +5116 X(to)s +514 X +3840 Y +874 X(\256nd)s +1066 X(out)s +1230 X(what's)s +1532 X(inside;)s +1835 X(possibly)s +2230 X(followed)s +2621 X(by)s +2757 X(`\261store')s +3103 X(to)s +3217 X(write)s +3458 X(the)s +3616 X(archive)s +3945 X(to)s +4059 X(a)s +4139 X(\256le)s +4303 X(where)s +4581 X(you)s +4766 X(can)s +4939 X(subse-)s +514 X +3960 Y +874 X(quently)s +1199 X(uncompress)s +1701 X(and)s +1870 X(untar)s +2100 X(it,)s +2206 X(e.g.,)s +514 X +4200 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-list)s +1726 X(all)s +514 X +4320 Y +1259 X(msg)s +1451 X(part)s +1656 X(type/subtype)s +2492 X(size)s +2672 X(description)s +514 X +4440 Y +1309 X(1)s +1534 X(message/partial)s +2430 X(47K)s +2627 X(part)s +2807 X(1)s +2882 X(of)s +2990 X(4)s +514 X +4560 Y +1309 X(2)s +1534 X(message/partial)s +2430 X(47K)s +2627 X(part)s +2807 X(2)s +2882 X(of)s +2990 X(4)s +514 X +4680 Y +1309 X(3)s +1534 X(message/partial)s +2430 X(47K)s +2627 X(part)s +2807 X(3)s +2882 X(of)s +2990 X(4)s +514 X +4800 Y +1309 X(4)s +1534 X(message/partial)s +2430 X(18K)s +2627 X(part)s +2807 X(4)s +2882 X(of)s +2990 X(4)s +514 X +4920 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-store)s +1797 X(all)s +514 X +5040 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-list)s +1726 X(-verbose)s +2094 X(last)s +514 X +5160 Y +1259 X(msg)s +1451 X(part)s +1656 X(type/subtype)s +2492 X(size)s +2672 X(description)s +514 X +5280 Y +1309 X(5)s +1534 X(application/octet-stream)s +2524 X(118K)s +514 X +5400 Y +1559 X(\(extract)s +1888 X(with)s +2091 X(uncompress)s +2593 X(|)s +2638 X(tar)s +2768 X(xvpf)s +2976 X(-\))s +514 X +5520 Y +1559 X(type=tar)s +514 X +5640 Y +1559 X(x-conversions=compress)s +514 X +5760 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-show)s +1814 X(last)s +514 X +5880 Y +1259 X(msg)s +1451 X(part)s +1656 X(type/subtype)s +2492 X(size)s +2672 X(description)s +514 X +6000 Y +1309 X(5)s +1534 X(application/octet-stream)s +2524 X(118K)s +514 X +6120 Y +1234 X(--)s +1325 X(headers)s +1654 X(of)s +1762 X(message,)s +2150 X(followed)s +2530 X(by)s +2655 X +0.0 10 10 f.I ft(tar)s +2797 X +0.0 10 10 f.R ft(listing)s +3073 X(appears)s +3402 X(here)s +514 X +6240 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-store)s +1797 X(last)s +514 X +6360 Y +1234 X(%)s +1342 X(uncompress)s +1844 X(<)s +1925 X(5.tar.Z)s +2216 X(|)s +2261 X(tar)s +2391 X(xvpf)s +2599 X(-)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 54 55 + +514 X +600 Y(MHN\(1\))s +2771 X(-54-)s +4834 X(MHN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(Alternately,)s +1373 X(by)s +1498 X(using)s +1740 X(the)s +1887 X(`\261auto')s +2200 X(switch,)s +2511 X +0.0 10 10 f.I ft(mhn)s +2708 X +0.0 10 10 f.R ft(will)s +2889 X(automatically)s +3458 X(do)s +3583 X(the)s +3730 X(extraction)s +4154 X(for)s +4295 X(you,)s +4495 X(e.g.,)s +514 X +1200 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-list)s +1726 X(all)s +514 X +1320 Y +1259 X(msg)s +1451 X(part)s +1656 X(type/subtype)s +2492 X(size)s +2672 X(description)s +514 X +1440 Y +1309 X(1)s +1534 X(message/partial)s +2430 X(47K)s +2627 X(part)s +2807 X(1)s +2882 X(of)s +2990 X(4)s +514 X +1560 Y +1309 X(2)s +1534 X(message/partial)s +2430 X(47K)s +2627 X(part)s +2807 X(2)s +2882 X(of)s +2990 X(4)s +514 X +1680 Y +1309 X(3)s +1534 X(message/partial)s +2430 X(47K)s +2627 X(part)s +2807 X(3)s +2882 X(of)s +2990 X(4)s +514 X +1800 Y +1309 X(4)s +1534 X(message/partial)s +2430 X(18K)s +2627 X(part)s +2807 X(4)s +2882 X(of)s +2990 X(4)s +514 X +1920 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-store)s +1797 X(all)s +514 X +2040 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-list)s +1726 X(-verbose)s +2094 X(last)s +514 X +2160 Y +1259 X(msg)s +1451 X(part)s +1656 X(type/subtype)s +2492 X(size)s +2672 X(description)s +514 X +2280 Y +1309 X(5)s +1534 X(application/octet-stream)s +2524 X(118K)s +514 X +2400 Y +1559 X(\(extract)s +1888 X(with)s +2091 X(uncompress)s +2593 X(|)s +2638 X(tar)s +2768 X(xvpf)s +2976 X(-\))s +514 X +2520 Y +1559 X(type=tar)s +514 X +2640 Y +1559 X(x-conversions=compress)s +514 X +2760 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-show)s +1814 X(last)s +514 X +2880 Y +1259 X(msg)s +1451 X(part)s +1656 X(type/subtype)s +2492 X(size)s +2672 X(description)s +514 X +3000 Y +1309 X(5)s +1534 X(application/octet-stream)s +2524 X(118K)s +514 X +3120 Y +1234 X(--)s +1325 X(headers)s +1654 X(of)s +1762 X(message,)s +2150 X(followed)s +2530 X(by)s +2655 X +0.0 10 10 f.I ft(tar)s +2797 X +0.0 10 10 f.R ft(listing)s +3073 X(appears)s +3402 X(here)s +514 X +3240 Y +1234 X(%)s +1342 X(mhn)s +1545 X(-store)s +1797 X(-auto)s +2027 X(last)s +514 X +3360 Y +1234 X(--)s +1325 X +0.0 10 10 f.I ft(tar)s +1467 X +0.0 10 10 f.R ft(listing)s +1743 X(appears)s +2072 X(here)s +2268 X(as)s +2376 X(\256les)s +2568 X(are)s +2714 X(extracted)s +514 X +3600 Y +874 X(As)s +1017 X(the)s +1171 X(second)s +1480 X +0.0 10 10 f.I ft(tar)s +1629 X +0.0 10 10 f.R ft(listing)s +1912 X(is)s +2011 X(generated,)s +2455 X(the)s +2609 X(\256les)s +2808 X(are)s +2961 X(extracted.)s +3408 X(A)s +3512 X(prudent)s +3849 X(user)s +4046 X(will)s +4233 X(never)s +4485 X(put)s +4644 X(`\261auto')s +4963 X(in)s +5072 X(the)s +514 X +3720 Y +874 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +1364 X(\256le.)s +1568 X(The)s +1749 X(correct)s +2051 X(procedure)s +2475 X(is)s +2568 X(to)s +2672 X(\256rst)s +2854 X(use)s +3013 X(`\261show',)s +3391 X(to)s +3495 X(\256nd)s +3677 X(out)s +3831 X(what)s +4051 X(will)s +4233 X(be)s +4352 X(extracted.)s +4792 X(Then)s +5022 X +0.0 10 10 f.I ft(mhn)s +514 X +3840 Y +874 X +0.0 10 10 f.R ft(can)s +1037 X(be)s +1156 X(invoked)s +1503 X(with)s +1731 X(`\261store')s +2066 X(and)s +2235 X(`\261auto')s +2548 X(to)s +2651 X(perform)s +2997 X(the)s +3144 X(extraction.)s +514 X +4200 Y +694 X +0.0 8 8 f.B ft(User)s +873 X(Environment)s +514 X +4440 Y +874 X +0.0 10 10 f.R ft(Because)s +1232 X(the)s +1380 X(display)s +1695 X(environment)s +2226 X(in)s +2330 X(which)s +2600 X +0.0 10 10 f.I ft(mhn)s +2798 X +0.0 10 10 f.R ft(operates)s +3156 X(may)s +3354 X(vary)s +3557 X(for)s +3699 X(a)s +3769 X(user,)s +3986 X +0.0 10 10 f.I ft(mhn)s +4184 X +0.0 10 10 f.R ft(will)s +4365 X(look)s +4568 X(for)s +4709 X(the)s +4856 X(environ-)s +514 X +4560 Y +874 X(ment)s +1101 X(variable)s +1449 X +0.0 10 10 f.B ft($MHN)s +0.0 10 10 f.R ft(.)s +1819 X(If)s +1911 X(present,)s +2250 X(this)s +2421 X(speci\256es)s +2791 X(the)s +2939 X(name)s +3181 X(of)s +3290 X(an)s +3410 X(additional)s +3836 X(user)s +4028 X(pro\256le)s +4315 X(which)s +4585 X(should)s +4878 X(be)s +4998 X(read.)s +514 X +4680 Y +874 X(Hence,)s +1179 X(when)s +1421 X(a)s +1491 X(user)s +1683 X(logs)s +1876 X(in)s +1980 X(on)s +2106 X(a)s +2176 X(particular)s +2584 X(display)s +2898 X(device,)s +3208 X(this)s +3378 X(environment)s +3908 X(variable)s +4254 X(should)s +4546 X(be)s +4665 X(set)s +4801 X(to)s +4904 X(refer)s +5116 X(to)s +514 X +4800 Y +874 X(a)s +943 X(\256le)s +1096 X(containing)s +1543 X(de\256nitions)s +1991 X(useful)s +2260 X(for)s +2401 X(the)s +2548 X(display)s +2862 X(device.)s +3197 X(Normally,)s +3630 X(only)s +3833 X(entries)s +4124 X(of)s +4232 X(the)s +4379 X(form)s +514 X +5040 Y +1234 X(mhn-show-/)s +514 X +5160 Y +1234 X(mhn-show-)s +514 X +5400 Y +874 X(need)s +1087 X(be)s +1206 X(present.)s +1569 X(Finally,)s +1903 X +0.0 10 10 f.I ft(mhn)s +2100 X +0.0 10 10 f.R ft(will)s +2281 X(attempt)s +2606 X(to)s +2709 X(consult)s +3023 X(one)s +3192 X(other)s +3422 X(additional)s +3847 X(user)s +4038 X(pro\256le,)s +4349 X(e.g.,)s +514 X +5640 Y +1234 X(/usr/bs/mh-beta/lib/mhn_defaults)s +514 X +5880 Y +874 X(which)s +1143 X(is)s +1235 X(created)s +1547 X(automatically)s +2116 X(during)s +2402 X(MH)s +2588 X(installation.)s +514 X +6042 Y +0.0 8 8 f.B ft(Files)s +514 X +6162 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +6282 Y +874 X($MHN)s +2463 X(Additional)s +2916 X(pro\256le)s +3202 X(entries)s +514 X +6402 Y +874 X(/usr/bs/mh-beta/lib/mhn_defaults)s +2463 X(System-default)s +3093 X(pro\256le)s +3379 X(entries)s +514 X +6522 Y +874 X(/usr/bs/mh-beta/lib/mhl.headers)s +2463 X(The)s +2643 X(headers)s +2972 X(template)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 55 56 + +514 X +600 Y(MHN\(1\))s +2771 X(-55-)s +4834 X(MHN\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +1200 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +1320 Y +874 X(mhlproc:)s +1790 X(Default)s +2114 X(program)s +2477 X(to)s +2580 X(display)s +2894 X(message)s +3257 X(headers)s +514 X +1440 Y +874 X(mhn-access-ftp:)s +1790 X(Program)s +2159 X(to)s +2262 X(retrieve)s +2591 X(contents)s +2949 X(via)s +3096 X(FTP)s +514 X +1560 Y +874 X(mhn-cache)s +1790 X(Public)s +2071 X(directory)s +2456 X(to)s +2559 X(store)s +2778 X(cached)s +3079 X(external)s +3425 X(contents)s +514 X +1680 Y +874 X(mhn-charset-)s +1790 X(Template)s +2192 X(for)s +2333 X(environment)s +2863 X(to)s +2966 X(render)s +3245 X(character)s +3634 X(sets)s +514 X +1800 Y +874 X(mhn-compose-*)s +1790 X(Template)s +2192 X(for)s +2333 X(composing)s +2797 X(contents)s +514 X +1920 Y +874 X(mhn-private-cache)s +1790 X(Personal)s +2159 X(directory)s +2544 X(to)s +2647 X(store)s +2866 X(cached)s +3167 X(external)s +3513 X(contents)s +514 X +2040 Y +874 X(mhn-show-*)s +1790 X(Template)s +2192 X(for)s +2333 X(displaying)s +2775 X(contents)s +514 X +2160 Y +874 X(mhn-storage)s +1790 X(Directory)s +2197 X(to)s +2300 X(store)s +2519 X(contents)s +514 X +2280 Y +874 X(mhn-store-*)s +1790 X(Template)s +2192 X(for)s +2333 X(storing)s +2636 X(contents)s +514 X +2400 Y +874 X(moreproc:)s +1790 X(Default)s +2114 X(program)s +2477 X(to)s +2580 X(display)s +2894 X(text/plain)s +3297 X(content)s +514 X +2604 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2724 Y +874 X +0.0 10 10 f.R ft(mhl\(1\))s +514 X +2844 Y +874 X +0.0 10 10 f.I ft(MIME:)s +1192 X(Mechanisms)s +1716 X(for)s +1858 X(Specifying)s +2299 X(and)s +2474 X(Describing)s +2943 X(the)s +3090 X(Format)s +3415 X(of)s +3518 X(Internet)s +3859 X(Message)s +4233 X(Bodies)s +4530 X +0.0 10 10 f.R ft(\(RFC)s +4778 X(1521\),)s +514 X +2964 Y +874 X +0.0 10 10 f.I ft(Proposed)s +1282 X(Standard)s +1674 X(for)s +1816 X(Message)s +2190 X(Encapsulation)s +2793 X +0.0 10 10 f.R ft(\(RFC)s +3041 X(934\).)s +514 X +3168 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3288 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +3408 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +514 X +3528 Y +874 X(`\261noauto')s +514 X +3648 Y +874 X(`\261nocache')s +514 X +3768 Y +874 X(`\261nocheck')s +514 X +3888 Y +874 X(`\261noebcdicsafe')s +514 X +4008 Y +874 X(`\261form)s +1201 X(mhl.headers')s +514 X +4128 Y +874 X(`\261headers')s +514 X +4248 Y +874 X(`\261pause')s +514 X +4368 Y +874 X(`\261rcache)s +1266 X(ask')s +514 X +4488 Y +874 X(`\261realsize')s +514 X +4608 Y +874 X(`\261rfc934mode')s +514 X +4728 Y +874 X(`\261noserialonly')s +514 X +4848 Y +874 X(`\261show')s +514 X +4968 Y +874 X(`\261noverbose')s +514 X +5088 Y +874 X(`\261wcache)s +1305 X(ask')s +514 X +5292 Y +0.0 8 8 f.B ft(Context)s +514 X +5412 Y +874 X +0.0 10 10 f.R ft(If)s +975 X(a)s +1054 X(folder)s +1327 X(is)s +1429 X(given,)s +1711 X(it)s +1802 X(will)s +1993 X(become)s +2338 X(the)s +2495 X(current)s +2811 X(folder.)s +3133 X(The)s +3322 X(last)s +3495 X(message)s +3867 X(selected)s +4222 X(will)s +4412 X(become)s +4756 X(the)s +4912 X(current)s +514 X +5532 Y +874 X(message.)s +514 X +5736 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5856 Y +874 X +0.0 10 10 f.R ft(Partial)s +1160 X(messages)s +1562 X(contained)s +1975 X(within)s +2256 X(a)s +2325 X(multipart)s +2717 X(content)s +3036 X(are)s +3182 X(not)s +3335 X(reassembled)s +3853 X(with)s +4056 X(the)s +4203 X(`\261store')s +4538 X(switch.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 56 57 + +514 X +600 Y(MHOOK\(1\))s +2771 X(-56-)s +4672 X(MHOOK\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mhook,)s +1202 X(rcvdist,)s +1524 X(rcvpack,)s +1889 X(rcvtty)s +2172 X(\261)s +2247 X(MH)s +2433 X(receive-mail)s +2956 X(hooks)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/rcvdist)s +1955 X([\261form form\256le])s +2637 X([switches for )s +0.0 10 10 f.I ft(postproc)s +0.0 10 10 f.R ft(])s +3588 X(address ...)s +4037 X([\261help])s +514 X +1680 Y +874 X(/usr/bs/mh-beta/lib/rcvpack)s +1998 X(\256le)s +2151 X([\261help])s +514 X +1920 Y +874 X(/usr/bs/mh-beta/lib/rcvtty)s +1916 X([command])s +2401 X([\261form format\256le])s +3155 X([\261format string])s +3815 X([\261bell])s +4106 X([\261nobell])s +4497 X([\261newline])s +514 X +2040 Y +1234 X([\261nonewline])s +1791 X([\261bi)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(])s +2071 X([\261help])s +514 X +2280 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2520 Y +874 X +0.0 10 10 f.R ft(A)s +976 X(receive\261mail)s +1521 X(hook)s +1751 X(is)s +1848 X(a)s +1922 X(program)s +2290 X(that)s +2470 X(is)s +2567 X(run)s +2730 X(whenever)s +3147 X(you)s +3327 X(receive)s +3644 X(a)s +3718 X(mail)s +3926 X(message.)s +4344 X(You)s +4546 X(do)s +4676 X +0.0 10 10 f.B ft(NOT)s +4922 X +0.0 10 10 f.R ft(invoke)s +514 X +2640 Y +874 X(the)s +1030 X(hook)s +1264 X(yourself,)s +1650 X(rather)s +1916 X(the)s +2071 X(hook)s +2304 X(is)s +2404 X(invoked)s +2759 X(on)s +2892 X(your)s +3108 X(behalf)s +3390 X(by)s +3523 X(your)s +3739 X(system's)s +4122 X(Message)s +4504 X(Transport)s +4925 X(Agent.)s +514 X +2760 Y +874 X(See)s +1043 X +0.0 10 10 f.I ft(slocal)s +1332 X +0.0 10 10 f.R ft(\(1\))s +1473 X(for)s +1614 X(details)s +1900 X(on)s +2025 X(how)s +2222 X(to)s +2325 X(activate)s +2660 X(receive\261mail)s +3200 X(hooks)s +3464 X(on)s +3589 X(your)s +3797 X(system.)s +514 X +3000 Y +874 X(Four)s +1093 X(programs)s +1500 X(are)s +1651 X(currently)s +2041 X(available)s +2431 X(as)s +2544 X(part)s +2729 X(of)s +2842 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +3052 X +0.0 10 10 f.I ft(rcvdist)s +3354 X +0.0 10 10 f.R ft(\(redistribute)s +3872 X(incoming)s +4280 X(messages)s +4687 X(to)s +4794 X(additional)s +514 X +3120 Y +874 X(recipients\),)s +1355 X +0.0 10 10 f.I ft(rcvpack)s +1705 X +0.0 10 10 f.R ft(\(save)s +1950 X(incoming)s +2363 X(messages)s +2775 X(in)s +2888 X(a)s +2967 X +0.0 10 10 f.I ft(packf)s +0.0 10 10 f.R ft('d)s +3301 X(\256le\),)s +3522 X(and)s +3701 X +0.0 10 10 f.I ft(rcvtty)s +3963 X +0.0 10 10 f.R ft(\(notify)s +4270 X(user)s +4471 X(of)s +4588 X(incoming)s +5000 X(mes-)s +514 X +3240 Y +874 X(sages\).)s +1199 X(The)s +1380 X(fourth)s +1650 X(program,)s +2039 X +0.0 10 10 f.I ft(rcvstore)s +2416 X +0.0 10 10 f.R ft(\(1\))s +2558 X(is)s +2650 X(described)s +3057 X(separately.)s +3536 X(They)s +3766 X(all)s +3891 X(reside)s +4154 X(in)s +4257 X(the)s +4404 X +0.0 10 10 f.I ft(/usr/bs/mh-beta/lib/)s +514 X +3360 Y +874 X +0.0 10 10 f.R ft(directory.)s +514 X +3600 Y +874 X(The)s +1056 X +0.0 10 10 f.I ft(rcvdist)s +1355 X +0.0 10 10 f.R ft(program)s +1720 X(will)s +1903 X(resend)s +2190 X(a)s +2261 X(copy)s +2481 X(of)s +2590 X(the)s +2738 X(message)s +3102 X(to)s +3206 X(all)s +3332 X(of)s +3441 X(the)s +3589 X(addresses)s +3997 X(listed)s +4240 X(on)s +4366 X(its)s +4487 X(command)s +4907 X(line.)s +5133 X(It)s +514 X +3720 Y +874 X(uses)s +1071 X(the)s +1218 X(format)s +1509 X(string)s +1762 X(facility)s +2070 X(described)s +2477 X(in)s +2580 X +0.0 10 10 f.I ft(mh\261format)s +3069 X +0.0 10 10 f.R ft(\(5\).)s +514 X +3960 Y +874 X(The)s +1062 X +0.0 10 10 f.I ft(rcvpack)s +1410 X +0.0 10 10 f.R ft(program)s +1781 X(will)s +1970 X(append)s +2291 X(a)s +2368 X(copy)s +2595 X(of)s +2711 X(the)s +2866 X(message)s +3237 X(to)s +3348 X(the)s +3503 X(\256le)s +3664 X(listed)s +3913 X(on)s +4045 X(its)s +4172 X(command)s +4598 X(line.)s +4830 X(Its)s +4962 X(use)s +5127 X(is)s +514 X +4080 Y +874 X(obsoleted)s +1282 X(by)s +1407 X(the)s +1554 X(``\256le'')s +1839 X(action)s +2108 X(of)s +2216 X +0.0 10 10 f.I ft(slocal)s +0.0 10 10 f.R ft(.)s +514 X +4320 Y +874 X(The)s +1059 X +0.0 10 10 f.I ft(rcvtty)s +1316 X +0.0 10 10 f.R ft(program)s +1684 X(executes)s +2056 X(the)s +2207 X(named)s +2502 X(\256le)s +2659 X(with)s +2866 X(the)s +3017 X(message)s +3384 X(as)s +3496 X(its)s +3620 X(standard)s +3987 X(input,)s +4247 X(and)s +4420 X(writes)s +4693 X(the)s +4844 X(resulting)s +514 X +4440 Y +874 X(output)s +1155 X(on)s +1280 X(your)s +1488 X(terminal.)s +514 X +4680 Y +874 X(If)s +979 X(no)s +1118 X(\256le)s +1284 X(is)s +1389 X(speci\256ed,)s +1807 X(or)s +1928 X(is)s +2033 X(bogus,)s +2335 X(etc.,)s +2539 X(then)s +2749 X +0.0 10 10 f.I ft(rcvtty)s +3014 X +0.0 10 10 f.R ft(will)s +3208 X(instead)s +3529 X(write)s +3772 X(a)s +3854 X(one\261line)s +4236 X(scan)s +4451 X(listing.)s +4790 X(Either)s +5072 X(the)s +514 X +4800 Y +874 X(`\261form format\256le')s +1656 X(or)s +1791 X(`\261format string')s +2478 X(option)s +2786 X(may)s +3010 X(be)s +3156 X(used)s +3391 X(to)s +3521 X(override)s +3905 X(the)s +4079 X(default)s +4408 X(output)s +4716 X(format)s +5034 X(\(see)s +514 X +4920 Y +874 X +0.0 10 10 f.I ft(mh\261format)s +1363 X +0.0 10 10 f.R ft(\(5\)\).)s +1590 X(A)s +1690 X(newline)s +2034 X(is)s +2128 X(output)s +2411 X(before)s +2692 X(the)s +2841 X(message)s +3206 X(output,)s +3514 X(and)s +3685 X(the)s +3834 X(terminal)s +4194 X(bell)s +4371 X(is)s +4465 X(rung)s +4675 X(after)s +4884 X(the)s +5033 X(out-)s +514 X +5040 Y +874 X(put.)s +1077 X(The)s +1257 X(`\261nonewline')s +1814 X(and)s +1983 X(`\261nobell')s +2374 X(options)s +2694 X(will)s +2875 X(inhibit)s +3162 X(these)s +3392 X(functions.)s +514 X +5280 Y +874 X(In)s +997 X(addition)s +1365 X(to)s +1483 X(the)s +1645 X(standard)s +2023 X +0.0 10 10 f.I ft(mh\261format)s +2512 X +0.0 10 10 f.R ft(\(5\))s +2668 X(escapes,)s +3036 X +0.0 10 10 f.I ft(rcvtty)s +3302 X +0.0 10 10 f.R ft(also)s +3502 X(recognizes)s +3967 X(the)s +4128 X(following)s +4556 X(additional)s +4995 X +0.0 10 10 f.I ft(com-)s +514 X +5400 Y +874 X(ponent)s +1171 X +0.0 10 10 f.R ft(escapes:)s +514 X +5640 Y +874 X +0.0 10 10 f.I ft(Escape)s +1346 X(Returns)s +1707 X(Description)s +514 X +5760 Y +874 X +0.0 10 10 f.R ft(body)s +1346 X(string)s +1707 X(the)s +1854 X(\(compressed\))s +2416 X(\256rst)s +2597 X(part)s +2777 X(of)s +2885 X(the)s +3032 X(body)s +514 X +5880 Y +874 X(dtimenow)s +1346 X(date)s +1707 X(the)s +1854 X(current)s +2161 X(date)s +514 X +6000 Y +874 X(folder)s +1346 X(string)s +1707 X(the)s +1854 X(name)s +2095 X(of)s +2203 X(the)s +2350 X(current)s +2657 X(folder)s +514 X +6240 Y +874 X(Normally,)s +1314 X +0.0 10 10 f.I ft(rcvtty)s +1573 X +0.0 10 10 f.R ft(obeys)s +1838 X(write)s +2075 X(permission)s +2546 X(as)s +2660 X(granted)s +2990 X(by)s +3121 X +0.0 10 10 f.I ft(mesg)s +3376 X +0.0 10 10 f.R ft(\(1\).)s +3573 X(With)s +3804 X(the)s +3957 X(`\261bi)s +Cff(')s +4243 X(option,)s +4555 X +0.0 10 10 f.I ft(rcvtty)s +4813 X +0.0 10 10 f.R ft(will)s +5000 X(obey)s +514 X +6360 Y +874 X(the)s +1030 X(noti\256cation)s +1520 X(status)s +1782 X(set)s +1927 X(by)s +2061 X +0.0 10 10 f.I ft(bi)s +Cff +2240 X +0.0 10 10 f.R ft(\(1\))s +2390 X(instead.)s +2757 X(If)s +2857 X(the)s +3013 X(terminal)s +3380 X(access)s +3668 X(daemon)s +4018 X(\(TTYD\))s +4384 X(is)s +4485 X(available)s +4878 X(on)s +5011 X(your)s +514 X +6480 Y +874 X(system,)s +1202 X(then)s +1399 X +0.0 10 10 f.I ft(rcvtty)s +1651 X +0.0 10 10 f.R ft(will)s +1832 X(give)s +2029 X(its)s +2149 X(output)s +2430 X(to)s +2533 X(the)s +2680 X(daemon)s +3021 X(for)s +3162 X(output)s +3443 X(instead)s +3751 X(of)s +3859 X(writing)s +4173 X(on)s +4298 X(the)s +4445 X(user's)s +4708 X(terminal.)s +514 X +6642 Y +0.0 8 8 f.B ft(Files)s +514 X +6762 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(tailor)s +2699 X(\256le)s +514 X +6882 Y +874 X($HOME/.maildelivery)s +2463 X(The)s +2643 X(\256le)s +2796 X(controlling)s +3260 X(local)s +3479 X(delivery)s +514 X +7002 Y +874 X(/usr/bs/mh-beta/lib/maildelivery)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 57 58 + +514 X +600 Y(MHOOK\(1\))s +2771 X(-57-)s +4672 X(MHOOK\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(rcvstore)s +1220 X(\(1\),)s +1386 X(mh\261format\(5\),)s +1996 X(slocal\(1\))s +514 X +1284 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1404 Y +874 X +0.0 10 10 f.R ft(Only)s +1099 X(two)s +1274 X(return)s +1537 X(codes)s +1789 X(are)s +1935 X(meaningful,)s +2440 X(others)s +2709 X(should)s +3001 X(be.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 58 59 + +514 X +600 Y(MHPARAM\(1\))s +2771 X(-58-)s +4535 X(MHPARAM\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mhparam)s +1276 X(\261)s +1351 X(print)s +1565 X(MH)s +1751 X(pro\256le)s +2037 X(components)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(mhparam)s +1276 X([components])s +1850 X([-all])s +2074 X([-component])s +2642 X([-nocomponent])s +3310 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Mhparam)s +1297 X +0.0 10 10 f.R ft(writes)s +1570 X(the)s +1721 X(value)s +1966 X(of)s +2078 X(the)s +2229 X(speci\256ed)s +2613 X(pro\256le)s +2903 X(component)s +3376 X(to)s +3482 X(the)s +3632 X(standard)s +3998 X(output)s +4282 X(separated)s +4686 X(by)s +4814 X(newlines.)s +514 X +2040 Y +874 X(If)s +965 X(the)s +1112 X(pro\256le)s +1398 X(component)s +1867 X(is)s +1959 X(not)s +2112 X(present,)s +2450 X(the)s +2597 X(default)s +2899 X(value)s +3140 X(\(or)s +3281 X(nothing)s +3612 X(if)s +3698 X(there)s +3922 X(is)s +4014 X(no)s +4139 X(default\))s +4474 X(is)s +4566 X(printed.)s +514 X +2280 Y +874 X(If)s +972 X(more)s +1209 X(than)s +1413 X(one)s +1589 X(component)s +2065 X(is)s +2164 X(speci\256ed)s +2551 X(in)s +2661 X(the)s +2815 X(`components')s +3396 X(list,)s +3576 X(the)s +3730 X(component)s +4206 X(value)s +4453 X(is)s +4551 X(preceded)s +4941 X(by)s +5072 X(the)s +514 X +2400 Y +874 X(component)s +1360 X(name.)s +1668 X(If)s +1776 X(`\261component')s +2378 X(is)s +2487 X(speci\256ed,)s +2908 X(the)s +3071 X(component)s +3556 X(name)s +3813 X(is)s +3921 X(displayed)s +4345 X(even)s +4574 X(when)s +4831 X(only)s +5050 X(one)s +514 X +2520 Y +874 X(component)s +1352 X(is)s +1453 X(speci\256ed.)s +1892 X(If)s +1992 X(`\261nocomponent')s +2686 X(is)s +2786 X(speci\256ed,)s +3199 X(the)s +3354 X(component)s +3831 X(name)s +4080 X(is)s +4180 X(not)s +4341 X(displayed)s +4757 X(even)s +4978 X(when)s +514 X +2640 Y +874 X(more)s +1104 X(than)s +1301 X(one)s +1470 X(component)s +1939 X(is)s +2031 X(speci\256ed.)s +514 X +2880 Y +874 X(If)s +965 X(`\261all')s +1206 X(is)s +1298 X(speci\256ed,)s +1703 X(all)s +1828 X(components)s +2336 X(if)s +2422 X(the)s +2569 X(MH)s +2755 X(pro\256le)s +3041 X(are)s +3187 X(displayed)s +3595 X(and)s +3764 X(other)s +3994 X(arguments)s +4435 X(are)s +4581 X(ignored.)s +514 X +3120 Y +874 X(Examples:)s +514 X +3360 Y +1234 X(%)s +1342 X(mhparam)s +1744 X(path)s +514 X +3480 Y +1234 X(Mail)s +514 X +3720 Y +1234 X(%)s +1342 X(mhparam)s +1744 X(mhlproc)s +514 X +3840 Y +1234 X(/usr/bs/mh-beta/lib/mhl)s +514 X +4080 Y +1234 X(%)s +1342 X(mhparam)s +1744 X(\261component)s +2263 X(path)s +514 X +4200 Y +1234 X(Path:)s +1729 X(Mail)s +514 X +4440 Y +1234 X(%)s +1342 X(mhparam)s +1744 X(AliasFile)s +2136 X(rmmproc)s +514 X +4560 Y +1234 X(AliasFile:)s +1729 X(aliases)s +514 X +4680 Y +1234 X(rmmproc:)s +1729 X(rmmproc)s +514 X +4920 Y +1234 X(%)s +1342 X(mhparam)s +1744 X(\261nocomponent)s +2363 X(AliasFile)s +2755 X(rmmproc)s +514 X +5040 Y +1234 X(aliases)s +514 X +5160 Y +1234 X(rmmproc)s +514 X +5400 Y +874 X +0.0 10 10 f.I ft(Mhparam)s +1293 X +0.0 10 10 f.R ft(is)s +1385 X(also)s +1571 X(useful)s +1840 X(in)s +1943 X(back\261quoted)s +2478 X(operations:)s +514 X +5640 Y +1234 X(%)s +1342 X(fgrep)s +1577 X(cornell.edu)s +2048 X(`mhpath)s +2406 X(+`/`mhparam)s +2958 X(alias\256le`)s +514 X +5922 Y +0.0 8 8 f.B ft(Files)s +514 X +6042 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +6246 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +6366 Y +874 X +0.0 10 10 f.R ft(mh-pro\256le)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(\(5\))s +514 X +6570 Y +0.0 8 8 f.B ft(Defaults)s +514 X +6690 Y +874 X +0.0 10 10 f.R ft(`\261nocomponent')s +1559 X(if)s +1645 X(only)s +1848 X(one)s +2017 X(component)s +2486 X(is)s +2578 X(speci\256ed)s +514 X +6810 Y +874 X(`\261component')s +1459 X(if)s +1545 X(more)s +1775 X(than)s +1972 X(one)s +2141 X(component)s +2610 X(is)s +2702 X(speci\256ed)s +514 X +6930 Y +874 X(`components')s +1448 X(defaults)s +1789 X(to)s +1892 X(none)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 59 60 + +514 X +600 Y(MHPARAM\(1\))s +2771 X(-59-)s +4535 X(MHPARAM\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Context)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 60 61 + +514 X +600 Y(MHPATH\(1\))s +2771 X(-60-)s +4628 X(MHPATH\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mhpath)s +1199 X(\261)s +1274 X(print)s +1488 X(full)s +1652 X(pathnames)s +2104 X(of)s +2212 X(MH)s +2398 X(messages)s +2800 X(and)s +2969 X(folders)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(mhpath)s +1199 X([+folder])s +1584 X([msgs])s +1881 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Mhpath)s +1223 X +0.0 10 10 f.R ft(expands)s +1588 X(and)s +1770 X(sorts)s +1997 X(the)s +2157 X(message)s +2533 X(list)s +2694 X(`msgs')s +3003 X(and)s +3184 X(writes)s +3465 X(the)s +3624 X(full)s +3800 X(pathnames)s +4264 X(of)s +4384 X(the)s +4543 X(messages)s +4957 X(to)s +5072 X(the)s +514 X +2040 Y +874 X(standard)s +1253 X(output)s +1550 X(separated)s +1967 X(by)s +2107 X(newlines.)s +2552 X(If)s +2658 X(no)s +2798 X(`msgs')s +3110 X(are)s +3271 X(speci\256ed,)s +3691 X +0.0 10 10 f.I ft(mhpath)s +4031 X +0.0 10 10 f.R ft(outputs)s +4366 X(the)s +4528 X(folder)s +4806 X(pathname)s +514 X +2160 Y +874 X(instead.)s +1232 X(If)s +1323 X(the)s +1470 X(only)s +1673 X(argument)s +2075 X(is)s +2167 X(`+',)s +2339 X(your)s +2547 X(MH)s +2733 X +0.0 10 10 f.I ft(Path)s +2947 X +0.0 10 10 f.R ft(is)s +3039 X(output;)s +3348 X(this)s +3518 X(can)s +3681 X(be)s +3800 X(useful)s +4069 X(is)s +4161 X(shell)s +4375 X(scripts.)s +514 X +2400 Y +874 X(Contrasted)s +1341 X(with)s +1553 X(other)s +1792 X(MH)s +1987 X(commands,)s +2479 X(a)s +2557 X(message)s +2929 X(argument)s +3339 X(to)s +3450 X +0.0 10 10 f.I ft(mhpath)s +3783 X +0.0 10 10 f.R ft(may)s +3988 X(often)s +4226 X(be)s +4353 X(intended)s +4730 X(for)s +4879 X +0.0 10 10 f.I ft(writing)s +0.0 10 10 f.R ft(.)s +514 X +2520 Y +874 X(Because)s +1231 X(of)s +1339 X(this:)s +514 X +2760 Y +874 X(1\))s +994 X(the)s +1153 X(name)s +1406 X(``new'')s +1741 X(has)s +1911 X(been)s +2136 X(added)s +2411 X(to)s +2526 X +0.0 10 10 f.I ft(mhpath)s +0.0 10 10 f.R ft('s)s +2935 X(list)s +3095 X(of)s +3215 X(reserved)s +3588 X(message)s +3962 X(names)s +4253 X(\(the)s +4444 X(others)s +4724 X(are)s +4881 X(``\256rst'',)s +514 X +2880 Y +874 X(``last'',)s +1201 X(``prev'',)s +1566 X(``next'',)s +1926 X(``cur'',)s +2241 X(and)s +2416 X(``all''\).)s +2762 X(The)s +2948 X(new)s +3145 X(message)s +3514 X(is)s +3612 X(equivalent)s +4059 X(to)s +4168 X(the)s +4321 X(message)s +4690 X(after)s +4903 X(the)s +5055 X(last)s +514 X +3000 Y +874 X(message)s +1245 X(in)s +1356 X(a)s +1433 X(folder)s +1704 X(\(and)s +1914 X(equivalent)s +2363 X(to)s +2474 X(1)s +2557 X(in)s +2668 X(a)s +2745 X(folder)s +3016 X(without)s +3355 X(messages\).)s +3848 X(The)s +4036 X(``new'')s +4366 X(message)s +4736 X(may)s +4940 X(not)s +5100 X(be)s +514 X +3120 Y +874 X(used)s +1082 X(as)s +1190 X(part)s +1370 X(of)s +1478 X(a)s +1547 X(message)s +1910 X(range.)s +514 X +3360 Y +874 X(2\))s +1000 X(Within)s +1321 X(a)s +1408 X(message)s +1789 X(list,)s +1980 X(the)s +2145 X(following)s +2577 X(designations)s +3120 X(may)s +3335 X(refer)s +3565 X(to)s +3686 X(messages)s +4106 X(that)s +4298 X(do)s +4440 X(not)s +4610 X(exist:)s +4869 X(a)s +4955 X(single)s +514 X +3480 Y +874 X(numeric)s +1228 X(message)s +1593 X(name,)s +1861 X(the)s +2010 X(single)s +2276 X(message)s +2641 X(name)s +2884 X(``cur'',)s +3195 X(and)s +3365 X(\(obviously\))s +3852 X(the)s +4000 X(single)s +4265 X(message)s +4629 X(name)s +4871 X(``new''.)s +514 X +3600 Y +874 X(All)s +1027 X(other)s +1257 X(message)s +1620 X(designations)s +2145 X(must)s +2365 X(refer)s +2577 X(to)s +2680 X(at)s +2777 X(least)s +2985 X(one)s +3154 X(existing)s +3496 X(message.)s +514 X +3840 Y +874 X(3\))s +982 X(An)s +1129 X(empty)s +1404 X(folder)s +1667 X(is)s +1759 X(not)s +1912 X(in)s +2015 X(itself)s +2240 X(an)s +2359 X(error.)s +514 X +4080 Y +874 X(Message)s +1258 X(numbers)s +1637 X(greater)s +1948 X(than)s +2155 X(the)s +2312 X(highest)s +2636 X(existing)s +2988 X(message)s +3360 X(in)s +3472 X(a)s +3550 X(folder)s +3822 X(as)s +3939 X(part)s +4128 X(of)s +4245 X(a)s +4323 X(range)s +4578 X(designation)s +5073 X(are)s +514 X +4200 Y +874 X(replaced)s +1236 X(with)s +1439 X(the)s +1586 X(next)s +1783 X(free)s +1962 X(message)s +2325 X(number.)s +514 X +4440 Y +874 X(Examples:)s +1321 X(The)s +1501 X(current)s +1808 X(folder)s +2071 X(foo)s +2229 X(contains)s +2587 X(messages)s +2989 X(3)s +3064 X(5)s +3139 X(6.)s +3264 X(Cur)s +3439 X(is)s +3531 X(4.)s +514 X +4680 Y +1234 X(%)s +1342 X(mhpath)s +514 X +4800 Y +1234 X(/r/phyl/Mail/foo)s +514 X +5040 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(all)s +514 X +5160 Y +1234 X(/r/phyl/Mail/foo/3)s +514 X +5280 Y +1234 X(/r/phyl/Mail/foo/5)s +514 X +5400 Y +1234 X(/r/phyl/Mail/foo/6)s +514 X +5640 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(2001)s +514 X +5760 Y +1234 X(/r/phyl/Mail/foo/7)s +514 X +6000 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(1\2612001)s +514 X +6120 Y +1234 X(/r/phyl/Mail/foo/3)s +514 X +6240 Y +1234 X(/r/phyl/Mail/foo/5)s +514 X +6360 Y +1234 X(/r/phyl/Mail/foo/6)s +514 X +6600 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(new)s +514 X +6720 Y +1234 X(/r/phyl/Mail/foo/7)s +514 X +6960 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(last)s +1831 X(new)s +514 X +7080 Y +1234 X(/r/phyl/Mail/foo/6)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 61 62 + +514 X +600 Y(MHPATH\(1\))s +2771 X(-61-)s +4628 X(MHPATH\(1\))s +514 X +960 Y +1234 X +0.0 10 10 f.R ft(/r/phyl/Mail/foo/7)s +514 X +1200 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(last\261new)s +514 X +1320 Y +1234 X(bad)s +1403 X(message)s +1766 X(list)s +1914 X(``last\261new''.)s +514 X +1560 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(cur)s +514 X +1680 Y +1234 X(/r/phyl/Mail/foo/4)s +514 X +1920 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(1\2612)s +514 X +2040 Y +1234 X(no)s +1359 X(messages)s +1761 X(in)s +1864 X(range)s +2110 X(``1\2612''.)s +514 X +2280 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(\256rst:2)s +514 X +2400 Y +1234 X(/r/phyl/Mail/foo/3)s +514 X +2520 Y +1234 X(/r/phyl/Mail/foo/5)s +514 X +2760 Y +1234 X(%)s +1342 X(mhpath)s +1667 X(1)s +1742 X(2)s +514 X +2880 Y +1234 X(/r/phyl/Mail/foo/1)s +514 X +3000 Y +1234 X(/r/phyl/Mail/foo/2)s +514 X +3240 Y +874 X +0.0 10 10 f.I ft(MHpath)s +1232 X +0.0 10 10 f.R ft(is)s +1324 X(also)s +1510 X(useful)s +1779 X(in)s +1882 X(back\261quoted)s +2417 X(operations:)s +514 X +3480 Y +1234 X(%)s +1342 X(cd)s +1461 X(`mhpath)s +1819 X(+inbox`)s +514 X +3720 Y +1234 X(%)s +1342 X(echo)s +1555 X(`mhpath)s +1913 X(+`)s +514 X +3840 Y +1234 X(/r/phyl/Mail)s +514 X +4002 Y +0.0 8 8 f.B ft(Files)s +514 X +4122 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4326 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4446 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +4566 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +4770 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4890 Y +874 X +0.0 10 10 f.R ft(folder\(1\))s +514 X +5094 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5214 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +5334 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(none)s +514 X +5538 Y +0.0 8 8 f.B ft(Context)s +514 X +5658 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 62 63 + +514 X +600 Y(MHPATH\(1\))s +2771 X(-62-)s +4628 X(MHPATH\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Like)s +1082 X(all)s +1207 X(MH)s +1393 X(commands,)s +1876 X +0.0 10 10 f.I ft(mhpath)s +2201 X +0.0 10 10 f.R ft(expands)s +2553 X(and)s +2722 X(sorts)s +2936 X([msgs].)s +3283 X(So)s +3414 X(don't)s +3650 X(expect)s +514 X +1320 Y +1234 X(mv)s +1387 X(`mhpath)s +1745 X(501)s +1920 X(500`)s +514 X +1560 Y +874 X(to)s +977 X(move)s +1224 X(501)s +1399 X(to)s +1502 X(500.)s +1727 X(Quite)s +1974 X(the)s +2121 X(reverse.)s +2483 X(But)s +514 X +1800 Y +1234 X(mv)s +1387 X(`mhpath)s +1745 X(501`)s +1953 X(`mhpath)s +2311 X(500`)s +514 X +2040 Y +874 X(will)s +1055 X(do)s +1180 X(the)s +1327 X(trick.)s +514 X +2280 Y +874 X(Out)s +1049 X(of)s +1157 X(range)s +1403 X(message)s +1766 X(0)s +1841 X(is)s +1933 X(treated)s +2229 X(far)s +2364 X(more)s +2594 X(severely)s +2951 X(than)s +3148 X(large)s +3372 X(out)s +3525 X(of)s +3633 X(range)s +3879 X(message)s +4242 X(numbers.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 63 64 + +514 X +600 Y(MSGCHK\(1\))s +2771 X(-63-)s +4622 X(MSGCHK\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(msgchk)s +1210 X(\261)s +1285 X(check)s +1542 X(for)s +1683 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(msgchk)s +1210 X([\261date])s +1517 X([\261nodate])s +1924 X([\261notify all/mail/nomail])s +2941 X([\261nonotify all/mail/nomail])s +4058 X([\261host host])s +4558 X([\261user user])s +514 X +1560 Y +1234 X([\261apop])s +1569 X([\261noapop])s +2004 X([\261rpop])s +2328 X([\261norpop])s +2752 X([users ...])s +3148 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.R ft(The)s +1063 X +0.0 10 10 f.I ft(msgchk)s +1396 X +0.0 10 10 f.R ft(program)s +1768 X(checks)s +2073 X(all)s +2207 X(known)s +2513 X(mail)s +2725 X(drops)s +2981 X(for)s +3131 X(mail)s +3343 X(waiting)s +3676 X(for)s +3825 X(you.)s +4058 X(For)s +4230 X(those)s +4474 X(drops)s +4729 X(which)s +5006 X(have)s +514 X +2160 Y +874 X(mail)s +1077 X(for)s +1218 X(you,)s +1418 X +0.0 10 10 f.I ft(msgchk)s +1742 X +0.0 10 10 f.R ft(will)s +1923 X(indicate)s +2264 X(if)s +2350 X(it)s +2431 X(believes)s +2783 X(that)s +2958 X(you)s +3133 X(have)s +3346 X(seen)s +3548 X(the)s +3695 X(mail)s +3898 X(in)s +4001 X(question)s +4365 X(before.)s +514 X +2400 Y +874 X(The)s +1074 X(`\261notify type')s +1671 X(switch)s +1977 X(indicates)s +2377 X(under)s +2649 X(what)s +2888 X(circumstances)s +3498 X +0.0 10 10 f.I ft(msgchk)s +3842 X +0.0 10 10 f.R ft(should)s +4154 X(produce)s +4519 X(a)s +4607 X(message.)s +5039 X(The)s +514 X +2520 Y +874 X(default)s +1180 X(is)s +1276 X(`\261notify all')s +1785 X(which)s +2057 X(says)s +2257 X(that)s +2435 X +0.0 10 10 f.I ft(msgchk)s +2762 X +0.0 10 10 f.R ft(should)s +3057 X(always)s +3362 X(report)s +3628 X(the)s +3778 X(status)s +4034 X(of)s +4145 X(the)s +4295 X(users)s +4528 X(maildrop.)s +4967 X(Other)s +514 X +2640 Y +874 X(values)s +1173 X(for)s +1333 X(`type')s +1615 X(include)s +1953 X(`mail')s +2241 X(which)s +2529 X(says)s +2745 X(that)s +2938 X +0.0 10 10 f.I ft(msgchk)s +3280 X +0.0 10 10 f.R ft(should)s +3590 X(report)s +3871 X(the)s +4036 X(status)s +4307 X(of)s +4433 X(waiting)s +4776 X(mail;)s +5025 X(and,)s +514 X +2760 Y +874 X(`nomail')s +1247 X(which)s +1520 X(says)s +1721 X(that)s +1900 X +0.0 10 10 f.I ft(msgchk)s +2228 X +0.0 10 10 f.R ft(should)s +2524 X(report)s +2791 X(the)s +2942 X(status)s +3199 X(of)s +3311 X(empty)s +3590 X(maildrops.)s +4069 X(The)s +4253 X(`\261nonotify type')s +4933 X(switch)s +514 X +2880 Y +874 X(has)s +1033 X(the)s +1181 X(inverted)s +1534 X(sense,)s +1801 X(so)s +1916 X(`\261nonotify all')s +2522 X(directs)s +2814 X +0.0 10 10 f.I ft(msgchk)s +3138 X +0.0 10 10 f.R ft(to)s +3241 X(never)s +3487 X(report)s +3750 X(the)s +3897 X(status)s +4150 X(of)s +4258 X(maildrops.)s +4733 X(This)s +4936 X(is)s +5028 X(use-)s +514 X +3000 Y +874 X(ful)s +1011 X(if)s +1097 X(the)s +1244 X(user)s +1435 X(wishes)s +1732 X(to)s +1835 X(check)s +2092 X +0.0 10 10 f.I ft(msgchk)s +0.0 10 10 f.R ft('s)s +2488 X(exit)s +2663 X(status.)s +2966 X(A)s +3063 X(non\261zero)s +3459 X(exit)s +3634 X(status)s +3887 X(indicates)s +4267 X(that)s +4442 X(mail)s +4645 X(was)s +4825 X +0.0 10 10 f.B ft(not)s +4989 X +0.0 10 10 f.R ft(wait-)s +514 X +3120 Y +874 X(ing)s +1027 X(for)s +1168 X(at)s +1265 X(least)s +1473 X(one)s +1642 X(of)s +1750 X(the)s +1897 X(indicated)s +2288 X(users.)s +514 X +3360 Y +874 X(If)s +967 X +0.0 10 10 f.I ft(msgchk)s +1293 X +0.0 10 10 f.R ft(produces)s +1680 X(output,)s +1988 X(then)s +2187 X(the)s +2336 X(`\261date')s +2644 X(switch)s +2931 X(directs)s +3223 X +0.0 10 10 f.I ft(msgchk)s +3548 X +0.0 10 10 f.R ft(to)s +3652 X(print)s +3867 X(out)s +4021 X(the)s +4169 X(last)s +4334 X(date)s +4526 X(mail)s +4730 X(was)s +4911 X(read,)s +5133 X(if)s +514 X +3480 Y +874 X(this)s +1044 X(can)s +1207 X(be)s +1326 X(determined.)s +514 X +3720 Y +874 X(If)s +970 X(the)s +1122 X(local)s +1346 X(host)s +1543 X(is)s +1640 X(con\256gured)s +2097 X(as)s +2210 X(a)s +2284 X(POP)s +2498 X(client,)s +2775 X(or)s +2888 X(if)s +2979 X(the)s +3131 X(`\261host host')s +3636 X(switch)s +3927 X(is)s +4024 X(given,)s +4301 X +0.0 10 10 f.I ft(msgchk)s +4630 X +0.0 10 10 f.R ft(will)s +4816 X(query)s +5072 X(the)s +514 X +3840 Y +874 X(POP)s +1091 X(service)s +1406 X(host)s +1606 X(as)s +1722 X(to)s +1833 X(the)s +1988 X(status)s +2249 X(of)s +2365 X(mail)s +2576 X(waiting.)s +2959 X(If)s +3058 X(the)s +3213 X(`\261user user')s +3719 X(switch)s +4013 X(is)s +4113 X(not)s +4274 X(given,)s +4554 X(then)s +4758 X(the)s +4912 X(current)s +514 X +3960 Y +874 X(username)s +1285 X(is)s +1380 X(used.)s +1641 X(Normally,)s +2077 X +0.0 10 10 f.I ft(msgchk)s +2404 X +0.0 10 10 f.R ft(will)s +2588 X(prompt)s +2905 X(for)s +3049 X(a)s +3121 X(password)s +3526 X(to)s +3632 X(use.)s +3843 X(However,)s +4261 X(if)s +4350 X(the)s +4500 X(`\261apop')s +4838 X(switch)s +5127 X(is)s +514 X +4080 Y +874 X(given,)s +1154 X +0.0 10 10 f.I ft(msgchk)s +1486 X +0.0 10 10 f.R ft(will)s +1675 X(generate)s +2045 X(authentication)s +2643 X(credentials)s +3107 X(to)s +3217 X(provide)s +3554 X(for)s +3702 X(origin)s +3973 X(authentication)s +4571 X(and)s +4747 X(replay)s +5028 X(pro-)s +514 X +4200 Y +874 X(tection,)s +1213 X(but)s +1383 X(which)s +1669 X(do)s +1811 X(not)s +1981 X(involve)s +2323 X(sending)s +2676 X(a)s +2761 X(password)s +3179 X(in)s +3298 X(the)s +3461 X(clear)s +3695 X(over)s +3913 X(the)s +4076 X(network.)s +4494 X(Otherwise,)s +4970 X(if)s +5072 X(the)s +514 X +4320 Y +874 X(`\261rpop')s +1198 X(switch)s +1484 X(is)s +1576 X(given,)s +1848 X(then)s +2045 X +0.0 10 10 f.I ft(msgchk)s +2369 X +0.0 10 10 f.R ft(will)s +2550 X(try)s +2686 X(to)s +2789 X(use)s +2947 X(a)s +3016 X(``trusted'')s +3445 X(connection)s +3908 X(\(ala)s +4082 X(the)s +4229 X(BSD)s +4449 X(r-commands\).)s +514 X +4482 Y +0.0 8 8 f.B ft(Files)s +514 X +4602 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4722 Y +874 X(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(tailor)s +2699 X(\256le)s +514 X +4842 Y +874 X(/usr/spool/mail/$USER)s +2463 X(Location)s +2843 X(of)s +2951 X(mail)s +3154 X(drop)s +514 X +5046 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +5166 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5370 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5490 Y +874 X +0.0 10 10 f.I ft(Post)s +1077 X(O)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ice)s +1341 X(Protocol)s +1716 X(-)s +1774 X(version)s +2093 X(3)s +2168 X +0.0 10 10 f.R ft(\(aka)s +2364 X(RFC\2611081\),)s +514 X +5610 Y +874 X(inc\(1\))s +514 X +5814 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5934 Y +874 X +0.0 10 10 f.R ft(`user')s +1131 X(defaults)s +1472 X(to)s +1575 X(the)s +1722 X(current)s +2029 X(user)s +514 X +6054 Y +874 X(`\261date')s +514 X +6174 Y +874 X(`\261notify)s +1221 X(all')s +514 X +6294 Y +874 X(`\261rpop')s +514 X +6498 Y +0.0 8 8 f.B ft(Context)s +514 X +6618 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 64 65 + +514 X +600 Y(MSH\(1\))s +2771 X(-64-)s +4850 X(MSH\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(msh)s +1066 X(\261)s +1141 X(MH)s +1327 X(shell)s +1541 X(\(and)s +1743 X(BBoard)s +2079 X(reader\))s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(msh)s +1066 X([\261prompt string])s +1749 X([\261scan])s +2067 X([\261noscan])s +2485 X([\261topcur])s +2881 X([\261notopcur])s +3377 X([\256le])s +3596 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(msh)s +1064 X +0.0 10 10 f.R ft(is)s +1160 X(an)s +1283 X(interactive)s +1733 X(program)s +2100 X(that)s +2279 X(implements)s +2775 X(a)s +2848 X(subset)s +3127 X(of)s +3239 X(the)s +3390 X(normal)s +3702 X +0.0 10 10 f.I ft(MH)s +3886 X +0.0 10 10 f.R ft(commands)s +4348 X(operating)s +4754 X(on)s +4883 X(a)s +4955 X(single)s +514 X +2040 Y +874 X(\256le)s +1030 X(in)s +1136 X +0.0 10 10 f.I ft(packf)s +0.0 10 10 f.R ft('d)s +1463 X(format.)s +1807 X(That)s +2018 X(is,)s +2138 X +0.0 10 10 f.I ft(msh)s +2327 X +0.0 10 10 f.R ft(is)s +2422 X(used)s +2633 X(to)s +2739 X(read)s +2938 X(a)s +3010 X(\256le)s +3166 X(that)s +3344 X(contains)s +3704 X(a)s +3775 X(number)s +4107 X(of)s +4217 X(messages,)s +4646 X(as)s +4756 X(opposed)s +5116 X(to)s +514 X +2160 Y +874 X(the)s +1029 X(standard)s +1400 X +0.0 10 10 f.I ft(MH)s +1588 X +0.0 10 10 f.R ft(style)s +1810 X(of)s +1926 X(reading)s +2258 X(a)s +2335 X(number)s +2673 X(of)s +2789 X(\256les,)s +3014 X(each)s +3229 X(\256le)s +3390 X(being)s +3645 X(a)s +3722 X(separate)s +4081 X(message)s +4452 X(in)s +4563 X(a)s +4640 X(folder.)s +4961 X +0.0 10 10 f.I ft(msh)s +0.0 10 10 f.R ft('s)s +514 X +2280 Y +874 X(chief)s +1112 X(advantage)s +1555 X(is)s +1660 X(that)s +1848 X(the)s +2008 X(normal)s +2329 X +0.0 10 10 f.I ft(MH)s +2522 X +0.0 10 10 f.R ft(style)s +2749 X(does)s +2970 X(not)s +3136 X(allow)s +3396 X(a)s +3478 X(\256le)s +3644 X(to)s +3760 X(have)s +3986 X(more)s +4229 X(than)s +4439 X(one)s +4621 X(message)s +4997 X(in)s +5113 X(it.)s +514 X +2400 Y +874 X(Hence,)s +1182 X +0.0 10 10 f.I ft(msh)s +1372 X +0.0 10 10 f.R ft(is)s +1468 X(ideal)s +1691 X(for)s +1836 X(reading)s +2164 X +0.0 10 10 f.I ft(BBoards)s +0.0 10 10 f.R ft(,)s +2568 X(as)s +2680 X(these)s +2914 X(\256les)s +3109 X(are)s +3258 X(delivered)s +3657 X(by)s +3785 X(the)s +3935 X(transport)s +4318 X(system)s +4624 X(in)s +4730 X(this)s +4903 X(format.)s +514 X +2520 Y +874 X(In)s +1005 X(addition,)s +1406 X +0.0 10 10 f.I ft(msh)s +1615 X +0.0 10 10 f.R ft(can)s +1801 X(be)s +1943 X(used)s +2174 X(on)s +2322 X(other)s +2575 X(\256les,)s +2815 X(such)s +3046 X(as)s +3177 X(message)s +3563 X(archives)s +3943 X(which)s +4235 X(have)s +4470 X(been)s +4705 X +0.0 10 10 f.I ft(pack)s +0.0 10 10 f.R ft(ed)s +5034 X(\(see)s +514 X +2640 Y +874 X +0.0 10 10 f.I ft(packf)s +1140 X +0.0 10 10 f.R ft(\(1\)\).)s +1376 X(Finally,)s +1722 X +0.0 10 10 f.I ft(msh)s +1920 X +0.0 10 10 f.R ft(is)s +2024 X(an)s +2155 X(excellent)s +2552 X +0.0 10 10 f.I ft(MH)s +2744 X +0.0 10 10 f.R ft(tutor.)s +3020 X(As)s +3168 X(the)s +3327 X(only)s +3542 X(commands)s +4012 X(available)s +4408 X(to)s +4522 X(the)s +4680 X(user)s +4882 X(are)s +5039 X +0.0 10 10 f.I ft(MH)s +514 X +2760 Y +874 X +0.0 10 10 f.R ft(commands,)s +1368 X(this)s +1549 X(allows)s +1846 X +0.0 10 10 f.I ft(MH)s +2037 X +0.0 10 10 f.R ft(beginners)s +2460 X(to)s +2573 X(concentrate)s +3067 X(on)s +3202 X(how)s +3409 X(commands)s +3877 X(to)s +3990 X +0.0 10 10 f.I ft(MH)s +4180 X +0.0 10 10 f.R ft(are)s +4336 X(formed)s +4659 X(and)s +4838 X(\(more)s +5111 X(or)s +514 X +2880 Y +874 X(less\))s +1082 X(what)s +1301 X(they)s +1498 X(mean.)s +514 X +3120 Y +874 X(When)s +1141 X(invoked,)s +1517 X +0.0 10 10 f.I ft(msh)s +1707 X +0.0 10 10 f.R ft(reads)s +1946 X(the)s +2097 X(named)s +2392 X(\256le,)s +2574 X(and)s +2747 X(enters)s +3014 X(a)s +3087 X(command)s +3510 X(loop.)s +3767 X(The)s +3950 X(user)s +4144 X(may)s +4344 X(type)s +4544 X(most)s +4767 X(of)s +4878 X(the)s +5028 X(nor-)s +514 X +3240 Y +874 X(mal)s +1055 X +0.0 10 10 f.I ft(MH)s +1241 X +0.0 10 10 f.R ft(commands.)s +1755 X(The)s +1941 X(syntax)s +2233 X(and)s +2407 X(semantics)s +2831 X(of)s +2944 X(these)s +3179 X(commands)s +3642 X(typed)s +3894 X(to)s +4002 X +0.0 10 10 f.I ft(msh)s +4193 X +0.0 10 10 f.R ft(are)s +4344 X(identical)s +4718 X(to)s +4826 X(their)s +5039 X +0.0 10 10 f.I ft(MH)s +514 X +3360 Y +874 X +0.0 10 10 f.R ft(counterparts.)s +1458 X(In)s +1582 X(cases)s +1833 X(where)s +2117 X(the)s +2279 X(nature)s +2568 X(of)s +2691 X +0.0 10 10 f.I ft(msh)s +2892 X +0.0 10 10 f.R ft(would)s +3182 X(be)s +3316 X(inconsistent)s +3834 X(\(e.g.,)s +4076 X(specifying)s +4532 X(a)s +4616 X(`+folder')s +5016 X(with)s +514 X +3480 Y +874 X(some)s +1125 X(commands\),)s +1656 X +0.0 10 10 f.I ft(msh)s +1857 X +0.0 10 10 f.R ft(will)s +2053 X(duly)s +2271 X(inform)s +2583 X(the)s +2745 X(user.)s +3001 X(The)s +3195 X(commands)s +3667 X(that)s +3856 X +0.0 10 10 f.I ft(msh)s +4056 X +0.0 10 10 f.R ft(currently)s +4455 X(supports)s +4833 X(\(in)s +4983 X(some)s +514 X +3600 Y +874 X(slightly)s +1200 X(modi\256ed)s +1581 X(or)s +1689 X(restricted)s +2085 X(forms\))s +2376 X(are:)s +514 X +3840 Y +1234 X(ali)s +514 X +3960 Y +1234 X(burst)s +514 X +4080 Y +1234 X(comp)s +514 X +4200 Y +1234 X(dist)s +514 X +4320 Y +1234 X(folder)s +514 X +4440 Y +1234 X(forw)s +514 X +4560 Y +1234 X(inc)s +514 X +4680 Y +1234 X(mark)s +514 X +4800 Y +1234 X(mhmail)s +514 X +4920 Y +1234 X(mhn)s +514 X +5040 Y +1234 X(msgchk)s +514 X +5160 Y +1234 X(next)s +514 X +5280 Y +1234 X(packf)s +514 X +5400 Y +1234 X(pick)s +514 X +5520 Y +1234 X(prev)s +514 X +5640 Y +1234 X(re\256le)s +514 X +5760 Y +1234 X(repl)s +514 X +5880 Y +1234 X(rmm)s +514 X +6000 Y +1234 X(scan)s +514 X +6120 Y +1234 X(send)s +514 X +6240 Y +1234 X(show)s +514 X +6360 Y +1234 X(sortm)s +514 X +6480 Y +1234 X(whatnow)s +514 X +6600 Y +1234 X(whom)s +514 X +6840 Y +874 X(In)s +988 X(addition,)s +1372 X +0.0 10 10 f.I ft(msh)s +1564 X +0.0 10 10 f.R ft(has)s +1728 X(a)s +1803 X(``help'')s +2138 X(command)s +2563 X(which)s +2838 X(gives)s +3080 X(a)s +3155 X(brief)s +3374 X(overview.)s +3825 X(To)s +3966 X(terminate)s +4373 X +0.0 10 10 f.I ft(msh)s +0.0 10 10 f.R ft(,)s +4589 X(type)s +4791 X(CTRL\261D,)s +514 X +6960 Y +874 X(or)s +988 X(use)s +1152 X(the)s +1305 X(``quit'')s +1624 X(command.)s +2099 X(If)s +2196 X +0.0 10 10 f.I ft(msh)s +2387 X +0.0 10 10 f.R ft(is)s +2484 X(being)s +2736 X(invoked)s +3088 X(from)s +3312 X +0.0 10 10 f.I ft(bbc)s +0.0 10 10 f.R ft(,)s +3511 X(then)s +3713 X(typing)s +3999 X(CTRL\261D)s +4407 X(will)s +4593 X(also)s +4784 X(tell)s +4942 X +0.0 10 10 f.I ft(bbc)s +5116 X +0.0 10 10 f.R ft(to)s +514 X +7080 Y +874 X(exit)s +1055 X(as)s +1169 X(well,)s +1397 X(while)s +1649 X(using)s +1896 X(the)s +2048 X(``quit'')s +2366 X(command)s +2790 X(will)s +2976 X(return)s +3244 X(control)s +3557 X(to)s +3665 X +0.0 10 10 f.I ft(bbc)s +0.0 10 10 f.R ft(,)s +3864 X(and)s +4038 X +0.0 10 10 f.I ft(bbc)s +4212 X +0.0 10 10 f.R ft(will)s +4398 X(continue)s +4772 X(examining)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 65 66 + +514 X +600 Y(MSH\(1\))s +2771 X(-65-)s +4850 X(MSH\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(the)s +1021 X(list)s +1169 X(of)s +1277 X(BBoards)s +1652 X(that)s +1827 X(it)s +1908 X(is)s +2000 X(scanning.)s +514 X +1200 Y +874 X(If)s +978 X(the)s +1138 X(\256le)s +1304 X(is)s +1409 X(writable)s +1773 X(and)s +1954 X(has)s +2124 X(been)s +2349 X(modi\256ed,)s +2767 X(then)s +2976 X(using)s +3230 X(``quit'')s +3555 X(will)s +3748 X(query)s +4012 X(the)s +4171 X(user)s +4374 X(if)s +4472 X(the)s +4631 X(\256le)s +4796 X(should)s +5100 X(be)s +514 X +1320 Y +874 X(updated.)s +514 X +1560 Y +874 X(The)s +1054 X(`\261prompt)s +1451 X(string')s +1737 X(switch)s +2023 X(sets)s +2198 X(the)s +2345 X(prompting)s +2787 X(string)s +3040 X(for)s +3181 X +0.0 10 10 f.I ft(msh)s +0.0 10 10 f.R ft(.)s +514 X +1800 Y +874 X(You)s +1079 X(may)s +1283 X(wish)s +1504 X(to)s +1614 X(use)s +1779 X(an)s +1905 X(alternate)s +2280 X +0.0 10 10 f.I ft(MH)s +2467 X +0.0 10 10 f.R ft(pro\256le)s +2760 X(for)s +2908 X(the)s +3062 X(commands)s +3527 X(that)s +3709 X +0.0 10 10 f.I ft(msh)s +3902 X +0.0 10 10 f.R ft(executes;)s +4305 X(see)s +4464 X +0.0 10 10 f.I ft(mh-pro\256le)s +4930 X +0.0 10 10 f.R ft(\(5\))s +5078 X(for)s +514 X +1920 Y +874 X(details)s +1160 X(about)s +1407 X(the)s +1554 X +0.0 10 10 f.B ft($MH)s +1801 X +0.0 10 10 f.R ft(envariable.)s +514 X +2160 Y +874 X(When)s +1151 X(invoked)s +1512 X(from)s +1745 X +0.0 10 10 f.I ft(bbc)s +0.0 10 10 f.R ft(,)s +1953 X(two)s +2142 X(special)s +2458 X(features)s +2812 X(are)s +2972 X(enabled:)s +3349 X(First,)s +3597 X(the)s +3758 X(`\261scan')s +4090 X(switch)s +4390 X(directs)s +4695 X +0.0 10 10 f.I ft(msh)s +4895 X +0.0 10 10 f.R ft(to)s +5012 X(do)s +5150 X(a)s +514 X +2280 Y +874 X(`scan)s +1134 X(unseen')s +1485 X(on)s +1626 X(start\261up)s +1989 X(if)s +2091 X(new)s +2298 X(items)s +2556 X(are)s +2717 X(present)s +3045 X(in)s +3163 X(the)s +3325 X(BBoard.)s +3726 X(This)s +3944 X(feature)s +4260 X(is)s +4367 X(best)s +4568 X(used)s +4791 X(from)s +5025 X +0.0 10 10 f.I ft(bbc)s +0.0 10 10 f.R ft(,)s +514 X +2400 Y +874 X(which)s +1152 X(correctly)s +1540 X(sets)s +1724 X(the)s +1880 X(stage.)s +2169 X(Second,)s +2522 X(the)s +2678 X +0.0 10 10 f.I ft(mark)s +2917 X +0.0 10 10 f.R ft(command)s +3345 X(in)s +3457 X +0.0 10 10 f.I ft(msh)s +3652 X +0.0 10 10 f.R ft(acts)s +3841 X(specially)s +4230 X(when)s +4480 X(you)s +4664 X(are)s +4818 X(reading)s +5150 X(a)s +514 X +2520 Y +874 X(BBoard,)s +1246 X(since)s +1486 X +0.0 10 10 f.I ft(msh)s +1682 X +0.0 10 10 f.R ft(will)s +1873 X(consult)s +2197 X(the)s +2354 X(sequence)s +2754 X(``unseen'')s +3198 X(in)s +3311 X(determining)s +3829 X(what)s +4058 X(messages)s +4470 X(you)s +4655 X(have)s +4878 X(actually)s +514 X +2640 Y +874 X(read.)s +1126 X(When)s +1395 X +0.0 10 10 f.I ft(msh)s +1587 X +0.0 10 10 f.R ft(exits,)s +1832 X(it)s +1919 X(reports)s +2227 X(this)s +2402 X(information)s +2904 X(to)s +3012 X +0.0 10 10 f.I ft(bbc)s +0.0 10 10 f.R ft(.)s +3236 X(In)s +3349 X(addition,)s +3732 X(if)s +3823 X(you)s +4003 X(give)s +4205 X(the)s +4357 X +0.0 10 10 f.I ft(mark)s +4592 X +0.0 10 10 f.R ft(command)s +5016 X(with)s +514 X +2760 Y +874 X(no)s +1003 X(arguments,)s +1473 X +0.0 10 10 f.I ft(msh)s +1663 X +0.0 10 10 f.R ft(will)s +1848 X(interpret)s +2215 X(it)s +2300 X(as)s +2412 X(`mark)s +2700 X(\261sequence)s +3165 X(unseen)s +3492 X(\261delete)s +3830 X(\261nozero)s +4201 X(all')s +4363 X(Hence,)s +4671 X(to)s +4778 X(discard)s +5094 X(all)s +514 X +2880 Y +874 X(of)s +982 X(the)s +1129 X(messages)s +1531 X(in)s +1634 X(the)s +1781 X(current)s +2088 X(BBoard)s +2424 X(you're)s +2709 X(reading,)s +3058 X(just)s +3228 X(use)s +3386 X(the)s +3533 X +0.0 10 10 f.I ft(mark)s +3763 X +0.0 10 10 f.R ft(command)s +4182 X(with)s +4385 X(no)s +4510 X(arguments.)s +514 X +3120 Y +874 X(Normally,)s +1309 X(the)s +1458 X(``exit'')s +1767 X(command)s +2188 X(is)s +2282 X(identical)s +2653 X(to)s +2757 X(the)s +2905 X(``quit'')s +3219 X(command)s +3639 X(in)s +3743 X +0.0 10 10 f.I ft(msh)s +0.0 10 10 f.R ft(.)s +3980 X(When)s +4244 X(run)s +4403 X(under)s +4656 X +0.0 10 10 f.I ft(bbc)s +4826 X +0.0 10 10 f.R ft(however,)s +514 X +3240 Y +874 X(``exit'')s +1191 X(directs)s +1492 X +0.0 10 10 f.I ft(msh)s +1688 X +0.0 10 10 f.R ft(to)s +1801 X(mark)s +2041 X(all)s +2176 X(messages)s +2588 X(as)s +2706 X(seen)s +2918 X(and)s +3097 X(then)s +3304 X(``quit''.)s +3677 X(For)s +3850 X(speedy)s +4161 X(type\261in,)s +4520 X(this)s +4699 X(command)s +5127 X(is)s +514 X +3360 Y +874 X(often)s +1104 X(abbreviated)s +1594 X(as)s +1702 X(just)s +1872 X(``e''.)s +514 X +3600 Y +874 X(When)s +1148 X(invoked)s +1506 X(from)s +1736 X +0.0 10 10 f.I ft(vmh)s +0.0 10 10 f.R ft(,)s +1963 X(another)s +2298 X(special)s +2611 X(feature)s +2922 X(is)s +3024 X(enabled:)s +3397 X(The)s +3587 X(`topcur')s +3943 X(switch)s +4239 X(directs)s +4540 X +0.0 10 10 f.I ft(msh)s +4736 X +0.0 10 10 f.R ft(to)s +4849 X(have)s +5072 X(the)s +514 X +3720 Y +874 X(current)s +1194 X(message)s +1570 X(``track'')s +1939 X(the)s +2099 X(top)s +2265 X(line)s +2453 X(of)s +2574 X(the)s +2734 X +0.0 10 10 f.I ft(vmh)s +2938 X +0.0 10 10 f.R ft(scan)s +3153 X(window.)s +3563 X(Normally,)s +4009 X +0.0 10 10 f.I ft(msh)s +4208 X +0.0 10 10 f.R ft(has)s +4378 X(the)s +4537 X(current)s +4856 X(message)s +514 X +3840 Y +874 X(``track'')s +1230 X(the)s +1377 X(center)s +1645 X(of)s +1753 X(the)s +1900 X(window)s +2247 X(\(under)s +2532 X(`\261notopcur',)s +3053 X(which)s +3322 X(is)s +3414 X(the)s +3561 X(default\).)s +514 X +4080 Y +874 X +0.0 10 10 f.I ft(msh)s +1060 X +0.0 10 10 f.R ft(supports)s +1424 X(an)s +1543 X(output)s +1824 X(redirection)s +2281 X(facility.)s +2639 X(Commands)s +3120 X(may)s +3317 X(be)s +3436 X(followed)s +3816 X(by)s +3941 X(one)s +4110 X(of)s +514 X +4320 Y +1234 X(>)s +1315 X +0.0 10 10 f.I ft(\256le)s +1717 X +0.0 10 10 f.R ft(write)s +1947 X(output)s +2228 X(to)s +2331 X +0.0 10 10 f.I ft(\256le)s +514 X +4440 Y +1234 X +0.0 10 10 f.R ft(>>)s +1371 X +0.0 10 10 f.I ft(\256le)s +1717 X +0.0 10 10 f.R ft(append)s +2030 X(output)s +2311 X(to)s +2414 X +0.0 10 10 f.I ft(\256le)s +514 X +4560 Y +1234 X +0.0 10 10 f.R ft(|)s +1279 X +0.0 10 10 f.I ft(command)s +1717 X +0.0 10 10 f.R ft(pipe)s +1914 X(output)s +2195 X(to)s +2298 X(UNIX)s +2572 X +0.0 10 10 f.I ft(command)s +514 X +4800 Y +874 X +0.0 10 10 f.R ft(If)s +974 X +0.0 10 10 f.I ft(\256le)s +1130 X +0.0 10 10 f.R ft(starts)s +1375 X(with)s +1587 X(a)s +1664 X(`\304')s +1796 X(\(tilde\),)s +2098 X(then)s +2303 X(a)s +2380 X +0.0 10 10 f.I ft(csh)s +0.0 10 10 f.R ft(-like)s +2729 X(expansion)s +3167 X(takes)s +3405 X(place.)s +3698 X(Note)s +3925 X(that)s +4108 X +0.0 10 10 f.I ft(command)s +4529 X +0.0 10 10 f.R ft(is)s +4629 X(interpreted)s +5094 X(by)s +514 X +4920 Y +874 X +0.0 10 10 f.I ft(sh)s +1013 X +0.0 10 10 f.R ft(\(1\).)s +1207 X(Also)s +1424 X(note)s +1624 X(that)s +1801 X +0.0 10 10 f.I ft(msh)s +1989 X +0.0 10 10 f.R ft(does)s +2199 X(NOT)s +2431 X(support)s +2758 X(history)s +3063 X(substitutions,)s +3622 X(variable)s +3970 X(substitutions,)s +4529 X(or)s +4639 X(alias)s +4849 X(substitu-)s +514 X +5040 Y +874 X(tions.)s +514 X +5280 Y +874 X(When)s +1140 X(parsing)s +1462 X(commands)s +1923 X(to)s +2029 X(the)s +2179 X(left)s +2340 X(of)s +2451 X(any)s +2623 X(redirection)s +3083 X(symbol,)s +3430 X +0.0 10 10 f.I ft(msh)s +3618 X +0.0 10 10 f.R ft(will)s +3801 X(honor)s +4061 X(`\\')s +4182 X(\(back\261slash\))s +4713 X(as)s +4823 X(the)s +4972 X(quote)s +514 X +5400 Y +874 X(next\261character)s +1512 X(symbol,)s +1884 X(and)s +2080 X(`"')s +2239 X(\(double\261quote\))s +2901 X(as)s +3036 X(quote\261word)s +3565 X(delimiters.)s +4067 X(All)s +4247 X(other)s +4504 X(input)s +4761 X(tokens)s +5073 X(are)s +514 X +5520 Y +874 X(separated)s +1275 X(by)s +1400 X(whitespace)s +1868 X(\(spaces)s +2186 X(and)s +2355 X(tabs\).)s +514 X +5682 Y +0.0 8 8 f.B ft(Files)s +514 X +5802 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5922 Y +874 X(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(tailor)s +2699 X(\256le)s +514 X +6126 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +6246 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +6366 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(`\256le')s +514 X +6486 Y +874 X(\256leproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(\256le)s +2415 X(messages)s +514 X +6606 Y +874 X(showproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(show)s +2498 X(messages)s +514 X +6810 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +6930 Y +874 X +0.0 10 10 f.R ft(bbc\(1\))s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 66 67 + +514 X +600 Y(MSH\(1\))s +2771 X(-66-)s +4850 X(MSH\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Defaults)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(`\256le')s +1093 X(defaults)s +1434 X(to)s +1537 X(``./msgbox'')s +514 X +1200 Y +874 X(`\261prompt)s +1271 X(\(msh\))s +1529 X(')s +514 X +1320 Y +874 X(`\261noscan')s +514 X +1440 Y +874 X(`\261notopcur')s +514 X +1644 Y +0.0 8 8 f.B ft(Context)s +514 X +1764 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +1968 Y +0.0 8 8 f.B ft(Bugs)s +514 X +2088 Y +874 X +0.0 10 10 f.R ft(The)s +1060 X(argument)s +1468 X(to)s +1577 X(the)s +1730 X(`\261prompt')s +2166 X(switch)s +2458 X(must)s +2684 X(be)s +2809 X(interpreted)s +3272 X(as)s +3386 X(a)s +3461 X(single)s +3731 X(token)s +3984 X(by)s +4115 X(the)s +4268 X(shell)s +4487 X(that)s +4667 X(invokes)s +5008 X +0.0 10 10 f.I ft(msh)s +0.0 10 10 f.R ft(.)s +514 X +2208 Y +874 X(Therefore,)s +1316 X(one)s +1485 X(must)s +1705 X(usually)s +2019 X(place)s +2254 X(the)s +2401 X(argument)s +2803 X(to)s +2906 X(this)s +3076 X(switch)s +3362 X(inside)s +3626 X(double\261quotes.)s +514 X +2448 Y +874 X(There)s +1140 X(is)s +1241 X(a)s +1319 X(strict)s +1553 X(limit)s +1777 X(of)s +1893 X(messages)s +2303 X(per)s +2463 X(\256le)s +2624 X(in)s +2735 X +0.0 10 10 f.I ft(packf)s +0.0 10 10 f.R ft('d)s +3067 X(format)s +3366 X(which)s +3643 X +0.0 10 10 f.I ft(msh)s +3837 X +0.0 10 10 f.R ft(can)s +4008 X(handle.)s +4357 X(Usually,)s +4726 X(this)s +4904 X(limit)s +5127 X(is)s +514 X +2568 Y +874 X(1000)s +1099 X(messages.)s +514 X +2808 Y +874 X(Please)s +1156 X(remember)s +1587 X(that)s +1764 X +0.0 10 10 f.I ft(msh)s +1952 X +0.0 10 10 f.R ft(is)s +2046 X(not)s +2200 X(the)s +2348 X +0.0 10 10 f.I ft(CShell)s +0.0 10 10 f.R ft(,)s +2666 X(and)s +2836 X(that)s +3012 X(a)s +3082 X(lot)s +3214 X(of)s +3323 X(the)s +3471 X(nice)s +3663 X(facilities)s +4033 X(provided)s +4414 X(by)s +4540 X(the)s +4688 X(latter)s +4919 X(are)s +5066 X(not)s +514 X +2928 Y +874 X(present)s +1187 X(in)s +1290 X(the)s +1437 X(former.)s +514 X +3168 Y +874 X(In)s +987 X(particular,)s +1424 X +0.0 10 10 f.I ft(msh)s +1615 X +0.0 10 10 f.R ft(does)s +1828 X(not)s +1986 X(understand)s +2454 X(back\261quoting,)s +3053 X(so)s +3172 X(the)s +3324 X(only)s +3531 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ective)s +3903 X(way)s +4098 X(to)s +4205 X(use)s +4367 X +0.0 10 10 f.I ft(pick)s +4562 X +0.0 10 10 f.R ft(inside)s +4830 X +0.0 10 10 f.I ft(msh)s +5020 X +0.0 10 10 f.R ft(is)s +5116 X(to)s +514 X +3288 Y +874 X(always)s +1176 X(use)s +1334 X(the)s +1481 X(`\261seq)s +1747 X(select')s +2032 X(switch.)s +2368 X(Clever)s +2659 X(users)s +2889 X(of)s +2997 X +0.0 10 10 f.I ft(MH)s +3177 X +0.0 10 10 f.R ft(will)s +3358 X(put)s +3511 X(the)s +3658 X(line)s +514 X +3528 Y +1234 X(pick:)s +1484 X(\261seq)s +1717 X(select)s +1994 X(\261list)s +514 X +3768 Y +874 X(in)s +977 X(their)s +1185 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +1674 X(\256le)s +1827 X(so)s +1941 X(that)s +2116 X +0.0 10 10 f.I ft(pick)s +2307 X +0.0 10 10 f.R ft(works)s +2576 X(equally)s +2895 X(well)s +3092 X(from)s +3311 X(both)s +3514 X(the)s +3661 X(shell)s +3875 X(and)s +4044 X +0.0 10 10 f.I ft(msh)s +0.0 10 10 f.R ft(.)s +514 X +4008 Y +874 X +0.0 10 10 f.I ft(sortm)s +1127 X +0.0 10 10 f.R ft(always)s +1429 X(uses)s +1626 X(``\261noverbose'')s +2243 X(and)s +2412 X(if)s +2498 X(``\261text\256eld)s +2967 X(\256eld``)s +3236 X(is)s +3328 X(used,)s +3561 X(``\261limit)s +3892 X(0''.)s +514 X +4248 Y +874 X(The)s +1054 X +0.0 10 10 f.I ft(msh)s +1240 X +0.0 10 10 f.R ft(program)s +1603 X(inherits)s +1928 X(most)s +2148 X(\(if)s +2267 X(not)s +2420 X(all\))s +2578 X(of)s +2686 X(the)s +2833 X(bugs)s +3047 X(from)s +3266 X(the)s +3413 X +0.0 10 10 f.I ft(MH)s +3593 X +0.0 10 10 f.R ft(commands)s +4051 X(it)s +4132 X(implements.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 67 68 + +514 X +600 Y(NEXT\(1\))s +2771 X(-67-)s +4800 X(NEXT\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(next)s +1071 X(\261)s +1146 X(show)s +1382 X(the)s +1529 X(next)s +1726 X(message)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(next)s +1071 X([+folder])s +1456 X([\261header])s +1862 X([\261noheader])s +2368 X([\261showproc program])s +3260 X([\261noshowproc])s +3889 X([switches for )s +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(])s +4879 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Next)s +1094 X +0.0 10 10 f.R ft(performs)s +1491 X(a)s +1572 X +0.0 10 10 f.I ft(show)s +1815 X +0.0 10 10 f.R ft(on)s +1951 X(the)s +2109 X(next)s +2317 X(message)s +2691 X(in)s +2805 X(the)s +2963 X(speci\256ed)s +3354 X(\(or)s +3506 X(current\))s +3857 X(folder.)s +4181 X(Like)s +4400 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +4667 X(it)s +4759 X(passes)s +5050 X(any)s +514 X +2040 Y +874 X(switches)s +1246 X(on)s +1374 X(to)s +1480 X(the)s +1630 X(program)s +1996 X +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(,)s +2438 X(which)s +2710 X(is)s +2805 X(called)s +3071 X(to)s +3177 X(list)s +3328 X(the)s +3477 X(message.)s +3892 X(This)s +4097 X(command)s +4518 X(is)s +4612 X(almost)s +4906 X(exactly)s +514 X +2160 Y +874 X(equivalent)s +1315 X(to)s +1418 X(``show)s +1720 X(next''.)s +2033 X(Consult)s +2370 X(the)s +2517 X(manual)s +2836 X(entry)s +3066 X(for)s +3207 X +0.0 10 10 f.I ft(show)s +3463 X +0.0 10 10 f.R ft(\(1\))s +3604 X(for)s +3745 X(all)s +3870 X(the)s +4017 X(details.)s +514 X +2322 Y +0.0 8 8 f.B ft(Files)s +514 X +2442 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +2646 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +2766 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +2886 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +3006 Y +874 X(showproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(show)s +2498 X(the)s +2645 X(message)s +514 X +3210 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3330 Y +874 X +0.0 10 10 f.R ft(show\(1\),)s +1251 X(prev\(1\))s +514 X +3534 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3654 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +3774 Y +874 X(`\261header')s +514 X +3978 Y +0.0 8 8 f.B ft(Context)s +514 X +4098 Y +874 X +0.0 10 10 f.R ft(If)s +968 X(a)s +1040 X(folder)s +1306 X(is)s +1401 X(speci\256ed,)s +1809 X(it)s +1893 X(will)s +2077 X(become)s +2415 X(the)s +2565 X(current)s +2875 X(folder.)s +3191 X(The)s +3374 X(message)s +3740 X(that)s +3918 X(is)s +4013 X(shown)s +4301 X(\(i.e.,)s +4508 X(the)s +4657 X(next)s +4856 X(message)s +514 X +4218 Y +874 X(in)s +977 X(sequence\))s +1400 X(will)s +1581 X(become)s +1916 X(the)s +2063 X(current)s +2370 X(message.)s +514 X +4422 Y +0.0 8 8 f.B ft(Bugs)s +514 X +4542 Y +874 X +0.0 10 10 f.I ft(next)s +1070 X +0.0 10 10 f.R ft(is)s +1167 X(really)s +1424 X(a)s +1498 X(link)s +1684 X(to)s +1792 X(the)s +1944 X +0.0 10 10 f.I ft(show)s +2180 X +0.0 10 10 f.R ft(program.)s +2598 X(As)s +2739 X(a)s +2813 X(result,)s +3090 X(if)s +3181 X(you)s +3361 X(make)s +3606 X(a)s +3679 X(link)s +3864 X(to)s +3971 X +0.0 10 10 f.I ft(next)s +4166 X +0.0 10 10 f.R ft(and)s +4339 X(that)s +4518 X(link)s +4703 X(is)s +4799 X(not)s +4956 X(called)s +514 X +4662 Y +874 X +0.0 10 10 f.I ft(next)s +0.0 10 10 f.R ft(,)s +1096 X(your)s +1310 X(link)s +1497 X(will)s +1684 X(act)s +1831 X(like)s +2012 X +0.0 10 10 f.I ft(show)s +2249 X +0.0 10 10 f.R ft(instead.)s +2613 X(To)s +2755 X(circumvent)s +3235 X(this,)s +3436 X(add)s +3611 X(a)s +3686 X(pro\256le\261entry)s +4233 X(for)s +4380 X(the)s +4532 X(link)s +4718 X(to)s +4826 X(your)s +5039 X +0.0 10 10 f.I ft(MH)s +514 X +4782 Y +874 X +0.0 10 10 f.R ft(pro\256le)s +1160 X(and)s +1329 X(add)s +1498 X(the)s +1645 X(argument)s +2047 X +0.0 10 10 f.I ft(next)s +2238 X +0.0 10 10 f.R ft(to)s +2341 X(the)s +2488 X(entry.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 68 69 + +514 X +600 Y(PACKF\(1\))s +2771 X(-68-)s +4734 X(PACKF\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(packf)s +1120 X(\261)s +1195 X(compress)s +1597 X(an)s +1716 X(MH)s +1902 X(folder)s +2165 X(into)s +2346 X(a)s +2415 X(single)s +2679 X(\256le)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(packf)s +1120 X([+folder])s +1505 X([msgs])s +1802 X([\261\256le name])s +2312 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Packf)s +1132 X +0.0 10 10 f.R ft(takes)s +1368 X(messages)s +1776 X(from)s +2001 X(a)s +2076 X(folder)s +2345 X(and)s +2520 X(copies)s +2806 X(them)s +3037 X(to)s +3146 X(a)s +3221 X(single)s +3491 X(\256le.)s +3700 X(Each)s +3930 X(message)s +4299 X(in)s +4408 X(the)s +4561 X(\256le)s +4720 X(is)s +4818 X(separated)s +514 X +2040 Y +874 X(by)s +1008 X(four)s +1208 X(CTRL\261A's)s +1692 X(and)s +1869 X(a)s +1946 X(newline)s +2295 X(\(identical)s +2705 X(to)s +2816 X(the)s +2971 X(way)s +3170 X(messages)s +3580 X(are)s +3734 X(stored)s +4011 X(in)s +4122 X(your)s +4338 X(receiving)s +4742 X(mail)s +4953 X(drop\).)s +514 X +2160 Y +874 X(Messages)s +1287 X(packed)s +1594 X(can)s +1757 X(be)s +1876 X(unpacked)s +2283 X(using)s +2525 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft(.)s +514 X +2400 Y +874 X(If)s +968 X(the)s +1118 X +0.0 10 10 f.I ft(name)s +1362 X +0.0 10 10 f.R ft(given)s +1612 X(to)s +1718 X(the)s +1868 X(`\261\256le name')s +2381 X(switch)s +2669 X(exists,)s +2949 X(then)s +3148 X(the)s +3297 X(messages)s +3701 X(speci\256ed)s +4083 X(will)s +4266 X(be)s +4387 X(appended)s +4796 X(to)s +4901 X(the)s +5050 X(end)s +514 X +2520 Y +874 X(of)s +982 X(the)s +1129 X(\256le,)s +1307 X(otherwise)s +1720 X(the)s +1867 X(\256le)s +2020 X(will)s +2201 X(be)s +2320 X(created)s +2632 X(and)s +2801 X(the)s +2948 X(messages)s +3350 X(appended.)s +514 X +2682 Y +0.0 8 8 f.B ft(Files)s +514 X +2802 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +2922 Y +874 X(.msgbox.map)s +2463 X(A)s +2560 X(binary)s +2840 X(index)s +3087 X(of)s +3195 X(the)s +3342 X(\256le)s +514 X +3126 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3246 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3366 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +3486 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(`\256le')s +514 X +3690 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3810 Y +874 X +0.0 10 10 f.R ft(inc\(1\))s +514 X +4014 Y +0.0 8 8 f.B ft(Defaults)s +514 X +4134 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +4254 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(all)s +514 X +4374 Y +874 X(`\261\256le)s +1110 X(./msgbox')s +514 X +4578 Y +0.0 8 8 f.B ft(Context)s +514 X +4698 Y +874 X +0.0 10 10 f.R ft(If)s +976 X(a)s +1056 X(folder)s +1330 X(is)s +1433 X(given,)s +1716 X(it)s +1808 X(will)s +2000 X(become)s +2346 X(the)s +2504 X(current)s +2822 X(folder.)s +3146 X(The)s +3337 X(\256rst)s +3529 X(message)s +3902 X(packed)s +4219 X(will)s +4410 X(become)s +4755 X(the)s +4912 X(current)s +514 X +4818 Y +874 X(message.)s +514 X +5022 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5142 Y +874 X +0.0 10 10 f.I ft(Packf)s +1129 X +0.0 10 10 f.R ft(doesn't)s +1451 X(handle)s +1745 X(the)s +1895 X(old)s +2050 X(UUCP-style)s +2566 X(``mbox'')s +2953 X(format)s +3246 X(\(used)s +3489 X(by)s +3616 X +0.0 10 10 f.I ft(SendMail)s +0.0 10 10 f.R ft(\).)s +4109 X(To)s +4247 X(pack)s +4462 X(messages)s +4866 X(into)s +5049 X(this)s +514 X +5262 Y +874 X(format,)s +1192 X(use)s +1352 X(the)s +1501 X(script)s +1750 X +0.0 10 10 f.I ft(/usr/bs/mh-beta/lib/packmbox)s +0.0 10 10 f.R ft(.)s +3021 X(Note)s +3242 X(that)s +3419 X +0.0 10 10 f.I ft(packmbox)s +3850 X +0.0 10 10 f.R ft(does)s +4060 X(not)s +4215 X(take)s +4408 X(the)s +4557 X(`\261\256le')s +4828 X(option)s +5111 X(of)s +514 X +5382 Y +874 X +0.0 10 10 f.I ft(packf)s +0.0 10 10 f.R ft(,)s +1140 X(and)s +1309 X(instead)s +1617 X(writes)s +1886 X(its)s +2006 X(output)s +2287 X(on)s +2412 X +0.0 10 10 f.I ft(stdout)s +0.0 10 10 f.R ft(.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 69 70 + +514 X +600 Y(PICK\(1\))s +2771 X(-69-)s +4828 X(PICK\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(pick)s +1071 X(\261)s +1146 X(select)s +1398 X(messages)s +1800 X(by)s +1925 X(content)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(pick)s +1212 X(\261cc)s +2195 X([+folder])s +2580 X([msgs])s +2877 X([\261help])s +514 X +1560 Y +1212 X(\261date)s +2195 X([\261before date])s +2781 X([\261after date])s +3295 X([\261date\256eld \256eld])s +514 X +1680 Y +1212 X(\261from)s +514 X +1440 Y +1162 X +0.0 12 12 f.S2 ft(B)s +1560 Y +1162 X(A)s +1680 Y +1162 X(A)s +1800 Y +1162 X(C)s +1920 Y +1162 X(A)s +2040 Y +1162 X(A)s +2160 Y +1162 X(D)s +1800 Y +0.0 10 10 f.R ft(\261search)s +1440 Y +2110 X +0.0 12 12 f.S2 ft(E)s +1560 Y +2110 X(A)s +1680 Y +2110 X(A)s +1800 Y +2110 X(F)s +1920 Y +2110 X(A)s +2040 Y +2110 X(A)s +2160 Y +2110 X(G)s +1800 Y +2195 X +0.0 10 10 f.R ft(pattern)s +2497 X([\261and ...])s +2882 X([\261or ...])s +3206 X([\261not ...])s +3575 X([\261lbrace ... \261rbrace])s +514 X +1920 Y +1212 X(\261subject)s +514 X +2040 Y +1212 X(\261to)s +2195 X([\261sequence name ...])s +3042 X([\261public])s +3433 X([\261nopublic])s +3924 X([\261zero])s +4236 X([\261nozero])s +514 X +2160 Y +1212 X(\261)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(\261component)s +2195 X([\261list])s +2459 X([\261nolist])s +514 X +2400 Y +874 X(typically:)s +514 X +2520 Y +1234 X(scan)s +1461 X(`pick)s +1716 X(\261from)s +2010 X(jones`)s +514 X +2640 Y +1234 X(pick)s +1456 X(\261to)s +1634 X(holloway)s +2056 X(\261sequence)s +2521 X(select)s +514 X +2760 Y +1234 X(show)s +1495 X(`pick)s +1750 X(\261before)s +2104 X(friday`)s +514 X +3000 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +3240 Y +874 X +0.0 10 10 f.I ft(Pick)s +1081 X +0.0 10 10 f.R ft(searches)s +1447 X(messages)s +1853 X(within)s +2138 X(a)s +2211 X(folder)s +2478 X(for)s +2623 X(the)s +2774 X(speci\256ed)s +3158 X(contents,)s +3545 X(and)s +3718 X(then)s +3919 X(identi\256es)s +4315 X(those)s +4555 X(messages.)s +5011 X(Two)s +514 X +3360 Y +874 X(types)s +1110 X(of)s +1218 X(search)s +1497 X(primitives)s +1928 X(are)s +2074 X(available:)s +2487 X(pattern)s +2789 X(matching)s +3186 X(and)s +3355 X(date)s +3546 X(constraint)s +3965 X(operations.)s +514 X +3600 Y +874 X(A)s +983 X(modi\256ed)s +1375 X +0.0 10 10 f.I ft(grep)s +0.0 10 10 f.R ft(\(1\))s +1710 X(is)s +1813 X(used)s +2032 X(to)s +2146 X(perform)s +2503 X(the)s +2661 X(matching,)s +3094 X(so)s +3219 X(the)s +3377 X(full)s +3552 X(regular)s +3870 X(expression)s +4333 X(\(see)s +4529 X +0.0 10 10 f.I ft(ed)s +0.0 10 10 f.R ft(\(1\)\))s +4808 X(facility)s +5127 X(is)s +514 X +3720 Y +874 X(available)s +1268 X(within)s +1558 X(`pattern'.)s +1985 X(With)s +2219 X(`\261search',)s +2648 X(`pattern')s +3025 X(is)s +3126 X(used)s +3343 X(directly,)s +3707 X(and)s +3884 X(with)s +4095 X(the)s +4250 X(others,)s +4552 X(the)s +4707 X(grep)s +4917 X(pattern)s +514 X +3840 Y +874 X(constructed)s +1359 X(is:)s +514 X +4080 Y +1234 X(``component[)s +1802 X(\\t]*:.*pattern'')s +514 X +4320 Y +874 X(This)s +1079 X(means)s +1360 X(that)s +1536 X(the)s +1684 X(pattern)s +1987 X(speci\256ed)s +2368 X(for)s +2510 X(a)s +2580 X(`\261search')s +2976 X(will)s +3158 X(be)s +3278 X(found)s +3537 X(everywhere)s +4027 X(in)s +4131 X(the)s +4279 X(message,)s +4668 X(including)s +5072 X(the)s +514 X +4440 Y +874 X(header)s +1179 X(and)s +1363 X(the)s +1525 X(body,)s +1790 X(while)s +2052 X(the)s +2214 X(other)s +2459 X(pattern)s +2776 X(matching)s +3188 X(requests)s +3555 X(are)s +3716 X(limited)s +4039 X(to)s +4156 X(the)s +4317 X(single)s +4595 X(speci\256ed)s +4989 X(com-)s +514 X +4560 Y +874 X(ponent.)s +1221 X(The)s +1401 X(expression)s +514 X +4800 Y +1234 X(`\261)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(\261component pattern')s +514 X +5040 Y +874 X(is)s +966 X(a)s +1035 X(shorthand)s +1454 X(for)s +1595 X(specifying)s +514 X +5280 Y +1234 X(`\261search)s +1596 X(``component[)s +2164 X(\\t]*:.*pattern'' ')s +514 X +5520 Y +874 X(It)s +966 X(is)s +1064 X(used)s +1278 X(to)s +1387 X(pick)s +1590 X(a)s +1665 X(component)s +2139 X(which)s +2413 X(is)s +2510 X(not)s +2668 X(one)s +2842 X(of)s +2955 X(``To:'',)s +3281 X(``cc:'',)s +3584 X(``Date:'',)s +3987 X(``From:'',)s +4419 X(or)s +4532 X(``Subject:''.)s +5072 X(An)s +514 X +5640 Y +874 X(example)s +1237 X(is)s +1329 X(`pick)s +1584 X(\261)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(\261reply\261to)s +2084 X(pooh'.)s +514 X +5880 Y +874 X(Pattern)s +1191 X(matching)s +1597 X(is)s +1698 X(performed)s +2147 X(on)s +2281 X(a)s +2359 X(per\261line)s +2720 X(basis.)s +3004 X(Within)s +3315 X(the)s +3470 X(header)s +3768 X(of)s +3884 X(the)s +4039 X(message,)s +4435 X(each)s +4650 X(component)s +5127 X(is)s +514 X +6000 Y +874 X(treated)s +1173 X(as)s +1284 X(one)s +1456 X(long)s +1662 X(line,)s +1865 X(but)s +2021 X(in)s +2127 X(the)s +2277 X(body,)s +2530 X(each)s +2740 X(line)s +2918 X(is)s +3013 X(separate.)s +3417 X(Lower\261case)s +3926 X(letters)s +4198 X(in)s +4304 X(the)s +4453 X(search)s +4734 X(pattern)s +5038 X(will)s +514 X +6120 Y +874 X(match)s +1143 X(either)s +1395 X(lower)s +1647 X(or)s +1755 X(upper)s +2007 X(case)s +2203 X(in)s +2306 X(the)s +2453 X(message,)s +2841 X(while)s +3088 X(upper)s +3340 X(case)s +3536 X(will)s +3717 X(match)s +3986 X(only)s +4189 X(upper)s +4441 X(case.)s +514 X +6360 Y +874 X(Note)s +1104 X(that)s +1290 X(since)s +1531 X(the)s +1689 X(`\261date')s +2006 X(switch)s +2302 X(is)s +2404 X(a)s +2483 X(pattern)s +2795 X(matching)s +3202 X(operation)s +3614 X(\(as)s +3765 X(described)s +4182 X(above\),)s +4513 X(to)s +4626 X(\256nd)s +4817 X(messages)s +514 X +6480 Y +874 X(sent)s +1060 X(on)s +1185 X(a)s +1254 X(certain)s +1550 X(date)s +1741 X(the)s +1888 X(pattern)s +2190 X(string)s +2443 X(must)s +2663 X(match)s +2932 X(the)s +3079 X(text)s +3254 X(of)s +3362 X(the)s +3509 X(``Date:'')s +3882 X(\256eld)s +4085 X(of)s +4193 X(the)s +4340 X(message.)s +514 X +6720 Y +874 X(Independent)s +1397 X(of)s +1509 X(any)s +1682 X(pattern)s +1988 X(matching)s +2389 X(operations)s +2834 X(requested,)s +3270 X(the)s +3421 X(switches)s +3794 X(`\261after)s +4088 X(date')s +4316 X(or)s +4428 X(`\261before)s +4794 X(date')s +5022 X(may)s +514 X +6840 Y +874 X(also)s +1064 X(be)s +1187 X(used)s +1399 X(to)s +1506 X(introduce)s +1912 X(date/time)s +2313 X(contraints)s +2736 X(on)s +2865 X(all)s +2994 X(of)s +3106 X(the)s +3257 X(messages.)s +3713 X(By)s +3859 X(default,)s +4190 X(the)s +4340 X(``Date:'')s +4716 X(\256eld)s +4922 X(is)s +5017 X(con-)s +514 X +6960 Y +874 X(sulted,)s +1167 X(but)s +1324 X(if)s +1414 X(another)s +1742 X(date)s +1937 X(yielding)s +2294 X(\256eld)s +2501 X(\(such)s +2746 X(as)s +2858 X(``BB\261Posted:'')s +3498 X(or)s +3610 X(``Delivery\261Date:''\))s +4419 X(should)s +4714 X(be)s +4836 X(used,)s +5072 X(the)s +514 X +7080 Y +874 X(`\261date\256eld \256eld')s +1562 X(switch)s +1848 X(may)s +2045 X(be)s +2164 X(used.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 70 71 + +514 X +600 Y(PICK\(1\))s +2771 X(-70-)s +4828 X(PICK\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(With)s +1113 X(`\261before')s +1522 X(and)s +1705 X(`\261after',)s +2067 X +0.0 10 10 f.I ft(pick)s +2272 X +0.0 10 10 f.R ft(will)s +2467 X(actually)s +2822 X(parse)s +3071 X(the)s +3232 X(date)s +3436 X(\256elds)s +3691 X(in)s +3807 X(each)s +4027 X(of)s +4148 X(the)s +4308 X(messages)s +4723 X(speci\256ed)s +5116 X(in)s +514 X +1080 Y +874 X(`msgs')s +1179 X(and)s +1355 X(compare)s +1730 X(them)s +1962 X(to)s +2072 X(the)s +2226 X(date/time)s +2630 X(speci\256ed.)s +3067 X(If)s +3165 X(`\261after')s +3495 X(is)s +3594 X(given,)s +3873 X(then)s +4077 X(only)s +4287 X(those)s +4530 X(messages)s +4939 X(whose)s +514 X +1200 Y +874 X(``Date:'')s +1261 X(\256eld)s +1478 X(value)s +1733 X(is)s +1839 X(chronologically)s +2505 X(after)s +2726 X(the)s +2887 X(date)s +3092 X(speci\256ed)s +3486 X(will)s +3680 X(be)s +3812 X(considered.)s +4332 X(The)s +4525 X(`\261before')s +4933 X(switch)s +514 X +1320 Y +874 X(speci\256es)s +1243 X(the)s +1390 X(complimentary)s +2020 X(action.)s +514 X +1560 Y +874 X(Both)s +1106 X(the)s +1265 X(`\261after')s +1599 X(and)s +1779 X(`\261before')s +2185 X(switches)s +2565 X(take)s +2767 X(legal)s +2997 X(822\261style)s +3422 X(date)s +3624 X(speci\256cations)s +4204 X(as)s +4323 X(arguments.)s +4825 X +0.0 10 10 f.I ft(Pick)s +5038 X +0.0 10 10 f.R ft(will)s +514 X +1680 Y +874 X(default)s +1190 X(certain)s +1500 X(missing)s +1851 X(\256elds)s +2107 X(so)s +2235 X(that)s +2424 X(the)s +2585 X(entire)s +2851 X(date)s +3056 X(need)s +3283 X(not)s +3449 X(be)s +3581 X(speci\256ed.)s +4024 X(These)s +4300 X(\256elds)s +4555 X(are)s +4714 X(\(in)s +4863 X(order)s +5111 X(of)s +514 X +1800 Y +874 X(defaulting\):)s +1371 X(timezone,)s +1793 X(time)s +2002 X(and)s +2177 X(timezone,)s +2598 X(date,)s +2819 X(date)s +3015 X(and)s +3189 X(timezone.)s +3635 X(All)s +3793 X(defaults)s +4139 X(are)s +4290 X(taken)s +4536 X(from)s +4760 X(the)s +4912 X(current)s +514 X +1920 Y +874 X(date,)s +1090 X(time,)s +1318 X(and)s +1487 X(timezone.)s +514 X +2160 Y +874 X(In)s +984 X(addition)s +1338 X(to)s +1442 X(822\261style)s +1857 X(dates,)s +2113 X +0.0 10 10 f.I ft(pick)s +2305 X +0.0 10 10 f.R ft(will)s +2487 X(also)s +2674 X(recognize)s +3087 X(any)s +3257 X(of)s +3366 X(the)s +3514 X(days)s +3723 X(of)s +3832 X(the)s +3980 X(week)s +4216 X(\(``sunday'',)s +4715 X(``monday'',)s +514 X +2280 Y +874 X(and)s +1050 X(so)s +1171 X(on\),)s +1361 X(and)s +1537 X(the)s +1691 X(special)s +2000 X(dates)s +2237 X(``today'',)s +2648 X(``yesterday'')s +3194 X(\(24)s +3359 X(hours)s +3613 X(ago\),)s +3847 X(and)s +4023 X(``tomorrow'')s +4581 X(\(24)s +4746 X(hours)s +5000 X(from)s +514 X +2400 Y +874 X(now\).)s +1155 X(All)s +1309 X(days)s +1518 X(of)s +1627 X(the)s +1775 X(week)s +2011 X(are)s +2157 X(judged)s +2454 X(to)s +2557 X(refer)s +2769 X(to)s +2872 X(a)s +2941 X(day)s +3110 X(in)s +3213 X(the)s +3360 X(past)s +3546 X(\(e.g.,)s +3773 X(telling)s +4054 X +0.0 10 10 f.I ft(pick)s +4245 X +0.0 10 10 f.R ft(``saturday'')s +4740 X(on)s +4865 X(a)s +4934 X(``tues-)s +514 X +2520 Y +874 X(day'')s +1109 X(means)s +1389 X(``last saturday'')s +2048 X(not)s +2201 X(``this saturday''\).)s +514 X +2760 Y +874 X(Finally,)s +1215 X(in)s +1325 X(addition)s +1685 X(to)s +1795 X(these)s +2032 X(special)s +2341 X(speci\256cations,)s +2942 X +0.0 10 10 f.I ft(pick)s +3140 X +0.0 10 10 f.R ft(will)s +3328 X(also)s +3520 X(honor)s +3784 X(a)s +3859 X(speci\256cation)s +4395 X(of)s +4509 X(the)s +4662 X(form)s +4887 X(``\261dd'',)s +514 X +2880 Y +874 X(which)s +1143 X(means)s +1423 X(``dd)s +1614 X(days)s +1822 X(ago''.)s +514 X +3120 Y +874 X +0.0 10 10 f.I ft(Pick)s +1087 X +0.0 10 10 f.R ft(supports)s +1462 X(complex)s +1842 X(boolean)s +2194 X(operations)s +2646 X(on)s +2782 X(the)s +2939 X(searching)s +3356 X(primitives)s +3797 X(with)s +4010 X(the)s +4167 X(`\261and',)s +4487 X(`\261or',)s +4746 X(`\261not',)s +5050 X(and)s +514 X +3240 Y +874 X(`\261lbrace ... \261rbrace')s +1681 X(switches.)s +2100 X(For)s +2264 X(example,)s +514 X +3480 Y +1234 X(pick)s +1456 X(\261after)s +1738 X(yesterday)s +2170 X(\261and)s +2414 X(\261lbrace)s +2757 X(\261from)s +3051 X(freida)s +3333 X(\261or)s +3516 X(\261from)s +3810 X(fear)s +4014 X(\261rbrace)s +514 X +3720 Y +874 X(identi\256es)s +1266 X(messages)s +1668 X(recently)s +2014 X(sent)s +2200 X(by)s +2325 X(``frieda'')s +2714 X(or)s +2822 X(``fear''.)s +514 X +3960 Y +874 X(The)s +1075 X(matching)s +1493 X(primitives)s +1945 X(take)s +2156 X(precedence)s +2648 X(over)s +2870 X(the)s +3037 X(`\261not')s +3326 X(switch,)s +3657 X(which)s +3946 X(in)s +4069 X(turn)s +4275 X(takes)s +4525 X(precedence)s +5017 X(over)s +514 X +4080 Y +874 X(`\261and')s +1172 X(which)s +1454 X(in)s +1570 X(turn)s +1769 X(takes)s +2012 X(precedence)s +2496 X(over)s +2710 X(`\261or'.)s +2996 X(To)s +3144 X(override)s +3513 X(the)s +3672 X(default)s +3986 X(precedence,)s +4495 X(the)s +4654 X(`\261lbrace')s +5050 X(and)s +514 X +4200 Y +874 X(`\261rbrace')s +1263 X(switches)s +1632 X(are)s +1778 X(provided,)s +2183 X(which)s +2452 X(act)s +2593 X(just)s +2763 X(like)s +2938 X(opening)s +3285 X(and)s +3454 X(closing)s +3768 X(parentheses)s +4258 X(in)s +4361 X(logical)s +4658 X(expressions.)s +514 X +4440 Y +874 X(If)s +969 X(no)s +1098 X(search)s +1381 X(criteria)s +1692 X(are)s +1842 X(given,)s +2118 X(all)s +2247 X(the)s +2398 X(messages)s +2804 X(speci\256ed)s +3188 X(on)s +3317 X(the)s +3468 X(command)s +3890 X(line)s +4068 X(are)s +4217 X(selected)s +4566 X(\(this)s +4772 X(defaults)s +5116 X(to)s +514 X +4560 Y +874 X(``all''\).)s +514 X +4800 Y +874 X(Once)s +1110 X(the)s +1258 X(search)s +1537 X(has)s +1695 X(been)s +1908 X(performed,)s +2373 X(if)s +2459 X(the)s +2606 X(`\261list')s +2870 X(switch)s +3156 X(is)s +3248 X(given,)s +3520 X(the)s +3667 X(message)s +4030 X(numbers)s +4399 X(of)s +4507 X(the)s +4654 X(selected)s +5000 X(mes-)s +514 X +4920 Y +874 X(sages)s +1116 X(are)s +1263 X(written)s +1572 X(to)s +1676 X(the)s +1824 X(standard)s +2188 X(output)s +2470 X(separated)s +2871 X(by)s +2996 X(newlines.)s +3426 X(This)s +3629 X(is)s +3721 X +0.0 10 10 f.I ft(extremely)s +4133 X +0.0 10 10 f.R ft(useful)s +4402 X(for)s +4543 X(quickly)s +4868 X(generat-)s +514 X +5040 Y +874 X(ing)s +1036 X(arguments)s +1485 X(for)s +1634 X(other)s +1872 X +0.0 10 10 f.I ft(MH)s +2060 X +0.0 10 10 f.R ft(programs)s +2470 X(by)s +2603 X(using)s +2853 X(the)s +3008 X(``backquoting'')s +3667 X(syntax)s +3961 X(of)s +4077 X(the)s +4232 X(shell.)s +4504 X(For)s +4676 X(example,)s +5072 X(the)s +514 X +5160 Y +874 X(command)s +514 X +5400 Y +1234 X(scan)s +1461 X(`pick)s +1716 X(+todo)s +2000 X(\261after)s +2282 X(``31)s +2473 X(Mar)s +2664 X(83)s +2789 X(0123)s +3014 X(PST''`)s +514 X +5640 Y +874 X(says)s +1080 X(to)s +1192 X +0.0 10 10 f.I ft(scan)s +1409 X +0.0 10 10 f.R ft(those)s +1654 X(messages)s +2065 X(in)s +2177 X(the)s +2333 X(indicated)s +2733 X(folder)s +3005 X(which)s +3283 X(meet)s +3511 X(the)s +3667 X(appropriate)s +4155 X(criterion.)s +4577 X(Note)s +4805 X(that)s +4989 X(since)s +514 X +5760 Y +874 X +0.0 10 10 f.I ft(pick)s +1090 X +0.0 10 10 f.R ft('s)s +1193 X(context)s +1518 X(changes)s +1870 X(are)s +2022 X(written)s +2336 X(out)s +2495 X(prior)s +2719 X(to)s +2827 X +0.0 10 10 f.I ft(scan)s +3060 X +0.0 10 10 f.R ft('s)s +3162 X(invocation,)s +3639 X(you)s +3819 X(need)s +4037 X(not)s +4195 X(give)s +4397 X(the)s +4549 X(folder)s +4817 X(argument)s +514 X +5880 Y +874 X(to)s +977 X +0.0 10 10 f.I ft(scan)s +1185 X +0.0 10 10 f.R ft(as)s +1293 X(well.)s +514 X +6120 Y +874 X(Regardless)s +1343 X(of)s +1457 X(the)s +1610 X(operation)s +2018 X(of)s +2132 X(the)s +2285 X(`\261list')s +2554 X(switch,)s +2870 X(the)s +3022 X(`\261sequence)s +3500 X(name')s +3779 X(switch)s +4070 X(may)s +4272 X(be)s +4396 X(given)s +4648 X(once)s +4866 X(for)s +5012 X(each)s +514 X +6240 Y +874 X(sequence)s +1283 X(the)s +1449 X(user)s +1659 X(wishes)s +1975 X(to)s +2097 X(de\256ne.)s +2434 X(For)s +2616 X(each)s +2841 X(sequence)s +3249 X(named,)s +3583 X(that)s +3776 X(sequence)s +4184 X(will)s +4383 X(be)s +4520 X(de\256ned)s +4857 X(to)s +4978 X(mean)s +514 X +6360 Y +874 X(exactly)s +1187 X(those)s +1423 X(messages)s +1825 X(selected)s +2171 X(by)s +2296 X +0.0 10 10 f.I ft(pick)s +0.0 10 10 f.R ft(.)s +2537 X(For)s +2701 X(example,)s +514 X +6600 Y +1234 X(pick)s +1456 X(\261from)s +1750 X(frated)s +2032 X(\261seq)s +2265 X(fred)s +514 X +6840 Y +874 X(de\256nes)s +1183 X(a)s +1253 X(new)s +1445 X(message)s +1809 X(sequence)s +2200 X(for)s +2342 X(the)s +2490 X(current)s +2798 X(folder)s +3061 X(called)s +3324 X(``fred'')s +3641 X(which)s +3910 X(contains)s +4268 X(exactly)s +4581 X(those)s +4817 X(messages)s +514 X +6960 Y +874 X(that)s +1049 X(were)s +1267 X(selected.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 71 72 + +514 X +600 Y(PICK\(1\))s +2771 X(-71-)s +4828 X(PICK\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(Note)s +1093 X(that)s +1268 X(whenever)s +1680 X +0.0 10 10 f.I ft(pick)s +1871 X +0.0 10 10 f.R ft(processes)s +2278 X(a)s +2347 X(`\261sequence name')s +3094 X(switch,)s +3405 X(it)s +3486 X(sets)s +3661 X(`\261nolist'.)s +514 X +1200 Y +874 X(By)s +1028 X(default,)s +1367 X +0.0 10 10 f.I ft(pick)s +1570 X +0.0 10 10 f.R ft(will)s +1762 X(zero)s +1969 X(the)s +2127 X(sequence)s +2528 X(before)s +2818 X(adding)s +3126 X(it.)s +3268 X(This)s +3482 X(action)s +3762 X(can)s +3936 X(be)s +4066 X(disabled)s +4435 X(with)s +4649 X(the)s +4807 X(`\261nozero')s +514 X +1320 Y +874 X(switch,)s +1191 X(which)s +1466 X(means)s +1752 X(that)s +1933 X(the)s +2086 X(messages)s +2494 X(selected)s +2846 X(by)s +2977 X +0.0 10 10 f.I ft(pick)s +3174 X +0.0 10 10 f.R ft(will)s +3361 X(be)s +3486 X(added)s +3755 X(to)s +3864 X(the)s +4017 X(sequence,)s +4438 X(if)s +4530 X(it)s +4617 X(already)s +4941 X(exists,)s +514 X +1440 Y +874 X(and)s +1043 X(any)s +1212 X(messages)s +1614 X(already)s +1932 X(a)s +2001 X(part)s +2181 X(of)s +2289 X(that)s +2464 X(sequence)s +2854 X(will)s +3035 X(remain)s +3337 X(so.)s +514 X +1680 Y +874 X(The)s +1054 X(`\261public')s +1445 X(and)s +1614 X(`\261nopublic')s +2105 X(switches)s +2474 X(are)s +2620 X(used)s +2828 X(by)s +2953 X +0.0 10 10 f.I ft(pick)s +3144 X +0.0 10 10 f.R ft(in)s +3247 X(the)s +3394 X(same)s +3624 X(way)s +3815 X +0.0 10 10 f.I ft(mark)s +4045 X +0.0 10 10 f.R ft(uses)s +4242 X(them.)s +514 X +1842 Y +0.0 8 8 f.B ft(Files)s +514 X +1962 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +2166 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +2286 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +2406 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +2610 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2730 Y +874 X +0.0 10 10 f.R ft(mark\(1\))s +514 X +2934 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3054 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +3174 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(all)s +514 X +3294 Y +874 X(`\261date\256eld)s +1326 X(date')s +514 X +3414 Y +874 X(`\261nopublic')s +1365 X(if)s +1451 X(the)s +1598 X(folder)s +1861 X(is)s +1953 X(read\261only,)s +2402 X(`\261public')s +2793 X(otherwise)s +514 X +3534 Y +874 X(`\261zero')s +514 X +3654 Y +874 X(`\261list')s +1138 X(is)s +1230 X(the)s +1377 X(default)s +1679 X(if)s +1765 X(no)s +1890 X(`\261sequence',)s +2421 X(`\261nolist')s +2785 X(otherwise)s +514 X +3858 Y +0.0 8 8 f.B ft(Context)s +514 X +3978 Y +874 X +0.0 10 10 f.R ft(If)s +965 X(a)s +1034 X(folder)s +1297 X(is)s +1389 X(given,)s +1661 X(it)s +1742 X(will)s +1923 X(become)s +2258 X(the)s +2405 X(current)s +2712 X(folder.)s +514 X +4182 Y +0.0 8 8 f.B ft(History)s +514 X +4302 Y +874 X +0.0 10 10 f.R ft(In)s +983 X(previous)s +1353 X(versions)s +1712 X(of)s +1821 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +2027 X(the)s +2175 X +0.0 10 10 f.I ft(pick)s +2367 X +0.0 10 10 f.R ft(command)s +2787 X(would)s +3063 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +3320 X +0.0 10 10 f.I ft(scan)s +0.0 10 10 f.R ft(,)s +3553 X(or)s +3661 X +0.0 10 10 f.I ft(re\256le)s +3891 X +0.0 10 10 f.R ft(the)s +4038 X(selected)s +4384 X(messages.)s +4836 X(This)s +5039 X(was)s +514 X +4422 Y +874 X(rather)s +1135 X(``inverted)s +1557 X(logic'')s +1852 X(from)s +2075 X(the)s +2226 X(UNIX)s +2504 X(point)s +2739 X(of)s +2851 X(view,)s +3099 X(so)s +3217 X +0.0 10 10 f.I ft(pick)s +3412 X +0.0 10 10 f.R ft(was)s +3596 X(changed)s +3956 X(to)s +4062 X(de\256ne)s +4334 X(sequences)s +4766 X(and)s +4938 X(output)s +514 X +4542 Y +874 X(those)s +1111 X(sequences.)s +1591 X(Hence,)s +1896 X +0.0 10 10 f.I ft(pick)s +2088 X +0.0 10 10 f.R ft(can)s +2252 X(be)s +2372 X(used)s +2581 X(to)s +2685 X(generate)s +3048 X(the)s +3196 X(arguments)s +3638 X(for)s +3780 X(all)s +3906 X(other)s +4137 X +0.0 10 10 f.I ft(MH)s +4318 X +0.0 10 10 f.R ft(commands,)s +4802 X(instead)s +5111 X(of)s +514 X +4662 Y +874 X(giving)s +1155 X +0.0 10 10 f.I ft(pick)s +1346 X +0.0 10 10 f.R ft(endless)s +1665 X(switches)s +2034 X(for)s +2175 X(invoking)s +2556 X(those)s +2792 X(commands)s +3250 X(itself.)s +514 X +4902 Y +874 X(Also,)s +1121 X(previous)s +1498 X(versions)s +1864 X(of)s +1980 X +0.0 10 10 f.I ft(pick)s +2179 X +0.0 10 10 f.R ft(balked)s +2478 X(if)s +2572 X(you)s +2755 X(didn't)s +3026 X(specify)s +3346 X(a)s +3422 X(search)s +3708 X(string)s +3968 X(or)s +4083 X(a)s +4159 X(date/time)s +4563 X(constraint.)s +5039 X(The)s +514 X +5022 Y +874 X(current)s +1181 X(version)s +1500 X(does)s +1708 X(not,)s +1886 X(and)s +2055 X(merely)s +2357 X(matches)s +2709 X(the)s +2856 X(messages)s +3258 X(you)s +3433 X(specify.)s +3796 X(This)s +3999 X(lets)s +4163 X(you)s +4338 X(type)s +4535 X(something)s +4977 X(like:)s +514 X +5262 Y +1234 X(show)s +1495 X(`pick)s +1750 X(last:20)s +2067 X(\261seq)s +2300 X(fear`)s +514 X +5502 Y +874 X(instead)s +1182 X(of)s +1290 X(typing)s +514 X +5742 Y +1234 X(mark)s +1489 X(\261add)s +1733 X(\261nozero)s +2104 X(\261seq)s +2337 X(fear)s +2541 X(last:20)s +514 X +5862 Y +1234 X(show)s +1495 X(fear)s +514 X +6102 Y +874 X(Finally,)s +1208 X(timezones)s +1638 X(used)s +1846 X(to)s +1949 X(be)s +2068 X(ignored)s +2398 X(when)s +2639 X(comparing)s +3091 X(dates:)s +3349 X(they)s +3546 X(aren't)s +3803 X(any)s +3972 X(more.)s +514 X +6342 Y +0.0 8 8 f.B ft(Helpful)s +791 X(Hints)s +514 X +6582 Y +874 X +0.0 10 10 f.R ft(Use)s +1054 X(``pick)s +1317 X(sequence)s +1707 X(\261list'')s +1971 X(to)s +2074 X(enumerate)s +2514 X(the)s +2661 X(messages)s +3063 X(in)s +3166 X(a)s +3235 X(sequence)s +3625 X(\(such)s +3866 X(as)s +3974 X(for)s +4115 X(use)s +4273 X(by)s +4398 X(a)s +4467 X(shell)s +4681 X(script\).)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 72 73 + +514 X +600 Y(PICK\(1\))s +2771 X(-72-)s +4828 X(PICK\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(The)s +1061 X(argument)s +1470 X(to)s +1580 X(the)s +1734 X(`\261after')s +2063 X(and)s +2238 X(`\261before')s +2639 X(switches)s +3014 X(must)s +3240 X(be)s +3365 X(interpreted)s +3828 X(as)s +3942 X(a)s +4017 X(single)s +4287 X(token)s +4540 X(by)s +4671 X(the)s +4824 X(shell)s +5044 X(that)s +514 X +1200 Y +874 X(invokes)s +1211 X +0.0 10 10 f.I ft(pick)s +0.0 10 10 f.R ft(.)s +1453 X(Therefore,)s +1896 X(one)s +2066 X(must)s +2287 X(usually)s +2602 X(place)s +2837 X(the)s +2984 X(argument)s +3386 X(to)s +3489 X(this)s +3659 X(switch)s +3945 X(inside)s +4209 X(double\261quotes.)s +4867 X(Further-)s +514 X +1320 Y +874 X(more,)s +1129 X(any)s +1298 X(occurance)s +1726 X(of)s +1834 X(`\261date\256eld')s +2319 X(must)s +2539 X(occur)s +2785 X(prior)s +3004 X(to)s +3107 X(the)s +3254 X(`\261after')s +3577 X(or)s +3685 X(`\261before')s +4080 X(switch)s +4366 X(it)s +4447 X(applies)s +4755 X(to.)s +514 X +1560 Y +874 X(If)s +965 X +0.0 10 10 f.I ft(pick)s +1156 X +0.0 10 10 f.R ft(is)s +1248 X(used)s +1456 X(in)s +1559 X(a)s +1628 X(back\261quoted)s +2163 X(operation,)s +2590 X(such)s +2798 X(as)s +514 X +1800 Y +1234 X(scan)s +1461 X(`pick)s +1716 X(\261from)s +2010 X(jones`)s +514 X +2040 Y +874 X(and)s +1053 X +0.0 10 10 f.I ft(pick)s +1254 X +0.0 10 10 f.R ft(selects)s +1555 X(no)s +1690 X(messages)s +2102 X(\(e.g.,)s +2339 X(no)s +2474 X(messages)s +2886 X(are)s +3042 X(from)s +3271 X(``jones''\),)s +3706 X(then)s +3912 X(the)s +4068 X(shell)s +4291 X(will)s +4481 X(still)s +4666 X(run)s +4833 X(the)s +4989 X(outer)s +514 X +2160 Y +874 X(command)s +1305 X(\(e.g.,)s +1544 X(``scan''\).)s +1973 X(Since)s +2232 X(no)s +2369 X(messages)s +2783 X(were)s +3013 X(matched,)s +3413 X +0.0 10 10 f.I ft(pick)s +3616 X +0.0 10 10 f.R ft(produced)s +4024 X(no)s +4161 X(output,)s +4479 X(and)s +4659 X(the)s +4817 X(argument)s +514 X +2280 Y +874 X(given)s +1133 X(to)s +1248 X(the)s +1407 X(outer)s +1649 X(command)s +2080 X(as)s +2200 X(a)s +2281 X(result)s +2540 X(of)s +2660 X(backquoting)s +3191 X +0.0 10 10 f.I ft(pick)s +3394 X +0.0 10 10 f.R ft(is)s +3498 X(empty.)s +3835 X(In)s +3955 X(the)s +4114 X(case)s +4322 X(of)s +4442 X +0.0 10 10 f.I ft(MH)s +4634 X +0.0 10 10 f.R ft(programs,)s +5072 X(the)s +514 X +2400 Y +874 X(outer)s +1106 X(command)s +1527 X(now)s +1726 X(acts)s +1908 X(as)s +2018 X(if)s +2106 X(the)s +2255 X(default)s +2559 X(`msg')s +2819 X(or)s +2929 X(`msgs')s +3228 X(should)s +3522 X(be)s +3643 X(used)s +3853 X(\(e.g.,)s +4082 X(``all'')s +4341 X(in)s +4446 X(the)s +4595 X(case)s +4793 X(of)s +4903 X +0.0 10 10 f.I ft(scan)s +5136 X +0.0 10 10 f.R ft(\).)s +514 X +2520 Y +874 X(To)s +1019 X(prevent)s +1352 X(this)s +1531 X(unexpected)s +2019 X(behavior,)s +2427 X(if)s +2522 X(`\261list')s +2794 X(was)s +2982 X(given,)s +3262 X(and)s +3439 X(if)s +3533 X(its)s +3661 X(standard)s +4032 X(output)s +4321 X(is)s +4421 X(not)s +4582 X(a)s +4659 X(tty,)s +4823 X(then)s +5028 X +0.0 10 10 f.I ft(pick)s +514 X +2640 Y +874 X +0.0 10 10 f.R ft(outputs)s +1194 X(the)s +1341 X(illegal)s +1616 X(message)s +1979 X(number)s +2309 X(``0'')s +2516 X(when)s +2757 X(it)s +2838 X(fails.)s +3085 X(This)s +3288 X(lets)s +3452 X(the)s +3599 X(outer)s +3829 X(command)s +4248 X(fail)s +4406 X(gracefully)s +4835 X(as)s +4943 X(well.)s +514 X +2880 Y +874 X(The)s +1062 X(pattern)s +1372 X(syntax)s +1666 X(``[l-r]'')s +1991 X(is)s +2091 X(not)s +2252 X(supported;)s +2706 X(each)s +2920 X(letter)s +3157 X(to)s +3267 X(be)s +3393 X(matched)s +3763 X(must)s +3990 X(be)s +4116 X(included)s +4492 X(within)s +4780 X(the)s +4934 X(square)s +514 X +3000 Y +874 X(brackets.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 73 74 + +514 X +600 Y(PREV\(1\))s +2771 X(-73-)s +4806 X(PREV\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(prev)s +1076 X(\261)s +1151 X(show)s +1387 X(the)s +1534 X(previous)s +1903 X(message)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(prev)s +1076 X([+folder])s +1461 X([\261header])s +1867 X([\261noheader])s +2373 X([\261showproc program])s +3265 X([\261noshowproc])s +3894 X([\261switches for )s +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(])s +514 X +1560 Y +1234 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Prev)s +1089 X +0.0 10 10 f.R ft(performs)s +1476 X(a)s +1547 X +0.0 10 10 f.I ft(show)s +1780 X +0.0 10 10 f.R ft(on)s +1907 X(the)s +2056 X(previous)s +2427 X(message)s +2791 X(in)s +2895 X(the)s +3043 X(speci\256ed)s +3424 X(\(or)s +3566 X(current\))s +3907 X(folder.)s +4221 X(Like)s +4430 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +4687 X(it)s +4769 X(passes)s +5050 X(any)s +514 X +2160 Y +874 X(switches)s +1257 X(on)s +1396 X(to)s +1513 X(the)s +1674 X(program)s +2051 X(named)s +2356 X(by)s +2495 X +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(,)s +2948 X(which)s +3231 X(is)s +3337 X(called)s +3614 X(to)s +3731 X(list)s +3893 X(the)s +4053 X(message.)s +4479 X(This)s +4695 X(command)s +5127 X(is)s +514 X +2280 Y +874 X(almost)s +1166 X(exactly)s +1479 X(equivalent)s +1920 X(to)s +2023 X(``show)s +2325 X(prev''.)s +2643 X(Consult)s +2980 X(the)s +3127 X(manual)s +3446 X(entry)s +3676 X(for)s +3817 X +0.0 10 10 f.I ft(show)s +4073 X +0.0 10 10 f.R ft(\(1\))s +4214 X(for)s +4355 X(all)s +4480 X(the)s +4627 X(details.)s +514 X +2442 Y +0.0 8 8 f.B ft(Files)s +514 X +2562 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +2766 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +2886 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3006 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +3126 Y +874 X(showproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(show)s +2498 X(the)s +2645 X(message)s +514 X +3330 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3450 Y +874 X +0.0 10 10 f.R ft(show\(1\),)s +1251 X(next\(1\))s +514 X +3654 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3774 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +3894 Y +874 X(`\261header')s +514 X +4098 Y +0.0 8 8 f.B ft(Context)s +514 X +4218 Y +874 X +0.0 10 10 f.R ft(If)s +967 X(a)s +1038 X(folder)s +1303 X(is)s +1397 X(speci\256ed,)s +1804 X(it)s +1887 X(will)s +2069 X(become)s +2405 X(the)s +2553 X(current)s +2861 X(folder.)s +3175 X(The)s +3356 X(message)s +3720 X(that)s +3896 X(is)s +3989 X(shown)s +4276 X(\(i.e.,)s +4482 X(the)s +4630 X(previous)s +5000 X(mes-)s +514 X +4338 Y +874 X(sage)s +1076 X(in)s +1179 X(sequence\))s +1602 X(will)s +1783 X(become)s +2118 X(the)s +2265 X(current)s +2572 X(message.)s +514 X +4542 Y +0.0 8 8 f.B ft(Bugs)s +514 X +4662 Y +874 X +0.0 10 10 f.I ft(prev)s +1080 X +0.0 10 10 f.R ft(is)s +1176 X(really)s +1432 X(a)s +1505 X(link)s +1690 X(to)s +1797 X(the)s +1948 X +0.0 10 10 f.I ft(show)s +2183 X +0.0 10 10 f.R ft(program.)s +2600 X(As)s +2740 X(a)s +2813 X(result,)s +3089 X(if)s +3179 X(you)s +3358 X(make)s +3603 X(a)s +3676 X(link)s +3860 X(to)s +3966 X +0.0 10 10 f.I ft(prev)s +4171 X +0.0 10 10 f.R ft(and)s +4343 X(that)s +4521 X(link)s +4705 X(is)s +4800 X(not)s +4956 X(called)s +514 X +4782 Y +874 X +0.0 10 10 f.I ft(prev)s +0.0 10 10 f.R ft(,)s +1107 X(your)s +1321 X(link)s +1508 X(will)s +1695 X(act)s +1841 X(like)s +2021 X +0.0 10 10 f.I ft(show)s +2257 X +0.0 10 10 f.R ft(instead.)s +2620 X(To)s +2761 X(circumvent)s +3240 X(this,)s +3440 X(add)s +3614 X(a)s +3688 X(pro\256le\261entry)s +4234 X(for)s +4380 X(the)s +4532 X(link)s +4718 X(to)s +4826 X(your)s +5039 X +0.0 10 10 f.I ft(MH)s +514 X +4902 Y +874 X +0.0 10 10 f.R ft(pro\256le)s +1160 X(and)s +1329 X(add)s +1498 X(the)s +1645 X(argument)s +2047 X +0.0 10 10 f.I ft(prev)s +2249 X +0.0 10 10 f.R ft(to)s +2352 X(the)s +2499 X(entry.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 74 75 + +514 X +600 Y(PROMPTER\(1\))s +2771 X(-74-)s +4506 X(PROMPTER\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(prompter)s +1265 X(\261)s +1340 X(prompting)s +1782 X(editor)s +2040 X(front-end)s +2436 X(for)s +2577 X(MH)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(prompter)s +1265 X([\261erase chr])s +1762 X([\261kill chr])s +2189 X([\261prepend])s +2651 X([\261noprepend])s +3213 X([\261rapid])s +3559 X([\261norapid])s +4005 X([\261doteof])s +4401 X([\261nodoteof])s +4897 X(\256le)s +514 X +1560 Y +1234 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.R ft(This)s +1079 X(program)s +1444 X(is)s +1538 X(normally)s +1926 X(not)s +2081 X(invoked)s +2430 X(directly)s +2762 X(by)s +2889 X(users)s +3121 X(but)s +3276 X(takes)s +3508 X(the)s +3657 X(place)s +3893 X(of)s +4002 X(an)s +4122 X(editor)s +4381 X(and)s +4551 X(acts)s +4732 X(as)s +4841 X(an)s +4961 X(editor)s +514 X +2160 Y +874 X(front\261end.)s +1338 X(It)s +1425 X(operates)s +1783 X(on)s +1909 X(an)s +2029 X(822\261style)s +2444 X(message)s +2808 X(draft)s +3021 X(skeleton)s +3379 X(speci\256ed)s +3759 X(by)s +3884 X(\256le,)s +4062 X(normally)s +4448 X(provided)s +4828 X(by)s +4953 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +514 X +2280 Y +874 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +1069 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +1303 X(or)s +1411 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(.)s +514 X +2520 Y +874 X +0.0 10 10 f.I ft(Prompter)s +1285 X +0.0 10 10 f.R ft(is)s +1380 X(an)s +1502 X(editor)s +1763 X(which)s +2035 X(allows)s +2324 X(rapid)s +2557 X(composition)s +3080 X(of)s +3191 X(messages.)s +3646 X(It)s +3735 X(is)s +3830 X(particularly)s +4318 X(useful)s +4590 X(to)s +4696 X(network)s +5050 X(and)s +514 X +2640 Y +874 X(low\261speed)s +1328 X(\(less)s +1538 X(than)s +1737 X(2400)s +1964 X(baud\))s +2218 X(users)s +2450 X(of)s +2560 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +2792 X(It)s +2880 X(is)s +2974 X(an)s +3095 X +0.0 10 10 f.I ft(MH)s +3277 X +0.0 10 10 f.R ft(program)s +3642 X(in)s +3747 X(that)s +3923 X(it)s +4005 X(can)s +4169 X(have)s +4383 X(its)s +4504 X(own)s +4702 X(pro\256le)s +4989 X(entry)s +514 X +2760 Y +874 X(with)s +1083 X(switches,)s +1483 X(but)s +1642 X(it)s +1729 X(is)s +1826 X(not)s +1984 X(invoked)s +2336 X(directly)s +2671 X(by)s +2801 X(the)s +2953 X(user.)s +3199 X(The)s +3384 X(commands)s +3847 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +4118 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +4318 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +4557 X(and)s +4731 X +0.0 10 10 f.I ft(repl)s +4922 X +0.0 10 10 f.R ft(invoke)s +514 X +2880 Y +874 X +0.0 10 10 f.I ft(prompter)s +1326 X +0.0 10 10 f.R ft(as)s +1489 X(an)s +1663 X(editor,)s +2001 X(either)s +2308 X(when)s +2604 X(invoked)s +3006 X(with)s +3263 X(`\261editor prompter',)s +4107 X(or)s +4269 X(by)s +4448 X(the)s +4649 X(pro\256le)s +4989 X(entry)s +514 X +3000 Y +874 X(``Editor: prompter'',)s +1725 X(or)s +1833 X(when)s +2074 X(given)s +2321 X(the)s +2468 X(command)s +2887 X(`edit prompter')s +3519 X(at)s +3616 X(``What)s +3923 X(now?'')s +4230 X(level.)s +514 X +3240 Y +874 X(For)s +1041 X(each)s +1251 X(empty)s +1529 X(component)s +2001 X +0.0 10 10 f.I ft(prompter)s +2401 X +0.0 10 10 f.R ft(\256nds)s +2624 X(in)s +2730 X(the)s +2879 X(draft,)s +3119 X(the)s +3268 X(user)s +3461 X(is)s +3555 X(prompted)s +3965 X(for)s +4108 X(a)s +4179 X(response;)s +4583 X(A)s +4682 X()s +514 X +3360 Y +874 X(will)s +1060 X(cause)s +1311 X(the)s +1463 X(whole)s +1737 X(component)s +2211 X(to)s +2319 X(be)s +2443 X(left)s +2606 X(out.)s +2814 X(Otherwise,)s +3279 X(a)s +3353 X(`\\')s +3477 X(preceding)s +3900 X(a)s +3973 X()s +4514 X(will)s +4699 X(continue)s +5072 X(the)s +514 X +3480 Y +874 X(response)s +1254 X(on)s +1385 X(the)s +1538 X(next)s +1740 X(line,)s +1945 X(allowing)s +2325 X(for)s +2471 X(multiline)s +2863 X(components.)s +3426 X(Continuation)s +3979 X(lines)s +4198 X +0.0 10 10 f.B ft(must)s +4439 X +0.0 10 10 f.R ft(begin)s +4691 X(with)s +4899 X(a)s +4973 X(space)s +514 X +3600 Y +874 X(or)s +982 X(tab.)s +514 X +3840 Y +874 X(Each)s +1098 X(non\261empty)s +1573 X(component)s +2042 X(is)s +2134 X(copied)s +2425 X(to)s +2528 X(the)s +2675 X(draft)s +2888 X(and)s +3057 X(displayed)s +3465 X(on)s +3590 X(the)s +3737 X(terminal.)s +514 X +4080 Y +874 X(The)s +1058 X(start)s +1259 X(of)s +1371 X(the)s +1522 X(message)s +1889 X(body)s +2118 X(is)s +2214 X(denoted)s +2558 X(by)s +2686 X(a)s +2758 X(blank)s +3008 X(line)s +3186 X(or)s +3297 X(a)s +3369 X(line)s +3547 X(of)s +3658 X(dashes.)s +4002 X(If)s +4096 X(the)s +4246 X(body)s +4474 X(is)s +4569 X(non\261empty,)s +5072 X(the)s +514 X +4200 Y +874 X(prompt,)s +1213 X(which)s +1482 X(isn't)s +1685 X(written)s +1993 X(to)s +2096 X(the)s +2243 X(\256le,)s +2421 X(is)s +514 X +4440 Y +974 X(``--------Enter)s +1545 X(additional)s +1970 X(text'',)s +514 X +4680 Y +874 X(or)s +982 X(\(if)s +1101 X(`\261prepend')s +1563 X(was)s +1743 X(given\))s +514 X +4920 Y +974 X(``--------Enter)s +1545 X(initial)s +1804 X(text''.)s +514 X +5160 Y +874 X(Message\261body)s +1507 X(typing)s +1797 X(is)s +1898 X(terminated)s +2359 X(with)s +2571 X(an)s +2699 X(end\261of\261\256le)s +3188 X(\(usually)s +3544 X(CTRL\261D\).)s +4039 X(With)s +4272 X(the)s +4427 X(`\261doteof')s +4831 X(switch,)s +5150 X(a)s +514 X +5280 Y +874 X(period)s +1161 X(on)s +1293 X(a)s +1369 X(line)s +1551 X(all)s +1683 X(by)s +1815 X(itself)s +2047 X(also)s +2240 X(signi\256es)s +2606 X(end\261of\261\256le.)s +3143 X(At)s +3275 X(this)s +3451 X(point)s +3688 X(control)s +4002 X(is)s +4100 X(returned)s +4463 X(to)s +4572 X(the)s +4725 X(calling)s +5028 X(pro-)s +514 X +5400 Y +874 X(gram,)s +1129 X(where)s +1397 X(the)s +1544 X(user)s +1735 X(is)s +1827 X(asked)s +2079 X(``What)s +2386 X(now?''.)s +2743 X(See)s +2912 X +0.0 10 10 f.I ft(whatnow)s +3299 X +0.0 10 10 f.R ft(for)s +3440 X(the)s +3587 X(valid)s +3812 X(options)s +4132 X(to)s +4235 X(this)s +4405 X(query.)s +514 X +5640 Y +874 X(By)s +1025 X(using)s +1276 X(the)s +1431 X(`\261prepend')s +1901 X(switch,)s +2220 X(the)s +2375 X(user)s +2574 X(can)s +2745 X(add)s +2922 X(type\261in)s +3255 X(to)s +3366 X(the)s +3521 X(beginning)s +3954 X(of)s +4070 X(the)s +4225 X(message)s +4596 X(body)s +4829 X(and)s +5006 X(have)s +514 X +5760 Y +874 X(the)s +1021 X(rest)s +1190 X(of)s +1298 X(the)s +1445 X(body)s +1670 X(follow.)s +2006 X(This)s +2209 X(is)s +2301 X(useful)s +2570 X(for)s +2711 X(the)s +2858 X +0.0 10 10 f.I ft(forw)s +3067 X +0.0 10 10 f.R ft(command.)s +514 X +6000 Y +874 X(By)s +1023 X(using)s +1272 X(the)s +1426 X(`\261rapid')s +1779 X(switch,)s +2097 X(if)s +2189 X(the)s +2342 X(draft)s +2561 X(already)s +2885 X(contains)s +3249 X(text)s +3430 X(in)s +3539 X(the)s +3692 X(message\261body,)s +4336 X(it)s +4423 X(is)s +4521 X(not)s +4680 X(displayed)s +5094 X(on)s +514 X +6120 Y +874 X(the)s +1021 X(user's)s +1284 X(terminal.)s +1692 X(This)s +1895 X(is)s +1987 X(useful)s +2256 X(for)s +2397 X(low\261speed)s +2849 X(terminals.)s +514 X +6360 Y +874 X(The)s +1058 X(line)s +1237 X(editing)s +1544 X(characters)s +1976 X(for)s +2121 X(kill)s +2284 X(and)s +2457 X(erase)s +2690 X(may)s +2891 X(be)s +3014 X(speci\256ed)s +3398 X(by)s +3527 X(the)s +3678 X(user)s +3873 X(via)s +4024 X(the)s +4175 X(arguments)s +4620 X(`\261kill chr')s +5050 X(and)s +514 X +6480 Y +874 X(`\261erase chr',)s +1396 X(where)s +1664 X(chr)s +1816 X(may)s +2013 X(be)s +2132 X(a)s +2201 X(character;)s +2618 X(or)s +2726 X(`\\nnn',)s +3020 X(where)s +3288 X(``nnn'')s +3595 X(is)s +3687 X(the)s +3834 X(octal)s +4053 X(value)s +4294 X(for)s +4435 X(the)s +4582 X(character.)s +514 X +6720 Y +874 X(An)s +1030 X(interrupt)s +1408 X(\(usually)s +1764 X(CTRL\261C\))s +2204 X(during)s +2499 X(component)s +2976 X(typing)s +3265 X(will)s +3454 X(abort)s +3692 X +0.0 10 10 f.I ft(prompter)s +4097 X +0.0 10 10 f.R ft(and)s +4274 X(the)s +4429 X +0.0 10 10 f.I ft(MH)s +4617 X +0.0 10 10 f.R ft(command)s +5044 X(that)s +514 X +6840 Y +874 X(invoked)s +1238 X(it.)s +1386 X(An)s +1550 X(interrupt)s +1936 X(during)s +2239 X(message\261body)s +2869 X(typing)s +3167 X(is)s +3276 X(equivalent)s +3734 X(to)s +3854 X(CTRL\261D,)s +4299 X(for)s +4457 X(historical)s +4870 X(reasons.)s +514 X +6960 Y +874 X(This)s +1077 X(means)s +1357 X(that)s +1532 X +0.0 10 10 f.I ft(prompter)s +1929 X +0.0 10 10 f.R ft(should)s +2221 X(\256nish)s +2469 X(up)s +2594 X(and)s +2763 X(exit.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 75 76 + +514 X +600 Y(PROMPTER\(1\))s +2771 X(-75-)s +4506 X(PROMPTER\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(The)s +1067 X(\256rst)s +1261 X(non\261\257ag)s +1649 X(argument)s +2064 X(to)s +2180 X +0.0 10 10 f.I ft(prompter)s +2590 X +0.0 10 10 f.R ft(is)s +2695 X(taken)s +2949 X(as)s +3070 X(the)s +3230 X(name)s +3484 X(of)s +3605 X(the)s +3765 X(draft)s +3991 X(\256le,)s +4182 X(and)s +4363 X(subsequent)s +4844 X(non\261\257ag)s +514 X +1080 Y +874 X(arguments)s +1315 X(are)s +1461 X(ignored.)s +514 X +1242 Y +0.0 8 8 f.B ft(Files)s +514 X +1362 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +1482 Y +874 X(/tmp/prompter*)s +2463 X(Temporary)s +2931 X(copy)s +3150 X(of)s +3258 X(message)s +514 X +1686 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1806 Y +874 X +0.0 10 10 f.R ft(prompter\261next:)s +1790 X(To)s +1926 X(name)s +2167 X(the)s +2314 X(editor)s +2572 X(to)s +2675 X(be)s +2794 X(used)s +3002 X(on)s +3127 X(exit)s +3302 X(from)s +3521 X +0.0 10 10 f.I ft(prompter)s +514 X +1926 Y +874 X +0.0 10 10 f.R ft(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(draft)s +514 X +2130 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2250 Y +874 X +0.0 10 10 f.R ft(comp\(1\),)s +1262 X(dist\(1\),)s +1573 X(forw\(1\),)s +1927 X(repl\(1\),)s +2248 X(whatnow\(1\))s +514 X +2454 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2574 Y +874 X +0.0 10 10 f.R ft(`\261prepend')s +514 X +2694 Y +874 X(`\261norapid')s +514 X +2814 Y +874 X(`\261nodoteof')s +514 X +3018 Y +0.0 8 8 f.B ft(Context)s +514 X +3138 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3378 Y +0.0 8 8 f.B ft(Helpful)s +791 X(Hints)s +514 X +3618 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X(`\261rapid')s +1400 X(option)s +1681 X(is)s +1773 X(particularly)s +2258 X(useful)s +2527 X(with)s +2730 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2964 X(and)s +3133 X(`\261noprepend')s +3695 X(is)s +3787 X(useful)s +4056 X(with)s +4259 X +0.0 10 10 f.I ft(comp)s +4500 X(\261use)s +0.0 10 10 f.R ft(.)s +514 X +3858 Y +874 X(The)s +1061 X(user)s +1259 X(may)s +1463 X(wish)s +1684 X(to)s +1794 X(link)s +1982 X +0.0 10 10 f.I ft(prompter)s +2386 X +0.0 10 10 f.R ft(under)s +2645 X(several)s +2958 X(names)s +3244 X(\(e.g.,)s +3477 X(``rapid''\))s +3878 X(and)s +4053 X(give)s +4256 X(appropriate)s +4741 X(switches)s +5116 X(in)s +514 X +3978 Y +874 X(the)s +1027 X(pro\256le)s +1319 X(entries)s +1615 X(under)s +1872 X(these)s +2107 X(names)s +2392 X(\(e.g.,)s +2624 X(``rapid:)s +2953 X(-rapid''\).)s +3370 X(This)s +3578 X(facilitates)s +3996 X(invoking)s +4382 X(prompter)s +4778 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erently)s +514 X +4098 Y +874 X(for)s +1015 X(di)s +Cff(erent)s +1378 X +0.0 10 10 f.I ft(MH)s +1558 X +0.0 10 10 f.R ft(commands)s +2016 X(\(e.g.,)s +2243 X(``forw:)s +2550 X(-editor)s +2841 X(rapid''\).)s +514 X +4302 Y +0.0 8 8 f.B ft(Bugs)s +514 X +4422 Y +874 X +0.0 10 10 f.I ft(Prompter)s +1282 X +0.0 10 10 f.R ft(uses)s +1479 X +0.0 10 10 f.I ft(stdio)s +1724 X +0.0 10 10 f.R ft(\(3\),)s +1890 X(so)s +2004 X(it)s +2085 X(will)s +2266 X(lose)s +2452 X(if)s +2538 X(you)s +2713 X(edit)s +2888 X(\256les)s +3080 X(with)s +3283 X(nulls)s +3503 X(in)s +3606 X(them.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 76 77 + +514 X +600 Y(RCVSTORE\(1\))s +2771 X(-76-)s +4522 X(RCVSTORE\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(rcvstore)s +1220 X(\261)s +1295 X(incorporate)s +1774 X(new)s +1965 X(mail)s +2168 X(asynchronously)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/rcvstore)s +2004 X([+folder])s +2389 X([\261create])s +2767 X([\261nocreate])s +3245 X([\261sequence name ...])s +4092 X([\261public])s +4483 X([\261nopublic])s +514 X +1560 Y +1234 X([\261zero])s +1546 X([\261nozero])s +1958 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Rcvstore)s +1256 X +0.0 10 10 f.R ft(incorporates)s +1782 X(a)s +1859 X(message)s +2229 X(from)s +2455 X(the)s +2609 X(standard)s +2979 X(input)s +3217 X(into)s +3405 X(an)s +3531 X +0.0 10 10 f.I ft(MH)s +3718 X +0.0 10 10 f.R ft(folder.)s +4038 X(If)s +4136 X(`+folder')s +4528 X(isn't)s +4738 X(speci\256ed,)s +5150 X(a)s +514 X +2160 Y +874 X(folder)s +1150 X(in)s +1266 X(the)s +1426 X(user's)s +1702 X +0.0 10 10 f.I ft(MH)s +1895 X +0.0 10 10 f.R ft(directory)s +2293 X(will)s +2487 X(be)s +2619 X(used,)s +2865 X(either)s +3130 X(that)s +3318 X(speci\256ed)s +3711 X(by)s +3849 X(the)s +4009 X(``Inbox:'')s +4440 X(entry)s +4682 X(in)s +4797 X(the)s +4956 X(user's)s +514 X +2280 Y +874 X(pro\256le,)s +1196 X(or)s +1315 X(the)s +1473 X(folder)s +1747 X(named)s +2049 X(``inbox''.)s +2495 X(The)s +2686 X(new)s +2888 X(message)s +3262 X(being)s +3520 X(incorporated)s +4060 X(is)s +4162 X(assigned)s +4541 X(the)s +4698 X(next)s +4905 X(highest)s +514 X +2400 Y +874 X(number)s +1206 X(in)s +1311 X(the)s +1460 X(folder.)s +1775 X(If)s +1868 X(the)s +2017 X(speci\256ed)s +2399 X(\(or)s +2542 X(default\))s +2879 X(folder)s +3144 X(doesn't)s +3465 X(exist,)s +3706 X(then)s +3905 X(it)s +3988 X(will)s +4171 X(be)s +4292 X(created)s +4606 X(if)s +4693 X(the)s +4841 X(`\261create')s +514 X +2520 Y +874 X(option)s +1155 X(is)s +1247 X(speci\256ed,)s +1652 X(otherwise)s +2065 X +0.0 10 10 f.I ft(rcvstore)s +2417 X +0.0 10 10 f.R ft(will)s +2598 X(exit.)s +514 X +2760 Y +874 X(If)s +976 X(the)s +1134 X(user's)s +1408 X(pro\256le)s +1705 X(contains)s +2074 X(a)s +2154 X(``Msg\261Protect:)s +2795 X(nnn'')s +3047 X(entry,)s +3313 X(it)s +3405 X(will)s +3596 X(be)s +3725 X(used)s +3943 X(as)s +4061 X(the)s +4218 X(protection)s +4658 X(on)s +4793 X(the)s +4950 X(newly)s +514 X +2880 Y +874 X(created)s +1191 X(messages,)s +1623 X(otherwise)s +2041 X(the)s +2193 X +0.0 10 10 f.I ft(MH)s +2378 X +0.0 10 10 f.R ft(default)s +2685 X(of)s +2798 X(0644)s +3028 X(will)s +3214 X(be)s +3338 X(used.)s +3601 X(During)s +3914 X(all)s +4044 X(operations)s +4489 X(on)s +4618 X(messages,)s +5049 X(this)s +514 X +3000 Y +874 X(initially)s +1217 X(assigned)s +1592 X(protection)s +2028 X(will)s +2215 X(be)s +2340 X(preserved)s +2758 X(for)s +2905 X(each)s +3118 X(message,)s +3512 X(so)s +3632 X +0.0 10 10 f.I ft(chmod)s +0.0 10 10 f.R ft(\(1\))s +4045 X(may)s +4248 X(be)s +4373 X(used)s +4587 X(to)s +4696 X(set)s +4838 X(a)s +4912 X(protec-)s +514 X +3120 Y +874 X(tion)s +1055 X(on)s +1180 X(an)s +1299 X(individual)s +1730 X(message,)s +2118 X(and)s +2287 X(its)s +2407 X(protection)s +2837 X(will)s +3018 X(be)s +3137 X(preserved)s +3549 X(thereafter.)s +514 X +3360 Y +874 X +0.0 10 10 f.I ft(Rcvstore)s +1248 X +0.0 10 10 f.R ft(will)s +1429 X(incorporate)s +1908 X(anything)s +2283 X(except)s +2568 X(zero)s +2764 X(length)s +3039 X(messages)s +3441 X(into)s +3622 X(the)s +3769 X(user's)s +4032 X(MH)s +4218 X(folder.)s +514 X +3600 Y +874 X(If)s +969 X(the)s +1120 X(pro\256le)s +1410 X(entry)s +1644 X(``Unseen\261Sequence'')s +2536 X(is)s +2632 X(present)s +2948 X(and)s +3120 X(non\261empty,)s +3623 X(then)s +3823 X +0.0 10 10 f.I ft(rcvstore)s +4178 X +0.0 10 10 f.R ft(will)s +4362 X(add)s +4534 X(the)s +4684 X(newly)s +4956 X(incor-)s +514 X +3720 Y +874 X(porated)s +1201 X(message)s +1567 X(to)s +1673 X(each)s +1883 X(sequence)s +2276 X(named)s +2570 X(by)s +2698 X(the)s +2848 X(pro\256le)s +3137 X(entry.)s +3420 X(This)s +3626 X(is)s +3721 X(similar)s +4026 X(to)s +4131 X(the)s +4280 X(``Previous\261Sequence'')s +514 X +3840 Y +874 X(pro\256le)s +1171 X(entry)s +1412 X(supported)s +1842 X(by)s +1978 X(all)s +2114 X +0.0 10 10 f.I ft(MH)s +2305 X +0.0 10 10 f.R ft(commands)s +2774 X(which)s +3054 X(take)s +3256 X(`msgs')s +3564 X(or)s +3683 X(`msg')s +3952 X(arguments.)s +4453 X(Note)s +4682 X(that)s +4867 X +0.0 10 10 f.I ft(rcvstore)s +514 X +3960 Y +874 X +0.0 10 10 f.R ft(will)s +1055 X(not)s +1208 X(zero)s +1404 X(each)s +1611 X(sequence)s +2001 X(prior)s +2220 X(to)s +2323 X(adding)s +2620 X(messages.)s +514 X +4200 Y +874 X(Furthermore,)s +1427 X(the)s +1578 X(incoming)s +1985 X(messages)s +2391 X(may)s +2592 X(be)s +2715 X(added)s +2982 X(to)s +3088 X(user-de\256ned)s +3609 X(sequences)s +4041 X(as)s +4152 X(they)s +4352 X(arrive)s +4612 X(by)s +4740 X(appropriate)s +514 X +4320 Y +874 X(use)s +1037 X(of)s +1150 X(the)s +1302 X(`\261sequence')s +1813 X(option.)s +2149 X(As)s +2290 X(with)s +2498 X +0.0 10 10 f.I ft(pick)s +0.0 10 10 f.R ft(,)s +2719 X(use)s +2882 X(of)s +2995 X(the)s +3146 X(`\261zero')s +3462 X(and)s +3635 X(`\261nozero')s +4051 X(switches)s +4424 X(can)s +4591 X(also)s +4781 X(be)s +4904 X(used)s +5116 X(to)s +514 X +4440 Y +874 X(zero)s +1081 X(old)s +1245 X(sequences)s +1685 X(or)s +1804 X(not.)s +2018 X(Similarly,)s +2452 X(use)s +2621 X(of)s +2739 X(the)s +2896 X(`\261public')s +3297 X(and)s +3476 X(`\261nopublic)s +3944 X(switches)s +4323 X(may)s +4530 X(be)s +4659 X(used)s +4877 X(to)s +4990 X(force)s +514 X +4560 Y +874 X(additions)s +1266 X(to)s +1369 X(public)s +1644 X(and)s +1813 X(private)s +2115 X(sequences.)s +514 X +4722 Y +0.0 8 8 f.B ft(Files)s +514 X +4842 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5046 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +5166 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +5286 Y +874 X(Folder\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(folder)s +514 X +5406 Y +874 X(Inbox:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(inbox)s +514 X +5526 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(message)s +514 X +5646 Y +874 X(Unseen\261Sequence:)s +1790 X(To)s +1926 X(name)s +2167 X(sequences)s +2596 X(denoting)s +2971 X(unseen)s +3273 X(messages)s +514 X +5850 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5970 Y +874 X +0.0 10 10 f.R ft(inc\(1\),)s +1162 X(pick\(1\),)s +1500 X(mh\261mail\(5\))s +514 X +6174 Y +0.0 8 8 f.B ft(Defaults)s +514 X +6294 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(``inbox'')s +514 X +6414 Y +874 X(`\261create')s +514 X +6534 Y +874 X(`\261nopublic')s +1365 X(if)s +1451 X(the)s +1598 X(folder)s +1861 X(is)s +1953 X(read\261only,)s +2402 X(`\261public')s +2793 X(otherwise)s +514 X +6654 Y +874 X(`\261nozero')s +514 X +6858 Y +0.0 8 8 f.B ft(Context)s +514 X +6978 Y +874 X +0.0 10 10 f.R ft(No)s +1021 X(context)s +1340 X(changes)s +1686 X(will)s +1867 X(be)s +1986 X(attempted,)s +2430 X(with)s +2633 X(the)s +2780 X(exception)s +3193 X(of)s +3301 X(sequence)s +3691 X(manipulation.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 77 78 + +514 X +600 Y(RCVSTORE\(1\))s +2771 X(-77-)s +4522 X(RCVSTORE\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(If)s +977 X(you)s +1164 X(use)s +1334 X(the)s +1493 X(``Unseen\261Sequence'')s +2393 X(pro\256le)s +2691 X(entry,)s +2958 X +0.0 10 10 f.I ft(rcvstore)s +3322 X +0.0 10 10 f.R ft(could)s +3581 X(try)s +3729 X(to)s +3844 X(update)s +4147 X(the)s +4306 X(context)s +4637 X(while)s +4895 X(another)s +514 X +1200 Y +874 X +0.0 10 10 f.I ft(MH)s +1058 X +0.0 10 10 f.R ft(process)s +1386 X(is)s +1482 X(also)s +1672 X(trying)s +1940 X(to)s +2047 X(do)s +2176 X(so.)s +2344 X(This)s +2551 X(can)s +2718 X(cause)s +2968 X(the)s +3119 X(context)s +3442 X(to)s +3549 X(become)s +3888 X(corrupted.)s +4349 X(To)s +4489 X(avoid)s +4740 X(this,)s +4938 X(do)s +5066 X(not)s +514 X +1320 Y +874 X(use)s +1032 X +0.0 10 10 f.I ft(rcvstore)s +1384 X +0.0 10 10 f.R ft(if)s +1470 X(you)s +1645 X(use)s +1803 X(the)s +1950 X(``Unseen\261Sequence'')s +2838 X(pro\256le)s +3124 X(entry.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 78 79 + +514 X +600 Y(REFILE\(1\))s +2771 X(-78-)s +4705 X(REFILE\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(re\256le)s +1104 X(\261)s +1179 X(\256le)s +1332 X(message)s +1695 X(in)s +1798 X(other)s +2028 X(folders)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(re\256le)s +1104 X([msgs])s +1401 X([\261draft])s +1730 X([\261link])s +2027 X([\261nolink])s +2424 X([\261preserve])s +2902 X([\261nopreserve])s +3480 X([\261src +folder])s +4056 X([\261\256le \256le])s +4478 X([\261rmmproc)s +4952 X(pro-)s +514 X +1560 Y +1234 X(gram])s +1497 X([\261normmproc])s +2104 X(+folder)s +2423 X(...)s +2548 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Re\256le)s +1130 X +0.0 10 10 f.R ft(moves)s +1420 X(\()s +0.0 10 10 f.I ft(mv)s +1619 X +0.0 10 10 f.R ft(\(1\)\))s +1797 X(or)s +1909 X(links)s +2133 X(\()s +0.0 10 10 f.I ft(ln)s +2294 X +0.0 10 10 f.R ft(\(1\)\))s +2472 X(messages)s +2877 X(from)s +3099 X(a)s +3171 X(source)s +3459 X(folder)s +3725 X(into)s +3909 X(one)s +4081 X(or)s +4192 X(more)s +4425 X(destination)s +4892 X(folders.)s +514 X +2160 Y +874 X(If)s +966 X(you)s +1142 X(think)s +1374 X(of)s +1483 X(a)s +1553 X(message)s +1917 X(as)s +2026 X(a)s +2096 X(sheet)s +2326 X(of)s +2434 X(paper,)s +2705 X(this)s +2875 X(operation)s +3277 X(is)s +3369 X(not)s +3522 X(unlike)s +3797 X(\256ling)s +4034 X(the)s +4181 X(sheet)s +4411 X(of)s +4519 X(paper)s +4765 X(\(or)s +4906 X(copies\))s +514 X +2280 Y +874 X(in)s +981 X(\256le)s +1138 X(cabinet)s +1455 X(folders.)s +1811 X(When)s +2078 X(a)s +2151 X(message)s +2518 X(is)s +2614 X(\256led,)s +2846 X(it)s +2931 X(is)s +3027 X(linked)s +3306 X(into)s +3491 X(the)s +3642 X(destination)s +4110 X(folder\(s\))s +4482 X(if)s +4572 X(possible,)s +4954 X(and)s +5127 X(is)s +514 X +2400 Y +874 X(copied)s +1171 X(otherwise.)s +1640 X(As)s +1782 X(long)s +1991 X(as)s +2105 X(the)s +2258 X(destination)s +2728 X(folders)s +3036 X(are)s +3188 X(all)s +3319 X(on)s +3450 X(the)s +3602 X(same)s +3837 X(\256le)s +3995 X(system,)s +4328 X(multiple)s +4692 X(\256ling)s +4934 X(causes)s +514 X +2520 Y +874 X(little)s +1094 X(storage)s +1418 X(overhead.)s +1869 X(This)s +2083 X(facility)s +2402 X(provides)s +2782 X(a)s +2861 X(good)s +3096 X(way)s +3297 X(to)s +3410 X(cross\261\256le)s +3828 X(or)s +3946 X(multiply\261index)s +4593 X(messages.)s +5055 X(For)s +514 X +2640 Y +874 X(example,)s +1262 X(if)s +1348 X(a)s +1417 X(message)s +1780 X(is)s +1872 X(received)s +2234 X(from)s +2453 X(Jones)s +2700 X(about)s +2947 X(the)s +3094 X(ARPA)s +3386 X(Map)s +3594 X(Project,)s +3927 X(the)s +4074 X(command)s +514 X +2880 Y +999 X(re\256le)s +1254 X(cur)s +1431 X(+jones)s +1748 X(+Map)s +514 X +3120 Y +874 X(would)s +1149 X(allow)s +1396 X(the)s +1543 X(message)s +1906 X(to)s +2009 X(be)s +2128 X(found)s +2386 X(in)s +2489 X(either)s +2741 X(of)s +2849 X(the)s +2996 X(two)s +3171 X(folders)s +3473 X(`jones')s +3775 X(or)s +3883 X(`Map'.)s +514 X +3360 Y +874 X(The)s +1061 X(option)s +1349 X(`\261\256le \256le')s +1778 X(directs)s +2076 X +0.0 10 10 f.I ft(re\256le)s +2313 X +0.0 10 10 f.R ft(to)s +2423 X(use)s +2588 X(the)s +2742 X(speci\256ed)s +3129 X(\256le)s +3289 X(as)s +3403 X(the)s +3556 X(source)s +3847 X(message)s +4216 X(to)s +4325 X(be)s +4450 X(\256led,)s +4684 X(rather)s +4947 X(than)s +5150 X(a)s +514 X +3480 Y +874 X(message)s +1247 X(from)s +1476 X(a)s +1555 X(folder.)s +1878 X(Note)s +2107 X(that)s +2292 X(the)s +2449 X(\256le)s +2612 X(should)s +2914 X(be)s +3043 X(a)s +3122 X(validly)s +3435 X(formatted)s +3858 X(message,)s +4256 X(just)s +4436 X(like)s +4621 X(any)s +4800 X(other)s +5039 X +0.0 10 10 f.I ft(MH)s +514 X +3600 Y +874 X +0.0 10 10 f.R ft(message.)s +1296 X(It)s +1391 X(should)s +1692 X +0.0 10 10 f.B ft(NOT)s +1943 X +0.0 10 10 f.R ft(be)s +2071 X(in)s +2183 X(mail)s +2395 X(drop)s +2612 X(format)s +2912 X(\(to)s +3057 X(convert)s +3389 X(a)s +3466 X(\256le)s +3627 X(in)s +3738 X(mail)s +3949 X(drop)s +4165 X(format)s +4464 X(to)s +4575 X(a)s +4652 X(folder)s +4923 X(of)s +5039 X +0.0 10 10 f.I ft(MH)s +514 X +3720 Y +874 X +0.0 10 10 f.R ft(messages,)s +1301 X(see)s +1453 X +0.0 10 10 f.I ft(inc)s +1625 X +0.0 10 10 f.R ft(\(1\)\).)s +514 X +3960 Y +874 X(If)s +971 X(a)s +1046 X(destination)s +1516 X(folder)s +1785 X(doesn't)s +2110 X(exist,)s +2355 X +0.0 10 10 f.I ft(re\256le)s +2591 X +0.0 10 10 f.R ft(will)s +2778 X(ask)s +2942 X(if)s +3034 X(you)s +3215 X(want)s +3440 X(to)s +3549 X(create)s +3817 X(it.)s +3954 X(A)s +4056 X(negative)s +4424 X(response)s +4803 X(will)s +4989 X(abort)s +514 X +4080 Y +874 X(the)s +1025 X(\256le)s +1182 X(operation.)s +1638 X(If)s +1733 X(the)s +1884 X(standard)s +2251 X(input)s +2486 X(for)s +2631 X +0.0 10 10 f.I ft(re\256le)s +2865 X +0.0 10 10 f.R ft(is)s +2961 X +0.0 10 10 f.I ft(not)s +3118 X +0.0 10 10 f.R ft(a)s +3191 X(tty,)s +3351 X(then)s +3552 X +0.0 10 10 f.I ft(re\256le)s +3786 X +0.0 10 10 f.R ft(will)s +3971 X(not)s +4127 X(ask)s +4288 X(any)s +4460 X(questions)s +4866 X(and)s +5038 X(will)s +514 X +4200 Y +874 X(proceed)s +1214 X(as)s +1322 X(if)s +1408 X(the)s +1555 X(user)s +1746 X(answered)s +2147 X(``yes'')s +2437 X(to)s +2540 X(all)s +2665 X(questions.)s +514 X +4440 Y +874 X(The)s +1056 X(option)s +1339 X(`\261link')s +1638 X(preserves)s +2041 X(the)s +2190 X(source)s +2477 X(folder)s +2742 X(copy)s +2963 X(of)s +3073 X(the)s +3222 X(message)s +3587 X(\(i.e.,)s +3794 X(it)s +3877 X(does)s +4087 X(a)s +4158 X +0.0 10 10 f.I ft(ln)s +0.0 10 10 f.R ft(\(1\))s +4378 X(rather)s +4636 X(than)s +4834 X(a)s +4904 X +0.0 10 10 f.I ft(mv)s +0.0 10 10 f.R ft(\(1\)\),)s +514 X +4560 Y +874 X(whereas,)s +1253 X(`\261nolink')s +1653 X(deletes)s +1958 X(the)s +2108 X(\256led)s +2314 X(messages)s +2719 X(from)s +2941 X(the)s +3091 X(source)s +3379 X(folder.)s +3695 X(Normally,)s +4131 X(when)s +4375 X(a)s +4447 X(message)s +4813 X(is)s +4908 X(\256led,)s +5138 X(it)s +514 X +4680 Y +874 X(is)s +980 X(assigned)s +1363 X(the)s +1524 X(next)s +1735 X(highest)s +2063 X(number)s +2407 X(available)s +2806 X(in)s +2923 X(each)s +3144 X(of)s +3265 X(the)s +3425 X(destination)s +3902 X(folders.)s +4267 X(Use)s +4460 X(of)s +4581 X(the)s +4741 X(`\261preserve')s +514 X +4800 Y +874 X(switch)s +1160 X(will)s +1341 X(override)s +1698 X(this)s +1868 X(message)s +2231 X(renaming,)s +2658 X(but)s +2811 X(name)s +3052 X(con\257icts)s +3416 X(may)s +3613 X(occur,)s +3884 X(so)s +3998 X(use)s +4156 X(this)s +4326 X(switch)s +4612 X(cautiously.)s +514 X +5040 Y +874 X(If)s +976 X(`\261link')s +1284 X(is)s +1387 X(not)s +1551 X(speci\256ed)s +1942 X(\(or)s +2094 X(`\261nolink')s +2502 X(is)s +2605 X(speci\256ed\),)s +3054 X(the)s +3212 X(\256led)s +3426 X(messages)s +3839 X(will)s +4031 X(be)s +4161 X(removed)s +4546 X(from)s +4776 X(the)s +4934 X(source)s +514 X +5160 Y +874 X(folder,)s +1162 X(by)s +1287 X(renaming)s +1689 X(them)s +1914 X(with)s +2117 X(a)s +2186 X(site-dependent)s +2793 X(pre\256x)s +3051 X(\(usually)s +3398 X(a)s +3467 X(comma\).)s +514 X +5400 Y +874 X(If)s +965 X(the)s +1112 X(user)s +1303 X(has)s +1461 X(a)s +1530 X(pro\256le)s +1816 X(component)s +2285 X(such)s +2493 X(as)s +514 X +5640 Y +1234 X(rmmproc:)s +1954 X(/bin/rm)s +514 X +5880 Y +874 X(then)s +1100 X +0.0 10 10 f.I ft(re\256le)s +1359 X +0.0 10 10 f.R ft(will)s +1569 X(instead)s +1906 X(call)s +2104 X(the)s +2280 X(named)s +2600 X(program)s +2992 X(to)s +3124 X(delete)s +3416 X(the)s +3592 X(message)s +3984 X(\256les.)s +4254 X(The)s +4462 X(user)s +4681 X(may)s +4906 X(specify)s +514 X +6000 Y +874 X(`\261rmmproc)s +1353 X(program')s +1754 X(on)s +1884 X(the)s +2036 X(command)s +2460 X(line)s +2640 X(to)s +2748 X(override)s +3110 X(this)s +3285 X(pro\256le)s +3576 X(speci\256cation.)s +4160 X(The)s +4344 X(\301-normmproc')s +4938 X(option)s +514 X +6120 Y +874 X(forces)s +1142 X(the)s +1289 X(message)s +1652 X(\256les)s +1844 X(to)s +1947 X(be)s +2066 X(deleted)s +2379 X(by)s +2504 X(renaming)s +2906 X(them)s +3131 X(as)s +3239 X(described)s +3646 X(above.)s +514 X +6360 Y +874 X(The)s +1054 X(`\261draft')s +1383 X(switch)s +1669 X(tells)s +1861 X +0.0 10 10 f.I ft(re\256le)s +2091 X +0.0 10 10 f.R ft(to)s +2194 X(\256le)s +2347 X(the)s +2494 X(/draft.)s +514 X +6522 Y +0.0 8 8 f.B ft(Files)s +514 X +6642 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 79 80 + +514 X +600 Y(REFILE\(1\))s +2771 X(-79-)s +4705 X(REFILE\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +1200 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +1320 Y +874 X(Folder\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(folder)s +514 X +1440 Y +874 X(rmmproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(delete)s +2525 X(the)s +2672 X(message)s +514 X +1644 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +1764 Y +874 X +0.0 10 10 f.R ft(folder\(1\))s +514 X +1968 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2088 Y +874 X +0.0 10 10 f.R ft(`\261src)s +1098 X(+folder')s +1450 X(defaults)s +1791 X(to)s +1894 X(the)s +2041 X(current)s +2348 X(folder)s +514 X +2208 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +514 X +2328 Y +874 X(`\261nolink')s +514 X +2448 Y +874 X(`\261nopreserve')s +514 X +2652 Y +0.0 8 8 f.B ft(Context)s +514 X +2772 Y +874 X +0.0 10 10 f.R ft(If)s +981 X(`\261src)s +1205 X(+folder')s +1573 X(is)s +1681 X(given,)s +1969 X(it)s +2066 X(will)s +2263 X(become)s +2614 X(the)s +2777 X(current)s +3100 X(folder.)s +3429 X(If)s +3536 X(neither)s +3854 X(`\261link')s +4166 X(nor)s +4339 X(`all')s +4545 X(is)s +4652 X(speci\256ed,)s +5072 X(the)s +514 X +2892 Y +874 X(current)s +1182 X(message)s +1545 X(in)s +1648 X(the)s +1795 X(source)s +2080 X(folder)s +2343 X(will)s +2524 X(be)s +2643 X(set)s +2779 X(to)s +2882 X(the)s +3029 X(last)s +3193 X(message)s +3556 X(speci\256ed;)s +3964 X(otherwise,)s +4402 X(the)s +4549 X(current)s +4856 X(message)s +514 X +3012 Y +874 X(won't)s +1132 X(be)s +1251 X(changed.)s +514 X +3252 Y +874 X(If)s +972 X(the)s +1126 X(Previous\261Sequence)s +1940 X(pro\256le)s +2233 X(entry)s +2470 X(is)s +2568 X(set,)s +2735 X(in)s +2844 X(addition)s +3203 X(to)s +3312 X(de\256ning)s +3671 X(the)s +3824 X(named)s +4121 X(sequences)s +4556 X(from)s +4781 X(the)s +4934 X(source)s +514 X +3372 Y +874 X(folder,)s +1163 X +0.0 10 10 f.I ft(re\256le)s +1394 X +0.0 10 10 f.R ft(will)s +1576 X(also)s +1763 X(de\256ne)s +2033 X(those)s +2270 X(sequences)s +2700 X(for)s +2842 X(the)s +2990 X(destination)s +3455 X(folders.)s +3807 X(See)s +3976 X +0.0 10 10 f.I ft(mh\261sequence)s +4563 X +0.0 10 10 f.R ft(\(5\))s +4704 X(for)s +4845 X(informa-)s +514 X +3492 Y +874 X(tion)s +1055 X(concerning)s +1523 X(the)s +1670 X(previous)s +2039 X(sequence.)s +514 X +3696 Y +0.0 8 8 f.B ft(Bugs)s +514 X +3816 Y +874 X +0.0 10 10 f.R ft(Since)s +1121 X +0.0 10 10 f.I ft(re\256le)s +1351 X +0.0 10 10 f.R ft(uses)s +1548 X(your)s +1756 X +0.0 10 10 f.I ft(rmmproc)s +2147 X +0.0 10 10 f.R ft(to)s +2250 X(delete)s +2513 X(the)s +2660 X(message,)s +3048 X(the)s +3195 X +0.0 10 10 f.I ft(rmmproc)s +3586 X +0.0 10 10 f.R ft(must)s +3806 X +0.0 10 10 f.B ft(NOT)s +4048 X +0.0 10 10 f.R ft(call)s +4217 X +0.0 10 10 f.I ft(re\256le)s +4447 X +0.0 10 10 f.R ft(without)s +4778 X(specifying)s +514 X +3936 Y +874 X(`\261normmproc',)s +1506 X(or)s +1614 X(you)s +1789 X(will)s +1970 X(create)s +2232 X(an)s +2351 X(in\256nte)s +2632 X(loop.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 80 81 + +514 X +600 Y(REPL\(1\))s +2771 X(-80-)s +4811 X(REPL\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(repl)s +1054 X(\261)s +1129 X(reply)s +1359 X(to)s +1462 X(a)s +1531 X(message)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(repl)s +1054 X([+folder])s +1439 X([msg])s +1697 X([\261annotate])s +2176 X([\261noannotate])s +2755 X([\261cc all/to/cc/me])s +3481 X([\261nocc all/to/cc/me])s +4307 X([\261draftfolder +folder])s +514 X +1560 Y +1234 X([\261draftmessage msg])s +2093 X([\261nodraftfolder])s +2760 X([\261editor editor])s +3392 X([\261noedit])s +3783 X([\261fcc +folder])s +4364 X([\261\256lter \256lter\256le])s +514 X +1680 Y +1234 X([\261form form\256le])s +1916 X([\261inplace])s +2345 X([\261noinplace])s +2874 X([\261query])s +3242 X([\261noquery])s +3710 X([\261width columns])s +514 X +1800 Y +1234 X([\261whatnowproc program])s +2281 X([\261nowhatnowproc])s +3065 X([\261help])s +514 X +2040 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2280 Y +874 X +0.0 10 10 f.I ft(Repl)s +1084 X +0.0 10 10 f.R ft(aids)s +1272 X(a)s +1343 X(user)s +1536 X(in)s +1641 X(producing)s +2073 X(a)s +2144 X(reply)s +2376 X(to)s +2481 X(an)s +2602 X(existing)s +2946 X(message.)s +3360 X +0.0 10 10 f.I ft(Repl)s +3569 X +0.0 10 10 f.R ft(uses)s +3767 X(a)s +3837 X(reply)s +4068 X(template)s +4438 X(to)s +4542 X(guide)s +4790 X(its)s +4911 X(actions)s +514 X +2400 Y +874 X(when)s +1119 X(constructing)s +1642 X(the)s +1793 X(message)s +2160 X(draft)s +2377 X(of)s +2489 X(the)s +2640 X(reply.)s +2924 X(In)s +3036 X(its)s +3160 X(simplest)s +3523 X(form)s +3746 X(\(with)s +3985 X(no)s +4113 X(arguments\),)s +4615 X(it)s +4699 X(will)s +4883 X(set)s +5022 X(up)s +5150 X(a)s +514 X +2520 Y +874 X(message\261form)s +1484 X(skeleton)s +1845 X(in)s +1951 X(reply)s +2184 X(to)s +2290 X(the)s +2440 X(current)s +2750 X(message)s +3115 X(in)s +3220 X(the)s +3369 X(current)s +3678 X(folder,)s +3968 X(and)s +4139 X(invoke)s +4438 X(the)s +4587 X(whatnow)s +4980 X(shell.)s +514 X +2640 Y +874 X(The)s +1054 X(default)s +1356 X(reply)s +1586 X(template)s +1955 X(will)s +2136 X(direct)s +2388 X +0.0 10 10 f.I ft(repl)s +2574 X +0.0 10 10 f.R ft(to)s +2677 X(construct)s +3068 X(the)s +3215 X(composed)s +3645 X(message)s +4008 X(as)s +4116 X(follows:)s +514 X +2880 Y +1234 X(To:)s +1398 X()s +1935 X(or)s +2043 X()s +514 X +3000 Y +1234 X(cc:)s +1375 X(,)s +1625 X(,)s +1898 X(and)s +2067 X(yourself)s +514 X +3120 Y +1234 X(Subject:)s +1587 X(Re:)s +1751 X()s +514 X +3240 Y +1234 X(In\261reply\261to:)s +1753 X(Your)s +1983 X(message)s +2346 X(of)s +2454 X(.)s +514 X +3360 Y +1753 X()s +514 X +3600 Y +874 X(where)s +1149 X(\256eld)s +1359 X(names)s +1646 X(enclosed)s +2027 X(in)s +2137 X(angle)s +2385 X(brackets)s +2749 X(\(< >\))s +2984 X(indicate)s +3332 X(the)s +3485 X(contents)s +3849 X(of)s +3963 X(the)s +4116 X(named)s +4413 X(\256eld)s +4622 X(from)s +4847 X(the)s +5000 X(mes-)s +514 X +3720 Y +874 X(sage)s +1078 X(to)s +1183 X(which)s +1454 X(the)s +1603 X(reply)s +1835 X(is)s +1929 X(being)s +2178 X(made.)s +2471 X(A)s +2570 X(reply)s +2801 X(template)s +3171 X(is)s +3264 X(simply)s +3563 X(a)s +3633 X(format)s +3925 X(\256le.)s +4129 X(See)s +4299 X +0.0 10 10 f.I ft(mh\261format)s +4788 X +0.0 10 10 f.R ft(\(5\))s +4930 X(for)s +5072 X(the)s +514 X +3840 Y +874 X(details.)s +514 X +4080 Y +874 X(The)s +1066 X(`\261cc type')s +1504 X(switch)s +1802 X(takes)s +2044 X(an)s +2175 X(argument)s +2589 X(which)s +2869 X(speci\256es)s +3249 X(who)s +3457 X(gets)s +3654 X(placed)s +3950 X(on)s +4086 X(the)s +4244 X(``cc:'')s +4528 X(list)s +4687 X(of)s +4806 X(the)s +4964 X(reply.)s +514 X +4200 Y +874 X(The)s +1055 X(`\261query')s +1424 X(switch)s +1711 X(modi\256es)s +2081 X(the)s +2228 X(action)s +2497 X(of)s +2605 X(`\261cc type')s +3031 X(switch)s +3317 X(by)s +3442 X(interactively)s +3966 X(asking)s +4252 X(you)s +4427 X(if)s +4513 X(each)s +4720 X(address)s +5044 X(that)s +514 X +4320 Y +874 X(normally)s +1267 X(would)s +1549 X(be)s +1675 X(placed)s +1967 X(in)s +2077 X(the)s +2231 X(``To:'')s +2534 X(and)s +2710 X(``cc:'')s +2990 X(list)s +3145 X(should)s +3444 X(actually)s +3792 X(be)s +3918 X(sent)s +4111 X(a)s +4187 X(copy.)s +4463 X(\(This)s +4705 X(is)s +4803 X(useful)s +5078 X(for)s +514 X +4440 Y +874 X(special\261purpose)s +1553 X(replies.\))s +1913 X(Note)s +2143 X(that)s +2329 X(the)s +2487 X(position)s +2846 X(of)s +2965 X(the)s +3123 X(`\261cc')s +3363 X(and)s +3543 X(`\261nocc')s +3883 X(switches,)s +4288 X(like)s +4474 X(all)s +4610 X(other)s +4850 X(switches)s +514 X +4560 Y +874 X(which)s +1143 X(take)s +1334 X(a)s +1403 X(positive)s +1745 X(and)s +1914 X(negative)s +2277 X(form,)s +2521 X(is)s +2613 X(important.)s +514 X +4800 Y +874 X(Lines)s +1147 X(beginning)s +1597 X(with)s +1825 X(the)s +1997 X(\256elds)s +2264 X(``To:'',)s +2610 X(``cc:'',)s +2933 X(and)s +3127 X(''Bcc:'')s +3492 X(will)s +3698 X(be)s +3842 X(standardized)s +4396 X(and)s +4590 X(have)s +4828 X(duplicate)s +514 X +4920 Y +874 X(addresses)s +1281 X(removed.)s +1705 X(In)s +1813 X(addition,)s +2191 X(the)s +2338 X(`\261width columns')s +3071 X(switch)s +3357 X(will)s +3538 X(guide)s +3785 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft('s)s +4043 X(formatting)s +4490 X(of)s +4598 X(these)s +4828 X(\256elds.)s +514 X +5160 Y +874 X(If)s +967 X(the)s +1116 X(\256le)s +1271 X(named)s +1564 X(``replcomps'')s +2139 X(exists)s +2394 X(in)s +2499 X(the)s +2648 X(user's)s +2913 X(MH)s +3101 X(directory,)s +3513 X(it)s +3595 X(will)s +3777 X(be)s +3897 X(used)s +4106 X(instead)s +4415 X(of)s +4524 X(the)s +4672 X(default)s +4975 X(form.)s +514 X +5280 Y +874 X(In)s +982 X(either)s +1234 X(case,)s +1455 X(the)s +1602 X(\256le)s +1755 X(speci\256ed)s +2135 X(by)s +2260 X(`\261form form\256le')s +2942 X(will)s +3123 X(be)s +3242 X(used)s +3450 X(if)s +3536 X(given.)s +514 X +5520 Y +874 X(If)s +966 X(the)s +1114 X(draft)s +1327 X(already)s +1645 X(exists,)s +1923 X +0.0 10 10 f.I ft(repl)s +2109 X +0.0 10 10 f.R ft(will)s +2290 X(ask)s +2448 X(you)s +2623 X(as)s +2731 X(to)s +2834 X(the)s +2981 X(disposition)s +3446 X(of)s +3554 X(the)s +3701 X(draft.)s +3964 X(A)s +4061 X(reply)s +4291 X(of)s +4399 X +0.0 10 10 f.B ft(quit)s +4597 X +0.0 10 10 f.R ft(will)s +4778 X(abort)s +5008 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +514 X +5640 Y +874 X(leaving)s +1202 X(the)s +1358 X(draft)s +1580 X(intact;)s +1863 X +0.0 10 10 f.B ft(replace)s +2206 X +0.0 10 10 f.R ft(will)s +2395 X(replace)s +2715 X(the)s +2870 X(existing)s +3220 X(draft)s +3441 X(with)s +3652 X(a)s +3729 X(blank)s +3984 X(skeleton;)s +4378 X(and)s +4555 X +0.0 10 10 f.B ft(list)s +4716 X +0.0 10 10 f.R ft(will)s +4905 X(display)s +514 X +5760 Y +874 X(the)s +1021 X(draft.)s +514 X +6000 Y +874 X(See)s +1053 X +0.0 10 10 f.I ft(comp)s +1319 X +0.0 10 10 f.R ft(\(1\))s +1470 X(for)s +1621 X(a)s +1700 X(description)s +2179 X(of)s +2297 X(the)s +2454 X(`\261editor')s +2838 X(and)s +3016 X(`\261noedit')s +3416 X(switches.)s +3844 X(Note)s +4072 X(that)s +4256 X(while)s +4512 X(in)s +4624 X(the)s +4780 X(editor,)s +5072 X(the)s +514 X +6120 Y +874 X(message)s +1240 X(being)s +1489 X(replied)s +1793 X(to)s +1898 X(is)s +1992 X(available)s +2379 X(through)s +2717 X(a)s +2788 X(link)s +2971 X(named)s +3264 X(``@'')s +3515 X(\(assuming)s +3953 X(the)s +4102 X(default)s +4406 X +0.0 10 10 f.I ft(whatnowproc)s +5001 X +0.0 10 10 f.R ft(\).)s +5111 X(In)s +514 X +6240 Y +874 X(addition,)s +1259 X(the)s +1413 X(actual)s +1683 X(pathname)s +2103 X(of)s +2218 X(the)s +2372 X(message)s +2742 X(is)s +2841 X(stored)s +3117 X(in)s +3227 X(the)s +3381 X(envariable)s +3828 X +0.0 10 10 f.B ft($editalt)s +0.0 10 10 f.R ft(,)s +4207 X(and)s +4383 X(the)s +4537 X(pathname)s +4957 X(of)s +5072 X(the)s +514 X +6360 Y +874 X(folder)s +1137 X(containing)s +1584 X(the)s +1731 X(message)s +2094 X(is)s +2186 X(stored)s +2455 X(in)s +2558 X(the)s +2705 X(envariable)s +3145 X +0.0 10 10 f.B ft($mhfolder)s +0.0 10 10 f.R ft(.)s +514 X +6600 Y +874 X(Although)s +1284 X +0.0 10 10 f.I ft(repl)s +1477 X +0.0 10 10 f.R ft(uses)s +1681 X(the)s +1834 X(`\261form form\256le')s +2522 X(switch)s +2814 X(to)s +2923 X(direct)s +3181 X(it)s +3268 X(how)s +3471 X(to)s +3580 X(construct)s +3977 X(the)s +4130 X(beginning)s +4561 X(of)s +4675 X(the)s +4828 X(draft,)s +5072 X(the)s +514 X +6720 Y +874 X(`\261\256lter \256lter\256le')s +1547 X(switch)s +1834 X(directs)s +2126 X +0.0 10 10 f.I ft(repl)s +2313 X +0.0 10 10 f.R ft(as)s +2422 X(to)s +2526 X(how)s +2724 X(the)s +2872 X(message)s +3236 X(being)s +3484 X(replied\261to)s +3915 X(should)s +4208 X(be)s +4328 X(formatted)s +4742 X(in)s +4846 X(the)s +4994 X(body)s +514 X +6840 Y +874 X(of)s +984 X(the)s +1133 X(draft.)s +1398 X(If)s +1491 X(`\261\256lter')s +1823 X(is)s +1917 X(not)s +2072 X(speci\256ed,)s +2479 X(then)s +2677 X(the)s +2825 X(message)s +3189 X(being)s +3437 X(replied\261to)s +3868 X(is)s +3961 X(not)s +4115 X(included)s +4485 X(in)s +4589 X(the)s +4737 X(body)s +4963 X(of)s +5072 X(the)s +514 X +6960 Y +874 X(draft.)s +1145 X(If)s +1244 X(`\261\256lter \256lter\256le')s +1924 X(is)s +2024 X(speci\256ed,)s +2437 X(then)s +2642 X(the)s +2797 X(message)s +3168 X(being)s +3423 X(replied\261to)s +3861 X(is)s +3961 X(\256ltered)s +4277 X(\(re\261formatted\))s +4890 X(prior)s +5116 X(to)s +514 X +7080 Y +874 X(being)s +1126 X(output)s +1412 X(to)s +1520 X(the)s +1672 X(body)s +1902 X(of)s +2015 X(the)s +2167 X(draft.)s +2435 X(The)s +2620 X(\256lter)s +2839 X(\256le)s +2997 X(for)s +3143 X +0.0 10 10 f.I ft(repl)s +3333 X +0.0 10 10 f.R ft(should)s +3629 X(be)s +3752 X(a)s +3825 X(standard)s +4192 X(form)s +4415 X(\256le)s +4572 X(for)s +4717 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(,)s +4921 X(as)s +5033 X +0.0 10 10 f.I ft(repl)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 81 82 + +514 X +600 Y(REPL\(1\))s +2771 X(-81-)s +4811 X(REPL\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(will)s +1056 X(invoke)s +1354 X +0.0 10 10 f.I ft(mhl)s +1530 X +0.0 10 10 f.R ft(to)s +1634 X(format)s +1926 X(the)s +2074 X(message)s +2437 X(being)s +2684 X(replied\261to.)s +3164 X(There)s +3421 X(is)s +3513 X(no)s +3638 X(default)s +3940 X(message)s +4303 X(\256lter)s +4517 X(\(`\261\256lter')s +4880 X(must)s +5100 X(be)s +514 X +1080 Y +874 X(followed)s +1254 X(by)s +1379 X(a)s +1448 X(\256le)s +1601 X(name\).)s +1925 X(A)s +2022 X(\256lter)s +2236 X(\256le)s +2389 X(that)s +2564 X(is)s +2656 X(commonly)s +3109 X(used)s +3317 X(is:)s +514 X +1320 Y +1234 X(:)s +514 X +1440 Y +1234 X(body:nocomponent,compwidth=9,o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(set=9)s +514 X +1680 Y +874 X(which)s +1159 X(says)s +1372 X(to)s +1491 X(output)s +1788 X(a)s +1873 X(blank)s +2136 X(line)s +2327 X(and)s +2512 X(then)s +2725 X(the)s +2888 X(body)s +3129 X(of)s +3253 X(the)s +3416 X(message)s +3794 X(being)s +4056 X(replied\261to,)s +4526 X(indented)s +4910 X(by)s +5050 X(one)s +514 X +1800 Y +874 X(tab\261stop.)s +1288 X(Another)s +1640 X(format)s +1931 X(popular)s +2261 X(on)s +2386 X(USENET)s +2794 X(is:)s +514 X +2040 Y +1234 X(message-id:nocomponent,)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(nonewline,)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(format\256eld=``In)s +3429 X(message)s +3792 X(%{text}, '')s +514 X +2160 Y +1234 X(from:nocomponent,)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(format\256eld=``%\(friendly{text}\))s +3344 X(writes:'')s +514 X +2280 Y +1234 X(body:component=``>'',)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(over\257owtext=``>'',)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(over\257owo)s +Cff(set=0)s +514 X +2520 Y +874 X(Which)s +1171 X(cites)s +1385 X(the)s +1538 X(Message-ID)s +2056 X(and)s +2231 X(author)s +2517 X(of)s +2631 X(the)s +2784 X(message)s +3153 X(being)s +3406 X(replied\261to,)s +3866 X(and)s +4040 X(then)s +4242 X(outputs)s +4567 X(each)s +4779 X(line)s +4959 X(of)s +5072 X(the)s +514 X +2640 Y +874 X(body)s +1099 X(prefaced)s +1466 X(with)s +1669 X(the)s +1816 X(``>'')s +2029 X(character.)s +514 X +2880 Y +874 X(If)s +965 X(the)s +1112 X(`\261annotate')s +1591 X(switch)s +1877 X(is)s +1969 X(given,)s +2241 X(the)s +2388 X(message)s +2751 X(being)s +2998 X(replied\261to)s +3428 X(will)s +3609 X(be)s +3728 X(annotated)s +4141 X(with)s +4344 X(the)s +4491 X(lines)s +514 X +3120 Y +999 X(Replied: date)s +514 X +3240 Y +999 X(Replied: addrs)s +514 X +3480 Y +874 X(where)s +1143 X(the)s +1290 X(address)s +1614 X(list)s +1762 X(contains)s +2120 X(one)s +2289 X(line)s +2464 X(for)s +2605 X(each)s +2812 X(addressee.)s +3274 X(The)s +3454 X(annotation)s +3901 X(will)s +4082 X(be)s +4201 X(done)s +4420 X(only)s +4623 X(if)s +4709 X(the)s +4856 X(message)s +514 X +3600 Y +874 X(is)s +971 X(sent)s +1162 X(directly)s +1497 X(from)s +1721 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(.)s +1962 X(If)s +2058 X(the)s +2210 X(message)s +2578 X(is)s +2675 X(not)s +2832 X(sent)s +3022 X(immediately)s +3551 X(from)s +3774 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(,)s +3989 X(``comp \261use'')s +4580 X(may)s +4781 X(be)s +4904 X(used)s +5116 X(to)s +514 X +3720 Y +874 X(re\261edit)s +1193 X(and)s +1379 X(send)s +1604 X(the)s +1768 X(constructed)s +2270 X(message,)s +2675 X(but)s +2845 X(the)s +3008 X(annotations)s +3510 X(won't)s +3784 X(take)s +3991 X(place.)s +4292 X(The)s +4488 X(`\261inplace')s +4933 X(switch)s +514 X +3840 Y +874 X(causes)s +1159 X(annotation)s +1606 X(to)s +1709 X(be)s +1828 X(done)s +2047 X(in)s +2150 X(place)s +2385 X(in)s +2488 X(order)s +2723 X(to)s +2826 X(preserve)s +3188 X(links)s +3408 X(to)s +3511 X(the)s +3658 X(annotated)s +4071 X(message.)s +514 X +4080 Y +874 X(The)s +1066 X(`\261fcc +folder')s +1659 X(switch)s +1957 X(can)s +2132 X(be)s +2263 X(used)s +2483 X(to)s +2598 X(automatically)s +3178 X(specify)s +3502 X(a)s +3582 X(folder)s +3856 X(to)s +3970 X(receive)s +4293 X(Fcc:s.)s +4590 X(More)s +4842 X(than)s +5050 X(one)s +514 X +4200 Y +874 X(folder,)s +1162 X(each)s +1369 X(preceeded)s +1797 X(by)s +1922 X(`\261fcc')s +2184 X(can)s +2347 X(be)s +2466 X(named.)s +514 X +4440 Y +874 X(In)s +984 X(addition)s +1339 X(to)s +1443 X(the)s +1591 X(standard)s +1955 X +0.0 10 10 f.I ft(mh\261format)s +2444 X +0.0 10 10 f.R ft(\(5\))s +2586 X(escapes,)s +2941 X +0.0 10 10 f.I ft(repl)s +3128 X +0.0 10 10 f.R ft(also)s +3315 X(recognizes)s +3767 X(the)s +3915 X(following)s +4330 X(additional)s +4756 X +0.0 10 10 f.I ft(component)s +514 X +4560 Y +874 X +0.0 10 10 f.R ft(escape:)s +514 X +4800 Y +874 X +0.0 10 10 f.I ft(Escape)s +1206 X(Returns)s +1567 X(Description)s +514 X +4920 Y +874 X(fcc)s +1206 X +0.0 10 10 f.R ft(string)s +1567 X(Any)s +1764 X(folders)s +2066 X(speci\256ed)s +2446 X(with)s +2649 X(`\261fcc folder')s +514 X +5160 Y +874 X(To)s +1010 X(avoid)s +1257 X(reiteration,)s +1717 X +0.0 10 10 f.I ft(repl)s +1903 X +0.0 10 10 f.R ft(strips)s +2145 X(any)s +2314 X(leading)s +2633 X(`Re:)s +2830 X(')s +2888 X(strings)s +3180 X(from)s +3399 X(the)s +3546 X +0.0 10 10 f.I ft(subject)s +3854 X +0.0 10 10 f.R ft(component.)s +514 X +5400 Y +874 X(The)s +1055 X(`\261draftfolder +folder')s +1942 X(and)s +2112 X(`\261draftmessage msg')s +2972 X(switches)s +3342 X(invoke)s +3640 X(the)s +3788 X +0.0 10 10 f.I ft(MH)s +3969 X +0.0 10 10 f.R ft(draft)s +4183 X(folder)s +4447 X(facility.)s +4805 X(This)s +5008 X(is)s +5100 X(an)s +514 X +5520 Y +874 X(advanced)s +1278 X(\(and)s +1483 X(highly)s +1767 X(useful\))s +2072 X(feature.)s +2426 X(Consult)s +2766 X(the)s +2916 X +0.0 10 10 f.B ft(Advanced)s +3372 X(Features)s +3771 X +0.0 10 10 f.R ft(section)s +4082 X(of)s +4193 X(the)s +4343 X +0.0 10 10 f.I ft(MH)s +4525 X +0.0 10 10 f.R ft(manual)s +4846 X(for)s +4989 X(more)s +514 X +5640 Y +874 X(information.)s +514 X +5880 Y +874 X(Upon)s +1125 X(exiting)s +1432 X(from)s +1655 X(the)s +1806 X(editor,)s +2093 X +0.0 10 10 f.I ft(repl)s +2282 X +0.0 10 10 f.R ft(will)s +2466 X(invoke)s +2766 X(the)s +2916 X +0.0 10 10 f.I ft(whatnow)s +3306 X +0.0 10 10 f.R ft(program.)s +3722 X(See)s +3894 X +0.0 10 10 f.I ft(whatnow)s +4306 X +0.0 10 10 f.R ft(\(1\))s +4450 X(for)s +4594 X(a)s +4666 X(discussion)s +5111 X(of)s +514 X +6000 Y +874 X(available)s +1263 X(options.)s +1637 X(The)s +1821 X(invocation)s +2272 X(of)s +2384 X(this)s +2558 X(program)s +2925 X(can)s +3092 X(be)s +3214 X(inhibited)s +3598 X(by)s +3726 X(using)s +3971 X(the)s +4121 X(`\261nowhatnowproc')s +4908 X(switch.)s +514 X +6120 Y +874 X(\(In)s +1028 X(truth)s +1255 X(of)s +1376 X(fact,)s +1588 X(it)s +1682 X(is)s +1787 X(the)s +1947 X +0.0 10 10 f.I ft(whatnow)s +2347 X +0.0 10 10 f.R ft(program)s +2723 X(which)s +3005 X(starts)s +3254 X(the)s +3414 X(initial)s +3686 X(edit.)s +3924 X(Hence,)s +4241 X(`\261nowhatnowproc')s +5038 X(will)s +514 X +6240 Y +874 X(prevent)s +1198 X(any)s +1367 X(edit)s +1542 X(from)s +1761 X(occurring.\))s +514 X +6402 Y +0.0 8 8 f.B ft(Files)s +514 X +6522 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/replcomps)s +2463 X(The)s +2643 X(reply)s +2873 X(template)s +514 X +6642 Y +874 X(or)s +982 X(/replcomps)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(template)s +514 X +6762 Y +874 X($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +6882 Y +874 X(/draft)s +2463 X(The)s +2643 X(draft)s +2856 X(\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 82 83 + +514 X +600 Y(REPL\(1\))s +2771 X(-82-)s +4811 X(REPL\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +1200 Y +874 X(Alternate\261Mailboxes:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(mailboxes)s +514 X +1320 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +1440 Y +874 X(Draft\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(draft\261folder)s +514 X +1560 Y +874 X(Editor:)s +1790 X(To)s +1926 X(override)s +2283 X(the)s +2430 X(default)s +2732 X(editor)s +514 X +1680 Y +874 X(Msg\261Protect:)s +1790 X(To)s +1926 X(set)s +2062 X(mode)s +2309 X(when)s +2550 X(creating)s +2896 X(a)s +2965 X(new)s +3156 X(message)s +3519 X(\(draft\))s +514 X +1800 Y +874 X(\256leproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(re\256le)s +2492 X(the)s +2639 X(message)s +514 X +1920 Y +874 X(mhlproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(\256lter)s +2476 X(message)s +2839 X(being)s +3086 X(replied\261to)s +514 X +2040 Y +874 X(whatnowproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(ask)s +2420 X(the)s +2567 X(``What)s +2874 X(now?'')s +3181 X(questions)s +514 X +2244 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2364 Y +874 X +0.0 10 10 f.R ft(comp\(1\),)s +1262 X(dist\(1\),)s +1573 X(forw\(1\),)s +1927 X(send\(1\),)s +2276 X(whatnow\(1\),)s +2808 X(mh\261format\(5\))s +514 X +2568 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2688 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +2808 Y +874 X(`msg')s +1132 X(defaults)s +1473 X(to)s +1576 X(cur)s +514 X +2928 Y +874 X(`\261nocc)s +1170 X(all')s +1328 X(at)s +1425 X(ATHENA)s +1860 X(sites,)s +2088 X(`\261cc)s +2284 X(all')s +2442 X(otherwise)s +514 X +3048 Y +874 X(`\261noannotate')s +514 X +3168 Y +874 X(`\261nodraftfolder')s +514 X +3288 Y +874 X(`\261noinplace')s +514 X +3408 Y +874 X(`\261noquery')s +514 X +3528 Y +874 X(`\261width)s +1210 X(72')s +514 X +3732 Y +0.0 8 8 f.B ft(Context)s +514 X +3852 Y +874 X +0.0 10 10 f.R ft(If)s +967 X(a)s +1038 X(folder)s +1303 X(is)s +1397 X(given,)s +1671 X(it)s +1754 X(will)s +1937 X(become)s +2274 X(the)s +2423 X(current)s +2732 X(folder.)s +3047 X(The)s +3229 X(message)s +3594 X(replied\261to)s +4026 X(will)s +4208 X(become)s +4544 X(the)s +4692 X(current)s +5000 X(mes-)s +514 X +3972 Y +874 X(sage.)s +514 X +4176 Y +0.0 8 8 f.B ft(History)s +514 X +4296 Y +874 X +0.0 10 10 f.R ft(Prior)s +1106 X(to)s +1216 X(using)s +1465 X(the)s +1619 X(format)s +1917 X(string)s +2177 X(mechanism,)s +2689 X(`\261noformat')s +3203 X(used)s +3418 X(to)s +3528 X(cause)s +3781 X(address)s +4112 X(headers)s +4448 X(to)s +4557 X(be)s +4682 X(output)s +4969 X(as\261is.)s +514 X +4416 Y +874 X(Now)s +1093 X(all)s +1218 X(address)s +1542 X(\256elds)s +1784 X(are)s +1930 X(formatted)s +2343 X(using)s +2585 X(Internet)s +2920 X(standard)s +3283 X(guidelines.)s +514 X +4620 Y +0.0 8 8 f.B ft(Bugs)s +514 X +4740 Y +874 X +0.0 10 10 f.R ft(If)s +968 X(any)s +1140 X(addresses)s +1550 X(occur)s +1799 X(in)s +1905 X(the)s +2055 X(reply)s +2288 X(template,)s +2685 X(addresses)s +3095 X(in)s +3201 X(the)s +3351 X(template)s +3723 X(that)s +3900 X(do)s +4027 X(not)s +4182 X(contain)s +4503 X(hosts)s +4736 X(are)s +4884 X(default-)s +514 X +4860 Y +874 X(ed)s +994 X(incorrectly.)s +1502 X(Instead)s +1815 X(of)s +1923 X(using)s +2165 X(the)s +2312 X(localhost)s +2698 X(for)s +2839 X(the)s +2986 X(default,)s +3313 X +0.0 10 10 f.I ft(repl)s +3499 X +0.0 10 10 f.R ft(uses)s +3696 X(the)s +3843 X(sender's)s +4200 X(host.)s +4442 X(Moral)s +4711 X(of)s +4819 X(the)s +4966 X(story:)s +514 X +4980 Y +874 X(if)s +960 X(you're)s +1245 X(going)s +1498 X(to)s +1601 X(include)s +1920 X(addresses)s +2327 X(in)s +2430 X(a)s +2499 X(reply)s +2729 X(template,)s +3123 X(include)s +3442 X(the)s +3589 X(host)s +3781 X(portion)s +4095 X(of)s +4203 X(the)s +4350 X(address.)s +514 X +5220 Y +874 X(The)s +1054 X(`\261width)s +1390 X(columns')s +1787 X(switch)s +2073 X(is)s +2165 X(only)s +2368 X(used)s +2576 X(to)s +2679 X(do)s +2804 X(address-folding;)s +3478 X(other)s +3708 X(headers)s +4037 X(are)s +4183 X(not)s +4336 X(line\261wrapped.)s +514 X +5460 Y +874 X(If)s +972 X +0.0 10 10 f.I ft(whatnowproc)s +1549 X +0.0 10 10 f.R ft(is)s +1648 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +2067 X(then)s +2271 X +0.0 10 10 f.I ft(repl)s +2464 X +0.0 10 10 f.R ft(uses)s +2668 X(a)s +2744 X(built\261in)s +3088 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +3507 X(it)s +3595 X(does)s +3810 X(not)s +3970 X(actually)s +4318 X(run)s +4482 X(the)s +4635 X +0.0 10 10 f.I ft(whatnow)s +5028 X +0.0 10 10 f.R ft(pro-)s +514 X +5580 Y +874 X(gram.)s +1154 X(Hence,)s +1458 X(if)s +1544 X(you)s +1719 X(de\256ne)s +1988 X(your)s +2196 X(own)s +2393 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(,)s +2988 X(don't)s +3224 X(call)s +3393 X(it)s +3474 X +0.0 10 10 f.I ft(whatnow)s +3861 X +0.0 10 10 f.R ft(since)s +4091 X +0.0 10 10 f.I ft(repl)s +4277 X +0.0 10 10 f.R ft(won't)s +4535 X(run)s +4693 X(it.)s +514 X +5820 Y +874 X(If)s +965 X(your)s +1173 X(current)s +1480 X(working)s +1838 X(directory)s +2223 X(is)s +2315 X(not)s +2468 X(writable,)s +2845 X(the)s +2992 X(link)s +3173 X(named)s +3464 X(``@'')s +3713 X(is)s +3805 X(not)s +3958 X(available.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 83 84 + +514 X +600 Y(RMF\(1\))s +2771 X(-83-)s +4851 X(RMF\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(rmf)s +1043 X(\261)s +1118 X(remove)s +1442 X(an)s +1561 X(MH)s +1747 X(folder)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(rmf)s +1043 X([+folder])s +1428 X([\261interactive])s +1990 X([\261nointeractive])s +2652 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Rmf)s +1063 X +0.0 10 10 f.R ft(removes)s +1429 X(all)s +1557 X(of)s +1668 X(the)s +1818 X(messages)s +2223 X(\(\256les\))s +2484 X(within)s +2768 X(the)s +2918 X(speci\256ed)s +3301 X(\(or)s +3445 X(default\))s +3782 X(folder,)s +4072 X(and)s +4243 X(then)s +4442 X(removes)s +4807 X(the)s +4956 X(folder)s +514 X +2040 Y +874 X(\(directory\))s +1342 X(itself.)s +1634 X(If)s +1742 X(there)s +1983 X(are)s +2146 X(any)s +2332 X(\256les)s +2540 X(within)s +2837 X(the)s +3000 X(folder)s +3279 X(which)s +3564 X(are)s +3726 X(not)s +3895 X(a)s +3980 X(part)s +4176 X(of)s +4300 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +4521 X(they)s +4734 X(will)s +4931 X +0.0 10 10 f.I ft(not)s +5100 X +0.0 10 10 f.R ft(be)s +514 X +2160 Y +874 X(removed,)s +1283 X(and)s +1462 X(an)s +1591 X(error)s +1819 X(will)s +2010 X(be)s +2139 X(produced.)s +2595 X(If)s +2696 X(the)s +2852 X(folder)s +3124 X(is)s +3225 X(given)s +3481 X(explicitly)s +3893 X(or)s +4010 X(the)s +4166 X(`\261nointeractive')s +4837 X(option)s +5127 X(is)s +514 X +2280 Y +874 X(given,)s +1172 X(then)s +1395 X(the)s +1568 X(folder)s +1857 X(will)s +2064 X(be)s +2209 X(removed)s +2609 X(without)s +2966 X(con\256rmation.)s +3578 X(Otherwise,)s +4063 X(the)s +4235 X(user)s +4451 X(will)s +4657 X(be)s +4801 X(asked)s +5078 X(for)s +514 X +2400 Y +874 X(con\256rmation.)s +1473 X(If)s +1577 X +0.0 10 10 f.I ft(rmf)s +1754 X +0.0 10 10 f.R ft(can't)s +1991 X(\256nd)s +2185 X(the)s +2345 X(current)s +2665 X(folder,)s +2966 X(for)s +3120 X(some)s +3369 X(reason,)s +3692 X(the)s +3852 X(folder)s +4128 X(to)s +4244 X(be)s +4376 X(removed)s +4763 X(defaults)s +5116 X(to)s +514 X +2520 Y +874 X(`+inbox')s +1249 X(\(unless)s +1557 X(overridden)s +2014 X(by)s +2139 X(user's)s +2402 X(pro\256le)s +2688 X(entry)s +2918 X(``Inbox''\))s +3341 X(with)s +3544 X(con\256rmation.)s +514 X +2760 Y +874 X +0.0 10 10 f.I ft(Rmf)s +1060 X +0.0 10 10 f.R ft(irreversibly)s +1545 X(deletes)s +1847 X(messages)s +2249 X(that)s +2424 X(don't)s +2660 X(have)s +2873 X(other)s +3103 X(links,)s +3348 X(so)s +3462 X(use)s +3620 X(it)s +3701 X(with)s +3904 X(caution.)s +514 X +3000 Y +874 X(If)s +975 X(the)s +1132 X(folder)s +1405 X(being)s +1662 X(removed)s +2046 X(is)s +2148 X(a)s +2227 X(subfolder,)s +2663 X(the)s +2819 X(parent)s +3102 X(folder)s +3374 X(will)s +3564 X(become)s +3908 X(the)s +4064 X(new)s +4264 X(current)s +4580 X(folder,)s +4877 X(and)s +5055 X +0.0 10 10 f.I ft(rmf)s +514 X +3120 Y +874 X +0.0 10 10 f.R ft(will)s +1057 X(produce)s +1405 X(a)s +1475 X(message)s +1839 X(telling)s +2121 X(the)s +2269 X(user)s +2461 X(this)s +2632 X(has)s +2791 X(happened.)s +3249 X(This)s +3453 X(provides)s +3823 X(an)s +3943 X(easy)s +4146 X(mechanism)s +4627 X(for)s +4769 X(selecting)s +5150 X(a)s +514 X +3240 Y +874 X(set)s +1014 X(of)s +1126 X(messages,)s +1557 X(operating)s +1963 X(on)s +2092 X(the)s +2242 X(list,)s +2418 X(then)s +2618 X(removing)s +3029 X(the)s +3179 X(list)s +3330 X(and)s +3502 X(returning)s +3896 X(to)s +4002 X(the)s +4152 X(current)s +4462 X(folder)s +4728 X(from)s +4950 X(which)s +514 X +3360 Y +874 X(the)s +1021 X(list)s +1169 X(was)s +1349 X(extracted.)s +514 X +3600 Y +874 X +0.0 10 10 f.I ft(Rmf)s +1079 X +0.0 10 10 f.R ft(of)s +1206 X(a)s +1294 X(read\261only)s +1736 X(folder)s +2017 X(will)s +2216 X(delete)s +2497 X(the)s +2662 X(private)s +2982 X(sequence)s +3390 X(and)s +3577 X(cur)s +3747 X(information)s +4262 X(\(i.e.,)s +4485 X(``atr\261)s +0.0 10 10 f.I ft(seq)s +0.0 10 10 f.R ft(\261)s +0.0 10 10 f.I ft(folder)s +0.0 10 10 f.R ft('')s +514 X +3720 Y +874 X(entries\))s +1198 X(from)s +1417 X(the)s +1564 X(pro\256le)s +1850 X(without)s +2181 X(a)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ecting)s +2555 X(the)s +2702 X(folder)s +2965 X(itself.)s +514 X +3882 Y +0.0 8 8 f.B ft(Files)s +514 X +4002 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4206 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4326 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +4446 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +4566 Y +874 X(Inbox:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(inbox)s +514 X +4770 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4890 Y +874 X +0.0 10 10 f.R ft(rmm\(1\))s +514 X +5094 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5214 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder,)s +2445 X(usually)s +2759 X(with)s +2962 X(con\256rmation)s +514 X +5334 Y +874 X(`\261interactive')s +1436 X(if)s +1522 X(+folder')s +1874 X(not)s +2027 X(given,)s +2299 X(`\261nointeractive')s +2961 X(otherwise)s +514 X +5538 Y +0.0 8 8 f.B ft(Context)s +514 X +5658 Y +874 X +0.0 10 10 f.I ft(Rmf)s +1068 X +0.0 10 10 f.R ft(will)s +1257 X(set)s +1400 X(the)s +1554 X(current)s +1868 X(folder)s +2138 X(to)s +2248 X(the)s +2402 X(parent)s +2683 X(folder)s +2953 X(if)s +3046 X(a)s +3122 X(subfolder)s +3531 X(is)s +3630 X(removed;)s +4039 X(or)s +4154 X(if)s +4247 X(the)s +4401 X(current)s +4715 X(folder)s +4985 X(is)s +5084 X(re-)s +514 X +5778 Y +874 X(moved,)s +1196 X(it)s +1277 X(will)s +1458 X(make)s +1699 X(``inbox'')s +2084 X(current.)s +2441 X(Otherwise,)s +2901 X(it)s +2982 X(doesn't)s +3301 X(change)s +3608 X(the)s +3755 X(current)s +4062 X(folder)s +4325 X(or)s +4433 X(message.)s +514 X +5982 Y +0.0 8 8 f.B ft(Bugs)s +514 X +6102 Y +874 X +0.0 10 10 f.R ft(Although)s +1298 X(intuitively)s +1756 X(one)s +1946 X(would)s +2242 X(suspect)s +2582 X(that)s +2778 X +0.0 10 10 f.I ft(rmf)s +2963 X +0.0 10 10 f.R ft(works)s +3252 X(recursively,)s +3765 X(it)s +3866 X(does)s +4094 X(not.)s +4317 X(Hence)s +4616 X(if)s +4722 X(you)s +4917 X(have)s +5150 X(a)s +514 X +6222 Y +874 X(sub\261folder)s +1326 X(within)s +1607 X(a)s +1676 X(folder,)s +1964 X(in)s +2067 X(order)s +2302 X(to)s +2405 X +0.0 10 10 f.I ft(rmf)s +2569 X +0.0 10 10 f.R ft(the)s +2716 X(parent,)s +3015 X(you)s +3190 X(must)s +3410 X(\256rst)s +3591 X +0.0 10 10 f.I ft(rmf)s +3755 X +0.0 10 10 f.R ft(each)s +3962 X(of)s +4070 X(the)s +4217 X(children.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 84 85 + +514 X +600 Y(RMM\(1\))s +2771 X(-84-)s +4818 X(RMM\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(rmm)s +1088 X(\261)s +1163 X(remove)s +1487 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(rmm)s +1088 X([+folder])s +1473 X([msgs])s +1770 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Rmm)s +1112 X +0.0 10 10 f.R ft(removes)s +1483 X(the)s +1638 X(speci\256ed)s +2026 X(messages)s +2436 X(by)s +2569 X(renaming)s +2978 X(the)s +3132 X(message)s +3502 X(\256les)s +3701 X(with)s +3911 X(preceding)s +4336 X(commas.)s +4751 X(Many)s +5016 X(sites)s +514 X +2040 Y +874 X(consider)s +1244 X(\256les)s +1443 X(that)s +1625 X(start)s +1829 X(with)s +2039 X(a)s +2115 X(comma)s +2441 X(to)s +2551 X(be)s +2677 X(a)s +2753 X(temporary)s +3195 X(backup,)s +3540 X(and)s +3716 X(arrange)s +4045 X(for)s +4192 X +0.0 10 10 f.I ft(cron)s +4425 X +0.0 10 10 f.R ft(\(8\))s +4572 X(to)s +4681 X(remove)s +5011 X(such)s +514 X +2160 Y +874 X(\256les)s +1066 X(once)s +1279 X(a)s +1348 X(day.)s +514 X +2400 Y +874 X(If)s +965 X(the)s +1112 X(user)s +1303 X(has)s +1461 X(a)s +1530 X(pro\256le)s +1816 X(component)s +2285 X(such)s +2493 X(as)s +514 X +2640 Y +1234 X(rmmproc:)s +1954 X(/bin/rm)s +514 X +2880 Y +874 X(then)s +1074 X(instead)s +1385 X(of)s +1496 X(simply)s +1797 X(renaming)s +2202 X(the)s +2352 X(message)s +2718 X(\256le,)s +2899 X +0.0 10 10 f.I ft(rmm)s +3110 X +0.0 10 10 f.R ft(will)s +3294 X(call)s +3466 X(the)s +3616 X(named)s +3910 X(program)s +4276 X(to)s +4381 X(delete)s +4646 X(the)s +4795 X(\256le.)s +5000 X(Note)s +514 X +3000 Y +874 X(that)s +1049 X(at)s +1146 X(most)s +1366 X(installations,)s +1900 X +0.0 10 10 f.I ft(cron)s +2133 X +0.0 10 10 f.R ft(\(8\))s +2274 X(is)s +2366 X(told)s +2547 X(to)s +2650 X(remove)s +2974 X(\256les)s +3166 X(that)s +3341 X(begin)s +3588 X(with)s +3791 X(a)s +3860 X(comma)s +4179 X(once)s +4392 X(a)s +4461 X(night.)s +514 X +3240 Y +874 X(Some)s +1127 X(users)s +1357 X(of)s +1465 X(csh)s +1623 X(prefer)s +1885 X(the)s +2032 X(following:)s +514 X +3480 Y +1234 X(alias)s +1442 X(rmm)s +1656 X('re\256le)s +1919 X(+d')s +514 X +3720 Y +874 X(where)s +1142 X(folder)s +1405 X(+d)s +1536 X(is)s +1628 X(a)s +1697 X(folder)s +1960 X(for)s +2101 X(deleted)s +2414 X(messages,)s +2841 X(and)s +514 X +3960 Y +1234 X(alias)s +1442 X(mexp)s +1689 X('rm)s +1858 X(`mhpath)s +2216 X(+d)s +2347 X(all`')s +514 X +4200 Y +874 X(is)s +966 X(used)s +1174 X(to)s +1277 X(``expunge'')s +1772 X(deleted)s +2085 X(messages.)s +514 X +4440 Y +874 X(The)s +1063 X(current)s +1379 X(message)s +1751 X(is)s +1852 X(not)s +2014 X(changed)s +2380 X(by)s +2514 X +0.0 10 10 f.I ft(rmm)s +0.0 10 10 f.R ft(,)s +2756 X(so)s +2879 X(a)s +2957 X +0.0 10 10 f.I ft(next)s +3182 X +0.0 10 10 f.R ft(will)s +3372 X(advance)s +3732 X(to)s +3843 X(the)s +3998 X(next)s +4203 X(message)s +4574 X(in)s +4685 X(the)s +4840 X(folder)s +5111 X(as)s +514 X +4560 Y +874 X(expected.)s +514 X +4722 Y +0.0 8 8 f.B ft(Files)s +514 X +4842 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5046 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +5166 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +5286 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +5406 Y +874 X(rmmproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(delete)s +2525 X(the)s +2672 X(message)s +514 X +5610 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5730 Y +874 X +0.0 10 10 f.R ft(rmf\(1\))s +514 X +5934 Y +0.0 8 8 f.B ft(Defaults)s +514 X +6054 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +6174 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +514 X +6378 Y +0.0 8 8 f.B ft(Context)s +514 X +6498 Y +874 X +0.0 10 10 f.R ft(If)s +965 X(a)s +1034 X(folder)s +1297 X(is)s +1389 X(given,)s +1661 X(it)s +1742 X(will)s +1923 X(become)s +2258 X(the)s +2405 X(current)s +2712 X(folder.)s +514 X +6702 Y +0.0 8 8 f.B ft(Bugs)s +514 X +6822 Y +874 X +0.0 10 10 f.R ft(Since)s +1121 X +0.0 10 10 f.I ft(re\256le)s +1351 X +0.0 10 10 f.R ft(uses)s +1548 X(your)s +1756 X +0.0 10 10 f.I ft(rmmproc)s +2147 X +0.0 10 10 f.R ft(to)s +2250 X(delete)s +2513 X(the)s +2660 X(message,)s +3048 X(the)s +3195 X +0.0 10 10 f.I ft(rmmproc)s +3586 X +0.0 10 10 f.R ft(must)s +3806 X +0.0 10 10 f.B ft(NOT)s +4048 X +0.0 10 10 f.R ft(call)s +4217 X +0.0 10 10 f.I ft(re\256le)s +4447 X +0.0 10 10 f.R ft(without)s +4778 X(specifying)s +514 X +6942 Y +874 X(`\261normmproc',)s +1506 X(or)s +1614 X(you)s +1789 X(will)s +1970 X(create)s +2232 X(an)s +2351 X(in\256nte)s +2632 X(loop.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 85 86 + +514 X +600 Y(SCAN\(1\))s +2771 X(-85-)s +4806 X(SCAN\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(scan)s +1076 X(\261)s +1151 X(produce)s +1497 X(a)s +1566 X(one)s +1735 X(line)s +1910 X(per)s +2062 X(message)s +2425 X(scan)s +2627 X(listing)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(scan)s +1076 X([+folder])s +1461 X([msgs])s +1758 X([\261clear])s +2092 X([\261noclear])s +2526 X([\261form format\256le])s +3280 X([\261format string])s +3940 X([\261header])s +4346 X([\261noheader])s +514 X +1560 Y +1234 X([\261width columns])s +1967 X([\261reverse])s +2395 X([\261noreverse])s +2923 X([\261\256le)s +3159 X(\256lename])s +3561 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Scan)s +1097 X +0.0 10 10 f.R ft(produces)s +1486 X(a)s +1558 X(one\261line\261per\261message)s +2495 X(listing)s +2774 X(of)s +2885 X(the)s +3035 X(speci\256ed)s +3418 X(messages.)s +3873 X(Each)s +4100 X +0.0 10 10 f.I ft(scan)s +4311 X +0.0 10 10 f.R ft(line)s +4489 X(contains)s +4850 X(the)s +5000 X(mes-)s +514 X +2160 Y +874 X(sage)s +1088 X(number)s +1430 X(\(name\),)s +1774 X(the)s +1933 X(date,)s +2160 X(the)s +2318 X(``From:'')s +2731 X(\256eld,)s +2970 X(the)s +3128 X(``Subject'')s +3596 X(\256eld,)s +3835 X(and,)s +4040 X(if)s +4137 X(room)s +4384 X(allows,)s +4706 X(some)s +4953 X(of)s +5072 X(the)s +514 X +2280 Y +874 X(body)s +1099 X(of)s +1207 X(the)s +1354 X(message.)s +1767 X(For)s +1931 X(example:)s +514 X +2520 Y +1234 X(15+)s +1448 X(7/)s +1576 X(5)s +1676 X(Dcrocker)s +2096 X(nned)s +2390 X(<)s +2418 X(>)s +2739 X(if)s +2832 X(the)s +2986 X(body)s +3218 X(is)s +3317 X(su)s +Cff(iciently)s +3799 X(short.)s +4081 X +0.0 10 10 f.I ft(Scan)s +4307 X +0.0 10 10 f.R ft(actually)s +4655 X(reads)s +4897 X(each)s +5111 X(of)s +514 X +3840 Y +874 X(the)s +1023 X(speci\256ed)s +1405 X(messages)s +1809 X(and)s +1980 X(parses)s +2256 X(them)s +2483 X(to)s +2588 X(extract)s +2886 X(the)s +3035 X(desired)s +3350 X(\256elds.)s +3644 X(During)s +3954 X(parsing,)s +4300 X(appropriate)s +4781 X(error)s +5000 X(mes-)s +514 X +3960 Y +874 X(sages)s +1115 X(will)s +1296 X(be)s +1415 X(produced)s +1811 X(if)s +1897 X(there)s +2121 X(are)s +2267 X(format)s +2558 X(errors)s +2815 X(in)s +2918 X(any)s +3087 X(of)s +3195 X(the)s +3342 X(messages.)s +514 X +4200 Y +874 X(The)s +1057 X(`\261header')s +1466 X(switch)s +1755 X(produces)s +2143 X(a)s +2215 X(header)s +2508 X(line)s +2686 X(prior)s +2907 X(to)s +3012 X(the)s +3161 X +0.0 10 10 f.I ft(scan)s +3371 X +0.0 10 10 f.R ft(listing.)s +3699 X(Currently,)s +4134 X(the)s +4283 X(name)s +4526 X(of)s +4636 X(the)s +4785 X(folder)s +5050 X(and)s +514 X +4320 Y +874 X(the)s +1021 X(current)s +1328 X(date)s +1519 X(and)s +1688 X(time)s +1891 X(are)s +2037 X(output)s +2318 X(\(see)s +2503 X(the)s +2650 X +0.0 10 10 f.B ft(HISTORY)s +3137 X +0.0 10 10 f.R ft(section)s +3445 X(for)s +3586 X(more)s +3816 X(information\).)s +514 X +4560 Y +874 X(If)s +968 X(the)s +1118 X(`\261clear')s +1455 X(switch)s +1744 X(is)s +1838 X(used)s +2048 X(and)s +2219 X +0.0 10 10 f.I ft(scan's)s +2501 X +0.0 10 10 f.R ft(output)s +2784 X(is)s +2878 X(directed)s +3226 X(to)s +3331 X(a)s +3402 X(terminal,)s +3787 X(then)s +3986 X +0.0 10 10 f.I ft(scan)s +4196 X +0.0 10 10 f.R ft(will)s +4379 X(consult)s +4695 X(the)s +4844 X +0.0 10 10 f.B ft($TERM)s +514 X +4680 Y +874 X +0.0 10 10 f.R ft(and)s +1050 X +0.0 10 10 f.B ft($TERMCAP)s +1637 X +0.0 10 10 f.R ft(envariables)s +2123 X(to)s +2233 X(determine)s +2664 X(your)s +2879 X(terminal)s +3243 X(type)s +3446 X(in)s +3555 X(order)s +3796 X(to)s +3905 X(\256nd)s +4092 X(out)s +4251 X(how)s +4454 X(to)s +4563 X(clear)s +4787 X(the)s +4940 X(screen)s +514 X +4800 Y +874 X(prior)s +1096 X(to)s +1202 X(exiting.)s +1558 X(If)s +1652 X(the)s +1802 X(`\261clear')s +2139 X(switch)s +2428 X(is)s +2523 X(used)s +2734 X(and)s +2906 X +0.0 10 10 f.I ft(scan's)s +3189 X +0.0 10 10 f.R ft(output)s +3473 X(is)s +3568 X(not)s +3724 X(directed)s +4073 X(to)s +4179 X(a)s +4251 X(terminal)s +4612 X(\(e.g.,)s +4841 X(a)s +4912 X(pipe)s +5111 X(or)s +514 X +4920 Y +874 X(a)s +943 X(\256le\),)s +1154 X(then)s +1351 X +0.0 10 10 f.I ft(scan)s +1559 X +0.0 10 10 f.R ft(will)s +1740 X(send)s +1948 X(a)s +2017 X(formfeed)s +2407 X(prior)s +2626 X(to)s +2729 X(exiting.)s +514 X +5160 Y +874 X(For)s +1038 X(example,)s +1426 X(the)s +1573 X(command:)s +514 X +5400 Y +1234 X(\(scan)s +1469 X(\261clear)s +1737 X(\261header;)s +2105 X(show)s +2341 X(all)s +2466 X(\261show)s +2752 X(pr)s +2860 X(\261f\))s +3001 X(|)s +3046 X(lpr)s +514 X +5640 Y +874 X(produces)s +1264 X(a)s +1338 X(scan)s +1545 X(listing)s +1826 X(of)s +1939 X(the)s +2091 X(current)s +2402 X(folder,)s +2694 X(followed)s +3078 X(by)s +3207 X(a)s +3280 X(formfeed,)s +3699 X(followed)s +4083 X(by)s +4212 X(a)s +4285 X(formatted)s +4702 X(listing)s +4982 X(of)s +5094 X(all)s +514 X +5760 Y +874 X(messages)s +1283 X(in)s +1393 X(the)s +1547 X(folder,)s +1842 X(one)s +2018 X(per)s +2177 X(page.)s +2447 X(Omitting)s +2841 X(`\261show pr \261f')s +3415 X(will)s +3602 X(cause)s +3854 X(the)s +4007 X(messages)s +4415 X(to)s +4524 X(be)s +4649 X(concatenated,)s +514 X +5880 Y +874 X(separated)s +1275 X(by)s +1400 X(a)s +1469 X(one\261line)s +1838 X(header)s +2128 X(and)s +2297 X(two)s +2472 X(blank)s +2719 X(lines.)s +514 X +6120 Y +874 X(If)s +975 X +0.0 10 10 f.I ft(scan)s +1193 X +0.0 10 10 f.R ft(encounters)s +1660 X(a)s +1739 X(message)s +2112 X(without)s +2453 X(a)s +2532 X(``Date:'')s +2915 X(\256eld,)s +3152 X(rather)s +3418 X(than)s +3624 X(leaving)s +3952 X(that)s +4136 X(portion)s +4459 X(of)s +4576 X(the)s +4732 X(scan)s +4943 X(listing)s +514 X +6240 Y +874 X(blank,)s +1147 X(the)s +1295 X(date)s +1486 X(is)s +1578 X(\256lled\261in)s +1937 X(with)s +2140 X(the)s +2287 X(last)s +2451 X(write)s +2681 X(date)s +2872 X(of)s +2980 X(the)s +3127 X(message,)s +3515 X(and)s +3684 X(post\261\256xed)s +4126 X(with)s +4329 X(a)s +4398 X(`*'.)s +4589 X(This)s +4792 X(is)s +4884 X(particu-)s +514 X +6360 Y +874 X(larly)s +1082 X(handy)s +1351 X(for)s +1492 X(scanning)s +1872 X(a)s +1941 X +0.0 10 10 f.I ft(draft)s +2161 X(folder)s +0.0 10 10 f.R ft(,)s +2450 X(as)s +2558 X(message)s +2921 X(drafts)s +3173 X(usually)s +3487 X(aren't)s +3744 X(allowed)s +4085 X(to)s +4188 X(have)s +4401 X(dates)s +4631 X(in)s +4734 X(them.)s +514 X +6600 Y +874 X(To)s +1011 X(override)s +1369 X(the)s +1517 X(output)s +1798 X(format)s +2089 X(used)s +2297 X(by)s +2422 X +0.0 10 10 f.I ft(scan)s +0.0 10 10 f.R ft(,)s +2655 X(the)s +2802 X(`\261format string')s +3462 X(or)s +3570 X(`\261form \256le')s +4058 X(switches)s +4427 X(are)s +4573 X(used.)s +4831 X(This)s +5034 X(per-)s +514 X +6720 Y +874 X(mits)s +1076 X(individual)s +1511 X(\256elds)s +1757 X(of)s +1869 X(the)s +2020 X(scan)s +2226 X(listing)s +2506 X(to)s +2613 X(be)s +2736 X(extracted)s +3130 X(with)s +3337 X(ease.)s +3587 X(The)s +3771 X(string)s +4028 X(is)s +4124 X(simply)s +4426 X(a)s +4499 X(format)s +4794 X(string)s +5050 X(and)s +514 X +6840 Y +874 X(the)s +1021 X(\256le)s +1174 X(is)s +1266 X(simply)s +1564 X(a)s +1633 X(format)s +1924 X(\256le.)s +2127 X(See)s +2296 X +0.0 10 10 f.I ft(mh\261format)s +2785 X +0.0 10 10 f.R ft(\(5\))s +2926 X(for)s +3067 X(the)s +3214 X(details.)s +514 X +7080 Y +874 X(In)s +1020 X(addition)s +1411 X(to)s +1552 X(the)s +1737 X(standard)s +2138 X +0.0 10 10 f.I ft(mh\261format)s +2627 X +0.0 10 10 f.R ft(\(5\))s +2806 X(escapes,)s +3198 X +0.0 10 10 f.I ft(scan)s +3444 X +0.0 10 10 f.R ft(also)s +3668 X(recognizes)s +4157 X(the)s +4342 X(following)s +4794 X(additional)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 86 87 + +514 X +600 Y(SCAN\(1\))s +2771 X(-86-)s +4806 X(SCAN\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.I ft(component)s +1337 X +0.0 10 10 f.R ft(escapes:)s +514 X +1200 Y +874 X +0.0 10 10 f.I ft(Escape)s +1346 X(Returns)s +1707 X(Description)s +514 X +1320 Y +874 X +0.0 10 10 f.R ft(body)s +1346 X(string)s +1707 X(the)s +1854 X(\(compressed\))s +2416 X(\256rst)s +2597 X(part)s +2777 X(of)s +2885 X(the)s +3032 X(body)s +514 X +1440 Y +874 X(dtimenow)s +1346 X(date)s +1707 X(the)s +1854 X(current)s +2161 X(date)s +514 X +1560 Y +874 X(folder)s +1346 X(string)s +1707 X(the)s +1854 X(name)s +2095 X(of)s +2203 X(the)s +2350 X(current)s +2657 X(folder)s +514 X +1800 Y +874 X(Also,)s +1128 X(if)s +1229 X(no)s +1369 X(date)s +1575 X(header)s +1880 X(was)s +2075 X(present)s +2403 X(in)s +2521 X(the)s +2683 X(message,)s +3086 X(the)s +3248 X +0.0 10 10 f.I ft(function)s +3616 X +0.0 10 10 f.R ft(escapes)s +3960 X(which)s +4243 X(operate)s +4575 X(on)s +4714 X({)s +0.0 10 10 f.I ft(date)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(})s +5038 X(will)s +514 X +1920 Y +874 X(return)s +1137 X(values)s +1417 X(for)s +1558 X(the)s +1705 X(date)s +1896 X(of)s +2004 X(last)s +2168 X(modi\256cation)s +2699 X(of)s +2807 X(the)s +2954 X(message)s +3317 X(\256le)s +3470 X(itself.)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(scan)s +1083 X +0.0 10 10 f.R ft(will)s +1265 X(update)s +1557 X(the)s +1705 X +0.0 10 10 f.I ft(MH)s +1886 X +0.0 10 10 f.R ft(context)s +2206 X(prior)s +2426 X(to)s +2530 X(starting)s +2856 X(the)s +3003 X(listing,)s +3304 X(so)s +3418 X(interrupting)s +3915 X(a)s +3984 X(long)s +4187 X +0.0 10 10 f.I ft(scan)s +4395 X +0.0 10 10 f.R ft(listing)s +4671 X(preserves)s +5072 X(the)s +514 X +2280 Y +874 X(new)s +1065 X(context.)s +1434 X +0.0 10 10 f.I ft(MH)s +1614 X +0.0 10 10 f.R ft(purists)s +1906 X(hate)s +2097 X(this)s +2267 X(idea.)s +514 X +2442 Y +0.0 8 8 f.B ft(Files)s +514 X +2562 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +2766 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +2886 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3006 Y +874 X(Alternate\261Mailboxes:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(mailboxes)s +514 X +3126 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +3330 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3450 Y +874 X +0.0 10 10 f.R ft(inc\(1\),)s +1162 X(pick\(1\),)s +1500 X(show\(1\),)s +1877 X(mh\261format\(5\))s +514 X +3654 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3774 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(folder)s +2113 X(current)s +514 X +3894 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(all)s +514 X +4014 Y +874 X(`\261format')s +1281 X(defaulted)s +1677 X(as)s +1785 X(described)s +2192 X(above)s +514 X +4134 Y +874 X(`\261noheader')s +514 X +4254 Y +874 X(`\261width')s +1243 X(defaulted)s +1639 X(to)s +1742 X(the)s +1889 X(width)s +2142 X(of)s +2250 X(the)s +2397 X(terminal)s +514 X +4458 Y +0.0 8 8 f.B ft(Context)s +514 X +4578 Y +874 X +0.0 10 10 f.R ft(If)s +965 X(a)s +1034 X(folder)s +1297 X(is)s +1389 X(given,)s +1661 X(it)s +1742 X(will)s +1923 X(become)s +2258 X(the)s +2405 X(current)s +2712 X(folder.)s +514 X +4782 Y +0.0 8 8 f.B ft(History)s +514 X +4902 Y +874 X +0.0 10 10 f.R ft(Prior)s +1103 X(to)s +1210 X(using)s +1456 X(the)s +1607 X(format)s +1902 X(string)s +2158 X(mechanism,)s +2666 X(`\261header')s +3075 X(used)s +3286 X(to)s +3392 X(generate)s +3757 X(a)s +3829 X(heading)s +4173 X(saying)s +4462 X(what)s +4684 X(each)s +4894 X(column)s +514 X +5022 Y +874 X(in)s +977 X(the)s +1124 X(listing)s +1400 X(was.)s +1630 X(Format)s +1944 X(strings)s +2236 X(prevent)s +2560 X(this)s +2730 X(from)s +2949 X(happening.)s +514 X +5226 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5346 Y +874 X +0.0 10 10 f.R ft(The)s +1060 X(argument)s +1468 X(to)s +1577 X(the)s +1730 X(`\261format')s +2143 X(switch)s +2435 X(must)s +2661 X(be)s +2786 X(interpreted)s +3249 X(as)s +3363 X(a)s +3438 X(single)s +3708 X(token)s +3961 X(by)s +4092 X(the)s +4245 X(shell)s +4465 X(that)s +4645 X(invokes)s +4986 X +0.0 10 10 f.I ft(scan)s +0.0 10 10 f.R ft(.)s +514 X +5466 Y +874 X(Therefore,)s +1316 X(one)s +1485 X(must)s +1705 X(usually)s +2019 X(place)s +2254 X(the)s +2401 X(argument)s +2803 X(to)s +2906 X(this)s +3076 X(switch)s +3362 X(inside)s +3626 X(double\261quotes.)s +514 X +5586 Y +874 X(The)s +1067 X(value)s +1321 X(of)s +1442 X(each)s +1662 X +0.0 10 10 f.I ft(component)s +2138 X +0.0 10 10 f.R ft(escape)s +2441 X(is)s +2546 X(set)s +2695 X(by)s +2833 X +0.0 10 10 f.I ft(scan)s +3054 X +0.0 10 10 f.R ft(to)s +3169 X(the)s +3328 X(contents)s +3698 X(of)s +3818 X(the)s +3977 X(\256rst)s +4170 X(message)s +4545 X(header)s +4847 X +0.0 10 10 f.I ft(scan)s +5067 X +0.0 10 10 f.R ft(en-)s +514 X +5706 Y +874 X(counters)s +1245 X(with)s +1456 X(the)s +1611 X(corresponding)s +2215 X(component)s +2692 X(name;)s +2968 X(any)s +3144 X(following)s +3565 X(headers)s +3901 X(with)s +4111 X(the)s +4265 X(same)s +4502 X(component)s +4978 X(name)s +514 X +5826 Y +874 X(are)s +1020 X(ignored.)s +514 X +6066 Y +874 X(The)s +1054 X(switch)s +1340 X(`\261reverse',)s +1793 X(makes)s +2073 X +0.0 10 10 f.I ft(scan)s +2281 X +0.0 10 10 f.R ft(list)s +2429 X(the)s +2576 X(messages)s +2978 X(in)s +3081 X(reverse)s +3393 X(order;)s +3656 X(this)s +3826 X(should)s +4118 X(be)s +4237 X(considered)s +4694 X(a)s +4763 X(bug.)s +514 X +6306 Y +874 X(The)s +1058 X(`\261\256le)s +1298 X(\256lename')s +1704 X(switch)s +1994 X(allows)s +2284 X(the)s +2435 X(user)s +2630 X(to)s +2737 X(obtain)s +3016 X(a)s +3089 X +0.0 10 10 f.I ft(scan)s +3301 X +0.0 10 10 f.R ft(listing)s +3581 X(of)s +3693 X(a)s +3766 X(maildrop)s +4156 X(\256le)s +4313 X(as)s +4425 X(produced)s +4825 X(by)s +4953 X +0.0 10 10 f.I ft(packf)s +0.0 10 10 f.R ft(.)s +514 X +6426 Y +874 X(This)s +1085 X(listing)s +1369 X(includes)s +1735 X(every)s +1989 X(message)s +2360 X(in)s +2471 X(the)s +2626 X(\256le.)s +2837 X(The)s +3025 X(user)s +3224 X(should)s +3524 X(use)s +3690 X +0.0 10 10 f.I ft(msh)s +3884 X +0.0 10 10 f.R ft(for)s +4033 X(more)s +4271 X(selective)s +4652 X(processing)s +5111 X(of)s +514 X +6546 Y +874 X(the)s +1021 X(\256le.)s +1224 X(`\261reverse')s +1652 X(is)s +1744 X(ignored)s +2074 X(with)s +2277 X(this)s +2447 X(option.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 87 88 + +514 X +600 Y(SEND\(1\))s +2771 X(-87-)s +4811 X(SEND\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(send)s +1082 X(\261)s +1157 X(send)s +1365 X(a)s +1434 X(message)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(send)s +1082 X([\261alias alias\256le])s +1742 X([\261draft])s +2071 X([\261draftfolder +folder])s +2957 X([\261draftmessage msg])s +3816 X([\261nodraftfolder])s +4483 X([\261\256lter \256lter\256le])s +514 X +1560 Y +1234 X([\261no\256lter])s +1664 X([\261format])s +2071 X([\261noformat])s +2578 X([\261forward])s +3034 X([\261noforward])s +3590 X([\261mime])s +3959 X([\261nomime])s +4428 X([\261msgid])s +514 X +1680 Y +1234 X([\261nomsgid])s +1720 X([\261push])s +2050 X([\261nopush])s +2480 X([\261split seconds])s +3135 X([\261verbose])s +3586 X([\261noverbose])s +4137 X([\261watch])s +4516 X([\261nowatch])s +514 X +1800 Y +1234 X([\261width columns])s +1967 X([\256le ...])s +2286 X([\261help])s +514 X +2040 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2280 Y +874 X +0.0 10 10 f.I ft(Send)s +1102 X +0.0 10 10 f.R ft(will)s +1292 X(cause)s +1547 X(each)s +1763 X(of)s +1880 X(the)s +2036 X(speci\256ed)s +2424 X(\256les)s +2624 X(to)s +2735 X(be)s +2862 X(delivered)s +3266 X(\(via)s +3454 X +0.0 10 10 f.I ft(post)s +3671 X +0.0 10 10 f.R ft(\(8\)\))s +3853 X(to)s +3964 X(each)s +4179 X(of)s +4295 X(the)s +4450 X(destinations)s +4961 X(in)s +5072 X(the)s +514 X +2400 Y +874 X(``To:'',)s +1198 X(``cc:'',)s +1499 X(``Bcc:'',)s +1867 X(and)s +2039 X(``Fcc:'')s +2370 X(\256elds)s +2614 X(of)s +2724 X(the)s +2873 X(message.)s +3288 X(If)s +3381 X +0.0 10 10 f.I ft(send)s +3591 X +0.0 10 10 f.R ft(is)s +3685 X(re\261distributing)s +4301 X(a)s +4372 X(message,)s +4762 X(as)s +4872 X(invoked)s +514 X +2520 Y +874 X(from)s +1093 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +1288 X(then)s +1485 X(the)s +1632 X(corresponding)s +2228 X(``Resent\261xxx'')s +2857 X(\256elds)s +3099 X(are)s +3245 X(examined)s +3658 X(instead.)s +514 X +2760 Y +874 X(If)s +971 X(`\261push')s +1307 X(is)s +1405 X(speci\256ed,)s +1816 X +0.0 10 10 f.I ft(send)s +2030 X +0.0 10 10 f.R ft(will)s +2217 X(detach)s +2508 X(itself)s +2739 X(from)s +2964 X(the)s +3117 X(user's)s +3386 X(terminal)s +3750 X(and)s +3924 X(perform)s +4275 X(its)s +4400 X(actions)s +4713 X(in)s +4821 X(the)s +4973 X(back-)s +514 X +2880 Y +874 X(ground.)s +1244 X(If)s +1347 X +0.0 10 10 f.I ft(push)s +1586 X +0.0 10 10 f.R ft('d)s +1706 X(and)s +1887 X(the)s +2046 X(draft)s +2271 X(can't)s +2507 X(be)s +2638 X(sent,)s +2861 X(then)s +3070 X(the)s +3229 X(`\261forward')s +3697 X(switch)s +3994 X(says)s +4202 X(that)s +4388 X(draft)s +4612 X(should)s +4915 X(be)s +5045 X(for-)s +514 X +3000 Y +874 X(warded)s +1201 X(with)s +1413 X(the)s +1569 X(failure)s +1863 X(notice)s +2141 X(sent)s +2335 X(to)s +2446 X(the)s +2601 X(user.)s +2850 X(This)s +3061 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ers)s +3349 X(from)s +3576 X(putting)s +3893 X +0.0 10 10 f.I ft(send)s +4109 X +0.0 10 10 f.R ft(in)s +4220 X(the)s +4375 X(background)s +4879 X(because)s +514 X +3120 Y +874 X(the)s +1021 X(output)s +1302 X(is)s +1394 X(trapped)s +1718 X(and)s +1887 X(analyzed)s +2266 X(by)s +2391 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +514 X +3360 Y +874 X(If)s +976 X(`\261verbose')s +1437 X(is)s +1539 X(speci\256ed,)s +1954 X +0.0 10 10 f.I ft(send)s +2172 X +0.0 10 10 f.R ft(will)s +2363 X(indicate)s +2714 X(the)s +2871 X(interactions)s +3372 X(occurring)s +3789 X(with)s +4002 X(the)s +4159 X(transport)s +4549 X(system,)s +4887 X(prior)s +5116 X(to)s +514 X +3480 Y +874 X(actual)s +1144 X(delivery.)s +1553 X(If)s +1651 X(`\261watch')s +2037 X(is)s +2136 X(speci\256ed)s +2523 X +0.0 10 10 f.I ft(send)s +2738 X +0.0 10 10 f.R ft(will)s +2925 X(monitor)s +3273 X(the)s +3426 X(delivery)s +3784 X(of)s +3898 X(local)s +4123 X(and)s +4298 X(network)s +4656 X(mail.)s +4915 X(Hence,)s +514 X +3600 Y +874 X(by)s +1003 X(specifying)s +1448 X(both)s +1655 X(switches,)s +2053 X(a)s +2126 X(large)s +2354 X(detail)s +2604 X(of)s +2715 X(information)s +3215 X(can)s +3381 X(be)s +3503 X(gathered)s +3874 X(about)s +4124 X(each)s +4334 X(step)s +4523 X(of)s +4634 X(the)s +4784 X(message's)s +514 X +3720 Y +874 X(entry)s +1104 X(into)s +1285 X(the)s +1432 X(transport)s +1812 X(system.)s +514 X +3960 Y +874 X(The)s +1055 X(`\261draftfolder +folder')s +1942 X(and)s +2112 X(`\261draftmessage msg')s +2972 X(switches)s +3342 X(invoke)s +3640 X(the)s +3788 X +0.0 10 10 f.I ft(MH)s +3969 X +0.0 10 10 f.R ft(draft)s +4183 X(folder)s +4447 X(facility.)s +4805 X(This)s +5008 X(is)s +5100 X(an)s +514 X +4080 Y +874 X(advanced)s +1278 X(\(and)s +1483 X(highly)s +1767 X(useful\))s +2072 X(feature.)s +2426 X(Consult)s +2766 X(the)s +2916 X +0.0 10 10 f.B ft(Advanced)s +3372 X(Features)s +3771 X +0.0 10 10 f.R ft(section)s +4082 X(of)s +4193 X(the)s +4343 X +0.0 10 10 f.I ft(MH)s +4525 X +0.0 10 10 f.R ft(manual)s +4846 X(for)s +4989 X(more)s +514 X +4200 Y +874 X(information.)s +514 X +4440 Y +874 X(If)s +977 X(`\261split')s +1303 X(is)s +1407 X(speci\256ed,)s +1824 X +0.0 10 10 f.I ft(send)s +2044 X +0.0 10 10 f.R ft(will)s +2237 X(split)s +2447 X(the)s +2606 X(draft)s +2831 X(into)s +3024 X(one)s +3205 X(or)s +3325 X(more)s +3567 X(partial)s +3859 X(messages)s +4273 X(prior)s +4504 X(to)s +4619 X(sending.)s +5016 X(This)s +514 X +4560 Y +874 X(makes)s +1159 X(use)s +1322 X(of)s +1435 X(the)s +1586 X(multi-media)s +2104 X(content)s +2427 X(feature)s +2732 X(in)s +2839 X(MH.)s +3079 X(Note)s +3302 X(however)s +3674 X(that)s +3853 X(if)s +3943 X +0.0 10 10 f.I ft(send)s +4155 X +0.0 10 10 f.R ft(is)s +4251 X(invoked)s +4602 X(under)s +4858 X +0.0 10 10 f.I ft(dist)s +5053 X +0.0 10 10 f.R ft(\(1\),)s +514 X +4680 Y +874 X(then)s +1078 X(this)s +1255 X(switch)s +1548 X(is)s +1647 X(ignored)s +2002 X(--)s +2118 X(it)s +2205 X(makes)s +2491 X(no)s +2622 X(sense)s +2869 X(to)s +2978 X(redistribute)s +3464 X(a)s +3539 X(message)s +3908 X(in)s +4017 X(this)s +4193 X(fashion.)s +4568 X(Sometimes)s +5044 X(you)s +514 X +4800 Y +874 X(want)s +1096 X +0.0 10 10 f.I ft(send)s +1307 X +0.0 10 10 f.R ft(to)s +1412 X(pause)s +1666 X(after)s +1875 X(posting)s +2197 X(a)s +2268 X(partial)s +2550 X(message.)s +2965 X(This)s +3170 X(is)s +3264 X(usually)s +3580 X(the)s +3729 X(case)s +3927 X(when)s +4170 X(you)s +4347 X(are)s +4495 X(running)s +4833 X +0.0 10 10 f.I ft(sendmail)s +514 X +4920 Y +874 X +0.0 10 10 f.R ft(and)s +1044 X(expect)s +1330 X(to)s +1433 X(generate)s +1795 X(a)s +1864 X(lot)s +1995 X(of)s +2103 X(partial)s +2383 X(messages.)s +2835 X(The)s +3015 X(argument)s +3417 X(to)s +3520 X(`\261split')s +3834 X(tells)s +4026 X(it)s +4107 X(how)s +4304 X(long)s +4507 X(to)s +4610 X(pause)s +4862 X(between)s +514 X +5040 Y +874 X(postings.)s +514 X +5280 Y +874 X +0.0 10 10 f.I ft(Send)s +1099 X +0.0 10 10 f.R ft(with)s +1308 X(no)s +1439 X +0.0 10 10 f.I ft(\256le)s +1592 X +0.0 10 10 f.R ft(argument)s +2000 X(will)s +2187 X(query)s +2445 X(whether)s +2797 X(the)s +2950 X(draft)s +3168 X(is)s +3265 X(the)s +3417 X(intended)s +3791 X(\256le,)s +3974 X(whereas)s +4330 X(`\261draft')s +4664 X(will)s +4850 X(suppress)s +514 X +5400 Y +874 X(this)s +1049 X(question.)s +1468 X(Once)s +1708 X(the)s +1860 X(transport)s +2245 X(system)s +2553 X(has)s +2716 X(successfully)s +3234 X(accepted)s +3612 X(custody)s +3952 X(of)s +4064 X(the)s +4215 X(message,)s +4607 X(the)s +4758 X(\256le)s +4915 X(will)s +5100 X(be)s +514 X +5520 Y +874 X(renamed)s +1244 X(with)s +1449 X(a)s +1520 X(leading)s +1841 X(comma,)s +2187 X(which)s +2458 X(allows)s +2746 X(it)s +2829 X(to)s +2934 X(be)s +3055 X(retrieved)s +3436 X(until)s +3647 X(the)s +3796 X(next)s +3995 X(draft)s +4209 X(message)s +4573 X(is)s +4666 X(sent.)s +4903 X(If)s +4995 X(there)s +514 X +5640 Y +874 X(are)s +1020 X(errors)s +1277 X(in)s +1380 X(the)s +1527 X(formatting)s +1974 X(of)s +2082 X(the)s +2229 X(message,)s +2617 X +0.0 10 10 f.I ft(send)s +2825 X +0.0 10 10 f.R ft(will)s +3006 X(abort)s +3236 X(with)s +3439 X(a)s +3508 X(\(hopefully\))s +3982 X(helpful)s +4290 X(error)s +4508 X(message.)s +514 X +5880 Y +874 X(If)s +982 X(a)s +1068 X(``Bcc:'')s +1425 X(\256eld)s +1645 X(is)s +1754 X(encountered,)s +2308 X(its)s +2445 X(addresses)s +2869 X(will)s +3067 X(be)s +3203 X(used)s +3428 X(for)s +3586 X(delivery,)s +3980 X(and)s +4165 X(the)s +4328 X(``Bcc:'')s +4684 X(\256eld)s +4903 X(will)s +5100 X(be)s +514 X +6000 Y +874 X(removed)s +1248 X(from)s +1467 X(the)s +1614 X(message)s +1977 X(sent)s +2163 X(to)s +2266 X(sighted)s +2580 X(recipients.)s +3043 X(The)s +3223 X(blind)s +3454 X(recipients)s +3867 X(will)s +4048 X(receive)s +4360 X(an)s +4479 X(entirely)s +4809 X(new)s +5000 X(mes-)s +514 X +6120 Y +874 X(sage)s +1078 X(with)s +1283 X(a)s +1354 X(minimal)s +1715 X(set)s +1853 X(of)s +1963 X(headers.)s +2344 X(Included)s +2720 X(in)s +2825 X(the)s +2973 X(body)s +3199 X(of)s +3308 X(the)s +3456 X(message)s +3820 X(will)s +4002 X(be)s +4122 X(a)s +4192 X(copy)s +4412 X(of)s +4521 X(the)s +4669 X(message)s +5033 X(sent)s +514 X +6240 Y +874 X(to)s +987 X(the)s +1144 X(sighted)s +1468 X(recipients.)s +1941 X(If)s +2042 X(`\261\256lter \256lter\256le')s +2724 X(is)s +2826 X(speci\256ed,)s +3241 X(then)s +3448 X(this)s +3627 X(copy)s +3855 X(is)s +3956 X(\256ltered)s +4273 X(\(re\261formatted\))s +4888 X(prior)s +5116 X(to)s +514 X +6360 Y +874 X(being)s +1123 X(sent)s +1311 X(to)s +1416 X(the)s +1565 X(blind)s +1798 X(recipients.)s +2263 X(Otherwise,)s +2725 X(to)s +2830 X(use)s +2990 X(the)s +3139 X(MIME)s +3438 X(rules)s +3659 X(for)s +3802 X(encapsulation,)s +4403 X(specify)s +4718 X(the)s +4867 X(`-mime')s +514 X +6480 Y +874 X(switch.)s +514 X +6720 Y +874 X(Prior)s +1111 X(to)s +1226 X(sending)s +1574 X(the)s +1732 X(message,)s +2131 X(the)s +2289 X(\256elds)s +2542 X(``From: user@local'',)s +3457 X(and)s +3637 X(``Date: now'')s +4218 X(will)s +4410 X(be)s +4540 X(appended)s +4958 X(to)s +5072 X(the)s +514 X +6840 Y +874 X(headers)s +1216 X(in)s +1332 X(the)s +1492 X(message.)s +1918 X(If)s +2022 X(the)s +2182 X(envariable)s +2635 X +0.0 10 10 f.B ft($SIGNATURE)s +3318 X +0.0 10 10 f.R ft(is)s +3423 X(set,)s +3597 X(then)s +3807 X(its)s +3939 X(value)s +4192 X(is)s +4296 X(used)s +4516 X(as)s +4636 X(your)s +4856 X(personal)s +514 X +6960 Y +874 X(name)s +1119 X(when)s +1364 X(constructing)s +1887 X(the)s +2037 X(``From:'')s +2442 X(line)s +2620 X(of)s +2731 X(the)s +2881 X(message.)s +3297 X(If)s +3391 X(this)s +3564 X(envariable)s +4007 X(is)s +4102 X(not)s +4258 X(set,)s +4422 X(then)s +4622 X +0.0 10 10 f.I ft(send)s +4833 X +0.0 10 10 f.R ft(will)s +5017 X(con-)s +514 X +7080 Y +874 X(sult)s +1051 X(the)s +1205 X(pro\256le)s +1498 X(entry)s +1735 X(``Signature'')s +2282 X(for)s +2430 X(this)s +2607 X(information.)s +3161 X(On)s +3315 X(hosts)s +3553 X(where)s +3828 X +0.0 10 10 f.I ft(MH)s +4015 X +0.0 10 10 f.R ft(was)s +4202 X(con\256gured)s +4660 X(with)s +4869 X(the)s +5022 X(UCI)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 88 89 + +514 X +600 Y(SEND\(1\))s +2771 X(-88-)s +4811 X(SEND\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(option,)s +1209 X(if)s +1324 X +0.0 10 10 f.B ft($SIGNATURE)s +2022 X +0.0 10 10 f.R ft(is)s +2142 X(not)s +2323 X(set)s +2487 X(and)s +2684 X(the)s +2859 X(``Signature'')s +3427 X(pro\256le)s +3741 X(entry)s +3999 X(is)s +4119 X(not)s +4300 X(present,)s +4666 X(then)s +4891 X(the)s +5066 X(\256le)s +514 X +1080 Y +874 X +0.0 10 10 f.B ft($HOME)s +0.0 10 10 f.R ft(/.signature)s +1685 X(is)s +1777 X(consulted.)s +2235 X(If)s +2326 X(`\261msgid')s +2712 X(is)s +2804 X(speci\256ed,)s +3209 X(then)s +3406 X(a)s +3475 X(``Message\261ID:'')s +4164 X(\256eld)s +4367 X(will)s +4548 X(also)s +4734 X(be)s +4853 X(added)s +5116 X(to)s +514 X +1200 Y +874 X(the)s +1021 X(message.)s +514 X +1440 Y +874 X(If)s +968 X +0.0 10 10 f.I ft(send)s +1179 X +0.0 10 10 f.R ft(is)s +1274 X(re\261distributing)s +1891 X(a)s +1963 X(message)s +2329 X(\(when)s +2606 X(invoked)s +2956 X(by)s +3084 X +0.0 10 10 f.I ft(dist)s +3279 X +0.0 10 10 f.R ft(\),)s +3365 X(then)s +3565 X(``Resent\261'')s +4047 X(will)s +4231 X(be)s +4353 X(prepended)s +4796 X(to)s +4902 X(each)s +5111 X(of)s +514 X +1560 Y +874 X(these)s +1115 X(\256elds:)s +1396 X(``From:'',)s +1834 X(``Date:'',)s +2243 X(and)s +2423 X(``Message\261ID:''.)s +3173 X(If)s +3274 X(the)s +3431 X(message)s +3804 X(already)s +4132 X(contains)s +4500 X(a)s +4579 X(``From:'')s +4991 X(\256eld,)s +514 X +1680 Y +874 X(then)s +1071 X(a)s +1140 X(``Sender:)s +1536 X(user@local'')s +2079 X(\256eld)s +2282 X(will)s +2463 X(be)s +2582 X(added)s +2845 X(as)s +2953 X(well.)s +3200 X(\(An)s +3380 X(already)s +3698 X(existing)s +4040 X(``Sender:'')s +4502 X(\256eld)s +4705 X(is)s +4797 X(an)s +4916 X(error!\))s +514 X +1920 Y +874 X(By)s +1030 X(using)s +1286 X(the)s +1447 X(`\261format')s +1868 X(switch,)s +2193 X(each)s +2414 X(of)s +2536 X(the)s +2697 X(entries)s +3002 X(in)s +3119 X(the)s +3280 X(``To:'')s +3590 X(and)s +3773 X(``cc:'')s +4060 X(\256elds)s +4315 X(will)s +4509 X(be)s +4641 X(replaced)s +5016 X(with)s +514 X +2040 Y +874 X(``standard'')s +1371 X(format)s +1664 X(entries.)s +2007 X(This)s +2212 X(standard)s +2577 X(format)s +2870 X(is)s +2964 X(designed)s +3346 X(to)s +3451 X(be)s +3572 X(usable)s +3854 X(by)s +3981 X(all)s +4108 X(of)s +4218 X(the)s +4366 X(message)s +4730 X(handlers)s +5094 X(on)s +514 X +2160 Y +874 X(the)s +1032 X(various)s +1362 X(systems)s +1715 X(around)s +2028 X(the)s +2186 X(Internet.)s +2582 X(If)s +2684 X(`\261noformat')s +3202 X(is)s +3305 X(given,)s +3588 X(then)s +3795 X(headers)s +4134 X(are)s +4290 X(output)s +4581 X(exactly)s +4904 X(as)s +5022 X(they)s +514 X +2280 Y +874 X(appear)s +1164 X(in)s +1267 X(the)s +1414 X(message)s +1777 X(draft.)s +514 X +2520 Y +874 X(If)s +971 X(an)s +1096 X(``Fcc: folder'')s +1694 X(is)s +1792 X(encountered,)s +2335 X(the)s +2488 X(message)s +2857 X(will)s +3043 X(be)s +3167 X(copied)s +3463 X(to)s +3571 X(the)s +3723 X(speci\256ed)s +4108 X(folder)s +4376 X(for)s +4522 X(the)s +4674 X(sender)s +4964 X(in)s +5072 X(the)s +514 X +2640 Y +874 X(format)s +1169 X(in)s +1276 X(which)s +1549 X(it)s +1634 X(will)s +1819 X(appear)s +2113 X(to)s +2220 X(any)s +2393 X(non\261Bcc)s +2777 X(receivers)s +3165 X(of)s +3277 X(the)s +3428 X(message.)s +3845 X(That)s +4057 X(is,)s +4178 X(it)s +4262 X(will)s +4446 X(have)s +4662 X(the)s +4812 X(appended)s +514 X +2760 Y +874 X(\256elds)s +1116 X(and)s +1285 X(\256eld)s +1488 X(reformatting.)s +2062 X(The)s +2242 X(``Fcc:'')s +2571 X(\256elds)s +2813 X(will)s +2994 X(be)s +3113 X(removed)s +3487 X(from)s +3706 X(all)s +3831 X(outgoing)s +4212 X(copies)s +4492 X(of)s +4600 X(the)s +4747 X(message.)s +514 X +3000 Y +874 X(By)s +1021 X(using)s +1268 X(the)s +1420 X(`\261width columns')s +2158 X(switch,)s +2474 X(the)s +2626 X(user)s +2822 X(can)s +2990 X(direct)s +3246 X +0.0 10 10 f.I ft(send)s +3458 X +0.0 10 10 f.R ft(as)s +3570 X(to)s +3677 X(how)s +3878 X(long)s +4085 X(it)s +4170 X(should)s +4466 X(make)s +4711 X(header)s +5005 X(lines)s +514 X +3120 Y +874 X(containing)s +1321 X(addresses.)s +514 X +3360 Y +874 X(The)s +1074 X(\256les)s +1286 X(speci\256ed)s +1686 X(by)s +1831 X(the)s +1997 X(pro\256le)s +2302 X(entry)s +2551 X(``Alias\256le:'')s +3094 X(and)s +3282 X(any)s +3470 X(additional)s +3914 X(alias)s +4141 X(\256les)s +4352 X(given)s +4618 X(by)s +4762 X(the)s +4928 X(`\261alias)s +514 X +3480 Y +874 X(alias\256le')s +1270 X(switch)s +1583 X(will)s +1791 X(be)s +1937 X(read)s +2160 X(\(more)s +2450 X(than)s +2674 X(one)s +2870 X(\256le,)s +3075 X(each)s +3334 X(preceeded)s +3789 X(by)s +3941 X(`\261alias',)s +4316 X(can)s +4505 X(be)s +4650 X(named\).)s +5050 X(See)s +514 X +3600 Y +874 X +0.0 10 10 f.I ft(mh\261alias)s +1291 X +0.0 10 10 f.R ft(\(5\))s +1432 X(for)s +1573 X(more)s +1803 X(information.)s +514 X +3762 Y +0.0 8 8 f.B ft(Files)s +514 X +3882 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4086 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4206 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +4326 Y +874 X(Draft\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(draft\261folder)s +514 X +4446 Y +874 X(Alias\256le:)s +1790 X(For)s +1954 X(a)s +2023 X(default)s +2325 X(alias)s +2533 X(\256le)s +514 X +4566 Y +874 X(Signature:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(mail)s +2963 X(signature)s +514 X +4686 Y +874 X(mailproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(post)s +2454 X(failure)s +2739 X(notices)s +514 X +4806 Y +874 X(postproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(post)s +2454 X(the)s +2601 X(message)s +514 X +5010 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5130 Y +874 X +0.0 10 10 f.R ft(comp\(1\),)s +1262 X(dist\(1\),)s +1573 X(forw\(1\),)s +1927 X(repl\(1\),)s +2248 X(mh\261alias\(5\),)s +2775 X(post\(8\))s +514 X +5334 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5454 Y +874 X +0.0 10 10 f.R ft(`\256le')s +1093 X(defaults)s +1434 X(to)s +1537 X(/draft)s +514 X +5574 Y +874 X(`\261alias)s +1165 X(/usr/bs/mh-beta/lib/MailAliases')s +514 X +5694 Y +874 X(`\261nodraftfolder')s +514 X +5814 Y +874 X(`\261no\256lter')s +514 X +5934 Y +874 X(`\261format')s +514 X +6054 Y +874 X(`\261forward')s +514 X +6174 Y +874 X(`\261nomime')s +514 X +6294 Y +874 X(`\261nomsgid')s +514 X +6414 Y +874 X(`\261nopush')s +514 X +6534 Y +874 X(`\261noverbose')s +514 X +6654 Y +874 X(`\261nowatch')s +514 X +6774 Y +874 X(`\261width)s +1210 X(72')s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 89 90 + +514 X +600 Y(SEND\(1\))s +2771 X(-89-)s +4811 X(SEND\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Context)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +1284 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1404 Y +874 X +0.0 10 10 f.R ft(Under)s +1155 X(some)s +1398 X(con\256gurations,)s +2026 X(it)s +2113 X(is)s +2211 X(not)s +2370 X(possible)s +2729 X(to)s +2838 X(mointor)s +3186 X(the)s +3339 X(mail)s +3548 X(delivery)s +3906 X(transaction;)s +4403 X(`\261watch')s +4788 X(is)s +4886 X(a)s +4961 X(no-op)s +514 X +1524 Y +874 X(on)s +999 X(those)s +1235 X(systems.)s +514 X +1764 Y +874 X(Using)s +1138 X(`\261split)s +1444 X(0')s +1552 X(doesn't)s +1871 X(work)s +2101 X(correctly.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 90 91 + +514 X +600 Y(SHOW\(1\))s +2771 X(-90-)s +4766 X(SHOW\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(show)s +1110 X(\261)s +1185 X(show)s +1421 X(\(list\))s +1635 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(show)s +1110 X([+folder])s +1495 X([msgs])s +1792 X([\261draft])s +2121 X([\261header])s +2527 X([\261noheader])s +3033 X([\261showproc program])s +3925 X([\261noshowproc])s +514 X +1560 Y +1234 X([switches for )s +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(])s +2224 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Show)s +1128 X +0.0 10 10 f.R ft(lists)s +1327 X(each)s +1546 X(of)s +1666 X(the)s +1825 X(speci\256ed)s +2217 X(messages)s +2631 X(to)s +2746 X(the)s +2905 X(standard)s +3280 X(output)s +3573 X(\(typically,)s +4018 X(the)s +4176 X(terminal\).)s +4628 X(Typically,)s +5072 X(the)s +514 X +2160 Y +874 X(messages)s +1285 X(are)s +1440 X(listed)s +1691 X(exactly)s +2013 X(as)s +2130 X(they)s +2336 X(are,)s +2516 X(with)s +2728 X(no)s +2862 X(reformatting.)s +3445 X(A)s +3551 X(program)s +3923 X(named)s +4223 X(by)s +4356 X(the)s +4511 X +0.0 10 10 f.I ft(showproc)s +4933 X +0.0 10 10 f.R ft(pro\256le)s +514 X +2280 Y +874 X(component)s +1350 X(is)s +1449 X(invoked)s +1803 X(to)s +1913 X(do)s +2045 X(the)s +2199 X(listing,)s +2507 X(and)s +2683 X(any)s +2859 X(switches)s +3235 X(not)s +3395 X(recognized)s +3864 X(by)s +3996 X +0.0 10 10 f.I ft(show)s +4233 X +0.0 10 10 f.R ft(are)s +4385 X(passed)s +4682 X(along)s +4935 X(to)s +5044 X(that)s +514 X +2400 Y +874 X(program.)s +1300 X(The)s +1493 X(default)s +1808 X(program)s +2184 X(is)s +2289 X(known)s +2599 X(as)s +2719 X +0.0 10 10 f.I ft(more)s +2974 X +0.0 10 10 f.R ft(\(1\).)s +3177 X(To)s +3325 X(override)s +3694 X(the)s +3853 X(default)s +4167 X(and)s +4348 X(the)s +4507 X +0.0 10 10 f.I ft(showproc)s +4933 X +0.0 10 10 f.R ft(pro\256le)s +514 X +2520 Y +874 X(component,)s +1376 X(use)s +1542 X(the)s +1697 X(`\261showproc program')s +2597 X(switch.)s +2941 X(For)s +3112 X(example,)s +3507 X(`\261show pr')s +3974 X(will)s +4162 X(cause)s +4415 X(the)s +4569 X +0.0 10 10 f.I ft(pr)s +4708 X +0.0 10 10 f.R ft(\(1\))s +4856 X(program)s +514 X +2640 Y +874 X(to)s +984 X(list)s +1139 X(the)s +1293 X(messages.)s +1752 X(The)s +1939 X +0.0 10 10 f.I ft(MH)s +2126 X +0.0 10 10 f.R ft(command)s +2552 X +0.0 10 10 f.I ft(mhl)s +2734 X +0.0 10 10 f.R ft(can)s +2904 X(be)s +3030 X(used)s +3245 X(as)s +3359 X(a)s +3434 X +0.0 10 10 f.I ft(showproc)s +3854 X +0.0 10 10 f.R ft(to)s +3963 X(show)s +4205 X(messages)s +4613 X(in)s +4722 X(a)s +4797 X(more)s +5033 X(uni-)s +514 X +2760 Y +874 X(form)s +1102 X(format.)s +1452 X(Normally,)s +1894 X(this)s +2073 X(program)s +2445 X(is)s +2546 X(speci\256ed)s +2935 X(as)s +3051 X(the)s +3206 X +0.0 10 10 f.I ft(showproc)s +3628 X +0.0 10 10 f.R ft(is)s +3728 X(the)s +3883 X(user's)s +4154 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le.)s +4701 X(See)s +4878 X +0.0 10 10 f.I ft(mhl)s +5078 X +0.0 10 10 f.R ft(\(1\))s +514 X +2880 Y +874 X(for)s +1015 X(the)s +1162 X(details.)s +1498 X(If)s +1589 X(the)s +1736 X(`\261noshowproc')s +2365 X(option)s +2646 X(is)s +2738 X(speci\256ed,)s +3143 X(`/bin/cat')s +3534 X(is)s +3626 X(used)s +3834 X(instead)s +4142 X(of)s +4250 X +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(.)s +514 X +3120 Y +874 X(If)s +971 X(you)s +1152 X(have)s +1371 X(messages)s +1779 X(with)s +1988 X(multi-media)s +2507 X(contents,)s +2895 X(the)s +3047 X(pro\256le)s +3338 X(entry)s +3573 X +0.0 10 10 f.I ft(mhnproc)s +3958 X +0.0 10 10 f.R ft(de\256nes)s +4271 X(the)s +4423 X(name)s +4669 X(of)s +4782 X(a)s +4856 X(program)s +514 X +3240 Y +874 X(to)s +994 X(manipulate)s +1480 X(multi-media)s +2011 X(messages.)s +2480 X(\(The)s +2710 X +0.0 10 10 f.I ft(mhn)s +2932 X +0.0 10 10 f.R ft(\(1\))s +3090 X(program,)s +3494 X(which)s +3779 X(is)s +3887 X(suitable)s +4239 X(for)s +4396 X(this)s +4582 X(purpose,)s +4964 X(is)s +5072 X(the)s +514 X +3360 Y +874 X(default.\))s +1244 X(If)s +1345 X(the)s +1502 X(`\261noshowproc')s +2141 X(option)s +2432 X(is)s +2533 X(NOT)s +2772 X(speci\256ed,)s +3186 X(and)s +3364 X(if)s +3459 X(one)s +3637 X(or)s +3754 X(more)s +3993 X(named)s +4293 X(messages)s +4704 X(has)s +4871 X(a)s +4949 X(multi-)s +514 X +3480 Y +874 X(media)s +1155 X(content,)s +1511 X(then)s +1720 X(the)s +1879 X(program)s +2254 X(indicated)s +2657 X(by)s +2794 X +0.0 10 10 f.I ft(mhnproc)s +3186 X +0.0 10 10 f.R ft(will)s +3379 X(be)s +3510 X(run)s +3680 X(instead)s +3999 X(of)s +4118 X +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(.)s +4593 X(The)s +4784 X(use)s +4953 X(of)s +5072 X(the)s +514 X +3600 Y +874 X +0.0 10 10 f.I ft(mhnproc)s +1260 X +0.0 10 10 f.R ft(can)s +1429 X(also)s +1621 X(be)s +1746 X(disabled)s +2109 X(if)s +2200 X(the)s +2352 X(environment)s +2887 X(variable)s +3238 X +0.0 10 10 f.B ft($NOMHNPROC)s +3995 X +0.0 10 10 f.R ft(is)s +4092 X(set.)s +4283 X(Note)s +4507 X(that)s +4687 X(the)s +4839 X +0.0 10 10 f.I ft(mhnproc)s +514 X +3720 Y +874 X +0.0 10 10 f.R ft(may)s +1076 X(be)s +1200 X(invoked)s +1551 X(even)s +1768 X(for)s +1913 X(textual)s +2214 X(contents,)s +2601 X(depending)s +3046 X(on)s +3175 X(the)s +3326 X(character)s +3719 X(set)s +3859 X(involved.)s +4288 X(The)s +4472 X(environment)s +5006 X(vari-)s +514 X +3840 Y +874 X(able)s +1074 X($MM_CHARSET)s +1842 X(should)s +2143 X(be)s +2271 X(set)s +2416 X(to)s +2528 X(the)s +2684 X(terminal's)s +3122 X(character)s +3519 X(set)s +3663 X(to)s +3774 X(avoid)s +4029 X(gratuitous)s +4462 X(invocations)s +4956 X(of)s +5072 X(the)s +514 X +3960 Y +874 X +0.0 10 10 f.I ft(mhnproc)s +0.0 10 10 f.R ft(.)s +514 X +4200 Y +874 X(The)s +1076 X(`\261header')s +1504 X(switch)s +1812 X(tells)s +2026 X +0.0 10 10 f.I ft(show)s +2279 X +0.0 10 10 f.R ft(to)s +2404 X(display)s +2740 X(a)s +2830 X(one\261line)s +3220 X(description)s +3710 X(of)s +3839 X(the)s +4007 X(message)s +4391 X(being)s +4659 X(shown.)s +5016 X(This)s +514 X +4320 Y +874 X(description)s +1343 X(includes)s +1701 X(the)s +1848 X(folder)s +2111 X(and)s +2280 X(the)s +2427 X(message)s +2790 X(number.)s +514 X +4560 Y +874 X(If)s +974 X(no)s +1108 X(`msgs')s +1414 X(are)s +1569 X(speci\256ed,)s +1983 X(the)s +2139 X(current)s +2455 X(message)s +2827 X(is)s +2928 X(used.)s +3195 X(If)s +3295 X(more)s +3534 X(than)s +3739 X(one)s +3916 X(message)s +4287 X(is)s +4387 X(speci\256ed,)s +4800 X +0.0 10 10 f.I ft(more)s +5038 X +0.0 10 10 f.R ft(will)s +514 X +4680 Y +874 X(prompt)s +1202 X(for)s +1357 X(a)s +1439 X()s +1989 X(prior)s +2221 X(to)s +2337 X(listing)s +2626 X(each)s +2846 X(message.)s +3272 X +0.0 10 10 f.I ft(more)s +3515 X +0.0 10 10 f.R ft(will)s +3709 X(list)s +3870 X(each)s +4090 X(message,)s +4491 X(a)s +4573 X(page)s +4799 X(at)s +4909 X(a)s +4991 X(time.)s +514 X +4800 Y +874 X(When)s +1147 X(the)s +1304 X(end)s +1483 X(of)s +1601 X(page)s +1824 X(is)s +1926 X(reached,)s +2295 X +0.0 10 10 f.I ft(more)s +2535 X +0.0 10 10 f.R ft(will)s +2726 X(ring)s +2922 X(the)s +3079 X(bell)s +3264 X(and)s +3443 X(wait)s +3650 X(for)s +3801 X(a)s +3879 X()s +4337 X(or)s +4454 X(.)s +5050 X(If)s +5150 X(a)s +514 X +4920 Y +874 X()s +1417 X(is)s +1515 X(entered,)s +1864 X +0.0 10 10 f.I ft(more)s +2100 X +0.0 10 10 f.R ft(will)s +2287 X(print)s +2507 X(the)s +2660 X(next)s +2863 X(line,)s +3069 X(whereas)s +3425 X()s +3879 X(will)s +4065 X(print)s +4284 X(the)s +4436 X(next)s +4638 X(screenful.)s +5083 X(To)s +514 X +5040 Y +874 X(exit)s +1049 X +0.0 10 10 f.I ft(more)s +0.0 10 10 f.R ft(,)s +1304 X(type)s +1501 X(``q''.)s +514 X +5280 Y +874 X(If)s +972 X(the)s +1126 X(standard)s +1495 X(output)s +1782 X(is)s +1880 X(not)s +2039 X(a)s +2114 X(terminal,)s +2503 X(no)s +2634 X(queries)s +2953 X(are)s +3105 X(made,)s +3377 X(and)s +3552 X(each)s +3765 X(\256le)s +3924 X(is)s +4022 X(listed)s +4270 X(with)s +4479 X(a)s +4554 X(one\261line)s +4929 X(header)s +514 X +5400 Y +874 X(and)s +1043 X(two)s +1218 X(lines)s +1432 X(of)s +1540 X(separation.)s +514 X +5640 Y +874 X(``show)s +1176 X(\261draft'')s +1505 X(will)s +1686 X(list)s +1834 X(the)s +1981 X(\256le)s +2134 X(/draft)s +2776 X(if)s +2862 X(it)s +2943 X(exists.)s +514 X +5880 Y +874 X(If)s +966 X(the)s +1114 X(pro\256le)s +1401 X(entry)s +1632 X(``Unseen\261Sequence'')s +2521 X(is)s +2614 X(present)s +2928 X(and)s +3098 X(non\261empty,)s +3599 X(then)s +3797 X +0.0 10 10 f.I ft(show)s +4029 X +0.0 10 10 f.R ft(will)s +4211 X(remove)s +4536 X(each)s +4744 X(of)s +4853 X(the)s +5000 X(mes-)s +514 X +6000 Y +874 X(sages)s +1121 X(shown)s +1413 X(from)s +1638 X(each)s +1851 X(sequence)s +2247 X(named)s +2544 X(by)s +2675 X(the)s +2828 X(pro\256le)s +3120 X(entry.)s +3406 X(This)s +3615 X(is)s +3712 X(similar)s +4020 X(to)s +4128 X(the)s +4280 X(``Previous\261Sequence'')s +514 X +6120 Y +874 X(pro\256le)s +1160 X(entry)s +1390 X(supported)s +1809 X(by)s +1934 X(all)s +2059 X +0.0 10 10 f.I ft(MH)s +2239 X +0.0 10 10 f.R ft(commands)s +2697 X(which)s +2966 X(take)s +3157 X(`msgs')s +3454 X(or)s +3562 X(`msg')s +3820 X(arguments.)s +514 X +6282 Y +0.0 8 8 f.B ft(Files)s +514 X +6402 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 91 92 + +514 X +600 Y(SHOW\(1\))s +2771 X(-91-)s +4766 X(SHOW\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +1200 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +1320 Y +874 X(Unseen\261Sequence:)s +1790 X(To)s +1926 X(name)s +2167 X(sequences)s +2596 X(denoting)s +2971 X(unseen)s +3273 X(messages)s +514 X +1440 Y +874 X(showproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(show)s +2498 X(messages)s +514 X +1560 Y +874 X(mhnproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(show)s +2498 X(messages)s +2900 X(with)s +3103 X(multi-media)s +3617 X(content)s +514 X +1764 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +1884 Y +874 X +0.0 10 10 f.R ft(mhl\(1\),)s +1196 X(more\(1\),)s +1567 X(next\(1\),)s +1905 X(pick\(1\),)s +2243 X(prev\(1\),)s +2586 X(scan\(1\))s +514 X +2088 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2208 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +2328 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(cur)s +514 X +2448 Y +874 X(`\261header')s +514 X +2652 Y +0.0 8 8 f.B ft(Context)s +514 X +2772 Y +874 X +0.0 10 10 f.R ft(If)s +966 X(a)s +1036 X(folder)s +1300 X(is)s +1393 X(given,)s +1666 X(it)s +1748 X(will)s +1930 X(become)s +2266 X(the)s +2414 X(current)s +2722 X(folder.)s +3036 X(The)s +3217 X(last)s +3381 X(message)s +3744 X(shown)s +4030 X(will)s +4211 X(become)s +4546 X(the)s +4693 X(current)s +5000 X(mes-)s +514 X +2892 Y +874 X(sage.)s +514 X +3096 Y +0.0 8 8 f.B ft(Bugs)s +514 X +3216 Y +874 X +0.0 10 10 f.R ft(The)s +1066 X(`\261header')s +1484 X(switch)s +1781 X(doesn't)s +2111 X(work)s +2352 X(when)s +2604 X(`msgs')s +2912 X(expands)s +3275 X(to)s +3389 X(more)s +3630 X(than)s +3838 X(one)s +4018 X(message.)s +4442 X(If)s +4544 X(the)s +4702 X +0.0 10 10 f.I ft(showproc)s +5127 X +0.0 10 10 f.R ft(is)s +514 X +3336 Y +874 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(,)s +1074 X(then)s +1271 X(is)s +1363 X(problem)s +1721 X(can)s +1884 X(be)s +2003 X(circumvented)s +2571 X(by)s +2696 X(referencing)s +3174 X(the)s +3321 X(``messagename'')s +4032 X(\256eld)s +4235 X(in)s +4338 X(the)s +4485 X +0.0 10 10 f.I ft(mhl)s +4660 X +0.0 10 10 f.R ft(format)s +4951 X(\256le.)s +514 X +3576 Y +874 X +0.0 10 10 f.I ft(Show)s +1119 X +0.0 10 10 f.R ft(updates)s +1452 X(the)s +1602 X(user's)s +1868 X(context)s +2190 X(before)s +2472 X(showing)s +2839 X(the)s +2988 X(message.)s +3403 X(Hence)s +3684 X +0.0 10 10 f.I ft(show)s +3917 X +0.0 10 10 f.R ft(will)s +4100 X(mark)s +4332 X(messages)s +4736 X(as)s +4846 X(seen)s +5050 X(pri-)s +514 X +3696 Y +874 X(or)s +985 X(to)s +1091 X(the)s +1241 X(user)s +1435 X(actually)s +1779 X(seeing)s +2062 X(them.)s +2339 X(This)s +2544 X(is)s +2638 X(generally)s +3036 X(not)s +3191 X(a)s +3262 X(problem,)s +3647 X(unless)s +3924 X(the)s +4073 X(user)s +4266 X(relies)s +4509 X(on)s +4636 X(the)s +4785 X(``unseen'')s +514 X +3816 Y +874 X(messages)s +1276 X(mechanism,)s +1781 X(and)s +1950 X(interrupts)s +2358 X +0.0 10 10 f.I ft(show)s +2589 X +0.0 10 10 f.R ft(while)s +2836 X(it)s +2917 X(is)s +3009 X(showing)s +3373 X(``unseen'')s +3807 X(messages.)s +514 X +4056 Y +874 X(If)s +969 X +0.0 10 10 f.I ft(showproc)s +1387 X +0.0 10 10 f.R ft(is)s +1483 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(,)s +1687 X(then)s +1888 X +0.0 10 10 f.I ft(show)s +2123 X +0.0 10 10 f.R ft(uses)s +2324 X(a)s +2397 X(built\261in)s +2738 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(:)s +2945 X(it)s +3030 X(does)s +3242 X(not)s +3399 X(actually)s +3743 X(run)s +3904 X(the)s +4054 X +0.0 10 10 f.I ft(mhl)s +4232 X +0.0 10 10 f.R ft(program.)s +4648 X(Hence,)s +4955 X(if)s +5044 X(you)s +514 X +4176 Y +874 X(de\256ne)s +1143 X(your)s +1351 X(own)s +1548 X +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(,)s +1987 X(don't)s +2223 X(call)s +2392 X(it)s +2473 X +0.0 10 10 f.I ft(mhl)s +2648 X +0.0 10 10 f.R ft(since)s +2878 X +0.0 10 10 f.I ft(show)s +3109 X +0.0 10 10 f.R ft(won't)s +3367 X(run)s +3525 X(it.)s +514 X +4416 Y +874 X(If)s +972 X +0.0 10 10 f.I ft(more)s +1227 X +0.0 10 10 f.R ft(\(1\))s +1374 X(is)s +1472 X(your)s +1686 X(showproc)s +2105 X(\(the)s +2291 X(default\),)s +2657 X(then)s +2860 X(avoid)s +3113 X(running)s +3455 X +0.0 10 10 f.I ft(show)s +3692 X +0.0 10 10 f.R ft(in)s +3801 X(the)s +3954 X(background)s +4456 X(with)s +4665 X(only)s +4874 X(its)s +5000 X(stan-)s +514 X +4536 Y +874 X(dard)s +1076 X(output)s +1357 X(piped)s +1604 X(to)s +1707 X(another)s +2031 X(process,)s +2380 X(as)s +2488 X(in)s +514 X +4776 Y +1234 X(show)s +1470 X(|)s +1515 X(imprint)s +1835 X(&)s +514 X +5016 Y +874 X(Due)s +1068 X(to)s +1174 X(a)s +1246 X(bug)s +1424 X(in)s +1530 X +0.0 10 10 f.I ft(more)s +0.0 10 10 f.R ft(,)s +1788 X(show)s +2027 X(will)s +2211 X(go)s +2339 X(into)s +2523 X(a)s +2595 X(``tty)s +2795 X(input'')s +3095 X(state.)s +3356 X(To)s +3495 X(avoid)s +3745 X(this)s +3918 X(problem,)s +4303 X(re\261direct)s +4684 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft('s)s +4989 X(diag-)s +514 X +5136 Y +874 X(nostic)s +1138 X(output)s +1419 X(as)s +1527 X(well.)s +1774 X(For)s +1938 X(users)s +2168 X(of)s +2276 X +0.0 10 10 f.I ft(csh)s +0.0 10 10 f.R ft(:)s +514 X +5376 Y +1234 X(show)s +1470 X(|&)s +1593 X(imprint)s +1913 X(&)s +514 X +5616 Y +874 X(For)s +1038 X(users)s +1268 X(of)s +1376 X +0.0 10 10 f.I ft(sh)s +0.0 10 10 f.R ft(:)s +514 X +5856 Y +1234 X(show)s +1470 X(2>&1)s +1729 X(|)s +1774 X(imprint)s +2094 X(&)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 92 93 + +514 X +600 Y(SLOCAL\(1\))s +2771 X(-92-)s +4666 X(SLOCAL\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(slocal)s +1132 X(\261)s +1207 X(special)s +1509 X(local)s +1728 X(mail)s +1931 X(delivery)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/slocal)s +1916 X([address info sender])s +514 X +1560 Y +1234 X([\261addr address])s +1876 X([\261info data])s +2369 X([\261sender sender])s +514 X +1680 Y +1234 X([\261user username])s +1948 X([\261mailbox mbox])s +2670 X([\261\256le \256le])s +514 X +1800 Y +1234 X([\261maildelivery delivery\256le])s +2360 X([\261verbose])s +2811 X([\261noverbose])s +3362 X([\261debug])s +3747 X([\261help])s +514 X +2040 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2280 Y +874 X +0.0 10 10 f.I ft(Slocal)s +1152 X +0.0 10 10 f.R ft(is)s +1247 X(a)s +1319 X(program)s +1685 X(designed)s +2068 X(to)s +2174 X(allow)s +2424 X(you)s +2602 X(to)s +2708 X(have)s +2924 X(your)s +3135 X(inbound)s +3491 X(mail)s +3696 X(processed)s +4116 X(according)s +4536 X(to)s +4641 X(a)s +4712 X(complex)s +5083 X(set)s +514 X +2400 Y +874 X(of)s +983 X(selection)s +1364 X(criteria.)s +1722 X(You)s +1920 X(do)s +2046 X(not)s +2200 X(normally)s +2587 X(invoke)s +2885 X +0.0 10 10 f.I ft(slocal)s +3150 X +0.0 10 10 f.R ft(yourself,)s +3527 X(rather)s +3784 X +0.0 10 10 f.I ft(slocal)s +4048 X +0.0 10 10 f.R ft(is)s +4140 X(invoked)s +4487 X(on)s +4612 X(your)s +4820 X(behalf)s +5094 X(by)s +514 X +2520 Y +874 X(your)s +1082 X(system's)s +1457 X(Message)s +1831 X(Transfer)s +2193 X(Agent.)s +514 X +2760 Y +874 X(The)s +1059 X(message)s +1427 X(selection)s +1812 X(criteria)s +2124 X(used)s +2337 X(by)s +2467 X +0.0 10 10 f.I ft(slocal)s +2736 X +0.0 10 10 f.R ft(is)s +2833 X(speci\256ed)s +3218 X(in)s +3325 X(the)s +3476 X(\256le)s +3633 X +0.0 10 10 f.I ft(.maildelivery)s +4186 X +0.0 10 10 f.R ft(in)s +4293 X(the)s +4444 X(user's)s +4711 X(home)s +4962 X(direc-)s +514 X +2880 Y +874 X(tory.)s +1110 X(The)s +1290 X(format)s +1581 X(of)s +1689 X(this)s +1859 X(\256le)s +2012 X(is)s +2104 X(given)s +2351 X(below.)s +514 X +3120 Y +874 X(The)s +1079 X(message)s +1467 X(delivery)s +1844 X(address)s +2193 X(and)s +2387 X(message)s +2775 X(sender)s +3084 X(are)s +3254 X(determined)s +3752 X(from)s +3995 X(the)s +4166 X(Message)s +4564 X(Transfer)s +4950 X(Agent)s +514 X +3240 Y +874 X(envelope)s +1260 X(information,)s +1783 X(if)s +1870 X(possible.)s +2273 X(Under)s +2547 X +0.0 10 10 f.I ft(SendMail)s +0.0 10 10 f.R ft(,)s +2980 X(the)s +3127 X(sender)s +3412 X(will)s +3593 X(obtained)s +3962 X(from)s +4181 X(the)s +4328 X(UUCP)s +4620 X(``From '')s +5019 X(line,)s +514 X +3360 Y +874 X(if)s +966 X(present.)s +1334 X(The)s +1519 X(user)s +1715 X(may)s +1917 X(override)s +2279 X(these)s +2514 X(values)s +2799 X(with)s +3007 X(command)s +3431 X(line)s +3611 X(arguments,)s +4082 X(or)s +4195 X(arguments)s +4641 X(to)s +4749 X(the)s +4901 X(`\261addr')s +514 X +3480 Y +874 X(and)s +1043 X(`\261sender')s +1444 X(switches.)s +514 X +3720 Y +874 X(The)s +1065 X(message)s +1439 X(is)s +1542 X(normally)s +1939 X(read)s +2146 X(from)s +2376 X(the)s +2534 X(standard)s +2908 X(input.)s +3200 X(The)s +3391 X(`\261\256le')s +3671 X(switch)s +3968 X(sets)s +4154 X(the)s +4311 X(name)s +4562 X(of)s +4680 X(the)s +4837 X(\256le)s +5000 X(from)s +514 X +3840 Y +874 X(which)s +1146 X(the)s +1296 X(message)s +1662 X(should)s +1957 X(be)s +2079 X(read,)s +2303 X(instead)s +2614 X(of)s +2725 X(reading)s +3052 X(stdin.)s +3325 X(The)s +3508 X(`\261user')s +3818 X(switch)s +4107 X(tells)s +4302 X +0.0 10 10 f.I ft(slocal)s +4569 X +0.0 10 10 f.R ft(the)s +4719 X(name)s +4962 X(of)s +5072 X(the)s +514 X +3960 Y +874 X(user)s +1065 X(for)s +1206 X(whom)s +1481 X(it)s +1562 X(is)s +1654 X(delivering)s +2084 X(mail.)s +2337 X(The)s +2517 X(`\261mailbox')s +2986 X(switch)s +3272 X(tells)s +3464 X +0.0 10 10 f.I ft(slocal)s +3728 X +0.0 10 10 f.R ft(the)s +3875 X(name)s +4116 X(of)s +4224 X(the)s +4371 X(user's)s +4634 X(maildrop)s +5020 X(\256le.)s +514 X +4200 Y +874 X(The)s +1056 X(`\261info')s +1360 X(switch)s +1648 X(may)s +1847 X(be)s +1968 X(used)s +2178 X(to)s +2283 X(pass)s +2482 X(an)s +2603 X(arbitrary)s +2973 X(argument)s +3377 X(to)s +3482 X(sub-processes)s +4063 X(which)s +4333 X +0.0 10 10 f.I ft(slocal)s +4598 X +0.0 10 10 f.R ft(may)s +4796 X(invoke)s +5094 X(on)s +514 X +4320 Y +874 X(your)s +1095 X(behalf.)s +1432 X(The)s +1625 X(`\261verbose')s +2089 X(switch)s +2388 X(causes)s +2686 X +0.0 10 10 f.I ft(slocal)s +2963 X +0.0 10 10 f.R ft(to)s +3079 X(give)s +3289 X(information)s +3799 X(on)s +3937 X(stdout)s +4220 X(about)s +4480 X(its)s +4613 X(progress.)s +5039 X(The)s +514 X +4440 Y +874 X(`\261debug')s +1259 X(switch)s +1545 X(produces)s +1930 X(more)s +2160 X(verbose)s +2495 X(debugging)s +2942 X(output)s +3223 X(on)s +3348 X(stderr.)s +514 X +4800 Y +694 X +0.0 8 8 f.B ft(Message)s +1001 X(Transfer)s +1322 X(Agents)s +514 X +5040 Y +874 X +0.0 10 10 f.R ft(If)s +965 X(your)s +1173 X(MTA)s +1420 X(is)s +1512 X +0.0 10 10 f.I ft(SendMail)s +0.0 10 10 f.R ft(,)s +1945 X(you)s +2120 X(should)s +2412 X(include)s +2731 X(the)s +2878 X(line)s +514 X +5280 Y +1334 X(``| /usr/bs/mh-beta/lib/slocal \261user username'')s +514 X +5520 Y +874 X(in)s +977 X(your)s +1185 X(.forward)s +1550 X(\256le)s +1703 X(in)s +1806 X(your)s +2014 X(home)s +2261 X(directory.)s +2696 X(This)s +2899 X(will)s +3080 X(cause)s +3326 X +0.0 10 10 f.I ft(SendMail)s +3734 X +0.0 10 10 f.R ft(to)s +3837 X(invoke)s +4134 X +0.0 10 10 f.I ft(slocal)s +4398 X +0.0 10 10 f.R ft(on)s +4523 X(your)s +4731 X(behalf.)s +514 X +5760 Y +874 X(If)s +966 X(your)s +1175 X(MTA)s +1422 X(is)s +1514 X +0.0 10 10 f.I ft(MMDF-I)s +0.0 10 10 f.R ft(,)s +1929 X(you)s +2104 X(should)s +2396 X(\(symbolically\))s +3004 X(link)s +3185 X(/usr/bs/mh-beta/lib/slocal)s +4227 X(to)s +4330 X(the)s +4477 X(\256le)s +4630 X(bin/rcvmail)s +5116 X(in)s +514 X +5880 Y +874 X(your)s +1117 X(home)s +1399 X(directory.)s +1869 X(This)s +2106 X(will)s +2321 X(cause)s +2601 X +0.0 10 10 f.I ft(MMDF-I)s +3025 X +0.0 10 10 f.R ft(to)s +3162 X(invoke)s +3493 X +0.0 10 10 f.I ft(slocal)s +3791 X +0.0 10 10 f.R ft(on)s +3950 X(your)s +4192 X(behalf)s +4500 X(with)s +4737 X(the)s +4918 X(correct)s +514 X +6000 Y +874 X(``)s +0.0 10 10 f.I ft(address info sender)s +0.0 10 10 f.R ft('')s +1814 X(arguments.)s +514 X +6240 Y +874 X(If)s +969 X(your)s +1181 X(MTA)s +1432 X(is)s +1528 X +0.0 10 10 f.I ft(MMDF-II)s +0.0 10 10 f.R ft(,)s +1980 X(then)s +2181 X(you)s +2360 X(should)s +2656 X(not)s +2812 X(use)s +2973 X +0.0 10 10 f.I ft(slocal)s +0.0 10 10 f.R ft(.)s +3290 X(An)s +3440 X(equivalent)s +3884 X(functionality)s +4423 X(is)s +4518 X(already)s +4839 X(provided)s +514 X +6360 Y +874 X(by)s +999 X +0.0 10 10 f.I ft(MMDF-II)s +0.0 10 10 f.R ft(;)s +1450 X(see)s +1602 X(maildelivery\(5\))s +2248 X(for)s +2389 X(details.)s +514 X +6720 Y +694 X +0.0 8 8 f.B ft(The)s +848 X(Maildelivery)s +1301 X(File)s +514 X +7080 Y +874 X +0.0 10 10 f.R ft(The)s +1057 X +0.0 10 10 f.I ft(.maildelivery)s +1609 X +0.0 10 10 f.R ft(\256le)s +1765 X(controls)s +2115 X(how)s +2315 X(local)s +2537 X(delivery)s +2892 X(is)s +2987 X(performed.)s +3480 X(Each)s +3707 X(line)s +3884 X(of)s +3994 X(this)s +4166 X(\256le)s +4321 X(consists)s +4665 X(of)s +4775 X(\256ve)s +4952 X(\256elds,)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 93 94 + +514 X +600 Y(SLOCAL\(1\))s +2771 X(-93-)s +4666 X(SLOCAL\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(separated)s +1278 X(by)s +1406 X(white-space)s +1910 X(or)s +2021 X(comma.)s +2393 X(Since)s +2643 X(double-quotes)s +3236 X(are)s +3384 X(honored,)s +3763 X(these)s +3995 X(characters)s +4425 X(may)s +4624 X(be)s +4745 X(included)s +5116 X(in)s +514 X +1080 Y +874 X(a)s +951 X(single)s +1223 X(argument)s +1632 X(by)s +1764 X(enclosing)s +2179 X(the)s +2333 X(entire)s +2592 X(argument)s +3001 X(in)s +3111 X(double-quotes.)s +3759 X(A)s +3863 X(double-quote)s +4422 X(can)s +4592 X(be)s +4718 X(included)s +5094 X(by)s +514 X +1200 Y +874 X(preceding)s +1298 X(it)s +1385 X(with)s +1594 X(a)s +1669 X(backslash.)s +2138 X(Lines)s +2391 X(beginning)s +2822 X(with)s +3030 X(`#')s +3176 X(are)s +3327 X(ignored.)s +3712 X(The)s +3897 X(format)s +4193 X(of)s +4306 X(each)s +4518 X(line)s +4698 X(in)s +4806 X(the)s +4958 X +0.0 10 10 f.I ft(.mail-)s +514 X +1320 Y +874 X(delivery)s +1220 X +0.0 10 10 f.R ft(\256le)s +1373 X(is:)s +514 X +1680 Y +1234 X +0.0 10 10 f.B ft(header)s +1594 X(pattern)s +1954 X(action)s +2314 X(result)s +2674 X(string)s +514 X +1920 Y +874 X(header)s +0.0 10 10 f.R ft(:)s +514 X +2040 Y +1234 X(The)s +1420 X(name)s +1667 X(of)s +1781 X(a)s +1856 X(header)s +2152 X(\256eld)s +2361 X(that)s +2542 X(is)s +2640 X(to)s +2749 X(be)s +2874 X(searched)s +3253 X(for)s +3399 X(a)s +3473 X(pattern.)s +3830 X(This)s +4038 X(is)s +4135 X(any)s +4309 X(\256eld)s +4517 X(in)s +4625 X(the)s +4777 X(headers)s +5111 X(of)s +514 X +2160 Y +1234 X(the)s +1381 X(message)s +1744 X(that)s +1919 X(might)s +2178 X(be)s +2297 X(present.)s +2660 X(The)s +2840 X(following)s +3254 X(special)s +3556 X(\256elds)s +3798 X(are)s +3944 X(also)s +4130 X(de\256ned:)s +514 X +2400 Y +1234 X +0.0 10 10 f.I ft(source)s +1954 X +0.0 10 10 f.R ft(the)s +2101 X(out-of-band)s +2597 X(sender)s +2882 X(information)s +514 X +2520 Y +1234 X +0.0 10 10 f.I ft(addr)s +1954 X +0.0 10 10 f.R ft(the)s +2101 X(address)s +2425 X(that)s +2600 X(was)s +2780 X(used)s +2988 X(to)s +3091 X(cause)s +3337 X(delivery)s +3689 X(to)s +3792 X(the)s +3939 X(recipient)s +514 X +2640 Y +1234 X +0.0 10 10 f.I ft(default)s +1954 X +0.0 10 10 f.R ft(this)s +2124 X(matches)s +2476 X +0.0 10 10 f.I ft(only)s +2673 X +0.0 10 10 f.R ft(if)s +2759 X(the)s +2906 X(message)s +3269 X(hasn't)s +3538 X(been)s +3751 X(delivered)s +4147 X(yet)s +514 X +2760 Y +1234 X +0.0 10 10 f.I ft(*)s +1954 X +0.0 10 10 f.R ft(this)s +2124 X(always)s +2426 X(matches)s +514 X +3000 Y +874 X +0.0 10 10 f.B ft(pattern)s +0.0 10 10 f.R ft(:)s +514 X +3120 Y +1234 X(The)s +1426 X(sequence)s +1828 X(of)s +1948 X(characters)s +2388 X(to)s +2503 X(match)s +2784 X(in)s +2899 X(the)s +3058 X(speci\256ed)s +3450 X(header)s +3751 X(\256eld.)s +4015 X(Matching)s +4434 X(is)s +4537 X(case-insensitive,)s +514 X +3240 Y +1234 X(but)s +1387 X(does)s +1595 X(not)s +1748 X(use)s +1906 X(regular)s +2213 X(expressions.)s +514 X +3480 Y +874 X +0.0 10 10 f.B ft(action)s +0.0 10 10 f.R ft(:)s +514 X +3600 Y +1234 X(The)s +1414 X(action)s +1683 X(to)s +1786 X(take)s +1977 X(to)s +2080 X(deliver)s +2382 X(the)s +2529 X(message:)s +514 X +3840 Y +1234 X +0.0 10 10 f.I ft(destroy)s +1954 X +0.0 10 10 f.R ft(This)s +2157 X(action)s +2426 X(always)s +2728 X(succeeds.)s +514 X +4080 Y +1234 X +0.0 10 10 f.I ft(\256le)s +1390 X +0.0 10 10 f.R ft(or)s +1507 X(>)s +1972 X(Append)s +2322 X(the)s +2478 X(message)s +2850 X(to)s +2961 X(the)s +3116 X(\256le)s +3277 X(named)s +3576 X(by)s +3709 X +0.0 10 10 f.B ft(string)s +0.0 10 10 f.R ft(.)s +4042 X(The)s +4230 X(message)s +4601 X(is)s +4701 X(appended)s +5116 X(to)s +514 X +4200 Y +1954 X(the)s +2106 X(\256le)s +2264 X(in)s +2372 X(the)s +2524 X(maildrop)s +2915 X(format)s +3211 X(which)s +3485 X(is)s +3582 X(used)s +3795 X(by)s +3925 X(your)s +4138 X(message)s +4506 X(transport)s +4891 X(system.)s +514 X +4320 Y +1954 X(If)s +2045 X(the)s +2192 X(message)s +2555 X(can)s +2718 X(be)s +2837 X(appended)s +3244 X(to)s +3347 X(the)s +3494 X(\256le,)s +3672 X(then)s +3869 X(this)s +4039 X(action)s +4308 X(succeeds.)s +4737 X(When)s +5000 X(writ-)s +514 X +4440 Y +1954 X(ing)s +2109 X(to)s +2214 X(the)s +2363 X(\256le,)s +2543 X(a)s +2614 X(``Delivery\261Date: date'')s +3579 X(header)s +3871 X(is)s +3965 X(added)s +4229 X(which)s +4499 X(indicates)s +4880 X(the)s +5028 X(date)s +514 X +4560 Y +1954 X(and)s +2123 X(time)s +2326 X(that)s +2501 X(message)s +2864 X(was)s +3044 X(appended)s +3451 X(to)s +3554 X(the)s +3701 X(\256le.)s +514 X +4800 Y +1234 X +0.0 10 10 f.I ft(mbox)s +1954 X +0.0 10 10 f.R ft(Identical)s +2332 X(to)s +2439 X +0.0 10 10 f.I ft(\256le)s +0.0 10 10 f.R ft(,)s +2615 X(but)s +2772 X(always)s +3078 X(appends)s +3434 X(the)s +3584 X(message)s +3950 X(using)s +4195 X(the)s +4345 X(format)s +4639 X(used)s +4850 X(by)s +4978 X +0.0 10 10 f.I ft(packf)s +514 X +4920 Y +1954 X +0.0 10 10 f.R ft(\(the)s +2134 X(MMDF)s +2465 X(mailbox)s +2818 X(format\).)s +514 X +5160 Y +1234 X +0.0 10 10 f.I ft(pipe)s +1437 X +0.0 10 10 f.R ft(or)s +1550 X(|)s +1965 X(Pipe)s +2173 X(the)s +2325 X(message)s +2693 X(as)s +2806 X(the)s +2958 X(standard)s +3326 X(input)s +3562 X(to)s +3670 X(the)s +3822 X(command)s +4246 X(named)s +4542 X(by)s +4672 X +0.0 10 10 f.B ft(string)s +0.0 10 10 f.R ft(,)s +4977 X(using)s +514 X +5280 Y +1954 X(the)s +2114 X(Bourne)s +2446 X(shell)s +2673 X +0.0 10 10 f.I ft(sh)s +0.0 10 10 f.R ft(\(1\))s +2916 X(to)s +3032 X(interpret)s +3408 X(the)s +3568 X(string.)s +3884 X(Prior)s +4122 X(to)s +4238 X(giving)s +4532 X(the)s +4692 X(string)s +4957 X(to)s +5072 X(the)s +514 X +5400 Y +1954 X(shell,)s +2193 X(it)s +2274 X(is)s +2366 X(expanded)s +2773 X(with)s +2976 X(the)s +3123 X(following)s +3537 X(built-in)s +3857 X(variables:)s +514 X +5640 Y +1954 X($\(sender\))s +2674 X(the)s +2821 X(out-of-band)s +3317 X(sender)s +3602 X(information)s +514 X +5760 Y +1954 X($\(address\))s +2674 X(the)s +2821 X(address)s +3145 X(that)s +3320 X(was)s +3500 X(used)s +3708 X(to)s +3811 X(cause)s +4057 X(delivery)s +4409 X(to)s +4512 X(the)s +4659 X(recipient)s +514 X +5880 Y +1954 X($\(size\))s +2674 X(the)s +2821 X(size)s +3001 X(of)s +3109 X(the)s +3256 X(message)s +3619 X(in)s +3722 X(bytes)s +514 X +6000 Y +1954 X($\(reply\261to\))s +2674 X(either)s +2926 X(the)s +3073 X(``Reply\261To:'')s +3658 X(or)s +3766 X(``From:'')s +4168 X(\256eld)s +4371 X(of)s +4479 X(the)s +4626 X(message)s +514 X +6120 Y +1954 X($\(info\))s +2674 X(the)s +2821 X(out-of-band)s +3317 X(information)s +3814 X(speci\256ed)s +514 X +6240 Y +1234 X +0.0 10 10 f.I ft(qpipe)s +1481 X +0.0 10 10 f.R ft(or)s +514 X +6360 Y +1234 X +0.0 10 10 f.I ft()s +1954 X +0.0 10 10 f.R ft(Similar)s +2275 X(to)s +2379 X +0.0 10 10 f.I ft(pipe)s +0.0 10 10 f.R ft(,)s +2602 X(but)s +2756 X(executes)s +3125 X(the)s +3273 X(command)s +3693 X(directly,)s +4049 X(after)s +4257 X(built-in)s +4577 X(variable)s +4923 X(expan-)s +514 X +6480 Y +1954 X(sion,)s +2173 X(without)s +2506 X(assistance)s +2932 X(from)s +3153 X(the)s +3302 X(shell.)s +3568 X(This)s +3773 X(action)s +4043 X(can)s +4207 X(be)s +4327 X(used)s +4536 X(to)s +4640 X(avoid)s +4888 X(quoting)s +514 X +6600 Y +1954 X(special)s +2256 X(characters)s +2684 X(which)s +2953 X(your)s +3161 X(shell)s +3375 X(might)s +3634 X(interpret.)s +514 X +6840 Y +874 X +0.0 10 10 f.B ft(result)s +0.0 10 10 f.R ft(:)s +514 X +6960 Y +1234 X(Indicates)s +1619 X(how)s +1816 X(the)s +1963 X(action)s +2232 X(should)s +2524 X(be)s +2643 X(performed:)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 94 95 + +514 X +600 Y(SLOCAL\(1\))s +2771 X(-94-)s +4666 X(SLOCAL\(1\))s +514 X +960 Y +1234 X +0.0 10 10 f.I ft(A)s +1954 X +0.0 10 10 f.R ft(Perform)s +2332 X(the)s +2505 X(action.)s +2850 X(If)s +2967 X(the)s +3140 X(action)s +3434 X(succeeds,)s +3863 X(then)s +4085 X(the)s +4257 X(message)s +4645 X(is)s +4762 X(considered)s +514 X +1080 Y +1954 X(delivered.)s +514 X +1320 Y +1234 X +0.0 10 10 f.I ft(R)s +1954 X +0.0 10 10 f.R ft(Perform)s +2311 X(the)s +2463 X(action.)s +2787 X(Regardless)s +3255 X(of)s +3367 X(the)s +3518 X(outcome)s +3891 X(of)s +4003 X(the)s +4154 X(action,)s +4452 X(the)s +4603 X(message)s +4970 X(is)s +5066 X(not)s +514 X +1440 Y +1954 X(considered)s +2411 X(delivered.)s +514 X +1680 Y +1234 X +0.0 10 10 f.I ft(?)s +1954 X +0.0 10 10 f.R ft(Perform)s +2323 X(the)s +2487 X(action)s +2773 X(only)s +2993 X(if)s +3096 X(the)s +3260 X(message)s +3640 X(has)s +3815 X(not)s +3985 X(been)s +4215 X(delivered.)s +4678 X(If)s +4786 X(the)s +4950 X(action)s +514 X +1800 Y +1954 X(succeeds,)s +2358 X(then)s +2555 X(the)s +2702 X(message)s +3065 X(is)s +3157 X(considered)s +3614 X(delivered.)s +514 X +2040 Y +1234 X +0.0 10 10 f.I ft(N)s +1954 X +0.0 10 10 f.R ft(Perform)s +2314 X(the)s +2469 X(action)s +2745 X(only)s +2955 X(if)s +3048 X(the)s +3202 X(message)s +3572 X(has)s +3737 X(not)s +3897 X(been)s +4117 X(delivered)s +4520 X(and)s +4696 X(the)s +4850 X(previous)s +514 X +2160 Y +1954 X(action)s +2256 X(succeeded.)s +2773 X(If)s +2896 X(this)s +3098 X(action)s +3399 X(succeeds,)s +3835 X(then)s +4064 X(the)s +4243 X(message)s +4638 X(is)s +4762 X(considered)s +514 X +2280 Y +1954 X(delivered.)s +514 X +2520 Y +874 X(To)s +1010 X(summarize,)s +1498 X(here's)s +1766 X(an)s +1885 X(example:)s +514 X +2760 Y +1234 X(#)s +0.0 10 10 f.I ft(\256eld)s +1561 X(pattern)s +2043 X(action)s +2373 X(result)s +2734 X(string)s +514 X +2880 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(lines)s +1523 X(starting)s +1848 X(with)s +2051 X(a)s +2120 X('#')s +2261 X(are)s +2407 X(ignored,)s +2762 X(as)s +2870 X(are)s +3016 X(blank)s +3263 X(lines)s +514 X +3000 Y +1234 X(#)s +514 X +3120 Y +1234 X(#)s +1309 X(\256le)s +1462 X(mail)s +1665 X(with)s +1868 X(mmdf2)s +2182 X(in)s +2285 X(the)s +2432 X(``To:'')s +2728 X(line)s +2903 X(into)s +3084 X(\256le)s +3237 X(mmdf2.log)s +514 X +3240 Y +1234 X +0.0 10 10 f.I ft(To)s +1561 X(mmdf2)s +2107 X(\256le)s +2457 X(A)s +2734 X(mmdf2.log)s +514 X +3360 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(Messages)s +1722 X(from)s +1941 X(mmdf)s +2205 X(pipe)s +2402 X(to)s +2505 X(the)s +2652 X(program)s +3015 X(err-message-archive)s +514 X +3480 Y +1234 X +0.0 10 10 f.I ft(From)s +1561 X(mmdf)s +2082 X(pipe)s +2457 X(A)s +2734 X(/bin/err-message-archive)s +514 X +3600 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(Anything)s +1712 X(with)s +1915 X(the)s +2062 X(``Sender:'')s +2524 X(address)s +2848 X(``mh-workers'')s +514 X +3720 Y +1234 X(#)s +1309 X(\256le)s +1462 X(in)s +1565 X(mh.log)s +1871 X(if)s +1957 X(not)s +2110 X(\256led)s +2313 X(already)s +514 X +3840 Y +1234 X +0.0 10 10 f.I ft(Sender)s +1561 X(mh-workers)s +2107 X(\256le)s +2462 X(?)s +2734 X(mh.log)s +514 X +3960 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(``To:'')s +1605 X(unix)s +1808 X(\261)s +1883 X(put)s +2036 X(in)s +2139 X(\256le)s +2292 X(unix-news)s +514 X +4080 Y +1234 X +0.0 10 10 f.I ft(To)s +1561 X(Unix)s +2134 X(>)s +2457 X(A)s +2734 X(unix-news)s +514 X +4200 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(if)s +1395 X(the)s +1542 X(address)s +1866 X(is)s +1958 X(jpo=ack)s +2305 X(\261)s +2380 X(send)s +2588 X(an)s +2707 X(acknowledgement)s +3458 X(copy)s +3677 X(back)s +514 X +4320 Y +1234 X +0.0 10 10 f.I ft(addr)s +1561 X(jpo=ack)s +2158 X +0.0 10 10 f.R ft(|)s +2457 X +0.0 10 10 f.I ft(R)s +2734 X(``/bin/resend)s +3300 X(\261r)s +3439 X($\(reply-to\)'')s +514 X +4440 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(anything)s +1684 X(from)s +1903 X(steve)s +2133 X(\261)s +2208 X(destroy!)s +514 X +4560 Y +1234 X +0.0 10 10 f.I ft(From)s +1561 X(steve)s +2021 X(destroy)s +2457 X(A)s +2734 X(\261)s +514 X +4680 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(anything)s +1684 X(not)s +1837 X(matched)s +2200 X(yet)s +2347 X(\261)s +2422 X(put)s +2575 X(into)s +2756 X(mailbox)s +514 X +4800 Y +1234 X +0.0 10 10 f.I ft(default)s +1561 X(\261)s +2134 X(>)s +2462 X(?)s +2734 X(mailbox)s +514 X +4920 Y +1234 X +0.0 10 10 f.R ft(#)s +1309 X(always)s +1611 X(run)s +1769 X(rcvtty)s +514 X +5040 Y +1234 X +0.0 10 10 f.I ft(*)s +1561 X(\261)s +2158 X +0.0 10 10 f.R ft(|)s +2457 X +0.0 10 10 f.I ft(R)s +2734 X(/mh/lib/rcvtty)s +514 X +5280 Y +874 X +0.0 10 10 f.R ft(The)s +1061 X(\256le)s +1221 X(is)s +1320 X(always)s +1629 X(read)s +1832 X(completely,)s +2333 X(so)s +2454 X(that)s +2636 X(several)s +2950 X(matches)s +3309 X(can)s +3479 X(be)s +3605 X(made)s +3853 X(and)s +4029 X(several)s +4343 X(actions)s +4658 X(can)s +4828 X(be)s +4953 X(taken.)s +514 X +5400 Y +874 X(The)s +1056 X +0.0 10 10 f.I ft(.maildelivery)s +1607 X +0.0 10 10 f.R ft(\256le)s +1762 X(must)s +1984 X(be)s +2105 X(owned)s +2398 X(either)s +2652 X(by)s +2779 X(the)s +2928 X(user)s +3121 X(or)s +3231 X(by)s +3358 X(root,)s +3571 X(and)s +3742 X(must)s +3964 X(be)s +4085 X(writable)s +4439 X(only)s +4644 X(by)s +4771 X(the)s +4920 X(owner.)s +514 X +5520 Y +874 X(If)s +967 X(the)s +1116 X +0.0 10 10 f.I ft(.maildelivery)s +1666 X +0.0 10 10 f.R ft(\256le)s +1820 X(cannot)s +2112 X(be)s +2232 X(found,)s +2516 X(or)s +2625 X(does)s +2834 X(not)s +2988 X(perform)s +3335 X(an)s +3455 X(action)s +3725 X(which)s +3995 X(delivers)s +4337 X(the)s +4485 X(message,)s +4874 X(then)s +5072 X(the)s +514 X +5640 Y +874 X(\256le)s +1038 X(/usr/bs/mh-beta/lib/maildelivery)s +2363 X(is)s +2466 X(read)s +2673 X(according)s +3102 X(to)s +3216 X(the)s +3374 X(same)s +3615 X(rules.)s +3895 X(This)s +4109 X(\256le)s +4273 X(must)s +4504 X(be)s +4634 X(owned)s +4936 X(by)s +5072 X(the)s +514 X +5760 Y +874 X(root)s +1062 X(and)s +1233 X(must)s +1455 X(be)s +1576 X(writable)s +1930 X(only)s +2135 X(by)s +2262 X(the)s +2411 X(root.)s +2649 X(If)s +2742 X(this)s +2914 X(\256le)s +3069 X(cannot)s +3362 X(be)s +3482 X(found)s +3741 X(or)s +3850 X(does)s +4059 X(not)s +4213 X(perform)s +4560 X(an)s +4680 X(action)s +4950 X(which)s +514 X +5880 Y +874 X(delivers)s +1215 X(the)s +1362 X(message,)s +1750 X(then)s +1947 X(standard)s +2310 X(delivery)s +2662 X(to)s +2765 X(the)s +2912 X(user's)s +3175 X(maildrop)s +3561 X(is)s +3653 X(performed.)s +514 X +6240 Y +694 X +0.0 8 8 f.B ft(Sub-process)s +1127 X(environment)s +514 X +6480 Y +874 X +0.0 10 10 f.R ft(When)s +1150 X(a)s +1232 X(process)s +1569 X(is)s +1674 X(invoked,)s +2059 X(its)s +2192 X(environment)s +2735 X(is:)s +2868 X(the)s +3027 X(user/group-ids)s +3641 X(are)s +3799 X(set)s +3947 X(to)s +4062 X(recipient's)s +4520 X(ids;)s +4702 X(the)s +4861 X(working)s +514 X +6600 Y +874 X(directory)s +1273 X(is)s +1379 X(the)s +1540 X(recipient's)s +2000 X(home)s +2261 X(directory;)s +2688 X(the)s +2848 X(umask)s +3147 X(is)s +3252 X(0077;)s +3518 X(the)s +3678 X(process)s +4015 X(has)s +4186 X(no)s +4324 X(/dev/tty;)s +4696 X(the)s +4856 X(standard)s +514 X +6720 Y +874 X(input)s +1118 X(is)s +1223 X(set)s +1372 X(to)s +1488 X(the)s +1648 X(message;)s +2052 X(the)s +2212 X(standard)s +2588 X(output)s +2882 X(and)s +3064 X(diagnostic)s +3513 X(output)s +3807 X(are)s +3966 X(set)s +4115 X(to)s +4231 X(/dev/null;)s +4653 X(all)s +4791 X(other)s +5033 X(\256le-)s +514 X +6840 Y +874 X(descriptors)s +1354 X(are)s +1517 X(closed;)s +1842 X(the)s +2006 X(envariables)s +2502 X +0.0 10 10 f.B ft($USER)s +0.0 10 10 f.R ft(,)s +2886 X +0.0 10 10 f.B ft($HOME)s +0.0 10 10 f.R ft(,)s +3320 X +0.0 10 10 f.B ft($SHELL)s +3747 X +0.0 10 10 f.R ft(are)s +3910 X(set)s +4063 X(appropriately,)s +4662 X(and)s +4848 X(no)s +4989 X(other)s +514 X +6960 Y +874 X(envariables)s +1353 X(exist.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 95 96 + +514 X +600 Y(SLOCAL\(1\))s +2771 X(-95-)s +4666 X(SLOCAL\(1\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(The)s +1059 X(process)s +1388 X(is)s +1485 X(given)s +1736 X(a)s +1809 X(certain)s +2109 X(amount)s +2438 X(of)s +2550 X(time)s +2757 X(to)s +2864 X(execute.)s +3247 X(If)s +3342 X(the)s +3493 X(process)s +3821 X(does)s +4033 X(not)s +4190 X(exit)s +4369 X(within)s +4654 X(this)s +4828 X(limit,)s +5072 X(the)s +514 X +1080 Y +874 X(process)s +1202 X(will)s +1387 X(be)s +1510 X(terminated)s +1966 X(with)s +2173 X(extreme)s +2523 X(prejudice.)s +2973 X(The)s +3156 X(amount)s +3484 X(of)s +3595 X(time)s +3801 X(is)s +3896 X(calculated)s +4328 X(as)s +4439 X(\(\(size)s +4688 X(x)s +4766 X(60\))s +4927 X(+)s +5011 X(300\))s +514 X +1200 Y +874 X(seconds,)s +1240 X(where)s +1508 X(size)s +1688 X(is)s +1780 X(the)s +1927 X(number)s +2257 X(of)s +2365 X(bytes)s +2601 X(in)s +2704 X(the)s +2851 X(message.)s +514 X +1440 Y +874 X(The)s +1061 X(exit)s +1243 X(status)s +1503 X(of)s +1618 X(the)s +1772 X(process)s +2103 X(is)s +2202 X(consulted)s +2617 X(in)s +2727 X(determining)s +3241 X(the)s +3394 X(success)s +3724 X(of)s +3838 X(the)s +3991 X(action.)s +4316 X(An)s +4469 X(exit)s +4650 X(status)s +4909 X(of)s +5023 X(zero)s +514 X +1560 Y +874 X(means)s +1168 X(that)s +1357 X(the)s +1518 X(action)s +1801 X(succeeded.)s +2299 X(Any)s +2510 X(other)s +2754 X(exit)s +2942 X(status)s +3208 X(\(or)s +3362 X(abnormal)s +3777 X(termination\))s +4309 X(means)s +4602 X(that)s +4790 X(the)s +4950 X(action)s +514 X +1680 Y +874 X(failed.)s +514 X +1920 Y +874 X(In)s +991 X(order)s +1235 X(to)s +1347 X(avoid)s +1603 X(any)s +1780 X(time)s +1991 X(limitations,)s +2478 X(you)s +2661 X(might)s +2928 X(implement)s +3389 X(a)s +3466 X(process)s +3798 X(that)s +3981 X(began)s +4252 X(by)s +4385 X +0.0 10 10 f.I ft(forking)s +0.0 10 10 f.R ft(.)s +4757 X(The)s +4945 X(parent)s +514 X +2040 Y +874 X(would)s +1153 X(return)s +1419 X(the)s +1569 X(appropriate)s +2051 X(value)s +2295 X(immediately,)s +2848 X(and)s +3020 X(the)s +3170 X(child)s +3398 X(could)s +3648 X(continue)s +4020 X(on,)s +4173 X(doing)s +4429 X(whatever)s +4822 X(it)s +4906 X(wanted)s +514 X +2160 Y +874 X(for)s +1022 X(as)s +1137 X(long)s +1346 X(as)s +1460 X(it)s +1547 X(wanted.)s +1916 X(This)s +2125 X(approach)s +2521 X(is)s +2619 X(somewhat)s +3055 X(risky)s +3286 X(if)s +3378 X(the)s +3531 X(parent)s +3811 X(is)s +3909 X(going)s +4168 X(to)s +4277 X(return)s +4546 X(an)s +4671 X(exit)s +4852 X(status)s +5111 X(of)s +514 X +2280 Y +874 X(zero.)s +1125 X(If)s +1221 X(the)s +1373 X(parent)s +1652 X(is)s +1749 X(going)s +2007 X(to)s +2115 X(return)s +2383 X(a)s +2457 X(non-zero)s +2840 X(exit)s +3019 X(status,)s +3301 X(then)s +3502 X(this)s +3676 X(approach)s +4070 X(can)s +4237 X(lead)s +4432 X(to)s +4539 X(quicker)s +4867 X(delivery)s +514 X +2400 Y +874 X(into)s +1055 X(your)s +1263 X(maildrop.)s +514 X +2562 Y +0.0 8 8 f.B ft(Files)s +514 X +2682 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(MH)s +2649 X(tailor)s +2885 X(\256le)s +514 X +2802 Y +874 X($HOME/.maildelivery)s +2463 X(The)s +2643 X(\256le)s +2796 X(controlling)s +3260 X(local)s +3479 X(delivery)s +514 X +2922 Y +874 X(/usr/bs/mh-beta/lib/maildelivery)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(\256le)s +514 X +3042 Y +874 X(/usr/spool/mail/$USER)s +2463 X(The)s +2643 X(default)s +2945 X(maildrop)s +514 X +3246 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3366 Y +874 X +0.0 10 10 f.R ft(rcvstore\(1\),)s +1361 X(mhook\(1\),)s +1805 X(mh\261format\(5\))s +2390 X(,)s +2440 X(maildelivery\(5\))s +514 X +3570 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3690 Y +874 X +0.0 10 10 f.R ft(`\261noverbose')s +514 X +3810 Y +874 X(`\261maildelivery)s +1487 X(.maildelivery')s +514 X +3930 Y +874 X(`\261mailbox)s +1310 X(/usr/spool/mail/$USER')s +514 X +4050 Y +874 X(`\261\256le')s +1143 X(defaults)s +1484 X(to)s +1587 X(stdin)s +514 X +4170 Y +874 X(`\261user')s +1181 X(defaults)s +1522 X(to)s +1625 X(the)s +1772 X(current)s +2079 X(user)s +514 X +4374 Y +0.0 8 8 f.B ft(Context)s +514 X +4494 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4698 Y +0.0 8 8 f.B ft(History)s +514 X +4818 Y +874 X +0.0 10 10 f.I ft(Slocal)s +1155 X +0.0 10 10 f.R ft(is)s +1253 X(designed)s +1639 X(to)s +1748 X(be)s +1873 X(backward-compatible)s +2768 X(with)s +2977 X(the)s +3130 X +0.0 10 10 f.I ft(maildelivery)s +3660 X +0.0 10 10 f.R ft(facility)s +3974 X(provided)s +4360 X(by)s +4491 X +0.0 10 10 f.I ft(MMDF-II)s +0.0 10 10 f.R ft(.)s +4969 X(Thus,)s +514 X +4938 Y +874 X(the)s +1021 X +0.0 10 10 f.I ft(.maildelivery)s +1570 X +0.0 10 10 f.R ft(\256le)s +1723 X(syntax)s +2009 X(is)s +2101 X(limited,)s +2435 X(as)s +2543 X(is)s +2635 X(the)s +2782 X(functionality)s +3318 X(of)s +3426 X +0.0 10 10 f.I ft(slocal)s +0.0 10 10 f.R ft(.)s +514 X +5178 Y +874 X(In)s +989 X(addition)s +1349 X(to)s +1458 X(an)s +1583 X(exit)s +1764 X(status)s +2023 X(of)s +2137 X(zero,)s +2364 X(the)s +2517 X +0.0 10 10 f.I ft(MMDF)s +2847 X +0.0 10 10 f.R ft(values)s +3133 X +0.0 10 10 f.I ft(RP_MOK)s +3558 X +0.0 10 10 f.R ft(\(32\))s +3755 X(and)s +3930 X +0.0 10 10 f.I ft(RP_OK)s +4272 X +0.0 10 10 f.R ft(\(9\))s +4419 X(mean)s +4666 X(that)s +4847 X(the)s +5000 X(mes-)s +514 X +5298 Y +874 X(sage)s +1080 X(has)s +1242 X(been)s +1459 X(fully)s +1677 X(delivered.)s +2127 X(Any)s +2328 X(other)s +2562 X(non-zero)s +2944 X(exit)s +3122 X(status,)s +3403 X(including)s +3809 X(abnormal)s +4214 X(termination,)s +4728 X(is)s +4823 X(interpret-)s +514 X +5418 Y +874 X(ed)s +994 X(as)s +1103 X(the)s +1251 X +0.0 10 10 f.I ft(MMDF)s +1576 X +0.0 10 10 f.R ft(value)s +1818 X +0.0 10 10 f.I ft(RP_MECH)s +2299 X +0.0 10 10 f.R ft(\(200\),)s +2566 X(which)s +2836 X(means)s +3117 X(``use)s +3341 X(an)s +3460 X(alternate)s +3828 X(route'')s +4124 X(\(deliver)s +4459 X(the)s +4606 X(message)s +4969 X(to)s +5072 X(the)s +514 X +5538 Y +874 X(maildrop\).)s +514 X +5742 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5862 Y +874 X +0.0 10 10 f.R ft(Only)s +1099 X(two)s +1274 X(return)s +1537 X(codes)s +1789 X(are)s +1935 X(meaningful,)s +2440 X(others)s +2709 X(should)s +3001 X(be.)s +514 X +6102 Y +874 X +0.0 10 10 f.I ft(Slocal)s +1149 X +0.0 10 10 f.R ft(is)s +1241 X(designed)s +1621 X(to)s +1724 X(be)s +1843 X(backwards-compatible)s +2771 X(with)s +2974 X(the)s +3121 X +0.0 10 10 f.I ft(maildelivery)s +3645 X +0.0 10 10 f.R ft(functionality)s +4181 X(provided)s +4561 X(by)s +4686 X +0.0 10 10 f.B ft(MMDF-II)s +0.0 10 10 f.R ft(.)s +514 X +6342 Y +874 X(Versions)s +1271 X(of)s +1396 X +0.0 10 10 f.I ft(MMDF)s +1737 X +0.0 10 10 f.R ft(with)s +1957 X(the)s +2121 X +0.0 10 10 f.I ft(maildelivery)s +2662 X +0.0 10 10 f.R ft(mechanism)s +3158 X(aren't)s +3431 X(entirely)s +3777 X(backwards-compatible)s +4721 X(with)s +4940 X(earlier)s +514 X +6462 Y +874 X(versions)s +1233 X(of)s +1342 X +0.0 10 10 f.I ft(MMDF)s +0.0 10 10 f.R ft(.)s +1717 X(If)s +1809 X(you)s +1985 X(have)s +2199 X(an)s +2318 X +0.0 10 10 f.I ft(MMDF-I)s +2708 X +0.0 10 10 f.R ft(old-style)s +3083 X(hook,)s +3333 X(the)s +3480 X(best)s +3666 X(you)s +3841 X(can)s +4004 X(do)s +4129 X(is)s +4221 X(to)s +4324 X(have)s +4537 X(a)s +4606 X(one-line)s +4958 X +0.0 10 10 f.I ft(.mail-)s +514 X +6582 Y +874 X(delivery)s +1220 X +0.0 10 10 f.R ft(\256le:)s +514 X +6822 Y +1234 X(default)s +1536 X(\261)s +1611 X(pipe)s +1808 X(A)s +1905 X(``bin/rcvmail)s +2457 X($\(address\))s +2897 X($\(info\))s +3199 X($\(sender\)'')s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 96 97 + +514 X +600 Y(SORTM\(1\))s +2771 X(-96-)s +4711 X(SORTM\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(sortm)s +1127 X(\261)s +1202 X(sort)s +1377 X(messages)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(sortm)s +1127 X([+folder])s +1512 X([msgs])s +1809 X([\261date\256eld \256eld])s +2497 X([\261text\256eld \256eld])s +3169 X([\261notext\256eld])s +3738 X([\261limit)s +4036 X(days])s +4277 X([\261nolimit])s +4708 X([\261verbose])s +514 X +1560 Y +1234 X([\261noverbose])s +1785 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Sortm)s +1140 X +0.0 10 10 f.R ft(sorts)s +1356 X(the)s +1505 X(speci\256ed)s +1887 X(messages)s +2291 X(in)s +2396 X(the)s +2545 X(named)s +2838 X(folder)s +3103 X(according)s +3523 X(to)s +3628 X(the)s +3777 X(chronological)s +4353 X(order)s +4589 X(of)s +4698 X(the)s +4846 X(``Date:'')s +514 X +2160 Y +874 X(\256eld)s +1077 X(of)s +1185 X(each)s +1392 X(message.)s +514 X +2400 Y +874 X(The)s +1057 X(`\261verbose')s +1511 X(switch)s +1800 X(directs)s +2093 X +0.0 10 10 f.I ft(sortm)s +2348 X +0.0 10 10 f.R ft(to)s +2453 X(tell)s +2608 X(the)s +2757 X(user)s +2950 X(the)s +3099 X(general)s +3419 X(actions)s +3729 X(that)s +3906 X(it)s +3989 X(is)s +4083 X(taking)s +4360 X(to)s +4465 X(place)s +4702 X(the)s +4851 X(folder)s +5116 X(in)s +514 X +2520 Y +874 X(sorted)s +1143 X(order.)s +514 X +2760 Y +874 X(The)s +1061 X(`\261date\256eld \256eld')s +1755 X(switch)s +2047 X(tells)s +2245 X +0.0 10 10 f.I ft(sortm)s +2504 X +0.0 10 10 f.R ft(the)s +2657 X(name)s +2904 X(of)s +3018 X(the)s +3171 X(\256eld)s +3380 X(to)s +3489 X(use)s +3653 X(when)s +3900 X(making)s +4231 X(the)s +4384 X(date)s +4581 X(comparison.)s +5128 X(If)s +514 X +2880 Y +874 X(the)s +1047 X(user)s +1263 X(has)s +1446 X(a)s +1540 X(special)s +1867 X(\256eld)s +2095 X(in)s +2223 X(each)s +2455 X(message,)s +2868 X(such)s +3101 X(as)s +3234 X(``BB\261Posted:'')s +3895 X(or)s +4028 X(``Delivery\261Date:'',)s +4850 X(then)s +5072 X(the)s +514 X +3000 Y +874 X(`\261date\256eld')s +1359 X(switch)s +1645 X(can)s +1808 X(be)s +1927 X(used)s +2135 X(to)s +2238 X(direct)s +2490 X +0.0 10 10 f.I ft(sortm)s +2743 X +0.0 10 10 f.R ft(which)s +3012 X(\256eld)s +3215 X(to)s +3318 X(examine.)s +514 X +3240 Y +874 X(The)s +1060 X(`\261text\256eld \256eld')s +1738 X(switch)s +2030 X(causes)s +2321 X +0.0 10 10 f.I ft(sortm)s +2580 X +0.0 10 10 f.R ft(to)s +2688 X(sort)s +2868 X(messages)s +3275 X(by)s +3405 X(the)s +3557 X(speci\256ed)s +3942 X(text)s +4122 X(\256eld.)s +4380 X(If)s +4476 X(this)s +4651 X(\256eld)s +4859 X(is)s +4956 X(``sub-)s +514 X +3360 Y +874 X(ject'',)s +1142 X(any)s +1319 X(leading)s +1646 X("re:")s +1866 X(is)s +1966 X(stripped)s +2320 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(.)s +2513 X(In)s +2628 X(any)s +2804 X(case,)s +3032 X(all)s +3164 X(characters)s +3599 X(except)s +3891 X(letters)s +4167 X(and)s +4343 X(numbers)s +4719 X(are)s +4872 X(stripped)s +514 X +3480 Y +874 X(and)s +1043 X(the)s +1190 X(resulting)s +1565 X(strings)s +1857 X(are)s +2003 X(sorted)s +2272 X(date\256eld\261major,)s +2949 X(text\256eld\261minor,)s +3616 X(using)s +3858 X(a)s +3927 X(case)s +4123 X(insensitive)s +4576 X(comparison.)s +514 X +3720 Y +874 X(With)s +1112 X(`\261text\256eld \256eld',)s +1822 X(if)s +1920 X(`\261limit days')s +2471 X(is)s +2575 X(speci\256ed,)s +2992 X(messages)s +3406 X(with)s +3621 X(similar)s +3936 X(text\256elds)s +4340 X(that)s +4527 X(are)s +4685 X(dated)s +4938 X(within)s +514 X +3840 Y +874 X(`days')s +1157 X(of)s +1274 X(each)s +1490 X(other)s +1729 X(appear)s +2028 X(together.)s +2439 X(Specifying)s +2906 X(`\261nolimit')s +3346 X(makes)s +3635 X(the)s +3791 X(limit)s +4015 X(in\256nity.)s +4389 X(With)s +4623 X(`\261limit)s +4930 X(0',)s +5072 X(the)s +514 X +3960 Y +874 X(sort)s +1049 X(is)s +1141 X(instead)s +1449 X(made)s +1690 X(text\256eld\261major,)s +2351 X(date\261minor.)s +514 X +4200 Y +874 X(For)s +1038 X(example,)s +1426 X(to)s +1529 X(order)s +1764 X(a)s +1833 X(folder)s +2096 X(by)s +2221 X(date-major,)s +2703 X(subject-minor,)s +3308 X(use:)s +514 X +4440 Y +1234 X(sortm)s +1487 X(-text\256eld)s +1873 X(subject)s +2181 X(+folder)s +514 X +4722 Y +0.0 8 8 f.B ft(Files)s +514 X +4842 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5046 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +5166 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +5286 Y +874 X(Current\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(current)s +2863 X(folder)s +514 X +5490 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5610 Y +874 X +0.0 10 10 f.R ft(folder)s +1137 X(\(1\))s +514 X +5814 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5934 Y +874 X +0.0 10 10 f.R ft(`+folder')s +1259 X(defaults)s +1600 X(to)s +1703 X(the)s +1850 X(current)s +2157 X(folder)s +514 X +6054 Y +874 X(`msgs')s +1171 X(defaults)s +1512 X(to)s +1615 X(all)s +514 X +6174 Y +874 X(`\261date\256eld)s +1326 X(date')s +514 X +6294 Y +874 X(`\261notext\256eld')s +514 X +6414 Y +874 X(`\261noverbose')s +514 X +6534 Y +874 X(`\261nolimit')s +514 X +6738 Y +0.0 8 8 f.B ft(Context)s +514 X +6858 Y +874 X +0.0 10 10 f.R ft(If)s +969 X(a)s +1042 X(folder)s +1309 X(is)s +1405 X(given,)s +1681 X(it)s +1766 X(will)s +1951 X(become)s +2290 X(the)s +2441 X(current)s +2752 X(folder.)s +3069 X(If)s +3164 X(the)s +3315 X(current)s +3626 X(message)s +3993 X(is)s +4089 X(moved,)s +4415 X +0.0 10 10 f.I ft(sortm)s +4672 X +0.0 10 10 f.R ft(will)s +4857 X(preserve)s +514 X +6978 Y +874 X(its)s +994 X(status)s +1247 X(as)s +1355 X(current.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 97 98 + +514 X +600 Y(SORTM\(1\))s +2771 X(-97-)s +4711 X(SORTM\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(History)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Timezones)s +1337 X(used)s +1545 X(to)s +1648 X(be)s +1767 X(ignored)s +2097 X(when)s +2338 X(comparing)s +2790 X(dates:)s +3048 X(they)s +3245 X(aren't)s +3502 X(any)s +3671 X(more.)s +514 X +1320 Y +874 X(Messages)s +1292 X(which)s +1566 X(were)s +1788 X(in)s +1895 X(the)s +2046 X(folder,)s +2338 X(but)s +2495 X(not)s +2652 X(speci\256ed)s +3036 X(by)s +3165 X(`msgs',)s +3491 X(used)s +3703 X(to)s +3810 X(be)s +3933 X(moved)s +4234 X(to)s +4341 X(the)s +4492 X(end)s +4665 X(of)s +4777 X(the)s +4928 X(folder;)s +514 X +1440 Y +874 X(now)s +1071 X(such)s +1279 X(messages)s +1681 X(are)s +1827 X(left)s +1985 X(untouched.)s +514 X +1680 Y +874 X +0.0 10 10 f.I ft(Sortm)s +1150 X +0.0 10 10 f.R ft(sometimes)s +1615 X(did)s +1780 X(not)s +1945 X(preserve)s +2319 X(the)s +2478 X(message)s +2853 X(numbering)s +3323 X(in)s +3438 X(a)s +3519 X(folder)s +3794 X(\(e.g.,)s +4033 X(messages)s +4447 X(1,)s +4558 X(3,)s +4669 X(and)s +4849 X(5,)s +4960 X(might)s +514 X +1800 Y +874 X(have)s +1091 X(been)s +1308 X(renumbered)s +1813 X(to)s +1920 X(1,)s +2024 X(2,)s +2128 X(3)s +2207 X(after)s +2418 X(sorting\).)s +2808 X(This)s +3015 X(was)s +3199 X(a)s +3272 X(bug,)s +3476 X(and)s +3649 X(has)s +3811 X(been)s +4028 X(\256xed.)s +4306 X(To)s +4445 X(compress)s +4850 X(the)s +5000 X(mes-)s +514 X +1920 Y +874 X(sage)s +1076 X(numbering)s +1534 X(in)s +1637 X(a)s +1706 X(folder,)s +1994 X(use)s +2152 X(``)s +0.0 10 10 f.I ft(folder)s +2482 X(\261pack)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft('')s +2828 X(as)s +2936 X(always.)s +514 X +2124 Y +0.0 8 8 f.B ft(Bugs)s +514 X +2244 Y +874 X +0.0 10 10 f.R ft(If)s +977 X +0.0 10 10 f.I ft(sortm)s +1242 X +0.0 10 10 f.R ft(encounters)s +1711 X(a)s +1792 X(message)s +2167 X(without)s +2510 X(a)s +2591 X(date\261\256eld,)s +3047 X(or)s +3167 X(if)s +3265 X(the)s +3424 X(message)s +3799 X(has)s +3968 X(a)s +4048 X(date\261\256eld)s +4478 X(that)s +4664 X +0.0 10 10 f.I ft(sortm)s +4928 X +0.0 10 10 f.R ft(cannot)s +514 X +2364 Y +874 X(parse,)s +1142 X(then)s +1347 X +0.0 10 10 f.I ft(sortm)s +1608 X +0.0 10 10 f.R ft(attempts)s +1979 X(to)s +2089 X(keep)s +2309 X(the)s +2463 X(message)s +2833 X(in)s +2943 X(the)s +3097 X(same)s +3334 X(relative)s +3665 X(position.)s +4070 X(This)s +4280 X(does)s +4495 X(not)s +4655 X(always)s +4964 X(work.)s +514 X +2484 Y +874 X(For)s +1054 X(instance,)s +1447 X(if)s +1548 X(the)s +1710 X(\256rst)s +1906 X(message)s +2284 X(encountered)s +2811 X(lacks)s +3056 X(a)s +3140 X(date)s +3346 X(which)s +3630 X(can)s +3808 X(be)s +3942 X(parsed,)s +4267 X(then)s +4479 X(it)s +4575 X(will)s +4771 X(usually)s +5100 X(be)s +514 X +2604 Y +874 X(placed)s +1159 X(at)s +1256 X(the)s +1403 X(end)s +1572 X(of)s +1680 X(the)s +1827 X(messages)s +2229 X(being)s +2476 X(sorted.)s +514 X +2844 Y +874 X(When)s +1147 X +0.0 10 10 f.I ft(sortm)s +1410 X +0.0 10 10 f.R ft(complains)s +1856 X(about)s +2113 X(a)s +2192 X(message)s +2565 X(which)s +2844 X(it)s +2935 X(can't)s +3169 X(temporally)s +3637 X(order,)s +3907 X(it)s +3998 X(complains)s +4444 X(about)s +4700 X(the)s +4856 X(message)s +514 X +2964 Y +874 X(number)s +1204 X +0.0 10 10 f.I ft(prior)s +1435 X +0.0 10 10 f.R ft(to)s +1538 X(sorting.)s +1891 X(It)s +1977 X(should)s +2269 X(indicate)s +2610 X(what)s +2829 X(the)s +2976 X(message)s +3339 X(number)s +3669 X(will)s +3850 X(be)s +3969 X +0.0 10 10 f.I ft(after)s +4183 X +0.0 10 10 f.R ft(sorting.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 98 99 + +514 X +600 Y(VMH\(1\))s +2771 X(-98-)s +4834 X(VMH\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(vmh)s +1077 X(\261)s +1152 X(visual)s +1416 X(front-end)s +1812 X(to)s +1915 X(MH)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(vmh)s +1077 X([\261prompt string])s +1760 X([\261vmhproc program])s +2619 X([\261novmhproc])s +3215 X([switches for )s +0.0 10 10 f.I ft(vmhproc)s +0.0 10 10 f.R ft(])s +4165 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(vmh)s +1080 X +0.0 10 10 f.R ft(is)s +1187 X(a)s +1271 X(program)s +1648 X(which)s +1931 X(implements)s +2437 X(the)s +2598 X(server)s +2880 X(side)s +3080 X(of)s +3202 X(the)s +3363 X +0.0 10 10 f.I ft(MH)s +3557 X +0.0 10 10 f.R ft(window)s +3918 X(management)s +4467 X(protocol)s +4839 X(and)s +5022 X(uses)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(curses)s +1179 X +0.0 10 10 f.R ft(\(3\))s +1324 X(routines)s +1674 X(to)s +1780 X(maintain)s +2158 X(a)s +2230 X(split\261screen)s +2735 X(interface)s +3111 X(to)s +3217 X(any)s +3389 X(program)s +3755 X(which)s +4027 X(implements)s +4522 X(the)s +4672 X(client)s +4922 X(side)s +5111 X(of)s +514 X +2160 Y +874 X(the)s +1021 X(protocol.)s +1429 X(This)s +1632 X(latter)s +1862 X(program,)s +2250 X(called)s +2513 X(the)s +2660 X +0.0 10 10 f.I ft(vmhproc)s +0.0 10 10 f.R ft(,)s +3059 X(is)s +3151 X(speci\256ed)s +3531 X(using)s +3773 X(the)s +3920 X(`\261vmhproc program')s +4779 X(switch.)s +514 X +2400 Y +874 X(The)s +1061 X(upshot)s +1360 X(of)s +1475 X(all)s +1607 X(this)s +1784 X(is)s +1882 X(that)s +2063 X(one)s +2238 X(can)s +2407 X(run)s +2571 X +0.0 10 10 f.I ft(msh)s +2763 X +0.0 10 10 f.R ft(on)s +2894 X(a)s +2969 X(display)s +3289 X(terminal)s +3653 X(and)s +3828 X(get)s +3981 X(a)s +4056 X(nice)s +4253 X(visual)s +4523 X(interface.)s +4952 X(To)s +5094 X(do)s +514 X +2520 Y +874 X(this,)s +1069 X(for)s +1210 X(example,)s +1598 X(just)s +1768 X(add)s +1937 X(the)s +2084 X(line)s +514 X +2760 Y +1234 X(mshproc:)s +1631 X(vmh)s +514 X +3000 Y +874 X(to)s +977 X(your)s +1185 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le.)s +1724 X(\(This)s +1960 X(takes)s +2190 X(advantage)s +2619 X(of)s +2727 X(the)s +2874 X(fact)s +3048 X(that)s +3223 X +0.0 10 10 f.I ft(msh)s +3409 X +0.0 10 10 f.R ft(is)s +3501 X(the)s +3648 X(default)s +3950 X +0.0 10 10 f.I ft(vmhproc)s +4324 X +0.0 10 10 f.R ft(for)s +4465 X +0.0 10 10 f.I ft(vmh)s +0.0 10 10 f.R ft(.\))s +514 X +3240 Y +874 X(In)s +988 X(order)s +1228 X(to)s +1336 X(facilitate)s +1715 X(things,)s +2015 X(if)s +2106 X(the)s +2258 X(`\261novmhproc')s +2859 X(switch)s +3150 X(is)s +3247 X(given,)s +3524 X(and)s +3698 X +0.0 10 10 f.I ft(vmh)s +3894 X +0.0 10 10 f.R ft(can't)s +4123 X(run)s +4286 X(on)s +4416 X(the)s +4568 X(user's)s +4836 X(terminal,)s +514 X +3360 Y +874 X(the)s +1021 X +0.0 10 10 f.I ft(vmhproc)s +1395 X +0.0 10 10 f.R ft(is)s +1487 X(run)s +1645 X(directly)s +1975 X(without)s +2306 X(the)s +2453 X(window)s +2800 X(management)s +3335 X(protocol.)s +514 X +3600 Y +874 X(After)s +1113 X(initializing)s +1576 X(the)s +1727 X(protocol,)s +2114 X +0.0 10 10 f.I ft(vmh)s +2309 X +0.0 10 10 f.R ft(prompts)s +2666 X(the)s +2817 X(user)s +3012 X(for)s +3157 X(a)s +3229 X(command)s +3651 X(to)s +3757 X(be)s +3879 X(given)s +4129 X(to)s +4235 X(the)s +4385 X(client.)s +4685 X(Usually,)s +5049 X(this)s +514 X +3720 Y +874 X(results)s +1164 X(in)s +1271 X(output)s +1556 X(being)s +1807 X(sent)s +1997 X(to)s +2103 X(one)s +2275 X(or)s +2386 X(more)s +2619 X(windows.)s +3058 X(If)s +3152 X(a)s +3224 X(output)s +3508 X(to)s +3614 X(a)s +3686 X(window)s +4036 X(would)s +4314 X(cause)s +4563 X(it)s +4647 X(to)s +4753 X(scroll,)s +5028 X +0.0 10 10 f.I ft(vmh)s +514 X +3840 Y +874 X +0.0 10 10 f.R ft(prompts)s +1241 X(the)s +1402 X(user)s +1607 X(for)s +1762 X(instructions,)s +2292 X(roughly)s +2641 X(permitting)s +3096 X(the)s +3256 X(capabilities)s +3749 X(of)s +3870 X +0.0 10 10 f.I ft(less)s +4058 X +0.0 10 10 f.R ft(or)s +4179 X +0.0 10 10 f.I ft(more)s +4422 X +0.0 10 10 f.R ft(\(e.g.,)s +4662 X(the)s +4822 X(ability)s +5116 X(to)s +514 X +3960 Y +874 X(scroll)s +1121 X(backwards)s +1572 X(and)s +1741 X(forwards\):)s +514 X +4200 Y +1234 X(SPACE)s +1784 X(advance)s +2135 X(to)s +2238 X(the)s +2385 X(next)s +2582 X(windowful)s +514 X +4320 Y +1234 X(RETURN)s +1684 X(*)s +1784 X(advance)s +2135 X(to)s +2238 X(the)s +2385 X(next)s +2582 X(line)s +514 X +4440 Y +1234 X(y)s +1684 X(*)s +1784 X(retreat)s +2063 X(to)s +2166 X(the)s +2313 X(previous)s +2682 X(line)s +514 X +4560 Y +1234 X(d)s +1684 X(*)s +1784 X(advance)s +2135 X(to)s +2238 X(the)s +2385 X(next)s +2582 X(ten)s +2729 X(lines)s +514 X +4680 Y +1234 X(u)s +1684 X(*)s +1784 X(retreat)s +2063 X(to)s +2166 X(the)s +2313 X(previous)s +2682 X(ten)s +2829 X(lines)s +514 X +4800 Y +1234 X(g)s +1684 X(*)s +1784 X(go)s +1909 X(to)s +2012 X(an)s +2131 X(arbitrary)s +2499 X(line)s +514 X +4920 Y +1784 X(\(preceed)s +2151 X(g)s +2226 X(with)s +2429 X(the)s +2576 X(line)s +2751 X(number\))s +514 X +5040 Y +1234 X(G)s +1684 X(*)s +1784 X(go)s +1909 X(to)s +2012 X(the)s +2159 X(end)s +2328 X(of)s +2436 X(the)s +2583 X(window)s +514 X +5160 Y +1784 X(\(if)s +1903 X(a)s +1972 X(line)s +2147 X(number)s +2477 X(is)s +2569 X(given,)s +2841 X(this)s +3011 X(acts)s +3191 X(like)s +3366 X(`g'\))s +514 X +5280 Y +1234 X(CTRL\261L)s +1784 X(refresh)s +2085 X(the)s +2232 X(entire)s +2484 X(screen)s +514 X +5400 Y +1234 X(h)s +1784 X(print)s +1998 X(a)s +2067 X(help)s +2264 X(message)s +514 X +5520 Y +1234 X(q)s +1784 X(abort)s +2014 X(the)s +2161 X(window)s +514 X +5760 Y +874 X(\(A)s +1004 X(`*')s +1145 X(indicates)s +1525 X(that)s +1700 X(a)s +1769 X(numeric)s +2121 X(pre\256x)s +2379 X(is)s +2471 X(meaningful)s +2951 X(for)s +3092 X(this)s +3262 X(command.\))s +514 X +6000 Y +874 X(Note)s +1095 X(that)s +1272 X(if)s +1360 X(a)s +1431 X(command)s +1852 X(resulted)s +2195 X(in)s +2300 X(more)s +2532 X(than)s +2731 X(one)s +2902 X(window's)s +3323 X(worth)s +3583 X(of)s +3693 X(information)s +4192 X(being)s +4440 X(displayed,)s +4874 X(and)s +5044 X(you)s +514 X +6120 Y +874 X(allow)s +1124 X(the)s +1274 X(command)s +1696 X(which)s +1968 X(is)s +2063 X(generating)s +2512 X(information)s +3012 X(for)s +3155 X(the)s +3304 X(window)s +3653 X(to)s +3758 X(gracefully)s +4189 X(\256nish)s +4439 X(\(i.e.,)s +4646 X(you)s +4823 X(don't)s +5061 X(use)s +514 X +6240 Y +874 X(the)s +1023 X(`q')s +1166 X(command)s +1587 X(to)s +1692 X(abort)s +1924 X(information)s +2423 X(being)s +2672 X(sent)s +2860 X(to)s +2965 X(the)s +3114 X(window\),)s +3521 X(then)s +3720 X +0.0 10 10 f.I ft(vmh)s +3913 X +0.0 10 10 f.R ft(will)s +4096 X(give)s +4295 X(you)s +4472 X(one)s +4643 X(last)s +4808 X(change)s +5116 X(to)s +514 X +6360 Y +874 X(peruse)s +1159 X(the)s +1306 X(window.)s +1703 X(This)s +1906 X(is)s +1998 X(useful)s +2267 X(for)s +2408 X(scrolling)s +2783 X(back)s +2996 X(and)s +3165 X(forth.)s +3434 X(Just)s +3615 X(type)s +3812 X(`q')s +3953 X(when)s +4194 X(you're)s +4479 X(done.)s +514 X +6600 Y +874 X(To)s +1012 X(abnormally)s +1494 X(terminate)s +1898 X +0.0 10 10 f.I ft(vmh)s +2091 X +0.0 10 10 f.R ft(\(without)s +2457 X(core)s +2655 X(dump\),)s +2968 X(use)s +3128 X()s +3505 X(\(usually)s +3854 X(CTRL\261\\\).)s +4297 X(For)s +4462 X(instance,)s +4840 X(this)s +5011 X(does)s +514 X +6720 Y +874 X(the)s +1021 X(``right'')s +1367 X(thing)s +1598 X(with)s +1801 X +0.0 10 10 f.I ft(bbc)s +1970 X +0.0 10 10 f.R ft(and)s +2139 X +0.0 10 10 f.I ft(msh)s +0.0 10 10 f.R ft(.)s +514 X +6882 Y +0.0 8 8 f.B ft(Files)s +514 X +7002 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 99 100 + +514 X +600 Y(VMH\(1\))s +2771 X(-99-)s +4834 X(VMH\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +1284 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +1404 Y +874 X +0.0 10 10 f.R ft(msh\(1\))s +514 X +1608 Y +0.0 8 8 f.B ft(Defaults)s +514 X +1728 Y +874 X +0.0 10 10 f.R ft(`\261prompt)s +1271 X(\(vmh\))s +1540 X(')s +514 X +1848 Y +874 X(`\261vmhproc)s +1337 X(msh')s +514 X +2052 Y +0.0 8 8 f.B ft(Context)s +514 X +2172 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +2376 Y +0.0 8 8 f.B ft(Bugs)s +514 X +2496 Y +874 X +0.0 10 10 f.R ft(The)s +1060 X(argument)s +1468 X(to)s +1577 X(the)s +1730 X(`\261prompt')s +2166 X(switch)s +2458 X(must)s +2684 X(be)s +2809 X(interpreted)s +3272 X(as)s +3386 X(a)s +3460 X(single)s +3729 X(token)s +3981 X(by)s +4111 X(the)s +4263 X(shell)s +4482 X(that)s +4662 X(invokes)s +5003 X +0.0 10 10 f.I ft(vmh)s +0.0 10 10 f.R ft(.)s +514 X +2616 Y +874 X(Therefore,)s +1316 X(one)s +1485 X(must)s +1705 X(usually)s +2019 X(place)s +2254 X(the)s +2401 X(argument)s +2803 X(to)s +2906 X(this)s +3076 X(switch)s +3362 X(inside)s +3626 X(double\261quotes.)s +514 X +2856 Y +874 X(At)s +1008 X(present,)s +1355 X(there)s +1588 X(is)s +1689 X(no)s +1823 X(way)s +2022 X(to)s +2133 X(pass)s +2338 X(signals)s +2649 X(\(e.g.,)s +2884 X(interrupt,)s +3286 X(quit\))s +3508 X(to)s +3619 X(the)s +3774 X(client.)s +4079 X(However,)s +4502 X(generating)s +4956 X(QUIT)s +514 X +2976 Y +874 X(when)s +1115 X +0.0 10 10 f.I ft(vmh)s +1306 X +0.0 10 10 f.R ft(is)s +1398 X(reading)s +1722 X(a)s +1791 X(command)s +2210 X(from)s +2429 X(the)s +2576 X(terminal)s +2934 X(is)s +3026 X(su)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icient)s +3423 X(to)s +3526 X(tell)s +3679 X(the)s +3826 X(client)s +4073 X(to)s +4176 X(go)s +4301 X(away)s +4536 X(quickly.)s +514 X +3216 Y +874 X(Acts)s +1082 X(strangely)s +1473 X(\(loses)s +1731 X(peer)s +1927 X(or)s +2035 X(botches)s +2365 X(window)s +2712 X(management)s +3247 X(protocol)s +3605 X(with)s +3808 X(peer\))s +4037 X(on)s +4162 X(random)s +4492 X(occasions.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 100 101 + +514 X +600 Y(WHATNOW\(1\))s +2746 X(-100-)s +4511 X(WHATNOW\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(whatnow)s +1265 X(\261)s +1340 X(prompting)s +1782 X(front-end)s +2178 X(for)s +2319 X(send)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(whatnow)s +1265 X([\261draftfolder +folder])s +2151 X([\261draftmessage msg])s +3010 X([\261nodraftfolder])s +3677 X([\261editor editor])s +4309 X([\261noedit])s +514 X +1560 Y +1234 X([\261prompt string])s +1917 X([\256le])s +2136 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Whatnow)s +1284 X +0.0 10 10 f.R ft(is)s +1383 X(the)s +1537 X(default)s +1846 X(program)s +2216 X(that)s +2398 X(queries)s +2717 X(the)s +2870 X(user)s +3067 X(about)s +3320 X(the)s +3473 X(disposition)s +3944 X(of)s +4058 X(a)s +4133 X(composed)s +4569 X(draft.)s +4838 X(It)s +4930 X(is)s +5028 X(nor-)s +514 X +2160 Y +874 X(mally)s +1127 X(invoked)s +1474 X(by)s +1599 X(one)s +1768 X(of)s +1876 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2142 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2337 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2571 X(or)s +2679 X +0.0 10 10 f.I ft(repl)s +2865 X +0.0 10 10 f.R ft(after)s +3072 X(the)s +3219 X(initial)s +3478 X(edit.)s +514 X +2400 Y +874 X(When)s +1147 X(started,)s +1473 X(the)s +1630 X(editor)s +1898 X(is)s +2000 X(started)s +2301 X(on)s +2436 X(the)s +2593 X(draft)s +2816 X(\(unless)s +3134 X(`\261noedit')s +3535 X(is)s +3637 X(given,)s +3919 X(in)s +4032 X(which)s +4311 X(case)s +4517 X(the)s +4674 X(initial)s +4943 X(edit)s +5127 X(is)s +514 X +2520 Y +874 X(suppressed\).)s +1424 X(Then,)s +1683 X +0.0 10 10 f.I ft(whatnow)s +2074 X +0.0 10 10 f.R ft(repetitively)s +2558 X(prompts)s +2915 X(the)s +3065 X(user)s +3259 X(with)s +3465 X(``What)s +3775 X(now?'')s +4085 X(and)s +4257 X(awaits)s +4540 X(a)s +4612 X(response.)s +5039 X(The)s +514 X +2640 Y +874 X(valid)s +1099 X(responses)s +1512 X(are:)s +514 X +2880 Y +874 X +0.0 10 10 f.B ft(display)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(list)s +1728 X(the)s +1875 X(message)s +2238 X(being)s +2485 X(distributed/replied\261to)s +3371 X(on)s +514 X +3000 Y +1477 X(the)s +1624 X(terminal)s +514 X +3120 Y +874 X +0.0 10 10 f.B ft(edit)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(re\261edit)s +1882 X(using)s +2124 X(the)s +2271 X(same)s +2501 X(editor)s +2759 X(that)s +2934 X(was)s +3114 X(used)s +3322 X(on)s +3447 X(the)s +514 X +3240 Y +1477 X(preceding)s +1895 X(round)s +2153 X(unless)s +2428 X(a)s +2497 X(pro\256le)s +2783 X(entry)s +514 X +3360 Y +1477 X(``\261next:)s +2302 X('')s +2738 X(names)s +3018 X(an)s +3137 X(alternate)s +3505 X(editor)s +514 X +3480 Y +874 X +0.0 10 10 f.B ft(edit)s +1060 X()s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(invoke)s +1877 X()s +2247 X(for)s +2388 X(further)s +2684 X(editing)s +514 X +3600 Y +874 X +0.0 10 10 f.B ft(list)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(list)s +1728 X(the)s +1875 X(draft)s +2088 X(on)s +2213 X(the)s +2360 X(terminal)s +514 X +3720 Y +874 X +0.0 10 10 f.B ft(push)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(send)s +1788 X(the)s +1935 X(message)s +2298 X(in)s +2401 X(the)s +2548 X(background)s +514 X +3840 Y +874 X +0.0 10 10 f.B ft(quit)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(terminate)s +1982 X(the)s +2129 X(session)s +2443 X(and)s +2612 X(preserve)s +2974 X(the)s +3121 X(draft)s +514 X +3960 Y +874 X +0.0 10 10 f.B ft(quit)s +1072 X(\261delete)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(terminate,)s +2007 X(then)s +2204 X(delete)s +2467 X(the)s +2614 X(draft)s +514 X +4080 Y +874 X +0.0 10 10 f.B ft(re\256le)s +1115 X(+folder)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(re\256le)s +1810 X(the)s +1957 X(draft)s +2170 X(into)s +2351 X(the)s +2498 X(given)s +2745 X(folder)s +514 X +4200 Y +874 X +0.0 10 10 f.B ft(send)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(send)s +1788 X(the)s +1935 X(message)s +514 X +4320 Y +874 X +0.0 10 10 f.B ft(send)s +1094 X(\261watch)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(cause)s +1826 X(the)s +1973 X(delivery)s +2325 X(process)s +2649 X(to)s +2752 X(be)s +2871 X(monitored)s +514 X +4440 Y +874 X +0.0 10 10 f.B ft(whom)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(list)s +1728 X(the)s +1875 X(addresses)s +2282 X(that)s +2457 X(the)s +2604 X(message)s +2967 X(will)s +3148 X(go)s +3273 X(to)s +514 X +4560 Y +874 X +0.0 10 10 f.B ft(whom)s +1160 X(\261check)s +1477 X +0.0 10 10 f.R ft(to)s +1580 X(list)s +1728 X(the)s +1875 X(addresses)s +2282 X(and)s +2451 X(verify)s +2714 X(that)s +2889 X(they)s +3086 X(are)s +514 X +4680 Y +1477 X(acceptable)s +1922 X(to)s +2025 X(the)s +2172 X(transport)s +2552 X(service)s +514 X +4920 Y +874 X(For)s +1042 X(the)s +1193 X +0.0 10 10 f.B ft(edit)s +1383 X +0.0 10 10 f.R ft(response,)s +1786 X(any)s +1959 X(valid)s +2188 X(switch)s +2478 X(to)s +2585 X(the)s +2736 X(editor)s +2998 X(is)s +3094 X(valid.)s +3373 X(Similarly,)s +3800 X(for)s +3945 X(the)s +4096 X +0.0 10 10 f.B ft(send)s +4320 X +0.0 10 10 f.R ft(and)s +4492 X +0.0 10 10 f.B ft(whom)s +4781 X +0.0 10 10 f.R ft(responses,)s +514 X +5040 Y +874 X(any)s +1046 X(valid)s +1274 X(switch)s +1563 X(to)s +1669 X +0.0 10 10 f.I ft(send)s +1902 X +0.0 10 10 f.R ft(\(1\))s +2046 X(and)s +2218 X +0.0 10 10 f.I ft(whom)s +2507 X +0.0 10 10 f.R ft(\(1\))s +2651 X(commands,)s +3137 X(respectively,)s +3672 X(are)s +3821 X(valid.)s +4099 X(For)s +4266 X(the)s +4415 X +0.0 10 10 f.B ft(push)s +4649 X +0.0 10 10 f.R ft(response,)s +5050 X(any)s +514 X +5160 Y +874 X(valid)s +1117 X(switch)s +1421 X(to)s +1542 X +0.0 10 10 f.I ft(send)s +1775 X +0.0 10 10 f.R ft(\(1\))s +1934 X(is)s +2044 X(valid)s +2287 X(\(as)s +2446 X(this)s +2634 X(merely)s +2954 X(invokes)s +3307 X +0.0 10 10 f.I ft(send)s +3532 X +0.0 10 10 f.R ft(with)s +3752 X(the)s +3916 X(`\261push')s +4263 X(option\).)s +4644 X(For)s +4825 X(the)s +4989 X +0.0 10 10 f.I ft(re\256le)s +514 X +5280 Y +874 X +0.0 10 10 f.R ft(response,)s +1274 X(any)s +1444 X(valid)s +1670 X(switch)s +1957 X(to)s +2061 X(the)s +2209 X +0.0 10 10 f.I ft(\256leproc)s +2540 X +0.0 10 10 f.R ft(is)s +2633 X(valid.)s +2909 X(For)s +3074 X(the)s +3222 X +0.0 10 10 f.B ft(display)s +3555 X +0.0 10 10 f.R ft(and)s +3725 X +0.0 10 10 f.B ft(list)s +3879 X +0.0 10 10 f.R ft(responses,)s +4318 X(any)s +4488 X(valid)s +4714 X(argument)s +5116 X(to)s +514 X +5400 Y +874 X(the)s +1022 X +0.0 10 10 f.I ft(lproc)s +1259 X +0.0 10 10 f.R ft(is)s +1352 X(valid.)s +1628 X(If)s +1720 X(any)s +1890 X(non\261switch)s +2377 X(arguments)s +2819 X(are)s +2966 X(present,)s +3305 X(then)s +3503 X(the)s +3651 X(pathname)s +4065 X(of)s +4174 X(the)s +4321 X(draft)s +4534 X(will)s +4715 X(be)s +4834 X(excluded)s +514 X +5520 Y +874 X(from)s +1093 X(the)s +1240 X(argument)s +1642 X(list)s +1790 X(given)s +2037 X(to)s +2140 X(the)s +2287 X +0.0 10 10 f.I ft(lproc)s +2523 X +0.0 10 10 f.R ft(\(this)s +2726 X(is)s +2818 X(useful)s +3087 X(for)s +3228 X(listing)s +3504 X(another)s +3828 X +0.0 10 10 f.I ft(MH)s +4008 X +0.0 10 10 f.R ft(message\).)s +514 X +5760 Y +874 X(See)s +1048 X +0.0 10 10 f.I ft(mh\261pro\256le)s +1531 X +0.0 10 10 f.R ft(\(5\))s +1677 X(for)s +1822 X(further)s +2122 X(information)s +2623 X(about)s +2874 X(how)s +3075 X(editors)s +3376 X(are)s +3526 X(used)s +3738 X(by)s +3867 X(MH.)s +4107 X(It)s +4197 X(also)s +4387 X(discusses)s +4788 X(how)s +4989 X(com-)s +514 X +5880 Y +874 X(plex)s +1071 X(envariables)s +1550 X(can)s +1713 X(be)s +1832 X(used)s +2040 X(to)s +2143 X(direct)s +2395 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft('s)s +2854 X(actions.)s +514 X +6120 Y +874 X(The)s +1054 X(`\261prompt string')s +1737 X(switch)s +2023 X(sets)s +2198 X(the)s +2345 X(prompting)s +2787 X(string)s +3040 X(for)s +3181 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(.)s +514 X +6360 Y +874 X(The)s +1055 X(`\261draftfolder +folder')s +1942 X(and)s +2112 X(`\261draftmessage msg')s +2972 X(switches)s +3342 X(invoke)s +3640 X(the)s +3788 X +0.0 10 10 f.I ft(MH)s +3969 X +0.0 10 10 f.R ft(draft)s +4183 X(folder)s +4447 X(facility.)s +4805 X(This)s +5008 X(is)s +5100 X(an)s +514 X +6480 Y +874 X(advanced)s +1278 X(\(and)s +1483 X(highly)s +1767 X(useful\))s +2072 X(feature.)s +2426 X(Consult)s +2766 X(the)s +2916 X +0.0 10 10 f.B ft(Advanced)s +3372 X(Features)s +3771 X +0.0 10 10 f.R ft(section)s +4082 X(of)s +4193 X(the)s +4343 X +0.0 10 10 f.I ft(MH)s +4525 X +0.0 10 10 f.R ft(manual)s +4846 X(for)s +4989 X(more)s +514 X +6600 Y +874 X(information.)s +514 X +6762 Y +0.0 8 8 f.B ft(Files)s +514 X +6882 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +7002 Y +874 X(/draft)s +2463 X(The)s +2643 X(draft)s +2856 X(\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 101 102 + +514 X +600 Y(WHATNOW\(1\))s +2746 X(-101-)s +4511 X(WHATNOW\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +1200 Y +874 X(Draft\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(draft\261folder)s +514 X +1320 Y +874 X(Editor:)s +1790 X(To)s +1926 X(override)s +2283 X(the)s +2430 X(default)s +2732 X(editor)s +514 X +1440 Y +874 X(\261next:)s +1790 X(To)s +1926 X(name)s +2167 X(an)s +2286 X(editor)s +2544 X(to)s +2647 X(be)s +2766 X(used)s +2974 X(after)s +3181 X(exit)s +3356 X(from)s +3575 X()s +514 X +1560 Y +874 X(automhnproc:)s +1790 X(Program)s +2171 X(to)s +2286 X(automatically)s +2867 X(run)s +3037 X(prior)s +3268 X(to)s +3383 X(sending)s +4647 X(if)s +4745 X(the)s +4903 X(draft)s +5127 X(is)s +514 X +1680 Y +874 X(an)s +993 X +0.0 10 10 f.I ft(mhn)s +1190 X +0.0 10 10 f.R ft(composition)s +1710 X(\256le)s +514 X +1800 Y +874 X(\256leproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(re\256le)s +2492 X(the)s +2639 X(message)s +514 X +1920 Y +874 X(lproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(list)s +2410 X(the)s +2557 X(contents)s +2915 X(of)s +3023 X(a)s +3092 X(message)s +514 X +2040 Y +874 X(sendproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(use)s +2420 X(to)s +2523 X(send)s +2731 X(the)s +2878 X(message)s +514 X +2160 Y +874 X(whomproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(determine)s +2686 X(who)s +2883 X(a)s +2952 X(message)s +3315 X(would)s +3590 X(go)s +3715 X(to)s +514 X +2364 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +2484 Y +874 X +0.0 10 10 f.R ft(send\(1\),)s +1223 X(whom\(1\))s +514 X +2688 Y +0.0 8 8 f.B ft(Defaults)s +514 X +2808 Y +874 X +0.0 10 10 f.R ft(`\261prompt)s +1271 X(``What)s +1578 X(Now?)s +1841 X(''')s +514 X +3012 Y +0.0 8 8 f.B ft(Context)s +514 X +3132 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3336 Y +0.0 8 8 f.B ft(Bugs)s +514 X +3456 Y +874 X +0.0 10 10 f.R ft(The)s +1058 X(argument)s +1464 X(to)s +1571 X(the)s +1722 X(`\261prompt')s +2156 X(switch)s +2446 X(must)s +2670 X(be)s +2793 X(interpreted)s +3254 X(as)s +3365 X(a)s +3437 X(single)s +3704 X(token)s +3954 X(by)s +4082 X(the)s +4232 X(shell)s +4449 X(that)s +4627 X(invokes)s +4966 X +0.0 10 10 f.I ft(what-)s +514 X +3576 Y +874 X(now)s +0.0 10 10 f.R ft(.)s +1116 X(Therefore,)s +1558 X(one)s +1727 X(must)s +1947 X(usually)s +2261 X(place)s +2496 X(the)s +2643 X(argument)s +3045 X(to)s +3148 X(this)s +3318 X(switch)s +3604 X(inside)s +3868 X(double\261quotes.)s +514 X +3816 Y +874 X(If)s +969 X(the)s +1120 X(initial)s +1383 X(edit)s +1562 X(fails,)s +1788 X +0.0 10 10 f.I ft(whatnow)s +2179 X +0.0 10 10 f.R ft(deletes)s +2485 X(your)s +2697 X(draft)s +2913 X(\(by)s +3074 X(renaming)s +3479 X(it)s +3563 X(with)s +3769 X(a)s +3841 X(leading)s +4163 X(comma\);)s +4546 X(failure)s +4834 X(of)s +4945 X(a)s +5017 X(later)s +514 X +3936 Y +874 X(edit)s +1049 X(preverves)s +1461 X(the)s +1608 X(draft.)s +514 X +4176 Y +874 X(If)s +966 X +0.0 10 10 f.I ft(whatnowproc)s +1537 X +0.0 10 10 f.R ft(is)s +1630 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +2043 X(then)s +2241 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2508 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2704 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2939 X(and)s +3109 X +0.0 10 10 f.I ft(repl)s +3296 X +0.0 10 10 f.R ft(use)s +3455 X(a)s +3524 X(built\261in)s +3861 X +0.0 10 10 f.I ft(whatnow)s +0.0 10 10 f.R ft(,)s +4273 X(and)s +4442 X(do)s +4567 X(not)s +4720 X(actually)s +5061 X(run)s +514 X +4296 Y +874 X(the)s +1022 X +0.0 10 10 f.I ft(whatnow)s +1410 X +0.0 10 10 f.R ft(program.)s +1824 X(Hence,)s +2128 X(if)s +2214 X(you)s +2389 X(de\256ne)s +2658 X(your)s +2866 X(own)s +3063 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(,)s +3658 X(don't)s +3894 X(call)s +4063 X(it)s +4144 X +0.0 10 10 f.I ft(whatnow)s +4531 X +0.0 10 10 f.R ft(since)s +4761 X(it)s +4842 X(won't)s +5100 X(be)s +514 X +4416 Y +874 X(run.)s +514 X +4656 Y +874 X(If)s +966 X +0.0 10 10 f.I ft(sendproc)s +1358 X +0.0 10 10 f.R ft(is)s +1451 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(,)s +1685 X(then)s +1883 X +0.0 10 10 f.I ft(whatnow)s +2271 X +0.0 10 10 f.R ft(uses)s +2469 X(a)s +2539 X(built\261in)s +2877 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(,)s +3111 X(it)s +3193 X(does)s +3402 X(not)s +3556 X(actually)s +3898 X(run)s +4057 X(the)s +4205 X +0.0 10 10 f.I ft(send)s +4414 X +0.0 10 10 f.R ft(program.)s +4828 X(Hence,)s +5133 X(if)s +514 X +4776 Y +874 X(you)s +1049 X(de\256ne)s +1318 X(your)s +1526 X(own)s +1723 X +0.0 10 10 f.I ft(sendproc)s +0.0 10 10 f.R ft(,)s +2139 X(don't)s +2375 X(call)s +2544 X(it)s +2625 X +0.0 10 10 f.I ft(send)s +2833 X +0.0 10 10 f.R ft(since)s +3063 X +0.0 10 10 f.I ft(whatnow)s +3450 X +0.0 10 10 f.R ft(won't)s +3708 X(run)s +3866 X(it.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 102 103 + +514 X +600 Y(WHOM\(1\))s +2746 X(-102-)s +4728 X(WHOM\(1\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(whom)s +1149 X(\261)s +1224 X(report)s +1487 X(to)s +1590 X(whom)s +1865 X(a)s +1934 X(message)s +2297 X(would)s +2572 X(go)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(whom)s +1149 X([\261alias alias\256le])s +1809 X([\261check])s +2182 X([\261nocheck])s +2655 X([\261draft])s +2984 X([\261draftfolder +folder])s +3870 X([\261draftmessage msg])s +514 X +1560 Y +1234 X([\261nodraftfolder])s +1901 X([\256le])s +2120 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Whom)s +1163 X +0.0 10 10 f.R ft(is)s +1264 X(used)s +1481 X(to)s +1593 X(expand)s +1915 X(the)s +2071 X(headers)s +2408 X(of)s +2524 X(a)s +2601 X(message)s +2972 X(into)s +3161 X(a)s +3238 X(set)s +3382 X(of)s +3498 X(addresses)s +3913 X(and)s +4090 X(optionally)s +4529 X(verify)s +4800 X(that)s +4983 X(those)s +514 X +2160 Y +874 X(addresses)s +1281 X(are)s +1427 X(deliverable)s +1895 X(at)s +1992 X(that)s +2167 X(time)s +2370 X(\(if)s +2489 X(`\261check')s +2862 X(is)s +2954 X(given\).)s +514 X +2400 Y +874 X(The)s +1055 X(`\261draftfolder +folder')s +1942 X(and)s +2112 X(`\261draftmessage msg')s +2972 X(switches)s +3342 X(invoke)s +3640 X(the)s +3788 X +0.0 10 10 f.I ft(MH)s +3969 X +0.0 10 10 f.R ft(draft)s +4183 X(folder)s +4447 X(facility.)s +4805 X(This)s +5008 X(is)s +5100 X(an)s +514 X +2520 Y +874 X(advanced)s +1278 X(\(and)s +1483 X(highly)s +1767 X(useful\))s +2072 X(feature.)s +2426 X(Consult)s +2766 X(the)s +2916 X +0.0 10 10 f.B ft(Advanced)s +3372 X(Features)s +3771 X +0.0 10 10 f.R ft(section)s +4082 X(of)s +4193 X(the)s +4343 X +0.0 10 10 f.I ft(MH)s +4525 X +0.0 10 10 f.R ft(manual)s +4846 X(for)s +4989 X(more)s +514 X +2640 Y +874 X(information.)s +514 X +2880 Y +874 X(The)s +1074 X(\256les)s +1286 X(speci\256ed)s +1686 X(by)s +1831 X(the)s +1997 X(pro\256le)s +2302 X(entry)s +2551 X(``Alias\256le:'')s +3094 X(and)s +3282 X(any)s +3470 X(additional)s +3914 X(alias)s +4141 X(\256les)s +4352 X(given)s +4618 X(by)s +4762 X(the)s +4928 X(`\261alias)s +514 X +3000 Y +874 X(alias\256le')s +1270 X(switch)s +1583 X(will)s +1791 X(be)s +1937 X(read)s +2160 X(\(more)s +2450 X(than)s +2674 X(one)s +2870 X(\256le,)s +3075 X(each)s +3334 X(preceeded)s +3789 X(by)s +3941 X(`\261alias',)s +4316 X(can)s +4505 X(be)s +4650 X(named\).)s +5050 X(See)s +514 X +3120 Y +874 X +0.0 10 10 f.I ft(mh\261alias)s +1291 X +0.0 10 10 f.R ft(\(5\))s +1432 X(for)s +1573 X(more)s +1803 X(information.)s +514 X +3282 Y +0.0 8 8 f.B ft(Files)s +514 X +3402 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +3606 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3726 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3846 Y +874 X(Draft\261Folder:)s +1790 X(To)s +1926 X(\256nd)s +2107 X(the)s +2254 X(default)s +2556 X(draft\261folder)s +514 X +3966 Y +874 X(Alias\256le:)s +1790 X(For)s +1954 X(a)s +2023 X(default)s +2325 X(alias)s +2533 X(\256le)s +514 X +4086 Y +874 X(postproc:)s +1790 X(Program)s +2159 X(to)s +2262 X(post)s +2454 X(the)s +2601 X(message)s +514 X +4290 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4410 Y +874 X +0.0 10 10 f.R ft(mh\261alias\(5\),)s +1401 X(post\(8\))s +514 X +4614 Y +0.0 8 8 f.B ft(Defaults)s +514 X +4734 Y +874 X +0.0 10 10 f.R ft(`\256le')s +1093 X(defaults)s +1434 X(to)s +1537 X(/draft)s +514 X +4854 Y +874 X(`\261nocheck')s +514 X +4974 Y +874 X(`\261alias)s +1165 X(/usr/bs/mh-beta/lib/MailAliases')s +514 X +5178 Y +0.0 8 8 f.B ft(Context)s +514 X +5298 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5502 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5622 Y +874 X +0.0 10 10 f.R ft(With)s +1120 X(the)s +1288 X(`\261check')s +1682 X(option,)s +2009 X +0.0 10 10 f.I ft(whom)s +2294 X +0.0 10 10 f.R ft(makes)s +2594 X(no)s +2739 X(guarantees)s +3210 X(that)s +3405 X(the)s +3572 X(addresses)s +3999 X(listed)s +4261 X(as)s +4389 X(being)s +4656 X(ok)s +4801 X(are)s +4967 X(really)s +514 X +5742 Y +874 X(deliverable,)s +1371 X(rather,)s +1657 X(an)s +1780 X(address)s +2108 X(being)s +2359 X(listed)s +2605 X(as)s +2717 X(ok)s +2846 X(means)s +3130 X(that)s +3309 X(at)s +3410 X(the)s +3561 X(time)s +3768 X(that)s +3947 X +0.0 10 10 f.I ft(whom)s +4215 X +0.0 10 10 f.R ft(was)s +4399 X(run)s +4561 X(the)s +4712 X(address)s +5039 X(was)s +514 X +5862 Y +874 X(thought)s +1218 X(to)s +1334 X(be)s +1466 X(deliverable)s +1947 X(by)s +2085 X(the)s +2245 X(transport)s +2638 X(service.)s +3008 X(For)s +3185 X(local)s +3417 X(addresses,)s +3862 X(this)s +4045 X(is)s +4150 X(absolute;)s +4549 X(for)s +4703 X(network)s +5067 X(ad-)s +514 X +5982 Y +874 X(dresses,)s +1224 X(it)s +1317 X(means)s +1609 X(that)s +1796 X(the)s +1955 X(host)s +2158 X(is)s +2261 X(known;)s +2597 X(for)s +2749 X(uucp)s +2979 X(addresses,)s +3422 X(it)s +3514 X(\(often\))s +3821 X(means)s +4112 X(that)s +4298 X(the)s +4456 X +0.0 10 10 f.I ft(UUCP)s +4764 X +0.0 10 10 f.R ft(network)s +5127 X(is)s +514 X +6102 Y +874 X(available)s +1259 X(for)s +1400 X(use.)s +874 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2633 X(MH.6.8)s +4195 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 103 104 + +874 X +600 Y +2686 X(-103-)s +874 X +960 Y(MORE)s +1210 X(DETAILS)s +0.0 10 10 f.R ft( )s +874 X +1122 Y +1124 X(This)s +1333 X(section)s +1647 X(describes)s +2049 X(some)s +2291 X(of)s +2405 X(the)s +2558 X(more)s +2794 X(intense)s +3108 X(points)s +3384 X(of)s +3498 X(the)s +3650 X +0.0 10 10 f.I ft(MH)s +3835 X +0.0 10 10 f.R ft(system,)s +4168 X(by)s +4298 X(expanding)s +874 X +1242 Y(on)s +1013 X(topics)s +1291 X(previously)s +1751 X(discussed.)s +2222 X(The)s +2415 X(format)s +2719 X(presented)s +3139 X(conforms)s +3554 X(to)s +3670 X(the)s +3830 X(standard)s +4206 X(form)s +4438 X(for)s +4592 X(the)s +874 X +1362 Y(description)s +1343 X(of)s +1451 X(UNIX)s +1725 X(documentation.)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 104 105 + +514 X +600 Y +0.0 10 10 f.B ft(MH-ALIAS\(5\))s +2746 X(-104-)s +4567 X(MH-ALIAS\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mh-alias)s +1243 X(\261)s +1318 X(alias)s +1526 X(\256le)s +1679 X(for)s +1820 X(MH)s +2006 X(message)s +2369 X(system)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(any)s +1043 X +0.0 10 10 f.I ft(MH)s +1223 X +0.0 10 10 f.R ft(command)s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.R ft(This)s +1077 X(describes)s +1473 X(both)s +1676 X +0.0 10 10 f.I ft(MH)s +1856 X +0.0 10 10 f.R ft(personal)s +2219 X(alias)s +2427 X(\256les)s +2619 X(and)s +2788 X(the)s +2935 X(\(primary\))s +3342 X(alias)s +3550 X(\256le)s +3703 X(for)s +3844 X(mail)s +4047 X(delivery,)s +4424 X(the)s +4571 X(\256le)s +514 X +2160 Y +1234 X(/usr/bs/mh-beta/lib/MailAliases)s +514 X +2400 Y +874 X(It)s +968 X(does)s +1184 X +0.0 10 10 f.B ft(not)s +1356 X +0.0 10 10 f.R ft(describe)s +1721 X(aliases)s +2020 X(\256les)s +2220 X(used)s +2436 X(by)s +2569 X(the)s +2724 X(message)s +3095 X(transport)s +3483 X(system.)s +3844 X(Each)s +4076 X(line)s +4259 X(of)s +4375 X(the)s +4530 X(alias)s +4746 X(\256le)s +4907 X(has)s +5072 X(the)s +514 X +2520 Y +874 X(format:)s +514 X +2760 Y +1234 X(alias)s +1442 X(:)s +1495 X(address\261group)s +514 X +2880 Y +874 X(or)s +514 X +3000 Y +1234 X(alias)s +1442 X(;)s +1495 X(address\261group)s +514 X +3120 Y +874 X(or)s +514 X +3240 Y +1234 X(<)s +1315 X(alias\261\256le)s +514 X +3360 Y +874 X(or)s +514 X +3480 Y +1234 X(;)s +1287 X(comment)s +514 X +3720 Y +874 X(where:)s +514 X +3960 Y +1234 X(address\261group)s +1866 X(:=)s +2000 X(address\261list)s +514 X +4080 Y +1769 X(|)s +1864 X(``<'')s +2077 X(\256le)s +514 X +4200 Y +1769 X(|)s +1864 X(``='')s +2077 X(UNIX\261group)s +514 X +4320 Y +1769 X(|)s +1864 X(``+'')s +2077 X(UNIX\261group)s +514 X +4440 Y +1769 X(|)s +1864 X(``*'')s +514 X +4680 Y +1234 X(address\261list)s +1781 X(:=)s +1915 X(address)s +514 X +4800 Y +1769 X(|)s +1864 X(address\261list,)s +2386 X(address)s +514 X +5040 Y +874 X(Continuation)s +1422 X(lines)s +1636 X(in)s +1739 X(alias)s +1947 X(\256les)s +2139 X(end)s +2308 X(with)s +2511 X(`\\')s +2630 X(followed)s +3010 X(by)s +3135 X(the)s +3282 X(newline)s +3623 X(character.)s +514 X +5280 Y +874 X(Alias\261\256le)s +1297 X(and)s +1475 X(\256le)s +1637 X(are)s +1792 X(UNIX)s +2075 X(\256le)s +2236 X(names.)s +2574 X(UNIX\261group)s +3139 X(is)s +3239 X(a)s +3316 X(group)s +3582 X(name)s +3831 X(\(or)s +3980 X(number\))s +4351 X(from)s +4578 X +0.0 10 10 f.I ft(/etc/group)s +0.0 10 10 f.R ft(.)s +5072 X(An)s +514 X +5400 Y +874 X(address)s +1215 X(is)s +1324 X(a)s +1410 X(``simple'')s +1851 X(Internet\261style)s +2442 X(address.)s +2833 X(Througout)s +3297 X(this)s +3484 X(\256le,)s +3679 X(case)s +3892 X(is)s +4001 X(ignored,)s +4373 X(except)s +4675 X(for)s +4833 X(alias\261\256le)s +514 X +5520 Y +874 X(names.)s +514 X +5760 Y +874 X(If)s +966 X(the)s +1114 X(line)s +1289 X(starts)s +1525 X(with)s +1728 X(a)s +1797 X(`<',)s +1969 X(then)s +2166 X(the)s +2313 X(\256le)s +2466 X(named)s +2757 X(after)s +2964 X(the)s +3111 X(`<')s +3258 X(is)s +3350 X(read)s +3546 X(for)s +3687 X(more)s +3917 X(alias)s +4125 X(de\256nitions.)s +4623 X(The)s +4803 X(reading)s +5127 X(is)s +514 X +5880 Y +874 X(done)s +1093 X(recursively,)s +1586 X(so)s +1700 X(a)s +1769 X(`<')s +1916 X(may)s +2113 X(occur)s +2359 X(in)s +2462 X(the)s +2609 X(beginning)s +3034 X(of)s +3142 X(an)s +3261 X(alias)s +3469 X(\256le)s +3622 X(with)s +3825 X(the)s +3972 X(expected)s +4351 X(results.)s +514 X +6120 Y +874 X(If)s +969 X(the)s +1120 X(address\261group)s +1731 X(starts)s +1971 X(with)s +2178 X(a)s +2251 X(`<',)s +2427 X(then)s +2628 X(the)s +2779 X(\256le)s +2936 X(named)s +3231 X(after)s +3442 X(the)s +3593 X(`<')s +3744 X(is)s +3840 X(read)s +4040 X(and)s +4213 X(its)s +4337 X(contents)s +4699 X(are)s +4849 X(added)s +5116 X(to)s +514 X +6240 Y +874 X(the)s +1021 X(address\261list)s +1518 X(for)s +1659 X(the)s +1806 X(alias.)s +514 X +6480 Y +874 X(If)s +978 X(the)s +1138 X(address\261group)s +1758 X(starts)s +2007 X(with)s +2223 X(an)s +2355 X(`=',)s +2540 X(then)s +2750 X(the)s +2910 X(\256le)s +3075 X +0.0 10 10 f.I ft(/etc/group)s +3523 X +0.0 10 10 f.R ft(is)s +3627 X(consulted)s +4047 X(for)s +4200 X(the)s +4359 X(UNIX\261group)s +4928 X(named)s +514 X +6600 Y +874 X(after)s +1081 X(the)s +1228 X(`='.)s +1425 X(Each)s +1649 X(login)s +1880 X(name)s +2121 X(occurring)s +2528 X(as)s +2636 X(a)s +2705 X(member)s +3057 X(of)s +3165 X(the)s +3312 X(group)s +3570 X(is)s +3662 X(added)s +3925 X(to)s +4028 X(the)s +4175 X(address\261list)s +4672 X(for)s +4813 X(the)s +4960 X(alias.)s +514 X +6840 Y +874 X(In)s +997 X(contrast,)s +1378 X(if)s +1479 X(the)s +1641 X(address\261group)s +2263 X(starts)s +2514 X(with)s +2731 X(a)s +2814 X(`+',)s +3000 X(then)s +3211 X(the)s +3372 X(\256le)s +3539 X +0.0 10 10 f.I ft(/etc/group)s +3989 X +0.0 10 10 f.R ft(is)s +4095 X(consulted)s +4517 X(to)s +4634 X(determine)s +5072 X(the)s +514 X +6960 Y +874 X(group\261id)s +1262 X(of)s +1372 X(the)s +1521 X(UNIX\261group)s +2080 X(named)s +2373 X(after)s +2582 X(the)s +2731 X(`+'.)s +2930 X(Each)s +3156 X(login)s +3389 X(name)s +3632 X(occurring)s +4040 X(in)s +4144 X(the)s +4292 X +0.0 10 10 f.I ft(/etc/passwd)s +4785 X +0.0 10 10 f.R ft(\256le)s +4939 X(whose)s +514 X +7080 Y +874 X(group\261id)s +1260 X(is)s +1352 X(indicated)s +1743 X(by)s +1868 X(this)s +2038 X(group)s +2296 X(is)s +2388 X(added)s +2651 X(to)s +2754 X(the)s +2901 X(address\261list)s +3398 X(for)s +3539 X(the)s +3686 X(alias.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 105 106 + +514 X +600 Y(MH-ALIAS\(5\))s +2746 X(-105-)s +4567 X(MH-ALIAS\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(If)s +972 X(the)s +1125 X(address\261group)s +1738 X(is)s +1836 X(simply)s +2140 X(`*',)s +2312 X(then)s +2515 X(the)s +2668 X(\256le)s +2827 X +0.0 10 10 f.I ft(/etc/passwd)s +3325 X +0.0 10 10 f.R ft(is)s +3423 X(consulted)s +3837 X(and)s +4012 X(all)s +4143 X(login)s +4380 X(names)s +4666 X(with)s +4875 X(a)s +4950 X(userid)s +514 X +1080 Y +874 X(greater)s +1175 X(than)s +1372 X(some)s +1608 X(magic)s +1877 X(number)s +2207 X(\(usually)s +2554 X(200\))s +2762 X(are)s +2908 X(added)s +3171 X(to)s +3274 X(the)s +3421 X(address\261list)s +3918 X(for)s +4059 X(the)s +4206 X(alias.)s +514 X +1320 Y +874 X(In)s +982 X(match,)s +1276 X(a)s +1345 X(trailing)s +1659 X(*)s +1734 X(on)s +1859 X(an)s +1978 X(alias)s +2186 X(will)s +2367 X(match)s +2636 X(just)s +2806 X(about)s +3053 X(anything)s +3428 X(appropriate.)s +3957 X(\(See)s +4159 X(example)s +4522 X(below.\))s +514 X +1560 Y +874 X(An)s +1021 X(approximation)s +1629 X(of)s +1737 X(the)s +1884 X(way)s +2075 X(aliases)s +2366 X(are)s +2512 X(resolved)s +2875 X(at)s +2972 X(posting)s +3292 X(time)s +3495 X(is)s +3587 X(\(it's)s +3773 X(not)s +3926 X(really)s +4178 X(done)s +4397 X(this)s +4567 X(way\):)s +514 X +1800 Y +1234 X(1\))s +1342 X(Build)s +1590 X(a)s +1659 X(list)s +1807 X(of)s +1915 X(all)s +2040 X(addresses)s +2447 X(from)s +2666 X(the)s +2813 X(message)s +3176 X(to)s +3279 X(be)s +3398 X(delivered,)s +3819 X(eliminating)s +4300 X(duplicate)s +4691 X(addresses.)s +514 X +2040 Y +1234 X(2\))s +1351 X(If)s +1451 X(this)s +1630 X(draft)s +1852 X(originated)s +2291 X(on)s +2425 X(the)s +2581 X(local)s +2809 X(host,)s +3035 X(then)s +3241 X(for)s +3391 X(those)s +3636 X(addresses)s +4052 X(in)s +4164 X(the)s +4319 X(message)s +4690 X(that)s +4873 X(have)s +5094 X(no)s +514 X +2160 Y +1234 X(host)s +1426 X(speci\256ed,)s +1831 X(perform)s +2177 X(alias)s +2385 X(resolution.)s +514 X +2400 Y +1234 X(3\))s +1345 X(For)s +1512 X(each)s +1722 X(line)s +1900 X(in)s +2006 X(the)s +2156 X(alias)s +2367 X(\256le,)s +2548 X(compare)s +2919 X(``alias'')s +3262 X(against)s +3572 X(all)s +3699 X(of)s +3809 X(the)s +3958 X(existing)s +4302 X(addresses.)s +4761 X(If)s +4854 X(a)s +4925 X(match,)s +514 X +2520 Y +1234 X(remove)s +1561 X(the)s +1710 X(matched)s +2075 X(``alias'')s +2417 X(from)s +2638 X(the)s +2787 X(address)s +3113 X(list,)s +3288 X(and)s +3459 X(add)s +3630 X(each)s +3839 X(new)s +4032 X(address)s +4358 X(in)s +4463 X(the)s +4612 X(address\261group)s +514 X +2640 Y +1234 X(to)s +1347 X(the)s +1503 X(address)s +1836 X(list)s +1993 X(if)s +2088 X(it)s +2178 X(is)s +2279 X(not)s +2441 X(already)s +2768 X(on)s +2902 X(the)s +3058 X(list.)s +3265 X(The)s +3454 X(alias)s +3671 X(itself)s +3905 X(is)s +4006 X(not)s +4168 X(usually)s +4491 X(output,)s +4806 X(rather)s +5072 X(the)s +514 X +2760 Y +1234 X(address\261group)s +1848 X(that)s +2030 X(the)s +2184 X(alias)s +2399 X(maps)s +2642 X(to)s +2752 X(is)s +2851 X(output)s +3139 X(instead.)s +3503 X(If)s +3600 X(``alias'')s +3946 X(is)s +4044 X(terminated)s +4502 X(with)s +4711 X(a)s +4786 X(`;')s +4911 X(instead)s +514 X +2880 Y +1234 X(of)s +1343 X(a)s +1413 X(`:',)s +1558 X(then)s +1756 X(both)s +1960 X(the)s +2108 X(``alias'')s +2449 X(and)s +2619 X(the)s +2767 X(address)s +3092 X(are)s +3239 X(output)s +3520 X(in)s +3623 X(the)s +3770 X(correct)s +4071 X(format.)s +4412 X(\(This)s +4648 X(makes)s +4928 X(replies)s +514 X +3000 Y +1234 X(possible)s +1587 X(since)s +1817 X +0.0 10 10 f.I ft(MH)s +1997 X +0.0 10 10 f.R ft(aliases)s +2288 X(and)s +2457 X(personal)s +2820 X(aliases)s +3111 X(are)s +3257 X(unknown)s +3654 X(to)s +3757 X(the)s +3904 X(mail)s +4107 X(transport)s +4487 X(system.\))s +514 X +3240 Y +874 X(Since)s +1133 X(the)s +1292 X(alias)s +1512 X(\256le)s +1677 X(is)s +1781 X(read)s +1989 X(line)s +2176 X(by)s +2313 X(line,)s +2525 X(forward)s +2877 X(references)s +3322 X(work,)s +3588 X(but)s +3752 X(backward)s +4175 X(references)s +4619 X(are)s +4776 X(not)s +4940 X(recog-)s +514 X +3360 Y +874 X(nized,)s +1140 X(thus,)s +1357 X(there)s +1581 X(is)s +1673 X(no)s +1798 X(recursion.)s +514 X +3600 Y +874 X +0.0 10 10 f.B ft(Example:)s +514 X +3720 Y +1234 X +0.0 10 10 f.R ft('')s +2089 X(are)s +2235 X(de\256ned)s +2554 X(to)s +2657 X(be)s +2776 X(``news''.)s +514 X +6600 Y +874 X(The)s +1066 X(key)s +1247 X(thing)s +1489 X(to)s +1603 X(understand)s +2077 X(about)s +2335 X(aliasing)s +2682 X(in)s +2796 X +0.0 10 10 f.I ft(MH)s +2987 X +0.0 10 10 f.R ft(is)s +3090 X(that)s +3276 X(aliases)s +3578 X(in)s +3692 X +0.0 10 10 f.I ft(MH)s +3883 X +0.0 10 10 f.R ft(alias)s +4102 X(\256les)s +4305 X(are)s +4462 X(expanded)s +4880 X(into)s +5072 X(the)s +514 X +6720 Y +874 X(headers)s +1208 X(of)s +1321 X(messages)s +1728 X(posted.)s +2069 X(This)s +2277 X(aliasing)s +2618 X(occurs)s +2908 X(\256rst,)s +3119 X(at)s +3221 X(posting)s +3546 X(time,)s +3779 X(without)s +4115 X(the)s +4267 X(knowledge)s +4735 X(of)s +4848 X(the)s +5000 X(mes-)s +514 X +6840 Y +874 X(sage)s +1078 X(transport)s +1460 X(system.)s +1815 X(In)s +1925 X(contrast,)s +2293 X(once)s +2508 X(the)s +2657 X(message)s +3022 X(transport)s +3404 X(system)s +3709 X(is)s +3803 X(given)s +4052 X(a)s +4123 X(message)s +4488 X(to)s +4593 X(deliver)s +4897 X(to)s +5001 X(a)s +5071 X(list)s +514 X +6960 Y +874 X(of)s +987 X(addresses,)s +1424 X(for)s +1570 X(each)s +1782 X(address)s +2111 X(that)s +2291 X(appears)s +2625 X(to)s +2733 X(be)s +2857 X(local,)s +3106 X(a)s +3180 X(system\261wide)s +3732 X(alias)s +3945 X(\256le)s +4103 X(is)s +4199 X(consulted.)s +4661 X(These)s +4928 X(aliases)s +514 X +7080 Y +874 X(are)s +1020 X +0.0 10 10 f.B ft(NOT)s +1262 X +0.0 10 10 f.R ft(expanded)s +1669 X(into)s +1850 X(the)s +1997 X(headers)s +2326 X(of)s +2434 X(messages)s +2836 X(delivered.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 106 107 + +514 X +600 Y(MH-ALIAS\(5\))s +2746 X(-106-)s +4567 X(MH-ALIAS\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(Helpful)s +791 X(Hints)s +514 X +1200 Y +874 X +0.0 10 10 f.R ft(To)s +1010 X(use)s +1168 X(aliasing)s +1504 X(in)s +1607 X +0.0 10 10 f.I ft(MH)s +1787 X +0.0 10 10 f.R ft(quickly,)s +2137 X(do)s +2262 X(the)s +2409 X(following:)s +514 X +1440 Y +1234 X(First,)s +1468 X(in)s +1571 X(your)s +1779 X +0.0 10 10 f.I ft(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +0.0 10 10 f.R ft(,)s +2287 X(choose)s +2589 X(a)s +2658 X(name)s +2899 X(for)s +3040 X(your)s +3248 X(alias)s +3456 X(\256le,)s +3634 X(say)s +3792 X(``aliases'',)s +4240 X(and)s +4409 X(add)s +4578 X(the)s +4725 X(line:)s +514 X +1680 Y +1594 X(Alias\256le:)s +1986 X(aliases)s +514 X +1920 Y +1234 X(Second,)s +1578 X(create)s +1840 X(the)s +1987 X(\256le)s +2140 X(``aliases'')s +2563 X(in)s +2666 X(your)s +2874 X +0.0 10 10 f.I ft(MH)s +3054 X +0.0 10 10 f.R ft(directory.)s +514 X +2160 Y +1234 X(Third,)s +1506 X(start)s +1703 X(adding)s +2000 X(aliases)s +2291 X(to)s +2394 X(your)s +2602 X(``aliases'')s +3025 X(\256le)s +3178 X(as)s +3286 X(appropriate.)s +514 X +2322 Y +0.0 8 8 f.B ft(Files)s +514 X +2442 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/MailAliases)s +2463 X(Primary)s +2810 X(alias)s +3018 X(\256le)s +514 X +2646 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +2766 Y +874 X +0.0 10 10 f.R ft(Alias\256le:)s +1790 X(For)s +1954 X(a)s +2023 X(default)s +2325 X(alias)s +2533 X(\256le)s +514 X +2970 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3090 Y +874 X +0.0 10 10 f.R ft(ali\(1\),)s +1140 X(send\(1\),)s +1489 X(whom\(1\),)s +1905 X(group\(5\),)s +2304 X(passwd\(5\),)s +2764 X(con\257ict\(8\),)s +3230 X(post\(8\))s +514 X +3294 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3414 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3618 Y +0.0 8 8 f.B ft(Context)s +514 X +3738 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3942 Y +0.0 8 8 f.B ft(History)s +514 X +4062 Y +874 X +0.0 10 10 f.R ft(In)s +992 X(previous)s +1371 X(releases)s +1721 X(of)s +1839 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +2053 X(only)s +2265 X(a)s +2343 X(single,)s +2641 X(system\261wide)s +3197 X(mh\261alias)s +3592 X(\256le)s +3754 X(was)s +3943 X(supported.)s +4421 X(Now)s +4649 X(that)s +4833 X +0.0 10 10 f.I ft(MH)s +5022 X +0.0 10 10 f.R ft(uses)s +514 X +4182 Y +874 X +0.0 10 10 f.I ft(MMDF)s +1204 X +0.0 10 10 f.R ft(as)s +1318 X(a)s +1393 X(transport)s +1779 X(system,)s +2113 X(the)s +2266 X(system\261wide)s +2818 X(aliasing)s +3159 X(facility)s +3472 X(can)s +3640 X(be)s +3764 X(more)s +3999 X(consistently)s +4507 X(controlled)s +4942 X(by)s +5072 X(the)s +514 X +4302 Y +874 X(latter.)s +1173 X(This)s +1395 X(means)s +1693 X(that)s +1886 X(at)s +2001 X(most)s +2239 X(sites,)s +2485 X(the)s +2650 X(system\261wide)s +3215 X(mh\261alias)s +3619 X(\256le)s +3790 X(will)s +3989 X(be)s +4126 X(empty)s +4419 X(\(or)s +4578 X(trivial)s +4860 X(at)s +4975 X(best\).)s +514 X +4422 Y +874 X(Hence,)s +1190 X(the)s +1349 X(semantics)s +1780 X(of)s +1900 X(mh\261alias)s +2298 X(were)s +2528 X(extended)s +2925 X(to)s +3040 X(support)s +3377 X(personal)s +3752 X(alias)s +3972 X(\256les.)s +4226 X(Users)s +4490 X(of)s +4610 X +0.0 10 10 f.I ft(MH)s +4802 X +0.0 10 10 f.R ft(no)s +4939 X(longer)s +514 X +4542 Y +874 X(need)s +1098 X(to)s +1212 X(bother)s +1503 X(mail\261system)s +2045 X(administrators)s +2652 X(for)s +2803 X(keeping)s +3154 X(information)s +3661 X(in)s +3774 X(the)s +3931 X(system\261wide)s +4488 X(alias)s +4706 X(\256le,)s +4894 X(as)s +5012 X(each)s +514 X +4662 Y +874 X +0.0 10 10 f.I ft(MH)s +1054 X +0.0 10 10 f.R ft(user)s +1245 X(can)s +1408 X(create/modify/remove)s +2314 X(aliases)s +2605 X(at)s +2702 X(will)s +2883 X(from)s +3102 X(any)s +3271 X(number)s +3601 X(of)s +3709 X(personal)s +4072 X(\256les.)s +514 X +4866 Y +0.0 8 8 f.B ft(Bugs)s +514 X +4986 Y +874 X +0.0 10 10 f.R ft(Although)s +1290 X(the)s +1450 X(forward-referencing)s +2289 X(semantics)s +2721 X(of)s +2842 X +0.0 10 10 f.I ft(mh\261alias)s +3246 X +0.0 10 10 f.R ft(\256les)s +3450 X(prevent)s +3786 X(recursion,)s +4219 X(the)s +4378 X(``<)s +4525 X(alias\261\256le'')s +4989 X(com-)s +514 X +5106 Y +874 X(mand)s +1127 X(may)s +1330 X(defeat)s +1604 X(this.)s +1830 X(Since)s +2083 X(the)s +2236 X(number)s +2572 X(of)s +2685 X(\256le)s +2843 X(descriptors)s +3311 X(is)s +3408 X(\256nite)s +3644 X(\(and)s +3851 X(very)s +4058 X(limited\),)s +4430 X(such)s +4643 X(in\256nite)s +4957 X(recur-)s +514 X +5226 Y +874 X(sion)s +1066 X(will)s +1247 X(terminate)s +1649 X(with)s +1852 X(a)s +1921 X(meaningless)s +2440 X(diagnostic)s +2876 X(when)s +3117 X(all)s +3242 X(the)s +3389 X(fds)s +3536 X(are)s +3682 X(used)s +3890 X(up.)s +514 X +5466 Y +874 X(Forward)s +1237 X(references)s +1670 X(do)s +1795 X(not)s +1948 X(work)s +2178 X(correctly)s +2557 X(inside)s +2821 X(blind)s +3052 X(lists.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 107 108 + +514 X +600 Y(MH-FORMAT\(5\))s +2746 X(-107-)s +4429 X(MH-FORMAT\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mh-format)s +1326 X(\261)s +1401 X(format)s +1692 X(\256le)s +1845 X(for)s +1986 X(MH)s +2172 X(message)s +2535 X(system)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(some)s +1110 X +0.0 10 10 f.I ft(MH)s +1290 X +0.0 10 10 f.R ft(commands)s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.R ft(Several)s +1205 X +0.0 10 10 f.I ft(MH)s +1392 X +0.0 10 10 f.R ft(commands)s +1857 X(utilize)s +2139 X(either)s +2398 X(a)s +2474 X +0.0 10 10 f.I ft(format)s +2773 X +0.0 10 10 f.R ft(string)s +3033 X(or)s +3148 X(a)s +3224 X +0.0 10 10 f.I ft(format)s +3523 X +0.0 10 10 f.R ft(\256le)s +3683 X(during)s +3976 X(their)s +4191 X(execution.)s +4661 X(For)s +4831 X(example,)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(scan)s +1107 X +0.0 10 10 f.R ft(\(1\))s +1257 X(uses)s +1463 X(a)s +1541 X(format)s +1841 X(string)s +2103 X(which)s +2381 X(directs)s +2680 X(it)s +2769 X(how)s +2974 X(to)s +3085 X(generate)s +3455 X(the)s +3610 X(scan)s +3820 X(listing)s +4104 X(for)s +4253 X(each)s +4468 X(message;)s +4867 X +0.0 10 10 f.I ft(repl)s +5078 X +0.0 10 10 f.R ft(\(1\))s +514 X +2160 Y +874 X(uses)s +1071 X(a)s +1140 X(format)s +1431 X(\256le)s +1584 X(which)s +1853 X(directs)s +2144 X(it)s +2225 X(how)s +2422 X(to)s +2525 X(generate)s +2887 X(the)s +3034 X(reply)s +3264 X(to)s +3367 X(a)s +3436 X(message,)s +3824 X(and)s +3993 X(so)s +4107 X(on.)s +514 X +2400 Y +874 X(Format)s +1192 X(strings)s +1488 X(are)s +1638 X(designed)s +2022 X(to)s +2129 X(be)s +2252 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(iciently)s +2686 X(parsed)s +2975 X(by)s +3104 X +0.0 10 10 f.I ft(MH)s +3288 X +0.0 10 10 f.R ft(which)s +3561 X(means)s +3845 X(they)s +4045 X(are)s +4194 X(not)s +4350 X(necessarily)s +4821 X(simple)s +5116 X(to)s +514 X +2520 Y +874 X(write)s +1114 X(and)s +1293 X(understand.)s +1816 X(This)s +2029 X(means)s +2319 X(that)s +2504 X(novice,)s +2829 X(casual,)s +3137 X(or)s +3254 X(even)s +3476 X(advanced)s +3886 X(users)s +4125 X(of)s +4242 X +0.0 10 10 f.I ft(MH)s +4431 X +0.0 10 10 f.R ft(should)s +4732 X(not)s +4894 X(have)s +5116 X(to)s +514 X +2640 Y +874 X(deal)s +1099 X(with)s +1335 X(them.)s +1643 X(Some)s +1929 X(canned)s +2269 X(scan)s +2504 X(listing)s +2813 X(formats)s +3176 X(are)s +3355 X(in)s +3491 X(/usr/bs/mh-beta/lib/scan.time,)s +4738 X(/usr/bs/mh-)s +514 X +2760 Y +874 X(beta/lib/scan.size,)s +1616 X(and)s +1792 X(/usr/bs/mh-beta/lib/scan.timely.)s +3116 X(Look)s +3359 X(in)s +3469 X(/usr/bs/mh-beta/lib)s +4257 X(for)s +4405 X(other)s +4642 X +0.0 10 10 f.I ft(scan)s +4857 X +0.0 10 10 f.R ft(and)s +5033 X +0.0 10 10 f.I ft(repl)s +514 X +2880 Y +874 X +0.0 10 10 f.R ft(format)s +1165 X(\256les)s +1357 X(which)s +1626 X(may)s +1823 X(have)s +2036 X(been)s +2249 X(written)s +2557 X(at)s +2654 X(your)s +2862 X(site.)s +514 X +3120 Y +874 X(It)s +974 X(su)s +Cff(ices)s +1318 X(to)s +1435 X(have)s +1662 X(your)s +1884 X(local)s +2117 X +0.0 10 10 f.I ft(MH)s +2311 X +0.0 10 10 f.R ft(expert)s +2599 X(actually)s +2954 X(write)s +3198 X(new)s +3403 X(format)s +3708 X(commands)s +4180 X(or)s +4302 X(modify)s +4630 X(existing)s +4986 X(ones.)s +514 X +3240 Y +874 X(This)s +1077 X(manual)s +1396 X(section)s +1704 X(explains)s +2062 X(how)s +2259 X(to)s +2362 X(do)s +2487 X(that.)s +2712 X(Note:)s +2959 X(familiarity)s +3406 X(with)s +3609 X(the)s +3756 X(C)s +3848 X +0.0 10 10 f.I ft(printf)s +4096 X +0.0 10 10 f.R ft(routine)s +4404 X(is)s +4496 X(assumed.)s +514 X +3480 Y +874 X(A)s +982 X(format)s +1284 X(string)s +1547 X(consists)s +1899 X(of)s +2017 X(ordinary)s +2390 X(text,)s +2600 X(and)s +2779 X(special)s +3091 X(multi-character)s +3735 X +0.0 10 10 f.I ft(escape)s +4041 X +0.0 10 10 f.R ft(sequences)s +4480 X(which)s +4759 X(begin)s +5016 X(with)s +514 X +3600 Y +874 X(`%'.)s +1100 X(When)s +1365 X(specifying)s +1808 X(a)s +1879 X(format)s +2172 X(string,)s +2452 X(the)s +2601 X(usual)s +2839 X(C)s +2933 X(backslash)s +3347 X(characters)s +3776 X(are)s +3923 X(honored:)s +4304 X(`\\b',)s +4499 X(`\\f',)s +4677 X(`\\n',)s +4872 X(`\\r',)s +5050 X(and)s +514 X +3720 Y +874 X(`\\t'.)s +1072 X(Continuation)s +1621 X(lines)s +1836 X(in)s +1940 X(format)s +2232 X(\256les)s +2425 X(end)s +2595 X(with)s +2799 X(`\\')s +2919 X(followed)s +3300 X(by)s +3426 X(the)s +3574 X(newline)s +3916 X(character.)s +4356 X(There)s +4613 X(are)s +4759 X(three)s +4983 X(types)s +514 X +3840 Y +874 X(of)s +982 X +0.0 10 10 f.I ft(escape)s +1278 X +0.0 10 10 f.R ft(sequences:)s +1735 X(header)s +2025 X +0.0 10 10 f.I ft(components)s +0.0 10 10 f.R ft(,)s +2552 X(built-in)s +2872 X +0.0 10 10 f.I ft(functions)s +0.0 10 10 f.R ft(,)s +3289 X(and)s +3458 X(\257ow)s +3661 X +0.0 10 10 f.I ft(control)s +0.0 10 10 f.R ft(.)s +514 X +4080 Y +874 X(A)s +988 X +0.0 10 10 f.I ft(component)s +1468 X +0.0 10 10 f.R ft(escape)s +1775 X(is)s +1883 X(speci\256ed)s +2279 X(as)s +2403 X(`%{)s +0.0 10 10 f.I ft(component)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}',)s +3160 X(and)s +3345 X(exists)s +3614 X(for)s +3771 X(each)s +3994 X(header)s +4300 X(found)s +4574 X(in)s +4693 X(the)s +4856 X(message)s +514 X +4200 Y +874 X(being)s +1125 X(processed.)s +1597 X(For)s +1765 X(example)s +2132 X(`%{date}')s +2572 X(refers)s +2827 X(to)s +2934 X(the)s +3085 X(``Date:'')s +3462 X(\256eld)s +3669 X(of)s +3781 X(the)s +3932 X(appropriate)s +4415 X(message.)s +4832 X(All)s +4989 X(com-)s +514 X +4320 Y +874 X(ponent)s +1173 X(escapes)s +1503 X(have)s +1717 X(a)s +1787 X(string)s +2041 X(value.)s +2333 X(Normally,)s +2767 X(component)s +3237 X(values)s +3518 X(are)s +3665 X(compressed)s +4162 X(by)s +4288 X(converting)s +4741 X(any)s +4911 X(control)s +514 X +4440 Y +874 X(characters)s +1317 X(\(tab)s +1512 X(and)s +1696 X(newline)s +2052 X(included\))s +2469 X(to)s +2587 X(spaces,)s +2912 X(then)s +3124 X(eliding)s +3442 X(any)s +3626 X(leading)s +3960 X(or)s +4082 X(multiple)s +4455 X(spaces.)s +4804 X(However,)s +514 X +4560 Y +874 X(commands)s +1363 X(may)s +1591 X(give)s +1819 X(di)s +Cff(erent)s +2213 X(interpretations)s +2846 X(to)s +2980 X(some)s +3247 X(component)s +3747 X(escapes;)s +4134 X(be)s +4283 X(sure)s +4504 X(to)s +4637 X(refer)s +4879 X(to)s +5012 X(each)s +514 X +4680 Y +874 X(command's)s +1365 X(manual)s +1684 X(entry)s +1914 X(for)s +2055 X(complete)s +2446 X(details.)s +514 X +4920 Y +874 X(A)s +992 X +0.0 10 10 f.I ft(function)s +1366 X +0.0 10 10 f.R ft(escape)s +1677 X(is)s +1790 X(speci\256ed)s +2191 X(as)s +2320 X(`%\()s +0.0 10 10 f.I ft(function)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\)'.)s +2966 X(All)s +3139 X(functions)s +3556 X(are)s +3722 X(built-in,)s +4087 X(and)s +4276 X(most)s +4516 X(have)s +4749 X(a)s +4838 X(string)s +5111 X(or)s +514 X +5040 Y +874 X(numeric)s +1226 X(value.)s +514 X +5400 Y +694 X +0.0 8 8 f.B ft(Control-\257ow)s +1149 X(escapes)s +514 X +5640 Y +874 X +0.0 10 10 f.R ft(A)s +979 X +0.0 10 10 f.I ft(control)s +1301 X +0.0 10 10 f.R ft(escape)s +1599 X(is)s +1699 X(one)s +1875 X(of:)s +2018 X(`%<',)s +2280 X(`%?',)s +2530 X(`%|',)s +2756 X(or)s +2871 X(`%>'.)s +3133 X(These)s +3403 X(are)s +3556 X(combined)s +3982 X(into)s +4170 X(the)s +4324 X(conditional)s +4806 X(execution)s +514 X +5760 Y +874 X(construct:)s +514 X +6000 Y +1234 X(%)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 108 109 + +514 X +600 Y(MH-FORMAT\(5\))s +2746 X(-108-)s +4429 X(MH-FORMAT\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(Extra)s +1117 X(white)s +1366 X(space)s +1614 X(is)s +1708 X(shown)s +1996 X(here)s +2194 X(only)s +2399 X(for)s +2542 X(clarity.)s +2874 X(These)s +3139 X(constructs)s +3571 X(may)s +3770 X(be)s +3891 X(nested)s +4173 X(without)s +4506 X(ambiguity.)s +4989 X(They)s +514 X +1080 Y +874 X(form)s +1093 X(a)s +1162 X(general)s +1480 X +0.0 10 10 f.B ft(if\261elseif\261else\261endif)s +2304 X +0.0 10 10 f.R ft(block)s +2551 X(where)s +2819 X(only)s +3022 X(one)s +3191 X(of)s +3299 X(the)s +3446 X +0.0 10 10 f.I ft(format)s +3738 X(text)s +3907 X +0.0 10 10 f.R ft(segments)s +4304 X(is)s +4396 X(interpreted.)s +514 X +1320 Y +874 X(The)s +1056 X(`%<')s +1288 X(and)s +1459 X(`%?')s +1679 X(control)s +1989 X(escapes)s +2320 X(causes)s +2607 X(a)s +2678 X(condition)s +3083 X(to)s +3188 X(be)s +3309 X(evaluated.)s +3743 X(This)s +3948 X(condition)s +4353 X(may)s +4552 X(be)s +4672 X(either)s +4925 X(a)s +4995 X +0.0 10 10 f.I ft(com-)s +514 X +1440 Y +874 X(ponent)s +1171 X +0.0 10 10 f.R ft(or)s +1279 X(a)s +1348 X +0.0 10 10 f.I ft(function)s +0.0 10 10 f.R ft(.)s +1751 X(The)s +1931 X(four)s +2122 X(constructs)s +2552 X(have)s +2765 X(the)s +2912 X(following)s +3326 X(syntax:)s +514 X +1680 Y +1234 X(%<{component})s +514 X +1800 Y +1234 X(%<\(function\))s +514 X +1920 Y +1234 X(%?{component})s +514 X +2040 Y +1234 X(%?\(function\))s +514 X +2280 Y +874 X(These)s +1166 X(control)s +1503 X(escapes)s +1860 X(test)s +2052 X(whether)s +2426 X(the)s +2601 X(function)s +2987 X(or)s +3123 X(component)s +3620 X(value)s +3889 X(is)s +4009 X(non-zero)s +4416 X(\(for)s +4618 X(integer-valued)s +514 X +2400 Y +874 X(escapes\),)s +1261 X(or)s +1369 X(non-empty)s +1827 X(\(for)s +2001 X(string-valued)s +2553 X(escapes\).)s +514 X +2640 Y +874 X(If)s +977 X(this)s +1159 X(test)s +1335 X(evaulates)s +1743 X(true,)s +1960 X(then)s +2169 X(the)s +2328 X(format)s +2631 X(text)s +2818 X(up)s +2955 X(to)s +3070 X(the)s +3229 X(next)s +3438 X(corresponding)s +4046 X(control)s +4366 X(escape)s +4668 X(\(one)s +4881 X(of)s +5000 X(`%|',)s +514 X +2760 Y +874 X(`%?',)s +1122 X(or)s +1235 X(`%>'\))s +1503 X(is)s +1600 X(interpreted)s +2062 X(normally.)s +2503 X(Next,)s +2752 X(all)s +2882 X(format)s +3178 X(text)s +3358 X(\(if)s +3482 X(any\))s +3689 X(up)s +3819 X(to)s +3926 X(the)s +4077 X(corresponding)s +4677 X(`%>')s +4911 X(control)s +514 X +2880 Y +874 X(escape)s +1167 X(is)s +1262 X(skipped.)s +1650 X(The)s +1832 X(`%>')s +2064 X(control)s +2374 X(escape)s +2666 X(is)s +2760 X(not)s +2915 X(interpreted;)s +3402 X(normal)s +3712 X(interpretation)s +4277 X(resumes)s +4631 X(after)s +4840 X(the)s +4989 X(`%>')s +514 X +3000 Y +874 X(escape.)s +514 X +3240 Y +874 X(If)s +968 X(the)s +1118 X(test)s +1285 X(evaluates)s +1684 X(false,)s +1925 X(however,)s +2321 X(then)s +2521 X(the)s +2670 X(format)s +2963 X(text)s +3140 X(up)s +3267 X(to)s +3372 X(the)s +3521 X(next)s +3720 X(corresponding)s +4318 X(control)s +4628 X(escape)s +4920 X(\(again,)s +514 X +3360 Y +874 X(one)s +1048 X(of)s +1161 X(`%|',)s +1385 X(`%?',)s +1633 X(or)s +1746 X(`%>'\))s +2014 X(is)s +2111 X(skipped,)s +2477 X(instead)s +2790 X(of)s +2903 X(being)s +3155 X(interpreted.)s +3667 X(If)s +3763 X(the)s +3915 X(control)s +4228 X(escape)s +4523 X(encountered)s +5039 X(was)s +514 X +3480 Y +874 X(`%?',)s +1125 X(then)s +1330 X(the)s +1485 X(condition)s +1896 X(associated)s +2338 X(with)s +2548 X(that)s +2730 X(control)s +3045 X(escape)s +3342 X(is)s +3441 X(evaluated,)s +3880 X(and)s +4056 X(interpretation)s +4626 X(proceeds)s +5012 X(after)s +514 X +3600 Y +874 X(that)s +1050 X(test)s +1215 X(as)s +1324 X(described)s +1732 X(in)s +1836 X(the)s +1984 X(previous)s +2354 X(paragraph.)s +2828 X(If)s +2920 X(the)s +3068 X(control)s +3377 X(escape)s +3668 X(encountered)s +4181 X(was)s +4362 X(`%|',)s +4582 X(then)s +4780 X(the)s +4928 X(format)s +514 X +3720 Y +874 X(text)s +1056 X(up)s +1188 X(to)s +1298 X(the)s +1452 X(corresponding)s +2055 X(`%>')s +2292 X(escape)s +2589 X(is)s +2688 X(interpreted)s +3152 X(normally.)s +3595 X(As)s +3738 X(above,)s +4033 X(the)s +4187 X(`%>')s +4424 X(escape)s +4721 X(is)s +4819 X(not)s +4978 X(inter-)s +514 X +3840 Y +874 X(preted)s +1148 X(and)s +1317 X(normal)s +1625 X(interpretation)s +2188 X(resumes)s +2540 X(after)s +2747 X(the)s +2894 X(`%>')s +3124 X(escape.)s +514 X +4080 Y +874 X(The)s +1058 X(`%?')s +1279 X(control)s +1590 X(escape)s +1883 X(and)s +2055 X(its)s +2178 X(following)s +2595 X(format)s +2889 X(text)s +3067 X(is)s +3162 X(optional,)s +3543 X(and)s +3715 X(may)s +3915 X(be)s +4037 X(included)s +4409 X(zero)s +4608 X(or)s +4719 X(more)s +4952 X(times.)s +514 X +4200 Y +874 X(The)s +1067 X(`%|')s +1274 X(control)s +1595 X(escape)s +1898 X(and)s +2080 X(its)s +2212 X(following)s +2638 X(format)s +2941 X(text)s +3128 X(is)s +3232 X(also)s +3430 X(optional,)s +3820 X(and)s +4001 X(may)s +4210 X(be)s +4341 X(included)s +4722 X(zero)s +4930 X(or)s +5050 X(one)s +514 X +4320 Y +874 X(times.)s +514 X +4680 Y +694 X +0.0 8 8 f.B ft(Function)s +1021 X(escapes)s +514 X +4920 Y +874 X +0.0 10 10 f.R ft(Most)s +1105 X(functions)s +1502 X(expect)s +1787 X(an)s +1906 X(argument)s +2308 X(of)s +2416 X(a)s +2485 X(particular)s +2892 X(type:)s +514 X +5160 Y +874 X +0.0 10 10 f.I ft(Argument)s +1304 X(Description)s +2298 X(Example)s +2672 X(Syntax)s +514 X +5280 Y +874 X +0.0 10 10 f.R ft(literal)s +1304 X(A)s +1401 X(literal)s +1659 X(number,)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +2611 X +0.0 10 10 f.R ft(1234\))s +514 X +5400 Y +1304 X(or)s +1412 X(string)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +2611 X +0.0 10 10 f.R ft(text)s +2786 X(string\))s +514 X +5520 Y +874 X(comp)s +1304 X(Any)s +1501 X(header)s +1791 X(component)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft({)s +0.0 10 10 f.I ft(in-reply-to)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}\))s +514 X +5640 Y +874 X(date)s +1304 X(A)s +1401 X(date)s +1592 X(component)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft({)s +0.0 10 10 f.I ft(date)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}\))s +514 X +5760 Y +874 X(addr)s +1304 X(An)s +1451 X(address)s +1775 X(component)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft({)s +0.0 10 10 f.I ft(from)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}\))s +514 X +5880 Y +874 X(expr)s +1304 X(An)s +1451 X(optional)s +1804 X(component,)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\()s +0.0 10 10 f.I ft(func2)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\)\))s +514 X +6000 Y +1304 X(function)s +1662 X(or)s +1770 X(control,)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +2611 X +0.0 10 10 f.R ft(%<{)s +0.0 10 10 f.I ft(reply-to)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}%|%{)s +0.0 10 10 f.I ft(from)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}%>\))s +514 X +6120 Y +1304 X(perhaps)s +1639 X(nested)s +2298 X(%\()s +0.0 10 10 f.I ft(func)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\()s +0.0 10 10 f.I ft(func2)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft({)s +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}\)\))s +514 X +6360 Y +874 X(The)s +1064 X(types)s +1310 X +0.0 10 10 f.I ft(date)s +1517 X +0.0 10 10 f.R ft(and)s +1696 X +0.0 10 10 f.I ft(addr)s +1920 X +0.0 10 10 f.R ft(have)s +2143 X(the)s +2300 X(same)s +2540 X(syntax)s +2835 X(as)s +2952 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +3227 X(but)s +3389 X(require)s +3705 X(that)s +3889 X(the)s +4045 X(header)s +4344 X(component)s +4822 X(be)s +4950 X(a)s +5028 X(date)s +514 X +6480 Y +874 X(string,)s +1152 X(or)s +1260 X(address)s +1584 X(string,)s +1862 X(respectively.)s +514 X +6720 Y +874 X(All)s +1030 X(arguments)s +1474 X(except)s +1762 X(those)s +2001 X(of)s +2112 X(type)s +2312 X +0.0 10 10 f.I ft(expr)s +2517 X +0.0 10 10 f.R ft(are)s +2666 X(required.)s +3076 X(For)s +3243 X(the)s +3393 X +0.0 10 10 f.I ft(expr)s +3598 X +0.0 10 10 f.R ft(argument)s +4003 X(type,)s +4228 X(the)s +4378 X(leading)s +4700 X(`%')s +4877 X(must)s +5100 X(be)s +514 X +6840 Y +874 X(omitted)s +1209 X(for)s +1354 X(component)s +1827 X(and)s +2000 X(function)s +2362 X(escape)s +2656 X(arguments,)s +3125 X(and)s +3297 X(must)s +3520 X(be)s +3642 X(present)s +3958 X(\(with)s +4197 X(a)s +4269 X(leading)s +4591 X(space\))s +4873 X(for)s +5017 X(con-)s +514 X +6960 Y +874 X(trol)s +1038 X(escape)s +1328 X(arguments.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 109 110 + +514 X +600 Y(MH-FORMAT\(5\))s +2746 X(-109-)s +4429 X(MH-FORMAT\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(The)s +1055 X(evaluation)s +1497 X(of)s +1606 X(format)s +1898 X(strings)s +2190 X(is)s +2282 X(based)s +2534 X(on)s +2659 X(a)s +2728 X(simple)s +3020 X(machine)s +3383 X(with)s +3586 X(an)s +3705 X(integer)s +4007 X(register)s +4331 X +0.0 10 10 f.I ft(num)s +0.0 10 10 f.R ft(,)s +4553 X(and)s +4722 X(a)s +4791 X(text)s +4966 X(string)s +514 X +1080 Y +874 X(register)s +1213 X +0.0 10 10 f.I ft(str)s +0.0 10 10 f.R ft(.)s +1409 X(When)s +1687 X(a)s +1771 X(function)s +2144 X(escape)s +2449 X(is)s +2556 X(processed,)s +3014 X(if)s +3115 X(it)s +3211 X(accepts)s +3544 X(an)s +3678 X(optional)s +4045 X +0.0 10 10 f.I ft(expr)s +4261 X +0.0 10 10 f.R ft(argument)s +4677 X(which)s +4960 X(is)s +5066 X(not)s +514 X +1200 Y +874 X(present,)s +1212 X(it)s +1293 X(reads)s +1528 X(the)s +1675 X(current)s +1982 X(value)s +2223 X(of)s +2331 X(either)s +2583 X +0.0 10 10 f.I ft(num)s +2780 X +0.0 10 10 f.R ft(or)s +2888 X +0.0 10 10 f.I ft(str)s +3019 X +0.0 10 10 f.R ft(as)s +3127 X(appropriate.)s +514 X +1560 Y +694 X +0.0 8 8 f.B ft(Return)s +958 X(values)s +514 X +1800 Y +874 X +0.0 10 10 f.R ft(Component)s +1367 X(escapes)s +1696 X(write)s +1926 X(the)s +2073 X(value)s +2314 X(of)s +2422 X(their)s +2630 X(message)s +2993 X(header)s +3283 X(in)s +3386 X +0.0 10 10 f.I ft(str)s +0.0 10 10 f.R ft(.)s +3567 X(Function)s +3948 X(escapes)s +4277 X(write)s +4507 X(their)s +4715 X(return)s +4978 X(value)s +514 X +1920 Y +874 X(in)s +987 X +0.0 10 10 f.I ft(num)s +1194 X +0.0 10 10 f.R ft(for)s +1345 X(functions)s +1752 X(returning)s +2153 X +0.0 10 10 f.I ft(integer)s +2471 X +0.0 10 10 f.R ft(or)s +2589 X +0.0 10 10 f.I ft(boolean)s +2946 X +0.0 10 10 f.R ft(values,)s +3261 X(and)s +3440 X(in)s +3553 X +0.0 10 10 f.I ft(str)s +3694 X +0.0 10 10 f.R ft(for)s +3845 X(functions)s +4252 X(returning)s +4652 X(string)s +4914 X(values.)s +514 X +2040 Y +874 X(\(The)s +1097 X +0.0 10 10 f.I ft(boolean)s +1454 X +0.0 10 10 f.R ft(type)s +1661 X(is)s +1763 X(a)s +1842 X(subset)s +2127 X(of)s +2245 X(integers)s +2595 X(with)s +2807 X(usual)s +3052 X(values)s +3341 X(0=false)s +3669 X(and)s +3847 X(1=true.\))s +4200 X(Control)s +4540 X(escapes)s +4878 X(return)s +5150 X(a)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(boolean)s +1221 X +0.0 10 10 f.R ft(value,)s +1487 X(and)s +1656 X(set)s +1792 X +0.0 10 10 f.I ft(num)s +0.0 10 10 f.R ft(.)s +514 X +2400 Y +874 X(All)s +1032 X(component)s +1506 X(escapes,)s +1865 X(and)s +2039 X(those)s +2280 X(function)s +2643 X(escapes)s +2977 X(which)s +3251 X(return)s +3519 X(an)s +3643 X +0.0 10 10 f.I ft(integer)s +3956 X +0.0 10 10 f.R ft(or)s +4069 X +0.0 10 10 f.I ft(string)s +4333 X +0.0 10 10 f.R ft(value,)s +4603 X(pass)s +4804 X(this)s +4978 X(value)s +514 X +2520 Y +874 X(back)s +1090 X(to)s +1195 X(their)s +1405 X(caller)s +1653 X(in)s +1758 X(addition)s +2113 X(to)s +2218 X(setting)s +2512 X +0.0 10 10 f.I ft(str)s +2645 X +0.0 10 10 f.R ft(or)s +2755 X +0.0 10 10 f.I ft(num)s +0.0 10 10 f.R ft(.)s +3004 X(These)s +3269 X(escapes)s +3600 X(will)s +3783 X(print)s +3999 X(out)s +4154 X(this)s +4326 X(value)s +4569 X(unless)s +4846 X(called)s +5111 X(as)s +514 X +2640 Y +874 X(part)s +1061 X(of)s +1176 X(an)s +1302 X(argument)s +1711 X(to)s +1821 X(another)s +2152 X(escape)s +2449 X(sequence.)s +2896 X(Escapes)s +3249 X(which)s +3524 X(return)s +3793 X(a)s +3868 X +0.0 10 10 f.I ft(boolean)s +4221 X +0.0 10 10 f.R ft(value)s +4468 X(do)s +4599 X(pass)s +4802 X(this)s +4978 X(value)s +514 X +2760 Y +874 X(back)s +1087 X(to)s +1190 X(their)s +1398 X(caller)s +1644 X(in)s +1747 X +0.0 10 10 f.I ft(num)s +0.0 10 10 f.R ft(,)s +1969 X(but)s +2122 X(will)s +2303 X(never)s +2549 X(print)s +2763 X(out)s +2916 X(the)s +3063 X(value.)s +514 X +3000 Y +874 X +0.0 10 10 f.I ft(Function)s +1365 X(Argument)s +1795 X(Return)s +2203 X(Description)s +514 X +3120 Y +874 X +0.0 10 10 f.R ft(msg)s +1795 X(integer)s +2203 X(message)s +2566 X(number)s +514 X +3240 Y +874 X(cur)s +1795 X(integer)s +2203 X(message)s +2566 X(is)s +2658 X(current)s +514 X +3360 Y +874 X(size)s +1795 X(integer)s +2203 X(size)s +2383 X(of)s +2491 X(message)s +514 X +3480 Y +874 X(strlen)s +1795 X(integer)s +2203 X(length)s +2478 X(of)s +2586 X +0.0 10 10 f.I ft(str)s +514 X +3600 Y +874 X +0.0 10 10 f.R ft(width)s +1795 X(integer)s +2203 X(output)s +2484 X(bu)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(er)s +2747 X(size)s +2927 X(in)s +3030 X(bytes)s +514 X +3720 Y +874 X(charleft)s +1795 X(integer)s +2203 X(bytes)s +2439 X(left)s +2597 X(in)s +2700 X(output)s +2981 X(bu)s +Cff(er)s +514 X +3840 Y +874 X(timenow)s +1795 X(integer)s +2203 X(seconds)s +2544 X(since)s +2774 X(the)s +2921 X(UNIX)s +3195 X(epoch)s +514 X +3960 Y +874 X(me)s +1795 X(string)s +2203 X(the)s +2350 X(user's)s +2613 X(mailbox)s +514 X +4080 Y +874 X(eq)s +1365 X(literal)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(==)s +2537 X +0.0 10 10 f.I ft(arg)s +514 X +4200 Y +874 X +0.0 10 10 f.R ft(ne)s +1365 X(literal)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(!=)s +2514 X +0.0 10 10 f.I ft(arg)s +514 X +4320 Y +874 X +0.0 10 10 f.R ft(gt)s +1365 X(literal)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(>)s +2481 X +0.0 10 10 f.I ft(arg)s +514 X +4440 Y +874 X +0.0 10 10 f.R ft(match)s +1365 X(literal)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(str)s +2334 X +0.0 10 10 f.R ft(contains)s +2692 X +0.0 10 10 f.I ft(arg)s +514 X +4560 Y +874 X +0.0 10 10 f.R ft(amatch)s +1365 X(literal)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(str)s +2334 X +0.0 10 10 f.R ft(starts)s +2570 X(with)s +2773 X +0.0 10 10 f.I ft(arg)s +514 X +4680 Y +874 X +0.0 10 10 f.R ft(plus)s +1365 X(literal)s +1795 X(integer)s +2203 X +0.0 10 10 f.I ft(arg)s +2367 X +0.0 10 10 f.R ft(plus)s +2559 X +0.0 10 10 f.I ft(num)s +514 X +4800 Y +874 X +0.0 10 10 f.R ft(minus)s +1365 X(literal)s +1795 X(integer)s +2203 X +0.0 10 10 f.I ft(arg)s +2367 X +0.0 10 10 f.R ft(minus)s +2637 X +0.0 10 10 f.I ft(num)s +514 X +4920 Y +874 X +0.0 10 10 f.R ft(divide)s +1365 X(literal)s +1795 X(integer)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(divided)s +2725 X(by)s +2850 X +0.0 10 10 f.I ft(arg)s +514 X +5040 Y +874 X +0.0 10 10 f.R ft(modulo)s +1365 X(literal)s +1795 X(integer)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(modulo)s +2731 X +0.0 10 10 f.I ft(arg)s +514 X +5160 Y +874 X +0.0 10 10 f.R ft(num)s +1365 X(literal)s +1795 X(integer)s +2203 X(Set)s +2356 X +0.0 10 10 f.I ft(num)s +2553 X +0.0 10 10 f.R ft(to)s +2656 X +0.0 10 10 f.I ft(arg)s +514 X +5280 Y +874 X +0.0 10 10 f.R ft(lit)s +1365 X(literal)s +1795 X(string)s +2203 X(Set)s +2356 X +0.0 10 10 f.I ft(str)s +2487 X +0.0 10 10 f.R ft(to)s +2590 X +0.0 10 10 f.I ft(arg)s +514 X +5400 Y +874 X +0.0 10 10 f.R ft(getenv)s +1365 X(literal)s +1795 X(string)s +2203 X(Set)s +2356 X +0.0 10 10 f.I ft(str)s +2487 X +0.0 10 10 f.R ft(to)s +2590 X(environment)s +3120 X(value)s +3361 X(of)s +3469 X +0.0 10 10 f.I ft(arg)s +514 X +5520 Y +874 X +0.0 10 10 f.R ft(pro\256le)s +1365 X(literal)s +1795 X(string)s +2203 X(Set)s +2356 X +0.0 10 10 f.I ft(str)s +2487 X +0.0 10 10 f.R ft(to)s +2590 X(pro\256le)s +2876 X(component)s +3345 X +0.0 10 10 f.I ft(arg)s +3509 X +0.0 10 10 f.R ft(value)s +514 X +5640 Y +874 X(nonzero)s +1365 X(expr)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(is)s +2492 X(non-zero)s +514 X +5760 Y +874 X(zero)s +1365 X(expr)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(is)s +2492 X(zero)s +514 X +5880 Y +874 X(null)s +1365 X(expr)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(str)s +2334 X +0.0 10 10 f.R ft(is)s +2426 X(empty)s +514 X +6000 Y +874 X(nonnull)s +1365 X(expr)s +1795 X(boolean)s +2203 X +0.0 10 10 f.I ft(str)s +2334 X +0.0 10 10 f.R ft(is)s +2426 X(non-empty)s +514 X +6120 Y +874 X(void)s +1365 X(expr)s +2203 X(Set)s +2356 X +0.0 10 10 f.I ft(str)s +2487 X +0.0 10 10 f.R ft(or)s +2595 X +0.0 10 10 f.I ft(num)s +514 X +6240 Y +874 X +0.0 10 10 f.R ft(comp)s +1365 X(comp)s +1795 X(string)s +2203 X(Set)s +2356 X +0.0 10 10 f.I ft(str)s +2487 X +0.0 10 10 f.R ft(to)s +2590 X(component)s +3059 X(text)s +514 X +6360 Y +874 X(compval)s +1365 X(comp)s +1795 X(integer)s +2203 X +0.0 10 10 f.I ft(num)s +2400 X +0.0 10 10 f.R ft(set)s +2536 X(to)s +2639 X(``)s +0.0 10 10 f.B ft(atoi)s +0.0 10 10 f.R ft(\()s +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\)'')s +514 X +6480 Y +874 X(trim)s +1365 X(expr)s +2203 X(trim)s +2395 X(trailing)s +2709 X(white-space)s +3210 X(from)s +3429 X +0.0 10 10 f.I ft(str)s +514 X +6600 Y +874 X +0.0 10 10 f.R ft(putstr)s +1365 X(expr)s +2203 X(print)s +2417 X +0.0 10 10 f.I ft(str)s +514 X +6720 Y +874 X +0.0 10 10 f.R ft(putstrf)s +1365 X(expr)s +2203 X(print)s +2417 X +0.0 10 10 f.I ft(str)s +2548 X +0.0 10 10 f.R ft(in)s +2651 X(a)s +2720 X(\256xed)s +2945 X(width)s +514 X +6840 Y +874 X(putnum)s +1365 X(expr)s +2203 X(print)s +2417 X +0.0 10 10 f.I ft(num)s +514 X +6960 Y +874 X +0.0 10 10 f.R ft(putnumf)s +1365 X(expr)s +2203 X(print)s +2417 X +0.0 10 10 f.I ft(num)s +2614 X +0.0 10 10 f.R ft(in)s +2717 X(a)s +2786 X(\256xed)s +3011 X(width)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 110 111 + +514 X +600 Y(MH-FORMAT\(5\))s +2746 X(-110-)s +4429 X(MH-FORMAT\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(These)s +1137 X(functions)s +1534 X(require)s +1841 X(a)s +1910 X(date)s +2101 X(component)s +2570 X(as)s +2678 X(an)s +2797 X(argument:)s +514 X +1200 Y +874 X +0.0 10 10 f.I ft(Function)s +1365 X(Argument)s +1795 X(Return)s +2203 X(Description)s +514 X +1320 Y +874 X +0.0 10 10 f.R ft(sec)s +1365 X(date)s +1795 X(integer)s +2203 X(seconds)s +2544 X(of)s +2652 X(the)s +2799 X(minute)s +514 X +1440 Y +874 X(min)s +1365 X(date)s +1795 X(integer)s +2203 X(minutes)s +2545 X(of)s +2653 X(the)s +2800 X(hour)s +514 X +1560 Y +874 X(hour)s +1365 X(date)s +1795 X(integer)s +2203 X(hours)s +2450 X(of)s +2558 X(the)s +2705 X(day)s +2874 X(\(0-23\))s +514 X +1680 Y +874 X(wday)s +1365 X(date)s +1795 X(integer)s +2203 X(day)s +2372 X(of)s +2480 X(the)s +2627 X(week)s +2862 X(\(Sun=0\))s +514 X +1800 Y +874 X(day)s +1365 X(date)s +1795 X(string)s +2203 X(day)s +2372 X(of)s +2480 X(the)s +2627 X(week)s +2862 X(\(abbrev.\))s +514 X +1920 Y +874 X(weekday)s +1365 X(date)s +1795 X(string)s +2203 X(day)s +2372 X(of)s +2480 X(the)s +2627 X(week)s +514 X +2040 Y +874 X(sday)s +1365 X(date)s +1795 X(integer)s +2203 X(day)s +2372 X(of)s +2480 X(the)s +2627 X(week)s +2862 X(known?)s +514 X +2160 Y +2203 X(\(0=implicit,\2611=unknown\))s +514 X +2280 Y +874 X(mday)s +1365 X(date)s +1795 X(integer)s +2203 X(day)s +2372 X(of)s +2480 X(the)s +2627 X(month)s +514 X +2400 Y +874 X(yday)s +1365 X(date)s +1795 X(integer)s +2203 X(day)s +2372 X(of)s +2480 X(the)s +2627 X(year)s +514 X +2520 Y +874 X(mon)s +1365 X(date)s +1795 X(integer)s +2203 X(month)s +2484 X(of)s +2592 X(the)s +2739 X(year)s +514 X +2640 Y +874 X(month)s +1365 X(date)s +1795 X(string)s +2203 X(month)s +2484 X(of)s +2592 X(the)s +2739 X(year)s +2935 X(\(abbrev.\))s +514 X +2760 Y +874 X(lmonth)s +1365 X(date)s +1795 X(string)s +2203 X(month)s +2484 X(of)s +2592 X(the)s +2739 X(year)s +514 X +2880 Y +874 X(year)s +1365 X(date)s +1795 X(integer)s +2203 X(year)s +2399 X(\(may)s +2629 X(be)s +2748 X(>)s +2829 X(100\))s +514 X +3000 Y +874 X(zone)s +1365 X(date)s +1795 X(integer)s +2203 X(timezone)s +2594 X(in)s +2697 X(hours)s +514 X +3120 Y +874 X(tzone)s +1365 X(date)s +1795 X(string)s +2203 X(timezone)s +2594 X(string)s +514 X +3240 Y +874 X(szone)s +1365 X(date)s +1795 X(integer)s +2203 X(timezone)s +2594 X(explicit?)s +514 X +3360 Y +2203 X(\(0=implicit,\2611=unknown\))s +514 X +3480 Y +874 X(date2local)s +1365 X(date)s +2203 X(coerce)s +2487 X(date)s +2678 X(to)s +2781 X(local)s +3000 X(timezone)s +514 X +3600 Y +874 X(date2gmt)s +1365 X(date)s +2203 X(coerce)s +2487 X(date)s +2678 X(to)s +2781 X(GMT)s +514 X +3720 Y +874 X(dst)s +1365 X(date)s +1795 X(integer)s +2203 X(daylight)s +2556 X(savings)s +2881 X(in)s +2984 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ect?)s +514 X +3840 Y +874 X(clock)s +1365 X(date)s +1795 X(integer)s +2203 X(seconds)s +2544 X(since)s +2774 X(the)s +2921 X(UNIX)s +3195 X(epoch)s +514 X +3960 Y +874 X(rclock)s +1365 X(date)s +1795 X(integer)s +2203 X(seconds)s +2544 X(prior)s +2763 X(to)s +2866 X(current)s +3173 X(time)s +514 X +4080 Y +874 X(tws)s +1365 X(date)s +1795 X(string)s +2203 X(o)s +Cff(icial)s +2511 X(822)s +2686 X(rendering)s +514 X +4200 Y +874 X(pretty)s +1365 X(date)s +1795 X(string)s +2203 X(user-friendly)s +2743 X(rendering)s +514 X +4320 Y +874 X(nodate)s +1365 X(date)s +1795 X(integer)s +2203 X +0.0 10 10 f.I ft(str)s +2334 X +0.0 10 10 f.R ft(not)s +2487 X(a)s +2556 X(date)s +2747 X(string)s +514 X +4560 Y +874 X(These)s +1139 X(functions)s +1538 X(require)s +1847 X(an)s +1968 X(address)s +2294 X(component)s +2765 X(as)s +2875 X(an)s +2996 X(argument.)s +3425 X(The)s +3607 X(return)s +3872 X(value)s +4115 X(of)s +4225 X(functions)s +4624 X(noted)s +4873 X(with)s +5078 X(`*')s +514 X +4680 Y +874 X(pertain)s +1176 X(only)s +1379 X(to)s +1482 X(the)s +1629 X(\256rst)s +1810 X(address)s +2134 X(present)s +2447 X(in)s +2550 X(the)s +2697 X(header)s +2987 X(component.)s +514 X +4920 Y +874 X +0.0 10 10 f.I ft(Function)s +1365 X(Argument)s +1795 X(Return)s +2203 X(Description)s +514 X +5040 Y +874 X +0.0 10 10 f.R ft(proper)s +1365 X(addr)s +1795 X(string)s +2203 X(o)s +Cff(icial)s +2511 X(822)s +2686 X(rendering)s +514 X +5160 Y +874 X(friendly)s +1365 X(addr)s +1795 X(string)s +2203 X(user-friendly)s +2743 X(rendering)s +514 X +5280 Y +874 X(addr)s +1365 X(addr)s +1795 X(string)s +2203 X(mbox@host)s +2715 X(or)s +2823 X(host!mbox)s +3276 X(rendering*)s +514 X +5400 Y +874 X(pers)s +1365 X(addr)s +1795 X(string)s +2203 X(the)s +2350 X(personal)s +2713 X(name*)s +514 X +5520 Y +874 X(note)s +1365 X(addr)s +1795 X(string)s +2203 X(commentary)s +2727 X(text*)s +514 X +5640 Y +874 X(mbox)s +1365 X(addr)s +1795 X(string)s +2203 X(the)s +2350 X(local)s +2569 X(mailbox*)s +514 X +5760 Y +874 X(mymbox)s +1365 X(addr)s +1795 X(integer)s +2203 X(the)s +2350 X(user's)s +2613 X(addresses?)s +3064 X(\(0=no,1=yes\))s +514 X +5880 Y +874 X(host)s +1365 X(addr)s +1795 X(string)s +2203 X(the)s +2350 X(host)s +2542 X(domain*)s +514 X +6000 Y +874 X(nohost)s +1365 X(addr)s +1795 X(integer)s +2203 X(no)s +2328 X(host)s +2520 X(was)s +2700 X(present*)s +514 X +6120 Y +874 X(type)s +1365 X(addr)s +1795 X(integer)s +2203 X(host)s +2395 X(type*)s +2642 X(\(0=local,1=network,)s +514 X +6240 Y +2203 X(\2611=uucp,2=unknown\))s +514 X +6360 Y +874 X(path)s +1365 X(addr)s +1795 X(string)s +2203 X(any)s +2372 X(leading)s +2691 X(host)s +2883 X(route*)s +514 X +6480 Y +874 X(ingrp)s +1365 X(addr)s +1795 X(integer)s +2203 X(address)s +2527 X(was)s +2707 X(inside)s +2971 X(a)s +3040 X(group*)s +514 X +6600 Y +874 X(gname)s +1365 X(addr)s +1795 X(string)s +2203 X(name)s +2444 X(of)s +2552 X(group*)s +514 X +6720 Y +874 X(formataddr)s +1365 X(expr)s +2203 X(append)s +2516 X +0.0 10 10 f.I ft(arg)s +2680 X +0.0 10 10 f.R ft(to)s +2783 X +0.0 10 10 f.I ft(str)s +2914 X +0.0 10 10 f.R ft(as)s +3022 X(a)s +514 X +6840 Y +2203 X(\(comma)s +2555 X(separated\))s +2989 X(address)s +3313 X(list)s +514 X +6960 Y +874 X(putaddr)s +1365 X(literal)s +2203 X(print)s +2417 X +0.0 10 10 f.I ft(str)s +2548 X +0.0 10 10 f.R ft(address)s +2872 X(list)s +3020 X(with)s +514 X +7080 Y +2203 X +0.0 10 10 f.I ft(arg)s +2367 X +0.0 10 10 f.R ft(as)s +2475 X(optional)s +2828 X(label;)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 111 112 + +514 X +600 Y(MH-FORMAT\(5\))s +2746 X(-111-)s +4429 X(MH-FORMAT\(5\))s +514 X +960 Y +2203 X +0.0 10 10 f.R ft(get)s +2350 X(line)s +2525 X(width)s +2778 X(from)s +2997 X +0.0 10 10 f.I ft(num)s +514 X +1200 Y +874 X +0.0 10 10 f.R ft(When)s +1146 X(escapes)s +1484 X(are)s +1638 X(nested,)s +1951 X(evaluation)s +2400 X(is)s +2500 X(done)s +2727 X(from)s +2954 X(inner-most)s +3420 X(to)s +3531 X(outer-most.)s +4047 X(The)s +4235 X(outer-most)s +4701 X(escape)s +4999 X(must)s +514 X +1320 Y +874 X(begin)s +1121 X(with)s +1324 X(`%';)s +1526 X(the)s +1673 X(inner)s +1903 X(escapes)s +2232 X(must)s +2452 X(not.)s +2655 X(For)s +2819 X(example,)s +514 X +1560 Y +1234 X(%<\(mymbox{from}\))s +2110 X(To:)s +2274 X(%{to}%>)s +514 X +1800 Y +874 X(writes)s +1149 X(the)s +1302 X(value)s +1549 X(of)s +1663 X(the)s +1816 X(header)s +2112 X(component)s +2587 X(``From:'')s +2995 X(to)s +3104 X +0.0 10 10 f.I ft(str)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(;)s +3277 X(then)s +3479 X(\()s +0.0 10 10 f.I ft(mymbox)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +3915 X(reads)s +4155 X +0.0 10 10 f.I ft(str)s +4291 X +0.0 10 10 f.R ft(and)s +4465 X(writes)s +4739 X(its)s +4864 X(result)s +5116 X(to)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(num)s +0.0 10 10 f.R ft(;)s +1106 X(then)s +1310 X(the)s +1464 X(control)s +1779 X(escape)s +2076 X(evaluates)s +2479 X +0.0 10 10 f.I ft(num)s +0.0 10 10 f.R ft(.)s +2733 X(If)s +2831 X +0.0 10 10 f.I ft(num)s +3035 X +0.0 10 10 f.R ft(is)s +3134 X(non-zero,)s +3545 X(the)s +3699 X(string)s +3959 X(``To:)s +4196 X('')s +4294 X(is)s +4393 X(printed)s +4708 X(followed)s +5094 X(by)s +514 X +2040 Y +874 X(the)s +1021 X(value)s +1262 X(of)s +1370 X(the)s +1517 X(header)s +1807 X(component)s +2276 X(``To:''.)s +514 X +2280 Y +874 X(A)s +984 X(minor)s +1261 X(explanation)s +1765 X(of)s +1885 X(\()s +0.0 10 10 f.I ft(mymbox)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft({)s +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}\))s +2648 X(is)s +2752 X(in)s +2867 X(order.)s +3164 X(In)s +3284 X(general,)s +3639 X(it)s +3732 X(checks)s +4040 X(each)s +4259 X(of)s +4379 X(the)s +4538 X(addresses)s +4957 X(in)s +5072 X(the)s +514 X +2400 Y +874 X(header)s +1165 X(component)s +1635 X(``)s +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft('')s +2009 X(against)s +2318 X(the)s +2466 X(user's)s +2730 X(mailbox)s +3084 X(name)s +3326 X(and)s +3496 X(any)s +3666 X +0.0 10 10 f.I ft(Alternate-Mailboxes)s +0.0 10 10 f.R ft(.)s +4563 X(It)s +4650 X(returns)s +4953 X(true)s +5133 X(if)s +514 X +2520 Y +874 X(any)s +1050 X(address)s +1381 X(matches,)s +1765 X(however,)s +2165 X(it)s +2253 X(also)s +2446 X(returns)s +2755 X(true)s +2942 X(if)s +3035 X(the)s +3189 X(``)s +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft('')s +3569 X(header)s +3866 X(is)s +3965 X(not)s +4125 X(present)s +4445 X(in)s +4555 X(the)s +4709 X(message.)s +5128 X(If)s +514 X +2640 Y +874 X(needed,)s +1206 X(the)s +1353 X(\()s +0.0 10 10 f.I ft(null)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +1608 X(function)s +1966 X(can)s +2129 X(be)s +2248 X(used)s +2456 X(to)s +2559 X(explicitly)s +2962 X(test)s +3126 X(for)s +3267 X(this)s +3437 X(condition.)s +514 X +2880 Y +874 X(When)s +1140 X(a)s +1212 X(function)s +1573 X(or)s +1684 X(component)s +2156 X(escape)s +2449 X(is)s +2544 X(interpreted)s +3004 X(and)s +3176 X(the)s +3326 X(result)s +3576 X(will)s +3760 X(be)s +3882 X(immediately)s +4410 X(printed,)s +4745 X(an)s +4866 X(optional)s +514 X +3000 Y +874 X(\256eld)s +1094 X(width)s +1364 X(can)s +1544 X(be)s +1679 X(speci\256ed)s +2075 X(to)s +2194 X(print)s +2424 X(the)s +2587 X(\256eld)s +2806 X(in)s +2925 X(exactly)s +3254 X(a)s +3339 X(given)s +3602 X(number)s +3948 X(of)s +4072 X(characters.)s +4566 X(For)s +4746 X(example,)s +5150 X(a)s +514 X +3120 Y +874 X(numeric)s +1228 X(escape)s +1519 X(like)s +1695 X(%4\()s +0.0 10 10 f.I ft(size)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +2078 X(will)s +2260 X(print)s +2475 X(at)s +2573 X(most)s +2794 X(4)s +2870 X(digits)s +3119 X(of)s +3228 X(the)s +3376 X(message)s +3740 X(size;)s +3949 X(over\257ow)s +4330 X(will)s +4512 X(be)s +4632 X(indicated)s +5024 X(by)s +5150 X(a)s +514 X +3240 Y +874 X(`?')s +1014 X(in)s +1122 X(the)s +1273 X(\256rst)s +1458 X(position)s +1810 X(\(like)s +2022 X(`?234'\).)s +2394 X(A)s +2495 X(string)s +2752 X(escape)s +3046 X(like)s +3225 X(%4\()s +0.0 10 10 f.I ft(me)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +3577 X(will)s +3762 X(print)s +3980 X(the)s +4131 X(\256rst)s +4316 X(4)s +4395 X(characters)s +4827 X(and)s +5000 X(trun-)s +514 X +3360 Y +874 X(cate)s +1068 X(at)s +1173 X(the)s +1328 X(end.)s +1530 X(Short)s +1780 X(\256elds)s +2030 X(are)s +2184 X(padded)s +2505 X(at)s +2610 X(the)s +2765 X(right)s +2987 X(with)s +3198 X(the)s +3353 X(\256ll)s +3498 X(character)s +3895 X(\(normally,)s +4347 X(a)s +4424 X(blank\).)s +4762 X(If)s +4861 X(the)s +5016 X(\256eld)s +514 X +3480 Y +874 X(width)s +1127 X(argument)s +1529 X(begins)s +1815 X(with)s +2018 X(a)s +2087 X(leading)s +2406 X(zero,)s +2627 X(then)s +2824 X(the)s +2971 X(\256ll)s +3108 X(character)s +3497 X(is)s +3589 X(set)s +3725 X(to)s +3828 X(a)s +3897 X(zero.)s +514 X +3720 Y +874 X(As)s +1032 X(above,)s +1342 X(the)s +1511 X(functions)s +1930 X(\()s +0.0 10 10 f.I ft(putnumf)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +2379 X(and)s +2570 X(\()s +0.0 10 10 f.I ft(putstrf)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +2953 X(print)s +3188 X(their)s +3417 X(result)s +3685 X(in)s +3809 X(exactly)s +4143 X(the)s +4311 X(number)s +4662 X(of)s +4791 X(characters)s +514 X +3840 Y +874 X(speci\256ed)s +1265 X(by)s +1401 X(their)s +1620 X(leading)s +1950 X(\256eld)s +2164 X(width)s +2428 X(argument.)s +2866 X(For)s +3041 X(example,)s +3440 X(%06\()s +0.0 10 10 f.I ft(putnumf)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\()s +0.0 10 10 f.I ft(size)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\)\))s +4284 X(will)s +4475 X(print)s +4699 X(the)s +4856 X(message)s +514 X +3960 Y +874 X(size)s +1068 X(in)s +1185 X(a)s +1268 X(\256eld)s +1485 X(six)s +1641 X(characters)s +2083 X(wide)s +2316 X(\256lled)s +2561 X(with)s +2778 X(leading)s +3110 X(zeros;)s +3386 X(%14\()s +0.0 10 10 f.I ft(putstrf)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft({)s +0.0 10 10 f.I ft(from)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}\))s +4236 X(will)s +4430 X(print)s +4657 X(the)s +4817 X(``From:'')s +514 X +4080 Y +874 X(header)s +1166 X(component)s +1637 X(in)s +1742 X(fourteen)s +2100 X(characters)s +2529 X(with)s +2733 X(trailing)s +3048 X(spaces)s +3334 X(added)s +3598 X(as)s +3707 X(needed.)s +4065 X(For)s +4230 X +0.0 10 10 f.I ft(putstrf)s +0.0 10 10 f.R ft(,)s +4543 X(using)s +4786 X(a)s +4856 X(negative)s +514 X +4200 Y +874 X(value)s +1120 X(for)s +1266 X(the)s +1418 X(\256eld)s +1626 X(width)s +1884 X(causes)s +2174 X(right-justi\256cation)s +2899 X(of)s +3012 X(the)s +3164 X(string)s +3422 X(within)s +3708 X(the)s +3860 X(\256eld,)s +4093 X(with)s +4301 X(padding)s +4652 X(on)s +4781 X(the)s +4932 X(left)s +5094 X(up)s +514 X +4320 Y +874 X(to)s +979 X(the)s +1128 X(\256eld)s +1333 X(width.)s +1638 X(The)s +1820 X(functions)s +2218 X(\()s +0.0 10 10 f.I ft(putnum)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +2618 X(and)s +2788 X(\()s +0.0 10 10 f.I ft(putstr)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +3122 X(print)s +3337 X(their)s +3546 X(result)s +3794 X(in)s +3898 X(the)s +4046 X(minimum)s +4462 X(number)s +4793 X(of)s +4902 X(charac-)s +514 X +4440 Y +874 X(ters)s +1043 X(required,)s +1425 X(and)s +1594 X(ignore)s +1874 X(any)s +2043 X(leading)s +2362 X(\256eld)s +2565 X(width)s +2818 X(argument.)s +514 X +4680 Y +874 X(The)s +1054 X(available)s +1439 X(output)s +1720 X(width)s +1973 X(is)s +2065 X(kept)s +2262 X(in)s +2365 X(an)s +2484 X(internal)s +2814 X(register;)s +3166 X(any)s +3335 X(output)s +3616 X(past)s +3802 X(this)s +3972 X(width)s +4225 X(will)s +4406 X(be)s +4525 X(truncated.)s +514 X +4920 Y +874 X(Comments)s +1339 X(may)s +1541 X(be)s +1665 X(inserted)s +2011 X(in)s +2119 X(most)s +2344 X(places)s +2623 X(where)s +2896 X(a)s +2970 X(function)s +3333 X(argument)s +3740 X(is)s +3837 X(not)s +3995 X(expected.)s +4429 X(A)s +4531 X(comment)s +4933 X(begins)s +514 X +5040 Y +874 X(with)s +1077 X(`%;')s +1279 X(and)s +1448 X(ends)s +1656 X(with)s +1859 X(a)s +1928 X(\(non-escaped\))s +2517 X(newline.)s +514 X +5280 Y +874 X(With)s +1101 X(all)s +1228 X(this)s +1400 X(in)s +1505 X(mind,)s +1763 X(here's)s +2033 X(the)s +2182 X(default)s +2486 X(format)s +2779 X(string)s +3033 X(for)s +3175 X +0.0 10 10 f.I ft(scan)s +0.0 10 10 f.R ft(.)s +3434 X(It's)s +3593 X(been)s +3807 X(divided)s +4133 X(into)s +4315 X(several)s +4623 X(pieces)s +4898 X(for)s +5040 X(rea-)s +514 X +5400 Y +874 X(dability.)s +1255 X(The)s +1435 X(\256rst)s +1616 X(part)s +1796 X(is:)s +514 X +5640 Y +1234 X(%4\(msg\)%<\(cur\)+%|)s +2116 X(%>%<{replied}\261%?{encrypted}E%|)s +3622 X(%>)s +514 X +5880 Y +874 X(which)s +1148 X(says)s +1349 X(that)s +1528 X(the)s +1679 X(message)s +2046 X(number)s +2380 X(should)s +2676 X(be)s +2799 X(printed)s +3111 X(in)s +3218 X(four)s +3413 X(digits,)s +3690 X(if)s +3780 X(the)s +3931 X(message)s +4298 X(is)s +4394 X(the)s +4545 X(current)s +4856 X(message)s +514 X +6000 Y +874 X(then)s +1094 X(a)s +1186 X(`+')s +1356 X(else)s +1559 X(a)s +1651 X(space)s +1920 X(should)s +2235 X(be)s +2377 X(printed,)s +2733 X(and)s +2925 X(if)s +3034 X(a)s +3125 X(``Replied:'')s +3643 X(\256eld)s +3868 X(is)s +3982 X(present)s +4317 X(then)s +4536 X(a)s +4627 X(`\261')s +4790 X(else)s +4992 X(if)s +5100 X(an)s +514 X +6120 Y +874 X(``Encrypted:'')s +1469 X(\256eld)s +1672 X(is)s +1764 X(present)s +2077 X(then)s +2274 X(an)s +2393 X(`E')s +2545 X(otherwise)s +2958 X(a)s +3027 X(space)s +3273 X(should)s +3565 X(be)s +3684 X(printed.)s +4042 X(Next:)s +514 X +6360 Y +1234 X(%02\(mon{date}\)/%02\(mday{date}\))s +514 X +6600 Y +874 X(the)s +1021 X(month)s +1302 X(and)s +1471 X(date)s +1662 X(are)s +1808 X(printed)s +2116 X(in)s +2219 X(two)s +2394 X(digits)s +2642 X(\(zero)s +2871 X(\256lled\))s +3135 X(separated)s +3536 X(by)s +3661 X(a)s +3730 X(slash.)s +4005 X(Next,)s +514 X +6840 Y +1234 X(%<{date})s +1660 X(%|*>)s +514 X +7080 Y +874 X(If)s +965 X(a)s +1034 X(``Date:'')s +1407 X(\256eld)s +1610 X(was)s +1790 X(present,)s +2128 X(then)s +2325 X(a)s +2394 X(space)s +2640 X(is)s +2732 X(printed,)s +3065 X(otherwise)s +3478 X(a)s +3547 X(`*'.)s +3738 X(Next,)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 112 113 + +514 X +600 Y(MH-FORMAT\(5\))s +2746 X(-112-)s +4429 X(MH-FORMAT\(5\))s +514 X +960 Y +1234 X +0.0 10 10 f.R ft(%<\(mymbox{from}\)%<{to}To:%14\(friendly{to}\)%>%>)s +514 X +1200 Y +874 X(if)s +961 X(the)s +1109 X(message)s +1473 X(is)s +1566 X(from)s +1785 X(me,)s +1957 X(and)s +2126 X(there)s +2350 X(is)s +2442 X(a)s +2511 X(``To:'')s +2807 X(header,)s +3122 X(print)s +3336 X(`To:')s +3566 X(followed)s +3946 X(by)s +4071 X(a)s +4140 X(``user-friendly'')s +4812 X(rendering)s +514 X +1320 Y +874 X(of)s +982 X(the)s +1129 X(\256rst)s +1310 X(address)s +1634 X(in)s +1737 X(the)s +1884 X(``To:'')s +2180 X(\256eld.)s +2433 X(Continuing,)s +514 X +1560 Y +1234 X(%<\(zero\)%17\(friendly{from}\)%>)s +514 X +1800 Y +874 X(if)s +972 X(either)s +1236 X(of)s +1356 X(the)s +1515 X(above)s +1790 X(two)s +1977 X(tests)s +2192 X(failed,)s +2481 X(then)s +2690 X(the)s +2849 X(``From:'')s +3263 X(address)s +3599 X(is)s +3703 X(printed)s +4023 X(in)s +4138 X(a)s +4219 X(``user-friendly'')s +4903 X(format.)s +514 X +1920 Y +874 X(And)s +1071 X(\256nally,)s +514 X +2160 Y +1234 X(%{subject}%<{body}<<%{body}%>)s +514 X +2400 Y +874 X(the)s +1021 X(subject)s +1329 X(and)s +1498 X(initial)s +1757 X(body)s +1982 X(\(if)s +2101 X(any\))s +2303 X(are)s +2449 X(printed.)s +514 X +2640 Y +874 X(For)s +1038 X(a)s +1107 X(more)s +1337 X(complicated)s +1850 X(example,)s +2238 X(next)s +2435 X(consider)s +2798 X(the)s +2945 X(default)s +3247 X +0.0 10 10 f.I ft(replcomps)s +3688 X +0.0 10 10 f.R ft(format)s +3979 X(\256le.)s +514 X +2880 Y +1234 X(%\(lit\)%\(formataddr)s +2051 X(%<{reply-to})s +514 X +3120 Y +874 X(This)s +1077 X(clears)s +1334 X +0.0 10 10 f.I ft(str)s +1465 X +0.0 10 10 f.R ft(and)s +1634 X(formats)s +1964 X(the)s +2111 X(``Reply-To:'')s +2679 X(header)s +2969 X(if)s +3055 X(present.)s +3418 X(If)s +3509 X(not)s +3662 X(present,)s +4000 X(the)s +4147 X(else-if)s +4421 X(clause)s +4695 X(is)s +4787 X(executed.)s +514 X +3360 Y +1234 X(%?{from}%?{sender}%?{return-path}%>\)\\)s +514 X +3600 Y +874 X(This)s +1090 X(formats)s +1433 X(the)s +1593 X(``From:'',)s +2033 X(``Sender:'')s +2508 X(and)s +2690 X(``Return-Path:'')s +3371 X(headers,)s +3738 X(stopping)s +4121 X(as)s +4242 X(soon)s +4469 X(as)s +4589 X(one)s +4770 X(of)s +4890 X(them)s +5127 X(is)s +514 X +3720 Y +874 X(present.)s +1237 X(Next:)s +514 X +3960 Y +1234 X(%<\(nonnull\)%\(void\(width\)\)%\(putaddr)s +2812 X(To:)s +2976 X(\)\\n%>\\)s +514 X +4200 Y +874 X(If)s +970 X(the)s +1122 X +0.0 10 10 f.I ft(formataddr)s +1608 X +0.0 10 10 f.R ft(result)s +1860 X(is)s +1957 X(non-null,)s +2351 X(it)s +2437 X(is)s +2534 X(printed)s +2847 X(as)s +2960 X(an)s +3084 X(address)s +3413 X(\(with)s +3653 X(line)s +3832 X(folding)s +4150 X(if)s +4240 X(needed\))s +4584 X(in)s +4691 X(a)s +4764 X(\256eld)s +4971 X +0.0 10 10 f.I ft(width)s +514 X +4320 Y +874 X +0.0 10 10 f.R ft(wide)s +1093 X(with)s +1296 X(a)s +1365 X(leading)s +1684 X(label)s +1903 X(of)s +2011 X(``To:)s +2241 X(''.)s +514 X +4560 Y +1234 X(%\(lit\)%\(formataddr{to}\)%\(formataddr{cc}\)%\(formataddr\(me\)\)\\)s +514 X +4800 Y +874 X +0.0 10 10 f.I ft(str)s +1016 X +0.0 10 10 f.R ft(is)s +1119 X(cleared,)s +1466 X(and)s +1645 X(the)s +1802 X(``To:'')s +2108 X(and)s +2287 X(``Cc:'')s +2593 X(headers,)s +2957 X(along)s +3214 X(with)s +3427 X(the)s +3584 X(user's)s +3857 X(address)s +4191 X(\(depending)s +4675 X(on)s +4810 X(what)s +5039 X(was)s +514 X +4920 Y +874 X(speci\256ed)s +1254 X(with)s +1457 X(the)s +1604 X(``\261cc'')s +1899 X(switch)s +2185 X(to)s +2288 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +2515 X(are)s +2661 X(formatted.)s +514 X +5160 Y +1234 X(%<\(nonnull\)%\(void\(width\)\)%\(putaddr)s +2812 X(cc:)s +2953 X(\)\\n%>\\)s +514 X +5400 Y +874 X(If)s +965 X(the)s +1112 X(result)s +1359 X(is)s +1451 X(non-null,)s +1840 X(it)s +1921 X(is)s +2013 X(printed)s +2321 X(as)s +2429 X(above)s +2692 X(with)s +2895 X(a)s +2964 X(leading)s +3283 X(label)s +3502 X(of)s +3610 X(``cc:)s +3817 X(''.)s +514 X +5640 Y +1234 X(%<{fcc}Fcc:)s +1787 X(%{fcc}\\n%>\\)s +514 X +5880 Y +874 X(If)s +967 X(a)s +1038 X(``\261fcc folder'')s +1631 X(switch)s +1919 X(was)s +2101 X(given)s +2350 X(to)s +2455 X +0.0 10 10 f.I ft(repl)s +2643 X +0.0 10 10 f.R ft(\(see)s +2830 X +0.0 10 10 f.I ft(repl)s +3041 X +0.0 10 10 f.R ft(\(1\))s +3184 X(for)s +3326 X(more)s +3557 X(details)s +3844 X(about)s +4092 X(%{)s +0.0 10 10 f.I ft(fcc)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(}\),)s +4479 X(an)s +4599 X(``Fcc:'')s +4929 X(header)s +514 X +6000 Y +874 X(is)s +966 X(output.)s +514 X +6240 Y +1234 X(%<{subject}Subject:)s +2105 X(Re:)s +2269 X(%{subject}\\n%>\\)s +514 X +6480 Y +874 X(If)s +965 X(a)s +1034 X(subject)s +1342 X(component)s +1811 X(was)s +1991 X(present,)s +2329 X(a)s +2398 X(suitable)s +2734 X(reply)s +2964 X(subject)s +3272 X(is)s +3364 X(output.)s +514 X +6720 Y +1234 X(%<{date}In-reply-to:)s +2120 X(Your)s +2350 X(message)s +2713 X(of)s +2821 X("\\)s +514 X +6840 Y +1234 X(%<\(nodate{date}\)%{date}%|%\(pretty{date}\)%>."%<{message-id})s +514 X +6960 Y +1559 X(%{message-id}%>\\n%>\\)s +514 X +7080 Y +1234 X(\261\261\261\261\261\261\261\261)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 113 114 + +514 X +600 Y(MH-FORMAT\(5\))s +2746 X(-113-)s +4429 X(MH-FORMAT\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(If)s +972 X(a)s +1048 X(date)s +1246 X(component)s +1722 X(was)s +1909 X(present,)s +2254 X(an)s +2380 X(``In-Reply-To:'')s +3071 X(header)s +3368 X(is)s +3467 X(output)s +3755 X(with)s +3964 X(the)s +4117 X(preface)s +4440 X(``Your)s +4742 X(message)s +5111 X(of)s +514 X +1080 Y +874 X(''.)s +1037 X(If)s +1150 X(the)s +1319 X(date)s +1532 X(was)s +1733 X(parseable,)s +2180 X(it)s +2282 X(is)s +2395 X(output)s +2697 X(in)s +2821 X(a)s +2911 X(user-friendly)s +3472 X(format,)s +3809 X(otherwise)s +4243 X(it)s +4345 X(is)s +4458 X(output)s +4760 X(as-is.)s +5039 X(The)s +514 X +1200 Y +874 X(message-id)s +1348 X(is)s +1440 X(included)s +1809 X(if)s +1895 X(present.)s +2258 X(As)s +2394 X(with)s +2597 X(all)s +2722 X(plain-text,)s +3155 X(the)s +3302 X(row)s +3482 X(of)s +3590 X(dashes)s +3881 X(are)s +4027 X(output)s +4308 X(as-is.)s +514 X +1440 Y +874 X(This)s +1077 X(last)s +1241 X(part)s +1421 X(is)s +1513 X(a)s +1582 X(good)s +1807 X(example)s +2170 X(for)s +2311 X(a)s +2380 X(little)s +2589 X(more)s +2819 X(elaboration.)s +3343 X(Here's)s +3633 X(that)s +3808 X(part)s +3988 X(again)s +4229 X(in)s +4332 X(pseudo-code:)s +514 X +1680 Y +1234 X(if)s +1320 X(\(comp_exists\(date\)\))s +2168 X(then)s +514 X +1800 Y +1594 X(print)s +1808 X(\(``In-reply-to:)s +2392 X(Your)s +2622 X(message)s +2985 X(of)s +3093 X(\\``''\))s +514 X +1920 Y +1594 X(if)s +1680 X(\(not_date_string\(date.value\))s +2833 X(then)s +514 X +2040 Y +1954 X(print)s +2168 X(\(date.value\))s +514 X +2160 Y +1594 X(else)s +514 X +2280 Y +1954 X(print)s +2168 X(\(pretty\(date.value\)\))s +514 X +2400 Y +1594 X(endif)s +514 X +2520 Y +1594 X(print)s +1808 X(\(``\\''''\))s +514 X +2640 Y +1594 X(if)s +1680 X(\(comp_exists\(message-id\)\))s +2786 X(then)s +514 X +2760 Y +1954 X(print)s +2168 X(\(``\\n\\t''\))s +514 X +2880 Y +1954 X(print)s +2168 X(\(message-id.value\))s +514 X +3000 Y +1594 X(endif)s +514 X +3120 Y +1594 X(print)s +1808 X(\(``\\n''\))s +514 X +3240 Y +1234 X(endif)s +514 X +3480 Y +874 X(Although)s +1279 X(this)s +1451 X(seems)s +1722 X(complicated,)s +2262 X(in)s +2367 X(point)s +2599 X(of)s +2708 X(fact,)s +2908 X(this)s +3079 X(method)s +3405 X(is)s +3498 X(\257exible)s +3824 X(enough)s +4144 X(to)s +4248 X(extract)s +4545 X(individual)s +4977 X(\256elds)s +514 X +3600 Y +874 X(and)s +1043 X(print)s +1257 X(them)s +1482 X(in)s +1585 X(any)s +1754 X(format)s +2045 X(the)s +2192 X(user)s +2383 X(desires.)s +514 X +3762 Y +0.0 8 8 f.B ft(Files)s +514 X +3882 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4086 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4206 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4410 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4530 Y +874 X +0.0 10 10 f.R ft(scan\(1\),)s +1217 X(repl\(1\),)s +1538 X(ap\(8\),)s +1798 X(dp\(8\))s +514 X +4734 Y +0.0 8 8 f.B ft(Defaults)s +514 X +4854 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5058 Y +0.0 8 8 f.B ft(Context)s +514 X +5178 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5382 Y +0.0 8 8 f.B ft(History)s +514 X +5502 Y +874 X +0.0 10 10 f.R ft(This)s +1084 X(software)s +1459 X(was)s +1645 X(contributed)s +2131 X(for)s +2278 X(MH)s +2470 X(6.3.)s +2676 X(Prior)s +2907 X(to)s +3016 X(this,)s +3217 X(output)s +3504 X(format)s +3801 X(speci\256cations)s +4376 X(were)s +4600 X(much)s +4853 X(easier)s +5116 X(to)s +514 X +5622 Y +874 X(write,)s +1129 X(but)s +1282 X(considerably)s +1817 X(less)s +1992 X(\257exible.)s +514 X +5826 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5946 Y +874 X +0.0 10 10 f.R ft(On)s +1021 X(hosts)s +1252 X(where)s +1520 X +0.0 10 10 f.I ft(MH)s +1700 X +0.0 10 10 f.R ft(was)s +1880 X(con\256gured)s +2332 X(with)s +2535 X(the)s +2682 X(BERK)s +2974 X(option,)s +3280 X(address)s +3604 X(parsing)s +3923 X(is)s +4015 X(not)s +4168 X(enabled.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 114 115 + +514 X +600 Y(MH-MAIL\(5\))s +2746 X(-114-)s +4601 X(MH-MAIL\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mh-mail)s +1238 X(\261)s +1313 X(message)s +1676 X(format)s +1967 X(for)s +2108 X(MH)s +2294 X(message)s +2657 X(system)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(any)s +1043 X +0.0 10 10 f.I ft(MH)s +1223 X +0.0 10 10 f.R ft(command)s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(MH)s +1061 X +0.0 10 10 f.R ft(processes)s +1475 X(messages)s +1884 X(in)s +1994 X(a)s +2070 X(particular)s +2484 X(format.)s +2832 X(It)s +2925 X(should)s +3224 X(be)s +3349 X(noted)s +3602 X(that)s +3783 X(although)s +4164 X(neither)s +4472 X(Bell)s +4670 X(nor)s +4834 X(Berkeley)s +514 X +2040 Y +874 X(mailers)s +1199 X(produce)s +1551 X(message)s +1920 X(\256les)s +2118 X(in)s +2227 X(the)s +2379 X(format)s +2675 X(that)s +2855 X +0.0 10 10 f.I ft(MH)s +3040 X +0.0 10 10 f.R ft(prefers,)s +3371 X +0.0 10 10 f.I ft(MH)s +3556 X +0.0 10 10 f.R ft(can)s +3724 X(read)s +3925 X(message)s +4293 X(\256les)s +4490 X(in)s +4598 X(that)s +4778 X(antiquated)s +514 X +2160 Y +874 X(format.)s +514 X +2400 Y +874 X(Each)s +1106 X(user)s +1305 X(possesses)s +1721 X(a)s +1798 X(mail)s +2009 X(drop)s +2225 X(box)s +2408 X(which)s +2685 X(initially)s +3030 X(receives)s +3388 X(all)s +3520 X(messages)s +3929 X(processed)s +4354 X(by)s +4486 X +0.0 10 10 f.I ft(post)s +4703 X +0.0 10 10 f.R ft(\(8\).)s +4901 X +0.0 10 10 f.I ft(Inc)s +5078 X +0.0 10 10 f.R ft(\(1\))s +514 X +2520 Y +874 X(will)s +1057 X(read)s +1255 X(from)s +1476 X(that)s +1653 X(drop)s +1863 X(box)s +2040 X(and)s +2211 X(incorporate)s +2692 X(the)s +2841 X(new)s +3034 X(messages)s +3437 X(found)s +3696 X(there)s +3921 X(into)s +4103 X(the)s +4251 X(user's)s +4515 X(own)s +4713 X(mail)s +4917 X(folders)s +514 X +2640 Y +874 X(\(typically)s +1289 X(`+inbox'\).)s +1754 X(The)s +1941 X(mail)s +2151 X(drop)s +2366 X(box)s +2548 X(consists)s +2897 X(of)s +3012 X(one)s +3187 X(or)s +3301 X(more)s +3537 X(messages.)s +3995 X(To)s +4137 X(facilitate)s +4517 X(the)s +4670 X(separation)s +5111 X(of)s +514 X +2760 Y +874 X(messages,)s +1312 X(each)s +1529 X(message)s +1902 X(begins)s +2198 X(and)s +2377 X(ends)s +2595 X(with)s +2808 X(a)s +2887 X(line)s +3072 X(consisting)s +3513 X(of)s +3631 X(nothing)s +3972 X(but)s +4135 X(four)s +4336 X(CTRL\261A)s +4749 X(\(octal)s +5011 X(001\))s +514 X +2880 Y +874 X(characters.)s +514 X +3120 Y +874 X(Messages)s +1305 X(are)s +1469 X(expected)s +1866 X(to)s +1987 X(consist)s +2307 X(of)s +2432 X(lines)s +2663 X(of)s +2788 X(text.)s +3030 X(Graphics)s +3432 X(and)s +3618 X(binary)s +3915 X(data)s +4123 X(are)s +4286 X(not)s +4456 X(handled.)s +4864 X(No)s +5028 X(data)s +514 X +3240 Y +874 X(compression)s +1404 X(is)s +1496 X(accepted.)s +1919 X(All)s +2072 X(text)s +2247 X(is)s +2339 X(clear)s +2557 X(ASCII)s +2843 X(7-bit)s +3057 X(data.)s +514 X +3480 Y +874 X(The)s +1060 X(general)s +1384 X(``memo'')s +1797 X(framework)s +2265 X(of)s +2379 X(RFC\261822)s +2800 X(is)s +2898 X(used.)s +3162 X(A)s +3265 X(message)s +3634 X(consists)s +3982 X(of)s +4096 X(a)s +4171 X(block)s +4424 X(of)s +4538 X(information)s +5041 X(in)s +5150 X(a)s +514 X +3600 Y +874 X(rigid)s +1096 X(format,)s +1420 X(followed)s +1808 X(by)s +1941 X(general)s +2267 X(text)s +2450 X(with)s +2661 X(no)s +2793 X(speci\256ed)s +3180 X(format.)s +3528 X(The)s +3715 X(rigidly)s +4014 X(formatted)s +4434 X(\256rst)s +4622 X(part)s +4809 X(of)s +4924 X(a)s +5000 X(mes-)s +514 X +3720 Y +874 X(sage)s +1080 X(is)s +1176 X(called)s +1443 X(the)s +1593 X(header,)s +1911 X(and)s +2083 X(the)s +2233 X(free-format)s +2714 X(portion)s +3031 X(is)s +3126 X(called)s +3392 X(the)s +3542 X(body.)s +3820 X(The)s +4003 X(header)s +4296 X(must)s +4519 X(always)s +4824 X(exist,)s +5066 X(but)s +514 X +3840 Y +874 X(the)s +1027 X(body)s +1258 X(is)s +1356 X(optional.)s +1765 X(These)s +2034 X(parts)s +2259 X(are)s +2411 X(separated)s +2818 X(by)s +2949 X(an)s +3074 X(empty)s +3355 X(line,)s +3561 X(i.e.,)s +3739 X(two)s +3919 X(consecutive)s +4420 X(newline)s +4766 X(characters.)s +514 X +3960 Y +874 X(Within)s +1177 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +1382 X(the)s +1529 X(header)s +1819 X(and)s +1988 X(body)s +2213 X(may)s +2410 X(be)s +2529 X(separated)s +2930 X(by)s +3055 X(a)s +3124 X(line)s +3299 X(consisting)s +3730 X(of)s +3838 X(dashes:)s +514 X +4200 Y +1234 X(To:)s +514 X +4320 Y +1234 X(cc:)s +514 X +4440 Y +1234 X(Subject:)s +514 X +4560 Y +1234 X(--------)s +514 X +4800 Y +874 X(The)s +1060 X(header)s +1356 X(is)s +1454 X(composed)s +1890 X(of)s +2004 X(one)s +2179 X(or)s +2293 X(more)s +2529 X(header)s +2825 X(items.)s +3123 X(Each)s +3353 X(header)s +3648 X(item)s +3856 X(can)s +4024 X(be)s +4148 X(viewed)s +4466 X(as)s +4579 X(a)s +4653 X(single)s +4922 X(logical)s +514 X +4920 Y +874 X(line)s +1050 X(of)s +1159 X(ASCII)s +1446 X(characters.)s +1925 X(If)s +2017 X(the)s +2164 X(text)s +2339 X(of)s +2447 X(a)s +2516 X(header)s +2806 X(item)s +3009 X(extends)s +3339 X(across)s +3613 X(several)s +3920 X(real)s +4094 X(lines,)s +4333 X(the)s +4480 X(continuation)s +5005 X(lines)s +514 X +5040 Y +874 X(are)s +1020 X(indicated)s +1411 X(by)s +1536 X(leading)s +1855 X(spaces)s +2140 X(or)s +2248 X(tabs.)s +514 X +5280 Y +874 X(Each)s +1100 X(header)s +1392 X(item)s +1597 X(is)s +1691 X(called)s +1956 X(a)s +2027 X(component)s +2498 X(and)s +2669 X(is)s +2763 X(composed)s +3195 X(of)s +3305 X(a)s +3376 X(keyword)s +3752 X(or)s +3862 X(name,)s +4130 X(along)s +4379 X(with)s +4583 X(associated)s +5019 X(text.)s +514 X +5400 Y +874 X(The)s +1059 X(keyword)s +1438 X(begins)s +1729 X(at)s +1830 X(the)s +1981 X(left)s +2143 X(margin,)s +2480 X(may)s +2681 X(NOT)s +2915 X(contain)s +3238 X(spaces)s +3527 X(or)s +3639 X(tabs,)s +3854 X(may)s +4055 X(not)s +4212 X(exceed)s +4517 X(63)s +4646 X(characters)s +5078 X(\(as)s +514 X +5520 Y +874 X(speci\256ed)s +1259 X(by)s +1389 X(RFC\261822\),)s +1867 X(and)s +2041 X(is)s +2138 X(terminated)s +2595 X(by)s +2725 X(a)s +2799 X(colon)s +3050 X(\(`:'\).)s +3289 X(Certain)s +3612 X(components)s +4124 X(\(as)s +4269 X(identi\256ed)s +4676 X(by)s +4805 X(their)s +5017 X(key-)s +514 X +5640 Y +874 X(words\))s +1176 X(must)s +1396 X(follow)s +1682 X(rigidly)s +1974 X(de\256ned)s +2293 X(formats)s +2623 X(in)s +2726 X(their)s +2934 X(text)s +3109 X(portions.)s +514 X +5880 Y +874 X(The)s +1068 X(text)s +1256 X(for)s +1410 X(most)s +1643 X(formatted)s +2069 X(components)s +2590 X(\(e.g.,)s +2830 X(``Date:'')s +3216 X(and)s +3398 X(``Message\261Id:''\))s +4111 X(is)s +4216 X(produced)s +4625 X(automatically.)s +514 X +6000 Y +874 X(The)s +1069 X(only)s +1287 X(ones)s +1510 X(entered)s +1843 X(by)s +1983 X(the)s +2145 X(user)s +2351 X(are)s +2512 X(address)s +2851 X(\256elds)s +3107 X(such)s +3329 X(as)s +3451 X(``To:'',)s +3786 X(``cc:'',)s +4098 X(etc.)s +4303 X(Internet)s +4652 X(addresses)s +5073 X(are)s +514 X +6120 Y +874 X(assigned)s +1248 X(mailbox)s +1606 X(names)s +1891 X(and)s +2065 X(host)s +2261 X(computer)s +2667 X(speci\256cations.)s +3290 X(The)s +3474 X(rough)s +3736 X(format)s +4031 X(is)s +4127 X(``local@domain'',)s +4899 X(such)s +5111 X(as)s +514 X +6240 Y +874 X(``MH@UCI'',)s +1495 X(or)s +1617 X(``MH@UCI\261ICSA.ARPA''.)s +2833 X(Multiple)s +3217 X(addresses)s +3638 X(are)s +3798 X(separated)s +4213 X(by)s +4351 X(commas.)s +4772 X(A)s +4882 X(missing)s +514 X +6360 Y +874 X(host/domain)s +1394 X(is)s +1486 X(assumed)s +1855 X(to)s +1958 X(be)s +2077 X(the)s +2224 X(local)s +2443 X(host/domain.)s +514 X +6600 Y +874 X(As)s +1011 X(mentioned)s +1459 X(above,)s +1748 X(a)s +1818 X(blank)s +2066 X(line)s +2242 X(\(or)s +2384 X(a)s +2454 X(line)s +2630 X(of)s +2739 X(dashes\))s +3064 X(signals)s +3368 X(that)s +3544 X(all)s +3670 X(following)s +4085 X(text)s +4261 X(up)s +4387 X(to)s +4491 X(the)s +4639 X(end)s +4809 X(of)s +4918 X(the)s +5066 X(\256le)s +514 X +6720 Y +874 X(is)s +966 X(the)s +1113 X(body.)s +1388 X(No)s +1535 X(formatting)s +1982 X(is)s +2074 X(expected)s +2453 X(or)s +2561 X(enforced)s +2934 X(within)s +3215 X(the)s +3362 X(body.)s +514 X +6960 Y +874 X(Following)s +1311 X(is)s +1403 X(a)s +1472 X(list)s +1620 X(of)s +1728 X(header)s +2018 X(components)s +2526 X(that)s +2701 X(are)s +2847 X(considered)s +3304 X(meaningful)s +3784 X(to)s +3887 X(various)s +4206 X(MH)s +4392 X(programs.)s +514 X +7080 Y +874 X(Date:)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 115 116 + +514 X +600 Y(MH-MAIL\(5\))s +2746 X(-115-)s +4601 X(MH-MAIL\(5\))s +514 X +960 Y +1234 X +0.0 10 10 f.R ft(Added)s +1525 X(by)s +1650 X +0.0 10 10 f.I ft(post)s +1867 X +0.0 10 10 f.R ft(\(8\),)s +2033 X(contains)s +2391 X(date)s +2582 X(and)s +2751 X(time)s +2954 X(of)s +3062 X(the)s +3209 X(message's)s +3644 X(entry)s +3874 X(into)s +4055 X(the)s +4202 X(transport)s +4582 X(system.)s +514 X +1200 Y +874 X(From:)s +514 X +1320 Y +1234 X(Added)s +1543 X(by)s +1686 X +0.0 10 10 f.I ft(post)s +1903 X +0.0 10 10 f.R ft(\(8\),)s +2087 X(contains)s +2463 X(the)s +2628 X(address)s +2970 X(of)s +3095 X(the)s +3259 X(author)s +3556 X(or)s +3681 X(authors)s +4017 X(\(may)s +4264 X(be)s +4400 X(more)s +4647 X(than)s +4861 X(one)s +5047 X(if)s +5150 X(a)s +514 X +1440 Y +1234 X(``Sender:'')s +1711 X(\256eld)s +1929 X(is)s +2036 X(present\).)s +2447 X(Replies)s +2787 X(are)s +2947 X(typically)s +3336 X(directed)s +3696 X(to)s +3813 X(addresses)s +4234 X(in)s +4351 X(the)s +4512 X(``Reply\261To:'')s +5111 X(or)s +514 X +1560 Y +1234 X(``From:'')s +1636 X(\256eld)s +1839 X(\(the)s +2019 X(former)s +2315 X(has)s +2473 X(precedence)s +2945 X(if)s +3031 X(present\).)s +514 X +1800 Y +874 X(Sender:)s +514 X +1920 Y +1234 X(Added)s +1533 X(by)s +1666 X +0.0 10 10 f.I ft(post)s +1883 X +0.0 10 10 f.R ft(\(8\))s +2032 X(in)s +2143 X(the)s +2298 X(event)s +2547 X(that)s +2730 X(the)s +2885 X(message)s +3256 X(already)s +3582 X(has)s +3748 X(a)s +3825 X(``From:'')s +4235 X(line.)s +4468 X(This)s +4679 X(line)s +4861 X(contains)s +514 X +2040 Y +1234 X(the)s +1381 X(address)s +1705 X(of)s +1813 X(the)s +1960 X(actual)s +2223 X(sender.)s +2558 X(Replies)s +2883 X(are)s +3029 X(never)s +3275 X(sent)s +3461 X(to)s +3564 X(addresses)s +3971 X(in)s +4074 X(the)s +4221 X(``Sender:'')s +4683 X(\256eld.)s +514 X +2280 Y +874 X(To:)s +514 X +2400 Y +1234 X(Contains)s +1615 X(addresses)s +2022 X(of)s +2130 X(primary)s +2471 X(recipients.)s +514 X +2640 Y +874 X(cc:)s +514 X +2760 Y +1234 X(Contains)s +1615 X(addresses)s +2022 X(of)s +2130 X(secondary)s +2559 X(recipients.)s +514 X +3000 Y +874 X(Bcc:)s +514 X +3120 Y +1234 X(Still)s +1436 X(more)s +1675 X(recipients.)s +2147 X(However,)s +2571 X(the)s +2727 X(``Bcc:'')s +3076 X(line)s +3260 X(is)s +3361 X(not)s +3523 X(copied)s +3823 X(onto)s +4034 X(the)s +4189 X(message)s +4560 X(as)s +4676 X(delivered,)s +5105 X(so)s +514 X +3240 Y +1234 X(these)s +1464 X(recipients)s +1877 X(are)s +2023 X(not)s +2176 X(listed.)s +2468 X +0.0 10 10 f.I ft(MH)s +2648 X +0.0 10 10 f.R ft(uses)s +2845 X(an)s +2964 X(encapsulation)s +3538 X(method)s +3863 X(for)s +4004 X(blind)s +4235 X(copies,)s +4540 X(see)s +4692 X +0.0 10 10 f.I ft(send)s +4925 X +0.0 10 10 f.R ft(\(1\).)s +514 X +3480 Y +874 X(Fcc:)s +514 X +3600 Y +1234 X(Causes)s +1551 X +0.0 10 10 f.I ft(post)s +1768 X +0.0 10 10 f.R ft(\(8\))s +1918 X(to)s +2030 X(copy)s +2258 X(the)s +2414 X(message)s +2786 X(into)s +2976 X(the)s +3132 X(speci\256ed)s +3521 X(folder)s +3793 X(for)s +3943 X(the)s +4099 X(sender,)s +4418 X(if)s +4513 X(the)s +4668 X(message)s +5039 X(was)s +514 X +3720 Y +1234 X(successfully)s +1747 X(given)s +1994 X(to)s +2097 X(the)s +2244 X(transport)s +2624 X(system.)s +514 X +3960 Y +874 X(Message\261ID:)s +514 X +4080 Y +1234 X(A)s +1331 X(unique)s +1628 X(message)s +1991 X(identi\256er)s +2377 X(added)s +2640 X(by)s +2765 X +0.0 10 10 f.I ft(post)s +2982 X +0.0 10 10 f.R ft(\(8\))s +3123 X(if)s +3209 X(the)s +3356 X(`\261msgid')s +3742 X(\257ag)s +3917 X(is)s +4009 X(set.)s +514 X +4320 Y +874 X(Subject:)s +514 X +4440 Y +1234 X(Sender's)s +1608 X(commentary.)s +2182 X(It)s +2268 X(is)s +2360 X(displayed)s +2768 X(by)s +2893 X +0.0 10 10 f.I ft(scan)s +3126 X +0.0 10 10 f.R ft(\(1\).)s +514 X +4680 Y +874 X(In\261Reply\261To:)s +514 X +4800 Y +1234 X(A)s +1331 X(commentary)s +1855 X(line)s +2030 X(added)s +2293 X(by)s +2418 X +0.0 10 10 f.I ft(repl)s +2629 X +0.0 10 10 f.R ft(\(1\))s +2770 X(when)s +3011 X(replying)s +3369 X(to)s +3472 X(a)s +3541 X(message.)s +514 X +5040 Y +874 X(Resent\261Date:)s +514 X +5160 Y +1234 X(Added)s +1525 X(when)s +1766 X(redistributing)s +2330 X(a)s +2399 X(message)s +2762 X(by)s +2887 X +0.0 10 10 f.I ft(post)s +3104 X +0.0 10 10 f.R ft(\(8\).)s +514 X +5400 Y +874 X(Resent\261From:)s +514 X +5520 Y +1234 X(Added)s +1525 X(when)s +1766 X(redistributing)s +2330 X(a)s +2399 X(message)s +2762 X(by)s +2887 X +0.0 10 10 f.I ft(post)s +3104 X +0.0 10 10 f.R ft(\(8\).)s +514 X +5760 Y +874 X(Resent\261To:)s +514 X +5880 Y +1234 X(New)s +1447 X(recipients)s +1860 X(for)s +2001 X(a)s +2070 X(message)s +2433 X(resent)s +2696 X(by)s +2821 X +0.0 10 10 f.I ft(dist)s +3016 X +0.0 10 10 f.R ft(\(1\).)s +514 X +6120 Y +874 X(Resent\261cc:)s +514 X +6240 Y +1234 X(Still)s +1427 X(more)s +1657 X(recipients.)s +2120 X(See)s +2289 X(``cc:'')s +2562 X(and)s +2731 X(``Resent\261To:''.)s +514 X +6480 Y +874 X(Resent\261Bcc:)s +514 X +6600 Y +1234 X(Even)s +1464 X(more)s +1694 X(recipients.)s +2157 X(See)s +2326 X(``Bcc:'')s +2666 X(and)s +2835 X(``Resent\261To:''.)s +514 X +6840 Y +874 X(Resent\261Fcc:)s +514 X +6960 Y +1234 X(Copy)s +1476 X(resent)s +1739 X(message)s +2102 X(into)s +2283 X(a)s +2352 X(folder.)s +2665 X(See)s +2834 X(``Fcc:'')s +3163 X(and)s +3332 X(``Resent\261To:''.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 116 117 + +514 X +600 Y(MH-MAIL\(5\))s +2746 X(-116-)s +4601 X(MH-MAIL\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(Resent\261Message\261Id:)s +514 X +1080 Y +1234 X(A)s +1350 X(unique)s +1666 X(identi\256er)s +2071 X(glued)s +2336 X(on)s +2479 X(by)s +2622 X +0.0 10 10 f.I ft(post)s +2839 X +0.0 10 10 f.R ft(\(8\))s +2998 X(if)s +3102 X(the)s +3267 X(`\261msgid')s +3671 X(\257ag)s +3864 X(is)s +3974 X(set.)s +4178 X(See)s +4365 X(``Message\261Id:'')s +5050 X(and)s +514 X +1200 Y +1234 X(``Resent\261To:''.)s +514 X +1440 Y +874 X(Resent:)s +514 X +1560 Y +1234 X(Annotation)s +1709 X(for)s +1850 X +0.0 10 10 f.I ft(dist)s +2045 X +0.0 10 10 f.R ft(\(1\))s +2186 X(under)s +2438 X(the)s +2585 X(`\261annotate')s +3064 X(option.)s +514 X +1800 Y +874 X(Forwarded:)s +514 X +1920 Y +1234 X(Annotation)s +1709 X(for)s +1850 X +0.0 10 10 f.I ft(forw)s +2084 X +0.0 10 10 f.R ft(\(1\))s +2225 X(under)s +2477 X(the)s +2624 X(`\261annotate')s +3103 X(option.)s +514 X +2160 Y +874 X(Replied:)s +514 X +2280 Y +1234 X(Annotation)s +1709 X(for)s +1850 X +0.0 10 10 f.I ft(repl)s +2061 X +0.0 10 10 f.R ft(\(1\))s +2202 X(under)s +2454 X(the)s +2601 X(`\261annotate')s +3080 X(option.)s +514 X +2562 Y +0.0 8 8 f.B ft(Files)s +514 X +2682 Y +874 X +0.0 10 10 f.R ft(/usr/spool/mail/$USER)s +2463 X(Location)s +2843 X(of)s +2951 X(mail)s +3154 X(drop)s +514 X +2886 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3006 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3210 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3330 Y +874 X +0.0 10 10 f.I ft(Standard)s +1266 X(for)s +1408 X(the)s +1555 X(Format)s +1880 X(of)s +1983 X(ARPA)s +2252 X(Internet)s +2593 X(Text)s +2790 X(Messages)s +3203 X +0.0 10 10 f.R ft(\(aka)s +3399 X(RFC\261822\))s +514 X +3534 Y +0.0 8 8 f.B ft(Defaults)s +514 X +3654 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +3858 Y +0.0 8 8 f.B ft(Context)s +514 X +3978 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 117 118 + +514 X +600 Y(MH-PROFILE\(5\))s +2746 X(-117-)s +4428 X(MH-PROFILE\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mh-pro\256le)s +1321 X(\261)s +1396 X(user)s +1587 X(pro\256le)s +1873 X(customization)s +2459 X(for)s +2600 X(MH)s +2786 X(message)s +3149 X(handler)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.I ft(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.R ft(Each)s +1104 X(user)s +1301 X(of)s +1415 X +0.0 10 10 f.I ft(MH)s +1601 X +0.0 10 10 f.R ft(is)s +1699 X(expected)s +2084 X(to)s +2193 X(have)s +2412 X(a)s +2487 X(\256le)s +2646 X(named)s +2943 X +0.0 10 10 f.I ft(.mh)s +Cru(pro\256le)s +3432 X +0.0 10 10 f.R ft(in)s +3541 X(his)s +3689 X(or)s +3802 X(her)s +3959 X(home)s +4211 X(directory.)s +4651 X(This)s +4859 X(\256le)s +5017 X(con-)s +514 X +2040 Y +874 X(tains)s +1092 X(a)s +1165 X(set)s +1305 X(of)s +1417 X(user)s +1612 X(parameters)s +2078 X(used)s +2289 X(by)s +2417 X(some)s +2656 X(or)s +2767 X(all)s +2895 X(of)s +3006 X(the)s +3156 X +0.0 10 10 f.I ft(MH)s +3339 X +0.0 10 10 f.R ft(family)s +3628 X(of)s +3739 X(programs.)s +4194 X(Each)s +4421 X(line)s +4599 X(of)s +4710 X(the)s +4860 X(\256le)s +5016 X(is)s +5111 X(of)s +514 X +2160 Y +874 X(the)s +1021 X(format)s +514 X +2400 Y +974 X +0.0 10 10 f.I ft(pro\256le\261component)s +0.0 10 10 f.R ft(:)s +1776 X +0.0 10 10 f.I ft(value)s +514 X +2640 Y +874 X +0.0 10 10 f.R ft(The)s +1081 X(possible)s +1461 X(pro\256le)s +1774 X(components)s +2309 X(are)s +2482 X(exempli\256ed)s +3006 X(below.)s +3352 X(Only)s +3603 X(`Path:')s +3926 X(is)s +4044 X(mandatory.)s +4572 X(The)s +4778 X(others)s +5073 X(are)s +514 X +2760 Y +874 X(optional;)s +1268 X(some)s +1517 X(have)s +1743 X(default)s +2058 X(values)s +2351 X(if)s +2450 X(they)s +2660 X(are)s +2818 X(not)s +2983 X(present.)s +3358 X(In)s +3478 X(the)s +3637 X(notation)s +4002 X(used)s +4222 X(below,)s +4528 X(\(pro\256le,)s +4884 X(default\))s +514 X +2880 Y +874 X(indicates)s +1264 X(whether)s +1620 X(the)s +1777 X(information)s +2284 X(is)s +2386 X(kept)s +2593 X(in)s +2706 X(the)s +2862 X(user's)s +3134 X +0.0 10 10 f.I ft(MH)s +3323 X +0.0 10 10 f.R ft(pro\256le)s +3618 X(or)s +3735 X +0.0 10 10 f.I ft(MH)s +3924 X +0.0 10 10 f.R ft(context,)s +4277 X(and)s +4455 X(indicates)s +4844 X(what)s +5072 X(the)s +514 X +3000 Y +874 X(default)s +1176 X(value)s +1417 X(is.)s +514 X +3240 Y +874 X(Path:)s +1105 X(Mail)s +514 X +3360 Y +1594 X(Locates)s +1929 X +0.0 10 10 f.I ft(MH)s +2109 X +0.0 10 10 f.R ft(transactions)s +2611 X(in)s +2714 X(directory)s +3099 X(``Mail''.)s +3495 X(\(pro\256le,)s +3839 X(no)s +3964 X(default\))s +514 X +3600 Y +874 X(context:)s +1221 X(context)s +514 X +3720 Y +1594 X(Declares)s +1973 X(the)s +2126 X(location)s +2479 X(of)s +2593 X(the)s +2745 X +0.0 10 10 f.I ft(MH)s +2930 X +0.0 10 10 f.R ft(context)s +3254 X(\256le,)s +3437 X(see)s +3594 X(the)s +3746 X +0.0 10 10 f.B ft(HISTORY)s +4238 X +0.0 10 10 f.R ft(section)s +4551 X(below.)s +4875 X(\(pro\256le,)s +514 X +3840 Y +1594 X(default:)s +1924 X(/context\))s +514 X +4080 Y +874 X(Current\261Folder: inbox)s +514 X +4200 Y +1594 X(Keeps)s +1868 X(track)s +2092 X(of)s +2200 X(the)s +2347 X(current)s +2654 X(open)s +2873 X(folder.)s +3186 X(\(context,)s +3563 X(default:)s +3893 X(folder)s +4156 X(speci\256ed)s +4536 X(by)s +4661 X(``Inbox''\))s +514 X +4440 Y +874 X(Inbox:)s +1234 X(inbox)s +514 X +4560 Y +1594 X(De\256nes)s +1924 X(the)s +2071 X(name)s +2312 X(of)s +2420 X(your)s +2628 X(inbox.)s +2931 X(\(pro\256le,)s +3275 X(default:)s +3605 X(inbox\))s +514 X +4800 Y +874 X(Previous\261Sequence: pseq)s +514 X +4920 Y +1594 X(Names)s +1902 X(the)s +2055 X(sequences)s +2490 X(which)s +2765 X(should)s +3063 X(be)s +3188 X(de\256ned)s +3513 X(as)s +3627 X(the)s +3779 X(`msgs')s +4081 X(or)s +4194 X(`msg')s +4457 X(argument)s +4864 X(given)s +5116 X(to)s +514 X +5040 Y +1594 X(the)s +1757 X(program.)s +2186 X(If)s +2293 X(not)s +2461 X(present,)s +2814 X(or)s +2937 X(empty,)s +3252 X(no)s +3392 X(sequences)s +3836 X(are)s +3997 X(de\256ned.)s +4381 X(Otherwise,)s +4856 X(for)s +5012 X(each)s +514 X +5160 Y +1594 X(name)s +1840 X(given,)s +2117 X(the)s +2269 X(sequence)s +2664 X(is)s +2761 X(\256rst)s +2947 X(zero'd)s +3231 X(and)s +3404 X(then)s +3605 X(each)s +3816 X(message)s +4183 X(is)s +4279 X(added)s +4546 X(to)s +4653 X(the)s +4804 X(sequence.)s +514 X +5280 Y +1594 X(\(pro\256le,)s +1938 X(no)s +2063 X(default\))s +514 X +5520 Y +874 X(Sequence\261Negation: not)s +514 X +5640 Y +1594 X(De\256nes)s +1947 X(the)s +2117 X(string)s +2392 X(which,)s +2708 X(when)s +2971 X(pre\256xed)s +3345 X(to)s +3470 X(a)s +3561 X(sequence)s +3973 X(name,)s +4261 X(negates)s +4607 X(that)s +4804 X(sequence.)s +514 X +5760 Y +1594 X(Hence,)s +1920 X(``notseen'')s +2404 X(means)s +2706 X(all)s +2852 X(those)s +3109 X(messages)s +3532 X(that)s +3728 X(are)s +3895 X(not)s +4069 X(a)s +4159 X(member)s +4532 X(of)s +4661 X(the)s +4829 X(sequence)s +514 X +5880 Y +1594 X(``seen''.)s +1978 X(\(pro\256le,)s +2322 X(no)s +2447 X(default\))s +514 X +6120 Y +874 X(Unseen\261Sequence: unseen)s +514 X +6240 Y +1594 X(Names)s +1897 X(the)s +2045 X(sequences)s +2474 X(which)s +2743 X(should)s +3035 X(be)s +3154 X(de\256ned)s +3473 X(as)s +3581 X(those)s +3817 X(messages)s +4219 X(recently)s +4565 X(incorporated)s +5094 X(by)s +514 X +6360 Y +1594 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft(.)s +1799 X +0.0 10 10 f.I ft(Show)s +2049 X +0.0 10 10 f.R ft(knows)s +2343 X(to)s +2454 X(remove)s +2786 X(messages)s +3196 X(from)s +3423 X(this)s +3600 X(sequence)s +3997 X(once)s +4217 X(it)s +4305 X(thinks)s +4582 X(they)s +4786 X(have)s +5006 X(been)s +514 X +6480 Y +1594 X(seen.)s +1861 X(If)s +1967 X(not)s +2135 X(present,)s +2488 X(or)s +2611 X(empty,)s +2926 X(no)s +3066 X(sequences)s +3510 X(are)s +3671 X(de\256ned.)s +4055 X(Otherwise,)s +4529 X(each)s +4750 X(message)s +5127 X(is)s +514 X +6600 Y +1594 X(added)s +1857 X(to)s +1960 X(each)s +2167 X(sequence)s +2557 X(name)s +2798 X(given.)s +3095 X(\(pro\256le,)s +3439 X(no)s +3564 X(default\))s +514 X +6840 Y +874 X(mh\261sequences: .mh)s +Cru(sequences)s +514 X +6960 Y +1594 X(The)s +1777 X(name)s +2021 X(of)s +2132 X(the)s +2281 X(\256le)s +2436 X(in)s +2541 X(each)s +2750 X(folder)s +3015 X(which)s +3286 X(de\256nes)s +3596 X(public)s +3873 X(sequences.)s +4354 X(To)s +4492 X(disable)s +4802 X(the)s +4951 X(use)s +5111 X(of)s +514 X +7080 Y +1594 X(public)s +1913 X(sequences,)s +2411 X(leave)s +2690 X(the)s +2881 X(value)s +3166 X(portion)s +3524 X(of)s +3676 X(this)s +3889 X(entry)s +4162 X(blank.)s +4502 X(\(pro\256le,)s +4889 X(default:)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 118 119 + +514 X +600 Y(MH-PROFILE\(5\))s +2746 X(-118-)s +4428 X(MH-PROFILE\(5\))s +514 X +960 Y +1594 X +0.0 10 10 f.R ft(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(sequences\))s +514 X +1200 Y +874 X(atr\261)s +0.0 10 10 f.I ft(seq)s +0.0 10 10 f.R ft(\261)s +0.0 10 10 f.I ft(folder)s +0.0 10 10 f.R ft(: 172)s +1704 X(178\261181)s +2104 X(212)s +514 X +1320 Y +1594 X(Keeps)s +1893 X(track)s +2142 X(of)s +2274 X(the)s +2445 X(private)s +2771 X(sequence)s +3185 X(called)s +3472 X +0.0 10 10 f.I ft(seq)s +3654 X +0.0 10 10 f.R ft(in)s +3781 X(the)s +3952 X(speci\256ed)s +4356 X(folder.)s +4693 X(\(context,)s +5094 X(no)s +514 X +1440 Y +1594 X(default\))s +514 X +1680 Y +874 X(Editor: /usr/ucb/ex)s +514 X +1800 Y +1594 X(De\256nes)s +1928 X(editor)s +2190 X(to)s +2297 X(be)s +2420 X(used)s +2632 X(by)s +2761 X +0.0 10 10 f.I ft(comp)s +3027 X +0.0 10 10 f.R ft(\(1\),)s +3197 X +0.0 10 10 f.I ft(dist)s +3392 X +0.0 10 10 f.R ft(\(1\),)s +3562 X +0.0 10 10 f.I ft(forw)s +3796 X +0.0 10 10 f.R ft(\(1\),)s +3965 X(and)s +4137 X +0.0 10 10 f.I ft(repl)s +4348 X +0.0 10 10 f.R ft(\(1\).)s +4542 X(\(pro\256le,)s +4889 X(default:)s +514 X +1920 Y +1594 X(prompter\))s +514 X +2160 Y +874 X(Msg\261Protect: 644)s +514 X +2280 Y +1594 X(De\256nes)s +1932 X(octal)s +2159 X(protection)s +2597 X(bits)s +2775 X(for)s +2924 X(message)s +3295 X(\256les.)s +3545 X(See)s +3721 X +0.0 10 10 f.I ft(chmod)s +4037 X +0.0 10 10 f.R ft(\(1\))s +4185 X(for)s +4333 X(an)s +4459 X(explanation)s +4957 X(of)s +5072 X(the)s +514 X +2400 Y +1594 X(octal)s +1813 X(number.)s +2193 X(\(pro\256le,)s +2537 X(default:)s +2867 X(0644\))s +514 X +2640 Y +874 X(Folder\261Protect: 711)s +514 X +2760 Y +1594 X(De\256nes)s +1924 X(protection)s +2354 X(bits)s +2524 X(for)s +2665 X(folder)s +2928 X(directories.)s +3424 X(\(pro\256le,)s +3768 X(default:)s +4098 X(0711\))s +514 X +3000 Y +874 X +0.0 10 10 f.I ft(program)s +0.0 10 10 f.R ft(: default)s +1579 X(switches)s +514 X +3120 Y +1594 X(Sets)s +1804 X(default)s +2124 X(switches)s +2511 X(to)s +2632 X(be)s +2769 X(used)s +2995 X(whenever)s +3425 X(the)s +3590 X(mh)s +3760 X(program)s +4140 X +0.0 10 10 f.I ft(program)s +4532 X +0.0 10 10 f.R ft(is)s +4641 X(invoked.)s +5055 X(For)s +514 X +3240 Y +1594 X(example,)s +1984 X(one)s +2155 X(could)s +2404 X(override)s +2763 X(the)s +2912 X +0.0 10 10 f.I ft(Editor)s +0.0 10 10 f.R ft(:)s +3223 X(pro\256le)s +3511 X(component)s +3982 X(when)s +4225 X(replying)s +4585 X(to)s +4690 X(messages)s +5094 X(by)s +514 X +3360 Y +1594 X(adding)s +1891 X(a)s +1960 X(component)s +2429 X(such)s +2637 X(as:)s +514 X +3480 Y +1954 X(repl:)s +2162 X(\261editor)s +2470 X(/bin/ed)s +514 X +3600 Y +1594 X(\(pro\256le,)s +1938 X(no)s +2063 X(defaults\))s +514 X +3840 Y +874 X +0.0 10 10 f.I ft(lasteditor)s +0.0 10 10 f.R ft(\261next: nexteditor)s +514 X +3960 Y +1594 X(Names)s +1899 X(``nexteditor'')s +2464 X(to)s +2569 X(be)s +2690 X(the)s +2839 X(default)s +3143 X(editor)s +3403 X(after)s +3612 X(using)s +3856 X(``lasteditor''.)s +4437 X(This)s +4642 X(takes)s +4874 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ect)s +5122 X(at)s +514 X +4080 Y +1594 X(``What)s +1909 X(now?'')s +2224 X(level)s +2451 X(in)s +2562 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2836 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +3038 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +3279 X(and)s +3455 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(.)s +3698 X(After)s +3940 X(editing)s +4250 X(the)s +4404 X(draft)s +4624 X(with)s +4834 X(``lastedi-)s +514 X +4200 Y +1594 X(tor'',)s +1832 X(the)s +1990 X(default)s +2303 X(editor)s +2572 X(is)s +2675 X(set)s +2822 X(to)s +2936 X(be)s +3065 X(``nexteditor''.)s +3687 X(If)s +3788 X(the)s +3945 X(user)s +4146 X(types)s +4392 X(``edit'')s +4709 X(without)s +5050 X(any)s +514 X +4320 Y +1594 X(arguments)s +2035 X(to)s +2138 X(``What)s +2445 X(now?'',)s +2777 X(then)s +2974 X(``nexteditor'')s +3536 X(is)s +3628 X(used.)s +3886 X(\(pro\256le,)s +4230 X(no)s +4355 X(default\))s +514 X +4560 Y +874 X(bboards:)s +1243 X(system)s +514 X +4680 Y +1594 X(Tells)s +1819 X +0.0 10 10 f.I ft(bbc)s +1988 X +0.0 10 10 f.R ft(which)s +2257 X(BBoards)s +2632 X(you)s +2807 X(are)s +2953 X(interested)s +3366 X(in.)s +3519 X(\(pro\256le,)s +3863 X(default:)s +4193 X(system\))s +514 X +4920 Y +874 X(Folder\261Stack:)s +1460 X +0.0 10 10 f.I ft(folders)s +514 X +5040 Y +1594 X +0.0 10 10 f.R ft(The)s +1774 X(contents)s +2132 X(of)s +2240 X(the)s +2387 X(folder-stack)s +2888 X(for)s +3029 X(the)s +3176 X +0.0 10 10 f.I ft(folder)s +3440 X +0.0 10 10 f.R ft(command.)s +3909 X(\(context,)s +4286 X(no)s +4411 X(default\))s +514 X +5280 Y +874 X(mhe:)s +514 X +5400 Y +1594 X(If)s +1694 X(present,)s +2041 X(tells)s +2242 X +0.0 10 10 f.I ft(inc)s +2398 X +0.0 10 10 f.R ft(to)s +2510 X(compose)s +2899 X(an)s +3027 X +0.0 10 10 f.I ft(MHE)s +3277 X +0.0 10 10 f.R ft(audit\256le)s +3639 X(in)s +3751 X(addition)s +4113 X(to)s +4225 X(its)s +4354 X(other)s +4593 X(tasks.)s +4877 X +0.0 10 10 f.I ft(MHE)s +5127 X +0.0 10 10 f.R ft(is)s +514 X +5520 Y +1594 X(Brian)s +1845 X(Reid's)s +2135 X +0.0 10 10 f.I ft(Emacs)s +2430 X +0.0 10 10 f.R ft(front-end)s +2830 X(for)s +2975 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +3209 X(An)s +3360 X(early)s +3588 X(version)s +3911 X(is)s +4007 X(supplied)s +4374 X(with)s +4580 X(the)s +4730 X +0.0 10 10 f.I ft(mh.6)s +4955 X +0.0 10 10 f.R ft(distri-)s +514 X +5640 Y +1594 X(bution.)s +1925 X(\(pro\256le,)s +2269 X(no)s +2394 X(default\))s +514 X +5880 Y +874 X(Alternate\261Mailboxes:)s +1770 X(mh@uci\261750a,)s +2406 X(bug-mh*)s +514 X +6000 Y +1594 X(Tells)s +1836 X +0.0 10 10 f.I ft(repl)s +2039 X +0.0 10 10 f.R ft(and)s +2225 X +0.0 10 10 f.I ft(scan)s +2450 X +0.0 10 10 f.R ft(which)s +2736 X(addresses)s +3160 X(are)s +3323 X(really)s +3591 X(yours.)s +3904 X(In)s +4028 X(this)s +4214 X(way,)s +4446 X +0.0 10 10 f.I ft(repl)s +4648 X +0.0 10 10 f.R ft(knows)s +4950 X(which)s +514 X +6120 Y +1594 X(addresses)s +2020 X(should)s +2330 X(be)s +2467 X(included)s +2854 X(in)s +2975 X(the)s +3140 X(reply,)s +3413 X(and)s +3600 X +0.0 10 10 f.I ft(scan)s +3826 X +0.0 10 10 f.R ft(knows)s +4130 X(if)s +4234 X(the)s +4399 X(message)s +4780 X(really)s +5050 X(ori-)s +514 X +6240 Y +1594 X(ginated)s +1925 X(from)s +2155 X(you.)s +2391 X(Addresses)s +2837 X(must)s +3068 X(be)s +3198 X(separated)s +3610 X(by)s +3746 X(a)s +3826 X(comma,)s +4181 X(and)s +4361 X(the)s +4519 X(hostnames)s +4977 X(listed)s +514 X +6360 Y +1594 X(should)s +1898 X(be)s +2029 X(the)s +2188 X(``o)s +Cff(icial'')s +2640 X(hostnames)s +3098 X(for)s +3250 X(the)s +3408 X(mailboxes)s +3855 X(you)s +4041 X(indicate,)s +4418 X(as)s +4537 X(local)s +4767 X(nicknames)s +514 X +6480 Y +1594 X(for)s +1739 X(hosts)s +1974 X(are)s +2124 X(not)s +2281 X(replaced)s +2647 X(with)s +2854 X(their)s +3066 X(o)s +Cff(icial)s +3378 X(site)s +3546 X(names.)s +3880 X(For)s +4048 X(each)s +4259 X(address,)s +4612 X(if)s +4702 X(a)s +4775 X(host)s +4971 X(is)s +5066 X(not)s +514 X +6600 Y +1594 X(given,)s +1869 X(then)s +2068 X(that)s +2245 X(address)s +2571 X(on)s +2698 X(any)s +2869 X(host)s +3063 X(is)s +3157 X(considered)s +3616 X(to)s +3721 X(be)s +3842 X(you.)s +4069 X(In)s +4179 X(addition,)s +4559 X(an)s +4680 X(asterisk)s +5012 X(\(`*'\))s +514 X +6720 Y +1594 X(may)s +1793 X(appear)s +2085 X(at)s +2184 X(either)s +2438 X(or)s +2548 X(both)s +2753 X(ends)s +2963 X(of)s +3073 X(the)s +3222 X(mailbox)s +3577 X(and)s +3748 X(host)s +3942 X(to)s +4047 X(indicate)s +4389 X(wild-card)s +4797 X(matching.)s +514 X +6840 Y +1594 X(\(pro\256le,)s +1938 X(default:)s +2268 X(your)s +2476 X(user-id\))s +514 X +7080 Y +874 X(Alias\256le:)s +1266 X(aliases)s +1557 X(other-alias)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 119 120 + +514 X +600 Y(MH-PROFILE\(5\))s +2746 X(-119-)s +4428 X(MH-PROFILE\(5\))s +514 X +960 Y +1594 X +0.0 10 10 f.R ft(Indicates)s +1990 X(aliases)s +2292 X(\256les)s +2495 X(for)s +2647 X +0.0 10 10 f.I ft(ali)s +0.0 10 10 f.R ft(,)s +2814 X +0.0 10 10 f.I ft(whom)s +0.0 10 10 f.R ft(,)s +3114 X(and)s +3294 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(.)s +3563 X(This)s +3777 X(may)s +3985 X(be)s +4115 X(used)s +4334 X(instead)s +4653 X(of)s +4771 X(the)s +4928 X(`\261alias)s +514 X +1080 Y +1594 X(\256le')s +1780 X(switch.)s +2116 X(\(pro\256le,)s +2460 X(no)s +2585 X(default\))s +514 X +1320 Y +874 X(Draft\261Folder:)s +1448 X(drafts)s +514 X +1440 Y +1594 X(Indicates)s +1979 X(a)s +2048 X(default)s +2350 X(draft)s +2563 X(folder)s +2826 X(for)s +2967 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +3233 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +3428 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +3662 X(and)s +3831 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(.)s +4067 X(\(pro\256le,)s +4411 X(no)s +4536 X(default\))s +514 X +1680 Y +874 X(digest\261issue\261)s +0.0 10 10 f.I ft(list)s +0.0 10 10 f.R ft(: 1)s +514 X +1800 Y +1594 X(Tells)s +1819 X +0.0 10 10 f.I ft(forw)s +2028 X +0.0 10 10 f.R ft(the)s +2175 X(last)s +2339 X(issue)s +2564 X(of)s +2672 X(the)s +2819 X(last)s +2983 X(volume)s +3308 X(sent)s +3494 X(for)s +3635 X(the)s +3782 X(digest)s +4046 X +0.0 10 10 f.I ft(list)s +0.0 10 10 f.R ft(.)s +4244 X(\(context,)s +4621 X(no)s +4746 X(default\))s +514 X +2040 Y +874 X(digest\261volume\261)s +0.0 10 10 f.I ft(list)s +0.0 10 10 f.R ft(: 1)s +514 X +2160 Y +1594 X(Tells)s +1819 X +0.0 10 10 f.I ft(forw)s +2028 X +0.0 10 10 f.R ft(the)s +2175 X(last)s +2339 X(volume)s +2664 X(sent)s +2850 X(for)s +2991 X(the)s +3138 X(digest)s +3402 X +0.0 10 10 f.I ft(list)s +0.0 10 10 f.R ft(.)s +3600 X(\(context,)s +3977 X(no)s +4102 X(default\))s +514 X +2400 Y +874 X(MailDrop:)s +1321 X(.mail)s +514 X +2520 Y +1594 X(Tells)s +1826 X +0.0 10 10 f.I ft(inc)s +1980 X +0.0 10 10 f.R ft(your)s +2195 X(maildrop,)s +2613 X(if)s +2706 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erent)s +3076 X(from)s +3302 X(the)s +3456 X(default.)s +3815 X(This)s +4025 X(is)s +4124 X(superceded)s +4604 X(by)s +4736 X(the)s +4889 X +0.0 10 10 f.B ft(MAIL-)s +514 X +2640 Y +1594 X(DROP)s +1902 X +0.0 10 10 f.R ft(envariable.)s +2392 X(\(pro\256le,)s +2736 X(default:)s +3066 X(/usr/spool/mail/$USER\))s +514 X +2880 Y +874 X(Signature:)s +1310 X(RAND)s +1618 X(MH)s +1804 X(System)s +2124 X(\(agent:)s +2426 X(Marshall)s +2806 X(Rose\))s +514 X +3000 Y +1594 X(Tells)s +1828 X +0.0 10 10 f.I ft(send)s +2045 X +0.0 10 10 f.R ft(your)s +2262 X(mail)s +2473 X(signature.)s +2922 X(This)s +3133 X(is)s +3233 X(superceded)s +3714 X(by)s +3847 X(the)s +4002 X +0.0 10 10 f.B ft(SIGNATURE)s +4630 X +0.0 10 10 f.R ft(envariable.)s +5128 X(If)s +514 X +3120 Y +1594 X +0.0 10 10 f.B ft(SIGNATURE)s +2231 X +0.0 10 10 f.R ft(is)s +2339 X(not)s +2508 X(set)s +2660 X(and)s +2845 X(this)s +3031 X(pro\256le)s +3333 X(entry)s +3579 X(is)s +3687 X(not)s +3856 X(present,)s +4210 X(the)s +4373 X(``gcos'')s +4729 X(\256eld)s +4948 X(of)s +5072 X(the)s +514 X +3240 Y +1594 X +0.0 10 10 f.I ft(/etc/passwd)s +2088 X +0.0 10 10 f.R ft(\256le)s +2243 X(will)s +2426 X(be)s +2547 X(used;)s +2785 X(otherwise,)s +3225 X(on)s +3352 X(hosts)s +3585 X(where)s +3855 X +0.0 10 10 f.I ft(MH)s +4036 X +0.0 10 10 f.R ft(was)s +4217 X(con\256gured)s +4670 X(with)s +4874 X(the)s +5022 X(UCI)s +514 X +3360 Y +1594 X(option,)s +1921 X(the)s +2089 X(\256le)s +2263 X($HOME/.signature)s +3072 X(is)s +3185 X(consulted.)s +3664 X(Your)s +3915 X(signature)s +4326 X(will)s +4527 X(be)s +4666 X(added)s +4949 X(to)s +5072 X(the)s +514 X +3480 Y +1594 X(address)s +1922 X +0.0 10 10 f.I ft(send)s +2134 X +0.0 10 10 f.R ft(puts)s +2330 X(in)s +2437 X(the)s +2588 X(``From:'')s +2993 X(header;)s +3314 X(do)s +3442 X(not)s +3598 X(include)s +3920 X(an)s +4042 X(address)s +4369 X(in)s +4475 X(the)s +4625 X(signature)s +5019 X(text.)s +514 X +3600 Y +1594 X(\(pro\256le,)s +1938 X(no)s +2063 X(default\))s +514 X +3840 Y +874 X(The)s +1066 X(following)s +1492 X(pro\256le)s +1790 X(elements)s +2182 X(are)s +2340 X(used)s +2560 X(whenever)s +2984 X(an)s +3115 X +0.0 10 10 f.I ft(MH)s +3307 X +0.0 10 10 f.R ft(program)s +3682 X(invokes)s +4030 X(some)s +4277 X(other)s +4518 X(program)s +4892 X(such)s +5111 X(as)s +514 X +3960 Y +874 X +0.0 10 10 f.I ft(more)s +1129 X +0.0 10 10 f.R ft(\(1\).)s +1326 X(The)s +1512 X +0.0 10 10 f.I ft(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2001 X +0.0 10 10 f.R ft(can)s +2170 X(be)s +2295 X(used)s +2509 X(to)s +2618 X(select)s +2876 X(alternate)s +3249 X(programs)s +3656 X(if)s +3747 X(the)s +3899 X(user)s +4095 X(wishes.)s +4447 X(The)s +4632 X(default)s +4939 X(values)s +514 X +4080 Y +874 X(are)s +1020 X(given)s +1267 X(in)s +1370 X(the)s +1517 X(examples.)s +514 X +4320 Y +1234 X(\256leproc:)s +1855 X(/usr/bs/mh-beta/bin/re\256le)s +514 X +4440 Y +1234 X(incproc:)s +1855 X(/usr/bs/mh-beta/bin/inc)s +514 X +4560 Y +1234 X(installproc:)s +1855 X(/usr/bs/mh-beta/lib/install\261mh)s +514 X +4680 Y +1234 X(lproc:)s +1855 X(/usr/ucb/more)s +514 X +4800 Y +1234 X(mailproc:)s +1855 X(/usr/bs/mh-beta/bin/mhmail)s +514 X +4920 Y +1234 X(mhlproc:)s +1855 X(/usr/bs/mh-beta/lib/mhl)s +514 X +5040 Y +1234 X(moreproc:)s +1855 X(/usr/ucb/more)s +514 X +5160 Y +1234 X(mshproc:)s +1855 X(/usr/bs/mh-beta/bin/msh)s +514 X +5280 Y +1234 X(packproc:)s +1855 X(/usr/bs/mh-beta/bin/packf)s +514 X +5400 Y +1234 X(postproc:)s +1855 X(/usr/bs/mh-beta/lib/post)s +514 X +5520 Y +1234 X(rmmproc:)s +1855 X(none)s +514 X +5640 Y +1234 X(rmfproc:)s +1855 X(/usr/bs/mh-beta/bin/rmf)s +514 X +5760 Y +1234 X(sendproc:)s +1855 X(/usr/bs/mh-beta/bin/send)s +514 X +5880 Y +1234 X(showproc:)s +1855 X(/usr/ucb/more)s +514 X +6000 Y +1234 X(whatnowproc:)s +1855 X(/usr/bs/mh-beta/bin/whatnow)s +514 X +6120 Y +1234 X(whomproc:)s +1855 X(/usr/bs/mh-beta/bin/whom)s +514 X +6360 Y +874 X(If)s +967 X(you)s +1144 X(de\256ne)s +1415 X(the)s +1564 X(envariable)s +2005 X +0.0 10 10 f.B ft(MH)s +0.0 10 10 f.R ft(,)s +2228 X(you)s +2404 X(can)s +2568 X(specify)s +2882 X(a)s +2952 X(pro\256le)s +3239 X(other)s +3470 X(than)s +3668 X +0.0 10 10 f.I ft(.mh)s +Cru(pro\256le)s +4152 X +0.0 10 10 f.R ft(to)s +4256 X(be)s +4376 X(read)s +4573 X(by)s +4699 X(the)s +4847 X +0.0 10 10 f.I ft(MH)s +5028 X +0.0 10 10 f.R ft(pro-)s +514 X +6480 Y +874 X(grams)s +1160 X(that)s +1352 X(you)s +1544 X(invoke.)s +1908 X(If)s +2015 X(the)s +2178 X(value)s +2435 X(of)s +2559 X +0.0 10 10 f.B ft(MH)s +2772 X +0.0 10 10 f.R ft(is)s +2880 X(not)s +3049 X(absolute,)s +3448 X(\(i.e.,)s +3669 X(does)s +3893 X(not)s +4062 X(begin)s +4325 X(with)s +4544 X(a)s +4629 X +0.0 10 10 f.B ft(/)s +4707 X +0.0 10 10 f.R ft(\),)s +4806 X(it)s +4903 X(will)s +5100 X(be)s +514 X +6600 Y +874 X(presumed)s +1291 X(to)s +1398 X(start)s +1599 X(from)s +1822 X(the)s +1973 X(current)s +2284 X(working)s +2646 X(directory.)s +3085 X(This)s +3292 X(is)s +3388 X(one)s +3561 X(of)s +3673 X(the)s +3824 X(very)s +4030 X(few)s +4207 X(exceptions)s +4662 X(in)s +4768 X +0.0 10 10 f.I ft(MH)s +4951 X +0.0 10 10 f.R ft(where)s +514 X +6720 Y +874 X(non-absolute)s +1415 X(pathnames)s +1867 X(are)s +2013 X(not)s +2166 X(considered)s +2623 X(relative)s +2947 X(to)s +3050 X(the)s +3197 X(user's)s +3460 X +0.0 10 10 f.I ft(MH)s +3640 X +0.0 10 10 f.R ft(directory.)s +514 X +6960 Y +874 X(Similarly,)s +1309 X(if)s +1407 X(you)s +1593 X(de\256ne)s +1873 X(the)s +2031 X(envariable)s +2482 X +0.0 10 10 f.B ft(MHCONTEXT)s +0.0 10 10 f.R ft(,)s +3210 X(you)s +3396 X(can)s +3570 X(specify)s +3894 X(a)s +3974 X(context)s +4304 X(other)s +4545 X(than)s +4753 X(the)s +4911 X(normal)s +514 X +7080 Y +874 X(context)s +1198 X(\256le)s +1356 X(\(as)s +1502 X(speci\256ed)s +1886 X(in)s +1993 X(the)s +2144 X +0.0 10 10 f.I ft(MH)s +2328 X +0.0 10 10 f.R ft(pro\256le\).)s +2701 X(As)s +2841 X(always,)s +3172 X(unless)s +3451 X(the)s +3602 X(value)s +3847 X(of)s +3959 X +0.0 10 10 f.B ft(MHCONTEXT)s +4655 X +0.0 10 10 f.R ft(is)s +4751 X(absolute,)s +5138 X(it)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 120 121 + +514 X +600 Y(MH-PROFILE\(5\))s +2746 X(-120-)s +4428 X(MH-PROFILE\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(will)s +1055 X(be)s +1174 X(presumed)s +1587 X(to)s +1690 X(start)s +1887 X(from)s +2106 X(your)s +2314 X +0.0 10 10 f.I ft(MH)s +2494 X +0.0 10 10 f.R ft(directory.)s +514 X +1200 Y +874 X +0.0 10 10 f.I ft(MH)s +1054 X +0.0 10 10 f.R ft(programs)s +1456 X(also)s +1642 X(support)s +1967 X(other)s +2197 X(envariables:)s +514 X +1440 Y +874 X +0.0 10 10 f.B ft(MAILDROP)s +1479 X +0.0 10 10 f.R ft(:)s +1532 X(tells)s +1724 X +0.0 10 10 f.I ft(inc)s +1871 X +0.0 10 10 f.R ft(the)s +2018 X(default)s +2320 X(maildrop)s +514 X +1560 Y +1234 X(This)s +1437 X(supercedes)s +1899 X(the)s +2046 X(``MailDrop:'')s +2625 X(pro\256le)s +2911 X(entry.)s +514 X +1800 Y +874 X +0.0 10 10 f.B ft(SIGNATURE)s +1519 X +0.0 10 10 f.R ft(:)s +1572 X(tells)s +1764 X +0.0 10 10 f.I ft(send)s +1972 X +0.0 10 10 f.R ft(and)s +2141 X +0.0 10 10 f.I ft(post)s +2333 X +0.0 10 10 f.R ft(your)s +2541 X(mail)s +2744 X(signature)s +514 X +1920 Y +1234 X(This)s +1437 X(supercedes)s +1899 X(the)s +2046 X(``Signature:'')s +2614 X(pro\256le)s +2900 X(entry.)s +514 X +2160 Y +874 X +0.0 10 10 f.B ft(HOME)s +1241 X +0.0 10 10 f.R ft(:)s +1294 X(tells)s +1486 X(all)s +1611 X +0.0 10 10 f.I ft(MH)s +1791 X +0.0 10 10 f.R ft(programs)s +2193 X(your)s +2401 X(home)s +2648 X(directory)s +514 X +2400 Y +874 X +0.0 10 10 f.B ft(SHELL)s +1259 X +0.0 10 10 f.R ft(:)s +1312 X(tells)s +1504 X +0.0 10 10 f.I ft(bbl)s +1657 X +0.0 10 10 f.R ft(the)s +1804 X(default)s +2106 X(shell)s +2320 X(to)s +2423 X(run)s +514 X +2640 Y +874 X +0.0 10 10 f.B ft(TERM)s +1224 X +0.0 10 10 f.R ft(:)s +1277 X(tells)s +1469 X +0.0 10 10 f.I ft(MH)s +1649 X +0.0 10 10 f.R ft(your)s +1857 X(terminal)s +2215 X(type)s +514 X +2760 Y +1234 X(The)s +1422 X +0.0 10 10 f.B ft(TERMCAP)s +1959 X +0.0 10 10 f.R ft(envariable)s +2406 X(is)s +2505 X(also)s +2698 X(consulted.)s +3163 X(In)s +3278 X(particular,)s +3717 X(these)s +3954 X(tell)s +4114 X +0.0 10 10 f.I ft(scan)s +4329 X +0.0 10 10 f.R ft(and)s +4505 X +0.0 10 10 f.I ft(mhl)s +4687 X +0.0 10 10 f.R ft(how)s +4891 X(to)s +5001 X(clear)s +514 X +2880 Y +1234 X(your)s +1448 X(terminal,)s +1837 X(and)s +2012 X(how)s +2215 X(many)s +2468 X(columns)s +2838 X(wide)s +3063 X(your)s +3277 X(terminal)s +3640 X(is.)s +3787 X(They)s +4022 X(also)s +4213 X(tell)s +4371 X +0.0 10 10 f.I ft(mhl)s +4551 X +0.0 10 10 f.R ft(how)s +4753 X(many)s +5005 X(lines)s +514 X +3000 Y +1234 X(long)s +1437 X(your)s +1645 X(terminal)s +2003 X(screen)s +2282 X(is.)s +514 X +3240 Y +874 X +0.0 10 10 f.B ft(editalt)s +1196 X +0.0 10 10 f.R ft(:)s +1249 X(the)s +1396 X(alternate)s +1764 X(message)s +514 X +3360 Y +1234 X(This)s +1439 X(is)s +1533 X(set)s +1671 X(by)s +1798 X +0.0 10 10 f.I ft(dist)s +1970 X +0.0 10 10 f.R ft(and)s +2141 X +0.0 10 10 f.I ft(repl)s +2329 X +0.0 10 10 f.R ft(during)s +2617 X(edit)s +2794 X(sessions)s +3149 X(so)s +3265 X(you)s +3442 X(can)s +3607 X(peruse)s +3894 X(the)s +4043 X(message)s +4408 X(being)s +4657 X(distributed)s +5111 X(or)s +514 X +3480 Y +1234 X(replied)s +1549 X(to.)s +1715 X(The)s +1908 X(message)s +2284 X(is)s +2389 X(also)s +2588 X(available)s +2985 X(through)s +3333 X(a)s +3414 X(link)s +3607 X(called)s +3882 X(``@'')s +4143 X(in)s +4258 X(the)s +4417 X(current)s +4736 X(directory)s +5133 X(if)s +514 X +3600 Y +1234 X(your)s +1448 X(current)s +1761 X(working)s +2125 X(directory)s +2516 X(and)s +2691 X(the)s +2843 X(folder)s +3111 X(the)s +3263 X(message)s +3631 X(lives)s +3850 X(in)s +3958 X(are)s +4109 X(on)s +4239 X(the)s +4391 X(same)s +4626 X(UNIX)s +4905 X(\256lesys-)s +514 X +3720 Y +1234 X(tem.)s +514 X +3960 Y +874 X +0.0 10 10 f.B ft(mhdraft)s +1279 X +0.0 10 10 f.R ft(:)s +1332 X(the)s +1479 X(path)s +1676 X(to)s +1779 X(the)s +1926 X(working)s +2284 X(draft)s +514 X +4080 Y +1234 X(This)s +1444 X(is)s +1542 X(set)s +1684 X(by)s +1815 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2087 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2288 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2528 X(and)s +2703 X +0.0 10 10 f.I ft(repl)s +2895 X +0.0 10 10 f.R ft(to)s +3004 X(tell)s +3163 X(the)s +3316 X +0.0 10 10 f.I ft(whatnowproc)s +3892 X +0.0 10 10 f.R ft(which)s +4167 X(\256le)s +4326 X(to)s +4435 X(ask)s +4599 X(``What)s +4912 X(now?'')s +514 X +4200 Y +1234 X(questions)s +1649 X(about.)s +1958 X(In)s +2078 X(addition,)s +2468 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2675 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2921 X(and)s +3102 X +0.0 10 10 f.I ft(repl)s +3300 X +0.0 10 10 f.R ft(set)s +3447 X +0.0 10 10 f.B ft(mhfolder)s +3877 X +0.0 10 10 f.R ft(if)s +3974 X(appropriate.)s +4514 X(Further,)s +4869 X +0.0 10 10 f.I ft(dist)s +5050 X +0.0 10 10 f.R ft(and)s +514 X +4320 Y +1234 X +0.0 10 10 f.I ft(repl)s +1431 X +0.0 10 10 f.R ft(set)s +1578 X +0.0 10 10 f.B ft(mhaltmsg)s +2036 X +0.0 10 10 f.R ft(to)s +2150 X(tell)s +2314 X(the)s +2472 X +0.0 10 10 f.I ft(whatnowproc)s +3053 X +0.0 10 10 f.R ft(about)s +3311 X(an)s +3440 X(alternate)s +3818 X(message)s +4191 X(associated)s +4636 X(with)s +4849 X(the)s +5006 X(draft)s +514 X +4440 Y +1234 X(\(the)s +1427 X(message)s +1803 X(being)s +2063 X(distributed)s +2529 X(or)s +2650 X(replied)s +2965 X(to\),)s +3139 X(and)s +3321 X +0.0 10 10 f.I ft(dist)s +3504 X +0.0 10 10 f.R ft(sets)s +3691 X +0.0 10 10 f.B ft(mhdist)s +4023 X +0.0 10 10 f.R ft(to)s +4138 X(tell)s +4303 X(the)s +4462 X +0.0 10 10 f.I ft(whatnowproc)s +5044 X +0.0 10 10 f.R ft(that)s +514 X +4560 Y +1234 X(message)s +1613 X(re-distribution)s +2226 X(is)s +2334 X(occurring.)s +2807 X(Also,)s +3062 X +0.0 10 10 f.B ft(mheditor)s +3497 X +0.0 10 10 f.R ft(is)s +3605 X(set)s +3757 X(to)s +3876 X(tell)s +4045 X(the)s +4208 X +0.0 10 10 f.I ft(whatnowproc)s +4794 X +0.0 10 10 f.R ft(the)s +4956 X(user's)s +514 X +4680 Y +1234 X(choice)s +1522 X(of)s +1633 X(editor)s +1894 X(\(unless)s +2205 X(overridden)s +2665 X(by)s +2793 X(`\261noedit'\).)s +3270 X(Similarly,)s +3696 X +0.0 10 10 f.B ft(mhuse)s +4002 X +0.0 10 10 f.R ft(may)s +4202 X(be)s +4324 X(set)s +4463 X(by)s +4591 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(.)s +4885 X(Finally,)s +514 X +4800 Y +1234 X +0.0 10 10 f.B ft(mhmessages)s +1787 X +0.0 10 10 f.R ft(is)s +1880 X(set)s +2017 X(by)s +2143 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2339 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2574 X(and)s +2744 X +0.0 10 10 f.I ft(repl)s +2931 X +0.0 10 10 f.R ft(if)s +3018 X(annotations)s +3505 X(are)s +3652 X(to)s +3756 X(occur)s +4003 X(\(along)s +4284 X(with)s +4488 X +0.0 10 10 f.B ft(mhannotate)s +0.0 10 10 f.R ft(,)s +5050 X(and)s +514 X +4920 Y +1234 X +0.0 10 10 f.B ft(mhinplace)s +0.0 10 10 f.R ft(\).)s +1798 X(It's)s +1966 X(amazing)s +2339 X(all)s +2474 X(the)s +2631 X(information)s +3138 X(that)s +3323 X(has)s +3491 X(to)s +3604 X(get)s +3761 X(passed)s +4062 X(via)s +4219 X(envariables)s +4708 X(to)s +4821 X(make)s +5072 X(the)s +514 X +5040 Y +1234 X(``What)s +1544 X(now?'')s +1854 X(interface)s +2230 X(look)s +2436 X(squeaky)s +2791 X(clean)s +3028 X(to)s +3133 X(the)s +3282 X +0.0 10 10 f.I ft(MH)s +3464 X +0.0 10 10 f.R ft(user,)s +3682 X(isn't)s +3887 X(it?)s +4039 X(The)s +4221 X(reason)s +4508 X(for)s +4651 X(all)s +4778 X(this)s +4950 X(is)s +5044 X(that)s +514 X +5160 Y +1234 X(the)s +1384 X +0.0 10 10 f.I ft(MH)s +1567 X +0.0 10 10 f.R ft(user)s +1761 X(can)s +1927 X(select)s +2182 X +0.0 10 10 f.I ft(any)s +2354 X +0.0 10 10 f.R ft(program)s +2720 X(as)s +2831 X(the)s +2981 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(,)s +3578 X(including)s +3983 X(one)s +4154 X(of)s +4264 X(the)s +4413 X(standard)s +4778 X(shells.)s +5083 X(As)s +514 X +5280 Y +1234 X(a)s +1303 X(result,)s +1575 X(it's)s +1728 X(not)s +1881 X(possible)s +2234 X(to)s +2337 X(pass)s +2534 X(information)s +3031 X(via)s +3178 X(an)s +3297 X(argument)s +3699 X(list.)s +514 X +5400 Y +1234 X(If)s +1332 X(the)s +1486 X(WHATNOW)s +2055 X(option)s +2343 X(was)s +2530 X(set)s +2673 X(during)s +2966 X +0.0 10 10 f.I ft(MH)s +3152 X +0.0 10 10 f.R ft(con\256guration)s +3716 X(\(type)s +3952 X(`\261help')s +4271 X(to)s +4380 X(an)s +4505 X +0.0 10 10 f.I ft(MH)s +4691 X +0.0 10 10 f.R ft(command)s +5116 X(to)s +514 X +5520 Y +1234 X(\256nd)s +1422 X(out\),)s +1640 X(and)s +1816 X(if)s +1909 X(this)s +2086 X(envariable)s +2533 X(is)s +2632 X(set,)s +2800 X(if)s +2893 X(the)s +3047 X(commands)s +3512 X +0.0 10 10 f.I ft(re\256le)s +0.0 10 10 f.R ft(,)s +3774 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(,)s +4014 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +4277 X(or)s +4391 X +0.0 10 10 f.I ft(whom)s +4661 X +0.0 10 10 f.R ft(are)s +4813 X(not)s +4972 X(given)s +514 X +5640 Y +1234 X(any)s +1405 X(`msgs')s +1704 X(arguments,)s +2172 X(then)s +2371 X(they)s +2570 X(will)s +2752 X(default)s +3055 X(to)s +3159 X(using)s +3402 X(the)s +3550 X(\256le)s +3704 X(indicated)s +4096 X(by)s +4222 X +0.0 10 10 f.B ft(mhdraft)s +0.0 10 10 f.R ft(.)s +4653 X(This)s +4857 X(is)s +4950 X(useful)s +514 X +5760 Y +1234 X(for)s +1375 X(getting)s +1678 X(the)s +1825 X(default)s +2127 X(behavior)s +2501 X(supplied)s +2865 X(by)s +2990 X(the)s +3137 X(default)s +3439 X +0.0 10 10 f.I ft(whatnowproc)s +0.0 10 10 f.R ft(.)s +514 X +6000 Y +874 X +0.0 10 10 f.B ft(mhfolder)s +1318 X +0.0 10 10 f.R ft(:)s +1371 X(the)s +1518 X(folder)s +1781 X(containing)s +2228 X(the)s +2375 X(alternate)s +2743 X(message)s +514 X +6120 Y +1234 X(This)s +1447 X(is)s +1549 X(set)s +1694 X(by)s +1828 X +0.0 10 10 f.I ft(dist)s +2007 X +0.0 10 10 f.R ft(and)s +2185 X +0.0 10 10 f.I ft(repl)s +2380 X +0.0 10 10 f.R ft(during)s +2675 X(edit)s +2859 X(sessions)s +3221 X(so)s +3344 X(you)s +3528 X(can)s +3700 X(peruse)s +3994 X(other)s +4233 X(messages)s +4644 X(in)s +4756 X(the)s +4912 X(current)s +514 X +6240 Y +1234 X(folder)s +1514 X(besides)s +1850 X(the)s +2014 X(one)s +2200 X(being)s +2464 X(distributed)s +2934 X(or)s +3058 X(replied)s +3376 X(to.)s +3545 X(The)s +3741 X +0.0 10 10 f.B ft(mhfolder)s +4176 X +0.0 10 10 f.R ft(envariable)s +4632 X(is)s +4740 X(also)s +4942 X(set)s +5094 X(by)s +514 X +6360 Y +1234 X +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +1490 X +0.0 10 10 f.I ft(prev)s +0.0 10 10 f.R ft(,)s +1717 X(and)s +1886 X +0.0 10 10 f.I ft(next)s +2077 X +0.0 10 10 f.R ft(for)s +2218 X(use)s +2376 X(by)s +2501 X +0.0 10 10 f.I ft(mhl)s +0.0 10 10 f.R ft(.)s +514 X +6600 Y +874 X +0.0 10 10 f.B ft(MHBBRC)s +1374 X +0.0 10 10 f.R ft(:)s +514 X +6720 Y +1234 X(If)s +1339 X(you)s +1528 X(de\256ne)s +1811 X(the)s +1972 X(envariable)s +2426 X +0.0 10 10 f.B ft(MHBBRC)s +0.0 10 10 f.R ft(,)s +2940 X(you)s +3129 X(can)s +3306 X(specify)s +3633 X(a)s +3715 X(BBoards)s +4103 X(information)s +4613 X(\256le)s +4779 X(other)s +5022 X(than)s +514 X +6840 Y +1234 X +0.0 10 10 f.I ft(.bbrc)s +1470 X +0.0 10 10 f.R ft(to)s +1576 X(be)s +1698 X(read)s +1897 X(by)s +2025 X +0.0 10 10 f.I ft(bbc)s +0.0 10 10 f.R ft(.)s +2247 X(If)s +2341 X(the)s +2491 X(value)s +2735 X(of)s +2846 X +0.0 10 10 f.B ft(MHBBRC)s +3324 X +0.0 10 10 f.R ft(is)s +3419 X(not)s +3575 X(absolute,)s +3961 X(\(i.e.,)s +4168 X(does)s +4378 X(not)s +4533 X(begin)s +4782 X(with)s +4987 X(a)s +5058 X +0.0 10 10 f.B ft(/)s +5136 X +0.0 10 10 f.R ft(\),)s +514 X +6960 Y +1234 X(it)s +1315 X(will)s +1496 X(be)s +1615 X(presumed)s +2028 X(to)s +2131 X(start)s +2328 X(from)s +2547 X(the)s +2694 X(current)s +3001 X(working)s +3359 X(directory.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 121 122 + +514 X +600 Y(MH-PROFILE\(5\))s +2746 X(-121-)s +4428 X(MH-PROFILE\(5\))s +514 X +960 Y +874 X(MHFD)s +1229 X +0.0 10 10 f.R ft(:)s +514 X +1080 Y +1234 X(If)s +1331 X(the)s +1484 X(OVERHEAD)s +2064 X(option)s +2351 X(was)s +2537 X(set)s +2679 X(during)s +2971 X +0.0 10 10 f.I ft(MH)s +3157 X +0.0 10 10 f.R ft(con\256guration)s +3721 X(\(type)s +3957 X(`\261help')s +4275 X(to)s +4383 X(an)s +4507 X +0.0 10 10 f.I ft(MH)s +4692 X +0.0 10 10 f.R ft(command)s +5116 X(to)s +514 X +1200 Y +1234 X(\256nd)s +1419 X(out\),)s +1634 X(then)s +1835 X(if)s +1925 X(this)s +2099 X(envariable)s +2542 X(is)s +2637 X(set,)s +2801 X +0.0 10 10 f.I ft(MH)s +2984 X +0.0 10 10 f.R ft(considers)s +3389 X(it)s +3473 X(to)s +3579 X(be)s +3701 X(the)s +3851 X(number)s +4184 X(of)s +4295 X(a)s +4367 X(\256le)s +4523 X(descriptor)s +4950 X(which)s +514 X +1320 Y +1234 X(is)s +1329 X(opened,)s +1670 X(read-only)s +2080 X(to)s +2186 X(the)s +2336 X +0.0 10 10 f.I ft(MH)s +2519 X +0.0 10 10 f.R ft(pro\256le.)s +2858 X(Similarly,)s +3284 X(if)s +3373 X(the)s +3523 X(envariable)s +3965 X +0.0 10 10 f.B ft(MHCONTEXTFD)s +4792 X +0.0 10 10 f.R ft(is)s +4886 X(set,)s +5049 X(this)s +514 X +1440 Y +1234 X(is)s +1336 X(the)s +1493 X(number)s +1833 X(of)s +1951 X(a)s +2030 X(\256le)s +2193 X(descriptor)s +2627 X(which)s +2906 X(is)s +3008 X(opened)s +3331 X(read-only)s +3748 X(to)s +3861 X(the)s +4018 X +0.0 10 10 f.I ft(MH)s +4208 X +0.0 10 10 f.R ft(context.)s +4587 X(This)s +4800 X(feature)s +5111 X(of)s +514 X +1560 Y +1234 X +0.0 10 10 f.I ft(MH)s +1423 X +0.0 10 10 f.R ft(is)s +1524 X(experimental,)s +2104 X(and)s +2282 X(is)s +2383 X(used)s +2600 X(to)s +2711 X(examine)s +3082 X(possible)s +3443 X(speed)s +3703 X(improvements)s +4308 X(for)s +4457 X +0.0 10 10 f.I ft(MH)s +4645 X +0.0 10 10 f.R ft(startup.)s +5000 X(Note)s +514 X +1680 Y +1234 X(that)s +1411 X(these)s +1642 X(envariables)s +2122 X(must)s +2343 X(be)s +2463 X(set)s +2600 X(and)s +2770 X(non-empty)s +3229 X(to)s +3333 X(enable)s +3619 X(this)s +3790 X(feature.)s +4142 X(However,)s +4558 X(if)s +4645 X(OVERHEAD)s +514 X +1800 Y +1234 X(is)s +1351 X(enabled)s +1710 X(during)s +2020 X +0.0 10 10 f.I ft(MH)s +2224 X +0.0 10 10 f.R ft(con\256guration,)s +2831 X(then)s +3052 X(when)s +3317 X +0.0 10 10 f.I ft(MH)s +3521 X +0.0 10 10 f.R ft(programs)s +3947 X(call)s +4140 X(other)s +4394 X +0.0 10 10 f.I ft(MH)s +4598 X +0.0 10 10 f.R ft(programs,)s +5049 X(this)s +514 X +1920 Y +1234 X(scheme)s +1559 X(is)s +1652 X(used.)s +1911 X(These)s +2175 X(\256le)s +2329 X(descriptors)s +2793 X(are)s +2939 X(not)s +3092 X(closed)s +3372 X(throughout)s +3836 X(the)s +3983 X(execution)s +4396 X(of)s +4504 X(the)s +4651 X +0.0 10 10 f.I ft(MH)s +4831 X +0.0 10 10 f.R ft(program,)s +514 X +2040 Y +1234 X(so)s +1355 X(children)s +1714 X(may)s +1918 X(take)s +2116 X(advantage)s +2552 X(of)s +2667 X(this.)s +2894 X(This)s +3104 X(approach)s +3501 X(is)s +3599 X(thought)s +3936 X(to)s +4045 X(be)s +4170 X(completely)s +4645 X(safe)s +4836 X(and)s +5011 X(does)s +514 X +2160 Y +1234 X(result)s +1481 X(in)s +1584 X(some)s +1820 X(performance)s +2348 X(enhancements.)s +514 X +2442 Y +0.0 8 8 f.B ft(Files)s +514 X +2562 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +2682 Y +874 X(or)s +982 X($MH)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(pro\256le)s +514 X +2802 Y +874 X(/context)s +2463 X(The)s +2643 X(user)s +2834 X(context)s +514 X +2922 Y +874 X(or)s +982 X($CONTEXT)s +2463 X(Rather)s +2754 X(than)s +2951 X(the)s +3098 X(standard)s +3461 X(context)s +514 X +3042 Y +874 X(/.mh)s +Cru(sequences)s +2463 X(Public)s +2744 X(sequences)s +3173 X(for)s +3314 X()s +514 X +3246 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3366 Y +874 X +0.0 10 10 f.R ft(All)s +514 X +3570 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3690 Y +874 X +0.0 10 10 f.R ft(mh\(1\),)s +1168 X(environ\(5\),)s +1639 X(mh-sequence\(5\))s +514 X +3894 Y +0.0 8 8 f.B ft(Defaults)s +514 X +4014 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4218 Y +0.0 8 8 f.B ft(Context)s +514 X +4338 Y +874 X +0.0 10 10 f.R ft(All)s +514 X +4542 Y +0.0 8 8 f.B ft(History)s +514 X +4662 Y +874 X +0.0 10 10 f.R ft(In)s +987 X(previous)s +1361 X(versions)s +1724 X(of)s +1837 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +2047 X(the)s +2199 X(current-message)s +2882 X(value)s +3128 X(of)s +3241 X(a)s +3315 X(writable)s +3672 X(folder)s +3940 X(was)s +4125 X(kept)s +4327 X(in)s +4435 X(a)s +4509 X(\256le)s +4667 X(called)s +4935 X(``cur'')s +514 X +4782 Y +874 X(in)s +980 X(the)s +1130 X(folder)s +1395 X(itself.)s +1672 X(In)s +1782 X +0.0 10 10 f.I ft(mh.3)s +0.0 10 10 f.R ft(,)s +2031 X(the)s +2180 X +0.0 10 10 f.I ft(.mh)s +Cru(pro\256le)s +2665 X +0.0 10 10 f.R ft(contained)s +3080 X(the)s +3229 X(current-message)s +3909 X(values)s +4191 X(for)s +4334 X(all)s +4461 X(folders,)s +4790 X(regardless)s +514 X +4902 Y +874 X(of)s +982 X(their)s +1190 X(writability.)s +514 X +5142 Y +874 X(In)s +983 X(all)s +1109 X(versions)s +1468 X(of)s +1577 X +0.0 10 10 f.I ft(MH)s +1758 X +0.0 10 10 f.R ft(since)s +1989 X +0.0 10 10 f.I ft(mh.4)s +0.0 10 10 f.R ft(,)s +2237 X(the)s +2385 X +0.0 10 10 f.I ft(.mh)s +Cru(pro\256le)s +2868 X +0.0 10 10 f.R ft(contains)s +3226 X(only)s +3429 X(static)s +3665 X(information,)s +4187 X(which)s +4456 X +0.0 10 10 f.I ft(MH)s +4636 X +0.0 10 10 f.R ft(programs)s +5038 X(will)s +514 X +5262 Y +874 X +0.0 10 10 f.B ft(NOT)s +1129 X +0.0 10 10 f.R ft(update.)s +1483 X(Changes)s +1865 X(in)s +1981 X(context)s +2313 X(are)s +2472 X(made)s +2726 X(to)s +2842 X(the)s +3002 X +0.0 10 10 f.I ft(context)s +3327 X +0.0 10 10 f.R ft(\256le)s +3492 X(kept)s +3701 X(in)s +3816 X(the)s +3975 X(users)s +4217 X(MH)s +4415 X +0.0 10 10 f.I ft(directory)s +0.0 10 10 f.R ft(.)s +4868 X(This)s +5083 X(in-)s +514 X +5382 Y +874 X(cludes,)s +1186 X(but)s +1346 X(is)s +1445 X(not)s +1605 X(limited)s +1921 X(to:)s +2059 X(the)s +2213 X(``Current\261Folder'')s +2992 X(entry)s +3228 X(and)s +3403 X(all)s +3534 X(private)s +3842 X(sequence)s +4238 X(information.)s +4791 X(Public)s +5078 X(se-)s +514 X +5502 Y +874 X(quence)s +1181 X(information)s +1678 X(is)s +1770 X(kept)s +1967 X(in)s +2070 X(a)s +2139 X(\256le)s +2292 X(called)s +2555 X +0.0 10 10 f.I ft(.mh)s +Cru(sequences)s +3181 X +0.0 10 10 f.R ft(in)s +3284 X(each)s +3491 X(folder.)s +514 X +5742 Y +874 X(To)s +1014 X(convert)s +1342 X(from)s +1565 X(the)s +1716 X(format)s +2011 X(used)s +2223 X(in)s +2330 X(releases)s +2674 X(of)s +2786 X +0.0 10 10 f.I ft(MH)s +2970 X +0.0 10 10 f.R ft(prior)s +3193 X(to)s +3300 X(the)s +3451 X(format)s +3746 X(used)s +3958 X(in)s +4065 X(the)s +4216 X +0.0 10 10 f.I ft(mh.4)s +4442 X +0.0 10 10 f.R ft(release,)s +4771 X +0.0 10 10 f.I ft(install\261mh)s +514 X +5862 Y +874 X +0.0 10 10 f.R ft(should)s +1173 X(be)s +1299 X(invoked)s +1653 X(with)s +1863 X(the)s +2017 X(`\261compat')s +2459 X(switch.)s +2802 X(This)s +3012 X(generally)s +3415 X(happens)s +3774 X(automatically)s +4350 X(on)s +4482 X +0.0 10 10 f.I ft(MH)s +4669 X +0.0 10 10 f.R ft(systems)s +5017 X(gen-)s +514 X +5982 Y +874 X(erated)s +1142 X(with)s +1345 X(the)s +1492 X(``COMPAT'')s +2066 X(option)s +2347 X(during)s +2633 X +0.0 10 10 f.I ft(MH)s +2813 X +0.0 10 10 f.R ft(con\256guration.)s +514 X +6222 Y +874 X(The)s +1059 X +0.0 10 10 f.I ft(.mh)s +Cru(pro\256le)s +1547 X +0.0 10 10 f.R ft(may)s +1749 X(override)s +2111 X(the)s +2263 X(path)s +2464 X(of)s +2576 X(the)s +2727 X +0.0 10 10 f.I ft(context)s +3044 X +0.0 10 10 f.R ft(\256le,)s +3226 X(by)s +3355 X(specifying)s +3800 X(a)s +3873 X(``context'')s +4328 X(entry)s +4562 X(\(this)s +4769 X(must)s +4993 X(be)s +5116 X(in)s +514 X +6342 Y +874 X(lower-case\).)s +1416 X(If)s +1510 X(the)s +1660 X(entry)s +1893 X(is)s +1988 X(not)s +2144 X(absolute)s +2505 X(\(does)s +2748 X(not)s +2903 X(start)s +3102 X(with)s +3307 X(a)s +3378 X +0.0 10 10 f.B ft(/)s +3456 X +0.0 10 10 f.R ft(\),)s +3541 X(then)s +3740 X(it)s +3823 X(is)s +3917 X(interpreted)s +4376 X(relative)s +4702 X(to)s +4807 X(the)s +4956 X(user's)s +514 X +6462 Y +874 X +0.0 10 10 f.I ft(MH)s +1058 X +0.0 10 10 f.R ft(directory.)s +1497 X(As)s +1637 X(a)s +1710 X(result,)s +1986 X(you)s +2165 X(can)s +2331 X(actually)s +2675 X(have)s +2891 X(more)s +3124 X(than)s +3324 X(one)s +3496 X(set)s +3635 X(of)s +3746 X(private)s +4051 X(sequences)s +4483 X(by)s +4611 X(using)s +4856 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erent)s +514 X +6582 Y +874 X(context)s +1193 X(\256les.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 122 123 + +514 X +600 Y(MH-PROFILE\(5\))s +2746 X(-122-)s +4428 X(MH-PROFILE\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X(shell)s +1268 X(quoting)s +1599 X(conventions)s +2107 X(are)s +2253 X(not)s +2406 X(available)s +2791 X(in)s +2894 X(the)s +3041 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le.)s +3580 X(Each)s +3804 X(token)s +4051 X(is)s +4143 X(separated)s +4544 X(by)s +4669 X(whitespace.)s +514 X +1320 Y +874 X(There)s +1134 X(is)s +1229 X(some)s +1468 X(question)s +1835 X(as)s +1946 X(to)s +2052 X(what)s +2274 X(kind)s +2480 X(of)s +2591 X(arguments)s +3035 X(should)s +3330 X(be)s +3452 X(placed)s +3740 X(in)s +3846 X(the)s +3996 X(pro\256le)s +4285 X(as)s +4396 X(options.)s +4769 X(In)s +4879 X(order)s +5116 X(to)s +514 X +1440 Y +874 X(provide)s +1222 X(a)s +1309 X(clear)s +1545 X(answer,)s +1895 X(recall)s +2159 X(command)s +2596 X(line)s +2789 X(semantics)s +3225 X(of)s +3350 X(all)s +3492 X +0.0 10 10 f.I ft(MH)s +3689 X +0.0 10 10 f.R ft(programs:)s +4136 X(con\257icting)s +4606 X(switches)s +4992 X(\(e.g.,)s +514 X +1560 Y +874 X(`\261header)s +1251 X(and)s +1424 X(`\261noheader'\))s +1967 X(may)s +2168 X(occur)s +2418 X(more)s +2651 X(than)s +2851 X(one)s +3023 X(time)s +3229 X(on)s +3357 X(the)s +3507 X(command)s +3929 X(line,)s +4132 X(with)s +4338 X(the)s +4488 X(last)s +4655 X(switch)s +4944 X(taking)s +514 X +1680 Y +874 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ect.)s +1174 X(Other)s +1430 X(arguments,)s +1900 X(such)s +2112 X(as)s +2224 X(message)s +2591 X(sequences,)s +3049 X(\256lenames)s +3461 X(and)s +3634 X(folders,)s +3964 X(are)s +4113 X(always)s +4418 X(remembered)s +4944 X(on)s +5072 X(the)s +514 X +1800 Y +874 X(invocation)s +1326 X(line)s +1506 X(and)s +1680 X(are)s +1830 X(not)s +1987 X(superseded)s +2459 X(by)s +2588 X(following)s +3006 X(arguments)s +3451 X(of)s +3563 X(the)s +3714 X(same)s +3948 X(type.)s +4199 X(Hence,)s +4507 X(it)s +4592 X(is)s +4688 X(safe)s +4877 X(to)s +4984 X(place)s +514 X +1920 Y +874 X(only)s +1077 X(switches)s +1446 X(\(and)s +1648 X(their)s +1856 X(arguments\))s +2330 X(in)s +2433 X(the)s +2580 X(pro\256le.)s +514 X +2160 Y +874 X(If)s +966 X(one)s +1136 X(\256nds)s +1357 X(that)s +1533 X(an)s +1653 X +0.0 10 10 f.I ft(MH)s +1833 X +0.0 10 10 f.R ft(program)s +2196 X(is)s +2288 X(being)s +2535 X(invoked)s +2882 X(again)s +3123 X(and)s +3292 X(again)s +3533 X(with)s +3736 X(the)s +3883 X(same)s +4113 X(arguments,)s +4579 X(and)s +4748 X(those)s +4984 X(argu-)s +514 X +2280 Y +874 X(ments)s +1142 X(aren't)s +1403 X(switches,)s +1801 X(then)s +2002 X(there)s +2230 X(are)s +2380 X(a)s +2453 X(few)s +2631 X(possible)s +2988 X(solutions)s +3379 X(to)s +3486 X(this)s +3660 X(problem.)s +4072 X(The)s +4256 X(\256rst)s +4440 X(is)s +4535 X(to)s +4641 X(create)s +4906 X(a)s +4978 X(\(soft\))s +514 X +2400 Y +874 X(link)s +1057 X(in)s +1162 X(your)s +1372 X +0.0 10 10 f.I ft($HOME/bin)s +1893 X +0.0 10 10 f.R ft(directory)s +2280 X(to)s +2385 X(the)s +2534 X +0.0 10 10 f.I ft(MH)s +2716 X +0.0 10 10 f.R ft(program)s +3081 X(of)s +3191 X(your)s +3401 X(choice.)s +3738 X(By)s +3882 X(giving)s +4165 X(this)s +4337 X(link)s +4519 X(a)s +4589 X(di)s +Cff(erent)s +4953 X(name,)s +514 X +2520 Y +874 X(you)s +1053 X(can)s +1220 X(create)s +1486 X(a)s +1559 X(new)s +1754 X(entry)s +1988 X(in)s +2095 X(your)s +2307 X(pro\256le)s +2597 X(and)s +2770 X(use)s +2932 X(an)s +3055 X(alternate)s +3427 X(set)s +3567 X(of)s +3678 X(defaults)s +4022 X(for)s +4166 X(the)s +4316 X +0.0 10 10 f.I ft(MH)s +4499 X +0.0 10 10 f.R ft(command.)s +4971 X(Simi-)s +514 X +2640 Y +874 X(larly,)s +1108 X(you)s +1284 X(could)s +1532 X(create)s +1795 X(a)s +1865 X(small)s +2108 X(shell)s +2323 X(script)s +2570 X(which)s +2839 X(called)s +3102 X(the)s +3249 X +0.0 10 10 f.I ft(MH)s +3429 X +0.0 10 10 f.R ft(program)s +3792 X(of)s +3900 X(your)s +4108 X(choice)s +4393 X(with)s +4596 X(an)s +4715 X(alternate)s +5083 X(set)s +514 X +2760 Y +874 X(of)s +982 X(invocation)s +1429 X(line)s +1604 X(switches)s +1973 X(\(using)s +2248 X(links)s +2468 X(and)s +2637 X(an)s +2756 X(alternate)s +3124 X(pro\256le)s +3410 X(entry)s +3640 X(is)s +3732 X(preferable)s +4160 X(to)s +4263 X(this)s +4433 X(solution\).)s +514 X +3000 Y +874 X(Finally,)s +1208 X(the)s +1355 X +0.0 10 10 f.I ft(csh)s +1513 X +0.0 10 10 f.R ft(user)s +1704 X(could)s +1951 X(create)s +2213 X(an)s +2332 X(alias)s +2540 X(for)s +2681 X(the)s +2828 X(command)s +3247 X(of)s +3355 X(the)s +3502 X(form:)s +514 X +3240 Y +1234 X(alias)s +1442 X(cmd)s +1639 X('cmd)s +1869 X(arg1)s +2071 X(arg2)s +2273 X(...')s +514 X +3480 Y +874 X(In)s +982 X(this)s +1152 X(way,)s +1368 X(the)s +1515 X(user)s +1706 X(can)s +1869 X(avoid)s +2116 X(lengthy)s +2441 X(type-in)s +2749 X(to)s +2852 X(the)s +2999 X(shell,)s +3238 X(and)s +3407 X(still)s +3583 X(give)s +3780 X +0.0 10 10 f.I ft(MH)s +3960 X +0.0 10 10 f.R ft(commands)s +4418 X(safely.)s +4731 X(\(Recall)s +5044 X(that)s +514 X +3600 Y +874 X(some)s +1114 X +0.0 10 10 f.I ft(MH)s +1298 X +0.0 10 10 f.R ft(commands)s +1760 X(invoke)s +2061 X(others,)s +2359 X(and)s +2532 X(that)s +2711 X(in)s +2818 X(all)s +2947 X(cases,)s +3211 X(the)s +3362 X(pro\256le)s +3652 X(is)s +3748 X(read,)s +3973 X(meaning)s +4346 X(that)s +4524 X(aliases)s +4818 X(are)s +4967 X(disre-)s +514 X +3720 Y +874 X(garded)s +1170 X(beyond)s +1489 X(an)s +1608 X(initial)s +1867 X(command)s +2286 X(invocation\))s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 123 124 + +514 X +600 Y(MH-SEQUENCE\(5\))s +2746 X(-123-)s +4322 X(MH-SEQUENCE\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(mh-sequence)s +1425 X(\261)s +1500 X(sequence)s +1890 X(speci\256cation)s +2420 X(for)s +2561 X(MH)s +2747 X(message)s +3110 X(system)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(most)s +1094 X +0.0 10 10 f.I ft(MH)s +1274 X +0.0 10 10 f.R ft(commands)s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.R ft(Most)s +1106 X +0.0 10 10 f.I ft(MH)s +1287 X +0.0 10 10 f.R ft(commands)s +1746 X(accept)s +2026 X(a)s +2096 X(`msg')s +2355 X(or)s +2463 X(`msgs')s +2760 X(speci\256cation,)s +3315 X(where)s +3583 X(`msg')s +3841 X(indicates)s +4221 X(one)s +4390 X(message)s +4753 X(and)s +4922 X(`msgs')s +514 X +2040 Y +874 X(indicates)s +1260 X(one)s +1435 X(or)s +1549 X(more)s +1785 X(messages.)s +2242 X(To)s +2383 X(designate)s +2790 X(a)s +2864 X(message,)s +3257 X(you)s +3437 X(may)s +3639 X(use)s +3802 X(either)s +4059 X(its)s +4184 X(number)s +4519 X(\(e.g.,)s +4751 X(1,)s +4856 X(10,)s +5011 X(234\))s +514 X +2160 Y +874 X(or)s +982 X(one)s +1151 X(of)s +1259 X(these)s +1489 X(``reserved'')s +1983 X(message)s +2346 X(names:)s +514 X +2400 Y +1234 X +0.0 10 10 f.I ft(Name)s +1617 X(Description)s +514 X +2520 Y +1234 X +0.0 10 10 f.R ft(\256rst)s +1617 X(the)s +1764 X(\256rst)s +1945 X(message)s +2308 X(in)s +2411 X(the)s +2558 X(folder)s +514 X +2640 Y +1234 X(last)s +1617 X(the)s +1764 X(last)s +1928 X(message)s +2291 X(in)s +2394 X(the)s +2541 X(folder)s +514 X +2760 Y +1234 X(cur)s +1617 X(the)s +1764 X(most)s +1984 X(recently)s +2330 X(accessed)s +2703 X(message)s +514 X +2880 Y +1234 X(prev)s +1617 X(the)s +1764 X(message)s +2127 X(numerically)s +2629 X(preceding)s +3047 X(``cur'')s +514 X +3000 Y +1234 X(next)s +1617 X(the)s +1764 X(message)s +2127 X(numerically)s +2629 X(following)s +3043 X(``cur'')s +514 X +3240 Y +874 X(In)s +982 X(commands)s +1440 X(that)s +1615 X(take)s +1806 X(a)s +1875 X(`msg')s +2133 X(argument,)s +2560 X(the)s +2707 X(default)s +3009 X(is)s +3101 X(``cur''.)s +3435 X(As)s +3571 X(a)s +3640 X(shorthand,)s +4084 X(``.'')s +4266 X(is)s +4358 X(equivalent)s +4799 X(to)s +4902 X(``cur''.)s +514 X +3480 Y +874 X(For)s +1039 X(example:)s +1431 X(In)s +1540 X(a)s +1610 X(folder)s +1874 X(containing)s +2322 X(\256ve)s +2498 X(messages)s +2901 X(numbered)s +3326 X(5,)s +3427 X(10,)s +3578 X(94,)s +3729 X(177)s +3905 X(and)s +4074 X(325,)s +4274 X(``\256rst'')s +4587 X(is)s +4679 X(5)s +4754 X(and)s +4923 X(``last'')s +514 X +3600 Y +874 X(is)s +966 X(325.)s +1191 X(If)s +1282 X(``cur'')s +1566 X(is)s +1658 X(94,)s +1808 X(then)s +2005 X(``prev'')s +2339 X(is)s +2431 X(10)s +2556 X(and)s +2725 X(``next'')s +3054 X(is)s +3146 X(177.)s +514 X +3840 Y +874 X(The)s +1064 X(word)s +1304 X(`msgs')s +1611 X(indicates)s +2001 X(that)s +2186 X(one)s +2365 X(or)s +2483 X(more)s +2723 X(messages)s +3135 X(may)s +3342 X(be)s +3470 X(speci\256ed.)s +3909 X(Such)s +4143 X(a)s +4221 X(speci\256cation)s +4760 X(consists)s +5111 X(of)s +514 X +3960 Y +874 X(one)s +1052 X(message)s +1424 X(designation)s +1919 X(or)s +2036 X(of)s +2153 X(several)s +2468 X(message)s +2839 X(designations)s +3372 X(separated)s +3781 X(by)s +3914 X(spaces.)s +4257 X(A)s +4362 X(message)s +4733 X(designation)s +514 X +4080 Y +874 X(consists)s +1216 X(either)s +1468 X(of)s +1576 X(a)s +1645 X(message)s +2008 X(name)s +2249 X(as)s +2357 X(de\256ned)s +2676 X(above,)s +2964 X(or)s +3072 X(a)s +3141 X(message)s +3504 X(range.)s +514 X +4320 Y +874 X(A)s +979 X(message)s +1350 X(range)s +1604 X(is)s +1704 X(speci\256ed)s +2092 X(as)s +2208 X(``name1\261name2'')s +2955 X(or)s +3071 X(``name:n'',)s +3555 X(where)s +3830 X(`name',)s +4169 X(`name1')s +4533 X(and)s +4709 X(`name2')s +5073 X(are)s +514 X +4440 Y +874 X(message)s +1237 X(names,)s +1542 X(and)s +1711 X(`n')s +1852 X(is)s +1944 X(an)s +2063 X(integer.)s +514 X +4680 Y +874 X(The)s +1070 X(speci\256cation)s +1616 X(``name1\261name2'')s +2371 X(designates)s +2828 X(all)s +2969 X(currently-existing)s +3720 X(messages)s +4138 X(from)s +4372 X(`name1')s +4744 X(to)s +4862 X(`name2')s +514 X +4800 Y +874 X(inclusive.)s +1310 X(The)s +1490 X(message)s +1853 X(name)s +2094 X(``all'')s +2351 X(is)s +2443 X(a)s +2512 X(shorthand)s +2931 X(for)s +3072 X(the)s +3219 X(message)s +3582 X(range)s +3828 X(``\256rst\261last''.)s +514 X +5040 Y +874 X(The)s +1059 X(speci\256cation)s +1594 X(``name:n'')s +2050 X(designates)s +2496 X(up)s +2626 X(to)s +2733 X(`n')s +2878 X(messages.)s +3334 X(These)s +3601 X(messages)s +4007 X(start)s +4208 X(with)s +4415 X(`name')s +4726 X(if)s +4816 X(`name')s +5127 X(is)s +514 X +5160 Y +874 X(a)s +947 X(message)s +1314 X(number)s +1648 X(or)s +1760 X(one)s +1933 X(of)s +2045 X(the)s +2196 X(reserved)s +2562 X(names)s +2846 X(``\256rst'')s +3163 X(``cur'',)s +3476 X(or)s +3588 X(``next'',)s +3946 X(The)s +4129 X(messages)s +4534 X(end)s +4706 X(with)s +4912 X(`name')s +514 X +5280 Y +874 X(if)s +963 X(`name')s +1273 X(is)s +1368 X(``prev'')s +1705 X(or)s +1816 X(``last''.)s +2165 X(The)s +2348 X(interpretation)s +2914 X(of)s +3025 X(`n')s +3169 X(may)s +3369 X(be)s +3491 X(overridden)s +3951 X(by)s +4078 X(preceding)s +4498 X(`n')s +4641 X(with)s +4846 X(a)s +4917 X(plus)s +5111 X(or)s +514 X +5400 Y +874 X(minus)s +1152 X(sign;)s +1380 X(`+n')s +1585 X(always)s +1895 X(means)s +2183 X(up)s +2316 X(to)s +2427 X(`n')s +2576 X(messages)s +2985 X(starting)s +3317 X(with)s +3527 X(`name',)s +3866 X(and)s +4042 X(`\261n')s +4240 X(always)s +4549 X(means)s +4836 X(up)s +4968 X(to)s +5078 X(`n')s +514 X +5520 Y +874 X(messages)s +1276 X(ending)s +1573 X(with)s +1776 X(`name'.)s +514 X +5760 Y +874 X(In)s +991 X(commands)s +1458 X(which)s +1736 X(accept)s +2024 X(a)s +2102 X(`msgs')s +2408 X(argument,)s +2844 X(the)s +3000 X(default)s +3310 X(is)s +3410 X(either)s +3670 X(``cur'')s +3962 X(or)s +4078 X(``all'',)s +4368 X(depending)s +4817 X(on)s +4950 X(which)s +514 X +5880 Y +874 X(makes)s +1157 X(more)s +1390 X(sense)s +1633 X(for)s +1776 X(each)s +1985 X(command)s +2406 X(\(see)s +2593 X(the)s +2742 X(individual)s +3175 X(man)s +3374 X(pages)s +3628 X(for)s +3771 X(details\).)s +4142 X(Repeated)s +4540 X(speci\256cations)s +5111 X(of)s +514 X +6000 Y +874 X(the)s +1021 X(same)s +1251 X(message)s +1614 X(have)s +1827 X(the)s +1974 X(same)s +2204 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ect)s +2450 X(as)s +2558 X(a)s +2627 X(single)s +2891 X(speci\256cation)s +3421 X(of)s +3529 X(the)s +3676 X(message.)s +514 X +6360 Y +694 X +0.0 8 8 f.B ft(User\261De\256ned)s +1176 X(Message)s +1483 X(Sequences)s +514 X +6600 Y +874 X +0.0 10 10 f.R ft(In)s +1012 X(addition)s +1395 X(to)s +1528 X(the)s +1705 X(``reserved'')s +2229 X(\(pre-de\256ned\))s +2804 X(message)s +3197 X(names)s +3506 X(given)s +3782 X(above,)s +4099 X +0.0 10 10 f.I ft(MH)s +4308 X +0.0 10 10 f.R ft(supports)s +4701 X(user-de\256ned)s +514 X +6720 Y +874 X(sequence)s +1279 X(names.)s +1624 X(User-de\256ned)s +2179 X(sequences)s +2623 X(allow)s +2885 X(the)s +3047 X +0.0 10 10 f.I ft(MH)s +3241 X +0.0 10 10 f.R ft(user)s +3446 X(a)s +3529 X(tremendous)s +4034 X(amount)s +4373 X(of)s +4495 X(power)s +4783 X(in)s +4900 X(dealing)s +514 X +6840 Y +874 X(with)s +1079 X(groups)s +1378 X(of)s +1488 X(messages)s +1892 X(in)s +1997 X(the)s +2146 X(same)s +2378 X(folder)s +2643 X(by)s +2770 X(allowing)s +3147 X(the)s +3296 X(user)s +3489 X(to)s +3594 X(bind)s +3799 X(a)s +3870 X(group)s +4130 X(of)s +4240 X(messages)s +4643 X(to)s +4747 X(a)s +4817 X(meaning-)s +514 X +6960 Y +874 X(ful)s +1010 X(symbolic)s +1402 X(name.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 124 125 + +514 X +600 Y(MH-SEQUENCE\(5\))s +2746 X(-124-)s +4322 X(MH-SEQUENCE\(5\))s +514 X +960 Y +874 X +0.0 10 10 f.R ft(The)s +1061 X(name)s +1309 X(used)s +1524 X(to)s +1634 X(denote)s +1932 X(a)s +2008 X(message)s +2378 X(sequence)s +2775 X(must)s +3002 X(consist)s +3312 X(of)s +3427 X(an)s +3553 X(alphabetic)s +3995 X(character)s +4391 X(followed)s +4778 X(by)s +4909 X(zero)s +5111 X(or)s +514 X +1080 Y +874 X(more)s +1106 X(alphanumeric)s +1676 X(characters,)s +2131 X(and)s +2302 X(can)s +2467 X(not)s +2622 X(be)s +2743 X(one)s +2914 X(of)s +3024 X(the)s +3173 X(``reserved'')s +3669 X(message)s +4034 X(names)s +4316 X(above.)s +4630 X(After)s +4866 X(de\256ning)s +514 X +1200 Y +874 X(a)s +943 X(sequence,)s +1358 X(it)s +1439 X(can)s +1602 X(be)s +1721 X(used)s +1929 X(wherever)s +2324 X(an)s +2443 X +0.0 10 10 f.I ft(MH)s +2623 X +0.0 10 10 f.R ft(command)s +3042 X(expects)s +3366 X(a)s +3435 X(`msg')s +3693 X(or)s +3801 X(`msgs')s +4098 X(argument.)s +514 X +1440 Y +874 X(Some)s +1130 X(forms)s +1391 X(of)s +1502 X(message)s +1868 X(ranges)s +2156 X(are)s +2305 X(allowed)s +2649 X(with)s +2854 X(user-de\256ned)s +3374 X(sequences.)s +3855 X(The)s +4037 X(speci\256cation)s +4569 X(``name:n'')s +5022 X(may)s +514 X +1560 Y +874 X(be)s +998 X(used,)s +1236 X(and)s +1410 X(it)s +1496 X(designates)s +1942 X(up)s +2072 X(to)s +2180 X(the)s +2331 X(\256rst)s +2516 X(`n')s +2661 X(messages)s +3067 X(\(or)s +3212 X(last)s +3380 X(`n')s +3525 X(messages)s +3931 X(for)s +4076 X(`\261n'\))s +4304 X(which)s +4577 X(are)s +4727 X(elements)s +5111 X(of)s +514 X +1680 Y +874 X(the)s +1021 X(user-de\256ned)s +1539 X(sequence)s +1929 X(`name'.)s +514 X +1920 Y +874 X(The)s +1058 X(speci\256cations)s +1631 X(``name:next'')s +2208 X(and)s +2381 X(``name:prev'')s +2963 X(may)s +3164 X(also)s +3354 X(be)s +3477 X(used,)s +3714 X(and)s +3887 X(they)s +4088 X(designate)s +4494 X(the)s +4645 X(next)s +4845 X(or)s +4956 X(previ-)s +514 X +2040 Y +874 X(ous)s +1051 X(message)s +1427 X(\(relative)s +1797 X(to)s +1913 X(the)s +2073 X(current)s +2393 X(message\))s +2802 X(which)s +3084 X(is)s +3189 X(an)s +3321 X(element)s +3675 X(of)s +3796 X(the)s +3955 X(user-de\256ned)s +4485 X(sequence)s +4887 X(`name'.)s +514 X +2160 Y +874 X(The)s +1068 X(speci\256caitions)s +1679 X(``name:\256rst'')s +2250 X(and)s +2433 X(``name:last'')s +2987 X(are)s +3147 X(equivalent)s +3602 X(to)s +3719 X(``name:1'')s +4184 X(and)s +4367 X(``name:\2611'',)s +4907 X(respec-)s +514 X +2280 Y +874 X(tively.)s +1178 X(The)s +1359 X(speci\256cation)s +1890 X(``name:cur'')s +2419 X(is)s +2512 X(not)s +2666 X(allowed)s +3008 X(\(use)s +3200 X(just)s +3371 X(``cur'')s +3656 X(instead\).)s +4048 X(The)s +4229 X(syntax)s +4516 X(of)s +4625 X(these)s +4856 X(message)s +514 X +2400 Y +874 X(range)s +1120 X(specifcations)s +1666 X(is)s +1758 X(subject)s +2066 X(to)s +2169 X(change)s +2476 X(in)s +2579 X(the)s +2726 X(future.)s +514 X +2640 Y +874 X(User-de\256ned)s +1423 X(sequence)s +1822 X(names)s +2111 X(are)s +2266 X(speci\256c)s +2604 X(to)s +2715 X(each)s +2930 X(folder.)s +3251 X(They)s +3489 X(are)s +3643 X(de\256ned)s +3970 X(using)s +4220 X(the)s +4375 X +0.0 10 10 f.I ft(pick)s +4574 X +0.0 10 10 f.R ft(and)s +4751 X +0.0 10 10 f.I ft(mark)s +4989 X +0.0 10 10 f.R ft(com-)s +514 X +2760 Y +874 X(mands.)s +514 X +3120 Y +694 X +0.0 8 8 f.B ft(Public)s +932 X(and)s +1082 X(Private)s +1349 X(User-De\256ned)s +1817 X(Sequences)s +514 X +3360 Y +874 X +0.0 10 10 f.R ft(There)s +1133 X(are)s +1281 X(two)s +1458 X(varieties)s +1823 X(of)s +1933 X(sequences:)s +2392 X +0.0 10 10 f.I ft(public)s +2669 X +0.0 10 10 f.R ft(sequences)s +3100 X(and)s +3271 X +0.0 10 10 f.I ft(private)s +3580 X +0.0 10 10 f.R ft(sequences.)s +4060 X +0.0 10 10 f.I ft(Public)s +4347 X +0.0 10 10 f.R ft(sequences)s +4777 X(of)s +4886 X(a)s +4956 X(folder)s +514 X +3480 Y +874 X(are)s +1024 X(accessible)s +1457 X(to)s +1564 X(any)s +1737 X +0.0 10 10 f.I ft(MH)s +1921 X +0.0 10 10 f.R ft(user)s +2116 X(that)s +2295 X(can)s +2462 X(read)s +2662 X(that)s +2841 X(folder)s +3107 X(and)s +3279 X(are)s +3428 X(kept)s +3628 X(in)s +3734 X(the)s +3884 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(sequences)s +4519 X(\256le)s +4675 X(in)s +4781 X(the)s +4931 X(folder.)s +514 X +3600 Y +874 X +0.0 10 10 f.I ft(Private)s +1194 X +0.0 10 10 f.R ft(sequences)s +1624 X(are)s +1771 X(accessible)s +2201 X(only)s +2405 X(to)s +2509 X(the)s +2657 X +0.0 10 10 f.I ft(MH)s +2838 X +0.0 10 10 f.R ft(user)s +3030 X(that)s +3206 X(de\256ned)s +3526 X(those)s +3763 X(sequences)s +4193 X(and)s +4363 X(are)s +4509 X(kept)s +4706 X(in)s +4809 X(the)s +4956 X(user's)s +514 X +3720 Y +874 X +0.0 10 10 f.I ft(MH)s +1062 X +0.0 10 10 f.R ft(context)s +1389 X(\256le.)s +1600 X(By)s +1750 X(default,)s +2085 X +0.0 10 10 f.I ft(pick)s +2284 X +0.0 10 10 f.R ft(and)s +2461 X +0.0 10 10 f.I ft(mark)s +2699 X +0.0 10 10 f.R ft(create)s +2969 X +0.0 10 10 f.I ft(public)s +3252 X +0.0 10 10 f.R ft(sequences)s +3689 X(if)s +3783 X(the)s +3938 X(folder)s +4209 X(for)s +4358 X(which)s +4635 X(the)s +4790 X(sequences)s +514 X +3840 Y +874 X(are)s +1025 X(being)s +1277 X(de\256ned)s +1601 X(is)s +1697 X(writable)s +2053 X(by)s +2182 X(the)s +2333 X +0.0 10 10 f.I ft(MH)s +2517 X +0.0 10 10 f.R ft(user.)s +2762 X(Otherwise,)s +3226 X +0.0 10 10 f.I ft(private)s +3538 X +0.0 10 10 f.R ft(sequences)s +3971 X(are)s +4121 X(created.)s +4487 X(This)s +4694 X(can)s +4861 X(be)s +4984 X(over-)s +514 X +3960 Y +874 X(ridden)s +1154 X(with)s +1357 X(the)s +1504 X(`\261public')s +1895 X(and)s +2064 X(`\261private')s +2482 X(switches)s +2851 X(to)s +2954 X +0.0 10 10 f.I ft(mark)s +0.0 10 10 f.R ft(.)s +514 X +4320 Y +694 X +0.0 8 8 f.B ft(Sequence)s +1034 X(Negation)s +514 X +4560 Y +874 X +0.0 10 10 f.I ft(MH)s +1056 X +0.0 10 10 f.R ft(provides)s +1427 X(the)s +1576 X(ability)s +1859 X(to)s +1964 X(select)s +2218 X(all)s +2344 X(messages)s +2747 X(not)s +2901 X(elements)s +3282 X(of)s +3391 X(a)s +3461 X(user-de\256ned)s +3980 X(sequence.)s +4421 X(To)s +4558 X(do)s +4684 X(this,)s +4880 X(the)s +5028 X(user)s +514 X +4680 Y +874 X(should)s +1179 X(de\256ne)s +1461 X(the)s +1621 X(entry)s +1864 X(``Sequence\261Negation'')s +2832 X(in)s +2948 X(the)s +3108 X +0.0 10 10 f.I ft(MH)s +3301 X +0.0 10 10 f.R ft(pro\256le)s +3600 X(\256le;)s +3794 X(its)s +3927 X(value)s +4180 X(may)s +4389 X(be)s +4520 X(any)s +4701 X(string.)s +5016 X(This)s +514 X +4800 Y +874 X(string)s +1143 X(is)s +1251 X(then)s +1464 X(used)s +1688 X(to)s +1807 X(preface)s +2140 X(an)s +2274 X(existing)s +2631 X(user-de\256ned)s +3164 X(sequence)s +3569 X(name.)s +3875 X(This)s +4093 X(speci\256cation)s +4638 X(then)s +4850 X(refers)s +5116 X(to)s +514 X +4920 Y +874 X(those)s +1110 X(messages)s +1512 X(not)s +1665 X(elements)s +2045 X(of)s +2153 X(the)s +2300 X(speci\256ed)s +2680 X(sequence)s +3070 X(name.)s +3361 X(For)s +3525 X(example,)s +3913 X(if)s +3999 X(the)s +4146 X(pro\256le)s +4432 X(entry)s +4662 X(is:)s +514 X +5160 Y +1234 X(Sequence\261Negation:)s +0.0 10 10 f.S2 ft(P)s +2093 X +0.0 10 10 f.R ft(not)s +514 X +5400 Y +874 X(then)s +1081 X(anytime)s +1438 X(an)s +1567 X +0.0 10 10 f.I ft(MH)s +1757 X +0.0 10 10 f.R ft(command)s +2186 X(is)s +2288 X(given)s +2545 X(``notfoo'')s +2973 X(as)s +3091 X(a)s +3170 X(`msg')s +3438 X(or)s +3556 X(`msgs')s +3863 X(argument,)s +4300 X(it)s +4391 X(would)s +4676 X(substitute)s +5094 X(all)s +514 X +5520 Y +874 X(messages)s +1276 X(that)s +1451 X(are)s +1597 X(not)s +1750 X(elements)s +2130 X(of)s +2238 X(the)s +2385 X(sequence)s +2775 X(``foo''.)s +514 X +5760 Y +874 X(Obviously,)s +1360 X(the)s +1526 X(user)s +1736 X(should)s +2047 X(beware)s +2378 X(of)s +2505 X(de\256ning)s +2877 X(sequences)s +3324 X(with)s +3545 X(names)s +3843 X(that)s +4036 X(begin)s +4301 X(with)s +4522 X(the)s +4687 X(value)s +4946 X(of)s +5072 X(the)s +514 X +5880 Y +874 X(``Sequence\261Negation'')s +1829 X(pro\256le)s +2115 X(entry.)s +514 X +6240 Y +694 X +0.0 8 8 f.B ft(The)s +848 X(Previous)s +1165 X(Sequence)s +514 X +6480 Y +874 X +0.0 10 10 f.I ft(MH)s +1064 X +0.0 10 10 f.R ft(provides)s +1443 X(the)s +1600 X(ability)s +1891 X(to)s +2004 X(remember)s +2443 X(the)s +2600 X(`msgs')s +2907 X(or)s +3025 X(`msg')s +3292 X(argument)s +3703 X(last)s +3876 X(given)s +4132 X(to)s +4244 X(an)s +4372 X +0.0 10 10 f.I ft(MH)s +4561 X +0.0 10 10 f.R ft(command.)s +5039 X(The)s +514 X +6600 Y +874 X(entry)s +1112 X(``Previous\261Sequence'')s +2059 X(should)s +2359 X(be)s +2486 X(de\256ned)s +2813 X(in)s +2924 X(the)s +3079 X +0.0 10 10 f.I ft(MH)s +3267 X +0.0 10 10 f.R ft(pro\256le;)s +3589 X(its)s +3717 X(value)s +3965 X(should)s +4264 X(be)s +4390 X(a)s +4466 X(sequence)s +4863 X(name)s +5111 X(or)s +514 X +6720 Y +874 X(multiple)s +1255 X(sequence)s +1667 X(names)s +1969 X(separated)s +2392 X(by)s +2539 X(spaces.)s +2896 X(If)s +3009 X(this)s +3201 X(entry)s +3453 X(is)s +3567 X(de\256ned,)s +3933 X(when)s +4196 X(when)s +4459 X(an)s +4599 X +0.0 10 10 f.I ft(MH)s +4800 X +0.0 10 10 f.R ft(command)s +514 X +6840 Y +874 X(\256nishes,)s +1246 X(it)s +1343 X(will)s +1540 X(de\256ne)s +1824 X(the)s +1986 X(sequence\(s\))s +2496 X(named)s +2802 X(in)s +2920 X(the)s +3082 X(value)s +3338 X(of)s +3461 X(this)s +3646 X(entry)s +3891 X(to)s +4009 X(be)s +4143 X(those)s +4394 X(messages)s +4811 X(that)s +5001 X(were)s +514 X +6960 Y +874 X(speci\256ed)s +1254 X(to)s +1357 X(the)s +1504 X(command.)s +1973 X(Hence,)s +2277 X(a)s +2346 X(pro\256le)s +2632 X(entry)s +2862 X(of)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 125 126 + +514 X +600 Y(MH-SEQUENCE\(5\))s +2746 X(-125-)s +4322 X(MH-SEQUENCE\(5\))s +514 X +960 Y +1234 X +0.0 10 10 f.R ft(Previous\261Sequence:)s +0.0 10 10 f.S2 ft(P)s +2077 X +0.0 10 10 f.R ft(pseq)s +514 X +1200 Y +874 X(directs)s +1169 X(any)s +1342 X +0.0 10 10 f.I ft(MH)s +1526 X +0.0 10 10 f.R ft(command)s +1949 X(that)s +2128 X(accepts)s +2450 X(a)s +2523 X(`msg')s +2785 X(or)s +2897 X(`msgs')s +3198 X(argument)s +3604 X(to)s +3711 X(de\256ne)s +3984 X(the)s +4135 X(sequence)s +4529 X(``pseq'')s +4872 X(as)s +4983 X(those)s +514 X +1320 Y +874 X(messages)s +1276 X(when)s +1517 X(it)s +1598 X(\256nishes.)s +514 X +1560 Y +874 X +0.0 10 10 f.B ft(Note:)s +1136 X +0.0 10 10 f.R ft(there)s +1364 X(can)s +1531 X(be)s +1654 X(a)s +1727 X(performance)s +2259 X(penalty)s +2582 X(in)s +2689 X(using)s +2935 X(the)s +3086 X(``Previous\261Sequence'')s +4029 X(facility.)s +4391 X(If)s +4486 X(it)s +4571 X(is)s +4667 X(used,)s +4904 X +0.0 10 10 f.B ft(all)s +5039 X +0.0 10 10 f.I ft(MH)s +514 X +1680 Y +874 X +0.0 10 10 f.R ft(programs)s +1287 X(have)s +1511 X(to)s +1625 X(write)s +1866 X(the)s +2024 X(sequence)s +2425 X(information)s +2933 X(to)s +3047 X(the)s +3205 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(sequences)s +3848 X(\256le)s +4011 X(for)s +4162 X(the)s +4319 X(folder)s +4592 X(each)s +4809 X(time)s +5022 X(they)s +514 X +1800 Y +874 X(run.)s +1104 X(If)s +1217 X(the)s +1386 X(``Previous\261Sequence'')s +2347 X(pro\256le)s +2655 X(entry)s +2907 X(is)s +3021 X(not)s +3196 X(included,)s +3612 X(only)s +3837 X +0.0 10 10 f.I ft(pick)s +4050 X +0.0 10 10 f.R ft(and)s +4241 X +0.0 10 10 f.I ft(mark)s +4493 X +0.0 10 10 f.R ft(will)s +4696 X(write)s +4948 X(to)s +5072 X(the)s +514 X +1920 Y +874 X(.mh)s +Cru(sequences)s +1506 X(\256le.)s +514 X +2280 Y +694 X +0.0 8 8 f.B ft(The)s +848 X(Unseen)s +1117 X(Sequence)s +514 X +2520 Y +874 X +0.0 10 10 f.R ft(Finally,)s +1214 X(some)s +1456 X(users)s +1692 X(like)s +1873 X(to)s +1982 X(indicate)s +2329 X(messages)s +2736 X(which)s +3010 X(have)s +3228 X(not)s +3386 X(been)s +3604 X(previously)s +4056 X(seen)s +4263 X(by)s +4393 X(them.)s +4673 X(Both)s +4898 X +0.0 10 10 f.I ft(inc)s +5050 X +0.0 10 10 f.R ft(and)s +514 X +2640 Y +874 X +0.0 10 10 f.I ft(show)s +1117 X +0.0 10 10 f.R ft(honor)s +1387 X(the)s +1546 X(pro\256le)s +1844 X(entry)s +2086 X(``Unseen\261Sequence'')s +2986 X(to)s +3100 X(support)s +3436 X(this)s +3617 X(activity.)s +4003 X(This)s +4217 X(entry)s +4458 X(in)s +4572 X(the)s +4730 X(.mh)s +Cru(pro\256le)s +514 X +2760 Y +874 X(should)s +1202 X(be)s +1357 X(de\256ned)s +1712 X(as)s +1856 X(one)s +2061 X(or)s +2205 X(more)s +2471 X(sequence)s +2897 X(names)s +3213 X(separated)s +3650 X(by)s +3811 X(spaces.)s +4182 X(If)s +4309 X(there)s +4569 X(is)s +4697 X(a)s +4802 X(value)s +5078 X(for)s +514 X +2880 Y +874 X(``Unseen\261Sequence'')s +1767 X(in)s +1875 X(the)s +2027 X(pro\256le,)s +2343 X(then)s +2545 X(whenever)s +2962 X +0.0 10 10 f.I ft(inc)s +3114 X +0.0 10 10 f.R ft(places)s +3393 X(new)s +3589 X(messages)s +3996 X(in)s +4104 X(a)s +4178 X(folder,)s +4471 X(the)s +4622 X(new)s +4817 X(messages)s +514 X +3000 Y +874 X(will)s +1055 X(also)s +1241 X(be)s +1360 X(added)s +1623 X(to)s +1726 X(the)s +1873 X(sequence\(s\))s +2368 X(named)s +2659 X(in)s +2762 X(the)s +2909 X(value)s +3150 X(of)s +3258 X(this)s +3428 X(entry.)s +3708 X(Hence,)s +4012 X(a)s +4081 X(pro\256le)s +4367 X(entry)s +4597 X(of)s +514 X +3240 Y +1234 X(Unseen\261Sequence:)s +0.0 10 10 f.S2 ft(P)s +2026 X +0.0 10 10 f.R ft(unseen)s +514 X +3480 Y +874 X(directs)s +1226 X +0.0 10 10 f.I ft(inc)s +1434 X +0.0 10 10 f.R ft(to)s +1598 X(add)s +1828 X(new)s +2080 X(messages)s +2542 X(to)s +2705 X(the)s +2912 X(sequence)s +3362 X(``unseen''.)s +3906 X(Unlike)s +4263 X(the)s +4470 X(behavior)s +4904 X(of)s +5072 X(the)s +514 X +3600 Y +874 X(``Previous\261Sequence'')s +1813 X(entry)s +2043 X(in)s +2146 X(the)s +2293 X(pro\256le,)s +2604 X(however,)s +2997 X(the)s +3144 X(sequence\(s\))s +3639 X(will)s +3820 X +0.0 10 10 f.B ft(not)s +3984 X +0.0 10 10 f.R ft(be)s +4103 X(zeroed)s +4393 X(by)s +4518 X +0.0 10 10 f.I ft(inc)s +0.0 10 10 f.R ft(.)s +514 X +3840 Y +874 X(Similarly,)s +1309 X(whenever)s +1733 X +0.0 10 10 f.I ft(show)s +1976 X +0.0 10 10 f.R ft(\(or)s +2129 X +0.0 10 10 f.I ft(next)s +2332 X +0.0 10 10 f.R ft(or)s +2452 X +0.0 10 10 f.I ft(prev)s +0.0 10 10 f.S2 ft(P)s +0.0 10 10 f.R ft(\))s +2707 X(displays)s +3072 X(a)s +3153 X(message,)s +3553 X(that)s +3739 X(message)s +4113 X(will)s +4305 X(be)s +4435 X(removed)s +4820 X(from)s +5050 X(any)s +514 X +3960 Y +874 X(sequences)s +1303 X(named)s +1594 X(by)s +1719 X(the)s +1866 X(``Unseen\261Sequence'')s +2754 X(entry)s +2984 X(in)s +3087 X(the)s +3234 X(pro\256le.)s +514 X +4242 Y +0.0 8 8 f.B ft(Files)s +514 X +4362 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4482 Y +874 X(/context)s +2463 X(The)s +2643 X(user)s +2834 X(context)s +514 X +4602 Y +874 X(/.mh)s +Cru(sequences)s +2463 X(Public)s +2744 X(sequences)s +3173 X(for)s +3314 X()s +514 X +4806 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4926 Y +874 X +0.0 10 10 f.R ft(Sequence\261Negation:)s +1790 X(To)s +1926 X(designate)s +2328 X(messages)s +2730 X(not)s +2883 X(in)s +2986 X(a)s +3055 X(sequence)s +514 X +5046 Y +874 X(Previous\261Sequence:)s +1790 X(The)s +1970 X(last)s +2134 X(message)s +2497 X(speci\256cation)s +3027 X(given)s +514 X +5166 Y +874 X(Unseen\261Sequence:)s +1790 X(Those)s +2059 X(messages)s +2461 X(not)s +2614 X(yet)s +2761 X(seen)s +2963 X(by)s +3088 X(the)s +3235 X(user)s +514 X +5370 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5490 Y +874 X +0.0 10 10 f.R ft(mh\(1\),)s +1168 X(mark\(1\),)s +1539 X(pick\(1\),)s +1877 X(mh-pro\256le\(5\))s +514 X +5694 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5814 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +6018 Y +0.0 8 8 f.B ft(Context)s +514 X +6138 Y +874 X +0.0 10 10 f.R ft(All)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 126 127 + +514 X +600 Y(MH-SEQUENCE\(5\))s +2746 X(-126-)s +4322 X(MH-SEQUENCE\(5\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(User-de\256ned)s +1418 X(sequences)s +1851 X(are)s +2001 X(stored)s +2274 X(in)s +2381 X(the)s +2532 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(sequences)s +3168 X(\256le)s +3325 X(as)s +3437 X(a)s +3510 X(series)s +3766 X(of)s +3878 X(message)s +4245 X(speci\256cations)s +4818 X(separated)s +514 X +1200 Y +874 X(by)s +1004 X(spaces.)s +1344 X(If)s +1440 X(a)s +1514 X(user-de\256ned)s +2037 X(sequence)s +2432 X(contains)s +2795 X(too)s +2953 X(many)s +3205 X(individual)s +3641 X(message)s +4009 X(speci\256cations,)s +4607 X(that)s +4786 X(line)s +4965 X(in)s +5072 X(the)s +514 X +1320 Y +874 X(\256le)s +1029 X(may)s +1228 X(become)s +1565 X(too)s +1720 X(long)s +1925 X(for)s +2068 X +0.0 10 10 f.I ft(MH)s +2250 X +0.0 10 10 f.R ft(to)s +2355 X(handle.)s +2698 X(This)s +2903 X(will)s +3086 X(generate)s +3450 X(the)s +3599 X(error)s +3819 X(message)s +4184 X(``.mh)s +Cru(sequences)s +4884 X(is)s +4978 X(poor-)s +514 X +1440 Y +874 X(ly)s +977 X(formatted''.)s +1506 X(You'll)s +1792 X(have)s +2005 X(to)s +2108 X(edit)s +2283 X(the)s +2430 X(\256le)s +2583 X(by)s +2708 X(hand)s +2927 X(to)s +3030 X(remove)s +3354 X(the)s +3501 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ending)s +3909 X(line.)s +514 X +1680 Y +874 X(This)s +1085 X(can)s +1256 X(happen)s +1576 X(to)s +1686 X(users)s +1923 X(who)s +2127 X(de\256ne)s +2403 X(the)s +2557 X(``Previous\261Sequence'')s +3503 X(entry)s +3740 X(in)s +3850 X(the)s +4004 X +0.0 10 10 f.I ft(MH)s +4191 X +0.0 10 10 f.R ft(pro\256le)s +4484 X(and)s +4660 X(have)s +4880 X(a)s +4956 X(folder)s +514 X +1800 Y +874 X(containing)s +1336 X(many)s +1597 X(messages)s +2013 X(with)s +2230 X(gaps)s +2452 X(in)s +2569 X(the)s +2730 X(numbering.)s +3252 X(A)s +3363 X(workaround)s +3884 X(for)s +4039 X(large)s +4277 X(folders)s +4593 X(is)s +4699 X(to)s +4816 X(minimize)s +514 X +1920 Y +874 X(numbering)s +1332 X(gaps)s +1540 X(by)s +1665 X(using)s +1907 X(``folder)s +2236 X(\261pack'')s +2565 X(often.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 127 128 + +514 X +600 Y(AP\(8\))s +2746 X(-127-)s +4945 X(AP\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(ap)s +993 X(\261)s +1068 X(parse)s +1303 X(addresses)s +1710 X(822-style)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/ap)s +1777 X([\261form format\256le])s +2531 X([\261format string])s +3191 X([\261normalize])s +3731 X([\261nonormalize])s +4371 X([\261width columns])s +514 X +1560 Y +1234 X(addrs ...)s +1600 X([\261help])s +514 X +1800 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(Ap)s +1017 X +0.0 10 10 f.R ft(is)s +1116 X(a)s +1192 X(program)s +1562 X(that)s +1743 X(parses)s +2023 X(addresses)s +2436 X(according)s +2860 X(to)s +2969 X(the)s +3122 X(ARPA)s +3420 X(Internet)s +3761 X(standard.)s +4180 X(It)s +4272 X(also)s +4464 X(understands)s +4972 X(many)s +514 X +2160 Y +874 X(non\261standard)s +1437 X(formats.)s +1817 X(It)s +1903 X(is)s +1995 X(useful)s +2264 X(for)s +2405 X(seeing)s +2685 X(how)s +2882 X +0.0 10 10 f.I ft(MH)s +3062 X +0.0 10 10 f.R ft(will)s +3243 X(interpret)s +3606 X(an)s +3725 X(address.)s +514 X +2400 Y +874 X(The)s +1055 X +0.0 10 10 f.I ft(ap)s +1181 X +0.0 10 10 f.R ft(program)s +1545 X(treats)s +1787 X(each)s +1994 X(argument)s +2396 X(as)s +2504 X(one)s +2673 X(or)s +2781 X(more)s +3011 X(addresses,)s +3443 X(and)s +3612 X(prints)s +3865 X(those)s +4101 X(addresses)s +4508 X(out)s +4661 X(in)s +4764 X(the)s +4911 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icial)s +514 X +2520 Y +874 X(822\261format.)s +1415 X(Hence,)s +1719 X(it)s +1800 X(is)s +1892 X(usually)s +2206 X(best)s +2392 X(to)s +2495 X(enclose)s +2819 X(each)s +3026 X(argument)s +3428 X(in)s +3531 X(double\261quotes)s +4139 X(for)s +4280 X(the)s +4427 X(shell.)s +514 X +2760 Y +874 X(To)s +1011 X(override)s +1369 X(the)s +1517 X(output)s +1799 X(format)s +2091 X(used)s +2300 X(by)s +2426 X +0.0 10 10 f.I ft(ap)s +0.0 10 10 f.R ft(,)s +2577 X(the)s +2725 X(`\261format string')s +3386 X(or)s +3495 X(`\261format \256le')s +4056 X(switches)s +4426 X(are)s +4573 X(used.)s +4831 X(This)s +5034 X(per-)s +514 X +2880 Y +874 X(mits)s +1087 X(individual)s +1533 X(\256elds)s +1790 X(of)s +1913 X(the)s +2075 X(address)s +2414 X(to)s +2532 X(be)s +2666 X(extracted)s +3071 X(with)s +3289 X(ease.)s +3550 X(The)s +3745 X(string)s +4013 X(is)s +4120 X(simply)s +4433 X(a)s +4517 X(format)s +4822 X(stringand)s +514 X +3000 Y +874 X(the\256le)s +1149 X(is)s +1241 X(simply)s +1539 X(a)s +1608 X(format)s +1899 X(\256le.)s +2102 X(See)s +2271 X +0.0 10 10 f.I ft(mh\261format)s +2760 X +0.0 10 10 f.R ft(\(5\))s +2901 X(for)s +3042 X(the)s +3189 X(details.)s +514 X +3240 Y +874 X(In)s +982 X(addition)s +1335 X(to)s +1438 X(the)s +1585 X(standard)s +1948 X(escapes,)s +2302 X +0.0 10 10 f.I ft(ap)s +2427 X +0.0 10 10 f.R ft(also)s +2613 X(recognizes)s +3064 X(the)s +3211 X(following)s +3625 X(additional)s +4050 X(escape:)s +514 X +3480 Y +874 X +0.0 10 10 f.I ft(Escape)s +1206 X(Returns)s +1567 X(Description)s +514 X +3600 Y +874 X +0.0 10 10 f.R ft(error)s +1206 X(string)s +1567 X(A)s +1664 X(diagnostic)s +2100 X(if)s +2186 X(the)s +2333 X(parse)s +2568 X(failed)s +514 X +3840 Y +874 X(If)s +965 X(the)s +1112 X(`\261normalize')s +1652 X(switch)s +1938 X(is)s +2030 X(given,)s +2302 X +0.0 10 10 f.I ft(ap)s +2427 X +0.0 10 10 f.R ft(will)s +2608 X(try)s +2744 X(to)s +2847 X(track)s +3071 X(down)s +3318 X(the)s +3465 X(o)s +Cff(icial)s +3773 X(hostname)s +4181 X(of)s +4289 X(the)s +4436 X(address.)s +514 X +4080 Y +874 X(Here)s +1092 X(is)s +1184 X(the)s +1331 X(default)s +1633 X(format)s +1924 X(string)s +2177 X(used)s +2385 X(by)s +2510 X +0.0 10 10 f.I ft(ap)s +0.0 10 10 f.R ft(:)s +514 X +4320 Y +1234 X(%<{error}%{error}:)s +2087 X(%{text}%|%\(putstr\(proper{text}\)\)%>)s +514 X +4560 Y +874 X(which)s +1144 X(says)s +1342 X(that)s +1518 X(if)s +1604 X(an)s +1723 X(error)s +1941 X(was)s +2121 X(detected,)s +2503 X(print)s +2717 X(the)s +2864 X(error,)s +3107 X(a)s +3176 X(`:',)s +3320 X(and)s +3489 X(the)s +3636 X(address)s +3960 X(in)s +4063 X(error.)s +4331 X(Otherwise,)s +4791 X(output)s +5072 X(the)s +514 X +4680 Y +874 X(822\261proper)s +1359 X(format)s +1650 X(of)s +1758 X(the)s +1905 X(address.)s +514 X +4842 Y +0.0 8 8 f.B ft(Files)s +514 X +4962 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +5082 Y +874 X(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(tailor)s +2699 X(\256le)s +514 X +5286 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +5406 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5610 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5730 Y +874 X +0.0 10 10 f.R ft(dp\(8\),)s +514 X +5850 Y +874 X +0.0 10 10 f.I ft(Standard)s +1266 X(for)s +1408 X(the)s +1555 X(Format)s +1880 X(of)s +1983 X(ARPA)s +2252 X(Internet)s +2593 X(Text)s +2790 X(Messages)s +3203 X +0.0 10 10 f.R ft(\(aka)s +3399 X(RFC\261822\))s +514 X +6054 Y +0.0 8 8 f.B ft(Defaults)s +514 X +6174 Y +874 X +0.0 10 10 f.R ft(`\261format')s +1281 X(defaults)s +1622 X(as)s +1730 X(described)s +2137 X(above)s +514 X +6294 Y +874 X(`\261normalize')s +514 X +6414 Y +874 X(`\261width')s +1243 X(defaults)s +1584 X(to)s +1687 X(the)s +1834 X(width)s +2087 X(of)s +2195 X(the)s +2342 X(terminal)s +514 X +6618 Y +0.0 8 8 f.B ft(Context)s +514 X +6738 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 128 129 + +514 X +600 Y(AP\(8\))s +2746 X(-128-)s +4945 X(AP\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(Bugs)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(The)s +1065 X(argument)s +1478 X(to)s +1592 X(the)s +1750 X(`\261format')s +2168 X(switch)s +2465 X(must)s +2696 X(be)s +2826 X(interpreted)s +3294 X(as)s +3412 X(a)s +3491 X(single)s +3765 X(token)s +4022 X(by)s +4157 X(the)s +4314 X(shell)s +4538 X(that)s +4723 X(invokes)s +5069 X +0.0 10 10 f.I ft(ap)s +0.0 10 10 f.R ft(.)s +514 X +1200 Y +874 X(Therefore,)s +1316 X(one)s +1485 X(must)s +1705 X(usually)s +2019 X(place)s +2254 X(the)s +2401 X(argument)s +2803 X(to)s +2906 X(this)s +3076 X(switch)s +3362 X(inside)s +3626 X(double\261quotes.)s +514 X +1440 Y +874 X(On)s +1021 X(hosts)s +1252 X(where)s +1520 X +0.0 10 10 f.I ft(MH)s +1700 X +0.0 10 10 f.R ft(was)s +1880 X(con\256gured)s +2332 X(with)s +2535 X(the)s +2682 X(BERK)s +2974 X(option,)s +3280 X(address)s +3604 X(parsing)s +3923 X(is)s +4015 X(not)s +4168 X(enabled.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 129 130 + +514 X +600 Y(CONFLICT\(8\))s +2746 X(-129-)s +4550 X(CONFLICT\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(con\257ict)s +1199 X(\261)s +1274 X(search)s +1553 X(for)s +1694 X(alias/password)s +2307 X(con\257icts)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/con\257ict)s +1983 X([\261mail name])s +2543 X([\261search directory])s +3323 X([alias\256les...])s +3839 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Con\257ict)s +1216 X +0.0 10 10 f.R ft(is)s +1308 X(a)s +1377 X(program)s +1740 X(that)s +1915 X(checks)s +2211 X(to)s +2314 X(see)s +2466 X(if)s +2552 X(the)s +2699 X(interface)s +3072 X(between)s +3429 X +0.0 10 10 f.I ft(MH)s +3609 X +0.0 10 10 f.R ft(and)s +3778 X(transport)s +4158 X(system)s +4461 X(is)s +4553 X(in)s +4656 X(good)s +4881 X(shape)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(Con\257ict)s +1216 X +0.0 10 10 f.R ft(also)s +1402 X(checks)s +1698 X(for)s +1839 X(maildrops)s +2264 X(in)s +2367 X(/usr/spool/mail)s +2993 X(which)s +3262 X(do)s +3387 X(not)s +3540 X(belong)s +3837 X(to)s +3940 X(a)s +4009 X(valid)s +4234 X(user.)s +4475 X(It)s +4561 X(assumes)s +4919 X(that)s +5094 X(no)s +514 X +2280 Y +874 X(user)s +1073 X(name)s +1322 X(will)s +1511 X(start)s +1716 X(with)s +1927 X(`.',)s +2076 X(and)s +2253 X(thus)s +2453 X(ignores)s +2780 X(\256les)s +2980 X(in)s +3091 X(/usr/spool/mail)s +3724 X(which)s +4000 X(begin)s +4254 X(with)s +4464 X(`.'.)s +4637 X(It)s +4730 X(also)s +4923 X(checks)s +514 X +2400 Y +874 X(for)s +1020 X(entries)s +1316 X(in)s +1424 X(the)s +1576 X +0.0 10 10 f.I ft(group)s +1865 X +0.0 10 10 f.R ft(\(5\))s +2011 X(\256le)s +2169 X(which)s +2443 X(do)s +2573 X(not)s +2731 X(belong)s +3033 X(to)s +3141 X(a)s +3215 X(valid)s +3445 X(user,)s +3665 X(and)s +3838 X(for)s +3983 X(users)s +4217 X(who)s +4418 X(do)s +4547 X(not)s +4704 X(have)s +4921 X(a)s +4994 X(valid)s +514 X +2520 Y +874 X(group)s +1132 X(number.)s +1512 X(In)s +1620 X(addition)s +1973 X(duplicate)s +2364 X(users)s +2594 X(and)s +2763 X(groups)s +3060 X(are)s +3206 X(noted.)s +514 X +2760 Y +874 X(If)s +966 X(the)s +1114 X(`\261mail name')s +1675 X(switch)s +1962 X(is)s +2055 X(used,)s +2289 X(then)s +2486 X(the)s +2633 X(results)s +2919 X(will)s +3100 X(be)s +3219 X(sent)s +3405 X(to)s +3508 X(the)s +3655 X(speci\256ed)s +4035 X +0.0 10 10 f.I ft(name)s +0.0 10 10 f.R ft(.)s +4326 X(Otherwise,)s +4786 X(the)s +4933 X(results)s +514 X +2880 Y +874 X(are)s +1020 X(sent)s +1206 X(to)s +1309 X(the)s +1456 X(standard)s +1819 X(output.)s +514 X +3120 Y +874 X(The)s +1068 X(`\261search directory')s +1862 X(switch)s +2162 X(can)s +2339 X(be)s +2472 X(used)s +2694 X(to)s +2811 X(search)s +3104 X(directories)s +3564 X(other)s +3808 X(than)s +4019 X(/usr/spool/mail)s +4658 X(and)s +4840 X(to)s +4956 X(report)s +514 X +3240 Y +874 X(anomalies)s +1307 X(in)s +1413 X(those)s +1652 X(directories.)s +2151 X(The)s +2334 X(`\261search directory')s +3117 X(switch)s +3405 X(can)s +3570 X(appear)s +3862 X(more)s +4094 X(than)s +4293 X(one)s +4464 X(time)s +4669 X(in)s +4774 X(an)s +4895 X(invoca-)s +514 X +3360 Y +874 X(tion)s +1055 X(to)s +1158 X +0.0 10 10 f.I ft(con\257ict)s +0.0 10 10 f.R ft(.)s +514 X +3600 Y +874 X +0.0 10 10 f.I ft(Con\257ict)s +1216 X +0.0 10 10 f.R ft(should)s +1508 X(be)s +1627 X(run)s +1785 X(under)s +2062 X +0.0 10 10 f.I ft(cron)s +2295 X +0.0 10 10 f.R ft(\(8\),)s +2461 X(or)s +2569 X(whenever)s +2981 X(system)s +3284 X(accounting)s +3747 X(takes)s +3977 X(place.)s +514 X +3762 Y +0.0 8 8 f.B ft(Files)s +514 X +3882 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(tailor)s +2699 X(\256le)s +514 X +4002 Y +874 X(/etc/passwd)s +2463 X(List)s +2644 X(of)s +2752 X(users)s +514 X +4122 Y +874 X(/etc/group)s +2463 X(List)s +2644 X(of)s +2752 X(groups)s +514 X +4242 Y +874 X(/usr/bs/mh-beta/bin/mhmail)s +2463 X(Program)s +2832 X(to)s +2935 X(send)s +3143 X(mail)s +514 X +4362 Y +874 X(/usr/spool/mail/)s +2463 X(Directory)s +2870 X(of)s +2978 X(mail)s +3181 X(drop)s +514 X +4566 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4686 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4890 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +5010 Y +874 X +0.0 10 10 f.R ft(mh\261alias\(5\))s +514 X +5214 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5334 Y +874 X +0.0 10 10 f.R ft(`alias\256les')s +1315 X(defaults)s +1656 X(to)s +1759 X(/usr/bs/mh-beta/lib/MailAliases)s +514 X +5538 Y +0.0 8 8 f.B ft(Context)s +514 X +5658 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 130 131 + +514 X +600 Y(DP\(8\))s +2746 X(-130-)s +4945 X(DP\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(dp)s +999 X(\261)s +1074 X(parse)s +1309 X(dates)s +1539 X(822-style)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/dp)s +1783 X([\261form format\256le])s +2537 X([\261format string])s +3197 X([\261width columns])s +3930 X(dates ...)s +4285 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Dp)s +1038 X +0.0 10 10 f.R ft(is)s +1147 X(a)s +1233 X(program)s +1613 X(that)s +1805 X(parses)s +2096 X(dates)s +2343 X(according)s +2778 X(to)s +2898 X(the)s +3062 X(ARPA)s +3370 X(Internet)s +3721 X(standard.)s +4150 X(It)s +4252 X(also)s +4454 X(understands)s +4972 X(many)s +514 X +2040 Y +874 X(non\261standard)s +1442 X(formats,)s +1802 X(such)s +2015 X(as)s +2128 X(those)s +2368 X(produced)s +2768 X(by)s +2897 X(TOPS\26120)s +3321 X(sites)s +3528 X(and)s +3701 X(some)s +3941 X(UNIX)s +4219 X(sites)s +4426 X(using)s +4672 X +0.0 10 10 f.I ft(ctime)s +4938 X +0.0 10 10 f.R ft(\(3\).)s +5133 X(It)s +514 X +2160 Y +874 X(is)s +966 X(useful)s +1235 X(for)s +1376 X(seeing)s +1656 X(how)s +1853 X +0.0 10 10 f.I ft(MH)s +2033 X +0.0 10 10 f.R ft(will)s +2214 X(interpret)s +2577 X(a)s +2646 X(date.)s +514 X +2400 Y +874 X(The)s +1065 X +0.0 10 10 f.I ft(dp)s +1201 X +0.0 10 10 f.R ft(program)s +1575 X(treats)s +1826 X(each)s +2043 X(argument)s +2455 X(as)s +2573 X(a)s +2652 X(single)s +2926 X(date,)s +3152 X(and)s +3331 X(prints)s +3594 X(the)s +3751 X(date)s +3952 X(out)s +4115 X(in)s +4228 X(the)s +4385 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(icial)s +4703 X(822\261format.)s +514 X +2520 Y +874 X(Hence,)s +1178 X(it)s +1259 X(is)s +1351 X(usually)s +1665 X(best)s +1851 X(to)s +1954 X(enclose)s +2278 X(each)s +2485 X(argument)s +2887 X(in)s +2990 X(double\261quotes)s +3598 X(for)s +3739 X(the)s +3886 X(shell.)s +514 X +2760 Y +874 X(To)s +1011 X(override)s +1369 X(the)s +1517 X(output)s +1799 X(format)s +2091 X(used)s +2300 X(by)s +2426 X +0.0 10 10 f.I ft(dp)s +0.0 10 10 f.R ft(,)s +2577 X(the)s +2725 X(`\261format string')s +3386 X(or)s +3495 X(`\261format \256le')s +4056 X(switches)s +4426 X(are)s +4573 X(used.)s +4831 X(This)s +5034 X(per-)s +514 X +2880 Y +874 X(mits)s +1087 X(individual)s +1533 X(\256elds)s +1790 X(of)s +1913 X(the)s +2075 X(address)s +2414 X(to)s +2532 X(be)s +2666 X(extracted)s +3071 X(with)s +3289 X(ease.)s +3550 X(The)s +3745 X(string)s +4013 X(is)s +4120 X(simply)s +4433 X(a)s +4517 X(format)s +4822 X(stringand)s +514 X +3000 Y +874 X(the\256le)s +1149 X(is)s +1241 X(simply)s +1539 X(a)s +1608 X(format)s +1899 X(\256le.)s +2102 X(See)s +2271 X +0.0 10 10 f.I ft(mh\261format)s +2760 X +0.0 10 10 f.R ft(\(5\))s +2901 X(for)s +3042 X(the)s +3189 X(details.)s +514 X +3240 Y +874 X(Here)s +1092 X(is)s +1184 X(the)s +1331 X(default)s +1633 X(format)s +1924 X(string)s +2177 X(used)s +2385 X(by)s +2510 X +0.0 10 10 f.I ft(dp)s +0.0 10 10 f.R ft(:)s +514 X +3480 Y +1234 X(%<\(nodate{text}\)error:)s +2197 X(%{text}%|%\(putstr\(pretty{text}\)\)%>)s +514 X +3720 Y +874 X(which)s +1150 X(says)s +1354 X(that)s +1536 X(if)s +1629 X(an)s +1755 X(error)s +1980 X(was)s +2167 X(detected,)s +2556 X(print)s +2777 X(the)s +2931 X(error,)s +3181 X(a)s +3257 X(`:',)s +3408 X(and)s +3584 X(the)s +3738 X(date)s +3936 X(in)s +4045 X(error.)s +4319 X(Otherwise,)s +4785 X(output)s +5072 X(the)s +514 X +3840 Y +874 X(822\261proper)s +1359 X(format)s +1650 X(of)s +1758 X(the)s +1905 X(date.)s +514 X +4002 Y +0.0 8 8 f.B ft(Files)s +514 X +4122 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +4326 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +4446 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4650 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +4770 Y +874 X +0.0 10 10 f.R ft(ap\(8\))s +514 X +4890 Y +874 X +0.0 10 10 f.I ft(Standard)s +1266 X(for)s +1408 X(the)s +1555 X(Format)s +1880 X(of)s +1983 X(ARPA)s +2252 X(Internet)s +2593 X(Text)s +2790 X(Messages)s +3203 X +0.0 10 10 f.R ft(\(aka)s +3399 X(RFC\261822\))s +514 X +5094 Y +0.0 8 8 f.B ft(Defaults)s +514 X +5214 Y +874 X +0.0 10 10 f.R ft(`\261format')s +1281 X(default)s +1583 X(as)s +1691 X(described)s +2098 X(above)s +514 X +5334 Y +874 X(`\261width')s +1243 X(default)s +1545 X(to)s +1648 X(the)s +1795 X(width)s +2048 X(of)s +2156 X(the)s +2303 X(terminal)s +514 X +5538 Y +0.0 8 8 f.B ft(Context)s +514 X +5658 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +5862 Y +0.0 8 8 f.B ft(Bugs)s +514 X +5982 Y +874 X +0.0 10 10 f.R ft(The)s +1065 X(argument)s +1478 X(to)s +1592 X(the)s +1750 X(`\261format')s +2168 X(switch)s +2465 X(must)s +2696 X(be)s +2826 X(interpreted)s +3294 X(as)s +3412 X(a)s +3491 X(single)s +3765 X(token)s +4022 X(by)s +4157 X(the)s +4314 X(shell)s +4538 X(that)s +4723 X(invokes)s +5069 X +0.0 10 10 f.I ft(dp)s +0.0 10 10 f.R ft(.)s +514 X +6102 Y +874 X(Therefore,)s +1316 X(one)s +1485 X(must)s +1705 X(usually)s +2019 X(place)s +2254 X(the)s +2401 X(argument)s +2803 X(to)s +2906 X(this)s +3076 X(switch)s +3362 X(inside)s +3626 X(double\261quotes.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 131 132 + +514 X +600 Y(FMTDUMP\(8\))s +2746 X(-131-)s +4557 X(FMTDUMP\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(fmtdump)s +1266 X(\261)s +1341 X(decode)s +1648 X(MH)s +1834 X(format)s +2125 X(\256les)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/fmtdump)s +2050 X([\261form format\256le])s +2804 X([\261format string])s +3464 X([\261help])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.I ft(Fmtdump)s +1292 X +0.0 10 10 f.R ft(is)s +1394 X(a)s +1473 X(program)s +1846 X(that)s +2031 X(parses)s +2315 X(an)s +2444 X +0.0 10 10 f.I ft(MH)s +2634 X +0.0 10 10 f.R ft(format)s +2935 X(\256le)s +3098 X(and)s +3277 X(produces)s +3672 X(a)s +3751 X(pseudo-language)s +4462 X(listing)s +4748 X(of)s +4866 X(the)s +5022 X(how)s +514 X +2040 Y +874 X +0.0 10 10 f.I ft(MH)s +1054 X +0.0 10 10 f.R ft(interprets)s +1456 X(the)s +1603 X(\256le.)s +514 X +2280 Y +874 X(The)s +1055 X(`\261format string')s +1716 X(and)s +1886 X(`\261form format\256le')s +2641 X(switches)s +3011 X(may)s +3208 X(be)s +3327 X(used)s +3535 X(to)s +3638 X(specify)s +3951 X(a)s +4020 X(format)s +4311 X(string)s +4564 X(or)s +4672 X(format)s +4963 X(\256le)s +5116 X(to)s +514 X +2400 Y +874 X(read.)s +1131 X(The)s +1322 X(string)s +1586 X(is)s +1689 X(simply)s +1998 X(a)s +2078 X(format)s +2380 X(string)s +2644 X(and)s +2824 X(the)s +2982 X(\256le)s +3146 X(is)s +3249 X(simply)s +3558 X(a)s +3638 X(format)s +3939 X(\256le.)s +4152 X(See)s +4331 X +0.0 10 10 f.I ft(mh-format)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(\(5\))s +4921 X(for)s +5072 X(the)s +514 X +2520 Y +874 X(details.)s +514 X +2682 Y +0.0 8 8 f.B ft(Files)s +514 X +2802 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +2922 Y +874 X(/usr/bs/mh-beta/lib/scan.default)s +2463 X(The)s +2643 X(default)s +2945 X(format)s +3236 X(\256le)s +514 X +3126 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3246 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(determine)s +2350 X(the)s +2497 X(user's)s +2760 X(MH)s +2946 X(directory)s +514 X +3450 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +3570 Y +874 X +0.0 10 10 f.R ft(mh-format\(5\),)s +1467 X(mh-sequences\(8\))s +514 X +3774 Y +0.0 8 8 f.B ft(Context)s +514 X +3894 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +4098 Y +0.0 8 8 f.B ft(Bugs)s +514 X +4218 Y +874 X +0.0 10 10 f.R ft(The)s +1054 X(output)s +1335 X(may)s +1532 X(not)s +1685 X(be)s +1804 X(useful)s +2073 X(unless)s +2348 X(you)s +2523 X(are)s +2669 X(familiar)s +3010 X(with)s +3213 X(the)s +3360 X(internals)s +3729 X(of)s +3837 X(the)s +3984 X(mh-format)s +4436 X(subroutines.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 132 133 + +514 X +600 Y(INSTALL-MH\(8\))s +2746 X(-132-)s +4433 X(INSTALL-MH\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(install-mh)s +1305 X(\261)s +1380 X(initialize)s +1755 X(the)s +1902 X(MH)s +2088 X(environment)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/install\261mh)s +2106 X([\261auto])s +2419 X([\261compat])s +514 X +1680 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +1920 Y +874 X +0.0 10 10 f.R ft(When)s +1142 X(a)s +1216 X(user)s +1412 X(runs)s +1614 X(any)s +1788 X +0.0 10 10 f.I ft(MH)s +1973 X +0.0 10 10 f.R ft(program)s +2341 X(for)s +2487 X(the)s +2639 X(\256rst)s +2825 X(time,)s +3058 X(the)s +3210 X(program)s +3577 X(will)s +3762 X(invoke)s +4063 X +0.0 10 10 f.I ft(install\261mh)s +4515 X +0.0 10 10 f.R ft(\(with)s +4755 X(the)s +4906 X(`\261auto')s +514 X +2040 Y +874 X(switch\))s +1195 X(to)s +1300 X(query)s +1554 X(the)s +1702 X(user)s +1894 X(for)s +2036 X(the)s +2184 X(initial)s +2444 X +0.0 10 10 f.I ft(MH)s +2625 X +0.0 10 10 f.R ft(environment.)s +3206 X(The)s +3387 X(user)s +3579 X(does)s +3788 X +0.0 10 10 f.B ft(NOT)s +4031 X +0.0 10 10 f.R ft(invoke)s +4329 X(this)s +4500 X(program)s +4864 X(directly.)s +514 X +2160 Y +874 X(The)s +1061 X(user)s +1259 X(is)s +1358 X(asked)s +1617 X(for)s +1765 X(the)s +1919 X(name)s +2167 X(of)s +2282 X(the)s +2436 X(directory)s +2828 X(that)s +3010 X(will)s +3198 X(be)s +3324 X(designated)s +3783 X(as)s +3898 X(the)s +4052 X(user's)s +4322 X +0.0 10 10 f.I ft(MH)s +4509 X +0.0 10 10 f.R ft(directory.)s +4951 X(If)s +5049 X(this)s +514 X +2280 Y +874 X(directory)s +1264 X(does)s +1477 X(not)s +1635 X(exist,)s +1879 X(the)s +2031 X(user)s +2227 X(is)s +2324 X(asked)s +2581 X(if)s +2672 X(it)s +2758 X(should)s +3055 X(be)s +3179 X(created.)s +3546 X(Normally,)s +3984 X(this)s +4159 X(directory)s +4548 X(should)s +4844 X(be)s +4967 X(under)s +514 X +2400 Y +874 X(the)s +1041 X(user's)s +1324 X(home)s +1590 X(directory,)s +2019 X(and)s +2207 X(has)s +2384 X(the)s +2550 X(default)s +2871 X(name)s +3131 X(of)s +3258 X(Mail/.)s +3569 X(After)s +3823 X +0.0 10 10 f.I ft(install\261mh)s +4290 X +0.0 10 10 f.R ft(has)s +4467 X(written)s +4794 X(the)s +4960 X(initial)s +514 X +2520 Y +874 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +1363 X(for)s +1504 X(the)s +1651 X(user,)s +1867 X(control)s +2175 X(returns)s +2477 X(to)s +2580 X(the)s +2727 X(original)s +3063 X +0.0 10 10 f.I ft(MH)s +3243 X +0.0 10 10 f.R ft(program.)s +514 X +2760 Y +874 X(As)s +1015 X(with)s +1223 X(all)s +1353 X +0.0 10 10 f.I ft(MH)s +1538 X +0.0 10 10 f.R ft(commands,)s +2026 X +0.0 10 10 f.I ft(install\261mh)s +2479 X +0.0 10 10 f.R ft(\256rst)s +2665 X(consults)s +3023 X(the)s +3175 X +0.0 10 10 f.B ft($HOME)s +3572 X +0.0 10 10 f.R ft(envariable)s +4017 X(to)s +4125 X(determine)s +4554 X(the)s +4705 X(user's)s +4972 X(home)s +514 X +2880 Y +874 X(directory.)s +1309 X(If)s +1400 X +0.0 10 10 f.B ft($HOME)s +1792 X +0.0 10 10 f.R ft(is)s +1884 X(not)s +2037 X(set,)s +2198 X(then)s +2395 X(the)s +2542 X +0.0 10 10 f.I ft(/etc/passwd)s +3034 X +0.0 10 10 f.R ft(\256le)s +3187 X(is)s +3279 X(consulted.)s +514 X +3120 Y +874 X(When)s +1137 X(converting)s +1589 X(from)s +1808 X +0.0 10 10 f.I ft(mh.3)s +2030 X +0.0 10 10 f.R ft(to)s +2133 X +0.0 10 10 f.I ft(mh.4)s +0.0 10 10 f.R ft(,)s +2380 X +0.0 10 10 f.I ft(install\261mh)s +2828 X +0.0 10 10 f.R ft(is)s +2920 X(automatically)s +3489 X(invoked)s +3836 X(with)s +4039 X(the)s +4186 X(`\261compat')s +4621 X(switch.)s +514 X +3282 Y +0.0 8 8 f.B ft(Files)s +514 X +3402 Y +874 X +0.0 10 10 f.R ft($HOME/.mh)s +Cru(pro\256le)s +2463 X(The)s +2643 X(user)s +2834 X(pro\256le)s +514 X +3606 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +3726 Y +874 X +0.0 10 10 f.R ft(Path:)s +1790 X(To)s +1926 X(set)s +2062 X(the)s +2209 X(user's)s +2472 X(MH)s +2658 X(directory)s +514 X +3930 Y +0.0 8 8 f.B ft(Context)s +514 X +4050 Y +874 X +0.0 10 10 f.R ft(With)s +1099 X(`\261auto',)s +1437 X(the)s +1584 X(current)s +1891 X(folder)s +2154 X(is)s +2246 X(changed)s +2603 X(to)s +2706 X(``inbox''.)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 133 134 + +514 X +600 Y(POST\(8\))s +2746 X(-133-)s +4816 X(POST\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(NAME)s +514 X +1080 Y +874 X +0.0 10 10 f.R ft(post)s +1066 X(\261)s +1141 X(deliver)s +1443 X(a)s +1512 X(message)s +514 X +1320 Y +0.0 8 8 f.B ft(SYNOPSIS)s +514 X +1440 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/post)s +1850 X([\261alias alias\256le])s +2510 X([\261\256lter \256lter\256le])s +3182 X([\261no\256lter])s +3612 X([\261format])s +4019 X([\261noformat])s +4526 X([\261mime])s +514 X +1560 Y +1234 X([\261nomime])s +1703 X([\261msgid])s +2089 X([\261nomsgid])s +2575 X([\261verbose])s +3026 X([\261noverbose])s +3577 X([\261watch])s +3956 X([\261nowatch])s +4435 X([\261width columns])s +514 X +1680 Y +1234 X(\256le)s +1387 X([\261help])s +514 X +1920 Y +0.0 8 8 f.B ft(DESCRIPTION)s +514 X +2160 Y +874 X +0.0 10 10 f.I ft(Post)s +1077 X +0.0 10 10 f.R ft(is)s +1169 X(the)s +1316 X(program)s +1679 X(called)s +1942 X(by)s +2067 X +0.0 10 10 f.I ft(send)s +2300 X +0.0 10 10 f.R ft(\(1\))s +2441 X(to)s +2544 X(deliver)s +2846 X(the)s +2993 X(message)s +3356 X(in)s +3459 X +0.0 10 10 f.I ft(\256le)s +3606 X +0.0 10 10 f.R ft(to)s +3709 X(local)s +3928 X(and)s +4097 X(remote)s +4399 X(users.)s +4679 X(In)s +4787 X(fact,)s +4986 X(all)s +5111 X(of)s +514 X +2280 Y +874 X(the)s +1028 X(functions)s +1432 X(attributed)s +1847 X(to)s +1957 X +0.0 10 10 f.I ft(send)s +2172 X +0.0 10 10 f.R ft(on)s +2304 X(its)s +2431 X(manual)s +2757 X(page)s +2977 X(are)s +3130 X(performed)s +3576 X(by)s +3707 X +0.0 10 10 f.I ft(post)s +0.0 10 10 f.R ft(,)s +3930 X(with)s +4139 X +0.0 10 10 f.I ft(send)s +4353 X +0.0 10 10 f.R ft(acting)s +4628 X(as)s +4742 X(a)s +4817 X(relatively)s +514 X +2400 Y +874 X(simple)s +1168 X(preprocessor.)s +1753 X(Thus,)s +2004 X(it)s +2086 X(is)s +2179 X +0.0 10 10 f.I ft(post)s +2372 X +0.0 10 10 f.R ft(which)s +2642 X(parses)s +2917 X(the)s +3065 X(various)s +3385 X(header)s +3676 X(\256elds,)s +3944 X(appends)s +4297 X(From:)s +4568 X(and)s +4738 X(Date:)s +4980 X(lines,)s +514 X +2520 Y +874 X(and)s +1043 X(interacts)s +1406 X(with)s +1609 X(the)s +1756 X +0.0 10 10 f.I ft(MMDF)s +2080 X +0.0 10 10 f.R ft(transport)s +2460 X(system.)s +2813 X +0.0 10 10 f.I ft(Post)s +3016 X +0.0 10 10 f.R ft(will)s +3197 X(not)s +3350 X(normally)s +3736 X(be)s +3855 X(called)s +4118 X(directly)s +4448 X(by)s +4573 X(the)s +4720 X(user.)s +514 X +2760 Y +874 X +0.0 10 10 f.I ft(Post)s +1085 X +0.0 10 10 f.R ft(searches)s +1455 X(the)s +1610 X(``To:'',)s +1939 X(``cc:'',)s +2245 X(``Bcc:'',)s +2618 X(``Fcc:'',)s +2980 X(and)s +3157 X(``Resent\261xxx:'')s +3822 X(header)s +4120 X(lines)s +4342 X(of)s +4458 X(the)s +4613 X(speci\256ed)s +5000 X(mes-)s +514 X +2880 Y +874 X(sage)s +1087 X(for)s +1238 X(destination)s +1712 X(addresses,)s +2154 X(checks)s +2460 X(these)s +2700 X(addresses)s +3117 X(for)s +3268 X(validity,)s +3634 X(and)s +3813 X(formats)s +4153 X(them)s +4388 X(so)s +4512 X(as)s +4630 X(to)s +4743 X(conform)s +5116 X(to)s +514 X +3000 Y +874 X(ARPAnet)s +1298 X(Internet)s +1642 X(Message)s +2025 X(Format)s +2348 X(protocol,)s +2740 X(unless)s +3024 X(the)s +3180 X(`\261noformat')s +3696 X(\257ag)s +3880 X(is)s +3981 X(set.)s +4176 X(This)s +4388 X(will)s +4578 X(normally)s +4973 X(cause)s +514 X +3120 Y +874 X(``@)s +0.0 10 10 f.I ft(local\261site)s +0.0 10 10 f.R ft('')s +1516 X(to)s +1623 X(be)s +1746 X(appended)s +2157 X(to)s +2264 X(each)s +2475 X(local)s +2698 X(destination)s +3166 X(address,)s +3519 X(as)s +3631 X(well)s +3832 X(as)s +3944 X(any)s +4116 X(local)s +4338 X(return)s +4604 X(addresses.)s +5039 X(The)s +514 X +3240 Y +874 X(`\261width columns')s +1610 X(switch)s +1899 X(can)s +2065 X(be)s +2187 X(used)s +2397 X(to)s +2502 X(indicate)s +2845 X(the)s +2994 X(preferred)s +3385 X(length)s +3662 X(of)s +3772 X(the)s +3921 X(header)s +4213 X(components)s +4723 X(that)s +4900 X(contain)s +514 X +3360 Y +874 X(addresses.)s +514 X +3600 Y +874 X(If)s +982 X(a)s +1068 X(``Bcc:'')s +1425 X(\256eld)s +1645 X(is)s +1754 X(encountered,)s +2308 X(its)s +2445 X(addresses)s +2869 X(will)s +3067 X(be)s +3203 X(used)s +3428 X(for)s +3586 X(delivery,)s +3980 X(and)s +4165 X(the)s +4328 X(``Bcc:'')s +4684 X(\256eld)s +4903 X(will)s +5100 X(be)s +514 X +3720 Y +874 X(removed)s +1248 X(from)s +1467 X(the)s +1614 X(message)s +1977 X(sent)s +2163 X(to)s +2266 X(sighted)s +2580 X(recipients.)s +3043 X(The)s +3223 X(blind)s +3454 X(recipients)s +3867 X(will)s +4048 X(receive)s +4360 X(an)s +4479 X(entirely)s +4809 X(new)s +5000 X(mes-)s +514 X +3840 Y +874 X(sage)s +1078 X(with)s +1283 X(a)s +1354 X(minimal)s +1715 X(set)s +1853 X(of)s +1963 X(headers.)s +2344 X(Included)s +2720 X(in)s +2825 X(the)s +2973 X(body)s +3199 X(of)s +3308 X(the)s +3456 X(message)s +3820 X(will)s +4002 X(be)s +4122 X(a)s +4192 X(copy)s +4412 X(of)s +4521 X(the)s +4669 X(message)s +5033 X(sent)s +514 X +3960 Y +874 X(to)s +987 X(the)s +1144 X(sighted)s +1468 X(recipients.)s +1941 X(If)s +2042 X(`\261\256lter \256lter\256le')s +2724 X(is)s +2826 X(speci\256ed,)s +3241 X(then)s +3448 X(this)s +3627 X(copy)s +3855 X(is)s +3956 X(\256ltered)s +4273 X(\(re\261formatted\))s +4888 X(prior)s +5116 X(to)s +514 X +4080 Y +874 X(being)s +1122 X(sent)s +1309 X(to)s +1413 X(the)s +1561 X(blind)s +1793 X(recipients.)s +2257 X(Otherwise,)s +2718 X(to)s +2822 X(use)s +2981 X(the)s +3129 X(MIME)s +3427 X(rules)s +3647 X(for)s +3789 X(encapsulation,)s +4389 X(specify)s +4703 X(the)s +4850 X(`\261mime')s +514 X +4200 Y +874 X(switch.)s +514 X +4440 Y +874 X(The)s +1059 X(`\261alias alias\256le')s +1724 X(switch)s +2014 X(can)s +2181 X(be)s +2304 X(used)s +2516 X(to)s +2623 X(specify)s +2940 X(a)s +3013 X(\256le)s +3170 X(that)s +3349 X(post)s +3545 X(should)s +3841 X(take)s +4036 X(aliases)s +4331 X(from.)s +4604 X(More)s +4849 X(than)s +5050 X(one)s +514 X +4560 Y +874 X(\256le)s +1027 X(can)s +1190 X(be)s +1309 X(speci\256ed,)s +1714 X(each)s +1921 X(being)s +2168 X(preceded)s +2552 X(with)s +2755 X(`\261alias'.)s +3129 X(In)s +3237 X(any)s +3406 X(event,)s +3672 X(the)s +3819 X(primary)s +4160 X(alias)s +4368 X(\256le)s +4521 X(is)s +4613 X(read)s +4809 X(\256rst.)s +514 X +4800 Y +874 X(The)s +1061 X(`\261msgid')s +1454 X(switch)s +1747 X(indicates)s +2133 X(that)s +2314 X(a)s +2389 X(``Message\261ID:'')s +3084 X(or)s +3198 X(``Resent\261Message\261ID:'')s +4215 X(\256eld)s +4424 X(should)s +4722 X(be)s +4847 X(added)s +5116 X(to)s +514 X +4920 Y +874 X(the)s +1021 X(header.)s +514 X +5160 Y +874 X(The)s +1054 X(`\261verbose')s +1505 X(switch)s +1791 X(indicates)s +2171 X(that)s +2346 X(the)s +2493 X(user)s +2684 X(should)s +2976 X(be)s +3095 X(informed)s +3486 X(of)s +3594 X(each)s +3801 X(step)s +3987 X(of)s +4095 X(the)s +4242 X(posting/\256ling)s +4802 X(process.)s +514 X +5400 Y +874 X(The)s +1057 X(`\261watch')s +1439 X(switch)s +1728 X(indicates)s +2111 X(that)s +2289 X(the)s +2439 X(user)s +2632 X(would)s +2909 X(like)s +3086 X(to)s +3191 X(watch)s +3456 X(the)s +3605 X(transport)s +3987 X(system's)s +4364 X(handling)s +4741 X(of)s +4851 X(the)s +5000 X(mes-)s +514 X +5520 Y +874 X(sage)s +1076 X(\(e.g.,)s +1303 X(local)s +1522 X(and)s +1691 X(``fast'')s +1992 X(delivery\).)s +514 X +5760 Y +874 X +0.0 10 10 f.I ft(Post)s +1087 X +0.0 10 10 f.R ft(consults)s +1450 X(the)s +1607 X(envariable)s +2057 X +0.0 10 10 f.B ft($SIGNATURE)s +2737 X +0.0 10 10 f.R ft(to)s +2850 X(determine)s +3284 X(the)s +3441 X(sender's)s +3808 X(personal)s +4181 X(name)s +4432 X(in)s +4544 X(constructing)s +5072 X(the)s +514 X +5880 Y +874 X(``From:'')s +1276 X(line)s +1451 X(of)s +1559 X(the)s +1706 X(message.)s +514 X +6042 Y +0.0 8 8 f.B ft(Files)s +514 X +6162 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/mtstailor)s +2463 X(tailor)s +2699 X(\256le)s +514 X +6282 Y +874 X(/usr/bs/mh-beta/bin/re\256le)s +2463 X(Program)s +2832 X(to)s +2935 X(process)s +3259 X(Fcc:s)s +514 X +6402 Y +874 X(/usr/bs/mh-beta/lib/mhl)s +2463 X(Program)s +2832 X(to)s +2935 X(process)s +3259 X(Bcc:s)s +514 X +6522 Y +874 X(/usr/bs/mh-beta/lib/MailAliases)s +2463 X(Primary)s +2810 X(alias)s +3018 X(\256le)s +514 X +6726 Y +0.0 8 8 f.B ft(Pro\256le)s +760 X(Components)s +514 X +6846 Y +874 X +0.0 10 10 f.I ft(post)s +1066 X +0.0 10 10 f.R ft(does)s +1274 X +0.0 10 10 f.B ft(NOT)s +1516 X +0.0 10 10 f.R ft(consult)s +1830 X(the)s +1977 X(user's)s +2240 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le)s +514 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2693 X(MH.6.8)s +4675 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 134 135 + +514 X +600 Y(POST\(8\))s +2746 X(-134-)s +4816 X(POST\(8\))s +514 X +960 Y +0.0 8 8 f.B ft(See)s +649 X(Also)s +514 X +1080 Y +874 X +0.0 10 10 f.I ft(Standard)s +1266 X(for)s +1408 X(the)s +1555 X(Format)s +1880 X(of)s +1983 X(ARPA)s +2252 X(Internet)s +2593 X(Text)s +2790 X(Messages)s +3203 X +0.0 10 10 f.R ft(\(aka)s +3399 X(RFC\261822\),)s +514 X +1200 Y +874 X(mhmail\(1\),)s +1346 X(send\(1\),)s +1695 X(mh\261mail\(5\),)s +2217 X(mh\261alias\(5\))s +514 X +1404 Y +0.0 8 8 f.B ft(Defaults)s +514 X +1524 Y +874 X +0.0 10 10 f.R ft(`\261alias)s +1165 X(/usr/bs/mh-beta/lib/MailAliases')s +514 X +1644 Y +874 X(`\261format')s +514 X +1764 Y +874 X(`\261nomime')s +514 X +1884 Y +874 X(`\261nomsgid')s +514 X +2004 Y +874 X(`\261noverbose')s +514 X +2124 Y +874 X(`\261nowatch')s +514 X +2244 Y +874 X(`\261width)s +1210 X(72')s +514 X +2364 Y +874 X(`\261no\256lter')s +514 X +2568 Y +0.0 8 8 f.B ft(Context)s +514 X +2688 Y +874 X +0.0 10 10 f.R ft(None)s +514 X +2892 Y +0.0 8 8 f.B ft(Bugs)s +514 X +3012 Y +874 X +0.0 10 10 f.R ft(``Reply\261To:'')s +1465 X(\256elds)s +1713 X(are)s +1865 X(allowed)s +2212 X(to)s +2321 X(have)s +2540 X(groups)s +2843 X(in)s +2952 X(them)s +3183 X(according)s +3606 X(to)s +3714 X(the)s +3866 X(822)s +4046 X(speci\256cation,)s +4606 X(but)s +4764 X +0.0 10 10 f.I ft(post)s +4961 X +0.0 10 10 f.R ft(won't)s +514 X +3132 Y +874 X(let)s +999 X(you)s +1174 X(use)s +1332 X(them.)s +874 X +7320 Y +0.0 10 10 f.B ft([mh.6])s +2633 X(MH.6.8)s +4195 X(UCI version)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 135 136 + +874 X +960 Y +2019 X +0.0 12 12 f.B ft(5. REPORTING)s +2895 X(PROBLEMS)s +874 X +1572 Y +1124 X +0.0 10 10 f.R ft(If)s +1217 X(problems)s +1616 X(are)s +1764 X(encountered)s +2277 X(with)s +2481 X(an)s +2601 X +0.0 10 10 f.I ft(MH)s +2782 X +0.0 10 10 f.R ft(program,)s +3171 X(the)s +3319 X(problems)s +3717 X(should)s +4010 X(be)s +4130 X(reported)s +4488 X(to)s +4592 X(the)s +874 X +1692 Y(local)s +1097 X(maintainers)s +1592 X(of)s +1704 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +1938 X(When)s +2205 X(doing)s +2462 X(this,)s +2661 X(the)s +2812 X(name)s +3057 X(of)s +3169 X(the)s +3320 X(program)s +3687 X(should)s +3983 X(be)s +4106 X(reported,)s +4492 X(along)s +874 X +1812 Y(with)s +1085 X(the)s +1240 X(version)s +1567 X(information)s +2072 X(for)s +2221 X(the)s +2376 X(program.)s +2797 X(To)s +2941 X(\256nd)s +3130 X(out)s +3291 X(what)s +3518 X(version)s +3845 X(of)s +3961 X(an)s +4088 X +0.0 10 10 f.I ft(MH)s +4276 X +0.0 10 10 f.R ft(program)s +4647 X(is)s +874 X +1932 Y(being)s +1128 X(run,)s +1318 X(invoke)s +1622 X(the)s +1776 X(program)s +2146 X(with)s +2355 X(the)s +2508 X(`\261help')s +2827 X(switch.)s +3169 X(In)s +3283 X(addition)s +3642 X(to)s +3751 X(listing)s +4033 X(the)s +4186 X(syntax)s +4478 X(of)s +4592 X(the)s +874 X +2052 Y(command,)s +1319 X(the)s +1467 X(program)s +1831 X(will)s +2013 X(list)s +2162 X(information)s +2659 X(pertaining)s +3089 X(to)s +3192 X(its)s +3312 X(version.)s +3681 X(This)s +3884 X(information)s +4381 X(includes)s +874 X +2172 Y(the)s +1038 X(version)s +1374 X(of)s +1499 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +1721 X(the)s +1885 X(host)s +2094 X(it)s +2192 X(was)s +2389 X(generated)s +2818 X(on,)s +2985 X(and)s +3171 X(the)s +3335 X(date)s +3543 X(the)s +3707 X(program)s +4087 X(was)s +4284 X(loaded.)s +4642 X(A)s +874 X +2292 Y(second)s +1189 X(line)s +1377 X(of)s +1498 X(information,)s +2033 X(found)s +2304 X(on)s +2442 X(versions)s +2813 X(of)s +2934 X +0.0 10 10 f.I ft(MH)s +3127 X +0.0 10 10 f.R ft(after)s +3346 X(#5.380)s +3658 X(include)s +3989 X +0.0 10 10 f.I ft(MH)s +4181 X +0.0 10 10 f.R ft(con\256guration)s +874 X +2412 Y(options.)s +1244 X(For)s +1408 X(example,)s +874 X +2652 Y +1234 X(version:)s +1581 X(MH)s +1767 X(6.1)s +1917 X(#1[UCI])s +2280 X(\(nrtc-gremlin\))s +2870 X(of)s +2978 X(Wed)s +3191 X(Nov)s +3413 X(6)s +3488 X(01:13:53)s +3869 X(PST)s +4067 X(1985)s +874 X +2772 Y +1234 X(options:)s +1582 X([BSD42])s +1968 X([MHE])s +2281 X([NETWORK])s +2871 X([SENDMTS])s +3429 X([MMDFII])s +3892 X([SMTP])s +4245 X([POP])s +874 X +3012 Y(The)s +1063 X(`6.1)s +1255 X(#1[UCI]')s +1660 X(indicates)s +2049 X(that)s +2233 X(the)s +2389 X(program)s +2761 X(is)s +2862 X(from)s +3089 X(the)s +3244 X(UCI)s +3449 X +0.0 10 10 f.I ft(mh.6)s +3679 X +0.0 10 10 f.R ft(version)s +4006 X(of)s +4122 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +4360 X(The)s +4548 X(pro-)s +874 X +3132 Y(gram)s +1110 X(was)s +1296 X(generated)s +1714 X(on)s +1845 X(the)s +1997 X(host)s +2194 X(`nrtc-gremlin')s +2789 X(on)s +2919 X(`Wed)s +3170 X(Nov)s +3397 X(6)s +3477 X(01:13:53)s +3863 X(PST)s +4066 X(1985'.)s +4379 X(It's)s +4542 X(usu-)s +874 X +3252 Y(ally)s +1049 X(a)s +1118 X(good)s +1343 X(idea)s +1534 X(to)s +1637 X(send)s +1845 X(the)s +1992 X(output)s +2273 X(of)s +2381 X(the)s +2528 X(`\261help')s +2841 X(switch)s +3127 X(along)s +3374 X(with)s +3577 X(your)s +3785 X(report.)s +874 X +3492 Y(If)s +967 X(there)s +1193 X(is)s +1287 X(no)s +1414 X(local)s +1635 X +0.0 10 10 f.I ft(MH)s +1817 X +0.0 10 10 f.R ft(maintainer,)s +2296 X(try)s +2434 X(the)s +2583 X(address)s +2909 X +0.0 10 10 f.B ft(Bug-MH)s +0.0 10 10 f.R ft(.)s +3364 X(If)s +3457 X(that)s +3634 X(fails,)s +3858 X(use)s +4018 X(the)s +4167 X(Internet)s +4503 X(mail-)s +874 X +3612 Y(box)s +1049 X +0.0 10 10 f.B ft(Bug-MH@ICS.UCI.EDU)s +0.0 10 10 f.R ft(.)s +874 X +7320 Y +2686 X +0.0 10 10 f.B ft(-135-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 136 137 + +874 X +960 Y +2059 X +0.0 12 12 f.B ft(6. ADVANCED)s +2891 X(FEATURES)s +874 X +1572 Y +1124 X +0.0 10 10 f.R ft(This)s +1332 X(section)s +1645 X(describes)s +2046 X(some)s +2287 X(features)s +2632 X(of)s +2744 X +0.0 10 10 f.I ft(MH)s +2928 X +0.0 10 10 f.R ft(that)s +3107 X(were)s +3329 X(included)s +3702 X(strictly)s +4009 X(for)s +4154 X(advanced)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +1692 Y +0.0 10 10 f.R ft(users.)s +1164 X(These)s +1437 X(capabilities)s +1927 X(permit)s +2223 X +0.0 10 10 f.I ft(MH)s +2413 X +0.0 10 10 f.R ft(to)s +2526 X(exhibit)s +2839 X(more)s +3079 X(powerful)s +3474 X(behavior)s +3858 X(for)s +4009 X(the)s +4165 X(seasoned)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +1812 Y +0.0 10 10 f.R ft(users.)s +874 X +2232 Y +0.0 10 10 f.B ft(USER\261DEFINED)s +1666 X(SEQUENCES)s +0.0 10 10 f.R ft( )s +874 X +2394 Y +1124 X(User\261de\256ned)s +1696 X(sequences)s +2140 X(allow)s +2402 X(the)s +2564 X +0.0 10 10 f.I ft(MH)s +2759 X +0.0 10 10 f.R ft(user)s +2965 X(a)s +3049 X(tremendous)s +3554 X(amount)s +3893 X(of)s +4015 X(power)s +4303 X(in)s +4420 X(dealing)s +874 X +2514 Y(with)s +1079 X(groups)s +1378 X(of)s +1488 X(messages)s +1892 X(in)s +1997 X(the)s +2146 X(same)s +2378 X(folder)s +2643 X(by)s +2770 X(allowing)s +3147 X(the)s +3295 X(user)s +3487 X(to)s +3591 X(bind)s +3795 X(a)s +3865 X(group)s +4124 X(of)s +4233 X(messages)s +4636 X(to)s +874 X +2634 Y(a)s +947 X(meaningful)s +1431 X(symbolic)s +1827 X(name.)s +2122 X(The)s +2306 X(user)s +2501 X(may)s +2702 X(choose)s +3008 X(any)s +3181 X(name)s +3425 X(for)s +3569 X(a)s +3641 X(message)s +4007 X(sequence,)s +4425 X(as)s +4536 X(long)s +874 X +2754 Y(as)s +991 X(it)s +1081 X(consists)s +1432 X(of)s +1549 X(alphanumeric)s +2126 X(characters)s +2563 X(and)s +2741 X(does)s +2958 X(not)s +3119 X(con\257ict)s +3452 X(with)s +3663 X(the)s +3818 X(standard)s +4189 X +0.0 10 10 f.I ft(MH)s +4377 X +0.0 10 10 f.R ft(reserved)s +874 X +2874 Y(message)s +1244 X(names)s +1531 X(\(e.g.,)s +1765 X(``\256rst'',)s +2110 X(etc\).)s +2341 X(After)s +2583 X(de\256ning)s +2942 X(a)s +3017 X(sequence,)s +3438 X(it)s +3525 X(can)s +3694 X(be)s +3819 X(used)s +4033 X(wherever)s +4434 X(an)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +2994 Y +0.0 10 10 f.R ft(command)s +1293 X(expects)s +1617 X(a)s +1686 X(`msg')s +1944 X(or)s +2052 X(`msgs')s +2349 X(argument.)s +874 X +3156 Y +1124 X(A)s +1227 X(restricted)s +1629 X(form)s +1854 X(of)s +1968 X(message)s +2337 X(ranges)s +2628 X(are)s +2780 X(allowed)s +3127 X(with)s +3336 X(user\261de\256ned)s +3876 X(sequences.)s +4335 X(The)s +4520 X(form)s +874 X +3276 Y(``name:n'',)s +1361 X(speci\256es)s +1741 X(up)s +1877 X(to)s +1991 X(the)s +2149 X(\256rst)s +2341 X(`n')s +2492 X(messages)s +2904 X(which)s +3183 X(are)s +3339 X(part)s +3529 X(of)s +3647 X(the)s +3804 X(user\261de\256ned)s +4349 X(sequence)s +874 X +3396 Y(`name'.)s +1238 X(A)s +1342 X(leading)s +1668 X(plus)s +1867 X(sign)s +2065 X(is)s +2163 X(allowed)s +2510 X(on)s +2641 X(`n',)s +2813 X(but)s +2972 X(is)s +3070 X(ignored.)s +3456 X(The)s +3642 X(interpretation)s +4211 X(of)s +4325 X(n)s +4406 X(is)s +4504 X(over-)s +874 X +3516 Y(ridden)s +1162 X(if)s +1256 X(n)s +1339 X(is)s +1439 X(preceded)s +1831 X(by)s +1964 X(a)s +2041 X(minus)s +2319 X(sign;)s +2547 X(`\261n')s +2746 X(always)s +3056 X(means)s +3344 X(up)s +3477 X(to)s +3588 X(the)s +3742 X(last)s +3913 X(`n')s +4061 X(messages)s +4470 X(which)s +874 X +3636 Y(are)s +1020 X(part)s +1200 X(of)s +1308 X(the)s +1455 X(sequence)s +1845 X(`name'.)s +874 X +3798 Y +1124 X(Although)s +1529 X(all)s +1656 X +0.0 10 10 f.I ft(MH)s +1838 X +0.0 10 10 f.R ft(commands)s +2298 X(expand)s +2612 X(user\261de\256ned)s +3148 X(sequences)s +3578 X(as)s +3687 X(appropriate,)s +4192 X(there)s +4417 X(are)s +4564 X(two)s +874 X +3918 Y(commands)s +1332 X(that)s +1507 X(allow)s +1754 X(the)s +1901 X(user)s +2092 X(to)s +2195 X(de\256ne)s +2464 X(and)s +2633 X(manipulate)s +3102 X(them:)s +3355 X +0.0 10 10 f.I ft(pick)s +3546 X +0.0 10 10 f.R ft(and)s +3715 X +0.0 10 10 f.I ft(mark)s +0.0 10 10 f.R ft(.)s +874 X +4080 Y +0.0 10 10 f.B ft(Pick)s +1088 X(and)s +1275 X(User\261De\256ned)s +1877 X(Sequences)s +874 X +4242 Y +1124 X +0.0 10 10 f.R ft(Most)s +1357 X(users)s +1589 X(of)s +1699 X +0.0 10 10 f.I ft(MH)s +1881 X +0.0 10 10 f.R ft(will)s +2064 X(use)s +2224 X(user\261de\256ned)s +2761 X(sequences)s +3192 X(only)s +3396 X(with)s +3600 X(the)s +3748 X +0.0 10 10 f.I ft(pick)s +3940 X +0.0 10 10 f.R ft(command.)s +4410 X(By)s +4553 X(giv-)s +874 X +4362 Y(ing)s +1041 X(the)s +1202 X(`\261sequence name')s +1963 X(switch)s +2263 X(to)s +2380 X +0.0 10 10 f.I ft(pick)s +2585 X +0.0 10 10 f.R ft(\(which)s +2901 X(can)s +3078 X(occur)s +3338 X(more)s +3582 X(than)s +3793 X(once)s +4020 X(on)s +4159 X(the)s +4320 X(command)s +874 X +4482 Y(line\),)s +1111 X(each)s +1322 X(sequence)s +1716 X(named)s +2011 X(is)s +2107 X(de\256ned)s +2430 X(as)s +2542 X(those)s +2782 X(messages)s +3188 X(which)s +3461 X +0.0 10 10 f.I ft(pick)s +3655 X +0.0 10 10 f.R ft(matched)s +4021 X(according)s +4442 X(the)s +4592 X(the)s +874 X +4602 Y(selection)s +1254 X(criteria)s +1561 X(it)s +1642 X(was)s +1822 X(given.)s +2119 X(Hence,)s +874 X +4842 Y +1234 X(pick)s +1456 X(\261from)s +1750 X(frated)s +2032 X(\261seq)s +2265 X(fred)s +874 X +5082 Y(\256nds)s +1107 X(all)s +1245 X(those)s +1494 X(messages)s +1909 X(in)s +2025 X(the)s +2185 X(current)s +2505 X(folder)s +2781 X(which)s +3063 X(were)s +3294 X(from)s +3526 X(``frated'',)s +3953 X(creates)s +4267 X(a)s +4349 X(sequence)s +874 X +5202 Y(called)s +1137 X(``fred'',)s +1479 X(and)s +1648 X(then)s +1845 X(adds)s +2053 X(them)s +2278 X(to)s +2381 X(the)s +2528 X(sequence.)s +2968 X(The)s +3148 X(user)s +3339 X(could)s +3586 X(then)s +3783 X(invoke)s +874 X +5442 Y +1234 X(scan)s +1461 X(fred)s +874 X +5682 Y(to)s +981 X(get)s +1132 X(a)s +1205 X +0.0 10 10 f.I ft(scan)s +1417 X +0.0 10 10 f.R ft(listing)s +1697 X(of)s +1809 X(those)s +2049 X(messages.)s +2505 X(Note)s +2728 X(that)s +2907 X(by)s +3036 X(default,)s +3367 X +0.0 10 10 f.I ft(pick)s +3562 X +0.0 10 10 f.R ft(creates)s +3866 X(the)s +4016 X(named)s +4310 X(sequences)s +874 X +5802 Y(before)s +1166 X(it)s +1260 X(adds)s +1481 X(the)s +1641 X(selected)s +2000 X(messages)s +2415 X(to)s +2531 X(the)s +2691 X(sequence.)s +3143 X(Hence,)s +3459 X(if)s +3557 X(the)s +3716 X(named)s +4019 X(sequence)s +4421 X(already)s +874 X +5922 Y(existed,)s +1217 X(the)s +1374 X(sequence)s +1774 X(is)s +1876 X(destroyed)s +2299 X(prior)s +2528 X(to)s +2641 X(being)s +2897 X(re-de\256ned)s +3335 X(\(nothing)s +3708 X(happens)s +4069 X(to)s +4181 X(the)s +4337 X(messages)s +874 X +6042 Y(that)s +1052 X(were)s +1273 X(a)s +1345 X(part)s +1528 X(of)s +1639 X(this)s +1812 X(sequence,)s +2230 X(they)s +2430 X(simply)s +2730 X(cease)s +2972 X(to)s +3077 X(be)s +3198 X(members)s +3591 X(of)s +3701 X(that)s +3878 X(sequence\).)s +4353 X(By)s +4497 X(using)s +874 X +6162 Y(the)s +1021 X(`\261nozero')s +1433 X(switch,)s +1744 X(this)s +1914 X(behavior)s +2288 X(can)s +2451 X(be)s +2570 X(inhibited,)s +2976 X(as)s +3084 X(in)s +874 X +6402 Y +1234 X(pick)s +1456 X(\261from)s +1750 X(frated)s +2032 X(\261seq)s +2265 X(sgroup)s +874 X +6522 Y +1234 X(pick)s +1456 X(\261from)s +1750 X(fear)s +1954 X(\261seq)s +2187 X(sgroup)s +2509 X(\261nozero)s +874 X +6642 Y +1234 X(pick)s +1456 X(\261from)s +1750 X(freida)s +2032 X(\261seq)s +2265 X(sgroup)s +2587 X(\261nozero)s +874 X +6882 Y(\256nds)s +1100 X(all)s +1231 X(those)s +1473 X(messages)s +1881 X(in)s +1990 X(the)s +2143 X(current)s +2456 X(folder)s +2725 X(which)s +3000 X(were)s +3224 X(from)s +3449 X(``frated'',)s +3869 X(``fear'',)s +4211 X(or)s +4325 X(``freida'',)s +874 X +7002 Y(and)s +1075 X(de\256nes)s +1415 X(the)s +1594 X(sequence)s +2016 X(called)s +2311 X(``sgroup'')s +2771 X(as)s +2910 X(exactly)s +3254 X(those)s +3521 X(messages.)s +4004 X(These)s +4298 X(operations)s +874 X +7122 Y(amounted)s +1297 X(to)s +1404 X(an)s +1526 X(``inclusive\261or'')s +2180 X(of)s +2291 X(three)s +2518 X(selection)s +2901 X(criteria,)s +3236 X(using)s +3481 X +0.0 10 10 f.I ft(pick)s +0.0 10 10 f.R ft(,)s +3700 X(one)s +3872 X(can)s +4038 X(also)s +4227 X(generate)s +4592 X(the)s +874 X +7320 Y +2686 X +0.0 10 10 f.B ft(-136-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 137 138 + +874 X +600 Y +2686 X(-137-)s +874 X +960 Y +0.0 10 10 f.R ft(``and'')s +1175 X(of)s +1283 X(some)s +1519 X(selection)s +1899 X(criteria)s +2206 X(as)s +2314 X(well:)s +874 X +1200 Y +1234 X(pick)s +1456 X(\261from)s +1750 X(frated)s +2032 X(\261seq)s +2265 X(fred)s +874 X +1320 Y +1234 X(pick)s +1456 X(\261before)s +1810 X(friday)s +2098 X(\261seq)s +2331 X(fred)s +2541 X(fred)s +874 X +1560 Y(This)s +1080 X(example)s +1446 X(de\256nes)s +1757 X(the)s +1907 X(sequence)s +2300 X(called)s +2566 X(``fred'')s +2885 X(as)s +2995 X(exactly)s +3310 X(those)s +3548 X(messages)s +3952 X(from)s +4173 X(``frated'')s +4564 X(that)s +874 X +1700 Y(were)s +1092 X(dated)s +1333 X(prior)s +1552 X(to)s +1655 X(``friday''.)s +1660 Y +0.0 7 7 f.R ft(1)s +874 X +1862 Y +1124 X +0.0 10 10 f.I ft(Pick)s +1326 X +0.0 10 10 f.R ft(is)s +1418 X(normally)s +1804 X(used)s +2012 X(as)s +2120 X(a)s +2189 X(back\261quoted)s +2724 X(command,)s +3168 X(for)s +3309 X(example,)s +874 X +2102 Y +1234 X(scan)s +1461 X(`pick)s +1716 X(\261from)s +2010 X(postmaster`)s +874 X +2342 Y(Now)s +1096 X(suppose)s +1446 X(that)s +1624 X(the)s +1774 X(user)s +1968 X(decides)s +2295 X(that)s +2473 X(another)s +2800 X(command)s +3222 X(should)s +3517 X(be)s +3639 X(issued,)s +3942 X(using)s +4187 X(exactly)s +4503 X(those)s +874 X +2462 Y(messages.)s +1343 X(Since,)s +1632 X +0.0 10 10 f.I ft(pick)s +1840 X +0.0 10 10 f.R ft(wasn't)s +2147 X(given)s +2410 X(a)s +2495 X(`\261sequence name')s +3258 X(argument)s +3676 X(in)s +3795 X(this)s +3981 X(example,)s +4385 X(the)s +4548 X(user)s +874 X +2582 Y(would)s +1171 X(end\261up)s +1512 X(typing)s +1815 X(the)s +1984 X(entire)s +2258 X(back\261quoted)s +2815 X(command)s +3255 X(again.)s +3567 X(A)s +3685 X(simpler)s +4031 X(way)s +4243 X(is)s +4356 X(to)s +4480 X(add)s +4670 X(a)s +874 X +2702 Y(default)s +1176 X(sequence)s +1566 X(name)s +1807 X(to)s +1910 X(the)s +2057 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le.)s +2596 X(For)s +2760 X(example,)s +874 X +2942 Y +1234 X(pick:)s +1484 X(\261seq)s +1717 X(select)s +1994 X(\261list)s +874 X +3182 Y(will)s +1058 X(tell)s +1214 X +0.0 10 10 f.I ft(pick)s +1408 X +0.0 10 10 f.R ft(to)s +1514 X(always)s +1819 X(de\256ne)s +2091 X(the)s +2241 X(sequence)s +2634 X(``select'')s +3021 X(whenever)s +3436 X(it's)s +3592 X(run.)s +3802 X(The)s +3984 X(`-list')s +4233 X(is)s +4327 X(necessary)s +874 X +3302 Y(since)s +1114 X(the)s +1271 X(`\261sequence name')s +2028 X(switch)s +2324 X(sets)s +2508 X(`\261nolist')s +2881 X(whenever)s +3302 X(the)s +3458 X(former)s +3763 X(is)s +3864 X(encountered.)s +4435 X(Hence,)s +874 X +3422 Y(this)s +1053 X(pro\256le)s +1348 X(entry)s +1587 X(makes)s +1876 X +0.0 10 10 f.I ft(pick)s +2076 X +0.0 10 10 f.R ft(de\256ne)s +2354 X(the)s +2510 X(``select'')s +2903 X(sequence)s +3302 X(and)s +3480 X(otherwise)s +3901 X(behave)s +4216 X(exactly)s +4537 X(as)s +4653 X(if)s +874 X +3542 Y(there)s +1098 X(was)s +1278 X(no)s +1403 X(pro\256le)s +1689 X(entry)s +1919 X(at)s +2016 X(all.)s +874 X +3704 Y +0.0 10 10 f.B ft(Mark)s +1143 X(and)s +1330 X(User\261De\256ned)s +1932 X(Sequences)s +874 X +3866 Y +1124 X +0.0 10 10 f.R ft(The)s +1309 X +0.0 10 10 f.I ft(mark)s +1543 X +0.0 10 10 f.R ft(command)s +1966 X(lets)s +2134 X(the)s +2285 X(user)s +2480 X(perform)s +2830 X(low\261level)s +3253 X(manipulation)s +3810 X(of)s +3922 X(sequences,)s +4380 X(and)s +4553 X(also)s +874 X +3986 Y(provides)s +1251 X(a)s +1328 X(well\261needed)s +1865 X(debug)s +2142 X(facility)s +2457 X(to)s +2567 X(the)s +2721 X(implementors/developers/maintainers)s +4257 X(of)s +4372 X +0.0 10 10 f.I ft(MH)s +4559 X +0.0 10 10 f.R ft(\(the)s +874 X +4106 Y +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(\261hacks\).)s +1416 X(In)s +1526 X(the)s +1675 X(future,)s +1965 X(a)s +2036 X(user\261friendly)s +2595 X(``front\261end'')s +3142 X(for)s +3285 X +0.0 10 10 f.I ft(mark)s +3517 X +0.0 10 10 f.R ft(will)s +3699 X(probably)s +4080 X(be)s +4200 X(developed)s +4636 X(to)s +874 X +4226 Y(give)s +1071 X(the)s +1218 X +0.0 10 10 f.I ft(MH)s +1398 X +0.0 10 10 f.R ft(user)s +1589 X(a)s +1658 X(way)s +1849 X(to)s +1952 X(take)s +2143 X(better)s +2395 X(advantage)s +2824 X(of)s +2932 X(the)s +3079 X(underlying)s +3537 X(facilities.)s +874 X +4388 Y +0.0 10 10 f.B ft(Public)s +1172 X(and)s +1359 X(Private)s +1694 X(User\261De\256ned)s +2296 X(Sequences)s +874 X +4550 Y +1124 X +0.0 10 10 f.R ft(There)s +1405 X(are)s +1575 X(two)s +1774 X(kinds)s +2040 X(of)s +2172 X(sequences:)s +2653 X +0.0 10 10 f.I ft(public)s +2951 X +0.0 10 10 f.R ft(sequences,)s +3428 X(and)s +3620 X +0.0 10 10 f.I ft(private)s +3951 X +0.0 10 10 f.R ft(sequences.)s +4453 X +0.0 10 10 f.I ft(Public)s +874 X +4670 Y +0.0 10 10 f.R ft(sequences)s +1306 X(of)s +1417 X(a)s +1489 X(folder)s +1755 X(are)s +1904 X(accessible)s +2336 X(to)s +2441 X(any)s +2612 X +0.0 10 10 f.I ft(MH)s +2794 X +0.0 10 10 f.R ft(user)s +2987 X(that)s +3164 X(can)s +3329 X(read)s +3527 X(that)s +3704 X(folder)s +3969 X(and)s +4140 X(are)s +4288 X(kept)s +4487 X(in)s +4592 X(the)s +874 X +4790 Y(.mh)s +Cru(sequences)s +1520 X(\256le)s +1687 X(in)s +1804 X(the)s +1965 X(folder.)s +2292 X +0.0 10 10 f.I ft(Private)s +2625 X +0.0 10 10 f.R ft(sequences)s +3068 X(are)s +3228 X(accessible)s +3671 X(only)s +3888 X(to)s +4005 X(the)s +4166 X +0.0 10 10 f.I ft(MH)s +4360 X +0.0 10 10 f.R ft(user)s +4564 X(that)s +874 X +4910 Y(de\256ned)s +1213 X(those)s +1469 X(sequences)s +1918 X(and)s +2107 X(are)s +2273 X(kept)s +2490 X(in)s +2613 X(the)s +2779 X(user's)s +3061 X +0.0 10 10 f.I ft(MH)s +3260 X +0.0 10 10 f.R ft(context)s +3598 X(\256le.)s +3820 X(By)s +3981 X(default,)s +4327 X +0.0 10 10 f.I ft(pick)s +4537 X +0.0 10 10 f.R ft(\(and)s +874 X +5030 Y +0.0 10 10 f.I ft(mark)s +1129 X +0.0 10 10 f.R ft(\))s +1193 X(create)s +1461 X +0.0 10 10 f.I ft(public)s +1742 X +0.0 10 10 f.R ft(sequences)s +2177 X(if)s +2269 X(the)s +2422 X(folder)s +2690 X(for)s +2836 X(which)s +3110 X(the)s +3262 X(sequences)s +3696 X(are)s +3847 X(being)s +4099 X(de\256ned)s +4423 X(is)s +4520 X(writ-)s +874 X +5150 Y(able)s +1075 X(by)s +1210 X(the)s +1367 X +0.0 10 10 f.I ft(MH)s +1557 X +0.0 10 10 f.R ft(user.)s +1808 X(Otherwise,)s +2277 X +0.0 10 10 f.I ft(private)s +2594 X +0.0 10 10 f.R ft(sequences)s +3032 X(are)s +3187 X(created.)s +3558 X(This)s +3770 X(can)s +3942 X(be)s +4070 X(overridden)s +4536 X(with)s +874 X +5270 Y(the)s +1021 X(`\261public')s +1412 X(and)s +1581 X(`\261nopublic')s +2072 X(switches.)s +874 X +5432 Y +0.0 10 10 f.B ft(Sequence)s +1299 X(Negation)s +874 X +5594 Y +1124 X +0.0 10 10 f.R ft(In)s +1232 X(addition)s +1585 X(to)s +1688 X(telling)s +1969 X(an)s +2088 X +0.0 10 10 f.I ft(MH)s +2268 X +0.0 10 10 f.R ft(command)s +2687 X(to)s +2790 X(use)s +2948 X(the)s +3095 X(messages)s +3497 X(in)s +3600 X(the)s +3747 X(sequence)s +4137 X(``seen'',)s +4496 X(as)s +4604 X(in)s +874 X +5834 Y +1234 X(re\256le)s +1489 X(seen)s +1716 X(+old)s +874 X +6034 Y +1090 X +0.0 5 5 f.R ft(1)s +6066 Y +1135 X +0.0 8 8 f.R ft(Of)s +1239 X(course,)s +1486 X(it)s +1550 X(is)s +1623 X(much)s +1820 X(easier)s +2024 X(to)s +2106 X(simply)s +2343 X(use)s +2469 X(the)s +2586 X(built\261in)s +2854 X(boolean)s +3126 X(operation)s +3446 X(of)s +3532 X +0.0 8 8 f.I ft(pick)s +3684 X +0.0 8 8 f.R ft(to)s +3766 X(get)s +3883 X(the)s +4000 X(desired)s +4249 X(results:)s +874 X +6258 Y +1234 X(pick)s +1411 X(\261from)s +1645 X(frated)s +1869 X(\261or)s +2015 X(\261from)s +2249 X(fear)s +2411 X(\261or)s +2557 X(\261from)s +2791 X(freida)s +3015 X(\261seq)s +3201 X(sgroup)s +874 X +6450 Y(and)s +874 X +6642 Y +1234 X(pick)s +1411 X(\261from)s +1645 X(frated)s +1869 X(\261and)s +2064 X(\261before)s +2346 X(friday)s +2575 X(\261seq)s +2761 X(fred)s +874 X +6834 Y(do)s +984 X(exactly)s +1243 X(the)s +1370 X(same)s +1563 X(thing)s +1757 X(as)s +1853 X(the)s +1980 X(\256ve)s +2130 X(commands)s +2505 X(listed)s +2707 X(above.)s +2967 X(Hence,)s +3220 X(the)s +3347 X(`\261nozero')s +3685 X(option)s +3919 X(to)s +4011 X +0.0 8 8 f.I ft(pick)s +4173 X +0.0 8 8 f.R ft(is)s +4256 X(only)s +4428 X(useful)s +4652 X(to)s +874 X +6930 Y(manipulate)s +1247 X(existing)s +1519 X(sequences.)s +7920 Y +page +0.0 8 8 f.R ft +%%Page: 138 139 + +874 X +600 Y +2686 X +0.0 10 10 f.B ft(-138-)s +874 X +960 Y +0.0 10 10 f.R ft(it)s +959 X(would)s +1238 X(be)s +1361 X(useful)s +1634 X(to)s +1741 X(be)s +1864 X(easily)s +2126 X(able)s +2321 X(to)s +2428 X(tell)s +2585 X(an)s +2708 X +0.0 10 10 f.I ft(MH)s +2892 X +0.0 10 10 f.R ft(command)s +3315 X(to)s +3421 X(use)s +3582 X(all)s +3710 X(messages)s +4115 X +0.0 10 10 f.I ft(except)s +4397 X +0.0 10 10 f.R ft(those)s +4636 X(in)s +874 X +1080 Y(the)s +1026 X(sequence.)s +1471 X(One)s +1667 X(way)s +1863 X(of)s +1976 X(doing)s +2234 X(this)s +2409 X(would)s +2689 X(be)s +2813 X(to)s +2921 X(use)s +3084 X +0.0 10 10 f.I ft(mark)s +3319 X +0.0 10 10 f.R ft(and)s +3493 X(de\256ne)s +3766 X(the)s +3917 X(sequence)s +4311 X(explicitly,)s +874 X +1200 Y(as)s +982 X(in)s +874 X +1440 Y +1234 X(mark)s +1489 X(\261delete)s +1827 X(\261zero)s +2098 X(seen)s +2325 X(\261seq)s +2558 X(notseen)s +874 X +1680 Y(which,)s +1180 X(owing)s +1467 X(to)s +1582 X +0.0 10 10 f.I ft(mark)s +1837 X +0.0 10 10 f.R ft('s)s +1946 X(cryptic)s +2260 X(interpretation)s +2835 X(of)s +2954 X(`\261delete')s +3344 X(and)s +3524 X(`\261zero',)s +3872 X(de\256nes)s +4191 X(the)s +4349 X(sequence)s +874 X +1800 Y(``notseen'')s +1349 X(to)s +1465 X(be)s +1597 X(all)s +1735 X(messages)s +2150 X(not)s +2316 X(in)s +2432 X(the)s +2592 X(sequence)s +2995 X(``seen''.)s +3392 X(Naturally,)s +3831 X(anytime)s +4190 X(the)s +4349 X(sequence)s +874 X +1920 Y(``seen'')s +1225 X(is)s +1334 X(changed,)s +1733 X(``notseen'')s +2212 X(will)s +2410 X(have)s +2640 X(to)s +2760 X(be)s +2896 X(updated.)s +3303 X(Another)s +3671 X(way)s +3878 X(to)s +3997 X(achieve)s +4342 X(this)s +4528 X(is)s +4636 X(to)s +874 X +2040 Y(de\256ne)s +1143 X(the)s +1290 X(entry)s +1520 X(``Sequence\261Negation:'')s +2503 X(in)s +2606 X(the)s +2753 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le.)s +3292 X(If)s +3383 X(the)s +3530 X(entry)s +3760 X(was)s +874 X +2280 Y +1234 X(Sequence\261Negation:)s +2110 X(not)s +874 X +2520 Y(then)s +1078 X(anytime)s +1431 X(an)s +1556 X +0.0 10 10 f.I ft(MH)s +1742 X +0.0 10 10 f.R ft(command)s +2167 X(was)s +2353 X(given)s +2606 X(``notseen'')s +3074 X(as)s +3188 X(a)s +3263 X(`msg')s +3527 X(or)s +3641 X(`msgs')s +3944 X(argument,)s +4377 X(it)s +4464 X(would)s +874 X +2640 Y(substitute)s +1283 X(all)s +1408 X(messages)s +1810 X(that)s +1985 X(are)s +2131 X(not)s +2284 X(a)s +2353 X(member)s +2705 X(of)s +2813 X(the)s +2960 X(sequence)s +3350 X(``seen''.)s +3734 X(That)s +3942 X(is,)s +874 X +2880 Y +1234 X(re\256le)s +1489 X(notseen)s +1844 X(+new)s +874 X +3120 Y(does)s +1090 X(just)s +1268 X(that.)s +1501 X(The)s +1688 X(value)s +1936 X(of)s +2051 X(the)s +2205 X(``Sequence\261Negation:'')s +3195 X(entry)s +3432 X(in)s +3542 X(the)s +3696 X(pro\256le)s +3989 X(can)s +4159 X(be)s +4285 X(any)s +4461 X(string.)s +874 X +3240 Y(Hence,)s +1187 X(experienced)s +1702 X(users)s +1940 X(of)s +2056 X +0.0 10 10 f.I ft(MH)s +2244 X +0.0 10 10 f.R ft(do)s +2377 X(not)s +2538 X(use)s +2704 X(a)s +2781 X(word,)s +3044 X(but)s +3205 X(rather)s +3470 X(a)s +3547 X(special)s +3857 X(character)s +4254 X(which)s +4531 X(their)s +874 X +3360 Y(shell)s +1098 X(does)s +1316 X(not)s +1479 X(interpret)s +1852 X(\(users)s +2125 X(of)s +2242 X(the)s +2398 X +0.0 10 10 f.I ft(CShell)s +2699 X +0.0 10 10 f.R ft(use)s +2866 X(a)s +2944 X(single)s +3217 X(caret)s +3444 X(or)s +3561 X(circum\257ex)s +4022 X(\(usually)s +4378 X(shift\2616\),)s +874 X +3480 Y(while)s +1127 X(users)s +1363 X(of)s +1477 X(the)s +1630 X(Bourne)s +1955 X(shell)s +2175 X(use)s +2339 X(an)s +2464 X(exclamation\261mark\).)s +3321 X(This)s +3530 X(is)s +3628 X(because)s +3974 X(there)s +4203 X(is)s +4300 X(nothing)s +4636 X(to)s +874 X +3600 Y(prevent)s +1199 X(a)s +1269 X(user)s +1461 X(of)s +1570 X +0.0 10 10 f.I ft(MH)s +1751 X +0.0 10 10 f.R ft(from)s +1971 X(de\256ning)s +2325 X(a)s +2395 X(sequence)s +2786 X(with)s +2990 X(this)s +3161 X(string)s +3414 X(as)s +3522 X(its)s +3642 X(pre\256x,)s +3925 X(if)s +4011 X(the)s +4158 X(string)s +4411 X(is)s +4503 X(noth-)s +874 X +3720 Y(ing)s +1077 X(by)s +1252 X(letters)s +1571 X(and)s +1790 X(digits.)s +2138 X(Obviously,)s +2655 X(this)s +2875 X(could)s +3172 X(lead)s +3413 X(to)s +3566 X(confusing)s +4034 X(behavior)s +4457 X(if)s +4592 X(the)s +874 X +3840 Y(``Sequence\261Negation:'')s +1858 X(entry)s +2089 X(leads)s +2320 X +0.0 10 10 f.I ft(MH)s +2501 X +0.0 10 10 f.R ft(to)s +2605 X(believe)s +2919 X(that)s +3095 X(two)s +3270 X(sequences)s +3699 X(are)s +3845 X(opposites)s +4248 X(by)s +4373 X(virtue)s +4631 X(of)s +874 X +3960 Y(their)s +1082 X(names)s +1362 X(di)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ering)s +1731 X(by)s +1856 X(the)s +2003 X(pre\256x)s +2261 X(string.)s +874 X +4122 Y +0.0 10 10 f.B ft(The)s +1066 X(Previous)s +1463 X(Sequence)s +874 X +4284 Y +1124 X +0.0 10 10 f.R ft(Many)s +1382 X(times)s +1624 X(users)s +1854 X(\256nd)s +2035 X(themselves)s +2504 X(issuing)s +2813 X(a)s +2882 X(series)s +3134 X(of)s +3242 X(commands)s +3700 X(on)s +3825 X(the)s +3972 X(same)s +4202 X(sequences)s +4631 X(of)s +874 X +4404 Y(messages.)s +1330 X(If)s +1425 X(the)s +1576 X(user)s +1771 X(\256rst)s +1956 X(de\256ned)s +2279 X(these)s +2513 X(messages)s +2919 X(as)s +3031 X(a)s +3104 X(sequence,)s +3523 X(then)s +3724 X(considerable)s +4257 X(typing)s +4542 X(may)s +874 X +4524 Y(be)s +1009 X(saved.)s +1327 X(If)s +1434 X(the)s +1597 X(user)s +1804 X(doesn't)s +2138 X(have)s +2366 X(this)s +2551 X(foresight,)s +2971 X +0.0 10 10 f.I ft(MH)s +3166 X +0.0 10 10 f.R ft(provides)s +3550 X(a)s +3634 X(handy)s +3918 X(way)s +4124 X(of)s +4247 X(having)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +4644 Y +0.0 10 10 f.R ft(remember)s +1337 X(the)s +1518 X(`msgs')s +1849 X(or)s +1991 X(`msg')s +2283 X(argument)s +2719 X(last)s +2917 X(given)s +3198 X(to)s +3335 X(an)s +3488 X +0.0 10 10 f.I ft(MH)s +3702 X +0.0 10 10 f.R ft(command.)s +4205 X(If)s +4329 X(the)s +4509 X(entry)s +874 X +4764 Y(``Previous\261Sequence:'')s +1850 X(is)s +1951 X(de\256ned)s +2279 X(in)s +2391 X(the)s +2547 X(.mh)s +Cru(pro\256le,)s +3069 X(then)s +3274 X(when)s +3523 X(the)s +3678 X(command)s +4105 X(\256nishes,)s +4469 X(it)s +4558 X(will)s +874 X +4884 Y(de\256ne)s +1156 X(the)s +1316 X(sequence\(s\))s +1824 X(named)s +2127 X(in)s +2242 X(the)s +2401 X(value)s +2654 X(of)s +2774 X(this)s +2956 X(entry)s +3198 X(as)s +3318 X(being)s +3577 X(exactly)s +3902 X(those)s +4150 X(messages)s +4564 X(that)s +874 X +5004 Y(were)s +1092 X(speci\256ed.)s +1522 X(Hence,)s +1826 X(a)s +1895 X(pro\256le)s +2181 X(entry)s +2411 X(of)s +874 X +5244 Y +1234 X(Previous\261Sequence:)s +2094 X(pseq)s +874 X +5484 Y(directs)s +1185 X(any)s +1374 X +0.0 10 10 f.I ft(MH)s +1574 X +0.0 10 10 f.R ft(command)s +2013 X(that)s +2207 X(accepts)s +2544 X(a)s +2632 X(`msg')s +2909 X(or)s +3036 X(`msgs')s +3352 X(argument)s +3773 X(to)s +3895 X(de\256ne)s +4183 X(the)s +4349 X(sequence)s +874 X +5604 Y(``pseq'')s +1223 X(as)s +1340 X(those)s +1585 X(messages)s +1996 X(when)s +2246 X(it)s +2336 X(\256nishes.)s +2726 X(More)s +2976 X(than)s +3182 X(one)s +3360 X(sequence)s +3759 X(name)s +4009 X(may)s +4215 X(be)s +4343 X(placed)s +4636 X(in)s +874 X +5724 Y(this)s +1055 X(entry,)s +1321 X(separated)s +1733 X(with)s +1946 X(spaces.)s +2291 X(The)s +2481 X(one)s +2660 X(disadvantage)s +3216 X(of)s +3334 X(this)s +3514 X(approach)s +3914 X(is)s +4016 X(that)s +4201 X(the)s +4358 X +0.0 10 10 f.I ft(MH)s +4548 X +0.0 10 10 f.R ft(pro-)s +874 X +5844 Y(gams)s +1113 X(have)s +1329 X(to)s +1435 X(update)s +1729 X(the)s +1879 X(sequence)s +2272 X(information)s +2772 X(for)s +2916 X(the)s +3066 X(folder)s +3332 X(each)s +3542 X(time)s +3748 X(they)s +3948 X(run)s +4109 X(\(although)s +4519 X(most)s +874 X +5964 Y(programs)s +1276 X(read)s +1472 X(this)s +1642 X(information,)s +2164 X(usually)s +2478 X(only)s +2681 X +0.0 10 10 f.I ft(pick)s +2872 X +0.0 10 10 f.R ft(and)s +3041 X +0.0 10 10 f.I ft(mark)s +3271 X +0.0 10 10 f.R ft(have)s +3484 X(to)s +3587 X(write)s +3817 X(this)s +3987 X(information)s +4484 X(out\).)s +874 X +6126 Y +0.0 10 10 f.B ft(The)s +1066 X(Unseen)s +1402 X(Sequence)s +874 X +6288 Y +1124 X +0.0 10 10 f.R ft(Finally,)s +1474 X(some)s +1726 X(users)s +1972 X(like)s +2163 X(to)s +2282 X(distinguish)s +2763 X(between)s +3135 X(messages)s +3552 X(which)s +3836 X(have)s +4064 X(been)s +4292 X(previously)s +874 X +6408 Y(seen)s +1085 X(by)s +1219 X(them.)s +1503 X(Both)s +1732 X +0.0 10 10 f.I ft(inc)s +1888 X +0.0 10 10 f.R ft(and)s +2066 X +0.0 10 10 f.I ft(show)s +2306 X +0.0 10 10 f.R ft(honorthe)s +2695 X(pro\256le)s +2990 X(entry)s +3229 X(``Unseen\261Sequence'')s +4125 X(to)s +4236 X(support)s +4569 X(this)s +874 X +6528 Y(activity.)s +1260 X(Whenever)s +1705 X +0.0 10 10 f.I ft(inc)s +1863 X +0.0 10 10 f.R ft(places)s +2148 X(new)s +2350 X(messages)s +2763 X(in)s +2877 X(a)s +2957 X(folder,)s +3256 X(if)s +3352 X(the)s +3509 X(entry)s +3749 X(``Unseen\261Sequence'')s +4647 X(is)s +874 X +6648 Y(de\256ned)s +1199 X(in)s +1308 X(the)s +1461 X(.mh)s +Cru(pro\256le,)s +1981 X(then)s +2184 X(when)s +2431 X(the)s +2584 X(command)s +3008 X(\256nishes,)s +3369 X +0.0 10 10 f.I ft(inc)s +3521 X +0.0 10 10 f.R ft(will)s +3707 X(add)s +3881 X(the)s +4033 X(new)s +4229 X(messages)s +4636 X(to)s +874 X +6768 Y(the)s +1021 X(sequence\(s\))s +1516 X(named)s +1807 X(in)s +1910 X(the)s +2057 X(value)s +2298 X(of)s +2406 X(this)s +2576 X(entry.)s +2856 X(Hence,)s +3160 X(a)s +3229 X(pro\256le)s +3515 X(entry)s +3745 X(of)s +874 X +7008 Y +1234 X(Unseen\261Sequence:)s +2068 X(unseen)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 139 140 + +874 X +600 Y +2686 X +0.0 10 10 f.B ft(-139-)s +874 X +960 Y +0.0 10 10 f.R ft(directs)s +1192 X +0.0 10 10 f.I ft(inc)s +1365 X +0.0 10 10 f.R ft(to)s +1494 X(add)s +1689 X(new)s +1906 X(messages)s +2334 X(to)s +2463 X(the)s +2636 X(sequence)s +3052 X(``unseen''.)s +3562 X(Unlike)s +3885 X(the)s +4058 X(behavior)s +4458 X(of)s +4592 X(the)s +874 X +1080 Y(``Previous\261Sequence'')s +1813 X(entry)s +2043 X(in)s +2146 X(the)s +2293 X(pro\256le)s +2579 X(however,)s +2972 X(the)s +3119 X(sequence\(s\))s +3614 X(will)s +3795 X +0.0 10 10 f.B ft(not)s +3959 X +0.0 10 10 f.R ft(be)s +4078 X(zero'd.)s +874 X +1242 Y +1124 X(Similarly,)s +1550 X(whenever)s +1965 X +0.0 10 10 f.I ft(show)s +2199 X +0.0 10 10 f.R ft(\(or)s +2343 X +0.0 10 10 f.I ft(next)s +2537 X +0.0 10 10 f.R ft(or)s +2648 X +0.0 10 10 f.I ft(prev)s +2875 X +0.0 10 10 f.R ft(\))s +2936 X(displays)s +3292 X(a)s +3364 X(message,)s +3755 X(they)s +3955 X(remove)s +4282 X(those)s +4520 X(mes-)s +874 X +1362 Y(sages)s +1115 X(from)s +1334 X(any)s +1503 X(sequences)s +1932 X(named)s +2223 X(by)s +2348 X(the)s +2495 X(``Unseen\261Sequence'')s +3383 X(entry)s +3613 X(in)s +3716 X(the)s +3863 X(pro\256le.)s +874 X +1782 Y +0.0 10 10 f.B ft(COMPOSITION)s +1633 X(OF)s +1797 X(MAIL)s +0.0 10 10 f.R ft( )s +874 X +1944 Y +1124 X(There)s +1397 X(are)s +1559 X(a)s +1644 X(number)s +1990 X(of)s +2114 X(interesting)s +2577 X(advanced)s +2994 X(facilities)s +3379 X(for)s +3536 X(the)s +3699 X(composition)s +4235 X(of)s +4358 X(outgoing)s +874 X +2064 Y(mail.)s +874 X +2346 Y +0.0 10 10 f.B ft(The)s +1066 X(Draft)s +1323 X(Folder)s +874 X +2508 Y +1124 X +0.0 10 10 f.R ft(The)s +1310 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +1582 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +1783 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2023 X(and)s +2198 X +0.0 10 10 f.I ft(repl)s +2390 X +0.0 10 10 f.R ft(commands)s +2854 X(have)s +3073 X(two)s +3254 X(switches,)s +3654 X(`\261draftfolder)s +4213 X(+folder')s +4570 X(and)s +874 X +2628 Y(`\261draftmessage)s +1533 X(msg'.)s +1820 X(If)s +1923 X(`\261draftfolder)s +2482 X(+folder')s +2846 X(is)s +2950 X(used,)s +3195 X(these)s +3437 X(commands)s +3907 X(are)s +4065 X(directed)s +4423 X(to)s +4537 X(con-)s +874 X +2748 Y(struct)s +1126 X(a)s +1200 X(draft)s +1418 X(message)s +1786 X(in)s +1893 X(the)s +2044 X(indicated)s +2439 X(folder.)s +2756 X(\(The)s +2973 X(``Draft\261Folder:'')s +3683 X(pro\256le)s +3973 X(entry)s +4207 X(may)s +4408 X(be)s +4531 X(used)s +874 X +2868 Y(to)s +980 X(declare)s +1295 X(a)s +1367 X(default)s +1672 X(draft)s +1888 X(folder)s +2154 X(for)s +2298 X(use)s +2459 X(with)s +2665 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2934 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +3132 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +3369 X(and)s +3541 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(\))s +3762 X(If)s +3855 X(`\261draftmessage)s +4514 X(msg')s +874 X +2988 Y(is)s +976 X(not)s +1139 X(used,)s +1382 X(it)s +1473 X(defaults)s +1824 X(to)s +1937 X(`new')s +2204 X(\(unless)s +2522 X(the)s +2679 X(user)s +2880 X(invokes)s +3226 X +0.0 10 10 f.I ft(comp)s +3477 X +0.0 10 10 f.R ft(with)s +3689 X(`\261use',)s +3997 X(in)s +4109 X(which)s +4387 X(case)s +4592 X(the)s +874 X +3108 Y(default)s +1187 X(is)s +1290 X(`cur'\).)s +1602 X(Hence,)s +1917 X(the)s +2075 X(user)s +2277 X(may)s +2485 X(have)s +2709 X(several)s +3027 X(message)s +3401 X(compositions)s +3971 X(in)s +4085 X(progress)s +4458 X(simul-)s +874 X +3228 Y(taneously.)s +1342 X(Now,)s +1596 X(all)s +1731 X(of)s +1849 X(the)s +2006 X +0.0 10 10 f.I ft(MH)s +2196 X +0.0 10 10 f.R ft(tools)s +2426 X(are)s +2582 X(available)s +2977 X(on)s +3112 X(each)s +3329 X(of)s +3447 X(the)s +3604 X(user's)s +3877 X(message)s +4250 X(drafts)s +4512 X(\(e.g.,)s +874 X +3348 Y +0.0 10 10 f.I ft(show)s +0.0 10 10 f.R ft(,)s +1147 X +0.0 10 10 f.I ft(scan)s +0.0 10 10 f.R ft(,)s +1397 X +0.0 10 10 f.I ft(pick)s +0.0 10 10 f.R ft(,)s +1630 X(and)s +1816 X(so)s +1946 X(on\).)s +2170 X(If)s +2277 X(the)s +2440 X(folder)s +2719 X(does)s +2943 X(not)s +3112 X(exist,)s +3367 X(the)s +3530 X(user)s +3737 X(is)s +3845 X(asked)s +4113 X(if)s +4215 X(it)s +4312 X(should)s +4620 X(be)s +874 X +3468 Y(created)s +1187 X(\(just)s +1391 X(like)s +1567 X(with)s +1771 X +0.0 10 10 f.I ft(re\256le)s +2026 X +0.0 10 10 f.R ft(\).)s +2134 X(Also,)s +2373 X(the)s +2520 X(last)s +2684 X(draft)s +2897 X(message)s +3260 X(the)s +3407 X(user)s +3598 X(was)s +3778 X(composing)s +4242 X(is)s +4334 X(known)s +4631 X(as)s +874 X +3588 Y(`cur')s +1092 X(in)s +1195 X(the)s +1342 X(draft)s +1555 X(folder.)s +874 X +3750 Y +1124 X(Furthermore,)s +1683 X(the)s +1840 X +0.0 10 10 f.I ft(send)s +2058 X +0.0 10 10 f.R ft(command)s +2487 X(has)s +2655 X(these)s +2895 X(switches)s +3274 X(as)s +3391 X(well.)s +3647 X(Hence,)s +3960 X(from)s +4188 X(the)s +4344 X(shell,)s +4592 X(the)s +874 X +3870 Y(user)s +1089 X(can)s +1276 X(send)s +1508 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff +1668 X(whatever)s +2082 X(drafts)s +2358 X(desired)s +2695 X(using)s +2961 X(the)s +3132 X(standard)s +3519 X +0.0 10 10 f.I ft(MH)s +3723 X +0.0 10 10 f.R ft(`msgs')s +4044 X(convention)s +4536 X(with)s +874 X +3990 Y(`\261draftmessage)s +1508 X(msgs'.)s +1822 X(If)s +1913 X(no)s +2038 X(`msgs')s +2335 X(are)s +2481 X(given,)s +2753 X(it)s +2834 X(defaults)s +3175 X(to)s +3278 X(`cur'.)s +874 X +4152 Y +1124 X(In)s +1256 X(addition,)s +1658 X(all)s +1807 X(\256ve)s +2005 X(programs)s +2430 X(have)s +2666 X(a)s +2758 X(`\261nodraftfolder')s +3448 X(switch,)s +3782 X(which)s +4074 X(undoes)s +4405 X(the)s +4575 X(last)s +874 X +4272 Y(occurrence)s +1335 X(of)s +1443 X(`\261draftfolder)s +2002 X(folder')s +2298 X(\(useful)s +2600 X(if)s +2686 X(the)s +2833 X(latter)s +3063 X(occurs)s +3348 X(in)s +3451 X(the)s +3598 X(user's)s +3861 X +0.0 10 10 f.I ft(MH)s +4041 X +0.0 10 10 f.R ft(pro\256le\).)s +874 X +4434 Y +1124 X(If)s +1224 X(the)s +1380 X(user)s +1580 X(does)s +1797 X(not)s +1958 X(give)s +2163 X(the)s +2318 X(`\261draftfolder)s +2877 X(+folder')s +3237 X(switch,)s +3556 X(then)s +3761 X(all)s +3894 X(these)s +4132 X(commands)s +4598 X(act)s +874 X +4554 Y(``normally''.)s +1446 X(Note)s +1669 X(that)s +1848 X(the)s +1999 X(`\261draft')s +2332 X(switch)s +2622 X(to)s +2729 X +0.0 10 10 f.I ft(send)s +2941 X +0.0 10 10 f.R ft(and)s +3114 X +0.0 10 10 f.I ft(show)s +3349 X +0.0 10 10 f.R ft(still)s +3528 X(refers)s +3782 X(to)s +3888 X(the)s +4038 X(\256le)s +4194 X(called)s +4460 X(`draft')s +874 X +4674 Y(in)s +991 X(the)s +1152 X(user's)s +1429 X +0.0 10 10 f.I ft(MH)s +1623 X +0.0 10 10 f.R ft(directory.)s +2072 X(In)s +2194 X(the)s +2355 X(interests)s +2727 X(of)s +2849 X(economy)s +3254 X(of)s +3376 X(expression,)s +3867 X(when)s +4122 X(using)s +4377 X +0.0 10 10 f.I ft(comp)s +4631 X +0.0 10 10 f.R ft(or)s +874 X +4794 Y +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(,)s +1123 X(the)s +1285 X(user)s +1491 X(needn't)s +1830 X(pre\256x)s +2103 X(the)s +2265 X(draft)s +2493 X(`msg')s +2766 X(or)s +2889 X(`msgs')s +3201 X(with)s +3419 X(`\261draftmessage'.)s +4151 X(Both)s +4386 X(of)s +4509 X(these)s +874 X +4914 Y(commands)s +1335 X(accept)s +1617 X(a)s +1689 X(`\256le')s +1910 X(or)s +2020 X(`\256les')s +2280 X(argument,)s +2709 X(and)s +2880 X(they)s +3079 X(will,)s +3287 X(if)s +3375 X(given)s +3624 X(`\261draftfolder)s +4183 X(+folder')s +4537 X(treat)s +874 X +5054 Y(these)s +1104 X(arguments)s +1545 X(as)s +1653 X(`msg')s +1911 X(or)s +2019 X(`msgs'.)s +5014 Y +0.0 7 7 f.R ft(2)s +5054 Y +2376 X +0.0 10 10 f.R ft(Hence,)s +874 X +5294 Y +1234 X(send)s +1442 X(-draftf)s +1721 X(+drafts)s +2029 X(\256rst)s +874 X +5534 Y(is)s +966 X(the)s +1113 X(same)s +1343 X(as)s +874 X +5774 Y +1234 X(send)s +1442 X(-draftf)s +1721 X(+drafts)s +2029 X(-draftm)s +2353 X(\256rst)s +874 X +6056 Y +1124 X(To)s +1264 X(make)s +1509 X(all)s +1637 X(this)s +1810 X(a)s +1882 X(bit)s +2016 X(more)s +2249 X(clear,)s +2495 X(here)s +2694 X(are)s +2843 X(some)s +3082 X(examples.)s +3537 X(Let's)s +3770 X(assume)s +4092 X(that)s +4270 X(the)s +4420 X(follow-)s +874 X +6176 Y(ing)s +1027 X(entries)s +1318 X(are)s +1464 X(in)s +1567 X(the)s +1714 X +0.0 10 10 f.I ft(MH)s +1894 X +0.0 10 10 f.R ft(pro\256le:)s +874 X +6416 Y +1234 X(Draft\261Folder:)s +1808 X(+drafts)s +874 X +6536 Y +1234 X(sendf:)s +1503 X(-draftfolder)s +1987 X(+drafts)s +874 X +6776 Y(Furthermore,)s +1467 X(let's)s +1708 X(assume)s +2071 X(that)s +2290 X(the)s +2481 X(program)s +2888 X +0.0 10 10 f.I ft(sendf)s +3168 X +0.0 10 10 f.R ft(is)s +3303 X(a)s +3415 X(\(symbolic\))s +3916 X(link)s +4140 X(in)s +4286 X(the)s +4476 X(user's)s +874 X +6976 Y +1090 X +0.0 5 5 f.R ft(2)s +7008 Y +1135 X +0.0 8 8 f.R ft(This)s +1297 X(may)s +1454 X(appear)s +1685 X(to)s +1767 X(be)s +1862 X(inconsistent,)s +2282 X(at)s +2359 X(\256rst,)s +2523 X(but)s +2645 X(it)s +2709 X(saves)s +2901 X(a)s +2956 X(lot)s +3060 X(of)s +3146 X(typing.)s +7920 Y +page +0.0 8 8 f.R ft +%%Page: 140 141 + +874 X +600 Y +2686 X +0.0 10 10 f.B ft(-140-)s +874 X +960 Y($HOME/bin/)s +1462 X +0.0 10 10 f.R ft(directory)s +1847 X(to)s +1950 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(.)s +2208 X(Then,)s +2463 X(any)s +2632 X(of)s +2740 X(the)s +2887 X(commands)s +874 X +1200 Y +1234 X(comp)s +874 X +1320 Y +1234 X(dist)s +874 X +1440 Y +1234 X(forw)s +874 X +1560 Y +1234 X(repl)s +874 X +1800 Y(constructs)s +1318 X(the)s +1479 X(message)s +1856 X(draft)s +2083 X(in)s +2200 X(the)s +2361 X(`draft')s +2654 X(folder)s +2931 X(using)s +3187 X(the)s +3348 X(`new')s +3618 X(message)s +3994 X(number.)s +4387 X(Further-)s +874 X +1920 Y(more,)s +1135 X(they)s +1338 X(each)s +1551 X(de\256ne)s +1826 X(`cur')s +2050 X(in)s +2159 X(this)s +2335 X(folder)s +2604 X(to)s +2713 X(be)s +2838 X(that)s +3018 X(message)s +3386 X(draft.)s +3654 X(If)s +3750 X(the)s +3902 X(user)s +4098 X(were)s +4321 X(to)s +4429 X(use)s +4592 X(the)s +874 X +2040 Y +0.0 10 10 f.I ft(quit)s +1056 X +0.0 10 10 f.R ft(option)s +1338 X(at)s +1436 X(`What)s +1711 X(now?')s +1986 X(level,)s +2231 X(then)s +2429 X(later)s +2631 X(on,)s +2781 X(if)s +2867 X(no)s +2992 X(other)s +3222 X(draft)s +3435 X(composition)s +3955 X(was)s +4135 X(done,)s +4379 X(the)s +4526 X(draft)s +874 X +2160 Y(could)s +1121 X(be)s +1240 X(sent)s +1426 X(with)s +1629 X(simply)s +874 X +2400 Y +1234 X(sendf)s +874 X +2640 Y(Or,)s +1029 X(if)s +1115 X(more)s +1345 X(editing)s +1648 X(was)s +1828 X(required,)s +2210 X(the)s +2357 X(draft)s +2570 X(could)s +2817 X(be)s +2936 X(edited)s +3205 X(with)s +874 X +2880 Y +1234 X(comp)s +1481 X(-use)s +874 X +3120 Y(Instead,)s +1220 X(if)s +1313 X(other)s +1550 X(drafts)s +1809 X(had)s +1985 X(been)s +2205 X(composed)s +2642 X(in)s +2752 X(the)s +2906 X(meantime,)s +3357 X(so)s +3478 X(that)s +3660 X(this)s +3837 X(message)s +4207 X(draft)s +4427 X(was)s +4614 X(no)s +874 X +3240 Y(longer)s +1155 X(known)s +1453 X(as)s +1561 X(`cur')s +1779 X(in)s +1882 X(the)s +2029 X(`draft')s +2308 X(folder,)s +2596 X(then)s +2793 X(the)s +2940 X(user)s +3131 X(could)s +3378 X +0.0 10 10 f.I ft(scan)s +3586 X +0.0 10 10 f.R ft(the)s +3733 X(folder)s +3996 X(to)s +4099 X(see)s +4251 X(which)s +4520 X(mes-)s +874 X +3360 Y(sage)s +1077 X(draft)s +1291 X(in)s +1395 X(the)s +1543 X(folder)s +1807 X(should)s +2099 X(be)s +2218 X(used)s +2426 X(for)s +2567 X(editing)s +2870 X(or)s +2978 X(sending.)s +3364 X(Clever)s +3655 X(users)s +3885 X(could)s +4132 X(even)s +4345 X(employ)s +4670 X(a)s +874 X +3480 Y(back-quoted)s +1392 X +0.0 10 10 f.I ft(pick)s +1583 X +0.0 10 10 f.R ft(to)s +1686 X(do)s +1811 X(the)s +1958 X(work:)s +874 X +3720 Y +1234 X(comp)s +1481 X(-use)s +1672 X(`pick)s +1902 X(+drafts)s +2210 X(-to)s +2346 X(bug-mh`)s +874 X +3960 Y(or)s +874 X +4200 Y +1234 X(sendf)s +1475 X(`pick)s +1705 X(+drafts)s +2013 X(-to)s +2149 X(bug-mh`)s +874 X +4440 Y(Note)s +1099 X(that)s +1280 X(in)s +1389 X(the)s +1542 X +0.0 10 10 f.I ft(comp)s +1789 X +0.0 10 10 f.R ft(example,)s +2183 X(the)s +2336 X(output)s +2623 X(from)s +2848 X +0.0 10 10 f.I ft(pick)s +3045 X +0.0 10 10 f.R ft(must)s +3270 X(resolve)s +3588 X(to)s +3696 X(a)s +3770 X(single)s +4039 X(message)s +4407 X(draft)s +4625 X(\(it)s +874 X +4560 Y(makes)s +1158 X(no)s +1287 X(sense)s +1532 X(to)s +1639 X(talk)s +1818 X(about)s +2069 X(composing)s +2537 X(two)s +2716 X(or)s +2827 X(more)s +3060 X(drafts)s +3315 X(with)s +3521 X(one)s +3693 X(invocation)s +4143 X(of)s +4254 X +0.0 10 10 f.I ft(comp)s +4520 X +0.0 10 10 f.R ft(\).)s +4631 X(In)s +874 X +4680 Y(contrast,)s +1242 X(in)s +1347 X(the)s +1496 X +0.0 10 10 f.I ft(send)s +1706 X +0.0 10 10 f.R ft(example,)s +2096 X(as)s +2206 X(many)s +2455 X(message)s +2820 X(drafts)s +3074 X(as)s +3184 X(desired)s +3499 X(can)s +3664 X(appear,)s +3980 X(since)s +4211 X +0.0 10 10 f.I ft(send)s +4420 X +0.0 10 10 f.R ft(doesn't)s +874 X +4800 Y(mind)s +1105 X(sending)s +1441 X(more)s +1671 X(than)s +1868 X(one)s +2037 X(draft)s +2250 X(at)s +2347 X(a)s +2416 X(time.)s +874 X +4962 Y +1124 X(Note)s +1344 X(that)s +1520 X(the)s +1668 X(argument)s +2071 X(`\261draftfolder)s +2630 X(+folder')s +2983 X(is)s +3076 X(not)s +3230 X(included)s +3599 X(in)s +3702 X(the)s +3849 X(pro\256le)s +4135 X(entry)s +4365 X(for)s +4506 X +0.0 10 10 f.I ft(send)s +0.0 10 10 f.R ft(,)s +874 X +5082 Y(since)s +1105 X(when)s +1347 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +1614 X(et.)s +1737 X(al.,)s +1885 X(invoke)s +2183 X +0.0 10 10 f.I ft(send)s +2392 X +0.0 10 10 f.R ft(directly,)s +2748 X(they)s +2946 X(supply)s +3239 X +0.0 10 10 f.I ft(send)s +3447 X +0.0 10 10 f.R ft(with)s +3650 X(the)s +3797 X(UNIX)s +4071 X(pathname)s +4484 X(of)s +4592 X(the)s +874 X +5202 Y(message)s +1248 X(draft,)s +1497 X(and)s +1677 X +0.0 10 10 f.B ft(not)s +1852 X +0.0 10 10 f.R ft(a)s +1932 X(`draftmessage)s +2541 X(msg')s +2777 X(argument.)s +3240 X(As)s +3387 X(far)s +3533 X(as)s +3651 X +0.0 10 10 f.I ft(send)s +3869 X +0.0 10 10 f.R ft(is)s +3971 X(concerned,)s +4440 X(a)s +4519 X +0.0 10 10 f.I ft(draft)s +874 X +5322 Y(folder)s +1138 X +0.0 10 10 f.R ft(is)s +1230 X(not)s +1383 X(being)s +1630 X(used.)s +874 X +5484 Y +1124 X(It)s +1227 X(is)s +1336 X(important)s +1766 X(to)s +1885 X(realize)s +2191 X(that)s +2382 X +0.0 10 10 f.I ft(MH)s +2578 X +0.0 10 10 f.R ft(treats)s +2835 X(the)s +2998 X(draft)s +3227 X(folder)s +3506 X(like)s +3697 X(a)s +3782 X(standard)s +4161 X +0.0 10 10 f.I ft(MH)s +4357 X +0.0 10 10 f.R ft(folder)s +4636 X(in)s +874 X +5604 Y(nearly)s +1195 X(all)s +1367 X(respects.)s +1810 X(There)s +2113 X(are)s +2305 X(two)s +2526 X(exceptions:)s +3052 X(\256rst)s +3052 X +0.0 10 10 f.S ft(_)s +3058 X(___)s +0.0 10 10 f.R ft(,)s +3304 X(under)s +3602 X(no)s +3773 X(circumstancs)s +4365 X(will)s +4592 X(the)s +874 X +5744 Y(`\261draftfolder)s +1433 X(folder')s +1749 X(switch)s +2055 X(cause)s +2321 X(the)s +2488 X(named)s +2799 X(folder)s +3082 X(to)s +3205 X(become)s +3560 X(the)s +3727 X(current)s +4053 X(folder.)s +5704 Y +0.0 7 7 f.R ft(3)s +5744 Y +4395 X +0.0 10 10 f.R ft(Second)s +4395 X +0.0 10 10 f.S ft(_)s +4439 X(_____)s +0.0 10 10 f.R ft(,)s +874 X +5864 Y(although)s +1274 X(conceptually)s +1834 X +0.0 10 10 f.I ft(send)s +2067 X +0.0 10 10 f.R ft(deletes)s +2394 X(the)s +2566 X(`msgs')s +2888 X(named)s +3204 X(in)s +3332 X(the)s +3504 X(draft)s +3742 X(folder,)s +4055 X(it)s +4161 X(does)s +4393 X(not)s +4570 X(call)s +874 X +5984 Y(`delete-prog')s +1419 X(to)s +1522 X(perform)s +1868 X(the)s +2015 X(deletion.)s +874 X +6266 Y +0.0 10 10 f.B ft(What)s +1138 X(Happens)s +1542 X(if)s +1628 X(the)s +1786 X(Draft)s +2043 X(Exists)s +874 X +6508 Y +1090 X +0.0 5 5 f.R ft(3)s +6540 Y +1135 X +0.0 8 8 f.R ft(Obviously,)s +1508 X(if)s +1576 X(the)s +1693 X(folder)s +1902 X(appeared)s +2208 X(in)s +2290 X(the)s +2407 X(context)s +2661 X(of)s +2747 X(a)s +2802 X(standard)s +3091 X(`+folder')s +3397 X(argument)s +3717 X(to)s +3799 X(an)s +3894 X +0.0 8 8 f.I ft(MH)s +4038 X +0.0 8 8 f.R ft(program,)s +4347 X(as)s +4433 X(in)s +874 X +6732 Y +1234 X(scan)s +1395 X(+drafts)s +874 X +6924 Y(it)s +938 X(might)s +1144 X(become)s +1411 X(the)s +1528 X(current)s +1772 X(folder,)s +2001 X(depending)s +2353 X(on)s +2453 X(the)s +2570 X(context)s +2824 X(changes)s +3100 X(of)s +3186 X(the)s +3303 X +0.0 8 8 f.I ft(MH)s +3447 X +0.0 8 8 f.R ft(program)s +3736 X(in)s +3818 X(question.)s +7920 Y +page +0.0 8 8 f.R ft +%%Page: 141 142 + +874 X +600 Y +2686 X +0.0 10 10 f.B ft(-141-)s +874 X +960 Y +1124 X +0.0 10 10 f.R ft(When)s +1395 X(the)s +1550 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +1824 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2027 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2269 X(and)s +2446 X +0.0 10 10 f.I ft(repl)s +2640 X +0.0 10 10 f.R ft(commands)s +3106 X(are)s +3260 X(invoked)s +3615 X(and)s +3792 X(the)s +3946 X(draft)s +4166 X(you)s +4348 X(indicated)s +874 X +1080 Y(already)s +1193 X(exists,)s +1472 X(these)s +1703 X(programs)s +2105 X(will)s +2286 X(prompt)s +2600 X(the)s +2747 X(user)s +2938 X(for)s +3079 X(a)s +3148 X(reponse)s +3483 X(directing)s +3863 X(the)s +4010 X(program's)s +4445 X(action.)s +874 X +1200 Y(The)s +1054 X(prompt)s +1368 X(is)s +874 X +1440 Y +1234 X(Draft)s +1469 X(``/usr/src/uci/mh/mhbox/draft'')s +2748 X(exists)s +3001 X(\(xx)s +3159 X(bytes\).)s +874 X +1560 Y +1234 X(Disposition?)s +874 X +1800 Y(The)s +1065 X(appropriate)s +1554 X(responses)s +1977 X(and)s +2156 X(their)s +2374 X(meanings)s +2792 X(are:)s +2976 X(replace)s +2976 X +0.0 10 10 f.S ft(_)s +3013 X(_____)s +0.0 10 10 f.R ft(:)s +3326 X(deletes)s +3638 X(the)s +3795 X(draft)s +4018 X(and)s +4197 X(starts)s +4443 X(afresh;)s +874 X +1920 Y(list)s +874 X +0.0 10 10 f.S ft(_)s +897 X(__)s +0.0 10 10 f.R ft(:)s +1053 X(lists)s +1243 X(the)s +1393 X(draft;)s +1637 X(re\256le)s +1637 X +0.0 10 10 f.S ft(_)s +1642 X(____)s +0.0 10 10 f.R ft(:)s +1898 X(\256les)s +2093 X(the)s +2243 X(draft)s +2459 X(into)s +2643 X(a)s +2715 X(folder)s +2981 X(and)s +3153 X(starts)s +3392 X(afresh;)s +3691 X(and,)s +3888 X(quit)s +3888 X +0.0 10 10 f.S ft(_)s +3894 X(___)s +0.0 10 10 f.R ft(:)s +4100 X(leaves)s +4377 X(the)s +4526 X(draft)s +874 X +2040 Y(intact)s +1132 X(and)s +1312 X(exits.)s +1587 X(In)s +1706 X(addition,)s +2095 X(if)s +2192 X(you)s +2378 X(speci\256ed)s +2769 X(`\261draftfolder)s +3328 X(folder')s +3635 X(to)s +3749 X(the)s +3907 X(command,)s +4362 X(then)s +4570 X(one)s +874 X +2160 Y(other)s +1119 X(response)s +1508 X(will)s +1704 X(be)s +1838 X(accepted:)s +2254 X(new)s +2254 X +0.0 10 10 f.S ft(_)s +2270 X(___)s +0.0 10 10 f.R ft(:)s +2488 X(\256nds)s +2723 X(a)s +2807 X(new)s +3013 X(draft,)s +3266 X(just)s +3451 X(as)s +3573 X(if)s +3673 X(`\261draftmessage)s +4332 X(new')s +4570 X(had)s +874 X +2280 Y(been)s +1093 X(given.)s +1396 X(Finally,)s +1736 X(the)s +1889 X +0.0 10 10 f.I ft(comp)s +2136 X +0.0 10 10 f.R ft(command)s +2560 X(will)s +2746 X(accept)s +3030 X(one)s +3204 X(more)s +3439 X(response:)s +3846 X(use)s +3846 X +0.0 10 10 f.S ft(_)s +3879 X(__)s +0.0 10 10 f.R ft(:)s +4037 X(re-uses)s +4349 X(the)s +4501 X(draft,)s +874 X +2400 Y(just)s +1044 X(as)s +1152 X(if)s +1238 X(`\261use')s +1512 X(had)s +1681 X(been)s +1894 X(given.)s +874 X +2682 Y +0.0 10 10 f.B ft(The)s +1066 X(Push)s +1303 X(Option)s +1629 X(at)s +1737 X(What)s +2001 X(now?)s +2254 X(Level)s +874 X +2844 Y +1124 X +0.0 10 10 f.R ft(The)s +1307 X +0.0 10 10 f.I ft(push)s +1524 X +0.0 10 10 f.R ft(option)s +1808 X(to)s +1914 X(the)s +2064 X(``What)s +2374 X(now?'')s +2684 X(query)s +2939 X(in)s +3045 X(the)s +3195 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +3464 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +3661 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +3897 X(and)s +4068 X +0.0 10 10 f.I ft(repl)s +4256 X +0.0 10 10 f.R ft(commands,)s +874 X +2964 Y(directs)s +1168 X(the)s +1318 X(command)s +1740 X(to)s +1846 X +0.0 10 10 f.I ft(send)s +2057 X +0.0 10 10 f.R ft(the)s +2207 X(draft)s +2423 X(in)s +2529 X(a)s +2601 X(special)s +2906 X(detached)s +3288 X(fashion,)s +3635 X(with)s +3841 X(all)s +3969 X(normal)s +4280 X(output)s +4564 X(dis-)s +874 X +3084 Y(carded.)s +1224 X(If)s +1325 X +0.0 10 10 f.I ft(push)s +1549 X +0.0 10 10 f.R ft(is)s +1651 X(used)s +1869 X(and)s +2048 X(the)s +2205 X(draft)s +2428 X(can)s +2601 X(not)s +2764 X(be)s +2893 X(sent,)s +3114 X(then)s +3321 X +0.0 10 10 f.I ft(MH)s +3510 X +0.0 10 10 f.R ft(will)s +3700 X(send)s +3917 X(the)s +4073 X(user)s +4273 X(a)s +4351 X(message,)s +874 X +3204 Y(indicating)s +1299 X(the)s +1446 X(name)s +1687 X(of)s +1795 X(the)s +1942 X(draft)s +2155 X(\256le,)s +2333 X(and)s +2502 X(an)s +2621 X(explanation)s +3112 X(of)s +3220 X(the)s +3367 X(failure.)s +874 X +3366 Y +1124 X(The)s +1309 X(user)s +1505 X(can)s +1672 X(also)s +1862 X(invoke)s +2163 X +0.0 10 10 f.I ft(send)s +2375 X +0.0 10 10 f.R ft(from)s +2598 X(the)s +2749 X(shell)s +2967 X(with)s +3174 X(the)s +3325 X(`\261push')s +3659 X(switch,)s +3974 X(which)s +4247 X(makes)s +4531 X +0.0 10 10 f.I ft(send)s +874 X +3486 Y +0.0 10 10 f.R ft(act)s +1015 X(like)s +1190 X(it)s +1271 X(had)s +1440 X(been)s +1653 X +0.0 10 10 f.I ft(push)s +1892 X +0.0 10 10 f.R ft('d)s +2000 X(by)s +2125 X(one)s +2294 X(of)s +2402 X(the)s +2549 X(composition)s +3069 X(commands.)s +874 X +3648 Y +1124 X(By)s +1278 X(using)s +1532 X +0.0 10 10 f.I ft(push)s +0.0 10 10 f.R ft(,)s +1783 X(the)s +1942 X(user)s +2145 X(can)s +2320 X(free)s +2511 X(the)s +2670 X(shell)s +2896 X(to)s +3011 X(do)s +3148 X(other)s +3389 X(things,)s +3695 X(because)s +4046 X(it)s +4138 X(appears)s +4478 X(to)s +4592 X(the)s +874 X +3768 Y(shell)s +1102 X(that)s +1291 X(the)s +1452 X +0.0 10 10 f.I ft(MH)s +1646 X +0.0 10 10 f.R ft(command)s +2079 X(has)s +2251 X(\256nished.)s +2657 X(As)s +2807 X(a)s +2890 X(result)s +3151 X(the)s +3312 X(shell)s +3539 X(will)s +3733 X(immediately)s +4271 X(prompt)s +4598 X(for)s +874 X +3888 Y(another)s +1199 X(command,)s +1644 X(despite)s +1953 X(the)s +2100 X(fact)s +2274 X(that)s +2449 X(the)s +2596 X(command)s +3015 X(is)s +3107 X(really)s +3359 X(still)s +3535 X(running.)s +3921 X(Note)s +4140 X(that)s +4315 X(if)s +4401 X(the)s +4548 X(user)s +874 X +4008 Y(indicates)s +1256 X(that)s +1433 X(annotations)s +1921 X(are)s +2068 X(to)s +2172 X(be)s +2292 X(performed)s +2733 X(\(with)s +2970 X(`\261annotate')s +3450 X(to)s +3554 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +3750 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +3985 X(or)s +4094 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(\),)s +4339 X(the)s +4487 X(anno-)s +874 X +4128 Y(tations)s +1170 X(will)s +1355 X(be)s +1478 X(performed)s +1922 X(after)s +2133 X(the)s +2284 X(message)s +2651 X(has)s +2813 X(been)s +3030 X(successfully)s +3547 X(sent.)s +3787 X(This)s +3993 X(action)s +4265 X(will)s +4449 X(appear)s +874 X +4248 Y(to)s +982 X(occur)s +1233 X(asynchronously.)s +1940 X(Obviously,)s +2412 X(if)s +2503 X(one)s +2677 X(of)s +2790 X(the)s +2941 X(messages)s +3347 X(that)s +3526 X(is)s +3622 X(to)s +3729 X(be)s +3852 X(annotated)s +4269 X(is)s +4365 X(removed)s +874 X +4368 Y(before)s +1169 X(the)s +1332 X(draft)s +1561 X(has)s +1735 X(been)s +1964 X(successfully)s +2493 X(sent,)s +2720 X(then)s +2933 X(when)s +3189 X +0.0 10 10 f.I ft(MH)s +3384 X +0.0 10 10 f.R ft(tries)s +3596 X(to)s +3714 X(make)s +3970 X(the)s +4132 X(annotations,)s +4658 X(it)s +874 X +4488 Y(won't)s +1137 X(be)s +1261 X(able)s +1457 X(to)s +1565 X(do)s +1695 X(so.)s +1864 X(In)s +1977 X(previous)s +2351 X(versions)s +2714 X(of)s +2827 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +3037 X(this)s +3212 X(resulted)s +3558 X(in)s +3666 X(an)s +3790 X(error)s +4013 X(message)s +4381 X(mysteri-)s +874 X +4608 Y(ously)s +1118 X(appearing)s +1538 X(on)s +1665 X(the)s +1814 X(user's)s +2079 X(terminal.)s +2489 X(In)s +2599 X +0.0 10 10 f.I ft(mh.5)s +2823 X +0.0 10 10 f.R ft(and)s +2994 X(later)s +3198 X(versions,)s +3583 X(in)s +3688 X(this)s +3860 X(special)s +4163 X(circumstance,)s +874 X +4728 Y(no)s +999 X(error)s +1217 X(will)s +1398 X(be)s +1517 X(generated.)s +874 X +4890 Y +1124 X(If)s +1217 X(send)s +1427 X(is)s +1521 X +0.0 10 10 f.I ft(push)s +1760 X +0.0 10 10 f.R ft('d,)s +1895 X(then)s +2094 X(the)s +2243 X(`\261forward')s +2701 X(switch)s +2989 X(is)s +3082 X(examined)s +3496 X(if)s +3583 X(a)s +3653 X(failure)s +3939 X(notice)s +4209 X(is)s +4302 X(generated.)s +874 X +5010 Y(If)s +972 X(given,)s +1251 X(then)s +1455 X(the)s +1609 X(draft)s +1829 X(is)s +1928 X(forwarded)s +2369 X(with)s +2579 X(the)s +2733 X(failure)s +3025 X(notice)s +3301 X(sent)s +3494 X(to)s +3604 X(the)s +3758 X(user.)s +4006 X(This)s +4216 X(allows)s +4509 X(rapid)s +874 X +5130 Y +0.0 10 10 f.I ft(burst)s +1130 X +0.0 10 10 f.R ft('ing)s +1316 X(of)s +1424 X(the)s +1571 X(failure)s +1856 X(notice)s +2125 X(to)s +2228 X(retrieve)s +2557 X(the)s +2704 X(unsent)s +2990 X(draft.)s +874 X +5412 Y +0.0 10 10 f.B ft(Options)s +1239 X(at)s +1347 X(What)s +1611 X(now?)s +1864 X(Level)s +874 X +5574 Y +1124 X +0.0 10 10 f.R ft(By)s +1270 X(default,)s +1600 X(the)s +1750 X(message)s +2116 X(composition)s +2639 X(programs)s +3044 X(call)s +3216 X(a)s +3288 X(program)s +3654 X(called)s +3920 X +0.0 10 10 f.I ft(whatnow)s +4310 X +0.0 10 10 f.R ft(before)s +4592 X(the)s +874 X +5694 Y(initial)s +1143 X(draft)s +1366 X(composition.)s +1946 X(The)s +2136 X +0.0 10 10 f.I ft(MH)s +2326 X +0.0 10 10 f.R ft(user)s +2527 X(can)s +2700 X(specify)s +3023 X(any)s +3202 X(program)s +3575 X(for)s +3726 X(this.)s +3956 X(Following)s +4402 X(is)s +4503 X(some)s +874 X +5814 Y(information)s +1377 X(about)s +1630 X(the)s +1782 X(default)s +2089 X(``What)s +2401 X(now?'')s +2713 X(level.)s +2987 X(More)s +3233 X(detailed)s +3579 X(information)s +4081 X(can)s +4249 X(be)s +4373 X(found)s +4636 X(in)s +874 X +5934 Y(the)s +1021 X +0.0 10 10 f.I ft(whatnow)s +1433 X +0.0 10 10 f.R ft(\(1\))s +1574 X(manual)s +1893 X(entry.)s +874 X +6096 Y +1124 X(When)s +1398 X(using)s +1651 X(the)s +1809 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +2086 X +0.0 10 10 f.I ft(dist)s +0.0 10 10 f.R ft(,)s +2292 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2537 X(and)s +2717 X +0.0 10 10 f.I ft(repl)s +2914 X +0.0 10 10 f.R ft(commands)s +3383 X(at)s +3491 X(``What)s +3809 X(now?'')s +4127 X(level,)s +4382 X(the)s +4539 X +0.0 10 10 f.I ft(edit)s +0.0 10 10 f.R ft(,)s +874 X +6216 Y +0.0 10 10 f.I ft(list)s +0.0 10 10 f.R ft(,)s +1054 X +0.0 10 10 f.I ft(headers)s +0.0 10 10 f.R ft(,)s +1427 X +0.0 10 10 f.I ft(re\256le)s +0.0 10 10 f.R ft(,)s +1689 X(and)s +1865 X(\(for)s +2046 X(the)s +2200 X +0.0 10 10 f.I ft(dist)s +2377 X +0.0 10 10 f.R ft(and)s +2553 X +0.0 10 10 f.I ft(repl)s +2746 X +0.0 10 10 f.R ft(commands\))s +3244 X(the)s +3398 X +0.0 10 10 f.I ft(display)s +3719 X +0.0 10 10 f.R ft(options)s +4046 X(will)s +4234 X(pass)s +4438 X(on)s +4570 X(any)s +874 X +6336 Y(additional)s +1299 X(arguments)s +1740 X(given)s +1987 X(them)s +2212 X(to)s +2315 X(whatever)s +2705 X(program)s +3068 X(they)s +3265 X(invoke.)s +874 X +6498 Y +1124 X(In)s +1237 X +0.0 10 10 f.I ft(mh.1)s +1464 X +0.0 10 10 f.R ft(\(the)s +1649 X(original)s +1990 X(RAND)s +2303 X +0.0 10 10 f.I ft(MH)s +2508 X +0.0 10 10 f.R ft(\))s +2571 X(and)s +2745 X +0.0 10 10 f.I ft(mh.2)s +2972 X +0.0 10 10 f.R ft(\(the)s +3157 X(\256rst)s +3343 X(UCI)s +3545 X(version)s +3869 X(of)s +3982 X +0.0 10 10 f.I ft(MH)s +4187 X +0.0 10 10 f.R ft(\),)s +4274 X +0.0 10 10 f.I ft(MH)s +4458 X +0.0 10 10 f.R ft(used)s +4670 X(a)s +874 X +6618 Y(complicated)s +1398 X(heuristic)s +1778 X(to)s +1892 X(determine)s +2327 X(if)s +2424 X(the)s +2582 X(draft)s +2806 X(should)s +3109 X(be)s +3239 X(deleted)s +3562 X(or)s +3680 X(preserved)s +4102 X(after)s +4319 X(an)s +4448 X(unsuc-)s +874 X +6738 Y(cessful)s +1183 X(edit.)s +1415 X(In)s +1530 X +0.0 10 10 f.I ft(mh.3)s +0.0 10 10 f.R ft(,)s +1784 X +0.0 10 10 f.I ft(MH)s +1971 X +0.0 10 10 f.R ft(was)s +2158 X(changed)s +2521 X(to)s +2630 X(preserve)s +2998 X(the)s +3151 X(draft)s +3370 X(always,)s +3703 X(since)s +3939 X +0.0 10 10 f.I ft(comp)s +0.0 10 10 f.R ft(,)s +4211 X(et.)s +4339 X(al.,)s +4492 X(could)s +874 X +6858 Y(usually)s +1200 X(look)s +1415 X(at)s +1524 X(a)s +1605 X(draft,)s +1855 X(apply)s +2114 X(another)s +2450 X(set)s +2598 X(of)s +2717 X(heuristics,)s +3161 X(and)s +3341 X(decide)s +3637 X(if)s +3734 X(it)s +3826 X(was)s +4017 X(important)s +4442 X(or)s +4561 X(not.)s +874 X +6978 Y(With)s +1106 X(the)s +1260 X(notion)s +1548 X(of)s +1663 X(a)s +1739 X +0.0 10 10 f.I ft(draft)s +1966 X(folder)s +0.0 10 10 f.R ft(,)s +2262 X(in)s +2372 X(which)s +2648 X(one)s +2824 X(by)s +2956 X(default)s +3265 X(gets)s +3458 X(a)s +3534 X(`new')s +3798 X(message)s +4167 X(draft,)s +4411 X(the)s +4564 X(edit)s +874 X +7098 Y(deletion/preservation)s +1774 X(algorithm)s +2220 X(was)s +2432 X(re-implemented,)s +3146 X(to)s +3281 X(keep)s +3526 X(the)s +3704 X(draft)s +3948 X(folder)s +4242 X(from)s +4492 X(being)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 142 143 + +874 X +600 Y +2686 X +0.0 10 10 f.B ft(-142-)s +874 X +960 Y +0.0 10 10 f.R ft(cluttered)s +1248 X(with)s +1451 X(aborted)s +1775 X(edits.)s +874 X +1122 Y +1124 X(Also,)s +1365 X(note)s +1564 X(that)s +1741 X(by)s +1868 X(default,)s +2197 X(if)s +2285 X(the)s +2434 X(draft)s +2648 X(cannot)s +2940 X(be)s +3060 X(successfully)s +3574 X(sent,)s +3786 X(these)s +4017 X(commands)s +4476 X(return)s +874 X +1242 Y(to)s +986 X(``What)s +1302 X(now?'')s +1618 X(level.)s +1896 X(But,)s +2100 X(when)s +2350 X +0.0 10 10 f.I ft(push)s +2573 X +0.0 10 10 f.R ft(is)s +2674 X(used,)s +2916 X(this)s +3095 X(does)s +3312 X(not)s +3474 X(happen)s +3796 X(\(obviously\).)s +4341 X(Hence,)s +4653 X(if)s +874 X +1362 Y(these)s +1114 X(commands)s +1582 X(were)s +1810 X(expected)s +2199 X(to)s +2312 X(annotate)s +2685 X(any)s +2864 X(messages,)s +3301 X(this)s +3481 X(will)s +3671 X(have)s +3893 X(to)s +4005 X(be)s +4133 X(done)s +4361 X(by)s +4495 X(hand,)s +874 X +1482 Y(later)s +1076 X(on,)s +1226 X(with)s +1429 X(the)s +1576 X +0.0 10 10 f.I ft(anno)s +1801 X +0.0 10 10 f.R ft(command.)s +874 X +1644 Y +1124 X(Finally,)s +1464 X(if)s +1556 X(the)s +1709 X(`\261delete')s +2094 X(switch)s +2386 X(is)s +2484 X(not)s +2643 X(given)s +2896 X(to)s +3005 X(the)s +3158 X +0.0 10 10 f.I ft(quit)s +3345 X +0.0 10 10 f.R ft(option,)s +3657 X(then)s +3860 X(these)s +4095 X(commands)s +4558 X(will)s +874 X +1764 Y(inform)s +1171 X(the)s +1318 X(user)s +1509 X(of)s +1617 X(the)s +1764 X(name)s +2005 X(of)s +2113 X(the)s +2260 X(unsent)s +2546 X(draft)s +2759 X(\256le.)s +874 X +2046 Y +0.0 10 10 f.B ft(Digests)s +874 X +2208 Y +1124 X +0.0 10 10 f.R ft(The)s +1315 X +0.0 10 10 f.I ft(forw)s +1535 X +0.0 10 10 f.R ft(command)s +1964 X(has)s +2132 X(the)s +2289 X(beginnings)s +2763 X(of)s +2881 X(a)s +2960 X(digestifying)s +3473 X(facility,)s +3816 X(with)s +4029 X(the)s +4186 X(`\261digest list',)s +874 X +2328 Y(`\261issue number',)s +1570 X(and)s +1739 X(`\261volume number')s +2510 X(switches.)s +874 X +2568 Y(If)s +979 X +0.0 10 10 f.I ft(forw)s +1202 X +0.0 10 10 f.R ft(is)s +1308 X(given)s +1569 X(``list'')s +1863 X(to)s +1980 X(the)s +2141 X(`\261digest')s +2535 X(switch)s +2835 X(as)s +2957 X(the)s +3118 X(name)s +3373 X(of)s +3495 X(the)s +3656 X(discussion)s +4112 X(group,)s +4409 X(and)s +4592 X(the)s +874 X +2688 Y(`\261issue number')s +1562 X(switch)s +1864 X(is)s +1972 X(not)s +2141 X(given,)s +2429 X(then)s +2642 X +0.0 10 10 f.I ft(forw)s +2867 X +0.0 10 10 f.R ft(looks)s +3125 X(for)s +3282 X(an)s +3417 X(entry)s +3663 X(in)s +3782 X(the)s +3945 X(user's)s +4224 X +0.0 10 10 f.I ft(MH)s +4420 X +0.0 10 10 f.R ft(context)s +874 X +2808 Y(called)s +1138 X(``)s +0.0 10 10 f.I ft(digest)s +0.0 10 10 f.R ft(\261issue\261list'')s +1958 X(and)s +2128 X(increments)s +2592 X(its)s +2713 X(value)s +2955 X(to)s +3059 X(use)s +3218 X(as)s +3327 X(the)s +3475 X(issue)s +3701 X(number.)s +4082 X(Similarly,)s +4506 X(if)s +4592 X(the)s +874 X +2928 Y(`\261volume number')s +1648 X(switch)s +1937 X(is)s +2032 X(not)s +2188 X(given,)s +2463 X(then)s +2663 X +0.0 10 10 f.I ft(forw)s +2875 X +0.0 10 10 f.R ft(looks)s +3120 X(for)s +3264 X(``)s +0.0 10 10 f.I ft(digest)s +0.0 10 10 f.R ft(\261volume\261list'')s +4186 X(\(but)s +4375 X(does)s +4586 X(not)s +874 X +3048 Y(increment)s +1298 X(its)s +1418 X(value\))s +1692 X(to)s +1795 X(use)s +1953 X(as)s +2061 X(the)s +2208 X(volume)s +2533 X(number.)s +874 X +3288 Y(Having)s +1194 X(calculated)s +1624 X(the)s +1772 X(name)s +2013 X(of)s +2121 X(the)s +2268 X(digest)s +2532 X(and)s +2701 X(the)s +2848 X(volume)s +3173 X(and)s +3342 X(issue)s +3567 X(numbers,)s +3961 X +0.0 10 10 f.I ft(forw)s +4170 X +0.0 10 10 f.R ft(will)s +4351 X(now)s +4548 X(pro-)s +874 X +3408 Y(cess)s +1077 X(the)s +1236 X(components)s +1756 X(\256le)s +1921 X(using)s +2175 X(the)s +2334 X(same)s +2576 X(format)s +2879 X(string)s +3144 X(mechanism)s +3636 X(used)s +3856 X(by)s +3993 X +0.0 10 10 f.I ft(repl)s +0.0 10 10 f.R ft(.)s +4241 X(The)s +4432 X(current)s +874 X +3528 Y(`%'\261escapes)s +1402 X(are:)s +874 X +3768 Y +0.0 10 10 f.I ft(escape)s +1189 X(type)s +1516 X(substitution)s +874 X +3888 Y +0.0 10 10 f.R ft(digest)s +1189 X(string)s +1516 X(digest)s +1780 X(name)s +874 X +4008 Y(msg)s +1189 X(integer)s +1516 X(issue)s +1741 X(number)s +874 X +4128 Y(cur)s +1189 X(integer)s +1516 X(volume)s +1841 X(number)s +874 X +4368 Y(In)s +993 X(addition,)s +1382 X(to)s +1496 X(capture)s +1825 X(the)s +1983 X(current)s +2301 X(date,)s +2528 X(any)s +2708 X(of)s +2827 X(the)s +2985 X(escapes)s +3324 X(valid)s +3559 X(for)s +3710 X +0.0 10 10 f.I ft(dp)s +3860 X +0.0 10 10 f.R ft(\(8\))s +4011 X(are)s +4167 X(also)s +4363 X(valid)s +4598 X(for)s +874 X +4488 Y +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(.)s +874 X +4728 Y(The)s +1054 X(default)s +1356 X(components)s +1864 X(\256le)s +2017 X(used)s +2225 X(by)s +2350 X +0.0 10 10 f.I ft(forw)s +2559 X +0.0 10 10 f.R ft(when)s +2800 X(in)s +2903 X(digest)s +3167 X(mode)s +3414 X(is:)s +874 X +4968 Y +1234 X(From:)s +1644 X(%{digest}-Request)s +874 X +5088 Y +1234 X(To:)s +1644 X(%{digest})s +2087 X(Distribution:)s +2624 X(dist-%{digest};)s +874 X +5208 Y +1234 X(Subject:)s +1612 X(%{digest})s +2055 X(Digest)s +2341 X(V%\(cur\))s +2714 X(#%\(msg\))s +874 X +5328 Y +1234 X(Reply-To:)s +1670 X(%{digest})s +874 X +5448 Y +1234 X(--------)s +874 X +5568 Y +1234 X(%{digest})s +1677 X(Digest)s +1954 X(%\(weekday{date}\),)s +2769 X(%2\(mday{date}\))s +3477 X(%\(month{date}\))s +4169 X(19%02\(year{date}\))s +874 X +5688 Y +1954 X(Volume)s +2301 X(%\(cur\))s +2602 X(:)s +2655 X(Issue)s +2885 X(%\(msg\))s +874 X +5928 Y +1234 X(Today's)s +1586 X(Topics:)s +874 X +6168 Y(Hence,)s +1181 X(when)s +1425 X(the)s +1575 X(`\261digest')s +1958 X(switch)s +2247 X(is)s +2342 X(present,)s +2683 X(the)s +2833 X(\256rst)s +3016 X(step)s +3204 X(taken)s +3447 X(by)s +3574 X +0.0 10 10 f.I ft(forw)s +3785 X +0.0 10 10 f.R ft(is)s +3879 X(to)s +3984 X(expand)s +4299 X(the)s +4448 X(format)s +874 X +6288 Y(strings)s +1175 X(in)s +1287 X(the)s +1443 X(component)s +1921 X(\256le.)s +2133 X(The)s +2322 X(next)s +2528 X(step)s +2723 X(is)s +2824 X(to)s +2935 X(compose)s +3323 X(the)s +3478 X(draft)s +3699 X(using)s +3949 X(the)s +4104 X(standard)s +4475 X(digest)s +874 X +6408 Y(encapsulation)s +1459 X(algorithm)s +1884 X(\(even)s +2141 X(putting)s +2461 X(an)s +2591 X(``End)s +2854 X(of)s +2973 X(list)s +3132 X(Digest'')s +3495 X(trailer)s +3769 X(in)s +3883 X(the)s +4041 X(draft\).)s +4347 X(Once)s +4592 X(the)s +874 X +6528 Y(draft)s +1095 X(is)s +1195 X(composed)s +1633 X(by)s +1766 X +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(,)s +2008 X +0.0 10 10 f.I ft(forw)s +2225 X +0.0 10 10 f.R ft(writes)s +2502 X(out)s +2663 X(the)s +2817 X(volume)s +3149 X(and)s +3325 X(issue)s +3557 X(pro\256le)s +3850 X(entries)s +4148 X(for)s +4296 X(the)s +4450 X(digest,)s +874 X +6648 Y(and)s +1043 X(then)s +1240 X(invokes)s +1576 X(the)s +1723 X(editor.)s +874 X +6888 Y(Naturally,)s +1319 X(when)s +1578 X(composing)s +2060 X(the)s +2225 X(draft,)s +2481 X +0.0 10 10 f.I ft(forw)s +2707 X +0.0 10 10 f.R ft(will)s +2905 X(honor)s +3180 X(the)s +3344 X(`\261\256lter \256lter\256le')s +4033 X(switch,)s +4361 X(which)s +4647 X(is)s +874 X +7008 Y(given)s +1124 X(to)s +1230 X +0.0 10 10 f.I ft(mhl)s +1408 X +0.0 10 10 f.R ft(to)s +1514 X(\256lter)s +1731 X(each)s +1941 X(message)s +2307 X(being)s +2557 X(forwarded)s +2994 X(prior)s +3215 X(to)s +3320 X(encapsulation)s +3896 X(in)s +4001 X(the)s +4150 X(draft.)s +4415 X(A)s +4514 X(good)s +874 X +7128 Y(\256lter)s +1088 X(\256le)s +1241 X(to)s +1344 X(use,)s +1527 X(which)s +1796 X(is)s +1888 X(called)s +2151 X +0.0 10 10 f.I ft(mhl.digest)s +0.0 10 10 f.R ft(,)s +2615 X(is:)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 143 144 + +874 X +600 Y +2686 X +0.0 10 10 f.B ft(-143-)s +874 X +960 Y +1234 X +0.0 10 10 f.R ft(width=80,over\257owo)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(set=10)s +874 X +1080 Y +1234 X(leftadjust,compress,compwidth=9)s +874 X +1200 Y +1234 X(Date:format\256eld="%<\(nodate{text}\)%{text}%|%\(tws{text}\)%>")s +874 X +1320 Y +1234 X(From:)s +874 X +1440 Y +1234 X(Subject:)s +874 X +1560 Y +1234 X(:)s +874 X +1680 Y +1234 X(body:nocomponent,over\257owo)s +Cff(set=0,noleftadjust,nocompress)s +874 X +2220 Y +0.0 10 10 f.B ft(FOLDER)s +1316 X(HANDLING)s +0.0 10 10 f.R ft( )s +874 X +2382 Y +1124 X(There)s +1395 X(are)s +1555 X(two)s +1744 X(interesting)s +2204 X(facilities)s +2586 X(for)s +2740 X(manipulating)s +3306 X(folders:)s +3649 X(relative)s +3986 X(folder)s +4262 X(addressing,)s +874 X +2502 Y(which)s +1144 X(allows)s +1431 X(a)s +1501 X(user)s +1693 X(to)s +1797 X(shorten)s +2116 X(the)s +2263 X(typing)s +2544 X(of)s +2652 X(long)s +2855 X(folder)s +3118 X(names;)s +3426 X(and)s +3595 X(the)s +3742 X(folder\261stack,)s +4285 X(which)s +4554 X(per-)s +874 X +2622 Y(mits)s +1072 X(a)s +1141 X(user)s +1332 X(to)s +1435 X(keep)s +1648 X(a)s +1717 X(stack)s +1947 X(of)s +2055 X(current)s +2362 X(folders.)s +874 X +2904 Y +0.0 10 10 f.B ft(Relative)s +1248 X(Folder)s +1556 X(Addressing)s +874 X +3066 Y +1124 X +0.0 10 10 f.R ft(By)s +1276 X(default,)s +1613 X(when)s +1864 X(`+folder')s +2259 X(is)s +2361 X(given,)s +2643 X(and)s +2822 X(the)s +2978 X(folder)s +3250 X(name)s +3500 X(is)s +3601 X(not)s +3763 X(absolute)s +4130 X(\(does)s +4380 X(not)s +4542 X(start)s +874 X +3186 Y(with)s +1083 X +0.0 10 10 f.B ft(/)s +0.0 10 10 f.R ft(,)s +1167 X +0.0 10 10 f.B ft(./)s +0.0 10 10 f.R ft(,)s +1276 X(or)s +1390 X +0.0 10 10 f.B ft(../)s +0.0 10 10 f.R ft(\),)s +1557 X(then)s +1760 X(the)s +1913 X(UNIX)s +2192 X(pathname)s +2610 X(of)s +2723 X(the)s +2875 X(folder)s +3143 X(is)s +3240 X(interpreted)s +3702 X(relative)s +4031 X(to)s +4139 X(the)s +4291 X(user's)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +3306 Y +0.0 10 10 f.R ft(directory.)s +1334 X(Although)s +1762 X(this)s +1957 X(mechanism)s +2462 X(works)s +2756 X(\256ne)s +2955 X(for)s +3120 X(top\261level)s +3541 X(folders)s +3867 X(and)s +4060 X(their)s +4292 X(immediate)s +874 X +3426 Y(sub\261folders,)s +1390 X(once)s +1603 X(the)s +1750 X(depth)s +1997 X(of)s +2105 X(the)s +2252 X(sub\261folder)s +2704 X(tree)s +2878 X(grows,)s +3172 X(it)s +3253 X(becomes)s +3627 X(rather)s +3884 X(unwieldly:)s +874 X +3666 Y +1234 X(scan)s +1461 X(+mh/mh.4/draft/\257ames)s +874 X +3906 Y(is)s +971 X(a)s +1045 X(lot)s +1181 X(of)s +1294 X(typing.)s +1630 X +0.0 10 10 f.I ft(MH)s +1815 X +0.0 10 10 f.R ft(can't)s +2044 X(do)s +2174 X(anything)s +2554 X(if)s +2645 X(the)s +2797 X(current)s +3109 X(folder)s +3377 X(was)s +3562 X(``+inbox'',)s +4033 X(but)s +4191 X(if)s +4281 X(the)s +4432 X(current)s +874 X +4026 Y(folder)s +1141 X(was,)s +1350 X(say,)s +1537 X(``+mh/mh.4/draft'',)s +2354 X +0.0 10 10 f.I ft(MH)s +2538 X +0.0 10 10 f.R ft(has)s +2700 X(a)s +2773 X(short\261hand)s +3245 X(notation)s +3601 X(to)s +3707 X(reference)s +4104 X(a)s +4176 X(sub\261folder)s +4631 X(of)s +874 X +4146 Y(the)s +1039 X(current)s +1364 X(folder.)s +1695 X(Using)s +1977 X(the)s +2142 X(`@folder')s +2580 X(notation,)s +2975 X(the)s +3139 X +0.0 10 10 f.I ft(MH)s +3336 X +0.0 10 10 f.R ft(user)s +3544 X(can)s +3724 X(direct)s +3993 X(any)s +4179 X +0.0 10 10 f.I ft(MH)s +4376 X +0.0 10 10 f.R ft(program)s +874 X +4266 Y(which)s +1151 X(expects)s +1483 X(a)s +1559 X(`+folder')s +1951 X(argument)s +2360 X(to)s +2470 X(look)s +2680 X(for)s +2828 X(the)s +2982 X(folder)s +3252 X(relative)s +3583 X(to)s +3693 X(the)s +3847 X(current)s +4161 X(folder)s +4431 X(instead)s +874 X +4386 Y(of)s +982 X(the)s +1129 X(user's)s +1392 X +0.0 10 10 f.I ft(MH)s +1572 X +0.0 10 10 f.R ft(directory.)s +2007 X(Hence,)s +2311 X(if)s +2397 X(the)s +2544 X(current)s +2851 X(folder)s +3114 X +0.0 10 10 f.I ft(was)s +3295 X +0.0 10 10 f.R ft(``+mh/mh.4/draft'',)s +4108 X(then)s +874 X +4626 Y +1234 X(scan)s +1461 X(@\257ames)s +874 X +4866 Y(would)s +1149 X(do)s +1274 X(the)s +1421 X(trick)s +1629 X(handily.)s +2004 X(In)s +2112 X(addition,)s +2490 X(if)s +2576 X(the)s +2723 X(current)s +3030 X(folder)s +3293 X +0.0 10 10 f.I ft(was)s +3474 X +0.0 10 10 f.R ft(``+mh/mh.4/draft'',)s +874 X +5106 Y +1234 X(scan)s +1461 X(@../pick)s +874 X +5346 Y(would)s +1160 X(scan)s +1373 X(the)s +1531 X(folder)s +1805 X(``+mh/mh.4/pick'',)s +2612 X(since,)s +2877 X(in)s +2990 X(the)s +3147 X(UNIX)s +3431 X(fashion,)s +3785 X(it)s +3876 X(references)s +4319 X(the)s +4476 X(folder)s +874 X +5466 Y(``pick'')s +1210 X(which)s +1486 X(is)s +1585 X(a)s +1661 X(sub\261folder)s +2119 X(of)s +2233 X(the)s +2386 X(folder)s +2655 X(that)s +2836 X(is)s +2934 X(the)s +3087 X(parent)s +3367 X(of)s +3481 X(the)s +3634 X(current)s +3947 X(folder.)s +4266 X(Since)s +4519 X(most)s +874 X +5586 Y(advanced)s +1281 X +0.0 10 10 f.I ft(MH)s +1467 X +0.0 10 10 f.R ft(users)s +1703 X(seem)s +1939 X(to)s +2048 X(exhibit)s +2357 X(a)s +2431 X(large)s +2660 X(degree)s +2955 X(of)s +3068 X(locality)s +3398 X(in)s +3506 X(referencing)s +3989 X(folders)s +4296 X(when)s +4542 X(they)s +874 X +5706 Y(process)s +1198 X(mail,)s +1426 X(this)s +1596 X(convention)s +2065 X(should)s +2357 X(receive)s +2669 X(a)s +2738 X(wide)s +2957 X(range)s +3203 X(of)s +3311 X(uses.)s +874 X +5988 Y +0.0 10 10 f.B ft(The)s +1066 X(Folder\261Stack)s +874 X +6150 Y +1124 X +0.0 10 10 f.R ft(The)s +1308 X +0.0 10 10 f.I ft(folder\261stack)s +1831 X +0.0 10 10 f.R ft(mechanism)s +2315 X(in)s +2422 X +0.0 10 10 f.I ft(MH)s +2606 X +0.0 10 10 f.R ft(gives)s +2846 X(the)s +2997 X +0.0 10 10 f.I ft(MH)s +3181 X +0.0 10 10 f.R ft(user)s +3376 X(a)s +3449 X(facility)s +3761 X(similar)s +4068 X(to)s +4175 X(the)s +4325 X +0.0 10 10 f.I ft(CShell)s +4642 X +0.0 10 10 f.R ft('s)s +874 X +6270 Y(directory\261stack.)s +1564 X(Simply)s +1879 X(put,)s +874 X +6510 Y +1234 X(folder)s +1522 X(\261push)s +1811 X(+foo)s +874 X +6750 Y(makes)s +1159 X(``foo'')s +1454 X(the)s +1606 X(current)s +1918 X(folder,)s +2211 X(saving)s +2502 X(the)s +2653 X(folder)s +2920 X(that)s +3099 X(was)s +3283 X(previously)s +3734 X(the)s +3885 X(current)s +4196 X(folder)s +4463 X(on)s +4592 X(the)s +874 X +6870 Y +0.0 10 10 f.I ft(folder\261stack)s +0.0 10 10 f.R ft(.)s +1443 X(As)s +1579 X(expected,)s +874 X +7110 Y +1234 X(folder)s +1522 X(\261pop)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 144 145 + +874 X +600 Y +2686 X +0.0 10 10 f.B ft(-144-)s +874 X +960 Y +0.0 10 10 f.R ft(takes)s +1114 X(the)s +1271 X(top)s +1433 X(of)s +1550 X(the)s +1706 X +0.0 10 10 f.I ft(folder\261stack)s +2234 X +0.0 10 10 f.R ft(and)s +2412 X(makes)s +2701 X(it)s +2791 X(the)s +2947 X(current)s +3263 X(folder.)s +3585 X(Each)s +3818 X(of)s +3935 X(these)s +4174 X(switches)s +4552 X(lists)s +874 X +1080 Y(the)s +1022 X +0.0 10 10 f.I ft(folder\261stack)s +1542 X +0.0 10 10 f.R ft(when)s +1784 X(they)s +1981 X(execute.)s +2360 X(It)s +2446 X(is)s +2538 X(simple)s +2830 X(to)s +2933 X(write)s +3163 X(a)s +3232 X +0.0 10 10 f.I ft(pushf)s +3474 X +0.0 10 10 f.R ft(command)s +3893 X(as)s +4001 X(a)s +4070 X(shell)s +4284 X(script.)s +4581 X(It's)s +874 X +1200 Y(one)s +1043 X(line:)s +874 X +1440 Y +1234 X(exec)s +1466 X(folder)s +1754 X(\261push)s +2043 X($@)s +874 X +1680 Y(Probably)s +1270 X(a)s +1349 X(better)s +1611 X(way)s +1812 X(is)s +1914 X(to)s +2026 X(link)s +2216 X +0.0 10 10 f.I ft(folder)s +2489 X +0.0 10 10 f.R ft(to)s +2601 X(the)s +2757 X($HOME/bin/)s +3319 X(directory)s +3713 X(under)s +3974 X(the)s +4130 X(name)s +4380 X(of)s +4497 X +0.0 10 10 f.I ft(pushf)s +874 X +1800 Y +0.0 10 10 f.R ft(and)s +1043 X(then)s +1240 X(add)s +1409 X(the)s +1556 X(entry)s +874 X +2040 Y +1234 X(pushf:)s +1534 X(\261push)s +874 X +2280 Y(to)s +977 X(the)s +1124 X(.mh)s +/Cru { 0 ysiz pt 5 div 2 copy rmoveto (_) show neg rmoveto } def + +Cru(pro\256le.)s +874 X +2442 Y +1124 X(The)s +1321 X(manual)s +1657 X(page)s +1887 X(for)s +2045 X +0.0 10 10 f.I ft(folder)s +2326 X +0.0 10 10 f.R ft(discusses)s +2740 X(the)s +2904 X(analogy)s +3262 X(between)s +3636 X(the)s +3800 X +0.0 10 10 f.I ft(CShell)s +4108 X +0.0 10 10 f.R ft(directory)s +4509 X(stack)s +874 X +2562 Y(commands)s +1336 X(and)s +1509 X(the)s +1659 X(switches)s +2031 X(in)s +2137 X +0.0 10 10 f.I ft(folder)s +2404 X +0.0 10 10 f.R ft(which)s +2676 X(manipulate)s +3148 X(the)s +3298 X +0.0 10 10 f.I ft(folder\261stack)s +0.0 10 10 f.R ft(.)s +3870 X(The)s +4053 X +0.0 10 10 f.I ft(folder)s +4320 X +0.0 10 10 f.R ft(command)s +874 X +2682 Y(uses)s +1071 X(the)s +1218 X(context)s +1537 X(entry)s +1767 X(`Folder\261Stack:')s +2419 X(to)s +2522 X(keep)s +2735 X(track)s +2959 X(of)s +3067 X(the)s +3214 X(folders)s +3516 X(in)s +3619 X(the)s +3766 X(user's)s +4029 X(stack)s +4259 X(of)s +4367 X(folders.)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 145 146 + +874 X +960 Y +2548 X(Appendix)s +2967 X(A)s +874 X +1100 Y +2128 X +0.0 12 12 f.B ft(COMMAND)s +2822 X(SUMMARY)s +514 X +1670 Y +874 X +0.0 10 10 f.R ft(ali)s +999 X([\261alias alias\256le])s +1659 X([\261list])s +1923 X([\261nolist])s +2287 X([\261normalize])s +2827 X([\261nonormalize])s +3467 X([\261user])s +3774 X([\261nouser])s +514 X +1790 Y +1234 X(aliases ...)s +1650 X([\261help])s +514 X +2030 Y +874 X(anno)s +1093 X([+folder])s +1478 X([msgs])s +1775 X([\261component \256eld])s +2563 X([\261inplace])s +2992 X([\261noinplace])s +3521 X([\261date])s +3828 X([\261nodate])s +514 X +2150 Y +1234 X([\261text body])s +1750 X([\261help])s +514 X +2390 Y +874 X(bbc)s +1043 X([bboards ...])s +1550 X([\261topics])s +1930 X([\261check])s +2303 X([\261read])s +2615 X([\261quiet])s +2956 X([\261verbose])s +3407 X([\261archive])s +3841 X([\261noarchive])s +514 X +2510 Y +1234 X([\261protocol])s +1708 X([\261noprotocol])s +2282 X([\261mshproc program])s +3130 X([switches for )s +0.0 10 10 f.I ft(mshproc)s +0.0 10 10 f.R ft(])s +514 X +2630 Y +1234 X([\261rc\256le)s +1547 X(rc\256le])s +1810 X([\261norc\256le])s +2256 X([\261\256le BBoards\256le])s +3028 X([\261user BBoardsuser])s +3876 X([\261host host])s +514 X +2750 Y +1234 X([\261help])s +514 X +2990 Y +874 X(burst)s +1099 X([+folder])s +1484 X([msgs])s +1781 X([\261inplace])s +2210 X([\261noinplace])s +2739 X([\261quiet])s +3080 X([\261noquiet])s +3521 X([\261verbose])s +514 X +3110 Y +1234 X([\261noverbose])s +1785 X([\261help])s +514 X +3350 Y +874 X(comp)s +1121 X([+folder])s +1506 X([msg])s +1764 X([\261draftfolder +folder])s +2650 X([\261draftmessage msg])s +3509 X([\261nodraftfolder])s +514 X +3470 Y +1234 X([\261editor editor])s +1866 X([\261noedit])s +2257 X([\261\256le \256le])s +2679 X([\261form form\256le])s +3361 X([\261use])s +3635 X([\261nouse])s +514 X +3590 Y +1234 X([\261whatnowproc program])s +2281 X([\261nowhatnowproc])s +3065 X([\261help])s +514 X +3830 Y +874 X(dist)s +1044 X([+folder])s +1429 X([msg])s +1687 X([\261annotate])s +2166 X([\261noannotate])s +2745 X([\261draftfolder +folder])s +514 X +3950 Y +1234 X([\261draftmessage msg])s +2093 X([\261nodraftfolder])s +2760 X([\261editor editor])s +3392 X([\261noedit])s +514 X +4070 Y +1234 X([\261form form\256le])s +1916 X([\261inplace])s +2345 X([\261noinplace])s +2874 X([\261whatnowproc program])s +514 X +4190 Y +1234 X([\261nowhatnowproc])s +2018 X([\261help])s +514 X +4430 Y +874 X(/usr/bs/mh-beta/lib/fmtdump)s +2050 X([\261form format\256le])s +2804 X([\261format string])s +3464 X([\261help])s +514 X +4670 Y +874 X(folder)s +1137 X([+folder])s +1522 X([msg])s +1780 X([\261all])s +2021 X([\261fast])s +2306 X([\261nofast])s +2691 X([\261header])s +3097 X([\261noheader])s +3603 X([\261pack])s +3932 X([\261nopack])s +514 X +4790 Y +1234 X([\261recurse])s +1662 X([\261norecurse])s +2190 X([\261total])s +2509 X([\261nototal])s +2928 X([\261print])s +3258 X([\261noprint])s +3688 X([\261list])s +3952 X([\261nolist])s +514 X +4910 Y +1234 X([\261push])s +1564 X([\261pop])s +1855 X([\261help])s +514 X +5150 Y +874 X(folders)s +514 X +5390 Y +874 X(forw)s +1087 X([+folder])s +1472 X([msgs])s +1769 X([\261annotate])s +2248 X([\261noannotate])s +2827 X([\261draftfolder +folder])s +514 X +5510 Y +1234 X([\261draftmessage msg])s +2093 X([\261nodraftfolder])s +2760 X([\261editor editor])s +3392 X([\261noedit])s +514 X +5630 Y +1234 X([\261\256lter \256lter\256le])s +1906 X([\261form form\256le])s +2588 X([\261format])s +2995 X([\261noformat])s +3502 X([\261inplace])s +514 X +5750 Y +1234 X([\261noinplace])s +1763 X([\261mime])s +2132 X([\261nomime])s +2601 X([\261whatnowproc program])s +514 X +5870 Y +1234 X([\261nowhatnowproc])s +2018 X([\261help])s +514 X +6110 Y +874 X(forw)s +1087 X([+folder])s +1472 X([msgs])s +1769 X([\261digest list])s +2297 X([\261issue number])s +2968 X([\261volume number])s +514 X +6230 Y +1234 X([other switches for )s +0.0 10 10 f.I ft(forw)s +0.0 10 10 f.R ft(])s +2249 X([\261help])s +514 X +7320 Y +2326 X +0.0 10 10 f.B ft(-145-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 146 147 + +514 X +960 Y +874 X +0.0 10 10 f.R ft(inc)s +1021 X([+folder])s +1406 X([\261audit audit\261\256le])s +2150 X([\261noaudit])s +2591 X([\261changecur])s +3141 X([\261nochangecur])s +3791 X([\261\256le name])s +514 X +1080 Y +1234 X([\261form format\256le])s +1988 X([\261format string])s +2648 X([\261silent])s +3006 X([\261nosilent])s +3464 X([\261truncate])s +514 X +1200 Y +1234 X([\261notruncate])s +1796 X([\261width columns])s +2529 X([\261host host])s +3029 X([\261user user])s +3527 X([\261apop])s +3862 X([\261noapop])s +514 X +1320 Y +1234 X([\261rpop])s +1558 X([\261norpop])s +1982 X([\261pack \256le])s +2464 X([\261nopack])s +2893 X([\261help])s +514 X +1560 Y +874 X(mark)s +1104 X([+folder])s +1489 X([msgs])s +1786 X([\261sequence name ...])s +2633 X([\261add])s +2918 X([\261delete])s +3297 X([\261list])s +3561 X([\261public])s +514 X +1680 Y +1234 X([\261nopublic])s +1725 X([\261zero])s +2037 X([\261nozero])s +2449 X([\261help])s +514 X +1920 Y +874 X(/usr/bs/mh-beta/lib/mhl)s +1839 X([\261bell])s +2130 X([\261nobell])s +2521 X([\261clear])s +2855 X([\261noclear])s +3289 X([\261folder +folder])s +514 X +2040 Y +1234 X([\261form form\256le])s +1916 X([\261length lines])s +2521 X([\261width columns])s +3254 X([\261moreproc program])s +514 X +2160 Y +1234 X([\261nomoreproc])s +1857 X([\256les ...])s +2215 X([\261help])s +514 X +2400 Y +874 X(mhmail)s +1205 X([)s +1263 X(addrs ...)s +1604 X([\261body text])s +2120 X([\261cc addrs ...])s +2690 X([\261from addr])s +3227 X([\261subject)s +3618 X(subject]])s +3992 X([\261help])s +514 X +2640 Y +874 X(mhn)s +1077 X([[+folder])s +1495 X([msgs])s +1792 X(|)s +1837 X([\261\256le)s +2098 X(\256le]])s +514 X +2760 Y +1234 X([\261part)s +1522 X(number]...)s +1960 X([\261type)s +2265 X(content]...)s +514 X +2880 Y +1234 X([\261list)s +1490 X([\261headers])s +1960 X([\261noheaders])s +514 X +3000 Y +1409 X([\261realsize])s +1879 X([\261norealsize]])s +2457 X([-nolist])s +514 X +3120 Y +1234 X([\261show)s +1578 X([\261serialonly])s +2138 X([\261noserialonly])s +514 X +3240 Y +1409 X([\261form)s +1736 X(form\256le])s +2141 X([\261pause])s +2534 X([\261nopause]])s +3035 X([\261noshow])s +514 X +3360 Y +1234 X([\261store)s +1561 X([\261auto])s +1899 X([\261noauto]])s +2345 X([\261nostore])s +514 X +3480 Y +1234 X([\261cache])s +1601 X([\261nocache])s +2068 X([\261rcache)s +2460 X(policy])s +2768 X([\261wcache)s +3199 X(policy])s +514 X +3600 Y +1234 X([\261check])s +1632 X([\261nocheck])s +514 X +3720 Y +1234 X([\261ebcdicsafe])s +1820 X([\261noebcdicsafe])s +514 X +3840 Y +1234 X([\261rfc934mode])s +1882 X([\261norfc934mode])s +514 X +3960 Y +1234 X([\261verbose])s +1710 X([\261noverbose])s +514 X +4080 Y +1234 X([\261help])s +514 X +4320 Y +874 X(mhparam)s +1276 X([pro\256le-components])s +2144 X([\261components])s +2768 X([\261nocomponents])s +3492 X([\261all])s +3733 X([\261help])s +514 X +4560 Y +874 X(mhpath)s +1199 X([+folder])s +1584 X([msgs])s +1881 X([\261help])s +514 X +4800 Y +874 X(msgchk)s +1210 X([\261date])s +1517 X([\261nodate])s +1924 X([\261notify all/mail/nomail])s +2941 X([\261nonotify all/mail/nomail])s +514 X +4920 Y +1234 X([\261host host])s +1734 X([\261user user])s +2232 X([\261apop])s +2567 X([\261noapop])s +3002 X([\261rpop])s +3326 X([\261norpop])s +3750 X([users ...])s +514 X +5040 Y +1234 X([\261help])s +514 X +5280 Y +874 X(msh)s +1066 X([\261prompt string])s +1749 X([\261scan])s +2067 X([\261noscan])s +2485 X([\261topcur])s +2881 X([\261notopcur])s +3377 X([\256le])s +3596 X([\261help])s +514 X +5520 Y +874 X(next)s +1071 X([+folder])s +1456 X([\261header])s +1862 X([\261noheader])s +2368 X([\261showproc program])s +3260 X([\261noshowproc])s +514 X +5640 Y +1234 X([switches for )s +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(])s +2224 X([\261help])s +514 X +5880 Y +874 X(packf)s +1120 X([+folder])s +1505 X([msgs])s +1802 X([-\256le name])s +2295 X([\261help])s +514 X +6120 Y +874 X(pick)s +1212 X(\261cc)s +2195 X([+folder])s +2580 X([msgs])s +2877 X([\261help])s +514 X +6240 Y +1212 X(\261date)s +2195 X([\261before date])s +2781 X([\261after date])s +3295 X([\261date\256eld \256eld])s +514 X +6360 Y +1212 X(\261from)s +514 X +6120 Y +1162 X +0.0 12 12 f.S2 ft(B)s +6240 Y +1162 X(A)s +6360 Y +1162 X(A)s +6480 Y +1162 X(C)s +6600 Y +1162 X(A)s +6720 Y +1162 X(A)s +6840 Y +1162 X(D)s +6480 Y +0.0 10 10 f.R ft(\261search)s +6120 Y +2110 X +0.0 12 12 f.S2 ft(E)s +6240 Y +2110 X(A)s +6360 Y +2110 X(A)s +6480 Y +2110 X(F)s +6600 Y +2110 X(A)s +6720 Y +2110 X(A)s +6840 Y +2110 X(G)s +6480 Y +2195 X +0.0 10 10 f.R ft(pattern)s +2497 X([\261and ...])s +2882 X([\261or ...])s +3206 X([\261not ...])s +3575 X([\261lbrace ... \261rbrace])s +514 X +6600 Y +1212 X(\261subject)s +514 X +6720 Y +1212 X(\261to)s +2195 X([\261sequence name ...])s +3042 X([\261public])s +3433 X([\261nopublic])s +3924 X([\261zero])s +4236 X([\261nozero])s +514 X +6840 Y +1212 X(\261)s +0.0 10 10 f.S2 ft(O)s +0.0 10 10 f.R ft(\261component)s +2195 X([\261list])s +2459 X([\261nolist])s +514 X +7320 Y +2326 X +0.0 10 10 f.B ft(-146-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 147 148 + +514 X +960 Y +874 X +0.0 10 10 f.R ft(prev)s +1076 X([+folder])s +1461 X([\261header])s +1867 X([\261noheader])s +2373 X([\261showproc program])s +3265 X([\261noshowproc])s +514 X +1080 Y +1234 X([switches for )s +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(])s +2224 X([\261help])s +514 X +1320 Y +874 X(prompter)s +1265 X([\261erase chr])s +1762 X([\261kill chr])s +2189 X([\261prepend])s +2651 X([\261noprepend])s +3213 X([\261rapid])s +3559 X([\261norapid])s +514 X +1440 Y +1234 X([\261doteof])s +1630 X([\261nodoteof])s +2126 X(\256le)s +2279 X([\261help])s +514 X +1680 Y +874 X(/usr/bs/mh-beta/lib/rcvstore)s +2004 X([+folder])s +2389 X([\261create])s +2767 X([\261nocreate])s +3245 X([\261sequence name ...])s +514 X +1800 Y +1234 X([\261public])s +1625 X([\261nopublic])s +2116 X([\261zero])s +2428 X([\261nozero])s +2840 X([\261help])s +514 X +2040 Y +874 X(re\256le)s +1104 X([msgs])s +1401 X([\261draft])s +1730 X([\261link])s +2027 X([\261nolink])s +2424 X([\261preserve])s +2902 X([\261nopreserve])s +3480 X([\261src +folder])s +514 X +2160 Y +1234 X([\261\256le \256le])s +1656 X(+folder)s +1975 X(...)s +2100 X([\261help])s +514 X +2400 Y +874 X(repl)s +1054 X([+folder])s +1439 X([msg])s +1697 X([\261annotate])s +2176 X([\261noannotate])s +2755 X([\261cc all/to/cc/me])s +3481 X([\261nocc all/to/cc/me])s +514 X +2520 Y +1234 X([\261draftfolder +folder])s +2120 X([\261draftmessage msg])s +2979 X([\261nodraftfolder])s +3646 X([\261editor editor])s +514 X +2640 Y +1234 X([\261noedit])s +1625 X([\261fcc +folder])s +2206 X([\261\256lter \256lter\256le])s +2878 X([\261form form\256le])s +3560 X([\261inplace])s +514 X +2760 Y +1234 X([\261noinplace])s +1763 X([\261query])s +2131 X([\261noquery])s +2599 X([\261whatnowproc program])s +514 X +2880 Y +1234 X([\261nowhatnowproc])s +2018 X([\261width columns])s +2751 X([\261help])s +514 X +3120 Y +874 X(rmf)s +1043 X([+folder])s +1428 X([\261interactive])s +1990 X([\261nointeractive])s +2652 X([\261help])s +514 X +3360 Y +874 X(rmm)s +1088 X([+folder])s +1473 X([msgs])s +1770 X([\261help])s +514 X +3600 Y +874 X(scan)s +1076 X([+folder])s +1461 X([msgs])s +1758 X([\261clear])s +2092 X([\261noclear])s +2526 X([\261form format\256le])s +3280 X([\261format string])s +3940 X([\261header])s +514 X +3720 Y +1234 X([\261noheader])s +1740 X([\261width columns])s +2473 X([\261reverse])s +2901 X([\261noreverse])s +3429 X([\261\256le)s +3665 X(\256lename])s +514 X +3840 Y +1234 X([\261help])s +514 X +4080 Y +874 X(send)s +1082 X([\261alias alias\256le])s +1742 X([\261draft])s +2071 X([\261draftfolder +folder])s +2957 X([\261draftmessage msg])s +514 X +4200 Y +1234 X([\261nodraftfolder])s +1901 X([\261\256lter \256lter\256le])s +2573 X([\261no\256lter])s +3003 X([\261format])s +3410 X([\261noformat])s +3917 X([\261forward])s +514 X +4320 Y +1234 X([\261noforward])s +1790 X([\261mime])s +2159 X([\261nomime])s +2628 X([\261msgid])s +3014 X([\261nomsgid])s +3500 X([\261push])s +3830 X([\261nopush])s +514 X +4440 Y +1234 X([\261split seconds])s +1889 X([\261verbose])s +2340 X([\261noverbose])s +2891 X([\261watch])s +3270 X([\261nowatch])s +514 X +4560 Y +1234 X([\261width columns])s +1967 X([\256le ...])s +2286 X([\261help])s +514 X +4800 Y +874 X(show)s +1110 X([+folder])s +1495 X([msgs])s +1792 X([\261draft])s +2121 X([\261header])s +2527 X([\261noheader])s +3033 X([\261showproc program])s +514 X +4920 Y +1234 X([\261noshowproc])s +1863 X([switches for )s +0.0 10 10 f.I ft(showproc)s +0.0 10 10 f.R ft(])s +2853 X([\261help])s +514 X +5160 Y +874 X(sortm)s +1127 X([+folder])s +1512 X([msgs])s +1809 X([\261date\256eld \256eld])s +2497 X([\261text\256eld \256eld])s +3169 X([\261notext\256eld])s +3738 X([\261limit)s +4036 X(days])s +514 X +5280 Y +1234 X([\261nolimit])s +1665 X([\261verbose])s +2116 X([\261noverbose])s +2667 X([\261help])s +514 X +5520 Y +874 X(vmh)s +1077 X([\261prompt string])s +1760 X([\261vmhproc program])s +2619 X([\261novmhproc])s +3215 X([switches for )s +0.0 10 10 f.I ft(vmhproc)s +0.0 10 10 f.R ft(])s +514 X +5640 Y +1234 X([\261help])s +514 X +5880 Y +874 X(whatnow)s +1265 X([\261draftfolder +folder])s +2151 X([\261draftmessage msg])s +3010 X([\261nodraftfolder])s +3677 X([\261editor editor])s +514 X +6000 Y +1234 X([\261noedit])s +1625 X([\261prompt string])s +2308 X([\256le])s +2527 X([\261help])s +514 X +6240 Y +874 X(whom)s +1149 X([\261alias alias\256le])s +1809 X([\261check])s +2182 X([\261nocheck])s +2655 X([\261draft])s +2984 X([\261draftfolder +folder])s +514 X +6360 Y +1234 X([\261draftmessage msg])s +2093 X([\261nodraftfolder])s +2760 X([\256le])s +2979 X([\261help])s +514 X +7320 Y +2326 X +0.0 10 10 f.B ft(-147-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 148 149 + +514 X +960 Y +874 X +0.0 10 10 f.R ft(/usr/bs/mh-beta/lib/ap)s +1777 X([\261form format\256le])s +2531 X([\261format string])s +3191 X([\261normalize])s +3731 X([\261nonormalize])s +514 X +1080 Y +1234 X([\261width columns])s +1967 X(addrs ...)s +2333 X([\261help])s +514 X +1320 Y +874 X(/usr/bs/mh-beta/lib/con\257ict)s +1983 X([\261mail name])s +2543 X([\261search directory])s +3323 X([alias\256les ...])s +3864 X([\261help])s +514 X +1560 Y +874 X(/usr/bs/mh-beta/lib/dp)s +1783 X([\261form format\256le])s +2537 X([\261format string])s +3197 X([\261width columns])s +3930 X(dates ...)s +514 X +1680 Y +1234 X([\261help])s +514 X +1920 Y +874 X(/usr/bs/mh-beta/lib/install\261mh)s +2106 X([\261auto])s +2419 X([\261compat])s +514 X +2160 Y +874 X(/usr/bs/mh-beta/lib/post)s +1850 X([\261alias alias\256le])s +2510 X([\261\256lter \256lter\256le])s +3182 X([\261no\256lter])s +3612 X([\261format])s +514 X +2280 Y +1234 X([\261noformat])s +1741 X([\261mime])s +2110 X([\261nomime])s +2579 X([\261msgid])s +2965 X([\261nomsgid])s +3451 X([\261verbose])s +514 X +2400 Y +1234 X([\261noverbose])s +1785 X([\261watch])s +2164 X([\261nowatch])s +2643 X([\261width columns])s +3376 X(\256le)s +3529 X([\261help])s +514 X +2640 Y +874 X(/usr/bs/mh-beta/lib/slocal)s +1916 X([address info sender])s +2777 X([\261addr address])s +3419 X([\261info data])s +514 X +2760 Y +1234 X([\261sender sender])s +1920 X([\261user username])s +2634 X([\261mailbox mbox])s +3356 X([\261\256le \256le])s +514 X +2880 Y +1234 X([\261maildelivery delivery\256le])s +2360 X([\261verbose])s +2811 X([\261noverbose])s +3362 X([\261debug])s +3747 X([\261help])s +874 X +7320 Y +2686 X +0.0 10 10 f.B ft(-148-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 149 150 + +874 X +960 Y +2551 X +0.0 10 10 f.R ft(Appendix)s +2970 X(B)s +874 X +1100 Y +2168 X +0.0 12 12 f.B ft(MESSAGE)s +2785 X(NAME)s +3180 X(BNF)s +874 X +1790 Y +1594 X +0.0 10 10 f.R ft(msgs)s +2510 X(:=)s +2644 X(msgspec)s +3585 X(|)s +874 X +1910 Y +2644 X(msgs)s +2875 X(msgspec)s +874 X +2150 Y +1594 X(msgspec)s +2510 X(:=)s +2644 X(msg)s +3585 X(|)s +874 X +2270 Y +2644 X(msg-range)s +3585 X(|)s +874 X +2390 Y +2644 X(msg-sequence)s +3585 X(|)s +874 X +2510 Y +2644 X(user-de\256ned-sequence)s +874 X +2750 Y +1594 X(msg)s +2510 X(:=)s +2644 X(msg-name)s +3585 X(|)s +874 X +2870 Y +2644 X()s +874 X +3110 Y +1594 X(msg-name)s +2510 X(:=)s +2644 X(``\256rst'')s +3585 X(|)s +874 X +3230 Y +2644 X(``last'')s +3585 X(|)s +874 X +3350 Y +2644 X(``cur'')s +3585 X(|)s +874 X +3470 Y +2644 X(``.'')s +3585 X(|)s +874 X +3590 Y +2644 X(``next'')s +3585 X(|)s +874 X +3710 Y +2644 X(``prev'')s +874 X +3950 Y +1594 X(msg-range)s +2510 X(:=)s +2644 X(msg``\261''msg)s +3585 X(|)s +874 X +4070 Y +2644 X(``all'')s +874 X +4310 Y +1594 X(msg-sequence)s +2510 X(:=)s +2644 X(msg``:''signed-number)s +874 X +4550 Y +1594 X(signed-number)s +2510 X(:=)s +2644 X(``+'')s +3585 X(|)s +874 X +4670 Y +2644 X(``\261'')s +3585 X(|)s +874 X +4790 Y +2644 X()s +874 X +5030 Y +1594 X(user-de\256ned-sequence)s +2510 X(:=)s +2644 X()s +3585 X(|)s +874 X +5150 Y +2644 X(*)s +874 X +5432 Y(Where)s +1164 X()s +1606 X(is)s +1698 X(a)s +1767 X(decimal)s +2108 X(number)s +2438 X(greater)s +2739 X(than)s +2936 X(zero.)s +874 X +5594 Y(Msg-range)s +1331 X(speci\256es)s +1700 X(all)s +1825 X(of)s +1933 X(the)s +2080 X(messages)s +2482 X(in)s +2585 X(the)s +2732 X(given)s +2979 X(range)s +3225 X(and)s +3394 X(must)s +3614 X(not)s +3767 X(be)s +3886 X(empty.)s +874 X +5756 Y(Msg-sequence)s +1487 X(speci\256es)s +1868 X(up)s +2005 X(to)s +2120 X()s +2574 X(of)s +2694 X(messages,)s +3133 X(beginning)s +3570 X(with)s +3784 X(``msg'')s +4119 X(\(in)s +4266 X(the)s +4424 X(case)s +4631 X(of)s +874 X +5876 Y(\256rst,)s +1085 X(cur,)s +1267 X(next,)s +1494 X(or)s +1607 X(\),)s +2112 X(or)s +2225 X(ending)s +2527 X(with)s +2735 X(``msg'')s +3064 X(\(in)s +3205 X(the)s +3357 X(case)s +3558 X(of)s +3671 X(prev)s +3878 X(or)s +3990 X(last\).)s +4241 X(+)s +874 X +5996 Y(forces)s +1166 X(``starting)s +1581 X(with)s +1808 X(msg'',)s +2115 X(and)s +2308 X(\261)s +2824 X(forces)s +3116 X(``ending)s +3503 X(with)s +3730 X(number''.)s +4200 X(In)s +4331 X(all)s +4479 X(cases,)s +874 X +6116 Y(``msg'')s +1198 X(must)s +1418 X(exist.)s +874 X +6278 Y(User\261de\256ned)s +1431 X(sequences)s +1860 X(are)s +2006 X(de\256ned)s +2325 X(and)s +2494 X(manipulated)s +3013 X(with)s +3216 X(the)s +3363 X +0.0 10 10 f.I ft(pick)s +3554 X +0.0 10 10 f.R ft(and)s +3723 X +0.0 10 10 f.I ft(mark)s +3953 X +0.0 10 10 f.R ft(commands.)s +874 X +7320 Y +2686 X +0.0 10 10 f.B ft(-149-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 150 151 + +874 X +960 Y +2392 X +0.0 12 12 f.B ft(REFERENCES)s +874 X +1440 Y +0.0 10 10 f.R ft(1.)s +1005 X(Crocker,)s +1382 X(D.)s +1510 X(H.,)s +1663 X(J.)s +1758 X(J.)s +1853 X(Vittal,)s +2137 X(K.)s +2265 X(T.)s +2382 X(Pogran,)s +2721 X(and)s +2896 X(D.)s +3024 X(A.)s +3152 X(Henderson,)s +3640 X(Jr.,)s +3793 X(``Standard)s +4244 X(for)s +4390 X(the)s +4542 X(For-)s +874 X +1560 Y +1162 X(mat)s +1337 X(of)s +1445 X(ARPA)s +1737 X(Network)s +2111 X(Text)s +2319 X(Messages,'')s +2823 X +0.0 10 10 f.I ft(RFC733)s +0.0 10 10 f.R ft(,)s +3212 X(November)s +3658 X(1977.)s +874 X +1800 Y(2.)s +1003 X(Thompson,)s +1485 X(K.,)s +1636 X(and)s +1809 X(D.)s +1935 X(M.)s +2078 X(Ritchie,)s +2421 X(``The)s +2671 X(UNIX)s +2949 X(Time-sharing)s +3516 X(System,'')s +3930 X +0.0 10 10 f.I ft(Communications)s +4636 X(of)s +874 X +1920 Y +1162 X(the)s +1309 X(ACM)s +0.0 10 10 f.R ft(,)s +1570 X(Vol.)s +1770 X(17,)s +1920 X(July)s +2112 X(1974,)s +2362 X(pp.)s +2512 X(365-375.)s +874 X +2160 Y(3.)s +1012 X(McCauley,)s +1491 X(E.)s +1615 X(J.,)s +1742 X(and)s +1924 X(P.)s +2043 X(J.)s +2145 X(Drongowski,)s +2702 X(``KSOS\261The)s +3267 X(Design)s +3588 X(of)s +3709 X(a)s +3791 X(Secure)s +4100 X(Operating)s +4536 X(Sys-)s +874 X +2280 Y +1162 X(tem,'')s +1438 X +0.0 10 10 f.I ft(AFIPS)s +1739 X(Conference)s +2233 X(Proceedings)s +0.0 10 10 f.R ft(,)s +2791 X(National)s +3169 X(Computer)s +3603 X(Conference,)s +4121 X(Vol.)s +4330 X(48,)s +4489 X(1979,)s +874 X +2400 Y +1162 X(pp.)s +1312 X(345-353.)s +874 X +2640 Y(4.)s +1004 X(Crocker,)s +1380 X(David)s +1654 X(H.,)s +1805 X +0.0 10 10 f.I ft(Framework)s +2300 X(and)s +2479 X(Functions)s +2908 X(of)s +3015 X(the)s +3166 X(``MS'')s +3460 X(Personal)s +3850 X(Message)s +4228 X(System)s +0.0 10 10 f.R ft(,)s +4559 X(The)s +874 X +2760 Y +1162 X(RAND)s +1470 X(Corporation,)s +2003 X(R-2134-ARPA,)s +2653 X(December)s +3087 X(1977.)s +874 X +3000 Y(5.)s +1007 X(Thompson,)s +1493 X(K.,)s +1648 X(and)s +1825 X(D.)s +1955 X(M.)s +2102 X(Ritchie,)s +2449 X +0.0 10 10 f.I ft(UNIX)s +2715 X(Programmer's)s +3336 X(Manual)s +0.0 10 10 f.R ft(,)s +3704 X(6th)s +3864 X(ed.,)s +4040 X(Western)s +4404 X(Electric)s +874 X +3120 Y +1162 X(Company,)s +1601 X(May)s +1809 X(1975)s +2034 X(\(available)s +2452 X(only)s +2655 X(to)s +2758 X(UNIX)s +3032 X(licensees\).)s +874 X +3360 Y(6.)s +993 X(Crocker,)s +1383 X(D.)s +1524 X(H.,)s +1690 X(``Standard)s +2155 X(for)s +2315 X(the)s +2481 X(Format)s +2813 X(of)s +2939 X(ARPA)s +3249 X(Internet)s +3602 X(Text)s +3828 X(Messages,'')s +4350 X +0.0 10 10 f.I ft(RFC822)s +0.0 10 10 f.R ft(,)s +874 X +3480 Y +1162 X(August)s +1476 X(1982.)s +874 X +7320 Y +2686 X +0.0 10 10 f.B ft(-150-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 1 152 + +874 X +7320 Y +2747 X(-i-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 1 153 + +874 X +960 Y +2466 X +0.0 12 12 f.B ft(READ)s +2834 X(THIS)s +874 X +1482 Y +1124 X +0.0 10 10 f.R ft(Although)s +1542 X(the)s +1704 X +0.0 10 10 f.I ft(MH)s +1899 X +0.0 10 10 f.R ft(system)s +2217 X(was)s +2412 X(originally)s +2841 X(developed)s +3291 X(by)s +3431 X(the)s +3593 X(RAND)s +3916 X(Corporation,)s +4464 X(and)s +4647 X(is)s +874 X +1602 Y(now)s +1084 X(in)s +1200 X(the)s +1360 X(public)s +1648 X(domain,)s +2011 X(the)s +2171 X(RAND)s +2492 X(Corporation)s +3013 X(assumes)s +3384 X(no)s +3522 X(responsibility)s +4104 X(for)s +4257 X +0.0 10 10 f.I ft(MH)s +4449 X +0.0 10 10 f.R ft(or)s +4569 X(this)s +874 X +1722 Y(particular)s +1281 X(version)s +1600 X(of)s +1708 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +874 X +1884 Y +1124 X(In)s +1235 X(addition,)s +1616 X(the)s +1766 X(Regents)s +2116 X(of)s +2227 X(the)s +2377 X(University)s +2827 X(of)s +2938 X(California)s +3371 X(issue)s +3599 X(the)s +3749 X(following)s +4165 X +0.0 10 10 f.B ft(disclaimer)s +4636 X +0.0 10 10 f.R ft(in)s +874 X +2004 Y(regard)s +1153 X(to)s +1256 X(the)s +1403 X(UCI)s +1600 X(version)s +1919 X(of)s +2027 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(:)s +874 X +2244 Y +1234 X(``Although)s +1715 X(each)s +1934 X(program)s +2309 X(has)s +2479 X(been)s +2704 X(tested)s +2973 X(by)s +3109 X(its)s +3240 X(contributor,)s +3745 X(no)s +3881 X(warranty,)s +4296 X(express)s +4631 X(or)s +874 X +2364 Y +1234 X(implied,)s +1596 X(is)s +1694 X(made)s +1941 X(by)s +2072 X(the)s +2224 X(contributor)s +2698 X(or)s +2811 X(the)s +2963 X(University)s +3415 X(of)s +3528 X(California,)s +3988 X(as)s +4101 X(to)s +4209 X(the)s +4361 X(accuracy)s +874 X +2484 Y +1234 X(and)s +1407 X(functioning)s +1897 X(of)s +2009 X(the)s +2160 X(program)s +2527 X(and)s +2700 X(related)s +3000 X(program)s +3367 X(material,)s +3748 X(nor)s +3909 X(shall)s +4126 X(the)s +4276 X(fact)s +4453 X(of)s +4564 X(dis-)s +874 X +2604 Y +1234 X(tribution)s +1609 X(constitute)s +2028 X(any)s +2202 X(such)s +2415 X(warranty,)s +2823 X(and)s +2996 X(no)s +3125 X(responsibility)s +3699 X(is)s +3795 X(assumed)s +4168 X(by)s +4297 X(the)s +4448 X(contri-)s +874 X +2724 Y +1234 X(butor)s +1470 X(or)s +1578 X(the)s +1725 X(University)s +2172 X(of)s +2280 X(California)s +2710 X(in)s +2813 X(connection)s +3276 X(herewith.'')s +874 X +2886 Y +1124 X(This)s +1331 X(version)s +1654 X(of)s +1766 X +0.0 10 10 f.I ft(MH)s +1950 X +0.0 10 10 f.R ft(is)s +2046 X(in)s +2153 X(the)s +2304 X(public)s +2583 X(domain,)s +2937 X(and)s +3110 X(as)s +3222 X(such,)s +3459 X(there)s +3687 X(are)s +3837 X(no)s +3965 X(real)s +4142 X(restrictions)s +4614 X(on)s +874 X +3006 Y(its)s +997 X(use.)s +1208 X(The)s +1391 X +0.0 10 10 f.I ft(MH)s +1574 X +0.0 10 10 f.R ft(source)s +1862 X(code)s +2078 X(and)s +2250 X(documentation)s +2871 X(have)s +3086 X(no)s +3213 X(licensing)s +3601 X(restrictions)s +4072 X(whatsoever.)s +4603 X(As)s +874 X +3126 Y(a)s +951 X(courtesy,)s +1347 X(the)s +1502 X(authors)s +1829 X(ask)s +1995 X(only)s +2206 X(that)s +2388 X(you)s +2570 X(provide)s +2907 X(appropriate)s +3393 X(credit)s +3652 X(to)s +3762 X(the)s +3916 X(RAND)s +4231 X(Corporation)s +874 X +3246 Y(and)s +1043 X(the)s +1190 X(University)s +1637 X(of)s +1745 X(California)s +2175 X(for)s +2316 X(having)s +2613 X(developed)s +3048 X(the)s +3195 X(software.)s +874 X +3408 Y +1124 X +0.0 10 10 f.I ft(MH)s +1317 X +0.0 10 10 f.R ft(is)s +1422 X(a)s +1504 X(software)s +1885 X(package)s +2249 X(that)s +2437 X(is)s +2541 X(supported)s +2972 X(neither)s +3286 X(by)s +3423 X(the)s +3582 X(RAND)s +3902 X(Corporation)s +4422 X(nor)s +4592 X(the)s +874 X +3528 Y(University)s +1322 X(of)s +1431 X(California.)s +1912 X(However,)s +2328 X(since)s +2559 X(we)s +2701 X(do)s +2826 X(use)s +2984 X(the)s +3131 X(software)s +3499 X(ourselves)s +3901 X(and)s +4070 X(plan)s +4267 X(to)s +4370 X(continue)s +874 X +3648 Y(using)s +1119 X(\(and)s +1324 X(improving\))s +1802 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +2010 X(bug)s +2188 X(reports)s +2493 X(and)s +2665 X(their)s +2876 X(associated)s +3314 X(\256xes)s +3531 X(should)s +3825 X(be)s +3946 X(reported)s +4305 X(back)s +4520 X(to)s +4625 X(us)s +874 X +3768 Y(so)s +1007 X(that)s +1201 X(we)s +1361 X(may)s +1577 X(include)s +1915 X(them)s +2159 X(in)s +2281 X(future)s +2563 X(releases.)s +2972 X(The)s +3171 X(current)s +3497 X(computer)s +3918 X(mailbox)s +4290 X(for)s +4449 X +0.0 10 10 f.I ft(MH)s +4647 X +0.0 10 10 f.R ft(is)s +874 X +3888 Y +0.0 10 10 f.B ft(Bug\261MH@ICS.UCI.EDU)s +2011 X +0.0 10 10 f.R ft(\(in)s +2160 X(the)s +2320 X(ARPA)s +2624 X(Internet\),)s +3029 X(and)s +3210 X +0.0 10 10 f.B ft(...!ucbvax!ucivax!bug\261mh)s +4356 X +0.0 10 10 f.R ft(\(UUCP\).)s +874 X +4008 Y(Presently,)s +1352 X(there)s +1631 X(are)s +1832 X(two)s +2062 X(Internet)s +2452 X(discussion)s +2949 X(groups,)s +3326 X +0.0 10 10 f.B ft(MH\261Users@ICS.UCI.EDU)s +4570 X +0.0 10 10 f.R ft(and)s +874 X +4128 Y +0.0 10 10 f.B ft(MH\261Workers@ICS.UCI.EDU)s +0.0 10 10 f.R ft(.)s +2256 X +0.0 10 10 f.B ft(MH\261Workers)s +2884 X +0.0 10 10 f.R ft(is)s +2980 X(for)s +3124 X(people)s +3418 X(discussing)s +3863 X(code)s +4079 X(changes)s +4428 X(to)s +4534 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +874 X +4248 Y +0.0 10 10 f.B ft(MH-Users)s +1363 X +0.0 10 10 f.R ft(is)s +1476 X(for)s +1638 X(general)s +1977 X(discussion)s +2440 X(about)s +2708 X(how)s +2926 X(to)s +3050 X(use)s +3229 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +3480 X +0.0 10 10 f.B ft(MH\261Users)s +3986 X +0.0 10 10 f.R ft(is)s +4098 X(bi-directionally)s +874 X +4368 Y(gatewayed)s +1325 X(into)s +1506 X(USENET)s +1914 X(as)s +2022 X +0.0 10 10 f.B ft(comp.mail.mh)s +0.0 10 10 f.R ft(.)s +874 X +7320 Y +2747 X +0.0 10 10 f.B ft(-i-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 2 154 + +874 X +960 Y +2325 X +0.0 12 12 f.B ft(OBTAINING)s +3055 X(MH)s +874 X +1482 Y +1124 X +0.0 10 10 f.R ft(Since)s +1378 X(you)s +1560 X(probably)s +1947 X(already)s +2272 X(have)s +2492 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +2704 X(you)s +2886 X(may)s +3090 X(not)s +3250 X(need)s +3470 X(to)s +3580 X(read)s +3782 X(this)s +3958 X(unless)s +4239 X(you)s +4420 X(suspect)s +874 X +1602 Y(you)s +1049 X(have)s +1262 X(an)s +1381 X(old)s +1534 X(version.)s +1903 X(On)s +2050 X(the)s +2197 X(Internet,)s +2557 X(you)s +2732 X(may)s +2929 X(retrieve)s +3258 X(the)s +3405 X(lastest)s +3680 X(release)s +3981 X(from)s +4200 X(one)s +4369 X(of:)s +874 X +1842 Y +1594 X(ftp://ftp.ics.uci.edu/pub/mh/mh-6.8.tar.Z)s +874 X +1962 Y +1594 X(ftp://ftp.uu.uunet/networking/mail/mh/mh-6.8.tar.Z)s +874 X +2082 Y +1594 X(http://wuarchive.wustl.edu/packages/mail/mh/mh-6.8.tar.Z)s +874 X +2364 Y(This)s +1081 X(is)s +1177 X(a)s +1250 X(tar)s +1384 X(image)s +1657 X(after)s +1868 X(being)s +2119 X(run)s +2281 X(through)s +2621 X(the)s +2772 X(compress)s +3178 X(program)s +3544 X(\(approximately)s +4182 X(2Mb\).)s +4482 X(There)s +874 X +2484 Y(is)s +969 X(also)s +1158 X(an)s +1280 X +0.0 10 10 f.I ft(MH)s +1463 X +0.0 10 10 f.R ft(World)s +1746 X(Wide)s +1990 X(Web)s +2206 X(Home)s +2478 X(Page)s +2700 X(at)s +2799 X(``http://www.ics.uci.edu/\304mh'')s +4055 X(which)s +4326 X(tells)s +4520 X(what)s +874 X +2604 Y(the)s +1021 X(current)s +1328 X(release)s +1629 X(of)s +1737 X +0.0 10 10 f.I ft(MH)s +1917 X +0.0 10 10 f.R ft(is,)s +2034 X(and)s +2203 X(how)s +2400 X(to)s +2503 X(get)s +2650 X(updates.)s +874 X +2766 Y +1124 X(You)s +1322 X(may)s +1520 X(also)s +1707 X(\256nd)s +1889 X(MH)s +2076 X(on)s +2202 X(various)s +2522 X(other)s +2752 X(hosts;)s +3011 X(to)s +3114 X(make)s +3355 X(sure)s +3546 X(you)s +3721 X(get)s +3868 X(the)s +4015 X(latest)s +4251 X(version)s +4570 X(and)s +874 X +2886 Y(don't)s +1112 X(waste)s +1366 X(your)s +1575 X(time)s +1779 X(re-\256xing)s +2149 X(bugs,)s +2389 X(it's)s +2543 X(best)s +2730 X(to)s +2834 X(get)s +2982 X(it)s +3064 X(from)s +3284 X(either)s +3537 X(ftp.ics.uci.edu)s +4126 X(or)s +4235 X(a)s +4305 X(site)s +4470 X(which)s +874 X +3006 Y(mirrors)s +1193 X(ftp.ics.uci.edu.)s +874 X +3168 Y +1124 X(Alternatively,)s +1704 X(you)s +1882 X(can)s +2048 X(send)s +2259 X($75)s +2437 X(US)s +2593 X(to)s +2699 X(the)s +2849 X(address)s +3176 X(below.)s +3498 X(This)s +3704 X(covers)s +3992 X(the)s +4142 X(cost)s +4331 X(of)s +4442 X(a)s +4514 X(6250)s +874 X +3288 Y(BPI)s +1062 X(9-track)s +1376 X(magtape,)s +1771 X(handling,)s +2178 X(and)s +2353 X(shipping.)s +2779 X(In)s +2893 X(addition,)s +3277 X(you'll)s +3547 X(get)s +3700 X(a)s +3775 X(laser-printed)s +4310 X(hard-copy)s +874 X +3408 Y(of)s +991 X(the)s +1147 X(entire)s +1408 X(MH)s +1603 X(documentation)s +2231 X(set.)s +2426 X(Be)s +2571 X(sure)s +2771 X(to)s +2882 X(include)s +3209 X(your)s +3425 X(USPS)s +3698 X(address)s +4030 X(with)s +4241 X(your)s +4457 X(check.)s +874 X +3528 Y(Checks)s +1193 X(must)s +1413 X(be)s +1532 X(drawn)s +1806 X(on)s +1931 X(U.S.)s +2134 X(funds)s +2381 X(and)s +2550 X(should)s +2842 X(be)s +2961 X(made)s +3202 X(payable)s +3537 X(to:)s +874 X +3768 Y +1594 X(Regents)s +1941 X(of)s +2049 X(the)s +2196 X(University)s +2643 X(of)s +2751 X(California)s +874 X +4008 Y(The)s +1054 X(distribution)s +1541 X(address)s +1865 X(is:)s +874 X +4248 Y +1594 X(Attn:)s +1825 X(MH)s +2011 X(distribution)s +874 X +4368 Y +1594 X(O)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ice)s +1868 X(of)s +1976 X(Academic)s +2405 X(Computing)s +874 X +4488 Y +1594 X(University)s +2041 X(of)s +2149 X(California,)s +2604 X(Irvine)s +874 X +4608 Y +1594 X(Irvine,)s +1882 X(CA)s +2071 X(92717-2225)s +874 X +4848 Y +1594 X(+1)s +1725 X(714)s +1900 X(824)s +2075 X(5153)s +874 X +5010 Y +1124 X(If)s +1218 X(you)s +1396 X(just)s +1569 X(want)s +1791 X(the)s +1940 X(hard-copies)s +2432 X(of)s +2542 X(the)s +2691 X(documentation,)s +3337 X(you)s +3514 X(still)s +3692 X(have)s +3907 X(to)s +4012 X(pay)s +4183 X(the)s +4332 X($75.)s +4559 X(The)s +874 X +5130 Y(tar)s +1014 X(image)s +1293 X(has)s +1461 X(the)s +1618 X(documentation)s +2247 X(source)s +2541 X(\(the)s +2730 X(manual)s +3058 X(is)s +3159 X(in)s +3271 X(ro)s +Cff +3449 X(format,)s +3774 X(but)s +3936 X(the)s +4092 X(rest)s +4270 X(are)s +4425 X(in)s +4537 X(TeX)s +874 X +5250 Y(format\).)s +1274 X(Postscript)s +1720 X(formatted)s +2159 X(versions)s +2543 X(of)s +2677 X(the)s +2850 X(TeX)s +3078 X(papers)s +3389 X(are)s +3561 X(available,)s +3997 X(as)s +4131 X(are)s +4303 X(crude)s +4575 X(tty-)s +874 X +5370 Y(conversions)s +1376 X(of)s +1484 X(those)s +1720 X(papers.)s +874 X +7320 Y +2733 X +0.0 10 10 f.B ft(-ii-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 3 155 + +874 X +960 Y +2434 X +0.0 12 12 f.B ft(FOREWORD)s +874 X +1482 Y +1124 X +0.0 10 10 f.R ft(This)s +1329 X(document)s +1750 X(describes)s +2148 X(the)s +2296 X(RAND)s +2605 X +0.0 10 10 f.I ft(MH)s +2786 X +0.0 10 10 f.R ft(Message)s +3161 X(Handling)s +3559 X(System.)s +3930 X(Its)s +4056 X(primary)s +4398 X(purpose)s +874 X +1602 Y(is)s +973 X(to)s +1083 X(serve)s +1325 X(as)s +1440 X(a)s +1516 X(user's)s +1786 X(manual.)s +2162 X(It)s +2255 X(has)s +2420 X(been)s +2639 X(heavily)s +2964 X(based)s +3222 X(on)s +3353 X(a)s +3428 X(previous)s +3803 X(version)s +4128 X(of)s +4242 X(the)s +4395 X(manual,)s +874 X +1722 Y(prepared)s +1247 X(by)s +1372 X(Bruce)s +1635 X(Borden,)s +1979 X(Stockton)s +2360 X(Gaines,)s +2687 X(and)s +2856 X(Norman)s +3208 X(Shapiro.)s +874 X +1884 Y +1124 X +0.0 10 10 f.I ft(MH)s +1313 X +0.0 10 10 f.R ft(is)s +1414 X(a)s +1492 X(particularly)s +1985 X(novel)s +2240 X(system,)s +2576 X(and)s +2753 X(thus)s +2953 X(it)s +3042 X(is)s +3142 X(often)s +3380 X(more)s +3618 X(prone)s +3878 X(to)s +3989 X(change)s +4304 X(than)s +4509 X(other)s +874 X +2004 Y(pieces)s +1151 X(of)s +1262 X(production)s +1723 X(software.)s +2144 X(As)s +2283 X(such,)s +2519 X(some)s +2758 X(speci\256c)s +3091 X(points)s +3364 X(in)s +3470 X(this)s +3642 X(manual)s +3963 X(may)s +4162 X(not)s +4317 X(be)s +4438 X(correct)s +874 X +2144 Y(in)s +990 X(the)s +1150 X(future.)s +1476 X(In)s +1597 X(all)s +1735 X(cases,)s +2008 X(the)s +2168 X(on\261line)s +2506 X(sections)s +2866 X(of)s +2987 X(this)s +3170 X(manual,)s +3526 X(available)s +3923 X(through)s +4271 X(the)s +4430 X(UNIX)s +2104 Y +0.0 7 7 f.R ft(1)s +874 X +2264 Y +0.0 10 10 f.I ft(man)s +1071 X +0.0 10 10 f.R ft(command,)s +1515 X(should)s +1807 X(present)s +2120 X(the)s +2267 X(most)s +2487 X(current)s +2794 X(information.)s +874 X +2426 Y +1124 X(When)s +1403 X(reading)s +1743 X(this)s +1929 X(document)s +2364 X(as)s +2488 X(a)s +2573 X(user's)s +2852 X(manual,)s +3212 X(certain)s +3524 X(sections)s +3886 X(are)s +4047 X(more)s +4292 X(interesting)s +874 X +2546 Y(than)s +1085 X(others.)s +1418 X(The)s +1612 X(Preface)s +1949 X(and)s +2132 X(Summary)s +2560 X(are)s +2720 X(not)s +2887 X(particularly)s +3385 X(interesting)s +3845 X(to)s +3961 X(those)s +4210 X(interested)s +4636 X(in)s +874 X +2666 Y(learning)s +1230 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +1464 X(The)s +1648 X(Introduction)s +2171 X(is)s +2267 X(slightly)s +2597 X(more)s +2831 X(interesting,)s +3307 X(as)s +3419 X(it)s +3504 X(touches)s +3837 X(upon)s +4065 X(the)s +4215 X(organization)s +874 X +2786 Y(of)s +993 X(the)s +1150 X(remainder)s +1589 X(of)s +1707 X(this)s +1887 X(document.)s +2366 X(The)s +2556 X(most)s +2786 X(useful)s +3065 X(sections)s +3422 X(are)s +3578 X(the)s +3735 X(Overview,)s +4188 X(Tutorial,)s +4570 X(and)s +874 X +2906 Y(Detailed)s +1241 X(Description.)s +1786 X(The)s +1970 X(Overview)s +2392 X(should)s +2688 X(be)s +2810 X(read)s +3009 X(by)s +3137 X(all)s +3265 X +0.0 10 10 f.I ft(MH)s +3448 X +0.0 10 10 f.R ft(users,)s +3706 X(regardless)s +4138 X(of)s +4249 X(their)s +4460 X(exper-)s +874 X +3026 Y(tise)s +1040 X(\(beginning,)s +1525 X(novice,)s +1843 X(advanced,)s +2270 X(or)s +2379 X(hacker\).)s +2753 X(The)s +2934 X(Tutorial)s +3282 X(should)s +3575 X(be)s +3695 X(read)s +3892 X(by)s +4018 X(all)s +4144 X(beginning)s +4570 X(and)s +874 X +3146 Y(novice)s +1169 X +0.0 10 10 f.I ft(MH)s +1353 X +0.0 10 10 f.R ft(users,)s +1611 X(as)s +1722 X(it)s +1806 X(presents)s +2161 X(a)s +2233 X(nice)s +2427 X(description)s +2899 X(of)s +3010 X(the)s +3160 X +0.0 10 10 f.I ft(MH)s +3343 X +0.0 10 10 f.R ft(system.)s +3699 X(The)s +3882 X(Detailed)s +4248 X(Description)s +874 X +3266 Y(should)s +1169 X(be)s +1291 X(read)s +1490 X(by)s +1618 X(the)s +1768 X(day\261to\261day)s +2262 X(user)s +2456 X(of)s +2567 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +2775 X(as)s +2886 X(it)s +2970 X(spells)s +3226 X(out)s +3382 X(all)s +3510 X(of)s +3620 X(the)s +3769 X(realities)s +4112 X(of)s +4222 X(the)s +4371 X +0.0 10 10 f.I ft(MH)s +4553 X +0.0 10 10 f.R ft(sys-)s +874 X +3386 Y(tem.)s +1112 X(The)s +1305 X(Advanced)s +1747 X(Features)s +2123 X(section)s +2444 X(discusses)s +2854 X(some)s +3103 X(powerful)s +3501 X +0.0 10 10 f.I ft(MH)s +3693 X +0.0 10 10 f.R ft(capabilities)s +4185 X(for)s +4338 X(advanced)s +874 X +3506 Y(users.)s +1158 X(Appendix)s +1581 X(A)s +1682 X(is)s +1778 X(particularly)s +2267 X(useful)s +2540 X(for)s +2684 X(novices,)s +3042 X(as)s +3153 X(it)s +3237 X(summarizes)s +3742 X(the)s +3892 X(invocation)s +4342 X(syntax)s +4631 X(of)s +874 X +3626 Y(all)s +999 X(the)s +1146 X +0.0 10 10 f.I ft(MH)s +1326 X +0.0 10 10 f.R ft(commands.)s +874 X +3788 Y +1124 X(There)s +1382 X(are)s +1529 X(also)s +1716 X(several)s +2024 X(other)s +2255 X(documents)s +2714 X(which)s +2983 X(may)s +3180 X(be)s +3299 X(useful)s +3568 X(to)s +3671 X(you:)s +3874 X +0.0 10 10 f.I ft(The)s +4049 X(RAND)s +4335 X(MH)s +4515 X(Mes-)s +874 X +3908 Y(sage)s +1085 X(Handling)s +1490 X(System:)s +1827 X(Tutorial)s +0.0 10 10 f.R ft(,)s +2208 X(which)s +2479 X(is)s +2573 X(a)s +2644 X(tutorial)s +2960 X(for)s +3103 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(;)s +3313 X +0.0 10 10 f.I ft(The)s +3490 X(RAND)s +3778 X(MH)s +3960 X(Message)s +4336 X(Handling)s +874 X +4028 Y(System:)s +1219 X(The)s +1404 X(UCI)s +1611 X(BBoards)s +1996 X(Facility)s +0.0 10 10 f.R ft(,)s +2366 X(which)s +2644 X(describes)s +3049 X(the)s +3205 X(BBoards)s +3589 X(handling)s +3973 X(under)s +4234 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(;)s +4451 X +0.0 10 10 f.I ft(MH.5:)s +874 X +4148 Y(How)s +1092 X(to)s +1199 X(process)s +1533 X(200)s +1712 X(messages)s +2118 X(a)s +2197 X(day)s +2370 X(and)s +2549 X(still)s +2729 X(get)s +2880 X(some)s +3113 X(real)s +3302 X(work)s +3530 X(done)s +0.0 10 10 f.R ft(,)s +3777 X(which)s +4049 X(was)s +4232 X(presented)s +4642 X(at)s +874 X +4268 Y(the)s +1026 X(1985)s +1256 X(Summer)s +1625 X(Usenix)s +1937 X(Conference)s +2425 X(and)s +2598 X(Exhibition)s +3050 X(in)s +3157 X(Portland,)s +3550 X(Oregon;)s +3906 X +0.0 10 10 f.I ft(MH:)s +4123 X(A)s +4213 X(Multifarious)s +874 X +4388 Y(User)s +1095 X(Agent)s +0.0 10 10 f.R ft(,)s +1380 X(which)s +1651 X(has)s +1811 X(been)s +2026 X(accepted)s +2401 X(for)s +2543 X(publication)s +3019 X(by)s +3145 X(Computer)s +3571 X(Networks;)s +4013 X +0.0 10 10 f.I ft(MZnet:)s +4333 X(Mail)s +4548 X(Ser-)s +874 X +4508 Y(vice)s +1080 X(for)s +1243 X(Personal)s +1650 X(Micro\261Computer)s +2389 X(Systems)s +0.0 10 10 f.R ft(,)s +2775 X(which)s +3064 X(was)s +3264 X(presented)s +3691 X(at)s +3808 X(the)s +3975 X(First)s +4204 X(International)s +874 X +4628 Y(Symposium)s +1384 X(on)s +1515 X(Computer)s +1946 X(Message)s +2326 X(Systems)s +2691 X(in)s +2799 X(Nottingham,)s +3332 X(U.K.;)s +3584 X(and,)s +3783 X +0.0 10 10 f.I ft(Design)s +4096 X(of)s +4204 X(the)s +4356 X(TTI)s +4531 X(Pro-)s +874 X +4748 Y(totype)s +1151 X(Trusted)s +1489 X(Mail)s +1710 X(Agent)s +0.0 10 10 f.R ft(,)s +2000 X(which)s +2276 X(describes)s +2679 X(a)s +2755 X(proprietary)s +3230 X(``trusted'')s +3666 X(mail)s +3876 X(system)s +4186 X(built)s +4402 X(on)s +4534 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +874 X +4868 Y(There)s +1138 X(are)s +1291 X(also)s +1484 X(documents,)s +1974 X(mostly)s +2279 X(speci\256c)s +2615 X(to)s +2724 X(U.C.)s +2963 X(Irvine)s +3232 X(which)s +3507 X(you)s +3688 X(may)s +3891 X(\256nd)s +4078 X(interesting:)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +4988 Y(for)s +1027 X(Beginners)s +0.0 10 10 f.R ft(,)s +1493 X(and)s +1673 X +0.0 10 10 f.I ft(MH)s +1864 X(for)s +2017 X(MM)s +2219 X(Users)s +0.0 10 10 f.R ft(.)s +2537 X(All)s +2700 X(of)s +2818 X(these)s +3058 X(documents)s +3526 X(exist)s +3750 X(in)s +3863 X(the)s +4020 X +0.0 10 10 f.I ft(mh.6)s +4252 X +0.0 10 10 f.R ft(distribution)s +874 X +5108 Y(sent)s +1065 X(to)s +1173 X(your)s +1386 X(site.)s +1605 X(There's)s +1939 X(also)s +2130 X(a)s +2204 X(document,)s +2652 X +0.0 10 10 f.I ft(Changes)s +3031 X(to)s +3138 X(the)s +3289 X(RAND)s +3579 X(MH)s +3763 X(Message)s +4141 X(Handling)s +4548 X(Sys-)s +874 X +5228 Y(tem:)s +1076 X(MH.6)s +0.0 10 10 f.R ft(,)s +1356 X(which)s +1625 X(describes)s +2021 X(user\261visible)s +2529 X(changes)s +2875 X(made)s +3116 X(to)s +3219 X +0.0 10 10 f.I ft(MH)s +3399 X +0.0 10 10 f.R ft(since)s +3629 X(the)s +3776 X(last)s +3940 X(major)s +4198 X(release.)s +874 X +5390 Y +1124 X(This)s +1340 X(manual)s +1672 X(is)s +1777 X(very)s +1991 X(large,)s +2252 X(as)s +2372 X(it)s +2465 X(describes)s +2873 X(a)s +2954 X(large,)s +3215 X(powerful)s +3612 X(system)s +3927 X(in)s +4042 X(gruesome)s +4467 X(detail.)s +874 X +5510 Y(The)s +1054 X(important)s +1468 X(thing)s +1699 X(to)s +1802 X(remember)s +2231 X(is:)s +874 X +5890 Y +2312 X +0.0 14 14 f.B ft(DON'T)s +2798 X(PANIC)s +5850 Y +0.0 7 7 f.B ft(2)s +874 X +6250 Y +0.0 10 10 f.R ft(As)s +1015 X(explained)s +1433 X(in)s +1541 X(the)s +1692 X(tutorial,)s +2035 X(you)s +2214 X(really)s +2470 X(need)s +2687 X(to)s +2794 X(know)s +3045 X(only)s +3252 X(5)s +3331 X(commands)s +3793 X(to)s +3900 X(handle)s +4195 X(most)s +4419 X(of)s +4531 X(your)s +874 X +6370 Y(mail.)s +874 X +6532 Y +1124 X(Very)s +1363 X(advanced)s +1779 X(users)s +2024 X(may)s +2236 X(wish)s +2465 X(to)s +2583 X(consult)s +2912 X +0.0 10 10 f.I ft(The)s +3102 X(RAND)s +3403 X(MH)s +3598 X(Message)s +3987 X(Handling)s +4404 X(System:)s +874 X +6652 Y(Administrator's)s +1533 X(Guide)s +0.0 10 10 f.R ft(,)s +1827 X(which)s +2096 X(is)s +2188 X(also)s +2374 X(present)s +2687 X(in)s +2790 X(the)s +2937 X +0.0 10 10 f.I ft(mh.6)s +3159 X +0.0 10 10 f.R ft(distribution)s +3646 X(sent)s +3832 X(to)s +3935 X(your)s +4143 X(site.)s +874 X +6852 Y +1090 X +0.0 5 5 f.R ft(1)s +6884 Y +1135 X +0.0 8 8 f.R ft(UNIX)s +1355 X(is)s +1428 X(a)s +1483 X(trademark)s +1824 X(of)s +1910 X(AT&T)s +2148 X(Bell)s +2301 X(Laboratories.)s +874 X +6988 Y +1090 X +0.0 5 5 f.R ft(2)s +7020 Y +1135 X +0.0 8 8 f.R ft(Note)s +1310 X(the)s +1427 X(large,)s +1625 X +0.0 8 8 f.I ft(friendly)s +1892 X +0.0 8 8 f.R ft(letters.)s +874 X +7320 Y +2719 X +0.0 10 10 f.B ft(-iii-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 4 156 + +874 X +960 Y +2128 X +0.0 12 12 f.B ft(ACKNOWLEDGMENTS)s +874 X +1482 Y +1124 X +0.0 10 10 f.R ft(The)s +1306 X +0.0 10 10 f.I ft(MH)s +1488 X +0.0 10 10 f.R ft(system)s +1793 X(described)s +2202 X(herein)s +2478 X(is)s +2572 X(based)s +2825 X(on)s +2951 X(the)s +3099 X(original)s +3436 X(RAND)s +3745 X +0.0 10 10 f.I ft(MH)s +3926 X +0.0 10 10 f.R ft(system.)s +4280 X(It)s +4367 X(has)s +4526 X(been)s +874 X +1602 Y(extensively)s +1362 X(developed)s +1805 X(\(perhaps)s +2181 X(too)s +2342 X(much)s +2597 X(so\))s +2752 X(by)s +2885 X(Marshall)s +3273 X(T.)s +3392 X(Rose)s +3624 X(and)s +3800 X(John)s +4021 X(L.)s +4139 X(Romine)s +4488 X(at)s +4592 X(the)s +874 X +1722 Y(University)s +1328 X(of)s +1443 X(California,)s +1905 X(Irvine.)s +2225 X(Einar)s +2473 X(A.)s +2602 X(Ste)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(erud,)s +3025 X(Jerry)s +3256 X(N.)s +3385 X(Sweet,)s +3686 X(and)s +3862 X(Terry)s +4115 X(P.)s +4228 X(Domae)s +4548 X(pro-)s +874 X +1842 Y(vided)s +1126 X(numerous)s +1550 X(suggestions)s +2047 X(to)s +2155 X(improve)s +2518 X(the)s +2670 X(UCI)s +2872 X(version)s +3196 X(of)s +3309 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +3544 X(Of)s +3679 X(course,)s +3994 X(a)s +4068 X(large)s +4297 X(number)s +4631 X(of)s +874 X +1962 Y(people)s +1169 X(have)s +1386 X(helped)s +1681 X +0.0 10 10 f.I ft(MH)s +1865 X +0.0 10 10 f.R ft(along.)s +2166 X(The)s +2350 X(list)s +2501 X(of)s +2612 X(``)s +0.0 10 10 f.I ft(MH)s +2861 X +0.0 10 10 f.R ft(immortals'')s +3361 X(is)s +3456 X(too)s +3612 X(long)s +3818 X(to)s +3924 X(list)s +4075 X(here.)s +4324 X(However,)s +874 X +2082 Y(Van)s +1073 X(Jacobson)s +1472 X(deserves)s +1848 X(a)s +1925 X(special)s +2234 X(acknowledgement)s +2992 X(for)s +3140 X(his)s +3289 X(tireless)s +3604 X(work)s +3841 X(in)s +3951 X(improving)s +4400 X(the)s +4554 X(per-)s +874 X +2202 Y(formance)s +1275 X(of)s +1383 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +1613 X(Some)s +1866 X(programs)s +2268 X(have)s +2481 X(been)s +2694 X(speeded-up)s +3173 X(by)s +3298 X(a)s +3367 X(factor)s +3624 X(of)s +3732 X(10)s +3857 X(or)s +3965 X(20.)s +4140 X(All)s +4293 X(of)s +4401 X(users)s +4631 X(of)s +874 X +2322 Y +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(,)s +1081 X(everywhere,)s +1597 X(owe)s +1790 X(a)s +1861 X(special)s +2164 X(thanks)s +2451 X(to)s +2555 X(Van.)s +2797 X(For)s +2962 X(this)s +3133 X(release,)s +3460 X(numerous)s +3880 X +0.0 10 10 f.I ft(MH\261Workers)s +4449 X +0.0 10 10 f.R ft(sent)s +4636 X(in)s +874 X +2442 Y(\256xes)s +1094 X(and)s +1269 X(other)s +1505 X(changes.)s +1907 X(A)s +2010 X(handful)s +2345 X(of)s +2458 X(courageous)s +2942 X +0.0 10 10 f.I ft(MH\261Workers)s +3515 X +0.0 10 10 f.R ft(volunteered)s +4016 X(to)s +4124 X(beta\261test)s +4509 X(these)s +874 X +2562 Y(changes;)s +1248 X(their)s +1456 X(help)s +1653 X(is)s +1745 X(particularly)s +2230 X(appreciated.)s +874 X +2724 Y +1124 X(This)s +1342 X(manual)s +1675 X(is)s +1781 X(based)s +2047 X(on)s +2186 X(the)s +2347 X(original)s +2697 X +0.0 10 10 f.I ft(MH)s +2891 X +0.0 10 10 f.R ft(manual)s +3224 X(written)s +3546 X(at)s +3657 X(RAND)s +3979 X(by)s +4118 X(Bruce)s +4395 X(Borden,)s +874 X +2844 Y(Stockton)s +1255 X(Gaines,)s +1582 X(and)s +1751 X(Norman)s +2103 X(Shapiro.)s +874 X +7320 Y +2722 X +0.0 10 10 f.B ft(-iv-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 5 157 + +874 X +960 Y +2512 X +0.0 12 12 f.B ft(PREFACE)s +874 X +1482 Y +1124 X +0.0 10 10 f.R ft(This)s +1346 X(report)s +1628 X(describes)s +2043 X(a)s +2131 X(system)s +2452 X(for)s +2611 X(dealing)s +2948 X(with)s +3169 X(messages)s +3589 X(transmitted)s +4082 X(on)s +4225 X(a)s +4312 X(computer.)s +874 X +1602 Y(Such)s +1106 X(messages)s +1515 X(might)s +1781 X(originate)s +2168 X(with)s +2378 X(other)s +2615 X(users)s +2852 X(of)s +2967 X(the)s +3121 X(same)s +3358 X(computer)s +3767 X(or)s +3882 X(might)s +4148 X(come)s +4395 X(from)s +4620 X(an)s +874 X +1722 Y(outside)s +1196 X(source)s +1489 X(through)s +1833 X(a)s +1909 X(network)s +2268 X(to)s +2378 X(which)s +2654 X(the)s +2808 X(user's)s +3078 X(computer)s +3487 X(is)s +3586 X(connected.)s +4072 X(Such)s +4304 X(computer-)s +874 X +1842 Y(based)s +1142 X(message)s +1521 X(systems)s +1879 X(are)s +2041 X(becoming)s +2476 X(increasingly)s +3005 X(widely)s +3317 X(used,)s +3565 X(both)s +3783 X(within)s +4079 X(and)s +4263 X(outside)s +4592 X(the)s +874 X +1962 Y(Department)s +1370 X(of)s +1478 X(Defense.)s +874 X +2124 Y +1124 X(The)s +1313 X(message)s +1685 X(handling)s +2069 X(system)s +2381 X +0.0 10 10 f.I ft(MH)s +2570 X +0.0 10 10 f.R ft(was)s +2759 X(developed)s +3202 X(for)s +3351 X(two)s +3534 X(reasons.)s +3916 X(One)s +4115 X(was)s +4303 X(to)s +4414 X(investi-)s +874 X +2244 Y(gate)s +1070 X(some)s +1311 X(research)s +1672 X(ideas)s +1907 X(concerning)s +2380 X(how)s +2581 X(a)s +2654 X(message)s +3021 X(system)s +3328 X(might)s +3591 X(take)s +3786 X(advantage)s +4219 X(of)s +4331 X(the)s +4482 X(archi-)s +874 X +2364 Y(tecture)s +1175 X(of)s +1288 X(the)s +1440 X(UNIX)s +1718 X(time-sharing)s +2252 X(operating)s +2658 X(system)s +2965 X(for)s +3110 X(Digital)s +3417 X(Equipment)s +3885 X(Corporation)s +4397 X(PDP-11)s +874 X +2484 Y(and)s +1045 X(VAX)s +1288 X(computers,)s +1756 X(and)s +1927 X(the)s +2075 X(special)s +2378 X(features)s +2719 X(of)s +2828 X(UNIX's)s +3175 X(command-level)s +3822 X(interface)s +4196 X(with)s +4400 X(the)s +4548 X(user)s +874 X +2604 Y(\(the)s +1063 X(``shell''\).)s +1501 X(The)s +1690 X(other)s +1929 X(reason)s +2223 X(was)s +2412 X(to)s +2524 X(provide)s +2863 X(a)s +2941 X(better)s +3202 X(and)s +3380 X(more)s +3618 X(adaptable)s +4033 X(base)s +4243 X(than)s +4448 X(that)s +4631 X(of)s +874 X +2724 Y(conventional)s +1416 X(designs)s +1742 X(on)s +1868 X(which)s +2138 X(to)s +2242 X(build)s +2474 X(a)s +2544 X(command)s +2964 X(and)s +3134 X(control)s +3443 X(message)s +3807 X(system.)s +4160 X(The)s +4340 X(e)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(ort)s +4581 X(has)s +874 X +2844 Y(succeeded)s +1314 X(in)s +1423 X(both)s +1632 X(regards,)s +1980 X(although)s +2360 X(this)s +2535 X(report)s +2803 X(mainly)s +3111 X(describes)s +3512 X(the)s +3664 X(message)s +4032 X(system)s +4340 X(itself)s +4570 X(and)s +874 X +2964 Y(how)s +1071 X(it)s +1152 X(\256ts)s +1300 X(in)s +1403 X(with)s +1606 X(UNIX.)s +874 X +3126 Y +1124 X(The)s +1308 X(present)s +1625 X(report)s +1892 X(should)s +2188 X(be)s +2311 X(of)s +2423 X(interest)s +2746 X(to)s +2853 X(three)s +3081 X(groups)s +3382 X(of)s +3494 X(readers.)s +3860 X(First,)s +4097 X(it)s +4181 X(is)s +4276 X(a)s +4348 X(complete)s +874 X +3246 Y(reference)s +1269 X(manual)s +1589 X(for)s +1731 X(the)s +1879 X(users)s +2110 X(of)s +2219 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +2450 X(Second,)s +2795 X(it)s +2877 X(should)s +3170 X(be)s +3290 X(of)s +3399 X(interest)s +3719 X(to)s +3822 X(those)s +4058 X(who)s +4255 X(have)s +4468 X(a)s +4537 X(gen-)s +874 X +3366 Y(eral)s +1053 X(knowledge)s +1521 X(of)s +1634 X(computer-based)s +2301 X(message)s +2669 X(systems,)s +3041 X(both)s +3249 X(in)s +3357 X(civilian)s +3687 X(and)s +3860 X(military)s +4206 X(applications.)s +874 X +3486 Y(Finally,)s +1217 X(it)s +1307 X(should)s +1608 X(be)s +1736 X(of)s +1853 X(interest)s +2181 X(to)s +2293 X(those)s +2538 X(who)s +2744 X(build)s +2984 X(large)s +3217 X(subsystems)s +3707 X(that)s +3891 X(interface)s +4273 X(with)s +4484 X(users,)s +874 X +3606 Y(since)s +1104 X(it)s +1185 X(illustrates)s +1599 X(a)s +1668 X(new)s +1859 X(approach)s +2249 X(to)s +2352 X(such)s +2560 X(interfaces.)s +874 X +3768 Y +1124 X(The)s +1313 X(original)s +1658 X +0.0 10 10 f.I ft(MH)s +1847 X +0.0 10 10 f.R ft(system)s +2158 X(was)s +2346 X(developed)s +2789 X(by)s +2922 X(Bruce)s +3193 X(Borden,)s +3545 X(using)s +3795 X(an)s +3922 X(approach)s +4320 X(suggested)s +874 X +3888 Y(by)s +1004 X(Stockton)s +1390 X(Gaines)s +1697 X(and)s +1871 X(Norman)s +2228 X(Shapiro.)s +2619 X(Valuable)s +3009 X(assistance)s +3438 X(was)s +3622 X(provided)s +4006 X(by)s +4135 X(Phyllis)s +4443 X(Kantar)s +874 X +4008 Y(in)s +984 X(the)s +1138 X(later)s +1347 X(stages)s +1622 X(of)s +1736 X(the)s +1889 X(system's)s +2270 X(implementation.)s +2979 X(Several)s +3309 X(colleagues)s +3761 X(contributed)s +4247 X(to)s +4356 X(the)s +4509 X(ideas)s +874 X +4128 Y(included)s +1245 X(in)s +1350 X(this)s +1522 X(system,)s +1852 X(particularly)s +2339 X(Robert)s +2637 X(Anderson)s +3051 X(and)s +3221 X(David)s +3491 X(Crocker.)s +3888 X(In)s +3997 X(addition,)s +4376 X(valuable)s +874 X +4248 Y(experience)s +1335 X(in)s +1443 X(message)s +1811 X(systems,)s +2183 X(and)s +2357 X(a)s +2431 X(valuable)s +2799 X(source)s +3089 X(of)s +3202 X(ideas,)s +3462 X(was)s +3647 X(available)s +4037 X(to)s +4144 X(us)s +4262 X(in)s +4369 X(the)s +4520 X(form)s +874 X +4368 Y(of)s +982 X(a)s +1051 X(previous)s +1420 X(message)s +1783 X(system)s +2086 X(for)s +2227 X(UNIX)s +2501 X(called)s +2764 X(MS,)s +2959 X(designed)s +3339 X(at)s +3436 X(RAND)s +3744 X(by)s +3869 X(David)s +4138 X(Crocker.)s +874 X +4530 Y +1124 X(This)s +1331 X(report)s +1598 X(was)s +1782 X(originally)s +2200 X(prepared)s +2577 X(as)s +2689 X(part)s +2872 X(of)s +2983 X(the)s +3133 X(RAND)s +3444 X(project)s +3749 X(entitled)s +4077 X(``Data)s +4359 X(Automa-)s +874 X +4650 Y(tion)s +1055 X(Research'',)s +1536 X(sponsored)s +1966 X(by)s +2091 X(Project)s +2399 X(AIR)s +2596 X(FORCE.)s +874 X +7320 Y +2736 X +0.0 10 10 f.B ft(-v-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 6 158 + +874 X +960 Y +2475 X +0.0 12 12 f.B ft(SUMMARY)s +874 X +1482 Y +1124 X +0.0 10 10 f.R ft(Electronic)s +1562 X(communication)s +2211 X(of)s +2321 X(text)s +2498 X(messages)s +2902 X(is)s +2996 X(becoming)s +3417 X(commonplace.)s +4054 X(Computer-based)s +874 X +1602 Y(message)s +1247 X(systems\261software)s +1992 X(packages)s +2392 X(that)s +2577 X(provide)s +2917 X(tools)s +3147 X(for)s +3297 X(dealing)s +3625 X(with)s +3837 X(messages\261are)s +4419 X(used)s +4636 X(in)s +874 X +1722 Y(many)s +1134 X(contexts.)s +1555 X(In)s +1676 X(particular,)s +2121 X(message)s +2497 X(systems)s +2852 X(are)s +3011 X(becoming)s +3443 X(increasingly)s +3968 X(important)s +4394 X(in)s +4509 X(com-)s +874 X +1842 Y(mand)s +1121 X(and)s +1290 X(control)s +1598 X(and)s +1767 X(intelligence)s +2258 X(applications.)s +874 X +2004 Y +1124 X(This)s +1338 X(report)s +1612 X(describes)s +2019 X(a)s +2099 X(message)s +2473 X(handling)s +2859 X(system)s +3173 X(called)s +3447 X +0.0 10 10 f.I ft(MH)s +0.0 10 10 f.R ft(.)s +3687 X(This)s +3900 X(system)s +4213 X(provides)s +4592 X(the)s +874 X +2124 Y(user)s +1071 X(with)s +1280 X(tools)s +1506 X(to)s +1615 X(compose,)s +2026 X(send,)s +2265 X(receive,)s +2607 X(store,)s +2856 X(retrieve,)s +3215 X(forward,)s +3585 X(and)s +3759 X(reply)s +3994 X(to)s +4102 X(messages.)s +4559 X +0.0 10 10 f.I ft(MH)s +874 X +2244 Y +0.0 10 10 f.R ft(has)s +1036 X(been)s +1253 X(built)s +1466 X(on)s +1595 X(the)s +1746 X(UNIX)s +2024 X(time-sharing)s +2558 X(system,)s +2890 X(a)s +2963 X(popular)s +3297 X(operating)s +3703 X(system)s +4010 X(developed)s +4448 X(for)s +4592 X(the)s +874 X +2364 Y(DEC)s +1099 X(PDP-11)s +1441 X(and)s +1610 X(VAX)s +1851 X(classes)s +2153 X(of)s +2261 X(computers.)s +874 X +2526 Y +1124 X(A)s +1233 X(complete)s +1635 X(description)s +2115 X(of)s +2234 X +0.0 10 10 f.I ft(MH)s +2425 X +0.0 10 10 f.R ft(is)s +2528 X(given)s +2786 X(for)s +2938 X(users)s +3179 X(of)s +3298 X(the)s +3456 X(system.)s +3820 X(For)s +3995 X(those)s +4242 X(who)s +4450 X(do)s +4586 X(not)s +874 X +2646 Y(intend)s +1152 X(to)s +1258 X(use)s +1419 X(the)s +1569 X(system,)s +1900 X(this)s +2073 X(description)s +2545 X(gives)s +2784 X(a)s +2856 X(general)s +3177 X(idea)s +3371 X(of)s +3482 X(what)s +3704 X(a)s +3775 X(message)s +4140 X(system)s +4445 X(is)s +4539 X(like.)s +874 X +2766 Y(The)s +1054 X(system)s +1357 X(involves)s +1721 X(some)s +1957 X(new)s +2148 X(ideas)s +2378 X(about)s +2625 X(how)s +2822 X(large)s +3046 X(subsystems)s +3527 X(can)s +3690 X(be)s +3809 X(constructed.)s +874 X +2928 Y +1124 X(The)s +1315 X(interesting)s +1773 X(and)s +1953 X(unusual)s +2300 X(features)s +2651 X(of)s +2770 X +0.0 10 10 f.I ft(MH)s +2961 X +0.0 10 10 f.R ft(include)s +3291 X(the)s +3449 X(following:)s +3927 X(The)s +4118 X(user)s +4320 X(command)s +874 X +3048 Y(interface)s +1255 X(to)s +1366 X +0.0 10 10 f.I ft(MH)s +1554 X +0.0 10 10 f.R ft(is)s +1654 X(the)s +1809 X(UNIX)s +2091 X(``shell'')s +2445 X(\(the)s +2633 X(standard)s +3003 X(UNIX)s +3284 X(command)s +3710 X(interpreter\).)s +4240 X(Each)s +4471 X(separ-)s +874 X +3168 Y(able)s +1078 X(component)s +1560 X(of)s +1681 X(message)s +2057 X(handling,)s +2470 X(such)s +2691 X(as)s +2812 X(message)s +3188 X(composition)s +3720 X(or)s +3840 X(message)s +4215 X(display,)s +4566 X(is)s +4670 X(a)s +874 X +3288 Y(separate)s +1246 X(command.)s +1736 X(Each)s +1981 X(program)s +2365 X(is)s +2478 X(driven)s +2779 X(from)s +3019 X(and)s +3209 X(updates)s +3560 X(a)s +3650 X(private)s +3973 X(user)s +4184 X(environment,)s +874 X +3408 Y(which)s +1149 X(is)s +1247 X(stored)s +1522 X(as)s +1636 X(a)s +1711 X(\256le)s +1869 X(between)s +2231 X(program)s +2599 X(invocations.)s +3140 X(This)s +3348 X(private)s +3655 X(environment)s +4190 X(also)s +4381 X(contains)s +874 X +3528 Y(information)s +1383 X(to)s +1498 X(``custom)s +1890 X(tailor'')s +2204 X +0.0 10 10 f.I ft(MH)s +2396 X +0.0 10 10 f.R ft(to)s +2511 X(the)s +2670 X(individual's)s +3185 X(tastes.)s +3494 X +0.0 10 10 f.I ft(MH)s +3686 X +0.0 10 10 f.R ft(stores)s +3956 X(each)s +4175 X(message)s +4550 X(as)s +4670 X(a)s +874 X +3648 Y(separate)s +1248 X(\256le)s +1424 X(under)s +1699 X(UNIX,)s +2021 X(and)s +2213 X(it)s +2317 X(utilizes)s +2653 X(the)s +2822 X(tree-structured)s +3450 X(UNIX)s +3746 X(\256le)s +3921 X(system)s +4246 X(to)s +4371 X(organize)s +874 X +3768 Y(groups)s +1178 X(of)s +1293 X(\256les)s +1492 X(within)s +1779 X(separate)s +2136 X(directories)s +2588 X(or)s +2702 X(``folders''.)s +3192 X(All)s +3351 X(of)s +3465 X(the)s +3618 X(UNIX)s +3898 X(facilities)s +4273 X(for)s +4420 X(dealing)s +874 X +3888 Y(with)s +1077 X(\256les)s +1269 X(and)s +1438 X(directories,)s +1909 X(such)s +2117 X(as)s +2225 X(renaming,)s +2652 X(copying,)s +3024 X(deleting,)s +3396 X(cataloging,)s +3862 X(o)s +/Cff { (f) show xsiz pt 20 div neg 0 rmoveto (f) s } def + +Cff(-line)s +4181 X(printing,)s +4548 X(etc.,)s +874 X +4008 Y(are)s +1029 X(applicable)s +1473 X(to)s +1585 X(messages)s +1996 X(and)s +2173 X(directories)s +2627 X(of)s +2743 X(messages)s +3153 X(\(folders\).)s +3579 X(Thus,)s +3837 X(important)s +4259 X(capabilities)s +874 X +4128 Y(needed)s +1185 X(in)s +1292 X(a)s +1365 X(message)s +1732 X(system)s +2039 X(are)s +2189 X(available)s +2577 X(in)s +2683 X +0.0 10 10 f.I ft(MH)s +2866 X +0.0 10 10 f.R ft(without)s +3200 X(the)s +3350 X(need)s +3566 X(\(often)s +3832 X(seen)s +4037 X(in)s +4143 X(other)s +4376 X(message)s +874 X +4248 Y(systems\))s +1271 X(for)s +1434 X(code)s +1669 X(that)s +1866 X(duplicates)s +2318 X(the)s +2487 X(facilities)s +2878 X(of)s +3007 X(the)s +3175 X(supporting)s +3649 X(operating)s +4072 X(system.)s +4446 X(It)s +4553 X(also)s +874 X +4368 Y(allows)s +1160 X(users)s +1390 X(familiar)s +1731 X(with)s +1934 X(the)s +2081 X(shell)s +2295 X(to)s +2398 X(use)s +2556 X +0.0 10 10 f.I ft(MH)s +2736 X +0.0 10 10 f.R ft(with)s +2939 X(minimal)s +3298 X(e)s +Cff(ort.)s +874 X +7320 Y +2722 X +0.0 10 10 f.B ft(-vi-)s +7920 Y +page +0.0 10 10 f.B ft +%%Page: 7 159 + +874 X +960 Y +2464 X +0.0 12 12 f.B ft(CONTENTS)s +874 X +1584 Y +0.0 10 10 f.R ft(READ)s +1171 X(THIS)s +1429 X(.....................................................................................................................)s +4686 X(i)s +874 X +1848 Y(OBTAINING)s +1453 X(MH)s +1654 X(............................................................................................................)s +4658 X(ii)s +874 X +2112 Y(FOREWORD)s +1479 X(...................................................................................................................)s +4630 X(iii)s +874 X +2376 Y(ACKNOWLEDGMENTS)s +1954 X(................................................................................................)s +4636 X(iv)s +874 X +2640 Y(PREFACE)s +1354 X(........................................................................................................................)s +4664 X(v)s +874 X +2904 Y(SUMMARY)s +1429 X(.....................................................................................................................)s +4636 X(vi)s +874 X +3168 Y(Section)s +874 X +3432 Y +949 X(1.)s +1074 X(INTRODUCTION)s +1854 X(....................................................................................................)s +4664 X(1)s +874 X +3696 Y +949 X(2.)s +1074 X(OVERVIEW)s +1654 X(............................................................................................................)s +4664 X(3)s +874 X +3960 Y +949 X(3.)s +1074 X(TUTORIAL)s +1604 X(..............................................................................................................)s +4664 X(5)s +874 X +4224 Y +949 X(4.)s +1074 X(DETAILED)s +1592 X(DESCRIPTION)s +2279 X(...................................................................................)s +4664 X(7)s +874 X +4404 Y +1234 X(THE)s +1453 X(USER)s +1734 X(PROFILE)s +2179 X(.......................................................................................)s +4664 X(7)s +874 X +4584 Y +1234 X(MESSAGE)s +1726 X(NAMING)s +2179 X(.......................................................................................)s +4664 X(9)s +874 X +4764 Y +1234 X(OTHER)s +1592 X(MH)s +1778 X(CONVENTIONS)s +2529 X(.........................................................................)s +4614 X(10)s +874 X +4944 Y +1234 X(MH)s +1420 X(COMMANDS)s +2054 X(............................................................................................)s +4614 X(11)s +874 X +5088 Y +1450 X(ALI)s +1654 X(............................................................................................................)s +4614 X(12)s +874 X +5232 Y +1450 X(ANNO)s +1779 X(.......................................................................................................)s +4614 X(13)s +874 X +5376 Y +1450 X(BBC)s +1679 X(...........................................................................................................)s +4614 X(14)s +874 X +5520 Y +1450 X(BBOARDS)s +1954 X(................................................................................................)s +4614 X(16)s +874 X +5664 Y +1450 X(BURST)s +1804 X(......................................................................................................)s +4614 X(18)s +874 X +5808 Y +1450 X(COMP)s +1779 X(.......................................................................................................)s +4614 X(20)s +874 X +5952 Y +1450 X(DIST)s +1704 X(..........................................................................................................)s +4614 X(22)s +874 X +6096 Y +1450 X(FOLDER)s +1879 X(...................................................................................................)s +4614 X(24)s +874 X +6240 Y +1450 X(FORW)s +1779 X(.......................................................................................................)s +4614 X(27)s +874 X +6384 Y +1450 X(INC)s +1654 X(............................................................................................................)s +4614 X(31)s +874 X +6528 Y +1450 X(MARK)s +1779 X(.......................................................................................................)s +4614 X(34)s +874 X +6672 Y +1450 X(MHL)s +1704 X(..........................................................................................................)s +4614 X(36)s +874 X +6816 Y +1450 X(MHMAIL)s +1904 X(..................................................................................................)s +4614 X(40)s +874 X +6960 Y +1450 X(MHN)s +1729 X(.........................................................................................................)s +4614 X(41)s +874 X +7104 Y +1450 X(MHOOK)s +1854 X(....................................................................................................)s +4614 X(56)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 8 160 + +874 X +960 Y +1450 X(MHPARAM)s +2004 X(..............................................................................................)s +4614 X(58)s +874 X +1104 Y +1450 X(MHPATH)s +1904 X(..................................................................................................)s +4614 X(60)s +874 X +1248 Y +1450 X(MSGCHK)s +1904 X(..................................................................................................)s +4614 X(63)s +874 X +1392 Y +1450 X(MSH)s +1704 X(..........................................................................................................)s +4614 X(64)s +874 X +1536 Y +1450 X(NEXT)s +1754 X(........................................................................................................)s +4614 X(67)s +874 X +1680 Y +1450 X(PACKF)s +1804 X(......................................................................................................)s +4614 X(68)s +874 X +1824 Y +1450 X(PICK)s +1704 X(..........................................................................................................)s +4614 X(69)s +874 X +1968 Y +1450 X(PREV)s +1754 X(........................................................................................................)s +4614 X(73)s +874 X +2112 Y +1450 X(PROMPTER)s +2004 X(..............................................................................................)s +4614 X(74)s +874 X +2256 Y +1450 X(RCVSTORE)s +2004 X(..............................................................................................)s +4614 X(76)s +874 X +2400 Y +1450 X(REFILE)s +1829 X(.....................................................................................................)s +4614 X(78)s +874 X +2544 Y +1450 X(REPL)s +1729 X(.........................................................................................................)s +4614 X(80)s +874 X +2688 Y +1450 X(RMF)s +1704 X(..........................................................................................................)s +4614 X(83)s +874 X +2832 Y +1450 X(RMM)s +1729 X(.........................................................................................................)s +4614 X(84)s +874 X +2976 Y +1450 X(SCAN)s +1754 X(........................................................................................................)s +4614 X(85)s +874 X +3120 Y +1450 X(SEND)s +1754 X(........................................................................................................)s +4614 X(87)s +874 X +3264 Y +1450 X(SHOW)s +1779 X(.......................................................................................................)s +4614 X(90)s +874 X +3408 Y +1450 X(SLOCAL)s +1879 X(...................................................................................................)s +4614 X(92)s +874 X +3552 Y +1450 X(SORTM)s +1829 X(.....................................................................................................)s +4614 X(96)s +874 X +3696 Y +1450 X(VMH)s +1729 X(.........................................................................................................)s +4614 X(98)s +874 X +3840 Y +1450 X(WHATNOW)s +2029 X(.............................................................................................)s +4564 X(100)s +874 X +3984 Y +1450 X(WHOM)s +1804 X(......................................................................................................)s +4564 X(102)s +874 X +4164 Y +1234 X(MORE)s +1548 X(DETAILS)s +2004 X(..............................................................................................)s +4564 X(103)s +874 X +4308 Y +1450 X(MH-ALIAS)s +1979 X(...............................................................................................)s +4564 X(104)s +874 X +4452 Y +1450 X(MH-FORMAT)s +2104 X(..........................................................................................)s +4564 X(107)s +874 X +4596 Y +1450 X(MH-MAIL)s +1929 X(.................................................................................................)s +4564 X(114)s +874 X +4740 Y +1450 X(MH-PROFILE)s +2079 X(...........................................................................................)s +4564 X(117)s +874 X +4884 Y +1450 X(MH-SEQUENCE)s +2204 X(......................................................................................)s +4564 X(123)s +874 X +5028 Y +1450 X(AP)s +1604 X(..............................................................................................................)s +4564 X(127)s +874 X +5172 Y +1450 X(CONFLICT)s +1979 X(...............................................................................................)s +4564 X(129)s +874 X +5316 Y +1450 X(DP)s +1604 X(..............................................................................................................)s +4564 X(130)s +874 X +5460 Y +1450 X(FMTDUMP)s +1979 X(...............................................................................................)s +4564 X(131)s +874 X +5604 Y +1450 X(INSTALL-MH)s +2104 X(..........................................................................................)s +4564 X(132)s +874 X +5748 Y +1450 X(POST)s +1729 X(.........................................................................................................)s +4564 X(133)s +874 X +6012 Y +949 X(5.)s +1074 X(REPORTING)s +1660 X(PROBLEMS)s +2229 X(.....................................................................................)s +4564 X(135)s +874 X +6276 Y +949 X(6.)s +1074 X(ADVANCED)s +1659 X(FEATURES)s +2204 X(......................................................................................)s +4564 X(136)s +874 X +6456 Y +1234 X(USER\261DEFINED)s +1992 X(SEQUENCES)s +2604 X(......................................................................)s +4564 X(136)s +874 X +6600 Y +1450 X(Pick)s +1653 X(and)s +1822 X(User\261De\256ned)s +2401 X(Sequences)s +2854 X(............................................................)s +4564 X(136)s +874 X +6744 Y +1450 X(Mark)s +1691 X(and)s +1860 X(User\261De\256ned)s +2439 X(Sequences)s +2904 X(..........................................................)s +4564 X(137)s +874 X +6888 Y +1450 X(Public)s +1731 X(and)s +1900 X(Private)s +2208 X(User\261De\256ned)s +2787 X(Sequences)s +3254 X(............................................)s +4564 X(137)s +874 X +7032 Y +1450 X(Sequence)s +1857 X(Negation)s +2254 X(....................................................................................)s +4564 X(137)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 9 161 + +874 X +960 Y +1450 X(The)s +1630 X(Previous)s +2005 X(Sequence)s +2429 X(.............................................................................)s +4564 X(138)s +874 X +1104 Y +1450 X(The)s +1630 X(Unseen)s +1954 X(Sequence)s +2379 X(...............................................................................)s +4564 X(138)s +874 X +1284 Y +1234 X(COMPOSITION)s +1942 X(OF)s +2095 X(MAIL)s +2379 X(...............................................................................)s +4564 X(139)s +874 X +1428 Y +1450 X(The)s +1630 X(Draft)s +1865 X(Folder)s +2154 X(........................................................................................)s +4564 X(139)s +874 X +1572 Y +1450 X(What)s +1691 X(Happens)s +2065 X(if)s +2151 X(the)s +2298 X(Draft)s +2533 X(Exists)s +2804 X(..............................................................)s +4564 X(141)s +874 X +1716 Y +1450 X(The)s +1630 X(Push)s +1850 X(Option)s +2153 X(at)s +2250 X(What)s +2491 X(now?)s +2732 X(Level)s +3004 X(......................................................)s +4564 X(141)s +874 X +1860 Y +1450 X(Options)s +1792 X(at)s +1889 X(What)s +2130 X(now?)s +2371 X(Level)s +2629 X(.....................................................................)s +4564 X(141)s +874 X +2004 Y +1450 X(Digests)s +1779 X(.......................................................................................................)s +4564 X(142)s +874 X +2184 Y +1234 X(FOLDER)s +1648 X(HANDLING)s +2204 X(......................................................................................)s +4564 X(143)s +874 X +2328 Y +1450 X(Relative)s +1808 X(Folder)s +2094 X(Addressing)s +2579 X(.......................................................................)s +4564 X(143)s +874 X +2472 Y +1450 X(The)s +1630 X(Folder\261Stack)s +2204 X(......................................................................................)s +4564 X(143)s +874 X +2736 Y(Appendix)s +874 X +2880 Y +949 X(A.)s +1096 X(Command)s +1538 X(Summary)s +1954 X(................................................................................................)s +4564 X(145)s +874 X +3024 Y +949 X(B.)s +1091 X(Message)s +1465 X(Name)s +1728 X(BNF)s +1954 X(................................................................................................)s +4564 X(149)s +874 X +3288 Y(REFERENCES)s +1529 X(.................................................................................................................)s +4564 X(150)s +7920 Y +page +0.0 10 10 f.R ft +%%Page: 10 162 + +1108 X +1108 X +2360 Y +2161 X +0.0 24 24 f.B ft(THE)s +2730 X(RAND)s +3482 X(MH)s +1108 X +2680 Y +1749 X(MESSAGE)s +2985 X(HANDLING)s +1108 X +3000 Y +2494 X(SYSTEM:)s +1108 X +3320 Y +2031 X(USER'S)s +2945 X(MANUAL)s +1108 X +4136 Y +2515 X +0.0 20 20 f.R ft(UCI)s +2909 X(Version)s +1108 X +4880 Y +2337 X(Marshall)s +3097 X(T.)s +3319 X(Rose)s +1108 X +5120 Y +2386 X(John)s +2814 X(L.)s +3036 X(Romine)s +1108 X +5720 Y +1732 X(Based)s +2270 X(on)s +2520 X(the)s +2814 X(original)s +3486 X(manual)s +4124 X(by)s +1108 X +5960 Y +1877 X(Borden,)s +2565 X(Gaines,)s +3219 X(and)s +3557 X(Shapiro)s +1108 X +6900 Y +2368 X +0.0 18 18 f.R ft(December)s +3148 X(5,)s +3328 X(1995)s +1108 X +7120 Y +2437 X(6.8.3a)s +2921 X(#10[UCI])s +7920 Y +page +0.0 18 18 f.R ft +%%Page: 11 163 + +7920 Y +page +0.0 10 10 f.B ft +%%Trailer +%%DocumentFonts: +count { pop } repeat % a little cleanup is necessary +vmstat restore diff --git a/docs/historical/mh-6.8.5/doc/Makefile b/docs/historical/mh-6.8.5/doc/Makefile new file mode 100644 index 0000000..0ffba6f --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/Makefile @@ -0,0 +1,806 @@ +############################################################################## +# Instructions to Make, for generation of MH manual entries +# +# This file is automatically generated. Do not edit! +# @(#)$Id: doc,v 2.26 1993/08/27 22:15:57 jromine Exp $ +############################################################################## + +BINDIR = $(DESTDIR)/opt/mh-6.8.5/bin +ETCDIR = $(DESTDIR)/opt/mh-6.8.5/lib +MANDIR = $(DESTDIR)/opt/mh-6.8.5/man +DIR1 = man1 +EXT1 = 1 +DIR5 = man5 +EXT5 = 5 +DIR8 = man8 +EXT8 = 8 +REMOVE = mv -f +MANPROT = 0644 + +MAN1 = ali.$(EXT1) anno.$(EXT1) burst.$(EXT1) comp.$(EXT1) \ + dist.$(EXT1) folder.$(EXT1) forw.$(EXT1) inc.$(EXT1) \ + mark.$(EXT1) mh-chart.$(EXT1) mh.$(EXT1) mhl.$(EXT1) \ + mhook.$(EXT1) mhmail.$(EXT1) \ + mhn.$(EXT1) \ + mhparam.$(EXT1) mhpath.$(EXT1) msgchk.$(EXT1) \ + msh.$(EXT1) next.$(EXT1) packf.$(EXT1) pick.$(EXT1) \ + prev.$(EXT1) prompter.$(EXT1) rcvstore.$(EXT1) refile.$(EXT1) \ + repl.$(EXT1) rmf.$(EXT1) rmm.$(EXT1) scan.$(EXT1) \ + send.$(EXT1) show.$(EXT1) slocal.$(EXT1) \ + sortm.$(EXT1) vmh.$(EXT1) \ + whatnow.$(EXT1) whom.$(EXT1) $(OPTIONS1) $(OPTIONS2) +man1 = ali anno burst comp dist folder forw inc mark mh-chart mh mhl \ + mhook mhmail \ + mhn \ + mhparam mhpath msgchk msh next packf pick \ + prev prompter \ + rcvstore refile repl rmf rmm scan send show slocal \ + sortm vmh whatnow \ + whom $(options1) $(options2) +inst-man1= inst-ali inst-anno inst-burst inst-comp inst-dist inst-folder \ + inst-forw inst-inc inst-mark inst-mh-chart inst-mh inst-mhl \ + inst-mhook inst-mhmail \ + inst-mhn \ + inst-mhparam inst-mhpath inst-msgchk inst-msh \ + inst-next inst-packf inst-pick \ + inst-prev inst-prompter \ + inst-rcvstore inst-refile inst-repl inst-rmf inst-rmm \ + inst-scan inst-send inst-show inst-slocal inst-sortm inst-vmh \ + inst-whatnow inst-whom $(inst-options1) $(inst-options2) +Tman1 = ali.man anno.man burst.man comp.man dist.man folder.man \ + forw.man inc.man mark.man mh-chart.man mh.man mhl.man \ + mhook.man mhmail.man \ + mhn.man \ + mhparam.man mhpath.man msgchk.man msh.man next.man packf.man \ + pick.man prev.man prompter.man rcvstore.man \ + refile.man repl.man rmf.man rmm.man scan.man send.man \ + show.man slocal.man \ + sortm.man vmh.man whatnow.man whom.man $(Toptions1) \ + $(Toptions2) + +MAN5 = mh-alias.$(EXT5) mh-format.$(EXT5) mh-mail.$(EXT5) \ + mh-profile.$(EXT5) mh-sequence.$(EXT5) mh-tailor.$(EXT5) +man5 = mh-alias mh-format mh-mail mh-profile mh-sequence mh-tailor +inst-man5= inst-mh-alias inst-mh-format inst-mh-mail inst-mh-profile \ + inst-mh-sequence inst-mh-tailor +Tman5 = mh-alias.man mh-format.man mh-mail.man mh-profile.man \ + mh-sequence.man mh-tailor.man + +MAN8 = ap.$(EXT8) conflict.$(EXT8) dp.$(EXT8) install-mh.$(EXT8) \ + post.$(EXT8) fmtdump.$(EXT8) +man8 = ap conflict dp install-mh \ + post fmtdump +inst-man8= inst-ap inst-conflict inst-dp inst-install-mh \ + inst-post \ + inst-fmtdump +Tman8 = ap.man conflict.man dp.man install-mh.man \ + post.man \ + fmtdump.man + + +############################################################################## +# Generation Rules +############################################################################## + +.SUFFIXES: .me .cat .doc .man .imp + +.me.cat:; itroff -t -me $< > $@ + +.me.doc:; nroff -Tlpr -me $< > $@ + +.me.man:; cat tmac.me $< | sed -f me2man.sed > $@ + +.cat.imp:; catimp -i $@ $< + + +############################################################################## +# Generate MH manual entries +############################################################################## + +all: $(man1) $(man5) $(man8) + +install: inst-all clean + +inst-all: mkdirs inst-tmac \ + $(inst-man1) $(inst-man5) $(inst-man8) + +tar: $(Tman1) $(Tman5) $(Tman8) + @touch tmac.h $(Tman1) $(Tman5) $(Tman8) + @make -n inst-all > MAKEDOC + @chmod +x MAKEDOC + tar $(TFLAGS) MAKEDOC tmac.h $(Tman1) $(Tman5) $(Tman8) + @rm -f MAKEDOC + +uninstall:; cd $(MANDIR)/$(DIR1) ; rm -f $(MAN1) + cd $(MANDIR)/$(DIR5) ; rm -f $(MAN5) + cd $(MANDIR)/$(DIR8) ; rm -f $(MAN8) + + +############################################################################## +# Generate MH User's Manual/Administrator's Guide +############################################################################## + +manual: MH.doc + +guide: ADMIN.doc + +true:; + + +############################################################################## +# MH manual entries +############################################################################## + +mkdirs: $(MANDIR)/$(DIR1) $(MANDIR)/$(DIR5) $(MANDIR)/$(DIR8) + +$(MANDIR)/$(DIR1) $(MANDIR)/$(DIR5) $(MANDIR)/$(DIR8): + -mkdir $@ && chmod 0755 $@ + + +inst-tmac: $(ETCDIR)/tmac.h + +$(ETCDIR)/tmac.h: tmac.h + -$(REMOVE) $@ ztmac.h + cp tmac.h $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + + +inst-ali: $(MANDIR)/$(DIR1)/ali.$(EXT1) + +$(MANDIR)/$(DIR1)/ali.$(EXT1): ali.man + -$(REMOVE) $@ zali.man + cp ali.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-anno: $(MANDIR)/$(DIR1)/anno.$(EXT1) + +$(MANDIR)/$(DIR1)/anno.$(EXT1): anno.man + -$(REMOVE) $@ zanno.man + cp anno.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-ap: $(MANDIR)/$(DIR8)/ap.$(EXT8) + +$(MANDIR)/$(DIR8)/ap.$(EXT8): ap.man + -$(REMOVE) $@ zap.man + cp ap.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bbc: $(MANDIR)/$(DIR1)/bbc.$(EXT1) + +$(MANDIR)/$(DIR1)/bbc.$(EXT1): bbc.man + -$(REMOVE) $@ zbbc.man + cp bbc.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bbl: $(MANDIR)/$(DIR1)/bbl.$(EXT1) + +$(MANDIR)/$(DIR1)/bbl.$(EXT1): bbl.man + -$(REMOVE) $@ zbbl.man + cp bbl.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bbleader: $(MANDIR)/$(DIR1)/bbleader.$(EXT1) + +$(MANDIR)/$(DIR1)/bbleader.$(EXT1): bbleader.man + -$(REMOVE) $@ zbbleader.man + cp bbleader.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-bboards: $(MANDIR)/$(DIR1)/bboards.$(EXT1) + +$(MANDIR)/$(DIR1)/bboards.$(EXT1): bboards.man + -$(REMOVE) $@ zbboards.man + cp bboards.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-burst: $(MANDIR)/$(DIR1)/burst.$(EXT1) + +$(MANDIR)/$(DIR1)/burst.$(EXT1): burst.man + -$(REMOVE) $@ zburst.man + cp burst.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-cipher: $(MANDIR)/$(DIR1)/cipher.$(EXT1) + +$(MANDIR)/$(DIR1)/cipher.$(EXT1): cipher.man + -$(REMOVE) $@ zcipher.man + cp cipher.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-comp: $(MANDIR)/$(DIR1)/comp.$(EXT1) + +$(MANDIR)/$(DIR1)/comp.$(EXT1): comp.man + -$(REMOVE) $@ zcomp.man + cp comp.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-conflict: $(MANDIR)/$(DIR8)/conflict.$(EXT8) + +$(MANDIR)/$(DIR8)/conflict.$(EXT8): conflict.man + -$(REMOVE) $@ zconflict.man + cp conflict.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-decipher: $(MANDIR)/$(DIR1)/decipher.$(EXT1) + +$(MANDIR)/$(DIR1)/decipher.$(EXT1): decipher.man + -$(REMOVE) $@ zdecipher.man + cp decipher.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-dist: $(MANDIR)/$(DIR1)/dist.$(EXT1) + +$(MANDIR)/$(DIR1)/dist.$(EXT1): dist.man + -$(REMOVE) $@ zdist.man + cp dist.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-dp: $(MANDIR)/$(DIR8)/dp.$(EXT8) + +$(MANDIR)/$(DIR8)/dp.$(EXT8): dp.man + -$(REMOVE) $@ zdp.man + cp dp.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-folder: $(MANDIR)/$(DIR1)/folder.$(EXT1) + +$(MANDIR)/$(DIR1)/folder.$(EXT1): folder.man + -$(REMOVE) $@ zfolder.man + cp folder.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-fmtdump: $(MANDIR)/$(DIR8)/fmtdump.$(EXT8) + +$(MANDIR)/$(DIR8)/fmtdump.$(EXT8): fmtdump.man + -$(REMOVE) $@ zfmtdump.man + cp fmtdump.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-forw: $(MANDIR)/$(DIR1)/forw.$(EXT1) + +$(MANDIR)/$(DIR1)/forw.$(EXT1): forw.man + -$(REMOVE) $@ zforw.man + cp forw.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-inc: $(MANDIR)/$(DIR1)/inc.$(EXT1) + +$(MANDIR)/$(DIR1)/inc.$(EXT1): inc.man + -$(REMOVE) $@ zinc.man + cp inc.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-install-mh: $(MANDIR)/$(DIR8)/install-mh.$(EXT8) + +$(MANDIR)/$(DIR8)/install-mh.$(EXT8): install-mh.man + -$(REMOVE) $@ zinstall-mh.man + cp install-mh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mark: $(MANDIR)/$(DIR1)/mark.$(EXT1) + +$(MANDIR)/$(DIR1)/mark.$(EXT1): mark.man + -$(REMOVE) $@ zmark.man + cp mark.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-alias: $(MANDIR)/$(DIR5)/mh-alias.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-alias.$(EXT5): mh-alias.man + -$(REMOVE) $@ zmh-alias.man + cp mh-alias.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-format: $(MANDIR)/$(DIR5)/mh-format.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-format.$(EXT5): mh-format.man + -$(REMOVE) $@ zmh-format.man + cp mh-format.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-chart: $(MANDIR)/$(DIR1)/mh-chart.$(EXT1) + +$(MANDIR)/$(DIR1)/mh-chart.$(EXT1): mh-chart.man + -$(REMOVE) $@ zmh-chart.man + cp mh-chart.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-mail: $(MANDIR)/$(DIR5)/mh-mail.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-mail.$(EXT5): mh-mail.man + -$(REMOVE) $@ zmh-mail.man + cp mh-mail.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-tailor: $(MANDIR)/$(DIR5)/mh-tailor.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-tailor.$(EXT5): mh-tailor.man + -$(REMOVE) $@ zmh-tailor.man + cp mh-tailor.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-profile: $(MANDIR)/$(DIR5)/mh-profile.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-profile.$(EXT5): mh-profile.man + -$(REMOVE) $@ zmh-profile.man + cp mh-profile.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh-sequence: $(MANDIR)/$(DIR5)/mh-sequence.$(EXT5) + +$(MANDIR)/$(DIR5)/mh-sequence.$(EXT5): mh-sequence.man + -$(REMOVE) $@ zmh-sequence.man + cp mh-sequence.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhook: $(MANDIR)/$(DIR1)/mhook.$(EXT1) + +$(MANDIR)/$(DIR1)/mhook.$(EXT1): mhook.man + -$(REMOVE) $@ zmhook.man + cp mhook.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mh: $(MANDIR)/$(DIR1)/mh.$(EXT1) + +$(MANDIR)/$(DIR1)/mh.$(EXT1): mh.man + -$(REMOVE) $@ zmh.man + cp mh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhl: $(MANDIR)/$(DIR1)/mhl.$(EXT1) + +$(MANDIR)/$(DIR1)/mhl.$(EXT1): mhl.man + -$(REMOVE) $@ zmhl.man + cp mhl.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhmail: $(MANDIR)/$(DIR1)/mhmail.$(EXT1) + +$(MANDIR)/$(DIR1)/mhmail.$(EXT1): mhmail.man + -$(REMOVE) $@ zmhmail.man + cp mhmail.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhn: $(MANDIR)/$(DIR1)/mhn.$(EXT1) + +$(MANDIR)/$(DIR1)/mhn.$(EXT1): mhn.man + -$(REMOVE) $@ zmhn.man + cp mhn.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhparam: $(MANDIR)/$(DIR1)/mhparam.$(EXT1) + +$(MANDIR)/$(DIR1)/mhparam.$(EXT1): mhparam.man + -$(REMOVE) $@ zmhparam.man + cp mhparam.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-mhpath: $(MANDIR)/$(DIR1)/mhpath.$(EXT1) + +$(MANDIR)/$(DIR1)/mhpath.$(EXT1): mhpath.man + -$(REMOVE) $@ zmhpath.man + cp mhpath.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-msgchk: $(MANDIR)/$(DIR1)/msgchk.$(EXT1) + +$(MANDIR)/$(DIR1)/msgchk.$(EXT1): msgchk.man + -$(REMOVE) $@ zmsgchk.man + cp msgchk.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-msh: $(MANDIR)/$(DIR1)/msh.$(EXT1) + +$(MANDIR)/$(DIR1)/msh.$(EXT1): msh.man + -$(REMOVE) $@ zmsh.man + cp msh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-next: $(MANDIR)/$(DIR1)/next.$(EXT1) + +$(MANDIR)/$(DIR1)/next.$(EXT1): next.man + -$(REMOVE) $@ znext.man + cp next.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-packf: $(MANDIR)/$(DIR1)/packf.$(EXT1) + +$(MANDIR)/$(DIR1)/packf.$(EXT1): packf.man + -$(REMOVE) $@ zpackf.man + cp packf.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-popauth: $(MANDIR)/$(DIR8)/popauth.$(EXT8) + +$(MANDIR)/$(DIR8)/popauth.$(EXT8): popauth.man + -$(REMOVE) $@ zpopauth.man + cp popauth.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-popi: $(MANDIR)/$(DIR1)/popi.$(EXT1) + +$(MANDIR)/$(DIR1)/popi.$(EXT1): popi.man + -$(REMOVE) $@ zpopi.man + cp popi.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-pick: $(MANDIR)/$(DIR1)/pick.$(EXT1) + +$(MANDIR)/$(DIR1)/pick.$(EXT1): pick.man + -$(REMOVE) $@ zpick.man + cp pick.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-post: $(MANDIR)/$(DIR8)/post.$(EXT8) + +$(MANDIR)/$(DIR8)/post.$(EXT8): post.man + -$(REMOVE) $@ zpost.man + cp post.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-prev: $(MANDIR)/$(DIR1)/prev.$(EXT1) + +$(MANDIR)/$(DIR1)/prev.$(EXT1): prev.man + -$(REMOVE) $@ zprev.man + cp prev.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-prompter: $(MANDIR)/$(DIR1)/prompter.$(EXT1) + +$(MANDIR)/$(DIR1)/prompter.$(EXT1): prompter.man + -$(REMOVE) $@ zprompter.man + cp prompter.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-rcvstore: $(MANDIR)/$(DIR1)/rcvstore.$(EXT1) + +$(MANDIR)/$(DIR1)/rcvstore.$(EXT1): rcvstore.man + -$(REMOVE) $@ zrcvstore.man + cp rcvstore.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-refile: $(MANDIR)/$(DIR1)/refile.$(EXT1) + +$(MANDIR)/$(DIR1)/refile.$(EXT1): refile.man + -$(REMOVE) $@ zrefile.man + cp refile.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-repl: $(MANDIR)/$(DIR1)/repl.$(EXT1) + +$(MANDIR)/$(DIR1)/repl.$(EXT1): repl.man + -$(REMOVE) $@ zrepl.man + cp repl.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-rmm: $(MANDIR)/$(DIR1)/rmm.$(EXT1) + +$(MANDIR)/$(DIR1)/rmm.$(EXT1): rmm.man + -$(REMOVE) $@ zrmm.man + cp rmm.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-rmf: $(MANDIR)/$(DIR1)/rmf.$(EXT1) + +$(MANDIR)/$(DIR1)/rmf.$(EXT1): rmf.man + -$(REMOVE) $@ zrmf.man + cp rmf.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-scan: $(MANDIR)/$(DIR1)/scan.$(EXT1) + +$(MANDIR)/$(DIR1)/scan.$(EXT1): scan.man + -$(REMOVE) $@ zscan.man + cp scan.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-send: $(MANDIR)/$(DIR1)/send.$(EXT1) + +$(MANDIR)/$(DIR1)/send.$(EXT1): send.man + -$(REMOVE) $@ zsend.man + cp send.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-show: $(MANDIR)/$(DIR1)/show.$(EXT1) + +$(MANDIR)/$(DIR1)/show.$(EXT1): show.man + -$(REMOVE) $@ zshow.man + cp show.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-slocal: $(MANDIR)/$(DIR1)/slocal.$(EXT1) + +$(MANDIR)/$(DIR1)/slocal.$(EXT1): slocal.man + -$(REMOVE) $@ zslocal.man + cp slocal.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-sortm: $(MANDIR)/$(DIR1)/sortm.$(EXT1) + +$(MANDIR)/$(DIR1)/sortm.$(EXT1): sortm.man + -$(REMOVE) $@ zsortm.man + cp sortm.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-tma: $(MANDIR)/$(DIR1)/tma.$(EXT1) + +$(MANDIR)/$(DIR1)/tma.$(EXT1): tma.man + -$(REMOVE) $@ ztma.man + cp tma.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-vmh: $(MANDIR)/$(DIR1)/vmh.$(EXT1) + +$(MANDIR)/$(DIR1)/vmh.$(EXT1): vmh.man + -$(REMOVE) $@ zvmh.man + cp vmh.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-whatnow: $(MANDIR)/$(DIR1)/whatnow.$(EXT1) + +$(MANDIR)/$(DIR1)/whatnow.$(EXT1): whatnow.man + -$(REMOVE) $@ zwhatnow.man + cp whatnow.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + +inst-whom: $(MANDIR)/$(DIR1)/whom.$(EXT1) + +$(MANDIR)/$(DIR1)/whom.$(EXT1): whom.man + -$(REMOVE) $@ zwhom.man + cp whom.man $@ + -@chmod $(MANPROT) $@ + -@ls -l $@ + -@echo "" + + +############################################################################## +# Dependencies +############################################################################## + +ali: ali.man +anno: anno.man +ap: ap.man +bbc: bbc.man +bbl: bbl.man +bbleader: bbleader.man +bboards: bboards.man +burst: burst.man +cipher: cipher.man +comp: comp.man +conflict: conflict.man +decipher: decipher.man +dist: dist.man +dp: dp.man +fmtdump: fmtdump.man +folder: folder.man +forw: forw.man +inc: inc.man +install-mh: install-mh.man +mark: mark.man +mh-alias: mh-alias.man +mh-format: mh-format.man +mh-chart: mh-chart.man +mh-mail: mh-mail.man +mh-profile: mh-profile.man +mh-sequence: mh-sequence.man +mh-tailor: mh-tailor.man +mhook: mhook.man +mh: mh.man +mhl: mhl.man +mhmail: mhmail.man +mhparam: mhparam.man +mhpath: mhpath.man +mhn: mhn.man +msgchk: msgchk.man +msh: msh.man +next: next.man +packf: packf.man +pick: pick.man +popauth: popauth.man +popi: popi.man +post: post.man +prev: prev.man +prompter: prompter.man +rcvstore: rcvstore.man +refile: refile.man +repl: repl.man +rmf: rmf.man +rmm: rmm.man +scan: scan.man +send: send.man +show: show.man +slocal: slocal.man +sortm: sortm.man +tma: tma.man +vmh: vmh.man +whatnow: whatnow.man +whom: whom.man + +MH.cat MH.doc: ali.me anno.me bbc.me bbl.me bbleader.me bboards.me comp.me \ + dist.me folder.me forw.me inc.me mark.me mh-chart.me mh.me \ + mhl.me mhmail.me \ + mhn.me \ + mhook.me mhparam.me mhpath.me msgchk.me msh.me \ + next.me packf.me pick.me \ + prev.me prompter.me \ + rcvstore.me refile.me repl.me rmf.me rmm.me scan.me send.me \ + show.me slocal.me \ + sortm.me vmh.me whatnow.me whom.me mh-alias.me \ + mh-format.me mh-mail.me mh-profile.me mh-sequence.me \ + ap.me conflict.me dp.me install-mh.me fmtdump.me \ + post.me \ + version.rf + +ADMIN.cat ADMIN.doc: \ + mh-tailor.me mh-mts.me \ + bboards5.me bbaka.me bbexp.me bboards8.me bbtar.me \ + pop5.me pop8.me popaka.me \ + popd.me popwrd.me \ + mf.me rmail.me \ + mh-hack.me \ + version.rf + + +############################################################################## +# Miscellaneous tasks +############################################################################## + +lint:; + +version.rf: + cd ../config; make version + +unconfig: distribution + -rm -f version.rf me2man.sed Makefile + +distribution: clean + -rm -f *.me tmac.h + +clean: unclean + -rm -f *.man *.doc *.cat *.imp + +unclean:; -rm -f z* _* :* core MAKEDOC + +depend:; + + +############################################################################## +# MODIFICATIONS -- Adding a new program (e.g., pickle [section n]) +############################################################################## + +# Add pickle.$(EXT[N]) to MAN[N] +# Add pickle to man[n] +# Add inst-pickle to inst-man[n] +# Add pickle.man to Tman[n] +# +# Under the "MH manual entries" section, add this incantation +# inst-pickle: $(MANDIR)/$(DIR[n])/pickle.$(EXT[n]) +# +# $(MANDIR)/$(DIR[n])/pickle.$(EXT[n]): pickle.man +# -$(REMOVE) $@ zpickle.man +# cp pickle.man $@ +# -@chmod $(MANPROT) $@ +# -@ls -l $@ +# -@echo "" +# +# Under the "Dependencies" section, add a line for pickle +# pickle: pickle.man +# +# Add pickle.me to MH.cat diff --git a/docs/historical/mh-6.8.5/doc/ali.me b/docs/historical/mh-6.8.5/doc/ali.me new file mode 100644 index 0000000..6932c03 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/ali.me @@ -0,0 +1,57 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: ali.rf,v 1.7 1992/02/11 00:47:53 jromine Exp $ +.SC ALI 1 +.NA +ali \- list mail aliases +.SY +ali +\%[\-alias\ aliasfile] +\%[\-list] \%[\-nolist] +\%[\-normalize] \%[\-nonormalize] +\%[\-user] \%[\-nouser] +aliases\ ... +\%[\-help] +.DE +\fIAli\fR +searches the named mail alias files for each of the given \fIaliases\fR. +It creates a list of addresses for those \fIaliases\fR, +and writes that list on standard output. +If the `\-list' option is specified, each address appears on a separate line; +otherwise, the addresses are separated by commas and printed on +as few lines as possible. + +The `\-user' option directs \fIali\fR to perform its processing in an +inverted fashion: +instead of listing the addresses that each given alias expands to, +\fIali\fR will list the aliases that expand to each given address. +If the `\-normalize' switch is given, +\fIali\fR will try to track down the official hostname of the address. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read. +Each \fIalias\fR is processed as described in \fImh\-alias\fR\0(5). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/etc/passwd~^List of users +^/etc/group~^List of groups +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Aliasfile:~^For a default alias file +.Sa +mh\-alias(5) +.De +`\-alias /opt/mh-6.8.5/lib/MailAliases' +.Ds +`\-nolist' +.Ds +`\-nonormalize' +.Ds +`\-nouser' +.Co +None +.Bu +The `\-user' option with `\-nonormalize' is not entirely accurate, +as it does not replace local nicknames for hosts with their official +site names. +.En diff --git a/docs/historical/mh-6.8.5/doc/anno.me b/docs/historical/mh-6.8.5/doc/anno.me new file mode 100644 index 0000000..588bd40 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/anno.me @@ -0,0 +1,58 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: anno.rf,v 2.4 90/04/05 15:08:00 sources Exp $ +.SC ANNO 1 +.NA +anno \- annotate messages +.SY +anno +\%[+folder] \%[msgs] +\%[\-component\ field] +\%[\-inplace] \%[\-noinplace] +\%[\-date] \%[\-nodate] +\%[\-text\ body] +\%[\-help] +.DE +\fIAnno\fR annotates the specified messages in the named folder using +the field and body. +Annotation is optionally performed by \fIdist\fR, \fIforw\fR, and +\fIrepl\fR, +to keep track of your distribution of, forwarding of, and replies to a +message. +By using \fIanno\fR, +you can perform arbitrary annotations of your own. +Each message selected will be annotated with the lines + + field:\ date + field:\ body + +The `\-nodate' switch inhibits the date annotation, +leaving only the body annotation. +The `\-inplace' switch causes annotation to be done in place in order +to preserve links to the annotated message. + +The field specified should be a valid 822-style message field name, +which means that it should consist of alphanumerics (or dashes) only. +The body specified is arbitrary text. + +If a `\-component\ field' is not specified when \fIanno\fR is invoked, +\fIanno\fR will prompt the user for the name of field for the annotation. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +dist (1), forw (1), repl (1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noinplace' +.Ds +`\-date' +.Co +If a folder is given, it will become the current folder. +The first message annotated will become the current message. +.En diff --git a/docs/historical/mh-6.8.5/doc/ap.me b/docs/historical/mh-6.8.5/doc/ap.me new file mode 100644 index 0000000..f06b115 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/ap.me @@ -0,0 +1,77 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: ap.rf,v 1.7 1992/05/12 22:23:34 jromine Exp $ +.SC AP 8 +.NA +ap \- parse addresses 822-style +.SY +/opt/mh-6.8.5/lib/ap +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-normalize] \%[\-nonormalize] +\%[\-width\ columns] +addrs\ ... +\%[\-help] +.DE +\fIAp\fR is a program that parses addresses according to the ARPA Internet +standard. +It also understands many non\-standard formats. +It is useful for seeing how \fIMH\fR will interpret an address. + +The \fIap\fR program treats each argument as one or more addresses, +and prints those addresses out in the official 822\-format. +Hence, it is usually best to enclose each argument in double\-quotes for the +shell. + +To override the output format used by \fIap\fR, +the `\-format\ string' or `\-format\ file' switches are used. +This permits individual fields of the address to be extracted with ease. +The string is simply a format stringand thefile is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +In addition to the standard escapes, +\fIap\fR also recognizes the following additional escape: +.sp 1 +.nf +.ta \w'Escape 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +error string A diagnostic if the parse failed +.re +.fi + +If the `\-normalize' switch is given, +\fIap\fR will try to track down the official hostname of the address. + +Here is the default format string used by \fIap\fR: + +.ti +.5i +%<{error}%{error}: %{text}%|%(putstr(proper{text}))%> + +which says that if an error was detected, print the error, a `:', +and the address in error. +Otherwise, output the 822\-proper format of the address. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +.Pr +None +.Sa +dp(8), +.br +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +`\-format' defaults as described above +.Ds +`\-normalize' +.Ds +`\-width' defaults to the width of the terminal +.Co +None +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIap\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. +.En diff --git a/docs/historical/mh-6.8.5/doc/bbaka.me b/docs/historical/mh-6.8.5/doc/bbaka.me new file mode 100644 index 0000000..e314468 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bbaka.me @@ -0,0 +1,27 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bbaka.rf,v 1.5 90/04/05 15:11:03 sources Exp $ +.SC BBAKA 8 +.NA +bbaka \- generate an alias list for BBoards +.SY +/usr/spool/bboards/bbaka +\%[system] +.DE +The \fIbbaka\fR program reads the BBoards database and produces on its +standard output a file suitable for inclusion in either the \fIMMDF\-II\fR +aliases file (if the argument `system' is given). +If the argument is not given, +then \fIbbaka\fR produces on its standard output a file suitable for becoming +the /opt/mh-6.8.5/lib/BBoardsAliases file. +.Fi +^/usr/spool/bboards/BBoards~^BBoards database +^/opt/mh-6.8.5/lib/BBoardsAliases~^BBoards aliases file for \fIMH\fR +.Pr +None +.Sa +bboards(5) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/bbc.me b/docs/historical/mh-6.8.5/doc/bbc.me new file mode 100644 index 0000000..d2e6a08 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bbc.me @@ -0,0 +1,142 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bbc.rf,v 2.6 1995/12/06 22:48:30 jromine Exp $ +.SC BBC 1 +.NA +bbc \- check on BBoards +.SY +bbc +\%[bboards\ ...] +\%[\-topics] \%[\-check] \%[\-read] +\%[\-quiet] \%[\-verbose] +\%[\-archive] \%[\-noarchive] +\%[\-protocol] \%[\-noprotocol] +\%[\-mshproc\ program] +\%[switches\ for\ \fImshproc\fR] +\%[\-rcfile rcfile] \%[\-norcfile] +\%[\-file\ BBoardsfile] \%[\-user\ BBoardsuser] +\%[\-help] +.DE +\fIbbc\fR is a BBoard +reading/checking program that interfaces to the BBoard +channel. + +The \fIbbc\fR program has three action switches which direct its operation: + +The `\-read' switch invokes the \fImsh\fR program on the named +\fIBBoards\fR. If you also specify +the `\-archive' switch, then \fIbbc\fR will invoke the \fImsh\fR program on +the archives of the named \fIBBoards\fR. If no \fIBBoards\fR are given +on the command line, and you specified `\-archive', +\fIbbc\fR will not read your `bboards' profile entry, but will +read the archives of the \*(lqsystem\*(rq \fIBBoard\fR instead. + +The `\-check' switch types out status information for the named \fIBBoards\fR. +\fIbbc\fR +can print one of several messages depending on the status of both the +BBoard +and the user's reading habits. +As with each of these messages, the number +given is the item number of the last item placed in the +BBoard. +This number (which is marked in the messages as the \*(lqBBoard\-Id\*(rq) is +ever increasing. Hence, when \fIbbc\fR +says \*(lqn items\*(rq, it really means that the highest BBoard\-Id is \*(lqn\*(rq. +There may, or may not actually be \*(lqn\*(rq items in the BBoard. +Some common messages are: +.in +1i + +.ti -.5i +\fBBBoard \-\- n items unseen\fR +.br +This message tells how many items the user has not yet seen. +When invoked with the `\-quiet' switch, +this is the only informative line that \fIbbc\fR will possibly print out. + +.ti -.5i +\fBBBoard \-\- empty\fR +.br +The BBoard is empty. + +.ti -.5i +\fBBBoard \-\- n items (none seen)\fR +.br +The BBoard has items in it, but the user hasn't seen any. + +.ti -.5i +\fBBBoard \-\- n items (all seen)\fR +.br +The BBoard is non\-empty, and the user has seen everything in it. + +.ti -.5i +\fBBBoard \-\- n items seen out of m\fR +.br +The BBoard has at most m\-n items that the user has not seen. +.in -1i + +The `\-topics' switch directs \fIbbc\fR to print three items about the named +\fIBBoards\fR: +it's official name, +the number of items present, +and the date and time of the last update. +If no \fIBBoards\fR +are named, then all BBoards +are listed. If the `\-verbose' switch is given, more information is output. + +The `\-quiet' switch specifies that \fIbbc\fR should be silent if no +\fIBBoards\fR are found with new information. +The `\-verbose' switch specifies that \fIbbc\fR is to consider you to be +interested in \fIBBoards\fR that you've already seen everything in. + +To override the default \fImshproc\fR and the profile entry, +use the `\-mshproc\ program' switch. +Any arguments not understood by \fIbbc\fR are passed to this program. +The `\-protocol' switch tells \fIbbc\fR that your \fImshproc\fR knows about +the special \fIbbc\fR protocol for reporting back information. +\fImsh\fR\0(1), the default \fImshproc\fR, knows all about this. + +The `\-file\ BBoardsfile' switch tells \fIbbc\fR to use a non\-standard +\fIBBoards\fR file when performing its calculations. +Similarly, the `\-user BBoardsuser' switch tells \fIbbc\fR to use a +non\-standard username. +Both of these switches are useful for debugging a new \fIBBoards\fR or +\fIPOP\fR file. + +The \fI\&.bbrc\fR file in the +user's \fB$HOME\fR directory +is used to keep track of what messages have been read. +The `\-rcfile\ rcfile' switch overrides the use of \fI\&.bbrc\fR for +this purpose. +If the value given to the switch is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. +If this switch is not given (or the `\-norcfile' switch is given), +then \fIbbc\fR consults the envariable \fBMHBBRC\fR, +and honors it similarly. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$HOME/\&.bbrc~^BBoard \*(lqcurrent\*(rq message information +.Pr +^Path:~^To determine the user's MH directory +.Ps +^bboards:~^To specify interesting BBoards +.Ps +^mshproc:~^Program to read a given BBoard +.Sa +bbl(1), bboards(1), msh(1) +.De +`\-read' +.Ds +`\-noarchive' +.Ds +`\-protocol' +.Ds +`bboards' defaults to \*(lqsystem\*(rq +.Ds +`\-file /usr/spool/bboards/BBoards' +.Ds +`\-user bboards' +.Co +None +.Bu +The `\-user' switch takes effect only if followed by the `\-file' switch. +.En diff --git a/docs/historical/mh-6.8.5/doc/bbexp.me b/docs/historical/mh-6.8.5/doc/bbexp.me new file mode 100644 index 0000000..e864408 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bbexp.me @@ -0,0 +1,30 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bbexp.rf,v 1.5 90/04/05 15:11:10 sources Exp $ +.SC BBEXP 8 +.NA +bbexp \- expunge the BBoards area +.SY +/usr/spool/bboards/bbexp +\%[\-\fIfirst\-metric\fR] \%[\-\fIsecond\-metric\fR] +\%[bboards\ ...] +.DE +The \fIbbexp\fR program reads the BBoards database and calls \fImsh\fR to +archive the named BBoards (or all BBoards if none are specified). + +The first\-metric (which defaults to 12) gives the age in days of the +\*(lqBB\-Posted:\*(rq field for messages which should be expunged. +The second\-metric (which defaults to 20) gives the age in days of the +\*(lqDate:\*(rq field for messages which should be expunged. +Any message which meets either metric will be either archived or removed, +depending on what the \fIBBoards\fR\0(5) file says. +.Fi +^/usr/spool/bboards/BBoards~^BBoards database +.Pr +None +.Sa +msh(1), bboards(5) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/bbl.me b/docs/historical/mh-6.8.5/doc/bbl.me new file mode 100644 index 0000000..a39b38d --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bbl.me @@ -0,0 +1,201 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bbl.rf,v 1.5 90/04/05 15:11:17 sources Exp $ +.SC BBL 1 +.NA +bbl \- manage a BBoard +.SY +bbl +\%[+folder] +\%[\-shell\ program] +\%[\-verbose] \%[\-noverbose] +bboard +\%[\-help] +.DE +\fIbbl\fR allows a \fIBBleader\fR to manage a BBoard. +The process is relatively simple: a \fIBBleader\fR +invokes the \fIbbl\fR program to set\-up an environment in which the messages +contained in the BBoard +may be accessed as if they were messages in an \fIMH\fR folder. + +To do this, \fIbbl\fR, \fIincs\fR the \fIBBoard\fR +to the folder \*(lq+bbl\*(rq, and \fIincs\fR the archives for the \fIBBoard\fR +to the folder \*(lq+bbl/arc\*(rq. The \fIBBleader\fR +then gets a new shell in which \fIMH\fR +commands (among others) may be executed. When the \fIBBleader\fR +is done, CTRL\-D is typed, which terminates the shell. \fIbbl\fR then +asks the \fIBBleader\fR +as to how the BBoard +should be reconstructed. +Usually, this results in zeroing the existing \fIBBoard\fR +file, and \fIpack\fRing the \*(lq+bbl\*(rq folder into the \fIBBoard\fR +file. Similar actions are taken for the archive. + +The `\-shell' switch specifies what process that \fIbbl\fR should invoke +as your command interpreter. This need not be a rooted filename. +If this switch is not specified, +\fIbbl\fR looks at the envariable \fB$SHELL\fR for a value. +If this envariable is not set, then \fIbbl\fR uses your login shell. + +The `\-verbose' switch directs \fIbbl\fR to type the shell commands that it +executes to get the job done (e.g., \fIchmod\fR\0s, \fIinc\fR\0s, etc.) + +As \fIbbl\fR processing is most likely not intuitively obvious to most +prospective BBoard\-leaders, a short diatribe is in order. As pointed out in +\fIBBleader\fR(1), +a BBoard\-leader (of the fictitious BBoard \*(lqhacks\*(rq) +has three primary maintenance functions: +.in +.5i + +.ti -.5i +\fBRead the BBoard\fR +.br +You don't need \fIbbl\fR +to do this, use \fIbbc\fR instead. + +.ti -.5i +\fBRemove inappropriate material\fR +.br +Do this by running \fIbbl\fR. +An example of this might be: +.sp +.nf +\01 % bbl hacks +\02 [ Working folder is +bbl, Archive folder is +bbl/arc ] +\03 [ Type CTRL\-D to finish ] +\04 % scan +.ta \w'\05 'u +\w'20 'u +\w'10/14 'u +\w'1345-PDT 'u +\w'Reasonable Person 'u +\05 20 10/14 1345-PDT Silly User Nonsensical message +\06 21 10/14 1707-PDT Silly User Another one +\07 22 10/14 2144-PDT Reasonable Person Legit message +.re +\09 % rmm 20 21 +\10 % \^D +\11 Incorporate changes? y +\12 Remove +bbl? y +\13 Update archives? n +\14 Remove +bbl/arc? y +\15 [+inbox now current] +\16 % +.fi +.sp +In item 1, the BBoard\-Leader invokes \fIbbl\fR +on the BBoard called \*(lqhacks\*(rq. The \fIbbl\fR +program responds by typing items 2 and 3 which tell the user what \fIMH\fR +folders are being used and that a sub\-shell is now in use (respectively). +The user does a scan of the +bbl folder +(\fIbbl\fR sets the current\-folder to be the one with the BBoard in it.) +and finds two messages that should be removed (numbers 20 and 21). +The user then removes these using the \fIrmm\fR +program (item 9) and then types a CTRL\-D to return to +\fIbbl\fR (item 10). +At this point, +\fIbbl\fR +asks how the BBoard should be reconstructed. Item 11 asks if the contents of +the +bbl folder should OVERWRITE the contents of the BBoard. The user +responds `yes', +that it should (hence the two \fIrmm\fR'd messages disappear). +Next on item 12, +the user is asked if the +bbl folder should be killed, since the BBoards +have been successfully updated, the user answers `yes'. +On item 13, the user is +asked if the archives should be updated. Since the user made no changes, the +answer `no' is made. (The user could have answered `yes' with no disastrous +effects, but knew that nothing had been updated). Finally, on item 14, the +user indicates that the +bbl/arc subfolder should be killed, by answering +`yes'. + +.ti -.5i +\fBArchive non\-recent material\fR +.br +Do this by running \fIbbl\fR. +An example of this might be: +.sp +.nf +\01 % bbl hacks +\02 [ Working folder is +bbl, Archive folder is +bbl/arc ] +\03 [ Type CTRL\-D to finish ] +\04 % scan +.ta \w'\05 'u +\w'20 'u +\w'10/14 'u +\w'1345-PDT 'u +\w'GFISHER@UCI-20B 'u +\05 11 10/12 1905-PST Marshall Rose New MMail/BBck +\06 12 10/12 1916-PST Stephen Willson PATH, nfinger, and ls +\07 13 10/12 2329-PDT G@UCI-20A 833-5122 hours +\08 14 10/13 1045-PDT MELLON@UCI-20B Reporting line +\09 15 10/13 1112-PST Tim Shimeall Re: 833-5122 hours +\10 16 10/13 1045-PDT MELLON@UCI-20B Reporting line +\11 17 10/13 2042-PST Dana Roode Ucifinger +\12 18 10/13 2045-PST Dana Roode Files in /usr/restores +\13 19 10/14 1028-PDT WILLSON@UCI-20B Re: term no pause +\14 20 10/14 1345-PDT Martin Katz Re: term no pause +\15 21 10/14 1707-PDT SCRIBE@UCI-20A Scribe Use +\16 22 10/14 2144-PDT GFISHER@UCI-20B New Twemacs +\17 23 10/15 1227-PDT Rob Rittenhouse Re: New Twemacs +.re +\18 % file +bbl/arc \-src +bbl 11\-12 17\-20 21 +\19 % ^D +\20 Incorporate changes? y +\21 Remove +bbl? y +\22 Update archives? y +\23 Remove +bbl/arc? y +\24 [+inbox now current] +\25 % +.fi +.sp +The important command given is in item 18, in which the user \fIfiles\fR +some messages from +bbl into +bbl/arc. When CTRL\-D is typed, the user +directs \fIbbl\fR +to update both the BBoard and its archives, which does the proper action. +As an alternate to this scenario, +some creative \fIBBleaders\fR might use the \fIpick\fR command to do all of +the work: + +.in +.5i +.nf +pick \-sequence select \-before \-12 \-datefield BB-Posted \-zero +pick \-sequence select \-before \-20 \-nozero +scan select +refile select +bbl/arc +.fi +.in -.5i + +In order to facilitate the use of automation shell scripts, +if the standard input for \fIbbl\fR is \fInot\fR a tty, +then \fIbbl\fR will not ask any questions and will proceed as if +the user's answer was \*(lqyes\*(rq for all questions. +Hence, \fIbbl\fR may be run under \fIcron\fR\0(8) to provide for +automatic archiving. +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^incproc:~^Program to incorporate a mail drop into a folder +.Ps +^packproc:~^Program to pack a folder into a msgbox +.Ps +^rmfproc:~^Program to remove a folder +.Sa +bbc(1), bbleader(1), bboards(1) +.De +`+folder' defaults to \*(lqbbl\*(rq +.Ds +`\-nofile' +.Ds +`\-shell' defaults to \fB$SHELL\fR or your login shell +.Co +None +.Hi +In the early days of the UCI BBoards facility, +\fIBBleaders\fR actually used to run this program by hand. +Now, this \fIbbl\fR is often run automatically by the system to perform +automatic archiving. +.Bu +Note that \fIbbl\fR executes a lot of \fIMH\fR +commands, and as such, each of these commands can and will read +your \fI\&.mh\(ruprofile\fR for defaults. +Please read the \fBBUGS\fR section of \fImh\-profile\fR\0(5) +for some hints to help you avoid many silly problems. + +Also, \fIbbl\fR is unforgiving in doing exactly what it is told, +so take special care in answering \fIbbl\fR's questions. +.En diff --git a/docs/historical/mh-6.8.5/doc/bbleader.me b/docs/historical/mh-6.8.5/doc/bbleader.me new file mode 100644 index 0000000..f3e9af0 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bbleader.me @@ -0,0 +1,105 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bbleader.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC BBLEADER 1 +.NA +BBleader \- responsiblities of an MH BBoard-leader +.SY +bbl +bboard +\%[+folder] +\%[\-shell\ shell] +\%[\-verbose] +\%[\-help] +.DE +What follows is a description of the responsibilities of a BBleader. +This is a working collection of facts: +there are no simple or elegant rules. +In the discussion that follows, +substitute in the name of your BBoard wherever you see the ficticious +name ``hacks''. + +.in +.5i +.ti -.5i +\fBPreliminary Maintenance\fR +.br +When you are appointed a BBleader by the person who is acting as the +\fIPostMaster\fR you should first make sure that +the four addresses associated with your BBoard are correct +(see \fIbboards\fR\0(1)). +To check this, try \*(lqbbc -topics -verbose hacks\*(rq. +You should be listed under local leader(s), and the BBoard addresses should +be correct. + +.ti -.5i +\fBPeriodic Maintenance\fR +.br +There are three functions that you should perform periodically: +.in +.75i +.br +.ti -.5i +\fBRead the BBoard\fR\0: +If you're a BBoard leader you should be keeping up on what's going on. +.br +.ti -.5i +\fBRemove inappropriate material\fR\0: +If offsensive or otherwise non-sensical material shows up, +or if a duplicate message appears, +use the \fIBBl\fR program, delete the offending messages from the folder. +.br +.ti -.5i +\fBArchive non-recent material\fR\0: +The archive facility has been upgraded to be almost fully automated. +BBoards with the Auto-Archive flag set will have old material automatically +placed in the archive area once a week. You may also archive material +yourself if you like, or if your BBoard is not set to Auto-Archive. +Just file messages in the folder ``+bbl'' into the folder ``+bbl/arc'' +You should archive material whenever it takes a long time to read in a +BBoard using \fIbbc\fR and \fImsh\fR. +The only exception to this is (possibly) the \fBap-news\fR and +\fBny-times\fR BBoards, +in which case non-recent material is usually deleted, +and an archive is not kept. +.in -.75i + +.ti -.5i +\fBSporadic Maintenance\fR +.br +As a BBoard leader +there are three groups of people that you will be required to deal with: +.in +.75i +.br +.ti -.5i +\fBBBoard users\fR\0: +Correspondence from BBoard users is usually addressed to +\fBlocal\-hacks\-request\fR. +Although the nature of such correspondence varies, +the most usual topic is how to get access to archives for the BBoard. +In such cases, if the archives are on-line in the ~bboards/archive/ area, +then you should refer the BBoard user to the appropriate files. +If not, then you should contact the \fIPostMaster\fR and ask +for archive retrieval. +Archives may be accessed through the normal +\fIbbc\fR and \fImsh\fR programs, using the `\-archive' switch to \fIbbc\fR. +.br +.ti -.5i +\fBBBoard leaders\fR\0: +You may have to correspond with the people who maintain the +\fBInternet\fR mailing list for the BBoard. +Their address is \fBhacks\-request\fR. +.br +.ti -.5i +\fBPostOffice personnel\fR\0: +You may need help or advice. The address to turn to is \fIPostMaster\fR. +.in -.75i +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +bboards(1), bbc(1), bbl(1), msh(1) +.De +The default bboard is \*(lqsystem\*(rq +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/bboards.me b/docs/historical/mh-6.8.5/doc/bboards.me new file mode 100644 index 0000000..bea653b --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bboards.me @@ -0,0 +1,89 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bboards.rf,v 1.6 1994/04/15 23:10:56 jromine Exp $ +.SC BBOARDS 1 +.NA +bboards \- the UCI BBoards facility +.SY +bbc +\%[\-check] +\%[\-read] +bboards ... +\%[\-help] +.DE +The home directory of \fIbboards\fR is where the BBoard system is kept. +This documentation describes some of the nuances of the BBoard system. + +Note that if your system is configured to use the Network News +Transfer Protocol (\fBNNTP\fP) to read BBoards, +then there is no local bboards setup; instead, \fIbbc\fP +opens an \fBNNTP\fP connection to the local server. + +.in +.5i +.ti -.5i +\fBBBoards, BBoard\-IDs\fR +.br +A BBoard is just a file containing a group of messages relating to the same +topic. +These files live in the ~bboards home directory. +Each message in a BBoard file has in its header the line +\*(lqBBoard-Id: n\*(rq, +where \*(lqn\*(rq is an ascending decimal number. +This id-number is unique for each message in a BBoards file. +It should NOT be confused with the message number of a message, +which can change as messages are removed from the BBoard. + +.ti -.5i +\fBBBoard Handling\fR +.br +To read BBoards, use the \fIbbc\fR and \fImsh\fR programs. +The \fImsh\fR command is a monolithic program which contains all the +functionality of \fIMH\fR in a single program. +The `\-check' switch to \fIbbc\fR lets you check on the status of BBoards, +and the `\-read' switch tells \fIbbc\fR to invoke \fImsh\fR to read +those BBoards. + +.ti -.5i +\fBCreating a BBoard\fR +.br +Both public, and private BBoards are supported. +Contact the mail address \fIPostMaster\fR if you'd like to have a BBoard +created. + +.ti -.5i +\fBBBoard addresses\fR +.br +Each BBoard has associated with it 4 addresses, +these are (for the ficticious BBoard called ``hacks''): +.in +.75i +.br +.ti -.5i +\fBhacks\fR\0: The Internet wide distribution list. +.br +.ti -.5i +\fBdist-hacks\fR\0: The local BBoard. +.br +.ti -.5i +\fBhacks-request\fR\0: +The people responsible for the BBoard at the Internet level. +.br +.ti -.5i +\fBlocal-hacks-request\fR\0: +The people responsible for the BBoard locally. +.in -.75i +.in -.5i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$HOME/\&.bbrc~^BBoard information +.Pr +^Path:~^To determine the user's MH directory +.Ps +^bboards:~^To specify interesting BBoards +.Ps +^mshproc:~^Program to read a given BBoard +.Sa +bbc(1), bbl(1), bbleader(1), msh(1) +.De +The default bboard is \*(lqsystem\*(rq +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/bboards5.me b/docs/historical/mh-6.8.5/doc/bboards5.me new file mode 100644 index 0000000..4e0cac5 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bboards5.me @@ -0,0 +1,51 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bboards5.rf,v 1.5 90/04/05 15:11:49 sources Exp $ +.SC BBOARDS 5 +.NA +BBoards \- BBoards database +.SY +/usr/spool/bboards/BBoards +.DE +The BBoards database +contains for each BBoard the following information: + +.nf +.ta \w'encrypted password 'u +\fIfield\fR \fIvalue\fR +name the name of the BBoard +aliases local aliases for the BBoard + (separated by commas) +primary file the .mbox file +encrypted password leadership password +leaders local list maintainers (separated by commas) + usernames from the \fIpasswd\fR\0(5) file, + or groupnames preceded by `=' from the + \fIgroup\fR\0(5) file +network address the list address +request address the list maintainer's address +relay the host acting as relay for the local domain +distribution sites (separated by commas) +flags special flags (see ) +.re +.fi + +This is an ASCII file. Each field within each BBoard's entry +is separated from the next by a colon. +Each BBoard entry is separated from the next by a new-line. +If the password field is null, no password is demanded; +if it contains a single asterisk, then no password is valid. + +This file resides in the home directory of the login \*(lqbboards\*(rq. +Because of the encrypted passwords, +it can and does have general read permission. +.Fi +^/usr/spool/bboards/BBoards~^BBoards database +.Sa +bbaka(8), bbexp(8), bboards (8), bbtar(8) +.Bu +A binary indexed file format should be available for fast access. + +Appropriate precautions must be taken to lock the file against changes +if it is to be edited with a text editor. +A \fIvibb\fR program is needed. +.En diff --git a/docs/historical/mh-6.8.5/doc/bboards8.me b/docs/historical/mh-6.8.5/doc/bboards8.me new file mode 100644 index 0000000..0f02d9c --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bboards8.me @@ -0,0 +1,46 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bboards8.rf,v 1.5 90/04/05 15:11:57 sources Exp $ +.SC BBOARDS 8 +.NA +bboards \- BBoards channel/mailer +.SY +/usr/mmdf/chans/bboards +fd1 fd2 \%[y] + +.ti .5i +/opt/mh-6.8.5/lib/sbboards +bboard\ ... + +.ti .5i +/opt/mh-6.8.5/lib/sbboards +file maildrop directory bboards.bboard +.DE +For \fIMMDF\fR, the BBoards channel delivers mail to the BBoards system. +For \fISendMail\fR and stand\-alone \fIMH\fR, the SBBoards mailer performs +this task. + +For each address given, +these programs consult the \fIbboards\fR\0(5) file to ascertain information +about the BBoard named by the address. +The programs then perform local delivery, if appropriate. +After that, +with the exception of \fIsbboards\fR running under stand\-alone \fIMH\fR, +the programs perform redistribution, if appropriate. + +For redistribution, +the return address is set to be the request address at the local host, +so bad addresses down the line return to the nearest point of authority. +If any failures occur during redistribution, +a mail message is sent to the local request address. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^/usr/spool/bboards/BBoards~^BBoards database +.Pr +None +.Sa +bboards(5), bbaka(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/bbtar.me b/docs/historical/mh-6.8.5/doc/bbtar.me new file mode 100644 index 0000000..57c17d5 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/bbtar.me @@ -0,0 +1,46 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: bbtar.rf,v 1.5 90/04/05 15:12:03 sources Exp $ +.SC BBTAR 8 +.NA +bbtar \- generate the names of archive files to be put to tape +.SY +/usr/spool/bboards/bbtar +\%[private] \%[public] +.DE +The \fIbbtar\fR program reads the BBoards database and produces on its +standard output the names of BBoards archives which should be put to tape, +for direct use in a \fItar\fR\0(1) command. + +If the argument `private' is given, +only private BBoards are considered. +If the argument `public' is given, +only public BBoards are considered. +This lets the BBoards administrator write two tapes, +one for general read\-access (the public BBoards), +and one for restricted access. +The default is all BBoards + +For example: + +.nf +.in +.5i +cd archive # change to the archive directory +tar cv `bbtar private` # save all private BBoard archives +.in -.5i +.fi + +After the archives have been saved to tape, +they are usually removed. +The archives are then filled again, +usually automatically by cron jobs which run \fIbbexp\fR\0(8). +.Fi +^/usr/spool/bboards/BBoards~^BBoards database +.Pr +None +.Sa +bboards(5), bbexp(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/burst.me b/docs/historical/mh-6.8.5/doc/burst.me new file mode 100644 index 0000000..db24629 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/burst.me @@ -0,0 +1,101 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: burst.rf,v 1.5 90/04/05 15:12:10 sources Exp $ +.SC BURST 1 +.NA +burst \- explode digests into messages +.SY +burst +\%[+folder] \%[msgs] +\%[\-inplace] \%[\-noinplace] +\%[\-quiet] \%[\-noquiet] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +.DE +\fIBurst\fR considers the specified messages in the named folder to be +Internet digests, and explodes them in that folder. + +If `\-inplace' is given, +each digest is replaced by the \*(lqtable of contents\*(rq for the digest +(the original digest is removed). +\fIBurst\fR then renumbers all of the messages following the digest in the +folder to make room for each of the messages contained within the digest. +These messages are placed immediately after the digest. + +If `\-noinplace' is given, +each digest is preserved, +no table of contents is produced, +and the messages contained within the digest are placed at the end of +the folder. +Other messages are not tampered with in any way. + +The `\-quiet' switch directs \fIburst\fR to be silent about reporting +messages that are not in digest format. + +The `\-verbose' switch directs \fIburst\fR to tell the user the general +actions that it is taking to explode the digest. + +It turns out that \fIburst\fR works equally well on forwarded messages and +blind\-carbon\-copies as on Internet digests, +provided that the former two were generated by \fIforw\fR or \fIsend\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Msg\-Protect:~^To set mode when creating a new message +.Sa +\fIProposed Standard for Message Encapsulation\fR (aka RFC\-934), +.br +inc(1), msh(1), pack(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noinplace' +.Ds +`\-noquiet' +.Ds +`\-noverbose' +.Co +If a folder is given, it will become the current folder. +If `\-inplace' is given, +then the first message burst becomes the current message. +This leaves the context ready for a \fIshow\fR of the table of contents +of the digest, and a \fInext\fR to see the first message of the digest. +If `\-noinplace' is given, +then the first message extracted from the first digest burst becomes the +current message. +This leaves the context in a similar, but not identical, +state to the context achieved when using `\-inplace'. +.Bu +The \fIburst\fR program enforces a limit on the number of messages which may +be \fIburst\fR from a single message. +This number is on the order of 1000 messages. +There is usually no limit on the number of messages which may reside in the +folder after the \fIburst\fRing. + +Although \fIburst\fR uses a sophisticated algorithm to determine where one +encapsulated message ends and another begins, +not all digestifying programs use an encapsulation algorithm. +In degenerate cases, +this usually results in \fIburst\fR finding an encapsulation boundary +prematurely and splitting a single encapsulated message into two or more +messages. +These erroneous digestifying programs should be fixed. + +Furthermore, +any text which appears after the last encapsulated message is not placed +in a seperate message by \fIburst\fR. +In the case of digestified messages, +this text is usally an \*(lqEnd of digest\*(rq string. +As a result of this possibly un\-friendly behavior on the part of \fIburst\fR, +note that when the `\-inplace' option is used, +this trailing information is lost. +In practice, +this is not a problem since correspondents usually place remarks in text +prior to the first encapsulated message, +and this information is not lost. +.En diff --git a/docs/historical/mh-6.8.5/doc/comp.me b/docs/historical/mh-6.8.5/doc/comp.me new file mode 100644 index 0000000..fa5a57d --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/comp.me @@ -0,0 +1,116 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: comp.rf,v 1.6 1990/12/17 16:29:30 mh Exp $ +.SC COMP 1 +.NA +comp \- compose a message +.SY +comp +\%[+folder] \%[msg] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-file\ file] +\%[\-form\ formfile] +\%[\-use] \%[\-nouse] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIComp\fR is used to create a new message to be mailed. +It copies a message form to +the draft being composed and then invokes an editor on the draft +(unless `\-noedit' is given, in which case the initial edit is suppressed). + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so /opt/mh-6.8.5/lib/components +.ec +.in -.5i +.fi + +If the file named \*(lqcomponents\*(rq exists in the user's MH directory, +it will be used instead of this form. +The file specified by `\-form\ formfile' will be used if given. +You may also start \fIcomp\fR using the contents of an existing +message as the form. +If you supply either a `+folder' or `msg' argument, that message will be used +as the form. You may not supply both a `\-form\ formfile' and a `+folder' or +\&`msg' argument. +The line of dashes +or a blank line must be left between the header and the +body of the message for the message to be identified properly when it is +sent (see \fIsend\fR\0(1)). +The switch `\-use' directs \fIcomp\fR to +continue editing an already started message. +That is, if a +\fIcomp\fR (or \fIdist\fR, \fIrepl\fR, or \fIforw\fR\0) is terminated without +sending the draft, the draft can be edited again via +\*(lqcomp\ \-use\*(rq. + +If the draft already exists, \fIcomp\fR will ask +you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIcomp\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with the appropriate form; +\fBlist\fR will display the draft; +\fBuse\fR will use the draft for further composition; +and \fBrefile\ +folder\fR will +file the draft in the given folder, and give you a new draft with the +appropriate form. +(The `+folder' argument to \fBrefile\fR is required.) + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +The `\-file\ file' switch says to use the named file as the message draft. + +The `\-editor\ editor' switch indicates the editor to +use for the initial edit. +Upon exiting from the editor, +\fIcomp\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^/opt/mh-6.8.5/lib/components~^The message skeleton +^or /components~^Rather than the standard skeleton +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +dist(1), forw(1), repl(1), send(1), whatnow(1), mh-profile(5) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to the current message +.Ds +`\-nodraftfolder' +.Ds +`\-nouse' +.Co +None +.Bu +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIcomp\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIcomp\fR won't run it. +.En diff --git a/docs/historical/mh-6.8.5/doc/conflict.me b/docs/historical/mh-6.8.5/doc/conflict.me new file mode 100644 index 0000000..8071522 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/conflict.me @@ -0,0 +1,51 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: conflict.rf,v 1.5 90/04/05 15:12:24 sources Exp $ +.SC CONFLICT 8 +.NA +conflict \- search for alias/password conflicts +.SY +/opt/mh-6.8.5/lib/conflict +\%[\-mail\ name] +\%[\-search\ directory] +\%[aliasfiles...] +\%[\-help] +.DE +\fIConflict\fR is a program that checks to see if the interface between +\fIMH\fR and transport system is in good shape + +\fIConflict\fR +also checks for maildrops in /var/spool/mail which do not belong +to a valid user. +It assumes that no user name will start with `.', +and thus ignores files in /var/spool/mail which begin with `.'. +It also checks for entries in the \fIgroup\fR\0(5) +file which do not belong to a valid user, +and for users who do not have a valid group number. +In addition duplicate users and groups are noted. + +If the `\-mail\ name' switch is used, +then the results will be sent to the specified \fIname\fR. +Otherwise, the results are sent to the standard output. + +The `\-search\ directory' switch can be used to search directories +other than /var/spool/mail and to report anomalies in those directories. +The `\-search\ directory' switch can appear more than one time in an +invocation to \fIconflict\fR. + +\fIConflict\fR should be run under \fIcron\fR\0(8), +or whenever system accounting takes place. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^/etc/passwd~^List of users +^/etc/group~^List of groups +^/opt/mh-6.8.5/bin/mhmail~^Program to send mail +^/var/spool/mail/~^Directory of mail drop +.Pr +None +.Sa +mh\-alias(5) +.De +`aliasfiles' defaults to /opt/mh-6.8.5/lib/MailAliases +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/dist.me b/docs/historical/mh-6.8.5/doc/dist.me new file mode 100644 index 0000000..a8ec22d --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/dist.me @@ -0,0 +1,147 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: dist.rf,v 1.5 90/04/05 15:12:30 sources Exp $ +.SC DIST 1 +.NA +dist \- redistribute a message to additional addresses +.SY +dist +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-form\ formfile] +\%[\-inplace] \%[\-noinplace] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIDist\fR is similar to \fIforw\fR. +It prepares the specified +message for redistribution to addresses that (presumably) are +not on the original address list. + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so /opt/mh-6.8.5/lib/distcomps +.ec +.in -.5i +.fi + +If the file named \*(lqdistcomps\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-form\ formfile' will be +used if given. +The form used will be prepended to the message being resent. + +If the draft already exists, +\fIdist\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIdist\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +Only those addresses in \*(lqResent\-To:\*(rq, \*(lqResent\-cc:\*(rq, and +\*(lqResent\-Bcc:\*(rq will be sent. +Also, a \*(lqResent\-Fcc:\ folder\*(rq will be honored (see \fIsend\fR\0(1)). +Note that with \fIdist\fR, the draft should contain only +\*(lqResent\-xxx:\*(rq fields and no body. +The headers and the body of the original message are copied to the draft when +the message is sent. +Use care in constructing the headers for the redistribution. + +If the `\-annotate' switch is given, the message being +distributed will be annotated with the lines: + + Resent:\ date + Resent:\ addrs + +where each address list contains as many lines as required. +This annotation +will be done only if the message is sent directly from \fIdist\fR. +If the message is not sent immediately from \fIdist\fR, +\*(lqcomp \-use\*(rq may be used to re\-edit and send the constructed message, +but the annotations won't take place. +The '\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. +Note that while in the editor, +the message being resent is available through a link named \*(lq@\*(rq +(assuming the default \fIwhatnowproc\fR\0). +In addition, the actual pathname of the message is stored in the envariable +\fB$editalt\fR, +and the pathname of the folder containing the message is stored in the +envariable \fB$mhfolder\fR. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIdist\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^/opt/mh-6.8.5/lib/distcomps~^The message skeleton +^or /distcomps~^Rather than the standard skeleton +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^fileproc:~^Program to refile the message +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +comp(1), forw(1), repl(1), send(1), whatnow(1) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to cur +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noinplace' +.Co +If a folder is given, it will become the current folder. +The message distributed will become the current message. +.Hi +\fIDist\fR originally used headers of the form \*(lqDistribute\-xxx:\*(rq +instead of \*(lqResent\-xxx:\*(rq. In order to conform with the +ARPA Internet standard, RFC\-822, +the \*(lqResent\-xxx:\*(rq form is now used. +\fIDist\fR will recognize \*(lqDistribute\-xxx:\*(rq type headers and +automatically convert them to \*(lqResent\-xxx:\*(rq. +.Bu +\fIDist\fR does not \fIrigorously\fR check the message being +distributed for adherence to the transport standard, +but \fIpost\fR called by \fIsend\fR does. +The \fIpost\fR program will balk (and rightly so) at poorly formatted messages, +and \fIdist\fR won't correct things for you. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIdist\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIdist\fR won't run it. + +If your current working directory is not writable, +the link named \*(lq@\*(rq is not available. +.En diff --git a/docs/historical/mh-6.8.5/doc/dp.me b/docs/historical/mh-6.8.5/doc/dp.me new file mode 100644 index 0000000..7808ebf --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/dp.me @@ -0,0 +1,61 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: dp.rf,v 1.7 1992/05/12 22:23:34 jromine Exp $ +.SC DP 8 +.NA +dp \- parse dates 822-style +.SY +/opt/mh-6.8.5/lib/dp +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +dates\ ... +\%[\-help] +.DE +\fIDp\fR is a program that parses dates according to the ARPA Internet +standard. +It also understands many non\-standard formats, +such as those produced by TOPS\-20 sites and some UNIX sites using +\fIctime\fR\0(3). +It is useful for seeing how \fIMH\fR will interpret a date. + +The \fIdp\fR program treats each argument as a single date, +and prints the date out in the official 822\-format. +Hence, it is usually best to enclose each argument in double\-quotes for the +shell. + +To override the output format used by \fIdp\fR, +the `\-format\ string' or `\-format\ file' switches are used. +This permits individual fields of the address to be extracted with ease. +The string is simply a format stringand thefile is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +Here is the default format string used by \fIdp\fR: + +.nf +.ti +.5i +%<(nodate{text})error: %{text}%|%(putstr(pretty{text}))%> +.fi + +which says that if an error was detected, print the error, a `:', +and the date in error. +Otherwise, output the 822\-proper format of the date. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +None +.Sa +ap(8) +.br +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +`\-format' default as described above +.Ds +`\-width' default to the width of the terminal +.Co +None +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIdp\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En diff --git a/docs/historical/mh-6.8.5/doc/fmtdump.me b/docs/historical/mh-6.8.5/doc/fmtdump.me new file mode 100644 index 0000000..9e7e449 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/fmtdump.me @@ -0,0 +1,32 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: fmtdump.rf,v 1.6 1992/12/02 21:38:37 jromine Exp $ +.SC FMTDUMP 8 +.NA +fmtdump \- decode MH format files +.SY +/opt/mh-6.8.5/lib/fmtdump +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-help] +.DE +\fIFmtdump\fR is a program that parses an \fIMH\fP format file +and produces a pseudo-language listing of the how \fIMH\fP +interprets the file. + +The `\-format\ string' and `\-form\ formatfile' switches may be used +to specify a format string or format file to read. +The string is simply a format string and the file is simply a format file. +See \fImh-format\fR\|(5) for the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/opt/mh-6.8.5/lib/scan.default~^The default format file +.Pr +^Path:~^To determine the user's MH directory +.Sa +mh-format(5), mh-sequences(8) +.Co +None +.Bu +The output may not be useful unless you are familiar +with the internals of the mh-format subroutines. +.En diff --git a/docs/historical/mh-6.8.5/doc/folder.me b/docs/historical/mh-6.8.5/doc/folder.me new file mode 100644 index 0000000..03ea106 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/folder.me @@ -0,0 +1,210 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: folder.rf,v 1.15 1993/08/27 18:13:47 jromine Exp $ +.SC FOLDER 1 +.NA +folder, folders \- set/list current folder/message +.SY +folder +\%[+folder] \%[msg] +\%[\-all] +\%[\-create] \%[\-nocreate] +\%[\-print] +.\" \%[\-noprint] +\%[\-fast] \%[\-nofast] +\%[\-header] \%[\-noheader] +\%[\-recurse] \%[\-norecurse] +\%[\-total] \%[\-nototal] +\%[\-list] \%[\-nolist] +\%[\-push] \%[\-pop] +\%[\-pack] \%[\-nopack] +\%[\-verbose] \%[\-noverbose] +\%[\-help] + +.ti .5i +folders +.DE +Since the \fIMH\fR environment is the shell, it is easy to lose +track of the current folder from day to day. +When \fIfolder\fR is given the `\-print' switch (the default), +\fIfolder\fR will +list the current folder, the number of messages in it, the +range of the messages (low\-high), and the current message within +the folder, and will flag extra files if they exist. +An example of this summary is: + +.nf +.if t .in +.5i +.ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u +inbox+ has \016 messages (\0\03\-\022); cur=\0\05. +.re +.if t .in -.5i +.fi + +If a `+folder' and/or `msg' are specified, they will +become the current folder and/or message. +By comparison, +when a `+folder' argument is given, +this corresponds to a \*(lqcd\*(rq operation in the \fIshell\fR; +when no `+folder' argument is given, +this corresponds roughly to a \*(lqpwd\*(rq operation in the \fIshell\fR. + +If the specified (or default) folder doesn't exist, +the default action is to query the user +as to whether the folder should be created; +when standard input is not a tty, the answer to +the query is assumed to be \*(lqyes\*(rq. + +Specifying `\-create' will cause \fIfolder\fP to create +new folders without any query. +(This is the easy way to create an empty folder for use later.) +Specifying `\-nocreate' will +cause \fIfolder\fP to exit without creating a non-existant folder. +.\" +.\" note - this doesn't work at present +.\" If `\-noprint' is specified, +.\" a `+folder' and/or `msg' may still be specified +.\" to set the current folder and/or message, +.\" but the folder summary will not be printed. +.Uh "Multiple Folders" +Specifying `\-all' +will produce a summary line for each top-level +folder in the user's MH directory, sorted alphabetically. +(If \fIfolder\fR +is invoked by a name ending with \*(lqs\*(rq (e.g., \fIfolders\fR\0), +`\-all' is assumed). +Specifying `\-recurse' with `\-all' will also +produce a line for all sub-folders. +These folders are all preceded by the read\-only folders, +which occur as \*(lqatr\-cur\-\*(rq entries in the user's \fIMH\fR context. +For example, + +.ne 9 +.nf +.if t .in +.5i +.ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u +Folder \0\0\0# of messages (\0range\0) cur msg (other files) +/fsd/rs/m/tacc has \035 messages (\0\01\-\035); cur=\023. +/rnd/phyl/Mail/EP has \082 messages (\0\01\-108); cur=\082. +ff has \0no messages. +inbox+ has \016 messages (\0\03\-\022); cur=\0\05. +mh has \076 messages (\0\01\-\076); cur=\070. +notes has \0\02 messages (\0\01\-\0\02); cur=\0\01. +ucom has 124 messages (\0\01\-124); cur=\0\06; (others). +.ta \w'/rnd/phyl/Mail/EP has 'u +\0\0\0\0\0\0\0\0\0\0TOTAL= 339 messages in 7 folders +.re +.if t .in -.5i +.fi + +The \*(lq+\*(rq after inbox indicates that it is the current folder. +The \*(lq(others)\*(rq indicates that the folder `ucom' has files +which aren't messages. +These files may either be sub\-folders, +or files that don't belong under the MH file naming scheme. + +The header is output if either a `\-all' or a `\-header' switch +is specified; it is suppressed by `\-noheader'. +A `\-total' switch will produce only the +summary line. + +If `\-fast' is given, only the folder name (or names in the +case of `\-all') will be listed. +(This is faster because the +folders need not be read.) + +If a `+folder' +is given along with the `\-all' switch, +\fIfolder\fR will, +in addition to setting the current folder, +list the top\-level folders for the current folder (with `\-norecurse') +or list all sub-folders under the current folder recursively (with `\-recurse'). +In this case, if a `msg' is also supplied, +it will become the current message of `+folder'. + +The `\-recurse' switch lists each folder recursively, so +use of this option effectively defeats the speed enhancement of the `\-fast' +option, +since each folder must be searched for subfolders. +Nevertheless, the combination of these options is useful. + +.Uh "Compacting a Folder" +The `\-pack' switch will compress the message names in the +designated folders, removing holes in message numbering. +The `\-verbose' switch directs \fIfolder\fR to tell the user the general +actions that it is taking to compress the folder. + +.Uh "The Folder Stack" +The `\-push' switch directs \fIfolder\fR to push the current folder onto the +\fIfolder\-stack\fR, +and make the `+folder' argument the current folder. +If `+folder' is not given, +the current folder and the top of the \fIfolder\-stack\fR are exchanged. +This corresponds to the \*(lqpushd\*(rq operation in the \fICShell\fR. + +The `\-pop' switch directs \fIfolder\fR to discard the top of the +\fIfolder\-stack\fR, +after setting the current folder to that value. +No `+folder' argument is allowed. +This corresponds to the \*(lqpopd\*(rq operation in the \fICShell\fR. +The `\-push' switch and the `\-pop' switch are mutually exclusive: +the last occurrence of either one overrides any previous occurrence of the +other. Both of these switches also set `\-list' by default. + +The `\-list' switch directs \fIfolder\fR to list the contents of the +\fIfolder\-stack\fR. +No `+folder' argument is allowed. +After a successful `\-push' or `\-pop', the `\-list' action is taken, +unless a `\-nolist' switch follows them on the command line. +This corresponds to the \*(lqdirs\*(rq operation in the \fICShell\fR. +The `\-push', `\-pop', and `\-list' switches turn +off `\-print'. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Folder\-Stack:~^To determine the folder stack +.\" .Ps +.\" ^lsproc:~^Program to list the contents of a folder +.Sa +refile(1), mhpath(1) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to none +.Ds +`\-nofast' +.Ds +`\-noheader' +.Ds +`\-nototal' +.Ds +`\-nopack' +.Ds +`\-norecurse' +.Ds +`\-noverbose' +.Ds +`\-print' is the default if no `\-list', `\-push', or `\-pop' is specified +.Ds +`\-list' is the default if `\-push', or `\-pop' is specified +.Co +If `+folder' and/or `msg' are given, they will become the +current folder and/or message. +.Hi +In previous versions of \fIMH\fR, +the `\-fast' switch prevented context changes from +occurring for the current folder. +This is no longer the case: if `+folder' is given, +then \fIfolder\fR will always change the current folder to that. +.Bu +`\-all' forces `\-header' and `\-total'. +.sp +There is no way to restore the default behavior +(to ask the user whether to create a non-existant folder) +after `\-create' or `\-nocreate' is given. +.En diff --git a/docs/historical/mh-6.8.5/doc/forw.me b/docs/historical/mh-6.8.5/doc/forw.me new file mode 100644 index 0000000..e3510dc --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/forw.me @@ -0,0 +1,271 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: forw.rf,v 1.11 1992/10/16 21:36:02 jromine Exp $ +.SC FORW 1 +.NA +forw \- forward messages +.SY +forw +\%[+folder] \%[msgs] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +\%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +\%[\-mime] \%[\-nomime] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +forw +\%[+folder] \%[msgs] +\%[\-digest\ list] \%[\-issue\ number] \%[\-volume\ number] +\%[other\ switches\ for\ \fIforw\fR] +\%[\-help] +.DE +\fIForw\fR may be used to prepare a message containing other +messages. +It constructs the new message from the components file +or `\-form\ formfile' (see \fIcomp\fR\0), with a body composed of the +message(s) to be forwarded. +An editor is invoked as in \fIcomp\fR, +and after editing is complete, the user is prompted before the message +is sent. + +The default message form contains the following elements: + +.nf +.in +.5i +.ne 10 +.eo +.so /opt/mh-6.8.5/lib/forwcomps +.ec +.in -.5i +.fi + +If the file named \*(lqforwcomps\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-form\ formfile' will be +used if given. + +If the draft already exists, +\fIforw\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIforw\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +If the `\-annotate' switch is given, each message being +forwarded will be annotated with the lines + + Forwarded:\ date + Forwarded:\ addrs + +where each address list contains as many lines as required. +This annotation +will be done only if the message is sent directly from \fIforw\fR. +If the message is not sent immediately from \fIforw\fR, +\*(lqcomp\ \-use\*(rq may be used to re\-edit and send the constructed message, +but +the annotations won't take place. +The '\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. + +Although \fIforw\fR uses the `\-form\ formfile' switch to direct it how to +construct the beginning of the draft, the `\-filter\ filterfile', +`\-format', and `\-noformat' +switches direct \fIforw\fR as to how each forwarded message should be +formatted in the body of the draft. +If `\-noformat' is specified, +then each forwarded message is output exactly as it appears. +If `\-format' or `\-filter\ filterfile' is specified, +then each forwarded message is filtered (re\-formatted) prior to being +output to the body of the draft. +The filter file for \fIforw\fR should be a standard form file for +\fImhl\fR, +as \fIforw\fR will invoke \fImhl\fR to format the forwarded messages. +The default message filter (what you get with `\-format') is: + +.nf +.in +.5i +.ne 10 +.eo +.so /opt/mh-6.8.5/lib/mhl.forward +.ec +.in -.5i +.fi + +If the file named \*(lqmhl.forward\*(rq exists in the user's MH directory, +it will be used instead of this form. +In either case, the file specified by `\-filter\ filterfile' will be +used if given. +To summarize: +`\-noformat' will reproduce each forwarded message exactly, +`\-format' will use \fImhl\fR and a default filterfile, \*(lqmhl.forward\*(rq, +to format each forwarded message, and +`\-filter\ filterfile' will use the named filterfile to format each +forwarded message with \fImhl\fR. + +Each forwarded message is separated with an encapsulation delimiter +and +dashes in the first column of the forwarded messages will be prepended +with `\-\ ' so that +when received, the message is suitable for bursting by \fIburst\fR\0(1). +This follows the Internet RFC\-934 guidelines. + +For users of \fIprompter\fR\0(1), by specifying prompter's `-prepend' +switch in the \&.mh\(ruprofile file, any commentary text is entered before +the forwarded messages. (A major win!) + +To use the MIME rules for encapsulation, +specify the `\-mime' switch. +This directs \fIforw\fR to generate an \fImhn\fR composition file. +Note that MH will not invoke \fImhn\fR automatically, +unless you add this line to your \&.mh\(ruprofile file: +.sp +.in +.5i +automhnproc: mhn +.in -.5i +.sp +Otherwise, +you must specifically give the command +.sp +.in +.5i +What now? edit mhn +.in -.5i +.sp +prior to sending the draft. + +To automate this somewhat, +create a link to \fIprompter\fR called \fIrapid\fR +and put these lines in your \&.mh\(ruprofile file: +.sp +.in +.5i +.nf +forw: -editor rapid -mime +rapid: -rapid +rapid-next: mhn +.fi +.in -.5i +.sp +Then, +you can simply do: +.sp +.in +.5i +.nf +\fIforw msgs\fR +To: \fImailbox\fR +cc: +Subject: \fIwhatever\fR + +--------Enter initial text + +\fIblah, blah, blah.\fR + +-------- + +What now? \fIedit\fR +What now? \fIsend\fR +... +.fi +.in -.5i +.sp +The \fIedit\fR command invokes \fImhn\fR automatically. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIforw\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) + +The `\-digest\ list', `\-issue\ number', and `\-volume\ number' switches +implement a digest facility for \fIMH\fR. Specifying these switches +enables and/or overloads the following escapes: +.sp 1 +.nf +.ta \w'Component 'u +\w'Escape 'u +\w'Returns 'u +\fIType\fR \fIEscape\fR \fIReturns\fR \fIDescription\fR +\fIcomponent\fR \fIdigest\fR string Argument to `\-digest' +\fIfunction\fR \fIcur\fR integer Argument to `\-volume' +\fIfunction\fR \fImsg\fR integer Argument to `\-issue' +.re +.fi + +Consult the \fBAdvanced Features\fR section of +the \fIMH\fR User's Manual for more information on making digests. +.Fi +^/opt/mh-6.8.5/lib/forwcomps~^The message skeleton +^or /forwcomps~^Rather than the standard skeleton +^/opt/mh-6.8.5/lib/digestcomps~^The message skeleton if `\-digest' is given +^or /digestcomps~^Rather than the standard skeleton +^/opt/mh-6.8.5/lib/mhl.forward~^The message filter +^or /mhl.forward~^Rather than the standard filter +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^mhlproc:~^Program to filter messages being forwarded +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +\fIProposed Standard for Message Encapsulation\fR (aka RFC\-934), +.br +comp(1), dist(1), repl(1), send(1), whatnow(1), mh\-format(5) +.De +`+folder' defaults to the current folder +`msgs' defaults to cur +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noformat' +.Ds +`\-noinplace' +.Ds +`\-nomime' +.Co +If a folder is given, it will become the current folder. +The first message forwarded will become the current message. +.Bu +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIforw\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIforw\fR won't run it. + +When \fIforw\fR is told to annotate the messages it forwards, +it doesn't actually annotate them until the draft is successfully sent. +If from the \fIwhatnowproc\fR, +you \fIpush\fR instead of \fIsend\fR, +it's possible to confuse \fIforw\fR by re\-ordering the file +(e.g., by using `folder\0\-pack') before the message is successfully sent. +\fIDist\fR and \fIrepl\fR don't have this problem. + +To avoid prepending the leading dash characters in forwarded messages, +there is a `\-nodashmunging' option. See the \*(lqHidden Features\*(rq +section of the \fIMH Administrator's Guide\fR for more details. +.En diff --git a/docs/historical/mh-6.8.5/doc/inc.me b/docs/historical/mh-6.8.5/doc/inc.me new file mode 100644 index 0000000..fb73ac1 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/inc.me @@ -0,0 +1,148 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: inc.rf,v 1.8 1992/02/04 21:41:21 jromine Exp $ +.SC INC 1 +.NA +inc \- incorporate new mail +.SY +inc +\%[+folder] +\%[\-audit\ audit\-file] \%[\-noaudit] +\%[\-changecur] \%[\-nochangecur] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-file\ name] +\%[\-silent] \%[\-nosilent] +\%[\-truncate] \%[\-notruncate] +\%[\-width\ columns] +\%[\-help] +.DE +\fIInc\fR incorporates mail from the user's incoming mail drop +into an \fIMH\fR folder. +If `+folder' isn't specified, +a folder in the user's \fIMH\fR directory will be used, either that +specified by the \*(lqInbox:\*(rq entry in the user's profile, or +the folder named \*(lqinbox\*(rq. +The +new messages being incorporated are assigned numbers starting +with the next highest number in the folder. +If the specified (or default) folder doesn't exist, +the user will be queried prior to its creation. +As the messages are processed, +a \fIscan\fR listing of the new mail is produced. + +If the user's profile contains a \*(lqMsg\-Protect: nnn\*(rq entry, it +will be used as the protection on the newly created messages, +otherwise the \fIMH\fR default of 0644 will be used. +During all operations on messages, +this initially assigned protection will +be preserved for each message, so \fIchmod\fR(1) may be used to set a +protection on an individual message, and its protection will be +preserved thereafter. + +If the switch `\-audit\ audit\-file' is specified (usually as a +default switch in the profile), then \fIinc\fR will append a header +line and a line per message to the end of the specified +audit\-file with the format: + +.nf +.ti 1i +\*(<> date +.ti 1.5i + +.ti 1.5i + +.ti 2.5i + +.fi + +This is useful for keeping track of volume and source of incoming +mail. +Eventually, \fIrepl\fR, \fIforw\fR, \fIcomp\fR, and \fIdist\fR may also +produce audits to this (or another) file, perhaps with +\*(lqMessage\-Id:\*(rq information to keep an exact correspondence history. +\*(lqAudit\-file\*(rq will be in the user's MH directory unless a full +path is specified. + +\fIInc\fR will incorporate even improperly formatted messages into the +user's MH folder, inserting a blank line prior to the offending +component and printing a comment identifying the bad message. + +In all cases, the user's mail drop will be zeroed, +unless the `\-notruncate' switch is given. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIinc\fR will add each of the newly incorporated messages to each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +Note that \fIinc\fR will not zero each sequence prior to adding messages. + +The interpretation of the `\-form\ formatfile', `\-format\ string', +and `\-width\ columns' switches is the same as in \fIscan\fR\0(1). + +By using the `\-file\ name' switch, one can direct \fIinc\fR to incorporate +messages from a file other than the user's maildrop. +Note that the name file will NOT be zeroed, +unless the `\-truncate' switch is given. + +If the envariable \fB$MAILDROP\fR is set, +then \fIinc\fR uses it as the location of the user's maildrop instead of the +default (the `-file\ name' switch still overrides this, however). +If this envariable is not set, +then \fIinc\fR will consult the profile entry \*(lqMailDrop\*(rq for this +information. +If the value found is not absolute, +then it is interpreted relative to the user's \fIMH\fR directory. +If the value is not found, +then \fIinc\fR will look in the standard system location for the user's +maildrop. + +The `\-silent' switch directs \fIinc\fR to be quiet and not ask any questions +at all. +This is useful for putting \fIinc\fR in the background and going on to other +things. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^/var/spool/mail/$USER~^Location of mail drop +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Inbox:~^To determine the inbox, default \*(lqinbox\*(rq +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Msg\-Protect:~^To set mode when creating a new message and audit\-file +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Sa +mhmail(1), scan(1), mh\-mail(5), post(8) +.De +`+folder' defaulted by \*(lqInbox\*(rq above +.Ds +`\-noaudit' +.Ds +`\-changecur' +.Ds +`\-format' defaulted as described above +.Ds +`\-nosilent' +.Ds +`\-truncate' if `\-file\ name' not given, `\-notruncate' otherwise +.Ds +`\-width' defaulted to the width of the terminal +.Co +The folder into which messages are being incorporated will become the +current folder. +The first message incorporated will become the current message, +unless the `\-nochangecur' option is specified. +This leaves the context ready for a \fIshow\fR +of the first new message. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIinc\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En diff --git a/docs/historical/mh-6.8.5/doc/install-mh.me b/docs/historical/mh-6.8.5/doc/install-mh.me new file mode 100644 index 0000000..343088e --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/install-mh.me @@ -0,0 +1,39 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: install-mh.rf,v 1.6 1992/12/02 21:38:49 jromine Exp $ +.SC INSTALL-MH 8 +.NA +install-mh \- initialize the MH environment +.SY +/opt/mh-6.8.5/lib/install\-mh +\%[\-auto] +\%[\-compat] +.DE +When a user runs any \fIMH\fR program for the first time, +the program will invoke \fIinstall\-mh\fR (with the `\-auto' switch) +to query the user for the initial \fIMH\fR environment. +The user does \fBNOT\fR invoke this program directly. +The user is asked for the name of the directory that will be designated +as the user's \fIMH\fR directory. +If this directory does not exist, the user is asked if it should be +created. +Normally, this directory should be under the user's home directory, +and has the default name of Mail/. +After \fIinstall\-mh\fR has written the initial \&.mh\(ruprofile for +the user, +control returns to the original \fIMH\fR program. + +As with all \fIMH\fR commands, +\fIinstall\-mh\fR first consults the \fB$HOME\fR envariable to +determine the user's home directory. +If \fB$HOME\fR is not set, +then the \fI/etc/passwd\fR file is consulted. + +When converting from \fImh.3\fR to \fImh.4\fR, +\fIinstall\-mh\fR is automatically invoked with the `\-compat' switch. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To set the user's MH directory +.Co +With `\-auto', the current folder is changed to \*(lqinbox\*(rq. +.En diff --git a/docs/historical/mh-6.8.5/doc/mark.me b/docs/historical/mh-6.8.5/doc/mark.me new file mode 100644 index 0000000..796e388 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mark.me @@ -0,0 +1,121 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mark.rf,v 1.9 1993/08/20 00:04:30 jromine Exp $ +.SC MARK 1 +.NA +mark \- mark messages +.SY +mark +\%[+folder] \%[msgs] +\%[\-sequence\ name\ ...] +\%[\-add] \%[\-delete] \%[\-list] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] +.DE +The \fImark\fR command manipulates message sequences by adding or +deleting message numbers from folder\-specific message sequences, +or by listing those sequences and messages. +A message sequence is a keyword, just like one of the +\*(lqreserved\*(rq message names, +such as \*(lqfirst\*(rq or \*(lqnext\*(rq. +Unlike the \*(lqreserved\*(rq message names, +which have a fixed semantics on a per\-folder basis, +the semantics of a message sequence may be defined, modified, and +removed by the user. +Message sequences are folder\-specific, e.g., +the sequence name \*(lqseen\*(rq in the context of folder \*(lq+inbox\*(rq +need not have any relation whatsoever to the sequence of the same name +in a folder of a different name. + +Three action switches direct the operation of \fImark\fR. +These switches are mutually exclusive: +the last occurrence of any of them overrides any previous occurrence of the +other two. + +The `\-add' switch tells \fImark\fR to add messages to sequences +or to create a new sequence. +For each sequence named via the `\-sequence\ name' argument +(which must occur at least once) +the messages named via `msgs' +(which defaults to \*(lqcur\*(rq if no `msgs' are given), +are added to the sequence. +The messages to be added need not be absent from the sequence. +If the `\-zero' switch is specified, +the sequence will be emptied prior to adding the messages. +Hence, `\-add\ \-zero' means that each sequence should be initialized +to the indicated messages, +while `\-add\ \-nozero' means that each sequence should be appended to +by the indicated messages. + +The `\-delete' switch tells \fImark\fR to delete messages from +sequences, and is the dual of `\-add'. +For each of the named sequences, +the named messages are removed from the sequence. +These messages need not be already present in the sequence. +If the `\-zero' switch is specified, +then all messages in the folder are appended to the sequence prior to +removing the messages. +Hence, `\-delete\ \-zero' means that each sequence should contain all +messages except those indicated, +while `\-delete\ \-nozero' means that only the indicated messages +should be removed from each sequence. +As expected, the command `mark\0\-sequence\0seen\0\-delete\0all' +deletes the sequence \*(lqseen\*(rq from the current folder. + +When creating (or modifying) a sequence, +the `\-public' switch indicates that the sequence should be made readable +for other \fIMH\fR users. +In contrast, the `\-nopublic' switch indicates that the sequence should be +private to the user's \fIMH\fR environment. + +The `\-list' switch tells \fImark\fR to list both the sequences defined +for the folder and the messages associated with those sequences. +\fIMark\fR will list the name of each sequence given by +`\-sequence\ name' and the messages associated with that sequence. +If `\-sequence' isn't used, all sequences will be listed, +with private sequences being so indicated. +The `\-zero' switch does not affect the operation of `\-list'. + +The current restrictions on sequences are: + +.in +.25i +The name used to denote a message sequence must consist of +an alphabetic character followed by zero or more +alphanumeric characters, and cannot be one of the (reserved) +message names \*(lqnew\*(rq, \*(lqfirst\*(rq, +\*(lqlast\*(rq, \*(lqall\*(rq, \*(lqnext\*(rq, or \*(lqprev\*(rq. + +Only a certain number of sequences may be defined for a given folder. +This number is usually limited to 26 (10 on small systems). + +Message ranges with user\-defined +sequence names are restricted to the form \*(lqname:n\*(rq or +\*(lqname:-n\*(rq, and refer to the first or last `n' messages +of the sequence `name', respectively. +Constructs of the form \*(lqname1\-name2\*(rq are forbidden. +.in -.25i +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +pick (1), mh-sequence (5) +.De +`+folder' defaults to the current folder +.Ds +`\-add' if `\-sequence' is specified, `\-list' otherwise +.Ds +`msgs' defaults to cur (or all if `\-list' is specified) +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-nozero' +.Co +If a folder is given, it will become the current folder. +.Hh +Use \*(lqpick sequence \-list\*(rq +to enumerate the messages in a sequence (such as for use +by a shell script). +.En diff --git a/docs/historical/mh-6.8.5/doc/me2man.sed b/docs/historical/mh-6.8.5/doc/me2man.sed new file mode 100644 index 0000000..48490b3 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/me2man.sed @@ -0,0 +1,10 @@ +/^\.SC/s/^\.SC\(.*\)$/.TH\1 MH.6.8 [mh.6]/ +/^\.NA$/c\ +.SH NAME +/^\.SY$/c\ +.SH SYNOPSIS\ +.in +.5i\ +.ti -.5i +/^\.DE$/c\ +.in -.5i\ +.SH DESCRIPTION diff --git a/docs/historical/mh-6.8.5/doc/mf.me b/docs/historical/mh-6.8.5/doc/mf.me new file mode 100644 index 0000000..1202cda --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mf.me @@ -0,0 +1,60 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mf.rf,v 1.5 90/04/05 15:12:57 sources Exp $ +.SC MF 1 +.NA +muinc, musift, uminc, umsift \- mail filters +.SY +/opt/mh-6.8.5/lib/muinc + +.ti .5i +/opt/mh-6.8.5/lib/musift +\%[files\ ...] + +.ti .5i +/opt/mh-6.8.5/lib/uminc + +.ti .5i +/opt/mh-6.8.5/lib/umsift +\%[files\ ...] +.DE +The mail filters +are a set of programs that filter mail from one format to another. +In particular, \fIUUCP\fR\- and \fIMMDF\fR\-style mail files are handled. + +\fImuinc\fR +filters mail from the user's \fIMMDF\fR maildrop into the user's \fIUUCP\fR +maildrop; +similarly, +\fIuminc\fR +filters mail from the user's \fIUUCP\fR maildrop into the user's \fIMMDF\fR +maildrop. +These two programs respect each system's maildrop locking protocols. + +\fImusift\fR +filters each file on the command line +(or the standard input if no arguments are given), +and places the result on the standard output in \fIUUCP\fR format. +The files (or standard input) are expected to be in \fIMMDF\fR format. +\fIumsift\fR +does the same thing filtering \fIUUCP\fR formatted files (or input), +and places the \fIMMDF\fR formatted result on the standard output. +No locking protocols are used by these programs. + +If the files aren't in the expected format, +the mail filters will try to recover. +In really bad cases, +you may lose big. +.Fi +^/usr/spool/mail/~^UUCP spool area for maildrops +^/var/spool/mail/$USER~^Location of standard maildrop +.Pr +None +.Sa +\fIProposed Standard for Message Header Munging\fR (aka RFC\-886), +.br +inc(1) +.De +.Co +.Bu +Numerous; protocol translation is very difficult. +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-alias.me b/docs/historical/mh-6.8.5/doc/mh-alias.me new file mode 100644 index 0000000..0d58757 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-alias.me @@ -0,0 +1,218 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-alias.rf,v 1.11 1992/12/11 21:44:16 jromine Exp $ +.SC MH-ALIAS 5 +.NA +mh-alias \- alias file for MH message system +.SY +any \fIMH\fR command +.DE +This describes both \fIMH\fR personal alias files and +the (primary) alias file for mail delivery, the file + + /opt/mh-6.8.5/lib/MailAliases + +It does \fBnot\fR describe aliases files used by the message transport system. +Each line of the alias file has the format: + + alias : address\-group +.br +or +.br + alias ; address\-group +.br +or +.br + < alias\-file +.br +or +.br + ; comment +.br + +where: + + address\-group := address\-list +.br + | \*(lq<\*(rq file +.br + | \*(lq=\*(rq UNIX\-group +.br + | \*(lq+\*(rq UNIX\-group +.br + | \*(lq*\*(rq + +.br + address\-list := address +.br + | address\-list, address +.br + +Continuation lines in alias files end with `\\' followed by the newline +character. + +Alias\-file and file are UNIX file names. +UNIX\-group is a group name (or number) from \fI/etc/group\fR. +An address is a \*(lqsimple\*(rq Internet\-style address. +Througout this file, case is ignored, except for alias\-file names. + +If the line starts with a `<', then the file named after the `<' is +read for more alias definitions. The reading is done recursively, so a `<' +may occur in the beginning of an alias file with the expected results. + +If the address\-group starts with a `<', +then the file named after the `<' is read and its contents are added to +the address\-list for the alias. + +If the address\-group starts with an `=', +then the file \fI/etc/group\fR is consulted +for the UNIX\-group named after the `='. +Each login name occurring as a member of the group is added to the +address\-list for the alias. + +In contrast, if the address\-group starts with a `+', +then the file \fI/etc/group\fR is consulted +to determine the group\-id of the UNIX\-group named after the `+'. +Each login name occurring in the \fI/etc/passwd\fR file whose group\-id +is indicated by this group is added to the address\-list for the alias. + +If the address\-group is simply `*', +then the file \fI/etc/passwd\fR is consulted +and all login names with a userid greater than some magic number +(usually 200) are added to the address\-list for the alias. + +In match, a trailing * on an alias will match just about anything appropriate. +(See example below.) + +An approximation of the way aliases are resolved at posting time is +(it's not really done this way): + +.in +.5i +1) Build a list of all addresses from the message to be +delivered, eliminating duplicate addresses. + +2) If this draft originated on the local host, +then for those addresses in the message that have no host specified, +perform alias resolution. + +3) For each line in the alias file, +compare \*(lqalias\*(rq against all of the existing addresses. +If a match, remove the matched \*(lqalias\*(rq from the address list, +and add each new address in the address\-group to the address list +if it is not already on the list. +The alias itself is not usually output, +rather the address\-group that the alias maps to is output instead. +If \*(lqalias\*(rq is terminated with a `;' instead of a `:', +then both the \*(lqalias\*(rq and the address are output +in the correct format. +(This makes replies possible since \fIMH\fR aliases and +personal aliases are unknown to the mail transport system.) +.in -.5i + +Since the alias file is read line by line, forward references +work, but backward references are not recognized, thus, there is +no recursion. + +.ne 10 +\fBExample:\fR +.nf +.in +.5i +\*(rq are defined +to be \*(lqnews\*(rq. + +The key thing to understand about aliasing in \fIMH\fR +is that aliases in \fIMH\fR alias files are expanded into the +headers of messages posted. +This aliasing occurs first, +at posting time, +without the knowledge of the message transport system. +In contrast, +once the message transport system is given a message to deliver +to a list of addresses, +for each address that appears to be local, +a system\-wide alias file is consulted. +These aliases are \fBNOT\fR expanded into the headers of messages delivered. +.Hh +To use aliasing in \fIMH\fR quickly, do the following: + +.in +.5i +First, in your \fI\&.mh\(ruprofile\fR, +choose a name for your alias file, say \*(lqaliases\*(rq, +and add the line: + +.nf +.in +.5i +Aliasfile: aliases +.\" ali: \-alias aliases +.\" send: \-alias aliases +.\" whom: \-alias ailases +.in -.5i +.fi + +Second, create the file \*(lqaliases\*(rq in your \fIMH\fR directory. + +Third, start adding aliases to your \*(lqaliases\*(rq file as appropriate. +.in -.5i +.Fi +^/opt/mh-6.8.5/lib/MailAliases~^Primary alias file +.Pr +^Aliasfile:~^For a default alias file +.Sa +ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8) +.De +None +.Co +None +.Hi +In previous releases of \fIMH\fR, +only a single, system\-wide mh\-alias file was supported. +This led to a number of problems, +since only mail\-system administrators were capable of (un)defining +aliases. +Hence, +the semantics of mh\-alias were extended to support personal alias files. +Users of \fIMH\fR no longer need to bother mail\-system administrators for +keeping information in the system\-wide alias file, +as each \fIMH\fR user can create/modify/remove aliases at will from any +number of personal files. +.Bu +Although the forward-referencing semantics of \fImh\-alias\fR files prevent +recursion, the \*(lq<\ alias\-file\*(rq command may defeat this. Since the +number of file descriptors is finite (and very limited), such infinite +recursion will terminate with a meaningless diagnostic when all the fds are +used up. +.sp +Forward references do not work correctly inside blind lists. +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-chart.me b/docs/historical/mh-6.8.5/doc/mh-chart.me new file mode 100644 index 0000000..e40b7df --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-chart.me @@ -0,0 +1,480 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-chart.rf,v 2.25 1993/10/26 20:12:45 jromine Exp $ +.if '\*(ZZ'-man' \{\ +.SC MH-CHART 1 +.NA +mh-chart \- Chart of MH Commands +.SY +.\} +.in 1i +.na +.ti .5i +.ne 7 +ali +\%[\-alias\ aliasfile] +\%[\-list] \%[\-nolist] +\%[\-normalize] \%[\-nonormalize] +\%[\-user] \%[\-nouser] +aliases\ ... +\%[\-help] + +.ti .5i +.ne 6 +anno +\%[+folder] \%[msgs] +\%[\-component\ field] +\%[\-inplace] \%[\-noinplace] +\%[\-date] \%[\-nodate] +\%[\-text\ body] +\%[\-help] + +.ti .5i +.ne 6 +burst +\%[+folder] \%[msgs] +\%[\-inplace] \%[\-noinplace] +\%[\-quiet] \%[\-noquiet] +\%[\-verbose] \%[\-noverbose] +\%[\-help] + +.ti .5i +.ne 9 +comp +\%[+folder] \%[msg] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-file\ file] +\%[\-form\ formfile] +\%[\-use] \%[\-nouse] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +.ne 9 +dist +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-form\ formfile] +\%[\-inplace] \%[\-noinplace] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +.ne 4 +/opt/mh-6.8.5/lib/fmtdump +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-help] + +.ti .5i +.ne 12 +folder +\%[+folder] \%[msg] +\%[\-all] +\%[\-fast] \%[\-nofast] +\%[\-header] \%[\-noheader] +\%[\-pack] \%[\-nopack] +\%[\-recurse] \%[\-norecurse] +\%[\-total] \%[\-nototal] +\%[\-print] \%[\-noprint] +\%[\-list] \%[\-nolist] +\%[\-push] \%[\-pop] +\%[\-help] + +.ti .5i +folders + +.ti .5i +.ne 11 +forw +\%[+folder] \%[msgs] +\%[\-annotate] \%[\-noannotate] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +\%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +\%[\-mime] \%[\-nomime] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] + +.ti .5i +.ne 5 +forw +\%[+folder] \%[msgs] +\%[\-digest\ list] \%[\-issue\ number] \%[\-volume\ number] +\%[other\ switches\ for\ \fIforw\fR] +\%[\-help] + +.ti .5i +.ne 11 +inc +\%[+folder] +\%[\-audit\ audit\-file] \%[\-noaudit] +\%[\-changecur] \%[\-nochangecur] +\%[\-file\ name] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-silent] \%[\-nosilent] +\%[\-truncate] \%[\-notruncate] +\%[\-width\ columns] +\%[\-help] + +.ti .5i +.ne 7 +mark +\%[+folder] \%[msgs] +\%[\-sequence\ name\ ...] +\%[\-add] \%[\-delete] \%[\-list] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] + +.ti .5i +.ne 9 +/opt/mh-6.8.5/lib/mhl +\%[\-bell] \%[\-nobell] +\%[\-clear] \%[\-noclear] +\%[\-folder\ +folder] +\%[\-form\ formfile] +\%[\-length\ lines] \%[\-width\ columns] +\%[\-moreproc\ program] \%[\-nomoreproc] +\%[files\ ...] +\%[\-help] + +.ti .5i +.ne 8 +mhmail +\%[ +addrs\ ... +\%[\-body\ text] +\%[\-cc\ addrs\ ...] +\%[\-from\ addr] +\%[\-subject subject]] +\%[\-help] + +.ti .5i +.ne 9 +mhn +\%[\%[+folder] \%[msgs] | \%[\-file\0file]] +.br +\%[\-part\0number]... \%[\-type\0content]... +.br +\%[\-list\0\%[\-headers]\0\%[\-noheaders] +.br + \%[\-realsize]\0\%[\-norealsize]] \%[-nolist] +.br +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly] +.br + \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow] +.br +\%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore] +.br +\%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy] +.br +\%[\-check]\0\%[\-nocheck] +.br +\%[\-ebcdicsafe]\0\%[\-noebcdicsafe] +.br +\%[\-rfc934mode]\0\%[\-norfc934mode] +.br +\%[\-verbose]\0\%[\-noverbose] +.br +\%[\-help] + +.ti .5i +.ne 5 +mhparam +\%[profile-components] +\%[\-components] \%[\-nocomponents] +\%[\-all] +\%[\-help] + +.ti .5i +.ne 3 +mhpath +\%[+folder] \%[msgs] +\%[\-help] + +.ti .5i +.ne 5 +msgchk +\%[\-date] \%[\-nodate] +\%[\-notify\ all/mail/nomail] \%[\-nonotify\ all/mail/nomail] +\%[users\ ...] +\%[\-help] + +.ti .5i +.ne 5 +msh +\%[\-prompt\ string] +\%[\-scan] \%[\-noscan] +\%[\-topcur] \%[\-notopcur] +\%[file] +\%[\-help] + +.ti .5i +.ne 6 +next +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 4 +packf +\%[+folder] \%[msgs] +\%[-file\ name] +\%[\-help] + +.ie t \{\ +.ta .4i 1.8i +.nf +.in .5i +.ne 7 +^pick~^^\0\-cc~^ \%[+folder] \%[msgs] \%[\-help] +^^^\0\-date~^ \%[\-before\ date] \%[\-after\ date] \%[\-datefield\ field] +^^^\0\-from~^ +^^^\s+2\b'\(lt\(bv\(bv\(lk\(bv\(bv\(lb'\s0\-search~\s+2\b'\(rt\(bv\(bv\(rk\(bv\(bv\(rb'\s0^ pattern \%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +^^^\0\-subject~^ +^^^\0\-to~^ \%[\-sequence\ name\ ...] \%[\-public] \%[\-nopublic] \%[\-zero] \%[\-nozero] +^^^\0\-\|\-component~^ \%[\-list] \%[\-nolist] +.fi +.re +.in 1i +.\} +.el \{\ +.ti .5i +.ne 10 +pick +\%[+folder] \%[msgs] +\%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +\%[\-\|\-component\ pattern] +\%[\-after\ date] \%[\-before\ date] \%[\-datefield\ field] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-list] \%[\-nolist] +\%[\-help] +.\} + + +.ti .5i +.ne 6 +prev +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 7 +prompter +\%[\-erase\ chr] +\%[\-kill\ chr] +\%[\-prepend] \%[\-noprepend] +\%[\-rapid] \%[\-norapid] +\%[\-doteof] \%[\-nodoteof] +file +\%[\-help] + +.ti .5i +.ne 7 +/opt/mh-6.8.5/lib/rcvstore +\%[+folder] +\%[\-create] \%[\-nocreate] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] + +.ti .5i +.ne 9 +refile +\%[msgs] +\%[\-draft] +\%[\-link] \%[\-nolink] +\%[\-preserve] \%[\-nopreserve] +\%[\-src\ +folder] +\%[\-file\ file] ++folder ... +\%[\-help] + +.ti .5i +.ne 15 +repl +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-cc\ all/to/cc/me] \%[\-nocc\ all/to/cc/me] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-fcc\ +folder] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +.\" \%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +\%[\-query] \%[\-noquery] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-width\ columns] +\%[\-help] + +.ti .5i +.ne 4 +rmf +\%[+folder] +\%[\-interactive] \%[\-nointeractive] +\%[\-help] + +.ti .5i +.ne 3 +rmm +\%[+folder] \%[msgs] +\%[\-help] + +.ti .5i +.ne 8 +scan +\%[+folder] \%[msgs] +\%[\-clear] \%[\-noclear] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-header] \%[\-noheader] +\%[\-width\ columns] +\%[\-reverse] \%[\-noreverse] +\%[\-file filename] +\%[\-help] + +.ti .5i +.ne 15 +send +\%[\-alias\ aliasfile] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +\%[\-forward] \%[\-noforward] +\%[\-mime] \%[\-nomime] +\%[\-msgid] \%[\-nomsgid] +\%[\-push] \%[\-nopush] +\%[\-split\ seconds] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +\%[file\ ...] +\%[\-help] + +.ti .5i +.ne 7 +show +\%[+folder] \%[msgs] +\%[\-draft] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] + +.ti .5i +.ne 5 +sortm +\%[+folder] \%[msgs] +\%[\-datefield\ field] +\%[\-textfield\ field] \%[\-notextfield] +\%[\-limit days] \%[\-nolimit] +\%[\-verbose] \%[\-noverbose] +\%[\-help] + +.ti .5i +.ne 5 +vmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] + +.ti .5i +.ne 6 +whatnow +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-prompt\ string] +\%[file] +\%[\-help] + +.ti .5i +.ne 7 +whom +\%[\-alias\ aliasfile] +\%[\-check] \%[\-nocheck] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[file] +\%[\-help] + +.ti .5i +.ne 7 +/opt/mh-6.8.5/lib/ap +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-normalize] \%[\-nonormalize] +\%[\-width\ columns] +addrs\ ... +\%[\-help] + +.ti .5i +.ne 5 +/opt/mh-6.8.5/lib/conflict +\%[\-mail\ name] +\%[\-search\ directory] +\%[aliasfiles\ ...] +\%[\-help] + +.ti .5i +.ne 5 +/opt/mh-6.8.5/lib/dp +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +dates\ ... +\%[\-help] + +.ti .5i +.ne 3 +/opt/mh-6.8.5/lib/install\-mh +\%[\-auto] +\%[\-compat] + +.ti .5i +.ne 11 +/opt/mh-6.8.5/lib/post +\%[\-alias\ aliasfile] +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +\%[\-mime] \%[\-nomime] +\%[\-msgid] \%[\-nomsgid] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +file +\%[\-help] + +.ti .5i +.ne 10 +/opt/mh-6.8.5/lib/slocal \%[address\ info\ sender] +\%[\-addr\ address] +\%[\-info\ data] +\%[\-sender\ sender] +\%[\-user\ username] +\%[\-mailbox\ mbox] +\%[\-file\ file] +\%[\-maildelivery\ deliveryfile] +\%[\-verbose] \%[\-noverbose] +\%[\-debug] +\%[\-help] +.ad +.in 0 diff --git a/docs/historical/mh-6.8.5/doc/mh-format.me b/docs/historical/mh-6.8.5/doc/mh-format.me new file mode 100644 index 0000000..f930174 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-format.me @@ -0,0 +1,531 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-format.rf,v 1.47 1995/12/06 23:33:39 jromine Exp $ +.SC MH-FORMAT 5 +.NA +mh-format \- format file for MH message system +.SY +some \fIMH\fR commands +.DE +Several \fIMH\fR commands utilize either a \fIformat\fR string or a +\fIformat\fR file during their execution. +For example, +\fIscan\fR\0(1) uses a format string which directs it how to generate the +scan listing for each message; +\fIrepl\fR\0(1) uses a format file which directs it how to generate the +reply to a message, and so on. + +Format strings are designed to be efficiently parsed by \fIMH\fR which +means they are not necessarily simple to write and understand. +This means that novice, casual, or even advanced users of \fIMH\fR should +not have to deal with them. +Some canned scan listing formats are in +/opt/mh-6.8.5/lib/scan.time, /opt/mh-6.8.5/lib/scan.size, and /opt/mh-6.8.5/lib/scan.timely. +Look in /opt/mh-6.8.5/lib for other \fIscan\fR and \fIrepl\fR format files +which may have been written at your site. + +It suffices to have your local \fIMH\fR expert actually write new format +commands or modify existing ones. +This manual section explains how to do that. +Note: familiarity with the C \fIprintf\fR routine is assumed. + +A format string consists of ordinary text, and special +multi-character \fIescape\fR sequences which begin with `%'. +When specifying a format string, +the usual C backslash characters are honored: +`\\b', `\\f', `\\n', `\\r', and `\\t'. +Continuation lines in format files end with `\\' followed +by the newline character. +To put a literal `%' or `\\' in a format string, use two of them: +`%%' and `\\\\'. +.\" talk about syntax first, then semantics +There are three types of \fIescape\fR sequences: +header \fIcomponents\fR, built-in \fIfunctions\fR, and flow \fIcontrol\fR. + +A \fIcomponent\fR escape is specified as `%{\fIcomponent\fR\^}', +and exists for each header found in the message being processed. +For example `%{date}' refers to the \*(lqDate:\*(rq field of the appropriate +message. +All component escapes have a string value. +Normally, component values are compressed by +converting any control characters (tab and newline included) to spaces, +then eliding any leading or multiple spaces. +However, +commands may give different interpretations to some component escapes; +be sure to refer to each command's manual entry for complete details. + +A \fIfunction\fR escape is specified as `%(\fIfunction\fR\^)'. +All functions are built-in, and most have a string or numeric value. + +.ne 12 +.Uh "Control-flow escapes" +A \fIcontrol\fR escape is one of: `%<', `%?', `%|', or `%>'. +.\" `%[', or `%]'. +These are combined into the conditional execution construct: +.sp +.nf + % +.fi +.sp +Extra white space is shown here only for clarity. +These constructs may be nested without ambiguity. +They form a general \fBif\-elseif\-else\-endif\fP block where +only one of the \fIformat text\fP segments is interpreted. + +The `%<' and `%?' control escapes causes a condition to be evaluated. +This condition +may be either a \fIcomponent\fP or a \fIfunction\fP. +The four constructs have the following syntax: +.sp 1 +.nf + %<{component} + %<(function) + %?{component} + %?(function) +.fi +.sp +These control escapes test whether +the function or component value is non-zero (for integer-valued escapes), +or non-empty (for string-valued escapes). + +If this test evaulates true, +then the format text +up to the next corresponding control escape +(one of `%|', `%?', or `%>') +is interpreted normally. +Next, +all format text (if any) up to the corresponding `%>' control +escape is skipped. +The `%>' control escape is not interpreted; +normal +interpretation resumes after the `%>' escape. + +If the test evaluates false, however, +then the format text +up to the next corresponding control escape +(again, one of `%|', `%?', or `%>') +is skipped, instead of being interpreted. +If the control escape encountered was `%?', +then the condition associated with that control escape is +evaluated, and interpretation +proceeds after that test +as described in the previous paragraph. +If the control escape encountered was `%|', +then the format text +up to the corresponding `%>' escape +is interpreted normally. +As above, +the `%>' escape is not interpreted and normal +interpretation resumes after the `%>' escape. + +The `%?' control escape and its following format text +is optional, and may be included zero or more times. +The `%|' control escape and its following format text +is also optional, and may be included zero or one times. + +.\" The '%[' and '%]' escapes form a loop construct. +.\" For format strings which are executed repeatedly +.\" (as with \fIscan\fP), these escapes delimit the main +.\" body of execution. Format text which occurs +.\" before the '%[' escape is executed once only, prior +.\" to processing the first message; format text occuring +.\" after the '%]' escape is ignored. +.\" (These escapes may not be nested). +.\" +.Uh "Function escapes" +.ne 10 +Most functions expect an argument of a particular type: +.sp 1 +.nf +.ta +\w'Argument 'u +\w'An optional component, 'u +\fIArgument\fR \fIDescription\fR \fIExample Syntax\fR +literal A literal number, %(\fIfunc\fR 1234) + or string %(\fIfunc\fR text string) +comp Any header component %(\fIfunc\fR\^{\fIin-reply-to\fR\^}) +date A date component %(\fIfunc\fR\^{\fIdate\fR\^}) +addr An address component %(\fIfunc\fR\^{\fIfrom\fR\^}) +expr An optional component, %(\fIfunc\fR\^(\fIfunc2\fR\^)) + function or control, %(\fIfunc\fR %<{\fIreply-to\fR\^}%|%{\fIfrom\fR\^}%>) + perhaps nested %(\fIfunc\fR\^(\fIfunc2\fR\^{\fIcomp\fR\^})) +.re +.fi + +The types \fIdate\fR and \fIaddr\fR have the same syntax +as \fIcomp\fR, but require that the header +component be a date string, or address string, respectively. + +All arguments except those of type \fIexpr\fR are required. +For the \fIexpr\fR argument type, +the leading `%' must be omitted for component and function escape arguments, +and must be present (with a leading space) for control escape arguments. + +The evaluation of format strings +is based on a simple machine with an +integer register \fInum\fR, and a text string register \fIstr\fR. +When a function escape is processed, +if it accepts an optional \fIexpr\fR argument which is not present, +it reads the current value of either \fInum\fR or \fIstr\fR as appropriate. + +.\" return values +.Uh "Return values" +Component escapes write the value of their message header in \fIstr\fR. +Function escapes write their return value in +\fInum\fR for functions returning \fIinteger\fR or \fIboolean\fR values, +and in \fIstr\fR for functions returning string values. +(The \fIboolean\fR type is a subset of integers with usual +values 0=false and 1=true.) +Control escapes return a \fIboolean\fP value, and set \fInum\fP. + +All component escapes, and those +function escapes which return an \fIinteger\fR or \fIstring\fR value, +pass this value back to their caller +in addition to setting \fIstr\fR or \fInum\fR. +These escapes will print out this value +unless called as part of an argument to another escape sequence. +Escapes which return a \fIboolean\fR value do pass this value +back to their caller in \fInum\fP, but will never print out the value. + +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +msg integer message number +cur integer message is current +.\" unseen integer message is unseen +size integer size of message +strlen integer length of \fIstr\fR +width integer output buffer size in bytes +charleft integer bytes left in output buffer +timenow integer seconds since the UNIX epoch +me string the user's mailbox +eq literal boolean \fInum\fR == \fIarg\fR +ne literal boolean \fInum\fR != \fIarg\fR +gt literal boolean \fInum\fR > \fIarg\fR +match literal boolean \fIstr\fR contains \fIarg\fR +amatch literal boolean \fIstr\fR starts with \fIarg\fR +plus literal integer \fIarg\fR plus \fInum\fR +minus literal integer \fIarg\fR minus \fInum\fR +divide literal integer \fInum\fR divided by \fIarg\fR +modulo literal integer \fInum\fR modulo \fIarg\fR +num literal integer Set \fInum\fR to \fIarg\fR +lit literal string Set \fIstr\fR to \fIarg\fR +getenv literal string Set \fIstr\fR to environment value of \fIarg\fR +profile literal string Set \fIstr\fR to profile component \fIarg\fR value +.\" dat literal int return value of dat[arg] +nonzero expr boolean \fInum\fR is non-zero +zero expr boolean \fInum\fR is zero +null expr boolean \fIstr\fR is empty +nonnull expr boolean \fIstr\fR is non-empty +void expr Set \fIstr\fR or \fInum\fR +comp comp string Set \fIstr\fR to component text +compval comp integer \fInum\fR set to \*(lq\fBatoi\fR(\fIcomp\fR\^)\*(rq +.\" compflag comp integer Set \fInum\fR to component flags bits (internal) +trim expr trim trailing white-space from \fIstr\fR +putstr expr print \fIstr\fR +putstrf expr print \fIstr\fR in a fixed width +putnum expr print \fInum\fR +putnumf expr print \fInum\fR in a fixed width +.\" addtoseq literal add msg to sequence (LBL option) +.re +.fi + +These functions require a date component as an argument: +.sp 1 +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +sec date integer seconds of the minute +min date integer minutes of the hour +hour date integer hours of the day (0-23) +wday date integer day of the week (Sun=0) +day date string day of the week (abbrev.) +weekday date string day of the week +sday date integer day of the week known? + (0=implicit,\-1=unknown) +mday date integer day of the month +yday date integer day of the year +mon date integer month of the year +month date string month of the year (abbrev.) +lmonth date string month of the year +year date integer year (may be > 100) +zone date integer timezone in hours +tzone date string timezone string +szone date integer timezone explicit? + (0=implicit,\-1=unknown) +date2local date coerce date to local timezone +date2gmt date coerce date to GMT +dst date integer daylight savings in effect? +clock date integer seconds since the UNIX epoch +rclock date integer seconds prior to current time +tws date string official 822 rendering +pretty date string user-friendly rendering +nodate date integer \fIstr\fR not a date string +.re +.fi + +.ne 12 +These functions require an address component as an argument. +The return value of functions noted with `*' pertain only to +the first address present in the header component. +.sp 1 +.nf +.ta \w'Formataddr 'u +\w'Argument 'u +\w'Rboolean 'u +\fIFunction\fR \fIArgument\fR \fIReturn\fR \fIDescription\fR +proper addr string official 822 rendering +friendly addr string user-friendly rendering +addr addr string mbox@host or host!mbox rendering* +pers addr string the personal name* +note addr string commentary text* +mbox addr string the local mailbox* +mymbox addr integer the user's addresses? (0=no,1=yes) +host addr string the host domain* +nohost addr integer no host was present* +type addr integer host type* (0=local,1=network, + \-1=uucp,2=unknown) +path addr string any leading host route* +ingrp addr integer address was inside a group* +gname addr string name of group* +formataddr expr append \fIarg\fR to \fIstr\fR as a + (comma separated) address list +putaddr literal print \fIstr\fR address list with + \fIarg\fR as optional label; + get line width from \fInum\fR +.re +.fi + +When escapes are nested, evaluation is done from inner-most to outer-most. +The outer-most escape must begin with `%'; the inner escapes must not. +For example, + +.ti +.5i +%<(mymbox{from}) To: %{to}%> + +writes the value of the header component \*(lqFrom:\*(rq to \fIstr\fR\^; +then (\fImymbox\fR\^) reads \fIstr\fR +and writes its result to \fInum\fR; +then the control escape evaluates \fInum\fR. If \fInum\fR is +non-zero, the string \*(lqTo: \*(rq is printed followed by +the value of the header component \*(lqTo:\*(rq. + +A minor explanation of (\fImymbox\fR\^{\fIcomp\fR\^}) is in order. +In general, it checks each of the addresses in the header component +\*(lq\fIcomp\fR\*(rq +against the user's mailbox name and any \fIAlternate-Mailboxes\fR. +It returns true if any address matches, however, it +also returns true if the \*(lq\fIcomp\fR\*(rq header is not present +in the message. If needed, the (\fInull\fR\^) function can be +used to explicitly test for this condition. + +When a function or component escape is interpreted and the result +will be immediately printed, +an optional field width can be +specified to print the field in exactly a given number of characters. +For example, a numeric escape like %4(\fIsize\fR\^) will print at most 4 +digits of the message size; overflow will be indicated by a `?' in the +first position (like `?234'). +A string escape like %4(\fIme\fR\^) will print the first 4 characters and +truncate at the end. +Short fields are padded at the right with the fill character (normally, +a blank). If the field width argument begins with a leading zero, +then the fill character is set to a zero. + +As above, +the functions (\fIputnumf\fR\^) and (\fIputstrf\fR\^) print their result in +exactly the number of characters specified by their leading field width +argument. +For example, +%06(\fIputnumf\fR\^(\fIsize\fR\^)) will print the message size +in a field six characters wide filled with leading zeros; +%14(\fIputstrf\^\fR{\fIfrom\^\fR}) will print +the \*(lqFrom:\*(rq header component in fourteen characters with +trailing spaces added as needed. +For \fIputstrf\fR, +using a negative value for the field width causes right-justification +of the string within the field, +with padding on the left up to the field width. +The functions (\fIputnum\fR\^) and (\fIputstr\fR\^) print their result in +the minimum number of characters required, and ignore any leading +field width argument. + +The available output width is kept in an internal register; any output past +this width will be truncated. + +Comments may be inserted in most places where a function argument +is not expected. A comment begins with `%;' and ends with +a (non-escaped) newline. + +With all this in mind, +here's the default format string for \fIscan\fR. +It's been divided into several pieces for readability. +The first part is: + +.ti +.5i +%4(msg)%<(cur)+%| %>%<{replied}\-%?{encrypted}E%| %> + +which says that the message number should be printed in four digits, +if the message is the current message then a `+' else a space should be +printed, +and if a \*(lqReplied:\*(rq field is present then a `\-' else +if an \*(lqEncrypted:\*(rq field is present then an `E' otherwise +a space should be printed. +Next: + +.ti +.5i +%02(mon{date})/%02(mday{date}) + +the month and date are printed in two digits (zero filled) separated by +a slash. +Next, + +.ti +.5i +%<{date} %|*> + +If a \*(lqDate:\*(rq field was present, +then a space is printed, otherwise a `*'. +Next, + +.ti +.5i +%<(mymbox{from})%<{to}To:%14(friendly{to})%>%> + +if the message is from me, +and there is a \*(lqTo:\*(rq header, +print `To:' followed by a \*(lquser-friendly\*(rq rendering of the +first address in the \*(lqTo:\*(rq field. +Continuing, + +.ti +.5i +%<(zero)%17(friendly{from})%> + +if either of the above two tests failed, +then the \*(lqFrom:\*(rq address is printed +in a \*(lquser-friendly\*(rq format. +And finally, + +.ti +.5i +%{subject}%<{body}<<%{body}%> + +the subject and initial body (if any) are printed. + +For a more complicated example, next consider +the default \fIreplcomps\fR format file. + +.ti +.5i +%(lit)%(formataddr %<{reply-to} + +This clears \fIstr\fR and formats the \*(lqReply-To:\*(rq header +if present. If not present, the else-if clause is executed. + +.ti +.5i +%?{from}%?{sender}%?{return-path}%>)\\ + +This formats the +\*(lqFrom:\*(rq, \*(lqSender:\*(rq and \*(lqReturn-Path:\*(rq +headers, stopping as soon as one of them is present. Next: + +.ti +.5i +%<(nonnull)%(void(width))%(putaddr To: )\\n%>\\ + +If the \fIformataddr\fR result is non-null, it is printed as +an address (with line folding if needed) in a field \fIwidth\fR +wide with a leading label of \*(lqTo: \*(rq. + +.ti +.5i +%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\\ + +\fIstr\fR is cleared, and the +\*(lqTo:\*(rq and \*(lqCc:\*(rq headers, along with the user's +address +(depending on what was specified with +the \*(lq\-cc\*(rq switch to \fIrepl\fR\^) are formatted. + +.ti +.5i +%<(nonnull)%(void(width))%(putaddr cc: )\\n%>\\ + +If the result is non-null, it is printed as above with a +leading label of \*(lqcc: \*(rq. + +.ti +.5i +%<{fcc}Fcc: %{fcc}\\n%>\\ + +If a \*(lq\-fcc\ folder\*(rq switch was given to \fIrepl\fR +(see \fIrepl\fR\0(1) for more details about %{\fIfcc\fR\^}), +an \*(lqFcc:\*(rq header is output. + +.ti +.5i +%<{subject}Subject: Re: %{subject}\\n%>\\ + +If a subject component was present, +a suitable reply subject is output. + +.nf +.ti +.5i +%<{date}In-reply-to: Your message of "\\ +.ti +.5i +%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} +.ti +.5i + %{message-id}%>\\n%>\\ +.ti +.5i +\-\-\-\-\-\-\-\- +.fi + +If a date component was present, +an \*(lqIn-Reply-To:\*(rq header is output with the preface +\*(lqYour message of \*(rq. If the date was parseable, it is +output in a user-friendly format, otherwise it is output as-is. +The message-id is included if present. +As with all plain-text, +the row of dashes are output as-is. + +This last part is a good example for a little more elaboration. +Here's that part again in pseudo-code: +.sp 1 +.nf +.in +.5i +.ta .5i 1i 1.5i 2i +if (comp_exists(date)) then + print (\*(lqIn-reply-to: Your message of \\\*(lq\*(rq) + if (not_date_string(date.value) then + print (date.value) + else + print (pretty(date.value)) + endif + print (\*(lq\\\*(rq\*(rq) + if (comp_exists(message-id)) then + print (\*(lq\\n\\t\*(rq) + print (message-id.value) + endif + print (\*(lq\\n\*(rq) +endif +.re +.in -.5i +.fi +.sp 1 +Although this seems complicated, +in point of fact, +this method is flexible enough to extract individual fields and print them in +any format the user desires. +.Fi +None +.Pr +None +.Sa +scan(1), repl(1), ap(8), dp(8) +.De +None +.Co +None +.Hi +This software was contributed for MH 6.3. Prior to this, output +format specifications were much easier to write, but considerably +less flexible. +.Bu +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-hack.me b/docs/historical/mh-6.8.5/doc/mh-hack.me new file mode 100644 index 0000000..2f564b5 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-hack.me @@ -0,0 +1,67 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-hack.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC MH-HACK 8 +.NA +mh-hack \- how to hack MH +.SY +big hack attack +.DE +This is a description of how one can modify the \fIMH\fR system. +The \fIMH\fR distribution has a lot of complex inter\-relations, +so before you go modifying any code, you should read this and +understand what is going on. + +.in +.5i +.ti -.5i +\fBADDING A NEW PROGRAM\fR +.br +Suppose you want to create a new \fIMH\fR command called +\*(lqpickle\*(rq. +First, create and edit \*(lqpickle.c\*(rq in the \fBuip/\fR directory. +Next edit \fBconf/makefiles/uip\fR to include \*(lqpickle\*(rq. +This file has directions at the end of it which explain how it should +be modified. +Next, update any documentation (described below). +At this point you can re\-configure \fIMH\fR. +See \fImh\-gen(8)\fR for instructions on how to do this +(basically, you want \*(lqmhconfig MH\*(rq). + +.ti -.5i +\fBADDING A NEW SUBROUTINE\fR +.br +Suppose you want to create a new \fIMH\fR routine called +\*(lqpickle\*(rq. +First, create and edit \*(lqpickle.c\*(rq in the \fBsbr/\fR directory. +Next edit \fBconf/makefiles/sbr\fR to include \*(lqpickle\*(rq. +This file has directions at the end of it which explain how it should +be modified. +You should modify \fBconfig/mh.h\fR to define \*(lqpickle ();\*(rq. +Similarly, \fBsbr/llib\-lsbr\fR should be modified for \fIlint\fR. +At this point you can re\-configure \fIMH\fR. + +.ti -.5i +\fBUPDATING DOCUMENTATION\fR +.br +Edit whatever files you want in \fBconf/doc/\fR. +When documenting a new program, such as \*(lqpickle\*(rq, +you should create a manual page with the name \*(lqpickle.rf\*(rq. +The file \fBconf/doc/template\fR has a manual page template that you +can use. +If you are documenting a new program, then you should also update three +other files: +The file \fBconf/doc/mh.rf\fR should be modified to include the +\*(lq\&.NA\*(rq section from \*(lqpickle.rf\*(rq. +The file \fBconf/doc/mh\-chart.rf\fR should be modified to include +the \*(lq\&.SY\*(rq section from \*(lqpickle.rf\*(rq. +Finally, the file \fBconf/doc/MH.rf\fR should be modified to include a +\*(lq\&.so pickle.me\*(rq. +Naturally, none of these changes will be reflected in the configuration +until you actually run \fImhconfig\fR. +.in -.5i +.Fi +Too numerous to mention. Honest. +.Sa +mh\-gen(8) +.Bu +Hacking is an art, but most programmers are butchers, not artists. +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-mail.me b/docs/historical/mh-6.8.5/doc/mh-mail.me new file mode 100644 index 0000000..804190c --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-mail.me @@ -0,0 +1,215 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-mail.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC MH-MAIL 5 +.NA +mh-mail \- message format for MH message system +.SY +any \fIMH\fR command +.DE +\fIMH\fR processes messages in a particular format. +It should be noted that although neither Bell nor Berkeley mailers produce +message files in the format that \fIMH\fR prefers, +\fIMH\fR can read message files in that antiquated format. + +Each user possesses a mail drop box which initially receives +all messages processed by \fIpost\fR\0(8). +\fIInc\fR\0(1) will read from that drop box and incorporate the new messages +found there into the user's own mail folders (typically `+inbox'). +The mail drop +box consists of one or more messages. + +Messages +are expected to consist of lines of text. +Graphics and binary data are not handled. +No data compression is accepted. +All text is clear +ASCII 7-bit data. + +The general \*(lqmemo\*(rq framework of RFC\-822 is used. +A message consists of a block of information in a rigid format, +followed by general text with no specified format. +The rigidly formatted first part of a message is called the header, +and the free-format portion is called the body. +The header must always exist, but the body is optional. +These parts are separated by an empty line, +i.e., two consecutive newline characters. +Within \fIMH\fR, +the header and body may be separated by a line consisting of dashes: + +.nf +.in +.5i +.ne 10 +.eo +.so /opt/mh-6.8.5/lib/components +.ec +.in -.5i +.fi + +The header is composed of one or more header items. +Each header item can be viewed as a single logical line of ASCII +characters. +If the text of a header item extends across several +real lines, the continuation lines are indicated by leading +spaces or tabs. + +Each header item is called a component and is composed of a +keyword or name, along with associated text. +The keyword begins at the +left margin, may NOT contain spaces or tabs, may not exceed 63 +characters (as specified by RFC\-822), and is terminated by a colon (`:'). +Certain +components (as identified by their keywords) must follow rigidly +defined formats in their text portions. + +The text for most formatted components +(e.g., \*(lqDate:\*(rq and \*(lqMessage\-Id:\*(rq) +is produced automatically. +The only ones entered by the +user are address fields such as \*(lqTo:\*(rq, \*(lqcc:\*(rq, etc. +Internet addresses +are assigned mailbox names and host computer specifications. +The +rough format is \*(lqlocal@domain\*(rq, such as \*(lqMH@UCI\*(rq, +or \*(lqMH@UCI\-ICSA.ARPA\*(rq. +Multiple addresses are separated by commas. +A missing host/domain is assumed to be the local host/domain. + +As mentioned above, +a blank line (or a line of dashes) +signals that all following text up to the end of the file is the body. +No formatting is expected or enforced within the body. + +Following is a list of header components that are considered +meaningful to various MH programs. +.in +.5i +.ti -.5i +Date: +.br +Added by \fIpost\fR\0(8), +contains date and time of the message's entry into the transport system. + +.ti -.5i +From: +.br +Added by \fIpost\fR\0(8), +contains the address of the author or authors (may be more than one if a +\*(lqSender:\*(rq field is present). +Replies are typically directed to addresses in the \*(lqReply\-To:\*(rq or +\*(lqFrom:\*(rq field (the former has precedence if present). + +.ti -.5i +Sender: +.br +Added by \fIpost\fR\0(8) +in the event that the message already has a \*(lqFrom:\*(rq line. +This line contains the address of the actual sender. +Replies are never sent to addresses in the \*(lqSender:\*(rq field. + +.ti -.5i +To: +.br +Contains addresses of primary recipients. + +.ti -.5i +cc: +.br +Contains addresses of secondary recipients. + +.ti -.5i +Bcc: +.br +Still more recipients. +However, the \*(lqBcc:\*(rq line is not copied onto the message as delivered, +so these recipients are not listed. +\fIMH\fR uses an encapsulation method for blind copies, see \fIsend\fR\0(1). + +.ti -.5i +Fcc: +.br +Causes \fIpost\fR\0(8) to copy the message into the specified folder for the +sender, +if the message was successfully given to the transport system. + +.ti -.5i +Message\-ID: +.br +A unique message identifier added by \fIpost\fR\0(8) if the `\-msgid' flag +is set. + +.ti -.5i +Subject: +.br +Sender's commentary. It is displayed by \fIscan\fR\0(1). + +.ti -.5i +In\-Reply\-To: +.br +A commentary line added by \fIrepl\fR\0(1) when replying to a message. + +.ti -.5i +Resent\-Date: +.br +Added when redistributing a message by \fIpost\fR\0(8). + +.ti -.5i +Resent\-From: +.br +Added when redistributing a message by \fIpost\fR\0(8). + +.ti -.5i +Resent\-To: +.br +New recipients for a message resent by \fIdist\fR\0(1). + +.ti -.5i +Resent\-cc: +.br +Still more recipients. +See \*(lqcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Bcc: +.br +Even more recipients. +See \*(lqBcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Fcc: +.br +Copy resent message into a folder. +See \*(lqFcc:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent\-Message\-Id: +.br +A unique identifier glued on by \fIpost\fR\0(8) if the `\-msgid' flag +is set. +See \*(lqMessage\-Id:\*(rq and \*(lqResent\-To:\*(rq. + +.ti -.5i +Resent: +.br +Annotation for \fIdist\fR\0(1) under the `\-annotate' option. + +.ti -.5i +Forwarded: +.br +Annotation for \fIforw\fR\0(1) under the `\-annotate' option. + +.ti -.5i +Replied: +.br +Annotation for \fIrepl\fR\0(1) under the `\-annotate' option. +.in -.5i +.sp +.Fi +^/var/spool/mail/$USER~^Location of mail drop +.Pr +None +.Sa +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-mts.me b/docs/historical/mh-6.8.5/doc/mh-mts.me new file mode 100644 index 0000000..0908580 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-mts.me @@ -0,0 +1,111 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-mts.rf,v 1.10 1992/05/12 22:23:34 jromine Exp $ +.SC MH-MTS 8 +.NA +mh-mts \- the MH interface to the message transport system +.SY +SendMail + +.ti .5i +Zmailer + +.ti .5i +MMDF (any release) + +.ti .5i +stand\-alone +.DE +\fIMH\fR can use a wide range of message transport systems to deliver mail. +Although the \fIMH\fR administrator usually doesn't get to choose which MTS +to use (since it's already in place), +this document briefly describes the interfaces. + +When communicating with \fISendMail\fR, +\fIMH\fR always uses the SMTP to post mail. +Depending on the \fIMH\fR configuration, +\fISendMail\fR may be invoked directly (via a \fIfork\fR and an \fIexec\fR), +or \fIMH\fR may open a TCP/IP connection to the SMTP server on the localhost. + +When communicating with \fIzmailer\fP, +the \fISendMail\fP compatibility program is +required to be installed in /usr/lib. +\fIMH\fP communicates with \fIzmailer\fP +by using the SMTP. +It does this by invoking the \fB/usr/lib/sendmail\fP +compatibility program directly, with the `\-bs' option. + +When communicating with \fIMMDF\fR, +normally \fIMH\fR uses the \*(lqmm\(ru\*(rq routines to post mail. +However, depending on the \fIMH\fR configuration, +\fIMH\fR instead may open a TCP/IP connection to the SMTP server on the +localhost. + +When using the stand\-alone system (\fBNOT\fR recommended), +\fIMH\fR delivers local mail itself and queues \fIUUCP\fR and network mail. +The network mail portion will probably have to be modified to reflect the +local host's tastes, since there is no well\-known practice in this area for +all types of UNIX hosts. + +If you are running a UNIX system with TCP/IP networking, +then it is felt that the best interface is achieved by using either +\fISendMail\fR or \fIMMDF\fR with the SMTP option. +This gives greater flexibility. +To enable this option you append the /smtp suffix to the mts option in the +\fIMH\fR configuration. +This yields two primary advantages: +First, +you don't have to know where \fIsubmit\fR or \fISendMail\fR live. +This means that \fIMH\fR binaries (e.g., \fIpost\fR\0) +don't have to have this information hard\-coded, +or can run different programs altogether; +and, +second, you can post mail with the server on different systems, so you don't +need either \fIMMDF\fR or \fISendMail\fR on your local host. +Big win in conserving cycles and disk space. +Since \fIMH\fR supports the notion of a server search\-list in this respect, +this approach can be tolerant of faults. +Be sure to set \*(lqservers:\*(rq as described in +mh\-tailor(8) if you use this option. + +There are four disadvantages to using the SMTP option: +First, only UNIX systems with TCP/IP are supported. +Second, you need to have an SMTP server running somewhere on any network your +local host can reach. +Third, this bypasses any authentication mechanisms in \fIMMDF\fR +or \fISendMail\fR. +Fourth, +the file \fB/etc/hosts\fR is used for hostname lookups +(although there is an exception file). +In response to these disadvantages though: +First, there's got to be an SMTP server somewhere around if you're in the +Internet or have a local network. +Since the server search\-list is very general, +a wide\-range of options are possible. +Second, +SMTP should be fixed to have authentication mechanisms in it, like POP. +Third, +\fIMH\fR won't choke on mail to hosts whose official names it can't verify, +it'll just plug along +(and besides +if you enable the BERK or DUMB configuration options, +\fIMH\fR ignores the hosts file altogether). +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +.Pr +None +.Sa +\fIMMDF\-II: A Technical Review\fR, +Proceedings, Usenix Summer '84 Conference +.br +\fISENDMAIL \-\- An Internetwork Mail Router\fR +.br +mh\-tailor(8), post(8) +.De +None +.Co +None +.Bu +The /opt/mh-6.8.5/lib/mtstailor file ignores the information in the \fIMMDF\-II\fR +tailoring file. +It should not. +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-profile.me b/docs/historical/mh-6.8.5/doc/mh-profile.me new file mode 100644 index 0000000..0bf796e --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-profile.me @@ -0,0 +1,491 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-profile.rf,v 1.21 1996/02/08 18:06:13 jromine Exp $ +.SC MH-PROFILE 5 +.NA +mh-profile \- user profile customization for MH message handler +.SY +\&\fI.mh\(ruprofile\fP +.DE +Each user of \fIMH\fR is expected to have a file named \fI\&.mh\(ruprofile\fR +in his or her home directory. This file contains a set of +user parameters used by some or all of the \fIMH\fR +family of programs. Each entry in the file is of the format + + \fIprofile\-component\fR: \fIvalue\fR + +If the text of an entry extends across several +real lines, the continuation lines are indicated by leading +spaces or tabs. +The possible profile components are exemplified below. +Only `Path:' is mandatory. +The others are optional; +some have default values if they are not present. +In the notation used below, +(profile, default) indicates whether the information is kept in the user's +\fIMH\fR profile or \fIMH\fR context, +and indicates what the default value is. + +.in +1i +.ti -1i +Path: Mail +.br +Locates \fIMH\fR transactions in directory \*(lqMail\*(rq. +(profile, no default) + +.ti -1i +context: context +.br +Declares the location of the \fIMH\fR context file, +see the \fBHISTORY\fR section below. +(profile, default: /context) + +.ti -1i +Current\-Folder:\ inbox +.br +Keeps track of the current open folder. +(context, default: folder specified by \*(lqInbox\*(rq) + +.ti -1i +Inbox: inbox +.br +Defines the name of your inbox. +(profile, default: inbox) + +.ti -1i +Previous\-Sequence:\ pseq +.br +Names the sequences which should be defined as the `msgs' or `msg' +argument given to the program. +If not present, or empty, no sequences are defined. +Otherwise, +for each name given, +the sequence is first zero'd and then each message is added to the sequence. +(profile, no default) + +.ti -1i +Sequence\-Negation:\ not +.br +Defines the string which, when prefixed to a sequence name, +negates that sequence. +Hence, +\*(lqnotseen\*(rq means all those messages that are not a member of +the sequence \*(lqseen\*(rq. +(profile, no default) + +.ti -1i +Unseen\-Sequence:\ unseen +.br +Names the sequences which should be defined as those messages recently +incorporated by \fIinc\fR. +\fIShow\fR knows to remove messages from this sequence once it thinks they +have been seen. +If not present, or empty, no sequences are defined. +Otherwise, +each message is added to each sequence name given. +(profile, no default) + +.ti -1i +mh\-sequences:\ \&.mh\(rusequences +.br +The name of the file in each folder which defines public sequences. +To disable the use of public sequences, +leave the value portion of this entry blank. +(profile, default: \&.mh\(rusequences) + +.ti -1i +atr\-\fIseq\fR\-\fIfolder\fR:\ 172\0178\-181\0212 +.br +Keeps track of the private sequence called \fIseq\fR in the specified folder. +(context, no default) + +.ti -1i +Editor:\ /usr/ucb/ex +.br +Defines editor to be used by +\fIcomp\fR\0(1), \fIdist\fR\0(1), \fIforw\fR\0(1), and \fIrepl\fR\0(1). +(profile, default: /usr/bin/vi) + +.ti -1i +Msg\-Protect:\ 644 +.br +Defines octal protection bits for message files. +See \fIchmod\fR\0(1) for an explanation of the octal number. +(profile, default: 0644) + +.ti -1i +Folder\-Protect:\ 711 +.br +Defines protection bits for folder directories. +(profile, default: 0711) + +.ti -1i +\fIprogram\fR:\ default switches +.br +Sets default switches to be used whenever the mh program +\fIprogram\fR is invoked. +For example, one could override the \fIEditor\fR: +profile component when replying to messages by adding a +component such as: +.br + repl: \-editor /bin/ed +.br +(profile, no defaults) + +.ti -1i +\fIlasteditor\fR\-next:\ nexteditor +.br +Names \*(lqnexteditor\*(rq to be the default editor after using \*(lqlasteditor\*(rq. +This takes effect at \*(lqWhat now?\*(rq level in +\fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR. +After editing the draft with \*(lqlasteditor\*(rq, +the default editor is set to be \*(lqnexteditor\*(rq. +If the user types \*(lqedit\*(rq without any arguments to \*(lqWhat now?\*(rq, +then \*(lqnexteditor\*(rq is used. +(profile, no default) + +.ti -1i +bboards: system +.br +Tells \fIbbc\fR which BBoards you are interested in. +(profile, default: system) + +.ti -1i +Folder\-Stack: \fIfolders\fR +.br +The contents of the folder-stack for the \fIfolder\fR command. +(context, no default) + +.ti -1i +mhe: +.br +If present, tells \fIinc\fR to compose an \fIMHE\fR auditfile in addition to +its other tasks. +\fIMHE\fR is Brian Reid's \fIEmacs\fR front-end for \fIMH\fR. +An early version is supplied with the \fImh.6\fR distribution. +(profile, no default) + +.ti -1i +Alternate\-Mailboxes: mh@uci\-750a, bug-mh* +.br +Tells \fIrepl\fR and \fIscan\fR which addresses are really yours. +In this way, \fIrepl\fR knows which addresses should be included in the reply, +and \fIscan\fR knows if the message really originated from you. +Addresses must be separated by a comma, +and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the +mailboxes you indicate, +as local nicknames for hosts are not replaced with their official site names. +For each address, +if a host is not given, +then that address on any host is considered to be you. +In addition, +an asterisk (`*') may appear at either or both ends of the mailbox and host +to indicate wild-card matching. +(profile, default: your user-id) + +.ti -1i +Aliasfile: aliases other-alias +.br +Indicates aliases files for \fIali\fR, \fIwhom\fR, and \fIsend\fR. +This may be used instead of the `\-alias file' switch. +(profile, no default) + +.ti -1i +Draft\-Folder: drafts +.br +Indicates a default draft folder for \fIcomp\fR, \fIdist\fR, \fIforw\fR, +and \fIrepl\fR. +(profile, no default) + +.ti -1i +digest\-issue\-\fIlist\fR:\ 1 +.br +Tells \fIforw\fR the last issue of the last volume sent for the digest +\fIlist\fR. +(context, no default) + +.ti -1i +digest\-volume\-\fIlist\fR:\ 1 +.br +Tells \fIforw\fR the last volume sent for the digest \fIlist\fR. +(context, no default) + +.ti -1i +MailDrop: .mail +.br +Tells \fIinc\fR your maildrop, if different from the default. +This is superceded by the \fBMAILDROP\fR envariable. +(profile, default: /var/spool/mail/$USER) + +.ti -1i +Signature: RAND MH System (agent: Marshall Rose) +.br +Tells \fIsend\fR your mail signature. +This is superceded by the \fBSIGNATURE\fR envariable. +If \fBSIGNATURE\fR is not set and this profile entry is not present, +the \*(lqgcos\*(rq field of the \fI/etc/passwd\fP file will be used; +otherwise, +on hosts where \fIMH\fR was configured with the UCI option, +the file $HOME/.signature is consulted. +Your signature will be added to the address \fIsend\fP +puts in the \*(lqFrom:\*(rq header; +do not include an address in the signature text. +(profile, no default) +.in -1i + +The following profile elements are used whenever an \fIMH\fR program +invokes some other program such as \fImore\fR\0(1). +The \fI\&.mh\(ruprofile\fR can be used to select alternate +programs if the user wishes. The default values are given in +the examples. + +.nf +.in +.5i +.ta \w'whatnowproc: 'u +^fileproc:~^/opt/mh-6.8.5/bin/refile +^incproc:~^/opt/mh-6.8.5/bin/inc +^installproc:~^/opt/mh-6.8.5/lib/install\-mh +^lproc:~^/usr/ucb/more +^mailproc:~^/opt/mh-6.8.5/bin/mhmail +^mhlproc:~^/opt/mh-6.8.5/lib/mhl +^moreproc:~^/usr/ucb/more +^mshproc:~^/opt/mh-6.8.5/bin/msh +^packproc:~^/opt/mh-6.8.5/bin/packf +^postproc:~^/opt/mh-6.8.5/lib/post +^rmmproc:~^none +^rmfproc:~^/opt/mh-6.8.5/bin/rmf +^sendproc:~^/opt/mh-6.8.5/bin/send +^showproc:~^/usr/ucb/more +^whatnowproc:~^/opt/mh-6.8.5/bin/whatnow +^whomproc:~^/opt/mh-6.8.5/bin/whom +.re +.in -.5i +.fi + +If you define the envariable \fBMH\fR, +you can specify a profile other than \fI\&.mh\(ruprofile\fR to be read +by the \fIMH\fR programs that you invoke. +If the value of \fBMH\fR is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. +This is one of the very few exceptions in \fIMH\fR where non-absolute +pathnames are not considered relative to the user's \fIMH\fR directory. + +Similarly, +if you define the envariable \fBMHCONTEXT\fR, +you can specify a context other than the normal context file +(as specified in the \fIMH\fR profile). +As always, +unless the value of \fBMHCONTEXT\fR is absolute, +it will be presumed to start from your \fIMH\fR directory. + +\fIMH\fR programs also support other envariables: + +.in +.5i +.ti -.5i +\fBMAILDROP\fR\0: tells \fIinc\fR the default maildrop +.br +This supercedes the \*(lqMailDrop:\*(rq profile entry. + +.ti -.5i +\fBSIGNATURE\fR\0: tells \fIsend\fR and \fIpost\fR your mail signature +.br +This supercedes the \*(lqSignature:\*(rq profile entry. + +.ti -.5i +\fBHOME\fR\0: tells all \fIMH\fR programs your home directory + +.ti -.5i +\fBSHELL\fR\0: tells \fIbbl\fR the default shell to run + +.ti -.5i +\fBTERM\fR\0: tells \fIMH\fR your terminal type +.br +The \fBTERMCAP\fR envariable is also consulted. +In particular, +these tell \fIscan\fR and \fImhl\fR how to clear your terminal, +and how many columns wide your terminal is. +They also tell \fImhl\fR how many lines long your terminal screen is. + +.ti -.5i +\fBeditalt\fR\0: the alternate message +.br +This is set by \fIdist\fR and \fIrepl\fR during edit sessions +so you can peruse the message being distributed or replied to. +The message is also available through a link called \*(lq@\*(rq +in the current directory if your current working directory and +the folder the message lives in are on the same UNIX filesystem. + +.ti -.5i +\fBmhdraft\fR\0: the path to the working draft +.br +This is set by \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR +to tell the \fIwhatnowproc\fR which file to ask \*(lqWhat now?\*(rq questions +about. +In addition, +\fIdist\fR, \fIforw\fR, and \fIrepl\fR set \fBmhfolder\fR if appropriate. +Further, +\fIdist\fR and \fIrepl\fR set \fBmhaltmsg\fR to tell the +\fIwhatnowproc\fR about an alternate message associated with the draft +(the message being distributed or replied to), +and +\fIdist\fR sets \fBmhdist\fR to tell the \fIwhatnowproc\fR that +message re-distribution is occurring. +Also, +\fBmheditor\fR is set to tell the \fIwhatnowproc\fR the user's choice of +editor (unless overridden by `\-noedit'). +Similarly, +\fBmhuse\fR may be set by \fIcomp\fR. +Finally, +\fBmhmessages\fR is set by \fIdist\fR, \fIforw\fR, and \fIrepl\fR +if annotations are to occur +(along with \fBmhannotate\fR, and \fBmhinplace\fR). +It's amazing all the information that has to get passed via envariables to +make the \*(lqWhat now?\*(rq interface look squeaky clean to the \fIMH\fR +user, isn't it? +The reason for all this +is that the \fIMH\fR user can select \fIany\fR program as the +\fIwhatnowproc\fR, including one of the standard shells. +As a result, it's not possible to pass information via an argument list. +.br +If the WHATNOW option was set during \fIMH\fR configuration +(type `\-help' to an \fIMH\fR command to find out), +and if this envariable is set, +if the commands \fIrefile\fR, \fIsend\fR, \fIshow\fR, or \fIwhom\fR +are not given any `msgs' arguments, +then they will default to using the file indicated by \fBmhdraft\fR. +This is useful for getting the default behavior supplied by the default +\fIwhatnowproc\fR. + +.ti -.5i +\fBmhfolder\fR\0: the folder containing the alternate message +.br +This is set by \fIdist\fR and \fIrepl\fR during edit sessions +so you can peruse other messages in the current folder +besides the one being distributed or replied to. +The \fBmhfolder\fR envariable is also +set by \fIshow\fR, \fIprev\fR, and \fInext\fR +for use by \fImhl\fR. + +.ti -.5i +\fBMHBBRC\fR\0: +.br +If you define the envariable \fBMHBBRC\fR, +you can specify a BBoards information file other than \fI\&.bbrc\fR to be +read by \fIbbc\fR. +If the value of \fBMHBBRC\fR is not absolute, +(i.e., does not begin with a \fB/\fR\0), +it will be presumed to start from the current working directory. + +.ti -.5i +\fBMHFD\fR\0: +.br +If the OVERHEAD option was set during \fIMH\fR configuration +(type `\-help' to an \fIMH\fR command to find out), +then if this envariable is set, +\fIMH\fR considers it to be the number of a file descriptor which is opened, +read-only to the \fIMH\fR profile. +Similarly, +if the envariable \fBMHCONTEXTFD\fR is set, +this is the number of a file descriptor which is opened read-only +to the \fIMH\fR context. +This feature of \fIMH\fR is experimental, +and is used to examine possible speed improvements for \fIMH\fR startup. +Note that these envariables must be set and non-empty to enable this feature. +However, +if OVERHEAD is enabled during \fIMH\fR configuration, +then when \fIMH\fR programs call other \fIMH\fR programs, +this scheme is used. +These file descriptors are not closed throughout the execution of the +\fIMH\fR program, +so children may take advantage of this. +This approach is thought to be completely safe and does result in some +performance enhancements. +.in -.5i + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^or $MH~^Rather than the standard profile +^/context~^The user context +^or $CONTEXT~^Rather than the standard context +^/\&.mh\(rusequences~^Public sequences for +.Pr +All +.Sa +mh(1), environ(5), mh-sequence(5) +.De +None +.Co +All +.Hi +In previous versions of \fIMH\fR, +the current-message value of a writable folder was kept in a file +called \*(lqcur\*(rq in the folder itself. +In \fImh.3\fR, +the \fI\&.mh\(ruprofile\fR contained the current-message values for +all folders, regardless of their writability. + +In all versions of \fIMH\fR since \fImh.4\fR, +the \fI\&.mh\(ruprofile\fR contains only static information, +which \fIMH\fR programs will \fBNOT\fR update. +Changes in context are made to the \fIcontext\fR file kept in the users MH +\fIdirectory\fR. +This includes, but is not limited to: +the \*(lqCurrent\-Folder\*(rq entry and all private sequence information. +Public sequence information is kept in a file called \fI\&.mh\(rusequences\fR +in each folder. + +To convert from the format used in releases of \fIMH\fR prior +to the format used in the \fImh.4\fR release, +\fIinstall\-mh\fR should be invoked with the `\-compat' switch. +This generally happens automatically on \fIMH\fR systems generated with the +\*(lqCOMPAT\*(rq option during \fIMH\fR configuration. + +The \fI\&.mh\(ruprofile\fR may override the path of the \fIcontext\fR file, +by specifying a \*(lqcontext\*(rq entry (this must be in lower-case). +If the entry is not absolute (does not start with a \fB/\fR\0), +then it is interpreted relative to the user's \fIMH\fR directory. +As a result, +you can actually have more than one set of private sequences by using +different context files. +.Bu +The shell quoting conventions are not available in the \&.mh\(ruprofile. +Each token is separated by whitespace. + +There is some question as to what kind of arguments should be placed in +the profile as options. +In order to provide a clear answer, +recall command line semantics of all \fIMH\fR programs: +conflicting switches (e.g., `\-header and `\-noheader') +may occur more than one time on the command line, +with the last switch taking effect. +Other arguments, +such as message sequences, filenames and folders, +are always remembered on the invocation line and are not superseded by +following arguments of the same type. +Hence, it is safe to place only switches (and their arguments) +in the profile. + +If one finds that an \fIMH\fR +program is being invoked again and again with the same arguments, +and those arguments aren't switches, +then there are a few possible solutions to this problem. +The first is to create a (soft) link in your \fI$HOME/bin\fR directory +to the \fIMH\fR program of your choice. +By giving this link a different name, +you can create a new entry in your profile +and use an alternate set of defaults for the \fIMH\fR command. +Similarly, you could create a small shell script which called the +\fIMH\fR program of your choice with an alternate set of invocation +line switches (using links and an alternate profile entry is preferable +to this solution). + +Finally, the \fIcsh\fR user could create an alias for the command of the form: + +.ti +.5i +alias cmd 'cmd arg1 arg2 ...' + +In this way, the user can avoid lengthy type-in to the shell, +and still give \fIMH\fR commands safely. (Recall that some \fIMH\fR +commands invoke others, and that in all cases, the profile is read, +meaning that aliases are disregarded beyond an initial command invocation) +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-sequence.me b/docs/historical/mh-6.8.5/doc/mh-sequence.me new file mode 100644 index 0000000..e8d2ca5 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-sequence.me @@ -0,0 +1,229 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-sequence.rf,v 1.11 1992/05/12 22:23:34 jromine Exp $ +.SC MH-SEQUENCE 5 +.NA +mh-sequence \- sequence specification for MH message system +.SY +most \fIMH\fR commands +.DE +Most \fIMH\fP commands accept a `msg' or `msgs' specification, where +`msg' indicates one message and `msgs' indicates one or more +messages. +To designate a message, you may use either its number (e.g., 1, 10, 234) +or one of these \*(lqreserved\*(rq message names: +.in +.5i +.sp 1 +.nf +.ta +\w'\fIName\fP 'u +\fIName\fP \fIDescription\fR +first the first message in the folder +last the last message in the folder +cur the most recently accessed message +prev the message numerically preceding \*(lqcur\*(rq +next the message numerically following \*(lqcur\*(rq +.re +.fi +.in -.5i + +In commands that take a `msg' argument, the default is \*(lqcur\*(rq. +As a shorthand, \*(lq\&.\*(rq is equivalent to \*(lqcur\*(rq. + +For example: In a folder containing five messages numbered 5, 10, 94, +177 and 325, \*(lqfirst\*(rq is 5 and \*(lqlast\*(rq is 325. +If \*(lqcur\*(rq is 94, then \*(lqprev\*(rq is 10 and \*(lqnext\*(rq +is 177. + +The word `msgs' indicates that one or more messages may be specified. +Such a specification consists of one message designation or of several message +designations separated by spaces. +A message designation consists either +of a message name as defined above, or a message range. + +A message range is specified as \*(lqname1\-name2\*(rq +or \*(lqname:n\*(rq, +where `name', `name1' and `name2' are message names, and `n' is an integer. + +The specification \*(lqname1\-name2\*(rq +designates all currently-existing messages from `name1' to `name2' inclusive. +The message name \*(lqall\*(rq is a shorthand for the message +range \*(lqfirst\-last\*(rq. + +The specification \*(lqname:n\*(rq designates up to `n' messages. +These messages start with `name' if `name' is a message number +or one of the reserved names \*(lqfirst\*(rq \*(lqcur\*(rq, or \*(lqnext\*(rq, +The messages end with `name' if `name' is \*(lqprev\*(rq or \*(lqlast\*(rq. +The interpretation of `n' may be overridden by preceding `n' with +a plus or minus sign; `+n' always means up to `n' messages starting +with `name', and `\-n' always means up to `n' messages ending +with `name'. + +In commands which accept a `msgs' argument, the default is either +\*(lqcur\*(rq or \*(lqall\*(rq, depending on which makes more sense +for each command (see the individual man pages for details). +Repeated specifications of the same message have the same effect as +a single specification of the message. + +.Uh "User\-Defined Message Sequences" +In addition to the \*(lqreserved\*(rq (pre-defined) message names given above, +\fIMH\fP supports user-defined sequence names. +User-defined sequences allow the \fIMH\fR user a tremendous amount of power +in dealing with groups of messages in the same folder +by allowing the user to bind a group of messages to a meaningful symbolic +name. + +The name used to denote a message sequence must consist of +an alphabetic character followed by zero or more +alphanumeric characters, and can not be one of the \*(lqreserved\*(rq +message names above. +After defining a sequence, +it can be used wherever an \fIMH\fR command expects a `msg' or `msgs' +argument. + +Some forms of message ranges are allowed with user-defined +sequences. The +specification \*(lqname:n\*(rq may be used, and it +designates up to the first `n' messages (or last `n' messages for `\-n') +which are elements of the user-defined sequence `name'. + +The specifications \*(lqname:next\*(rq and \*(lqname:prev\*(rq +may also be used, and they designate the +next or previous message (relative to the current message) +which is an element of the user-defined sequence `name'. +The specificaitions +\*(lqname:first\*(rq and \*(lqname:last\*(rq are equivalent +to \*(lqname:1\*(rq and \*(lqname:\-1\*(rq, respectively. +The specification \*(lqname:cur\*(rq is not allowed +(use just \*(lqcur\*(rq instead). +The syntax of these message range +specifcations is subject to change +in the future. + +User-defined sequence names +are specific to each folder. +They are defined using the \fIpick\fP and \fImark\fP commands. + +.Uh "Public and Private User-Defined Sequences" +There are two varieties of sequences: \fIpublic\fR sequences +and \fIprivate\fR sequences. +\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user that +can read that folder and are kept in the \&.mh\(rusequences file in the folder. +\fIPrivate\fR sequences are accessible only to the \fIMH\fR user that defined +those sequences and are kept in the user's \fIMH\fR context file. +By default, +\fIpick\fR and \fImark\fR create \fIpublic\fR sequences +if the folder for which the sequences are being defined is writable by the +\fIMH\fR user. +Otherwise, \fIprivate\fR sequences are created. +This can be overridden with the `\-public' and `\-private' switches +to \fImark\fP. + +.Uh "Sequence Negation" +\fIMH\fP provides the ability to select all messages +not elements of a user-defined sequence. To do this, +the user should define the entry +\*(lqSequence\-Negation\*(rq in the \fIMH\fR profile file; +its value may be any string. +This string is then used to preface an existing user-defined +sequence name. This specification then refers to those messages +not elements of the specified sequence name. +For example, if the profile entry is: + +.ti +.5i +Sequence\-Negation:\^ not + +then anytime an \fIMH\fR command is given \*(lqnotfoo\*(rq as a `msg' or +`msgs' argument, +it would substitute all messages that are not elements of the sequence +\*(lqfoo\*(rq. + +Obviously, +the user should beware of defining sequences with names that +begin with the value of the +\*(lqSequence\-Negation\*(rq profile entry. + +.Uh "The Previous Sequence" +\fIMH\fR provides the ability +to remember the `msgs' or +`msg' argument last given to an \fIMH\fR command. +The entry \*(lqPrevious\-Sequence\*(rq should be defined in the +\fIMH\fR profile; its value should be a sequence name or multiple +sequence names separated by spaces. +If this entry is defined, when +when an \fIMH\fP command finishes, +it will define the sequence(s) named in the value of this entry to be +those messages that were specified to the command. +Hence, a profile entry of + +.ti +.5i +Previous\-Sequence:\^ pseq + +directs any \fIMH\fR command that accepts a `msg' or `msgs' argument to +define the sequence \*(lqpseq\*(rq as those messages when it finishes. + +\fBNote:\fP there can be a performance penalty in using the +\*(lqPrevious\-Sequence\*(rq facility. +If it is used, +\fBall\fP \fIMH\fR programs have to write the sequence information +to the \&.mh\(rusequences file for +the folder each time they run. +If the \*(lqPrevious\-Sequence\*(rq profile entry is not included, +only \fIpick\fR and \fImark\fR will write to the \&.mh\(rusequences file. + +.Uh "The Unseen Sequence" +Finally, some users like to indicate messages which have not been +previously seen by them. +Both \fIinc\fR and \fIshow\fR honor the profile entry +\*(lqUnseen\-Sequence\*(rq to support this activity. +This entry in the \&.mh\(ruprofile should be defined +as one or more sequence names separated by spaces. +If there is a value for \*(lqUnseen\-Sequence\*(rq in the profile, +then whenever \fIinc\fR places new messages in a folder, +the new messages will also be added to the sequence(s) named +in the value of this entry. +Hence, a profile entry of + +.ti +.5i +Unseen\-Sequence:\^ unseen + +directs \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq. +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile, +however, the sequence(s) will \fBnot\fR be zeroed by \fIinc\fP. + +Similarly, +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\^) displays a message, +that message will be removed +from any sequences named by the +\*(lqUnseen\-Sequence\*(rq entry in the profile. + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/context~^The user context +^/\&.mh\(rusequences~^Public sequences for +.Pr +^Sequence\-Negation:~^To designate messages not in a sequence +.Ps +^Previous\-Sequence:~^The last message specification given +.Ps +^Unseen\-Sequence:~^Those messages not yet seen by the user +.Sa +mh(1), mark(1), pick(1), mh-profile(5) +.De +None +.Co +All +.Bu +User-defined sequences are stored in the \&.mh\(rusequences file +as a series of message specifications separated by spaces. +If a user-defined sequence contains too many individual +message specifications, +that line in the file may become too long for \fIMH\fP to handle. +This will generate the error message \*(lq\&.mh\(rusequences is +poorly formatted\*(rq. You'll have to edit the file by hand to +remove the offending line. + +This can happen to users who define the \*(lqPrevious\-Sequence\*(rq entry in +the \fIMH\fP profile +and have a folder containing many messages with gaps in the numbering. +A workaround for large folders is to minimize numbering gaps by using +\*(lqfolder\ \-pack\*(rq often. +.En diff --git a/docs/historical/mh-6.8.5/doc/mh-tailor.me b/docs/historical/mh-6.8.5/doc/mh-tailor.me new file mode 100644 index 0000000..bb78884 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh-tailor.me @@ -0,0 +1,413 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh-tailor.rf,v 2.21 1994/03/23 23:32:50 jromine Exp $ +.SC MH-TAILOR 5 +.NA +mh-tailor, mtstailor \- system customization for MH message handler + +.SY +\fI/opt/mh-6.8.5/lib/mtstailor\fP +.DE +The file /opt/mh-6.8.5/lib/mtstailor defines run-time options for those \fIMH\fR +programs which interact (in some form) with the message transport system. +At present, these (user) programs are: +\fIap\fR, \fIconflict\fR, \fIinc\fR, \fImsgchk\fR, +\fImsh\fR, \fIpost\fR, \fIrcvdist\fR, and \fIrcvpack\fR. + +Each option should be given on a single line. Blank lines +and lines which begin with `#' are ignored. +The options available along with default values and a description of their +meanings are listed below: + +.in +.5i +.ti -.5i +localname: +.br +The host name \fIMH\fR considers local. +If not set, depending on the version of UNIX you're running, +\fIMH\fR will query the system for this value +(e.g., , gethostname, etc.). +This has no equivalent in the \fIMH\fR configuration file. +POP client hosts should set this value to the name of the POP service host. + +.ti -.5i +localdomain: +.br +If this is set, a `.' followed by this string will be +appended to your host name. +This might be useful for sites +where the host name returned by the system +(e.g., , gethostname, etc.), +is not a \*(lqfully qualified domain name\*(rq +(i.e., does not contain a `.'). + +.ti -.5i +clientname: +.br +The host name \fIMH\fP will give in the +SMTP \fBHELO\fP (and \fBEHLO\fP) command, when posting mail. +If not set, the host name \fIMH\fR considers local is used +(see \*(lqlocalname\*(rq above). +If empty, no \fBHELO\fP command will be given. +Although the \fBHELO\fP command is required by RFC 821, +many SMTP servers do not require it. +.sp +Early versions of SendMail will fail if the host name +given in the \fBHELO\fP command is the local host; +later versions of SendMail will complain if you omit the +\fBHELO\fP command. If you run SendMail, find out what +your system expects and set this field if needed. + +.ti -.5i +systemname: +.br +The name of the local host in the \fIUUCP\fR \*(lqdomain\*(rq. +If not set, depending on the version of UNIX you're running, +\fIMH\fR will query the system for this value. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +mmdfldir: /var/spool/mail +.br +The directory where maildrops are kept. +If this is empty, the user's home directory is used. +This overrides the \*(lqmail\*(rq field in the \fIMH\fR configuration file. + +.ti -.5i +mmdflfil: +.br +The name of the maildrop file in the directory where maildrops are kept. +If this is empty, the user's login name is used. +This overrides the \*(lqmail\*(rq field in the \fIMH\fR configuration file. + +.ti -.5i +mmdelim1: \\001\\001\\001\\001\\n +.br +The beginning-of-message delimiter for maildrops. + +.ti -.5i +mmdelim2: \\001\\001\\001\\001\\n +.br +The end-of-message delimiter for maildrops. + +.ti -.5i +mmailid: 0 +.br +If non-zero, then support for MMailids in \fB/etc/passwd\fR is enabled. +Basically, the pw_gecos field in the password file is of the form + +.ti +.5i +My Full Name + +The \fIMH\fR internal routines that deal with user and full names will return +\*(lqmailid\*(rq and \*(lqMy Full Name\*(rq respectively. + +.ti -.5i +lockstyle: 0 +.br +The locking discipline to perform. +A value of \*(lq0\*(rq means to use kernel-level locking +if available. +(See below for more details.) +On systems compiled without kernel-level locking, +standard \fIBellMail\fR locking is used. +A value of \*(lq1\*(rq means to use \fIBellMail\fR locking always +(the name of the lock is based on the file name). +A value of \*(lq2\*(rq means to use \fIMMDF\fR locking always +(the name of the lock is based on device/inode pairs). + +.ti -.5i +lockldir: +.br +The name of the directory for making locks. +If your system isn't configured to use kernel-level locking, +then this directory is used when creating locks. +If the value is empty, +then the directory of the file to be locked is used. + +.ti -.5i +maildelivery: /opt/mh-6.8.5/lib/maildelivery +.br +The name of the system-wide default \fI\&.maildelivery\fR file. +See \fImhook\fR\0(1) for the details. + +.ti -.5i +everyone: 200 +.br +The highest user-id which should NOT receive mail addressed to +\*(lqeveryone\*(rq. + +.ti -.5i +noshell: +.br +If set, then each user-id greater than \*(lqeveryone\*(rq +that has a login shell equivalent to the given value (e.g., +\*(lq/bin/csh\*(rq) +indicates that mail for \*(lqeveryone\*(rq should not be sent to them. +This is useful for handling admin, dummy, and guest logins. +.\" @BEGIN: MF +.in -.5i +.Uh "Mail Filtering" +These options are only available if you compiled \fIMH\fP with +\*(lqoptions\ MF\*(rq. + +.in +.5i +.ti -.5i +uucpchan: name of \fIUUCP\fR channel +.br +Usually \*(lqUUCP\*(rq. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +uucpldir: /usr/spool/mail +.br +The name of the directory where \fIUUCP\fR maildrops are kept. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +uucplfil: +.br +The name of the maildrop file in the directory where \fIUUCP\fR maildrops are +kept. +If this is empty, the user's login name is used. +This has no equivalent in the \fIMH\fR configuration file. + +.ti -.5i +umincproc: /opt/mh-6.8.5/lib/uminc +.br +The path to the program that filters \fIUUCP\fR\^-style maildrops to +\fIMMDF\fR\^-style maildrops. +.\" @END: MF +.\" @BEGIN: MHMTS +.in -.5i +.Uh "Stand-Alone Delivery" +These options are only available if you compiled \fIMH\fP +to use stand-alone delivery (i.e., \*(lqmts:\ mh\*(rq). + +.in +.5i +.ti -.5i +mailqdir: /usr/spool/netmail +.br +The directory where network mail is queued. + +.ti -.5i +tmailqdir: /usr/tmp +.br +The directory where network mail queue files are built. + +.ti -.5i +syscpy: 1 +.br +If ON, unauthorized mail is copied to the overseer. + +.ti -.5i +overseer: root +.br +The user that receives reports of unauthorized mail. + +.ti -.5i +mailer: root +.br +The user acting for the mail system. + +.ti -.5i +fromtmp: /tmp/rml.f.XXXXXX +.br +The \fImktemp\fR template for storing from lines. + +.ti -.5i +msgtmp: /tmp/rml.m.XXXXXX +.br +The \fImktemp\fR template for storing the rest of the message. + +.ti -.5i +errtmp: /tmp/rml.e.XXXXXX +.br +The \fImktemp\fR template for storing error messages from other mailers. + +.ti -.5i +tmpmode: 0600 +.br +The octal mode which temporary files are set to. + +.ti -.5i +okhosts: /opt/mh-6.8.5/lib/Rmail.OKHosts +.br +A file containing a list of hosts that can send ARPAnet mail. + +.ti -.5i +okdests: /opt/mh-6.8.5/lib/RMail.OKDests +.br +A file containing a list of hosts that can always receive mail. +.\" @END: MHMTS +.\" @BEGIN: SMTP +.in -.5i +.Uh "The `/smtp' MTS Suffix" +These options are only available if you compiled \fIMH\fP with +the \*(lq/smtp\*(rq suffix to your \*(lqmts:\*(rq configuration. + +.in +.5i +.ti -.5i +hostable: /opt/mh-6.8.5/lib/hosts +.br +The exceptions file for /etc/hosts used by \fIpost\fR to try to find official +names. +The format of this file is quite simple: + +.in +.5i +1. Comments are surrounded by sharp (`#') and newline. +.br +2. Words are surrounded by white space. +.br +3. The first word on the line is the official name of a host. +.br +4. All words following the official names are aliases for that host. +.in -.5i + +.ti -.5i +servers: localhost \\01localnet +.br +A lists of hosts and networks which to look for SMTP servers +when posting local mail. +It turns out this is a major win for hosts which don't run an message +transport system. +The value of \*(lqservers\*(rq should be one or more items. +Each item is the name of either a host or a net +(in the latter case, precede the name of the net by a \\01). +This list is searched when looking for a smtp server to post mail. +If a host is present, the SMTP port on that host is tried. +If a net is present, +the SMTP port on each host in that net is tried. +Note that if you are running with the BIND code, +then any networks specified are ignored +(sorry, the interface went away under BIND). +.\" @END: SMTP +.\" @BEGIN: SENDMTS +.in -.5i +.Uh "SendMail" +This option is only available if you compiled \fIMH\fP to +use \fISendMail\fP as your delivery agent (i.e., \*(lqmts:\ sendmail\*(rq). + +.in +.5i +.ti -.5i +sendmail: /usr/lib/sendmail +.br +The pathname to the \fIsendmail\fR program. +.\" @END: SENDMTS +.\" @BEGIN: POP +.in -.5i +.Uh "Post Office Protocol" +This option is only available if you compiled \fIMH\fP with POP +support enabled (i.e., \*(lqpop:\ on\*(rq). + +.in +.5i +.ti -.5i +pophost: +.br +The name of the default POP service host. +If this is not set, +then \fIMH\fR looks in the standard maildrop areas for waiting mail, +otherwise the named POP service host is consulted. +.\" @END: POP +.\" @BEGIN: BBSERVER +.in -.5i +.Uh "BBoards Delivery" +This option is only available if you compiled \fIMH\fP with +\*(lqbbdelivery:\ on\*(rq. + +.in +.5i +.ti -.5i +bbdomain: +.br +The local BBoards domain (a UCI hack). +.\" @END: BBSERVER +.\" @BEGIN: BPOP +.in -.5i +.Uh "BBoards & The POP" +These options are only available if you compiled \fIMH\fP with +\*(lqbboards:\ pop\*(rq and \*(lqpop:\ on\*(rq. + +.in +.5i +.ti -.5i +popbbhost: +.br +The POP service host which also acts as a BBoard server. +This variable should be set on the POP BBoards client host. + +.ti -.5i +popbbuser: +.br +The guest account on the POP/BB service host. +This should be a different login ID than either the POP user or the BBoards +user. +(The user-id \*(lqftp\*(rq is highly recommended.) +This variable should be set on both the POP BBoards client and service hosts. + +.ti -.5i +popbblist: /opt/mh-6.8.5/lib/hosts.popbb +.br +A file containing of lists of hosts that are allowed to use the POP facility +to access BBoards using the guest account. +If this file is not present, +then no check is made. +This variable should be set on the POP BBoards service host. +.\" @END: BPOP +.\" @BEGIN: NNTP +.in -.5i +.if n .ne 8 +.Uh "BBoards & The NNTP" +This option is only available if you compiled \fIMH\fP with +\*(lqbboards:\ nntp\*(rq and \*(lqpop:\ on\*(rq. + +.in +.5i +.ti -.5i +nntphost: +.br +The host which provides the NNTP service. +This variable should be set on the NNTP BBoards client host. +.\" @END: NNTP +.in -.5i +.Uh "File Locking" +A few words on locking: +\fIMH\fR has a flexible locking system for making locks on files. +There are two \fBmtstailor\fR variables you should be aware of +\*(lqlockstyle\*(rq and \*(lqlockldir\*(rq. +The first controls the method of locking, +the second says where lock files should be created. + +The \*(lqlockstyle\*(rq variable can take on three values: 0, 1, 2. +A value of 0 is useful on systems with kernel-level locking. +If you are on a \fBBSD42\fP system, \fIMH\fP assumes +you have the \fIflock\fR system call. +On other systems: +define \fBFLOCK\fP if you want to use the \fIflock\fP system call; +define \fBLOCKF\fP if you want to use the \fIlockf\fP system call; +or define \fBFCNTL\fP if you want to use the \fIfcntl\fP system call +for kernel-level locking. +If you haven't configured \fIMH\fP to use kernel-level locking, +a locking style of 0 is considered the same as locking style 1. + +A value of 1 or 2 specifies that a file should be created whose existence +means \*(lqlocked\*(rq and whose non-existence means \*(lqunlocked\*(rq. +A value of 1 says to construct the lockname by appending \*(lq.lock\*(rq to +the name of the file being locked. +A value of 2 says to construct the lockname by looking at the device and +inode numbers of the file being locked. +If the \*(lqlockldir\*(rq variable is not specified, +lock files will be created in the directory where the file being locked +resides. +Otherwise, lock files will be created in the directory specified by +\*(lqlockldir\*(rq. +Prior to installing \fIMH\fR, +you should see how locking is done at your site, +and set the appropriate values. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +.Pr +None +.Sa +mh\-gen(8), mh\-mts(8) +.De +As listed above +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/mh.me b/docs/historical/mh-6.8.5/doc/mh.me new file mode 100644 index 0000000..b6e6d2e --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mh.me @@ -0,0 +1,268 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mh.rf,v 1.12 1992/10/28 17:00:27 jromine Exp $ +.if '\*(ZZ'-man' \{\ +.SC MH 1 +.NA +mh \- Message Handler +.SY +any \fIMH\fR command +.DE +\fIMH\fR is the name of a powerful message handling system. +Rather then being a single comprehensive program, +\fIMH\fR consists of a collection of fairly simple +single-purpose programs to send, receive, save, +and retrieve messages. The user should refer +to the \fIMH User's Manual\fR +and the pages for the \fIMH\fR +programs in the Unix Programmers Manual. + +Unlike \fImail\fR, the standard UNIX mail user interface program, +\fIMH\fR is not a closed system which must be explicitly run, +then exited when you wish to return to the shell. +You may freely intersperse \fIMH\fR commands with other shell commands, +allowing you to read and answer your mail while you have (for example) +a compilation running, +or search for a file or run programs as needed to find the answer to +someone's question before answering their mail. + +The rest of this manual entry is a quick tutorial which will teach you the +basics of \fIMH\fR. +You should read the manual entries for the individual programs for complete +documentation. + +To get started using \fIMH\fR, put the directory +\fB/opt/mh-6.8.5/bin\fR on your \fB$PATH\fR. +This is best done in one of the files: +\fB\&.profile\fR, \fB\&.login\fR, or \fB\&.cshrc\fR +in your home directory. +(Check the manual entry for the shell you use, +in case you don't know how to do this.) +Run the \fIinc\fR command. +If you've never used \fIMH\fR before, +it will create the necessary default files and directories after +asking you if you wish it to do so. + +\fIinc\fR moves mail from your system maildrop +into your \fIMH\fR `+inbox' folder, +breaking it up into separate files +and converting it to \fIMH\fR format as it goes. +It prints one line for each message it processes, +containing the from field, the subject field +and as much of the first line of the message as will fit. +It leaves the first message it processes as your current message. +You'll need to run \fIinc\fR each time you wish to incorporate new mail +into your \fIMH\fR file. + +\fIscan\fR prints a list of the messages in your current folder. + +The commands: +\fIshow\fR, \fInext\fR, and \fIprev\fR +are used to read specific messages from the current folder. +\fIshow\fR displays the current message, +or a specific message, which may be specified by its number, +which you pass as an argument to \fIshow\fR. +\fInext\fR and \fIprev\fR display, respectively, +the message numerically after or before the current message. +In all cases, the message displayed becomes the current message. +If there is no current message, +\fIshow\fR may be called with an argument, +or \fInext\fR may be used to advance to the first message. + +\fIrmm\fR (remove message) deletes the current message. +It may be called with message numbers passed as arguments, +to delete specific messages. + +\fIrepl\fR is used to respond to the current message (by default). +It places you in the editor with a prototype response form. +While you're in the editor, +you may peruse the item you're responding to by reading the file \fB@\fR. +After completing your response, +type \fBl\fR to review it, +or \fBs\fR to send it. + +\fIcomp\fR allows you to compose a message by putting you in the editor on +a prototype message form, +and then lets you send it. + +All the \fIMH\fR commands may be run with the single argument: `\-help', +which causes them to print a list of the arguments they may be invoked with. + +Commands which take a message number as an argument +(\fIscan\fR, \fIshow\fR, \fIrepl\fR, ...) +also take one of the words: +\fIfirst\fR, \fIprev\fR, \fIcur\fR, \fInext\fR, or \fIlast\fR +to indicate (respectively) the first, previous, current, next, or last +message in the current folder (assuming they are defined). + +Commands which take a range of message numbers +(\fIrmm\fR, \fIscan\fR, \fIshow\fR, ...) +also take any of the abbreviations: +.sp +.in +5 +.ti -3 +.I - +- Indicates all messages in the range to , inclusive. The range +.B must +be nonempty. +.sp +.ti -3 +.I :+N +.ti -3 +.I :-N +- Up to +.I N +messages beginning with (or ending with) message +.I num. +.I Num +may be any of the pre-defined symbols: +.I first, prev, cur, next +or +.I last. +.sp +.ti -3 +.I first:N +.ti -3 +.I prev:N +.ti -3 +.I next:N +.ti -3 +.I last:N +- The first, previous, next or last +.I N +messages, if they exist. +.in -5 + +There are many other possibilities such as creating multiple folders for +different topics, and automatically refiling messages according to subject, +source, destination, or content. +These are beyond the scope of this manual entry. + +Following is a list of all the \fIMH\fR commands: +.\} + +.nf +.in .5i +.ta 1.5i +^ali (1)~^\- list mail aliases +^anno (1)~^\- annotate messages +^burst (1)~^\- explode digests into messages +^comp (1)~^\- compose a message +^dist (1)~^\- redistribute a message to additional addresses +^folder (1)~^\- set/list current folder/message +^folders (1)~^\- list all folders +^forw (1)~^\- forward messages +^inc (1)~^\- incorporate new mail +^mark (1)~^\- mark messages +^mhl (1)~^\- produce formatted listings of MH messages +^mhmail (1)~^\- send or read mail +^mhook (1)~^\- MH receive\-mail hooks +^mhparam (1)~^\- print MH profile components +^mhpath (1)~^\- print full pathnames of MH messages and folders +^msgchk (1)~^\- check for messages +^msh (1)~^\- MH shell (and BBoard reader) +^next (1)~^\- show the next message +^packf (1)~^\- compress a folder into a single file +^pick (1)~^\- select messages by content +^prev (1)~^\- show the previous message +^prompter (1)~^\- prompting editor front end +^rcvstore (1)~^\- incorporate new mail asynchronously +^refile (1)~^\- file messages in other folders +^repl (1)~^\- reply to a message +^rmf (1)~^\- remove folder +^rmm (1)~^\- remove messages +^scan (1)~^\- produce a one line per message scan listing +^send (1)~^\- send a message +^show (1)~^\- show (list) messages +^slocal (1)~^\- special local mail delivery +^sortm (1)~^\- sort messages +^vmh (1)~^\- visual front\-end to MH +^whatnow (1)~^\- prompting front\-end for send +^whom (1)~^\- report to whom a message would go +.if '\*(ZZ'-man' \{\ +.sp 1 +^mh\-alias (5)~^\- alias file for MH message system +^mh\-format (5)~^\- format file for MH message system +^mh\-mail (5)~^\- message format for MH message system +^mh\-profile (5)~^\- user customization for MH message system +^mh\-sequence (5)~^\- sequence specification for MH message system +.sp 1 +^ap (8)~^\- parse addresses 822\-style +^conflict (8)~^\- search for alias/password conflicts +^dp (8)~^\- parse dates 822\-style +^fmtdump (8)~^\- decode \fIMH\fP format files +^install\-mh (8)~^\- initialize the MH environment +^post (8)~^\- deliver a message +.\} +.fi +.re + +.if '\*(ZZ'-man' \{\ +.Fi +^/opt/mh-6.8.5/bin~^directory containing \fIMH\fR commands +^/opt/mh-6.8.5/lib~^\fIMH\fR library +.Sa +\fIThe RAND \fIMH\fR Message Handling System: User's Manual\fR, +.br +\fIThe RAND \fIMH\fR Message Handling System: Tutorial\fR, +.br +\fIThe RAND \fIMH\fR Message Handling System: The UCI BBoards Facility\fR, +.br +\fIMH.5: How to process 200 messages a day and still get some real work +done\fR +.br +.Bu +If problems are encountered with an \fIMH\fR program, +the problems should be reported to the local maintainers of \fIMH\fR. +When doing this, +the name of the program should be reported, +along with the version information for the program. +.br +To find out what version of an \fIMH\fR program is being run, +invoke the program with the `\-help' switch. +In addition to listing the syntax of the command, +the program will list information pertaining to its version. +This information includes the version of \fIMH\fR, +the host it was generated on, +and the date the program was loaded. +A second line of information, +found on versions of \fIMH\fR after #5.380 include \fIMH\fR configuration +options. +For example, + +.nf +.in +.5i +version: MH 6.1 #1[UCI] (glacier) of Wed Nov 6 01:13:53 PST 1985 +options: [BSD42] [MHE] [NETWORK] [SENDMTS] [MMDFII] [SMTP] [POP] +.in -.5i +.fi + +The `6.1 #1[UCI]' indicates that the program is from the UCI \fIMH.6.1\fR +version of \fIMH\fR. +The program was generated on the host `glacier' on +`Wed Nov 6 01:13:53 PST 1985'. +It's usually a good idea to send the output of the `\-help' switch along +with your report. + +If there is no local \fIMH\fR maintainer, +try the address \fBBug-MH\fR. +If that fails, use the Internet mailbox \fBBug-MH@ICS.UCI.EDU\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.\" .Ps +.\" for each additional profile entry +.\" .Sa +.\" the see\-also's go here +.\" .De +.\" the first default goes here +.\" .Ds +.\" for each additional default +.\" .Co +.\" context changes go here +.\" You can also have +.\" .Hh \- the helpful hints section +.\" .Hi \- the history section +.\" .Bu \- the bugs section +.En +.\} diff --git a/docs/historical/mh-6.8.5/doc/mhl.me b/docs/historical/mh-6.8.5/doc/mhl.me new file mode 100644 index 0000000..600c3d2 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mhl.me @@ -0,0 +1,256 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mhl.rf,v 1.11 1992/12/04 18:59:22 jromine Exp $ +.SC MHL 1 +.NA +mhl \- produce formatted listings of MH messages +.SY +/opt/mh-6.8.5/lib/mhl +\%[\-bell] \%[\-nobell] +\%[\-clear] \%[\-noclear] +\%[\-folder\ +folder] +\%[\-form\ formfile] +\%[\-length\ lines] \%[\-width\ columns] +\%[\-moreproc\ program] \%[\-nomoreproc] +\%[files\ ...] +\%[\-help] +.DE +\fIMhl\fR is a formatted message listing program. +It can be used as a replacement for \fImore\fR\0(1) +(the default \fIshowproc\fR\0). +As with \fImore\fR, +each of the messages specified as arguments (or the standard input) will be +output. +If more than one message file is specified, +the user will be prompted prior to each one, +and a or will begin the output, +with clearing the screen (if appropriate), +and (usually CTRL\-D) suppressing the screen clear. +An (usually CTRL\-C) will abort the current message output, +prompting for the next message (if there is one), +and a (usually CTRL-\\) will terminate the program (without core dump). + +The `\-bell' option tells \fImhl\fR to ring the terminal's bell at the end of each page, +while the `\-clear' option tells \fImhl\fR to clear the scree at the end of +each page (or output a formfeed after each message). +Both of these switches (and their inverse counterparts) +take effect only if the profile entry \fImoreproc\fR is defined but empty, +and \fImhl\fR is outputting to a terminal. +If the \fImoreproc\fR entry is defined and non-empty, +and \fImhl\fR is outputting to a terminal, +then \fImhl\fR will cause the \fImoreproc\fR to be placed between the +terminal and \fImhl\fR and the switches are ignored. +Furthermore, +if the `\-clear' switch is used and \fImhl's\fR output is directed to a +terminal, +then \fImhl\fR will consult the \fB$TERM\fR and \fB$TERMCAP\fR +envariables to determine the user's +terminal type in order to find out how to clear the screen. +If the `\-clear' switch is used and \fImhl's\fR output is not directed to +a terminal (e.g., a pipe or a file), +then \fImhl\fR will send a formfeed after each message. + +To override the default \fImoreproc\fR and the profile entry, +use the `\-moreproc\ program' switch. +Note that \fImhl\fR will never start a \fImoreproc\fR if invoked on a +hardcopy terminal. + +The `\-length\ length' and `\-width\ width' switches set the screen length and +width, respectively. +These default to the values indicated by \fB$TERMCAP\fR, +if appropriate, +otherwise they default to 40 and 80, respectively. + +The default format file used by \fImhl\fR is called \fImhl.format\fR +(which is first searched for in the user's \fIMH\fR directory, +and then sought in the \fI/opt/mh-6.8.5/lib\fR directory), +this can be changed by using the `\-form\ formatfile' switch. + +Finally, +the `\-folder\ +folder' switch sets the \fIMH\fR folder name, +which is used for the \*(lqmessagename:\*(rq field described below. +The envariable \fB$mhfolder\fR is consulted for the default value, +which \fIshow\fR, \fInext\fR, and \fIprev\fR initialize appropriately. + +\fIMhl\fR operates in two phases: +1) read and parse the format file, +and 2) process each message (file). +During phase 1, +an internal description of the format is produced as a structured list. +In phase 2, +this list is walked for each message, +outputting message information under the format constraints from the format +file. + +The \*(lqmhl.format\*(rq form file contains information controlling +screen clearing, screen size, wrap\-around control, transparent text, +component ordering, and component formatting. +Also, a list of components to ignore may be specified, +and a couple of \*(lqspecial\*(rq components are defined to provide added +functionality. +Message output will be in the order specified by the order in the format file. + +Each line of mhl.format has one of the formats: + + ;comment + :cleartext + variable[,variable...] + component:[variable,...] + +A line beginning with a `;' is a comment, and is ignored. +A line beginning with a `:' is clear text, +and is output exactly as is. +A line containing only a `:' produces a blank line in the output. +A line beginning with \*(lqcomponent:\*(rq defines the format for the specified +component, +and finally, remaining lines define the global environment. + +For example, the line: + +.ti +.5i +width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5 + +defines the screen size to be 80 columns by 40 rows, +specifies that the screen should be cleared prior to each page, +that the overflow indentation is 5, +and that overflow text should be flagged with \*(lq***\*(rq. + +Following are all of the current variables and their arguments. +If they follow a component, +they apply only to that component, +otherwise, their affect is global. +Since the whole format is parsed before any output processing, +the last global switch setting for a variable applies to the whole message +if that variable is used in a global context +(i.e., bell, clearscreen, width, length). + +.nf +.in +.5i +.ta \w'noclearscreen 'u +\w'integer/G 'u +\fIvariable\fR \fItype\fR \fIsemantics\fR +width integer screen width or component width +length integer screen length or component length +offset integer positions to indent \*(lqcomponent: \*(rq +overflowtext string text to use at the beginning of an + overflow line +overflowoffset integer positions to indent overflow lines +compwidth integer positions to indent component text + after the first line is output +uppercase flag output text of this component in all + upper case +nouppercase flag don't uppercase +clearscreen flag/G clear the screen prior to each page +noclearscreen flag/G don't clearscreen +bell flag/G ring the bell at the end of each page +nobell flag/G don't bell +component string/L name to use instead of \*(lqcomponent\*(rq for + this component +nocomponent flag don't output \*(lqcomponent: \*(rq for this + component +center flag center component on line (works for + one\-line components only) +nocenter flag don't center +leftadjust flag strip off leading whitespace on each + line of text +noleftadjust flag don't leftadjust +compress flag change newlines in text to spaces +nocompress flag don't compress +split flag don't combine multiple fields into a single field +nosplit flag combine multiple fields into a single field +newline flag print newline at end of components (default) +nonewline flag don't print newline at end of components +formatfield string format string for this component (see below) +addrfield flag field contains addresses +datefield flag field contains dates +.re +.in -.5i +.fi + +To specify the value of integer\-valued and string\-valued variables, +follow their name with an equals\-sign and the value. +Integer\-valued variables are given decimal values, +while string\-valued variables are given arbitrary text bracketed by +double\-quotes. +If a value is suffixed by \*(lq/G\*(rq or \*(lq/L\*(rq, +then its value is useful in a global\-only or local\-only context +(respectively). + +A line of the form: + + ignores=component,... + +specifies a list of components which are never output. + +The component \*(lqMessageName\*(rq (case\-insensitive) +will output the actual message name (file name) preceded by +the folder name if one is specified or found in the environment. +The format is identical to that produced by the `\-header' option to +\fIshow\fR. + +The component \*(lqExtras\*(rq will output all of the components of the message +which were not matched by explicit components, +or included in the ignore list. +If this component is not specified, +an ignore list is not needed since all non\-specified components will be +ignored. + +If \*(lqnocomponent\*(rq is NOT specified, then the component name will be +output as it appears in the format file. + +The default format is: + +.nf +.in +.5i +.ne 15 +.eo +.so /opt/mh-6.8.5/lib/mhl.format +.ec +.in -.5i +.fi + +The variable \*(lqformatfield\*(rq specifies a format string +(see \fImh\-format\fR\0(5)). +The flag variables \*(lqaddrfield\*(rq and \*(lqdatefield\*(rq +(which are mutually exclusive), +tell \fImhl\fR to interpret the escapes in the format string +as either addresses or dates, respectively. + +By default, +\fImhl\fR does not apply any formatting string to fields containing address or +dates (see \fImh\-mail\fR\0(5) for a list of these fields). +Note that this results in faster operation +since \fImhl\fR must parse both addresses and dates in order to apply a +format string to them. +If desired, +\fImhl\fR can be given a default format string for either address or date +fields (but not both). +To do this, +on a global line specify: either the flag addrfield or datefield, +along with the apropriate formatfield variable string. +.Fi +^/opt/mh-6.8.5/lib/mhl.format~^The message template +^or /mhl.format~^Rather than the standard template +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^moreproc:~^Program to use as interactive front\-end +.Sa +show(1), ap(8), dp(8) +.De +`\-bell' +.Ds +`\-noclear' +.Ds +`\-length 40' +.Ds +`\-width 80' +.Co +None +.Bu +There should be some way to pass `bell' and `clear' information to the +front\-end. + +On hosts where \fIMH\fR was configured with the BERK option, +address parsing is not enabled. + +The \*(lqnonewline\*(rq option interacts badly +with \*(lqcompress\*(rq and \*(lqsplit\*(rq. +.En diff --git a/docs/historical/mh-6.8.5/doc/mhmail.me b/docs/historical/mh-6.8.5/doc/mhmail.me new file mode 100644 index 0000000..a7053a3 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mhmail.me @@ -0,0 +1,57 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mhmail.rf,v 1.5 90/04/05 15:13:18 sources Exp $ +.SC MHMAIL 1 +.NA +mhmail \- send or read mail +.SY +mhmail +\%[ +addrs\ ... +\%[\-body\ text] +\%[\-cc\ addrs\ ...] +\%[\-from\ addr] +\%[\-subject subject]] +\%[\-help] +.DE +\fIMHmail\fR +is intended as a replacement for the standard Bell mail program +(\fIbellmail\fR\0(1)), compatible with \fIMH\fR. +When invoked without arguments, it simply +invokes \fIinc\fR\0(1) +to incorporate new messages from the user's maildrop. +When one or more users is specified, a message is read from +the standard input and spooled to a temporary file. +\fIMHmail\fR then invokes \fIpost\fR\0(8) +with the name of the temporary file as +its argument to deliver the message to the specified user. + +The `\-subject\ subject' switch can be used to specify the \*(lqSubject:\*(rq field +of the message. The `\-body\ text' switch can be used to specify the text of +the message; if it is specified, then the standard input is not read. +Normally, addresses appearing as arguments are put in the \*(lqTo:\*(rq field. +If the `\-cc' switch is used, all addresses following it are placed in the +\*(lqcc:\*(rq field. + +By using `\-from\ addr', +you can specify the \*(lqFrom:\*(rq header of the draft. +Naturally, +\fIpost\fR will fill\-in the \*(lqSender:\*(rq header correctly. + +This program is intended for the use of programs +such as \fIat\fR\0(1), which expect +to send mail automatically to various users. +Normally, real people (as opposed to the \*(lqunreal\*(rq ones) +will prefer to use \fIcomp\fR\0(1) and \fIsend\fR\0(1) to send messages. +.Fi +^/opt/mh-6.8.5/bin/inc~^Program to incorporate a maildrop into a folder +^/opt/mh-6.8.5/lib/post~^Program to deliver a message +^/tmp/mhmail*~^Temporary copy of message +.Pr +None +.Sa +inc(1), post(8) +.De +None +.Co +If \fIinc\fR is invoked, then \fIinc\fR's context changes occur. +.En diff --git a/docs/historical/mh-6.8.5/doc/mhn.me b/docs/historical/mh-6.8.5/doc/mhn.me new file mode 100644 index 0000000..a84a160 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mhn.me @@ -0,0 +1,1174 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mhn.rf,v 1.14 1993/10/26 20:12:56 jromine Exp $ +.SC MHN 1 +.NA +mhn \- multi-media MH +.SY +mhn +\%[\%[+folder] \%[msgs] | \%[\-file\0file]] +.br +\%[\-part\0number]... \%[\-type\0content]... +.br +\%[\-list\0\%[\-headers]\0\%[\-noheaders] +.br + \%[\-realsize]\0\%[\-norealsize]] \%[-nolist] +.br +\%[\-show\0\%[\-serialonly]\0\%[\-noserialonly] +.br + \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow] +.br +\%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore] +.br +\%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy] +.br +\%[\-check]\0\%[\-nocheck] +.br +\%[\-ebcdicsafe]\0\%[\-noebcdicsafe] +.br +\%[\-rfc934mode]\0\%[\-norfc934mode] +.br +\%[\-verbose]\0\%[\-noverbose] +.br +\%[\-help] +.DE +The \fImhn\fR command manipulates multi-media messages as specified in +RFC 1521. + +Four action switches direct the operation of \fImhn\fR, +namely `\-list', `\-show', `\-store', and `-cache'. +Any of these switches may be used concurrently. +Normally these action switches will operate on the content of each of the +named messages. +However, +by using the `\-part' and `\-type' switches, +the scope of the operation can be focused on particular +subparts (of a multipart content) and/or particular content types. + +A part specification consists of a series of numbers separated by dots. +For example, +in a multipart content containing three parts, +these would be named as 1, 2, and 3, respectively. +If part 2 was also a multipart content containing two parts, +these would be named as 2.1 and 2.2, respectively. +Note that the `\-part' switch is effective for only messages +containing a multipart content. +If a message has some other kind of content, +or if the part is itself another multipart content, +the `\-part' switch will not prevent the content from being acted upon. + +A content specification consists of a content type and a subtype. +The initial list of \*(lqstandard\*(rq content types and subtypes can be found +in RFC 1521. +.ne 18 +A list of commonly used contents is briefly reproduced here: +.sp +.nf +.in +.5i +.ta \w'application 'u +Type Subtypes +---- -------- +text plain +multipart mixed, alternative, digest, parallel +message rfc822, partial, external-body +application octet-stream, postscript +image jpeg, gif, x-pbm, x-pgm, x-ppm, x-xwd +audio basic +video mpeg +.re +.in -.5i +.fi +.sp +Subtypes are mandatory. +.PP +To specify a content, +regardless of its subtype, +just use the name of the content, +e.g., +\*(lqaudio\*(rq. +To specify a specific subtype, +separate the two with a slash, +e.g., +\*(lqaudio/basic\*(rq. +Note that regardless of the values given to the `\-type' switch, +a multipart content (of any subtype listed above) is always acted upon. +Further note that if the `\-type' switch is used, +and it is desirable to act on a message/external-body content, +then the `\-type' switch must be used twice: +once for message/external-body and once for the content externally referenced. + +Each content may optionally have an integrity check associated with it. +If present and the `-check' switch is given, +then \fImhn\fR will attempt to verify the integrity of the content. + +The option `\-file\ file' directs \fImhn\fR to use the specified +file as the source message, rather than a message from +a folder. +Note that the file should be a validly formatted message, +just like any other \fIMH\fR message. +It should \fBNOT\fR be in mail drop format +(to convert a file in mail drop format to a folder of \fIMH\fR messages, +see \fIinc\fR\0(1)). + +.Uh "Listing the Contents" +The `\-list' switch tells \fImhn\fR to list the table of contents +associated with the named messages. +The `\-headers' switch indicates that a one-line banner should be +displayed above the listing. +The `\-realsize' switch tells \fImhn\fR to evaluate the \*(lqnative\*(rq +(decoded) format of each content prior to listing. +This provides an accurate count at the expense of a small delay. + +.Uh "Showing the Contents" +The `\-show' switch tells \fImhn\fR to display the contents of the named +messages. +The headers of the message are displayed with the \fImhlproc\fR, +using format file \fImhl.headers\fR. +(The choice of format file can be overridden by the `\-form\0formfile' switch.) + +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be displayed. +This is accomplished by consulting a display string, +and executing it under \fB/bin/sh\fR, +with the standard input set to the content. +.ne 16 +The display string may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%F 'u +%a additional arguments +%e exclusive execution +%f filename containing content +%F %e, %f, and stdin is terminal not content +%l display listing prior to displaying content +%p %l, and ask for confirmation +%s subtype +%d content description +.re +.in -.5i +.fi +.sp +For those display strings containing the e- or F-escape, +\fImhn\fR will execute at most one of these at any given time. +Although the F-escape expands to be the filename containing the content, +the e-escape has no expansion as far as the shell is concerned. + +When the p-escape prompts for confirmation, +typing INTR (usually control-C) will tell \fImhn\fR not to display +that content. +(The p-escape can be disabled by specifying `\-nopause'.) +Further, +when \fImhn\fR is display a content, +typing QUIT (usually control-\\) will tell \fImhn\fR to wrap things up +immediately. + +Note that if the content being displayed is multipart, +but not one of the subtypes listed above, +then the f- and F-escapes expand to multiple filenames, +one for each subordinate content. +Further, +stdin is not redirected from the terminal to the content. + +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-show-/ +.in -.5i +.sp +to determine the command to use to display the content. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-show- +.in -.5i +.sp +to determine the display command. +.ne 10 +If this isn't found, +\fImhn\fR has two default values: +.sp +.nf +.in +.5i +mhn-show-text/plain: %pmoreproc '%F' +mhn-show-message/rfc822: %pshow -file '%F' +.in -.5i +.fi +.sp +If neither apply, +\fImhn\fR will check to see if the message has a application/octet-stream +content with parameter \*(lqtype=tar\*(rq. +If so, +\fImhn\fR will use an appropriate command. +If not, +\fImhn\fR will complain. + +.ne 10 +Example entries might be: +.sp +.nf +.in +.5i +mhn-show-audio/basic: raw2audio 2>/dev/null | play +mhn-show-image: xv '%f' +mhn-show-application/PostScript: lpr -Pps +.in -.5i +.fi +.sp +Note that when using the f- or F-escape, +it's a good idea to use single-quotes around the escape. +This prevents misinterpretation by the shell of any funny characters +that might be present in the filename. + +Because the text content might be in a non-ASCII character set, +when \fImhn\fR encounters a \*(lqcharset\*(rq parameter for this content, +it checks to see whether the environment variable $MM_CHARSET is set +and whether the value of this environment variable is equal to the value of +the charset parameter. +If not, +then +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-charset- +.in -.5i +.sp +which should contain a command creating an environment to render the +character set. +This command string should containing a single \*(lq%s\*(rq, +which will be filled-in with the command to display the content. + +An example entry might be: +.sp +.in +.5i +mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-120-*-*-c-*-iso8859-*' -e %s +.in -.5i +.sp +Note that many pagination programs strip off the high-order bit. +However, +newer releases of the \fIless\fR program have modest support for +single-octet character sets. +The source to \fIless\fR version 177, +which has such support, +is found in the MH source tree under \fBmiscellany/less-177\fR. +In order to view messages sent in the ISO 8859/1 character set using +\fIless\fR, +.ne 9 +put these lines in your \&.login file: +.sp +.nf +.in +.5i +setenv LESSCHARSET latin1 +setenv LESS "-f" +.in -.5i +.fi +.sp +The first line tells \fIless\fR to use 8859/1 definition for determing +whether a character is \*(lqnormal\*(rq, \*(lqcontrol\*(lq, or +\*(lqbinary\*(rq. +The second line tells \fIless\fR not to warn you if it encounters a +file that has non-ASCII characters. +Then, +simply set the \fBmoreproc\fR profile entry to \fIless\fR, +and it will get called automatically. +(To handle other single-octet character sets, +look at the \fIless\fR\0(1) manual entry for information about the +\fBLESSCHARDEF\fR environment variable.) + +Finally, +\fImhn\fR will process each message serially\0--\0it won't start showing +the next message until all the commands executed to display the +current message have terminated. +In the case of a multipart content (of any subtype listed above), +the content contains advice indicating if the parts should be +displayed serially or in parallel. +Because this may cause confusion, +particularly on uni-window displays, +the `\-serialonly' switch can be given to tell \fImhn\fR to never +display parts in parallel. + +.Uh "Storing the Contents" +The `\-store' switch tells \fImhn\fR to store the contents of the +named messages in \*(lqnative\*(rq (decoded) format. +Two things must be determined: +the directory to store the content, +and the filenames. +Files are written in the directory given by the \fBmhn-storage\fR +profile entry, +.ne 6 +e.g., +.sp +.in +.5i +mhn-storage: /tmp +.in -.5i +.sp +If this entry isn't present, +the current working directory is used. + +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be stored. +This is achieved through the use of a formatting string, +.ne 13 +which may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%P 'u +%m message number +%P .part +%p part +%s subtype +.re +.in -.5i +.fi +.sp +If the content isn't part of a multipart (of any subtype listed above) content, +the p-escapes are ignored. +Note that if the formatting string starts with a \*(lq+\*(rq character, +then these escapes are ignored, +and the content is stored in the named folder. +(A formatting string consisting solely of a \*(lq+\*(rq character +indicates the current folder.) +Further, +a formatting string consisting solely of a \*(lq-\*(rq character +indicates the standard-output. + +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-store-/ +.in -.5i +.sp +to determine the formatting string. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-store- +.in -.5i +.sp +to determine the formatting string. +If this isn't found, +\fImhn\fR will check to see if the content is application/octet-stream +with parameter \*(lqtype=tar\*(rq. +If so, +\fImhn\fR will choose an appropriate filename. +If the content is not application/octet-stream, +then \fImhn\fR will check to see if the content is a message. +If so, +\fImhn\fR will use the value \*(lq+\*(rq. +If not, +\fImhn\fR will use the value \*(lq%m%P.%s\*(rq. + +Note that if the formatting string starts with a '/', +then content will be stored in the full path given +(rather than using the value of \fBmhn-storage\fR or the current working +directory.) +Similarly, +if the formatting string starts with a '|', +then \fImhn\fR will execute a command which should ultimately store +the content. +Note that before executing the command, +\fImhn\fR will change to the appropriate directory. +Also note that if the formatting string starts with a '|', +then \fImhn\fR will also honor the a-escape when processing the +formatting string. + +.ne 10 +Example entries might be: +.sp +.nf +.in +.5i +mhn-store-text: %m%P.txt +mhn-store-audio/basic: | raw2audio -e ulaw -s 8000 -c 1 > %m%P.au +mhn-store-application/PostScript: %m%P.ps +.in -.5i +.fi +.sp +Further, +note that when asked to store a content containing a partial message, +\fImhn\fR will try to locate all of the portions and combine them accordingly. +Thus, +if someone's sent you a message in several parts, +you might put them all in their own folder and do: +.sp +.in +.5i +mhn all -store +.in -.5i +.sp +This will store exactly one message, +containing the sum of the parts. +Note that if \fImhn\fR can not locate each part, +it will not store anything. + +Finally, +if the `\-auto' switch is given and the content contains information +indicating the filename the content should be stored as +(and if the filename doesn't begin with a '/'), +then the filename from the content will be used instead. + +.Uh "External Access" +For contents of type message/external-body, +.ne 12 +\fImhn\fR supports these access-types: +.sp +.nf +.in +.5i +afs +anon-ftp +ftp +local-file +mail-server +.in -.5i +.fi +.sp +For the \*(lqanon-ftp\*(rq and \*(lqftp\*(rq access types, +if your system supports a SOCKETs interface to TCP/IP, +then \fImhn\fR will use a built-in FTP client. +Otherwise, +\fImhn\fR will look for the \fBmhn-access-ftp\fR profile entry, +.ne 6 +e.g., +.sp +.in +.5i +mhn-access-ftp: myftp.sh +.in -.5i +.sp +to determine the pathname of a program to perform the FTP retrieval. +.ne 14 +This program is invoked with these arguments: +.sp +.nf +.in +.5i +domain name of FTP-site +username +password +remote directory +remote filename +local filename +\*(lqascii\*(rq or \*(lqbinary\*(rq +.in -.5i +.fi +.sp +The program should terminate with a zero-valued exit-status if the +retrieval is successful. + +.Uh "The Content Cache" +When \fImhn\fR encounters an external content containing a +\*(lqContent-ID:\*(rq field, +and if the content allows caching, +then depending on the caching behavior of \fImhn\fR, +the content might be read from or written to a cache. + +The caching behavior of \fImhn\fR is controlled with +the `\-rcache' and `\-wcache' switches, +which define the policy for reading from, +and writing to, +the cache, respectively. +One of four policies may be specified: +\*(lqpublic\*(rq, +indicating that \fImhn\fR should make use of a +publically-accessible content cache; +\*(lqprivate\*(rq, +indicating that \fImhn\fR should make use of the user's +private content cache; +\*(lqnever\*(rq, +indicating that \fImhn\fR should never make use of caching; +and, +\*(lqask\*(rq, +indicating that \fImhn\fR should ask the user. + +There are two directories where contents may be cached: +the profile entry \fBmhn-cache\fR names a directory containing +world-readable contents, +and, +the profile entry \fBmhn-private-cache\fR names a directory containing +private contents. +The former should be an absolute (rooted) directory name. +.ne 6 +For example, +.sp +.in +.5i +mhn-cache: /tmp +.in -.5i +.sp +might be used if you didn't care that the cache got wiped after each reboot +of the system. +The latter is interpreted relative to the user's MH directory, +if not rooted, +.ne 6 +e.g., +.sp +.in +.5i +mhn-private-cache: .cache +.in -.5i +.sp +(which is the default value). + +.Uh "Caching the Contents" +When you encounter a content of type message/external-body with access type +\*(lqmail-server\*(rq, +\fImhn\fR will ask you if may send a message to a mail-server +requesting the content, +.ne 14 +e.g., +.sp +.nf +.in +.5i +% show 1 +Retrieve content by asking mail-server@... + +SEND file + +? yes +mhn: request sent +.in -.5i +.fi +.sp +Regardless of your decision, +\fImhn\fR can't perform any other processing on the content. + +However, +if \fImhn\fR is allowed to request the content, +then when it arrives, +there should be a top-level \*(lqContent-ID:\*(rq field which +corresponds to the value in the original message/external-body content. +You should now use the `-cache' switch to tell \fImhn\fR to enter the +arriving content into the content cache, +.ne 8 +e.g., +.sp +.nf +.in +.5i +% mhn -cache 2 +caching message 2 as file ... +.in -.5i +.fi +.sp +You can then re-process the original message/external-body content, +and \*(lqthe right thing should happen\*(rq, +.ne 8 +e.g., +.sp +.nf +.in +.5i +% show 1 +\0... +.in -.5i +.fi + +.Uh "Composing the Contents" +The \fImhn\fR program can also be used as a simple editor to aid in +composing multi-media messages. +When invoked by a \fIwhatnow\fR program, +\fImhn\fR will expect the body of the draft to be formatted as an +\*(lq\fImhn\fR composition file.\*(rq + +.ne 59 +The syntax of this is straight-forward: +.sp +.nf +.in +.5i + body ::= 1*(content | EOL) + + content ::= directive | plaintext + + directive ::= "#" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "<" id ">" ] + [ "[" description "]" ] + [ filename ] + EOL + + | "#@" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "<" id ">" ] + [ "[" description "]" ] + external-parameters + EOL + + | "#forw" + [ "<" id ">" ] + [ "[" description "]" ] + [ "+"folder ] [ 0*msg ] + EOL + + | "#begin" + [ "<" id ">" ] + [ "[" description "]" ] + [ "alternative" + | "parallel" + | something-else ] + EOL + 1*body + "#end" EOL + + plaintext ::= [ "Content-Description:" + description EOL EOL ] + 1*line + [ "#" EOL ] + + | "#<" type "/" subtype + 0*(";" attribute "=" value) + [ "(" comment ")" ] + [ "[" description "]" ] + EOL + 1*line + [ "#" EOL ] + + line ::= "##" text EOL + -- interpreted as "#"text EOL + | text EOL +.in -.5i +.fi +.sp +Basically, +the body contains one or more contents. +A content consists of either a directive, +indicated with a \*(lq#\*(rq as the first character of a line; +or, +plaintext (one or more lines of text). +The continuation character, \*(lq\\\*(lq, may be used to enter a single +.ne 11 +directive on more than one line, +e.g., +.sp +.nf +.in +.5i +#@application/octet-stream; \\ + type=tar; \\ + x-conversions=compress +.in -.5i +.fi +.sp +There are four kinds of directives: +\*(lqtype\*(rq directives, +which name the type and subtype of the content; +\*(lqexternal-type\*(rq directives, +which also name the type and subtype of the content; +the \*(lqforw\*(rq directive, +which is used to forward a digest of messages; +and, +the \*(lqbegin\*(rq directive, +which is used to create a multipart content. + +For the type directives, +the user may optionally specify the name of a file containing the +contents in \*(lqnative\*(rq (decoded) format. +(If the filename starts with the \*(lq|\*(rq character, +then this gives a command whose output is captured accordingly.) +If a filename is not given, +\fImhn\fR will look for information in the user's profile to determine +how the different contents should be composed. +This is accomplished by consulting a composition string, +and executing it under \fB/bin/sh\fR, +with the standard output set to the content. +.ne 13 +The composition string may contain these escapes: +.sp +.nf +.in +.5i +.ta \w'%P 'u +%a additional arguments +%f filename containing content +%F %f, and stdout is not re-directed +%s subtype +.re +.in -.5i +.fi +.sp +First, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-compose-/ +.in -.5i +.sp +to determine the command to use to compose the content. +If this isn't found, +\fImhn\fR will look for an entry of the form: +.sp +.in +.5i +mhn-compose- +.in -.5i +.sp +to determine the composition command. +If this isn't found, +\fImhn\fR will complain. + +An example entry might be: +.sp +.in +.5i +mhn-compose-audio/basic: record | raw2audio -F +.in -.5i +.sp +Because commands like these will vary, +depending on the display environment used for login, +composition strings for different contents should probably be put in +the file specified by the \fB$MHN\fR environment variable, +instead of directly in your user profile. + +The external-type directives are used to provide a reference to a content, +rather than enclosing the contents itself. +Hence, +instead of providing a filename as with the type directives, +external-parameters are supplied. +These look like regular parameters, +.ne 15 +so they must be separated accordingly, +e.g., +.sp +.nf +.in +.5i +#@application/octet-stream; \\ + type=tar; \\ + x-conversions=compress [] \\ + access-type=anon-ftp; \\ + name="mh-mime.tar.Z"; \\ + directory="mrose/mh-mime"; \\ + site="ftp.ics.uci.edu" +.in -.5i +.fi +.sp +By specifying \*(lq[]\*(rq, +an empty description string is given, +and the start of the external-parameters is identified. +.ne 19 +These parameters are of the form: +.sp +.nf +.in +.5i +.ta \w'access-type= 'u +access-type= usually \fIanon-ftp\fR or \fImail-server\fR +name= filename +permission= read-only or read-write +site= hostname +directory= directoryname (optional) +mode= usually \fIascii\fR or \fIimage\fR (optional) +size= number of octets +server= mailbox +subject= subject to send +body= command to send for retrieval +.re +.in -.5i +.fi +.sp + +For the forw directive, +the user may optionally specify the name of the folder and which +messages are to be forwarded. +if a folder is not given, +it defaults to the current folder. +Similarly, +if a message is not given, +it defaults to the current message. +Hence, +the forw directive is similar to the \fIforw\fR\0(1) command, +except that the former uses the MIME rules for encapsulation +rather than those specified in RFC 934. +Usage of the `\-rfc934mode' switch indicates whether \fImhn\fR should +attempt to utilize the encapsulation rules in such a way as to appear +that RFC 934 is being used. +If given, +then RFC 934-compliant user-agents should be able to burst the message on +reception\0--\0providing that the messages being encapsulated do not +contain encapsulated messages themselves. +The drawback of this approach is that the encapsulations are generated +by placing an extra newline at the end of the body of each message. + +For the begin directive, +the user must specify at least one content between +the begin and end pairs. + +For all of these directives, +the user may include a brief description of the content between +the \*(lq[\*(rq character and the \*(lq]\*(rq character. +By default, +\fImhn\fR will generate a unique \*(lqContent-ID:\*(rq for each directive; +however, +the user may override this by defining the ID using the +\*(lq<\*(rq and \*(lq>\*(rq characters. +Putting this all together, +.ne 15 +here is a brief example of what a user's components file might look like: +.sp +.nf +.in +.5i +To: +cc: +Subject: +-------- +#audio/basic [Flint phone] \\ + |raw2audio -F < /home/mrose/lib/multi-media/flint.au +#image/gif [MTR's photo] \\ + /home/mrose/lib/multi-media/mrose.gif +.in -.5i +.fi +.sp +For a later example, +we'll call this components file \fImhncomps\fR. + +As noted earlier, +in addition to directives, +plaintext can be present. +Plaintext is gathered, +until a directive is found or the draft is exhausted, +and this is made to form a text content. +If the plaintext must contain a \*(lq#\*(rq at the beginning of a line, +simply double it, +.ne 6 +e.g., +.sp +.in +.5i +##when sent, this line will start with only one # +.in -.5i +.sp +If you want to end the plaintext prior to a directive, +e.g., +to have two plaintext contents adjacent, +simply insert a line containing a single \*(lq#\*(rq character, +.ne 10 +e.g., +.sp +.nf +.in +.5i +this is the first content +# +and this is the second +.in -.5i +.fi +.sp +Finally, +if the plaintext starts with a line of the form: +.sp +.in +.5i +Content-Description: text +.in -.5i +.sp +then this will be used to describe the plaintext content. +\fBNOTE WELL:\fR you must follow this line with a blank line before +starting your text. + +By default, +plaintext is captured as a text/plain content. +You can override this by starting the plaintext with \*(lq#<\*(rq +followed by a content-type specification, +.ne 11 +e.g., +.sp +.nf +.in +.5i +#\fR +-------- + +What now? \fBedit\fR (this invokes \fImhn\fR) + +What now? \fBsend\fR +.in -.5i +.fi +.sp +You have to remember to type the additional edit command, +but it should be fairly obvious from the interaction. + +Finally, +you should consider adding this line to your profile: +.sp +.in +.5i +lproc: show +.in -.5i +.sp +This way, +if you decide to \fBlist\fR after invoking \fImhn\fR as your editor, +the command +.sp +.in +.5i +What now? list +.in -.5i +.sp +will work as you expect. + +.Uh "Sending Files via Mail" +When you want to send a bunch of files to someone, +you can run the \fIviamail\fR shell script, +which is similar the tarmail command: +.sp +.in +.5i +/opt/mh-6.8.5/lib/viamail mailpath \*(lqsubject\*(rq files\0... +.in -.5i +.sp +\fIviamail\fR will archive the directories/files you name with \fItar\fR\0(1), +and then mail the compressed archive to the `mailpath' with the given +`subject'. +The archive will be automatically split up into as many messages as +necessary in order to get past most mailers. + +Sometimes you want \fIviamail\fR to pause after posting a partial message. +This is usually the case when you are running \fIsendmail\fR and +expect to generate a lot of partial messages. +If the first argument given to \fIviamail\fR starts with a dash, +then it is interpreted as the number of seconds to pause in between postings, +.ne 6 +e.g., +.sp +.in +.5i +/opt/mh-6.8.5/lib/viamail -300 mailpath \*(lqsubject\*(rq files\0... +.in -.5i +.sp +will pause 5 minutes in between each posting. + +When these messages are received, +invoke \fImhn\fR once, +with the list of messages, +and the `\-store' command. +The \fImhn\fR program will then store exactly one message containing the +archive. +You can then use `\-show' to find out what's inside; +possibly followed by `\-store' to write the archive to a file where you +.ne 26 +can subsequently uncompress and untar it, e.g., +.sp +.nf +.in +.5i +% mhn -list all + msg part type/subtype size description + 1 message/partial 47K part 1 of 4 + 2 message/partial 47K part 2 of 4 + 3 message/partial 47K part 3 of 4 + 4 message/partial 18K part 4 of 4 +% mhn -store all +% mhn -list -verbose last + msg part type/subtype size description + 5 application/octet-stream 118K + (extract with uncompress | tar xvpf -) + type=tar + x-conversions=compress +% mhn -show last + msg part type/subtype size description + 5 application/octet-stream 118K +-- headers of message, followed by \fItar\fR listing appears here +% mhn -store last +% uncompress < 5.tar.Z | tar xvpf - +.in -.5i +.fi +.sp +Alternately, +by using the `\-auto' switch, +\fImhn\fR will automatically do the extraction for you, +.ne 26 +e.g., +.sp +.nf +.in +.5i +% mhn -list all + msg part type/subtype size description + 1 message/partial 47K part 1 of 4 + 2 message/partial 47K part 2 of 4 + 3 message/partial 47K part 3 of 4 + 4 message/partial 18K part 4 of 4 +% mhn -store all +% mhn -list -verbose last + msg part type/subtype size description + 5 application/octet-stream 118K + (extract with uncompress | tar xvpf -) + type=tar + x-conversions=compress +% mhn -show last + msg part type/subtype size description + 5 application/octet-stream 118K +-- headers of message, followed by \fItar\fR listing appears here +% mhn -store -auto last +-- \fItar\fR listing appears here as files are extracted +.in -.5i +.fi +.sp +As the second \fItar\fR listing is generated, +the files are extracted. +A prudent user will never put `\-auto' in the \&.mh\(ruprofile file. +The correct procedure is to first use `\-show', +to find out what will be extracted. +Then \fImhn\fR can be invoked with `\-store' and `\-auto' to perform +the extraction. + +.Uh "User Environment" +Because the display environment in which \fImhn\fR operates may vary +for a user, +\fImhn\fR will look for the environment variable \fB$MHN\fR. +If present, +this specifies the name of an additional user profile which should be read. +Hence, +when a user logs in on a particular display device, +this environment variable should be set to refer to a file containing +definitions useful for the display device. +Normally, +only entries of the form +.sp +.in +.5i +mhn-show-/ +.br +mhn-show- +.in -.5i +.sp +need be present. +Finally, +\fImhn\fR will attempt to consult one other additional user profile, +.ne 6 +e.g., +.sp +.in +.5i +/opt/mh-6.8.5/lib/mhn_defaults +.in -.5i +.sp +which is created automatically during MH installation. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^$MHN~^Additional profile entries +^/opt/mh-6.8.5/lib/mhn_defaults~^System-default profile entries +^/opt/mh-6.8.5/lib/mhl.headers~^The headers template +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^mhlproc:~^Default program to display message headers +.Ps +^mhn-access-ftp:~^Program to retrieve contents via FTP +.Ps +^mhn-cache~^Public directory to store cached external contents +.Ps +^mhn-charset-~^Template for environment to render character sets +.Ps +^mhn-compose-*~^Template for composing contents +.Ps +^mhn-private-cache~^Personal directory to store cached external contents +.Ps +^mhn-show-*~^Template for displaying contents +.Ps +^mhn-storage~^Directory to store contents +.Ps +^mhn-store-*~^Template for storing contents +.Ps +^moreproc:~^Default program to display text/plain content +.Sa +mhl(1) +.br +\fIMIME: Mechanisms for Specifying and Describing the Format of +Internet Message Bodies\fR +(RFC 1521), +.br +\fIProposed Standard for Message Encapsulation\fR +(RFC 934). +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-noauto' +.Ds +`\-nocache' +.Ds +`\-nocheck' +.Ds +`\-noebcdicsafe' +.Ds +`\-form\0mhl.headers' +.Ds +`\-headers' +.Ds +`\-pause' +.Ds +`\-rcache\0ask' +.Ds +`\-realsize' +.Ds +`\-rfc934mode' +.Ds +`\-noserialonly' +.Ds +`\-show' +.Ds +`\-noverbose' +.Ds +`\-wcache\0ask' +.Co +If a folder is given, +it will become the current folder. +The last message selected will become the current message. +.Bu +Partial messages contained within a multipart content are not reassembled +with the `\-store' switch. +.En diff --git a/docs/historical/mh-6.8.5/doc/mhook.me b/docs/historical/mh-6.8.5/doc/mhook.me new file mode 100644 index 0000000..699168d --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mhook.me @@ -0,0 +1,106 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mhook.rf,v 1.16 1995/12/06 23:31:56 jromine Exp $ +.SC MHOOK 1 +.NA +mhook, rcvdist, rcvpack, rcvtty \- MH receive-mail hooks +.SY +.na +.ti .5i +/opt/mh-6.8.5/lib/rcvdist +\%[\-form\ formfile] +\%[switches\ for\ \fIpostproc\fR] +address\ ... +\%[\-help] + +.ti .5i +/opt/mh-6.8.5/lib/rcvpack +file +\%[\-help] + +.ti .5i +/opt/mh-6.8.5/lib/rcvtty +\%[command] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-bell] \%[\-nobell] +\%[\-newline] \%[\-nonewline] +\%[\-biff] +\%[\-help] +.ad +.DE +A receive\-mail hook is a program that is run whenever you receive a +mail message. +You do \fBNOT\fR invoke the hook yourself, +rather the hook is invoked on your behalf by your +system's Message Transport Agent. See \fIslocal\fP\0(1) +for details on how to activate receive\-mail hooks on your system. + +Four programs are currently available as part of \fIMH\fP, +\fIrcvdist\fR (redistribute incoming messages to additional recipients), +\fIrcvpack\fR (save incoming messages in a \fIpackf\fR'd file), +and \fIrcvtty\fR (notify user of incoming messages). +The fourth program, +\fIrcvstore\fR\0(1) is described separately. +They all reside in the \fI/opt/mh-6.8.5/lib/\fR directory. + +The \fIrcvdist\fR program will resend a copy of the message to all of the +addresses listed on its command line. +It uses the format string facility described in \fImh\-format\fR\0(5). +In addition, \fIrcvdist\fP +also recognizes the following additional \fIcomponent\fR escape: +.sp 1 +.ne 5 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +addresses string the addresses to distribute to +.re +.fi + +The \fIrcvpack\fR program will append a copy of the message to the file listed +on its command line. +Its use is obsoleted by the \*(lqfile\*(rq action of \fIslocal\fR. + +The \fIrcvtty\fR program executes the named file with the message as its +standard input, +and writes the resulting output +on your terminal. + +If no file is specified, or is bogus, etc., +then \fIrcvtty\fR will instead write a one\-line scan listing. +Either the `\-form\ formatfile' or `\-format\ string' option may be used +to override the default output format (see \fImh\-format\fP\0(5)). +A newline is output before the +message output, and the terminal bell is rung +after the output. The `\-nonewline' and `\-nobell' options +will inhibit these functions. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIrcvtty\fR also recognizes the following additional \fIcomponent\fR escapes: +.sp 1 +.ne 5 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +body string the (compressed) first part of the body +dtimenow date the current date +folder string the name of the current folder +.re +.fi + +Normally, \fIrcvtty\fP obeys +write permission as granted by \fImesg\fP\0(1). +With the `\-biff' option, \fIrcvtty\fP will obey the notification +status set by \fIbiff\fP\0(1) instead. +If the terminal access daemon (TTYD) is available on your system, +then \fIrcvtty\fR will give its output to the daemon for output +instead of writing on the user's terminal. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^$HOME/\&.maildelivery~^The file controlling local delivery +^/opt/mh-6.8.5/lib/maildelivery~^Rather than the standard file +.Sa +rcvstore (1), mh\-format(5), slocal(1) +.Bu +Only two return codes are meaningful, others should be. +.En diff --git a/docs/historical/mh-6.8.5/doc/mhparam.me b/docs/historical/mh-6.8.5/doc/mhparam.me new file mode 100644 index 0000000..bd47fdf --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mhparam.me @@ -0,0 +1,70 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mhparam.rf,v 1.2 1992/11/16 22:27:09 jromine Exp $ +.SC MHPARAM 1 +.NA +mhparam \- print MH profile components +.SY +mhparam +\%[components] +\%[-all] +\%[-component] \%[-nocomponent] +\%[\-help] +.DE +\fIMhparam\fR writes the value of the specified profile component to +the standard output separated by newlines. If the profile component +is not present, the default value (or nothing if there is no default) +is printed. + +If more than one component is specified in the `components' list, the component value is +preceded by the component name. If `\-component' is specified, the +component name is displayed even when only one component is specified. +If `\-nocomponent' is specified, the component name is not displayed +even when more than one component is specified. + +If `\-all' is specified, all components if the MH profile are +displayed and other arguments are ignored. + +Examples: + +.nf +.ta \w'AliasFile:'u+2n +.in +.5i +% mhparam path +Mail + +% mhparam mhlproc +/opt/mh-6.8.5/lib/mhl + +% mhparam \-component path +Path: Mail + +% mhparam AliasFile rmmproc +AliasFile: aliases +rmmproc: rmmproc + +% mhparam \-nocomponent AliasFile rmmproc +aliases +rmmproc +.in -.5i +.fi + +\fIMhparam\fR is also useful in back\-quoted operations: + +.nf +.in +.5i +% fgrep cornell.edu `mhpath +`/`mhparam aliasfile` + +.in -.5i +.fi +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Sa +mh-profile\|(5) +.De +`\-nocomponent' if only one component is specified +`\-component' if more than one component is specified +.Ds +`components' defaults to none +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/mhpath.me b/docs/historical/mh-6.8.5/doc/mhpath.me new file mode 100644 index 0000000..aedbd17 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/mhpath.me @@ -0,0 +1,132 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: mhpath.rf,v 1.7 1992/02/11 22:40:23 jromine Exp $ +.SC MHPATH 1 +.NA +mhpath \- print full pathnames of MH messages and folders +.SY +mhpath +\%[+folder] \%[msgs] +\%[\-help] +.DE +\fIMhpath\fR expands and sorts the message list `msgs' and writes +the full pathnames of the messages to the standard output +separated by newlines. +If no `msgs' are specified, +\fImhpath\fR outputs the folder pathname instead. +If the only argument is `+', your MH \fIPath\fR is output; +this can be useful is shell scripts. + +Contrasted with other MH commands, a message argument to \fImhpath\fR +may often be intended for \fIwriting\fR. +Because of this: +.sp +1) the name \*(lqnew\*(rq has been added to \fImhpath\fR's list of +reserved message names +(the others are \*(lqfirst\*(rq, \*(lqlast\*(rq, \*(lqprev\*(rq, +\*(lqnext\*(rq, \*(lqcur\*(rq, and \*(lqall\*(rq). +The new message is equivalent to the message after the +last message in a folder +(and equivalent to 1 in a folder without messages). +The \*(lqnew\*(rq message may not be used as part of a message range. +.sp +2) Within a message list, +the following designations may refer to messages that do not exist: +a single numeric message name, +the single message name \*(lqcur\*(rq, +and (obviously) the single message name \*(lqnew\*(rq. +All other message designations must refer to at least one existing message. +.sp +3) An empty folder is not in itself an error. + +Message numbers greater than the highest existing message in a folder as +part of a range designation are replaced with the next free message number. + +Examples: The current folder foo contains messages 3 5 6. +Cur is 4. + +.nf +.in +.5i +% mhpath +/r/phyl/Mail/foo + +% mhpath all +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 +/r/phyl/Mail/foo/6 + +% mhpath 2001 +/r/phyl/Mail/foo/7 + +% mhpath 1\-2001 +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 +/r/phyl/Mail/foo/6 + +% mhpath new +/r/phyl/Mail/foo/7 + +% mhpath last new +/r/phyl/Mail/foo/6 +/r/phyl/Mail/foo/7 + +% mhpath last\-new +bad message list \*(lqlast\-new\*(rq. + +% mhpath cur +/r/phyl/Mail/foo/4 + +% mhpath 1\-2 +no messages in range \*(lq1\-2\*(rq. + +% mhpath first:2 +/r/phyl/Mail/foo/3 +/r/phyl/Mail/foo/5 + +% mhpath 1 2 +/r/phyl/Mail/foo/1 +/r/phyl/Mail/foo/2 +.in -.5i +.fi + +\fIMHpath\fR is also useful in back\-quoted operations: + +.nf +.in +.5i +% cd `mhpath +inbox` + +% echo `mhpath +` +/r/phyl/Mail +.in -.5i +.fi +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +folder(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to none +.Co +None +.Bu +Like all MH commands, \fImhpath\fR expands and sorts \%[msgs]. +So don't expect + +.ti +.5i +mv `mhpath 501 500` + +to move 501 to 500. +Quite the reverse. But + +.ti +.5i +mv `mhpath 501` `mhpath 500` + +will do the trick. + +Out of range message 0 is treated far more severely than large out of +range message numbers. +.En diff --git a/docs/historical/mh-6.8.5/doc/msgchk.me b/docs/historical/mh-6.8.5/doc/msgchk.me new file mode 100644 index 0000000..dd0c94c --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/msgchk.me @@ -0,0 +1,54 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: msgchk.rf,v 1.7 1992/02/04 21:41:41 jromine Exp $ +.SC MSGCHK 1 +.NA +msgchk \- check for messages +.SY +msgchk +\%[\-date] \%[\-nodate] +\%[\-notify\ all/mail/nomail] \%[\-nonotify\ all/mail/nomail] +\%[users\ ...] +\%[\-help] +.DE +The \fImsgchk\fR program checks all known mail drops for mail waiting +for you. +For those drops which have mail for you, +\fImsgchk\fR will indicate if it believes that you have seen the mail +in question before. + +The `\-notify\ type' switch indicates under what circumstances \fImsgchk\fR +should produce a message. +The default is `\-notify\ all' which says that \fImsgchk\fR should always +report the status of the users maildrop. +Other values for `type' include `mail' which says that \fImsgchk\fR should +report the status of waiting mail; +and, `nomail' which says that \fImsgchk\fR should report the status of empty +maildrops. +The `\-nonotify\ type' switch has the inverted sense, +so `\-nonotify\ all' directs \fImsgchk\fR to never report the status of +maildrops. +This is useful if the user wishes to check \fImsgchk\fR's exit status. +A non\-zero exit status indicates that mail was \fBnot\fR waiting for at +least one of the indicated users. + +If \fImsgchk\fR produces output, +then the `\-date' switch directs \fImsgchk\fR to print out the last date mail +was read, +if this can be determined. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^/var/spool/mail/$USER~^Location of mail drop +.Pr +None +.Sa +inc(1) +.De +`user' defaults to the current user +.Ds +`\-date' +.Ds +`\-notify\ all' +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/msh.me b/docs/historical/mh-6.8.5/doc/msh.me new file mode 100644 index 0000000..4ac52e4 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/msh.me @@ -0,0 +1,225 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: msh.rf,v 1.9 1992/10/16 21:36:14 jromine Exp $ +.SC MSH 1 +.NA +msh \- MH shell (and BBoard reader) +.SY +msh +\%[\-prompt\ string] +\%[\-scan] \%[\-noscan] +\%[\-topcur] \%[\-notopcur] +\%[file] +\%[\-help] +.DE +\fImsh\fR is an interactive program that +implements a subset of the normal \fIMH\fR commands +operating on a single file in \fIpackf\fR'd format. +That is, \fImsh\fR is used to read a file that contains a number of +messages, +as opposed to the standard +\fIMH\fR +style of reading a number of files, +each file being a separate message in a folder. +\fImsh\fR's chief advantage is that the normal \fIMH\fR style does not allow +a file to have more than one message in it. +Hence, \fImsh\fR is ideal for reading \fIBBoards\fR, +as these files are delivered by the transport system in this format. +In addition, \fImsh\fR can be used on other files, +such as message archives which have been \fIpack\fRed (see \fIpackf\fR\0(1)). +Finally, \fImsh\fR is an excellent \fIMH\fR +tutor. +As the only commands available to the user are \fIMH\fR commands, +this allows \fIMH\fR beginners to concentrate on how commands to +\fIMH\fR are formed and (more or less) what they mean. + +When invoked, \fImsh\fR reads the named file, and enters a command loop. +The user may type most of the normal +\fIMH\fR +commands. +The syntax and semantics of these commands typed to \fImsh\fR are +identical to their \fIMH\fR +counterparts. In cases where the nature of \fImsh\fR would be inconsistent +(e.g., specifying a `+folder' with some commands), +\fImsh\fR will duly inform the user. +The commands that \fImsh\fR currently supports +(in some slightly modified or restricted forms) are: +.sp 1 +.in +.5i +ali +.br +burst +.br +comp +.br +dist +.br +folder +.br +forw +.br +inc +.br +mark +.br +mhmail +.br +mhn +.br +msgchk +.br +next +.br +packf +.br +pick +.br +prev +.br +refile +.br +repl +.br +rmm +.br +scan +.br +send +.br +show +.br +sortm +.br +whatnow +.br +whom +.in -.5i + +In addition, +\fImsh\fR has a \*(lqhelp\*(rq command which gives a brief overview. +To terminate \fImsh\fR, type CTRL\-D, or use the \*(lqquit\*(rq command. +If \fImsh\fR is being invoked from \fIbbc\fR, +then typing CTRL\-D will also tell \fIbbc\fR to exit as well, +while using the \*(lqquit\*(rq command will return control to \fIbbc\fR, +and \fIbbc\fR will continue examining the list of BBoards +that it is scanning. + +If the file is writable and has been modified, +then using \*(lqquit\*(rq will query the user if the file should be updated. + +The `\-prompt string' switch sets the prompting string for \fImsh\fR. + +You may wish to use an alternate \fIMH\fR profile for the commands that +\fImsh\fR executes; +see \fImh-profile\fR\0(5) for details about the \fB$MH\fR envariable. + +When invoked from \fIbbc\fR, +two special features are enabled: +First, +the `\-scan' switch directs \fImsh\fR to do a `scan\0unseen' on +start\-up if new items are present in the BBoard. +This feature is best used from \fIbbc\fR, +which correctly sets the stage. +Second, +the \fImark\fR command in \fImsh\fR acts specially when you are reading +a BBoard, +since \fImsh\fR will consult the sequence \*(lqunseen\*(rq in determining +what messages you have actually read. +When \fImsh\fR exits, it reports this information to \fIbbc\fR. +In addition, if you give the \fImark\fR command with no arguments, +\fImsh\fR will interpret it +as `mark\0\-sequence\0unseen\0\-delete\0\-nozero\0all' +Hence, to discard all of the messages in the current BBoard you're +reading, just use the \fImark\fR command with no arguments. + +Normally, the \*(lqexit\*(rq command is identical to the \*(lqquit\*(rq +command in \fImsh\fR. +When run under \fIbbc\fR however, \*(lqexit\*(rq directs \fImsh\fR to mark +all messages as seen and then \*(lqquit\*(rq. +For speedy type\-in, +this command is often abbreviated as just \*(lqe\*(rq. + +When invoked from \fIvmh\fR, +another special feature is enabled: +The `topcur' switch directs \fImsh\fR to have the current message +\*(lqtrack\*(rq the top line of the \fIvmh\fR scan window. +Normally, \fImsh\fR has the current message \*(lqtrack\*(rq the center of the +window (under `\-notopcur', which is the default). + +\fImsh\fR supports an output redirection facility. +Commands may be followed by one of + +.nf +.in +.5i +.ta \w'| \fIcommand\fR 'u +^> \fIfile\fR~^write output to \fIfile\fR +^>> \fIfile\fR~^append output to \fIfile\fR +^| \fIcommand\fR~^pipe output to UNIX \fIcommand\fR +.re +.in -.5i +.fi + +If \fIfile\fR starts with a `\~' (tilde), +then a \fIcsh\fR-like expansion takes place. +Note that \fIcommand\fR is interpreted by \fIsh\fR\0(1). +Also note that \fImsh\fR does NOT support +history substitutions, variable substitutions, or alias substitutions. + +When parsing commands to the left of any redirection symbol, +\fImsh\fR will honor `\\' (back\-slash) as the quote next\-character symbol, +and `"' (double\-quote) as quote\-word delimiters. +All other input tokens are separated by whitespace +(spaces and tabs). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +.Ps +^fileproc:~^Program to file messages +.Ps +^showproc:~^Program to show messages +.Sa +bbc(1) +.De +`file' defaults to \*(lq./msgbox\*(rq +.Ds +`\-prompt\ (msh)\ ' +.Ds +`\-noscan' +.Ds +`\-notopcur' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fImsh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +There is a strict limit of messages per file in \fIpackf\fR'd format which +\fImsh\fR can handle. +Usually, this limit is 1000 messages. + +Please remember that \fImsh\fR is not the \fICShell\fR, +and that a lot of the nice facilities provided by the latter are not +present in the former. + +In particular, \fImsh\fR does not understand back\-quoting, +so the only effective way to use \fIpick\fR inside \fImsh\fR is to always use +the `\-seq\0select' switch. +Clever users of \fIMH\fR will put the line + +.ti +.5i +pick:\0\-seq\0select\0\-list + +in their \&.mh\(ruprofile file so that \fIpick\fR works equally well from +both the shell and \fImsh\fR. + +\fIsortm\fR always uses \*(lq\-noverbose\*(rq and +if \*(lq\-textfield\ field\*(lq is used, \*(lq\-limit 0\*(rq. + +The \fImsh\fR program inherits most (if not all) of the bugs from the +\fIMH\fR commands it implements. +.En diff --git a/docs/historical/mh-6.8.5/doc/next.me b/docs/historical/mh-6.8.5/doc/next.me new file mode 100644 index 0000000..0006186 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/next.me @@ -0,0 +1,47 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: next.rf,v 1.6 90/12/17 16:03:31 mh Exp $ +.SC NEXT 1 +.NA +next \- show the next message +.SY +next +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fINext\fR performs a \fIshow\fR on the next message in the specified +(or current) folder. +Like \fIshow\fR, it passes any switches on to the +program \fIshowproc\fR, which is called to list the message. +This command +is almost exactly equivalent to \*(lqshow next\*(rq. +Consult the manual entry for \fIshow\fR\0(1) for all the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^showproc:~^Program to show the message +.Sa +show(1), prev(1) +.De +`+folder' defaults to the current folder +.Ds +`\-header' +.Co +If a folder is specified, it will become the current folder. +The message that is shown (i.e., the next message in sequence) +will become the current message. +.Bu +\fInext\fR is really a link to the \fIshow\fR program. +As a result, +if you make a link to \fInext\fR and that link is not called \fInext\fR, +your link will act like \fIshow\fR instead. +To circumvent this, +add a profile\-entry for the link to your \fIMH\fR profile and add the +argument \fInext\fR to the entry. +.En diff --git a/docs/historical/mh-6.8.5/doc/packf.me b/docs/historical/mh-6.8.5/doc/packf.me new file mode 100644 index 0000000..2753e9a --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/packf.me @@ -0,0 +1,49 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: packf.rf,v 1.8 1992/05/12 22:24:59 jromine Exp $ +.SC PACKF 1 +.NA +packf \- compress an MH folder into a single file +.SY +packf +\%[+folder] \%[msgs] +\%[\-file\ name] +\%[\-help] +.DE +\fIPackf\fR +takes messages from a folder and copies them to a single file. +Each message in the file is separated by four CTRL\-A's and a +newline. +Messages packed can be unpacked using \fIinc\fR. + +If the \fIname\fR given to the `\-file\ name' switch exists, +then the messages specified +will be appended to the end of the file, otherwise the file will be created +and the messages appended. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^\&.msgbox\&.map~^A binary index of the file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +.Sa +inc(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-file ./msgbox' +.Co +If a folder is given, it will become the current folder. +The first message packed will become the current message. +.Bu +\fIPackf\fP doesn't handle the old UUCP-style \*(lqmbox\*(rq format +(used by \fISendMail\fP). +To pack messages into this format, +use the script \fI/opt/mh-6.8.5/lib/packmbox\fP. +Note that \fIpackmbox\fP does not take the `\-file' option of \fIpackf\fP, +and instead writes its output on \fIstdout\fP. +.En diff --git a/docs/historical/mh-6.8.5/doc/pick.me b/docs/historical/mh-6.8.5/doc/pick.me new file mode 100644 index 0000000..faf5946 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/pick.me @@ -0,0 +1,300 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: pick.rf,v 1.9 1992/10/27 00:03:47 jromine Exp $ +.SC PICK 1 +.NA +pick \- select messages by content +.SY +.ie t \{\ +.ta .4i 1.8i +.nf +.in .5i +^pick~^^\0\-cc~^ \%[+folder] \%[msgs] \%[\-help] +^^^\0\-date~^ \%[\-before\ date] \%[\-after\ date] \%[\-datefield\ field] +^^^\0\-from~^ +^^^\s+2\b'\(lt\(bv\(bv\(lk\(bv\(bv\(lb'\s0\-search~\s+2\b'\(rt\(bv\(bv\(rk\(bv\(bv\(rb'\s0^ pattern \%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +^^^\0\-subject~^ +^^^\0\-to~^ \%[\-sequence\ name\ ...] \%[\-public] \%[\-nopublic] \%[\-zero] \%[\-nozero] +^^^\0\-\|\-component~^ \%[\-list] \%[\-nolist] +.fi +.re +.in 1i +.\} +.el \{\ +.ti .5i +pick +\%[+folder] \%[msgs] +\%[\-and\ ...] \%[\-or\ ...] \%[\-not\ ...] \%[\-lbrace\ ...\ \-rbrace] +\%[\-\|\-component\ pattern] +\%[\-cc\ pattern] +\%[\-date\ pattern] +\%[\-from\ pattern] +\%[\-search\ pattern] +\%[\-subject\ pattern] +\%[\-to\ pattern] +\%[\-after\ date] \%[\-before\ date] \%[\-datefield\ field] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-list] \%[\-nolist] +\%[\-help] +.\} + +.ti .5i +typically: +.br +scan\0`pick\0\-from\0jones` +.br +pick\0\-to\0holloway\0\-sequence\0select +.br +show\0`pick\0\-before\0friday` +.DE +\fIPick\fR searches messages within a folder for the specified +contents, and then identifies those messages. +Two types of search primitives are available: +pattern matching and date constraint operations. + +A modified \fIgrep\fR(1) is used to perform the matching, so the +full regular expression (see \fIed\fR(1)) facility is available +within `pattern'. +With `\-search', `pattern' is used directly, +and with the others, the grep pattern constructed is: + +.ti +.5i +\*(lqcomponent[ \\t]*:\&.*pattern\*(rq + +This means that the pattern specified for a `\-search' will be +found everywhere in the message, including the header and the body, +while the other pattern matching requests are limited to the single +specified component. +The expression + +.ti +.5i +`\-\|\-component\ pattern' + +is a shorthand for specifying + +.ti +.5i +`\-search \*(lqcomponent[ \\t]*:\&.*pattern\*(rq\ ' + +It is used to pick a component which is not one of +\*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqDate:\*(rq, \*(lqFrom:\*(rq, +or \*(lqSubject:\*(rq. +An example is `pick\0\-\|\-reply\-to\0pooh'. + +Pattern matching is performed on a per\-line basis. +Within the header of +the message, each component is treated as one long line, but in +the body, each line is separate. +Lower\-case letters in the +search pattern will match either lower or upper case in the +message, while upper case will match only upper case. + +Note that since the `\-date' switch is a pattern matching operation (as +described above), +to find messages sent on a certain date +the pattern string must match the text of the +\*(lqDate:\*(rq field of the message. + +Independent of any pattern matching operations requested, +the switches `\-after date' or `\-before date' may also be used +to introduce date/time contraints on all of the messages. +By default, the \*(lqDate:\*(rq field is consulted, +but if another date yielding field +(such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq) should be used, +the `\-datefield\ field' switch may be used. + +With `\-before' and `\-after', +\fIpick\fR will actually parse the date fields in each of the messages +specified in `msgs' +and compare them to the date/time specified. +If `\-after' is given, +then only those messages whose \*(lqDate:\*(rq field value +is chronologically after +the date specified will be considered. +The `\-before' switch specifies the complimentary action. + +Both the `\-after' and `\-before' switches take legal 822\-style date +specifications as arguments. +\fIPick\fR will default certain missing fields so that the entire date +need not be specified. +These fields are (in order of defaulting): +timezone, time and timezone, date, date and timezone. +All defaults are taken from the current date, time, and timezone. + +In addition to 822\-style dates, +\fIpick\fR will also recognize any of the days of the week +(\*(lqsunday\*(rq, \*(lqmonday\*(rq, and so on), +and the special dates +\*(lqtoday\*(rq, \*(lqyesterday\*(rq (24 hours ago), +and \*(lqtomorrow\*(rq (24 hours from now). +All days of the week are judged to refer to a day in the past +(e.g., telling \fIpick\fR \*(lqsaturday\*(rq on +a \*(lqtuesday\*(rq means \*(lqlast\ saturday\*(rq +not \*(lqthis\ saturday\*(rq). + +Finally, in addition to these special specifications, +\fIpick\fR will also honor a specification of the form \*(lq\-dd\*(rq, +which means \*(lqdd days ago\*(rq. + +\fIPick\fR supports complex boolean operations on the searching primitives +with the `\-and', `\-or', `\-not', and `\-lbrace\ ...\ \-rbrace' switches. +For example, + +.ti +.5i +.ie t \{\ +pick\0\-after\0yesterday\0\-and\0\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace +.\} +.el \{\ +pick\0\-after\0yesterday\0\-and +.br +.ti +1i +\-lbrace\0\-from\0freida\0\-or\0\-from\0fear\0\-rbrace +.\} + +identifies messages recently sent by \*(lqfrieda\*(rq or \*(lqfear\*(rq. + +The matching primitives take precedence over the `\-not' switch, +which in turn takes precedence over `\-and' +which in turn takes precedence over `\-or'. +To override the default precedence, +the `\-lbrace' and `\-rbrace' switches are provided, +which act just like opening and closing parentheses in logical expressions. + +If no search criteria are given, all the messages +specified on the command +line are selected (this defaults to \*(lqall\*(rq). + +Once the search has been performed, +if the `\-list' switch is given, +the message numbers of the selected messages are written to the standard +output separated by newlines. +This is \fIextremely\fR useful for quickly generating arguments for other +\fIMH\fR programs by using the \*(lqbackquoting\*(rq syntax of the shell. +For example, +the command + +.ti +.5i +scan\0`pick\0+todo\0\-after\0\*(lq31 Mar 83 0123 PST\*(rq` + +says to \fIscan\fR those messages in the indicated folder which meet the +appropriate criterion. +Note that since \fIpick\fR\0's context changes are written out prior to +\fIscan\fR\0's invocation, +you need not give the folder argument to \fIscan\fR as well. + +Regardless of the operation of the `\-list' switch, +the `\-sequence name' switch may be given once for each sequence the user +wishes to define. +For each sequence named, +that sequence will be defined to mean exactly those messages selected by +\fIpick\fR. +For example, + +.ti +.5i +pick\0\-from\0frated\0\-seq\0fred + +defines a new message sequence for the current folder called \*(lqfred\*(rq +which contains exactly those messages that were selected. + +Note that whenever \fIpick\fR processes a `\-sequence\ name' switch, +it sets `\-nolist'. + +By default, \fIpick\fR will zero the sequence before adding it. +This action can be disabled with the `\-nozero' switch, +which means that the messages selected by \fIpick\fR will be added to the +sequence, if it already exists, and any messages already a part of that +sequence will remain so. + +The `\-public' and `\-nopublic' switches are used by \fIpick\fR in the same +way \fImark\fR uses them. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +mark(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-datefield date' +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-zero' +.Ds +`\-list' is the default if no `\-sequence', `\-nolist' otherwise +.Co +If a folder is given, it will become the current folder. +.Hi +In previous versions of \fIMH\fR, +the \fIpick\fR command would \fIshow\fR, \fIscan\fR, or \fIrefile\fR the +selected messages. +This was rather \*(lqinverted logic\*(rq from the UNIX point of view, +so \fIpick\fR was changed to define sequences and output those sequences. +Hence, \fIpick\fR can be used to generate the arguments for all other +\fIMH\fR commands, +instead of giving \fIpick\fR endless switches for invoking those commands +itself. + +Also, previous versions of \fIpick\fR balked if you didn't specify a search +string or a date/time constraint. +The current version does not, and merely matches the messages you specify. +This lets you type something like: + +.ti +.5i +show\0`pick\0last:20\0\-seq\0fear` + +instead of typing + +.in +.5i +.nf +mark\0\-add\0\-nozero\0\-seq\0fear\0last:20 +show\0fear +.fi +.in -.5i + +Finally, +timezones used to be ignored when comparing dates: +they aren't any more. +.Hh +Use \*(lqpick sequence \-list\*(rq +to enumerate the messages in a sequence (such as for use +by a shell script). +.Bu +The argument to the `\-after' and `\-before' switches must be interpreted +as a single token by the shell that invokes \fIpick\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +Furthermore, +any occurance of `\-datefield' must occur prior to the `\-after' +or `\-before' switch it applies to. + +If \fIpick\fR is used in a back\-quoted operation, +such as + +.ti +.5i +scan\0`pick\0\-from\0jones` + +and \fIpick\fR selects no messages +(e.g., no messages are from \*(lqjones\*(rq), +then the shell will still run the outer command (e.g., \*(lqscan\*(rq). +Since no messages were matched, +\fIpick\fR produced no output, +and the argument given to the outer command as a result of backquoting +\fIpick\fR is empty. +In the case of \fIMH\fR programs, +the outer command now acts as if the default `msg' or `msgs' should be used +(e.g., \*(lqall\*(rq in the case of \fIscan\fR\0). +To prevent this unexpected behavior, +if `\-list' was given, +and if its standard output is not a tty, +then \fIpick\fR outputs the illegal message number \*(lq0\*(rq when it fails. +This lets the outer command fail gracefully as well. +.sp +The pattern syntax \*(lq[l-r]\*(rq is not supported; each letter +to be matched must be included within the square brackets. +.En diff --git a/docs/historical/mh-6.8.5/doc/pop5.me b/docs/historical/mh-6.8.5/doc/pop5.me new file mode 100644 index 0000000..69b703d --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/pop5.me @@ -0,0 +1,72 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: pop5.rf,v 1.5 90/04/05 15:14:09 sources Exp $ +.SC POP 5 +.NA +POP \- POP database of subscribers +.SY +/usr/spool/pop/POP +.DE +The POP database has exactly the same format as the \fIBBoards\fR\0(5) +database, +although many fields are unused. +Currently, +only four fields are examined: + +.nf +.ta \w'encrypted password 'u +\fIfield\fR \fIvalue\fR +name the POP subscriber +primary file the maildrop for the POP subscriber + (relative to the POP directory) +encrypted password the POP subscriber's password +network address the remote user allowed to RPOP +.re +.fi + +This is an ASCII file. Each field within each POP subscriber's entry +is separated from the next by a colon. +Each POP subscriber is separated from the next by a new-line. +If the password field is null, then no password is valid. + +To add a new POP subscriber, +edit the file adding a line such as + +.ti +.5i +mrose::mrose:::::::0 + +Then, use \fIpopwrd\fR to set the password for the POP subscriber. +If you wish to allow POP subscribers to access their maildrops without +supplying a password (by using privileged ports), +fill\-in the network address field, as in: + +.ti +.5i +mrose::mrose:::mrose@nrtc-isc::::0 + +which permits \*(lqmrose@nrtc\-isc\*(rq to access the maildrop for the POP +subscriber \*(lqmrose\*(rq. +Multiple network addresses may be specified by separating them with commas, +as in: + +.ti +.5i +dave::dave:9X5/m4yWHvhCc::dave@romano.wisc.edu,dave@rsch.wisc.edu:::: + +To disable a POP subscriber from \fIreceiving\fR mail, +set the primary file name to the empty string. +To prevent a POP subscriber from \fIpicking\-up\fR mail, +set the encrypted password to \*(lq*\*(rq +and set the network address to the empty string. + +This file resides in home directory of the login \*(lqpop\*(rq. +Because of the encrypted passwords, +it can and does have general read permission. +.Fi +^/usr/spool/pop/POP~^POP database +.Sa +bboards(5), pop(8), popaka(8), popd(8), popwrd(8) +.Bu +A binary indexed file format should be available for fast access. + +Appropriate precautions must be taken to lock the file against changes +if it is to be edited with a text editor. +A \fIvipop\fR program is needed. +.En diff --git a/docs/historical/mh-6.8.5/doc/pop8.me b/docs/historical/mh-6.8.5/doc/pop8.me new file mode 100644 index 0000000..fbe5e71 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/pop8.me @@ -0,0 +1,34 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: pop8.rf,v 1.5 90/04/05 15:14:16 sources Exp $ +.SC POP 8 +.NA +pop \- POP channel/mailer +.SY +/usr/mmdf/chans/pop +fd1 fd2 \%[y] + +.ti .5i +/opt/mh-6.8.5/lib/spop +POP\-subscriber\ ... +.DE +For \fIMMDF\-II\fR, the POP channel delivers mail to the POP spool area for +later retrieval by POP subscribers. +For \fISendMail\fR, the SPOP mailer performs this task. + +For each address given, +these programs consult the \fIpop\fR\0(5) file to obtain information +about the POP\-subscriber named by the address. +The programs then deliver the message to the spool area for the +POP\-subscriber. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +bboards(5), bbaka(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/popaka.me b/docs/historical/mh-6.8.5/doc/popaka.me new file mode 100644 index 0000000..59bdafa --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/popaka.me @@ -0,0 +1,24 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: popaka.rf,v 1.5 90/04/05 15:14:23 sources Exp $ +.SC POPAKA 8 +.NA +popaka \- generate POP entries for SendMail or MMDF\-II alias file +.SY +/opt/mh-6.8.5/lib/popaka +.DE +The \fIpopaka\fR program reads the POP database and produces +on its standard output a file suitable for inclusion in the SendMail or +\fIMMDF\-II\fR aliases +file. +The contents of this file divert mail for POP subscribers to the POP channel. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +pop(5) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/popauth.me b/docs/historical/mh-6.8.5/doc/popauth.me new file mode 100644 index 0000000..18a6bff --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/popauth.me @@ -0,0 +1,41 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: popauth.rf,v 1.1 1992/02/06 22:46:24 jromine Exp $ +.SC POPAUTH 8 +.NA +popauth - manipulate POP authorization DB +.SY +popauth +\%[\-init] \%[\-list] \%[\-user\ name] +\%[\-help] +.DE +The \fIpopauth\fR program allows a POP-subscriber to change the secret +value used to generate their authentication credentials. +In addition, +the super\-user or master POP user may use this program to either +initialize the database or to print public information from it. +\fIpopauth\fR is useful only when the APOP configuration option is defined. +(This configuration option defines the name of the POP authorization DB.) + +Under normal usage, +\fIpopauth\fR prompts for a new secret, +just like the \fIpasswd\fR program. +It then updates the POP authorization DB accordingly. + +With the `\-init' switch, +the super-user or master POP user can create a new (or zero the existing) +POP authorization DB. + +With the `\-list' switch, +the super-user or master POP user can print out public information +about the named subscriber (or all subscribers). +.Fi +^/etc/pop.auth.*~^POP authorization DB +.Pr +None +.Sa +popd(8) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/popd.me b/docs/historical/mh-6.8.5/doc/popd.me new file mode 100644 index 0000000..c100b6d --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/popd.me @@ -0,0 +1,54 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: popd.rf,v 1.9 1992/02/04 21:13:28 jromine Exp $ +.SC POPD 8 +.NA +popd \- the POP server +.SY +/usr/etc/popd +\%[\-p\ portno] +(under /etc/rc.local) +.DE +The \fIpopd\fR server implements the Post Office Protocol (version 3), +as described in RFC1081 and RFC1082. +Basically, the server listens on the TCP port named \*(lqpop\*(rq +for connections and enters the +POP upon establishing a connection. +The `\-p' option overrides the default TCP port. +.PP +If the POP2 configuration option is defined, +then the server also implements version 2 of the protocol. +.PP +If the APOP configuration option is defined, +then the server supports a non-standard mechanism for identity-establishment +in which authentication credentials are used to provide for origin +authentication and reply protection, +but which do not involve sending a password in the clear over the network. +See \fIpopauth\fR(8) for more details. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +\fIPost Office Protocol - version 3\fR (aka RFC\-1081), +.br +\fIPost Office Protocol - version 3: Extended service offerings\fP +(RFC\-1082), +.br +pop(5) +.De +None +.Co +None +.Hi +For historical reasons, the \fIMH\fP POP defaults to using +the port named \*(lqpop\*(rq (109) instead of its newly assigned +port named \*(lqpop3\*(rq (110). +See the POPSERVICE configuration option for more details. +.sp +Previous versions of the server (10/28/84) had the restriction that +the POP client may retrieve messages for login users only. +This restriction has been lifted, +and true POB support is available +(sending mail to a mailbox on the POP service host +which does not map to a user\-id in the password file). +.En diff --git a/docs/historical/mh-6.8.5/doc/popi.me b/docs/historical/mh-6.8.5/doc/popi.me new file mode 100644 index 0000000..090e82b --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/popi.me @@ -0,0 +1,101 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: popi.rf,v 1.1 1992/02/06 22:46:24 jromine Exp $ +.SC POPI 1 +.NA +popi \- POP initiator +.SY +popi +\%[+folder] +\%[\-host\ host] \%[\-user\ user] +\%[\-apop] \%[\-noapop] +\%[\-rpop] \%[\-norpop] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-width\ columns] +\%[\-help] +.DE +\fIpopi\fR is an interactive program that implements the client side +of the Post Office Protocol (version 3). + +When invoked, +\fIpopi\fR establishes a POP connection, +and enters a command loop. +The user may type most of the normal POP commands, +with a couple of additions: +The commands that \fIpop\fR currently supports are: +.sp 1 +.in +.5i +dele msg +.br +last +.br +list [msg] +.br +noop +.br +quit +.br +retr msg +.br +rset +.br +scan +.br +stat +.br +top +.in -.5i +.sp +The \fIretr\fR command retrieves a message into the folder specified +on the command line. +The \fIscan\fR command downloads an MH format-string to the server +(as determined from the `\-form\ formatfile' and `\-format switches), +so that future invocations of the \fIlist\fR command will include a +scan listing. +The \fIquit\fR command terminates \fIpopi\fR, +as does typing CTRL\-D. + + +The `\-host\ host' switch specifies the POP server to use. +If the `\-user\ user' switch is not given, +then the current username is used. +Normally, +\fIpopi\fR will prompt for a password to use. +However, +if the `\-apop' switch is given, +\fIpopi\fR will generate authentication credentials to provide +for origin authentication and replay protection, +but which do not involve sending a password in the clear over the network. +Otherwise, +if the `\-rpop' switch is given, +then \fIpopi\fR will try to use a \*(lqtrusted\*(rq connection +(ala the BSD r-commands). +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Msg\-Protect:~^To set mode when creating a new `file' +.Sa +msh(1) +.De +`+folder' defaults to \*(lqinbox\*(rq +.Ds +`\-noapop' +.Ds +`\-norpop' +.Ds +`\-format' defaulted as described above +.Ds +`\-width' defaulted to the width of the terminal +.Co +The folder into which messages are being incorporated will become the +current folder. +The current message is unchanged. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIinc\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.En diff --git a/docs/historical/mh-6.8.5/doc/popwrd.me b/docs/historical/mh-6.8.5/doc/popwrd.me new file mode 100644 index 0000000..f17d486 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/popwrd.me @@ -0,0 +1,33 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: popwrd.rf,v 1.5 90/04/05 15:14:29 sources Exp $ +.SC POPWRD 8 +.NA +popwrd \- set password for a POP subscriber +.SY +/opt/mh-6.8.5/lib/popwrd +POP\-subscriber +.DE +The \fIpopwrd\fR program lets the super\-user or the master POP user +or a \*(lqleader\*(rq of a POP subscriber change the password field for the +POP subscriber in the POP database. +This program is very similar to the \fIpasswd\fR\0(1) program. + +Since only the super\-user and the master POP user may change any other +fields of the POP database (using an ordinary editor), +it is possible for the system administrator to delegate responsibility to +others to manage groups of POP subscribers. +.Fi +^/usr/spool/pop/POP~^POP database +.Pr +None +.Sa +pop(5) +.De +None +.Co +None +.Bu +Although \fIpopwrd\fR does locking against other invocations of \fIpopwrd\fR, +editor locking for the POP database in general is not implemented. +A \fIvipop\fR program is needed. +.En diff --git a/docs/historical/mh-6.8.5/doc/post.me b/docs/historical/mh-6.8.5/doc/post.me new file mode 100644 index 0000000..5522539 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/post.me @@ -0,0 +1,109 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: post.rf,v 1.7 1992/10/29 22:24:50 jromine Exp $ +.SC POST 8 +.NA +post \- deliver a message +.SY +/opt/mh-6.8.5/lib/post +\%[\-alias\ aliasfile] +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +\%[\-mime] \%[\-nomime] +\%[\-msgid] \%[\-nomsgid] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +file +\%[\-help] +.DE +\fIPost\fR is the program called by \fIsend\fR\0(1) +to deliver the message in \fIfile\fR to local and remote users. +In fact, all of the functions attributed to \fIsend\fR +on its manual page are performed by \fIpost\fR, +with \fIsend\fR acting as a relatively simple preprocessor. +Thus, it is \fIpost\fR which parses the various header fields, +appends From: and Date: lines, +and interacts with the \fISendMail\fR transport system. +\fIPost\fR will not normally be called directly by the user. + +\fIPost\fR +searches the \*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqBcc:\*(rq, \*(lqFcc:\*(rq, and \*(lqResent\-xxx:\*(rq +header lines of +the specified message for destination addresses, checks these +addresses for validity, and formats them so as to conform to +ARPAnet Internet Message Format protocol, +unless the `\-noformat' flag is set. +This will normally cause \*(lq@\fIlocal\-site\fR\*(rq to +be appended to each local destination address, as well +as any local return addresses. +The `\-width\ columns' switch can be used to indicate the preferred length +of the header components that contain addresses. + +If a \*(lqBcc:\*(rq field is encountered, +its addresses will be used for delivery, +and the \*(lqBcc:\*(rq field will be removed from the message sent to sighted +recipients. +The blind recipients will receive an entirely new message with +a minimal set of headers. +Included in the body of the message will be a copy of the message sent to the +sighted recipients. +If `\-filter\ filterfile' is specified, +then this copy is filtered (re\-formatted) +prior to being sent to the blind recipients. +Otherwise, +to use the MIME rules for encapsulation, +specify the `\-mime' switch. + +The `\-alias\ aliasfile' switch can be used to specify a file that post should +take aliases from. More than one file can be specified, each being preceded +with `\-alias'. +In any event, +the primary alias file is read first. + +The `\-msgid' switch indicates that +a \*(lqMessage\-ID:\*(rq or \*(lqResent\-Message\-ID:\*(rq +field should be added to the header. + +The `\-verbose' switch indicates that the user should be informed of each +step of the posting/filing process. + +The `\-watch' switch indicates that the user would like to watch the transport +system's handling of the message (e.g., local and \*(lqfast\*(rq delivery). + +\fIPost\fR consults the envariable \fB$SIGNATURE\fR to +determine the sender's personal name in constructing the \*(lqFrom:\*(rq line +of the message. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^/opt/mh-6.8.5/bin/refile~^Program to process Fcc:s +^/opt/mh-6.8.5/lib/mhl~^Program to process Bcc:s +^/opt/mh-6.8.5/lib/MailAliases~^Primary alias file +.Pr +\fIpost\fR does \fBNOT\fR consult the user's \&.mh\(ruprofile +.Sa +\fIStandard for the Format of ARPA Internet Text Messages\fR (aka RFC\-822), +.br +mhmail(1), send(1), mh\-mail(5), mh\-alias(5) +.De +`\-alias /opt/mh-6.8.5/lib/MailAliases' +.Ds +`\-format' +.Ds +`\-nomime' +.Ds +`\-nomsgid' +.Ds +`\-noverbose' +.Ds +`\-nowatch' +.Ds +`\-width\ 72' +.Ds +`\-nofilter' +.Co +None +.Bu +\*(lqReply\-To:\*(rq fields are allowed to have groups in them according to the +822 specification, +but \fIpost\fR won't let you use them. +.En diff --git a/docs/historical/mh-6.8.5/doc/prev.me b/docs/historical/mh-6.8.5/doc/prev.me new file mode 100644 index 0000000..021f461 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/prev.me @@ -0,0 +1,47 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: prev.rf,v 1.6 90/12/17 16:03:39 mh Exp $ +.SC PREV 1 +.NA +prev \- show the previous message +.SY +prev +\%[+folder] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[\-switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fIPrev\fR performs a \fIshow\fR on the previous message in the specified +(or current) folder. +Like \fIshow\fR, it passes any switches on to the +program named by \fIshowproc\fR, which is called to list the message. +This command +is almost exactly equivalent to \*(lqshow prev\*(rq. +Consult the manual entry for \fIshow\fR\0(1) for all the details. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^showproc:~^Program to show the message +.Sa +show(1), next(1) +.De +`+folder' defaults to the current folder +.Ds +`\-header' +.Co +If a folder is specified, it will become the current folder. +The message that is shown (i.e., the previous message in sequence) +will become the current message. +.Bu +\fIprev\fR is really a link to the \fIshow\fR program. +As a result, +if you make a link to \fIprev\fR and that link is not called \fIprev\fR, +your link will act like \fIshow\fR instead. +To circumvent this, +add a profile\-entry for the link to your \fIMH\fR profile and add the +argument \fIprev\fR to the entry. +.En diff --git a/docs/historical/mh-6.8.5/doc/prompter.me b/docs/historical/mh-6.8.5/doc/prompter.me new file mode 100644 index 0000000..74782ab --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/prompter.me @@ -0,0 +1,115 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: prompter.rf,v 1.8 1992/05/12 22:23:34 jromine Exp $ +.SC PROMPTER 1 +.NA +prompter \- prompting editor front-end for MH +.SY +prompter +\%[\-erase\ chr] +\%[\-kill\ chr] +\%[\-prepend] \%[\-noprepend] +\%[\-rapid] \%[\-norapid] +\%[\-doteof] \%[\-nodoteof] +file +\%[\-help] +.DE +This program is normally not invoked directly by users +but takes the place of an editor and acts as an editor front\-end. +It operates on an 822\-style message draft skeleton specified by file, +normally provided by \fIcomp\fR, \fIdist\fR, \fIforw\fR, or \fIrepl\fR. + +\fIPrompter\fR is an editor which allows rapid composition of +messages. +It is particularly useful to network and low\-speed +(less than 2400 baud) users of \fIMH\fR. +It is an \fIMH\fR program in that +it can have its own profile entry with switches, +but it is not invoked directly by the user. +The commands \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR +invoke \fIprompter\fR as an editor, +either when invoked with `\-editor\ prompter', +or by the profile entry \*(lqEditor:\ prompter\*(rq, +or when given the command `edit\ prompter' at \*(lqWhat now?\*(rq level. + +For each empty component \fIprompter\fR finds in the draft, +the user is prompted for a response; +A will cause the whole component to be left out. +Otherwise, +a `\\' preceding a will continue the response on the next line, +allowing for multiline components. +Continuation lines \fBmust\fR begin with a space or tab. + +Each non\-empty component is copied to the draft and displayed on the +terminal. + +The start of the message body is denoted by a blank line or a line of dashes. +If the body is non\-empty, the prompt, which isn't written to the file, is + + \*(lq--------Enter additional text\*(rq, + +or (if `\-prepend' was given) + + \*(lq--------Enter initial text\*(rq. + +Message\-body typing is terminated with an end\-of\-file (usually CTRL\-D). +With the `\-doteof' switch, a period on a line all by itself also signifies +end\-of\-file. +At this point control is returned to the calling program, +where the user is asked \*(lqWhat now?\*(rq. +See \fIwhatnow\fR for the valid options to this query. + +By using the `\-prepend' switch, the user can add type\-in to the beginning +of the message body and have the rest of the body follow. +This is useful for the \fIforw\fR command. + +By using the `\-rapid' switch, +if the draft already contains text in the message\-body, +it is not displayed on the user's terminal. +This is useful for low\-speed terminals. + +The line editing characters for kill and erase may be +specified by the user via the arguments `\-kill\ chr' and `\-erase\ chr', +where chr may be a character; or `\\nnn', where \*(lqnnn\*(rq is the +octal value for the character. + +An interrupt (usually CTRL\-C) during component typing will abort +\fIprompter\fR and the \fIMH\fR command that invoked it. +An interrupt during message\-body typing is equivalent to CTRL\-D, +for historical reasons. +This means that \fIprompter\fR should finish up and exit. + +The first non\-flag argument to \fIprompter\fR +is taken as the name of the draft file, and +subsequent non\-flag arguments are ignored. +.\" (\fIRepl\fR invokes editors with two file arguments: +.\" the draft file name and the replied\-to message file name.) +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/tmp/prompter*~^Temporary copy of message +.Pr +prompter\-next: To name the editor to be used on exit from \fIprompter\fR +.Ps +^Msg\-Protect:~^To set mode when creating a new draft +.Sa +comp(1), dist(1), forw(1), repl(1), whatnow(1) +.De +`\-prepend' +.Ds +`\-norapid' +.Ds +`\-nodoteof' +.Co +None +.Hh +The `\-rapid' option is particularly useful with \fIforw\fP, and +`\-noprepend' is useful with \fIcomp\ \-use\fP. + +The user may wish to link \fIprompter\fR under several names +(e.g., \*(lqrapid\*(rq) and give appropriate switches +in the profile entries under these names (e.g., \*(lqrapid: -rapid\*(rq). +This facilitates invoking prompter differently for +different \fIMH\fP commands (e.g., \*(lqforw: -editor rapid\*(rq). +.Bu +\fIPrompter\fR uses \fIstdio\fR\0(3), so it will lose if you edit files +with nulls in them. +.En diff --git a/docs/historical/mh-6.8.5/doc/rcvstore.me b/docs/historical/mh-6.8.5/doc/rcvstore.me new file mode 100644 index 0000000..42c5ec5 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/rcvstore.me @@ -0,0 +1,87 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: rcvstore.rf,v 1.7 1992/11/20 00:40:37 jromine Exp $ +.SC RCVSTORE 1 +.NA +rcvstore \- incorporate new mail asynchronously +.SY +/opt/mh-6.8.5/lib/rcvstore +\%[+folder] +\%[\-create] \%[\-nocreate] +\%[\-sequence\ name\ ...] +\%[\-public] \%[\-nopublic] +\%[\-zero] \%[\-nozero] +\%[\-help] +.DE +\fIRcvstore\fR incorporates a message from the standard input +into an \fIMH\fR folder. +If `+folder' isn't specified, +a folder in the user's \fIMH\fR directory will be used, either that +specified by the \*(lqInbox:\*(rq entry in the user's profile, or +the folder named \*(lqinbox\*(rq. +The new message being incorporated is assigned the next highest +number in the folder. +If the specified (or default) folder doesn't exist, +then it will be created if the `\-create' option is specified, +otherwise \fIrcvstore\fP will exit. + +If the user's profile contains a \*(lqMsg\-Protect: nnn\*(rq entry, it +will be used as the protection on the newly created messages, +otherwise the \fIMH\fR default of 0644 will be used. +During all operations on messages, +this initially assigned protection will +be preserved for each message, so \fIchmod\fR(1) may be used to set a +protection on an individual message, and its protection will be +preserved thereafter. + +\fIRcvstore\fR will incorporate anything except zero length messages +into the user's MH folder. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIrcvstore\fR will add the newly incorporated message to each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +Note that \fIrcvstore\fR will not zero each sequence prior to adding messages. + +Furthermore, +the incoming messages may be added to user-defined sequences as +they arrive by appropriate use of the `\-sequence' option. +As with \fIpick\fP, +use of the `\-zero' and `\-nozero' switches can also be used to zero +old sequences or not. +Similarly, +use of the `\-public' and `\-nopublic switches +may be used to force additions to public and private sequences. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^Inbox:~^To find the default inbox +.Ps +^Msg\-Protect:~^To set mode when creating a new message +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Sa +inc(1), pick(1), mh\-mail(5) +.De +`+folder' defaults to \*(lqinbox\*(rq +.Ds +`\-create' +.Ds +`\-nopublic' if the folder is read\-only, `\-public' otherwise +.Ds +`\-nozero' +.Co +No context changes will be attempted, +with the exception of sequence manipulation. +.Bu +If you use the \*(lqUnseen\-Sequence\*(rq profile entry, +\fIrcvstore\fP could try to update the context while another +\fIMH\fP process is also trying to do so. +This can cause the context to become corrupted. +To avoid this, do not use \fIrcvstore\fP +if you use the \*(lqUnseen\-Sequence\*(rq profile entry. +.En diff --git a/docs/historical/mh-6.8.5/doc/refile.me b/docs/historical/mh-6.8.5/doc/refile.me new file mode 100644 index 0000000..88303bf --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/refile.me @@ -0,0 +1,121 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: refile.rf,v 1.12 1992/12/19 00:20:58 jromine Exp $ +.SC REFILE 1 +.NA +refile \- file message in other folders +.SY +refile +\%[msgs] +\%[\-draft] +\%[\-link] \%[\-nolink] +\%[\-preserve] \%[\-nopreserve] +\%[\-src\ +folder] +\%[\-file\ file] +\%[\-rmmproc program] \%[\-normmproc] ++folder ... +\%[\-help] +.DE +\fIRefile\fR moves (\fImv\fR\0(1)) or links (\fIln\fR\0(1)) messages from a +source folder into one or more destination folders. +If you think +of a message as a sheet of paper, this operation is not +unlike filing the sheet of paper (or copies) in file cabinet +folders. +When a message is filed, it is linked into the +destination folder(s) if possible, and is copied otherwise. +As long +as the destination folders are all on the same file system, multiple filing +causes little storage overhead. +This facility provides a good way to cross\-file or multiply\-index +messages. +For example, if a message is received from Jones about +the ARPA Map Project, the command + + refile\0cur\0+jones\0+Map + +would allow the message to be found in either of the two +folders `jones' or `Map'. + +The option `\-file\ file' directs \fIrefile\fR to use the specified +file as the source message to be filed, rather than a message from +a folder. +Note that the file should be a validly formatted message, +just like any other \fIMH\fR message. +It should \fBNOT\fR be in mail drop format +(to convert a file in mail drop format to a folder of \fIMH\fR messages, +see \fIinc\fR\0(1)). + +If a destination folder doesn't exist, \fIrefile\fR will ask if you +want to create it. +A negative response will abort the file operation. +If the standard input for \fIrefile\fR is \fInot\fR a tty, +then \fIrefile\fR will not ask any questions and will proceed as if +the user answered \*(lqyes\*(rq to all questions. + +The option `\-link' preserves the source folder copy of the message +(i.e., it does a \fIln\fR(1) rather than a \fImv\fR(1)), whereas, +`\-nolink' deletes the filed messages from the source +folder. +Normally, when a message is filed, it is assigned the +next highest number available in each of the destination folders. +Use of the `\-preserve' switch will override this message +renaming, but name conflicts may occur, so +use this switch cautiously. + +If `\-link' is not specified (or `\-nolink' is specified), +the filed messages will be removed from the +source folder, by renaming them with a site-dependent prefix (usually +a comma). + +.ne 4 +If the user has a profile component such as + + rmmproc: /bin/rm + +then \fIrefile\fR +will instead call the named program to delete the message files. +The user may specify `\-rmmproc program' on the command line +to override this profile specification. +The \`-normmproc' option forces +the message files to be deleted +by renaming them as described above. + +The `\-draft' switch tells \fIrefile\fR to file the /draft. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Folder\-Protect:~^To set mode when creating a new folder +.Ps +^rmmproc:~^Program to delete the message +.Sa +folder(1) +.De +`\-src\ +folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-nolink' +.Ds +`\-nopreserve' +.Co +If `\-src\ +folder' is given, it will become the +current folder. +If neither `\-link' nor `all' is specified, +the current message in the source +folder will be set to the last message specified; otherwise, the +current message won't be changed. + +If the Previous\-Sequence profile entry is set, +in addition to defining the named sequences from the source folder, +\fIrefile\fR will also define those sequences for the destination folders. +See \fImh\-sequence\fR\0(5) for information concerning the previous sequence. +.Bu +Since \fIrefile\fR uses your \fIrmmproc\fP to delete the message, +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP without +specifying `\-normmproc', +or you will create an infinte loop. +.En diff --git a/docs/historical/mh-6.8.5/doc/repl.me b/docs/historical/mh-6.8.5/doc/repl.me new file mode 100644 index 0000000..1f3fbf9 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/repl.me @@ -0,0 +1,276 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: repl.rf,v 1.14 1996/02/09 00:25:00 jromine Exp $ +.SC REPL 1 +.NA +repl \- reply to a message +.SY +repl +\%[+folder] \%[msg] +\%[\-annotate] \%[\-noannotate] +\%[\-cc\ all/to/cc/me] \%[\-nocc\ all/to/cc/me] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-fcc\ +folder] +\%[\-filter\ filterfile] +\%[\-form\ formfile] +.\" \%[\-format] \%[\-noformat] +\%[\-inplace] \%[\-noinplace] +\%[\-mime] \%[\-nomime] +\%[\-query] \%[\-noquery] +\%[\-width\ columns] +\%[\-whatnowproc\ program] \%[\-nowhatnowproc] +\%[\-help] +.DE +\fIRepl\fR aids a user in producing a reply to an existing +message. +\fIRepl\fR uses a reply template to guide its actions when constructing +the message draft of the reply. +In its simplest form (with no arguments), +it will set up +a message\-form skeleton in reply to the current message in the +current folder, and invoke the whatnow shell. +The default reply template will direct \fIrepl\fR to construct +the composed message as follows: + +.nf +.in 1i +To: or +cc: , , and yourself +Subject: Re: +In\-reply\-to: Your message of . +.ti +\w'In\-reply\-to: 'u + +.in .5i +.fi + +where field names enclosed in angle brackets (<\ >) indicate the +contents of the named field from the message to which the reply +is being made. A reply template is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +The `\-cc\ type' switch takes an argument which specifies +who gets placed on the \*(lqcc:\*(rq list of the reply. +The `\-query' switch modifies the action of `\-cc\ type' switch by +interactively asking you if each address that normally would be placed +in the \*(lqTo:\*(rq and \*(lqcc:\*(rq list should actually be sent a copy. +(This is useful for special\-purpose replies.) +Note that the position of the `\-cc' and `\-nocc' switches, +like all other switches which take a positive and negative form, +is important. + +.\" --this seems to not be used anymore. /JLR +.\" With the `\-format' switch one can indicate if Internet\-style +.\" formatting should be used (or not be used with `\-noformat'). +.\" If present (the default), then +Lines beginning with the fields +\*(lqTo:\*(rq, \*(lqcc:\*(rq, and \*(rqBcc:\*(rq +will be standardized and have duplicate addresses removed. +In addition, the `\-width\ columns' switch will guide \fIrepl\fR's formatting +of these fields. + +If the file named \*(lqreplcomps\*(rq exists in the user's MH directory, +it will be used instead of the default form. +In either case, the file specified by `\-form\ formfile' will be used +if given. + +If the draft already exists, +\fIrepl\fR will ask you as to the disposition of the draft. +A reply of \fBquit\fR will abort \fIrepl\fR, leaving the draft intact; +\fBreplace\fR will replace the existing draft with a blank skeleton; +and \fBlist\fR will display the draft. + +See \fIcomp\fR\0(1) for a description of the `\-editor' and `\-noedit' +switches. +Note that while in the editor, +the message being replied to is available through a link named \*(lq@\*(rq +(assuming the default \fIwhatnowproc\fR\0). +In addition, the actual pathname of the message is stored in the envariable +\fB$editalt\fR, +and the pathname of the folder containing the message is stored in the +envariable \fB$mhfolder\fR. + +Although \fIrepl\fR uses the `\-form\ formfile' switch to direct it how +to construct the beginning of the draft, the `\-filter\ filterfile' +switch directs \fIrepl\fR as to how the message being replied\-to +should be formatted in the body of the draft. +If `\-filter' is not specified, +then the message being replied\-to is not included in the body of the +draft. +If `\-filter\ filterfile' is specified, +then the message being replied\-to is filtered (re\-formatted) prior to +being output to the body of the draft. +The filter file for \fIrepl\fR should be a standard form file for +\fImhl\fR, as \fIrepl\fR will invoke \fImhl\fR to format the message +being replied\-to. +There is no default message filter (`\-filter' must be followed by a +file name). +A filter file that is commonly used is: + +.nf +.in +.5i +: +body:nocomponent,compwidth=9,offset=9 +.in -.5i +.fi + +which says to output a blank line and then the body of the message +being replied\-to, indented by one tab\-stop. +Another format popular on USENET is: + +.nf +.in +.5i +.ie n \{ +message-id:nocomponent,\|nonewline,\\ +formatfield=\*(lqIn message %{text},\ \*(rq \} +.el message-id:nocomponent,\|nonewline,\|formatfield=\*(lqIn message %{text},\ \*(rq +from:nocomponent,\|formatfield=\*(lq%(friendly{text}) writes:\*(rq +body:component=\*(lq>\*(rq,\|overflowtext=\*(lq>\*(rq,\|overflowoffset=0 +.in -.5i +.fi + +Which cites the Message-ID and author +of the message being replied\-to, +and then outputs each line of the body prefaced +with the \*(lq>\*(rq character. + +To use the MIME rules for encapsulation, +specify the `\-mime' switch. +This directs \fIrepl\fR to generate an \fImhn\fR composition file. +Note that MH will not invoke \fImhn\fR automatically, +unless you add this line to your \&.mh\(ruprofile file: +.sp +.in +.5i +automhnproc: mhn +.in -.5i +.sp +Otherwise, +you must specifically give the command +.sp +.in +.5i +What now? edit mhn +.in -.5i +.sp +prior to sending the draft. + +If you don't want to use this feature, +the manual page for \fIforw\fR contains another idea on how you can +automate this somewhat. + +If the `\-annotate' switch is given, +the message being replied\-to will be annotated with the lines + + Replied:\ date + Replied:\ addrs + +where the address list contains one line for each addressee. +The annotation +will be done only if the message is sent directly from \fIrepl\fR. +If the message is not sent immediately from \fIrepl\fR, +\*(lqcomp\ \-use\*(rq may be used to re\-edit and send the constructed message, +but the annotations won't take place. +The `\-inplace' switch causes annotation to +be done in place in order to preserve links to the annotated message. + +The `\-fcc\ +folder' switch can be used to automatically specify a folder to +receive Fcc:s. +More than one folder, each preceeded by `\-fcc' can be named. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIrepl\fR also recognizes the following additional +\fIcomponent\fR escape: +.sp 1 +.nf +.ta \w'Escape 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +\fIfcc\fR string Any folders specified with `\-fcc\ folder' +.re +.fi + +To avoid reiteration, +\fIrepl\fR strips any leading `Re: ' strings from +the \fIsubject\fR component. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +Upon exiting from the editor, +\fIrepl\fR will invoke the \fIwhatnow\fR program. +See \fIwhatnow\fR\0(1) for a discussion of available options. +The invocation of this program can be inhibited by using the `\-nowhatnowproc' +switch. +(In truth of fact, +it is the \fIwhatnow\fR program which starts the initial edit. +Hence, `\-nowhatnowproc' will prevent any edit from occurring.) +.Fi +^/opt/mh-6.8.5/lib/replcomps~^The reply template +^or /replcomps~^Rather than the standard template +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^Msg\-Protect:~^To set mode when creating a new message (draft) +.Ps +^fileproc:~^Program to refile the message +.Ps +^mhlproc:~^Program to filter message being replied\-to +.Ps +^whatnowproc:~^Program to ask the \*(lqWhat now?\*(rq questions +.Sa +comp(1), dist(1), forw(1), send(1), whatnow(1), mh\-format(5) +.De +`+folder' defaults to the current folder +.Ds +`msg' defaults to cur +.Ds +`\-nocc\ all' at ATHENA sites, `\-cc\ all' otherwise +.Ds +`\-noannotate' +.Ds +`\-nodraftfolder' +.Ds +`\-noinplace' +.Ds +`\-nomime' +.Ds +`\-noquery' +.Ds +`\-width\ 72' +.Co +If a folder is given, it will become the current folder. +The message replied\-to will become the current message. +.Hi +Prior to using the format string mechanism, +`\-noformat' used to cause address headers to be output as\-is. +Now all address fields are formatted using Internet standard guidelines. +.Bu +If any addresses occur in the reply template, +addresses in the template that do not contain hosts are defaulted incorrectly. +Instead of using the localhost for the default, +\fIrepl\fR uses the sender's host. +Moral of the story: if you're going to include addresses in a reply template, +include the host portion of the address. + +The `\-width columns' switch is only used +to do address-folding; other headers are not line\-wrapped. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIrepl\fR uses a built\-in \fIwhatnow\fR, +it does not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since \fIrepl\fR won't run it. + +If your current working directory is not writable, +the link named \*(lq@\*(rq is not available. +.En diff --git a/docs/historical/mh-6.8.5/doc/rmail.me b/docs/historical/mh-6.8.5/doc/rmail.me new file mode 100644 index 0000000..74d0a9b --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/rmail.me @@ -0,0 +1,35 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: rmail.rf,v 1.5 90/04/05 15:15:00 sources Exp $ +.SC RMAIL 8 +.NA +rmail \- UUCP interface to mail +.SY +rmail +address\ ... +.DE +\fIRmail\fR is intended as a replacement for those systems without +\fISendMail\fR or \fIMMDF\fR. +It is normally invoked by \fIuux\fR on behalf of the remote \fIUUCP\fR site. +For each address, it decides where to send it: +either locally, via another \fIUUCP\fR link, or via the Internet. + +\fIRmail\fR implements a crude access control facility by consulting the +files \fBRmail.OkHosts\fR and \fBRmail.OkDests\fR in the \fB/opt/mh-6.8.5/lib/\fR +directory. +Hosts listed in the former file can send messages to anywhere they please. +Hosts listed in the latter file can receive messages from anywhere. +Note that a host listed in the first file is implicitly listed in the second +file. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^tailor file +^/opt/mh-6.8.5/lib/Rmail.OkHosts~^list of privileged hosts +^/opt/mh-6.8.5/lib/Rmail.OkDests~^list of privileged destinations +.Pr +None +.Sa +mf(1) +.De +None +.Co +None +.En diff --git a/docs/historical/mh-6.8.5/doc/rmf.me b/docs/historical/mh-6.8.5/doc/rmf.me new file mode 100644 index 0000000..6948c80 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/rmf.me @@ -0,0 +1,64 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: rmf.rf,v 1.7 1992/05/12 22:24:59 jromine Exp $ +.SC RMF 1 +.NA +rmf \- remove an MH folder +.SY +rmf +\%[+folder] +\%[\-interactive] \%[\-nointeractive] +\%[\-help] +.DE +\fIRmf\fR removes all of the messages (files) within the specified +(or default) folder, +and then removes the folder (directory) itself. +If there are any files within the folder which are not a part of \fIMH\fR, +they will \fInot\fR be removed, and an error will be produced. +If the folder is given explicitly or the `\-nointeractive' option is given, +then the folder will be removed without confirmation. +Otherwise, the user will be asked for confirmation. +If \fIrmf\fR can't find the current folder, for some reason, +the folder to be removed defaults to `+inbox' (unless overridden by +user's profile entry \*(lqInbox\*(rq) with confirmation. + +\fIRmf\fR irreversibly deletes messages that don't have other links, +so use it with caution. + +If the folder being removed is a subfolder, the parent +folder will become the new current folder, and \fIrmf\fR will +produce a message telling the user this has happened. +This provides an easy mechanism for selecting a set of messages, +operating on the list, then removing the list and returning to +the current folder from which the list was extracted. + +\fIRmf\fR of a read\-only folder will delete the private sequence +and cur information +(i.e., \*(lqatr\-\fIseq\fR\-\fIfolder\fR\*(rq entries) +from the profile without affecting the folder itself. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Inbox:~^To find the default inbox +.Sa +rmm(1) +.De +`+folder' defaults to the current folder, usually with confirmation +.Ds +`\-interactive' if +folder' not given, `\-nointeractive' otherwise +.Co +\fIRmf\fR will set the current folder to the parent folder if a +subfolder is removed; or if the current folder is removed, +it will make \*(lqinbox\*(rq current. +Otherwise, it doesn't change the +current folder or message. +.Bu +Although intuitively one would suspect that \fIrmf\fR works recursively, +it does not. +Hence if you have a sub\-folder within a folder, +in order to \fIrmf\fR the parent, +you must first \fIrmf\fR each of the children. +.En diff --git a/docs/historical/mh-6.8.5/doc/rmm.me b/docs/historical/mh-6.8.5/doc/rmm.me new file mode 100644 index 0000000..74afa97 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/rmm.me @@ -0,0 +1,59 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: rmm.rf,v 1.10 91/01/25 15:22:28 mh Exp $ +.SC RMM 1 +.NA +rmm \- remove messages +.SY +rmm +\%[+folder] \%[msgs] +\%[\-help] +.DE +\fIRmm\fR removes the specified messages by renaming the message +files with preceding commas. Many sites consider files that start with a +comma to be a temporary backup, and arrange for \fIcron\fR\0(8) +to remove such files once a day. + +If the user has a profile component such as + + rmmproc: /bin/rm + +then instead of simply renaming the message file, +\fIrmm\fR +will call the named program to delete the file. +Note that at most installations, +\fIcron\fR\0(8) is told to remove files that begin with a comma once a night. + +Some users of csh prefer the following: + + alias rmm 'refile +d' + +where folder +d is a folder for deleted messages, and + + alias mexp 'rm `mhpath +d all`' + +is used to \*(lqexpunge\*(rq deleted messages. + +The current message is not changed by \fIrmm\fR, so a \fInext\fR will +advance to the next message in the folder as expected. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^rmmproc:~^Program to delete the message +.Sa +rmf(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Co +If a folder is given, it will become the current folder. +.Bu +Since \fIrefile\fR uses your \fIrmmproc\fP to delete the message, +the \fIrmmproc\fP must \fBNOT\fP call \fIrefile\fP without +specifying `\-normmproc', +or you will create an infinte loop. +.En diff --git a/docs/historical/mh-6.8.5/doc/scan.me b/docs/historical/mh-6.8.5/doc/scan.me new file mode 100644 index 0000000..1406469 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/scan.me @@ -0,0 +1,159 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: scan.rf,v 1.14 1995/12/06 23:22:17 jromine Exp $ +.SC SCAN 1 +.NA +scan \- produce a one line per message scan listing +.SY +scan +\%[+folder] \%[msgs] +\%[\-clear] \%[\-noclear] +\%[\-form\ formatfile] +\%[\-format\ string] +\%[\-header] \%[\-noheader] +\%[\-width\ columns] +\%[\-reverse] \%[\-noreverse] +\%[\-file filename] +\%[\-help] +.DE +\fIScan\fR produces a one\-line\-per\-message listing of the specified +messages. +Each \fIscan\fR line contains the message number (name), +the date, the \*(lqFrom:\*(rq field, the \*(lqSubject\*(rq field, and, if room +allows, some of the body of the message. +For example: + +.nf +.in +.5i +.ta \w'15+- 'u +\w'07/\|05x 'u +\w'Dcrocker 'u +15+ 07/\|05 Dcrocker nned\0\0\*(<> if the body is sufficiently short. +\fIScan\fR actually reads each of the specified +messages and parses them to extract the desired fields. +During parsing, appropriate error messages will be produced if +there are format errors in any of the messages. + +The `\-header' switch produces a header line prior to the \fIscan\fR +listing. +Currently, +the name of the folder and the current date and time are output +(see the \fBHISTORY\fR section for more information). + +If the `\-clear' switch is used and \fIscan's\fR output is directed to a +terminal, +then \fIscan\fR will consult the \fB$TERM\fR and \fB$TERMCAP\fR +envariables to determine your +terminal type in order to find out how to clear the screen prior to exiting. +If the `\-clear' switch is used and \fIscan's\fR output is not directed to +a terminal (e.g., a pipe or a file), +then \fIscan\fR will send a formfeed prior to exiting. + +For example, the command: + +.ti +.5i +(scan \-clear \-header; show all \-show pr \-f) | lpr + +produces a scan listing of the current folder, followed by a formfeed, +followed by a formatted listing of all messages in the folder, one per +page. Omitting `\-show\ pr\ \-f' will cause the messages to be concatenated, +separated by a one\-line header and two blank lines. + +To override the output format used by \fIscan\fR, +the `\-format\ string' or `\-form\ file' switches are used. +This permits individual fields of the scan listing to be extracted with ease. +The string is simply a format string and the file is simply a format file. +See \fImh\-format\fR\0(5) for the details. + +In addition to the standard \fImh\-format\fR\0(5) escapes, +\fIscan\fR also recognizes the following additional \fIcomponent\fR escapes: +.sp 1 +.nf +.ta \w'Dtimenow 'u +\w'Returns 'u +\fIEscape\fR \fIReturns\fR \fIDescription\fR +body string the (compressed) first part of the body +dtimenow date the current date +folder string the name of the current folder +.re +.fi + +.\" and the following \fIfunction\fP escape: +.\" .sp 1 +.\" .nf +.\" .ta \w'Dcompflagxfolderx 'u +\w'Returns 'u +.\" \fIEscape\fR \fIReturns\fR \fIDescription\fR +.\" compflag{folder} integer boolean state of `\-header' +.\" .re +.\" .fi +.\" +If no date header is present in the message, the \fIfunction\fR +escapes which operate on {\fIdate\fP\|} will return values for the +date of last modification of the message file itself. +This is particularly handy for scanning a \fIdraft folder\fR, +as message drafts usually aren't allowed to have dates in them. + +\fIscan\fR will update the \fIMH\fR context prior to starting the listing, +so interrupting a long \fIscan\fR listing preserves the new context. +\fIMH\fR purists hate this idea. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Alternate\-Mailboxes:~^To determine the user's mailboxes +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +inc(1), pick(1), show(1), mh\-format(5) +.De +`+folder' defaults to the folder current +.Ds +`msgs' defaults to all +.Ds +`\-format' defaulted as described above +.Ds +`\-noheader' +.Ds +`\-width' defaulted to the width of the terminal +.Co +If a folder is given, it will become the current folder. +.Hi +Prior to using the format string mechanism, +`\-header' used to generate a heading saying what each column in the listing +was. +Format strings prevent this from happening. +.Bu +The argument to the `\-format' switch must be interpreted as a single token +by the shell that invokes \fIscan\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. +.br +The value of +each \fIcomponent\fR escape is set by \fIscan\fR to the contents +of the first message header \fIscan\fR encounters +with the corresponding component name; +any following headers with the same component name are ignored. +.sp +The switch `\-reverse', makes \fIscan\fR list the messages +in reverse order; this should be considered a bug. +.sp +The `\-file filename' switch allows the user to obtain a \fIscan\fP +listing of a maildrop file as produced by \fIpackf\fP. This listing +includes every message in the file. The user should use \fImsh\fP +for more selective processing of the file. `\-reverse' is ignored +with this option. +.En diff --git a/docs/historical/mh-6.8.5/doc/send.me b/docs/historical/mh-6.8.5/doc/send.me new file mode 100644 index 0000000..4961a97 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/send.me @@ -0,0 +1,189 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: send.rf,v 1.12 1992/12/04 17:30:23 jromine Exp $ +.SC SEND 1 +.NA +send \- send a message +.SY +send +\%[\-alias\ aliasfile] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-filter\ filterfile] \%[\-nofilter] +\%[\-format] \%[\-noformat] +\%[\-forward] \%[\-noforward] +\%[\-mime] \%[\-nomime] +\%[\-msgid] \%[\-nomsgid] +\%[\-push] \%[\-nopush] +\%[\-split\ seconds] +\%[\-verbose] \%[\-noverbose] +\%[\-watch] \%[\-nowatch] +\%[\-width\ columns] +\%[file\ ...] +\%[\-help] +.DE +\fISend\fR will cause each of the specified files to +be delivered (via \fIpost\fR\0(8)) to each of the destinations +in the \*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqBcc:\*(rq, and \*(lqFcc:\*(rq +fields of the message. +If \fIsend\fR is re\-distributing a message, as invoked from \fIdist\fR, +then the corresponding \*(lqResent\-xxx\*(rq fields are examined +instead. + +If `\-push' is specified, +\fIsend\fR will detach itself from the user's terminal and perform its +actions in the background. +If \fIpush\fR\0'd and the draft can't be sent, +then the `\-forward' switch says that draft should be forwarded with +the failure notice sent to the user. +This differs from putting \fIsend\fR in the background because the output is +trapped and analyzed by \fIMH\fR. + +If `\-verbose' is specified, \fIsend\fR will indicate the interactions +occurring with the transport system, prior to actual delivery. +If `\-watch' is specified \fIsend\fR will monitor the delivery of local and +network mail. Hence, by specifying both switches, a large detail of +information can be gathered about each step of the message's entry into the +transport system. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +If `\-split' is specified, +\fIsend\fR will split the draft into one or more partial messages +prior to sending. +This makes use of the multi-media content feature in MH. +Note however that if \fIsend\fR is invoked under \fIdist\fR\0(1), +then this switch is ignored\0--\0it makes no sense to redistribute a +message in this fashion. +Sometimes you want \fIsend\fR to pause after posting a partial message. +This is usually the case when you are running \fIsendmail\fR and +expect to generate a lot of partial messages. +The argument to `\-split' tells it how long to pause between postings. + +\fISend\fR with no \fIfile\fR +argument will query whether the draft is the intended file, whereas +`\-draft' will suppress this question. +Once the transport system has successfully accepted custody of the message, +the file will be renamed +with a leading comma, which allows it to be retrieved until the +next draft message is sent. +If there are errors in the +formatting of the message, \fIsend\fR will abort with a (hopefully) +helpful error message. + +If a \*(lqBcc:\*(rq field is encountered, +its addresses will be used for delivery, +and the \*(lqBcc:\*(rq field will be removed from the message sent to sighted +recipients. +The blind recipients will receive an entirely new message with +a minimal set of headers. +Included in the body of the message will be a copy of the message sent to the +sighted recipients. +If `\-filter\ filterfile' is specified, +then this copy is filtered (re\-formatted) +prior to being sent to the blind recipients. +Otherwise, +to use the MIME rules for encapsulation, +specify the `-mime' switch. + +Prior to sending the message, the fields \*(lqFrom:\ user@local\*(rq, and +\*(lqDate:\ now\*(rq will be appended to the headers in the message. +If the envariable \fB$SIGNATURE\fR is set, +then its value is used as your personal name when +constructing the \*(lqFrom:\*(rq line of the message. +If this envariable is not set, +then \fIsend\fR will consult the profile entry \*(lqSignature\*(rq +for this information. +On hosts where \fIMH\fR was configured with the UCI option, +if \fB$SIGNATURE\fR is not set and the \*(lqSignature\*(rq profile entry +is not present, +then the file \fB$HOME\fR/.signature is consulted. +If `\-msgid' is +specified, then a \*(lqMessage\-ID:\*(rq field will also be added to the +message. + +If \fIsend\fR is re\-distributing a message +(when invoked by \fIdist\fR\0), +then \*(lqResent\-\*(rq will be prepended to each of these fields: +\*(lqFrom:\*(rq, \*(lqDate:\*(rq, and \*(lqMessage\-ID:\*(rq. +If the message already contains a \*(lqFrom:\*(rq field, then a +\*(lqSender: user@local\*(rq field will be added as well. +(An already existing +\*(lqSender:\*(rq field is an error!) + +By using the `\-format' switch, +each of the entries in +the \*(lqTo:\*(rq and \*(lqcc:\*(rq fields will be replaced +with \*(lqstandard\*(rq format entries. +This standard format is designed to be usable by all +of the message handlers on the various systems around the +Internet. +If `\-noformat' is given, +then headers are output exactly as they appear in the message draft. + +If an \*(lqFcc:\ folder\*(rq is encountered, the message will be copied +to the specified folder for the sender in the format in which it will appear +to any non\-Bcc receivers of the message. +That is, it will have the appended +fields and field reformatting. +The \*(lqFcc:\*(rq fields will be removed from all outgoing copies of the +message. + +By using the `\-width\ columns' switch, the user can direct \fIsend\fR as to +how long it should make header lines containing addresses. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read +(more than one file, each preceeded by `\-alias', can be named). +See \fImh\-alias\fR\0(5) for more information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Aliasfile:~^For a default alias file +.Ps +^Signature:~^To determine the user's mail signature +.Ps +^mailproc:~^Program to post failure notices +.Ps +^postproc:~^Program to post the message +.Sa +comp(1), dist(1), forw(1), repl(1), mh\-alias(5), post(8) +.De +`file' defaults to /draft +.Ds +`\-alias /opt/mh-6.8.5/lib/MailAliases' +.Ds +`\-nodraftfolder' +.Ds +`\-nofilter' +.Ds +`\-format' +.Ds +`\-forward' +.Ds +`\-nomime' +.Ds +`\-nomsgid' +.Ds +`\-nopush' +.Ds +`\-noverbose' +.Ds +`\-nowatch' +.Ds +`\-width\ 72' +.Co +None +.Bu +Under some configurations, it is not possible to mointor the +mail delivery transaction; `\-watch' is a no-op on those systems. +.sp +Using `\-split\00' doesn't work correctly. +.En diff --git a/docs/historical/mh-6.8.5/doc/show.me b/docs/historical/mh-6.8.5/doc/show.me new file mode 100644 index 0000000..5157dd1 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/show.me @@ -0,0 +1,142 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: show.rf,v 1.9 1995/12/06 22:48:30 jromine Exp $ +.SC SHOW 1 +.NA +show \- show (list) messages +.SY +show +\%[+folder] \%[msgs] +\%[\-draft] +\%[\-header] \%[\-noheader] +\%[\-showproc\ program] \%[\-noshowproc] +\%[switches\ for\ \fIshowproc\fR] +\%[\-help] +.DE +\fIShow\fR lists each of the specified messages to the standard +output (typically, the terminal). +Typically, the messages are listed exactly +as they are, with no reformatting. +A program named by the \fIshowproc\fR profile component is +invoked to do the listing, and any switches not recognized by +\fIshow\fR are passed along to that program. +The default program is known as \fImore\fR\0(1). +To override the default and the \fIshowproc\fR profile component, +use the `\-showproc\ program' switch. +For example, `\-show\ pr' will cause the \fIpr\fR\0(1) program to list the +messages. +The \fIMH\fR command \fImhl\fR can be used as a \fIshowproc\fR +to show messages in a more uniform format. +Normally, this program is specified as the \fIshowproc\fR is the user's +\&.mh\(ruprofile. +See \fImhl\fR\0(1) for the details. +If the `\-noshowproc' option is specified, +`/bin/cat' is used instead of \fIshowproc\fR. + +If you have messages with multi-media contents, +the profile entry \fImhnproc\fR defines the name of a program to +manipulate multi-media messages. +(The \fImhn\fR\0(1) program, +which is suitable for this purpose, +is the default.) +If the `\-noshowproc' option is NOT specified, +and if one or more named messages has a multi-media content, +then the program indicated by \fImhnproc\fR will be run instead of +\fIshowproc\fR. +The use of the \fImhnproc\fR can also be disabled if the +environment variable \fBNOMHNPROC\fR is set. +Note that the \fImhnproc\fR may be invoked even for textual contents, +depending on the character set involved. +The environment variable \fBMM_CHARSET\fP should be set to the terminal's +character set to avoid gratuitous invocations of the \fImhnproc\fR. + +The `\-header' switch tells \fIshow\fR to display a one\-line +description of the message being shown. +This description includes the folder and the message number. + +If no `msgs' are specified, the current message is used. +If more than one message is specified, +\fImore\fR will prompt for a prior to listing each message. +\fImore\fR will list each message, a page at a time. +When the end of +page is reached, \fImore\fR will ring the bell and wait for a +or . +If a is entered, \fImore\fR will print the next line, +whereas will print the next screenful. +To exit \fImore\fR, type \*(lqq\*(rq. + +If the standard output is not a terminal, no queries are made, +and each file is listed with a one\-line header and two lines of +separation. + +\*(lqshow \-draft\*(rq will list the file /draft if it +exists. + +If the profile entry \*(lqUnseen\-Sequence\*(rq is present and non\-empty, +then \fIshow\fR will remove each of the messages shown from each +sequence named by the profile entry. +This is similar to the \*(lqPrevious\-Sequence\*(rq profile entry supported +by all \fIMH\fR commands which take `msgs' or `msg' arguments. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Ps +^Unseen\-Sequence:~^To name sequences denoting unseen messages +.Ps +^showproc:~^Program to show messages +.Ps +^mhnproc:~^Program to show messages with multi-media content +.Sa +mhl(1), more(1), next(1), pick(1), prev(1), scan(1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to cur +.Ds +`\-header' +.Co +If a folder is given, it will become the current folder. +The last message shown will become the current message. +.Bu +The `\-header' switch doesn't work when `msgs' expands to more than +one message. +If the \fIshowproc\fR is \fImhl\fR, +then is problem can be circumvented by referencing +the \*(lqmessagename\*(rq field in the \fImhl\fR format file. + +\fIShow\fR updates the user's context before showing the message. +Hence \fIshow\fR will mark messages as seen prior to the user +actually seeing them. +This is generally not a problem, +unless the user relies on the \*(lqunseen\*(rq messages mechanism, +and interrupts \fIshow\fR while it is showing \*(lqunseen\*(rq messages. + +If \fIshowproc\fR is \fImhl\fR, +then \fIshow\fR uses a built\-in \fImhl\fR: +it does not actually run the \fImhl\fR program. +Hence, if you define your own \fIshowproc\fR, +don't call it \fImhl\fR since \fIshow\fR won't run it. + +If \fImore\fR\0(1) is your showproc (the default), +then avoid running \fIshow\fR in the background +with only its standard output piped to another process, as in + +.ti +.5i +show | imprint & + +Due to a bug in \fImore\fR, +show will go into a \*(lqtty input\*(rq state. +To avoid this problem, +re\-direct \fIshow\fR's diagnostic output as well. +For users of \fIcsh\fR: + +.ti +.5i +show |& imprint & + +For users of \fIsh\fR: + +.ti +.5i +show 2>&1 | imprint & +.En diff --git a/docs/historical/mh-6.8.5/doc/slocal.me b/docs/historical/mh-6.8.5/doc/slocal.me new file mode 100644 index 0000000..004b09e --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/slocal.me @@ -0,0 +1,348 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: slocal.rf,v 1.15 1992/10/28 16:53:03 jromine Exp $ +.SC SLOCAL 1 +.NA +slocal \- special local mail delivery +.SY +/opt/mh-6.8.5/lib/slocal \%[address\ info\ sender] +.na +.br +\%[\-addr\ address] +\%[\-info\ data] +\%[\-sender\ sender] +.br +\%[\-user\ username] +\%[\-mailbox\ mbox] +\%[\-file\ file] +.\" \%[\-home\ homedir] +.br +\%[\-maildelivery\ deliveryfile] +\%[\-verbose] \%[\-noverbose] +\%[\-debug] +\%[\-help] +.ad +.DE +\fISlocal\fP is a program designed to allow you to have +your inbound mail processed according to a complex +set of selection criteria. +You do not normally invoke \fIslocal\fP yourself, +rather \fIslocal\fP is invoked on your behalf by your system's +Message Transfer Agent. + +The message selection +criteria used by \fIslocal\fP +is specified in the file \fI\&.maildelivery\fP +in the user's home directory. The format of this file +is given below. + +The message delivery address and message sender are +determined from the Message Transfer Agent +envelope information, if possible. Under \fISendMail\fP, +the sender will obtained from the UUCP \*(lqFrom\ \*(rq +line, if present. The user may override these values +with command line arguments, or arguments to +the `\-addr' and `\-sender' switches. + +The message is normally read from the standard input. +The `\-file' switch sets the name of the file from which +the message should be read, instead of reading stdin. +The `\-user' switch tells \fIslocal\fP +the name of the user for whom it is delivering mail. +The `\-mailbox' switch tells \fIslocal\fP the name +of the user's maildrop file. + +The `\-info' switch may be used to pass an arbitrary +argument to sub-processes which \fIslocal\fP may +invoke on your behalf. +The `\-verbose' switch causes \fIslocal\fP +to give information on stdout about its progress. +The `\-debug' switch produces more verbose debugging output on stderr. + +.Uh "Message Transfer Agents" +If your MTA is \fISendMail\fP, +you should include the line +.sp +.nf +.in +.5i + \*(lq|\ /opt/mh-6.8.5/lib/slocal\ \-user\ username\*(rq +.in -.5i +.fi +.sp +in your \&.forward file in your home directory. +This will cause \fISendMail\fP to invoke \fIslocal\fP on your behalf. + +If your MTA is \fIMMDF-I\fP, +you should (symbolically) link /opt/mh-6.8.5/lib/slocal to the file +bin/rcvmail in your home directory. +This will cause \fIMMDF-I\fP to invoke \fIslocal\fP on your behalf +with the correct \*(lq\fIaddress\ info\ sender\fP\*(rq arguments. + +If your MTA is \fIMMDF-II\fP, +then you should not use \fIslocal\fP. +An equivalent functionality is already provided by \fIMMDF-II\fP; +see maildelivery(5) for details. + +.Uh "The Maildelivery File" + +The \fI\&.maildelivery\fR file +controls how local delivery is performed. +Each line of this file +consists of five fields, separated by white-space or comma. +Since double-quotes are honored, +these characters may be included in a single argument by enclosing the +entire argument in double-quotes. +A double-quote can be included by preceding it with a backslash. +Lines beginning with `#' are ignored. +The format of each line in the \fI\&.maildelivery\fR file is: + + + \fBheader pattern action result string\fR +.sp +.in +.5i +.ti -.5i +\fBheader\fP: +.br +The name of a header field that is to be searched for a pattern. +This is any field in the headers of the message that might be present. +The following special fields are also defined: +.sp +.in +1i +.ta +1i +.ti -1i +\fIsource\fR the out-of-band sender information +.ti -1i +\fIaddr\fR the address that was used to cause delivery to the recipient +.ti -1i +\fIdefault\fR this matches \fIonly\fR if the message hasn't been delivered yet +.ti -1i +\fI*\fR this always matches +.in -1i + +.ti -.5i +\fBpattern\fR: +.br +The sequence +of characters to match in the specified header field. +Matching is case-insensitive, but does not use regular expressions. + +.ti -.5i +\fBaction\fR: +.br +The action to take to deliver the message: +.sp +.in +1i +.ta +1i +.ti -1i +\fIdestroy\fR This action always succeeds. + +.ti -1i +\fIfile\fR or > Append +the message to the file named by \fBstring\fR. +The message is appended to the file in the maildrop +format which is used by your message transport system. +If the message can be appended to the file, +then this action succeeds. +When writing to the file, +a \*(lqDelivery\-Date:\ date\*(rq header is added +which indicates the date and time that message was appended to the file. + +.ti -1i +\fImbox\fR Identical +to \fIfile\fR, +but always appends the message using the format used by \fIpackf\fR +(the MMDF mailbox format). + +.ti -1i +\fIpipe\fR or | Pipe +the message as the standard input to the command named by \fBstring\fR, +using the Bourne shell \fIsh\fR(1) to interpret the string. +Prior to giving the string to the shell, +it is expanded with the following built-in variables: +.sp +.in +1i +.ta +1i +.ti -1i +$(sender) the out-of-band sender information +.ti -1i +$(address) the address that was used to cause delivery to the recipient +.ti -1i +$(size) the size of the message in bytes +.ti -1i +$(reply\-to) either the \*(lqReply\-To:\*(rq or \*(lqFrom:\*(rq field +of the message +.ti -1i +$(info) the out-of-band information specified +.in -1i +.ti -1i +\fIqpipe\fR or +.ti -1i +\fI\fR Similar to \fIpipe\fR, +but executes the command directly, +after built-in variable expansion, +without assistance from the shell. +This action can be used to avoid quoting special characters +which your shell might interpret. +.in -1i + +.ti -.5i +\fBresult\fR: +.br +Indicates how the action should be performed: + +.in +1i +.ta +1i +.ti -1i +\fIA\fR Perform the action. +If the action succeeds, then the message is considered delivered. + +.ti -1i +\fIR\fR Perform the action. +Regardless of the outcome of the action, +the message is not considered delivered. + +.ti -1i +\fI?\fR Perform +the action only if the message has not been delivered. +If the action succeeds, then the message is considered delivered. + +.ti -1i +\fIN\fR Perform +the action only if the message has not been delivered +and the previous action succeeded. +If this action succeeds, then the message is considered delivered. +.sp +.in -1i +.in -.5i +To summarize, here's an example: +.sp +.if t .in +.5i +.nf +.ta \w'default 'u +\w'mh-workersxx 'uC +\w'destroy 'uC +\w'result 'u +#\fIfield\fR \fIpattern\fR \fIaction\fR \fIresult\fR \fIstring\fR +# lines starting with a '#' are ignored, as are blank lines +# +# file mail with mmdf2 in the \*(lqTo:\*(rq line into file mmdf2.log +\fITo mmdf2 file A mmdf2.log\fP +# Messages from mmdf pipe to the program err-message-archive +\fIFrom mmdf pipe A /bin/err-message-archive\fP +# Anything with the \*(lqSender:\*(rq address \*(lqmh-workers\*(rq +# file in mh.log if not filed already +\fISender mh-workers file ? mh.log\fP +# \*(lqTo:\*(rq unix \- put in file unix-news +\fITo Unix > A unix-news\fP +.\" # if the address is jpo=mmdf \- pipe into mmdf-redist +.\" \fIaddr jpo=mmdf | A mmdf-redist\fP +# if the address is jpo=ack \- send an acknowledgement copy back +\fIaddr jpo=ack \fP|\fI R \*(lq/bin/resend\0\-r\0$(reply-to)\*(rq\fP +# anything from steve \- destroy! +\fIFrom steve destroy A \-\fP +# anything not matched yet \- put into mailbox +\fIdefault \- > ? mailbox\fP +# always run rcvtty +\fI* \- \fP|\fI R /mh/lib/rcvtty\fP +.re +.fi +.if t .in -.5i + +The file is always read completely, +so that several matches can be made and several actions can be taken. +The \fI\&.maildelivery\fR file must be owned either by the user or by root, +and must be writable only by the owner. +If the \fI\&.maildelivery\fR file cannot be found, +or does not perform an action which delivers the message, +then the file /opt/mh-6.8.5/lib/maildelivery is read according to the same rules. +This file must be owned by the root and must be writable only by the root. +If this file cannot be found +or does not perform an action which delivers the message, +then standard delivery to the user's maildrop is performed. + +.Uh "Sub-process environment" +When a process is invoked, its environment is: +the user/group-ids are set to recipient's ids; +the working directory is the recipient's home directory; +the umask is 0077; +the process has no /dev/tty; +the standard input is set to the message; +the standard output and diagnostic output are set to /dev/null; +all other file-descriptors are closed; +the envariables \fB$USER\fR, \fB$HOME\fR, \fB$SHELL\fR are set +appropriately, +and no other envariables exist. + +The process is given a certain amount of time to execute. +If the process does not exit within this limit, +the process will be terminated with extreme prejudice. +The amount of time is calculated as ((size x 60) + 300) seconds, +where size is the number of bytes in the message. + +The exit status of the process is consulted in determining the success of the +action. +An exit status of zero means that the action succeeded. +Any other exit status (or abnormal termination) means that the action failed. + +In order to avoid any time limitations, +you might implement a process that began by \fIforking\fR. +The parent would return the appropriate value immediately, +and the child could continue on, +doing whatever it wanted for as long as it wanted. +This approach is somewhat risky if the parent is going to return an +exit status of zero. +If the parent is going to return a non-zero exit status, +then this approach can lead to quicker delivery into your maildrop. + +.Uh "Duplicate Message Suppression" +\fIslocal\fR is able to detect and supress duplicate messages. +To enable this, +create two empty files in your $HOME directory: +\&.maildelivery.pag and \&.maildelivery.dir. +These are ndbm files which are used to store the Message-IDs of +incoming messages. +.Fi +^/opt/mh-6.8.5/lib/mtstailor~^MH tailor file +^$HOME/\&.maildelivery~^The file controlling local delivery +^/opt/mh-6.8.5/lib/maildelivery~^Rather than the standard file +^/var/spool/mail/$USER~^The default maildrop +.Sa +rcvstore(1), mhook(1), mh\-format(5) +.De +`\-noverbose' +.Ds +`\-maildelivery \&.maildelivery' +.Ds +`\-mailbox /var/spool/mail/$USER' +.Ds +`\-file' defaults to stdin +.Ds +`\-user' defaults to the current user +.Co +None +.Hi +\fISlocal\fP is designed to be backward-compatible with the +\fImaildelivery\fP facility provided by \fIMMDF-II\fP. +Thus, the \fI\&.maildelivery\fP file syntax is limited, +as is the functionality of \fIslocal\fP. + +In addition to an exit status of zero, +the \fIMMDF\fR values \fIRP_MOK\fR (32) and \fIRP_OK\fR (9) +mean that the message has been fully delivered. +Any other non-zero exit status, +including abnormal termination, +is interpreted as the \fIMMDF\fR value \fIRP_MECH\fR (200), +which means \*(lquse an alternate route\*(rq +(deliver the message to the maildrop). +.Bu +Only two return codes are meaningful, others should be. + +\fISlocal\fP is designed to be +backwards-compatible with the \fImaildelivery\fP functionality provided +by \fBMMDF-II\fP. + +Versions of \fIMMDF\fR with the \fImaildelivery\fR mechanism aren't +entirely backwards-compatible with earlier versions of \fIMMDF\fP. +If you have an \fIMMDF-I\fP old-style hook, +the best you can do is to have a one-line +\fI\&.maildelivery\fR file: + +.ti +.5i +default \- pipe A \*(lqbin/rcvmail $(address) $(info) $(sender)\*(rq +.En diff --git a/docs/historical/mh-6.8.5/doc/sortm.me b/docs/historical/mh-6.8.5/doc/sortm.me new file mode 100644 index 0000000..dda70e3 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/sortm.me @@ -0,0 +1,101 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: sortm.rf,v 1.9 1993/08/27 20:21:19 jromine Exp $ +.SC SORTM 1 +.NA +sortm \- sort messages +.SY +sortm +\%[+folder] \%[msgs] +\%[\-datefield\ field] +\%[\-textfield\ field] \%[\-notextfield] +\%[\-limit days] \%[\-nolimit] +\%[\-verbose] \%[\-noverbose] +\%[\-help] +.DE +\fISortm\fR sorts the specified messages in the named folder according +to the chronological order of the \*(lqDate:\*(rq field of each message. + +The `\-verbose' switch directs \fIsortm\fR to tell the user the general +actions that it is taking to place the folder in sorted order. + +The `\-datefield\ field' switch tells \fIsortm\fR the name of the field +to use when making the date comparison. +If the user has a special field in each message, +such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq, +then the `\-datefield' switch can be used to direct \fIsortm\fR which +field to examine. + +The `\-textfield\ field' switch causes \fIsortm\fR to sort messages by +the specified text field. +If this field is \*(lqsubject\*(rq, +any leading "re:" is stripped off. +In any case, all characters except letters and numbers are stripped +and the resulting strings are sorted +datefield\-major, textfield\-minor, +using a case insensitive comparison. + +With `\-textfield\ field', +if `\-limit\ days' is specified, messages with similar textfields +that are dated within `days' of each other appear together. +Specifying `\-nolimit' makes the limit infinity. +With `\-limit 0', the sort is instead made textfield\-major, date\-minor. + +.\"Ex +For example, to order a folder by date-major, subject-minor, use: + +.ti +.5i +sortm -textfield subject +folder + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Current\-Folder:~^To find the default current folder +.Sa +folder (1) +.De +`+folder' defaults to the current folder +.Ds +`msgs' defaults to all +.Ds +`\-datefield date' +.Ds +`\-notextfield' +.Ds +`\-noverbose' +.Ds +`\-nolimit' +.Co +If a folder is given, it will become the current folder. +If the current message is moved, \fIsortm\fR will preserve its status +as current. +.Hi +Timezones used to be ignored when comparing dates: +they aren't any more. + +Messages which were in the folder, but not specified by `msgs', +used to be moved to the end of the folder; +now such messages are left untouched. + +\fISortm\fP sometimes did not preserve the message +numbering in a folder (e.g., messages +1, 3, and 5, might have been renumbered +to 1, 2, 3 after sorting). +This was a bug, and has been fixed. +To compress the message numbering in a folder, use +\*(lq\fIfolder\ \-pack\fR\|\*(rq as always. +.Bu +If \fIsortm\fR encounters a message without a date\-field, +or if the message has a date\-field that \fIsortm\fR cannot parse, +then \fIsortm\fR attempts to keep the message in the same relative +position. +This does not always work. +For instance, if the first message encountered lacks a date which can be +parsed, +then it will usually be placed at the end of the messages being sorted. + +When \fIsortm\fR complains about a message which it can't temporally order, +it complains about the message number \fIprior\fR to sorting. +It should indicate what the message number will be \fIafter\fR sorting. +.En diff --git a/docs/historical/mh-6.8.5/doc/tmac.h b/docs/historical/mh-6.8.5/doc/tmac.h new file mode 100644 index 0000000..e5ec38e --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/tmac.h @@ -0,0 +1,77 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: tmac.h,v 1.7 1992/10/30 19:45:32 jromine Exp $ +.\" Try to keep only one copy of the documentation around +.\" by re-defining macros and so forth. +.\" +.fc ^ ~ +.\" I pity the fool who tampers with the next line... +.ds ZZ -man +.de SC \" Title section +.TH \\$1 \\$2 MH.6.8 [mh.6] +.. +.de NA \" Name section +.SH NAME +.. +.de SY \" Synopsis section +.SH SYNOPSIS +.in +.5i +.ti -.5i +.. +.de DE \" Description section +.in -.5i +.SH DESCRIPTION +.. +.de Fi \" Files section +.SH FILES +.nf +.ta \w'/opt/mh-6.8.5/lib/ExtraBigFileName 'u +.. +.de Pr \" Profile section +.SH "PROFILE\ COMPONENTS" +.nf +.ta 2.4i +.ta \w'ExtraBigProfileName 'u +.. +.de Ps \" Profile next +.br +.. +.de Sa \" See Also section +.fi +.SH "SEE\ ALSO" +.. +.de De \" Defaults section +.SH "DEFAULTS" +.nf +.. +.de Ds \" Defaults next +.br +.. +.de Co \" Context section +.fi +.SH CONTEXT +.. +.de Hh \" Hints section +.fi +.SH "HELPFUL HINTS" +.. +.de Hi \" History section +.fi +.SH HISTORY +.. +.de Bu \" Bugs section +.fi +.SH BUGS +.. +.de En +.. +.de ip +.IP "\\$1" \\$2 +.. +.de Uh +.ne 4 +.SS "\\$1" +.. +.\" a useful -me macro +.de re +.ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +.. diff --git a/docs/historical/mh-6.8.5/doc/tmac.me b/docs/historical/mh-6.8.5/doc/tmac.me new file mode 100644 index 0000000..6c73ac7 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/tmac.me @@ -0,0 +1,3 @@ +.\" This file is automatically generated. Do not edit! +.\" include the -mh macro file +.so /opt/mh-6.8.5/lib/tmac.h diff --git a/docs/historical/mh-6.8.5/doc/version.rf b/docs/historical/mh-6.8.5/doc/version.rf new file mode 100644 index 0000000..e8d9906 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/version.rf @@ -0,0 +1 @@ +.ds MH 6.8.4 #17[UCI] diff --git a/docs/historical/mh-6.8.5/doc/vmh.me b/docs/historical/mh-6.8.5/doc/vmh.me new file mode 100644 index 0000000..ba58f24 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/vmh.me @@ -0,0 +1,105 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: vmh.rf,v 1.6 1992/05/12 22:23:34 jromine Exp $ +.SC VMH 1 +.NA +vmh \- visual front-end to MH +.SY +vmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] +.DE +\fIvmh\fR is a program which implements the server side of +the \fIMH\fR window management protocol +and uses \fIcurses\fR\0(3) routines to maintain a split\-screen interface to +any program which implements the client side of the protocol. +This latter program, called the \fIvmhproc\fR, +is specified using the `\-vmhproc\ program' switch. + +The upshot of all this is that one can run \fImsh\fR on a display terminal +and get a nice visual interface. +To do this, for example, just add the line + +.ti +.5i +mshproc: vmh + +to your \&.mh\(ruprofile. +(This takes advantage of the fact that +\fImsh\fR is the default \fIvmhproc\fR for \fIvmh\fR.) + +In order to facilitate things, +if the `\-novmhproc' switch is given, +and \fIvmh\fR can't run on the user's terminal, +the \fIvmhproc\fR is run directly without the window management protocol. + +After initializing the protocol, +\fIvmh\fR prompts the user for a command to be given to the client. +Usually, this results in output being sent to one or more windows. +If a output to a window would cause it to scroll, +\fIvmh\fR prompts the user for instructions, +roughly permitting the capabilities of \fIless\fR or \fImore\fR +(e.g., the ability to scroll backwards and forwards): + +.nf +.in +.5i +.ta \w'RETURN 'u +\w'* 'u +SPACE advance to the next windowful +RETURN * advance to the next line +y * retreat to the previous line +d * advance to the next ten lines +u * retreat to the previous ten lines +g * go to an arbitrary line + (preceed g with the line number) +G * go to the end of the window + (if a line number is given, this acts like `g') +CTRL\-L refresh the entire screen +h print a help message +q abort the window +.re +.in -.5i +.fi + +(A `*' indicates that a numeric prefix is meaningful for this command.) + +Note that if a command resulted in more than one window's worth of +information being displayed, +and you allow the command which is generating information for the window to +gracefully finish +(i.e., you don't use the `q' command to abort information being sent to the +window), +then \fIvmh\fR will give you one last change to peruse the window. +This is useful for scrolling back and forth. +Just type `q' when you're done. + +To abnormally terminate \fIvmh\fR (without core dump), +use (usually CTRL\-\\). +For instance, +this does the \*(lqright\*(rq thing with \fIbbc\fR and \fImsh\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +msh(1) +.De +`\-prompt\ (vmh)\ ' +.Ds +`\-vmhproc\ msh' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIvmh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +At present, +there is no way to pass signals (e.g., interrupt, quit) to the client. +However, +generating QUIT when \fIvmh\fR is reading a command from the terminal is +sufficient to tell the client to go away quickly. + +Acts strangely (loses peer or botches window management protocol with peer) +on random occasions. +.En diff --git a/docs/historical/mh-6.8.5/doc/whatnow.me b/docs/historical/mh-6.8.5/doc/whatnow.me new file mode 100644 index 0000000..f6e0ee3 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/whatnow.me @@ -0,0 +1,129 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: whatnow.rf,v 1.9 1992/10/16 21:36:30 jromine Exp $ +.SC WHATNOW 1 +.NA +whatnow \- prompting front-end for send +.SY +whatnow +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[\-editor\ editor] \%[\-noedit] +\%[\-prompt\ string] +\%[file] +\%[\-help] +.DE +\fIWhatnow\fR is the default program that queries the user about the +disposition of a composed draft. +It is normally invoked by one of +\fIcomp\fR, \fIdist\fR, \fIforw\fR, or \fIrepl\fR +after the initial edit. + +When started, +the editor is started on the draft +(unless `\-noedit' is given, in which case the initial edit is suppressed). +Then, \fIwhatnow\fR repetitively +prompts the user with \*(lqWhat now?\*(rq and awaits a response. +The valid responses are: + +.nf +.in .5i +.ta \w'\fBrefile +folder\fR 'u +^\fBdisplay\fR~^to list the message being distributed/replied\-to on +^~^the terminal +^\fBedit\fR~^to re\-edit using the same editor that was used on the +^~^preceding round unless a profile entry +^~^\*(lq\-next: \*(rq names an alternate editor +^\fBedit \fR~^to invoke for further editing +^\fBlist\fR~^to list the draft on the terminal +^\fBpush\fR~^to send the message in the background +^\fBquit\fR~^to terminate the session and preserve the draft +^\fBquit \-delete\fR~^to terminate, then delete the draft +^\fBrefile +folder\fR~^to refile the draft into the given folder +^\fBsend\fR~^to send the message +^\fBsend \-watch\fR~^to cause the delivery process to be monitored +^\fBwhom\fR~^to list the addresses that the message will go to +^\fBwhom \-check\fR~^to list the addresses and verify that they are +^~^acceptable to the transport service +.fi +.re + +For the \fBedit\fR response, +any valid switch to the editor is valid. +Similarly, +for the \fBsend\fR and \fBwhom\fR responses, +any valid switch to \fIsend\fR\0(1) and \fIwhom\fR\0(1) commands, +respectively, +are valid. +For the \fBpush\fR response, +any valid switch to \fIsend\fR\0(1) is valid +(as this merely invokes \fIsend\fR with the `\-push' option). +For the \fIrefile\fR response, +any valid switch to the \fIfileproc\fR is valid. +For the \fBdisplay\fR and \fBlist\fR responses, +any valid argument to the \fIlproc\fR is valid. +If any non\-switch arguments are present, +then the pathname of the draft will be excluded from the argument list +given to the \fIlproc\fR +(this is useful for listing another \fIMH\fR message). + +See \fImh\-profile\fR\0(5) for further information +about how editors are used by MH. +It also discusses how complex envariables can be used to direct +\fIwhatnow\fR's actions. + +The `\-prompt\ string' switch sets the prompting string for \fIwhatnow\fR. + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^/draft~^The draft file +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Editor:~^To override the default editor +.Ps +^\-next:~^To name an editor to be used after exit from +.Ps +^automhnproc:~^Program to automatically run prior to sending +^~^if the draft is an \fImhn\fR composition file +.Ps +^fileproc:~^Program to refile the message +.Ps +^lproc:~^Program to list the contents of a message +.Ps +^sendproc:~^Program to use to send the message +.Ps +^whomproc:~^Program to determine who a message would go to +.Sa +send(1), whom(1) +.De +`\-prompt\ \*(lqWhat\ Now?\ \*(rq' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIwhatnow\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +If the initial edit fails, \fIwhatnow\fR deletes your draft (by renaming +it with a leading comma); failure of a later edit preverves the draft. + +If \fIwhatnowproc\fR is \fIwhatnow\fR, +then \fIcomp\fR, \fIdist\fP, \fIforw\fP, and \fIrepl\fP use +a built\-in \fIwhatnow\fR, +and do not actually run the \fIwhatnow\fR program. +Hence, if you define your own \fIwhatnowproc\fR, +don't call it \fIwhatnow\fR since it won't be run. + +If \fIsendproc\fR is \fIsend\fR, +then \fIwhatnow\fR uses a built\-in \fIsend\fR, +it does not actually run the \fIsend\fR program. +Hence, if you define your own \fIsendproc\fR, +don't call it \fIsend\fR since \fIwhatnow\fR won't run it. +.En diff --git a/docs/historical/mh-6.8.5/doc/whom.me b/docs/historical/mh-6.8.5/doc/whom.me new file mode 100644 index 0000000..28df216 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/whom.me @@ -0,0 +1,56 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: whom.rf,v 1.7 1992/02/11 00:47:53 jromine Exp $ +.SC WHOM 1 +.NA +whom \- report to whom a message would go +.SY +whom +\%[\-alias\ aliasfile] +\%[\-check] \%[\-nocheck] +\%[\-draft] +\%[\-draftfolder\ +folder] \%[\-draftmessage\ msg] \%[\-nodraftfolder] +\%[file] +\%[\-help] +.DE +\fIWhom\fR is used to expand the headers of a message into a set of addresses +and optionally verify that those addresses are deliverable at that time +(if `\-check' is given). + +The `\-draftfolder\ +folder' and `\-draftmessage\ msg' switches invoke the +\fIMH\fR draft folder facility. +This is an advanced (and highly useful) feature. +Consult the \fBAdvanced Features\fR section of the \fIMH\fR manual for more +information. + +The files specified by the profile entry \*(lqAliasfile:\*(rq and any +additional alias files given by the `\-alias aliasfile' switch will be read +(more than one file, each preceeded by `\-alias', can be named). +See \fImh\-alias\fR\0(5) for more information. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Ps +^Draft\-Folder:~^To find the default draft\-folder +.Ps +^Aliasfile:~^For a default alias file +.Ps +^postproc:~^Program to post the message +.Sa +mh\-alias(5), post(8) +.De +`file' defaults to /draft +.Ds +`\-nocheck' +.Ds +`\-alias /opt/mh-6.8.5/lib/MailAliases' +.Co +None +.Bu +With the `\-check' option, \fIwhom\fR makes no guarantees that the addresses +listed as being ok are really deliverable, rather, an address being listed +as ok means that at the time that \fIwhom\fR was run the address was +thought to be deliverable by the transport service. For local addresses, this +is absolute; for network addresses, it means that the host is known; for uucp +addresses, it (often) means that the \fIUUCP\fR network is available for use. +.En diff --git a/docs/historical/mh-6.8.5/doc/wmh.me b/docs/historical/mh-6.8.5/doc/wmh.me new file mode 100644 index 0000000..6241090 --- /dev/null +++ b/docs/historical/mh-6.8.5/doc/wmh.me @@ -0,0 +1,88 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id: wmh.rf,v 1.5 90/04/05 15:15:38 sources Exp $ +.SC WMH 1 +.NA +wmh \- window front\-end to MH +.SY +wmh +\%[\-prompt\ string] +\%[\-vmhproc\ program] \%[\-novmhproc] +\%[switches\ for\ \fIvmhproc\fR] +\%[\-help] +.DE +\fIwmh\fR is a program which implements the server side of +the \fIMH\fR window management protocol +and uses the Integrated Solutions Graphics Workstation desktop to maintain a +multiple window interface to +any program which implements the client side of the protocol. +This latter program, called the \fIvmhproc\fR, +is specified using the `\-vmhproc\ program' switch. + +The upshot of all this is that one can run \fImsh\fR on an IS desktop +and get a nice window interface. +To do this, for example, just add the line + +.ti +.5i +mshproc: wmh + +to your \&.mh\(ruprofile. +(This takes advantage of the fact that +\fImsh\fR is the default \fIvmhproc\fR for \fIwmh\fR.) + +In order to facilitate things, +if the `\-novmhproc' switch is given, +and \fIwmh\fR can't run on the user's terminal +(i.e., the terminal is not a desktop), +the \fIvmhproc\fR is run directly without the window management protocol. + +After initializing the protocol, +\fIwmh\fR prompts the user for a command to be given to the client. +Usually, this results in output being sent to one or more windows. +If output to a window would cause it to scroll, +\fIwmh\fR uses an elevator bar to scroll through the window. +If click left is used inside the elevator bar, +the user can direct \fIwmh\fR as to what portion of the output should be +displayed; +if click middle is used, +the \*(lqpaging\*(rq menu is displayed; +and, +if click right is used, +the window scrolls to the next page +(or, the user explicitly moved to the end, the previous page). + +The mouse can also be used while in the command window: +click left does nothing; +click middle brings up the \*(lqwmh\*(rq menu; +and, +click right shows the next message (a moby hack for timesavings). +To abnormally terminate \fIwmh\fR (without core dump), +use (usually CTRL\-\\). +For instance, +this does the \*(lqright\*(rq thing with \fIbbc\fR and \fImsh\fR. +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +.Pr +^Path:~^To determine the user's MH directory +.Sa +msh(1) +.De +`\-prompt\ (wmh)\ ' +.Ds +`\-vmhproc\ msh' +.Co +None +.Bu +The argument to the `\-prompt' switch must be interpreted as a single token +by the shell that invokes \fIwmh\fR. +Therefore, +one must usually place the argument to this switch inside double\-quotes. + +At present, +there is no way to pass signals (e.g., interrupt, quit) to the client. +However, +generating QUIT when \fIwmh\fR is reading a command from the terminal is +sufficient to tell the client to go away quickly. + +Acts strangely (loses peer or botches window management protocol with peer) +on random occasions. +.En diff --git a/docs/historical/mh-6.8.5/h/RCS/addrsbr.h,v b/docs/historical/mh-6.8.5/h/RCS/addrsbr.h,v new file mode 100644 index 0000000..9bba3a9 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/addrsbr.h,v @@ -0,0 +1,85 @@ +head 1.2; +access; +symbols; +locks; strict; +comment @ * @; + + +1.2 +date 92.05.12.22.01.10; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.02.10.17.57.27; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.2 +log +@fix ifdefs +@ +text +@/* addrsbr.h - definitions for the address parsing system */ + +#define AD_HOST 1 /* getm(): lookup official hostname */ +#define AD_NHST 0 /* getm(): do not lookup official name */ +#define AD_NAME AD_NHST /* AD_HOST is TOO slow */ + + +struct mailname { + struct mailname *m_next; + + char *m_text, + *m_pers, + *m_mbox, + *m_host, + *m_path; + + int m_type; +#define UUCPHOST (-1) +#define LOCALHOST 0 +#define NETHOST 1 +#define BADHOST 2 + + char m_nohost; + + char m_bcc; + + int m_ingrp; + char *m_gname; + + char *m_note; + +#ifdef MHMTS + char *m_aka; +#endif /* MHMTS */ +}; + + +void mnfree (); +int ismymbox (); +char *getname (), *adrsprintf (), *auxformat (); +struct mailname *getm (); + +#define adrformat(m) auxformat ((m), 1) + +char *LocalName (), *SystemName (), *UucpChan (); +char *OfficialName (); +@ + + +1.1 +log +@Initial revision +@ +text +@d34 1 +a34 1 +#endif MHMTS +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/aliasbr.h,v b/docs/historical/mh-6.8.5/h/RCS/aliasbr.h,v new file mode 100644 index 0000000..1c50429 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/aliasbr.h,v @@ -0,0 +1,100 @@ +head 1.2; +access; +symbols; +locks; strict; +comment @ * @; + + +1.2 +date 92.05.12.22.03.31; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.05.12.22.02.44; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.2 +log +@fix ifdefs +@ +text +@/* aliasbr.h - definitions for the aliasing system */ +/* $Id: formatsbr.h,v 1.1 1992/01/23 23:14:54 jromine Exp $ */ + + +extern char *AliasFile; /* mh-alias(5) */ + +#define PASSWD "/etc/passwd" /* passwd(5) */ + +#define GROUP "/etc/group" /* group(5) */ + +#define EVERYONE 200 /* lowest uid for everyone */ + +struct aka { + char *ak_name; /* name to match against */ + struct adr *ak_addr; /* list of addresses that it maps to */ + struct aka *ak_next; /* next aka in list */ + char ak_visible; /* should be visible in headers */ +}; + +struct adr { + char *ad_text; /* text of this address in list */ + struct adr *ad_next; /* next adr in list */ + char ad_local; /* text is local (check for expansion) */ +}; + +struct home { /* incore version of /etc/passwd */ + char *h_name; /* user name */ + int h_uid; /* user id */ + int h_gid; /* user's group */ + char *h_home; /* user's home directory */ + char *h_shell; /* user's shell */ +#ifdef BSD42 + int h_ngrps; /* number of groups this user belongs to */ +#endif /* BSD42 */ + struct home *h_next; /* next home in list */ +}; + +#ifndef MMDFMTS +struct home *seek_home (); +#endif /* MMDFMTS */ + +int alias (), akvisible (), init_pw (); +char *akresult (), *akvalue (), *akerror (); + +/* codes returned by alias() */ + +#define AK_OK 0 /* file parsed ok */ +#define AK_NOFILE 1 /* couldn't read file */ +#define AK_ERROR 2 /* error parsing file */ +#define AK_LIMIT 3 /* memory limit exceeded */ +#define AK_NOGROUP 4 /* no such group */ + + +/* should live here, not in mts.c */ + +extern int Everyone; +extern char *NoShell; +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +d34 1 +a34 1 +#endif BSD42 +d40 1 +a40 1 +#endif MMDFMTS +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/fmtcompile.h,v b/docs/historical/mh-6.8.5/h/RCS/fmtcompile.h,v new file mode 100644 index 0000000..13b0e72 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/fmtcompile.h,v @@ -0,0 +1,678 @@ +head 1.10; +access; +symbols; +locks; strict; +comment @ * @; + + +1.10 +date 93.06.12.06.46.16; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.02.09.07.12.48; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.01.23.23.16.05; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 91.11.28.00.05.59; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 91.11.28.00.04.48; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 90.12.27.17.04.12; author mh; state Exp; +branches; +next 1.4; + +1.4 +date 90.04.05.15.06.42; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.02.21.15.40.53; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.21.15.39.50; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.21.15.38.18; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.10 +log +@add %(profile xxx) to return m_find(xxx) +@ +text +@/* @@(#)$Id: fmtcompile.h,v 1.9 1992/02/09 07:12:48 jromine Exp jromine $ */ + +/* Format Types */ +/* -------------*/ + +/* types that output text */ +#define FT_COMP 1 /* the text of a component */ +#define FT_COMPF 2 /* comp text, filled */ +#define FT_LIT 3 /* literal text */ +#define FT_LITF 4 /* literal text, filled */ +#define FT_CHAR 5 /* a single ascii character */ +#define FT_NUM 6 /* "value" as decimal number */ +#define FT_NUMF 7 /* "value" as filled dec number */ +#define FT_STR 8 /* "str" as text */ +#define FT_STRF 9 /* "str" as text, filled */ +#define FT_STRFW 10 /* "str" as text, filled, width in "value" */ +#define FT_PUTADDR 11 /* split and print address line */ + +/* types that modify the "str" or "value" registers */ +#define FT_LS_COMP 12 /* set "str" to component text */ +#define FT_LS_LIT 13 /* set "str" to literal text */ +#define FT_LS_GETENV 14 /* set "str" to getenv(text) */ +#define FT_LS_MFIND 15 /* set "str" to m_find(text) */ +#define FT_LS_TRIM 16 /* trim trailing white space from "str" */ +#define FT_LV_COMP 17 /* set "value" to comp (as dec. num) */ +#define FT_LV_COMPFLAG 18 /* set "value" to comp flag word */ +#define FT_LV_LIT 19 /* set "value" to literal num */ +#define FT_LV_DAT 20 /* set "value" to dat[n] */ +#define FT_LV_STRLEN 21 /* set "value" to length of "str" */ +#define FT_LV_PLUS_L 22 /* set "value" += literal */ +#define FT_LV_MINUS_L 23 /* set "value" -= literal */ +#define FT_LV_DIVIDE_L 24 /* set "value" to value / literal */ +#define FT_LV_MODULO_L 25 /* set "value" to value % literal */ +#define FT_LV_CHAR_LEFT 26 /* set "value" to char left in output */ + +#define FT_LS_MONTH 27 /* set "str" to tws month */ +#define FT_LS_LMONTH 28 /* set "str" to long tws month */ +#define FT_LS_ZONE 29 /* set "str" to tws timezone */ +#define FT_LS_DAY 30 /* set "str" to tws weekday */ +#define FT_LS_WEEKDAY 31 /* set "str" to long tws weekday */ +#define FT_LS_822DATE 32 /* set "str" to 822 date str */ +#define FT_LS_PRETTY 33 /* set "str" to pretty (?) date str */ +#define FT_LV_SEC 34 /* set "value" to tws second */ +#define FT_LV_MIN 35 /* set "value" to tws minute */ +#define FT_LV_HOUR 36 /* set "value" to tws hour */ +#define FT_LV_MDAY 37 /* set "value" to tws day of month */ +#define FT_LV_MON 38 /* set "value" to tws month */ +#define FT_LV_YEAR 39 /* set "value" to tws year */ +#define FT_LV_YDAY 40 /* set "value" to tws day of year */ +#define FT_LV_WDAY 41 /* set "value" to tws weekday */ +#define FT_LV_ZONE 42 /* set "value" to tws timezone */ +#define FT_LV_CLOCK 43 /* set "value" to tws clock */ +#define FT_LV_RCLOCK 44 /* set "value" to now - tws clock */ +#define FT_LV_DAYF 45 /* set "value" to tws day flag */ +#define FT_LV_DST 46 /* set "value" to tws daylight savings flag */ +#define FT_LV_ZONEF 47 /* set "value" to tws timezone flag */ + +#define FT_LS_PERS 48 /* set "str" to person part of addr */ +#define FT_LS_MBOX 49 /* set "str" to mbox part of addr */ +#define FT_LS_HOST 50 /* set "str" to host part of addr */ +#define FT_LS_PATH 51 /* set "str" to route part of addr */ +#define FT_LS_GNAME 52 /* set "str" to group part of addr */ +#define FT_LS_NOTE 53 /* set "str" to comment part of addr */ +#define FT_LS_ADDR 54 /* set "str" to mbox@@host */ +#define FT_LS_822ADDR 55 /* set "str" to 822 format addr */ +#define FT_LS_FRIENDLY 56 /* set "str" to "friendly" format addr */ +#define FT_LV_HOSTTYPE 57 /* set "value" to addr host type */ +#define FT_LV_INGRPF 58 /* set "value" to addr in-group flag */ +#define FT_LV_NOHOSTF 59 /* set "value" to addr no-host flag */ + +/* Date Coercion */ +#define FT_LOCALDATE 60 /* Coerce date to local timezone */ +#define FT_GMTDATE 61 /* Coerce date to gmt */ + +/* pre-format processing */ +#define FT_PARSEDATE 62 /* parse comp into a date (tws) struct */ +#define FT_PARSEADDR 63 /* parse comp into a mailaddr struct */ +#define FT_FORMATADDR 64 /* let external routine format addr */ +#define FT_MYMBOX 65 /* do "mymbox" test on comp */ + +/* misc. */ /* ADDTOSEQ only works if you include "options LBL" */ +#define FT_ADDTOSEQ 66 /* add current msg to a sequence */ + +/* conditionals & control flow (must be last) */ +#define FT_SAVESTR 67 /* save current str reg */ +#define FT_DONE 68 /* stop formatting */ +#define FT_PAUSE 69 /* pause */ +#define FT_NOP 70 /* nop */ +#define FT_GOTO 71 /* (relative) goto */ +#define FT_IF_S_NULL 72 /* test if "str" null */ +#define FT_IF_S 73 /* test if "str" non-null */ +#define FT_IF_V_EQ 74 /* test if "value" = literal */ +#define FT_IF_V_NE 75 /* test if "value" != literal */ +#define FT_IF_V_GT 76 /* test if "value" > literal */ +#define FT_IF_MATCH 77 /* test if "str" contains literal */ +#define FT_IF_AMATCH 78 /* test if "str" starts with literal */ +#define FT_S_NULL 79 /* V = 1 if "str" null */ +#define FT_S_NONNULL 80 /* V = 1 if "str" non-null */ +#define FT_V_EQ 81 /* V = 1 if "value" = literal */ +#define FT_V_NE 82 /* V = 1 if "value" != literal */ +#define FT_V_GT 83 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 84 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 85 /* V = 1 if "str" starts with literal */ + +#define IF_FUNCS FT_S_NULL /* start of "if" functions */ +@ + + +1.9 +log +@add modulo function +put Van Jacobson changes under "options LBL" +@ +text +@d1 1 +a1 1 +/* @@(#)$Id: fmtcompile.h,v 1.8 1992/01/23 23:16:05 jromine Exp $ */ +d23 12 +a34 11 +#define FT_LS_TRIM 15 /* trim trailing white space from "str" */ +#define FT_LV_COMP 16 /* set "value" to comp (as dec. num) */ +#define FT_LV_COMPFLAG 17 /* set "value" to comp flag word */ +#define FT_LV_LIT 18 /* set "value" to literal num */ +#define FT_LV_DAT 19 /* set "value" to dat[n] */ +#define FT_LV_STRLEN 20 /* set "value" to length of "str" */ +#define FT_LV_PLUS_L 21 /* set "value" += literal */ +#define FT_LV_MINUS_L 22 /* set "value" -= literal */ +#define FT_LV_DIVIDE_L 23 /* set "value" to value / literal */ +#define FT_LV_MODULO_L 24 /* set "value" to value % literal */ +#define FT_LV_CHAR_LEFT 25 /* set "value" to char left in output */ +d36 21 +a56 21 +#define FT_LS_MONTH 26 /* set "str" to tws month */ +#define FT_LS_LMONTH 27 /* set "str" to long tws month */ +#define FT_LS_ZONE 28 /* set "str" to tws timezone */ +#define FT_LS_DAY 29 /* set "str" to tws weekday */ +#define FT_LS_WEEKDAY 30 /* set "str" to long tws weekday */ +#define FT_LS_822DATE 31 /* set "str" to 822 date str */ +#define FT_LS_PRETTY 32 /* set "str" to pretty (?) date str */ +#define FT_LV_SEC 33 /* set "value" to tws second */ +#define FT_LV_MIN 34 /* set "value" to tws minute */ +#define FT_LV_HOUR 35 /* set "value" to tws hour */ +#define FT_LV_MDAY 36 /* set "value" to tws day of month */ +#define FT_LV_MON 37 /* set "value" to tws month */ +#define FT_LV_YEAR 38 /* set "value" to tws year */ +#define FT_LV_YDAY 39 /* set "value" to tws day of year */ +#define FT_LV_WDAY 40 /* set "value" to tws weekday */ +#define FT_LV_ZONE 41 /* set "value" to tws timezone */ +#define FT_LV_CLOCK 42 /* set "value" to tws clock */ +#define FT_LV_RCLOCK 43 /* set "value" to now - tws clock */ +#define FT_LV_DAYF 44 /* set "value" to tws day flag */ +#define FT_LV_DST 45 /* set "value" to tws daylight savings flag */ +#define FT_LV_ZONEF 46 /* set "value" to tws timezone flag */ +d58 12 +a69 12 +#define FT_LS_PERS 47 /* set "str" to person part of addr */ +#define FT_LS_MBOX 48 /* set "str" to mbox part of addr */ +#define FT_LS_HOST 49 /* set "str" to host part of addr */ +#define FT_LS_PATH 50 /* set "str" to route part of addr */ +#define FT_LS_GNAME 51 /* set "str" to group part of addr */ +#define FT_LS_NOTE 52 /* set "str" to comment part of addr */ +#define FT_LS_ADDR 53 /* set "str" to mbox@@host */ +#define FT_LS_822ADDR 54 /* set "str" to 822 format addr */ +#define FT_LS_FRIENDLY 55 /* set "str" to "friendly" format addr */ +#define FT_LV_HOSTTYPE 56 /* set "value" to addr host type */ +#define FT_LV_INGRPF 57 /* set "value" to addr in-group flag */ +#define FT_LV_NOHOSTF 58 /* set "value" to addr no-host flag */ +d72 2 +a73 2 +#define FT_LOCALDATE 59 /* Coerce date to local timezone */ +#define FT_GMTDATE 60 /* Coerce date to gmt */ +d76 4 +a79 4 +#define FT_PARSEDATE 61 /* parse comp into a date (tws) struct */ +#define FT_PARSEADDR 62 /* parse comp into a mailaddr struct */ +#define FT_FORMATADDR 63 /* let external routine format addr */ +#define FT_MYMBOX 64 /* do "mymbox" test on comp */ +d82 1 +a82 1 +#define FT_ADDTOSEQ 65 /* add current msg to a sequence */ +d85 19 +a103 19 +#define FT_SAVESTR 66 /* save current str reg */ +#define FT_DONE 67 /* stop formatting */ +#define FT_PAUSE 68 /* pause */ +#define FT_NOP 69 /* nop */ +#define FT_GOTO 70 /* (relative) goto */ +#define FT_IF_S_NULL 71 /* test if "str" null */ +#define FT_IF_S 72 /* test if "str" non-null */ +#define FT_IF_V_EQ 73 /* test if "value" = literal */ +#define FT_IF_V_NE 74 /* test if "value" != literal */ +#define FT_IF_V_GT 75 /* test if "value" > literal */ +#define FT_IF_MATCH 76 /* test if "str" contains literal */ +#define FT_IF_AMATCH 77 /* test if "str" starts with literal */ +#define FT_S_NULL 78 /* V = 1 if "str" null */ +#define FT_S_NONNULL 79 /* V = 1 if "str" non-null */ +#define FT_V_EQ 80 /* V = 1 if "value" = literal */ +#define FT_V_NE 81 /* V = 1 if "value" != literal */ +#define FT_V_GT 82 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 83 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 84 /* V = 1 if "str" starts with literal */ +d105 1 +a105 1 +#define IF_FUNCS FT_S_NULL /* start of "if" functions */ +@ + + +1.8 +log +@add getenv +@ +text +@d1 1 +a1 1 +/* @@(#)$Id: fmtcompile.h,v 1.7 1991/11/28 00:05:59 jromine Exp jromine $ */ +d32 2 +a33 1 +#define FT_LV_CHAR_LEFT 24 /* set "value" to char left in output */ +d35 21 +a55 21 +#define FT_LS_MONTH 25 /* set "str" to tws month */ +#define FT_LS_LMONTH 26 /* set "str" to long tws month */ +#define FT_LS_ZONE 27 /* set "str" to tws timezone */ +#define FT_LS_DAY 28 /* set "str" to tws weekday */ +#define FT_LS_WEEKDAY 29 /* set "str" to long tws weekday */ +#define FT_LS_822DATE 30 /* set "str" to 822 date str */ +#define FT_LS_PRETTY 31 /* set "str" to pretty (?) date str */ +#define FT_LV_SEC 32 /* set "value" to tws second */ +#define FT_LV_MIN 33 /* set "value" to tws minute */ +#define FT_LV_HOUR 34 /* set "value" to tws hour */ +#define FT_LV_MDAY 35 /* set "value" to tws day of month */ +#define FT_LV_MON 36 /* set "value" to tws month */ +#define FT_LV_YEAR 37 /* set "value" to tws year */ +#define FT_LV_YDAY 38 /* set "value" to tws day of year */ +#define FT_LV_WDAY 39 /* set "value" to tws weekday */ +#define FT_LV_ZONE 40 /* set "value" to tws timezone */ +#define FT_LV_CLOCK 41 /* set "value" to tws clock */ +#define FT_LV_RCLOCK 42 /* set "value" to now - tws clock */ +#define FT_LV_DAYF 43 /* set "value" to tws day flag */ +#define FT_LV_DST 44 /* set "value" to tws daylight savings flag */ +#define FT_LV_ZONEF 45 /* set "value" to tws timezone flag */ +d57 12 +a68 12 +#define FT_LS_PERS 46 /* set "str" to person part of addr */ +#define FT_LS_MBOX 47 /* set "str" to mbox part of addr */ +#define FT_LS_HOST 48 /* set "str" to host part of addr */ +#define FT_LS_PATH 49 /* set "str" to route part of addr */ +#define FT_LS_GNAME 50 /* set "str" to group part of addr */ +#define FT_LS_NOTE 51 /* set "str" to comment part of addr */ +#define FT_LS_ADDR 52 /* set "str" to mbox@@host */ +#define FT_LS_822ADDR 53 /* set "str" to 822 format addr */ +#define FT_LS_FRIENDLY 54 /* set "str" to "friendly" format addr */ +#define FT_LV_HOSTTYPE 55 /* set "value" to addr host type */ +#define FT_LV_INGRPF 56 /* set "value" to addr in-group flag */ +#define FT_LV_NOHOSTF 57 /* set "value" to addr no-host flag */ +d71 2 +a72 2 +#define FT_LOCALDATE 58 /* Coerce date to local timezone */ +#define FT_GMTDATE 59 /* Coerce date to gmt */ +d75 4 +a78 4 +#define FT_PARSEDATE 60 /* parse comp into a date (tws) struct */ +#define FT_PARSEADDR 61 /* parse comp into a mailaddr struct */ +#define FT_FORMATADDR 62 /* let external routine format addr */ +#define FT_MYMBOX 63 /* do "mymbox" test on comp */ +d80 2 +a81 4 +/* misc. */ +#ifdef VAN +#define FT_ADDTOSEQ 64 /* add current msg to a sequence */ +#endif +d84 19 +a102 19 +#define FT_SAVESTR 65 /* save current str reg */ +#define FT_DONE 66 /* stop formatting */ +#define FT_PAUSE 67 /* pause */ +#define FT_NOP 68 /* nop */ +#define FT_GOTO 69 /* (relative) goto */ +#define FT_IF_S_NULL 70 /* test if "str" null */ +#define FT_IF_S 71 /* test if "str" non-null */ +#define FT_IF_V_EQ 72 /* test if "value" = literal */ +#define FT_IF_V_NE 73 /* test if "value" != literal */ +#define FT_IF_V_GT 74 /* test if "value" > literal */ +#define FT_IF_MATCH 75 /* test if "str" contains literal */ +#define FT_IF_AMATCH 76 /* test if "str" starts with literal */ +#define FT_S_NULL 77 /* V = 1 if "str" null */ +#define FT_S_NONNULL 78 /* V = 1 if "str" non-null */ +#define FT_V_EQ 79 /* V = 1 if "value" = literal */ +#define FT_V_NE 80 /* V = 1 if "value" != literal */ +#define FT_V_GT 81 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 82 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 83 /* V = 1 if "str" starts with literal */ +d104 1 +a104 1 +#define IF_FUNCS FT_S_NULL /* start of "if" functions */ +@ + + +1.7 +log +@FT_PAUSE +@ +text +@d1 1 +a1 1 +/* @@(#)$Id: fmtcompile.h,v 1.6 1991/11/28 00:04:48 jromine Exp jromine $ */ +d22 11 +a32 10 +#define FT_LS_TRIM 14 /* trim trailing white space from "str" */ +#define FT_LV_COMP 15 /* set "value" to comp (as dec. num) */ +#define FT_LV_COMPFLAG 16 /* set "value" to comp flag word */ +#define FT_LV_LIT 17 /* set "value" to literal num */ +#define FT_LV_DAT 18 /* set "value" to dat[n] */ +#define FT_LV_STRLEN 19 /* set "value" to length of "str" */ +#define FT_LV_PLUS_L 20 /* set "value" += literal */ +#define FT_LV_MINUS_L 21 /* set "value" -= literal */ +#define FT_LV_DIVIDE_L 22 /* set "value" to value / literal */ +#define FT_LV_CHAR_LEFT 23 /* set "value" to char left in output */ +d34 21 +a54 21 +#define FT_LS_MONTH 24 /* set "str" to tws month */ +#define FT_LS_LMONTH 25 /* set "str" to long tws month */ +#define FT_LS_ZONE 26 /* set "str" to tws timezone */ +#define FT_LS_DAY 27 /* set "str" to tws weekday */ +#define FT_LS_WEEKDAY 28 /* set "str" to long tws weekday */ +#define FT_LS_822DATE 29 /* set "str" to 822 date str */ +#define FT_LS_PRETTY 30 /* set "str" to pretty (?) date str */ +#define FT_LV_SEC 31 /* set "value" to tws second */ +#define FT_LV_MIN 32 /* set "value" to tws minute */ +#define FT_LV_HOUR 33 /* set "value" to tws hour */ +#define FT_LV_MDAY 34 /* set "value" to tws day of month */ +#define FT_LV_MON 35 /* set "value" to tws month */ +#define FT_LV_YEAR 36 /* set "value" to tws year */ +#define FT_LV_YDAY 37 /* set "value" to tws day of year */ +#define FT_LV_WDAY 38 /* set "value" to tws weekday */ +#define FT_LV_ZONE 39 /* set "value" to tws timezone */ +#define FT_LV_CLOCK 40 /* set "value" to tws clock */ +#define FT_LV_RCLOCK 41 /* set "value" to now - tws clock */ +#define FT_LV_DAYF 42 /* set "value" to tws day flag */ +#define FT_LV_DST 43 /* set "value" to tws daylight savings flag */ +#define FT_LV_ZONEF 44 /* set "value" to tws timezone flag */ +d56 12 +a67 12 +#define FT_LS_PERS 45 /* set "str" to person part of addr */ +#define FT_LS_MBOX 46 /* set "str" to mbox part of addr */ +#define FT_LS_HOST 47 /* set "str" to host part of addr */ +#define FT_LS_PATH 48 /* set "str" to route part of addr */ +#define FT_LS_GNAME 49 /* set "str" to group part of addr */ +#define FT_LS_NOTE 50 /* set "str" to comment part of addr */ +#define FT_LS_ADDR 51 /* set "str" to mbox@@host */ +#define FT_LS_822ADDR 52 /* set "str" to 822 format addr */ +#define FT_LS_FRIENDLY 53 /* set "str" to "friendly" format addr */ +#define FT_LV_HOSTTYPE 54 /* set "value" to addr host type */ +#define FT_LV_INGRPF 55 /* set "value" to addr in-group flag */ +#define FT_LV_NOHOSTF 56 /* set "value" to addr no-host flag */ +d70 2 +a71 2 +#define FT_LOCALDATE 57 /* Coerce date to local timezone */ +#define FT_GMTDATE 58 /* Coerce date to gmt */ +d74 4 +a77 4 +#define FT_PARSEDATE 59 /* parse comp into a date (tws) struct */ +#define FT_PARSEADDR 60 /* parse comp into a mailaddr struct */ +#define FT_FORMATADDR 61 /* let external routine format addr */ +#define FT_MYMBOX 62 /* do "mymbox" test on comp */ +d81 1 +a81 1 +#define FT_ADDTOSEQ 63 /* add current msg to a sequence */ +d85 19 +a103 19 +#define FT_SAVESTR 64 /* save current str reg */ +#define FT_DONE 65 /* stop formatting */ +#define FT_PAUSE 66 /* pause */ +#define FT_NOP 67 /* nop */ +#define FT_GOTO 68 /* (relative) goto */ +#define FT_IF_S_NULL 69 /* test if "str" null */ +#define FT_IF_S 70 /* test if "str" non-null */ +#define FT_IF_V_EQ 71 /* test if "value" = literal */ +#define FT_IF_V_NE 72 /* test if "value" != literal */ +#define FT_IF_V_GT 73 /* test if "value" > literal */ +#define FT_IF_MATCH 74 /* test if "str" contains literal */ +#define FT_IF_AMATCH 75 /* test if "str" starts with literal */ +#define FT_S_NULL 76 /* V = 1 if "str" null */ +#define FT_S_NONNULL 77 /* V = 1 if "str" non-null */ +#define FT_V_EQ 78 /* V = 1 if "value" = literal */ +#define FT_V_NE 79 /* V = 1 if "value" != literal */ +#define FT_V_GT 80 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 81 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 82 /* V = 1 if "str" starts with literal */ +@ + + +1.6 +log +@add FT_RETURN +@ +text +@d1 1 +a1 1 +/* @@(#)$Id: fmtcompile.h,v 1.5 1990/12/27 17:04:12 mh Exp jromine $ */ +d84 19 +a102 19 +#define FT_SAVESTR 64 /* save current str reg */ +#define FT_DONE 65 /* stop formatting */ +#define FT_RETURN 66 /* suspend, and return current position */ +#define FT_NOP 67 /* nop */ +#define FT_GOTO 68 /* (relative) goto */ +#define FT_IF_S_NULL 69 /* test if "str" null */ +#define FT_IF_S 70 /* test if "str" non-null */ +#define FT_IF_V_EQ 71 /* test if "value" = literal */ +#define FT_IF_V_NE 72 /* test if "value" != literal */ +#define FT_IF_V_GT 73 /* test if "value" > literal */ +#define FT_IF_MATCH 74 /* test if "str" contains literal */ +#define FT_IF_AMATCH 75 /* test if "str" starts with literal */ +#define FT_S_NULL 76 /* V = 1 if "str" null */ +#define FT_S_NONNULL 77 /* V = 1 if "str" non-null */ +#define FT_V_EQ 78 /* V = 1 if "value" = literal */ +#define FT_V_NE 79 /* V = 1 if "value" != literal */ +#define FT_V_GT 80 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 81 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 82 /* V = 1 if "str" starts with literal */ +d104 1 +a104 1 +#define IF_FUNCS FT_S_NULL /* start of "if" functions */ +@ + + +1.5 +log +@add FT_LS_ADDR +jlr +@ +text +@d1 1 +a1 1 +/* @@(#)$Id: fmtcompile.h,v 1.4 90/04/05 15:06:42 sources Exp Locker: mh $ */ +d84 19 +a102 18 +#define FT_SAVESTR 64 /* save current str reg */ +#define FT_DONE 65 /* stop formatting */ +#define FT_NOP 66 /* nop */ +#define FT_GOTO 67 /* (relative) goto */ +#define FT_IF_S_NULL 68 /* test if "str" null */ +#define FT_IF_S 69 /* test if "str" non-null */ +#define FT_IF_V_EQ 70 /* test if "value" = literal */ +#define FT_IF_V_NE 71 /* test if "value" != literal */ +#define FT_IF_V_GT 72 /* test if "value" > literal */ +#define FT_IF_MATCH 73 /* test if "str" contains literal */ +#define FT_IF_AMATCH 74 /* test if "str" starts with literal */ +#define FT_S_NULL 75 /* V = 1 if "str" null */ +#define FT_S_NONNULL 76 /* V = 1 if "str" non-null */ +#define FT_V_EQ 77 /* V = 1 if "value" = literal */ +#define FT_V_NE 78 /* V = 1 if "value" != literal */ +#define FT_V_GT 79 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 80 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 81 /* V = 1 if "str" starts with literal */ +d104 1 +a104 1 +#define IF_FUNCS FT_S_NULL /* start of "if" functions */ +@ + + +1.4 +log +@add ID +@ +text +@d1 1 +a1 1 +/* @@(#)$Id:$ */ +d61 6 +a66 5 +#define FT_LS_822ADDR 51 /* set "str" to 822 format addr */ +#define FT_LS_FRIENDLY 52 /* set "str" to "friendly" format addr */ +#define FT_LV_HOSTTYPE 53 /* set "value" to addr host type */ +#define FT_LV_INGRPF 54 /* set "value" to addr in-group flag */ +#define FT_LV_NOHOSTF 55 /* set "value" to addr no-host flag */ +d69 2 +a70 2 +#define FT_LOCALDATE 56 /* Coerce date to local timezone */ +#define FT_GMTDATE 57 /* Coerce date to gmt */ +d73 4 +a76 4 +#define FT_PARSEDATE 58 /* parse comp into a date (tws) struct */ +#define FT_PARSEADDR 59 /* parse comp into a mailaddr struct */ +#define FT_FORMATADDR 60 /* let external routine format addr */ +#define FT_MYMBOX 61 /* do "mymbox" test on comp */ +d80 1 +a80 1 +#define FT_ADDTOSEQ 62 /* add current msg to a sequence */ +d84 18 +a101 18 +#define FT_SAVESTR 63 /* save current str reg */ +#define FT_DONE 64 /* stop formatting */ +#define FT_NOP 65 /* nop */ +#define FT_GOTO 66 /* (relative) goto */ +#define FT_IF_S_NULL 67 /* test if "str" null */ +#define FT_IF_S 68 /* test if "str" non-null */ +#define FT_IF_V_EQ 69 /* test if "value" = literal */ +#define FT_IF_V_NE 70 /* test if "value" != literal */ +#define FT_IF_V_GT 71 /* test if "value" > literal */ +#define FT_IF_MATCH 72 /* test if "str" contains literal */ +#define FT_IF_AMATCH 73 /* test if "str" starts with literal */ +#define FT_S_NULL 74 /* V = 1 if "str" null */ +#define FT_S_NONNULL 75 /* V = 1 if "str" non-null */ +#define FT_V_EQ 76 /* V = 1 if "value" = literal */ +#define FT_V_NE 77 /* V = 1 if "value" != literal */ +#define FT_V_GT 78 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 79 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 80 /* V = 1 if "str" starts with literal */ +@ + + +1.3 +log +@#ifdef VAN +@ +text +@d1 1 +@ + + +1.2 +log +@Fixes from Van Jacobson +@ +text +@d77 1 +d79 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d21 10 +a30 8 +#define FT_LV_COMP 14 /* set "value" to comp (as dec. num) */ +#define FT_LV_COMPFLAG 15 /* set "value" to comp flag word */ +#define FT_LV_LIT 16 /* set "value" to literal num */ +#define FT_LV_DAT 17 /* set "value" to dat[n] */ +#define FT_LV_STRLEN 18 /* set "value" to length of "str" */ +#define FT_LV_PLUS_L 19 /* set "value" += literal */ +#define FT_LV_MINUS_L 20 /* set "value" -= literal */ +#define FT_LV_CHAR_LEFT 21 /* set "value" to char left in output */ +d32 21 +a52 20 +#define FT_LS_MONTH 22 /* set "str" to tws month */ +#define FT_LS_LMONTH 23 /* set "str" to long tws month */ +#define FT_LS_ZONE 24 /* set "str" to tws timezone */ +#define FT_LS_DAY 25 /* set "str" to tws weekday */ +#define FT_LS_WEEKDAY 26 /* set "str" to long tws weekday */ +#define FT_LS_822DATE 27 /* set "str" to 822 date str */ +#define FT_LS_PRETTY 28 /* set "str" to pretty (?) date str */ +#define FT_LV_SEC 29 /* set "value" to tws second */ +#define FT_LV_MIN 30 /* set "value" to tws minute */ +#define FT_LV_HOUR 31 /* set "value" to tws hour */ +#define FT_LV_MDAY 32 /* set "value" to tws day of month */ +#define FT_LV_MON 33 /* set "value" to tws month */ +#define FT_LV_YEAR 34 /* set "value" to tws year */ +#define FT_LV_YDAY 35 /* set "value" to tws day of year */ +#define FT_LV_WDAY 36 /* set "value" to tws weekday */ +#define FT_LV_ZONE 37 /* set "value" to tws timezone */ +#define FT_LV_CLOCK 38 /* set "value" to tws clock */ +#define FT_LV_RCLOCK 39 /* set "value" to now - tws clock */ +#define FT_LV_DAYF 40 /* set "value" to tws day flag */ +#define FT_LV_TZONEF 41 /* set "value" to tws timezone flag */ +d54 11 +a64 11 +#define FT_LS_PERS 42 /* set "str" to person part of addr */ +#define FT_LS_MBOX 43 /* set "str" to mbox part of addr */ +#define FT_LS_HOST 44 /* set "str" to host part of addr */ +#define FT_LS_PATH 45 /* set "str" to route part of addr */ +#define FT_LS_GNAME 46 /* set "str" to group part of addr */ +#define FT_LS_NOTE 47 /* set "str" to comment part of addr */ +#define FT_LS_822ADDR 48 /* set "str" to 822 format addr */ +#define FT_LS_FRIENDLY 49 /* set "str" to "friendly" format addr */ +#define FT_LV_HOSTTYPE 50 /* set "value" to addr host type */ +#define FT_LV_INGRPF 51 /* set "value" to addr in-group flag */ +#define FT_LV_NOHOSTF 52 /* set "value" to addr no-host flag */ +d66 4 +d71 4 +a74 4 +#define FT_PARSEDATE 53 /* parse comp into a date (tws) struct */ +#define FT_PARSEADDR 54 /* parse comp into a mailaddr struct */ +#define FT_FORMATADDR 55 /* let external routine format addr */ +#define FT_MYMBOX 56 /* do "mymbox" test on comp */ +d76 3 +d80 18 +a97 18 +#define FT_SAVESTR 57 /* save current str reg */ +#define FT_DONE 58 /* stop formatting */ +#define FT_NOP 59 /* nop */ +#define FT_GOTO 60 /* (relative) goto */ +#define FT_IF_S_NULL 61 /* test if "str" null */ +#define FT_IF_S 62 /* test if "str" non-null */ +#define FT_IF_V_EQ 63 /* test if "value" = literal */ +#define FT_IF_V_NE 64 /* test if "value" != literal */ +#define FT_IF_V_GT 65 /* test if "value" > literal */ +#define FT_IF_MATCH 66 /* test if "str" contains literal */ +#define FT_IF_AMATCH 67 /* test if "str" starts with literal */ +#define FT_S_NULL 68 /* V = 1 if "str" null */ +#define FT_S_NONNULL 69 /* V = 1 if "str" non-null */ +#define FT_V_EQ 70 /* V = 1 if "value" = literal */ +#define FT_V_NE 71 /* V = 1 if "value" != literal */ +#define FT_V_GT 72 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 73 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 74 /* V = 1 if "str" starts with literal */ +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/formatsbr.h,v b/docs/historical/mh-6.8.5/h/RCS/formatsbr.h,v new file mode 100644 index 0000000..e764fa6 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/formatsbr.h,v @@ -0,0 +1,107 @@ +head 1.1; +access; +symbols; +locks; strict; +comment @ * @; + + +1.1 +date 92.01.23.23.14.54; author jromine; state Exp; +branches; +next ; + + +desc +@add id +@ + + +1.1 +log +@Initial revision +@ +text +@/* formatsbr.h - definitions for fmtscan () */ +/* $Id$ */ + +/* + * This structure describes an "interesting" component. It holds + * the name & text from the component (if found) and one piece of + * auxilary info. The structure for a particular component is located + * by hashing the name and using it as an index into the ptr array + * "wantcomp". All format entries that reference a particular component + * point to its comp struct (so we only have to do component specific + * processing once. e.g., parse an address.). + */ +struct comp { + char *c_name; /* component name (in lower case) */ + struct comp *c_next; /* hash chain linkage */ + char *c_text; /* component text (if found) */ + short c_flags; /* misc. flags (from formatsbr) */ + short c_type; /* type info (from fmtcompile) */ + union { + struct tws *c_u_tws; + struct mailname *c_u_mn; + } c_un; +#define c_tws c_un.c_u_tws +#define c_mn c_un.c_u_mn +}; + +/* c_type bits */ +#define CT_ADDR 1 /* referenced as address */ +#define CT_DATE 2 /* referenced as date */ +#define CT_MYMBOX 4 /* "mymbox" test being done */ +#define CT_ADDRPARSE 8 /* address parse being done */ + +extern int fmt_norm; + +struct comp *wantcomp[128]; /* hash table for deciding if a + * component is "interesting" */ + +/* + * Hash function for component name. The function should be + * case independent and probably shouldn't involve a routine + * call. This function is pretty good but will not work on + * single character component names. + */ +#define CHASH(nm) (((((nm)[0]) - ((nm)[1])) & 0x1f) + (((nm)[2]) & 0x5f)) + +#ifdef GOULD_PN +/* bug in the Gould PowerNode compiler: need a local pointer to name... */ +#define FINDCOMP(comp,name1) \ + { \ + char *name = (name1); \ + for (comp = wantcomp[CHASH(name)]; \ + comp && strcmp(comp->c_name,name); \ + comp = comp->c_next) ; \ + } +#else +#define FINDCOMP(comp,name) \ + for (comp = wantcomp[CHASH(name)]; \ + comp && strcmp(comp->c_name,name); \ + comp = comp->c_next) ; +#endif + +/* + * This structure defines one formatting instruction. + */ +struct format { + unsigned char f_type; + char f_fill; + short f_width; /* output field width */ +#define f_skip f_width /* instr to skip (false "if") */ + union { + struct comp *f_u_comp; /* associated component */ + char *f_u_text; /* literal text */ + char f_u_char; /* literal character */ + int f_u_value; /* literal value */ + } f_un; +#define f_comp f_un.f_u_comp +#define f_text f_un.f_u_text +#define f_char f_un.f_u_char +#define f_value f_un.f_u_value +}; + +struct format *fmtscan (); +char *new_fs (); +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/local.h,v b/docs/historical/mh-6.8.5/h/RCS/local.h,v new file mode 100644 index 0000000..a65f160 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/local.h,v @@ -0,0 +1,92 @@ +head 1.3; +access; +symbols; +locks; strict; +comment @ * @; + + +1.3 +date 92.02.06.17.37.44; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 92.02.06.17.36.56; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.02.06.17.33.16; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.3 +log +@add id +@ +text +@/* local.h - fine the -lndir include file */ +/* @@(#)$Id: mh.h,v 2.10 1992/02/04 00:00:59 jromine Exp $ */ + +#ifndef BSD42 +#include +#else /* BSD42 */ +#include +#endif + +#ifndef BSD42 +#ifndef NDIR +#ifndef SYS5DIR +#include /* last choice */ +#else /* SYS5DIR */ +#include +#endif +#else /* NDIR */ +#include +#endif +#else /* BSD42 */ +#include +#endif + +#include +@ + + +1.2 +log +@fix #else/#endif tokens +add SYS5DIR +@ +text +@d2 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d5 1 +a5 1 +#else BSD42 +d7 1 +a7 1 +#endif BSD42 +d11 6 +a16 2 +#include +#else NDIR +d18 2 +a19 2 +#endif NDIR +#else BSD42 +d21 1 +a21 1 +#endif BSD42 +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/md5.h,v b/docs/historical/mh-6.8.5/h/RCS/md5.h,v new file mode 100644 index 0000000..186884b --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/md5.h,v @@ -0,0 +1,170 @@ +head 1.2; +access; +symbols; +locks; strict; +comment @ * @; + + +1.2 +date 92.10.26.16.38.50; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.02.11.05.16.53; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.2 +log +@source changed (output is the same) from MTR +@ +text +@/* @@(#)$Id: md5.h,v 1.1 1992/02/11 05:16:53 jromine Exp jromine $ */ +/* taken from RFC-1321/Appendices A.1/A.2 */ + +/* GLOBAL.H - RSAREF types and constants + */ + +/* PROTOTYPES should be set to one if and only if the compiler supports + function argument prototyping. +The following makes PROTOTYPES default to 0 if it has not already + been defined with C compiler flags. + */ +#ifndef PROTOTYPES +#define PROTOTYPES 0 +#endif + +/* POINTER defines a generic pointer type */ +typedef unsigned char *POINTER; + +/* UINT2 defines a two byte word */ +typedef unsigned short int UINT2; + +/* UINT4 defines a four byte word */ +typedef unsigned long int UINT4; + +/* PROTO_LIST is defined depending on how PROTOTYPES is defined above. +If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it + returns an empty list. + */ +#if PROTOTYPES +#define PROTO_LIST(list) list +#else +#define PROTO_LIST(list) () +#endif + +/* MD5.H - header file for MD5C.C + */ + +/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +rights reserved. + +License to copy and use this software is granted provided that it +is identified as the "RSA Data Security, Inc. MD5 Message-Digest +Algorithm" in all material mentioning or referencing this software +or this function. + +License is also granted to make and use derivative works provided +that such works are identified as "derived from the RSA Data +Security, Inc. MD5 Message-Digest Algorithm" in all material +mentioning or referencing the derived work. + +RSA Data Security, Inc. makes no representations concerning either +the merchantability of this software or the suitability of this +software for any particular purpose. It is provided "as is" +without express or implied warranty of any kind. + +These notices must be retained in any copies of any part of this +documentation and/or software. + */ + +/* MD5 context. */ +typedef struct { + UINT4 state[4]; /* state (ABCD) */ + UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ + unsigned char buffer[64]; /* input buffer */ +} MD5_CTX; + +void MD5Init PROTO_LIST ((MD5_CTX *)); +void MD5Update PROTO_LIST + ((MD5_CTX *, unsigned char *, unsigned int)); +void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *)); + +@ + + +1.1 +log +@Initial revision +@ +text +@d1 4 +a4 14 +/* @@(#)$Id$ */ +/* + *********************************************************************** + ** md5.h -- header file for implementation of MD5 ** + ** RSA Data Security, Inc. MD5 Message-Digest Algorithm ** + ** Created: 2/17/90 RLR ** + ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version ** + ** Revised (for MD5): RLR 4/27/91 ** + ** -- G modified to have y&~z instead of y&z ** + ** -- FF, GG, HH modified to add in last register done ** + ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 ** + ** -- distinct additive constant for each step ** + ** -- round 4 added, working mod 7 ** + *********************************************************************** +d7 4 +a10 22 +/* + *********************************************************************** + ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. ** + ** ** + ** License to copy and use this software is granted provided that ** + ** it is identified as the "RSA Data Security, Inc. MD5 Message- ** + ** Digest Algorithm" in all material mentioning or referencing this ** + ** software or this function. ** + ** ** + ** License is also granted to make and use derivative works ** + ** provided that such works are identified as "derived from the RSA ** + ** Data Security, Inc. MD5 Message-Digest Algorithm" in all ** + ** material mentioning or referencing the derived work. ** + ** ** + ** RSA Data Security, Inc. makes no representations concerning ** + ** either the merchantability of this software or the suitability ** + ** of this software for any particular purpose. It is provided "as ** + ** is" without express or implied warranty of any kind. ** + ** ** + ** These notices must be retained in any copies of any part of this ** + ** documentation and/or software. ** + *********************************************************************** +d12 3 +d16 7 +a22 1 +/* typedef a 32-bit type */ +d25 36 +a60 1 +/* Data structure for MD5 (Message-Digest) computation */ +d62 3 +a64 4 + UINT4 i[2]; /* number of _bits_ handled mod 2^64 */ + UINT4 buf[4]; /* scratch buffer */ + unsigned char in[64]; /* input buffer */ + unsigned char digest[16]; /* actual digest after MD5Final call */ +d67 5 +a71 8 +void MD5Init (); +void MD5Update (); +void MD5Final (); +/* + *********************************************************************** + ** End of md5.h ** + ******************************** (cut) ******************************** + */ +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/mh.h,v b/docs/historical/mh-6.8.5/h/RCS/mh.h,v new file mode 100644 index 0000000..514bf70 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/mh.h,v @@ -0,0 +1,834 @@ +head 2.19; +access; +symbols; +locks; strict; +comment @ * @; + + +2.19 +date 93.02.26.21.53.29; author jromine; state Exp; +branches; +next 2.18; + +2.18 +date 92.12.14.17.10.43; author jromine; state Exp; +branches; +next 2.17; + +2.17 +date 92.11.24.20.24.06; author jromine; state Exp; +branches; +next 2.16; + +2.16 +date 92.11.17.20.42.05; author jromine; state Exp; +branches; +next 2.15; + +2.15 +date 92.11.04.00.32.42; author jromine; state Exp; +branches; +next 2.14; + +2.14 +date 92.11.02.18.52.04; author jromine; state Exp; +branches; +next 2.13; + +2.13 +date 92.10.27.16.57.25; author jromine; state Exp; +branches; +next 2.12; + +2.12 +date 92.05.12.21.47.13; author jromine; state Exp; +branches; +next 2.11; + +2.11 +date 92.02.11.00.38.12; author jromine; state Exp; +branches; +next 2.10; + +2.10 +date 92.02.04.00.00.59; author jromine; state Exp; +branches; +next 2.9; + +2.9 +date 92.02.03.16.34.21; author jromine; state Exp; +branches; +next 2.8; + +2.8 +date 92.01.31.21.37.07; author jromine; state Exp; +branches; +next 2.7; + +2.7 +date 92.01.24.00.03.50; author jromine; state Exp; +branches; +next 2.6; + +2.6 +date 90.04.05.15.06.09; author sources; state Exp; +branches; +next 2.5; + +2.5 +date 90.03.27.19.14.05; author sources; state Exp; +branches; +next 2.4; + +2.4 +date 90.02.23.14.28.50; author sources; state Exp; +branches; +next 2.3; + +2.3 +date 90.02.23.14.27.01; author sources; state Exp; +branches; +next 2.2; + +2.2 +date 90.02.05.14.19.54; author sources; state Exp; +branches; +next 2.1; + +2.1 +date 90.02.01.13.20.04; author sources; state Exp; +branches; +next 2.0; + +2.0 +date 89.11.17.15.56.55; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 89.06.26.15.41.03; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +2.19 +log +@386BSD/BSD44 +@ +text +@/* mh.h - main header file for all of MH */ +/* @@(#)$Id: mh.h,v 2.18 1992/12/14 17:10:43 jromine Exp jromine $ */ + + +/* Well-used constants */ + +#define NOTOK (-1) /* syscall()s return this on error */ +#define OK 0 /* ditto on success */ +#define DONE 1 /* trinary logic */ +#define ALL "" +#define NULLCP ((char *) 0) +#define NULLVP ((char **) 0) +#define Nbby 8 /* number of bits/byte */ + +#define MAXARGS 1000 /* max arguments to exec */ + +#define NFOLDERS 300 /* max folder arguments on command line */ + +#ifndef UCI +#define MAXFOLDER 1000 /* message increment */ +#else +#define MAXFOLDER 1500 /* message increment */ +#endif +#define DMAXFOLDER 4 /* typical number of digits */ + +#if (!defined(BSD42) && !defined(BSD41A) && !defined(VMUNIX) && !defined(hpux)) || defined(_AIX) +#define vfork fork +#endif /* not BSD */ /* how sad... */ + +/* */ + +/* profile structure */ + +struct node { + char *n_name; /* key */ + char *n_field; /* value */ + + char n_context; /* context, not profile */ + + struct node *n_next; /* next entry */ +}; + + +/* switches structure */ + +#define AMBIGSW (-2) /* from smatch() on ambiguous switch */ +#define UNKWNSW (-1) /* ditto on unknown switch */ + +struct swit { + char *sw; + int minchars; +}; + +extern struct swit anoyes[]; /* standard yes/no switches */ + + +/* messages structure */ + +struct msgs { + int hghmsg; /* Highest msg in directory */ + int nummsg; /* Actual Number of msgs */ + int lowmsg; /* Lowest msg number */ + int curmsg; /* Number of current msg if any */ + + int lowsel; /* Lowest selected msg number */ + int hghsel; /* Highest selected msg number */ + int numsel; /* Number of msgs selected */ + + char *foldpath; /* Pathname of folder */ + + int msgflags; /* Folder status bits */ +#ifndef MTR + char pad1[sizeof (int) - sizeof (char)]; +#endif /* not MTR */ +#define READONLY 0x01 /* No write access to folder */ +#define SEQMOD 0x02 /* folder's sequences modifed */ +#define MHPATH 0x04 /* mhpath-style folder handling */ +#define OTHERS 0x08 /* folder has other files */ +#define MODIFIED 0x10 /* msh in-core folder modified */ +#define FBITS "\020\01READONLY\02SEQMOD\03MHPATH\04OTHERS\05MODIFIED" + +/* Note well: msgstats[] is a int, so we have 16 or 32 bits to work + with. The first 5 are for standard MH message flags, + this leaves us 11 (or 27) for user-defined attributes. Of + these, 1 is reserved for future internal use, so this leaves + users 10 (or 26). */ +#define NATTRS ((sizeof(int)*Nbby)-6) /* see above */ + char *msgattrs[NATTRS + 1];/* folder attributes */ + int attrstats; /* public=0/private=1 */ + + int lowoff; /* low element in msgstats[] */ + int hghoff; /* hgh element in msgstats[] */ + +#ifndef MTR + int msgstats[1]; /* msg status */ +#else /* MTR */ + int *msgbase; /* msg base */ + int *msgstats; /* msg status */ +#endif /* MTR */ +#define EXISTS 0x0001 /* exists */ +#define DELETED 0x0002 /* deleted */ +#define SELECTED 0x0004 /* selected for use */ +#define SELECT_EMPTY 0x0008 /* mhpath "new" */ +#define UNSEEN 0x0010 /* inc/show "unseen" */ +#define FFATTRSLOT 5 /* user-defined attributes */ + /* first free slot is */ + /* (1 << 5) or 0x20 */ +#define MBITS "\020\01EXISTS\02DELETED\03SELECTED\04NEW\05UNSEEN" + +#ifndef MTR +#define MHSIZE(mp,lo,hi) \ + ((unsigned) (sizeof *mp + ((hi) + 2) * sizeof *mp -> msgstats)) +#else /* MTR */ +#define MHSIZE(mp,lo,hi) ((unsigned) sizeof *mp) +#define MHSIZEX(mp,lo,hi) \ + ((unsigned) (((hi) - (lo) + 1) * sizeof *mp -> msgstats)) +#endif /* MTR */ +}; + +#define NULLMP ((struct msgs *) 0) + +/* */ + +/* m_getfld() message parsing */ + +#define NAMESZ 128 /* Limit on component name size */ + +#define LENERR (-2) /* Name too long error from getfld */ +#define FMTERR (-3) /* Message Format error */ +#define FLD 0 /* Field returned */ +#define FLDPLUS 1 /* Field " with more to come */ +#define FLDEOF 2 /* Field " ending at eom */ +#define BODY 3 /* Body " with more to come */ +#define BODYEOF 4 /* Body " ending at eom */ +#define FILEEOF 5 /* Reached end of input file */ + + +/* Maildrop styles */ + +#define MS_DEFAULT 0 /* default (one msg per file) */ +#define MS_UNKNOWN 1 /* type not known yet */ +#define MS_UUCP 2 /* Unix-style "from" lines */ +#define MS_MMDF 3 /* string mmdlm2 */ +#define MS_MSH 4 /* whacko msh */ + +extern int msg_count; /* m_getfld() indicators */ +extern int msg_style; /* .. */ +extern char *msg_delim; /* .. */ + + +#define NOUSE 0 /* draft being re-used */ + +#define TFOLDER 0 /* path() given a +folder */ +#define TFILE 1 /* path() given a file */ +#define TSUBCWF 2 /* path() given a @@folder */ + +#ifndef LINK +#define LINK "@@" +#endif /* not LINK */ + +#ifndef SBACKUP +#define SBACKUP "," +#endif /* not SBACKUP */ + + +#define OUTPUTLINELEN 72 /* default line length for headers */ + +/* */ + +/* + * These standard strings are defined in config.c. They are the + * only system-dependent parameters in MH, and thus by redefining + * their values and reloading the various modules, MH will run + * on any system. + */ + +extern char *components; +extern char *context; +extern char *current; +extern char *defalt; +extern char *digestcomps; +extern char *distcomps; +extern char *draft; +extern char *faceproc; +extern char *fileproc; +extern char *foldprot; +extern char *forwcomps; +extern char *inbox; +extern char *incproc; +extern char *installproc; +extern char *lproc; +extern char *mailproc; +extern char *mh_defaults; +extern char *mh_profile; +extern char *mh_seq; +extern char *mhlformat; +extern char *mhlforward; +extern char *mhlproc; +extern char *moreproc; +extern char *msgprot; +extern char *mshproc; +extern char *nsequence; +extern char *packproc; +extern char *postproc; +extern char *pfolder; +extern char *psequence; +extern char *rcvdistcomps; +extern char *replcomps; +extern char *rmfproc; +extern char *rmmproc; +extern char *sendproc; +extern char *showproc; +extern char *slocalproc; +extern char *sysed; +extern char *usequence; +extern char *version; +extern char *vmhproc; +extern char *whatnowproc; +extern char *whomproc; + +/* */ + +/* global variables -sigh- */ + +extern char ctxflags; +#define CTXMOD 0x01 /* context information modified */ +#define DBITS "\020\01CTXMOD" + +#ifdef OVERHEAD +extern int fd_def; +extern int fd_ctx; +#endif /* OVERHEAD */ + +extern char *invo_name; /* pgm invocation name */ +extern char *mypath; /* user's $HOME */ +extern char *defpath; /* pathname of user's profile */ +extern char *ctxpath; /* pathname of user's context */ + +extern struct node *m_defs; + +/* */ + +/* from the MH subroutine library */ + +char *add (); +void adios (); +void admonish (); +void advise (); +void advertise (); +void ambigsw (); +int atooi (); +char **brkstring (); +void closefds (); +char *concat (); +char *copy (); +char **copyip (); +void cpydata (); +void cpydgst (); +void discard (); +void done (); +int fdcompare (); +int gans (); +char **getans (); +int getanswer (); +char *getcpy (); +void help (); +char *libpath (); +int m_atoi (); +char *m_backup (); +int m_convert (); +int m_delete (); +char *m_draft (); +void m_eomsbr (); +int m_file (); +char *m_find (); +void m_fmsg (); +void m_foil (); +void m_getdefs (); +int m_getfld (); +char *m_getfolder (); +int m_gmprot (); +struct msgs *m_gmsg (); +char *m_maildir (); +char *m_mailpath (); +char *m_name (); +int m_putenv (); +void m_readefs (); +struct msgs *m_remsg (); +void m_replace (); +char *m_scratch (); +char *m_seq (); +int m_seqadd (); +char *m_seqbits (); +int m_seqdel (); +int m_seqflag (); +int m_seqnew (); +void m_setcur (); +void m_setseq (); +void m_setvis (); +void m_sync (); +char *m_tmpfil (); +void m_unknown (); +void m_update (); +int m_whatnow (); +int makedir (); +char *path (); +int peekc (); +int pidwait (); +#define pidXwait(id,cp) pidstatus (pidwait (id, NOTOK), stdout, cp) +int pidstatus (); +void printsw (); +void push (); +char *pwd (); +char *r1bindex (); +int refile (); +int remdir (); +int showfile (); +int smatch (); +char *sprintb(); +int ssequal (); +int stringdex (); +char *trimcpy (); +int type (); +int uleq (); +int unputenv (); +int uprf (); +int vfgets (); + +/* */ + +#include "../h/strings.h" + +/* should be in */ + +#if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) && !defined(__convex__) && !defined(__386BSD__) && !defined(BSD44) +typedef struct _iobuf *FP; +FP popen (); +#else /* SYS5 */ +#define FP FILE* +#endif /* SYS5 */ + + +/* miscellaneous */ + +#if !defined(BSD42) && !defined(hpux) && !defined(ncr) && !defined(_AIX) && !defined(RENAME) +#define rename(f1,f2) (link (f1, f2) != NOTOK ? unlink (f1) : NOTOK) +#endif /* not BSD42 */ + +#define setsig(s,f) if (signal (s, SIG_IGN) != SIG_IGN) \ + (void) signal (s, f) +#define setsigx(i,s,f) if ((i = signal (s, SIG_IGN)) != SIG_IGN) \ + (void) signal (s, f) + +#if defined(sun) && !defined(NFS) +#define NFS +#endif + +#ifdef NFS +#define ruserpass _ruserpass +#endif + +#if (defined(BSD44) || defined(SUN40) || defined(hpux) \ + || defined(_AIX) || defined (sgi)) && !defined(UNISTD) +#define UNISTD +#endif +@ + + +2.18 +log +@convex +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.17 1992/11/24 20:24:06 jromine Exp jromine $ */ +d335 1 +a335 1 +#if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) && !defined(__convex__) +@ + + +2.17 +log +@add OSF1 define +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.16 1992/11/17 20:42:05 jromine Exp jromine $ */ +d335 1 +a335 1 +#if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) +@ + + +2.16 +log +@drop TYPESIG +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.15 1992/11/04 00:32:42 jromine Exp jromine $ */ +d335 1 +a335 1 +#if !defined(SYS5) && !defined(ncr) && !defined(_AIX) +@ + + +2.15 +log +@putenv -> m_putenv +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.14 1992/11/02 18:52:04 jromine Exp jromine $ */ +a352 8 + +#ifndef TYPESIG +#ifdef SUN40 +#define TYPESIG void +#else /* use old V7 default */ +#define TYPESIG int +#endif +#endif /* not TYPESIG */ +@ + + +2.14 +log +@rename NBBY +use _AIX instead of AIX +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.13 1992/10/27 16:57:25 jromine Exp jromine $ */ +d286 1 +a312 1 +int putenv (); +@ + + +2.13 +log +@UNISTD, RENAME +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.12 1992/05/12 21:47:13 jromine Exp jromine $ */ +d13 1 +a13 1 +#define NBBY 8 /* number of bits/byte */ +d87 1 +a87 1 +#define NATTRS ((sizeof(int)*NBBY)-6) /* see above */ +d371 1 +a371 1 + || defined(AIX) || defined (sgi)) && !defined(UNISTD) +@ + + +2.12 +log +@fix ifdefs +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.11 1992/02/11 00:38:12 jromine Exp jromine $ */ +a332 1 + +d345 1 +a345 1 +#if !defined(BSD42) && !defined(hpux) && !defined(ncr) && !defined(_AIX) +d368 5 +@ + + +2.11 +log +@allow 32-bit for user-defined sequences +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.10 1992/02/04 00:00:59 jromine Exp $ */ +d74 1 +a74 1 +#endif not MTR +d96 1 +a96 1 +#else MTR +d99 1 +a99 1 +#endif MTR +d113 1 +a113 1 +#else MTR +d117 1 +a117 1 +#endif MTR +d159 1 +a159 1 +#endif not LINK +d163 1 +a163 1 +#endif not SBACKUP +d232 1 +a232 1 +#endif OVERHEAD +d339 1 +a339 1 +#else SYS5 +d341 1 +a341 1 +#endif SYS5 +d361 1 +a361 1 +#endif not TYPESIG +@ + + +2.10 +log +@contributed patch +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.9 1992/02/03 16:34:21 jromine Exp jromine $ */ +d13 1 +d71 1 +a71 1 + char msgflags; /* Folder status bits */ +d82 1 +a82 1 +/* Note well: msgstats[] is a short, so we have 16 bits to work +d84 4 +a87 4 + this leaves us 11 for user-defined attributes. Of these, + 1 is reserved for future internal use, so this leaves + users 10. */ +#define NATTRS 10 /* could be 11, see above */ +d89 1 +a89 4 + short attrstats; /* public=0/private=1 */ +#ifndef MTR + char pad2[sizeof (int) - sizeof (short)]; +#endif not MTR +d95 1 +a95 1 + short msgstats[1]; /* msg status */ +d97 2 +a98 2 + short *msgbase; /* msg base */ + short *msgstats; /* msg status */ +@ + + +2.9 +log +@kerberos +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.8 1992/01/31 21:37:07 jromine Exp jromine $ */ +d190 1 +@ + + +2.8 +log +@kerberos +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.7 1992/01/24 00:03:50 jromine Exp jromine $ */ +d113 1 +a113 1 +#define MSIZE(mp,lo,hi) \ +d116 2 +a117 2 +#define MSIZE(mp,lo,hi) ((unsigned) sizeof *mp) +#define MSIZEX(mp,lo,hi) \ +@ + + +2.7 +log +@ncr changes +MAXFOLDER = 1500 at UCI +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mh.h,v 2.6 1990/04/05 15:06:09 sources Exp jromine $ */ +d25 1 +a25 1 +#if !defined(BSD42) && !defined(BSD41A) && !defined(VMUNIX) && !defined(hpux) +d27 1 +a27 1 +#endif not BSD /* how sad... */ +d337 1 +a337 1 +#if !defined(SYS5) && !defined(ncr) +d347 1 +a347 1 +#if !defined(BSD42) && !defined(hpux) && !defined(ncr) +d349 1 +a349 1 +#endif not BSD42 +@ + + +2.6 +log +@add ID +@ +text +@d2 1 +a2 1 +/* @@(#)$Id:$ */ +d18 1 +d20 3 +d337 1 +a337 1 +#ifndef SYS5 +d347 1 +a347 1 +#if !defined(BSD42) && !defined(hpux) +@ + + +2.5 +log +@some hpux fixes +@ +text +@d2 1 +@ + + +2.4 +log +@TYPESIG +@ +text +@d342 1 +a342 1 +#ifndef BSD42 +d344 1 +a344 1 +#endif BSD42 +@ + + +2.3 +log +@TYPESIG defaulting on SYS5/SUN40 systems +@ +text +@d352 1 +a352 1 +#if defined (SYS5) || defined (SUN40) +@ + + +2.2 +log +@TYPESIG +@ +text +@d352 3 +d356 1 +@ + + +2.1 +log +@up NFOLDERS to 300 +@ +text +@d351 4 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d15 1 +a15 1 +#define NFOLDERS 100 /* max folder arguments on command line */ +@ + + +1.1 +log +@Initial revision +@ +text +@d20 1 +a20 1 +#ifndef BSD42 || BSD41A || VMUNIX || hpux +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/mhn.h,v b/docs/historical/mh-6.8.5/h/RCS/mhn.h,v new file mode 100644 index 0000000..be6ae01 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/mhn.h,v @@ -0,0 +1,132 @@ +head 1.3; +access; +symbols; +locks; strict; +comment @ * @; + + +1.3 +date 93.08.20.15.43.43; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 92.10.16.17.13.19; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.01.31.16.27.00; author jromine; state Exp; +branches; +next ; + + +desc +@multimedia MH +@ + + +1.3 +log +@fixes from mtr +@ +text +@/* mhn.h - definitions for mhn & friends */ +/* @@(#)$Id: mhn.h,v 1.2 1992/10/16 17:13:19 jromine Exp jromine $ */ + +#define VRSN_FIELD "MIME-Version" +#define VRSN_VALUE "1.0" + +#define XXX_FIELD_PRF "Content-" + +#define TYPE_FIELD "Content-Type" + +#define ENCODING_FIELD "Content-Transfer-Encoding" + +#define ID_FIELD "Content-ID" + +#define DESCR_FIELD "Content-Description" + +#define MD5_FIELD "Content-MD5" + + +#define isatom(c) \ + (!isspace (c) \ + && !iscntrl (c) \ + && (c) != '(' \ + && (c) != ')' \ + && (c) != '<' \ + && (c) != '>' \ + && (c) != '@@' \ + && (c) != ',' \ + && (c) != ';' \ + && (c) != ':' \ + && (c) != '\\' \ + && (c) != '"' \ + && (c) != '.' \ + && (c) != '[' \ + && (c) != ']') + +#define istoken(c) \ + (!isspace (c) \ + && !iscntrl (c) \ + && (c) != '(' \ + && (c) != ')' \ + && (c) != '<' \ + && (c) != '>' \ + && (c) != '@@' \ + && (c) != ',' \ + && (c) != ';' \ + && (c) != ':' \ + && (c) != '\\' \ + && (c) != '"' \ + && (c) != '/' \ + && (c) != '[' \ + && (c) != ']' \ + && (c) != '?' \ + && (c) != '=') + +/* MTR: removed now, since likely to go away in the future + && (c) != '.' \ + */ + +/* */ + +#define CPERLIN 76 +#define BPERLIN (CPERLIN / 4) +#define LPERMSG 632 +#define CPERMSG (LPERMSG * CPERLIN) + +/* */ + +#if defined(BSD42) || defined(SOCKETS) +#define FTP +#endif +@ + + +1.2 +log +@fixes from mtr -- mime/update9 +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mhn.h,v 1.1 1992/01/31 16:27:00 jromine Exp $ */ +d16 2 +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +a2 1 +/* @@(#)$Id$ */ +d52 3 +d56 1 +a56 1 + && (c) != '=') +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/mshsbr.h,v b/docs/historical/mh-6.8.5/h/RCS/mshsbr.h,v new file mode 100644 index 0000000..5fe970e --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/mshsbr.h,v @@ -0,0 +1,232 @@ +head 1.8; +access; +symbols; +locks; strict; +comment @ * @; + + +1.8 +date 95.12.07.21.34.13; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 95.12.07.18.50.19; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 93.08.25.17.16.28; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.05.12.22.04.01; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.01.31.16.38.28; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 90.04.05.15.06.34; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.05.14.20.30; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.05.14.20.10; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.8 +log +@32bit ansi fix +@ +text +@/* mshsbr.h - definitions for msh */ +/* @@(#)$Id: mshsbr.h,v 1.7 1995/12/07 18:50:19 jromine Exp jromine $ */ + +struct Cmd { + char line[BUFSIZ]; + char *args[MAXARGS]; + + char *redirect; + + int direction; +#define STDIO 0 /* regular stdoutput */ +#define CRTIO 1 /* create re-direct */ +#define APPIO 2 /* append re-direct */ +#define PIPIO 3 /* pipe re-direct */ + + FILE *stream; +}; +#define NULLCMD ((struct Cmd *) 0) + + +struct Msg { + struct drop m_drop; +#define m_bboard_id m_drop.d_id +#define m_top m_drop.d_size +#define m_start m_drop.d_start +#define m_stop m_drop.d_stop + + char *m_scanl; + + struct tws m_tb; + + short m_flags; +#define MHNCHK 0x0001 /* did nontext check */ +#define MHNYES 0x0002 /* .. and known to be non-text */ + + int m_stats; /* ought to be unsigned (also in mh.h) */ +#define CUR ((unsigned)1 << (FFATTRSLOT + NATTRS)) +#ifdef BPOP +#define VIRTUAL SELECT_EMPTY +#endif /* BPOP */ +}; + +/* */ + + /* FOLDER */ +extern char *fmsh; /* folder instead of file */ +extern int modified; /* command modified folder */ +extern struct msgs *mp; /* used a lot */ +extern struct Msg *Msgs; /* Msgs[0] not used */ + +FILE *msh_ready (); + + + /* COMMAND */ +extern int interactive; /* running from a /dev/tty */ +extern int redirected; /* re-directing output */ +extern FILE *sp; /* original stdout */ + +extern char *cmd_name; /* command being run */ + +extern char myfilter[]; /* path to mhl.forward */ + + + +extern char *BBoard_ID; /* BBoard-ID constant */ + + + /* SIGNALS */ +extern TYPESIG (*istat) (); /* original SIGINT */ +extern TYPESIG (*qstat) (); /* original SIGQUIT */ +extern int interrupted; /* SIGINT detected */ +extern int broken_pipe; /* SIGPIPE detected */ +extern int told_to_quit; /* SIGQUIT detected */ + +#ifdef BSD42 +extern int should_intr; /* signal handler should interrupt call */ +extern jmp_buf sigenv; /* the environment pointer */ +#endif /* BSD42 */ + + +off_t lseek (); +@ + + +1.7 +log +@increase m_stats to int (to agree with mh.h) +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mshsbr.h,v 1.6 1993/08/25 17:16:28 jromine Exp jromine $ */ +d36 2 +a37 2 + int m_stats; +#define CUR (1 << (FFATTRSLOT + NATTRS)) +@ + + +1.6 +log +@off_t fixes for BSD44 +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mshsbr.h,v 1.5 1992/05/12 22:04:01 jromine Exp jromine $ */ +d36 1 +a36 1 + short m_stats; +@ + + +1.5 +log +@fix ifdefs +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mshsbr.h,v 1.4 1992/01/31 16:38:28 jromine Exp jromine $ */ +d81 1 +a81 1 +long lseek (); +@ + + +1.4 +log +@Multimedia MH +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: mshsbr.h,v 1.3 90/04/05 15:06:34 sources Exp $ */ +d40 1 +a40 1 +#endif BPOP +d78 1 +a78 1 +#endif BSD42 +@ + + +1.3 +log +@add ID +@ +text +@d2 1 +a2 1 +/* @@(#)$Id:$ */ +d31 4 +@ + + +1.2 +log +@TYPESIG +@ +text +@d2 1 +@ + + +1.1 +log +@Initial revision +@ +text +@d64 2 +a65 2 +extern int (*istat) (); /* original SIGINT */ +extern int (*qstat) (); /* original SIGQUIT */ +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/netdb.h,v b/docs/historical/mh-6.8.5/h/RCS/netdb.h,v new file mode 100644 index 0000000..7d57618 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/netdb.h,v @@ -0,0 +1,109 @@ +head 2.1; +branch ; +access ; +symbols ; +locks ; strict; +comment @ * @; + + +2.1 +date 90.04.05.15.06.01; author sources; state Exp; +branches ; +next 2.0; + +2.0 +date 89.11.17.15.56.56; author sources; state Exp; +branches ; +next ; + + +desc +@named's netdb.h for BIND option +@ + + +2.1 +log +@add ID +@ +text +@/* @@(#)$Id:$ */ +/* + * Copyright (c) 1980,1983,1988 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that this notice is preserved and that due credit is given + * to the University of California at Berkeley. The name of the University + * may not be used to endorse or promote products derived from this + * software without specific prior written permission. This software + * is provided ``as is'' without express or implied warranty. + * + * @@(#)netdb.h 5.9 (Berkeley) 4/5/88 + */ + +/* + * Structures returned by network + * data base library. All addresses + * are supplied in host order, and + * returned in network order (suitable + * for use in system calls). + */ +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses from name server */ +#define h_addr h_addr_list[0] /* address, for backward compatiblity */ +}; + +/* + * Assumption here is that a network number + * fits in 32 bits -- probably a poor one. + */ +struct netent { + char *n_name; /* official name of net */ + char **n_aliases; /* alias list */ + int n_addrtype; /* net address type */ + unsigned long n_net; /* network # */ +}; + +struct servent { + char *s_name; /* official service name */ + char **s_aliases; /* alias list */ + int s_port; /* port # */ + char *s_proto; /* protocol to use */ +}; + +struct protoent { + char *p_name; /* official protocol name */ + char **p_aliases; /* alias list */ + int p_proto; /* protocol # */ +}; + +struct hostent *gethostbyname(), *gethostbyaddr(), *gethostent(); +struct netent *getnetbyname(), *getnetbyaddr(), *getnetent(); +struct servent *getservbyname(), *getservbyport(), *getservent(); +struct protoent *getprotobyname(), *getprotobynumber(), *getprotoent(); + +/* + * Error return codes from gethostbyname() and gethostbyaddr() + * (left in extern int h_errno). + */ + +#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ +#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */ +#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ +#define NO_DATA 4 /* Valid name, no data record of requested type */ +#define NO_ADDRESS NO_DATA /* no address, look for MX record */ +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d1 1 +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/nntp.h,v b/docs/historical/mh-6.8.5/h/RCS/nntp.h,v new file mode 100644 index 0000000..d68ca0d --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/nntp.h,v @@ -0,0 +1,113 @@ +head 2.1; +branch ; +access ; +symbols ; +locks ; strict; +comment @ * @; + + +2.1 +date 90.04.05.15.06.18; author sources; state Exp; +branches ; +next 2.0; + +2.0 +date 89.11.17.15.57.13; author sources; state Exp; +branches ; +next ; + + +desc +@from the NNTP sources +@ + + +2.1 +log +@add ID +@ +text +@/* @@(#)$Id:$ */ +/* + * Response codes for NNTP server + * + * @@(#)nntp.h 1.7 (Berkeley) 1/11/88 + * + * First digit: + * + * 1xx Informative message + * 2xx Command ok + * 3xx Command ok so far, continue + * 4xx Command was correct, but couldn't be performed + * for some specified reason. + * 5xx Command unimplemented, incorrect, or a + * program error has occured. + * + * Second digit: + * + * x0x Connection, setup, miscellaneous + * x1x Newsgroup selection + * x2x Article selection + * x3x Distribution + * x4x Posting + */ + +#define CHAR_INF '1' +#define CHAR_OK '2' +#define CHAR_CONT '3' +#define CHAR_ERR '4' +#define CHAR_FATAL '5' + +#define INF_HELP 100 /* Help text on way */ +#define INF_DEBUG 199 /* Debug output */ + +#define OK_CANPOST 200 /* Hello; you can post */ +#define OK_NOPOST 201 /* Hello; you can't post */ +#define OK_SLAVE 202 /* Slave status noted */ +#define OK_GOODBYE 205 /* Closing connection */ +#define OK_GROUP 211 /* Group selected */ +#define OK_GROUPS 215 /* Newsgroups follow */ +#define OK_ARTICLE 220 /* Article (head & body) follows */ +#define OK_HEAD 221 /* Head follows */ +#define OK_BODY 222 /* Body follows */ +#define OK_NOTEXT 223 /* No text sent -- stat, next, last */ +#define OK_NEWNEWS 230 /* New articles by message-id follow */ +#define OK_NEWGROUPS 231 /* New newsgroups follow */ +#define OK_XFERED 235 /* Article transferred successfully */ +#define OK_POSTED 240 /* Article posted successfully */ + +#define CONT_XFER 335 /* Continue to send article */ +#define CONT_POST 340 /* Continue to post article */ + +#define ERR_GOODBYE 400 /* Have to hang up for some reason */ +#define ERR_NOGROUP 411 /* No such newsgroup */ +#define ERR_NCING 412 /* Not currently in newsgroup */ +#define ERR_NOCRNT 420 /* No current article selected */ +#define ERR_NONEXT 421 /* No next article in this group */ +#define ERR_NOPREV 422 /* No previous article in this group */ +#define ERR_NOARTIG 423 /* No such article in this group */ +#define ERR_NOART 430 /* No such article at all */ +#define ERR_GOTIT 435 /* Already got that article, don't send */ +#define ERR_XFERFAIL 436 /* Transfer failed */ +#define ERR_XFERRJCT 437 /* Article rejected, don't resend */ +#define ERR_NOPOST 440 /* Posting not allowed */ +#define ERR_POSTFAIL 441 /* Posting failed */ + +#define ERR_COMMAND 500 /* Command not recognized */ +#define ERR_CMDSYN 501 /* Command syntax error */ +#define ERR_ACCESS 502 /* Access to server denied */ +#define ERR_FAULT 503 /* Program fault, command not performed */ + +/* RFC 977 defines this; don't change it. */ + +#define NNTP_STRLEN 512 +@ + + +2.0 +log +@changes for SUN40 shared libraries and NNTP under bbc +@ +text +@d1 1 +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/rcvmail.h,v b/docs/historical/mh-6.8.5/h/RCS/rcvmail.h,v new file mode 100644 index 0000000..5b282b1 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/rcvmail.h,v @@ -0,0 +1,100 @@ +head 1.3; +access; +symbols; +locks; strict; +comment @ * @; + + +1.3 +date 92.12.15.00.20.22; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 92.12.14.17.47.34; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 92.12.14.17.44.38; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.3 +log +@endif sugar +@ +text +@/* rcvmail.h - rcvmail hook definitions */ +/* @@(#)$Id: rcvmail.h,v 1.2 1992/12/14 17:47:34 jromine Exp jromine $ */ + +#ifndef MMDFMTS +#include +#include +#include +#include +#include +#include "../mts/sendmail/smail.h" +#else /* MMDFMTS */ +#include "../mts/mmdf/util.h" +#include "../mts/mmdf/mmdf.h" +#endif /* MMDFMTS */ + + +#ifndef MMDFI +#define RCV_MOK 0 +#define RCV_MBX 1 +#else /* MMDFI */ +#define RCV_MOK RP_MOK +#define RCV_MBX RP_MECH +#endif /* MMDFI */ + + +#ifdef NRTC /* sigh */ +#undef RCV_MOK +#undef RCV_MBX + +#define RCV_MOK RP_MOK +#define RCV_MBX RP_MECH +#endif /* NRTC */ +@ + + +1.2 +log +@add id +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: pidwait.c,v 1.9 1992/12/14 17:10:58 jromine Exp $ */ +d11 1 +a11 1 +#else MMDFMTS +d14 1 +a14 1 +#endif MMDFMTS +d20 1 +a20 1 +#else MMDFI +d23 1 +a23 1 +#endif MMDFI +d32 1 +a32 1 +#endif NRTC +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/scansbr.h,v b/docs/historical/mh-6.8.5/h/RCS/scansbr.h,v new file mode 100644 index 0000000..d28ff65 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/scansbr.h,v @@ -0,0 +1,172 @@ +head 1.7; +access; +symbols; +locks; strict; +comment @ * @; + + +1.7 +date 92.11.10.17.27.11; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.05.12.22.04.15; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.02.11.05.12.21; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.02.10.18.25.48; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 92.02.09.21.21.00; author jromine; state Exp; +branches; +next 1.2; + +1.2 +date 91.12.02.20.45.51; author jromine; state Exp; +branches; +next 1.1; + +1.1 +date 91.12.02.19.24.42; author jromine; state Exp; +branches; +next ; + + +desc +@@ + + +1.7 +log +@fixup Id +@ +text +@/* scansbr.h - definitions for scan () */ +/* $Id: /usr/src/bs/mh-develop/mh-6.7-new/h/RCS/scansbr.h,v 1.6 1992/05/12 22:04:15 jromine Exp jromine $ */ + +extern char *scanl; + +#define SCNENC 2 /* message just fine, but encrypted(!!) */ +#define SCNMSG 1 /* message just fine */ +#define SCNEOF 0 /* empty message */ +#define SCNERR (-1) /* error message */ +#define SCNNUM (-2) /* number out of range */ +#define SCNFAT (-3) /* fatal error */ + + +#ifndef UK +#define FORMAT \ +"%4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\ +%02(mon{date})/%02(mday{date})%<{date} %|*%>\ +%<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%> \ +%{subject}%<{body}<<%{body}>>%>\n" +#else /* UK */ +#define FORMAT \ +"%4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\ +%02(mday{date})/%02(mon{date})%<{date} %|*%>\ +%<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%> \ +%{subject}%<{body}<<%{body}>>%>\n" +#endif /* UK */ + +#define WIDTH 78 + +int scan (); +@ + + +1.6 +log +@fix ifdefs +@ +text +@d2 1 +a2 1 +/* $Header: /usr/src/bs/mh-develop/mh-6.7-new/h/RCS/scansbr.h,v 1.5 1992/02/11 05:12:21 jromine Exp jromine $ */ +@ + + +1.5 +log +@use if-then-elseif-else +@ +text +@d2 1 +a2 1 +/* $Header: /usr/src/bs/mh-develop/mh-6.7-new/h/RCS/scansbr.h,v 1.4 1992/02/10 18:25:48 jromine Exp jromine $ */ +d20 1 +a20 1 +#else UK +d26 1 +a26 1 +#endif UK +@ + + +1.4 +log +@add SCNFAT for fatal errors +@ +text +@d2 1 +a2 1 +/* $Header: /usr/src/bs/mh-develop/mh-6.7-new/h/RCS/scansbr.h,v 1.3 1992/02/09 21:21:00 jromine Exp jromine $ */ +d16 1 +a16 1 +"%4(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%| %>%>\ +d22 1 +a22 1 +"%4(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%| %>%>\ +@ + + +1.3 +log +@fix default scan format +@ +text +@d2 1 +a2 1 +/* $Header: /usr/src/bs/mh-develop/mh-6.7-new/h/RCS/scansbr.h,v 1.2 1991/12/02 20:45:51 jromine Exp jromine $ */ +d11 1 +@ + + +1.2 +log +@add newlines at end of line +@ +text +@d2 1 +a2 1 +/* $Header:$ */ +d17 1 +a17 1 +%<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \ +d23 1 +a23 1 +%<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \ +@ + + +1.1 +log +@Initial revision +@ +text +@d2 1 +d18 1 +a18 1 +%{subject}%<{body}<<%{body}>>%>" +d24 1 +a24 1 +%{subject}%<{body}<<%{body}>>%>" +@ diff --git a/docs/historical/mh-6.8.5/h/RCS/strings.h,v b/docs/historical/mh-6.8.5/h/RCS/strings.h,v new file mode 100644 index 0000000..1213ca2 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/RCS/strings.h,v @@ -0,0 +1,466 @@ +head 1.20; +access; +symbols; +locks; strict; +comment @ * @; + + +1.20 +date 95.12.06.23.48.12; author jromine; state Exp; +branches; +next 1.19; + +1.19 +date 93.02.26.21.54.00; author jromine; state Exp; +branches; +next 1.18; + +1.18 +date 92.11.12.19.34.05; author jromine; state Exp; +branches; +next 1.17; + +1.17 +date 92.11.11.23.04.16; author jromine; state Exp; +branches; +next 1.16; + +1.16 +date 92.11.06.03.30.38; author jromine; state Exp; +branches; +next 1.15; + +1.15 +date 92.11.04.02.36.15; author jromine; state Exp; +branches; +next 1.14; + +1.14 +date 92.11.02.18.54.12; author jromine; state Exp; +branches; +next 1.13; + +1.13 +date 92.10.30.05.52.07; author jromine; state Exp; +branches; +next 1.12; + +1.12 +date 92.05.19.20.53.49; author jromine; state Exp; +branches; +next 1.11; + +1.11 +date 92.05.12.21.47.25; author jromine; state Exp; +branches; +next 1.10; + +1.10 +date 92.02.07.19.16.40; author jromine; state Exp; +branches; +next 1.9; + +1.9 +date 92.01.31.21.37.07; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.01.23.23.16.46; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 90.04.05.16.18.34; author sources; state Exp; +branches; +next 1.6; + +1.6 +date 90.04.05.15.05.46; author sources; state Exp; +branches; +next 1.5; + +1.5 +date 90.04.02.13.24.20; author sources; state Exp; +branches; +next 1.4; + +1.4 +date 90.03.27.19.14.00; author sources; state Exp; +branches; +next 1.3; + +1.3 +date 90.03.19.09.30.19; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.02.01.13.22.13; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.02.01.13.21.13; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.20 +log +@fix: don't re-define bcopy +@ +text +@/* strings.h - define standard string functions */ +/* @@(#)$Id: strings.h,v 1.19 1993/02/26 21:54:00 jromine Exp jromine $ */ + +#ifndef _STRINGS /* once-only... */ +#define _STRINGS + +#ifdef AUX +#include +#endif + +#ifdef _AIX +#include +#include + +#define bcmp(b1,b2,length) memcmp(b1, b2, length) +#define bcopy(b1,b2,length) (void) memcpy (b2, b1, length) +#define bcpy(b1,b2,length) memcmp (b1, b2, length) +#define bzero(b,length) (void) memset (b, 0, length) + +#else /* _AIX */ + +#ifdef SYS5 +#define index strchr +#define rindex strrchr +#endif /* SYS5 */ + +#if defined(BSD42) || defined(SVR4) +#if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44) +#include +#else +#include +#include +#endif +#else /* not BSD42 || SVR4 */ +char *index (); +char *mktemp (); +char *rindex (); +#ifndef SPRINTFTYPE +#ifndef ncr /* NCR compiler complains about re-declaration */ +char *sprintf (); /* I guess this is the new standard */ +#endif +#else +SPRINTFTYPE sprintf (); +#endif +char *strcat (); +int strcmp (); +char *strcpy (); +int strlen (); +char *strncat (); +int strncmp (); +char *strncpy (); +#endif + +#if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44) +char *getenv (); +char *calloc (), *malloc (), *realloc (); +#endif /* SVR4 */ + +#ifdef SYS5 +#include +#define bcmp(b1,b2,length) memcmp(b1, b2, length) +#define bcopy(b1,b2,length) (void) memcpy (b2, b1, length) +#define bcpy(b1,b2,length) memcmp (b1, b2, length) +#define bzero(b,length) (void) memset (b, 0, length) +#endif /* SYS5 */ +#endif /* _AIX */ +#endif /* not _STRINGS */ + +#if !defined(bcopy) && (defined(__HIGHC__) || __GNUC__ == 2) +#define bcopy(s,d,l) memcpy(d,s,l) +#endif +@ + + +1.19 +log +@386BSD/BSD44 +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.18 1992/11/12 19:34:05 jromine Exp jromine $ */ +a58 4 +#if defined(__HIGHC__) || __GNUC__ == 2 +#define bcopy(s,d,l) memcpy(d,s,l) +#endif + +d68 4 +@ + + +1.18 +log +@drop u_short defn from AUX` +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.17 1992/11/11 23:04:16 jromine Exp jromine $ */ +d28 1 +a28 1 +#ifndef SVR4 +d54 1 +a54 1 +#ifndef SVR4 +@ + + +1.17 +log +@SVR4 change for Solaris 2.x +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.16 1992/11/06 03:30:38 jromine Exp jromine $ */ +a8 2 +#define u_long ulong +#define u_short ushort +@ + + +1.16 +log +@AUX +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.15 1992/11/04 02:36:15 jromine Exp jromine $ */ +d30 1 +d33 4 +@ + + +1.15 +log +@remove _putenv defines +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.14 1992/11/02 18:54:12 jromine Exp jromine $ */ +d6 6 +@ + + +1.14 +log +@don't define [r]index on _AIX since SYS5 defines them +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.13 1992/10/30 05:52:07 jromine Exp jromine $ */ +a8 1 +#define putenv _putenv +a9 1 +#undef putenv +@ + + +1.13 +log +@#ifdef around putenv decl in +., +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.12 1992/05/19 20:53:49 jromine Exp jromine $ */ +a11 3 + +#define index strchr +#define rindex strrchr +@ + + +1.12 +log +@AIX +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.11 1992/05/12 21:47:25 jromine Exp jromine $ */ +d9 1 +d11 1 +@ + + +1.11 +log +@fix ifdefs +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.10 1992/02/07 19:16:40 jromine Exp jromine $ */ +d9 1 +a9 1 +#include +@ + + +1.10 +log +@SVR4 +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.9 1992/01/31 21:37:07 jromine Exp jromine $ */ +d24 1 +a24 1 +#endif SYS5 +d63 1 +a63 1 +#endif SYS5 +d65 1 +a65 1 +#endif not _STRINGS +@ + + +1.9 +log +@kerberos +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.8 1992/01/23 23:16:46 jromine Exp jromine $ */ +d26 1 +a26 1 +#ifdef BSD42 +d48 1 +d51 1 +@ + + +1.8 +log +@ifdef ncr +@ +text +@d2 1 +a2 1 +/* @@(#)$Id: strings.h,v 1.7 1990/04/05 16:18:34 sources Exp jromine $ */ +d7 14 +d26 3 +d46 1 +d51 4 +d62 1 +a62 1 + +@ + + +1.7 +log +@fix +@ +text +@d2 1 +a2 1 +/* @@(#)$Id:$ */ +d16 1 +d18 1 +@ + + +1.6 +log +@add ID +@ +text +@a3 2 +/* @@(MHWARNING) */ + +d15 5 +a19 1 +@@(SPRINTFTYPE)sprintf (); /* finally, a config option */ +@ + + +1.5 +log +@make "sprintf" type a config option +@ +text +@d2 1 +@ + + +1.4 +log +@some hpux fixes +@ +text +@d3 2 +d16 1 +a16 9 +/* this is getting gross. */ +#if (!defined(hpux) && defined(SYS5)) || defined(SUN41) +char *sprintf (); +#else SYS5 +#ifdef __GNUC__ +#else +int sprintf (); +#endif +#endif SYS5 +@ + + +1.3 +log +@yuk! +@ +text +@d15 1 +a15 1 +#if defined(SYS5) || defined(SUN41) +@ + + +1.2 +log +@some more SYS5 #ifdefs +@ +text +@d14 2 +a15 1 +#ifdef SYS5 +@ + + +1.1 +log +@Initial revision +@ +text +@d14 1 +a14 1 +#ifndef SYS5 +d17 2 +d20 1 +d35 1 +@ diff --git a/docs/historical/mh-6.8.5/h/addrsbr.h b/docs/historical/mh-6.8.5/h/addrsbr.h new file mode 100644 index 0000000..f420d13 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/addrsbr.h @@ -0,0 +1,46 @@ +/* addrsbr.h - definitions for the address parsing system */ + +#define AD_HOST 1 /* getm(): lookup official hostname */ +#define AD_NHST 0 /* getm(): do not lookup official name */ +#define AD_NAME AD_NHST /* AD_HOST is TOO slow */ + + +struct mailname { + struct mailname *m_next; + + char *m_text, + *m_pers, + *m_mbox, + *m_host, + *m_path; + + int m_type; +#define UUCPHOST (-1) +#define LOCALHOST 0 +#define NETHOST 1 +#define BADHOST 2 + + char m_nohost; + + char m_bcc; + + int m_ingrp; + char *m_gname; + + char *m_note; + +#ifdef MHMTS + char *m_aka; +#endif /* MHMTS */ +}; + + +void mnfree (); +int ismymbox (); +char *getname (), *adrsprintf (), *auxformat (); +struct mailname *getm (); + +#define adrformat(m) auxformat ((m), 1) + +char *LocalName (), *SystemName (), *UucpChan (); +char *OfficialName (); diff --git a/docs/historical/mh-6.8.5/h/aliasbr.h b/docs/historical/mh-6.8.5/h/aliasbr.h new file mode 100644 index 0000000..47a789d --- /dev/null +++ b/docs/historical/mh-6.8.5/h/aliasbr.h @@ -0,0 +1,57 @@ +/* aliasbr.h - definitions for the aliasing system */ +/* $Id: aliasbr.h,v 1.2 1992/05/12 22:03:31 jromine Exp $ */ + + +extern char *AliasFile; /* mh-alias(5) */ + +#define PASSWD "/etc/passwd" /* passwd(5) */ + +#define GROUP "/etc/group" /* group(5) */ + +#define EVERYONE 200 /* lowest uid for everyone */ + +struct aka { + char *ak_name; /* name to match against */ + struct adr *ak_addr; /* list of addresses that it maps to */ + struct aka *ak_next; /* next aka in list */ + char ak_visible; /* should be visible in headers */ +}; + +struct adr { + char *ad_text; /* text of this address in list */ + struct adr *ad_next; /* next adr in list */ + char ad_local; /* text is local (check for expansion) */ +}; + +struct home { /* incore version of /etc/passwd */ + char *h_name; /* user name */ + int h_uid; /* user id */ + int h_gid; /* user's group */ + char *h_home; /* user's home directory */ + char *h_shell; /* user's shell */ +#ifdef BSD42 + int h_ngrps; /* number of groups this user belongs to */ +#endif /* BSD42 */ + struct home *h_next; /* next home in list */ +}; + +#ifndef MMDFMTS +struct home *seek_home (); +#endif /* MMDFMTS */ + +int alias (), akvisible (), init_pw (); +char *akresult (), *akvalue (), *akerror (); + +/* codes returned by alias() */ + +#define AK_OK 0 /* file parsed ok */ +#define AK_NOFILE 1 /* couldn't read file */ +#define AK_ERROR 2 /* error parsing file */ +#define AK_LIMIT 3 /* memory limit exceeded */ +#define AK_NOGROUP 4 /* no such group */ + + +/* should live here, not in mts.c */ + +extern int Everyone; +extern char *NoShell; diff --git a/docs/historical/mh-6.8.5/h/dropsbr.h b/docs/historical/mh-6.8.5/h/dropsbr.h new file mode 100644 index 0000000..26ff288 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/dropsbr.h @@ -0,0 +1,40 @@ +/* dropsbr.h - definitions for maildrop-style files */ + + +/* A file which is formatted like a maildrop may have a corresponding map + file which is an index to the bounds of each message. The first record + of such an map is special, it contains: + + d_id = number of messages in file + d_size = version number of map + d_start = last message read + d_stop = size of file + + Each record after that contains: + + d_id = BBoard-ID: of message, or similar info + d_size = size of message in ARPA Internet octets (\n == 2 octets) + d_start = starting position of message in file + d_stop = stopping position of message in file + + Note that d_st{art,op} do NOT include the message delimiters, so + programs using the map can simply fseek to d_start and keep reading + until the position is at d_stop. + */ + +#define DRVRSN 3 + +struct drop { + int d_id; + int d_size; + long d_start; + long d_stop; +}; + + +int map_chk (), map_read (), map_write (); +char *map_name (); + +int mbx_mmdf (), mbx_uucp (); +int mbx_open (), mbx_Xopen (), mbx_copy (), mbx_size (), mbx_close (); +int mbx_read (), mbx_write (); diff --git a/docs/historical/mh-6.8.5/h/fmtcompile.h b/docs/historical/mh-6.8.5/h/fmtcompile.h new file mode 100644 index 0000000..34dc263 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/fmtcompile.h @@ -0,0 +1,105 @@ +/* @(#)$Id: fmtcompile.h,v 1.10 1993/06/12 06:46:16 jromine Exp $ */ + +/* Format Types */ +/* -------------*/ + +/* types that output text */ +#define FT_COMP 1 /* the text of a component */ +#define FT_COMPF 2 /* comp text, filled */ +#define FT_LIT 3 /* literal text */ +#define FT_LITF 4 /* literal text, filled */ +#define FT_CHAR 5 /* a single ascii character */ +#define FT_NUM 6 /* "value" as decimal number */ +#define FT_NUMF 7 /* "value" as filled dec number */ +#define FT_STR 8 /* "str" as text */ +#define FT_STRF 9 /* "str" as text, filled */ +#define FT_STRFW 10 /* "str" as text, filled, width in "value" */ +#define FT_PUTADDR 11 /* split and print address line */ + +/* types that modify the "str" or "value" registers */ +#define FT_LS_COMP 12 /* set "str" to component text */ +#define FT_LS_LIT 13 /* set "str" to literal text */ +#define FT_LS_GETENV 14 /* set "str" to getenv(text) */ +#define FT_LS_MFIND 15 /* set "str" to m_find(text) */ +#define FT_LS_TRIM 16 /* trim trailing white space from "str" */ +#define FT_LV_COMP 17 /* set "value" to comp (as dec. num) */ +#define FT_LV_COMPFLAG 18 /* set "value" to comp flag word */ +#define FT_LV_LIT 19 /* set "value" to literal num */ +#define FT_LV_DAT 20 /* set "value" to dat[n] */ +#define FT_LV_STRLEN 21 /* set "value" to length of "str" */ +#define FT_LV_PLUS_L 22 /* set "value" += literal */ +#define FT_LV_MINUS_L 23 /* set "value" -= literal */ +#define FT_LV_DIVIDE_L 24 /* set "value" to value / literal */ +#define FT_LV_MODULO_L 25 /* set "value" to value % literal */ +#define FT_LV_CHAR_LEFT 26 /* set "value" to char left in output */ + +#define FT_LS_MONTH 27 /* set "str" to tws month */ +#define FT_LS_LMONTH 28 /* set "str" to long tws month */ +#define FT_LS_ZONE 29 /* set "str" to tws timezone */ +#define FT_LS_DAY 30 /* set "str" to tws weekday */ +#define FT_LS_WEEKDAY 31 /* set "str" to long tws weekday */ +#define FT_LS_822DATE 32 /* set "str" to 822 date str */ +#define FT_LS_PRETTY 33 /* set "str" to pretty (?) date str */ +#define FT_LV_SEC 34 /* set "value" to tws second */ +#define FT_LV_MIN 35 /* set "value" to tws minute */ +#define FT_LV_HOUR 36 /* set "value" to tws hour */ +#define FT_LV_MDAY 37 /* set "value" to tws day of month */ +#define FT_LV_MON 38 /* set "value" to tws month */ +#define FT_LV_YEAR 39 /* set "value" to tws year */ +#define FT_LV_YDAY 40 /* set "value" to tws day of year */ +#define FT_LV_WDAY 41 /* set "value" to tws weekday */ +#define FT_LV_ZONE 42 /* set "value" to tws timezone */ +#define FT_LV_CLOCK 43 /* set "value" to tws clock */ +#define FT_LV_RCLOCK 44 /* set "value" to now - tws clock */ +#define FT_LV_DAYF 45 /* set "value" to tws day flag */ +#define FT_LV_DST 46 /* set "value" to tws daylight savings flag */ +#define FT_LV_ZONEF 47 /* set "value" to tws timezone flag */ + +#define FT_LS_PERS 48 /* set "str" to person part of addr */ +#define FT_LS_MBOX 49 /* set "str" to mbox part of addr */ +#define FT_LS_HOST 50 /* set "str" to host part of addr */ +#define FT_LS_PATH 51 /* set "str" to route part of addr */ +#define FT_LS_GNAME 52 /* set "str" to group part of addr */ +#define FT_LS_NOTE 53 /* set "str" to comment part of addr */ +#define FT_LS_ADDR 54 /* set "str" to mbox@host */ +#define FT_LS_822ADDR 55 /* set "str" to 822 format addr */ +#define FT_LS_FRIENDLY 56 /* set "str" to "friendly" format addr */ +#define FT_LV_HOSTTYPE 57 /* set "value" to addr host type */ +#define FT_LV_INGRPF 58 /* set "value" to addr in-group flag */ +#define FT_LV_NOHOSTF 59 /* set "value" to addr no-host flag */ + +/* Date Coercion */ +#define FT_LOCALDATE 60 /* Coerce date to local timezone */ +#define FT_GMTDATE 61 /* Coerce date to gmt */ + +/* pre-format processing */ +#define FT_PARSEDATE 62 /* parse comp into a date (tws) struct */ +#define FT_PARSEADDR 63 /* parse comp into a mailaddr struct */ +#define FT_FORMATADDR 64 /* let external routine format addr */ +#define FT_MYMBOX 65 /* do "mymbox" test on comp */ + +/* misc. */ /* ADDTOSEQ only works if you include "options LBL" */ +#define FT_ADDTOSEQ 66 /* add current msg to a sequence */ + +/* conditionals & control flow (must be last) */ +#define FT_SAVESTR 67 /* save current str reg */ +#define FT_DONE 68 /* stop formatting */ +#define FT_PAUSE 69 /* pause */ +#define FT_NOP 70 /* nop */ +#define FT_GOTO 71 /* (relative) goto */ +#define FT_IF_S_NULL 72 /* test if "str" null */ +#define FT_IF_S 73 /* test if "str" non-null */ +#define FT_IF_V_EQ 74 /* test if "value" = literal */ +#define FT_IF_V_NE 75 /* test if "value" != literal */ +#define FT_IF_V_GT 76 /* test if "value" > literal */ +#define FT_IF_MATCH 77 /* test if "str" contains literal */ +#define FT_IF_AMATCH 78 /* test if "str" starts with literal */ +#define FT_S_NULL 79 /* V = 1 if "str" null */ +#define FT_S_NONNULL 80 /* V = 1 if "str" non-null */ +#define FT_V_EQ 81 /* V = 1 if "value" = literal */ +#define FT_V_NE 82 /* V = 1 if "value" != literal */ +#define FT_V_GT 83 /* V = 1 if "value" > literal */ +#define FT_V_MATCH 84 /* V = 1 if "str" contains literal */ +#define FT_V_AMATCH 85 /* V = 1 if "str" starts with literal */ + +#define IF_FUNCS FT_S_NULL /* start of "if" functions */ diff --git a/docs/historical/mh-6.8.5/h/formatsbr.h b/docs/historical/mh-6.8.5/h/formatsbr.h new file mode 100644 index 0000000..8ae7249 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/formatsbr.h @@ -0,0 +1,83 @@ +/* formatsbr.h - definitions for fmtscan () */ +/* $Id: formatsbr.h,v 1.1 1992/01/23 23:14:54 jromine Exp $ */ + +/* + * This structure describes an "interesting" component. It holds + * the name & text from the component (if found) and one piece of + * auxilary info. The structure for a particular component is located + * by hashing the name and using it as an index into the ptr array + * "wantcomp". All format entries that reference a particular component + * point to its comp struct (so we only have to do component specific + * processing once. e.g., parse an address.). + */ +struct comp { + char *c_name; /* component name (in lower case) */ + struct comp *c_next; /* hash chain linkage */ + char *c_text; /* component text (if found) */ + short c_flags; /* misc. flags (from formatsbr) */ + short c_type; /* type info (from fmtcompile) */ + union { + struct tws *c_u_tws; + struct mailname *c_u_mn; + } c_un; +#define c_tws c_un.c_u_tws +#define c_mn c_un.c_u_mn +}; + +/* c_type bits */ +#define CT_ADDR 1 /* referenced as address */ +#define CT_DATE 2 /* referenced as date */ +#define CT_MYMBOX 4 /* "mymbox" test being done */ +#define CT_ADDRPARSE 8 /* address parse being done */ + +extern int fmt_norm; + +struct comp *wantcomp[128]; /* hash table for deciding if a + * component is "interesting" */ + +/* + * Hash function for component name. The function should be + * case independent and probably shouldn't involve a routine + * call. This function is pretty good but will not work on + * single character component names. + */ +#define CHASH(nm) (((((nm)[0]) - ((nm)[1])) & 0x1f) + (((nm)[2]) & 0x5f)) + +#ifdef GOULD_PN +/* bug in the Gould PowerNode compiler: need a local pointer to name... */ +#define FINDCOMP(comp,name1) \ + { \ + char *name = (name1); \ + for (comp = wantcomp[CHASH(name)]; \ + comp && strcmp(comp->c_name,name); \ + comp = comp->c_next) ; \ + } +#else +#define FINDCOMP(comp,name) \ + for (comp = wantcomp[CHASH(name)]; \ + comp && strcmp(comp->c_name,name); \ + comp = comp->c_next) ; +#endif + +/* + * This structure defines one formatting instruction. + */ +struct format { + unsigned char f_type; + char f_fill; + short f_width; /* output field width */ +#define f_skip f_width /* instr to skip (false "if") */ + union { + struct comp *f_u_comp; /* associated component */ + char *f_u_text; /* literal text */ + char f_u_char; /* literal character */ + int f_u_value; /* literal value */ + } f_un; +#define f_comp f_un.f_u_comp +#define f_text f_un.f_u_text +#define f_char f_un.f_u_char +#define f_value f_un.f_u_value +}; + +struct format *fmtscan (); +char *new_fs (); diff --git a/docs/historical/mh-6.8.5/h/local.h b/docs/historical/mh-6.8.5/h/local.h new file mode 100644 index 0000000..75cb0d3 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/local.h @@ -0,0 +1,24 @@ +/* local.h - fine the -lndir include file */ +/* @(#)$Id: local.h,v 1.3 1992/02/06 17:37:44 jromine Exp $ */ + +#ifndef BSD42 +#include +#else /* BSD42 */ +#include +#endif + +#ifndef BSD42 +#ifndef NDIR +#ifndef SYS5DIR +#include /* last choice */ +#else /* SYS5DIR */ +#include +#endif +#else /* NDIR */ +#include +#endif +#else /* BSD42 */ +#include +#endif + +#include diff --git a/docs/historical/mh-6.8.5/h/local/incr.awk b/docs/historical/mh-6.8.5/h/local/incr.awk new file mode 100644 index 0000000..4f78103 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/local/incr.awk @@ -0,0 +1,10 @@ +BEGIN {IFS=" "; OFS=IFS; FS=IFS} +#234567890123456789012345678901234567890 +#define FT_LS_822ADDR 51 /* set "str" to 822 format addr */ +{ + if (substr($0,25,2) ~ /[0-9][0-9]/) { + a = substr($0,25,2) + 1; + print substr($0,1,24) sprintf ("%02.2d", a) substr($0,27); + } + else print; +} diff --git a/docs/historical/mh-6.8.5/h/md5.h b/docs/historical/mh-6.8.5/h/md5.h new file mode 100644 index 0000000..c8e0b1c --- /dev/null +++ b/docs/historical/mh-6.8.5/h/md5.h @@ -0,0 +1,71 @@ +/* @(#)$Id: md5.h,v 1.2 1992/10/26 16:38:50 jromine Exp $ */ +/* taken from RFC-1321/Appendices A.1/A.2 */ + +/* GLOBAL.H - RSAREF types and constants + */ + +/* PROTOTYPES should be set to one if and only if the compiler supports + function argument prototyping. +The following makes PROTOTYPES default to 0 if it has not already + been defined with C compiler flags. + */ +#ifndef PROTOTYPES +#define PROTOTYPES 0 +#endif + +/* POINTER defines a generic pointer type */ +typedef unsigned char *POINTER; + +/* UINT2 defines a two byte word */ +typedef unsigned short int UINT2; + +/* UINT4 defines a four byte word */ +typedef unsigned long int UINT4; + +/* PROTO_LIST is defined depending on how PROTOTYPES is defined above. +If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it + returns an empty list. + */ +#if PROTOTYPES +#define PROTO_LIST(list) list +#else +#define PROTO_LIST(list) () +#endif + +/* MD5.H - header file for MD5C.C + */ + +/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +rights reserved. + +License to copy and use this software is granted provided that it +is identified as the "RSA Data Security, Inc. MD5 Message-Digest +Algorithm" in all material mentioning or referencing this software +or this function. + +License is also granted to make and use derivative works provided +that such works are identified as "derived from the RSA Data +Security, Inc. MD5 Message-Digest Algorithm" in all material +mentioning or referencing the derived work. + +RSA Data Security, Inc. makes no representations concerning either +the merchantability of this software or the suitability of this +software for any particular purpose. It is provided "as is" +without express or implied warranty of any kind. + +These notices must be retained in any copies of any part of this +documentation and/or software. + */ + +/* MD5 context. */ +typedef struct { + UINT4 state[4]; /* state (ABCD) */ + UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ + unsigned char buffer[64]; /* input buffer */ +} MD5_CTX; + +void MD5Init PROTO_LIST ((MD5_CTX *)); +void MD5Update PROTO_LIST + ((MD5_CTX *, unsigned char *, unsigned int)); +void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *)); + diff --git a/docs/historical/mh-6.8.5/h/mh.h b/docs/historical/mh-6.8.5/h/mh.h new file mode 100644 index 0000000..5c57022 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/mh.h @@ -0,0 +1,365 @@ +/* mh.h - main header file for all of MH */ +/* @(#)$Id: mh.h,v 2.19 1993/02/26 21:53:29 jromine Exp $ */ + + +/* Well-used constants */ + +#define NOTOK (-1) /* syscall()s return this on error */ +#define OK 0 /* ditto on success */ +#define DONE 1 /* trinary logic */ +#define ALL "" +#define NULLCP ((char *) 0) +#define NULLVP ((char **) 0) +#define Nbby 8 /* number of bits/byte */ + +#define MAXARGS 1000 /* max arguments to exec */ + +#define NFOLDERS 300 /* max folder arguments on command line */ + +#ifndef UCI +#define MAXFOLDER 1000 /* message increment */ +#else +#define MAXFOLDER 1500 /* message increment */ +#endif +#define DMAXFOLDER 4 /* typical number of digits */ + +#if (!defined(BSD42) && !defined(BSD41A) && !defined(VMUNIX) && !defined(hpux)) || defined(_AIX) +#define vfork fork +#endif /* not BSD */ /* how sad... */ + +/* */ + +/* profile structure */ + +struct node { + char *n_name; /* key */ + char *n_field; /* value */ + + char n_context; /* context, not profile */ + + struct node *n_next; /* next entry */ +}; + + +/* switches structure */ + +#define AMBIGSW (-2) /* from smatch() on ambiguous switch */ +#define UNKWNSW (-1) /* ditto on unknown switch */ + +struct swit { + char *sw; + int minchars; +}; + +extern struct swit anoyes[]; /* standard yes/no switches */ + + +/* messages structure */ + +struct msgs { + int hghmsg; /* Highest msg in directory */ + int nummsg; /* Actual Number of msgs */ + int lowmsg; /* Lowest msg number */ + int curmsg; /* Number of current msg if any */ + + int lowsel; /* Lowest selected msg number */ + int hghsel; /* Highest selected msg number */ + int numsel; /* Number of msgs selected */ + + char *foldpath; /* Pathname of folder */ + + int msgflags; /* Folder status bits */ +#ifndef MTR + char pad1[sizeof (int) - sizeof (char)]; +#endif /* not MTR */ +#define READONLY 0x01 /* No write access to folder */ +#define SEQMOD 0x02 /* folder's sequences modifed */ +#define MHPATH 0x04 /* mhpath-style folder handling */ +#define OTHERS 0x08 /* folder has other files */ +#define MODIFIED 0x10 /* msh in-core folder modified */ +#define FBITS "\020\01READONLY\02SEQMOD\03MHPATH\04OTHERS\05MODIFIED" + +/* Note well: msgstats[] is a int, so we have 16 or 32 bits to work + with. The first 5 are for standard MH message flags, + this leaves us 11 (or 27) for user-defined attributes. Of + these, 1 is reserved for future internal use, so this leaves + users 10 (or 26). */ +#define NATTRS ((sizeof(int)*Nbby)-6) /* see above */ + char *msgattrs[NATTRS + 1];/* folder attributes */ + int attrstats; /* public=0/private=1 */ + + int lowoff; /* low element in msgstats[] */ + int hghoff; /* hgh element in msgstats[] */ + +#ifndef MTR + int msgstats[1]; /* msg status */ +#else /* MTR */ + int *msgbase; /* msg base */ + int *msgstats; /* msg status */ +#endif /* MTR */ +#define EXISTS 0x0001 /* exists */ +#define DELETED 0x0002 /* deleted */ +#define SELECTED 0x0004 /* selected for use */ +#define SELECT_EMPTY 0x0008 /* mhpath "new" */ +#define UNSEEN 0x0010 /* inc/show "unseen" */ +#define FFATTRSLOT 5 /* user-defined attributes */ + /* first free slot is */ + /* (1 << 5) or 0x20 */ +#define MBITS "\020\01EXISTS\02DELETED\03SELECTED\04NEW\05UNSEEN" + +#ifndef MTR +#define MHSIZE(mp,lo,hi) \ + ((unsigned) (sizeof *mp + ((hi) + 2) * sizeof *mp -> msgstats)) +#else /* MTR */ +#define MHSIZE(mp,lo,hi) ((unsigned) sizeof *mp) +#define MHSIZEX(mp,lo,hi) \ + ((unsigned) (((hi) - (lo) + 1) * sizeof *mp -> msgstats)) +#endif /* MTR */ +}; + +#define NULLMP ((struct msgs *) 0) + +/* */ + +/* m_getfld() message parsing */ + +#define NAMESZ 128 /* Limit on component name size */ + +#define LENERR (-2) /* Name too long error from getfld */ +#define FMTERR (-3) /* Message Format error */ +#define FLD 0 /* Field returned */ +#define FLDPLUS 1 /* Field " with more to come */ +#define FLDEOF 2 /* Field " ending at eom */ +#define BODY 3 /* Body " with more to come */ +#define BODYEOF 4 /* Body " ending at eom */ +#define FILEEOF 5 /* Reached end of input file */ + + +/* Maildrop styles */ + +#define MS_DEFAULT 0 /* default (one msg per file) */ +#define MS_UNKNOWN 1 /* type not known yet */ +#define MS_UUCP 2 /* Unix-style "from" lines */ +#define MS_MMDF 3 /* string mmdlm2 */ +#define MS_MSH 4 /* whacko msh */ + +extern int msg_count; /* m_getfld() indicators */ +extern int msg_style; /* .. */ +extern char *msg_delim; /* .. */ + + +#define NOUSE 0 /* draft being re-used */ + +#define TFOLDER 0 /* path() given a +folder */ +#define TFILE 1 /* path() given a file */ +#define TSUBCWF 2 /* path() given a @folder */ + +#ifndef LINK +#define LINK "@" +#endif /* not LINK */ + +#ifndef SBACKUP +#define SBACKUP "," +#endif /* not SBACKUP */ + + +#define OUTPUTLINELEN 72 /* default line length for headers */ + +/* */ + +/* + * These standard strings are defined in config.c. They are the + * only system-dependent parameters in MH, and thus by redefining + * their values and reloading the various modules, MH will run + * on any system. + */ + +extern char *components; +extern char *context; +extern char *current; +extern char *defalt; +extern char *digestcomps; +extern char *distcomps; +extern char *draft; +extern char *faceproc; +extern char *fileproc; +extern char *foldprot; +extern char *forwcomps; +extern char *inbox; +extern char *incproc; +extern char *installproc; +extern char *lproc; +extern char *mailproc; +extern char *mh_defaults; +extern char *mh_profile; +extern char *mh_seq; +extern char *mhlformat; +extern char *mhlforward; +extern char *mhlproc; +extern char *moreproc; +extern char *msgprot; +extern char *mshproc; +extern char *nsequence; +extern char *packproc; +extern char *postproc; +extern char *pfolder; +extern char *psequence; +extern char *rcvdistcomps; +extern char *replcomps; +extern char *rmfproc; +extern char *rmmproc; +extern char *sendproc; +extern char *showproc; +extern char *slocalproc; +extern char *sysed; +extern char *usequence; +extern char *version; +extern char *vmhproc; +extern char *whatnowproc; +extern char *whomproc; + +/* */ + +/* global variables -sigh- */ + +extern char ctxflags; +#define CTXMOD 0x01 /* context information modified */ +#define DBITS "\020\01CTXMOD" + +#ifdef OVERHEAD +extern int fd_def; +extern int fd_ctx; +#endif /* OVERHEAD */ + +extern char *invo_name; /* pgm invocation name */ +extern char *mypath; /* user's $HOME */ +extern char *defpath; /* pathname of user's profile */ +extern char *ctxpath; /* pathname of user's context */ + +extern struct node *m_defs; + +/* */ + +/* from the MH subroutine library */ + +char *add (); +void adios (); +void admonish (); +void advise (); +void advertise (); +void ambigsw (); +int atooi (); +char **brkstring (); +void closefds (); +char *concat (); +char *copy (); +char **copyip (); +void cpydata (); +void cpydgst (); +void discard (); +void done (); +int fdcompare (); +int gans (); +char **getans (); +int getanswer (); +char *getcpy (); +void help (); +char *libpath (); +int m_atoi (); +char *m_backup (); +int m_convert (); +int m_delete (); +char *m_draft (); +void m_eomsbr (); +int m_file (); +char *m_find (); +void m_fmsg (); +void m_foil (); +void m_getdefs (); +int m_getfld (); +char *m_getfolder (); +int m_gmprot (); +struct msgs *m_gmsg (); +char *m_maildir (); +char *m_mailpath (); +char *m_name (); +int m_putenv (); +void m_readefs (); +struct msgs *m_remsg (); +void m_replace (); +char *m_scratch (); +char *m_seq (); +int m_seqadd (); +char *m_seqbits (); +int m_seqdel (); +int m_seqflag (); +int m_seqnew (); +void m_setcur (); +void m_setseq (); +void m_setvis (); +void m_sync (); +char *m_tmpfil (); +void m_unknown (); +void m_update (); +int m_whatnow (); +int makedir (); +char *path (); +int peekc (); +int pidwait (); +#define pidXwait(id,cp) pidstatus (pidwait (id, NOTOK), stdout, cp) +int pidstatus (); +void printsw (); +void push (); +char *pwd (); +char *r1bindex (); +int refile (); +int remdir (); +int showfile (); +int smatch (); +char *sprintb(); +int ssequal (); +int stringdex (); +char *trimcpy (); +int type (); +int uleq (); +int unputenv (); +int uprf (); +int vfgets (); + +/* */ + +#include "../h/strings.h" + +/* should be in */ + +#if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) && !defined(__convex__) && !defined(__386BSD__) && !defined(BSD44) +typedef struct _iobuf *FP; +FP popen (); +#else /* SYS5 */ +#define FP FILE* +#endif /* SYS5 */ + + +/* miscellaneous */ + +#if !defined(BSD42) && !defined(hpux) && !defined(ncr) && !defined(_AIX) && !defined(RENAME) +#define rename(f1,f2) (link (f1, f2) != NOTOK ? unlink (f1) : NOTOK) +#endif /* not BSD42 */ + +#define setsig(s,f) if (signal (s, SIG_IGN) != SIG_IGN) \ + (void) signal (s, f) +#define setsigx(i,s,f) if ((i = signal (s, SIG_IGN)) != SIG_IGN) \ + (void) signal (s, f) + +#if defined(sun) && !defined(NFS) +#define NFS +#endif + +#ifdef NFS +#define ruserpass _ruserpass +#endif + +#if (defined(BSD44) || defined(SUN40) || defined(hpux) \ + || defined(_AIX) || defined (sgi)) && !defined(UNISTD) +#define UNISTD +#endif diff --git a/docs/historical/mh-6.8.5/h/mhn.h b/docs/historical/mh-6.8.5/h/mhn.h new file mode 100644 index 0000000..50c3c1c --- /dev/null +++ b/docs/historical/mh-6.8.5/h/mhn.h @@ -0,0 +1,71 @@ +/* mhn.h - definitions for mhn & friends */ +/* @(#)$Id: mhn.h,v 1.3 1993/08/20 15:43:43 jromine Exp $ */ + +#define VRSN_FIELD "MIME-Version" +#define VRSN_VALUE "1.0" + +#define XXX_FIELD_PRF "Content-" + +#define TYPE_FIELD "Content-Type" + +#define ENCODING_FIELD "Content-Transfer-Encoding" + +#define ID_FIELD "Content-ID" + +#define DESCR_FIELD "Content-Description" + +#define MD5_FIELD "Content-MD5" + + +#define isatom(c) \ + (!isspace (c) \ + && !iscntrl (c) \ + && (c) != '(' \ + && (c) != ')' \ + && (c) != '<' \ + && (c) != '>' \ + && (c) != '@' \ + && (c) != ',' \ + && (c) != ';' \ + && (c) != ':' \ + && (c) != '\\' \ + && (c) != '"' \ + && (c) != '.' \ + && (c) != '[' \ + && (c) != ']') + +#define istoken(c) \ + (!isspace (c) \ + && !iscntrl (c) \ + && (c) != '(' \ + && (c) != ')' \ + && (c) != '<' \ + && (c) != '>' \ + && (c) != '@' \ + && (c) != ',' \ + && (c) != ';' \ + && (c) != ':' \ + && (c) != '\\' \ + && (c) != '"' \ + && (c) != '/' \ + && (c) != '[' \ + && (c) != ']' \ + && (c) != '?' \ + && (c) != '=') + +/* MTR: removed now, since likely to go away in the future + && (c) != '.' \ + */ + +/* */ + +#define CPERLIN 76 +#define BPERLIN (CPERLIN / 4) +#define LPERMSG 632 +#define CPERMSG (LPERMSG * CPERLIN) + +/* */ + +#if defined(BSD42) || defined(SOCKETS) +#define FTP +#endif diff --git a/docs/historical/mh-6.8.5/h/mshsbr.h b/docs/historical/mh-6.8.5/h/mshsbr.h new file mode 100644 index 0000000..ba69d33 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/mshsbr.h @@ -0,0 +1,81 @@ +/* mshsbr.h - definitions for msh */ +/* @(#)$Id: mshsbr.h,v 1.8 1995/12/07 21:34:13 jromine Exp $ */ + +struct Cmd { + char line[BUFSIZ]; + char *args[MAXARGS]; + + char *redirect; + + int direction; +#define STDIO 0 /* regular stdoutput */ +#define CRTIO 1 /* create re-direct */ +#define APPIO 2 /* append re-direct */ +#define PIPIO 3 /* pipe re-direct */ + + FILE *stream; +}; +#define NULLCMD ((struct Cmd *) 0) + + +struct Msg { + struct drop m_drop; +#define m_bboard_id m_drop.d_id +#define m_top m_drop.d_size +#define m_start m_drop.d_start +#define m_stop m_drop.d_stop + + char *m_scanl; + + struct tws m_tb; + + short m_flags; +#define MHNCHK 0x0001 /* did nontext check */ +#define MHNYES 0x0002 /* .. and known to be non-text */ + + int m_stats; /* ought to be unsigned (also in mh.h) */ +#define CUR ((unsigned)1 << (FFATTRSLOT + NATTRS)) +#ifdef BPOP +#define VIRTUAL SELECT_EMPTY +#endif /* BPOP */ +}; + +/* */ + + /* FOLDER */ +extern char *fmsh; /* folder instead of file */ +extern int modified; /* command modified folder */ +extern struct msgs *mp; /* used a lot */ +extern struct Msg *Msgs; /* Msgs[0] not used */ + +FILE *msh_ready (); + + + /* COMMAND */ +extern int interactive; /* running from a /dev/tty */ +extern int redirected; /* re-directing output */ +extern FILE *sp; /* original stdout */ + +extern char *cmd_name; /* command being run */ + +extern char myfilter[]; /* path to mhl.forward */ + + + +extern char *BBoard_ID; /* BBoard-ID constant */ + + + /* SIGNALS */ +extern TYPESIG (*istat) (); /* original SIGINT */ +extern TYPESIG (*qstat) (); /* original SIGQUIT */ +extern int interrupted; /* SIGINT detected */ +extern int broken_pipe; /* SIGPIPE detected */ +extern int told_to_quit; /* SIGQUIT detected */ + +#ifdef BSD42 +extern int should_intr; /* signal handler should interrupt call */ +extern jmp_buf sigenv; /* the environment pointer */ +#endif /* BSD42 */ + + +off_t lseek (); diff --git a/docs/historical/mh-6.8.5/h/netdb.h b/docs/historical/mh-6.8.5/h/netdb.h new file mode 100644 index 0000000..7cfff8d --- /dev/null +++ b/docs/historical/mh-6.8.5/h/netdb.h @@ -0,0 +1,70 @@ +/* @(#)$Id: netdb.h,v 2.1 90/04/05 15:06:01 sources Exp $ */ +/* + * Copyright (c) 1980,1983,1988 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that this notice is preserved and that due credit is given + * to the University of California at Berkeley. The name of the University + * may not be used to endorse or promote products derived from this + * software without specific prior written permission. This software + * is provided ``as is'' without express or implied warranty. + * + * @(#)netdb.h 5.9 (Berkeley) 4/5/88 + */ + +/* + * Structures returned by network + * data base library. All addresses + * are supplied in host order, and + * returned in network order (suitable + * for use in system calls). + */ +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses from name server */ +#define h_addr h_addr_list[0] /* address, for backward compatiblity */ +}; + +/* + * Assumption here is that a network number + * fits in 32 bits -- probably a poor one. + */ +struct netent { + char *n_name; /* official name of net */ + char **n_aliases; /* alias list */ + int n_addrtype; /* net address type */ + unsigned long n_net; /* network # */ +}; + +struct servent { + char *s_name; /* official service name */ + char **s_aliases; /* alias list */ + int s_port; /* port # */ + char *s_proto; /* protocol to use */ +}; + +struct protoent { + char *p_name; /* official protocol name */ + char **p_aliases; /* alias list */ + int p_proto; /* protocol # */ +}; + +struct hostent *gethostbyname(), *gethostbyaddr(), *gethostent(); +struct netent *getnetbyname(), *getnetbyaddr(), *getnetent(); +struct servent *getservbyname(), *getservbyport(), *getservent(); +struct protoent *getprotobyname(), *getprotobynumber(), *getprotoent(); + +/* + * Error return codes from gethostbyname() and gethostbyaddr() + * (left in extern int h_errno). + */ + +#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ +#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */ +#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ +#define NO_DATA 4 /* Valid name, no data record of requested type */ +#define NO_ADDRESS NO_DATA /* no address, look for MX record */ diff --git a/docs/historical/mh-6.8.5/h/nntp.h b/docs/historical/mh-6.8.5/h/nntp.h new file mode 100644 index 0000000..3937864 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/nntp.h @@ -0,0 +1,74 @@ +/* @(#)$Id: nntp.h,v 2.1 90/04/05 15:06:18 sources Exp $ */ +/* + * Response codes for NNTP server + * + * @(#)nntp.h 1.7 (Berkeley) 1/11/88 + * + * First digit: + * + * 1xx Informative message + * 2xx Command ok + * 3xx Command ok so far, continue + * 4xx Command was correct, but couldn't be performed + * for some specified reason. + * 5xx Command unimplemented, incorrect, or a + * program error has occured. + * + * Second digit: + * + * x0x Connection, setup, miscellaneous + * x1x Newsgroup selection + * x2x Article selection + * x3x Distribution + * x4x Posting + */ + +#define CHAR_INF '1' +#define CHAR_OK '2' +#define CHAR_CONT '3' +#define CHAR_ERR '4' +#define CHAR_FATAL '5' + +#define INF_HELP 100 /* Help text on way */ +#define INF_DEBUG 199 /* Debug output */ + +#define OK_CANPOST 200 /* Hello; you can post */ +#define OK_NOPOST 201 /* Hello; you can't post */ +#define OK_SLAVE 202 /* Slave status noted */ +#define OK_GOODBYE 205 /* Closing connection */ +#define OK_GROUP 211 /* Group selected */ +#define OK_GROUPS 215 /* Newsgroups follow */ +#define OK_ARTICLE 220 /* Article (head & body) follows */ +#define OK_HEAD 221 /* Head follows */ +#define OK_BODY 222 /* Body follows */ +#define OK_NOTEXT 223 /* No text sent -- stat, next, last */ +#define OK_NEWNEWS 230 /* New articles by message-id follow */ +#define OK_NEWGROUPS 231 /* New newsgroups follow */ +#define OK_XFERED 235 /* Article transferred successfully */ +#define OK_POSTED 240 /* Article posted successfully */ + +#define CONT_XFER 335 /* Continue to send article */ +#define CONT_POST 340 /* Continue to post article */ + +#define ERR_GOODBYE 400 /* Have to hang up for some reason */ +#define ERR_NOGROUP 411 /* No such newsgroup */ +#define ERR_NCING 412 /* Not currently in newsgroup */ +#define ERR_NOCRNT 420 /* No current article selected */ +#define ERR_NONEXT 421 /* No next article in this group */ +#define ERR_NOPREV 422 /* No previous article in this group */ +#define ERR_NOARTIG 423 /* No such article in this group */ +#define ERR_NOART 430 /* No such article at all */ +#define ERR_GOTIT 435 /* Already got that article, don't send */ +#define ERR_XFERFAIL 436 /* Transfer failed */ +#define ERR_XFERRJCT 437 /* Article rejected, don't resend */ +#define ERR_NOPOST 440 /* Posting not allowed */ +#define ERR_POSTFAIL 441 /* Posting failed */ + +#define ERR_COMMAND 500 /* Command not recognized */ +#define ERR_CMDSYN 501 /* Command syntax error */ +#define ERR_ACCESS 502 /* Access to server denied */ +#define ERR_FAULT 503 /* Program fault, command not performed */ + +/* RFC 977 defines this; don't change it. */ + +#define NNTP_STRLEN 512 diff --git a/docs/historical/mh-6.8.5/h/rcvmail.h b/docs/historical/mh-6.8.5/h/rcvmail.h new file mode 100644 index 0000000..de74b26 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/rcvmail.h @@ -0,0 +1,32 @@ +/* rcvmail.h - rcvmail hook definitions */ +/* @(#)$Id: rcvmail.h,v 1.3 1992/12/15 00:20:22 jromine Exp $ */ + +#ifndef MMDFMTS +#include +#include +#include +#include +#include +#include "../mts/sendmail/smail.h" +#else /* MMDFMTS */ +#include "../mts/mmdf/util.h" +#include "../mts/mmdf/mmdf.h" +#endif /* MMDFMTS */ + + +#ifndef MMDFI +#define RCV_MOK 0 +#define RCV_MBX 1 +#else /* MMDFI */ +#define RCV_MOK RP_MOK +#define RCV_MBX RP_MECH +#endif /* MMDFI */ + + +#ifdef NRTC /* sigh */ +#undef RCV_MOK +#undef RCV_MBX + +#define RCV_MOK RP_MOK +#define RCV_MBX RP_MECH +#endif /* NRTC */ diff --git a/docs/historical/mh-6.8.5/h/scansbr.h b/docs/historical/mh-6.8.5/h/scansbr.h new file mode 100644 index 0000000..a324aa8 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/scansbr.h @@ -0,0 +1,30 @@ +/* scansbr.h - definitions for scan () */ +/* $Id: scansbr.h,v 1.7 1992/11/10 17:27:11 jromine Exp $ */ + +extern char *scanl; + +#define SCNENC 2 /* message just fine, but encrypted(!!) */ +#define SCNMSG 1 /* message just fine */ +#define SCNEOF 0 /* empty message */ +#define SCNERR (-1) /* error message */ +#define SCNNUM (-2) /* number out of range */ +#define SCNFAT (-3) /* fatal error */ + + +#ifndef UK +#define FORMAT \ +"%4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\ +%02(mon{date})/%02(mday{date})%<{date} %|*%>\ +%<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%> \ +%{subject}%<{body}<<%{body}>>%>\n" +#else /* UK */ +#define FORMAT \ +"%4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\ +%02(mday{date})/%02(mon{date})%<{date} %|*%>\ +%<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%> \ +%{subject}%<{body}<<%{body}>>%>\n" +#endif /* UK */ + +#define WIDTH 78 + +int scan (); diff --git a/docs/historical/mh-6.8.5/h/strings.h b/docs/historical/mh-6.8.5/h/strings.h new file mode 100644 index 0000000..a2dce6a --- /dev/null +++ b/docs/historical/mh-6.8.5/h/strings.h @@ -0,0 +1,71 @@ +/* strings.h - define standard string functions */ +/* @(#)$Id: strings.h,v 1.20 1995/12/06 23:48:12 jromine Exp $ */ + +#ifndef _STRINGS /* once-only... */ +#define _STRINGS + +#ifdef AUX +#include +#endif + +#ifdef _AIX +#include +#include + +#define bcmp(b1,b2,length) memcmp(b1, b2, length) +#define bcopy(b1,b2,length) (void) memcpy (b2, b1, length) +#define bcpy(b1,b2,length) memcmp (b1, b2, length) +#define bzero(b,length) (void) memset (b, 0, length) + +#else /* _AIX */ + +#ifdef SYS5 +#define index strchr +#define rindex strrchr +#endif /* SYS5 */ + +#if defined(BSD42) || defined(SVR4) +#if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44) +#include +#else +#include +#include +#endif +#else /* not BSD42 || SVR4 */ +char *index (); +char *mktemp (); +char *rindex (); +#ifndef SPRINTFTYPE +#ifndef ncr /* NCR compiler complains about re-declaration */ +char *sprintf (); /* I guess this is the new standard */ +#endif +#else +SPRINTFTYPE sprintf (); +#endif +char *strcat (); +int strcmp (); +char *strcpy (); +int strlen (); +char *strncat (); +int strncmp (); +char *strncpy (); +#endif + +#if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44) +char *getenv (); +char *calloc (), *malloc (), *realloc (); +#endif /* SVR4 */ + +#ifdef SYS5 +#include +#define bcmp(b1,b2,length) memcmp(b1, b2, length) +#define bcopy(b1,b2,length) (void) memcpy (b2, b1, length) +#define bcpy(b1,b2,length) memcmp (b1, b2, length) +#define bzero(b,length) (void) memset (b, 0, length) +#endif /* SYS5 */ +#endif /* _AIX */ +#endif /* not _STRINGS */ + +#if !defined(bcopy) && (defined(__HIGHC__) || __GNUC__ == 2) +#define bcopy(s,d,l) memcpy(d,s,l) +#endif diff --git a/docs/historical/mh-6.8.5/h/vmhsbr.h b/docs/historical/mh-6.8.5/h/vmhsbr.h new file mode 100644 index 0000000..35c1954 --- /dev/null +++ b/docs/historical/mh-6.8.5/h/vmhsbr.h @@ -0,0 +1,34 @@ +/* vmhsbr.h - definitions for the vmh protocol */ + + +#define RC_VRSN 1 + +struct record { + struct rcheader { + char rh_type; /* type of record */ +#define RC_INI 0x01 /* must be greater than OK */ +#define RC_ACK 0x02 +#define RC_ERR 0x03 +#define RC_CMD 0x04 +#define RC_QRY 0x05 +#define RC_TTY 0x06 +#define RC_WIN 0x07 +#define RC_DATA 0x08 +#define RC_EOF 0x09 +#define RC_FIN 0x0a +#define RC_XXX 0x0b + + int rh_len; /* length of data */ + } rc_header; +#define rc_head(rc) (&rc -> rc_header) +#define RHSIZE(rc) (sizeof rc -> rc_header) +#define rc_type rc_header.rh_type +#define rc_len rc_header.rh_len + + char *rc_data; /* extensible array */ +}; +#define initrc(rc) rc -> rc_data = NULL + + +int rcinit (), rcdone (), rc2rc (), str2rc (), peer2rc (), rc2peer (), + str2peer (), fmt2peer (), err2peer (); diff --git a/docs/historical/mh-6.8.5/local/Distfile b/docs/historical/mh-6.8.5/local/Distfile new file mode 100644 index 0000000..596535a --- /dev/null +++ b/docs/historical/mh-6.8.5/local/Distfile @@ -0,0 +1,88 @@ +test: /usr/src/bs/mh-6.6 -> ics + install -v /usr/src/bs/mh-6.6 ; + except_pat \\.o\$ ; + except_pat \\.a\$ ; + except_pat \\.orig\$ ; + except_pat \\.rej\$ ; + except_pat /bk_[^/]*\$ ; + except_pat /RCS\$ ; + except_pat /miscellany\$ ; + except_pat \\~\$ ; + except_pat papers/[^M].*\$ ; + except_pat /x[^/]*\$ ; + except_pat /doc/[^.]*.me\$ ; + except_pat /doc/z[^.]*.man\$ ; + except_pat /uip/z ; +dist: /usr/src/bs/mh-6.6 -> glacier + install -v /usr/src/bs/mh-6.6-dist ; + except_pat /RCS\$ ; + except_pat \\.out\$ ; + except_pat /rdist[^/]*\$ ; + except_pat /[Dd]istfile.*\$ ; + except_pat /papers/.*\\.aux\$ ; + except_pat /papers/.*\\.log\$ ; + except_pat /local\$ ; + except_pat /tags\$ ; + except_pat /version\$ ; + except_pat /amstex.tex\$ ; + except_pat /article.tex\$ ; + except_pat /dcustom.tex\$ ; + except_pat /diss.sty\$ ; + except_pat /sfwmac.tex\$ ; + except_pat /trademark.tex\$ ; +/usr/src/bs/mh-6.6 -> glacier + install -y /usr/src/bs/mh-6.6 ; + except_pat \\.o\$ ; + except_pat \\.a\$ ; + except_pat \\.orig\$ ; + except_pat \\.rej\$ ; + except_pat /RCS\$ ; + except_pat /miscellany\$ ; + except_pat \\~\$ ; + except_pat papers/[^M].*\$ ; + except_pat /x[^/]*\$ ; + except_pat /doc/[^.]*.me\$ ; + except_pat /doc/z[^.]*.man\$ ; + except_pat /uip/z ; +rome: /usr/src/bs/mh-6.6 -> rome + install -y /usr/src/bs/mh-6.6 ; + except_pat \\.o\$ ; + except_pat \\.a\$ ; + except_pat \\.orig\$ ; + except_pat \\.rej\$ ; + except_pat /RCS\$ ; + except_pat /miscellany\$ ; + except_pat \\~\$ ; + except_pat papers/[^M].*\$ ; + except_pat /x[^/]*\$ ; + except_pat /doc/[^.]*.me\$ ; + except_pat /doc/z[^.]*.man\$ ; + except_pat /uip/z ; +ics: /usr/src/bs/mh-6.6 -> ics + install -y /usr/src/bs/mh-6.6 ; + except_pat \\.o\$ ; + except_pat \\.a\$ ; + except_pat \\.orig\$ ; + except_pat \\.rej\$ ; + except_pat /bk_[^/]*\$ ; + except_pat /RCS\$ ; + except_pat /miscellany\$ ; + except_pat \\~\$ ; + except_pat papers/[^M].*\$ ; + except_pat /x[^/]*\$ ; + except_pat /doc/[^.]*.me\$ ; + except_pat /doc/z[^.]*.man\$ ; + except_pat /uip/z ; +#/usr/src/bs/mh-6.6 -> paris +# install -y /usr/src/bs/mh-6.6 ; +# except_pat \\.o\$ ; +# except_pat \\.a\$ ; +# except_pat \\.orig\$ ; +# except_pat \\.rej\$ ; +# except_pat /RCS\$ ; +# except_pat /miscellany\$ ; +# except_pat \\~\$ ; +# except_pat /x[^/]*\$ ; +# except_pat /doc/[^.]*.me\$ ; +# except_pat /doc/z[^.]*.man\$ ; +# except_pat /uip/z ; diff --git a/docs/historical/mh-6.8.5/local/Distfile.nbbc b/docs/historical/mh-6.8.5/local/Distfile.nbbc new file mode 100644 index 0000000..757b87b --- /dev/null +++ b/docs/historical/mh-6.8.5/local/Distfile.nbbc @@ -0,0 +1,16 @@ +FILES = ( /usr/local/nbbc /usr/local/nmsh /usr/local/lib/mh/mtstailor ) + +SUN4 = ( blanche.ics.uci.edu crimee.ics.uci.edu siam.ics.uci.edu + zola.ics.uci.edu paris.ics.uci.edu glacier.ics.uci.edu ) + +SUN3_40 = ( elysees.ics.uci.edu beaver.ics.uci.edu cad.ics.uci.edu + wagram.ics.uci.edu london.ics.uci.edu beanie.ics.uci.edu + cecil.ics.uci.edu harlie.ics.uci.edu commerce.ics.uci.edu + madeleine.ics.uci.edu cadet.ics.uci.edu pompe.ics.uci.edu + europe.ics.uci.edu rome.ics.uci.edu ) + +sun4: ${FILES} -> ( ${SUN4} ) + install ; + +sun3-40: ${FILES} -> ( ${SUN3_40} ) + install ; diff --git a/docs/historical/mh-6.8.5/local/distfile b/docs/historical/mh-6.8.5/local/distfile new file mode 100644 index 0000000..8a4e7f1 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/distfile @@ -0,0 +1,34 @@ +FILES=( ali anno fanno bbc bbl burst comp dist folder folders forw + inc mark mhmail mhpath msgchk msh packf pick prompter + refile repl rmf rmm scan send show next prev sortm + vmh whatnow whom ) + +SUN3_3_0_SYSTEMS_NORMAL=( rome pompe madeleine elysees commerce cad ) +SUN3_3_0_SYSTEMS_LOCAL=( etoile ) + +SUN3_4_0_SYSTEMS=( london harlie europe cecil cadet beaver beanie ) + +SUN4_4_0_SYSTEMS=( crimee siam zola paris glacier ) + +IS_SYSTEMS=( cip1 cip2 cip3 cip4 ) + +${FILES} -> ${IS_SYSTEMS} + install /usr/uci ; + +${FILES} -> ${SUN3_3_0_SYSTEMS_NORMAL} + install /usr/uci ; + +${FILES} -> ${SUN3_3_0_SYSTEMS_LOCAL} + install /usr/local ; + +${FILES} -> ${SUN3_4_0_SYSTEMS} + install /usr/local ; + +/usr/local/lib/libmh.so.66.1 -> ${SUN3_4_0_SYSTEMS} + install /usr/local/lib/libmh.so.66.1; + +${FILES} -> ${SUN4_4_0_SYSTEMS} + install /usr/local ; + +/usr/local/lib/libmh.so.66.1 -> ${SUN4_4_0_SYSTEMS} + install /usr/local/lib/libmh.so.66.1; diff --git a/docs/historical/mh-6.8.5/local/distfile_lib b/docs/historical/mh-6.8.5/local/distfile_lib new file mode 100644 index 0000000..e299243 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/distfile_lib @@ -0,0 +1,28 @@ +FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh + dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx + mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps + forwcomps distcomps digestcomps components scan.size scan.time) + +SUN3_3_0_SYSTEMS_NORMAL=( rome pompe madeleine elysees commerce cad ) +SUN3_3_0_SYSTEMS_LOCAL=( etoile ) + +SUN3_4_0_SYSTEMS_NORMAL=( london harlie europe cecil cadet beaver beanie ) + +SUN4_4_0_SYSTEMS=( crimee siam zola paris glacier ) + +IS_SYSTEMS=( cip1 cip2 cip3 cip4 ) + +${FILES} -> ${IS_SYSTEMS} + install /usr/uci/lib/mh ; + +${FILES} -> ${SUN3_3_0_SYSTEMS_NORMAL} + install /usr/uci/lib/mh ; + +${FILES} -> ${SUN3_3_0_SYSTEMS_LOCAL} + install /usr/local/lib/mh ; + +${FILES} -> ${SUN3_4_0_SYSTEMS_NORMAL} + install /usr/local/lib/mh ; + +${FILES} -> ${SUN4_4_0_SYSTEMS} + install /usr/local/lib/mh ; diff --git a/docs/historical/mh-6.8.5/local/lbl/diffs b/docs/historical/mh-6.8.5/local/lbl/diffs new file mode 100644 index 0000000..414fb54 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/diffs @@ -0,0 +1,1190 @@ +diff -r -w lbl/sbr/formatsbr.c ./sbr/formatsbr.c +1a2,4 +> #ifndef lint +> static char ident[] = "@(#)$Id: formatsbr.c,v 1.16 1992/02/09 07:11:55 jromine Exp $"; +> #endif lint +12a16,18 +> /* */ +> +> +17a24 +> #ifdef LBL +18a26 +> #endif +20c28,30 +< int fmt_norm = AD_NAME; +--- +> static normalize(); +> +> extern int fmt_norm; /* defined in sbr/formatdef.c = AD_NAME */ +24,28c34 +< static +< normalize(cp) +< register char *cp; +< { +< register char *dp; +--- +> long time (); +30,34c36 +< for (dp = cp; *cp; cp++) +< if (*cp != QUOTE) +< *dp++ = *cp; +< else +< switch (*++cp) { +--- +> /* */ +36,50c38 +< case 'b': +< *dp++ = '\b'; +< break; +< case 'f': +< *dp++ = '\f'; +< break; +< case 'n': +< *dp++ = '\n'; +< break; +< case 'r': +< *dp++ = '\r'; +< break; +< case 't': +< *dp++ = '\t'; +< break; +--- +> /* MAJOR HACK: See MHCHANGES for discussion */ +52,68c40,43 +< case '\n': +< break; +< +< case NULL: +< cp--; +< /* fall through */ +< default: +< *dp++ = *cp; +< break; +< } +< +< *dp = NULL; +< } +< +< char * +< new_fs(form, format, def) +< register char *form, *format, *def; +--- +> char *new_fs (form, format, def) +> register char *form, +> *format, +> *def; +89a65 +> +91c67,68 +< } else { +--- +> } +> else { +99a77,109 +> /* */ +> +> static normalize (cp) +> register char *cp; +> { +> register char *dp; +> +> for (dp = cp; *cp; cp++) +> if (*cp != QUOTE) +> *dp++ = *cp; +> else +> switch (*++cp) { +> #define grot(y,z) case y: *dp++ = z; break; +> grot ('b', '\b'); +> grot ('f', '\f'); +> grot ('n', '\n'); +> grot ('r', '\r'); +> grot ('t', '\t'); +> +> case '\n': +> break; +> +> case 0: +> cp--; /* fall */ +> default: +> *dp++ = *cp; +> break; +> } +> +> *dp = 0; +> } +> +> /* */ +104,106c114,117 +< static int +< match(str, sub) +< register char *str, *sub; +--- +> +> static int match (str, sub) +> register char *str, +> *sub; +118,119c129 +< s1 = sub + 1; +< s2 = str; +--- +> s1 = sub + 1; s2 = str; +126a137 +> /* */ +130,135c141,143 +< #define PUTDF(cp, num, wid, fill) {\ +< if (cp + wid < ep) {\ +< if ((i = (num)) < 0)\ +< i = -(num);\ +< if ((c = (wid)) < 0)\ +< c = -c;\ +--- +> #define PUTDF(cp, num, wid, fill) if (cp + wid < ep){\ +> if((i = (num))<0) i = -(num);\ +> if((c = (wid))<0) c = -c;\ +148,152c156,158 +< }} +< #define PUTD(cp, num) {\ +< if (cp < ep) {\ +< if ((i = (num)) == 0)\ +< *cp++ = '0';\ +--- +> } +> #define PUTD(cp, num) if (cp < ep){\ +> if((i = (num))==0) *cp++ = '0';\ +165c171 +< }} +--- +> } +167,168c173 +< char *cp2 = cp;\ +< rjust = 0;\ +--- +> ljust = 0;\ +171c176 +< rjust++;\ +--- +> ljust++;\ +174c179 +< if (rjust) {\ +--- +> if (ljust) {\ +190,193c195 +< else if (c == '\010') {\ +< if (cp > cp2)\ +< --cp;\ +< } else {\ +--- +> else {\ +199c201 +< if (!rjust)\ +--- +> if (!ljust)\ +203d204 +< +205d205 +< char *cp2 = cp;\ +212,215c212 +< else if (c == '\010') {\ +< if (cp > cp2)\ +< --cp;\ +< } else {\ +--- +> else {\ +220c217,218 +< }} +--- +> }\ +> } +222,225d219 +< static char *lmonth[] = { +< "January", "February", "March", "April", "May", "June", +< "July", "August", "September", "October", "November", "December" +< }; +226a221,223 +> static char *lmonth[] = { "January", "February","March", "April", +> "May", "June", "July", "August", +> "September","October", "November","December" }; +227a225,226 +> +> struct format * +245,246c244 +< register int j; +< int rjust; +--- +> int ljust; +251c249 +< for (;;) { +--- +> while (cp < ep) { +258,259c256 +< PUTSF(cp, fmt->f_comp->c_text, fmt->f_width, +< fmt->f_fill); +--- +> PUTSF (cp, fmt->f_comp->c_text, fmt->f_width, fmt->f_fill); +262,269d258 +< case FT_LIT_FORCE: +< sp = fmt->f_text; +< i = strlen(sp); +< ep += i; /* forced lits are `invisible' */ +< +< while (c = *sp++) +< *cp++ = c; +< break; +277,280c266,268 +< +< /* By default we left justify */ +< rjust = 0; +< if ((i = fmt->f_width) < 0) { +--- +> ljust = 0; +> i = fmt->f_width; +> if (i < 0) { +282c270 +< rjust++; +--- +> ljust++; /* XXX should do something with this */ +284,294d271 +< +< if (rjust) { +< j = strlen(sp); +< if (j > i) +< sp += j - i; +< else while (j < i && cp < ep) { +< *cp++ = fmt->f_fill; +< ++j; +< } +< } +< +297d273 +< +320a297 +> +325c302 +< if (str == NULLCP || *str == NULL) { +--- +> if (!(value = (str && *str))) { +332c309 +< if (str != NULLCP && *str != NULL) { +--- +> if (!(value = (str == NULLCP || *str == 0))) { +360c337 +< if (!str || !match(str, fmt->f_text)) { +--- +> if (!(value = (str && match (str, fmt->f_text)))) { +374c351 +< if (!str || !uprf(str, fmt->f_text)) { +--- +> if (!(value = (str && uprf (str, fmt->f_text)))) { +381d357 +< if (str) +383,384d358 +< else +< value = 0; +388c362 +< value = (str != NULLCP && *str != NULL); +--- +> value = (str != NULLCP && *str != 0); +392c366 +< value = (str == NULLCP || *str == NULL); +--- +> value = (str == NULLCP || *str == 0); +419a394,397 +> case FT_LS_GETENV: +> if (!(str = getenv (fmt->f_text))) +> str = ""; +> break; +424,425c402 +< /* Be careful since str can point into buffer */ +< bcopy(str, buffer, strlen(str) + 1); +--- +> (void) strcpy(buffer, str); +427,428d403 +< +< /* Eat leading whitespace */ +431,438c406 +< +< /* Trim trailing whitespace */ +< xp = str + strlen(str) - 1; +< while (xp > str && isspace(*xp)) +< *xp-- = '\0'; +< +< /* By default we left justify */ +< rjust = 0; +--- +> ljust = 0; +441c409 +< rjust++; +--- +> ljust++; +444,446c412 +< /* If necessary, limit width and/or justify */ +< if (i > 0 && (j = strlen(str)) > i) { +< if (!rjust) +--- +> if (!ljust && i > 0 && strlen(str) > i) +448,449c414,419 +< else +< str += j - i; +--- +> xp = str; +> xp += strlen(str) - 1; +> while (xp > str && isspace(*xp)) +> *xp-- = '\0'; +> if (ljust && i > 0 && strlen(str) > i) +> str += strlen(str) - i; +451d420 +< } +458,459c427 +< value = (comp = fmt->f_comp)->c_text ? +< atoi(comp->c_text) : 0; +--- +> value = (comp = fmt->f_comp)->c_text ? atoi(comp->c_text) : 0; +484a453,458 +> case FT_LV_MODULO_L: +> if (fmt->f_value) +> value = value % fmt->f_value; +> else +> value = 0; +> break; +517,518c491 +< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & +< (TW_SEXP | TW_SIMP))) +--- +> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP))) +523,524c496 +< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & +< (TW_SEXP | TW_SIMP))) +--- +> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP))) +529,530c501 +< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & +< (TW_SEXP | TW_SIMP))) +--- +> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP))) +550,551c521 +< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & +< (TW_SEXP | TW_SIMP))) +--- +> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP))) +555,556c525 +< value = 1; +< break; +--- +> value = 1; break; +558,559c527 +< value = 0; +< break; +--- +> value = 0; break; +561,562c529 +< value = -1; +< break; +--- +> value = -1; break; +565,566c532 +< if ((fmt->f_comp->c_tws->tw_flags & TW_SZONE) == +< TW_SZEXP) +--- +> if ((fmt->f_comp->c_tws->tw_flags & TW_SZONE) == TW_SZEXP) +610a577 +> case FT_LS_ADDR: +614,615c581,587 +< #else +< mn = fmt->f_comp->c_mn; +--- +> #else not BERK +> if ((mn = fmt -> f_comp -> c_mn) == &fmt_mnull) { +> str = fmt -> f_comp -> c_text; +> break; +> } +> if (fmt -> f_type == FT_LS_ADDR) +> goto unfriendly; +616a589,604 +> if ((str = mn -> m_note)) { +> (void) strcpy (buffer, str); +> str = buffer; +> if (*str == '(') +> str++; +> sp = str + strlen(str) - 1; +> if (*sp == ')') { +> *sp-- = '\0'; +> while (sp >= str) +> if (*sp == ' ') +> *sp-- = '\0'; +> else +> break; +> } +> } else { +> unfriendly: ; +618d605 +< +632c619,620 +< } else +--- +> } +> else +635a624 +> } +661,662c650 +< bzero((char *)comp->c_tws, +< sizeof(*comp->c_tws)); +--- +> bzero ((char *) comp -> c_tws, sizeof *comp -> c_tws); +668c656 +< /* custom address list formatting hook */ +--- +> /* hook for custom address list formatting (see replsbr.c) */ +673,678c661,665 +< /* +< * Output the str register as an address component, +< * splitting it into multiple lines if necessary. +< * The value reg. contains the max line length. The +< * lit. field may contain a string to prepend to the +< * result (e.g., "To: ") +--- +> /* output the str register as an address component, +> * splitting it into multiple lines if necessary. The +> * value reg. contains the max line length. The lit. +> * field may contain a string to prepend to the result +> * (e.g., "To: ") +693,696c680,681 +< /* +< * Try to break at a comma; failing +< * that, break at a space, failing +< * that, just split the line. +--- +> /* try to break at a comma; failing that, break at a +> * space, failing that, just split the line. +698,699c683 +< lastb = 0; +< sp = lp + wid; +--- +> lastb = 0; sp = lp + wid; +729c713,715 +< } else +--- +> } else { +> while (getname("")) /* XXX */ +> ; +730a717 +> } +735,737c722,724 +< * If there's no component, we say true. Otherwise +< * we say "true" only if we can parse the address and +< * it matches one of our addresses. +--- +> * if there's no component, we say true. Otherwise we +> * say "true" only if we can parse the address and it +> * matches one of our addresses. +748,749c735 +< (mn = getm(sp, NULLCP, 0, +< AD_NAME, NULLCP))) +--- +> (mn = getm (sp, NULLCP, 0, AD_NAME, NULLCP))) +751a738,739 +> while (getname("")) /* XXX */ +> ; +758,762c746,749 +< /* +< * If we're working on a folder (as opposed to a +< * file), add the current msg to sequence given in +< * literal field. Don't disturb string or value +< * registers. +--- +> #ifdef LBL +> /* If we're working on a folder (as opposed to a file), add the +> * current msg to sequence given in literal field. Don't +> * disturb string or value registers. +765,766c752,753 +< (void) m_seqadd(fmt_current_folder, +< fmt->f_text, dat[0], -1); +--- +> (void)m_seqadd(fmt_current_folder, fmt->f_text, dat[0], -1); +> #endif +771c758,759 +< finished: +--- +> #ifndef JLR +> finished:; +774,775c762,774 +< *cp = NULL; +< return (value); +--- +> *cp = 0; +> return ((struct format *)0); +> #else /* JLR */ +> if (cp[-1] != '\n') +> *cp++ = '\n'; +> while (fmt->f_type != FT_DONE) +> fmt++; +> +> finished:; +> *cp = '\0'; +> return (fmt -> f_value ? ++fmt : (struct format *)0); +> +> #endif /* JLR */ +diff -r -w lbl/sbr/m_gmsg.c ./sbr/m_gmsg.c +1a2,4 +> #ifndef lint +> static char ident[] = "@(#)$Id: m_gmsg.c,v 2.8 1992/02/11 21:32:04 jromine Exp $"; +> #endif lint +3a7 +> #include "../h/local.h" +5,16d8 +< #include +< #include +< #include +< #ifndef BSD42 +< #ifndef SYS5 +< #include +< #else SYS5 +< #include +< #endif SYS5 +< #else BSD42 +< #include +< #endif BSD42 +25,27c17 +< static int m_getatr(), m_setatr(); +< +< static int len; +--- +> static int len=0; +29a20,21 +> static m_getatr(); +> static int m_setatr(); +32,33c24 +< struct msgs * +< m_gmsg(name) +--- +> struct msgs *m_gmsg (name) +48a40,43 +> #ifdef SYS5DIR +> register struct dirent *dp; +> DIR * dd; +> #else SYS5DIR +50a46 +> #endif SYS5DIR +59c55 +< mp = (struct msgs *) malloc (MSIZE (mp, 0, 0)); +--- +> mp = (struct msgs *) malloc (MHSIZE (mp, 0, 0)); +183c179 +< realloc ((char *) mp, MSIZE (mp, mp->lowoff, mp->hghoff)); +--- +> realloc ((char *) mp, MHSIZE (mp, mp -> lowoff, mp -> hghoff)); +191c187 +< calloc ((unsigned) 1, MSIZEX (mp, mp->lowmsg, mp->hghmsg)); +--- +> calloc ((unsigned) 1, MHSIZEX (mp, mp -> lowmsg, mp -> hghmsg)); +195c191 +< if (mp->msgstats < 0) +--- +> if (mp -> msgstats < (int *)0) /* non portable */ +207,208c203 +< static int +< m_getatr(mp) +--- +> static m_getatr (mp) +219c214 +< field[BUFSIZ]; +--- +> field[BUFSIZ * 2]; +225,226c220,221 +< mp->msgattrs[0] = getcpy (current); +< mp->msgattrs[1] = NULL; +--- +> mp -> msgattrs[i = 0] = getcpy (current); +> mp -> msgattrs[++i] = NULL; +237,248d231 +< case FLDPLUS: +< /* +< * sequence was too big for buffer: back up +< * to a word break. +< */ +< for (cp = &field[sizeof(field)-2]; !isspace(*cp); --cp) +< ; +< if (i = cp - &field[sizeof(field)-2]) { +< *cp = 0; +< fseek(fp, i, 1); +< } +< /*FALL THROUGH*/ +250,252d232 +< (void) m_setatr (mp, name, field); +< continue; +< +254c234,235 +< (void) m_setatr (mp, name, field); +--- +> (void) m_setatr (mp, getcpy (name), trimcpy (field)); +> if (state == FLDEOF) +255a237 +> continue; +286c268 +< if ((i = m_setatr (mp, cp, np->n_field)) != NOTOK) +--- +> if ((i = m_setatr (mp, cp, getcpy (np -> n_field))) != NOTOK) +288d269 +< free(cp); +294,295c275 +< static int +< m_setatr(mp, name, field) +--- +> static int m_setatr (mp, name, field) +297c277,278 +< register char *name, *field; +--- +> register char *name, +> *field; +299,300c280,286 +< register int bits, slot, first, last; +< register char *cp; +--- +> int bits, +> hack; +> register int i, +> j, +> k; +> register char *cp, +> **ap; +302,305c288,290 +< if (strcmp (current, name) == 0) { +< mp->curmsg = atoi(field); +< return (0); +< } +--- +> bits = FFATTRSLOT; +> hack = strcmp (current, name) == 0;/* hack... */ +> /* if we're going to use UNSEEN, it should be set here! */ +307,308c292,295 +< for (slot = 0; mp->msgattrs[slot]; slot++) +< if (strcmp(mp->msgattrs[slot], name) == 0) +--- +> for (i = 0; mp -> msgattrs[i]; i++) +> if (strcmp (mp -> msgattrs[i], name) == 0) { +> for (j = mp -> lowmsg; j <= mp -> hghmsg; j++) +> mp -> msgstats[j] &= ~(1 << (bits + i)); +310,311c297,300 +< +< if (slot >= NATTRS) +--- +> } +> if (i >= NATTRS) { +> free (name); +> free (field); +312a302 +> } +314,316c304,306 +< if (mp->msgattrs[slot] == NULL) { +< mp->msgattrs[slot] = getcpy(name); +< mp->msgattrs[slot + 1] = NULL; +--- +> if (mp -> msgattrs[i] == NULL) { +> mp -> msgattrs[i] = name; +> mp -> msgattrs[i + 1] = NULL; +317a308,309 +> else +> free (name); +319,338c311,328 +< bits = 1 << (FFATTRSLOT + slot); +< +< for (cp = field; *cp; ) { +< while (isspace(*cp)) +< ++cp; +< if (! isdigit(*cp)) +< return (NOTOK); +< for (first = 0; isdigit(*cp); ++cp) +< first = (first * 10) + (*cp - '0'); +< if (first == 0) +< return (NOTOK); +< if (*cp++ == '-') { +< /* have a range of msgs */ +< for (last = 0; isdigit(*cp); ++cp) +< last = (last * 10) + (*cp - '0'); +< if (last < first) { +< advise(NULLCP, +< "seq %s msg range bad: first (%d) > last (%d)", +< name, first, last); +< continue; +--- +> for (ap = brkstring (field, " ", "\n"); +> *ap; +> ap++) { +> if (cp = index (*ap, '-')) +> *cp++ = NULL; +> if ((j = m_atoi (*ap)) > 0) { +> #ifdef notdef +> if (hack && j >= mp -> lowmsg && j <= mp -> hghmsg +> && (mp -> msgstats[j] & EXISTS)) +> mp -> curmsg = j; +> #else not notdef +> if (hack) +> mp -> curmsg = j; +> #endif not notdef +> for (k = cp ? m_atoi (cp) : j; j <= k; j++) +> if (j >= mp -> lowmsg && j <= mp -> hghmsg +> && (mp -> msgstats[j] & EXISTS)) +> mp -> msgstats[j] |= 1 << (bits + i); +340,349d329 +< if (last < mp->lowmsg) +< continue; +< if (last > mp->hghmsg) +< last = mp->hghmsg; +< if (first < mp->lowmsg) +< first = mp->lowmsg; +< } else { +< if (first < mp->lowmsg) +< continue; +< last = first; +351,355c331,333 +< for ( ; first <= last; ++first) +< if (mp->msgstats[first] & EXISTS) +< mp->msgstats[first] |= bits; +< } +< return slot; +--- +> free (field); +> +> return i; +diff -r -w lbl/sbr/m_seq.c ./sbr/m_seq.c +1a2,4 +> #ifndef lint +> static char ident[] = "@(#)$Id: m_seq.c,v 1.7 1991/02/14 14:44:38 mh Exp $"; +> #endif lint +6,7c9 +< static char *buffer; +< static int bufsize = BUFSIZ; +--- +> /* new version from VJ 2/90 - faster? */ +15,16c17,19 +< register int i, j, linlen; +< register char *bp, *ep; +--- +> register int i, j; +> register char *bp; +> static char buffer[BUFSIZ*2]; /* for big sequences */ +18,21d20 +< if (buffer == 0) { +< if ((buffer = malloc(bufsize)) == NULL) +< adios (NULLCP, "unable to allocate seq str storage"); +< } +22a22,23 +> /* assume this is in sync with msgstats["cur"] */ +> /* see m_seqadd() for details */ +38,39d38 +< ep = bp + bufsize - 16; +< linlen = strlen(cp) + 2; +41,42d39 +< register char *oldbp; +< +46,58c43 +< oldbp = bp; +< if (bp > buffer) { +< if (bp >= ep) { +< int oldoff = bp - buffer; +< bufsize <<= 1; +< if ((buffer = realloc(buffer, bufsize)) == NULL) +< adios (NULLCP, "unable to allocate seq str storage"); +< oldbp = bp = buffer + oldoff; +< ep = bp + bufsize - 16; +< } +< if (linlen >= 72) { +< linlen = 0; +< *bp++ = '\n'; +--- +> if (bp > buffer) +60,62c45 +< } +< *bp++ = ' '; +< } +--- +> +73d55 +< linlen += bp - oldbp; +diff -r -w lbl/zotnet/tws/dtimep.lex ./zotnet/tws/dtimep.lex +1,11d0 +< %{ +< #ifndef lint +< static char rcsid[] = +< #ifdef FLEX_SCANNER +< "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (flex generated scanner)"; +< #else +< "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (lex generated scanner)"; +< #endif +< #endif +< %} +< /* +16,17d4 +< */ +< +48a36,38 +> #ifndef lint +> static char ident[] = "@(#)$Id: dtimep.lex,v 2.11 1992/02/10 20:32:29 jromine Exp jromine $"; +> #endif +49a40 +> #include "../h/strings.h" +50a42,45 +> #include +> #ifndef SYS5 +> #include +> #endif not SYS5 +51a47,52 +> #ifdef SYS5 +> extern int daylight; +> extern long timezone; +> extern char *tzname[]; +> #endif SYS5 +> +55c56,57 +< * American style: MM/DD/YY. +--- +> * American style: MM/DD/YY. Of course, these are all non-RFC822 +> * compliant. +121c123,126 +< #define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i) +--- +> #define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i) +> #define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0')) +> #define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \ +> (cp[2] - '0'))*10 + (cp[3] - '0')) +128,131c133,138 +< #ifdef FLEX_SCANNER +< /* We get passed a string and return a pointer to a static tws struct */ +< #undef YY_DECL +< #define YY_DECL struct tws *dparsetime(str) char *str; +--- +> #ifdef DSTXXX +> #ifndef BSD42 +> #include +> #else BSD42 +> #include +> #endif BSD42 +133,148c140,143 +< /* We assume that we're never passed more than max_size characters */ +< #undef YY_INPUT +< #define YY_INPUT(buf,result,max_size) \ +< if (gstr) { \ +< register char *xp; \ +< xp = gstr; \ +< while (isspace(*xp)) \ +< xp++; \ +< gstr = xp; \ +< while (*xp != '\0') \ +< ++xp; \ +< result = xp - gstr; \ +< bcopy(gstr, buf, result); \ +< gstr = 0; \ +< } else \ +< result = YY_NULL; +--- +> static zonehack (tw) +> register struct tws *tw; +> { +> register struct tm *tm; +150,152c145,146 +< /* Date strings aren't usually very long */ +< #undef YY_READ_BUF_SIZE +< #define YY_READ_BUF_SIZE 128 +--- +> if (twclock (tw) == -1L) +> return; +154,156c148,168 +< /* Use mh error reporting routine */ +< #undef YY_FATAL_ERROR +< #define YY_FATAL_ERROR(s) adios("dparsetime()", s); +--- +> tm = localtime (&tw -> tw_clock); +> if (tm -> tm_isdst) { +> tw -> tw_flags |= TW_DST; +> tw -> tw_zone -= 60; +> } +> } +> #endif DSTXXX +> %} +> %% +> %{ +> struct tws *dparsetime (str) +> char *str; +> { +> register int i; +> static struct tws tw; +> register char *cp; +> register int gotdate = 0; +> #ifndef SYS5 +> struct timeb tb; +> #endif not SYS5 +> long tclock; +158,160c170 +< /* We need a pointer to the matched text we can modify */ +< #undef YY_USER_ACTION +< #define YY_USER_ACTION cp = yytext +--- +> start_cond = 0; +162,163c172,173 +< /* Used to initialize */ +< static struct tws ztw = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +--- +> /* Zero out the struct. */ +> bzero( (char *) &tw, sizeof tw); +165,167c175,182 +< /* Global for use by YY_INPUT() macro */ +< static char *gstr; +< #endif +--- +> /* Set default time zone. */ +> #ifndef SYS5 +> ftime( &tb ); +> tw.tw_zone = -tb.timezone; +> #else SYS5 +> tzset( ); +> tw.tw_zone = -(timezone / 60); +> #endif SYS5 +169c184,187 +< %} +--- +> while (isspace(*str)) +> str++; +> while ( 1 ) +> switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) { +171,175c189,203 +< %% +< register int i, gotdate; +< register char *cp; +< static struct tws tw; +< static void zonehack(); +--- +> case -1: +> if (!gotdate || tw.tw_year == 0) +> return (struct tws *)0; +> /* fall through */ +> case 0: +> if ( tw.tw_year == 0 ) { +> /* Set default year. */ +> time (&tclock); +> tw.tw_year = localtime(&tclock)->tm_year + 1900; +> } +> else if (tw.tw_year < 100) { +> /* assume no 2-digit years > 1999 */ +> tw.tw_year += 1900; +> } +> return &tw; +177,182c205 +< BEGIN(INITIAL); +< yy_init = 1; +< tw = ztw; +< gstr = str; +< gotdate = 0; +< +--- +> %} +188,189c211 +< +< {D}"/"{D}"/"(19)?[0-9][0-9]{w} { +--- +> {D}(("-"{D}"-")|("/"{D}"/")){D}?{d}{d}{w} { +192c214 +< tw.tw_mday = CVT2; +--- +> tw.tw_mday = CVT1OR2; +194c216 +< tw.tw_mon = CVT2 - 1; +--- +> tw.tw_mon = CVT1OR2 - 1; +197c219 +< tw.tw_mon = CVT2 - 1; +--- +> tw.tw_mon = CVT1OR2 - 1; +199c221 +< tw.tw_mday = CVT2; +--- +> tw.tw_mday = CVT1OR2; +204c226,236 +< tw.tw_year = i % 100; +--- +> tw.tw_year = i; +> gotdate++; /* XXX */ +> } +> {D}("/"|"-"){D}{w} { +> if (europeandate) { +> tw.tw_mday = CVT1OR2; cp++; +> tw.tw_mon = CVT1OR2 - 1; +> } else { +> tw.tw_mon = CVT1OR2 - 1; cp++; +> tw.tw_mday = CVT1OR2; +> } +207,208c239,240 +< {D}{w}(-)?{w}{MONTH}{w}(-)?{w}(19)?{D}{w}(\,{w}|at{W})? { +< tw.tw_mday = CVT2; +--- +> {D}{w}(-)?{w}{MONTH}{w}(-)?{w}{D}?{d}{d}({W}at)?{w} { +> tw.tw_mday = CVT1OR2; +214c246 +< tw.tw_year = i % 100; +--- +> tw.tw_year = i; +216c248,254 +< {MONTH}{W}{D}","{W}(19)?{D}{w} { +--- +> {D}"-"?{MONTH}({W}at)?{w} { +> tw.tw_mday = CVT1OR2; +> while ( ! isalpha( *cp++ ) ) +> ; +> SETMONTH; +> } +> {MONTH}{W}{D}","{W}{D}?{d}{d}{w} { +219c257 +< tw.tw_mday = CVT2; +--- +> tw.tw_mday = CVT1OR2; +223c261 +< tw.tw_year = i % 100; +--- +> tw.tw_year = i; +225d262 +< +229c266 +< tw.tw_mday = CVT2; +--- +> tw.tw_mday = CVT1OR2; +231a269,275 +> {D}:{D}:{D}{W}19[6-9]{d} { /* hack: ctime w/o TZ */ +> tw.tw_hour = CVT1OR2; cp++; +> tw.tw_min = CVT1OR2; cp++; +> tw.tw_sec = CVT1OR2; +> SKIPD; +> tw.tw_year = CVT4; cp+=4; +> } +233,235c277,279 +< tw.tw_hour = CVT2; cp++; +< tw.tw_min = CVT2; cp++; +< tw.tw_sec = CVT2; +--- +> tw.tw_hour = CVT1OR2; cp++; +> tw.tw_min = CVT1OR2; cp++; +> tw.tw_sec = CVT1OR2; +239,240c283,284 +< tw.tw_hour = CVT2; cp++; +< tw.tw_min = CVT2; +--- +> tw.tw_hour = CVT1OR2; cp++; +> tw.tw_min = CVT1OR2; +244c288 +< tw.tw_hour = CVT2; cp++; +--- +> tw.tw_hour = CVT1OR2; cp++; +247c291 +< tw.tw_min = CVT2; +--- +> tw.tw_min = CVT1OR2; +249a294,301 +> {D}:{D}:{D}{w}am{w} { +> tw.tw_hour = CVT1OR2; cp++; +> if (tw.tw_hour == 12) +> tw.tw_hour = 0; +> tw.tw_min = CVT1OR2; cp++; +> tw.tw_sec = CVT1OR2; +> BEGIN Z; +> } +251c303 +< tw.tw_hour = CVT2; cp++; +--- +> tw.tw_hour = CVT1OR2; cp++; +254c306 +< tw.tw_min = CVT2; +--- +> tw.tw_min = CVT1OR2; +256a309,316 +> {D}:{D}:{D}{w}pm{w} { +> tw.tw_hour = CVT1OR2; cp++; +> if (tw.tw_hour != 12) +> tw.tw_hour += 12; +> tw.tw_min = CVT1OR2; cp++; +> tw.tw_sec = CVT1OR2; +> BEGIN Z; +> } +258,260c318,320 +< tw.tw_hour = CVT2; +< tw.tw_min = CVT2; +< tw.tw_sec = CVT2; +--- +> tw.tw_hour = CVT2; cp+=2; +> tw.tw_min = CVT2; cp+=2; +> tw.tw_sec = CVT2; cp+=2; +267,268c327 +< * and minutes. This rule must come +< * the 4 digit hour and minute rule. +--- +> * and minutes. +270,271c329 +< cp += 2; +< tw.tw_year = CVT2; +--- +> tw.tw_year = CVT4; cp+=4; +274,275c332,338 +< tw.tw_hour = CVT2; +< tw.tw_min = CVT2; +--- +> if (tw.tw_hour || tw.tw_min +> || tw.tw_sec) { +> tw.tw_year = CVT4; cp+=4; +> tw.tw_zone = 0; +> } else { +> tw.tw_hour = CVT2; cp+=2; +> tw.tw_min = CVT2; cp+=2; +277a341 +> } +315a380 +> EXPZONE; +320d384 +< EXPZONE; +327a392 +> EXPZONE; +332d396 +< EXPZONE; +334c398,401 +< +--- +> {W}{d}{d}{d}{d} { +> SKIPD; +> tw.tw_year = CVT4; cp+=4; +> } +337,349d403 +< +< <> return(&tw); +< +< . { +< /* +< * We jammed; it's an error if we +< * didn't parse anything. +< */ +< if (!gotdate || tw.tw_year == 0) +< return(0); +< return(&tw); +< } +< +351,375d404 +< +< #ifdef DSTXXX +< #include +< #ifndef BSD42 +< #include +< #else BSD42 +< #include +< #endif BSD42 +< +< static void +< zonehack(tw) +< register struct tws *tw; +< { +< register struct tm *tm; +< +< if (twclock (tw) == -1L) +< return; +< +< tm = localtime (&tw -> tw_clock); +< if (tm -> tm_isdst) { +< tw -> tw_flags |= TW_DST; +< tw -> tw_zone -= 60; +< } +< } +< #endif DSTXXX diff --git a/docs/historical/mh-6.8.5/local/lbl/files b/docs/historical/mh-6.8.5/local/lbl/files new file mode 100644 index 0000000..c53661d --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/files @@ -0,0 +1,13 @@ +./sbr/formatsbr.c +./sbr/trmsbr.c +./sbr/tags +./sbr/t.c +./sbr/m_gmsg.c +./sbr/m_seq.c +./uip/version.c +./uip/m_getfld.c +./zotnet/tws/dtimep.c +./zotnet/tws/test.input +./zotnet/tws/dtest +./zotnet/tws/dtimep.lex +./zotnet/tws.h diff --git a/docs/historical/mh-6.8.5/local/lbl/sbr/formatsbr.c b/docs/historical/mh-6.8.5/local/lbl/sbr/formatsbr.c new file mode 100644 index 0000000..6964a9e --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/sbr/formatsbr.c @@ -0,0 +1,776 @@ +/* formatsbr.c - format string interpretation */ + +#include "../h/mh.h" +#include "../h/addrsbr.h" +#include "../h/formatsbr.h" +#include "../zotnet/tws.h" +#include "../h/fmtcompile.h" +#include +#include +#include +#include + +#define NFMTS MAXARGS +#define QUOTE '\\' + +static char *formats = 0; +extern char *formataddr(); /* hook for custom address formatting */ +struct msgs *fmt_current_folder;/* current folder (set by main program) */ + +int fmt_norm = AD_NAME; +struct mailname fmt_mnull; + + +static +normalize(cp) + register char *cp; +{ + register char *dp; + + for (dp = cp; *cp; cp++) + if (*cp != QUOTE) + *dp++ = *cp; + else + switch (*++cp) { + + case 'b': + *dp++ = '\b'; + break; + case 'f': + *dp++ = '\f'; + break; + case 'n': + *dp++ = '\n'; + break; + case 'r': + *dp++ = '\r'; + break; + case 't': + *dp++ = '\t'; + break; + + case '\n': + break; + + case NULL: + cp--; + /* fall through */ + default: + *dp++ = *cp; + break; + } + + *dp = NULL; +} + +char * +new_fs(form, format, def) + register char *form, *format, *def; +{ + struct stat st; + register FILE *fp; + + if (formats) + free(formats); + + if (form) { + if ((fp = fopen(libpath(form), "r")) == NULL) + adios(form, "unable to open format file"); + + if (fstat(fileno(fp), &st) == NOTOK) + adios(form, "unable to stat format file"); + + if ((formats = malloc((unsigned) st.st_size + 1)) == NULLCP) + adios(form, "unable to allocate space for format"); + + if (read(fileno(fp), formats, st.st_size) != st.st_size) + adios(form, "error reading format file"); + + formats[st.st_size] = '\0'; + (void) fclose(fp); + } else { + formats = getcpy(format ? format : def); + } + + normalize(formats); + + return formats; +} + +/* + * test if string "sub" appears anywhere in string "str" + * (case insensitive). + */ +static int +match(str, sub) + register char *str, *sub; +{ + register int c1; + register int c2; + register char *s1; + register char *s2; + + while (c1 = *sub) { + while ((c2 = *str++) && (c1 | 040) != (c2 | 040)) + ; + if (!c2) + return 0; + s1 = sub + 1; + s2 = str; + while ((c1 = *s1++) && (c1 | 040) == (*s2++ | 040)) + ; + if (!c1) + return 1; + } + return 1; +} + +/* macros to format data */ + +#define PUTDF(cp, num, wid, fill) {\ + if (cp + wid < ep) {\ + if ((i = (num)) < 0)\ + i = -(num);\ + if ((c = (wid)) < 0)\ + c = -c;\ + sp = cp + c;\ + do {\ + *--sp = (i % 10) + '0';\ + i /= 10;\ + } while (i > 0 && sp > cp);\ + if (i > 0)\ + *sp = '?';\ + else if ((num) < 0 && sp > cp)\ + *--sp = '-';\ + while (sp > cp)\ + *--sp = fill;\ + cp += c;\ + }} +#define PUTD(cp, num) {\ + if (cp < ep) {\ + if ((i = (num)) == 0)\ + *cp++ = '0';\ + else {\ + if ((i = (num)) < 0) \ + *cp++ = '-', i = -(num);\ + c = 10;\ + while (c <= i) \ + c *= 10;\ + while (cp < ep && c > 1) {\ + c /= 10;\ + *cp++ = (i / c) + '0';\ + i %= c;\ + }\ + }\ + }} +#define PUTSF(cp, str, wid, fill) {\ + char *cp2 = cp;\ + rjust = 0;\ + if ((i = (wid)) < 0) {\ + i = -i;\ + rjust++;\ + }\ + if (sp = (str)) {\ + if (rjust) {\ + c = strlen(sp);\ + if (c > i)\ + sp += c - i;\ + else {\ + while (--i >= c && cp < ep)\ + *cp++ = fill;\ + i++;\ + }\ + } else {\ + while ((c = *sp) && c <= 32)\ + sp++;\ + }\ + while ((c = *sp++) && --i >= 0 && cp < ep)\ + if (c > 32) \ + *cp++ = c;\ + else if (c == '\010') {\ + if (cp > cp2)\ + --cp;\ + } else {\ + while ((c = *sp) && c <= 32)\ + sp++;\ + *cp++ = ' ';\ + }\ + }\ + if (!rjust)\ + while (--i >= 0 && cp < ep)\ + *cp++ = fill;\ + } + +#define PUTS(cp, str) {\ + char *cp2 = cp;\ + if (sp = (str)) {\ + while ((c = *sp) && c <= 32)\ + sp++;\ + while ((c = *sp++) && cp < ep)\ + if (c > 32) \ + *cp++ = c;\ + else if (c == '\010') {\ + if (cp > cp2)\ + --cp;\ + } else {\ + while ((c = *sp) && c <= 32)\ + sp++;\ + *cp++ = ' ';\ + }\ + }} + +static char *lmonth[] = { + "January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December" +}; + + +fmtscan(format, scanl, width, dat) + struct format *format; + char *scanl; + int width; + int dat[]; +{ + register char *cp = scanl; + register char *ep = scanl + width - 1; + register struct format *fmt = format; + register char *str = NULLCP; + register int value = 0; + register char *sp; + register int i; + register int c; + register struct comp *comp; + register struct tws *tws; + register struct mailname *mn; + register int j; + int rjust; + long l; + char *savestr; + char buffer[BUFSIZ]; + + for (;;) { + switch (fmt->f_type) { + + case FT_COMP: + PUTS(cp, fmt->f_comp->c_text); + break; + case FT_COMPF: + PUTSF(cp, fmt->f_comp->c_text, fmt->f_width, + fmt->f_fill); + break; + + case FT_LIT_FORCE: + sp = fmt->f_text; + i = strlen(sp); + ep += i; /* forced lits are `invisible' */ + + while (c = *sp++) + *cp++ = c; + break; + case FT_LIT: + sp = fmt->f_text; + while ((c = *sp++) && cp < ep) + *cp++ = c; + break; + case FT_LITF: + sp = fmt->f_text; + + /* By default we left justify */ + rjust = 0; + if ((i = fmt->f_width) < 0) { + i = -i; + rjust++; + } + + if (rjust) { + j = strlen(sp); + if (j > i) + sp += j - i; + else while (j < i && cp < ep) { + *cp++ = fmt->f_fill; + ++j; + } + } + + while ((c = *sp++) && --i >= 0 && cp < ep) + *cp++ = c; + + while (--i >= 0 && cp < ep) + *cp++ = fmt->f_fill; + break; + + case FT_STR: + PUTS(cp, str); + break; + case FT_STRF: + PUTSF(cp, str, fmt->f_width, fmt->f_fill); + break; + case FT_STRFW: + adios(NULLCP, "internal error (FT_STRFW)"); + + case FT_NUM: + PUTD(cp, value); + break; + case FT_NUMF: + PUTDF(cp, value, fmt->f_width, fmt->f_fill); + break; + + case FT_CHAR: + *cp++ = fmt->f_char; + break; + case FT_DONE: + goto finished; + + case FT_IF_S: + if (str == NULLCP || *str == NULL) { + fmt += fmt->f_skip; + continue; + } + break; + + case FT_IF_S_NULL: + if (str != NULLCP && *str != NULL) { + fmt += fmt->f_skip; + continue; + } + break; + + case FT_IF_V_EQ: + if (value != fmt->f_value) { + fmt += fmt->f_skip; + continue; + } + break; + + case FT_IF_V_NE: + if (value == fmt->f_value) { + fmt += fmt->f_skip; + continue; + } + break; + + case FT_IF_V_GT: + if (value <= fmt->f_value) { + fmt += fmt->f_skip; + continue; + } + break; + + case FT_IF_MATCH: + if (!str || !match(str, fmt->f_text)) { + fmt += fmt->f_skip; + continue; + } + break; + + case FT_V_MATCH: + if (str) + value = match(str, fmt->f_text); + else + value = 0; + break; + + case FT_IF_AMATCH: + if (!str || !uprf(str, fmt->f_text)) { + fmt += fmt->f_skip; + continue; + } + break; + + case FT_V_AMATCH: + if (str) + value = uprf(str, fmt->f_text); + else + value = 0; + break; + + case FT_S_NONNULL: + value = (str != NULLCP && *str != NULL); + break; + + case FT_S_NULL: + value = (str == NULLCP || *str == NULL); + break; + + case FT_V_EQ: + value = (fmt->f_value == value); + break; + + case FT_V_NE: + value = (fmt->f_value != value); + break; + + case FT_V_GT: + value = (fmt->f_value > value); + break; + + case FT_GOTO: + fmt += fmt->f_skip; + continue; + + case FT_NOP: + break; + + case FT_LS_COMP: + str = fmt->f_comp->c_text; + break; + case FT_LS_LIT: + str = fmt->f_text; + break; + case FT_LS_TRIM: + if (str) { + register char *xp; + + /* Be careful since str can point into buffer */ + bcopy(str, buffer, strlen(str) + 1); + str = buffer; + + /* Eat leading whitespace */ + while (isspace(*str)) + str++; + + /* Trim trailing whitespace */ + xp = str + strlen(str) - 1; + while (xp > str && isspace(*xp)) + *xp-- = '\0'; + + /* By default we left justify */ + rjust = 0; + if ((i = fmt->f_width) < 0) { + i = -i; + rjust++; + } + + /* If necessary, limit width and/or justify */ + if (i > 0 && (j = strlen(str)) > i) { + if (!rjust) + str[i] = '\0'; + else + str += j - i; + } + } + break; + + case FT_LV_COMPFLAG: + value = fmt->f_comp->c_flags; + break; + case FT_LV_COMP: + value = (comp = fmt->f_comp)->c_text ? + atoi(comp->c_text) : 0; + break; + case FT_LV_LIT: + value = fmt->f_value; + break; + case FT_LV_DAT: + value = dat[fmt->f_value]; + break; + case FT_LV_STRLEN: + value = strlen(str); + break; + case FT_LV_CHAR_LEFT: + value = width - (cp - scanl); + break; + case FT_LV_PLUS_L: + value += fmt->f_value; + break; + case FT_LV_MINUS_L: + value = fmt->f_value - value; + break; + case FT_LV_DIVIDE_L: + if (fmt->f_value) + value = value / fmt->f_value; + else + value = 0; + break; + case FT_SAVESTR: + savestr = str; + break; + + case FT_LV_SEC: + value = fmt->f_comp->c_tws->tw_sec; + break; + case FT_LV_MIN: + value = fmt->f_comp->c_tws->tw_min; + break; + case FT_LV_HOUR: + value = fmt->f_comp->c_tws->tw_hour; + break; + case FT_LV_MDAY: + value = fmt->f_comp->c_tws->tw_mday; + break; + case FT_LV_MON: + value = fmt->f_comp->c_tws->tw_mon + 1; + break; + case FT_LS_MONTH: + str = tw_moty[fmt->f_comp->c_tws->tw_mon]; + break; + case FT_LS_LMONTH: + str = lmonth[fmt->f_comp->c_tws->tw_mon]; + break; + case FT_LS_ZONE: + str = dtwszone(fmt->f_comp->c_tws); + break; + case FT_LV_YEAR: + value = fmt->f_comp->c_tws->tw_year; + break; + case FT_LV_WDAY: + if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & + (TW_SEXP | TW_SIMP))) + set_dotw(tws); + value = tws->tw_wday; + break; + case FT_LS_DAY: + if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & + (TW_SEXP | TW_SIMP))) + set_dotw(tws); + str = tw_dotw[tws->tw_wday]; + break; + case FT_LS_WEEKDAY: + if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & + (TW_SEXP | TW_SIMP))) + set_dotw(tws); + str = tw_ldotw[tws->tw_wday]; + break; + case FT_LV_YDAY: + value = fmt->f_comp->c_tws->tw_yday; + break; + case FT_LV_ZONE: + value = fmt->f_comp->c_tws->tw_zone; + break; + case FT_LV_CLOCK: + if ((value = fmt->f_comp->c_tws->tw_clock) == 0) + value = twclock(fmt->f_comp->c_tws); + break; + case FT_LV_RCLOCK: + if ((value = fmt->f_comp->c_tws->tw_clock) == 0) + value = twclock(fmt->f_comp->c_tws); + value = time((long *) 0) - value; + break; + case FT_LV_DAYF: + if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & + (TW_SEXP | TW_SIMP))) + set_dotw(tws); + switch (fmt->f_comp->c_tws->tw_flags & TW_SDAY) { + case TW_SEXP: + value = 1; + break; + case TW_SIMP: + value = 0; + break; + default: + value = -1; + break; + } + case FT_LV_ZONEF: + if ((fmt->f_comp->c_tws->tw_flags & TW_SZONE) == + TW_SZEXP) + value = 1; + else + value = -1; + break; + case FT_LV_DST: + value = fmt->f_comp->c_tws->tw_flags & TW_DST; + break; + case FT_LS_822DATE: + str = dasctime(fmt->f_comp->c_tws, TW_ZONE); + break; + case FT_LS_PRETTY: + str = dasctime(fmt->f_comp->c_tws, TW_NULL); + break; + + case FT_LS_PERS: + str = fmt->f_comp->c_mn->m_pers; + break; + case FT_LS_MBOX: + str = fmt->f_comp->c_mn->m_mbox; + break; + case FT_LS_HOST: + str = fmt->f_comp->c_mn->m_host; + break; + case FT_LS_PATH: + str = fmt->f_comp->c_mn->m_path; + break; + case FT_LS_GNAME: + str = fmt->f_comp->c_mn->m_gname; + break; + case FT_LS_NOTE: + str = fmt->f_comp->c_mn->m_note; + break; + case FT_LS_822ADDR: + str = adrformat(fmt->f_comp->c_mn); + break; + case FT_LV_HOSTTYPE: + value = fmt->f_comp->c_mn->m_type; + break; + case FT_LV_INGRPF: + value = fmt->f_comp->c_mn->m_ingrp; + break; + case FT_LV_NOHOSTF: + value = fmt->f_comp->c_mn->m_nohost; + break; + case FT_LS_FRIENDLY: +#ifdef BERK + str = fmt->f_comp->c_mn->m_mbox; +#else + mn = fmt->f_comp->c_mn; + if ((str = mn->m_pers) == NULL) + switch (mn->m_type) { + + case LOCALHOST: + str = mn->m_mbox; + break; + case UUCPHOST: + (void) sprintf(buffer, "%s!%s", + mn->m_host, mn->m_mbox); + str = buffer; + break; + default: + if (mn->m_mbox) { + (void) sprintf(buffer, "%s@%s", + mn->m_mbox, mn->m_host); + str = buffer; + } else + str = mn->m_text; + break; + } +#endif BERK + break; + + case FT_LOCALDATE: + comp = fmt->f_comp; + if ((l = comp->c_tws->tw_clock) == 0) + l = twclock(comp->c_tws); + tws = dlocaltime(&l); + *comp->c_tws = *tws; + break; + + case FT_GMTDATE: + comp = fmt->f_comp; + if ((l = comp->c_tws->tw_clock) == 0) + l = twclock(comp->c_tws); + tws = dgmtime(&l); + *comp->c_tws = *tws; + break; + + case FT_PARSEDATE: + comp = fmt->f_comp; + if ((sp = comp->c_text) && (tws = dparsetime(sp))) { + *comp->c_tws = *tws; + comp->c_flags = 0; + } else if (comp->c_flags >= 0) { + bzero((char *)comp->c_tws, + sizeof(*comp->c_tws)); + comp->c_flags = 1; + } + break; + + case FT_FORMATADDR: + /* custom address list formatting hook */ + str = formataddr(savestr, str); + break; + + case FT_PUTADDR: + /* + * Output the str register as an address component, + * splitting it into multiple lines if necessary. + * The value reg. contains the max line length. The + * lit. field may contain a string to prepend to the + * result (e.g., "To: ") + */ + { + register char *lp = str; + register int indent; + register int wid = value; + register int len = strlen(str); + register char *lastb; + + sp = fmt->f_text; + indent = strlen(sp); + wid -= indent; + while ((c = *sp++) && cp < ep) + *cp++ = c; + while (len > wid) { + /* + * Try to break at a comma; failing + * that, break at a space, failing + * that, just split the line. + */ + lastb = 0; + sp = lp + wid; + while (sp > lp && (c = *--sp) != ',') { + if (!lastb && isspace(c)) + lastb = sp - 1; + } + if (sp == lp) + if (!(sp = lastb)) + sp = lp + wid - 1; + len -= sp - lp + 1; + while (cp < ep && lp <= sp) + *cp++ = *lp++; + *cp++ = '\n'; + for (i = indent; cp < ep && i > 0; i--) + *cp++ = ' '; + while (isspace(*lp)) + lp++, len--; + } + PUTS(cp, lp); + } + break; + + case FT_PARSEADDR: + comp = fmt->f_comp; + if (comp->c_mn != &fmt_mnull) + mnfree(comp->c_mn); + if ((sp = comp->c_text) && (sp = getname(sp)) && + (mn = getm(sp, NULLCP, 0, fmt_norm, NULLCP))) { + comp->c_mn = mn; + while (getname("")) + ; + } else + comp->c_mn = &fmt_mnull; + break; + + case FT_MYMBOX: + /* + * If there's no component, we say true. Otherwise + * we say "true" only if we can parse the address and + * it matches one of our addresses. + */ + comp = fmt->f_comp; + if (comp->c_mn != &fmt_mnull) + mnfree(comp->c_mn); + if ((sp = comp->c_text) && (sp = getname(sp)) && + (mn = getm(sp, NULLCP, 0, AD_NAME, NULLCP))) { + comp->c_mn = mn; + comp->c_flags = ismymbox(mn); + while (sp = getname(sp)) + if (comp->c_flags == 0 && + (mn = getm(sp, NULLCP, 0, + AD_NAME, NULLCP))) + comp->c_flags |= ismymbox(mn); + } else { + comp->c_flags = (comp->c_text == 0); + comp->c_mn = &fmt_mnull; + } + break; + + case FT_ADDTOSEQ: + /* + * If we're working on a folder (as opposed to a + * file), add the current msg to sequence given in + * literal field. Don't disturb string or value + * registers. + */ + if (fmt_current_folder) + (void) m_seqadd(fmt_current_folder, + fmt->f_text, dat[0], -1); + break; + } + fmt++; + } +finished: + if (cp[-1] != '\n') + *cp++ = '\n'; + *cp = NULL; + return (value); +} diff --git a/docs/historical/mh-6.8.5/local/lbl/sbr/m_gmsg.c b/docs/historical/mh-6.8.5/local/lbl/sbr/m_gmsg.c new file mode 100644 index 0000000..c86203a --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/sbr/m_gmsg.c @@ -0,0 +1,356 @@ +/* m_gmsg.c - read a folder */ + +#include "../h/mh.h" +#include +#include +#include +#include +#ifndef BSD42 +#ifndef SYS5 +#include +#else SYS5 +#include +#endif SYS5 +#else BSD42 +#include +#endif BSD42 + + +#define NINFO (MAXFOLDER / 5) /* PLEASE be non-trivial... */ +struct info { + int msgno; + int stats; +}; + +static int m_getatr(), m_setatr(); + +static int len; +static struct info *head; + +/* */ + +struct msgs * +m_gmsg(name) + register char *name; +{ +#ifdef COMPAT + register int cur, + fd; +#endif COMPAT + register int i, + j; + register struct info *rover, + *tail; +#ifdef COMPAT + register char *cp; + char buffer[BUFSIZ]; +#endif COMPAT + register struct msgs *mp; + register struct direct *dp; + register DIR * dd; + struct stat st; + + if ((dd = opendir (name = m_mailpath (name))) == NULL) { + free (name); + return NULL; + } + (void) fstat (dd->dd_fd, &st); + + mp = (struct msgs *) malloc (MSIZE (mp, 0, 0)); + if (mp == NULL) + adios (NULLCP, "unable to allocate folder storage"); + mp->lowmsg = mp->hghmsg = mp->nummsg = 0; + mp->curmsg = 0; + mp->lowsel = mp->hghsel = mp->numsel = 0; + mp->foldpath = name; + mp->msgflags = NULL; + if (st.st_uid != getuid () || access (name, 02) == NOTOK) + mp->msgflags |= READONLY; +#ifdef COMPAT + cur = 0; +#endif COMPAT + j = strlen (SBACKUP); + if (head == NULL) + if ((head = (struct info *) + malloc ((unsigned) ((len = NINFO) * sizeof *head))) == NULL) + adios (NULLCP, "unable to allocate info storage"); + tail = (rover = head) + len; + + while (dp = readdir (dd)) + if (i = m_atoi (dp->d_name)) { + if (rover >= tail) { + register int curlen = tail - head; + + if ((tail = (struct info *) realloc ((char *) head, + (unsigned) ((len += NINFO) * sizeof *head))) + == NULL) + adios (NULLCP, "unable to allocate info storage"); + else + rover = tail + curlen, head = tail, tail += len; + } + if (i > mp->hghmsg) + mp->hghmsg = i; + mp->nummsg++; + if (mp->lowmsg == 0 || i < mp->lowmsg) + mp->lowmsg = i; + rover->msgno = i; + rover->stats = EXISTS; +#ifdef notdef + rover->stats &= ~DELETED; +#endif notdef + rover++; + } + else + switch (dp->d_name[0]) { + case '.': + continue; + + case ',': +#ifdef notdef + if ((i = m_atoi (dp->d_name + 1)) { + register struct info *l; + + for (l = head; l < rover; l++) + if (l->msgno == i) { + if (!(l->stats & EXISTS)) + l->stats |= DELETED; + break; + } + } +#endif notdef + continue; + +#ifdef MHE + case '+': + continue; +#endif MHE + +#ifdef UCI + case '_': + case '#': + continue; +#endif UCI + + default: +#ifdef COMPAT + if (strcmp (dp->d_name, current) == 0) { + cur++; + continue; + } +#endif COMPAT + if (strcmp (dp->d_name, LINK) == 0 + || strncmp (dp->d_name, SBACKUP, j) == 0) + continue; + mp->msgflags |= OTHERS; + continue; + } + + closedir (dd); + +/* */ + +#ifdef COMPAT + (void) sprintf (buffer, "%s-%s", current, name); + if (cp = m_find (buffer)) { + i = m_atoi (cp); + (void) m_delete(buffer); + if (i > 0) + mp->curmsg = i; + } + if (mp->curmsg == 0 && cur && (fd = open (current, 0)) != NOTOK) { + if ((i = read (fd, buffer, sizeof buffer)) > 0) { + if (cp = index (buffer, '\n')) + *cp = NULL; + if ((i = m_atoi (buffer)) > 0) + mp->curmsg = i; + } + (void) close (fd); + } + if (cur && !(mp->msgflags & READONLY)){ /* sneaky... */ + (void) sprintf (buffer, "%s/%s", name, current); + (void) unlink (buffer); + } +#endif COMPAT + +#ifndef MTR + mp->lowoff = 1; +#else MTR + mp->lowoff = mp->lowmsg; +#endif MTR + mp->hghoff = mp->hghmsg + 1;/* for "new" in m_convert */ + + mp = (struct msgs *) + realloc ((char *) mp, MSIZE (mp, mp->lowoff, mp->hghoff)); + if (mp == NULL) + adios (NULLCP, "unable to allocate folder storage"); +#ifndef MTR + for (i = mp->lowmsg; i <= mp->hghmsg; i++) + mp->msgstats[i] = 0; +#else MTR + mp->msgstats = (int *) + calloc ((unsigned) 1, MSIZEX (mp, mp->lowmsg, mp->hghmsg)); + if (mp->msgstats == NULL) + adios (NULLCP, "unable to allocate messages storage"); + mp->msgstats = (mp->msgbase = mp->msgstats) - mp->lowoff; + if (mp->msgstats < 0) + adios (NULLCP, "m_gmsg() botch -- you lose big"); +#endif MTR + for (tail = head; tail < rover; tail++) + mp->msgstats[tail->msgno] = tail->stats; + m_getatr (mp); + + return mp; +} + +/* */ + +static int +m_getatr(mp) + register struct msgs *mp; +{ + int alen, + bits, + i, + j, + plen, + state; + register char *cp; + char name[NAMESZ], + field[BUFSIZ]; + register struct node *np; + register FILE * fp; + + bits = FFATTRSLOT; + + mp->msgattrs[0] = getcpy (current); + mp->msgattrs[1] = NULL; + mp->attrstats = 0; /* initially, all public */ + + m_getdefs (); + if (mh_seq == NULL || *mh_seq == NULL) + goto private_only; + + (void) sprintf (field, "%s/%s", mp->foldpath, mh_seq); + if (fp = fopen (field, "r")) { + for (state = FLD;;) { + switch (state = m_getfld (state, name, field, sizeof field, fp)) { + case FLDPLUS: + /* + * sequence was too big for buffer: back up + * to a word break. + */ + for (cp = &field[sizeof(field)-2]; !isspace(*cp); --cp) + ; + if (i = cp - &field[sizeof(field)-2]) { + *cp = 0; + fseek(fp, i, 1); + } + /*FALL THROUGH*/ + case FLD: + (void) m_setatr (mp, name, field); + continue; + + case FLDEOF: + (void) m_setatr (mp, name, field); + break; + + case BODY: + case BODYEOF: + adios (NULLCP, + "no blank lines are permitted in %s/%s", + mp->foldpath, mh_seq);/* fall */ + + case FILEEOF: + break; + + default: + adios (NULLCP, "%s/%s is poorly formatted", + mp->foldpath, mh_seq); + } + break; + } + (void) fclose (fp); + } + +private_only: ; + alen = strlen ("atr-"); + plen = strlen (mp->foldpath) + 1; + + for (np = m_defs; np; np = np->n_next) + if (ssequal ("atr-", np->n_name) + && (j = strlen (np->n_name) - plen) > alen + && *(np->n_name + j) == '-' + && strcmp (mp->foldpath, np->n_name + j + 1) == 0) { + cp = getcpy (np->n_name + alen); + *(cp + j - alen) = NULL; + if ((i = m_setatr (mp, cp, np->n_field)) != NOTOK) + mp->attrstats |= 1 << (bits + i);/* private */ + free(cp); + } +} + +/* */ + +static int +m_setatr(mp, name, field) + register struct msgs *mp; + register char *name, *field; +{ + register int bits, slot, first, last; + register char *cp; + + if (strcmp (current, name) == 0) { + mp->curmsg = atoi(field); + return (0); + } + + for (slot = 0; mp->msgattrs[slot]; slot++) + if (strcmp(mp->msgattrs[slot], name) == 0) + break; + + if (slot >= NATTRS) + return NOTOK; + + if (mp->msgattrs[slot] == NULL) { + mp->msgattrs[slot] = getcpy(name); + mp->msgattrs[slot + 1] = NULL; + } + + bits = 1 << (FFATTRSLOT + slot); + + for (cp = field; *cp; ) { + while (isspace(*cp)) + ++cp; + if (! isdigit(*cp)) + return (NOTOK); + for (first = 0; isdigit(*cp); ++cp) + first = (first * 10) + (*cp - '0'); + if (first == 0) + return (NOTOK); + if (*cp++ == '-') { + /* have a range of msgs */ + for (last = 0; isdigit(*cp); ++cp) + last = (last * 10) + (*cp - '0'); + if (last < first) { + advise(NULLCP, + "seq %s msg range bad: first (%d) > last (%d)", + name, first, last); + continue; + } + if (last < mp->lowmsg) + continue; + if (last > mp->hghmsg) + last = mp->hghmsg; + if (first < mp->lowmsg) + first = mp->lowmsg; + } else { + if (first < mp->lowmsg) + continue; + last = first; + } + for ( ; first <= last; ++first) + if (mp->msgstats[first] & EXISTS) + mp->msgstats[first] |= bits; + } + return slot; +} diff --git a/docs/historical/mh-6.8.5/local/lbl/sbr/m_seq.c b/docs/historical/mh-6.8.5/local/lbl/sbr/m_seq.c new file mode 100644 index 0000000..50748fa --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/sbr/m_seq.c @@ -0,0 +1,76 @@ +/* m_seq.c - print out a message sequence */ + +#include "../h/mh.h" +#include + +static char *buffer; +static int bufsize = BUFSIZ; + +char * +m_seq(mp, cp) + struct msgs *mp; + char *cp; +{ + int mask; + register int i, j, linlen; + register char *bp, *ep; + + if (buffer == 0) { + if ((buffer = malloc(bufsize)) == NULL) + adios (NULLCP, "unable to allocate seq str storage"); + } + if (strcmp(current, cp) == 0) { + if (mp->curmsg) { + (void) sprintf(buffer, "%s", m_name(mp->curmsg)); + return (buffer); + } else + return (NULL); + } + for (i = 0; mp->msgattrs[i]; i++) + if (strcmp(mp->msgattrs[i], cp) == 0) + break; + + if (! mp->msgattrs[i]) + return (NULL); + + mask = EXISTS | (1 << (FFATTRSLOT + i)); + bp = buffer; + ep = bp + bufsize - 16; + linlen = strlen(cp) + 2; + for (i = mp->lowmsg; i <= mp->hghmsg; ++i) { + register char *oldbp; + + if ((mp->msgstats[i] & mask) != mask) + continue; + + oldbp = bp; + if (bp > buffer) { + if (bp >= ep) { + int oldoff = bp - buffer; + bufsize <<= 1; + if ((buffer = realloc(buffer, bufsize)) == NULL) + adios (NULLCP, "unable to allocate seq str storage"); + oldbp = bp = buffer + oldoff; + ep = bp + bufsize - 16; + } + if (linlen >= 72) { + linlen = 0; + *bp++ = '\n'; + *bp++ = ' '; + } + *bp++ = ' '; + } + (void) sprintf(bp, "%s", m_name(i)); + bp += strlen(bp); + j = i; + for (++i; i <= mp->hghmsg && (mp->msgstats[i] & mask) == mask; + ++i) + ; + if (i - j > 1) { + (void) sprintf(bp, "-%s", m_name(i - 1)); + bp += strlen(bp); + } + linlen += bp - oldbp; + } + return (bp > buffer? buffer : NULL); +} diff --git a/docs/historical/mh-6.8.5/local/lbl/sbr/t.c b/docs/historical/mh-6.8.5/local/lbl/sbr/t.c new file mode 100644 index 0000000..352a443 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/sbr/t.c @@ -0,0 +1,337 @@ +/* m_gmsg.c - read a folder */ + +#include "../h/mh.h" +#include +#include +#include +#ifndef BSD42 +#ifndef SYS5 +#include +#else SYS5 +#include +#endif SYS5 +#else BSD42 +#include +#endif BSD42 + + +#define NINFO (MAXFOLDER / 5) /* PLEASE be non-trivial... */ +struct info { + int msgno; + int stats; +}; + +static int m_getatr(), m_setatr(); + +static int len; +static struct info *head; + +/* */ + +struct msgs * +m_gmsg(name) + register char *name; +{ +#ifdef COMPAT + register int cur, + fd; +#endif COMPAT + register int i, + j; + register struct info *rover, + *tail; +#ifdef COMPAT + register char *cp; + char buffer[BUFSIZ]; +#endif COMPAT + register struct msgs *mp; + register struct direct *dp; + register DIR * dd; + struct stat st; + + if ((dd = opendir (name = m_mailpath (name))) == NULL) { + free (name); + return NULL; + } + (void) fstat (dd -> dd_fd, &st); + + mp = (struct msgs *) malloc (MSIZE (mp, 0, 0)); + if (mp == NULL) + adios (NULLCP, "unable to allocate folder storage"); + mp -> lowmsg = mp -> hghmsg = mp -> nummsg = 0; + mp -> curmsg = 0; + mp -> lowsel = mp -> hghsel = mp -> numsel = 0; + mp -> foldpath = name; + mp -> msgflags = NULL; + if (st.st_uid != getuid () || access (name, 02) == NOTOK) + mp -> msgflags |= READONLY; +#ifdef COMPAT + cur = 0; +#endif COMPAT + j = strlen (SBACKUP); + if (head == NULL) + if ((head = (struct info *) + malloc ((unsigned) ((len = NINFO) * sizeof *head))) == NULL) + adios (NULLCP, "unable to allocate info storage"); + tail = (rover = head) + len; + + while (dp = readdir (dd)) + if (i = m_atoi (dp -> d_name)) { + if (rover >= tail) { + register int curlen = tail - head; + + if ((tail = (struct info *) realloc ((char *) head, + (unsigned) ((len += NINFO) * sizeof *head))) + == NULL) + adios (NULLCP, "unable to allocate info storage"); + else + rover = tail + curlen, head = tail, tail += len; + } + if (i > mp -> hghmsg) + mp -> hghmsg = i; + mp -> nummsg++; + if (mp -> lowmsg == 0 || i < mp -> lowmsg) + mp -> lowmsg = i; + rover -> msgno = i; + rover -> stats = EXISTS; +#ifdef notdef + rover -> stats &= ~DELETED; +#endif notdef + rover++; + } + else + switch (dp -> d_name[0]) { + case '.': + continue; + + case ',': +#ifdef notdef + if ((i = m_atoi (dp -> d_name + 1)) { + register struct info *l; + + for (l = head; l < rover; l++) + if (l -> msgno == i) { + if (!(l -> stats & EXISTS)) + l -> stats |= DELETED; + break; + } + } +#endif notdef + continue; + +#ifdef MHE + case '+': + continue; +#endif MHE + +#ifdef UCI + case '_': + case '#': + continue; +#endif UCI + + default: +#ifdef COMPAT + if (strcmp (dp -> d_name, current) == 0) { + cur++; + continue; + } +#endif COMPAT + if (strcmp (dp -> d_name, LINK) == 0 + || strncmp (dp -> d_name, SBACKUP, j) == 0) + continue; + mp -> msgflags |= OTHERS; + continue; + } + + closedir (dd); + +/* */ + +#ifdef COMPAT + (void) sprintf (buffer, "%s-%s", current, name); + if (cp = m_find (buffer)) { + i = m_atoi (cp); + (void) m_delete(buffer); + if (i > 0) + mp -> curmsg = i; + } + if (mp -> curmsg == 0 && cur && (fd = open (current, 0)) != NOTOK) { + if ((i = read (fd, buffer, sizeof buffer)) > 0) { + if (cp = index (buffer, '\n')) + *cp = NULL; + if ((i = m_atoi (buffer)) > 0) + mp -> curmsg = i; + } + (void) close (fd); + } + if (cur && !(mp -> msgflags & READONLY)){ /* sneaky... */ + (void) sprintf (buffer, "%s/%s", name, current); + (void) unlink (buffer); + } +#endif COMPAT + +#ifndef MTR + mp -> lowoff = 1; +#else MTR + mp -> lowoff = mp -> lowmsg; +#endif MTR + mp -> hghoff = mp -> hghmsg + 1;/* for "new" in m_convert */ + + mp = (struct msgs *) + realloc ((char *) mp, MSIZE (mp, mp -> lowoff, mp -> hghoff)); + if (mp == NULL) + adios (NULLCP, "unable to allocate folder storage"); +#ifndef MTR + for (i = mp -> lowmsg; i <= mp -> hghmsg; i++) + mp -> msgstats[i] = 0; +#else MTR + mp -> msgstats = (int *) + calloc ((unsigned) 1, MSIZEX (mp, mp -> lowmsg, mp -> hghmsg)); + if (mp -> msgstats == NULL) + adios (NULLCP, "unable to allocate messages storage"); + mp -> msgstats = (mp -> msgbase = mp -> msgstats) - mp -> lowoff; + if (mp -> msgstats < 0) + adios (NULLCP, "m_gmsg() botch -- you lose big"); +#endif MTR + for (tail = head; tail < rover; tail++) + mp -> msgstats[tail -> msgno] = tail -> stats; + m_getatr (mp); + + return mp; +} + +/* */ + +static int +m_getatr(mp) + register struct msgs *mp; +{ + int alen, + bits, + i, + j, + plen, + state; + register char *cp; + char name[NAMESZ], + field[BUFSIZ]; + register struct node *np; + register FILE * fp; + + bits = FFATTRSLOT; + + mp -> msgattrs[i = 0] = getcpy (current); + mp -> msgattrs[++i] = NULL; + mp -> attrstats = 0; /* initially, all public */ + + m_getdefs (); + if (mh_seq == NULL || *mh_seq == NULL) + goto private_only; + + (void) sprintf (field, "%s/%s", mp -> foldpath, mh_seq); + if (fp = fopen (field, "r")) { + for (state = FLD;;) { + switch (state = m_getfld (state, name, field, sizeof field, fp)) { + case FLD: + case FLDEOF: + (void) m_setatr (mp, getcpy (name), trimcpy (field)); + if (state == FLDEOF) + break; + continue; + + case BODY: + case BODYEOF: + adios (NULLCP, + "no blank lines are permitted in %s/%s", + mp -> foldpath, mh_seq);/* fall */ + + case FILEEOF: + break; + + default: + adios (NULLCP, "%s/%s is poorly formatted", + mp -> foldpath, mh_seq); + } + break; + } + (void) fclose (fp); + } + +private_only: ; + alen = strlen ("atr-"); + plen = strlen (mp -> foldpath) + 1; + + for (np = m_defs; np; np = np -> n_next) + if (ssequal ("atr-", np -> n_name) + && (j = strlen (np -> n_name) - plen) > alen + && *(np -> n_name + j) == '-' + && strcmp (mp -> foldpath, np -> n_name + j + 1) == 0) { + cp = getcpy (np -> n_name + alen); + *(cp + j - alen) = NULL; + if ((i = m_setatr (mp, cp, getcpy (np -> n_field))) != NOTOK) + mp -> attrstats |= 1 << (bits + i);/* private */ + } +} + +/* */ + +static int +m_setatr(mp, name, field) + register struct msgs *mp; + register char *name, *field; +{ + int bits, + hack; + register int i, + j, + k; + register char *cp, + **ap; + + bits = FFATTRSLOT; + hack = strcmp (current, name) == 0;/* hack... */ + + for (i = 0; mp -> msgattrs[i]; i++) + if (strcmp (mp -> msgattrs[i], name) == 0) { + for (j = mp -> lowmsg; j <= mp -> hghmsg; j++) + mp -> msgstats[j] &= ~(1 << (bits + i)); + break; + } + if (i >= NATTRS) { + free (name); + free (field); + return NOTOK; + } + + if (mp -> msgattrs[i] == NULL) { + mp -> msgattrs[i] = name; + mp -> msgattrs[i + 1] = NULL; + } + else + free (name); + + for (ap = brkstring (field, " ", "\n"); + *ap; + ap++) { + if (cp = index (*ap, '-')) + *cp++ = NULL; + if ((j = m_atoi (*ap)) > 0) { +#ifdef notdef + if (hack && j >= mp -> lowmsg && j <= mp -> hghmsg + && (mp -> msgstats[j] & EXISTS)) + mp -> curmsg = j; +#else not notdef + if (hack) + mp -> curmsg = j; +#endif not notdef + for (k = cp ? m_atoi (cp) : j; j <= k; j++) + if (j >= mp -> lowmsg && j <= mp -> hghmsg + && (mp -> msgstats[j] & EXISTS)) + mp -> msgstats[j] |= 1 << (bits + i); + } + } + free (field); + + return i; +} diff --git a/docs/historical/mh-6.8.5/local/lbl/sbr/tags b/docs/historical/mh-6.8.5/local/lbl/sbr/tags new file mode 120000 index 0000000..305be39 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/sbr/tags @@ -0,0 +1 @@ +../uip/tags \ No newline at end of file diff --git a/docs/historical/mh-6.8.5/local/lbl/sbr/trmsbr.c b/docs/historical/mh-6.8.5/local/lbl/sbr/trmsbr.c new file mode 100644 index 0000000..bd8b959 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/sbr/trmsbr.c @@ -0,0 +1,236 @@ +/* trmsbr.c - minor termcap support (load with -ltermlib) */ + +#include "../h/mh.h" +#include +#ifndef SYS5 +#include +#else SYS5 +#include +#include +#include +#endif SYS5 +#include + + +#if BUFSIZ<2048 +#define TXTSIZ 2048 +#else +#define TXTSIZ BUFSIZ +#endif + +char PC; +short ospeed; + +int tgetent (), tgetnum (); +char *tgetstr (); + +/* */ + +static int TCinited = 0; +static int TCavailable = 0; +static int initLI = 0; +static int LI = 24; +static int initCO = 0; +static int CO = 80; +static char *CL = NULL; +static char *SE = NULL; +static char *SO = NULL; + +static char termcap[TXTSIZ]; +static char area[TXTSIZ]; + +/* */ + +static void +read_termcap() +{ + register char *bp, + *term; + register int i; + char *cp; +#ifndef SYS5 + struct sgttyb sg; +#else SYS5 + struct termio sg; +#endif SYS5 + + if (TCinited) + return; + + ++TCinited; + + if (!isatty(fileno(stdout))) + return; + + if ((term = getenv ("TERM")) == NULL || tgetent (termcap, term) <= OK) + return; + + ++TCavailable; + +#ifndef SYS5 + ospeed = ioctl(fileno (stdout), TIOCGETP, (char *) &sg) != NOTOK + ? sg.sg_ospeed : 0; +#else SYS5 + ospeed = ioctl(fileno (stdout), TCGETA, &sg) != NOTOK + ? sg.c_cflag & CBAUD : 0; +#endif SYS5 + + if (!initCO && (i = tgetnum ("co")) > 0) + CO = i; + if (!initLI && (i = tgetnum ("li")) > 0) + LI = i; + + cp = area; + CL = tgetstr ("cl", &cp); + if (bp = tgetstr ("pc", &cp)) + PC = *bp; + if (tgetnum ("sg") <= 0) { + SE = tgetstr ("se", &cp); + SO = tgetstr ("so", &cp); + } +} + +/* */ + +int +sc_width() +{ +#ifdef TIOCGWINSZ + struct winsize win; + + if (ioctl(fileno (stderr), TIOCGWINSZ, &win) != NOTOK && win.ws_col > 0) { + CO = win.ws_col; + initCO++; + } else +#endif TIOCGWINSZ + read_termcap(); + + return CO; +} + + +int +sc_length() +{ +#ifdef TIOCGWINSZ + struct winsize win; + + if (ioctl(fileno (stderr), TIOCGWINSZ, &win) != NOTOK && win.ws_row > 0) { + LI = win.ws_row; + initLI++; + } else +#endif TIOCGWINSZ + read_termcap(); + + return LI; +} + +/* */ + +static int +outc(c) +register char c; +{ + (void) putchar (c); +} + + +void +clear_screen() +{ + read_termcap(); + + if (CL && ospeed) + tputs (CL, LI, outc); + else { + printf ("\f"); + if (ospeed) + printf ("\200"); + } + + (void) fflush (stdout); +} + +/* */ + +/* VARARGS1 */ + +SOprintf(fmt, a, b, c, d, e, f) +char *fmt, + *a, + *b, + *c, + *d, + *e, + *f; +{ + read_termcap(); + if (SO == NULL || SE == NULL) + return NOTOK; + + tputs (SO, 1, outc); + printf (fmt, a, b, c, d, e, f); + tputs (SE, 1, outc); + + return OK; +} + +#define MAXTCENT 32 +static int nTCent; +static char *TCid[MAXTCENT]; +static char *TCent[MAXTCENT]; + +char * +get_termcap(id) + char *id; +{ + register int i; + char *cp; + static char tcbuf[1024]; + static char *tcptr = tcbuf; + + for (i = 0; i < nTCent; ++i) + if (strcmp(TCid[i], id) == 0) + return (TCent[i]); + + if (nTCent >= MAXTCENT) + return (""); + + TCid[nTCent] = getcpy(id); + + if (TCinited == 0) + read_termcap(); + + if (!TCavailable) + return (""); + + cp = tgetstr(id, &tcptr); + if (cp == 0) { + /* check for some alternates for the entry */ + if (strcmp(id, "mb") == 0 || + strcmp(id, "md") == 0 || + strcmp(id, "mh") == 0 || + strcmp(id, "mr") == 0 || + strcmp(id, "us") == 0) + id = "so"; + else if (strcmp(id, "me") == 0 || + strcmp(id, "ue") == 0) + id = "se"; + cp = tgetstr(id, &tcptr); + if (cp == 0) + cp = ""; + } + + /* skip leading delay spec */ + while (isdigit(*cp)) + ++cp; + if (*cp == '.') + if (isdigit(*++cp)) + ++cp; + if (*cp == '*') + ++cp; + + TCent[nTCent] = cp; + ++nTCent; + return (cp); +} diff --git a/docs/historical/mh-6.8.5/local/lbl/uip/m_getfld.c b/docs/historical/mh-6.8.5/local/lbl/uip/m_getfld.c new file mode 120000 index 0000000..6feb0bf --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/uip/m_getfld.c @@ -0,0 +1 @@ +../sbr/m_getfld.c \ No newline at end of file diff --git a/docs/historical/mh-6.8.5/local/lbl/uip/version.c b/docs/historical/mh-6.8.5/local/lbl/uip/version.c new file mode 100644 index 0000000..86ef53f --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/uip/version.c @@ -0,0 +1 @@ +char *version = "LBL MH 6.5.1 (ace.ee.lbl.gov) of Wed Sep 18 13:06:31 PDT 1991"; diff --git a/docs/historical/mh-6.8.5/local/lbl/zotnet/tws.h b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws.h new file mode 120000 index 0000000..d2dba12 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws.h @@ -0,0 +1 @@ +tws/tws.h \ No newline at end of file diff --git a/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtest b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtest new file mode 100755 index 0000000000000000000000000000000000000000..675b1d636c5573159a0b1cc3408869484419ffa9 GIT binary patch literal 46603 zcmeFa3s_Xwxi|jq%`l8O!4U}=4Vo<=LF6(Z8YLtFL>&nN0X5{N1I$GX40Hf59BKzt zwBCY7Q=58na&pqtrm2Ufxz}2>HnE9GNn)Xb=ZMT=LPU0dU8K>C)FFNo$ICCbdyX6Ki41e=yQ zY0}iRvWhvBnWfFH^3^QVy)$#NGt;KCzfGIrs%GCTEi*GGD=TNBO(d8yiL=X^s%2*9 zWM}7OPNXcY&{e}RCnKh9BFEB_=d`$*oK?%lQ`U892u>5hSrfA+l5KKYX-#w5lqs6c zmNV%(aFAik%D`s5(z{xoiCu;e#DRUx=#n)2hTPEUw4_l5ci*skLnUoM)ww5_D$2KX)HhD0g z%xn?Htf45^PcWs^Pu1NAx$-I8De`wPZ)5(? zSA=z*6Sl=MN`yH@*dh^T(bH|K=%_3z>hM0`Qy%ZAOU#(c`GL;$_GRF%ms1oZf=7i> z#oy7Ikn-^kcM{^HOTMo!OQNz;cZ^<&8wX`M(K<4x`077xkn*Xc|yK4CC_d8%Z7NlR``Lrb00du_AUSmkSS-ALn7nuf%W zYlaj$sEHzC)i6*#>2p#1}fh4pHl|!$4hNbSYW)R<1+^^+L@7vK|S?Vw*!ZsyVW`t#^ z8Ih1_!z|dCJG)D^u%w0bx;#WrAs?ddtuHo)_56&IQ3HOr8L^8>wjd{^vQ+n1;h$Wz z)@?-CWQVC}Z3D;35FE^}ECo&yxV*dwX$*pvAta3&Omp^25if<)oINe@7)}F<$@!?Y zs9hCZcbhBi@nzAwXnc8>BUNM@sY%y{wapKSDEj=OV_i> @f$WeZ{#Z^gm(8;?o1CircITYr3fp=7!iznA{T)A`>NO29Yqf^Tw=^#Ac|)Yo#rReGrpYI)!zG5;$1mxJQy zY8p#dQVfltXc|TuT|>jkLRV2NjiQlcr7<*mfW{!Wf=u{c`eP0W<~;w^2by=m=L+~l z&=86gAqFyB5JP&H$@n!PgWlsP32o@yPZ)*KP~;HIgLB|KE|w4H5X?o&F-Ys;Wn;=0 zqZ3Reuc2u}V~10?9`W3~f~h&2V+7MH`bP~5qI0gQerE_*j1eYfNaRrS6<1sl6%{qi zB148pkBGT4_A2YhQCG)}9&?R0Ha;P7T++2;ll6rEBAgVFLzrR+7awE9IoT`5;BAn9 zv@i9$>TU^>!c^m8#WLPVMwvwSpF?4)}P~Td5u?d~o+t z0sNK${eae~CF-5DN%g9;)l&LCZB{GkSM*b4_8i>3>aFTL+OFQF7O8X9a`IERT8I?4 z;5$p5Mzyp-El{VbIdHk^4eBI>779jxqGr>h^fPrT?V{cE8#Rl1R2%J8Gt_i7O-)rN zs441rHCeq@O;X3HiE4rxuZ~qU^%|6Hj5-?rW7Sc(y9(h+C^6;`^o|;f7zy~s(tdhU zy+Vyrhr|C}`aQi*hv{$h0sWmmrjOKg`h@ymcK=DAQh>fvPf)b;QLi%B9lrj|+W>6y4aK)s?C|9T>)M#atGF+6wq!Rr5MG3A@%_zZ0 zRaH&Om+(D>urQ@hIji&wUWNdDrF^7(sT@;2Q%*r4zfhrk_u_h_n*ov<&^TO@*ch~Dt|!i7nDQF+xWhs>{Z@S-ct6-k}A8EUn{-J zui)Pc^e4pnBdEQDm~SD+BIQk`Sox(=q3lt9fs}idZe2p%_sWyXPn7w} zgNj3WTzOb|0>4#o_bWdK)#vd0jPf((UgZ(xY2_)zeF8E6L)oOPRkkY|m48 zrAet)+C{2XWf4NF)a6Q}ayMe#j(8P{Pq{@Yg{*QwZHm&S#L=(mNm`2BRwCz(%4U>w z6)A9G;AP+o+ZZ``_rHTETj>PV)#p>A>ku-K^Vgy^kj1}_^$lXsBuHSLsDlerZMe+5 zHY)dAX3TT*=t8PZBIRb8o_;I7`)D8iZt#mZ_g*&rEy~sl;@$_HS_RG7#vx1>n)JiL zSi)zJv-<}_z7gWm=wJGL5Fxjq?*Iz=e6#ByC6Vq&|2nluu^lZ<=OFYd<*WPXwBU!9 z@J+t3R7UjiCX6JE1K&vW&yi#nUn5;1{G;$YOpjp^*Wnl!jnI8!FjC_5vEnyK?<(9` z;m)Nu662?i)kWdqmOK)nRE-?Op|CbTI1k%3Qa}-SWY=qg8p+rpss%akGN|jVkw;}cIbO$Y^JF#RijqalPR6`5E!!6*c znH=Or9#zyz-$fp)Xc=vxa%k+$=&4(1D>cx+Q3p*{#)4)Uct)>HQ>at1g6Hprd~2u| zJiEb54!FA>e0jl5E^>HL=Xp0`yab-_#+e3Tk4S`<6@0$X@D()G7 zNPFpZ{Ju$V(I0Vt5bj+%g!?~(5PuKTJMqPkYg)Cc~bmC}H5>GlYDq_~{d+0c|an zPSY1~;tOiymFtk=16)&J?^Eau-23qPgOWzSR#M@ciWr>gL3%@(f)c!eJ1!k_jXUxC zAL7oB-(C3rhL$7G--z!?l%|(XV(7ITU!yV(zbo-O0pC@+n~HJ3DmbsQf6ZN9c`VRWAdZkXen_fb%Rtsti(T|m( zC-W$7#f213makHS-meP1?*jC~chOemPUQ}yza1sKO{r9FMY?&)TxAaW!Bt8*C|s)~ zDT(+prBbCtnT;O)X7u#4&_m8tW+>B@LS>p#pyVrg%1xkjqjH0it6Z<-0Ea7+(PL*T z6G3a0l7$h74gGRDu%Jr+P~sI$xkeeIj8@{5t1<2wsl+N*Vstb@iB^Uy7L1splq*;U ziW%#`Ecr-`rA$hMpss=v(OHbkPSHOw&g?_XSLkIrKrhhquul8XKl} zFa8Amk{+jDP&fTI?WCX6WArnOD}PEm=qL0D{g@u6|DuQJKdA}ryOx~v0R1~{rytS% z^h4T)@$G%IiMr?>+DIE{J*~wEcMYwkm9&D|XbCN*bc~vtXg1PLN9qcoVxW9NnJHXI z;Tze@OQ(P}4bCC|x2`-7```Qy5msH=b~CL0FwAPNz^wKv;2}Wc@EeJF?l^>8i75!H z??~AGMA&^Re#hfC3)XQwtY0Qxbqrz5{wBLpu@L37y)6FhBHbGc5TA^bTFnw;v$( zHt64d(7|GPosNwkR{ zqE-9`*Qb%{MP&SF~XZ55&aexZljW>Y{30GxHN=LgPe+r${H4Zr^ecR#+Z za6iI$e<^;q3tPDzwo=+jue6lHPA-)85i^OJLA%ISQMZRdYsj{cZQ#W$V9@^EC@mj) zk?RI5-=Njwo`mh*I9SsJSiZ66*}jWdKDK&6iwA3JP{PFYo-hkNOJAXH{F2VlXTtt{ z3JchW-tc4eoF8G{`Zx5eAEKZ9E4_#Q^a%YKJ?o#)^ZpV2?>p#m-x9snLG;eA5%<@B zfYp2nefkUNFZW=^vkR7Ut8U>|2@BVOam8}jxqrimV;M#zZ0}kyO7LN{(1=li7h{7u zj1d;W`Yps*!;KM#6C;*tj8x`hBy%h5VL8SwWf-lL2+MdgMnW?&!kUgT%`}WJZo&xZ z28=**FvhZBB$kd5*#wNzuEF?i6h?czHWnq;iT>AZsj|vl=US>Y)l_-CSV3M?RbTIN zl2a@{H`ms?lE;&~s=2C8J11JLx7p?M!q?^VHTcrfybW4aO>=F7S93SCc%Axw!A-es zO2YG`Do4fd5nc^fc1**sRf~W7BHylr6Br|_*6M;)yzZ|Y@zjayQMXaj5qAgOkqP}+ zf8T)^2Zhhuy3a27yv;t=`JQNAu~rW9uXTPESsro3*q16KeXD3#e?kw3l$8Q+E)coh z`~`gSl9wUfAuD{WcP5$R`R-^kR>;%0B;t31%@Q-KC;!aHmS~%a^3VLOzo_wk@|Y8T zkN9(VAJ$ry&hc(fnrUmgpDfC(p58Un&wNpA^F`7x_j@MGQ268|6=osEFR_lHtZInl zm`MfE6HOGFQl@erM2>bFa^hI8_DnnT>CUY0tflf|nc7W(Ma;LgjQO?B0bfpzo$y;y zZ)i+4Z(qUk%RN5gAVTjfh+#gJLy3rcLt|U|FP^WaA!_dRYmFseI#lTFBIxn`%HwKv z*r>2JLzJPwu+s2+_?+-H;U~gRhJO~`Z&Zzu#%SXxW4tlNm}Sf{78r|+<;L5M)y74} zmB#hP$BezkQxWMAivwt~rqdCJBhHxAh`xwEDOU#tu>ZpPV4Y%#Zj0#Yj7}k?&9Jw# zx1IGvS*rcQOug9uY3qNvt4-O^<)E_*MO~A}X&E)Er>*ypUz=fxp4BrG@vm56nnB()mFZ0jwstXl0E_MKlEl^G7^7cB_*X|AQGAc92>)tF+m|nMt=ZcQ8^qN? zr$vrm?Qj^{_N8>5AKqpeh&PYz$bePC(7|JD(|S7{2KH}rZ1-zMN8u&oREap+CF9)N z+u4>|Y&21dU-VdZaMT5E(I zSl~xn8>8V2j#UGSvA6#76zacUGk2jTZfH!TiVoRdYfN>%mQ03TuA|Cs{3?fBQx1xF z348et=UbkM&&wE6MPVIDQ#n1K9q`cS3;86Ea!8J=;`1Ez+2d8ntxehG_r%nj5N9&{ z*0!m*F9GrkJ5ZeP1=HY^8mK8pEBuSpa{qh&wlwbfQ5O4ox#z^|V>g*QC>2S*Q^EHk z@L;VJde59jT@d#bl>RC>V-=M5&##n0TL1j4_(X1h;B7uja2bPOm)EH^xV7pQw;Lnr z`r4)@jHG2cF-+Fd28P+S-o}>ZV9bWaE}y%uVM*|mjZJc$w2%ym%UA{#MJxepWx2n1 z2N|U7ofe#BsI#}8nkV=jQ&yVDQaZE+<-DP>!2g85!4&&$Ij-K*l3vjcig6P?G*Fl3 zu8s=7*-u1%Z%mQj%M{B&(ZCcBACM=PtkoW`NKtLEg!J}dXlpUDuP?WA2*xMybDtCz zrn<=DF_znlEbcR!iFL_ZEygRA8Kjp@eG?^-XE&_Xd~PG>gsAmuhf!QBg^pIblNKva zb+~cfN~T+^j-5s^j%c5%-z(x?Eoj$NshKh#85$1>7G#=8zbZ+|WGG)D$Hbaae8OxF z^l{zlr<-#1vHmia;Im(_G@V3`@~A(33r?zG>|Ye)iIU_0zgR37|HIPck`j%1z@JWC zI1iY4<}X`9=KvVN%Q-+6LRzPv`FKi7K~~GTGk}z7(UVLxm`Wf2znOpLFXxQ^Kh($n zl1~=}+}aRmt2uCNutby_?cHSs(oI{PA=zMFsM$OEA>l@AR(Q<3wOTYLD>hQ|QQqY8dW*1$QF z%f^nU)l|y1GRGgEOy)W5 ziTQ6FgVowW1})E_Ua4^%Tj&4cZ)B)GsYQ0Jd8_B3Us6aohBZ61vH?m_Xb%hRt$nAs zJ^XRk6YHE&<_Q!T2)K<`wc&d9sxY>EH#8;>-PVz?Pt31gXO0R+B)r7@LBrzYxvmzk zYiXmarrG7x>Z+QWwfd^&nuS`e7k@AWm}85!&wMC{ETUA*r*f!hxLdZq3v6$Vp^n!Fg~x}MiLrJ5SWz-E@zq*M7SUqo zSDEE$Ol$D~H4z)NV&Qmb!zP|%D~I^^hQK3=l&oxdG71y(_*9>p?ca0u)=z}}dk6M!98Rc` zIX;E;C_|k7%&?BjBSU4Wh`Z6=dg5)C+B*-Hl?s_eR^6yYCVB(?!7|uCBwG^N;L~4l z$aD$!6#Y1x^RkXxwIZBHx8%z{$eMMrCXsS@^DCJSqBB z)skV${0K1>z^(_=W*~RejW|~rzN50#7eMWgu`i-TE~zP1%R?`qdCWe`ibrvVa^LHZ zk{0Bb2xpxM2aXA6xCy6-aa~45Enc`f%5U*dg{zTp+L~}cm~af6a4?*YR`Y3MJ~&Ks z7Pj!=XsW1c<}f}?ieSFz2e>(wR~+T$xIRA9%?bE|G%Y>`e2TdM$BFp_^z_0x#OJ1` z;W`^vKCfK{oR1agX;?d(jy1HISWBCQy}x3ttd$TSL@q*%GOV|iW8G~Ib{OTp;%(f< z0{t0kV$^LN@~>$x<3FXCI-@ooJyazB8qv2#)MZe{@Qm^3?Z%^K#*-N#7BRm*mSHm! z?yP*L#_=6Auv3iS++1J7XNa+xTh{KmyhrT>=cXXPDA}o?t`)75BRg6s&teO}HH7QIzmN!KVDb368qJQ5QJs0!Lj5L5?09Y;icGPO^?KTGt%f zlqw?eLE9!_sRP~i4>cRNG(KmHG7!CI!q^_Co=pW)QR259$?@o=I?%>4l#CR@c%0r9 zr%yMF+J)618n%$n%*y+WXv8wWnc!lylu!+U51(MZv$^}=#tap+9jdaI+>6uBpbiR& z;w1E#3>B%))g-&5U2?A@SH^ZnqXxS}I4E+&pO=cmTLV`P#);Z1>hNty%n*2(H8BlK z)8m?0X6$6oW&bdjlG4ePj8Ye^s2dd@R@mN}TRfdNpbFcyutIU7n<7%f6M}JILgYL46uLkwqOIBilJgiDq#WVKvZP)a5>mlm-uG z0!8h0Y9Z`$ksnuo1|eS)c%}0D9Y%58E+jsW%Q7;VC4R+cT$Yi^#V05?bmT{(E@7w5 z+RgDriT75{!l~{H*QdJ%wI-;?tOJ~`=ut{^8)0{CXfHnlHlWQVqUT7|CQxE`d!3aLDLKXOKhQV-o#mphARS_vn=W8+nv)+YFOVLTCx zA>^xgU+pRHc&fwuj21RPXGNjkZH*5bNFP(&Hsxzl^UOo>x=qVfaI2QvD^_}0qlsu=6bbN#K6tjWDA6X{^Prf|8B`s3Bt{L{gw7Afz$ z+6(>V{?-WA^Mrh|w)VgDQ%Y`C*WnkZ({tsRke{gV_mn(KG_SHK&tqnEho$(>VM<90 z#wIt|TPYS-mHn5z3sfV}f!Wh0Pnj|$6B{xORn4_tkJi|L?HJA5(5zK0uBxr8s;+Zs zX=z%cufgN1s@Ht3@3hqVTuoYSGfpw{^ILbUl&zM>EFynAXCj{nyRE#kRPSxxw!byy z2#?~1#Ja6^ZbK!o9^yp*FmqWcj}C{#@>qLh$@~6z`WwpJ+s`Jyd#CyKVzqZiiFf_-LMUZ6jzj!X`- zHlllHpdT^KZ#`dhue*=OPWHJ>_tu`W(p18|Y49GVHkHhtRG)&j*0{UV8@0RBy%2Ow z-H(x_em>ez_U={gdAd(beUhUHu{6Yr492R9Myx2rvIS$+C4s8pZz$zQ?Op93w)eKb zy7T<0?{MCrS+shBI)U5PDR^NcNML!Go|KYU8t~dwJ&FPdwom> z%FLy?y|A*>z%8QwuwRSl`Z>k*{+z76oyBb?1q~+d*B76)hr; zatlknU*kKF!ChY9G;E~VxRdV!{T1Lj1vM~o9-ha*lNN$*ZpxliaktQjTyizzpnq|j z^h+ZK)%8BLHp1)n&TK2w~@oleTBjIKzALLi#-a1Z#Qt=F<%^W zWmsIkI^~6w=XsPpaGHAG#;B)r2qt6lA`3?QRgLwyPz)3On zW3Fz)nF~eKZ8F99oT&MH6Zvet?N{fKI%oD^$hrB65@$gNDX1kdjp-N%g`tl$75aP7 zMjdKTJM6l&VNCcAvQXnI zc_o6#-B(foTN_r=B5k3ZedZp6Y%O>0AhRx!V{8G3Zu2CW(MB=C19n56tZm?Azz=&5 z9S*p(HdxoXz^MY13$7n!J_dIR);ogBZcHrwgv_j;xySgPDn%&A3dT@52Irc445Mzv zq54#j+qS{nF2;eIM;K}&G2bV1wh_|o=w}t5^0!ND0coMPds3oq+5HzpO;hB0_QQ|J5yW)K6xO~0?HSlN^^M0E< z5jKhQzd9-;?lnGz<2D}Y-PpCZ5Npo!{U7+_^X#>xpstQ^k1T2~2J>byx&S9%5N+V6 zSeKRLxlZzWqO{Iz_aQe+8h8wxwxy9pg{&25W+OR>9;sN3->#yq-bDLcrm0p}mbL}D zJKa%ial3b7B)k|g+bVvJx&GGOTQNR~z`EI$==F@qEfRf)VL&==$k4+5rpK5{+mZH9 zaR0vbPe{xC77v|+;PR8^`x%Gv@2wv50tLpCb#I^bGo7A=hHFL0Nwa3t? zqNOR6XC%j{(0i2}kpuUH(`|t!SIidyGe5iPpM{ z`5Td1St>$~fOarMJU=}GZFfRFnaH5$r$UN~gEi9(89_fSX@osH*&b<|kd?n;Ykibf zkG4n_3&vLlM~ZnXmfHdz6FAk#;)ul+s}=)gFsk)1T9$&Xje(GwKc3e1Jx+E!4SE*n zOG952ICVoC6$tx$9F|Bt>&YcB_&H|{FRF?c^h-fInb6GH=Z*yIaX z-nsSnXi2=D$9CW}+6%GmphX? zEu0Fre;v2=T$0b&Y8kLWw~`^7{(tubpEisk(^8pd6@ zeOjXlkNhjvpeyP6Gxy434pcLT`(<&@ysazA`wtH5&&Z(ue7y5QOI9pe4|;f$CsmFJ z#GSz{Y=pDJ5sR=ec~^6v!-PB4tybM$(jrpxIKkve(fArn)9)A+lI9^Xe!y6Q`F2KU z+^P_Bqu}iqCoO$FCzByQE3mb<=cHvjeB;qy4SmoyK5!O#ALTJ+wpnUObHo?b2F@-z zW?zVBi*xf-tTdzVxuKb1`Ro;#<7OQ>DL%>RZYDobJuVHoy_eL*OHb&dP2t5?Iid}Wjba$ ze`RJ9=Uy!N)5Ao5SUIwCe@nv>@=U$FnmMFW<~?MeX358jCD(+jRZ9-^58h$!orhW+ z<{qWyUDKZcmh}5baSsWijq*6<3%$>84%${UP_%Pfvaqa*J61>N-*B2vg|*_*PpoKh zAr^E`FxE!>ueJ%t|K?=d4sGJn9M4fBy^=Fh^r%IOw!7>)DfR;;e$l`o48D@T%oCsK#Cn=#WaXKGOxA7HJ?kRDyJI`+5a9iWzC8I9g?X?JHesg?O>)JosbZtEOj z`Bb~@`e>XaM46vcdT=V*iBq!A@rtt2L!)rN*|E2BCtF!qxP^iKqV;Yg&&G!SJvPom zLwhfqD~#sO;i@M{m1{JXE}M>e9vvE59Hf*2N_9n-OX-SdLMZi9T6ss|Du+3gmfd^S zF8gkav8;5~iL-VtbL64R&S73i4qOvGiIAMx5Sj<5R^XHe_ui{K3$<|Hu%7mjStdHR z!Eu6P4?TI&*y|BH=Q3l@cbE|~Lel+UL(wXCUp{h8vj_U0JrU@4Qe48t+PQZN(cO32`M^Re>#%7gm6Yy(mOT%wg zn+?Au<|`@1T^1~98uTo1x-PO1qs-BGTS(wU`38qupidk|-DfuU%xxM*d5;R8j~&Ow z^|<4xxPIg~#Pd2woX~w+S7$P2*MZZ$SQmO9YeKy%dBw$YrCpp7!ii2BS^&9U11IV3 zyz<$CBTJB@RA?4>z(T|MDLk=Eztz^Y>QHCA@%{Eg?T7r1ciRHUyAShA)ocwM1wN?b zBctyMd~Qh(e2z3ryH{0{F)RO!G1oUd*dC4X!S-m3p(Mp0UQX#aTRu5_C*Orl#y!7% zB0c;7`#QQ&*2uFn9Z|TNaAoOO&dx0AtW(>RAotuZ%<1F|eC{#fS{V4;onEx6&MbHu z88`~PA5(<-@Zaaun)W)_fUA`v-|ODkg{#76uQ-b-$=H5o>2}m924U* zCD2!g14eC1+KfOSd|wk~yar_^!}9{i3;djrp|MQ2ebC9%fdfJ_dm#sQ2Ur%P%Xodn zO<{-5@vYW<-?n=L`{4F#MyxRp?_Px+MOQ+Jvf4}BO2z-1s3y8?u-KmJVwMk;5Oj5*HeI6-(P`U3+&;n zY;!)-Sr<8&qG%;7k|DV2)Mk6FGZGMGhAM+U46f-A2lho4z7Mo_l*zMT5ImE zRhY*ckyq}y^)>1_y}t0SqjP91lr)sX12l#Y&^WKoNAV09b$-zj8e5gL>4E*Iw;rxV zcb0t)>szD+ZI7PW8R)5tO)CuaU`7gkF=vy_6mUmD8a=v}_tbr0-idkCSAqTY^wnd# zAWK{yX6@Pz4B77UjM0o3Kj5w|2AW|p$B<3ew+ZLzTiSX0mLc_x^#Rtcr)Z_u2raWg zM`JMe*onFx9_Xo;e#V$X<%oklqW45eP)7|yCqt#1Oxsrq9n}zbe?!!z=+qqoosT?t z50JD+Cd_qV7wqwoo7cdyL$l*yoy5MzfQCDWjzKpJZAOO?Ed$o^U$yL!i@7E}bT*#H zJLb&%<7DDK6O71&&N^diF3)iX$5Knl zVMJ>(Vn;B}{h26TB==Tb+)MRU6sHvj`hU33k?0`RIqO8=bH0b1`W?}-&-J)nqT8K0 zy^yVnu+kA9RFhD^=sRugIhm~HO zlY>v+rk+hF&gOytUEt>g))zV*IhQ+1Fx(k3O2E2vc?UFeS6z=I@3JY38l(U|kH+?v zcc8>a8Dkabnak%Ttap%7EOb=x(g$9qTrMwR8$&1@D(~P?lWXrc;GiTVeUO8L-$WW= z=0OUOz!6;FH3P=?W`lB?JPwJkv2Io zV5LM|9?;{5c`Uq&CG2TTWvN(=!`f8AR=MgWR^}qGGUpGT^U~KZgDY{0I~k|&b9HJ8 z*0Qnk25Xu|hHjvm7|BV?BCN21ZOiBvty&MK<>8s7WFDQ37 zlIyWs3z&EJa#Ec00oKUH#VwYpLANwI< z^-|VZ=nhJ#PWW^wd9+};6%}KYfMb!k&kKBl`V?!$d=Gsvx=Vtqwamq0jHm}Bn;oP< zE8WQ{yh;pR?Zx#{WjIHlp5fhQZaWrH&*{Vz+YCLOo>&d5Ur`U|_bsOhcC;H9L_k7CuB zSL@73Zz9Wt8KA6PEI+LKeh(|b&}GEpxCXIr@eJDotiqmCzwdmE@{5wEQ=O6P*$?UO(t8FC5) z5*2$vcR{sv-^!IeIcm1DvL`;=o}Z=K3!?XyPjejU=;0WQ_pWrGgtanQuqI*2C0oU` z=&`SnWzQ`yVZOQx>sB}`6FdEOv+66b3b zND(dU%E6U!ZEmoqfSvBGoc$}*Lfj(PUY~V<-fMadi@m%N{k#VTdIq_dpxjti$|sDG zpX8cbay5@nKGd}=3@0x*M%2S@E3eSTiL;jm^su~78|Oy+ERN557w68$Gm-p^L);=+ zdRZ2SG37u=xlcAKq6ERS8rXHwb2nAt$yc<9WIdhrdAbub}V2OgunqGT&h{>Hqu=V?(3&Q!;dWWhUjtG0Mzv^gOXHD<(c?8^20 z90BBdc<}T9w*j_Dyc$}{C8*;p?G<5$TYu*Us zwxFIJ=!bcKL-fPx=~w{-|HC^RQNQ|#Oin}c%?`t?kI0ZThfjxswgKno%-ySg|#d*KMbO*VdBAqp5 zZAuaE-{^8k!5JcY`bGD8^tp3HtnSKEaN84n;v>Lvg}z{~X)fjgQhGQIl|o5#nA`L6 zj|cD8ui-7`VtMagRefOBs_OkI>yy`wFJcRudt^XThd6K4r>Syvn`w8a)3Ds+FwR?j z^q%+cVa*@jA^3^pHZ;5g>({8$>X?iOQLDM4f0w(k2c$lv%yC$emwDG}r+L=LWJoD; zn4VkhJe52<<>sWhiLmpbrAehwDWwon?M3X}=;h2^;0LSJmNfJVunTiA9!SQMaJllH z+jZ}1)+(V7maf(4Z&)`@YkofAHhjheU}!g|dw|EC&>D6o2uOJLYhwh&cmo zl)g&g=KyIX^N6Qqto90fIdc+yt>lD9ZpdkAO0i@9lP}d2=6||S(s|JxlX!C|rGD%R zIC2D?wKZ~IgXzo&DN)wV$I(g#!xn~w#R@H@KrzNi*)|0FUJM-Zg}w)pVMq}9RP&ORe@o5Cj}yH`4&f$o{BsK1!! z@)%piWkkSc!6vem4qM1^#T|WxajdZYCvyAF(PLq|lV`tk0%vHY?wMx(9rdgx6(v@n zB@*=sT|JS8)5?MVU!A~y_!uttnVo{7Ike^A6adjH9LLoo+g0xxZjZm}aX$KNPfc9W zPO^9~p0`7{MqD*eD*>e1hFSAz_hdmC<(GN@j&=HTSQ4#Fb5j?~jcqf^-HbC6isN>X z3MW%VtQny#dY(*|j^~wGa3RyU7BJ`{umISn-V8P8etz&jlAWH0w5B4BJ zgIRmoF5kAHa<#OH+7)eKJ)Le7_wvJGEg`SGS^r#0+zX@4$NW%SGsJ#)hp>;H7@Pu$ z;JQBBDl|^P8Z@UfrL4Y)uJ;S8d!yUTwK{YTk8g(G$m7`IH&*z2ccMpMM(C7>-&j0V zUI+VjFMzt^T;>aU;5Y#_g>;=P52hn1uNCscoycKr*Rvc$gcPs_h1B;9 z*-i(gdFCj~aB!Ti`9)6mdE(NRfy#Yy+%^2Z1U&CG{60>HnqMp8Z1&diyHqrToJ%M+ z9+UV2zuJSDBhrqTCA9^;i{JuaENN{;$Sy@00Jb8GfHE7g6xkhFqT*I4_bx=7!?+M_iW0aCt;dh?W6frXmbEwfFz9lWc z-0!uV@AqoY>pc#2gf^JEq(#HIjd^}we^0xX$7LGfoQLzFTxTPkul8ivvG==_hGU*$ zk)a7VdBI_rPkq5V-|-EwuNgR-l2y=-K_Q>_F+}gF@N0R3(>;TEX(r506_1*=2Uom6 zIeO1I`{%}ixlljmKqib0RNvL_?ciO@EQ@{5-`f4{tc`raytkeA*ke6%du#niVz$qx~SCH9V!23D5IIn5u6=^5Vl*csJq!nOypGOVH zc;5kQipQY!mI_!d%zTcaR59^hvKDMAz#9Y9?YOu8?F9B9k7#~8L3KpU`(B?X51M@h zHHuT0zM+5JL4H5T$79{K`O2d|6%u$8F^+N=r137&-yAq%K%}t14SCpyK|32rZ~p5J zkuv6-lak(PkTSb*?WTfs761jS1rzSNrVAMUedp^a_5rw#g^mV};lx`m=Y?kq z^>q`hqVh=Ry#I-Sd(2|{dm$&W-insP>nnu*>EbaT;g~6TEQg}5I!9U=Y&zt@`$W(c zV*!4J{`RwmaY@XR2+zRRr&suA{S(jFN0rB5A8BesB#t53D%L;yvhxI-Wz;UpWSZr8 z#xE^jrYt}@J^_hyb;2t192U>Da?6b|@BCgL5!!PUdNzr;XTwR(pp{16Ce_ce%;MKA zPQuAn>4u(zN=OPZKSs&rx)`60<`HV}ENt*ejoqW&$17&z6zp-y3ph5#!@m4-O|{t- zg5BB0ep@d}^GQu;Att3)d6S;Ppf7mXnVAd^lL80MI&C?$9ZQ}HitP3)BYCdvsvf8h*hn; zqJoAoHfu#egEh-)&&O5Gvcm4gRLpv<{Z;>>)7a_8I%UPIUjL#qW0kR#IV4y*%ql;; zi3$n|rZMGY^j|5-WaK(d9Zzcdc)}B+ws7+D@2z=n(=9Is z&R~Y!?!>d7WAjKIn~(HT!^DULw(2&0ED^lFabRq5ibs=HD=Zb}^Y&$V#%8gK%a)wP zYz*t8W{ho5=`(HJDxl2;pC0_YbME;*W!uqgP5pP9^ zbMo^`v~i4vC%ql`KS+4e_7%}1yvA=4c)e2C-`C_Ak^e6n-WpTa)SQlghnAkD1^+Xf zRxx`Pn7(H|oExqYZY|vXaF4_7f_oG07~B~=UVtYhx?nCte!#xj&|7p!Sj?guBIlM#qYlKwKVd}Jerm@HM{Dy znyR`wnw3#1YknYw)3vy^Mo_DAI`IT%6Xp9nT3sz(0D}MGq}4TeJv4o(s|GL4^x=&l zdg_8Ir{u!hQeQ1Ot65lE2LgEQd4q=cTDbVxPUgkc1RtdHHniZRpM2*9mAQQU?je2| zr_<%F#d{f;VvvJ^x`vv&5g<6z9}RWlZ4TnTx}^y(WMB!nmV(PBn&xY0YD&{%*VTIO zKCf&d`>GIO&1%xlx%Dots;forK2J-%%iAo8H;YG92VU+n2ePQI@-EXF8eMpSD6(fE zS2d!LjlNpExkIaMsA+T?QGP35jCXIg`|ZkePbYmx?d;legifv@3i@YGn_=;FE)Wsr3zGAeg9wbbdA zDLhK?U%2p4F0x$0|7K0AW@*!)FU$kKlSDk4%la@FQdNhSlsLs3O9nzKkl2L+3=jof zZ-Y0jN%*7En(+Lu%ucV~;KRO7nho;!Cwzm7R_1GHZm4Of)0X(4cUtqZMwgJNPOP+1 zu+2{qH?=f2HuzY*tCumWA{h;&KPL+5JPLB>h76YN9DlA4JZoIPv6>&~H%9m|M zyI5c-XL^Kz_#u*PX>!rDD*k78RcH`+krgXEq=upe+e3+~c}ausZmqUSbHWl($bE|! zRZ_E%m36?|37u?2a{T8tFYE)?H2%=GU3le5gS&Z26v~ zF4@HOw}v$dy&ZUtJ1Aao7c7>ZGn%z7dW5my2K{A;oA`BPRc_cSUEEsJ!j@)H#sMYw zx$vekmlvia2TZe^ni}i4rG#+GF9F7T&05Z5-_1n~X)dnCuDT|E15eYk`sxM{ft}+P zB&-SE$rGZ9_68WhpuB@Op~5Z<+FnsGSAAnM-XIe+5>QCp^bL4{6<-q-);85>-)U)R zu7dTdak-oN97tFkx)Wn|)SvX+^hGYS8m-iFCI zM#=c^)|k^ewL~qsxS)8vmMq@<>TzKS1`~ZOs9+ibJU%o_BW}POh3lSJ(Gnl*jM7jY zU(N-qPU2(IuS4`JU$AN=K3H`+=fimi!-DxU9nPCS%-8?)qths9CMv-SSVgZxX(uj!N@&jJhnHreoA+>2w{Vo=a!y7&=foOUKZa(wlY6vO)V1ALw9d zsg9w8rC8|{AG3Z9URXYHaC{we-t_`M(cYVu)Z*R1m(}7${912q^JT@x(E_wttXb5% z#FBEhHs!hu+eB`oa!FZodD+}z%l~nd2o^#?Ek$7Mb^t>g2k?_2_$gpWUBrJH80*mj zLvsh>KO2Id3&Fn%!K~%Me19E+cZcBLgy5bKye9RKr6$ z4)#LaL%~11^*nzWt{ThX&mX>L$Gs=wN2K7&pP)aip74jI#dXke4~O{pm)wJX9L~LB zsDF?S+V?sBoSq%`x}ouLD?YHQ=lC;iw)g=NdeNW4s%08pEUnpW_{$N07!28Lk^I(a z1mJDcc+oW8FpYOh^Sh|=UTeJ88gI46ORe!vYrN7LZ?wh>t?@o~wgW-IoZ*o>PPG>%$jdlOPx&lP!B@ zRz~J^(z1(kd0fp+7f&wAh0UXyn#N@pjlt=^PAq~pb|}0TO{vSYwhqhN7mvW{n=Vm! z5#H>psc*bQ`dZIoSB(gtIJi$bFi4&lI!G4uYCX+(GwKBt2U46rtiGrg3Qs@(3K{&1 zGB~l9<&}H6vg1YHn<=U%+1pZAhp~_?Gize@q{-J!nOap{<8--0eew&Y6;7Waa^%-9 zYh+tWwn~y%{?78cc_@JW$|?-rbzN<`q};K|cfs!RfDE!jr6zKwrd)abzx9{vVL@$k zL)F)ght4e&$FJd?s|6R;EiL#-=1=fu@Vdrw?x%3zqx@Q-vc z00)bJB~^nP$(;0ZVqg!HtKn;z903!_{_tb>sT%7iUghz*BEG%k@| zA=UhEXsdk7A_?Oj_Fw44GL`;MV)TPDsL&gh>eU@IP&_*34{HNHVaMe4S{{L8oZ9)I zxDG4G6W49``S}|D&%cP<>+gS&uj-tkNBMe{eX&S>?BI_%`4DS~??GH||J2f&2htms zKm5EOuf^*;*{}zsYo;%~Ypv|JYny7lUo%`97^^M3#8~h<-=P0%@iyM={3h`m8=7%` z=ll-yYlaOdpZtV97(~YXK{Vt{5M8l7PluM@mg#83sYD%JrHh$p)b3rH^c;QS?qrF^ zZdJdKDDk;zPv;4EtuAu>%dSl;Ka?|_^d~>iPWd@F^REkjn)x83NgJ>J{cl90pYn@` zcBNy=OLYC=p?Bvj&I7t>?F$Kp?{gIv{Cw$0zk942X!_f4B|UvrtDk7r>dvKE-p9I# zihsH=_NK^NF^MjHeecz;9QgP@3ID#}wp*(5Vpcv#^M2g$<7c}@{&+v#_R355Tzg6z zmP3T}@^e@FO;eYi-ZEq*J=f8GPjvgog%2uMt$4w-an#RTe^i=R4f}b|4->K;P+sl4 zqjU2eKlX|DO0>?YA`*rw#*VR51IQHgmw!HCv zYr(F-`#(FdWcbReSH23o_x;8N`IDdc@ecxr|MquXK%W`#h)nv3CM5ez0}R?tQcW za!25WXO=vgHTmHuW(D@$yZOY%&7<#%2=p8uQ}o@ZwpRT(@atXgo1B}6kNPO^+z&=S zSl0aRzkL#T>L0%+|8t+G{vz_df<6d7$~#r#Bs0ZV!>mLtm|a^5hD7F)A?q%PUuH-fi5FarW5hpDy^r zn&$6rIlJz&X_I#KxnBS7+4N7}JALor-~J=%t5^TA=7+!7b<_HXzH0s?J967qDUZGX z)m6ve&plq0S+cwTxxa6ZUy^WQ-Any<9jp9#;yri9zt~S7jQT^^4Wp+2`OE+M>wB$* zvo~yehWoYJrmE)Vi%-RZdJ}9V!TWEo-%8+H34AMoZzb@p1iqEP|34&P5F=C4G!)08 z<88pBb^IXkxDY(i2oFqBF(joN9d7~7*Dv%hGsZ4wA!@!jx*saHT5dQTND;&I3 z$2@0h*YOVE&XBa5Bu?pu|2Byy*nt02$F~DNDsejV_PE5E*r%rFB)%>Vc&|?X5b!HH zJ_7ufj*kNW#e^R`eWT&`Lml%N{bL=^=Zys&-w7P0<2k_B>KNlF4fbAj*|4}9%aEuJP&12H61&ElO?`=AFxg0 zJ1oGu9PU7Q)mhU2&RpO*I$i^OmyWxE-8w!E+#vB?alp%T44%~v9q$5OEAf2PyShck z2Y`R1<9^`(lGsrQtm}yb^`-t&`d8V3f34&7!25K(9r%EbIo~&Qybt)Wj+xI7C9d89 z{0|-P2kw`+#*B%%QDWDFz#~F%ypB=!uv8sG2f`*v%&X&JH%hz&br&{W$0%diY#kp2 z*7a)1QD9x3OP2!c@>~k}gz54WSeIw(O8D#YY<(Meous+q5b(VcuSETZ-LGTj{~;Y8 z0oLWY5;__73+exT$TRF&9X|}bSI5lf^AfKs1Aax~4XMCyhu~v6=Cb$cxES~g9k0Qn znlK)CXTUb#VY)x$Z_xE~!xO*>(tjfX>#`L%o3|5*97XWYk+>T5Wtc8;Svv475^q4h zhT9~*mg74lZr=y|9f^xkcZN=hU5@~7k+}R(;Qx@AWny?l$Bn>0mzd>jctYaRhk$oU zTxJ1&USh5z!z&Um!SaUT4c=De=h=b(D*cmSLk!2IzZwVpPw9UbcCig#N&lhSv8og$ z{nx$-e5J&<+z)(>#7m%8;YqxGil?@Z0cYzpQ5WGiO02N|Od0=ssK;>e+H3p=QOG2` zQu?#42zSW%!#jXI(x2OYxGp!=&+ui^zv?mIc8NFa0A3^U_n|Z4_ei{84DdFID;@xT zP-1Ss;Xl>=nYYI!UX}{nBQdv&@E0V$6ZIAT2Z=W_%|jA%I}JZ7@%JI;@Q);BTM>Rr z;#Sm4c)u>s2l0YLqx4_A9@ru=w=d%;iCw3F6C`GxH%^ea8FDb{ddPjTQP)GZW5#K^ z{Eq|QEaTs~2Dn1v^#_6Pl01xX0y}knn1=>E{%PPP(%%fFH?GlX_5p8}{?<6)?Gi^l z4E(T6J8wDge@k4&be`7fGjIE)|7|z{V0=~L4bKDrQO3FQ5b%f6zh(~bNu56G)OcF@ z-&qVC&}qUy!lYyH5HU>hc|#-cRWd%?z=*LDSD-J8NRimp4Lnie4d`bh3MA%!C!$nh zw#gBdl77rSU^p&1=>BN$5gR0KdklE1&Sw|!4(ZSRV8l*| zOHtm4XC$7D6Aux(tXdWUzb4ZT?*!Imbp_f*#8K(5ybY}DTk$sF&vZI_amc|W@%JGg zldfa87Xn+Q{~arV<0US86IjV~&=ZqO;s+rj zQ=N>%(lWJ3f2=){sZFn=X5dv4k8A~ArxyC zOfN}X#r)`c#bXK6+d9pIz=vg=xzHceF^N|?fKN!QL2jlqGXC(jSQ`(M*lGoi9E>w0 zR^q$j;ji1hd7v{SNyZ-vIzy)DbP9kAW&Cx}r6IE=-oXBIB<6m3$n6sIIA@4k;&{}> zkUEK5QI;W15?77^{x^xg3z-bj?OxSGz-y%c$`63=k+|tF@DC)O-w*tNUM>yz$I`#$ zB=AnXUX}v?Qcqh3{40qQQNKg>NW7*4Sht639tD0``row+_@Jau*}#9ysH?5czMB^uI4HMs;lroCj0R5 z2EKZi%7`@!?-utp3vggz0jMI3PcsP6)Ley!Cl@p?Nw?7g54L+`)D|BeUHt#bI=3FV zZ5Rsc7X?VRC^nBl+W-YR`_eW*p9qgHyMx%4*O%Qmzdqj~<=JWbkXU2Ult>*?0d%OW z`hX%vfAy66#wgf~UwyT#WitFPxrUZC2LDe-J>@0Y_dK>w6~($fE!Vn3J!Vr?qv z&8cvfaw^;w8bLD3>7X0s^g3VG_66zA8AhloOro5eGen2egK{bl3cSTi$?2f|Fc36y zUi2!=RtJ0^s7TR(rb8nbJ~Vb1;(Z^lg2clBlP%Rt%S&31eLh$H!Vl)78RQO#dS6hi z2#4U}Al^GcCMRdYU{!g#O?(n$5}!v8!%1Frwg_JqS_H4+5E{FW#<_-`kMMGyWzG3} zJ7;~{=S6dD>lZmU4*9}e9OmWp%%3=o<5^DG+=#~O<+ZLzbi%QJ?q>w(QEfaguy&&0 zyNK1tLa9L2iD3*J*GXX3Qb!nTMUolbbyor(PF1U3Uc+`jg-BMx{{VvoxsHJi_M1+r zJvIVmw&pA5Z+(tBX%dE|jWbO>#)=``Mf5u=CHG1xy9Nz!GMZ>SJQ|zre0endfml9M zto$VW(^k3(@Ff!h6yLUNV>ju;YR%7lQ7vT%U)p59o&NfhLU2rJNn_~gLlG?sfOiFz zn~9H{baq4%8t1Gz9O2;tfFcB^J%z`SdxopVjOI4Hi)pI;wt{vI3KEoPtYb_{u>HaV zv&}7zP(yrQObf;}3GhBn_`sFHOtWJ#woFn1q-50;046?=-fNizd|NxF^m$ zv6g_+7t+yF0hnt!llzZQld@HMC);o(qHh9{Rtm^Q2$Opc5zL)mYhhM+f zYChrfX7`=IN@h3SJPr|LL&Pn<f4cH@==yx#bZ>oM#uj8T{}d(Ydx82d82{x$Tp9pJk|{GuRZ7mi3( zR!!Z{_xJbj&F>%pro~TSZB(+xGe8`kE;EZAi^LMzu8Cr(T?G=pSR^Oeu?_5ecZ@AG z#dZ)mV`}S51saA*v#G@>0YAl`@ymBF`jqC;(DmCws`AYbP544->2;>KgGl0X2KtI@ Ull3nh?F)M6f3p;LT@GB*4_o~P0RR91 literal 0 HcmV?d00001 diff --git a/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.c b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.c new file mode 100644 index 0000000..d47d5a2 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.c @@ -0,0 +1,1643 @@ +/* A lexical scanner generated by flex */ + +/* scanner skeleton version: + * $Header: flex.skel,v 1.2 90/06/27 22:56:49 leres Exp $ + */ + +#define FLEX_SCANNER + +#include + +#ifdef __STDC__ + +#ifndef DONT_HAVE_STDLIB_H +#include +#else +void *malloc( unsigned ); +void free( void* ); +#endif + +#define YY_USE_PROTOS +#define YY_USE_CONST +#endif + + +/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ +#ifdef c_plusplus +#ifndef __cplusplus +#define __cplusplus +#endif +#endif + + +#ifdef __cplusplus + +#ifndef __STDC__ +#include +#endif + +#include + +/* use prototypes in function declarations */ +#define YY_USE_PROTOS + +/* the "const" storage-class-modifier is valid */ +#define YY_USE_CONST + +#endif + + +#ifdef __TURBOC__ +#define YY_USE_CONST +#endif + + +#ifndef YY_USE_CONST +#define const +#endif + + +#ifdef YY_USE_PROTOS +#define YY_PROTO(proto) proto +#else +#define YY_PROTO(proto) () +/* there's no standard place to get these definitions */ +char *malloc(); +int free(); +int read(); +#endif + + +/* amount of stuff to slurp up with each read */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* returned upon end-of-file */ +#define YY_END_TOK 0 + +/* copy whatever the last rule matched to the standard output */ + +/* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */ +/* this used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite() + */ +#define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout ) + +/* gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#define YY_INPUT(buf,result,max_size) \ + if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \ + YY_FATAL_ERROR( "read() in flex scanner failed" ); +#define YY_NULL 0 + +/* no semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#define yyterminate() return ( YY_NULL ) + +/* report a fatal error */ + +/* The funky do-while is used to turn this macro definition into + * a single C statement (which needs a semi-colon terminator). + * This avoids problems with code like: + * + * if ( something_happens ) + * YY_FATAL_ERROR( "oops, the something happened" ); + * else + * everything_okay(); + * + * Prior to using the do-while the compiler would get upset at the + * "else" because it interpreted the "if" statement as being all + * done when it reached the ';' after the YY_FATAL_ERROR() call. + */ + +#define YY_FATAL_ERROR(msg) \ + do \ + { \ + (void) fputs( msg, stderr ); \ + (void) putc( '\n', stderr ); \ + exit( 1 ); \ + } \ + while ( 0 ) + +/* default yywrap function - always treat EOF as an EOF */ +#define yywrap() 1 + +/* enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN + */ +#define BEGIN yy_start = 1 + 2 * + +/* action number for EOF rule of a given start state */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* special action meaning "start processing a new file" */ +#define YY_NEW_FILE \ + do \ + { \ + yy_init_buffer( yy_current_buffer, yyin ); \ + yy_load_buffer_state(); \ + } \ + while ( 0 ) + +/* default declaration of generated scanner - a define so the user can + * easily add parameters + */ +#define YY_DECL int yylex YY_PROTO(( void )) + +/* code executed at the end of each rule */ +#define YY_BREAK break; + +#define YY_END_OF_BUFFER_CHAR 0 + +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */ +#endif + +typedef struct yy_buffer_state *YY_BUFFER_STATE; + +#define YY_CHAR char +#define INITIAL 0 +#ifndef lint +static char rcsid[] = +#ifdef FLEX_SCANNER + "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Locked $ (LBL) (flex generated scanner)"; +#else + "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Locked $ (LBL) (lex generated scanner)"; +#endif +#endif +/* +%e 2000 +%p 5000 +%n 1000 +%a 4000 + */ +#define Z 1 +#include "tws.h" +#include + +/* + * Patchable flag that says how to interpret NN/NN/NN dates. When + * true, we do it European style: DD/MM/YY. When false, we do it + * American style: MM/DD/YY. + */ +int europeandate = 0; + +/* + * Table to convert month names to numeric month. We use the + * fact that the low order 5 bits of the sum of the 2nd & 3rd + * characters of the name is a hash with no collisions for the 12 + * valid month names. (The mask to 5 bits maps any combination of + * upper and lower case into the same hash value). + */ +static int month_map[] = { + 0, + 6, /* 1 - Jul */ + 3, /* 2 - Apr */ + 5, /* 3 - Jun */ + 0, + 10, /* 5 - Nov */ + 0, + 1, /* 7 - Feb */ + 11, /* 8 - Dec */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, /*15 - Jan */ + 0, + 0, + 0, + 2, /*19 - Mar */ + 0, + 8, /*21 - Sep */ + 0, + 9, /*23 - Oct */ + 0, + 0, + 4, /*26 - May */ + 0, + 7 /*28 - Aug */ +}; +/* + * Same trick for day-of-week using the hash function + * (c1 & 7) + (c2 & 4) + */ +static int day_map[] = { + 0, + 0, + 0, + 6, /* 3 - Sat */ + 4, /* 4 - Thu */ + 0, + 5, /* 6 - Fri */ + 0, /* 7 - Sun */ + 2, /* 8 - Tue */ + 1 /* 9 - Mon */, + 0, + 3 /*11 - Wed */ +}; +#define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\ + tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\ + cp += 2; } +#define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\ + cp += 2;\ + SKIPD;} +#define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i) +#define SKIPD { while ( !isdigit(*cp++) ) ; --cp; } +#define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; } +#define ZONE(x) { tw.tw_zone=(x); EXPZONE; } +#define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; } +#define LC(c) (isupper(c) ? tolower(c) : (c)) + +#ifdef FLEX_SCANNER +/* We get passed a string and return a pointer to a static tws struct */ +#undef YY_DECL +#define YY_DECL struct tws *dparsetime(str) char *str; + +/* We assume that we're never passed more than max_size characters */ +#undef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if (gstr) { \ + register char *xp; \ + xp = gstr; \ + while (isspace(*xp)) \ + xp++; \ + gstr = xp; \ + while (*xp != '\0') \ + ++xp; \ + result = xp - gstr; \ + bcopy(gstr, buf, result); \ + gstr = 0; \ + } else \ + result = YY_NULL; + +/* Date strings aren't usually very long */ +#undef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 128 + +/* Use mh error reporting routine */ +#undef YY_FATAL_ERROR +#define YY_FATAL_ERROR(s) adios("dparsetime()", s); + +/* We need a pointer to the matched text we can modify */ +#undef YY_USER_ACTION +#define YY_USER_ACTION cp = yytext + +/* Used to initialize */ +static struct tws ztw = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +/* Global for use by YY_INPUT() macro */ +static char *gstr; +#endif + + +/* done after the current pattern has been matched and before the + * corresponding action - sets up yytext + */ +#define YY_DO_BEFORE_ACTION \ + yytext = yy_bp; \ + yyleng = yy_cp - yy_bp; \ + yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yy_c_buf_p = yy_cp; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + +/* return all but the first 'n' matched characters back to the input stream */ +#define yyless(n) \ + do \ + { \ + /* undo effects of setting up yytext */ \ + *yy_cp = yy_hold_char; \ + yy_c_buf_p = yy_cp = yy_bp + n; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, yytext ) + + +struct yy_buffer_state + { + FILE *yy_input_file; + + YY_CHAR *yy_ch_buf; /* input buffer */ + YY_CHAR *yy_buf_pos; /* current position in input buffer */ + + /* size of input buffer in bytes, not including room for EOB characters*/ + int yy_buf_size; + + /* number of characters read into yy_ch_buf, not including EOB characters */ + int yy_n_chars; + + int yy_eof_status; /* whether we've seen an EOF on this buffer */ +#define EOF_NOT_SEEN 0 + /* "pending" happens when the EOF has been seen but there's still + * some text process + */ +#define EOF_PENDING 1 +#define EOF_DONE 2 + }; + +static YY_BUFFER_STATE yy_current_buffer; + +/* we provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state" + */ +#define YY_CURRENT_BUFFER yy_current_buffer + + +/* yy_hold_char holds the character lost when yytext is formed */ +static YY_CHAR yy_hold_char; + +static int yy_n_chars; /* number of characters read into yy_ch_buf */ + + + +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +#ifndef YY_USER_INIT +#define YY_USER_INIT +#endif + +extern YY_CHAR *yytext; +extern int yyleng; +extern FILE *yyin, *yyout; + +YY_CHAR *yytext; +int yyleng; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +#define YY_END_OF_BUFFER 44 +typedef int yy_state_type; +static const short int yy_accept[390] = + { 0, + 0, 0, 0, 0, 44, 42, 40, 39, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 42, 35, 35, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 40, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, + 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, + 28, 27, 33, 21, 20, 19, 18, 15, 32, 31, + 17, 16, 23, 22, 26, 25, 24, 30, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 7, 9, 10, 0, 0, 4, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, + 2, 0, 0, 0, 0, 0, 0, 0, 3, 3, + 11, 7, 7, 9, 10, 0, 4, 4, 4, 0, + + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 6, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 11, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 5, 5, 0, 1, 0, 0, 0 + } ; + +static const YY_CHAR yy_ec[128] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, + 5, 1, 6, 7, 8, 1, 9, 10, 11, 12, + 13, 13, 13, 14, 14, 14, 15, 16, 1, 1, + 1, 1, 1, 1, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 33, 40, 1, + 1, 1, 1, 1, 1, 1, 17, 18, 19, 20, + + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 33, + 40, 1, 1, 1, 1, 1, 1 + } ; + +static const YY_CHAR yy_meta[41] = + { 0, + 1, 2, 1, 1, 1, 1, 3, 1, 4, 5, + 5, 5, 5, 5, 5, 6, 7, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 6, 1, 1, 1, 1, 1, 1, 1, 1 + } ; + +static const short int yy_base[413] = + { 0, + 0, 0, 40, 0, 637, 638, 634, 638, 59, 97, + 620, 72, 59, 613, 68, 83, 73, 602, 613, 101, + 79, 610, 82, 129, 125, 595, 95, 608, 101, 103, + 599, 109, 638, 114, 638, 147, 66, 608, 121, 638, + 151, 139, 590, 604, 145, 622, 589, 591, 137, 146, + 600, 187, 169, 0, 186, 0, 147, 599, 598, 156, + 601, 586, 597, 594, 128, 176, 580, 590, 593, 593, + 585, 579, 105, 141, 578, 569, 570, 569, 572, 573, + 565, 580, 580, 0, 0, 167, 564, 170, 171, 569, + 188, 190, 191, 562, 192, 560, 194, 559, 558, 557, + + 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, + 546, 545, 544, 543, 638, 542, 541, 551, 545, 538, + 543, 535, 550, 550, 0, 560, 0, 217, 534, 544, + 547, 547, 534, 200, 181, 525, 526, 529, 0, 218, + 201, 229, 222, 233, 230, 234, 237, 235, 558, 239, + 240, 242, 245, 243, 255, 253, 261, 262, 0, 0, + 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, + 638, 638, 638, 638, 638, 638, 638, 638, 638, 246, + 260, 265, 266, 243, 271, 267, 548, 549, 555, 276, + 282, 0, 527, 526, 313, 258, 260, 266, 517, 264, + + 532, 269, 531, 530, 282, 273, 548, 547, 520, 512, + 517, 508, 542, 541, 525, 524, 538, 537, 514, 520, + 507, 517, 500, 512, 515, 496, 510, 508, 0, 0, + 521, 510, 509, 491, 507, 488, 502, 500, 0, 505, + 517, 0, 516, 515, 514, 494, 308, 305, 328, 486, + 478, 483, 474, 493, 488, 487, 483, 477, 487, 483, + 501, 329, 500, 465, 482, 482, 458, 463, 494, 455, + 476, 472, 472, 462, 450, 469, 471, 452, 638, 638, + 638, 446, 445, 464, 443, 462, 464, 445, 477, 476, + 475, 474, 473, 472, 471, 0, 330, 470, 332, 435, + + 339, 449, 433, 450, 450, 432, 444, 446, 442, 433, + 459, 458, 346, 457, 437, 423, 350, 416, 352, 434, + 420, 436, 434, 353, 434, 410, 429, 443, 442, 429, + 440, 427, 403, 422, 439, 438, 437, 436, 416, 415, + 401, 394, 412, 398, 413, 309, 396, 389, 394, 425, + 386, 404, 384, 356, 406, 382, 381, 415, 402, 416, + 383, 376, 381, 393, 392, 410, 303, 409, 408, 407, + 359, 374, 360, 366, 400, 397, 361, 377, 373, 371, + 354, 385, 382, 381, 378, 362, 374, 353, 638, 368, + 363, 360, 346, 366, 339, 370, 337, 335, 328, 314, + + 376, 312, 380, 284, 189, 181, 120, 384, 388, 394, + 398, 402 + } ; + +static const short int yy_def[413] = + { 0, + 389, 1, 389, 3, 389, 389, 389, 389, 389, 389, + 10, 10, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 52, 390, 10, 391, 389, 389, 389, 389, + 389, 389, 389, 389, 55, 52, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 392, 393, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 53, 394, 395, 396, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 397, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 398, 399, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 400, 389, 401, 389, + 389, 402, 389, 389, 389, 195, 195, 195, 196, 196, + + 197, 197, 197, 197, 197, 197, 401, 403, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 404, 405, + 389, 389, 389, 389, 389, 389, 389, 389, 406, 406, + 389, 407, 408, 389, 389, 197, 197, 409, 409, 389, + 389, 389, 389, 389, 197, 197, 389, 389, 389, 389, + 389, 410, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 400, + 389, 389, 389, 389, 389, 247, 389, 389, 389, 389, + + 247, 197, 389, 389, 389, 389, 197, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 197, 389, + 389, 389, 389, 389, 389, 411, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 197, 389, 412, 412, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 197, 197, 197, + 389, 389, 389, 411, 389, 389, 389, 197, 0, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389 + } ; + +static const short int yy_nxt[679] = + { 0, + 6, 7, 8, 9, 6, 6, 6, 6, 6, 10, + 11, 10, 12, 12, 12, 6, 13, 6, 6, 14, + 6, 15, 6, 6, 6, 16, 6, 6, 17, 18, + 19, 6, 6, 6, 20, 21, 6, 6, 22, 6, + 6, 7, 8, 9, 6, 23, 6, 24, 6, 10, + 11, 10, 12, 12, 12, 6, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 35, 36, 37, + 38, 39, 40, 40, 41, 42, 43, 40, 44, 45, + 47, 66, 66, 66, 66, 66, 66, 48, 70, 74, + 67, 84, 84, 49, 50, 68, 76, 51, 52, 72, + + 112, 71, 81, 75, 53, 54, 55, 55, 55, 55, + 55, 55, 56, 57, 101, 82, 58, 78, 59, 73, + 103, 79, 60, 70, 291, 61, 62, 63, 106, 102, + 72, 64, 146, 108, 147, 104, 71, 80, 85, 85, + 113, 139, 139, 107, 98, 86, 87, 88, 109, 89, + 73, 90, 91, 120, 92, 114, 67, 93, 94, 99, + 95, 68, 81, 74, 116, 96, 110, 78, 97, 122, + 125, 79, 133, 121, 148, 82, 389, 75, 129, 117, + 149, 111, 123, 130, 54, 289, 98, 80, 52, 101, + 103, 56, 134, 280, 53, 127, 127, 127, 127, 127, + + 127, 99, 208, 57, 102, 104, 58, 106, 59, 108, + 110, 113, 60, 116, 202, 61, 62, 63, 190, 208, + 203, 64, 107, 208, 109, 111, 114, 200, 117, 201, + 208, 208, 192, 193, 213, 208, 208, 210, 208, 214, + 213, 208, 209, 208, 208, 214, 213, 231, 194, 211, + 231, 214, 215, 219, 213, 212, 213, 218, 220, 214, + 221, 214, 213, 213, 231, 232, 216, 214, 214, 231, + 231, 231, 222, 217, 225, 231, 236, 190, 224, 233, + 252, 223, 389, 190, 389, 235, 226, 257, 279, 389, + 389, 228, 193, 389, 251, 227, 238, 192, 193, 253, + + 389, 234, 389, 255, 382, 237, 297, 194, 260, 296, + 346, 298, 259, 194, 246, 389, 243, 384, 239, 367, + 247, 300, 248, 249, 248, 248, 248, 248, 389, 297, + 311, 297, 230, 297, 298, 312, 298, 250, 298, 229, + 297, 207, 301, 189, 300, 298, 300, 311, 300, 248, + 160, 213, 312, 213, 213, 300, 214, 213, 214, 214, + 213, 213, 214, 213, 159, 214, 214, 128, 214, 188, + 188, 191, 126, 389, 191, 191, 191, 242, 231, 208, + 242, 262, 382, 382, 262, 293, 382, 388, 293, 299, + 299, 389, 299, 389, 299, 313, 313, 389, 313, 366, + + 387, 231, 366, 383, 231, 386, 383, 385, 208, 208, + 208, 382, 381, 389, 380, 379, 378, 360, 377, 231, + 376, 375, 374, 373, 372, 371, 208, 370, 369, 368, + 365, 364, 363, 203, 362, 361, 389, 360, 337, 336, + 335, 359, 358, 357, 231, 356, 231, 231, 355, 354, + 353, 352, 351, 350, 349, 149, 348, 347, 208, 346, + 311, 345, 344, 343, 389, 342, 341, 340, 339, 389, + 338, 337, 295, 294, 292, 292, 336, 335, 335, 334, + 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, + 323, 322, 321, 320, 319, 208, 318, 317, 316, 315, + + 314, 208, 261, 310, 309, 308, 307, 389, 389, 306, + 305, 304, 303, 302, 389, 295, 294, 292, 241, 290, + 288, 287, 286, 285, 284, 283, 282, 281, 278, 277, + 276, 275, 274, 273, 272, 271, 270, 269, 208, 208, + 268, 267, 213, 213, 266, 265, 264, 263, 208, 261, + 258, 389, 256, 254, 245, 244, 241, 187, 240, 208, + 206, 205, 204, 199, 198, 197, 196, 195, 187, 186, + 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, + 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, + 165, 164, 163, 162, 161, 115, 112, 105, 100, 158, + + 157, 156, 155, 154, 153, 152, 151, 150, 145, 144, + 143, 142, 141, 140, 138, 137, 136, 135, 132, 131, + 124, 119, 118, 46, 83, 115, 77, 105, 69, 100, + 83, 77, 76, 69, 65, 46, 389, 5, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389 + } ; + +static const short int yy_chk[679] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 9, 12, 12, 12, 12, 12, 12, 9, 15, 17, + 13, 23, 23, 9, 9, 13, 37, 9, 10, 16, + + 37, 15, 21, 17, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 27, 21, 10, 20, 10, 16, + 29, 20, 10, 30, 407, 10, 10, 10, 32, 27, + 34, 10, 73, 34, 73, 29, 30, 20, 24, 24, + 39, 65, 65, 32, 25, 24, 24, 24, 34, 24, + 34, 24, 24, 49, 24, 39, 25, 24, 24, 25, + 24, 25, 42, 36, 45, 24, 36, 41, 24, 50, + 53, 41, 60, 49, 74, 42, 53, 36, 57, 45, + 74, 36, 50, 57, 66, 406, 86, 41, 52, 88, + 89, 66, 60, 405, 52, 55, 55, 55, 55, 55, + + 55, 86, 141, 52, 88, 89, 52, 91, 52, 92, + 93, 95, 52, 97, 135, 52, 52, 52, 128, 140, + 135, 52, 91, 143, 92, 93, 95, 134, 97, 134, + 142, 145, 128, 128, 144, 146, 148, 141, 147, 144, + 150, 151, 140, 152, 154, 150, 153, 184, 128, 142, + 180, 153, 144, 148, 156, 143, 155, 147, 150, 156, + 151, 155, 157, 158, 181, 180, 145, 157, 158, 182, + 183, 186, 152, 146, 155, 185, 184, 190, 154, 181, + 197, 153, 196, 191, 197, 183, 156, 202, 404, 202, + 198, 158, 190, 206, 196, 157, 186, 191, 191, 198, + + 200, 182, 205, 200, 367, 185, 248, 190, 206, 247, + 346, 248, 205, 191, 195, 247, 402, 367, 400, 346, + 195, 248, 195, 195, 195, 195, 195, 195, 247, 249, + 262, 297, 399, 299, 249, 262, 297, 195, 299, 398, + 301, 397, 249, 395, 249, 301, 297, 313, 299, 301, + 393, 317, 313, 319, 324, 301, 317, 354, 319, 324, + 371, 373, 354, 386, 392, 371, 373, 391, 386, 394, + 394, 396, 390, 388, 396, 396, 396, 401, 387, 385, + 401, 403, 384, 383, 403, 408, 382, 381, 408, 409, + 409, 380, 409, 379, 409, 410, 410, 378, 410, 411, + + 377, 376, 411, 412, 375, 374, 412, 372, 370, 369, + 368, 366, 365, 364, 363, 362, 361, 360, 359, 358, + 357, 356, 355, 353, 352, 351, 350, 349, 348, 347, + 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, + 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, + 325, 323, 322, 321, 320, 318, 316, 315, 314, 312, + 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, + 300, 298, 295, 294, 293, 292, 291, 290, 289, 288, + 287, 286, 285, 284, 283, 282, 278, 277, 276, 275, + 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, + + 264, 263, 261, 260, 259, 258, 257, 256, 255, 254, + 253, 252, 251, 250, 246, 245, 244, 243, 241, 240, + 238, 237, 236, 235, 234, 233, 232, 231, 228, 227, + 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, + 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, + 204, 203, 201, 199, 194, 193, 189, 188, 187, 149, + 138, 137, 136, 133, 132, 131, 130, 129, 126, 124, + 123, 122, 121, 120, 119, 118, 117, 116, 114, 113, + 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, + 102, 101, 100, 99, 98, 96, 94, 90, 87, 83, + + 82, 81, 80, 79, 78, 77, 76, 75, 72, 71, + 70, 69, 68, 67, 64, 63, 62, 61, 59, 58, + 51, 48, 47, 46, 44, 43, 38, 31, 28, 26, + 22, 19, 18, 14, 11, 7, 5, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389 + } ; + +static yy_state_type yy_last_accepting_state; +static YY_CHAR *yy_last_accepting_cpos; + +/* the intent behind this definition is that it'll catch + * any uses of REJECT which flex missed + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 + +/* these variables are all declared out here so that section 3 code can + * manipulate them + */ +/* points to current character in buffer */ +static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0; +static int yy_init = 1; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +static yy_state_type yy_get_previous_state YY_PROTO(( void )); +static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); +static int yy_get_next_buffer YY_PROTO(( void )); +static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr )); +void yyrestart YY_PROTO(( FILE *input_file )); +void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); +void yy_load_buffer_state YY_PROTO(( void )); +YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); +void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); +void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); + +#define yy_new_buffer yy_create_buffer + +#ifdef __cplusplus +static int yyinput YY_PROTO(( void )); +#else +static int input YY_PROTO(( void )); +#endif + +YY_DECL + { + register yy_state_type yy_current_state; + register YY_CHAR *yy_cp, *yy_bp; + register int yy_act; + + + register int i, gotdate; + register char *cp; + static struct tws tw; + static void zonehack(); + + BEGIN(INITIAL); + yy_init = 1; + tw = ztw; + gstr = str; + gotdate = 0; + + + if ( yy_init ) + { + YY_USER_INIT; + + if ( ! yy_start ) + yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( yy_current_buffer ) + yy_init_buffer( yy_current_buffer, yyin ); + else + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); + + yy_load_buffer_state(); + + yy_init = 0; + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = yy_c_buf_p; + + /* support of yytext */ + *yy_cp = yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of the + * current run. + */ + yy_bp = yy_cp; + + yy_current_state = yy_start; +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[*yy_cp]; + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = yy_def[yy_current_state]; + if ( yy_current_state >= 390 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + ++yy_cp; + } + while ( yy_current_state != 389 ); + yy_cp = yy_last_accepting_cpos; + yy_current_state = yy_last_accepting_state; + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + + YY_DO_BEFORE_ACTION; + YY_USER_ACTION; + +do_action: /* this label is used only to access EOF actions */ + + + switch ( yy_act ) + { + case 0: /* must backtrack */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yy_hold_char; + yy_cp = yy_last_accepting_cpos; + yy_current_state = yy_last_accepting_state; + goto yy_find_action; + +case 1: +SETDAY; + YY_BREAK +case 2: +{ + cp++; + SETDAY; + } + YY_BREAK +case 3: +{ + if (europeandate) { + /* European: DD/MM/YY */ + tw.tw_mday = CVT2; + cp++; + tw.tw_mon = CVT2 - 1; + } else { + /* American: MM/DD/YY */ + tw.tw_mon = CVT2 - 1; + cp++; + tw.tw_mday = CVT2; + } + cp++; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i % 100; + gotdate++; + } + YY_BREAK +case 4: +{ + tw.tw_mday = CVT2; + while (!isalpha(*cp++)) + ; + SETMONTH; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i % 100; + } + YY_BREAK +case 5: +{ + cp++; + SETMONTH; + tw.tw_mday = CVT2; + SKIPD; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i % 100; + } + YY_BREAK +case 6: +{ + cp++; + SETMONTH; + tw.tw_mday = CVT2; + } + YY_BREAK +case 7: +{ + tw.tw_hour = CVT2; cp++; + tw.tw_min = CVT2; cp++; + tw.tw_sec = CVT2; + BEGIN Z; + } + YY_BREAK +case 8: +{ + tw.tw_hour = CVT2; cp++; + tw.tw_min = CVT2; + BEGIN Z; + } + YY_BREAK +case 9: +{ + tw.tw_hour = CVT2; cp++; + if (tw.tw_hour == 12) + tw.tw_hour = 0; + tw.tw_min = CVT2; + BEGIN Z; + } + YY_BREAK +case 10: +{ + tw.tw_hour = CVT2; cp++; + if (tw.tw_hour != 12) + tw.tw_hour += 12; + tw.tw_min = CVT2; + BEGIN Z; + } + YY_BREAK +case 11: +{ + tw.tw_hour = CVT2; + tw.tw_min = CVT2; + tw.tw_sec = CVT2; + BEGIN Z; + } + YY_BREAK +case 12: +{ + /* + * Luckly, 4 digit times in the range + * 1960-1999 aren't legal as hour + * and minutes. This rule must come + * the 4 digit hour and minute rule. + */ + cp += 2; + tw.tw_year = CVT2; + } + YY_BREAK +case 13: +{ + tw.tw_hour = CVT2; + tw.tw_min = CVT2; + BEGIN Z; + } + YY_BREAK +case 14: +ZONE(0 * 60); + YY_BREAK +case 15: +ZONE(0 * 60); + YY_BREAK +case 16: +ZONE(2 * 60); + YY_BREAK +case 17: +ZONED(2 * 60); + YY_BREAK +case 18: +ZONE(-5 * 60); + YY_BREAK +case 19: +ZONED(-5 * 60); + YY_BREAK +case 20: +ZONE(-6 * 60); + YY_BREAK +case 21: +ZONED(-6 * 60); + YY_BREAK +case 22: +ZONE(-7 * 60); + YY_BREAK +case 23: +ZONED(-7 * 60); + YY_BREAK +case 24: +ZONE(-8 * 60); + YY_BREAK +case 25: +ZONED(-8 * 60); + YY_BREAK +case 26: +ZONE(-(3 * 60 + 30)); + YY_BREAK +case 27: +ZONE(-4 * 60); + YY_BREAK +case 28: +ZONED(-4 * 60); + YY_BREAK +case 29: +ZONE(-9 * 60); + YY_BREAK +case 30: +ZONED(-9 * 60); + YY_BREAK +case 31: +ZONE(-10 * 60); + YY_BREAK +case 32: +ZONED(-10 * 60); + YY_BREAK +case 33: +ZONED(-1 * 60); + YY_BREAK +case 34: +{ + tw.tw_zone = 60 * (('a'-1) - LC(*cp)); + EXPZONE; + } + YY_BREAK +case 35: +{ + tw.tw_zone = 60 * ('a' - LC(*cp)); + EXPZONE; + } + YY_BREAK +case 36: +{ + tw.tw_zone = 60 * (LC(*cp) - 'm'); + EXPZONE; + } + YY_BREAK +case 37: +{ + cp++; + tw.tw_zone = ((cp[0] * 10 + cp[1]) + -('0' * 10 + '0'))*60 + +((cp[2] * 10 + cp[3]) + -('0' * 10 + '0')); +#ifdef DSTXXX + zonehack (&tw); +#endif DSTXXX + cp += 4; + EXPZONE; + } + YY_BREAK +case 38: +{ + cp++; + tw.tw_zone = (('0' * 10 + '0') + -(cp[0] * 10 + cp[1]))*60 + +(('0' * 10 + '0') + -(cp[2] * 10 + cp[3])); +#ifdef DSTXXX + zonehack (&tw); +#endif DSTXXX + cp += 4; + EXPZONE; + } + YY_BREAK +case 39: +case 40: +; + YY_BREAK +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(Z): +return(&tw); + YY_BREAK +case 42: +{ + /* + * We jammed; it's an error if we + * didn't parse anything. + */ + if (!gotdate || tw.tw_year == 0) + return(0); + return(&tw); + } + YY_BREAK +case 43: +YY_FATAL_ERROR( "flex scanner jammed" ); + YY_BREAK + + case YY_END_OF_BUFFER: + { + /* amount of text matched not including the EOB char */ + int yy_amount_of_matched_text = yy_cp - yytext - 1; + + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yy_hold_char; + + /* note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the end- + * of-buffer state). Contrast this with the test in yyinput(). + */ + if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + /* this was really a NUL */ + { + yy_state_type yy_next_state; + + yy_c_buf_p = yytext + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + /* okay, we're now positioned to make the + * NUL transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we + * don't want to build jamming into it because + * then it will run more slowly) + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = yytext + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* consume the NUL */ + yy_cp = ++yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yy_last_accepting_cpos; + yy_current_state = yy_last_accepting_state; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer() ) + { + case EOB_ACT_END_OF_FILE: + { + yy_did_buffer_switch_on_eof = 0; + + if ( yywrap() ) + { + /* note: because we've taken care in + * yy_get_next_buffer() to have set up yytext, + * we can now set up yy_c_buf_p so that if some + * total hoser (like flex itself) wants + * to call the scanner after we return the + * YY_NULL, it'll still work - another YY_NULL + * will get returned. + */ + yy_c_buf_p = yytext + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF((yy_start - 1) / 2); + goto do_action; + } + + else + { + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + } + break; + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = yytext + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yy_c_buf_p = + &yy_current_buffer->yy_ch_buf[yy_n_chars]; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: +#ifdef FLEX_DEBUG + printf( "action # %d\n", yy_act ); +#endif + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } + } + } + + +/* yy_get_next_buffer - try to read in a new buffer + * + * synopsis + * int yy_get_next_buffer(); + * + * returns a code representing an action + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ + +static int yy_get_next_buffer() + + { + register YY_CHAR *dest = yy_current_buffer->yy_ch_buf; + register YY_CHAR *source = yytext - 1; /* copy prev. char, too */ + register int number_to_move, i; + int ret_val; + + if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + /* try to read more data */ + + /* first move last chars to start of buffer */ + number_to_move = yy_c_buf_p - yytext; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + yy_n_chars = 0; + + else + { + int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + else if ( num_to_read <= 0 ) + YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); + + /* read in more data */ + YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), + yy_n_chars, num_to_read ); + } + + if ( yy_n_chars == 0 ) + { + if ( number_to_move == 1 ) + { + ret_val = EOB_ACT_END_OF_FILE; + yy_current_buffer->yy_eof_status = EOF_DONE; + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + yy_current_buffer->yy_eof_status = EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yy_n_chars += number_to_move; + yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; + yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + /* yytext begins at the second character in yy_ch_buf; the first + * character is the one which preceded it before reading in the latest + * buffer; it needs to be kept around in case it's a newline, so + * yy_get_previous_state() will have with '^' rules active + */ + + yytext = &yy_current_buffer->yy_ch_buf[1]; + + return ( ret_val ); + } + + +/* yy_get_previous_state - get the state just before the EOB char was reached + * + * synopsis + * yy_state_type yy_get_previous_state(); + */ + +static yy_state_type yy_get_previous_state() + + { + register yy_state_type yy_current_state; + register YY_CHAR *yy_cp; + + yy_current_state = yy_start; + + for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1); + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = yy_def[yy_current_state]; + if ( yy_current_state >= 390 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + } + + return ( yy_current_state ); + } + + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + +#ifdef YY_USE_PROTOS +static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state ) +#else +static yy_state_type yy_try_NUL_trans( yy_current_state ) +register yy_state_type yy_current_state; +#endif + + { + register int yy_is_jam; + register YY_CHAR *yy_cp = yy_c_buf_p; + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yy_last_accepting_state = yy_current_state; + yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = yy_def[yy_current_state]; + if ( yy_current_state >= 390 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 389); + + return ( yy_is_jam ? 0 : yy_current_state ); + } + + +#ifdef YY_USE_PROTOS +static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp ) +#else +static void yyunput( c, yy_bp ) +YY_CHAR c; +register YY_CHAR *yy_bp; +#endif + + { + register YY_CHAR *yy_cp = yy_c_buf_p; + + /* undo effects of setting up yytext */ + *yy_cp = yy_hold_char; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */ + register YY_CHAR *dest = + &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2]; + register YY_CHAR *source = + &yy_current_buffer->yy_ch_buf[number_to_move]; + + while ( source > yy_current_buffer->yy_ch_buf ) + *--dest = *--source; + + yy_cp += dest - source; + yy_bp += dest - source; + yy_n_chars = yy_current_buffer->yy_buf_size; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + if ( yy_cp > yy_bp && yy_cp[-1] == '\n' ) + yy_cp[-2] = '\n'; + + *--yy_cp = c; + + /* note: the formal parameter *must* be called "yy_bp" for this + * macro to now work correctly + */ + YY_DO_BEFORE_ACTION; /* set up yytext again */ + } + + +#ifdef __cplusplus +static int yyinput() +#else +static int input() +#endif + + { + int c; + YY_CHAR *yy_cp = yy_c_buf_p; + + *yy_cp = yy_hold_char; + + if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + /* this was really a NUL */ + *yy_c_buf_p = '\0'; + + else + { /* need more input */ + yytext = yy_c_buf_p; + ++yy_c_buf_p; + + switch ( yy_get_next_buffer() ) + { + case EOB_ACT_END_OF_FILE: + { + if ( yywrap() ) + { + yy_c_buf_p = yytext + YY_MORE_ADJ; + return ( EOF ); + } + + YY_NEW_FILE; + +#ifdef __cplusplus + return ( yyinput() ); +#else + return ( input() ); +#endif + } + break; + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = yytext + YY_MORE_ADJ; + break; + + case EOB_ACT_LAST_MATCH: +#ifdef __cplusplus + YY_FATAL_ERROR( "unexpected last match in yyinput()" ); +#else + YY_FATAL_ERROR( "unexpected last match in input()" ); +#endif + } + } + } + + c = *yy_c_buf_p; + yy_hold_char = *++yy_c_buf_p; + + return ( c ); + } + + +#ifdef YY_USE_PROTOS +void yyrestart( FILE *input_file ) +#else +void yyrestart( input_file ) +FILE *input_file; +#endif + + { + yy_init_buffer( yy_current_buffer, input_file ); + yy_load_buffer_state(); + } + + +#ifdef YY_USE_PROTOS +void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) +#else +void yy_switch_to_buffer( new_buffer ) +YY_BUFFER_STATE new_buffer; +#endif + + { + if ( yy_current_buffer == new_buffer ) + return; + + if ( yy_current_buffer ) + { + /* flush out information for old buffer */ + *yy_c_buf_p = yy_hold_char; + yy_current_buffer->yy_buf_pos = yy_c_buf_p; + yy_current_buffer->yy_n_chars = yy_n_chars; + } + + yy_current_buffer = new_buffer; + yy_load_buffer_state(); + + /* we don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yy_did_buffer_switch_on_eof = 1; + } + + +#ifdef YY_USE_PROTOS +void yy_load_buffer_state( void ) +#else +void yy_load_buffer_state() +#endif + + { + yy_n_chars = yy_current_buffer->yy_n_chars; + yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos; + yyin = yy_current_buffer->yy_input_file; + yy_hold_char = *yy_c_buf_p; + } + + +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) +#else +YY_BUFFER_STATE yy_create_buffer( file, size ) +FILE *file; +int size; +#endif + + { + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) ); + + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) ); + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + yy_init_buffer( b, file ); + + return ( b ); + } + + +#ifdef YY_USE_PROTOS +void yy_delete_buffer( YY_BUFFER_STATE b ) +#else +void yy_delete_buffer( b ) +YY_BUFFER_STATE b; +#endif + + { + if ( b == yy_current_buffer ) + yy_current_buffer = (YY_BUFFER_STATE) 0; + + free( (char *) b->yy_ch_buf ); + free( (char *) b ); + } + + +#ifdef YY_USE_PROTOS +void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) +#else +void yy_init_buffer( b, file ) +YY_BUFFER_STATE b; +FILE *file; +#endif + + { + b->yy_input_file = file; + + /* we put in the '\n' and start reading from [1] so that an + * initial match-at-newline will be true. + */ + + b->yy_ch_buf[0] = '\n'; + b->yy_n_chars = 1; + + /* we always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[1]; + + b->yy_eof_status = EOF_NOT_SEEN; + } + + +#ifdef DSTXXX +#include +#ifndef BSD42 +#include +#else BSD42 +#include +#endif BSD42 + +static void +zonehack(tw) + register struct tws *tw; +{ + register struct tm *tm; + + if (twclock (tw) == -1L) + return; + + tm = localtime (&tw -> tw_clock); + if (tm -> tm_isdst) { + tw -> tw_flags |= TW_DST; + tw -> tw_zone -= 60; + } +} +#endif DSTXXX diff --git a/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.lex b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.lex new file mode 100644 index 0000000..035793e --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/dtimep.lex @@ -0,0 +1,375 @@ +%{ +#ifndef lint +static char rcsid[] = +#ifdef FLEX_SCANNER + "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (flex generated scanner)"; +#else + "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (lex generated scanner)"; +#endif +#endif +%} +/* +%e 2000 +%p 5000 +%n 1000 +%a 4000 + */ + +%START Z +sun (sun(day)?) +mon (mon(day)?) +tue (tue(sday)?) +wed (wed(nesday)?) +thu (thu(rsday)?) +fri (fri(day)?) +sat (sat(urday)?) + +DAY ({sun}|{mon}|{tue}|{wed}|{thu}|{fri}|{sat}) + +jan (jan(uary)?) +feb (feb(ruary)?) +mar (mar(ch)?) +apr (apr(il)?) +may (may) +jun (jun(e)?) +jul (jul(y)?) +aug (aug(ust)?) +sep (sep(tember)?) +oct (oct(ober)?) +nov (nov(ember)?) +dec (dec(ember)?) + +MONTH ({jan}|{feb}|{mar}|{apr}|{may}|{jun}|{jul}|{aug}|{sep}|{oct}|{nov}|{dec}) + +w ([ \t]*) +W ([ \t]+) +D ([0-9]?[0-9]) +d [0-9] +%{ +#include "tws.h" +#include + +/* + * Patchable flag that says how to interpret NN/NN/NN dates. When + * true, we do it European style: DD/MM/YY. When false, we do it + * American style: MM/DD/YY. + */ +int europeandate = 0; + +/* + * Table to convert month names to numeric month. We use the + * fact that the low order 5 bits of the sum of the 2nd & 3rd + * characters of the name is a hash with no collisions for the 12 + * valid month names. (The mask to 5 bits maps any combination of + * upper and lower case into the same hash value). + */ +static int month_map[] = { + 0, + 6, /* 1 - Jul */ + 3, /* 2 - Apr */ + 5, /* 3 - Jun */ + 0, + 10, /* 5 - Nov */ + 0, + 1, /* 7 - Feb */ + 11, /* 8 - Dec */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, /*15 - Jan */ + 0, + 0, + 0, + 2, /*19 - Mar */ + 0, + 8, /*21 - Sep */ + 0, + 9, /*23 - Oct */ + 0, + 0, + 4, /*26 - May */ + 0, + 7 /*28 - Aug */ +}; +/* + * Same trick for day-of-week using the hash function + * (c1 & 7) + (c2 & 4) + */ +static int day_map[] = { + 0, + 0, + 0, + 6, /* 3 - Sat */ + 4, /* 4 - Thu */ + 0, + 5, /* 6 - Fri */ + 0, /* 7 - Sun */ + 2, /* 8 - Tue */ + 1 /* 9 - Mon */, + 0, + 3 /*11 - Wed */ +}; +#define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\ + tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\ + cp += 2; } +#define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\ + cp += 2;\ + SKIPD;} +#define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i) +#define SKIPD { while ( !isdigit(*cp++) ) ; --cp; } +#define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; } +#define ZONE(x) { tw.tw_zone=(x); EXPZONE; } +#define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; } +#define LC(c) (isupper(c) ? tolower(c) : (c)) + +#ifdef FLEX_SCANNER +/* We get passed a string and return a pointer to a static tws struct */ +#undef YY_DECL +#define YY_DECL struct tws *dparsetime(str) char *str; + +/* We assume that we're never passed more than max_size characters */ +#undef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if (gstr) { \ + register char *xp; \ + xp = gstr; \ + while (isspace(*xp)) \ + xp++; \ + gstr = xp; \ + while (*xp != '\0') \ + ++xp; \ + result = xp - gstr; \ + bcopy(gstr, buf, result); \ + gstr = 0; \ + } else \ + result = YY_NULL; + +/* Date strings aren't usually very long */ +#undef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 128 + +/* Use mh error reporting routine */ +#undef YY_FATAL_ERROR +#define YY_FATAL_ERROR(s) adios("dparsetime()", s); + +/* We need a pointer to the matched text we can modify */ +#undef YY_USER_ACTION +#define YY_USER_ACTION cp = yytext + +/* Used to initialize */ +static struct tws ztw = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +/* Global for use by YY_INPUT() macro */ +static char *gstr; +#endif + +%} + +%% + register int i, gotdate; + register char *cp; + static struct tws tw; + static void zonehack(); + + BEGIN(INITIAL); + yy_init = 1; + tw = ztw; + gstr = str; + gotdate = 0; + +{DAY}","?{w} SETDAY; +"("{DAY}")"(","?) { + cp++; + SETDAY; + } + +{D}"/"{D}"/"(19)?[0-9][0-9]{w} { + if (europeandate) { + /* European: DD/MM/YY */ + tw.tw_mday = CVT2; + cp++; + tw.tw_mon = CVT2 - 1; + } else { + /* American: MM/DD/YY */ + tw.tw_mon = CVT2 - 1; + cp++; + tw.tw_mday = CVT2; + } + cp++; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i % 100; + gotdate++; + } +{D}{w}(-)?{w}{MONTH}{w}(-)?{w}(19)?{D}{w}(\,{w}|at{W})? { + tw.tw_mday = CVT2; + while (!isalpha(*cp++)) + ; + SETMONTH; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i % 100; + } +{MONTH}{W}{D}","{W}(19)?{D}{w} { + cp++; + SETMONTH; + tw.tw_mday = CVT2; + SKIPD; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i % 100; + } + +{MONTH}{W}{D}{w} { + cp++; + SETMONTH; + tw.tw_mday = CVT2; + } + +{D}:{D}:{D}{w} { + tw.tw_hour = CVT2; cp++; + tw.tw_min = CVT2; cp++; + tw.tw_sec = CVT2; + BEGIN Z; + } +{D}:{D}{w} { + tw.tw_hour = CVT2; cp++; + tw.tw_min = CVT2; + BEGIN Z; + } +{D}:{D}{w}am{w} { + tw.tw_hour = CVT2; cp++; + if (tw.tw_hour == 12) + tw.tw_hour = 0; + tw.tw_min = CVT2; + BEGIN Z; + } +{D}:{D}{w}pm{w} { + tw.tw_hour = CVT2; cp++; + if (tw.tw_hour != 12) + tw.tw_hour += 12; + tw.tw_min = CVT2; + BEGIN Z; + } +[0-2]{d}{d}{d}{d}{d}{w} { + tw.tw_hour = CVT2; + tw.tw_min = CVT2; + tw.tw_sec = CVT2; + BEGIN Z; + } +19[6-9]{d}{w} { + /* + * Luckly, 4 digit times in the range + * 1960-1999 aren't legal as hour + * and minutes. This rule must come + * the 4 digit hour and minute rule. + */ + cp += 2; + tw.tw_year = CVT2; + } +[0-2]{d}{d}{d}{w} { + tw.tw_hour = CVT2; + tw.tw_min = CVT2; + BEGIN Z; + } +"-"?ut ZONE(0 * 60); +"-"?gmt ZONE(0 * 60); +"-"?jst ZONE(2 * 60); +"-"?jdt ZONED(2 * 60); +"-"?est ZONE(-5 * 60); +"-"?edt ZONED(-5 * 60); +"-"?cst ZONE(-6 * 60); +"-"?cdt ZONED(-6 * 60); +"-"?mst ZONE(-7 * 60); +"-"?mdt ZONED(-7 * 60); +"-"?pst ZONE(-8 * 60); +"-"?pdt ZONED(-8 * 60); +"-"?nst ZONE(-(3 * 60 + 30)); +"-"?ast ZONE(-4 * 60); +"-"?adt ZONED(-4 * 60); +"-"?yst ZONE(-9 * 60); +"-"?ydt ZONED(-9 * 60); +"-"?hst ZONE(-10 * 60); +"-"?hdt ZONED(-10 * 60); +"-"?bst ZONED(-1 * 60); +[a-i] { + tw.tw_zone = 60 * (('a'-1) - LC(*cp)); + EXPZONE; + } +[k-m] { + tw.tw_zone = 60 * ('a' - LC(*cp)); + EXPZONE; + } +[n-y] { + tw.tw_zone = 60 * (LC(*cp) - 'm'); + EXPZONE; + } +"+"[0-1]{d}{d}{d} { + cp++; + tw.tw_zone = ((cp[0] * 10 + cp[1]) + -('0' * 10 + '0'))*60 + +((cp[2] * 10 + cp[3]) + -('0' * 10 + '0')); +#ifdef DSTXXX + zonehack (&tw); +#endif DSTXXX + cp += 4; + EXPZONE; + } +"-"[0-1]{d}{d}{d} { + cp++; + tw.tw_zone = (('0' * 10 + '0') + -(cp[0] * 10 + cp[1]))*60 + +(('0' * 10 + '0') + -(cp[2] * 10 + cp[3])); +#ifdef DSTXXX + zonehack (&tw); +#endif DSTXXX + cp += 4; + EXPZONE; + } + +\n | +{W} ; + +<> return(&tw); + +. { + /* + * We jammed; it's an error if we + * didn't parse anything. + */ + if (!gotdate || tw.tw_year == 0) + return(0); + return(&tw); + } + +%% + +#ifdef DSTXXX +#include +#ifndef BSD42 +#include +#else BSD42 +#include +#endif BSD42 + +static void +zonehack(tw) + register struct tws *tw; +{ + register struct tm *tm; + + if (twclock (tw) == -1L) + return; + + tm = localtime (&tw -> tw_clock); + if (tm -> tm_isdst) { + tw -> tw_flags |= TW_DST; + tw -> tw_zone -= 60; + } +} +#endif DSTXXX diff --git a/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/test.input b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/test.input new file mode 100644 index 0000000..d1edb1f --- /dev/null +++ b/docs/historical/mh-6.8.5/local/lbl/zotnet/tws/test.input @@ -0,0 +1,23 @@ +11 MAR 1980 1559-PST +12 March 1980 11:41-EST +10 Feb 1982 11:22:30-PST +85/10/29 14:44:13 +2 Dec 1986 1103-PST (Tuesday) +27-Dec-1986 2323 +06-Oct-88 00:57 +12/02/88 12:36:12 EST +Mon, 05 Dec 88 22:17:19 PST +Fri, 16 Dec 88 18:49:09 PST +5 Jan 89 11:45 +0100 +Fri Jan 6 12:46:18 PST 1989 +Tue Jan 24 07:41:26 1989 CST +2/3/89 6:33 AM +13 February 1989, 10:02:09 EST +Tue Feb 14 13:05:06 PST 1989 +14 Feb 89 17:17:23 GMT +01 Apr 89 00:00:01 GMT +10 Jul 89 15:24 +Tue Nov 28 16:31:28 1989 +Wed Nov 29 14:54:37 -0800 1989 +Wed, 22 Nov 89 22:29:04 JST +Tue, 16 Oct 90 14:41:52 -0800 diff --git a/docs/historical/mh-6.8.5/local/linux/DIFFS.linux b/docs/historical/mh-6.8.5/local/linux/DIFFS.linux new file mode 100644 index 0000000..7b1501a --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/DIFFS.linux @@ -0,0 +1,950 @@ +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/conf/makefiles/support/pop ./conf/makefiles/support/pop +--- ../mh-6.8-dist/conf/makefiles/support/pop Sat Dec 25 16:57:49 1993 ++++ ./conf/makefiles/support/pop Sat Jul 16 18:05:55 1994 +@@ -110,7 +110,7 @@ + -@ls -l $@ + -@echo "" + +-popd: xpopd ++popd: xpopd; + + xpopd: popd.o popser.o syslog.o \ + ../../uip/dropsbr.o \ +@@ -146,7 +146,7 @@ + -@ls -l $@ + -@echo "" + +-popaka: xpopaka ++popaka: xpopaka; + + xpopaka: popaka.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ popaka.o $(LDLIBS1) +@@ -169,7 +169,7 @@ + -@ls -l $@ + -@echo "" + +-popauth: xpopauth ++popauth: xpopauth; + + xpopauth: popauth.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ popauth.o $(LDLIBS2) +@@ -193,7 +193,7 @@ + -@ls -l $@ + -@echo "" + +-popwrd: xpopwrd ++popwrd: xpopwrd; + + xpopwrd: popwrd.o $(LIBES1) + $(LD) $(LDFLAGS) -o $@ popwrd.o $(LDLIBS1) +@@ -214,7 +214,7 @@ + -@ls -l $@ + -@echo "" + +-smtpd: xsmtpd ++smtpd: xsmtpd; + + xsmtpd: smtpd.o syslog.o + $(LD) $(LDFLAGS) -o $@ smtpd.o syslog.o +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/conf/makefiles/uip ./conf/makefiles/uip +--- ../mh-6.8-dist/conf/makefiles/uip Sat Dec 25 16:57:50 1993 ++++ ./conf/makefiles/uip Sat Jul 16 18:05:55 1994 +@@ -267,7 +267,7 @@ + -@ls -l $@ + -@echo "" + +-ali: xali ++ali: xali; + + xali: ali.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ ali.o aliasbr.o $(LDLIBS) +@@ -284,7 +284,7 @@ + -@ls -l $@ + -@echo "" + +-anno: xanno ++anno: xanno; + + xanno: anno.o annosbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ anno.o annosbr.o $(LDLIBS) +@@ -301,7 +301,7 @@ + -@ls -l $@ + -@echo "" + +-ap: xap ++ap: xap; + + xap: ap.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ ap.o trmsbr.o $(LDLIBS) $(LDCURSES) +@@ -325,7 +325,7 @@ + -@ls -l $(BINDIR)/bbc + -@echo "" + +-bbc: xbbc ++bbc: xbbc; + + xbbc: bbc.o $(PSHLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ bbc.o $(PSHLIB) $(LDLIBS) +@@ -352,7 +352,7 @@ + -@ls -l $@ + -@echo "" + +-bbl: xbbl ++bbl: xbbl; + + xbbl: bbl.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ bbl.o $(LDLIBS) +@@ -369,7 +369,7 @@ + -@ls -l $@ + -@echo "" + +-burst: xburst ++burst: xburst; + + xburst: burst.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ burst.o $(LDLIBS) +@@ -386,7 +386,7 @@ + -@ls -l $@ + -@echo "" + +-cipher: xcipher ++cipher: xcipher; + + xcipher: cipher.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ cipher.o $(TMALIB) $(LDLIBS) +@@ -403,7 +403,7 @@ + -@ls -l $(BINDIR)/comp + -@echo "" + +-comp: xcomp ++comp: xcomp; + + xcomp: comp.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) +@@ -423,7 +423,7 @@ + -@ls -l $@ + -@echo "" + +-conflict: xconflict ++conflict: xconflict; + + xconflict: conflict.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ conflict.o aliasbr.o $(LDLIBS) +@@ -440,7 +440,7 @@ + -@ls -l $@ + -@echo "" + +-decipher: xdecipher ++decipher: xdecipher; + + xdecipher: decipher.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ decipher.o $(TMALIB) $(LDLIBS) +@@ -457,7 +457,7 @@ + -@ls -l $@ + -@echo "" + +-dist: xdist ++dist: xdist; + + xdist: dist.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) +@@ -477,7 +477,7 @@ + -@ls -l $(ETCDIR)/dp + -@echo "" + +-dp: xdp ++dp: xdp; + + xdp: dp.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ dp.o trmsbr.o $(LDLIBS) $(LDCURSES) +@@ -494,7 +494,7 @@ + -@ls -l $@ + -@echo "" + +-fmtdump: xfmtdump ++fmtdump: xfmtdump; + + xfmtdump: fmtdump.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ fmtdump.o $(LDLIBS) +@@ -514,8 +514,8 @@ + -@ls -l $@ + -@echo "" + +-folders: folder +-folder: xfolder ++folders: folder; ++folder: xfolder; + + xfolder: folder.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ folder.o $(LDLIBS) +@@ -532,7 +532,7 @@ + -@ls -l $@ + -@echo "" + +-forw: xforw ++forw: xforw; + + xforw: forw.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) +@@ -563,7 +563,7 @@ + -@ls -l $@ + -@echo "" + +-inc: xinc ++inc: xinc; + + xinc: inc.o scansbr.o dropsbr.o trmsbr.o \ + $(POPLIB) $(TMALIB) $(LIBES) +@@ -584,7 +584,7 @@ + -@ls -l $@ + -@echo "" + +-install-mh: xinstall-mh ++install-mh: xinstall-mh; + + xinstall-mh: install-mh.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ install-mh.o $(LDLIBS) +@@ -601,7 +601,7 @@ + -@ls -l $@ + -@echo "" + +-kdsc: xkdsc ++kdsc: xkdsc; + + xkdsc: kdsc.o $(KDSLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ kdsc.o $(KDSLIB) $(LDLIBS) +@@ -618,7 +618,7 @@ + -@ls -l $@ + -@echo "" + +-mark: xmark ++mark: xmark; + + xmark: mark.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mark.o $(LDLIBS) +@@ -635,7 +635,7 @@ + -@ls -l $@ + -@echo "" + +-mhl: xmhl ++mhl: xmhl; + + xmhl: mhl.o \ + mhlsbr.o trmsbr.o $(LIBES) +@@ -655,7 +655,7 @@ + -@ls -l $@ + -@echo "" + +-mhmail: xmhmail ++mhmail: xmhmail; + + xmhmail: mhmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhmail.o $(LDLIBS) +@@ -672,7 +672,7 @@ + -@ls -l $@ + -@echo "" + +-mhn: xmhn ++mhn: xmhn; + + xmhn: mhn.o ftpsbr.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhn.o ftpsbr.o trmsbr.o \ +@@ -690,7 +690,7 @@ + -@ls -l $@ + -@echo "" + +-mhparam: xmhparam ++mhparam: xmhparam; + + xmhparam: mhparam.o trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhparam.o $(LDLIBS) $(LDCURSES) +@@ -707,7 +707,7 @@ + -@ls -l $@ + -@echo "" + +-mhpath: xmhpath ++mhpath: xmhpath; + + xmhpath: mhpath.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ mhpath.o $(LDLIBS) +@@ -731,7 +731,7 @@ + -@ls -l $@ + -@echo "" + +-msgchk: xmsgchk ++msgchk: xmsgchk; + + xmsgchk: msgchk.o $(POPLIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ msgchk.o $(POPLIB) \ +@@ -749,7 +749,7 @@ + -@ls -l $@ + -@echo "" + +-msh: xmsh ++msh: xmsh; + + xmsh: msh.o mshcmds.o vmhsbr.o \ + picksbr.o scansbr.o dropsbr.o mhlsbr.o trmsbr.o \ +@@ -772,7 +772,7 @@ + -@ls -l $@ + -@echo "" + +-packf: xpackf ++packf: xpackf; + + xpackf: packf.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ packf.o dropsbr.o $(LDLIBS) +@@ -789,7 +789,7 @@ + -@ls -l $@ + -@echo "" + +-pick: xpick ++pick: xpick; + + xpick: pick.o picksbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ pick.o picksbr.o $(LDLIBS) +@@ -806,7 +806,7 @@ + -@ls -l $@ + -@echo "" + +-popi: xpopi ++popi: xpopi; + + xpopi: popi.o $(POPLIB) trmsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ popi.o $(POPLIB) trmsbr.o $(LDLIBS) \ +@@ -831,7 +831,7 @@ + -@ls -l $@ + -@echo "" + +-post: xpost ++post: xpost; + + xpost: post.o \ + aliasbr.o $(MTSBRS) $(TMALIB) $(LIBES) +@@ -851,7 +851,7 @@ + -@ls -l $@ + -@echo "" + +-prompter: xprompter ++prompter: xprompter; + + xprompter: prompter.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ prompter.o $(LDLIBS) +@@ -868,7 +868,7 @@ + -@ls -l $@ + -@echo "" + +-rcvdist: xrcvdist ++rcvdist: xrcvdist; + + xrcvdist: rcvdist.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rcvdist.o distsbr.o $(LDLIBS) +@@ -885,7 +885,7 @@ + -@ls -l $@ + -@echo "" + +-rcvpack: xrcvpack ++rcvpack: xrcvpack; + + xrcvpack: rcvpack.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rcvpack.o dropsbr.o $(LDLIBS) +@@ -902,7 +902,7 @@ + -@ls -l $@ + -@echo "" + +-rcvstore: xrcvstore ++rcvstore: xrcvstore; + + xrcvstore: rcvstore.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rcvstore.o $(LDLIBS) +@@ -923,7 +923,7 @@ + -@ls -l $@ + -@echo "" + +-rcvtty: xrcvtty ++rcvtty: xrcvtty; + + xrcvtty: rcvtty.o scansbr.o trmsbr.o \ + @BEGIN: TTYD +@@ -952,7 +952,7 @@ + -@ls -l $@ + -@echo "" + +-refile: xrefile ++refile: xrefile; + + xrefile: refile.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ refile.o $(LDLIBS) +@@ -969,7 +969,7 @@ + -@ls -l $@ + -@echo "" + +-repl: xrepl ++repl: xrepl; + + xrepl: repl.o replsbr.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) +@@ -992,7 +992,7 @@ + -@ls -l $@ + -@echo "" + +-rmail: xrmail ++rmail: xrmail; + + xrmail: rmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rmail.o $(LDLIBS) +@@ -1009,7 +1009,7 @@ + -@ls -l $@ + -@echo "" + +-rmf: xrmf ++rmf: xrmf; + + xrmf: rmf.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rmf.o $(LDLIBS) +@@ -1026,7 +1026,7 @@ + -@ls -l $@ + -@echo "" + +-rmm: xrmm ++rmm: xrmm; + + xrmm: rmm.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ rmm.o $(LDLIBS) +@@ -1043,7 +1043,7 @@ + -@ls -l $@ + -@echo "" + +-scan: xscan ++scan: xscan; + + xscan: scan.o \ + scansbr.o trmsbr.o $(LIBES) +@@ -1063,7 +1063,7 @@ + -@ls -l $@ + -@echo "" + +-send: xsend ++send: xsend; + + xsend: send.o \ + sendsbr.o annosbr.o distsbr.o $(LIBES) +@@ -1089,9 +1089,9 @@ + -@ls -l $@ + -@echo "" + +-next: show +-prev: show +-show: xshow ++next: show; ++prev: show; ++show: xshow; + + xshow: show.o \ + mhlsbr.o trmsbr.o $(LIBES) +@@ -1118,7 +1118,7 @@ + -@ls -l $@ + -@echo "" + +-sbboards: xsbboards ++sbboards: xsbboards; + + xsbboards: sbboards.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ sbboards.o dropsbr.o $(LDLIBS) +@@ -1135,7 +1135,7 @@ + -@ls -l $@ + -@echo "" + +-slocal: xslocal ++slocal: xslocal; + + xslocal: slocal.o aliasbr.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ slocal.o aliasbr.o dropsbr.o $(LDLIBS) +@@ -1152,7 +1152,7 @@ + -@ls -l $@ + -@echo "" + +-sortm: xsortm ++sortm: xsortm; + + xsortm: sortm.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ sortm.o $(LDLIBS) +@@ -1172,7 +1172,7 @@ + -@ls -l $@ + -@echo "" + +-spop: xspop ++spop: xspop; + + xspop: spop.o dropsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ spop.o dropsbr.o $(LDLIBS) +@@ -1193,7 +1193,7 @@ + -@ls -l $@ + -@echo "" + +-spost: xspost ++spost: xspost; + + xspost: spost.o aliasbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ spost.o aliasbr.o $(LDLIBS) +@@ -1213,7 +1213,7 @@ + -@echo "Don't forget to: ln -s /usr/lib/sendmail $@" + -@echo "" + +-sendmail: xsendmail ++sendmail: xsendmail; + + xsendmail: sendmail.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ sendmail.o $(LDLIBS) +@@ -1230,7 +1230,7 @@ + -@ls -l $@ + -@echo "" + +-tma: xtma ++tma: xtma; + + xtma: tma.o $(TMALIB) $(LIBES) + $(LD) $(LDFLAGS) -o $@ tma.o $(TMALIB) $(LDLIBS) +@@ -1247,7 +1247,7 @@ + -@ls -l $@ + -@echo "" + +-umhook: xumhook ++umhook: xumhook; + + xumhook: umhook.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ umhook.o $(LDLIBS) $(LDCURSES) +@@ -1264,7 +1264,7 @@ + -@ls -l $@ + -@echo "" + +-vmh: xvmh ++vmh: xvmh; + + xvmh: vmh.o vmhsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ vmh.o vmhsbr.o $(LDCURSES) $(LDLIBS) +@@ -1285,7 +1285,7 @@ + -@ls -l $@ + -@echo "" + +-whatnow: xwhatnow ++whatnow: xwhatnow; + + xwhatnow: whatnow.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES) +@@ -1305,7 +1305,7 @@ + -@ls -l $@ + -@echo "" + +-whom: xwhom ++whom: xwhom; + + xwhom: whom.o distsbr.o $(LIBES) + $(LD) $(LDFLAGS) -o $@ whom.o distsbr.o $(LDLIBS) +@@ -1322,7 +1322,7 @@ + -@ls -l $@ + -@echo "" + +-wmh: xwmh ++wmh: xwmh; + + xwmh: wmh.o vmhsbr.o $(LIBES) + ${CC} $(LDFLAGS) -o $@ wmh.o vmhsbr.o $(LDLIBS) \ +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/h/strings.h ./h/strings.h +--- ../mh-6.8-dist/h/strings.h Sat Dec 25 16:57:50 1993 ++++ ./h/strings.h Sat Jul 16 18:05:55 1994 +@@ -63,7 +63,9 @@ + #ifdef SYS5 + #include + #define bcmp(b1,b2,length) memcmp(b1, b2, length) ++#if __GNUC__ != 2 + #define bcopy(b1,b2,length) (void) memcpy (b2, b1, length) ++#endif + #define bcpy(b1,b2,length) memcmp (b1, b2, length) + #define bzero(b,length) (void) memset (b, 0, length) + #endif /* SYS5 */ +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/sbr/discard.c ./sbr/discard.c +--- ../mh-6.8-dist/sbr/discard.c Sat Dec 25 16:57:51 1993 ++++ ./sbr/discard.c Sat Jul 16 18:11:18 1994 +@@ -49,7 +49,11 @@ + #ifdef _FSTDIO + fpurge (io); + #else ++#ifdef _STDIO_USES_IOSTREAM ++ io -> _IO_write_ptr = io -> _IO_write_base; ++#else + if (io -> _ptr = io -> _base) + io -> _cnt = 0; + #endif ++#endif /* _STDIO_USES_IOSTREAM */ + } +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/sbr/m_getfld.c ./sbr/m_getfld.c +--- ../mh-6.8-dist/sbr/m_getfld.c Sat Dec 25 16:57:51 1993 ++++ ./sbr/m_getfld.c Sat Jul 16 18:10:23 1994 +@@ -244,22 +244,40 @@ + */ + cp = name; i = NAMESZ - 1; + for (;;) { ++#ifdef _STDIO_USES_IOSTREAM ++ bp = sp = (unsigned char *) iob->_IO_read_ptr - 1; ++ j = (cnt = ((long) iob->_IO_read_end - (long) iob->_IO_read_ptr) + 1) < i? ++ cnt: i; ++#else + bp = sp = (unsigned char *) iob->_ptr - 1; + j = (cnt = iob->_cnt+1) < i ? cnt : i; ++#endif + while ((c = *bp++) != ':' && c != '\n' && --j >= 0) + *cp++ = c; + + j = bp - sp; + if ((cnt -= j) <= 0) { ++#ifdef _STDIO_USES_IOSTREAM ++ iob->_IO_read_ptr = iob->_IO_read_end; ++ if (__underflow(iob) == EOF) { ++#else + if (_filbuf(iob) == EOF) { ++#endif + *cp = *buf = 0; + advise (NULLCP, "eof encountered in field \"%s\"", + name); + return FMTERR; + } ++#ifdef _STDIO_USES_IOSTREAM ++ iob->_IO_read_ptr++; /* NOT automatic in __underflow()! */ ++#endif + } else { ++#ifdef _STDIO_USES_IOSTREAM ++ iob->_IO_read_ptr = bp + 1; ++#else + iob->_ptr = bp + 1; + iob->_cnt = cnt - 1; ++#endif + } + if (c == ':') + break; +@@ -298,16 +316,27 @@ + */ + cp = buf; i = bufsz-1; + for (;;) { ++#ifdef _STDIO_USES_IOSTREAM ++ cnt = (long) iob->_IO_read_end - (long) iob->_IO_read_ptr; ++ bp = (unsigned char *) --iob->_IO_read_ptr; ++#else + cnt = iob->_cnt++; bp = (unsigned char *) --iob->_ptr; ++#endif + c = cnt < i ? cnt : i; + while (ep = locc( c, bp, '\n' )) { + /* + * if we hit the end of this field, return. + */ + if ((j = *++ep) != ' ' && j != '\t') { ++#ifdef _STDIO_USES_IOSTREAM ++ j = ep - (unsigned char *) iob->_IO_read_ptr; ++ (void) bcopy( iob->_IO_read_ptr, cp, j); ++ iob->_IO_read_ptr = ep; ++#else + j = ep - (unsigned char *) iob->_ptr; + (void) bcopy( iob->_ptr, cp, j); + iob->_ptr = ep; iob->_cnt -= j; ++#endif + cp += j; + state = FLD; + goto finish; +@@ -317,12 +346,21 @@ + /* + * end of input or dest buffer - copy what we've found. + */ ++#ifdef _STDIO_USES_IOSTREAM ++ c += bp - (unsigned char *) iob->_IO_read_ptr; ++ (void) bcopy( iob->_IO_read_ptr, cp, c); ++#else + c += bp - (unsigned char *) iob->_ptr; + (void) bcopy( iob->_ptr, cp, c); ++#endif + i -= c; cp += c; + if (i <= 0) { + /* the dest buffer is full */ ++#ifdef _STDIO_USES_IOSTREAM ++ iob->_IO_read_ptr += c; ++#else + iob->_cnt -= c; iob->_ptr += c; ++#endif + state = FLDPLUS; + break; + } +@@ -333,11 +371,22 @@ + * this is the end of the field. Otherwise loop. + */ + --i; ++#ifdef _STDIO_USES_IOSTREAM ++ *cp++ = j = *(iob->_IO_read_ptr + c); ++ iob->_IO_read_ptr = iob->_IO_read_end; ++ c = __underflow(iob); ++ iob->_IO_read_ptr++; /* NOT automatic! */ ++#else + *cp++ = j = *(iob->_ptr + c); + c = _filbuf(iob); ++#endif + if ((j == '\0' || j == '\n') && c != ' ' && c != '\t') { + if (c != EOF) ++#ifdef _STDIO_USES_IOSTREAM ++ --iob->_IO_read_ptr; ++#else + --iob->_ptr, ++iob->_cnt; ++#endif + state = FLD; + break; + } +@@ -353,7 +402,12 @@ + * the output buffer and we don't add an eos. + */ + i = (bufsz < 0) ? -bufsz : bufsz-1; ++#ifdef _STDIO_USES_IOSTREAM ++ bp = (unsigned char *) --iob->_IO_read_ptr; ++ cnt = (long) iob->_IO_read_end - (long) iob->_IO_read_ptr; ++#else + bp = (unsigned char *) --iob->_ptr; cnt = ++iob->_cnt; ++#endif + c = (cnt < i ? cnt : i); + if (msg_style != MS_DEFAULT && c > 1) { + /* +@@ -410,8 +464,12 @@ + } + } + (void) bcopy( bp, buf, c ); ++#ifdef _STDIO_USES_IOSTREAM ++ iob->_IO_read_ptr += c; ++#else + iob->_cnt -= c; + iob->_ptr += c; ++#endif + if (bufsz < 0) { + msg_count = c; + return (state); +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/support/pop/popd.c ./support/pop/popd.c +--- ../mh-6.8-dist/support/pop/popd.c Sat Dec 25 16:57:51 1993 ++++ ./support/pop/popd.c Sat Jul 16 18:05:56 1994 +@@ -61,8 +61,10 @@ + #ifndef BSD44 + extern int sys_nerr; + extern char *sys_errlist[]; ++#ifndef linux + extern char *sys_siglist[]; + #endif ++#endif + + + int debug = 0; +@@ -193,6 +195,10 @@ + #ifdef SIGCHLD + (void) signal (SIGCHLD, chldser); + #endif /* SIGCHLD */ ++#ifdef linux ++/* No limit on the number of connections? this seems wrong... */ ++#define SOMAXCONN 5 ++#endif + (void) listen (sd, SOMAXCONN); + #endif /* KPOP */ + #ifdef FAST +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/inc.c ./uip/inc.c +--- ../mh-6.8-dist/uip/inc.c Sat Dec 25 16:57:51 1993 ++++ ./uip/inc.c Sat Jul 16 18:05:56 1994 +@@ -384,17 +384,23 @@ + + /* */ + +-#ifdef MAILGROUP +- return_gid = getegid(); /* Save effective gid, assuming we'll use it */ +- setgid(getgid()); /* Turn off extraordinary privileges */ +-#endif /* MAILGROUP */ +- + #ifdef POP + if (host && !*host) + host = NULL; + if (from || !host || rpop <= 0) + (void) setuid (getuid ()); + #endif /* POP */ ++ ++/* ++ * 93/12/17 bsa@kf8nh.wariat.org relocated: with MAILGROUP and POP both defined ++ * the setgid() call ran as root, and saved gid would be lost. If the setuid() ++ * call above then ran, inc would be unable to reestablish its setgid state. ++ */ ++#ifdef MAILGROUP ++ return_gid = getegid(); /* Save effective gid, assuming we'll use it */ ++ setgid(getgid()); /* Turn off extraordinary privileges */ ++#endif /* MAILGROUP */ ++ + if (from) { + newmail = from; + #ifdef POP +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/popi.c ./uip/popi.c +--- ../mh-6.8-dist/uip/popi.c Sat Dec 25 16:57:51 1993 ++++ ./uip/popi.c Sat Jul 16 18:05:57 1994 +@@ -558,7 +558,11 @@ + + + static int dselect (d) ++#ifdef SYS5DIR ++register struct dirent *d; ++#else + register struct direct *d; ++#endif + { + int i; + +@@ -571,8 +575,13 @@ + + + static int dcompar (d1, d2) ++#ifdef SYS5DIR ++struct dirent **d1, ++ **d2; ++#else + struct direct **d1, + **d2; ++#endif + { + struct stat s1, + s2; +@@ -592,7 +601,11 @@ + int n, + retval, + sm; ++#ifdef SYS5DIR ++ struct dirent **namelist; ++#else + struct direct **namelist; ++#endif + + if (chdir (bulksw) == NOTOK) + adios (bulksw, "unable to change directory to"); +@@ -602,7 +615,11 @@ + + sm = NOTOK; + for (i = 0; i < n; i++) { ++#ifdef SYS5DIR ++ register struct dirent *d = namelist[i]; ++#else + register struct direct *d = namelist[i]; ++#endif + + if (sm == NOTOK) { + if (rp_isbad (retval = sm_init (NULLCP, host, 1, 1, snoop))) +@@ -630,13 +647,21 @@ + register int j; + int l, + m; ++#ifdef SYS5DIR ++ struct dirent **newlist; ++#else + struct direct **newlist; ++#endif + + while ((l = scandir (".", &newlist, dselect, dcompar)) > OK) { + m = 0; + + for (j = 0; j < l; j++) { ++#ifdef SYS5DIR ++ register struct dirent *d = newlist[j]; ++#else + register struct direct *d = newlist[j]; ++#endif + + for (i = 0; i < n; i++) + if (strcmp (d -> d_name, namelist[i] -> d_name) == 0) +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/sbboards.c ./uip/sbboards.c +--- ../mh-6.8-dist/uip/sbboards.c Sat Dec 25 16:57:51 1993 ++++ ./uip/sbboards.c Sat Jul 16 18:05:57 1994 +@@ -66,7 +66,10 @@ + #ifdef LOCALE + #include + #endif +- ++#ifdef linux ++/* FIXME - who should be doing this? With what option? */ ++#include ++#endif + + #define NBB 100 + +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/scansbr.c ./uip/scansbr.c +--- ../mh-6.8-dist/uip/scansbr.c Sat Dec 25 16:57:51 1993 ++++ ./uip/scansbr.c Sat Jul 16 18:10:56 1994 +@@ -238,14 +238,25 @@ + */ + body: ; + while (state == BODY) { ++#ifdef _STDIO_USES_IOSTREAM ++ if (scnout->_IO_write_ptr == scnout->_IO_write_end) { ++#else + if (scnout->_cnt <= 0) { ++#endif + if (fflush(scnout) == EOF) + adios (scnmsg, "write error on"); + } ++#ifdef _STDIO_USES_IOSTREAM ++ state = m_getfld(state, name, scnout->_IO_write_ptr, ++ (long)scnout->_IO_write_ptr-(long)scnout->_IO_write_end, ++ inb); ++ scnout->_IO_write_ptr += msg_count; ++#else + state = m_getfld( state, name, scnout->_ptr, + -(scnout->_cnt), inb ); + scnout->_cnt -= msg_count; + scnout->_ptr += msg_count; ++#endif + } + goto finished; + +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/spop.c ./uip/spop.c +--- ../mh-6.8-dist/uip/spop.c Sat Dec 25 16:57:51 1993 ++++ ./uip/spop.c Sat Jul 16 18:05:57 1994 +@@ -66,6 +66,10 @@ + #ifdef LOCALE + #include + #endif ++#ifdef linux ++/* FIXME - who should be doing this? With what option? */ ++#include ++#endif + + + #define NBB 100 +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/vmh.c ./uip/vmh.c +--- ../mh-6.8-dist/uip/vmh.c Sat Dec 25 16:57:52 1993 ++++ ./uip/vmh.c Sat Jul 16 18:05:57 1994 +@@ -11,8 +11,10 @@ + * means "AT&T line discipline" (termio, not sgttyb), whereas terminfo + * is quite a separate issue. + */ ++#ifndef linux + #define TERMINFO 1 + #endif ++#endif + + /* TODO: + Pass signals to client during execution +@@ -175,6 +177,9 @@ + #if !defined(SYS5) && !defined(BSD44) + int _putchar (); + #endif /* not SYS5 */ ++#ifdef linux ++static int _putchar (c) int c; { putchar (c); } ++#endif + #ifdef SIGTSTP + char *tgoto (); + #endif /* SIGTSTP */ +diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/zotnet/mts/lock.c ./zotnet/mts/lock.c +--- ../mh-6.8-dist/zotnet/mts/lock.c Sat Dec 25 16:57:52 1993 ++++ ./zotnet/mts/lock.c Sat Jul 16 18:05:57 1994 +@@ -29,7 +29,9 @@ + #include + #include + #ifdef SVR4 ++#ifndef linux + #define LOCKF ++#endif + #include + #endif + #ifdef LOCKF diff --git a/docs/historical/mh-6.8.5/local/linux/DIFFS.shlib b/docs/historical/mh-6.8.5/local/linux/DIFFS.shlib new file mode 100644 index 0000000..59f02e4 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/DIFFS.shlib @@ -0,0 +1,462 @@ +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/Makefile ./Makefile +*** ../mh-6.8.3-dist/Makefile Sat Dec 25 14:19:03 1993 +--- ./Makefile Sat Dec 25 14:19:19 1993 +*************** +*** 48,52 **** + ############################################################################## + +! ALL = config sbr mts zotnet uip support doc + + all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done +--- 48,52 ---- + ############################################################################## + +! ALL = config sbr mts zotnet jump uip support doc + + all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done +*************** +*** 61,65 **** + + +! INSTALL = zotnet support uip doc + BINDIR = $(DESTDIR)/usr/bin/mh + ETCDIR = $(DESTDIR)/usr/lib/mh +--- 61,65 ---- + + +! INSTALL = zotnet support jump uip doc + BINDIR = $(DESTDIR)/usr/bin/mh + ETCDIR = $(DESTDIR)/usr/lib/mh +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/config/Makefile ./config/Makefile +*** ../mh-6.8.3-dist/config/Makefile Sat Dec 25 12:21:17 1993 +--- ./config/Makefile Sat Dec 25 12:43:50 1993 +*************** +*** 9,12 **** +--- 9,17 ---- + LDOPTIONS= + ++ # Linux shared libraries ++ JUMP_DIR=../jump/ ++ JUMP_LIB=libconfig ++ export JUMP_DIR JUMP_LIB ++ + CC = cc + CFLAGS = $(OPTIONS) +*************** +*** 17,20 **** +--- 22,29 ---- + LLIBS = + ++ # Linux: create $*.j from $*.c, contains DLL version ++ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c ++ mv $*.o $*.j ++ $(CC) $(CFLAGS) -c $*.c + + ############################################################################## +*************** +*** 45,49 **** + + clean: unclean +! -rm -f *.o + + unclean:; -rm -f _* :* core eddep makedep +--- 54,58 ---- + + clean: unclean +! -rm -f *.o *.j + + unclean:; -rm -f _* :* core eddep makedep +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/mts/mh/Makefile ./mts/mh/Makefile +*** ../mh-6.8.3-dist/mts/mh/Makefile Sat Dec 25 12:21:26 1993 +--- ./mts/mh/Makefile Sat Dec 25 12:43:18 1993 +*************** +*** 9,12 **** +--- 9,17 ---- + OPTIONS= -DSYS5 -DSHADOW -DMORE='"/usr/bin/more"' -DRENAME -DSYS5DIR -DUNISTD -DSVR4 -DMIME -DVSPRINTF -DMHE -DOVERHEAD -DRPATHS -DDUMB -DATHENA -DBIND -DSOCKETS -DNTOHLSWAP -DDPOP -DPOP2 -DRPOP -DMPOP -DAPOP='"/etc/pop.auth"' -DMAILGROUP -DSENDMTS -DSMTP -DPOP -DBPOP -DSPRINTFTYPE=int -DTYPESIG=void -traditional -D_NFILE='getdtablesize()' -DSIGEMT=SIGUSR1 -O2 -I.. + ++ # Linux shared library ++ JUMP_DIR=../../jump/ ++ JUMP_LIB=libmts ++ export JUMP_DIR JUMP_LIB ++ + CC = cc + CFLAGS = $(OPTIONS) +*************** +*** 26,30 **** + # Generation Rules + ############################################################################## +! .c.o:; $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ + mv a.out $@ +--- 31,40 ---- + # Generation Rules + ############################################################################## +! +! # Linux: create $*.j from $*.c, contains DLL version +! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c +! -ld -x -r $@ +! mv a.out $*.j +! $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ + mv a.out $@ +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/mts/mmdf/Makefile ./mts/mmdf/Makefile +*** ../mh-6.8.3-dist/mts/mmdf/Makefile Sat Dec 25 12:21:28 1993 +--- ./mts/mmdf/Makefile Sat Dec 25 12:42:57 1993 +*************** +*** 9,12 **** +--- 9,17 ---- + OPTIONS = -DSYS5 -DSHADOW -DMORE='"/usr/bin/more"' -DRENAME -DSYS5DIR -DUNISTD -DSVR4 -DMIME -DVSPRINTF -DMHE -DOVERHEAD -DRPATHS -DDUMB -DATHENA -DBIND -DSOCKETS -DNTOHLSWAP -DDPOP -DPOP2 -DRPOP -DMPOP -DAPOP='"/etc/pop.auth"' -DMAILGROUP -DSENDMTS -DSMTP -DPOP -DBPOP -DSPRINTFTYPE=int -DTYPESIG=void -traditional -D_NFILE='getdtablesize()' -DSIGEMT=SIGUSR1 -O2 -I.. + ++ # Linux shared library ++ JUMP_DIR=../../jump/ ++ JUMP_LIB=libmts ++ export JUMP_DIR JUMP_LIB ++ + CC = (MHCOMPILER) + CFLAGS = $(OPTIONS) +*************** +*** 27,31 **** + ############################################################################## + +! .c.o:; $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ + mv a.out $@ +--- 32,40 ---- + ############################################################################## + +! # Linux: create $*.j from $*.c, contains DLL version +! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c +! -ld -x -r $@ +! mv a.out $*.j +! $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ + mv a.out $@ +diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/mts/sendmail/Makefile ./mts/sendmail/Makefile +*** ../mh-6.8.3-dist/mts/sendmail/Makefile Sat Dec 25 12:21:29 1993 +--- ./mts/sendmail/Makefile Sat Dec 25 12:42:35 1993 +*************** +*** 10,11 **** +--- 10,16 ---- + ++ # Linux shared library ++ JUMP_DIR=../../jump/ ++ JUMP_LIB=libmts ++ export JUMP_DIR JUMP_LIB ++ + CC = cc +*************** +*** 26,28 **** + +! .c.o:; $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ +--- 31,37 ---- + +! # Linux: create $*.j from $*.c, contains DLL version +! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c +! -ld -x -r $@ +! mv a.out $*.j +! $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ +*************** +*** 66,68 **** + clean: unclean +! -rm -f *.o $(LIB) z$(LIB) + +--- 75,77 ---- + clean: unclean +! -rm -f *.o *.j $(LIB) z$(LIB) + +diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/sbr/Makefile ./sbr/Makefile +*** ../mh-6.8.3-dist/sbr/Makefile Sat Dec 25 12:21:33 1993 +--- ./sbr/Makefile Sat Dec 25 12:41:42 1993 +*************** +*** 9,10 **** +--- 9,15 ---- + ++ # Linux shared library ++ JUMP_DIR=../jump/ ++ JUMP_LIB=libmh ++ export JUMP_DIR JUMP_LIB ++ + CC = cc +*************** +*** 56,58 **** +--- 61,67 ---- + ++ # Linux: create $*.j from $*.c, contains DLL version + .c.o: ++ $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c ++ -ld -x -r $@ ++ mv a.out $*.j + $(CC) $(CFLAGS) -c $*.c +*************** +*** 90,92 **** + clean: unclean +! -rm -f *.o libmh.* + +--- 99,101 ---- + clean: unclean +! -rm -f *.o *.j libmh.* + +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/support/bboards/Makefile ./support/bboards/Makefile +*** ../mh-6.8.3-dist/support/bboards/Makefile Sat Dec 25 12:21:35 1993 +--- ./support/bboards/Makefile Sat Dec 25 13:55:52 1993 +*************** +*** 22,28 **** + CFLAGS = $(OPTIONS) + LDFLAGS = $(LDOPTIONS) +! LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +! LIBES2 = ../../config/config.o ../../config/version.o \ +! ../../sbr/libmh.a $(LIBES1) + LDLIBS1 = $(LIBES1) $(LDOPTLIB) + LDLIBS2 = $(LIBES2) $(LDOPTLIB) +--- 22,33 ---- + CFLAGS = $(OPTIONS) + LDFLAGS = $(LDOPTIONS) +! #LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +! #LIBES2 = ../../config/config.o ../../config/version.o \ +! # ../../sbr/libmh.a $(LIBES1) +! #LDLIBS1 = $(LIBES1) $(LDOPTLIB) +! #LDLIBS2 = $(LIBES2) $(LDOPTLIB) +! # Linux shared libraries +! LIBES1 = ../../jump/libzot.sa ../../jump/libmts.sa +! LIBES2 = ../../jump/libconfig.sa ../../jump/libmh.sa $(LIBES1) + LDLIBS1 = $(LIBES1) $(LDOPTLIB) + LDLIBS2 = $(LIBES2) $(LDOPTLIB) +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/support/pop/Makefile ./support/pop/Makefile +*** ../mh-6.8.3-dist/support/pop/Makefile Sat Dec 25 14:46:20 1993 +--- ./support/pop/Makefile Sat Dec 25 13:56:48 1993 +*************** +*** 32,39 **** + CFLAGS = $(OPTIONS) + LDFLAGS = $(LDOPTIONS) +! LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +! LIBES2 = ../../config/config.o ../../sbr/libmh.a $(LIBES1) + LDLIBS1 = $(LIBES1) $(LDOPTLIB) +! LDLIBS2 = $(LIBES2) ../../config/version.o $(LDOPTLIB) + + LINT = lint +--- 32,44 ---- + CFLAGS = $(OPTIONS) + LDFLAGS = $(LDOPTIONS) +! #LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a +! #LIBES2 = ../../config/config.o ../../sbr/libmh.a $(LIBES1) +! #LDLIBS1 = $(LIBES1) $(LDOPTLIB) +! #LDLIBS2 = $(LIBES2) ../../config/version.o $(LDOPTLIB) +! # Linux shared libraries +! LIBES1 = ../../jump/libzot.sa ../../jump/libmts.sa +! LIBES2 = ../../jump/libconfig.sa ../../jump/libmh.sa $(LIBES1) + LDLIBS1 = $(LIBES1) $(LDOPTLIB) +! LDLIBS2 = $(LIBES2) $(LDOPTLIB) + + LINT = lint +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/uip/Makefile ./uip/Makefile +*** ../mh-6.8.3-dist/uip/Makefile Sat Dec 25 14:40:03 1993 +--- ./uip/Makefile Sat Dec 25 13:57:46 1993 +*************** +*** 56,62 **** + CFLAGS = $(OPTIONS) + LDFLAGS = $(LDOPTIONS) +! LIBES = ../config/config.o ../sbr/libmh.a ../mts/libmts.a \ +! ../zotnet/libzot.a +! LDLIBS = $(LIBES) ../config/version.o $(LDOPTLIB) + LINT = lint + LFLAGS = -bhu $(OPTIONS) $(TMAOPTS) +--- 56,66 ---- + CFLAGS = $(OPTIONS) + LDFLAGS = $(LDOPTIONS) +! #LIBES = ../config/config.o ../sbr/libmh.a ../mts/libmts.a \ +! # ../zotnet/libzot.a +! #LDLIBS = $(LIBES) ../config/version.o $(LDOPTLIB) +! # Linux shared libraries +! LIBES = ../jump/libconfig.sa ../jump/libmh.sa ../jump/libmts.sa \ +! ../jump/libzot.sa +! LDLIBS = $(LIBES) $(LDOPTLIB) + LINT = lint + LFLAGS = -bhu $(OPTIONS) $(TMAOPTS) +diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/Makefile ./zotnet/Makefile +*** ../mh-6.8.3-dist/zotnet/Makefile Sat Dec 25 12:21:46 1993 +--- ./zotnet/Makefile Sat Dec 25 14:02:53 1993 +*************** +*** 10,11 **** +--- 10,16 ---- + ++ # Linux shared library ++ JUMP_DIR=../jump/ ++ JUMP_LIB=libzot ++ export JUMP_DIR JUMP_LIB ++ + CC = cc +*************** +*** 31,33 **** + +! .c.o:; $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ +--- 36,42 ---- + +! # Linux: create $*.j from $*.c, contains DLL version +! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c +! -ld -x -r $@ +! mv a.out $*.j +! $(CC) $(CFLAGS) -c $*.c + -ld -x -r $@ +*************** +*** 83,85 **** + +! clean:; -rm -f $(LIB) z$(LIB) _* :* *.o core + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done +--- 92,94 ---- + +! clean:; -rm -f $(LIB) z$(LIB) _* :* *.o *.j core + for d in $(DIRS); do (cd $$d; $(MAKE) clean); done +diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/bboards/Makefile ./zotnet/bboards/Makefile +*** ../mh-6.8.3-dist/zotnet/bboards/Makefile Sat Dec 25 12:21:47 1993 +--- ./zotnet/bboards/Makefile Sat Dec 25 12:40:58 1993 +*************** +*** 10,11 **** +--- 10,16 ---- + ++ # Linux shared library ++ JUMP_DIR=../../jump/ ++ JUMP_LIB=libzot ++ export JUMP_DIR JUMP_LIB ++ + CC = cc +*************** +*** 18,19 **** +--- 23,29 ---- + ++ # Linux: create $*.j from $*.c, contains DLL version ++ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c ++ mv $*.o $*.j ++ $(CC) $(CFLAGS) -c $*.c ++ + ###################################################################### +*************** +*** 54,56 **** + clean: unclean +! -rm -f *.o + +--- 64,66 ---- + clean: unclean +! -rm -f *.o *.j + +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/mf/Makefile ./zotnet/mf/Makefile +*** ../mh-6.8.3-dist/zotnet/mf/Makefile Sat Dec 25 12:21:49 1993 +--- ./zotnet/mf/Makefile Sat Dec 25 14:03:33 1993 +*************** +*** 13,16 **** +--- 13,21 ---- + REMOVE = mv -f + ++ # Linux shared library ++ JUMP_DIR=../../jump/ ++ JUMP_LIB=libzot ++ export JUMP_DIR JUMP_LIB ++ + CC = cc + CFLAGS = $(OPTIONS) +*************** +*** 24,27 **** +--- 29,37 ---- + .c:; echo $@ + ++ # Linux: create $*.j from $*.c, contains DLL version ++ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c ++ mv $*.o $*.j ++ $(CC) $(CFLAGS) -c $*.c ++ + ###################################################################### + # Here it is... +*************** +*** 146,150 **** + + clean: unclean +! -rm -f x* *.o + + unclean:; -rm -f z* _* :* core eddep makedep MAKEMF +--- 156,160 ---- + + clean: unclean +! -rm -f x* *.o *.j + + unclean:; -rm -f z* _* :* core eddep makedep MAKEMF +diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/mts/Makefile ./zotnet/mts/Makefile +*** ../mh-6.8.3-dist/zotnet/mts/Makefile Sat Dec 25 12:21:50 1993 +--- ./zotnet/mts/Makefile Sat Dec 25 14:03:47 1993 +*************** +*** 15,18 **** +--- 15,23 ---- + REMOVE = mv -f + ++ # Linux shared library ++ JUMP_DIR=../../jump/ ++ JUMP_LIB=libzot ++ export JUMP_DIR JUMP_LIB ++ + CC = cc + CFLAGS = $(OPTIONS) +*************** +*** 32,35 **** +--- 37,45 ---- + .c:; echo $@ + ++ # Linux: create $*.j from $*.c, contains DLL version ++ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c ++ mv $*.o $*.j ++ $(CC) $(CFLAGS) -c $*.c ++ + ###################################################################### + # Here it is... +*************** +*** 110,114 **** + + clean: unclean +! -rm -f x* *.o + + unclean:; -rm -f z* _* :* core eddep makedep MAKEMTS +--- 120,124 ---- + + clean: unclean +! -rm -f x* *.o *.j + + unclean:; -rm -f z* _* :* core eddep makedep MAKEMTS +diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/tws/Makefile ./zotnet/tws/Makefile +*** ../mh-6.8.3-dist/zotnet/tws/Makefile Sat Dec 25 12:21:52 1993 +--- ./zotnet/tws/Makefile Sat Dec 25 14:12:29 1993 +*************** +*** 14,15 **** +--- 14,20 ---- + ++ # Linux shared library ++ JUMP_DIR=../../jump/ ++ JUMP_LIB=libzot ++ export JUMP_DIR JUMP_LIB ++ + CC = cc +*************** +*** 30,31 **** +--- 35,41 ---- + ++ # Linux: create $*.j from $*.c, contains DLL version ++ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c ++ mv $*.o $*.j ++ $(CC) $(CFLAGS) -c $*.c ++ + ###################################################################### +*************** +*** 76,77 **** +--- 86,89 ---- + lexstring.o: lexstring.c ++ $(CC) -B/usr/dll/jump/ $(patsubst -O2,,$(CFLAGS)) -c -DONECASE lexstring.c ++ mv $*.o $*.j + $(CC) $(CFLAGS) -c -DONECASE lexstring.c +*************** +*** 104,106 **** + clean: unclean +! -rm -f dtimep.c *.o date + +--- 116,118 ---- + clean: unclean +! -rm -f dtimep.c *.o *.j date + diff --git a/docs/historical/mh-6.8.5/local/linux/README.linux b/docs/historical/mh-6.8.5/local/linux/README.linux new file mode 100644 index 0000000..3837480 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/README.linux @@ -0,0 +1,118 @@ +This is the patch distribution for MH 6.8.3 for Linux. You will need the UCI +source distribution of MH 6.8.3. + +If you wish to build shared libraries, you must also have tools-2.10 or later. +(I used tools-2.15.) + + + +WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + +This distribution WILL NOT WORK with libc-4.4. Use the old distribution if +you need libc-4.4; or, better yet, upgrade to libc-4.5. You'll eventually +need to anyway... + +Do NOT attempt to use a particular version of libmh with binaries compiled +for a different version. libmh is not a "normal" shared library; there are +many interdependencies with respect to both function parameters and to side +effects. Using a mismatched libmh *will* fail; if you're lucky, all you'll +get is a core dump. (If you're not, I hope you backed up your Mail +directory recently...) + +If you have been using the original MH 6.8.3 release for Linux, be aware that +some configuration details have changed: + + * BBoards are no longer compiled in + * The APOP and MPOP options are no longer supported + * The MHRC option has been added + * Manpages now have the "mh" extension added, as per the MH standard + +If you want to re-enable BBoards, I strongly suggest that you get a recent +version of sendmail (NOT smail; sendmail support is provided, but you're on +your own if you want to configure smail for BBoards. Yes, it turns my +stomach, too...) and read conf/mh-gen.8 and doc/ADMIN.me. The same goes for +configuring the POP server, which is enabled but not tested and probably not +functional. I don't support either of the above. + +If you change configuration options, you may need to regenerate the shared +library tables. See the file doc/README.tr in the tools-2.10 (or later) +distribution for details. In particular, I have made no provision for the +length of the mhbinpath and mhetcpath to be increased. + +WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + + + +Instructions: + +(1) Unpack the UCI MH distribution into a directory somewhere. Keep in mind +that MH is *huge*. + +(2) Unpack this distriburtion into the same directory. It will create several +files in the current directory, as well as a "jump" directory containing the +control files for the shared libmh. + +(3) Type "patch -p0 -N < DIFFS.linux". This will apply the basic +compatibility patches to MH. + +(4) Examine the file "zotnet/tws/dtimep.c-lexed". Some early copies of the +UCI MH distribution have an empty file here; others have the correct file. If +yours is empty, copy linux-dtimep.c-lexed to zotnet/tws/dtimep.c-lexed. If +you plan to build the shared library, you may want to copy this file anyway; +if you use the distribution one, you may need to regenerate the shared +library tables because my copy of the MH distribution came with an empty +dtimep.c-lexed and I had to create this one to build MH. + +(5) Examine the file "linux-conf.MH". This is an MH configuration file +consistent with the Linux FSSTND and with my best understanding of Debian +Linux. (It is *not* the one I use, by the way.) You may wish to read +conf/mh-gen.8 and change some of the options; if you do so, PLEASE change the +version numbers in jump/jump.params and jump/Makefile to avoid disaster. See +the WARNING above. Copy linux-conf.MH to conf/MH and edit it to match your +choice of options. + +(6) Likewise, "linux-conf.config.mtstailor" is a Linux-specific copy of +conf/config/mtstailor. You may want to modify it as per conf/mh-gen.8. (This +is much less likely, IMHO.) Copy it to conf/config/mtstailor and edit as +above. + +(7) Configure MH: "cd conf; make mhconfig; mhconfig MH; cd ..; make clean". + +(8) If you want to build the static MH, skip to step 10. + +(9) If you want to build the MH shared library, type the command "patch -p0 -N +< DIFFS.shlib". I don't know whether to try to fix this or to wait for +libc-5.0 with ELF shared libraries; those are already supported by MH. But +making the MH configuration facility support Linux DLL shared libraries is +going to be a real b*tch of a job. + +(10) Type "make". Watch for errors; they won't stop the build (not my +idea...). On my 486DX2/66 24MB it takes 10-15 minutes to build MH from +scratch. (Don't knock it; it used to take an hour and a half back when I was +building MH 6.5 under System III on a 68000 box...) + +(11) If something went wrong, make sure you didn't change the wrong options. +(Well-meaning fools who try to substitute BSD options for the SVR4 options in +my conf/MH will probably never get thjings working reliably. You have been +warned.) Make sure you're using libc-4.5.x. If all else fails, capture the +output of the "make" above in a file and send it to me. + +(12) Type "make install" to install the binaries and manpages. WARNING! If +you had the old Linux MH distribution installed, you may want to remove the +old manpages by hand; they will *not* be overwritten, because the extensions +have been returned to the MH standard. (I decline to argue this with the +FSSTND or Debian folks; if they want to impose maintenance problems on +developers, they should be prepared to take over said development themselves.) + +(13) That's it! Make sure /usr/bin/mh is on your path before trying to use +MH. + + + +Instructions on how to *use* MH are beyond the scope of this document. See +doc/MH.me, papers/beginners/beginners.tex, and the MH Nutshell Handbook from +O'Reilly and Associates. + +++Brandon +bsa@kf8nh.wariat.org +August 1, 1994 diff --git a/docs/historical/mh-6.8.5/local/linux/jump/Makefile b/docs/historical/mh-6.8.5/local/linux/jump/Makefile new file mode 100644 index 0000000..febdb16 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/jump/Makefile @@ -0,0 +1,55 @@ +SHELL = /bin/sh +VERSION = 3.0 +LIBDEFS = -a 0x63f00000 -g 4096 -j 0x1000 + +LIBCONFIG = ../config/config.j ../config/version.j +LIBMH = ../sbr/add.j ../sbr/addrsbr.j ../sbr/adios.j ../sbr/admonish.j \ + ../sbr/advertise.j ../sbr/advise.j ../sbr/ambigsw.j ../sbr/atooi.j \ + ../sbr/brkstring.j ../sbr/closefds.j ../sbr/concat.j ../sbr/copy.j \ + ../sbr/copyip.j ../sbr/cpydata.j ../sbr/cpydgst.j ../sbr/discard.j \ + ../sbr/done.j ../sbr/fdcompare.j ../sbr/fmtcompile.j \ + ../sbr/formataddr.j ../sbr/formatdef.j ../sbr/formatsbr.j \ + ../sbr/gans.j ../sbr/getans.j ../sbr/getanswer.j ../sbr/getcpy.j \ + ../sbr/help.j ../sbr/m_atoi.j ../sbr/m_backup.j ../sbr/m_convert.j \ + ../sbr/m_delete.j ../sbr/m_draft.j ../sbr/m_find.j ../sbr/m_fmsg.j \ + ../sbr/m_foil.j ../sbr/m_getdefs.j ../sbr/m_getfld.j \ + ../sbr/m_getfolder.j ../sbr/m_gmprot.j ../sbr/m_gmsg.j \ + ../sbr/m_maildir.j ../sbr/m_msgdef.j ../sbr/m_name.j \ + ../sbr/m_readefs.j ../sbr/m_remsg.j ../sbr/m_replace.j \ + ../sbr/m_scratch.j ../sbr/m_seq.j ../sbr/m_seqbits.j \ + ../sbr/m_seqflag.j ../sbr/m_seqnew.j ../sbr/m_setcur.j \ + ../sbr/m_setseq.j ../sbr/m_setvis.j ../sbr/m_sync.j ../sbr/m_tmpfil.j \ + ../sbr/m_update.j ../sbr/makedir.j ../sbr/path.j ../sbr/peekc.j \ + ../sbr/pidstatus.j ../sbr/pidwait.j ../sbr/printsw.j ../sbr/push.j \ + ../sbr/putenv.j ../sbr/pwd.j ../sbr/r1bindex.j ../sbr/refile.j \ + ../sbr/remdir.j ../sbr/showfile.j ../sbr/smatch.j ../sbr/sprintb.j \ + ../sbr/ssequal.j ../sbr/strindex.j ../sbr/trimcpy.j ../sbr/uleq.j \ + ../sbr/uprf.j ../sbr/vfgets.j +LIBMTS = ../mts/sendmail/hosts.j ../mts/sendmail/smail.j +LIBZOT = ../zotnet/bboards/getbbent.j ../zotnet/mf/mf.j \ + ../zotnet/tws/dtime.j ../zotnet/tws/dtimep.j ../zotnet/tws/lexstring.j \ + ../zotnet/mts/client.j ../zotnet/mts/lock.j ../zotnet/mts/mts.j + +all: libmh.so.$(VERSION) libconfig.sa libmh.sa libmts.sa libzot.sa + /usr/dll/bin/verify-shlib -l libmh.so.$(VERSION) \ + libconfig.sa libmh.sa libmts.sa libzot.sa + +libmh.so.$(VERSION): jump.params $(LIBCONFIG) $(LIBMH) $(LIBMTS) $(LIBZOT) + ar rc libconfig.a $(LIBCONFIG) + ar rc libmh.a $(LIBMH) + ar rc libmts.a $(LIBMTS) + ar rc libzot.a $(LIBZOT) + /usr/dll/bin/mkimage -l /lib/libmh -v $(VERSION) $(LIBDEFS) -- \ + libconfig.a libmh.a libmts.a libzot.a `cc --print` -lc + rm -f libconfig.a libmh.a libmts.a libzot.a + +libconfig.sa libmh.sa libmts.sa libzot.sa: libmh.so.$(VERSION) + /usr/dll/bin/mkstubs -l /lib/libmh -v $(VERSION) $(LIBDEFS) -- \ + libconfig libmh libmts libzot + +inst-all: + cp libmh.so.$(VERSION) /lib + /etc/ldconfig /lib + +clean: + -rm *.[csoa] *.so.*.* *.sa verify.out diff --git a/docs/historical/mh-6.8.5/local/linux/jump/jump.funcs b/docs/historical/mh-6.8.5/local/linux/jump/jump.funcs new file mode 100644 index 0000000..11de876 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/jump/jump.funcs @@ -0,0 +1,150 @@ +00000000 T _libpath libconfig config +00000000 T _add libmh add +00000000 T _adios libmh adios +00000000 T _admonish libmh admonish +00000000 T _getname libmh addrsbr +00000000 T _getm libmh addrsbr +00000000 T _mnfree libmh addrsbr +00000000 T _auxformat libmh addrsbr +00000000 T _adrsprintf libmh addrsbr +00000000 T _ismymbox libmh addrsbr +00000000 T _advertise libmh advertise +00000000 T _advise libmh advise +00000000 T _ambigsw libmh ambigsw +00000000 T _atooi libmh atooi +00000000 T _brkstring libmh brkstring +00000000 T _closefds libmh closefds +00000000 T _concat libmh concat +00000000 T _copy libmh copy +00000000 T _copyip libmh copyip +00000000 T _cpydata libmh cpydata +00000000 T _cpydgst libmh cpydgst +00000000 T _discard libmh discard +00000000 T _done libmh done +00000000 T _fdcompare libmh fdcompare +00000000 T _gans libmh gans +00000000 T _getans libmh getans +00000000 T _getanswer libmh getanswer +00000000 T _getcpy libmh getcpy +00000000 T _help libmh help +00000000 T _fmt_compile libmh fmtcompile +00000000 T _formataddr libmh formataddr +00000000 T _new_fs libmh formatsbr +00000000 T _fmtscan libmh formatsbr +00000000 T _m_atoi libmh m_atoi +00000000 T _m_backup libmh m_backup +00000000 T _m_convert libmh m_convert +00000000 T _m_delete libmh m_delete +00000000 T _m_draft libmh m_draft +00000000 T _m_find libmh m_find +00000000 T _m_fmsg libmh m_fmsg +00000000 T _m_foil libmh m_foil +00000000 T _m_getdefs libmh m_getdefs +00000000 T _m_getfld libmh m_getfld +00000000 T _m_unknown libmh m_getfld +00000000 T _m_eomsbr libmh m_getfld +00000000 T _m_Eom libmh m_getfld +00000000 T _unixline libmh m_getfld +00000000 T _m_getfolder libmh m_getfolder +00000000 T _m_gmprot libmh m_gmprot +00000000 T _m_gmsg libmh m_gmsg +00000000 T _m_maildir libmh m_maildir +00000000 T _m_mailpath libmh m_maildir +00000000 T _m_name libmh m_name +00000000 T _m_readefs libmh m_readefs +00000000 T _m_remsg libmh m_remsg +00000000 T _m_replace libmh m_replace +00000000 T _m_scratch libmh m_scratch +00000000 T _m_seq libmh m_seq +00000000 T _m_seqbits libmh m_seqbits +00000000 T _m_seqflag libmh m_seqflag +00000000 T _m_seqnew libmh m_seqnew +00000000 T _m_seqadd libmh m_seqnew +00000000 T _m_seqdel libmh m_seqnew +00000000 T _m_setcur libmh m_setcur +00000000 T _m_setseq libmh m_setseq +00000000 T _m_setvis libmh m_setvis +00000000 T _m_sync libmh m_sync +00000000 T _m_tmpfil libmh m_tmpfil +00000000 T _m_update libmh m_update +00000000 T _makedir libmh makedir +00000000 T _path libmh path +00000000 T _peekc libmh peekc +00000000 T _pidwait libmh pidwait +00000000 T _pidstatus libmh pidstatus +00000000 T _printsw libmh printsw +00000000 T _push libmh push +00000000 T _m_putenv libmh putenv +00000000 T _unputenv libmh putenv +00000000 T _pwd libmh pwd +00000000 T _refile libmh refile +00000000 T _remdir libmh remdir +00000000 T _r1bindex libmh r1bindex +00000000 T _showfile libmh showfile +00000000 T _smatch libmh smatch +00000000 T _sprintb libmh sprintb +00000000 T _ssequal libmh ssequal +00000000 T _stringdex libmh strindex +00000000 T _trimcpy libmh trimcpy +00000000 T _uleq libmh uleq +00000000 T _uprf libmh uprf +00000000 T _vfgets libmh vfgets +00000000 T _OfficialName libmts hosts +00000000 T _sm_init libmts smail +00000000 T _sm_winit libmts smail +00000000 T _sm_wadr libmts smail +00000000 T _sm_waend libmts smail +00000000 T _sm_wtxt libmts smail +00000000 T _sm_wtend libmts smail +00000000 T _sm_end libmts smail +00000000 T __DUMMY__ libmts smail +00000000 T _rp_string libmts smail +00000000 T _EHLOset libmts smail +00000000 T _mts_init libzot mts +00000000 T _LocalName libzot mts +00000000 T _SystemName libzot mts +00000000 T _UucpChan libzot mts +00000000 T _getusr libzot mts +00000000 T _getfullname libzot mts +00000000 T _dup2 libzot mts +00000000 T _lkopen libzot lock +00000000 T _lkclose libzot lock +00000000 T _lkfopen libzot lock +00000000 T _lkfclose libzot lock +00000000 T _client libzot client +00000000 T _gethostbystring libzot client +00000000 T _setbbfile libzot getbbent +00000000 T _setbbinfo libzot getbbent +00000000 T _setpwinfo libzot getbbent +00000000 T _setbbent libzot getbbent +00000000 T _endbbent libzot getbbent +00000000 T _getbbtime libzot getbbent +00000000 T _getbbent libzot getbbent +00000000 T _getbbnam libzot getbbent +00000000 T _getbbaka libzot getbbent +00000000 T _ldrbb libzot getbbent +00000000 T _ldrchk libzot getbbent +00000000 T _getbbcpy libzot getbbent +00000000 T _getbbdist libzot getbbent +00000000 T _getbberr libzot getbbent +00000000 T _make_lower libzot getbbent +00000000 T _dparsetime libzot dtimep +00000000 T _lex_string libzot lexstring +00000000 T _dtimenow libzot dtime +00000000 T _dctime libzot dtime +00000000 T _dtwstime libzot dtime +00000000 T _dlocaltime libzot dtime +00000000 T _dgmtime libzot dtime +00000000 T _dasctime libzot dtime +00000000 T _dtimezone libzot dtime +00000000 T _twscopy libzot dtime +00000000 T _twsort libzot dtime +00000000 T _twclock libzot dtime +00000000 T _set_dotw libzot dtime +00000000 T _isfrom libzot mf +00000000 T _lequal libzot mf +00000000 T _seekadrx libzot mf +00000000 T _uucpadrx libzot mf +00000000 T _getadrx libzot mf +00000000 T _legal_person libzot mf +00000000 T _mfgets libzot mf diff --git a/docs/historical/mh-6.8.5/local/linux/jump/jump.ignore b/docs/historical/mh-6.8.5/local/linux/jump/jump.ignore new file mode 100644 index 0000000..807cce1 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/jump/jump.ignore @@ -0,0 +1 @@ +00000000 T _main libzot date diff --git a/docs/historical/mh-6.8.5/local/linux/jump/jump.import b/docs/historical/mh-6.8.5/local/linux/jump/jump.import new file mode 100644 index 0000000..51b1fd8 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/jump/jump.import @@ -0,0 +1,164 @@ +/usr/lib/libc.sa(__libc.o):00001000 a __GOT_SIZE +/usr/lib/libc.sa(__libc.o):6008f0b0 A _AL +/usr/lib/libc.sa(__libc.o):6008f198 A _AL_PARM +/usr/lib/libc.sa(__libc.o):6008f060 A _AM +/usr/lib/libc.sa(__libc.o):6008f0b4 A _BC +/usr/lib/libc.sa(__libc.o):6008f064 A _BS +/usr/lib/libc.sa(__libc.o):6008f0bc A _BT +/usr/lib/libc.sa(__libc.o):6008f068 A _CA +/usr/lib/libc.sa(__libc.o):6008f0c0 A _CD +/usr/lib/libc.sa(__libc.o):6008f0c4 A _CE +/usr/lib/libc.sa(__libc.o):6008f0c8 A _CL +/usr/lib/libc.sa(__libc.o):6008f0cc A _CM +/usr/lib/libc.sa(__libc.o):6008f048 A _COLS +/usr/lib/libc.sa(__libc.o):6008f0d0 A _CR +/usr/lib/libc.sa(__libc.o):6008f0d4 A _CS +/usr/lib/libc.sa(__libc.o):6008f06c A _DA +/usr/lib/libc.sa(__libc.o):6008f070 A _DB +/usr/lib/libc.sa(__libc.o):6008f0d8 A _DC +/usr/lib/libc.sa(__libc.o):6008f0dc A _DL +/usr/lib/libc.sa(__libc.o):6008f19c A _DL_PARM +/usr/lib/libc.sa(__libc.o):6008f0e0 A _DM +/usr/lib/libc.sa(__libc.o):6008f0e4 A _DO +/usr/lib/libc.sa(__libc.o):6008f1a4 A _DOWN_PARM +/usr/lib/libc.sa(__libc.o):6008f03c A _Def_term +/usr/lib/libc.sa(__libc.o):6008f0e8 A _ED +/usr/lib/libc.sa(__libc.o):6008f0ec A _EI +/usr/lib/libc.sa(__libc.o):6008f074 A _EO +/usr/lib/libc.sa(__libc.o):6008f1b8 A _GT +/usr/lib/libc.sa(__libc.o):6008f078 A _HC +/usr/lib/libc.sa(__libc.o):6008f118 A _HO +/usr/lib/libc.sa(__libc.o):6008f07c A _HZ +/usr/lib/libc.sa(__libc.o):6008f11c A _IC +/usr/lib/libc.sa(__libc.o):6008f120 A _IM +/usr/lib/libc.sa(__libc.o):6008f080 A _IN +/usr/lib/libc.sa(__libc.o):6008f124 A _IP +/usr/lib/libc.sa(__libc.o):6008f0f0 A _K0 +/usr/lib/libc.sa(__libc.o):6008f0f4 A _K1 +/usr/lib/libc.sa(__libc.o):6008f0f8 A _K2 +/usr/lib/libc.sa(__libc.o):6008f0fc A _K3 +/usr/lib/libc.sa(__libc.o):6008f100 A _K4 +/usr/lib/libc.sa(__libc.o):6008f104 A _K5 +/usr/lib/libc.sa(__libc.o):6008f108 A _K6 +/usr/lib/libc.sa(__libc.o):6008f10c A _K7 +/usr/lib/libc.sa(__libc.o):6008f110 A _K8 +/usr/lib/libc.sa(__libc.o):6008f114 A _K9 +/usr/lib/libc.sa(__libc.o):6008f128 A _KD +/usr/lib/libc.sa(__libc.o):6008f12c A _KE +/usr/lib/libc.sa(__libc.o):6008f130 A _KH +/usr/lib/libc.sa(__libc.o):6008f134 A _KL +/usr/lib/libc.sa(__libc.o):6008f138 A _KR +/usr/lib/libc.sa(__libc.o):6008f13c A _KS +/usr/lib/libc.sa(__libc.o):6008f140 A _KU +/usr/lib/libc.sa(__libc.o):6008f1a8 A _LEFT_PARM +/usr/lib/libc.sa(__libc.o):6008f044 A _LINES +/usr/lib/libc.sa(__libc.o):6008f144 A _LL +/usr/lib/libc.sa(__libc.o):6008f148 A _MA +/usr/lib/libc.sa(__libc.o):6008f300 A _MCAppPath +/usr/lib/libc.sa(__libc.o):6008f084 A _MI +/usr/lib/libc.sa(__libc.o):6008f088 A _MS +/usr/lib/libc.sa(__libc.o):6008f030 A _My_term +/usr/lib/libc.sa(__libc.o):6008f08c A _NC +/usr/lib/libc.sa(__libc.o):6008f14c A _ND +/usr/lib/libc.sa(__libc.o):6008f150 A _NL +/usr/lib/libc.sa(__libc.o):6008f1bc A _NONL +/usr/lib/libc.sa(__libc.o):6008f090 A _NS +/usr/lib/libc.sa(__libc.o):6008f094 A _OS +/usr/lib/libc.sa(__libc.o):6008f1b0 A _PC +/usr/lib/libc.sa(__libc.o):6008f154 A _RC +/usr/lib/libc.sa(__libc.o):6008f1ac A _RIGHT_PARM +/usr/lib/libc.sa(__libc.o):6008f158 A _SC +/usr/lib/libc.sa(__libc.o):6008f15c A _SE +/usr/lib/libc.sa(__libc.o):6008f160 A _SF +/usr/lib/libc.sa(__libc.o):6008f164 A _SO +/usr/lib/libc.sa(__libc.o):6008f168 A _SR +/usr/lib/libc.sa(__libc.o):6008f16c A _TA +/usr/lib/libc.sa(__libc.o):6008f170 A _TE +/usr/lib/libc.sa(__libc.o):6008f174 A _TI +/usr/lib/libc.sa(__libc.o):6008f178 A _UC +/usr/lib/libc.sa(__libc.o):6008f17c A _UE +/usr/lib/libc.sa(__libc.o):6008f098 A _UL +/usr/lib/libc.sa(__libc.o):6008f180 A _UP +/usr/lib/libc.sa(__libc.o):6008f1c0 A _UPPERCASE +/usr/lib/libc.sa(__libc.o):6008f1a0 A _UP_PARM +/usr/lib/libc.sa(__libc.o):6008f188 A _US +/usr/lib/libc.sa(__libc.o):6008f18c A _VB +/usr/lib/libc.sa(__libc.o):6008f194 A _VE +/usr/lib/libc.sa(__libc.o):6008f190 A _VS +/usr/lib/libc.sa(__libc.o):6008f09c A _XB +/usr/lib/libc.sa(__libc.o):6008f0a0 A _XN +/usr/lib/libc.sa(__libc.o):6008f0a8 A _XS +/usr/lib/libc.sa(__libc.o):6008f0a4 A _XT +/usr/lib/libc.sa(__libc.o):6008f0ac A _XX +/usr/lib/libc.sa(__libc.o):6008f2a4 A __IO_file_jumps +/usr/lib/libc.sa(__libc.o):6008f1f4 A __IO_list_all +/usr/lib/libc.sa(__libc.o):6008f2a8 A __IO_proc_jumps +/usr/lib/libc.sa(__libc.o):6008f1ec A __IO_stderr_ +/usr/lib/libc.sa(__libc.o):6008f1e4 A __IO_stdin_ +/usr/lib/libc.sa(__libc.o):6008f1e8 A __IO_stdout_ +/usr/lib/libc.sa(__libc.o):6008f2ac A __IO_str_jumps +/usr/lib/libc.sa(__libc.o):6008f214 A ____brk_addr +/usr/lib/libc.sa(__libc.o):6008f01c A ___ctype_b +/usr/lib/libc.sa(__libc.o):6008f020 A ___ctype_tolower +/usr/lib/libc.sa(__libc.o):6008f024 A ___ctype_toupper +/usr/lib/libc.sa(__libc.o):6008f1fc A ___environ +/usr/lib/libc.sa(__libc.o):6008f250 A ___exit_funcs +/usr/lib/libc.sa(__libc.o):6008f2f0 A ___glob_closedir_hook +/usr/lib/libc.sa(__libc.o):6008f2f4 A ___glob_opendir_hook +/usr/lib/libc.sa(__libc.o):6008f2f8 A ___glob_readdir_hook +/usr/lib/libc.sa(__libc.o):6008f278 A ___ttyname +/usr/lib/libc.sa(__libc.o):6008f238 A __collate_info +/usr/lib/libc.sa(__libc.o):6008f23c A __ctype_info +/usr/lib/libc.sa(__libc.o):6008f028 A __echoit +/usr/lib/libc.sa(__libc.o):6008f034 A __endwin +/usr/lib/libc.sa(__libc.o):6008f288 A __gdbm_fetch_val +/usr/lib/libc.sa(__libc.o):6008f280 A __gdbm_file +/usr/lib/libc.sa(__libc.o):6008f284 A __gdbm_memory +/usr/lib/libc.sa(__libc.o):6008f240 A __monetary_info +/usr/lib/libc.sa(__libc.o):6008f234 A __null_auth +/usr/lib/libc.sa(__libc.o):6008f244 A __numeric_info +/usr/lib/libc.sa(__libc.o):6008f2ec A __obstack +/usr/lib/libc.sa(__libc.o):6008f1c8 A __pfast +/usr/lib/libc.sa(__libc.o):6008f02c A __rawmode +/usr/lib/libc.sa(__libc.o):6008f1dc A __res +/usr/lib/libc.sa(__libc.o):6008f04c A __res_iflg +/usr/lib/libc.sa(__libc.o):6008f050 A __res_lflg +/usr/lib/libc.sa(__libc.o):6008f270 A __res_opcodes +/usr/lib/libc.sa(__libc.o):6008f274 A __res_resultcodes +/usr/lib/libc.sa(__libc.o):6008f248 A __response_info +/usr/lib/libc.sa(__libc.o):6008f2fc A __sigintr +/usr/lib/libc.sa(__libc.o):6008f00c A __sys_errlist +/usr/lib/libc.sa(__libc.o):6008f010 A __sys_nerr +/usr/lib/libc.sa(__libc.o):6008f014 A __sys_siglist +/usr/lib/libc.sa(__libc.o):6008f24c A __time_info +/usr/lib/libc.sa(__libc.o):6008f05c A __tty +/usr/lib/libc.sa(__libc.o):6008f040 A __tty_ch +/usr/lib/libc.sa(__libc.o):6008f1cc A __unctrl +/usr/lib/libc.sa(__libc.o):6008f27c A __win +/usr/lib/libc.sa(__libc.o):6008f058 A _curscr +/usr/lib/libc.sa(__libc.o):6008f228 A _daylight +/usr/lib/libc.sa(__libc.o):6008f200 A _errno +/usr/lib/libc.sa(__libc.o):6008f1d0 A _gdbm_errno +/usr/lib/libc.sa(__libc.o):6008f28c A _gdbm_version +/usr/lib/libc.sa(__libc.o):6008f008 A _h_errlist +/usr/lib/libc.sa(__libc.o):6008f1d8 A _h_errno +/usr/lib/libc.sa(__libc.o):6008f2a0 A _h_nerr +/usr/lib/libc.sa(__libc.o):6008f1c4 A _normtty +/usr/lib/libc.sa(__libc.o):6008f204 A _optarg +/usr/lib/libc.sa(__libc.o):6008f20c A _opterr +/usr/lib/libc.sa(__libc.o):6008f208 A _optind +/usr/lib/libc.sa(__libc.o):6008f2e4 A _optopt +/usr/lib/libc.sa(__libc.o):6008f218 A _ospeed +/usr/lib/libc.sa(__libc.o):6008f26c A _re_max_failures +/usr/lib/libc.sa(__libc.o):6008f210 A _re_syntax_options +/usr/lib/libc.sa(__libc.o):6008f1e0 A _rexecoptions +/usr/lib/libc.sa(__libc.o):6008f230 A _rpc_createerr +/usr/lib/libc.sa(__libc.o):6008f25c A _stderr +/usr/lib/libc.sa(__libc.o):6008f254 A _stdin +/usr/lib/libc.sa(__libc.o):6008f258 A _stdout +/usr/lib/libc.sa(__libc.o):6008f054 A _stdscr +/usr/lib/libc.sa(__libc.o):6008f2e8 A _svc_fdset +/usr/lib/libc.sa(__libc.o):6008f224 A _timezone +/usr/lib/libc.sa(__libc.o):6008f21c A _tputs_baud_rate +/usr/lib/libc.sa(__libc.o):6008f038 A _ttytype +/usr/lib/libc.sa(__libc.o):6008f220 A _tzname diff --git a/docs/historical/mh-6.8.5/local/linux/jump/jump.params b/docs/historical/mh-6.8.5/local/linux/jump/jump.params new file mode 100644 index 0000000..062985d --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/jump/jump.params @@ -0,0 +1,6 @@ +Name=/lib/libmh +Text=0x63f00000 +Data=0x00000000 +Jump=0x00001000 +GOT=0x00001000 +Version=3.0 diff --git a/docs/historical/mh-6.8.5/local/linux/jump/jump.undefs b/docs/historical/mh-6.8.5/local/linux/jump/jump.undefs new file mode 100644 index 0000000..89a7e0b --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/jump/jump.undefs @@ -0,0 +1 @@ +63f1f1f8 D __NEEDS_SHRLIB_libc_4 diff --git a/docs/historical/mh-6.8.5/local/linux/jump/jump.vars b/docs/historical/mh-6.8.5/local/linux/jump/jump.vars new file mode 100644 index 0000000..6a5812a --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/jump/jump.vars @@ -0,0 +1,95 @@ +00000078 D _options libconfig config +00000018 D _anoyes libconfig config +00000004 D _components libconfig config +00000004 D _current libconfig config +00000004 D _defalt libconfig config +00000004 D _digestcomps libconfig config +00000004 D _distcomps libconfig config +00000004 D _draft libconfig config +00000004 D _forwcomps libconfig config +00000004 D _inbox libconfig config +00000004 D _mh_defaults libconfig config +00000004 D _mh_profile libconfig config +00000004 D _mhlformat libconfig config +00000004 D _mhlforward libconfig config +00000004 D _nsequence libconfig config +00000004 D _pfolder libconfig config +00000004 D _psequence libconfig config +00000004 D _rcvdistcomps libconfig config +00000004 D _replcomps libconfig config +00000004 D _usequence libconfig config +00000004 D _mhlibdir libconfig config +00000004 D _context libconfig config +00000004 D _mh_seq libconfig config +00000004 D _faceproc libconfig config +00000004 D _fileproc libconfig config +00000004 D _incproc libconfig config +00000004 D _installproc libconfig config +00000004 D _lproc libconfig config +00000004 D _mailproc libconfig config +00000004 D _moreproc libconfig config +00000004 D _mhlproc libconfig config +00000004 D _mshproc libconfig config +00000004 D _packproc libconfig config +00000004 D _postproc libconfig config +00000004 D _rmfproc libconfig config +00000004 D _rmmproc libconfig config +00000004 D _sendproc libconfig config +00000004 D _showproc libconfig config +00000004 D _slocalproc libconfig config +00000004 D _vmhproc libconfig config +00000004 D _whatnowproc libconfig config +00000004 D _whomproc libconfig config +00000004 D _sysed libconfig config +00000004 D _AliasFile libconfig config +00000004 D _foldprot libconfig config +00000004 D _msgprot libconfig config +00000004 C _ctxflags libconfig config +00000004 C _invo_name libconfig config +00000004 C _mypath libconfig config +00000004 C _defpath libconfig config +00000004 C _ctxpath libconfig config +00000004 C _m_defs libconfig config +00000004 D _version libconfig version +00000200 C _wantcomp libmh fmtcompile +0000002c C _fmt_mnull libmh formatsbr +00000004 D _fd_def libmh m_getdefs +00000004 D _fd_ctx libmh m_getdefs +00000004 D _fmt_norm libmh formatdef +00000004 D _msg_count libmh m_msgdef +00000004 D _msg_style libmh m_msgdef +00000004 D _msg_delim libmh m_msgdef +00000408 C _sm_reply libmts smail +0000002c C _EHLOkeys libmts smail +00000004 D _mmdfldir libzot mts +00000004 D _mmdflfil libzot mts +00000004 D _uucpldir libzot mts +00000004 D _uucplfil libzot mts +00000004 D _mmdlm1 libzot mts +00000004 D _mmdlm2 libzot mts +00000004 D _umincproc libzot mts +00000004 D _lockstyle libzot mts +00000004 D _lockldir libzot mts +00000004 D _hostable libzot mts +00000004 D _sendmail libzot mts +00000004 D _clientname libzot mts +00000004 D _servers libzot mts +00000004 D _pophost libzot mts +00000004 D _bb_domain libzot mts +00000004 D __DUMMY__ libzot mts +00000004 D __DUMMY__ libzot mts +00000004 D __DUMMY__ libzot mts +00000004 D _maildelivery libzot mts +00000004 D _Everyone libzot mts +00000004 D _NoShell libzot mts +00000004 D _europeandate libzot dtimep +00000360 D _yyvstop libzot dtimep +00002488 D _yycrank libzot dtimep +000013b0 D _yysvec libzot dtimep +00000004 D _yytop libzot dtimep +00000004 D _yybgin libzot dtimep +00000104 D _yymatch libzot dtimep +00000034 D _yyextra libzot dtimep +00000034 D _tw_moty libzot dtime +00000020 D _tw_dotw libzot dtime +00000020 D _tw_ldotw libzot dtime diff --git a/docs/historical/mh-6.8.5/local/linux/linux-conf.MH b/docs/historical/mh-6.8.5/local/linux/linux-conf.MH new file mode 100644 index 0000000..e824fba --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/linux-conf.MH @@ -0,0 +1,30 @@ +# @(#)$Id: MH,v 1.7 90/04/06 09:44:31 sources Exp $ +# Linux i386 +bin /usr/bin/mh +bboards off +etc /usr/lib/mh +mail /usr/spool/mail +mandir /usr/man +manuals standard +chown /bin/chown +cc cc +ccoptions -traditional -D_NFILE='getdtablesize()' -DSIGEMT=SIGUSR1 -O2 +ldoptions +ldoptlibs -ldbm +lex flex +ranlib on +mts sendmail/smtp +bbdelivery off +bbhome /usr/spool/bboards +pop on +popdir /usr/sbin +signal void +sprintf int +mailgroup mail +# MH has never worked properly with terminfo, to my knowledge. It looks +# like vmh still tries to play the internals game, which is bound to fail. +curses -lcurses -ltermcap +# This is POSIX. Building Linux software for BSD is almost always a mistake. +options SYS5 MORE='"/usr/bin/more"' RENAME SYS5DIR UNISTD SVR4 MIME +options VSPRINTF MHE OVERHEAD RPATHS DUMB ATHENA BIND SOCKETS NTOHLSWAP +options DPOP POP2 RPOP MHRC \ No newline at end of file diff --git a/docs/historical/mh-6.8.5/local/linux/linux-conf.config.mtstailor b/docs/historical/mh-6.8.5/local/linux/linux-conf.config.mtstailor new file mode 100644 index 0000000..c5dd52a --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/linux-conf.config.mtstailor @@ -0,0 +1,12 @@ +mmdfldir: @(MHDROPATH) +mmdflfil: @(MHDROPFIL) +uucpldir: /usr/spool/mail +uucplfil: +mmdelim1: \001\001\001\001\n +mmdelim2: \001\001\001\001\n +mmailid: 0 +umincproc: +lockldir: + +hostable: @(MHETCPATH)/hosts +sendmail: /usr/lib/sendmail diff --git a/docs/historical/mh-6.8.5/local/linux/linux-dtimep.c-lexed b/docs/historical/mh-6.8.5/local/linux/linux-dtimep.c-lexed new file mode 100644 index 0000000..e3fddcf --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/linux-dtimep.c-lexed @@ -0,0 +1,1672 @@ +# include +static int start_cond = 0; +#define BEGIN start_cond = +struct yysvf { + struct yywork *yystoff; + struct yysvf *yyother; + int *yystops;}; +# define Z 2 +#ifndef lint +static char ident[] = "@(#)$Id: dtimep.lex,v 2.15 1993/02/26 22:07:40 jromine Exp $"; +#endif +#include "tws.h" +#include "../h/strings.h" +#include +#include +#if !defined(SYS5) && !defined(ZONEINFO) +#include +#endif /* !defined(SYS5) && !defined(ZONEINFO) */ + +#ifdef SYS5 +extern int daylight; +extern long timezone; +extern char *tzname[]; +#endif /* SYS5 */ + + +# line 54 "dtimep.lex" +/* + * Patchable flag that says how to interpret NN/NN/NN dates. When + * true, we do it European style: DD/MM/YY. When false, we do it + * American style: MM/DD/YY. Of course, these are all non-RFC822 + * compliant. + */ +int europeandate = 0; + + +# line 62 "dtimep.lex" +/* + * Table to convert month names to numeric month. We use the + * fact that the low order 5 bits of the sum of the 2nd & 3rd + * characters of the name is a hash with no collisions for the 12 + * valid month names. (The mask to 5 bits maps any combination of + * upper and lower case into the same hash value). + */ +static int month_map[] = { + 0, + 6, /* 1 - Jul */ + 3, /* 2 - Apr */ + 5, /* 3 - Jun */ + 0, + 10, /* 5 - Nov */ + 0, + 1, /* 7 - Feb */ + 11, /* 8 - Dec */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, /*15 - Jan */ + 0, + 0, + 0, + 2, /*19 - Mar */ + 0, + 8, /*21 - Sep */ + 0, + 9, /*23 - Oct */ + 0, + 0, + 4, /*26 - May */ + 0, + 7 /*28 - Aug */ +}; + +# line 100 "dtimep.lex" +/* + * Same trick for day-of-week using the hash function + * (c1 & 7) + (c2 & 4) + */ +static int day_map[] = { + 0, + 0, + 0, + 6, /* 3 - Sat */ + 4, /* 4 - Thu */ + 0, + 5, /* 6 - Fri */ + 0, /* 7 - Sun */ + 2, /* 8 - Tue */ + 1 /* 9 - Mon */, + 0, + 3 /*11 - Wed */ +}; +#define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\ + tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\ + cp += 2; } +#define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\ + cp += 2;\ + SKIPD;} +#define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i) +#define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0')) +#define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \ + (cp[2] - '0'))*10 + (cp[3] - '0')) +#define SKIPD { while ( !isdigit(*cp++) ) ; --cp; } +#define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; } +#define ZONE(x) { tw.tw_zone=(x); EXPZONE; } +#define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; } +#define LC(c) (isupper (c) ? tolower (c) : (c)) + +#ifdef DSTXXX +#ifdef _AIX +#include +#include +#else +#ifndef BSD42 +#include +#else /* BSD42 */ +#include +#endif /* BSD42 */ +#endif + +static zonehack (tw) +register struct tws *tw; +{ + register struct tm *tm; + + if (twclock (tw) == -1L) + return; + + tm = localtime (&tw -> tw_clock); + if (tm -> tm_isdst) { + tw -> tw_flags |= TW_DST; + tw -> tw_zone -= 60; + } +} +#endif /* DSTXXX */ +struct tws *dparsetime (str) + char *str; +{ + register int i; + static struct tws tw; + register char *cp; + register int gotdate = 0; +#ifndef SYS5 +#ifdef ZONEINFO + struct tm *tm; + time_t clock; +#else + struct timeb tb; +#endif /* ZONEINFO */ +#endif /* not SYS5 */ + long tclock; + + start_cond = 0; + + /* Zero out the struct. */ + bzero( (char *) &tw, sizeof tw); + + /* Set default time zone. */ +#ifdef SYS5 + tzset( ); + tw.tw_zone = -(timezone / 60); +#else +#ifdef ZONEINFO + time (&clock); + tm = localtime(&clock); + tw.tw_zone = tm->tm_gmtoff / 60; + if (tm -> tm_isdst) /* if DST is in effect */ + tw.tw_zone -= 60; /* reset to normal offset */ +#else + ftime( &tb ); + tw.tw_zone = -tb.timezone; +#endif /* ZONEINFO */ +#endif /* SYS5 */ + + while (isspace(*str)) + str++; + while ( 1 ) + switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) { + + case -1: + if (!gotdate || tw.tw_year == 0) + return (struct tws *)0; + /* fall through */ + case 0: + if ( tw.tw_year == 0 ) { + /* Set default year. */ + time (&tclock); + tw.tw_year = localtime(&tclock)->tm_year + 1900; + } + else if (tw.tw_year < 100) { + /* assume no 2-digit years > 1999 */ + tw.tw_year += 1900; + } + return &tw; + +case 1: + +# line 224 "dtimep.lex" + SETDAY; +break; +case 2: + +# line 225 "dtimep.lex" + { + cp++; + SETDAY; + } +break; +case 3: + +# line 229 "dtimep.lex" +{ + if (europeandate) { + /* European: DD/MM/YY */ + tw.tw_mday = CVT1OR2; + cp++; + tw.tw_mon = CVT1OR2 - 1; + } else { + /* American: MM/DD/YY */ + tw.tw_mon = CVT1OR2 - 1; + cp++; + tw.tw_mday = CVT1OR2; + } + cp++; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i; + gotdate++; /* XXX */ + } +break; +case 4: + +# line 247 "dtimep.lex" + { + if (europeandate) { + tw.tw_mday = CVT1OR2; cp++; + tw.tw_mon = CVT1OR2 - 1; + } else { + tw.tw_mon = CVT1OR2 - 1; cp++; + tw.tw_mday = CVT1OR2; + } + gotdate++; + } +break; +case 5: + +# line 257 "dtimep.lex" +{ + tw.tw_mday = CVT1OR2; + while ( !isalpha(*cp++) ) + ; + SETMONTH; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i; + } +break; +case 6: + +# line 266 "dtimep.lex" + { + tw.tw_mday = CVT1OR2; + while ( ! isalpha( *cp++ ) ) + ; + SETMONTH; + } +break; +case 7: + +# line 272 "dtimep.lex" +{ + cp++; + SETMONTH; + tw.tw_mday = CVT1OR2; + SKIPD; + for (i = 0; isdigit(*cp); ) + i = i*10 + (*cp++ - '0'); + tw.tw_year = i; + } +break; +case 8: + +# line 281 "dtimep.lex" + { + cp++; + SETMONTH; + tw.tw_mday = CVT1OR2; + } +break; +case 9: + +# line 287 "dtimep.lex" + { /* hack: ctime w/o TZ */ + tw.tw_hour = CVT1OR2; cp++; + tw.tw_min = CVT1OR2; cp++; + tw.tw_sec = CVT1OR2; + SKIPD; + tw.tw_year = CVT4; cp+=4; + } +break; +case 10: + +# line 294 "dtimep.lex" + { + tw.tw_hour = CVT1OR2; cp++; + tw.tw_min = CVT1OR2; cp++; + tw.tw_sec = CVT1OR2; + BEGIN Z; + } +break; +case 11: + +# line 300 "dtimep.lex" + { + tw.tw_hour = CVT1OR2; cp++; + tw.tw_min = CVT1OR2; + BEGIN Z; + } +break; +case 12: + +# line 305 "dtimep.lex" + { + tw.tw_hour = CVT1OR2; cp++; + if (tw.tw_hour == 12) + tw.tw_hour = 0; + tw.tw_min = CVT1OR2; + BEGIN Z; + } +break; +case 13: + +# line 312 "dtimep.lex" + { + tw.tw_hour = CVT1OR2; cp++; + if (tw.tw_hour == 12) + tw.tw_hour = 0; + tw.tw_min = CVT1OR2; cp++; + tw.tw_sec = CVT1OR2; + BEGIN Z; + } +break; +case 14: + +# line 320 "dtimep.lex" + { + tw.tw_hour = CVT1OR2; cp++; + if (tw.tw_hour != 12) + tw.tw_hour += 12; + tw.tw_min = CVT1OR2; + BEGIN Z; + } +break; +case 15: + +# line 327 "dtimep.lex" + { + tw.tw_hour = CVT1OR2; cp++; + if (tw.tw_hour != 12) + tw.tw_hour += 12; + tw.tw_min = CVT1OR2; cp++; + tw.tw_sec = CVT1OR2; + BEGIN Z; + } +break; +case 16: + +# line 335 "dtimep.lex" + { + tw.tw_hour = CVT2; cp+=2; + tw.tw_min = CVT2; cp+=2; + tw.tw_sec = CVT2; cp+=2; + BEGIN Z; + } +break; +case 17: + +# line 341 "dtimep.lex" + { + /* + * Luckly, 4 digit times in the range + * 1960-1999 aren't legal as hour + * and minutes. + */ + tw.tw_year = CVT4; cp+=4; + } +break; +case 18: + +# line 349 "dtimep.lex" + { + if (tw.tw_hour || tw.tw_min + || tw.tw_sec) { + tw.tw_year = CVT4; cp+=4; + tw.tw_zone = 0; + } else { + tw.tw_hour = CVT2; cp+=2; + tw.tw_min = CVT2; cp+=2; + BEGIN Z; + } + } +break; +case 19: + +# line 360 "dtimep.lex" + ZONE(0 * 60); +break; +case 20: + +# line 361 "dtimep.lex" + ZONE(0 * 60); +break; +case 21: + +# line 362 "dtimep.lex" + ZONE(2 * 60); +break; +case 22: + +# line 363 "dtimep.lex" + ZONED(2 * 60); +break; +case 23: + +# line 364 "dtimep.lex" + ZONE(-5 * 60); +break; +case 24: + +# line 365 "dtimep.lex" + ZONED(-5 * 60); +break; +case 25: + +# line 366 "dtimep.lex" + ZONE(-6 * 60); +break; +case 26: + +# line 367 "dtimep.lex" + ZONED(-6 * 60); +break; +case 27: + +# line 368 "dtimep.lex" + ZONE(-7 * 60); +break; +case 28: + +# line 369 "dtimep.lex" + ZONED(-7 * 60); +break; +case 29: + +# line 370 "dtimep.lex" + ZONE(-8 * 60); +break; +case 30: + +# line 371 "dtimep.lex" + ZONED(-8 * 60); +break; +case 31: + +# line 372 "dtimep.lex" + ZONE(-(3 * 60 + 30)); +break; +case 32: + +# line 373 "dtimep.lex" + ZONE(-4 * 60); +break; +case 33: + +# line 374 "dtimep.lex" + ZONED(-4 * 60); +break; +case 34: + +# line 375 "dtimep.lex" + ZONE(-9 * 60); +break; +case 35: + +# line 376 "dtimep.lex" + ZONED(-9 * 60); +break; +case 36: + +# line 377 "dtimep.lex" + ZONE(-10 * 60); +break; +case 37: + +# line 378 "dtimep.lex" + ZONED(-10 * 60); +break; +case 38: + +# line 379 "dtimep.lex" + ZONED(-1 * 60); +break; +case 39: + +# line 380 "dtimep.lex" + { + tw.tw_zone = 60 * (('a'-1) - LC(*cp)); + EXPZONE; + } +break; +case 40: + +# line 384 "dtimep.lex" + { + tw.tw_zone = 60 * ('a' - LC(*cp)); + EXPZONE; + } +break; +case 41: + +# line 388 "dtimep.lex" + { + tw.tw_zone = 60 * (LC(*cp) - 'm'); + EXPZONE; + } +break; +case 42: + +# line 392 "dtimep.lex" + { + cp++; + tw.tw_zone = ((cp[0] * 10 + cp[1]) + -('0' * 10 + '0'))*60 + +((cp[2] * 10 + cp[3]) + -('0' * 10 + '0')); + EXPZONE; +#ifdef DSTXXX + zonehack (&tw); +#endif /* DSTXXX */ + cp += 4; + } +break; +case 43: + +# line 404 "dtimep.lex" + { + cp++; + tw.tw_zone = (('0' * 10 + '0') + -(cp[0] * 10 + cp[1]))*60 + +(('0' * 10 + '0') + -(cp[2] * 10 + cp[3])); + EXPZONE; +#ifdef DSTXXX + zonehack (&tw); +#endif /* DSTXXX */ + cp += 4; + } +break; +case 44: + +# line 416 "dtimep.lex" + { + SKIPD; + tw.tw_year = CVT4; cp+=4; + } +break; +case 45: + +# line 420 "dtimep.lex" +case 46: + +# line 421 "dtimep.lex" +; +break; + default: return(0); +} } +/* end of yylex */ +int yyvstop[] = { +0, + +46, +0, + +45, +0, + +46, +0, + +39, +0, + +39, +0, + +39, +0, + +39, +0, + +39, +0, + +39, +0, + +39, +0, + +39, +0, + +39, +0, + +40, +0, + +40, +0, + +41, +0, + +41, +0, + +41, +0, + +41, +0, + +41, +0, + +41, +0, + +41, +0, + +41, +0, + +41, +0, + +19, +0, + +4, +0, + +4, +0, + +11, +0, + +1, +0, + +1, +0, + +1, +0, + +1, +0, + +1, +0, + +1, +0, + +1, +0, + +33, +0, + +32, +0, + +38, +0, + +26, +0, + +25, +0, + +24, +0, + +23, +0, + +20, +0, + +37, +0, + +36, +0, + +22, +0, + +21, +0, + +28, +0, + +27, +0, + +31, +0, + +30, +0, + +29, +0, + +35, +0, + +34, +0, + +4, +0, + +4, +0, + +4, +0, + +18, +0, + +11, +0, + +11, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +6, +0, + +17, +18, +0, + +1, +0, + +2, +0, + +18, +0, + +10, +0, + +12, +0, + +14, +0, + +6, +0, + +17, +18, +0, + +8, +0, + +44, +0, + +42, +0, + +43, +0, + +2, +0, + +3, +0, + +16, +0, + +10, +0, + +10, +0, + +5, +0, + +8, +0, + +8, +0, + +1, +0, + +3, +0, + +3, +0, + +13, +0, + +15, +0, + +6, +0, + +5, +0, + +5, +0, + +5, +0, + +5, +0, + +7, +0, + +9, +0, + +7, +0, + +7, +0, +0}; +# define YYTYPE int +struct yywork { YYTYPE verify, advance; } yycrank[] = { +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 1,5, 1,6, +5,5, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 1,5, 0,0, 5,5, +3,21, 3,6, 0,0, 0,0, +0,0, 1,7, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 1,8, 1,9, 1,8, +1,10, 1,10, 1,10, 1,10, +1,10, 1,10, 1,10, 3,21, +9,63, 22,83, 22,83, 0,0, +0,0, 0,0, 0,0, 3,7, +0,0, 0,0, 3,22, 0,0, +3,23, 0,0, 0,0, 3,8, +3,9, 3,8, 3,10, 3,10, +3,10, 3,10, 3,10, 3,10, +3,10, 10,64, 10,64, 10,64, +10,64, 10,64, 10,64, 10,64, +10,64, 10,64, 10,64, 0,0, +0,0, 0,0, 1,11, 15,72, +59,143, 1,12, 14,70, 1,13, +12,67, 13,68, 17,75, 1,14, +19,79, 20,81, 1,15, 1,16, +1,17, 15,73, 11,65, 16,74, +1,18, 1,19, 13,69, 11,66, +1,20, 19,80, 14,71, 25,99, +3,24, 3,25, 3,26, 3,27, +3,28, 3,29, 3,30, 3,31, +3,32, 3,33, 3,34, 3,34, +3,35, 3,36, 3,37, 3,38, +3,39, 3,39, 3,40, 3,41, +3,42, 3,39, 3,43, 3,39, +3,44, 7,45, 8,50, 18,76, +26,100, 28,102, 30,104, 18,77, +7,46, 24,97, 42,114, 45,117, +31,105, 21,21, 7,47, 7,48, +23,84, 23,84, 7,49, 26,101, +28,103, 24,65, 38,112, 18,78, +24,98, 8,50, 24,66, 31,106, +36,74, 46,118, 49,123, 56,139, +36,111, 57,140, 55,137, 60,144, +21,21, 38,113, 8,51, 55,138, +8,52, 8,53, 8,53, 8,53, +8,53, 8,53, 8,53, 8,53, +8,53, 8,53, 8,53, 8,54, +21,82, 21,82, 21,82, 21,82, +21,82, 21,82, 21,82, 21,82, +21,82, 21,82, 47,119, 61,145, +62,146, 23,85, 23,86, 23,87, +44,115, 23,88, 35,72, 23,89, +23,90, 35,109, 23,91, 50,50, +33,70, 23,92, 23,93, 33,107, +23,94, 58,141, 47,120, 44,116, +35,73, 23,95, 65,148, 48,121, +35,110, 23,96, 8,55, 51,124, +66,149, 8,56, 33,108, 8,57, +33,71, 67,150, 50,50, 8,58, +48,122, 58,142, 8,59, 8,60, +8,61, 68,151, 69,152, 70,153, +8,62, 73,158, 71,154, 50,124, +71,155, 74,159, 51,124, 52,134, +52,134, 52,134, 52,134, 52,134, +52,134, 52,134, 52,134, 52,134, +52,134, 75,160, 76,161, 77,162, +78,163, 79,164, 51,133, 51,133, +51,133, 51,133, 51,133, 51,133, +51,133, 51,133, 51,133, 51,133, +53,135, 53,135, 53,135, 53,135, +53,135, 53,135, 53,135, 53,135, +53,135, 53,135, 54,136, 54,136, +54,136, 54,136, 54,136, 54,136, +54,136, 54,136, 54,136, 54,136, +72,156, 80,165, 81,166, 50,125, +93,111, 85,97, 50,126, 72,157, +50,127, 97,170, 91,107, 92,109, +50,128, 64,50, 98,171, 50,129, +50,130, 50,131, 99,172, 51,55, +85,98, 50,132, 51,56, 100,173, +51,57, 91,108, 92,110, 101,174, +51,58, 102,175, 103,176, 51,59, +51,60, 51,61, 104,177, 105,178, +64,50, 51,62, 63,135, 63,135, +63,135, 63,135, 63,135, 63,135, +63,147, 63,147, 63,147, 63,147, +106,179, 64,51, 107,180, 64,52, +82,167, 82,167, 82,167, 82,167, +82,167, 82,167, 82,167, 82,167, +82,167, 82,167, 64,54, 83,168, +83,168, 83,168, 83,168, 83,168, +83,168, 83,168, 83,168, 83,168, +83,168, 84,169, 84,169, 84,169, +84,169, 84,169, 84,169, 84,169, +84,169, 84,169, 84,169, 108,181, +109,182, 110,183, 111,184, 112,185, +113,186, 115,187, 116,188, 117,189, +118,190, 119,191, 120,192, 121,193, +122,194, 123,195, 124,124, 126,198, +125,196, 64,55, 127,199, 128,200, +64,56, 125,197, 64,57, 129,202, +130,203, 131,204, 64,58, 132,205, +133,206, 64,59, 64,60, 64,61, +137,216, 138,217, 139,218, 64,62, +140,219, 124,124, 141,220, 128,201, +134,206, 135,210, 135,210, 135,210, +135,210, 135,210, 135,210, 135,210, +135,210, 135,210, 135,210, 133,206, +142,221, 143,223, 142,222, 144,225, +145,226, 146,227, 153,236, 155,157, +143,224, 158,238, 159,239, 134,206, +133,207, 160,240, 162,242, 133,208, +133,208, 133,208, 133,208, 133,208, +133,208, 133,208, 133,208, 133,208, +133,208, 148,229, 134,207, 134,209, +134,209, 134,209, 134,209, 134,209, +134,209, 134,209, 134,209, 134,209, +134,209, 136,211, 147,228, 147,228, +147,228, 147,228, 147,228, 147,228, +147,228, 147,228, 147,228, 147,228, +148,229, 149,229, 124,125, 150,229, +154,229, 124,126, 163,243, 124,127, +190,252, 192,254, 196,258, 124,128, +136,211, 191,250, 124,129, 124,130, +124,131, 151,229, 156,229, 152,234, +124,132, 157,229, 161,234, 164,234, +149,229, 165,234, 150,229, 154,229, +136,212, 136,212, 136,212, 136,212, +136,212, 136,212, 136,212, 136,212, +136,212, 136,212, 136,213, 166,234, +151,229, 156,229, 152,234, 194,250, +157,229, 161,234, 164,234, 189,250, +165,234, 195,250, 193,250, 197,259, +198,260, 199,261, 152,234, 200,262, +203,267, 161,234, 164,234, 201,263, +165,234, 201,264, 166,234, 167,247, +167,247, 167,247, 167,247, 167,247, +167,247, 167,247, 167,247, 167,247, +167,247, 148,230, 166,234, 204,268, +205,269, 136,214, 168,248, 168,248, +168,248, 168,248, 168,248, 168,248, +168,248, 168,248, 168,248, 168,248, +206,206, 191,253, 208,207, 209,207, +136,215, 212,213, 214,274, 150,232, +169,249, 169,249, 169,249, 169,249, +169,249, 169,249, 169,249, 169,249, +169,249, 169,249, 189,251, 202,265, +156,237, 149,231, 152,235, 206,206, +210,271, 211,211, 202,266, 215,275, +154,157, 194,256, 195,257, 220,283, +222,224, 225,285, 151,233, 193,255, +226,286, 227,287, 230,157, 231,290, +164,244, 232,291, 161,241, 165,245, +233,292, 235,293, 236,294, 210,271, +211,211, 237,157, 238,295, 239,296, +166,246, 207,270, 207,270, 207,270, +207,270, 207,270, 207,270, 207,270, +207,270, 207,270, 207,270, 210,272, +210,272, 210,272, 210,272, 210,272, +210,272, 210,272, 210,272, 210,272, +210,272, 213,273, 213,273, 213,273, +213,273, 213,273, 213,273, 213,273, +213,273, 213,273, 213,273, 240,297, +228,288, 234,234, 241,298, 242,299, +243,300, 244,301, 245,302, 216,276, +246,303, 247,304, 247,304, 247,304, +247,304, 247,304, 247,304, 247,304, +247,304, 247,304, 247,304, 250,307, +251,308, 252,309, 217,276, 228,288, +234,234, 253,310, 254,311, 255,312, +256,313, 211,214, 216,276, 257,314, +276,330, 258,266, 260,266, 279,224, +218,276, 265,266, 280,332, 281,333, +282,334, 283,335, 284,224, 216,277, +211,215, 217,276, 216,278, 216,278, +216,278, 216,278, 216,278, 216,278, +216,278, 216,278, 216,278, 216,278, +258,266, 260,266, 217,277, 218,276, +265,266, 217,278, 217,278, 217,278, +217,278, 217,278, 217,278, 217,278, +217,278, 217,278, 217,278, 219,276, +218,277, 259,266, 285,336, 218,278, +218,278, 218,278, 218,278, 218,278, +218,278, 218,278, 218,278, 218,278, +218,278, 264,266, 263,266, 286,337, +287,338, 290,157, 291,342, 292,343, +293,344, 294,345, 219,276, 296,346, +259,266, 221,276, 266,266, 271,271, +297,347, 274,274, 262,266, 216,279, +298,348, 299,349, 301,350, 219,277, +264,266, 263,266, 219,278, 219,278, +219,278, 219,278, 219,278, 219,278, +219,278, 219,278, 219,278, 219,278, +221,276, 266,266, 271,271, 223,276, +274,274, 262,266, 260,317, 265,320, +218,281, 258,315, 217,280, 261,266, +268,266, 221,277, 269,266, 275,275, +221,278, 221,278, 221,278, 221,278, +221,278, 221,278, 221,278, 221,278, +221,278, 221,278, 223,276, 302,351, +303,352, 224,276, 267,266, 288,288, +308,353, 310,354, 261,266, 268,266, +312,355, 269,266, 275,275, 223,277, +229,229, 313,356, 223,278, 223,278, +223,278, 223,278, 223,278, 223,278, +223,278, 223,278, 223,278, 223,278, +224,276, 267,266, 288,288, 314,357, +219,282, 264,266, 315,266, 316,358, +317,359, 259,316, 318,360, 229,229, +319,361, 224,277, 320,266, 321,362, +224,278, 224,278, 224,278, 224,278, +224,278, 224,278, 224,278, 224,278, +224,278, 224,278, 263,266, 229,289, +229,289, 229,289, 229,289, 229,289, +229,289, 229,289, 229,289, 229,289, +229,289, 221,224, 262,319, 322,363, +323,364, 223,284, 248,305, 248,305, +248,305, 248,305, 248,305, 248,305, +248,305, 248,305, 248,305, 248,305, +249,306, 249,306, 249,306, 249,306, +249,306, 249,306, 249,306, 249,306, +249,306, 249,306, 268,322, 328,368, +261,318, 329,369, 330,370, 332,224, +273,326, 269,323, 267,321, 270,324, +270,324, 270,324, 270,324, 270,324, +270,324, 270,324, 270,324, 270,324, +270,324, 272,325, 272,325, 272,325, +272,325, 272,325, 272,325, 272,325, +272,325, 272,325, 272,325, 273,326, +333,373, 334,374, 277,277, 278,331, +278,331, 278,331, 278,331, 278,331, +278,331, 278,331, 278,331, 278,331, +278,331, 324,365, 325,325, 273,327, +273,327, 273,327, 273,327, 273,327, +273,327, 273,327, 273,327, 273,327, +273,327, 277,277, 335,375, 336,376, +289,339, 337,377, 338,378, 341,340, +342,380, 343,381, 344,234, 345,157, +324,365, 325,325, 346,382, 347,157, +348,383, 277,278, 277,278, 277,278, +277,278, 277,278, 277,278, 277,278, +277,278, 277,278, 277,278, 289,339, +324,366, 324,366, 324,366, 324,366, +324,366, 324,366, 324,366, 324,366, +324,366, 324,366, 326,326, 289,340, +273,328, 327,326, 331,371, 289,341, +289,341, 289,341, 289,341, 289,341, +289,341, 289,341, 289,341, 289,341, +289,341, 339,339, 340,379, 273,329, +349,384, 350,385, 352,386, 353,250, +354,387, 326,326, 355,388, 357,389, +327,326, 331,371, 358,266, 359,390, +360,391, 361,392, 362,393, 363,394, +364,395, 365,365, 367,396, 373,399, +339,339, 340,379, 326,367, 374,400, +375,224, 331,372, 331,372, 331,372, +331,372, 331,372, 331,372, 331,372, +331,372, 331,372, 331,372, 368,368, +369,369, 370,370, 371,371, 376,401, +365,365, 366,365, 366,365, 366,365, +366,365, 366,365, 366,365, 366,365, +366,365, 366,365, 366,365, 377,224, +378,402, 384,404, 386,405, 389,406, +390,407, 391,408, 368,368, 369,369, +370,370, 371,371, 392,266, 379,379, +393,409, 394,266, 395,410, 397,412, +402,413, 410,415, 326,328, 398,371, +412,412, 327,328, 372,398, 372,398, +372,398, 372,398, 372,398, 372,398, +372,398, 372,398, 372,398, 372,398, +0,0, 326,329, 379,379, 0,0, +327,329, 396,411, 396,411, 396,411, +396,411, 0,0, 398,371, 412,412, +0,0, 0,0, 0,0, 414,417, +417,417, 0,0, 379,403, 379,403, +379,403, 379,403, 379,403, 379,403, +379,403, 379,403, 379,403, 379,403, +403,414, 403,414, 403,414, 403,414, +403,414, 403,414, 403,414, 403,414, +403,414, 403,414, 414,417, 417,417, +0,0, 0,0, 371,397, 411,416, +411,416, 411,416, 411,416, 411,416, +411,416, 411,416, 411,416, 411,416, +411,416, 0,0, 414,418, 414,418, +414,418, 414,418, 414,418, 414,418, +414,418, 414,418, 414,418, 414,418, +418,417, 418,417, 418,417, 418,417, +418,417, 418,417, 418,417, 418,417, +418,417, 418,417, 0,0, 0,0, +0,0}; +struct yysvf yysvec[] = { +0, 0, 0, +yycrank+1, 0, 0, +yycrank+0, yysvec+1, 0, +yycrank+27, 0, 0, +yycrank+0, yysvec+3, 0, +yycrank+3, 0, yyvstop+1, +yycrank+0, 0, yyvstop+3, +yycrank+47, 0, 0, +yycrank+141, 0, 0, +yycrank+3, yysvec+8, 0, +yycrank+37, yysvec+8, 0, +yycrank+2, 0, 0, +yycrank+3, 0, 0, +yycrank+4, 0, 0, +yycrank+5, 0, 0, +yycrank+2, 0, 0, +yycrank+4, 0, 0, +yycrank+7, 0, 0, +yycrank+54, 0, 0, +yycrank+4, 0, 0, +yycrank+8, 0, 0, +yycrank+152, 0, yyvstop+5, +yycrank+13, 0, 0, +yycrank+116, 0, 0, +yycrank+57, 0, yyvstop+7, +yycrank+8, 0, yyvstop+9, +yycrank+52, 0, yyvstop+11, +yycrank+0, yysvec+12, yyvstop+13, +yycrank+53, 0, yyvstop+15, +yycrank+0, yysvec+13, yyvstop+17, +yycrank+45, 0, yyvstop+19, +yycrank+60, 0, yyvstop+21, +yycrank+0, 0, yyvstop+23, +yycrank+127, 0, 0, +yycrank+0, 0, yyvstop+25, +yycrank+121, 0, yyvstop+27, +yycrank+65, 0, yyvstop+29, +yycrank+0, yysvec+17, yyvstop+31, +yycrank+70, 0, yyvstop+33, +yycrank+0, 0, yyvstop+35, +yycrank+0, yysvec+18, yyvstop+37, +yycrank+0, yysvec+19, yyvstop+39, +yycrank+42, 0, yyvstop+41, +yycrank+0, yysvec+20, yyvstop+43, +yycrank+116, 0, yyvstop+45, +yycrank+45, 0, 0, +yycrank+66, 0, 0, +yycrank+113, 0, 0, +yycrank+131, 0, 0, +yycrank+77, 0, 0, +yycrank+214, 0, 0, +yycrank+230, 0, 0, +yycrank+215, 0, 0, +yycrank+240, yysvec+8, 0, +yycrank+250, 0, 0, +yycrank+70, 0, 0, +yycrank+78, 0, 0, +yycrank+80, 0, 0, +yycrank+132, 0, 0, +yycrank+3, 0, 0, +yycrank+72, 0, 0, +yycrank+112, 0, 0, +yycrank+111, 0, 0, +yycrank+298, yysvec+8, 0, +yycrank+312, 0, 0, +yycrank+120, 0, 0, +yycrank+137, 0, 0, +yycrank+146, 0, 0, +yycrank+155, 0, 0, +yycrank+149, 0, 0, +yycrank+145, 0, 0, +yycrank+150, 0, 0, +yycrank+194, 0, 0, +yycrank+147, 0, 0, +yycrank+143, 0, 0, +yycrank+157, 0, 0, +yycrank+158, 0, 0, +yycrank+163, 0, 0, +yycrank+166, 0, 0, +yycrank+160, 0, 0, +yycrank+208, 0, 0, +yycrank+210, 0, 0, +yycrank+312, 0, 0, +yycrank+323, 0, 0, +yycrank+333, 0, 0, +yycrank+213, 0, 0, +yycrank+0, yysvec+25, 0, +yycrank+0, yysvec+26, 0, +yycrank+0, yysvec+28, 0, +yycrank+0, yysvec+30, 0, +yycrank+0, yysvec+31, 0, +yycrank+218, 0, 0, +yycrank+219, 0, 0, +yycrank+197, 0, 0, +yycrank+0, yysvec+38, 0, +yycrank+0, yysvec+42, 0, +yycrank+0, yysvec+44, 0, +yycrank+201, 0, 0, +yycrank+206, 0, 0, +yycrank+210, 0, 0, +yycrank+215, 0, 0, +yycrank+219, 0, 0, +yycrank+221, 0, 0, +yycrank+222, 0, 0, +yycrank+226, 0, 0, +yycrank+227, 0, 0, +yycrank+240, 0, 0, +yycrank+242, 0, 0, +yycrank+275, 0, 0, +yycrank+276, 0, 0, +yycrank+277, 0, 0, +yycrank+278, 0, 0, +yycrank+279, 0, 0, +yycrank+280, 0, 0, +yycrank+0, 0, yyvstop+47, +yycrank+281, 0, 0, +yycrank+282, 0, 0, +yycrank+294, 0, 0, +yycrank+290, 0, 0, +yycrank+285, 0, 0, +yycrank+292, 0, 0, +yycrank+286, 0, 0, +yycrank+303, 0, 0, +yycrank+305, 0, 0, +yycrank+397, 0, 0, +yycrank+296, 0, 0, +yycrank+306, 0, 0, +yycrank+309, 0, 0, +yycrank+314, 0, 0, +yycrank+318, 0, 0, +yycrank+305, 0, 0, +yycrank+318, 0, 0, +yycrank+318, 0, 0, +yycrank+411, 0, yyvstop+49, +yycrank+423, 0, yyvstop+51, +yycrank+385, 0, 0, +yycrank+472, 0, yyvstop+53, +yycrank+310, 0, 0, +yycrank+322, 0, 0, +yycrank+327, 0, 0, +yycrank+330, 0, 0, +yycrank+320, 0, 0, +yycrank+336, 0, 0, +yycrank+331, 0, 0, +yycrank+329, 0, 0, +yycrank+332, 0, 0, +yycrank+337, 0, 0, +yycrank+434, 0, 0, +yycrank+460, 0, 0, +yycrank+484, 0, 0, +yycrank+486, 0, 0, +yycrank+500, 0, 0, +yycrank+502, 0, yyvstop+55, +yycrank+333, yysvec+149, 0, +yycrank+487, 0, 0, +yycrank+350, yysvec+150, 0, +yycrank+501, 0, 0, +yycrank+504, 0, 0, +yycrank+353, yysvec+152, yyvstop+57, +yycrank+353, yysvec+150, 0, +yycrank+346, yysvec+157, 0, +yycrank+505, 0, yyvstop+59, +yycrank+342, yysvec+157, 0, +yycrank+398, yysvec+152, yyvstop+61, +yycrank+506, 0, yyvstop+63, +yycrank+508, 0, yyvstop+65, +yycrank+522, 0, yyvstop+67, +yycrank+507, 0, 0, +yycrank+522, 0, 0, +yycrank+540, 0, 0, +yycrank+0, 0, yyvstop+69, +yycrank+0, 0, yyvstop+71, +yycrank+0, 0, yyvstop+73, +yycrank+0, 0, yyvstop+75, +yycrank+0, 0, yyvstop+77, +yycrank+0, 0, yyvstop+79, +yycrank+0, 0, yyvstop+81, +yycrank+0, 0, yyvstop+83, +yycrank+0, 0, yyvstop+85, +yycrank+0, 0, yyvstop+87, +yycrank+0, 0, yyvstop+89, +yycrank+0, 0, yyvstop+91, +yycrank+0, 0, yyvstop+93, +yycrank+0, 0, yyvstop+95, +yycrank+0, 0, yyvstop+97, +yycrank+0, 0, yyvstop+99, +yycrank+0, 0, yyvstop+101, +yycrank+0, 0, yyvstop+103, +yycrank+0, 0, yyvstop+105, +yycrank+498, 0, 0, +yycrank+400, yysvec+189, 0, +yycrank+464, 0, 0, +yycrank+401, yysvec+189, 0, +yycrank+501, 0, 0, +yycrank+494, 0, 0, +yycrank+500, 0, 0, +yycrank+388, 0, 0, +yycrank+440, 0, 0, +yycrank+445, 0, 0, +yycrank+447, 0, 0, +yycrank+437, 0, 0, +yycrank+443, 0, 0, +yycrank+485, 0, 0, +yycrank+430, 0, 0, +yycrank+451, 0, 0, +yycrank+456, 0, 0, +yycrank+571, 0, yyvstop+107, +yycrank+585, 0, 0, +yycrank+537, yysvec+206, yyvstop+109, +yycrank+536, yysvec+206, yyvstop+111, +yycrank+595, 0, yyvstop+113, +yycrank+596, 0, yyvstop+115, +yycrank+527, yysvec+211, yyvstop+117, +yycrank+605, 0, 0, +yycrank+477, 0, 0, +yycrank+498, 0, 0, +yycrank+662, 0, yyvstop+119, +yycrank+677, 0, yyvstop+121, +yycrank+691, 0, yyvstop+123, +yycrank+726, 0, yyvstop+125, +yycrank+494, yysvec+217, yyvstop+127, +yycrank+752, 0, yyvstop+129, +yycrank+511, yysvec+218, yyvstop+131, +yycrank+778, 0, yyvstop+133, +yycrank+804, 0, yyvstop+135, +yycrank+512, yysvec+218, yyvstop+137, +yycrank+505, yysvec+224, yyvstop+139, +yycrank+501, yysvec+224, yyvstop+141, +yycrank+655, yysvec+210, yyvstop+143, +yycrank+815, 0, 0, +yycrank+510, 0, 0, +yycrank+504, 0, 0, +yycrank+512, 0, 0, +yycrank+507, 0, 0, +yycrank+656, 0, yyvstop+146, +yycrank+528, 0, 0, +yycrank+529, 0, 0, +yycrank+525, 0, 0, +yycrank+533, 0, 0, +yycrank+522, 0, 0, +yycrank+565, 0, 0, +yycrank+552, 0, 0, +yycrank+566, 0, 0, +yycrank+571, 0, 0, +yycrank+554, 0, 0, +yycrank+570, 0, 0, +yycrank+571, 0, 0, +yycrank+625, 0, 0, +yycrank+830, 0, 0, +yycrank+840, 0, 0, +yycrank+639, 0, yyvstop+148, +yycrank+587, 0, 0, +yycrank+588, 0, 0, +yycrank+575, 0, 0, +yycrank+593, 0, 0, +yycrank+576, 0, 0, +yycrank+592, 0, 0, +yycrank+594, 0, 0, +yycrank+688, yysvec+216, 0, +yycrank+728, yysvec+217, 0, +yycrank+689, yysvec+218, 0, +yycrank+786, yysvec+219, 0, +yycrank+757, yysvec+217, 0, +yycrank+741, yysvec+221, 0, +yycrank+740, yysvec+218, 0, +yycrank+692, yysvec+223, 0, +yycrank+753, yysvec+224, 0, +yycrank+805, yysvec+218, 0, +yycrank+787, yysvec+224, 0, +yycrank+789, yysvec+224, 0, +yycrank+859, 0, 0, +yycrank+754, 0, yyvstop+150, +yycrank+869, 0, 0, +yycrank+895, 0, yyvstop+152, +yycrank+756, 0, yyvstop+154, +yycrank+790, 0, yyvstop+156, +yycrank+599, yysvec+224, yyvstop+158, +yycrank+921, 0, 0, +yycrank+883, 0, 0, +yycrank+591, 0, 0, +yycrank+587, 0, 0, +yycrank+594, 0, 0, +yycrank+587, 0, 0, +yycrank+608, 0, 0, +yycrank+602, 0, 0, +yycrank+629, 0, 0, +yycrank+653, 0, 0, +yycrank+651, 0, 0, +yycrank+806, 0, yyvstop+160, +yycrank+947, 0, yyvstop+163, +yycrank+637, 0, 0, +yycrank+656, 0, 0, +yycrank+658, 0, 0, +yycrank+635, 0, 0, +yycrank+643, 0, 0, +yycrank+0, yysvec+293, 0, +yycrank+661, 0, 0, +yycrank+663, 0, 0, +yycrank+668, 0, 0, +yycrank+660, 0, 0, +yycrank+0, yysvec+293, 0, +yycrank+670, 0, 0, +yycrank+714, 0, 0, +yycrank+697, 0, 0, +yycrank+0, 0, yyvstop+165, +yycrank+0, 0, yyvstop+167, +yycrank+0, 0, yyvstop+169, +yycrank+0, 0, yyvstop+171, +yycrank+695, 0, 0, +yycrank+0, yysvec+308, 0, +yycrank+717, 0, 0, +yycrank+0, yysvec+308, 0, +yycrank+720, 0, 0, +yycrank+728, 0, 0, +yycrank+724, 0, 0, +yycrank+734, 0, 0, +yycrank+728, 0, 0, +yycrank+735, 0, 0, +yycrank+729, 0, 0, +yycrank+751, 0, 0, +yycrank+746, 0, 0, +yycrank+742, 0, 0, +yycrank+777, 0, 0, +yycrank+775, 0, 0, +yycrank+932, 0, yyvstop+173, +yycrank+933, 0, yyvstop+175, +yycrank+981, 0, yyvstop+177, +yycrank+984, 0, yyvstop+179, +yycrank+790, 0, 0, +yycrank+792, 0, 0, +yycrank+786, 0, 0, +yycrank+985, 0, yyvstop+181, +yycrank+787, 0, 0, +yycrank+830, 0, 0, +yycrank+832, 0, 0, +yycrank+840, 0, 0, +yycrank+857, 0, 0, +yycrank+856, 0, 0, +yycrank+849, 0, 0, +yycrank+996, 0, yyvstop+183, +yycrank+997, 0, 0, +yycrank+915, yysvec+339, yyvstop+185, +yycrank+859, 0, 0, +yycrank+847, 0, 0, +yycrank+918, yysvec+234, yyvstop+187, +yycrank+842, 0, 0, +yycrank+865, 0, 0, +yycrank+853, 0, 0, +yycrank+871, 0, 0, +yycrank+910, 0, 0, +yycrank+912, 0, 0, +yycrank+0, yysvec+293, 0, +yycrank+910, 0, 0, +yycrank+970, 0, 0, +yycrank+915, 0, 0, +yycrank+917, 0, 0, +yycrank+0, yysvec+308, 0, +yycrank+915, 0, 0, +yycrank+902, 0, 0, +yycrank+921, 0, 0, +yycrank+923, 0, 0, +yycrank+907, 0, 0, +yycrank+924, 0, 0, +yycrank+922, 0, 0, +yycrank+915, 0, 0, +yycrank+1016, 0, yyvstop+189, +yycrank+1001, yysvec+324, yyvstop+191, +yycrank+969, 0, 0, +yycrank+1034, 0, yyvstop+193, +yycrank+1035, 0, yyvstop+195, +yycrank+1036, 0, yyvstop+197, +yycrank+1037, 0, yyvstop+199, +yycrank+1034, yysvec+331, yyvstop+201, +yycrank+926, 0, 0, +yycrank+917, 0, 0, +yycrank+911, 0, 0, +yycrank+946, 0, 0, +yycrank+945, 0, 0, +yycrank+962, 0, 0, +yycrank+1062, 0, 0, +yycrank+0, yysvec+347, 0, +yycrank+0, yysvec+345, 0, +yycrank+0, yysvec+347, 0, +yycrank+0, yysvec+293, 0, +yycrank+960, 0, 0, +yycrank+0, yysvec+293, 0, +yycrank+965, 0, 0, +yycrank+0, yysvec+308, 0, +yycrank+0, yysvec+308, 0, +yycrank+966, 0, 0, +yycrank+963, 0, 0, +yycrank+951, 0, 0, +yycrank+949, 0, 0, +yycrank+971, 0, 0, +yycrank+959, 0, 0, +yycrank+976, 0, 0, +yycrank+1043, 0, 0, +yycrank+959, 0, 0, +yycrank+1070, 0, yyvstop+203, +yycrank+0, yysvec+377, 0, +yycrank+0, yysvec+375, 0, +yycrank+0, yysvec+377, 0, +yycrank+975, 0, 0, +yycrank+1072, 0, 0, +yycrank+0, yysvec+347, 0, +yycrank+0, yysvec+293, 0, +yycrank+0, yysvec+308, 0, +yycrank+0, yysvec+394, 0, +yycrank+0, yysvec+392, 0, +yycrank+0, yysvec+394, 0, +yycrank+976, 0, 0, +yycrank+1087, 0, 0, +yycrank+1071, 0, yyvstop+205, +yycrank+0, yysvec+377, 0, +yycrank+1098, 0, yyvstop+207, +yycrank+0, yysvec+394, 0, +yycrank+0, 0, yyvstop+209, +yycrank+1099, 0, yyvstop+211, +yycrank+1108, yysvec+414, yyvstop+213, +0, 0, 0}; +struct yywork *yytop = yycrank+1165; +struct yysvf *yybgin = yysvec+1; +char yymatch[] = { +00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +'0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' , +'6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' , +'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' , +'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' , +'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +0}; +char yyextra[] = { +0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0, +0}; +/* Copyright (c) 1989 AT&T */ +/* All Rights Reserved */ + +/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ +/* The copyright notice above does not evidence any */ +/* actual or intended publication of such source code. */ + +#ident "@(#)ncform 6.4 92/06/19 SMI" + diff --git a/docs/historical/mh-6.8.5/local/linux/mh-6.8.3-diffs.tgz b/docs/historical/mh-6.8.5/local/linux/mh-6.8.3-diffs.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4052be6f53e5100449a9de2e9b18430662630e6f GIT binary patch literal 22812 zcmV(;K-<3`iwFR#yFD%f1MFOTbK5wQ&%aXbhd?~JiDXKasHbg>Cvp6k^^PB@*ty%e zoh=tdQWg`6)R9!2Om@Ee^#dS5iL&S!&urDzIVk~XG=Lwv8;u4?>GrM(F`tJ~(wc{JvGYJ>wb^Wz@2YZbCF0n%1=x}~ z*zXVbdwas%+v`>h!+3BUYWcT?56y(RyWj5b_xsqgSAG3jG)=SJ7z%@v*RQLhQfa>S zW6|`*3t4jQX(+a~s-oJ2?wtKfT6~riOm;#63D^&0;xDlu-a+PP?6Crq zhW`t1-f|*f8Ant@XnF%eLrEDl)<;VsfE*#pQBqVyCgu}df%*O7F5 zdVcuBbzL-p;kD42kAWSz3F2UnAW~8a;v$*uGa$$@#vCaFNo1LM1k9A1aCRily)NOT zqzumcNGTI?1T#lTQ4*EY@)%QQU6dWOhY&g02r-@|Y;KgP8u>EAQ#497!+QYS3hN*0 z9Kh&T7b_4;I0N8XbprkN15QA-SiAT;gCQw^l8p+md=JG9N!7^mEO;)%CrA=LEnd{p zI3BW%f+l1l(n5CGLUv18h!q4Op@I}3Y9$GhDVX4xkd%j6&_=`AZJUUblg&8igli5M zWlrM5k~N3klW0~R+HwQNMY*H*@2*c2#!jCwQnG}x_U7#J`0QQ1H6Gh5aDj#>vC7Eu z44KRDNkhNA{ws`KPf?2pU>CH}1={ZrSV}eubUgMMm5&HjULo`ep&GzO~H$p6&s~XD`hNq~U(x5jNhdI?g zfV8-k2D;a#t%;L$mS~5w`RW9KNMNzj&`T0HQ!s(?@26H0g!l6(wA0u_(s;4NZs2e( zTiED&^J`Bq=njMKl-f_x6Z@VGI{vJ(h*G`vuk0L!zHcr5CGt*G{ zs!>GcDP%P&_gJ%8*G`{8pY|(GHc!Fhb%!ZH*GdvHQ!sgQV;M5gVFA$E$;}a2xU*{C z4%stQ7%C^BV#z7o86NVnPRXsIw@2G7CmZEDnI+DGSDwsPja3>0&*(Du$jvQlmA8aG z#EiSb;AAu6(0AY_U|OtQqZYUm|~ zDJhuHP(L1Dm-W6yZM5|^Fn0+jB^zm!?bGXCB`W!n3R-Z#+s8}mqJ=jHlvzS zWC#ghO7jvCl!Xu#NK?y${E|iHm&BmYqxVaWKC?VIDCQ7Do}!Qtm9Sv0tbjCTU2jA3 zFPxOX7%-dw(W$(`6(A@;6~HKyWWH854}mOh%a=ccJql1bDS>rvMb>N|AyN(@FOd{- zNtT&MZb4bA^&9B0P5V73rJ&d_UORHNeQqlxflhR<`qCJ!zYXapZ3g&A@^xE)wh_r zXMdDCV!?j2>INi8URuL)OKWb~A18F1hMB67FU!j{NuxA}p@c9C8|enH%QD?9cW((I zA#{)eSgjyKOqta#H5z(v!E89^G1|rS!(q<11+|XK9ad z0S`8oE`g0=mzUXYxn(vF`AmW-V$VtnJ5Wf6e2O z!MQoX*!Hu^0;*M_1eaE*TuBd=XV(=!pdf>jjc6nL6QAHd%Uso1Au-aFEHi~+?gN0= zG}DpqQYgSl8RWQH87Afkd7hLaXR^#Z)+wxMrXk;JlNaNp4DvV$BbRYfmas1qQ}nVz zXShVLl% z%H2^$bSY0`Qx4E9Q6w6s!lLI~$wj3z>ml+U-(BvNySt3sxzB*+J_5{23LH@|fuS&A z@jTH{lM(N+Sog|_RmIQ|2i5tqL@gs~5b07x{g6Nl<7uhLpDPD>z~F^U-?Qh9}FCK1g_BbpT;>hYsTPB%Z;gXKog@gS`ldPzRi zLkhyeOln>Qi!^6OW_ut}l)JJ(3#D-(1r%CIqCg6vfJ}zs5mzW?8)C0LL`3OEM1lJm z6~&NOu?k|N!K*__%GAVvK)^?D{^Ak5mXkS ztP&-nv_j<`yUnd@ryHfocLg%tJOw|rEpjBB1N=)A30_h;&0W7gZVDUP=cd9Nk4!gD zC5#eU=ahko(AKBu+OfB$?66 zK9E$6EYIk;44;pE5LM752eCI~h`mymJ&V~i4C(aDxvH^DVYrfthQryCYcOSg;CjmJ z40?=tQ0kKW(~NFWKHz;Mv$NAIy=2dDFb!2i9)#|V?IyGbR%9FYQoMUb5&!7 z#OPD9%>3?X)$FzzDyJo&hU9xOMU+`d0VE10k3FUqwb6yz?XX+sbTd*`{5={$mX|1{ z5!^py1YeJiel0+`Y6R*6vJ)^NSmWwQ<@&8#IP(32H=JZ$?9k*0w;&i0#%Bn*o?v3o6jRa@Af_T%iFW7>zj8chZj`?TX~^qelLJ{dmnj;dpl1eaj-%iTd_Mr6=SC~8i>6n zxpGaA6CI5#+Cc(!?UB-zG85EU5h&E5`1KD^7bn;MEtFT=d%6EoeEY4iDgSdog=X`E_#TXu_D9l$4eZd2pN#Y10JjNn2@KjkfoUFy4}byN zme2(+w`G|htcrG&a>GEkw~N4Wqlq8h!-5;v#le9%xjN+ml`vCgF#qvlQoyLhQrRZ+ z+6FGUF!8B?^T~@rSeNh5&yU_V#FiUQgd5o5B1qf_6ypT~7NYNnpSS)a{&{PwLCq>? zq;>8ha+5_Ah|`OklXve%3e&H@O(=#jLI-hqbt9}r63(o|vk`+Xi~4h1G1|<26)270 zp$Aa0K?@)+*3=d=j$9R6C7FY4ogz}kVxum=^im5O!>|y$lRwzoZGfXNy5^wK8LssQ zpf7d@kcoe3{uW;#7xd%T^C^h1>io3O~a$+0T$-OJ49-MNguE3dtu_se6W)p7+HszhHNlRa1HS`AC zhT+cHp$PIJAK0NJFUu%`9Eyt$rG!%^;j1`^y1D+66*PM;MpXM>1z2bx%k3yn_CkC|{6CLt&y@bD=-y`^jp8z$_R-5#tD zQyx8}LbsLrykNda1S|!|jT2lV6BqXm#7xf@K;thVc9?)eb6BzDJ2tEr#5sP9no4QO zuICoW#zB-O9#n+vR0-Kbx!WVbvbNJ*%S$(_bY;*g(8Y!eVd48_BvkB4dBh?wDh+@vnagSqQ+nrLmLH<0y7}nv*0t1|OS!;f4*QqU{R}VHl|)J!CWM z?WHfjJe%MwSbRpZL_9eT}z8U#g{(?+UT-^t-~f@dRAlB7eU% z(C)WP)Gd6PZFQj$;0@QC>*HRpD%{U-?g(I8PXvCs@-}cI+yo_=4HW4>_5tue{>kdb zE(CowzknC4Tk$SkM&K#0%7Z!XcyY%EBlSht0e%s-uK}f-xU(OQ{(64QcOlXWaruCP zYO)T@aOyj;8`aYR(Q(UKeS2lZ272`n3Nr{z!+<@tvI=?oVC2A(Ici8z4lWuVM7t?(1{0%#AKzZRB^M_re0q3& z^TY;~=$mi7MyE?^t>T>jLKChwrCKfy&(42% zclG{lwTZIh)p~p9Iba`mZsJ0&R;SJQ+5!oV2sS{k zFaUKHy9qYGdqc^hL}g?-R)H&W)*kW=knTqNln7)n%7- z(-1;C@UYLfF^4Bmq8tc3?2j_ONfgd-vwu$2kcsd|2)>i|BFe-;1~7lbO=&%EG}2}a zwB@P+yXs!IWp-L1>v3$o{y5nUraSjm-K zM&1s1$AWcB4}1><(ndM+dU{Vl@5w4xz=d_bfNRS*1C2B94ThOF==bUU6inppI{rhY z(xnq_3bE_M97N5@;#qv)aD4U-Uv#@eZyG_1XaP((Uud-LWMM=Ri=DEtcm66h5F{Kx z;MF6c8`4hMAHojQEk=jmScOfl=9mrPbP6CYA=?H<82||^buy$&0Ets9bLIfc76?eh z#9fIyym|KdWjy?Tk`$~y!$9>6YvYsUt5Q50txiB2D4hh}J^J*TuKrkJc>*~uwb!So zlqv9Gpyq#!@9Dl2PE}VwqQA2oFN{@HLu_SE00N5O&XpsCu)>mXt3Hxn$l?i`{mhbh zPC|Aq{ViSEc@$73}Ai)djud7q9thF!skbq(u@1I)Gy4KtZS}2jwsSj}~8IT81 zf{Nz1UOcwI;j^;v=6-eyt31i>jB(p&2$TND0UWFAb@?@-ZW~S481#ne1x^YPEtsx? z&@9LZDn$lRS<$|GpI3fmMe`a*I!pCXfM#IBZh`vW+SzJ|ZzX?2t@egmSoJ!bO>~LO zXnQh)T4bkv9yve zb2rAZG~KEv<(F^XRLpi8NPmD@R`Hh7hWK5FbPhfl#K(CUWzPV7_Uq~6wiQwi*!`c%xR;JvHVzM z(#xr;nHztZqYz>4(Vq6K!lgI8|A3{4FQKOEkP2%TA=Q>zff?sR9&zv+J>sA04_7_n z(<=erJybfN{5lm-Wq}4d%NocS*DAoIxZg}~$l$CxbHQ_pt;3sdZ&0`xgvPcv$LyA< zL5wi-LRcUnMB;Zz@?{Lxe?N627mmkN8B9Xz$BV`PEYQ7JaF)a`C_~nRBPSeUg*wFQ zS7}PZHz)5d&Mr@{DrV6Q8lFL~j<5D%WxRz0th^43DQ5OPjB=a>zWW9TR8R##Pr5&yT0NK2%R2x;Sxk52TdE zO`i7mKac76U*oCojsH!*|Jv;gIz#;Z*LJ_(Yxlsv3)3{a!~g&N*FW+1UyE0<9R`W} zIXUQ*S+&At70mzORr{0I0<`Ma;%`9B)2x7z>@ zKt&yX*z$GE@WFXi4H%#Wk0uI(sIin(V4a~-%uhhku z&MvQS7?%X1#z!oSfqx+nI9}9_Pw@Qku1??Z8G8X38!+$>jIA=@SAb^x`a6#-WxHYI zR1{A${L?Q!)}X!ymng+cafvCn(mMMcbKe~5EAnCXUN`-kK#`{R@cB2Du(LgUbR~s< zeth-z=IrY7`k;b(FvK_F95+n}vMqdV6QmYdk>|!x^|$vIZ*M`K2QU}ZN=wns&)ysW zBSQqD`HC8oKAv)6daN zPkG+|YPC>3Ob39+H@049I)7x^;Ie{C`tx4tGrfAiZ*~D+fyR~#9`M=4g?SIg1zkvR zRqRrLLiO{`>FKUnJRyE@JdZ~S;&hsvA+f0z@9}#;ZBPMYF9Q>YKeGbK)xM2F z{ZJ8S+Y@w_c{-+VAY)rw#n3m419J~^5+jWK4F)fN>Ft?EdqAg9n8Ii009uyLYEzZY_23|#d=%rU(wWL;@r;5I z_&7g4yZQ)UI#<`N*Dtr{x(|rC{Stn-ZsB%+lQB^Gif6Z%ZBT?*1l}>?wh7=v_x*MI z^5zYeoMXY&ht~CZ>lh)g-yh$ccj3#~ZRZ3&;0fx5FQ|X9Ch&_}HwbWfb9H{v{doKy zf$@!N5&x}H9rV=Uk7M}24vW~vmue-<8%`abzea>=TbE}YsfF4BkK68b z#VlSyciW}X8VxvG(0?mbAn?IA(0|otp;k`)s;#$TEFj{Bahlgt7}oQvmlq2vF;A(1 zsCz*3N3$5x`8`&NRw8PvtKj*R#D)4U{f7U($Oyc6x)FG>NP-s`5}@{bVSWV# zzmYEVoxzeeRLj=rLlrDXBOWYi#5D-@sto?WP$zEvP>TO`N^z%ietOk;4;{STeTsVA zFVrgEGVFXFWmr{};Wy~z-%9UQo~rkfqz{X_Z>fB>{#ydg(Se7HI&c#b=)qcJwH~aL zaU)2o2=TF*df?yBS6ShefXYwejW3WA=_1rp)&3V|;@tI>W}%r9XhW<-xeIp9-}w`1 zfz;V=6!ufu{aYI%NP!jsC145^R#qN74AOH3`Z?zjfFUIAHI>oAlv4nyOqVv;K( zqpuQ?MiT?(v{$(7wZGi0r!l+9%&sgsXf9Y}`1O}1b~o3sdoIDtg~O^QcM~N`dkI?~ z;$&5xz}E`?^Lxd~!2`L`C&Sz;epo!MIG}5nr6m# z!qvXHOO>wt?E=O57A+`eb0Oc{0ombO$uhZ=UgVM8C|L7nnmMN9YOZjea ze)&g~cAi>Gy~)dz*K~0=xzv;$mU>OzH8zK+W+CJ;VMCy{cLfm*y? z5vY(0Z_?_`qiQ)%39Q5c1<*XIuUSTf0Hb#Jr&9o5D&sG5Cw_$lWjO|GhmaT$JqU=? z;H&;8)CJEi?Hcs?3o3yZ864cL*b-|@YH1k zk3(-}g?j60GX2G4|7peGe|q}pH_IdUGFPm!GPNX}^Lffja_%&J?UX!!s43~INZmq7 zzThnYExX_K%)7gF;Ps<&^{7$%w(B!_fhTn8t0GTaSE+sV;!Lwpul|=V&K%SV2MvWl z$s6h<^vo`$$T!v)kK$WvYC_q919Q_|u?L6hRreJgRttx9g{ayMBeB1x@oy%dIf3(v zU)IX&=CHZGpCh*$(7@C-4*rn!RXq{r4Vf$DxN=aa94cF1YRcA^KkJ5noJT3~*FDT;$XKvq^nak&d)b&s$?ycEe_WRz-onIyztj-(eG;r)I&9dG`v&X#+ zd(AW&{dS@r=UGLybiJ_0>#Sj;oG0z8P)OYCYj#}Vk#pr;1w2-3e?@V}Ww6G49JT#I zz41fbpCIn!64k$lxZiY{)vC~9wf?>29a{Znu5kR2C-7?NT7g#qa|FJcBk(Ix>PLvR z=CnqojxR~)0$;~X)_)?`w^mNK^^hPp3iZn0-SypX;)Z~fCI`*JK^hKt;*qZgfB|mJ zAMEvSiYHbaP5V)d`@IT-4zWG8e1M5M;%h<9zJ=APiWstmD!d#!t3-zr|CsZCm1?6}#q)oa{aUSo z06@U%{*Uv2-{tQ{Ni7TFXOHO8l+f+dk!H#U(>XWEI?w~@xsqxAGnkqWuIHI!0SXzh zZ%^As6ih=~WUB}UX$>XAXb;R8p++M-O5LBjp0l*rTp$=9rpC0qC@@EuR4fhxFDh0` zl`>{V_AI&y1#Tl1Md4TI>E8P~@)=yJ?k`|;}f9cO&Q z74c%dR0sOpMuL;D!tgR^?!dso5!n*>S1_W2*%vV;#+iw@U`{8)&~hk4lLTro(J_IV zxEJGiYI)wwVCv)LJhKODhHjK`7H~FQsLY?>-B*-w&4SqtW7nQ~!0plk;ndK2J@>wk zDb|4cCMF633+@;=;g*RGilDqc$x8!Mq5(K6DX} zrHc@pA2D{s*v7V~MMP#if^V6= z8~Mn++%|M=51Dh%9N-OInAHSm{t|lPP3^l`0S_ZmiRT%3KNyU|Vi(N;O9a*Kv{Q^R zCgN+GqhKP4EBlrW{u@jXK7nxH#bER7S?~#j@^B`0Q)Vaj?F%u6ncy4|z!#xAba5MW zDqW!f>kx^#lp#l$)&md^FsvAa%NHiUahb}a3yuJ{!i%^CPUYns8I%>_#&I_KA?5*V6~czhOkxD3*<#uE$E z^o@fDDZhZU?T@x8mFbxHkH9fMpgDmyVyYDrql_Ks`dn975(f7!br3{1VF&QrXx@W| zv1F^Xf63Gcu9PNH_7r6o)f#5$pN2qPe`Z9O?b;p{P|eo7w=YY+fVz!)pm)Yd9Oe#4_Ds^jSCQ2(5Lq3JW%)z?D zkh;U<69LeJt`IWaxhIGc(r1Y=-x~d*n1-FiHsCwJ1w$sK1qU@&)FFvCa;T3Q7kHi~ zK1#5l0fVn-N(SwZKvjaV91-dKk%(=2LiHsu+a~5H5l-nFm?5C_m@}s#NkP4!0mTM} z^Sa}N9n&U|#4-B^G9rq=XoZ$%;3P)Lyg|fEb|u9lUGN|6~Nz^1HevRp2NmG$`N4N#PK!OHb%ytR~ zv$Dr&UFO7texzPomewehuO?hQV%{i4$Qr2G_i!W0ZAbhrkRr)h- zSBmQ*L2YDJ@;ef$8Vl4wu|}OhO-lx*K?GwlA3x82BX9PZ#;68Mo%58r(9IZQce47C zR$`ziqBPbqcMa>}HIFyl?#<;H=kLc~V03*nbacA{8A}ug80(qnyAWO`9{Nt3tk@oC zba@{DbdlU;Flfx)=rZoIFHe&uopLln#*e1FlxP+KA( zV<+~PGk}uWaxgfl&0Qe=oxnRa3YpoI8(#c4LQ@ii+w40M&5P*7 zx&zlvxQ}TlH{7HsC57NpO8fwP>>2h=xQ7W_GwJzQ)MXDI#1QA6z5LBSx z%;vr_iWw*g(>$5R5dYjI&e^gCuxz$1iIc^WkBfzi4FbOzL(Viu-UfQO5JmL&aQMK) zmiam8BSkCa#O&cDArU?jiO@#egcuI0k6;>$l?Hkd)0k~zq9bV;)QId5TSrztOJ)K*3O9a*Rmc#Y zszMbxLJu3K)dD5#4JhWqX&b{tJ^=et-ADrpo*JwQ&F%~s$~W8XHr_X2nazW8xeNj2 zBL`zUl?pK#>MxjVN=J^`7UPEkb8>`IKzht|u#Bc|{^Q3#0##D)iLZ^I_LWso3V6mbi2W0Mzqt`@{Og#FG7p=l(;1+M*W{3SVZ#HxNH*2jvrH*hvHdNzdjI1Pc&C%Hb!99c#R0JVNO<=!3nVk>JVR9Q z68JQJq4JcH=*T3`h}T0X5bBEoE~bDmNJRy-Gss=a#xIC90*wq1djPVBWJ68b7qeh2 z&4!H&FUgg55dBTDo6--!U=XUs45||gNBwJG4BhcK^Q{z%N4`oyPR!*rjz$<`oI_zh z2<})#UA?>(zyUJ?J&vNlcERsMci@*_PC_UI`sUsHU>r|}xKfF^!ZCf|Uu*rB9IkKN zhFLG~HyW$f|M9P!tpAtGjVktnR>3+K0i|p#PQU z$t+U~7Pu1yU@~*8*vb|RBc+Pu@^rNp+$=qZ7|1&u)FMBYYx)_y0ltrkk%$T?l{sRt zSj2RmBM+^yGE(q9bDkeWm?^Rsh7Sf-8NA;EGP~+Cy7bcw1W*)bFH?)(bA%^ip~5+# zHHg)Mfjf3G&weyqsAUkio(h5)XT%^{D8lQ`vv^nt9-}%|DD=VQinAq4E#eyh$IajY zP=@$ET}QEihau!b&%k?)hS`FNXW5IGNrYDLot?t4(caEp{mJoGA+Cn4_aOcfK?!S#iy(liud z9Iq6BNXM$=Po@j%1411!zE=Pq6ut^8pdlUcsFaY+%+vr=mFYLQ-wzTfDe<$D6j8VO znOY*C>eNygmef(EZ7A?rGbv&4!W&7xOgX*F zV#MFBZWwXlv;$P#@1s}#S^3c)z<<;uwDG0P9x+;O%|I)w&WpwK4Li$~VNW?5d$#Q) z%lBfTPc$$vZ>@Yk5Cx^5ccjtVH8V%r(xYtiBW&|SYg_5&B{ZC%xZJ_4Nb5~z(aWtH zrUpB&--MA<%aN(Bn9{Kvwz|9g&^b@O+;rtPn6+JF3w)f=RvNc5$ja~Y!!jhlJ=~ z(1vYn@y;qOY$CDVY~=FG(omy#+K;|ssB-fHw=Wwv3|!eLBF`Fl+jt&tVN=i<%-rTV zvMMSwc=MS-8_xDh|7%Bq_5bh%(DzEXdlkmW%!|j_jDP(2`TDh-PNtMz*GNBs9a{?c^hsDnTo?DTr{E!aK6NDpH>(=vO#w^uj4Zu_^Eu?C@8 zE*}ia{jzy%_Kq($LRJnB7_#^N_`0*X;wD$D0oku36r#3_48DN{5H3Kp#e!FI@O?Oo$I{1(4dpUW4hLWk_)1$R~ll1O!SwYdwHg#37^*@+tWSqyr3sgg!lh;A(no)uJc ztF19>)ajPS@cPvHTMa4PC&=^7^NTz65%Nl-P8!kqZyI$HWLu;4DltJ@W2O!m@=~Kt zqG$X4<~j#d=ex27B-Qz@q5(NK#6_GL?_9}KKP1-6x)&9Jl#1xo=o0b@km1fP$xPX3iW_HpI|vDwGHaRr3P);2fMt|fGr<#tr{daB(h#pgONLAT1ix zb^GnPCgWBbG`U@!UQpd#4Sm4Ab@z=1B#o@AVXN5>?rP`*_U~>s%S?s+yBm!Wu}^W+ z)_|mb-fGa3?fjxcqrPe=b`1nkKPnQ~yH1Cox$9d24JdKtP5}ZjG*t#vTCy!WB?1(VzX`s{<6nCtHaiCxX)3~QG8l_*M z=3uJqc)?#kyzAi`(#2ifTV#?PZ6MFT8&iYWa8U!O@-2s81YPlRmur$&mL*;I9H7)LPHHL!X9!@ zM^TkIj=`)q_GU^}S!p`f%yWk$4JvYU4U;quG-Qo{Nt5YeRM`b4j3l4SW{#sFjI`OU z;>;0r`o!+;NRKru{7L~2?(6VPmDkn&!``)aw{0Ws&*ZN_lRb%)_##plN_O4dBz78i zV>`!k+oatb9h#ynZbVTpNm*9YyuW>C0FVShiWhC_?(VVLm=Z7#W-u6l0}>c`3mCR5 z3>U0(0d*Bobfy^G5HTND7^Wjh;QtEl9xFRo*mi}o*-X^8N3MA{!VMA2D&w!t#sz={ z>v;%BzPF=-)60Q(wpA6Qvqv`m!WyxyiIr5$h6v`qSD@~2>M9Ng>&MJ#uh8qGqAT@! zHYo^ht1$Vgwqib_H9^oF-3O*T?3px(EeHEmlO&0z} z{m}o^_y0FA7TEXy{vT62^!>jM#$muXLo~guYY*@L@8i?rA96)-&FY*;AGQW5{z>Cg zJ*=AfUtIrlYyMI8U9$d1Guqu~{ZF^u*0BH6{XY-=|GxUa(I>|w@>=Bn&({;u5Bsh% zltxkJ+*{iLsf>aF9#FVx0dCOqFsOy%0YmEX8ru_d7S@$;>|i`0lryM>k};J~xTk^C zm2l$utNOg0`L%afo0mJKYJ^FAP!F~6J-SP{7HY;erjYummFbV`pys&N-o|~jbx;eo zE2O3l7hCc2t=o)IRY2K`S$*4BZY80M%ihP1Uv~tcp>6BiA;?&}r}UZZO>fg+Z$7OStfYus+InCtFD9 zyY3b!+>29RLfm__1#0G5rqpERs9SfN_F7HNa4rd11?9P0)N73~M(XyI7c<8UUZ-wf zmF~+kY_G7c&ELqNGSn*=MZ-JXy%*F&IrCeO?mn!Aa@RDvLrn?6ZOFhX)oTkB?iZcZ z_C=%MR0XK$87~Flvt?k0F*)!SE5Ter=wx>;XQ*39nPWa>keV99&9XESZFNW-VYWJi?QBgC)1_Q6=4((#$qR3R z)u{uyz8;M|>1kmJWOV%F+1ZEDi2SEP=tg}QH$ZLcijWhe#b}Dvxtx1L8gi%x#9sQ| z!p0a}es)*9s*PK^yYg?ouDyr9d zEz4I8b$ug0oi0FW5sF26tjep+Q7|v{&6=oi1yiJOU5bisBrOgad*P}!XeOg_LA9R$ z(sf{e#`9mp(BtR7M#sSTKf2y~*#CL&?|;CC>iOIhWsc=}RmSlG5((mXK^X){BoK@E zQwU-tDI9pU(o82$K3{OPBbZxWtqjbaPkh_14KtT_d5=6xVUR>)A53b&oWNbX(o^6{ z+<17UA{Zx;foW7OFoR;DnhH^jBn`uWP9+V8Bq>lF^Jz0ECP@LK$WR5`B9b(Y#*ZqL zl95QL#k#~OktBn07NriN5+xKN**ZCrTHRqZm&j@Vr6EYnnc2a?ab=~S=h3YrzS`up;&OULKGvB za6ANB5ss5cKo%vfkRcv zQC5woT?ue98<#yM0}=_hoMUY9d2O8SxnOnm`JH$!DSwS&7Q-ls1mtlAi-4R&2FmYgbAa~$WkDFDumpr8Ss=a$DFGr$76^BiGBJT9i<724 zm2of@Z-c`Sj3qcE$>OAz$iwBe1jceK!vTqmThFbsW(N`p#o|I1q8N!h?k>dVW4Sm+ zlE$$BlZ8?;k`yfa`YQuNk~9W`RhD3oBn@K0D+@u4M24|2n1wJ#k_NKan1%cpNgB2c zO7*b}ltsC+IYl8wi%^^-g^Qw! z7T_Y1G%ouvG=p<9138aST8LsKX&4J)S_oq#X&9Yir{ zhh^c3devTDbC4w&bR|%@3S?M0h%RL<*G3w2<7VV52bqCYU%Y6OY8?>hA@dHX3dr+A zQWs?5J)s^5jBiwFWkULGB%Z%je6yWM7Mqz`lpq3_VuP!CR~>G<w*ScC1 z|D%TofMQ61u5LW^|NHnnCVy)@ZvN$Te1J!@-x6)lAcNL^tFzzgk=Ed#(>Z8sB=DBL zWe4QsZbAN{KISJdJMDf?y>{k`a2Bx24+T@a$wak7ONnFSKpsAsWC_8-^Je?>NhO}& z?)WSjzTg}1;G;1X9ifI6vxa|3cKx1KXr`C?85 z{!nGz_}+4%P&GZqql>3zz|RE7bHME}9{vo|huNB+ByIaHKGxcy=Wws-arZNOd}HHD z-yxZK-lqTxnmM0ra_deB%&GAlZh8PWAQm%oO%F-N!=-%?Dj+u|9n_u5c9|o{5fU zqyworb8#bzIa`@)_(fbNz>})?)To7qABJ6Wc5w-f`zWzF&$k~vC6_1XFV0Q~k{q92 zk{{1chgZk!r1i7Yvy-@tpN8))PtUJjgE~*h#ZM=fZ%$qulgoE6uHFpE@sDRO34DXH z$jj4nz+b%j`^nXioL^nMc{}|1#k;5+a{TV%9aQd}4p{hh_U7`{fBE>&4?+VI521BE z|K9w+cE^a~KN$w~|2kdm!T-CLPqZoVK>1ta?9K7z1$Km{8f`pGl3`43s?p}cgUl!% z?IAo+5R3aTwFBiJFe^;`n@5@YhD<2R86PMuHQxGnpho-i4pcSTcgMs!xq3yVWoK8a z(YSn&+;gI&2QRj`|MR0atzEd=+2ebi|7mn9Zgl>8x7R`cudO{i|G6*!5Bk|`Ikw5S z81B*An|`O_0wKpjFMyzOaHTig^^ZvFP<=eMC%As}<;nM_=c!yk`AaJ#xG8W#J`+`m z6VO*7&mbcN59v_IKuSpWz~}HG9T_sRMR529m=VtH7ow|=oe4gmP-f^GaS5#{G@UcH z=i#p(LB2<^E6eQ}tQlNdeNXEWZ7^u>xAc9zM|Az5WgLLb{nPhcES`F`kANQrCZ7N& zu8~LKD%hJo5)$_I_NVML-kWsJw>17YDlbV2*1Sr)Z?1sscdBbS*23Qvwam=Vz2-tQ|&wS=xCFYD2DD~lsfakEsNep#Hm!d z&sfaLUq2oS5>Ph`IZ$5`6xi*MM~TWGsr%1V@{GL0r9^a>G+me(PED{U^z6WiM<0@U znG4?z$@%#{{hx*x4ED&+Q+tjjfSsWCX_GNfhvbCsh$VD`_W?OR-ak9r|L}nUz$cvr z0y!4&f`6i3xp$Di2-r z8R*XQaUFJ-(1o(zgr)~eH~OkWcYH$HFmporp%tM3+!M~T={gAXwsAHwWfO-v$~K!h z0d;NBB}Yn)YT(v{Te2uJNZ7c7Y}X7vq4-=7*IYoM^EIjr{BjfBWZ;QK&~pqRZ%o)r zP0I}EB*SB(qd-&^V70WHOw+83(=mba9zprEmw#53){d(5b`&s0n8T4DmNNt>ZJMG( z%8P|hQ@S*zO=;#d1(8~dCU+tE+`CPZX{rIKukCA^s4Xl&k47t`2K5tmJFo;i*x(40$8!akE@4ZPrqlK=tb(3Fp~H zt)qT_hM6)`O?3Yno?IQj_@I0y;c72jjaDG}Q7nGLTKwAjm{fN0tM-xB_v7I|R7GJB z7Io*z5&8eCpGQL|?2w2VzaJ4yKY9O-Vyp#uenj*`@kfQ!XQIEtx=C8ZD@rO_xyur!ok zQP`9a^K~g7)7lv>tj5rit0^uZYLIV)iamecBu#Qi$nLJS5S0(@f;Y?90Mf0AS-H*m z3$~|F3=%f(nsG6B13iL-!-#=Qd<>b;;2f97<9K)_fRwkd8deipFJNOR{2+fN{6HD{ z>j3{Yqr1HV@b~ZEN54idPT%Kv6lp&tPO;(s8T(l;hsPa#6BTwhN`T#JL;2JJ_!tN0 zT}Tr$|0)_WP+3zGMxjQyYO20{;{%DL zUI7auM@M8=gZZig-o?_Nb27jjkz`Rw<4L$8yWat)5rsAnlfqn@;f}zTg0P8$SxhT8 zmXJkPbL<|GUW*m=Mg1b^fi(>qGLtF_Yjzrt4l*;x3%+CBmAK+Kz&g}>roOLG25Kpx zV{kBc3Cl+f?#HuMX3imZ6eI63cF>~@@Kn(XJ&z)Up$v6($gL$NML$&uuMdU#M&%_< zkEwGnj2%dYd7ivPTD8<{L#4&ozDK+zbAK4SJqo`54RRV_{GZO*7GgA}`sc$v;Vv}^M)=_YBNag&NHNl6=< zm?0J)y1U$D0~=pf?#1iiL1%UsM=EBwV1cw%t>Hu^c`IUIcLdvfM0CT7g)ob52p)XU2E<(C8gh{L5O`54B zE`$E~k}9e#7Bxs0#S226h*PsjA5KGfEd~-|X)|71D2%=*x5|a(;-K5{7`gxV^3YG2}xyD)0go58{&K6TM z_FK7lN#~%`g+H{J)Ai~J_3HJ~^-3>6{H&6SpL|7BMaQ}#k+KM@8mf!b{8VR~=)Ni< ztw=*qq@m{;NO~9)Te`q>*ktei45Ba8qpwvO&@0v?&1WF;kw=lwI0E6k;efD3*QTOcNQ}$WTlyQu5H5xz4k0-N0fx3K(s)W?IM=0x9CdQ5q_u=P4YK#o&-Wladuabl zzI?*{y)8dC+Dg7!+;x$AcWds6U&M&OtPHM(Ydr z?Y7?fTKfNHLxs@Y)c?&E=!y~>U#SJQ7WiwlfpEKRx4RW<#8@9~5-vA85lzZ26i>K` zwL97-6WM>puH+ecyR<&d);pv_*c=4u>C6=;^1eC0v13wg&};3|xryo9^QR%9J0oBo zL$IbX8NNY)x-Ib~QIxp9&0yRY>oO>CQw4R$GfLDhHxc@@GR^?K#;$DQ>ui)MA>mW* zR<0A9kZo*r!Li!Z@<<{#Z=Pm^TQ5eGm0OuUxNJdF&_^Mu$zDrDYITs}t*58wBlTRQ zc-!c;bCJgzpyCML>*O=t?dC$o!Lrxgz;y#w9JXYiI%eC;g^J@t&)CE^A1ij=UVj5y zBNr<6mEK?z+kC8OO~wXm+U@5-+oCxc+9tO7Ska)24Fn$;R9?BrD!ysnooDNCd_``zM@m4Xa*F&v&nt3AsS@AQ-dF{tIJC?;C{ab zFU|#LcJ9+^yhKwU=;f2T6xZn89^ArP@taCDxi^yC223$oHUR?mI6CSS-G6>5v&Uc3oeuK^M* z@!?VQ`9g-)j;eNgJM7xsN&RjQzRtDNlCIjP5BeOSR?K-XCz$K;W1kmsOI2 zS3!%?I~xn&mrhh2j_9;g1@m88Pb!~ZyQ#9$qP5c{MAvRgqHe*3H_ssTi(Ojc%FPcS zu0FgwA#Ba2xE%Czlyz(S&ID$O=J?i}TlOLOLilMEaqnyGDAJ#@L~W;we|nJE#jiEt z+b3!oYSpQR|JB~L^~!PE;J%*u6^j(; zB|V5ocL_m(riqIfXzRds9{QM^oVGy|JMbl_AM)SJj~dN#G@SA7HbK#LH}S4kq9l?c zKT^`*tYaNI!wrPL_~Q88w|6w~AdUwiu*G{_C07UGch5ulI+VAf!L>3PXvB0&0q-W? z2C$uP6J#L{%}C#gIWwa3NT0s8gKg?VWF%9eZ#24rPH7lpSST1KjY)P1(!S;=_HonRi#r;)U3V22SV z4J3-R5WFs=+)zKJZ&(!)(wM0lHdh@8-%4GVGIFgM3s)D2KeDco6Tq)fTl*AP5&S$& zeMzuDnuEcCFSr6v$V*dQ31l=st*n75&_Bb-g*nYMdSopTRe(c7TeQdqMnctbnzPzK zn)sq2$jc4*oY!@LNCOfu6zt=(1gGXQUbd;{MiJ;F!^Oq{3YsX8LO(f2g1 z0~q0XbDg&aP(&g>5g_ak6dR6V1d;|ojfPSQU?ccIG$W`sz-gecVd$J#2LW*qr`2em zLtmj10L8aH2Y|3aM8!!no@Hh8WZS@XlQ`H04fG6c!4RLZIYiDU@uh4Bs2#S7nr?8BESX& zewcDnKG-4$u*eVwcz{Llh6`9E3m^f*Wb<}psR&f;I89ScB~}ZGtQiW&76Ahh*K!U< zk=vT;d5n38+?I2%SqO?amJ=^#wT|QKG%#Jup0p|qJ8dTtO|lG#Ef#?cd8kFsQENCI zB~BQF5TGqk2Lakz&M%Q{qXsz!15q6SLXqAq(hdX{>p0i+Z91M91CZ`4G8u#eivU-f z@=TOP)w*yl5rtE0XI4@xlv(3NRILkV6Oo=c(IO^J%CZA6QB`IWioDfw!p&`MY{y2&CEntgY2FZ9 zfyUi6`4Mt``11BIt<%^2F1&P=F~`%CI98 zpl>3Yg(6g|$}FxGs6Pir;G2zHMg2H9w&{RtmQe+;WqGH#nhuC!qm$FsDlddWG_o}c zw$e`FTq2mL8^v@0SIhAVuxjJ%EzAm0BfFjp!@BBHA^=bYRyJRx^kc4A0H5W;WCgtY zvvu*om`%<49GeO;Z9OmWX5nHYwh(N-DK6Q_=nGqOX>xNnTLHLiG7W%r%bRv%s+ZOQ zu!SOdYzh+=Fj!Y(jm`R?0*XQw@q7UGGmZoMZ4Q$wBc-k;8kmSC=KUGrhee3TD)ZRj z(3WcBG>hl`G7ZTg9wzF|STuw(Hx=5 z@kZaI%E~O$a1<)wFbWco)jKvGGF``D58HRuyG@0jStxje<3l!lb&dzflP4i*;X*3a zM+PK#wI3{++i2h5fD@K7X2&~GOBu6co-)qFV71v#PR8@5*~Wtuirca%4C|_kiPl2# zyzs3i({L1u+p<;|cG^xPDs4KR7#tvTtjeS%bFuN1XQC{s)`fG408~{MuFZ?J=Vc*q zbI4|aX%%`1$s96Pz?Sp8zy;@ z?jXufYk;+5=OkZso_Q)%z{x0isN;i0o|hS43&m|&6oz%x#YEdeVOudR@LDLcK8M{B zOwHM`ElW1l@7(MW*p4Fy;%);{2%$_Kps6>tcvstUBT@^O6HP(^6J6k=z!AsWFbwOP zE>g3nhED)6hwKB`~#^qacRE3p>

Zjk}QPJDZD0JCB^Cp&<9%|4B!Uon45^E(oW%Q zB3cA&q}PREr|m?dNu~kWflGWDK@P;Ym|6@b6Lfr+HkWn^XA(g~$9GgVNS@NH@g%C& zg|mq!p^*AGfEYr$s}X^m!13K4MO#;ih)X!2^N6#2fkV;O0sj$g9YOb#wsZ`sr+>T=~ z6Pc!QFRRvtGl?K4!WF#P>6o6-t>_u zxhk_4%C#I8(Zund6H&xrtBKg*u&+di4Ko3g6)IDM%G7j0?&SFdSqK%k3d2s@X+$t~ z#!UFC=WF&1tw0wUtnd|hp#qyPEsn<~4r}AFhnt0(Wf~Nr%9JKT|GWkRmeOPIho!7- zw3415;Go>u^ZpL}c`?@efih3SwxbE*weCa;EtHb8Wdg<)NFDN%hSh1n=Vpy|;S zW`U(5-5H}5hPhOSYJ$vi^v}w8O3OSy(|~s_)t(8<;zVIsS6xbkch3)0Y!@yjY68vj z$R~kdH2g#dsmSxy{ao59oJk}Un?+$*S6xn&n~(`sneLvM@5+6PwJT!H3Yj73v) z^`79iokUk#76T`hq6iAXobMLZtBY#KV{b2Y*oV=?D7OhgF z)RfH6gsi)(ENQkAG|HfXY1F!_MjADX8nb3*3Z<%fXO-FcN?|>w+l#n1+-|kR&6d2? zGWm|y(&qt2m0w%?vY#?+GBe?m*5W&6M$H+Pt2(a4Kf!)N;IK{OFG_vSn0b$3nJqK%mq4e;gVx>6a_Y4*wY z&g<@KWzl@zYnAy_mQ+fu(wi9c&F*tr#{0J5#OokW>s`c8oH_7wMwVy zS<4D|W4)%-Skj`JcUms4!M)EKrDk|x9JR_`uOeAu*l)So6g|Zpnks|H?m~yzK?B1u zY6cm^#6cwQLHPEPsGEzgKj+5OGtyd;q`dt{Jq~ zQg`oFG}S7#EZwWIM~e?WXkrHST*LHBBE4FhF^H2Q&K8ed<=Kae8&vWXB$WP`VsQde zV&A&JBf*C;at3+MFscDt)467UF|N*V#3_i8 zhbU=v!X%GTf-z!@EKix_QA+AC-^jz1+#=wyRW5C6nglbR7~zAq_f#WX4E-YF&kP(bG;2YzXqBp?xl?0m)Vc?iat{QS-8Ic< zr#Wi(s7aJHu*w>KMpt^pW{FE$wxNM@&^CXeXo}T#ghAUm1ub60oP}X_hX~2$r8h5o zmZcLdPs#+0nl759khX_SUiy>i8^`TAV-a3$T|cK=y6N%^FYJkuwtFV2gw?P?ahVi) zWD4SPCP$@9UPT*n5iwxz%QVBWwe-15ke*)326zQwwnaM!$yqbTqIslh^=k5>QAX|T zEsj?6-J(IA(<(KI`Yi^I0*^}Yeaw_Qkm&YMc3G*3>f;xz1y2~9=&$9k+evftaf#%9Zu-o zHCstmg&OT@MLXM1+5u$JvdyFgrsDd1PVQ-o>u&_*wzlLx+mt)ol6$n2o7?v#6Ue@3_YnfTm^5CMSygQ(!50b_W#jPvP0|k8$Eq19fwrKZ8 zMN8<5hABnMxmA|TXjYab{LGAElj9b7f;`D7TJmB>*SoMh;-Ti%jel4)_l(J-9%}BR za#`^0ys&<;*S7NHr)ak~>QWc&9=2$RTC{_d618jDG49&1^J(*%&WGFcd##<~%*bEj zd7*UAL9~5c(Q=j&RMl%JsiH?vDYXmW(Yq7-o3VeO!*-{JP42Y4hG}~Z`(7ofzMC$! zpVi8qwur@VH`$YWZ75%hx+G%%NX{5e(z6*$?t7|_&1ga`yDe~~l>Sj9BOjI-k3o_j zcs!EvU%=xh^5j!{?T3qr=J4Btc<3f{kM|7JVtX5o#s7fRKM5iJ^zS>~hGVgI`NuC8 zZ_nG?a4hb>3BvysJzfd_KL~%AVe|fpy0ee=!X3EE#Bp4`8>fBF6WSBC>y(fsVwM^6v*|L1@H?DOCM z@zK*yAAWN9?8)QLo;-T^?4u`tIXr#*`ICnQtJ7|-Rn2_aYz1@&->?J5kKF(`SP2u@7gbL zA6~t=`}^V5i#IRtFvnN-AKcWRho`|_AKv@juYUgP=XZa7@$%b4{JCt<`@U!dd`ntZZuj}jjy1uTj>+AZuzOJw9>-xIBuCMFszxwqrU-Ql00Js4F^X~gq literal 0 HcmV?d00001 diff --git a/docs/historical/mh-6.8.5/local/linux/mh-6.8.3.README b/docs/historical/mh-6.8.5/local/linux/mh-6.8.3.README new file mode 100644 index 0000000..5cd0a18 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/mh-6.8.3.README @@ -0,0 +1,68 @@ +MH 6.8.3 for Linux +================== + +This distribution consists of two packages: mh-6.8.3-bin.tar.gz contains +shared binaries, and mh-6.8.3-patch.tar.gz contains patches to the UCI MH +6.8.3 distribution. The patches will allow the building of shared or static +binaries, although the implementation is still a bit of a hack. You may +download either or both packages, depending on whether you want sources, +binaries, or both. + +You will need to add a user for POP, and another for BBoards. I used: + +pop:x:13:13:POP administrator:/usr/lib/mh:/bin/sh +bboards:x:14:14:BBoards administrator:/usr/spool/bboards:/bin/sh + +Do this before unpacking the binary distribution to avoid problems with buggy +versions of GNU tar, or before installing binaries built from the source +patch distribution. (Note that the BBoards spool area is not included in the +binary distribution.) + +mh-6.8.3-bin.tar.gz should be unpacked from the root directory. It places +files in /usr/bin/mh, /usr/lib/mh, and /usr/sbin (popd), installs manpages in +/usr.man/man?/*.?mh, and installs the MH shared library libmh.so.2.0 in /lib. +(WARNING!!! The internals of MH have changed; you can not use the older +shared library with the new binaries, or vice versa.) Add /usr/bin/mh to your +PATH and you're set. (Ed. note: I don't want to hear about the choice of +directories. Complain to the FSSTND folks if you don't like it, or grab the +source package and recompile it with different paths.) + +mh-6.8.3-patch.tar.gz can be unpacked anywhere, although it's convenient to +unpack it into the top directory of the UCI MH distribution. After unpacking, +issue the commands: + +patch -p0 -N < DIFFS-pre +cp -f MH conf/MH +(cd conf/mh; make; mhconfig MH) +make clean + +(If you want to change the configuration, edit conf/MH after the cp -f.) + +If you want to build shared binaries, you must issue the command: + +patch -p0 -N < DIFFS-post + +after the "make clean" step. Depending on what changes you may have made to +conf/MH, you may see several failures; you will need to patch those files +manually. Eventually, I will get this into the distribution makefiles and the +post-patch won't be necessary. + +!!! If you do not patch the binaries, you may want to edit doc/Makefile and +!!! change the definitions of MAN1EXT, MAN5EXT, and MAN8EXT to add the "mh" +!!! suffix to the manpages when they are installed. This can not easily be +!!! done automatically; fixing it will require some changes to mhconfig. + +Everything is now ready: "make" will build the distribution. (You will see +various warnings because NULL is defined as "(void *) 0" instead of simply +"0", and for shared binaries the DLL tools will complain about relative +JUMP_DIR settings. The alternative having been to hardcode the full pathname, +forcing everyone to unpack MH in /varopt, I chose to accept the warnings.) + +"make install" will place the binaries and configuration files in the +appropriate locations, and will install libmh.so.2.0 in /lib and run ldconfig. + +If you need help building MH beyond this, I suggest reading the file READ-ME +in the top level of the UCI MH distribution. + +Brandon S. Allbery +bsa@kf8nh.wariat.org diff --git a/docs/historical/mh-6.8.5/local/linux/mh-6.8.3.lsm b/docs/historical/mh-6.8.5/local/linux/mh-6.8.3.lsm new file mode 100644 index 0000000..8a89d9b --- /dev/null +++ b/docs/historical/mh-6.8.5/local/linux/mh-6.8.3.lsm @@ -0,0 +1,25 @@ +Begin3 +Title: mh (The RAND MH Message Handling System) +Version: 6.8.3 +Entered-date: 1DEC95 +Description: MH is a flexible mail management system which uses individual + shell-level commands to manage various aspects of mail + maintenance. These commands can be used as is or combined via + shell scripts to allow arbitrary mail manipulation. User + interfaces such as xmh and exmh and mh-e can easily be + implemented on top of its commands. +Keywords: RAND Mail Handler MH UCI POP BBoards +Author: Bug-MH@ICS.UCI.EDU +Maintained-by: bsa@kf8nh.wariat.org for the Linux Port +Primary-site: louie.udel.edu /pub/portal + 1269485 mh-6.8.tar.gz +Alternate-site: sunsite.unc.edu /pub/Linux/games/x11/networked + 1306309 mh-6.8.3-src.tgz + 649682 mh-6.8.3-bin.tar.gz + 22812 mh-6.8.3-diffs.tar.gz + 3147 mh-6.8.3.README +Original-site: ftp.ics.uci.edu /pub/mh/tar + 1961283 mh-6.8.3.tar.Z +Platform: Many *nix +Copying-policy: public domain +End diff --git a/docs/historical/mh-6.8.5/local/rdist_script b/docs/historical/mh-6.8.5/local/rdist_script new file mode 100755 index 0000000..be259ee --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_script @@ -0,0 +1,23 @@ +#!/bin/csh -f +# +# Script to run rdist in order to update the Sun-3 filesservers +# +if (`hostname` == 'ics.uci.edu') then + cd /usr/local/bin + rdist -f /usr/src/bs/mh-6.6/rdist_update_usrlocal.sequent + cd /usr/local/lib/mh + rdist -f /usr/src/bs/mh-6.6/rdist_update_lib.sequent + rdist -f /usr/src/bs/mh-6.6/rdist_update_others.sequent +else if (`hostname` == 'f.ics.uci.edu') then + cd /usr/local + rdist -f /usr/src/bs/mh-6.6/rdist_update_usrlocal.is68k + cd /usr/local/lib/mh + rdist -f /usr/src/bs/mh-6.6/rdist_update_lib.is68k + rdist -f /usr/src/bs/mh-6.6/rdist_update_others.is68k +else + cd /usr/local + rdist -f /usr/src/bs/mh-6.6/rdist_update_usrlocal.`arch` + cd /usr/local/lib/mh + rdist -f /usr/src/bs/mh-6.6/rdist_update_lib.`arch` + rdist -f /usr/src/bs/mh-6.6/rdist_update_others.`arch` +endif diff --git a/docs/historical/mh-6.8.5/local/rdist_update_lib.is68k b/docs/historical/mh-6.8.5/local/rdist_update_lib.is68k new file mode 100644 index 0000000..ecc2304 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_lib.is68k @@ -0,0 +1,7 @@ +FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh + dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx + mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps + forwcomps distcomps digestcomps components scan.size scan.time) + +${FILES} -> (cip1 cip4) + install /usr/uci/lib/mh ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_lib.sequent b/docs/historical/mh-6.8.5/local/rdist_update_lib.sequent new file mode 100644 index 0000000..f482ab8 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_lib.sequent @@ -0,0 +1,7 @@ +FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh + dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx + mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps + forwcomps distcomps digestcomps components scan.size scan.time) + +${FILES} -> (bonnie) + install /usr/local/lib/mh ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_lib.sun3 b/docs/historical/mh-6.8.5/local/rdist_update_lib.sun3 new file mode 100644 index 0000000..b8b9a41 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_lib.sun3 @@ -0,0 +1,11 @@ +FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh + dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx + mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps + forwcomps distcomps digestcomps components scan.size scan.time) + +${FILES} -> (rome europe pompe cadet madeleine cad harlie + cecil beanie london) + install /usr.MC68020/uci/lib/mh ; + +${FILES} -> (etoile commerce) + install /usr/uci/lib/mh ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_others.is68k b/docs/historical/mh-6.8.5/local/rdist_update_others.is68k new file mode 100644 index 0000000..8a1a015 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_others.is68k @@ -0,0 +1,2 @@ +/usr/etc/popd -> (icsf cip1 cip4) + install /usr/etc/popd ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_others.sequent b/docs/historical/mh-6.8.5/local/rdist_update_others.sequent new file mode 100644 index 0000000..262b982 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_others.sequent @@ -0,0 +1,2 @@ +/usr/etc/popd -> (ics bonnie) + install /usr/etc/popd ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_others.sun3 b/docs/historical/mh-6.8.5/local/rdist_update_others.sun3 new file mode 100644 index 0000000..d0b2497 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_others.sun3 @@ -0,0 +1,3 @@ +/usr/etc/popd -> (rome europe pompe cadet madeleine cad harlie cecil beanie + london etoile commerce) + install /usr/etc/popd ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.is68k b/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.is68k new file mode 100644 index 0000000..29f6100 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.is68k @@ -0,0 +1,6 @@ +FILES = (ali anno bbc bbl burst comp dist folder folders forw inc mark mhmail + mhpath msgchk msh packf pick prompter refile repl rmf rmm scan send + show next prev sortm vmh whatnow whom) + +${FILES} -> (cip1 cip4) + install /usr/uci ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sequent b/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sequent new file mode 100644 index 0000000..cf5d17e --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sequent @@ -0,0 +1,6 @@ +FILES = (ali anno bbc bbl burst comp dist folder folders forw inc mark mhmail + mhpath msgchk msh packf pick prompter refile repl rmf rmm scan send + show next prev sortm vmh whatnow whom) + +${FILES} -> (bonnie) + install /usr/local/bin ; diff --git a/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sun3 b/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sun3 new file mode 100644 index 0000000..8026885 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/rdist_update_usrlocal.sun3 @@ -0,0 +1,10 @@ +FILES = (ali anno bbc bbl burst comp dist folder folders forw inc mark mhmail + mhpath msgchk msh packf pick prompter refile repl rmf rmm scan send + show next prev sortm vmh whatnow whom) + +${FILES} -> (rome europe etoile pompe commerce cadet madeleine cad harlie + cecil beanie london) + install /usr.MC68020/uci ; + +${FILES} -> (etoile commerce) + install /usr/uci ; diff --git a/docs/historical/mh-6.8.5/local/tmp/mh-6.8-bsdi.patch b/docs/historical/mh-6.8.5/local/tmp/mh-6.8-bsdi.patch new file mode 100644 index 0000000..10481e9 --- /dev/null +++ b/docs/historical/mh-6.8.5/local/tmp/mh-6.8-bsdi.patch @@ -0,0 +1,2148 @@ +From somewhere!bsdi-users-request@bsdi.com Mon Mar 1 11:50:20 1993 +Received: by IEDVB.acd.com (5.57/Ultrix2.3-C) + id AA10693; Mon, 1 Mar 93 11:50:20 -0500 +Received: by acd4.acd.com (5.57/Ultrix2.4-C) + id AA15842; Mon, 1 Mar 93 11:51:42 EST +Received: from banjo.concert.net by relay1.UU.NET with SMTP + (5.61/UUNET-internet-primary) id AA01965; Sun, 28 Feb 93 03:24:30 -0500 +Received: by banjo.concert.net (5.59/tas-concert/6-19-91) + id AA28168; Sun, 28 Feb 93 02:07:16 -0500 +Message-Id: <199302280705.AA26812@misc.glarp.com> +To: sgd@tfm.tfm.com (Stephen Diercouff) +Cc: bsdi-users@bsdi.com +Subject: Re: BSDI MH patches +In-Reply-To: +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" +Date: Sun, 28 Feb 1993 00:05:40 -0700 +From: Brad Huntting +Errors-To: bsdi-users-request@bsdi.com +Sender: bsdi-users-request@bsdi.com +Precedence: bulk +X-Loop: bsdi-users@bsdi.com +Status: RO + + + +------- =_aaaaaaaaaa0 +Content-Type: text/plain; charset="us-ascii" + +I seemed to have jumped the gun with respect to the mh patches... +This batch has been tested (really!). + + +brad + +------- =_aaaaaaaaaa0 +Content-Type: text/plain; charset="us-ascii" +Content-Description: mh-6.8-patch + +diff -c /dev/null mh/conf/MH.bsd386:1.2 +*** /dev/null Tue Feb 9 07:41:52 1993 +--- mh/conf/MH.bsd386 Tue Feb 9 07:41:54 1993 +*************** +*** 0 **** +--- 1,26 ---- ++ # a BSD386 system running SendMail ++ cc cc ++ bin /usr/contrib/mh/bin ++ etc /usr/contrib/mh/lib ++ mandir /usr/contrib/man ++ mail /var/mail ++ chown /usr/sbin/chown ++ manuals gen ++ mts sendmail/smtp ++ ++ sprintf int ++ signal void ++ options BIND BSD42 BSD43 DBMPWD MORE='"/usr/bin/more"' ++ options SYS5DIR NTOHLSWAP OVERHEAD VSPRINTF WHATNOW ZONEINFO ++ options MHE MHRC MIME FLOCK ++ options POSIX ++ ++ # ++ # POP ++ # ++ pop on ++ popdir /usr/local/lib/mh ++ #options APOP='"/etc/pop.auth"' ++ #options DPOP ++ #options MPOP ++ options RPOP +diff -c mh/conf/config/mtstailor:1.1.1.1 mh/conf/config/mtstailor:1.2 +*** mh/conf/config/mtstailor:1.1.1.1 Tue Feb 9 07:41:56 1993 +--- mh/conf/config/mtstailor Tue Feb 9 07:41:56 1993 +*************** +*** 2,4 **** +--- 2,6 ---- + mmdflfil: @(MHDROPFIL) + hostable: @(MHETCPATH)/hosts + servers: localhost \01localnet ++ sendmail: /usr/sbin/sendmail ++ lockstyle: 0 +diff -c mh/conf/makefiles/sbr:1.1.1.1 mh/conf/makefiles/sbr:1.2 +*** mh/conf/makefiles/sbr:1.1.1.1 Tue Feb 9 07:42:05 1993 +--- mh/conf/makefiles/sbr Tue Feb 9 07:42:06 1993 +*************** +*** 2,8 **** + # Instructions to Make, for compilation of MH modules + # + # @(MHWARNING) +! # @(#)$Id: sbr,v 2.19 1992/11/12 22:47:24 jromine Exp $ + ############################################################################## + + OPTIONS = @(MHOPTIONS) +--- 2,8 ---- + # Instructions to Make, for compilation of MH modules + # + # @(MHWARNING) +! # @(#)$Id: sbr,v 1.1.1.1 1993/01/30 04:40:16 jtc Exp $ + ############################################################################## + + OPTIONS = @(MHOPTIONS) +*************** +*** 47,53 **** + makedir.c path.c peekc.c pidwait.c pidstatus.c \ + printsw.c push.c putenv.c pwd.c refile.c remdir.c r1bindex.c \ + showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \ +! uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c + + + OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \ +--- 47,53 ---- + makedir.c path.c peekc.c pidwait.c pidstatus.c \ + printsw.c push.c putenv.c pwd.c refile.c remdir.c r1bindex.c \ + showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \ +! uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c ruserpass.c + + + OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \ +*************** +*** 63,69 **** + makedir.o path.o peekc.o pidwait.o pidstatus.o \ + printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o \ + showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \ +! uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o + + @BEGIN: SHAREDLIB + ODEFS = formatdef.o m_msgdef.o +--- 63,69 ---- + makedir.o path.o peekc.o pidwait.o pidstatus.o \ + printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o \ + showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \ +! uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o ruserpass.o + + @BEGIN: SHAREDLIB + ODEFS = formatdef.o m_msgdef.o +diff -c mh/conf/makefiles/zotnet/tws:1.1.1.1 mh/conf/makefiles/zotnet/tws:1.2 +*** mh/conf/makefiles/zotnet/tws:1.1.1.1 Tue Feb 9 07:42:11 1993 +--- mh/conf/makefiles/zotnet/tws Tue Feb 9 07:42:11 1993 +*************** +*** 2,8 **** + # Instructions to Make, for compilation of ZOT UIP/utility processes + # + # @(MHWARNING) +! # @(#)$Id: tws,v 1.15 1992/11/18 16:54:16 jromine Exp $ + ############################################################################## + + # The following entries were inserted during MH configuration +--- 2,8 ---- + # Instructions to Make, for compilation of ZOT UIP/utility processes + # + # @(MHWARNING) +! # @(#)$Id: tws,v 1.1.1.1 1993/01/30 04:40:19 jtc Exp $ + ############################################################################## + + # The following entries were inserted during MH configuration +*************** +*** 71,76 **** +--- 71,78 ---- + + dtimep.c: dtimep.lex + $(LEX) dtimep.lex | sed -f lexedit.sed > dtimep.c ++ len=`wc -l dtimep.c | awk ' { print $$1 } '`; \ ++ if [ $$len -eq 1 ]; then cp dtimep.c-lexed dtimep.c; fi + + lexstring.o: lexstring.c + $(CC) $(CFLAGS) -c -DONECASE lexstring.c +diff -c mh/dist/Makefile:1.1.1.1 mh/dist/Makefile:1.2 +*** mh/dist/Makefile:1.1.1.1 Tue Feb 9 07:42:15 1993 +--- mh/dist/Makefile Tue Feb 9 07:42:15 1993 +*************** +*** 2,8 **** + # Instructions to Make, for generation of MH documentation sets + # + # This file is automatically generated. Do not edit! +! # @(#)$Id: dist,v 2.7 1992/12/02 22:21:43 jromine Exp $ + ############################################################################## + + MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +--- 2,8 ---- + # Instructions to Make, for generation of MH documentation sets + # + # This file is automatically generated. Do not edit! +! # @(#)$Id: dist,v 1.1.1.1 1993/01/30 04:40:16 jtc Exp $ + ############################################################################## + + MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k +diff -c mh/h/mh.h:1.1.1.1 mh/h/mh.h:1.2 +*** mh/h/mh.h:1.1.1.1 Tue Feb 9 07:42:20 1993 +--- mh/h/mh.h Tue Feb 9 07:42:20 1993 +*************** +*** 1,5 **** + /* mh.h - main header file for all of MH */ +! /* @(#)$Id: mh.h,v 2.18 1992/12/14 17:10:43 jromine Exp $ */ + + + /* Well-used constants */ +--- 1,5 ---- + /* mh.h - main header file for all of MH */ +! /* @(#)$Id: mh.h,v 1.1.1.1 1993/01/30 04:40:24 jtc Exp $ */ + + + /* Well-used constants */ +*************** +*** 332,338 **** + + /* should be in */ + +! #if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) && !defined(__convex__) + typedef struct _iobuf *FP; + FP popen (); + #else /* SYS5 */ +--- 332,338 ---- + + /* should be in */ + +! #if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) && !defined(__convex__) && !defined(__386BSD__) && !defined(__bsdi__) + typedef struct _iobuf *FP; + FP popen (); + #else /* SYS5 */ +diff -c mh/h/strings.h:1.1.1.1 mh/h/strings.h:1.2 +*** mh/h/strings.h:1.1.1.1 Tue Feb 9 07:42:21 1993 +--- mh/h/strings.h Tue Feb 9 07:42:21 1993 +*************** +*** 1,5 **** + /* strings.h - define standard string functions */ +! /* @(#)$Id: strings.h,v 1.18 1992/11/12 19:34:05 jromine Exp $ */ + + #ifndef _STRINGS /* once-only... */ + #define _STRINGS +--- 1,5 ---- + /* strings.h - define standard string functions */ +! /* @(#)$Id: strings.h,v 1.1.1.1 1993/01/30 04:40:24 jtc Exp $ */ + + #ifndef _STRINGS /* once-only... */ + #define _STRINGS +*************** +*** 25,31 **** + #endif /* SYS5 */ + + #if defined(BSD42) || defined(SVR4) +! #ifndef SVR4 + #include + #else + #include +--- 25,31 ---- + #endif /* SYS5 */ + + #if defined(BSD42) || defined(SVR4) +! #if !defined(SVR4) && !defined(__386BSD__) && !defined(__bsdi__) + #include + #else + #include +*************** +*** 51,57 **** + char *strncpy (); + #endif + +! #ifndef SVR4 + char *getenv (); + char *calloc (), *malloc (), *realloc (); + #endif /* SVR4 */ +--- 51,57 ---- + char *strncpy (); + #endif + +! #if !defined(SVR4) && !defined(__386BSD__) && !defined(__bsdi__) + char *getenv (); + char *calloc (), *malloc (), *realloc (); + #endif /* SVR4 */ +diff -c mh/sbr/discard.c:1.1.1.1 mh/sbr/discard.c:1.2 +*** mh/sbr/discard.c:1.1.1.1 Tue Feb 9 07:43:22 1993 +--- mh/sbr/discard.c Tue Feb 9 07:43:22 1993 +*************** +*** 1,13 **** + /* discard.c - discard output on a file pointer */ + #ifndef lint +! static char ident[] = "@(#)$Id: discard.c,v 1.6 1992/12/15 00:20:22 jromine Exp $"; + #endif /* lint */ + + #include "../h/mh.h" + #include + #ifndef SYS5 + #include +! #else /* SYS5 */ + #include + #include + #ifndef NOIOCTLH +--- 1,16 ---- + /* discard.c - discard output on a file pointer */ + #ifndef lint +! static char ident[] = "@(#)$Id: discard.c,v 1.1.1.1 1993/01/30 04:41:24 jtc Exp $"; + #endif /* lint */ + + #include "../h/mh.h" + #include ++ #ifdef POSIX ++ #include ++ #else + #ifndef SYS5 + #include +! #else + #include + #include + #ifndef NOIOCTLH +*************** +*** 14,33 **** + #include + #endif /* NOIOCTLH */ + #endif /* SYS5 */ +! + + void discard (io) + FILE *io; + { + #ifndef SYS5 + struct sgttyb sg; + #else /* SYS5 */ + struct termio sg; + #endif /* SYS5 */ + + if (io == NULL) + return; + + #ifndef SYS5 + if (ioctl (fileno (io), TIOCGETP, (char *) &sg) != NOTOK) + (void) ioctl (fileno (io), TIOCSETP, (char *) &sg); +--- 17,41 ---- + #include + #endif /* NOIOCTLH */ + #endif /* SYS5 */ +! #endif /* POSIX */ + + void discard (io) + FILE *io; + { ++ #ifndef POSIX + #ifndef SYS5 + struct sgttyb sg; + #else /* SYS5 */ + struct termio sg; + #endif /* SYS5 */ ++ #endif /* POSIX */ + + if (io == NULL) + return; + ++ #ifdef POSIX ++ tcflush (fileno (io), TCOFLUSH); ++ #else + #ifndef SYS5 + if (ioctl (fileno (io), TIOCGETP, (char *) &sg) != NOTOK) + (void) ioctl (fileno (io), TIOCSETP, (char *) &sg); +*************** +*** 35,41 **** +--- 43,54 ---- + if (ioctl (fileno (io), TCGETA, &sg) != NOTOK) + (void) ioctl (fileno (io), TCSETA, &sg); + #endif /* SYS5 */ ++ #endif /* POSIX */ + ++ #ifdef _FSTDIO ++ fpurge (io); ++ #else + if (io -> _ptr = io -> _base) + io -> _cnt = 0; ++ #endif + } +diff -c mh/sbr/m_getfld.c:1.1.1.1 mh/sbr/m_getfld.c:1.2 +*** mh/sbr/m_getfld.c:1.1.1.1 Tue Feb 9 07:43:25 1993 +--- mh/sbr/m_getfld.c Tue Feb 9 07:43:25 1993 +*************** +*** 1,6 **** + /* m_getfld.c - read/parse a message */ + #ifndef lint +! static char ident[] = "@(#)$Id: m_getfld.c,v 1.14 1992/10/31 07:44:56 jromine Exp $"; + #endif /* lint */ + + #include "../h/mh.h" +--- 1,6 ---- + /* m_getfld.c - read/parse a message */ + #ifndef lint +! static char ident[] = "@(#)$Id: m_getfld.c,v 1.1.1.1 1993/01/30 04:41:26 jtc Exp $"; + #endif /* lint */ + + #include "../h/mh.h" +*************** +*** 170,175 **** +--- 170,181 ---- + static int edelimlen; + + static int (*eom_action) () = NULL; ++ ++ #ifdef _FSTDIO ++ #define _ptr _p /* Gag */ ++ #define _cnt _r /* Retch */ ++ #define _filbuf __srget /* Puke */ ++ #endif + + /* */ + +diff -c /dev/null mh/sbr/ruserpass.c:1.1 +*** /dev/null Tue Feb 9 07:43:26 1993 +--- mh/sbr/ruserpass.c Tue Feb 9 07:43:27 1993 +*************** +*** 0 **** +--- 1,216 ---- ++ /* ++ * Copyright (c) 1985 Regents of the University of California. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms are permitted ++ * provided that the above copyright notice and this paragraph are ++ * duplicated in all such forms and that any documentation, ++ * advertising materials, and other materials related to such ++ * distribution and use acknowledge that the software was developed ++ * by the University of California, Berkeley. The name of the ++ * University may not be used to endorse or promote products derived ++ * from this software without specific prior written permission. ++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ++ */ ++ ++ #ifndef lint ++ static char sccsid[] = "@(#)ruserpass.c 5.1 (Berkeley) 3/1/89"; ++ #endif /* not lint */ ++ ++ #include ++ #include ++ #include ++ #include ++ #include ++ #include ++ ++ char *malloc(), *index(), *getenv(), *getpass(), *getlogin(); ++ char *strcpy(); ++ static FILE *cfile; ++ ++ #ifndef MAXHOSTNAMELEN ++ #define MAXHOSTNAMELEN 64 ++ #endif ++ ++ #define DEFAULT 1 ++ #define LOGIN 2 ++ #define PASSWD 3 ++ #define ACCOUNT 4 ++ #define MACDEF 5 ++ #define ID 10 ++ #define MACH 11 ++ ++ static int token(); ++ static char tokval[100]; ++ ++ static struct toktab { ++ char *tokstr; ++ int tval; ++ } toktab[]= { ++ "default", DEFAULT, ++ "login", LOGIN, ++ "password", PASSWD, ++ "passwd", PASSWD, ++ "account", ACCOUNT, ++ "machine", MACH, ++ "macdef", MACDEF, ++ 0, 0 ++ }; ++ ++ ruserpass(host, aname, apass) ++ char *host, **aname, **apass; ++ { ++ char *hdir, buf[BUFSIZ], *tmp; ++ char myname[MAXHOSTNAMELEN], *mydomain; ++ int t, i, c, usedefault = 0; ++ struct stat stb; ++ extern int errno; ++ ++ hdir = getenv("HOME"); ++ if (hdir == NULL) ++ hdir = "."; ++ (void) sprintf(buf, "%s/.netrc", hdir); ++ cfile = fopen(buf, "r"); ++ if (cfile == NULL) { ++ if (errno != ENOENT) ++ perror(buf); ++ goto done; ++ } ++ ++ while ((t = token())) switch(t) { ++ case DEFAULT: ++ usedefault = 1; ++ /* FALL THROUGH */ ++ ++ case MACH: ++ if (!usedefault) { ++ if (token() != ID) ++ continue; ++ /* ++ * Allow match either for user's host name. ++ */ ++ if (strcasecmp(host, tokval) == 0) ++ goto match; ++ continue; ++ } ++ match: ++ while ((t = token()) && t != MACH && t != DEFAULT) switch(t) { ++ ++ case LOGIN: ++ if (token() && *aname == 0) { ++ *aname = malloc((unsigned) strlen(tokval) + 1); ++ (void) strcpy(*aname, tokval); ++ } ++ break; ++ case PASSWD: ++ if (fstat(fileno(cfile), &stb) >= 0 && ++ (stb.st_mode & 077) != 0) { ++ fprintf(stderr, "Error - .netrc file not correct mode.\n"); ++ fprintf(stderr, "Remove password or correct mode.\n"); ++ goto bad; ++ } ++ if (token() && *apass == 0) { ++ *apass = malloc((unsigned) strlen(tokval) + 1); ++ (void) strcpy(*apass, tokval); ++ } ++ break; ++ case ACCOUNT: ++ break; ++ ++ case MACDEF: ++ goto done_close; ++ break; ++ default: ++ fprintf(stderr, "Unknown .netrc keyword %s\n", tokval); ++ break; ++ } ++ goto done; ++ } ++ ++ done_close: ++ (void) fclose(cfile); ++ ++ done: ++ if (!*aname) { ++ char tmp[80]; ++ char *myname; ++ ++ if ((myname = getlogin()) == NULL) { ++ struct passwd *pp; ++ ++ if ((pp = getpwuid (getuid())) != NULL) ++ myname = pp->pw_name; ++ } ++ printf("Name (%s:%s): ", host, myname); ++ ++ (void) fgets(tmp, sizeof(tmp) - 1, stdin); ++ tmp[strlen(tmp) - 1] = '\0'; ++ if (*tmp != '\0') { ++ myname = tmp; ++ } ++ ++ *aname = malloc((unsigned) strlen(myname) + 1); ++ strcpy (*aname, myname); ++ } ++ ++ if (!*apass) { ++ char prompt[256]; ++ char *mypass; ++ ++ sprintf(prompt, "Password (%s:%s): ", host, *aname); ++ mypass = getpass (prompt); ++ ++ if (*mypass == '\0') { ++ mypass = *aname; ++ } ++ ++ *apass = malloc((unsigned) strlen(mypass) + 1); ++ strcpy (*apass, mypass); ++ } ++ ++ return(0); ++ bad: ++ (void) fclose(cfile); ++ return(-1); ++ } ++ ++ static int ++ token() ++ { ++ char *cp; ++ int c; ++ struct toktab *t; ++ ++ if (feof(cfile)) ++ return (0); ++ while ((c = getc(cfile)) != EOF && ++ (c == '\n' || c == '\t' || c == ' ' || c == ',')) ++ continue; ++ if (c == EOF) ++ return (0); ++ cp = tokval; ++ if (c == '"') { ++ while ((c = getc(cfile)) != EOF && c != '"') { ++ if (c == '\\') ++ c = getc(cfile); ++ *cp++ = c; ++ } ++ } else { ++ *cp++ = c; ++ while ((c = getc(cfile)) != EOF ++ && c != '\n' && c != '\t' && c != ' ' && c != ',') { ++ if (c == '\\') ++ c = getc(cfile); ++ *cp++ = c; ++ } ++ } ++ *cp = 0; ++ if (tokval[0] == 0) ++ return (0); ++ for (t = toktab; t->tokstr; t++) ++ if (!strcmp(t->tokstr, tokval)) ++ return (t->tval); ++ return (ID); ++ } +diff -c mh/uip/replsbr.c:1.1.1.1 mh/uip/replsbr.c:1.2 +*** mh/uip/replsbr.c:1.1.1.1 Tue Feb 9 07:43:44 1993 +--- mh/uip/replsbr.c Tue Feb 9 07:43:45 1993 +*************** +*** 1,6 **** + /* replsbr.c - routines to help repl along... */ + #ifndef lint +! static char ident[] = "@(#)$Id: replsbr.c,v 1.13 1992/12/15 00:20:22 jromine Exp $"; + #endif /* lint */ + + #include "../h/mh.h" +--- 1,6 ---- + /* replsbr.c - routines to help repl along... */ + #ifndef lint +! static char ident[] = "@(#)$Id: replsbr.c,v 1.1.1.1 1993/01/30 04:41:38 jtc Exp $"; + #endif /* lint */ + + #include "../h/mh.h" +*************** +*** 422,427 **** +--- 422,431 ---- + (void) dup2 (fileno (out), fileno (stdout)); + closefds (3); + ++ #ifdef _FSTDIO ++ /* the code assumed that rewind does this. */ ++ lseek (fileno(stdin), 0, SEEK_SET); ++ #endif + execlp (mhlproc, mhl, "-form", filter, "-noclear", NULLCP); + fprintf (stderr, "unable to exec "); + perror (mhlproc); +diff -c mh/uip/scansbr.c:1.1.1.1 mh/uip/scansbr.c:1.2 +*** mh/uip/scansbr.c:1.1.1.1 Tue Feb 9 07:43:46 1993 +--- mh/uip/scansbr.c Tue Feb 9 07:43:46 1993 +*************** +*** 1,6 **** + /* scansbr.c - routines to help scan along... */ + #ifndef lint +! static char ident[] = "@(#)$Id: scansbr.c,v 1.13 1992/12/15 00:20:22 jromine Exp $"; + #endif /* lint */ + + #include "../h/mh.h" +--- 1,6 ---- + /* scansbr.c - routines to help scan along... */ + #ifndef lint +! static char ident[] = "@(#)$Id: scansbr.c,v 1.1.1.1 1993/01/30 04:41:39 jtc Exp $"; + #endif /* lint */ + + #include "../h/mh.h" +*************** +*** 13,18 **** +--- 13,22 ---- + #include + #include + ++ #ifdef _FSTDIO ++ #define _ptr _p /* Gag */ ++ #define _cnt _w /* Wretch */ ++ #endif + + #define MAXSCANL 256 /* longest possible scan line */ + #define SBUFSIZ 512 /* buffer size for content part of header +diff -c /dev/null mh/zotnet/tws/dtimep.c-lexed:1.1 +*** /dev/null Tue Feb 9 07:43:58 1993 +--- mh/zotnet/tws/dtimep.c-lexed Tue Feb 9 07:43:58 1993 +*************** +*** 0 **** +--- 1,1346 ---- ++ # include "stdio.h" ++ static int start_cond = 0; ++ #define BEGIN start_cond = ++ struct yysvf { ++ struct yywork *yystoff; ++ struct yysvf *yyother; ++ int *yystops;}; ++ # define Z 2 ++ #ifndef lint ++ static char ident[] = "@(#)$Id: dtimep.lex,v 1.1 1991/04/26 21:51:10 sww Exp $"; ++ #endif ++ #include "tws.h" ++ #include "../h/strings.h" ++ #include ++ #include ++ #if !defined(SYS5) && !defined(ZONEINFO) ++ #include ++ #endif /* !defined(SYS5) && !defined(ZONEINFO) */ ++ ++ #ifdef SYS5 ++ extern long timezone; ++ #endif SYS5 ++ ++ /* ++ * Patchable flag that says how to interpret NN/NN/NN dates. When ++ * true, we do it European style: DD/MM/YY. When false, we do it ++ * American style: MM/DD/YY. Of course, these are all non-RFC822 ++ * compliant. ++ */ ++ int europeandate = 0; ++ ++ /* ++ * Table to convert month names to numeric month. We use the ++ * fact that the low order 5 bits of the sum of the 2nd & 3rd ++ * characters of the name is a hash with no collisions for the 12 ++ * valid month names. (The mask to 5 bits maps any combination of ++ * upper and lower case into the same hash value). ++ */ ++ static int month_map[] = { ++ 0, ++ 6, /* 1 - Jul */ ++ 3, /* 2 - Apr */ ++ 5, /* 3 - Jun */ ++ 0, ++ 10, /* 5 - Nov */ ++ 0, ++ 1, /* 7 - Feb */ ++ 11, /* 8 - Dec */ ++ 0, ++ 0, ++ 0, ++ 0, ++ 0, ++ 0, ++ 0, /*15 - Jan */ ++ 0, ++ 0, ++ 0, ++ 2, /*19 - Mar */ ++ 0, ++ 8, /*21 - Sep */ ++ 0, ++ 9, /*23 - Oct */ ++ 0, ++ 0, ++ 4, /*26 - May */ ++ 0, ++ 7 /*28 - Aug */ ++ }; ++ /* ++ * Same trick for day-of-week using the hash function ++ * (c1 & 7) + (c2 & 4) ++ */ ++ static int day_map[] = { ++ 0, ++ 0, ++ 0, ++ 6, /* 3 - Sat */ ++ 4, /* 4 - Thu */ ++ 0, ++ 5, /* 6 - Fri */ ++ 0, /* 7 - Sun */ ++ 2, /* 8 - Tue */ ++ 1 /* 9 - Mon */, ++ 0, ++ 3 /*11 - Wed */ ++ }; ++ #define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\ ++ tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\ ++ cp += 2; } ++ #define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\ ++ cp += 2;\ ++ SKIPD;} ++ #define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i) ++ #define SKIPD { while ( !isdigit(*cp++) ) ; --cp; } ++ #define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; } ++ #define ZONE(x) { tw.tw_zone=(x); EXPZONE; } ++ #define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; } ++ #define LC(c) (isupper (c) ? tolower (c) : (c)) ++ ++ #ifdef DSTXXX ++ #ifndef BSD42 ++ #include ++ #else BSD42 ++ #include ++ #endif BSD42 ++ ++ static zonehack (tw) ++ register struct tws *tw; ++ { ++ register struct tm *tm; ++ ++ if (twclock (tw) == -1L) ++ return; ++ ++ tm = localtime (&tw -> tw_clock); ++ if (tm -> tm_isdst) { ++ tw -> tw_flags |= TW_DST; ++ tw -> tw_zone -= 60; ++ } ++ } ++ #endif DSTXXX ++ struct tws *dparsetime (str) ++ char *str; ++ { ++ register int i; ++ static struct tws tw; ++ register char *cp; ++ register int gotdate = 0; ++ #ifndef SYS5 ++ #ifdef ZONEINFO ++ struct tm *tm; ++ time_t clock; ++ #else ++ struct timeb tb; ++ #endif /* ZONEINFO */ ++ #endif /* not SYS5 */ ++ ++ start_cond = 0; ++ ++ /* Zero out the struct. */ ++ bzero( (char *) &tw, sizeof tw); ++ ++ /* Set default time zone. */ ++ #ifdef SYS5 ++ tzset( ); ++ tw.tw_zone = -(timezone / 60); ++ #else ++ #ifdef ZONEINFO ++ time (&clock); ++ tm = localtime(&clock); ++ tw.tw_zone = tm->tm_gmtoff / 60; ++ if (tm -> tm_isdst) /* if DST is in effect */ ++ tw.tw_zone -= 60; /* reset to normal offset */ ++ #else ++ ftime( &tb ); ++ tw.tw_zone = -tb.timezone; ++ #endif /* ZONEINFO */ ++ #endif /* SYS5 */ ++ ++ while (isspace(*str)) ++ str++; ++ while ( 1 ) ++ switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) { ++ ++ case -1: ++ if (!gotdate || tw.tw_year == 0) ++ return 0; ++ /* fall through */ ++ case 0: ++ return &tw; ++ ++ case 1: ++ SETDAY; ++ break; ++ case 2: ++ { ++ cp++; ++ SETDAY; ++ } ++ break; ++ case 3: ++ { ++ if (europeandate) { ++ /* European: DD/MM/YY */ ++ tw.tw_mday = CVT2; ++ cp++; ++ tw.tw_mon = CVT2 - 1; ++ } else { ++ /* American: MM/DD/YY */ ++ tw.tw_mon = CVT2 - 1; ++ cp++; ++ tw.tw_mday = CVT2; ++ } ++ cp++; ++ for (i = 0; isdigit(*cp); ) ++ i = i*10 + (*cp++ - '0'); ++ tw.tw_year = i % 100; ++ } ++ break; ++ case 4: ++ { ++ tw.tw_mday = CVT2; ++ while ( !isalpha(*cp++) ) ++ ; ++ SETMONTH; ++ for (i = 0; isdigit(*cp); ) ++ i = i*10 + (*cp++ - '0'); ++ tw.tw_year = i % 100; ++ } ++ break; ++ case 5: ++ { ++ cp++; ++ SETMONTH; ++ tw.tw_mday = CVT2; ++ SKIPD; ++ for (i = 0; isdigit(*cp); ) ++ i = i*10 + (*cp++ - '0'); ++ tw.tw_year = i % 100; ++ } ++ break; ++ case 6: ++ { ++ cp++; ++ SETMONTH; ++ tw.tw_mday = CVT2; ++ } ++ break; ++ case 7: ++ { /* hack: ctime w/o TZ */ ++ tw.tw_hour = CVT2; cp++; ++ tw.tw_min = CVT2; cp++; ++ tw.tw_sec = CVT2; ++ while( !isdigit(*cp++) ) ++ ; ++ cp++; ++ tw.tw_year = CVT2; ++ } ++ break; ++ case 8: ++ { ++ tw.tw_hour = CVT2; cp++; ++ tw.tw_min = CVT2; cp++; ++ tw.tw_sec = CVT2; ++ BEGIN Z; ++ } ++ break; ++ case 9: ++ { ++ tw.tw_hour = CVT2; cp++; ++ tw.tw_min = CVT2; ++ BEGIN Z; ++ } ++ break; ++ case 10: ++ { ++ tw.tw_hour = CVT2; cp++; ++ if (tw.tw_hour == 12) ++ tw.tw_hour = 0; ++ tw.tw_min = CVT2; ++ BEGIN Z; ++ } ++ break; ++ case 11: ++ { ++ tw.tw_hour = CVT2; cp++; ++ if (tw.tw_hour != 12) ++ tw.tw_hour += 12; ++ tw.tw_min = CVT2; ++ BEGIN Z; ++ } ++ break; ++ case 12: ++ { ++ tw.tw_hour = CVT2; ++ tw.tw_min = CVT2; ++ tw.tw_sec = CVT2; ++ BEGIN Z; ++ } ++ break; ++ case 13: ++ { ++ /* ++ * Luckly, 4 digit times in the range ++ * 1960-1999 aren't legal as hour ++ * and minutes. ++ */ ++ cp += 2; ++ tw.tw_year = CVT2; ++ } ++ break; ++ case 14: ++ { ++ if (tw.tw_hour) { ++ cp += 2; ++ tw.tw_year = CVT2; ++ tw.tw_zone = 0; ++ } else { ++ tw.tw_hour = CVT2; ++ tw.tw_min = CVT2; ++ BEGIN Z; ++ } ++ } ++ break; ++ case 15: ++ ZONE(0 * 60); ++ break; ++ case 16: ++ ZONE(0 * 60); ++ break; ++ case 17: ++ ZONE(2 * 60); ++ break; ++ case 18: ++ ZONED(2 * 60); ++ break; ++ case 19: ++ ZONE(-5 * 60); ++ break; ++ case 20: ++ ZONED(-5 * 60); ++ break; ++ case 21: ++ ZONE(-6 * 60); ++ break; ++ case 22: ++ ZONED(-6 * 60); ++ break; ++ case 23: ++ ZONE(-7 * 60); ++ break; ++ case 24: ++ ZONED(-7 * 60); ++ break; ++ case 25: ++ ZONE(-8 * 60); ++ break; ++ case 26: ++ ZONED(-8 * 60); ++ break; ++ case 27: ++ ZONE(-(3 * 60 + 30)); ++ break; ++ case 28: ++ ZONE(-4 * 60); ++ break; ++ case 29: ++ ZONED(-4 * 60); ++ break; ++ case 30: ++ ZONE(-9 * 60); ++ break; ++ case 31: ++ ZONED(-9 * 60); ++ break; ++ case 32: ++ ZONE(-10 * 60); ++ break; ++ case 33: ++ ZONED(-10 * 60); ++ break; ++ case 34: ++ ZONED(0 * 60); ++ break; ++ case 35: ++ { ++ tw.tw_zone = 60 * (('a'-1) - LC(*cp)); ++ EXPZONE; ++ } ++ break; ++ case 36: ++ { ++ tw.tw_zone = 60 * ('a' - LC(*cp)); ++ EXPZONE; ++ } ++ break; ++ case 37: ++ { ++ tw.tw_zone = 60 * (LC(*cp) - 'm'); ++ EXPZONE; ++ } ++ break; ++ case 38: ++ { ++ cp++; ++ tw.tw_zone = ((cp[0] * 10 + cp[1]) ++ -('0' * 10 + '0'))*60 ++ +((cp[2] * 10 + cp[3]) ++ -('0' * 10 + '0')); ++ EXPZONE; ++ #ifdef DSTXXX ++ zonehack (&tw); ++ #endif DSTXXX ++ cp += 4; ++ } ++ break; ++ case 39: ++ { ++ cp++; ++ tw.tw_zone = (('0' * 10 + '0') ++ -(cp[0] * 10 + cp[1]))*60 ++ +(('0' * 10 + '0') ++ -(cp[2] * 10 + cp[3])); ++ EXPZONE; ++ #ifdef DSTXXX ++ zonehack (&tw); ++ #endif DSTXXX ++ cp += 4; ++ } ++ break; ++ case 40: ++ { ++ while( !isdigit(*cp++) ) ++ ; ++ cp++; ++ tw.tw_year = CVT2; ++ } ++ break; ++ case 41: ++ case 42: ++ ; ++ break; ++ default: return(0); ++ } } ++ /* end of yylex */ ++ int yyvstop[] ={ ++ 0, ++ ++ 42, ++ 0, ++ ++ 41, ++ 0, ++ ++ 42, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 35, ++ 0, ++ ++ 36, ++ 0, ++ ++ 36, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 37, ++ 0, ++ ++ 15, ++ 0, ++ ++ 9, ++ 0, ++ ++ 1, ++ 0, ++ ++ 1, ++ 0, ++ ++ 1, ++ 0, ++ ++ 1, ++ 0, ++ ++ 1, ++ 0, ++ ++ 1, ++ 0, ++ ++ 1, ++ 0, ++ ++ 29, ++ 0, ++ ++ 28, ++ 0, ++ ++ 34, ++ 0, ++ ++ 22, ++ 0, ++ ++ 21, ++ 0, ++ ++ 20, ++ 0, ++ ++ 19, ++ 0, ++ ++ 16, ++ 0, ++ ++ 33, ++ 0, ++ ++ 32, ++ 0, ++ ++ 18, ++ 0, ++ ++ 17, ++ 0, ++ ++ 24, ++ 0, ++ ++ 23, ++ 0, ++ ++ 27, ++ 0, ++ ++ 26, ++ 0, ++ ++ 25, ++ 0, ++ ++ 31, ++ 0, ++ ++ 30, ++ 0, ++ ++ 14, ++ 0, ++ ++ 9, ++ 0, ++ ++ 9, ++ 0, ++ ++ 13, ++ 14, ++ 0, ++ ++ 1, ++ 0, ++ ++ 2, ++ 0, ++ ++ 14, ++ 0, ++ ++ 8, ++ 0, ++ ++ 10, ++ 0, ++ ++ 11, ++ 0, ++ ++ 4, ++ 0, ++ ++ 4, ++ 0, ++ ++ 13, ++ 14, ++ 0, ++ ++ 6, ++ 0, ++ ++ 40, ++ 0, ++ ++ 38, ++ 0, ++ ++ 39, ++ 0, ++ ++ 2, ++ 0, ++ ++ 3, ++ 0, ++ ++ 3, ++ 0, ++ ++ 12, ++ 0, ++ ++ 8, ++ 0, ++ ++ 8, ++ 0, ++ ++ 4, ++ 0, ++ ++ 4, ++ 0, ++ ++ 4, ++ 0, ++ ++ 6, ++ 0, ++ ++ 6, ++ 0, ++ ++ 1, ++ 0, ++ ++ 4, ++ 0, ++ ++ 5, ++ 0, ++ ++ 5, ++ 0, ++ ++ 5, ++ 0, ++ ++ 5, ++ 0, ++ ++ 7, ++ 0, ++ 0}; ++ # define YYTYPE int ++ struct yywork { YYTYPE verify, advance; } yycrank[] ={ ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 1,5, 1,6, ++ 5,5, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 21,21, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 1,5, 0,0, 5,5, ++ 3,21, 3,6, 0,0, 0,0, ++ 0,0, 1,7, 0,0, 0,0, ++ 21,21, 0,0, 0,0, 0,0, ++ 0,0, 1,8, 1,9, 1,8, ++ 1,10, 1,10, 1,10, 1,10, ++ 1,10, 1,10, 1,10, 3,21, ++ 9,63, 21,82, 22,83, 22,83, ++ 0,0, 0,0, 0,0, 3,7, ++ 0,0, 0,0, 3,22, 0,0, ++ 3,23, 0,0, 0,0, 3,8, ++ 3,9, 3,8, 3,10, 3,10, ++ 3,10, 3,10, 3,10, 3,10, ++ 3,10, 10,64, 10,64, 10,64, ++ 10,64, 10,64, 10,64, 10,64, ++ 10,64, 10,64, 10,64, 0,0, ++ 0,0, 0,0, 1,11, 15,72, ++ 0,0, 1,12, 14,70, 1,13, ++ 12,67, 13,68, 17,75, 1,14, ++ 19,79, 20,81, 1,15, 1,16, ++ 1,17, 15,73, 11,65, 16,74, ++ 1,18, 1,19, 13,69, 11,66, ++ 1,20, 19,80, 14,71, 25,99, ++ 3,24, 3,25, 3,26, 3,27, ++ 3,28, 3,29, 3,30, 3,31, ++ 3,32, 3,33, 3,34, 3,34, ++ 3,35, 3,36, 3,37, 3,38, ++ 3,39, 3,39, 3,40, 3,41, ++ 3,42, 3,39, 3,43, 3,39, ++ 3,44, 7,45, 8,50, 18,76, ++ 23,84, 23,84, 30,104, 18,77, ++ 7,46, 24,97, 42,114, 45,117, ++ 26,100, 28,102, 7,47, 7,48, ++ 31,105, 33,70, 7,49, 38,112, ++ 33,107, 24,65, 46,118, 18,78, ++ 24,98, 8,50, 24,66, 26,101, ++ 28,103, 36,74, 49,123, 31,106, ++ 56,129, 36,111, 38,113, 33,108, ++ 47,119, 33,71, 8,51, 57,130, ++ 8,52, 8,53, 8,53, 8,53, ++ 8,53, 8,53, 8,53, 8,53, ++ 8,53, 8,53, 8,53, 8,54, ++ 44,115, 23,85, 23,86, 23,87, ++ 47,120, 23,88, 35,72, 23,89, ++ 23,90, 35,109, 23,91, 59,133, ++ 50,50, 23,92, 23,93, 44,116, ++ 23,94, 48,121, 55,127, 58,131, ++ 35,73, 23,95, 60,134, 55,128, ++ 35,110, 23,96, 61,135, 62,136, ++ 65,138, 64,52, 48,122, 51,51, ++ 66,139, 67,140, 68,141, 50,50, ++ 69,142, 70,143, 8,55, 58,132, ++ 64,54, 8,56, 71,144, 8,57, ++ 71,145, 73,148, 72,146, 8,58, ++ 50,51, 74,149, 8,59, 8,60, ++ 8,61, 72,147, 51,51, 75,150, ++ 8,62, 52,124, 52,124, 52,124, ++ 52,124, 52,124, 52,124, 52,124, ++ 52,124, 52,124, 52,124, 53,125, ++ 53,125, 53,125, 53,125, 53,125, ++ 53,125, 53,125, 53,125, 53,125, ++ 53,125, 54,126, 54,126, 54,126, ++ 54,126, 54,126, 54,126, 54,126, ++ 54,126, 54,126, 54,126, 63,125, ++ 63,125, 63,125, 63,125, 63,125, ++ 63,125, 63,137, 63,137, 63,137, ++ 63,137, 76,151, 77,152, 78,153, ++ 50,55, 79,154, 80,155, 50,56, ++ 81,156, 50,57, 82,157, 93,111, ++ 85,97, 50,58, 91,107, 92,109, ++ 50,59, 50,60, 50,61, 97,160, ++ 98,161, 99,162, 50,62, 51,55, ++ 100,163, 101,164, 51,56, 85,98, ++ 51,57, 91,108, 92,110, 102,165, ++ 51,58, 103,166, 104,167, 51,59, ++ 51,60, 51,61, 105,168, 106,169, ++ 107,170, 51,62, 83,158, 83,158, ++ 83,158, 83,158, 83,158, 83,158, ++ 83,158, 83,158, 83,158, 83,158, ++ 84,159, 84,159, 84,159, 84,159, ++ 84,159, 84,159, 84,159, 84,159, ++ 84,159, 84,159, 108,171, 109,172, ++ 110,173, 111,174, 112,175, 113,176, ++ 115,177, 116,178, 117,179, 118,180, ++ 119,181, 120,182, 121,183, 122,184, ++ 123,185, 124,186, 124,187, 124,187, ++ 124,187, 124,187, 124,187, 124,187, ++ 124,187, 124,187, 124,187, 124,187, ++ 125,188, 125,188, 125,188, 125,188, ++ 125,188, 125,188, 125,188, 125,188, ++ 125,188, 125,188, 126,189, 127,194, ++ 128,195, 129,196, 130,197, 131,198, ++ 132,199, 133,201, 132,200, 134,203, ++ 135,204, 136,205, 138,207, 139,207, ++ 133,202, 140,207, 143,214, 145,147, ++ 148,216, 149,217, 150,218, 152,220, ++ 153,221, 126,189, 137,206, 137,206, ++ 137,206, 137,206, 137,206, 137,206, ++ 137,206, 137,206, 137,206, 137,206, ++ 141,207, 138,207, 139,207, 142,212, ++ 140,207, 126,190, 126,190, 126,190, ++ 126,190, 126,190, 126,190, 126,190, ++ 126,190, 126,190, 126,190, 126,191, ++ 144,207, 146,207, 147,207, 180,230, ++ 154,212, 151,212, 156,212, 141,207, ++ 155,212, 182,232, 142,212, 157,225, ++ 157,225, 157,225, 157,225, 179,228, ++ 181,228, 183,228, 187,186, 184,228, ++ 190,191, 192,241, 142,212, 144,207, ++ 146,207, 147,207, 185,228, 154,212, ++ 151,212, 156,212, 193,242, 155,212, ++ 198,250, 200,202, 203,252, 204,253, ++ 205,254, 208,147, 126,192, 154,212, ++ 151,212, 156,212, 209,257, 155,212, ++ 210,258, 211,259, 206,255, 212,212, ++ 213,260, 214,261, 215,147, 216,262, ++ 217,263, 126,193, 218,264, 219,265, ++ 220,266, 140,210, 138,208, 158,226, ++ 158,226, 158,226, 158,226, 158,226, ++ 158,226, 158,226, 158,226, 158,226, ++ 158,226, 206,255, 212,212, 139,209, ++ 221,267, 222,268, 179,229, 223,269, ++ 224,270, 228,274, 142,213, 159,227, ++ 159,227, 159,227, 159,227, 159,227, ++ 159,227, 159,227, 159,227, 159,227, ++ 159,227, 141,211, 183,233, 146,215, ++ 181,231, 184,234, 188,238, 185,235, ++ 186,236, 186,237, 186,236, 186,236, ++ 186,236, 186,236, 186,236, 186,236, ++ 186,236, 186,236, 189,189, 156,224, ++ 194,202, 154,222, 229,275, 230,276, ++ 144,147, 151,219, 155,223, 231,277, ++ 232,278, 188,238, 191,240, 191,240, ++ 191,240, 191,240, 191,240, 191,240, ++ 191,240, 191,240, 191,240, 191,240, ++ 233,279, 189,189, 234,280, 194,202, ++ 235,281, 188,239, 188,239, 188,239, ++ 188,239, 188,239, 188,239, 188,239, ++ 188,239, 188,239, 188,239, 195,202, ++ 194,243, 237,283, 238,238, 194,244, ++ 194,245, 194,244, 194,244, 194,244, ++ 194,244, 194,244, 194,244, 194,244, ++ 194,244, 241,241, 242,242, 245,290, ++ 246,202, 247,291, 248,292, 249,293, ++ 250,294, 251,202, 195,202, 252,295, ++ 253,296, 238,238, 254,297, 257,147, ++ 196,202, 255,255, 258,301, 259,302, ++ 260,303, 261,304, 263,305, 195,243, ++ 241,241, 242,242, 195,244, 195,245, ++ 195,244, 195,244, 195,244, 195,244, ++ 195,244, 195,244, 195,244, 195,244, ++ 264,306, 265,307, 189,192, 196,202, ++ 255,255, 266,308, 197,202, 268,309, ++ 269,310, 270,311, 275,312, 277,313, ++ 194,246, 279,314, 280,315, 281,316, ++ 196,243, 189,193, 282,282, 196,244, ++ 196,245, 196,244, 196,244, 196,244, ++ 196,244, 196,244, 196,244, 196,244, ++ 196,244, 197,202, 289,318, 291,202, ++ 284,284, 286,285, 199,202, 288,288, ++ 292,319, 293,320, 294,321, 295,322, ++ 296,323, 282,282, 197,243, 297,324, ++ 283,282, 197,244, 197,245, 197,244, ++ 197,244, 197,244, 197,244, 197,244, ++ 197,244, 197,244, 197,244, 284,284, ++ 286,285, 199,202, 288,288, 195,247, ++ 201,202, 300,299, 298,298, 301,326, ++ 299,325, 302,327, 303,212, 283,282, ++ 304,147, 305,328, 199,243, 306,147, ++ 196,248, 199,244, 199,245, 199,244, ++ 199,244, 199,244, 199,244, 199,244, ++ 199,244, 199,244, 199,244, 201,202, ++ 283,236, 298,298, 202,202, 299,325, ++ 307,329, 308,330, 309,331, 311,332, ++ 312,228, 313,333, 314,334, 285,285, ++ 201,243, 207,207, 316,335, 201,244, ++ 201,245, 201,244, 201,244, 201,244, ++ 201,244, 201,244, 201,244, 201,244, ++ 201,244, 202,202, 317,336, 197,249, ++ 319,338, 320,339, 321,202, 322,340, ++ 323,202, 324,341, 285,285, 330,344, ++ 207,207, 332,345, 202,243, 335,346, ++ 318,337, 202,244, 202,245, 202,244, ++ 202,244, 202,244, 202,244, 202,244, ++ 202,244, 202,244, 202,244, 285,317, ++ 207,256, 207,256, 207,256, 207,256, ++ 207,256, 207,256, 207,256, 207,256, ++ 207,256, 207,256, 199,202, 318,337, ++ 341,348, 343,350, 201,251, 225,271, ++ 225,271, 225,271, 225,271, 225,271, ++ 225,271, 225,271, 225,271, 225,271, ++ 225,271, 226,272, 226,272, 226,272, ++ 226,272, 226,272, 226,272, 226,272, ++ 226,272, 226,272, 226,272, 227,273, ++ 227,273, 227,273, 227,273, 227,273, ++ 227,273, 227,273, 227,273, 227,273, ++ 227,273, 236,282, 236,282, 236,282, ++ 236,282, 236,282, 236,282, 236,282, ++ 236,282, 236,282, 236,282, 239,284, ++ 239,284, 239,284, 239,284, 239,284, ++ 239,284, 239,284, 239,284, 239,284, ++ 239,284, 240,285, 349,349, 287,287, ++ 336,347, 336,347, 336,347, 336,347, ++ 0,0, 0,0, 0,0, 243,243, ++ 347,351, 347,351, 347,351, 347,351, ++ 347,351, 347,351, 347,351, 347,351, ++ 347,351, 347,351, 0,0, 0,0, ++ 240,285, 349,349, 287,287, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 243,243, 0,0, ++ 0,0, 244,287, 287,288, 0,0, ++ 240,286, 240,286, 240,286, 240,286, ++ 240,286, 240,286, 240,286, 240,286, ++ 240,286, 240,286, 243,244, 243,245, ++ 243,244, 243,244, 243,244, 243,244, ++ 243,244, 243,244, 243,244, 243,244, ++ 244,287, 0,0, 0,0, 256,298, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 244,288, 0,0, 325,325, 0,0, ++ 244,287, 244,287, 244,287, 244,287, ++ 244,287, 244,287, 244,287, 244,287, ++ 244,287, 244,287, 256,298, 0,0, ++ 0,0, 290,287, 0,0, 287,289, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 325,325, 256,299, 0,0, ++ 342,349, 0,0, 256,300, 256,300, ++ 256,300, 256,300, 256,300, 256,300, ++ 256,300, 256,300, 256,300, 256,300, ++ 290,287, 325,342, 325,343, 325,342, ++ 325,342, 325,342, 325,342, 325,342, ++ 325,342, 325,342, 325,342, 342,349, ++ 290,288, 244,289, 350,349, 0,0, ++ 0,0, 290,244, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 342,349, ++ 342,349, 342,349, 342,349, 342,349, ++ 342,349, 342,349, 342,349, 342,349, ++ 342,349, 350,349, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 350,342, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 0,0, 0,0, 0,0, ++ 0,0, 290,289, 0,0, 0,0, ++ 0,0}; ++ struct yysvf yysvec[] ={ ++ 0, 0, 0, ++ yycrank+1, 0, 0, ++ yycrank+0, yysvec+1, 0, ++ yycrank+27, 0, 0, ++ yycrank+0, yysvec+3, 0, ++ yycrank+3, 0, yyvstop+1, ++ yycrank+0, 0, yyvstop+3, ++ yycrank+47, 0, 0, ++ yycrank+141, 0, 0, ++ yycrank+3, yysvec+8, 0, ++ yycrank+37, yysvec+8, 0, ++ yycrank+2, 0, 0, ++ yycrank+3, 0, 0, ++ yycrank+4, 0, 0, ++ yycrank+5, 0, 0, ++ yycrank+2, 0, 0, ++ yycrank+4, 0, 0, ++ yycrank+7, 0, 0, ++ yycrank+54, 0, 0, ++ yycrank+4, 0, 0, ++ yycrank+8, 0, 0, ++ yycrank+12, 0, yyvstop+5, ++ yycrank+14, 0, 0, ++ yycrank+104, 0, 0, ++ yycrank+57, 0, yyvstop+7, ++ yycrank+8, 0, yyvstop+9, ++ yycrank+60, 0, yyvstop+11, ++ yycrank+0, yysvec+12, yyvstop+13, ++ yycrank+61, 0, yyvstop+15, ++ yycrank+0, yysvec+13, yyvstop+17, ++ yycrank+45, 0, yyvstop+19, ++ yycrank+64, 0, yyvstop+21, ++ yycrank+0, 0, yyvstop+23, ++ yycrank+68, 0, 0, ++ yycrank+0, 0, yyvstop+25, ++ yycrank+109, 0, yyvstop+27, ++ yycrank+66, 0, yyvstop+29, ++ yycrank+0, yysvec+17, yyvstop+31, ++ yycrank+67, 0, yyvstop+33, ++ yycrank+0, 0, yyvstop+35, ++ yycrank+0, yysvec+18, yyvstop+37, ++ yycrank+0, yysvec+19, yyvstop+39, ++ yycrank+42, 0, yyvstop+41, ++ yycrank+0, yysvec+20, yyvstop+43, ++ yycrank+100, 0, yyvstop+45, ++ yycrank+45, 0, 0, ++ yycrank+59, 0, 0, ++ yycrank+87, 0, 0, ++ yycrank+113, 0, 0, ++ yycrank+77, 0, 0, ++ yycrank+203, 0, 0, ++ yycrank+222, 0, 0, ++ yycrank+209, 0, 0, ++ yycrank+219, yysvec+8, 0, ++ yycrank+229, 0, 0, ++ yycrank+106, 0, 0, ++ yycrank+79, 0, 0, ++ yycrank+86, 0, 0, ++ yycrank+122, 0, 0, ++ yycrank+114, 0, 0, ++ yycrank+111, 0, 0, ++ yycrank+127, 0, 0, ++ yycrank+126, 0, 0, ++ yycrank+239, yysvec+8, 0, ++ yycrank+182, yysvec+50, 0, ++ yycrank+114, 0, 0, ++ yycrank+129, 0, 0, ++ yycrank+134, 0, 0, ++ yycrank+136, 0, 0, ++ yycrank+131, 0, 0, ++ yycrank+127, 0, 0, ++ yycrank+134, 0, 0, ++ yycrank+132, 0, 0, ++ yycrank+135, 0, 0, ++ yycrank+131, 0, 0, ++ yycrank+139, 0, 0, ++ yycrank+181, 0, 0, ++ yycrank+186, 0, 0, ++ yycrank+189, 0, 0, ++ yycrank+184, 0, 0, ++ yycrank+201, 0, 0, ++ yycrank+204, 0, 0, ++ yycrank+249, 0, 0, ++ yycrank+290, 0, 0, ++ yycrank+300, 0, 0, ++ yycrank+208, 0, 0, ++ yycrank+0, yysvec+25, 0, ++ yycrank+0, yysvec+26, 0, ++ yycrank+0, yysvec+28, 0, ++ yycrank+0, yysvec+30, 0, ++ yycrank+0, yysvec+31, 0, ++ yycrank+210, 0, 0, ++ yycrank+211, 0, 0, ++ yycrank+192, 0, 0, ++ yycrank+0, yysvec+38, 0, ++ yycrank+0, yysvec+42, 0, ++ yycrank+0, yysvec+44, 0, ++ yycrank+199, 0, 0, ++ yycrank+200, 0, 0, ++ yycrank+201, 0, 0, ++ yycrank+204, 0, 0, ++ yycrank+205, 0, 0, ++ yycrank+211, 0, 0, ++ yycrank+213, 0, 0, ++ yycrank+214, 0, 0, ++ yycrank+218, 0, 0, ++ yycrank+219, 0, 0, ++ yycrank+220, 0, 0, ++ yycrank+242, 0, 0, ++ yycrank+243, 0, 0, ++ yycrank+244, 0, 0, ++ yycrank+245, 0, 0, ++ yycrank+246, 0, 0, ++ yycrank+247, 0, 0, ++ yycrank+0, 0, yyvstop+47, ++ yycrank+248, 0, 0, ++ yycrank+249, 0, 0, ++ yycrank+261, 0, 0, ++ yycrank+257, 0, 0, ++ yycrank+252, 0, 0, ++ yycrank+259, 0, 0, ++ yycrank+253, 0, 0, ++ yycrank+270, 0, 0, ++ yycrank+272, 0, 0, ++ yycrank+326, 0, 0, ++ yycrank+336, 0, 0, ++ yycrank+385, 0, yyvstop+49, ++ yycrank+281, 0, 0, ++ yycrank+293, 0, 0, ++ yycrank+298, 0, 0, ++ yycrank+300, 0, 0, ++ yycrank+289, 0, 0, ++ yycrank+292, 0, 0, ++ yycrank+287, 0, 0, ++ yycrank+285, 0, 0, ++ yycrank+288, 0, 0, ++ yycrank+293, 0, 0, ++ yycrank+370, 0, 0, ++ yycrank+397, 0, 0, ++ yycrank+398, 0, 0, ++ yycrank+400, 0, 0, ++ yycrank+419, 0, 0, ++ yycrank+422, 0, yyvstop+51, ++ yycrank+293, yysvec+139, 0, ++ yycrank+435, 0, 0, ++ yycrank+310, yysvec+140, 0, ++ yycrank+436, 0, 0, ++ yycrank+437, 0, 0, ++ yycrank+312, yysvec+142, yyvstop+53, ++ yycrank+312, yysvec+140, 0, ++ yycrank+303, yysvec+147, 0, ++ yycrank+440, 0, yyvstop+55, ++ yycrank+299, yysvec+147, 0, ++ yycrank+316, yysvec+142, yyvstop+57, ++ yycrank+439, 0, yyvstop+59, ++ yycrank+443, 0, yyvstop+61, ++ yycrank+441, 0, yyvstop+63, ++ yycrank+401, 0, 0, ++ yycrank+455, 0, 0, ++ yycrank+475, 0, 0, ++ yycrank+0, 0, yyvstop+65, ++ yycrank+0, 0, yyvstop+67, ++ yycrank+0, 0, yyvstop+69, ++ yycrank+0, 0, yyvstop+71, ++ yycrank+0, 0, yyvstop+73, ++ yycrank+0, 0, yyvstop+75, ++ yycrank+0, 0, yyvstop+77, ++ yycrank+0, 0, yyvstop+79, ++ yycrank+0, 0, yyvstop+81, ++ yycrank+0, 0, yyvstop+83, ++ yycrank+0, 0, yyvstop+85, ++ yycrank+0, 0, yyvstop+87, ++ yycrank+0, 0, yyvstop+89, ++ yycrank+0, 0, yyvstop+91, ++ yycrank+0, 0, yyvstop+93, ++ yycrank+0, 0, yyvstop+95, ++ yycrank+0, 0, yyvstop+97, ++ yycrank+0, 0, yyvstop+99, ++ yycrank+0, 0, yyvstop+101, ++ yycrank+418, 0, 0, ++ yycrank+347, yysvec+179, 0, ++ yycrank+419, 0, 0, ++ yycrank+353, yysvec+179, 0, ++ yycrank+420, 0, 0, ++ yycrank+422, 0, 0, ++ yycrank+429, 0, 0, ++ yycrank+492, 0, 0, ++ yycrank+415, 0, 0, ++ yycrank+529, 0, yyvstop+103, ++ yycrank+541, 0, yyvstop+105, ++ yycrank+406, yysvec+189, yyvstop+107, ++ yycrank+514, 0, 0, ++ yycrank+356, 0, 0, ++ yycrank+365, 0, 0, ++ yycrank+543, 0, 0, ++ yycrank+578, 0, 0, ++ yycrank+607, 0, 0, ++ yycrank+633, 0, 0, ++ yycrank+359, yysvec+195, 0, ++ yycrank+661, 0, 0, ++ yycrank+376, yysvec+196, 0, ++ yycrank+687, 0, 0, ++ yycrank+713, 0, 0, ++ yycrank+377, yysvec+196, 0, ++ yycrank+368, yysvec+202, 0, ++ yycrank+364, yysvec+202, 0, ++ yycrank+481, yysvec+188, yyvstop+109, ++ yycrank+724, 0, 0, ++ yycrank+373, 0, 0, ++ yycrank+371, 0, 0, ++ yycrank+379, 0, 0, ++ yycrank+372, 0, 0, ++ yycrank+482, 0, yyvstop+112, ++ yycrank+395, 0, 0, ++ yycrank+396, 0, 0, ++ yycrank+390, 0, 0, ++ yycrank+398, 0, 0, ++ yycrank+387, 0, 0, ++ yycrank+400, 0, 0, ++ yycrank+385, 0, 0, ++ yycrank+399, 0, 0, ++ yycrank+419, 0, 0, ++ yycrank+402, 0, 0, ++ yycrank+419, 0, 0, ++ yycrank+419, 0, 0, ++ yycrank+739, 0, 0, ++ yycrank+749, 0, 0, ++ yycrank+759, 0, 0, ++ yycrank+477, 0, yyvstop+114, ++ yycrank+457, 0, 0, ++ yycrank+458, 0, 0, ++ yycrank+445, 0, 0, ++ yycrank+463, 0, 0, ++ yycrank+457, 0, 0, ++ yycrank+474, 0, 0, ++ yycrank+475, 0, 0, ++ yycrank+769, 0, 0, ++ yycrank+532, yysvec+236, 0, ++ yycrank+581, 0, yyvstop+116, ++ yycrank+779, 0, 0, ++ yycrank+828, 0, yyvstop+118, ++ yycrank+592, 0, yyvstop+120, ++ yycrank+593, 0, yyvstop+122, ++ yycrank+838, 0, 0, ++ yycrank+864, 0, yyvstop+124, ++ yycrank+546, yysvec+244, yyvstop+126, ++ yycrank+496, 0, 0, ++ yycrank+490, 0, 0, ++ yycrank+497, 0, 0, ++ yycrank+490, 0, 0, ++ yycrank+511, 0, 0, ++ yycrank+505, 0, 0, ++ yycrank+502, 0, 0, ++ yycrank+514, 0, 0, ++ yycrank+513, 0, 0, ++ yycrank+608, 0, yyvstop+128, ++ yycrank+890, 0, yyvstop+131, ++ yycrank+499, 0, 0, ++ yycrank+520, 0, 0, ++ yycrank+522, 0, 0, ++ yycrank+499, 0, 0, ++ yycrank+507, 0, 0, ++ yycrank+0, yysvec+260, 0, ++ yycrank+524, 0, 0, ++ yycrank+535, 0, 0, ++ yycrank+537, 0, 0, ++ yycrank+532, 0, 0, ++ yycrank+0, yysvec+260, 0, ++ yycrank+543, 0, 0, ++ yycrank+547, 0, 0, ++ yycrank+530, 0, 0, ++ yycrank+0, 0, yyvstop+133, ++ yycrank+0, 0, yyvstop+135, ++ yycrank+0, 0, yyvstop+137, ++ yycrank+0, 0, yyvstop+139, ++ yycrank+525, 0, 0, ++ yycrank+0, yysvec+275, 0, ++ yycrank+547, 0, 0, ++ yycrank+0, yysvec+275, 0, ++ yycrank+549, 0, 0, ++ yycrank+553, 0, 0, ++ yycrank+536, 0, 0, ++ yycrank+645, 0, yyvstop+141, ++ yycrank+671, yysvec+186, yyvstop+143, ++ yycrank+659, 0, yyvstop+145, ++ yycrank+722, 0, yyvstop+147, ++ yycrank+660, 0, yyvstop+149, ++ yycrank+830, 0, yyvstop+151, ++ yycrank+662, 0, yyvstop+153, ++ yycrank+550, 0, 0, ++ yycrank+916, yysvec+243, yyvstop+155, ++ yycrank+551, 0, 0, ++ yycrank+574, 0, 0, ++ yycrank+576, 0, 0, ++ yycrank+560, 0, 0, ++ yycrank+577, 0, 0, ++ yycrank+575, 0, 0, ++ yycrank+570, 0, 0, ++ yycrank+689, 0, yyvstop+157, ++ yycrank+691, 0, 0, ++ yycrank+653, yysvec+298, yyvstop+159, ++ yycrank+598, 0, 0, ++ yycrank+587, 0, 0, ++ yycrank+658, yysvec+212, yyvstop+161, ++ yycrank+583, 0, 0, ++ yycrank+604, 0, 0, ++ yycrank+593, 0, 0, ++ yycrank+627, 0, 0, ++ yycrank+627, 0, 0, ++ yycrank+629, 0, 0, ++ yycrank+0, yysvec+260, 0, ++ yycrank+627, 0, 0, ++ yycrank+687, 0, 0, ++ yycrank+632, 0, 0, ++ yycrank+633, 0, 0, ++ yycrank+0, yysvec+275, 0, ++ yycrank+634, 0, 0, ++ yycrank+689, 0, 0, ++ yycrank+751, 0, 0, ++ yycrank+647, 0, 0, ++ yycrank+635, 0, 0, ++ yycrank+629, 0, 0, ++ yycrank+650, 0, 0, ++ yycrank+638, 0, 0, ++ yycrank+655, 0, 0, ++ yycrank+901, 0, 0, ++ yycrank+0, yysvec+306, 0, ++ yycrank+0, yysvec+304, 0, ++ yycrank+0, yysvec+306, 0, ++ yycrank+0, yysvec+260, 0, ++ yycrank+654, 0, 0, ++ yycrank+0, yysvec+260, 0, ++ yycrank+660, 0, 0, ++ yycrank+0, yysvec+275, 0, ++ yycrank+0, yysvec+275, 0, ++ yycrank+662, 0, 0, ++ yycrank+786, 0, 0, ++ yycrank+0, yysvec+318, yyvstop+163, ++ yycrank+0, yysvec+323, 0, ++ yycrank+0, yysvec+321, 0, ++ yycrank+0, yysvec+323, 0, ++ yycrank+683, 0, 0, ++ yycrank+927, 0, yyvstop+165, ++ yycrank+728, yysvec+342, yyvstop+167, ++ yycrank+0, yysvec+306, 0, ++ yycrank+0, yysvec+260, 0, ++ yycrank+0, yysvec+275, 0, ++ yycrank+800, 0, 0, ++ yycrank+0, yysvec+323, 0, ++ yycrank+829, 0, yyvstop+169, ++ yycrank+953, yysvec+325, yyvstop+171, ++ yycrank+0, 0, yyvstop+173, ++ 0, 0, 0}; ++ struct yywork *yytop = yycrank+1013; ++ struct yysvf *yybgin = yysvec+1; ++ char yymatch[] ={ ++ 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ '0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' , ++ '6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' , ++ 'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' , ++ 'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' , ++ 'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ++ 0}; ++ char yyextra[] ={ ++ 0,0,0,0,0,0,0,0, ++ 0,0,0,0,0,0,0,0, ++ 0,0,0,0,0,0,0,0, ++ 0,0,0,0,0,0,0,0, ++ 0,0,0,0,0,0,0,0, ++ 0,0,0,0,0,0,0,0, ++ 0}; ++ /* ncform 4.1 83/08/11 */ ++ +diff -c mh/zotnet/tws/dtimep.lex:1.1.1.1 mh/zotnet/tws/dtimep.lex:1.2 +*** mh/zotnet/tws/dtimep.lex:1.1.1.1 Tue Feb 9 07:44:02 1993 +--- mh/zotnet/tws/dtimep.lex Tue Feb 9 07:44:02 1993 +*************** +*** 34,53 **** + d [0-9] + %{ + #ifndef lint +! static char ident[] = "@(#)$Id: dtimep.lex,v 2.14 1992/12/15 00:20:22 jromine Exp $"; + #endif + #include "tws.h" + #include "../h/strings.h" + #include + #include +! #ifndef SYS5 + #include +! #endif /* not SYS5 */ + + #ifdef SYS5 +- extern int daylight; + extern long timezone; +- extern char *tzname[]; + #endif /* SYS5 */ + + /* +--- 34,51 ---- + d [0-9] + %{ + #ifndef lint +! static char ident[] = "@(#)$Id: dtimep.lex,v 1.1.1.1 1993/01/30 04:41:48 jtc Exp $"; + #endif + #include "tws.h" + #include "../h/strings.h" + #include + #include +! #if !defined(SYS5) && !defined(ZONEINFO) + #include +! #endif /* !defined(SYS5) && !defined(ZONEINFO) */ + + #ifdef SYS5 + extern long timezone; + #endif /* SYS5 */ + + /* +*************** +*** 168,175 **** + register char *cp; + register int gotdate = 0; + #ifndef SYS5 + struct timeb tb; +! #endif /* not SYS5 */ + long tclock; + + start_cond = 0; +--- 166,178 ---- + register char *cp; + register int gotdate = 0; + #ifndef SYS5 ++ #ifdef ZONEINFO ++ struct tm *tm; ++ time_t clock; ++ #else + struct timeb tb; +! #endif /* ZONEINFO */ +! #endif /* not SYS5 */ + long tclock; + + start_cond = 0; +*************** +*** 178,190 **** + bzero( (char *) &tw, sizeof tw); + + /* Set default time zone. */ +! #ifndef SYS5 +! ftime( &tb ); +! tw.tw_zone = -tb.timezone; +! #else /* SYS5 */ + tzset( ); + tw.tw_zone = -(timezone / 60); +! #endif /* SYS5 */ + + while (isspace(*str)) + str++; +--- 181,202 ---- + bzero( (char *) &tw, sizeof tw); + + /* Set default time zone. */ +! #ifdef SYS5 + tzset( ); + tw.tw_zone = -(timezone / 60); +! #else +! #ifdef ZONEINFO +! time (&clock); +! tm = localtime(&clock); +! tw.tw_zone = tm->tm_gmtoff / 60; +! if (tm -> tm_isdst) /* if DST is in effect */ +! tw.tw_zone -= 60; /* reset to normal offset */ +! #else +! ftime( &tb ); +! tw.tw_zone = -tb.timezone; +! #endif /* ZONEINFO */ +! #endif /* SYS5 */ +! + + while (isspace(*str)) + str++; + +------- =_aaaaaaaaaa0-- + + + diff --git a/docs/historical/mh-6.8.5/make.out b/docs/historical/mh-6.8.5/make.out new file mode 100644 index 0000000..3da1c28 --- /dev/null +++ b/docs/historical/mh-6.8.5/make.out @@ -0,0 +1,798 @@ +for d in config sbr mts zotnet uip support doc; do (cd $d; make DESTDIR= -k -k all); done +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c config.c +MH 6.8.4 #1[UCI] +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c version.c ++ mkdir shared +rm -f add.o shared/add.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic add.c +mv add.o shared/add.o +rm -f add.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c add.c +ld -x -r add.o +mv a.out add.o +rm -f adios.o shared/adios.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic adios.c +mv adios.o shared/adios.o +rm -f adios.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c adios.c +ld -x -r adios.o +mv a.out adios.o +rm -f admonish.o shared/admonish.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic admonish.c +mv admonish.o shared/admonish.o +rm -f admonish.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c admonish.c +ld -x -r admonish.o +mv a.out admonish.o +rm -f addrsbr.o shared/addrsbr.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic addrsbr.c +mv addrsbr.o shared/addrsbr.o +rm -f addrsbr.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c addrsbr.c +ld -x -r addrsbr.o +mv a.out addrsbr.o +rm -f advertise.o shared/advertise.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic advertise.c +mv advertise.o shared/advertise.o +rm -f advertise.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c advertise.c +ld -x -r advertise.o +mv a.out advertise.o +rm -f advise.o shared/advise.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic advise.c +mv advise.o shared/advise.o +rm -f advise.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c advise.c +ld -x -r advise.o +mv a.out advise.o +rm -f ambigsw.o shared/ambigsw.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic ambigsw.c +mv ambigsw.o shared/ambigsw.o +rm -f ambigsw.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c ambigsw.c +ld -x -r ambigsw.o +mv a.out ambigsw.o +rm -f atooi.o shared/atooi.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic atooi.c +mv atooi.o shared/atooi.o +rm -f atooi.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c atooi.c +ld -x -r atooi.o +mv a.out atooi.o +rm -f brkstring.o shared/brkstring.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic brkstring.c +mv brkstring.o shared/brkstring.o +rm -f brkstring.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c brkstring.c +ld -x -r brkstring.o +mv a.out brkstring.o +rm -f closefds.o shared/closefds.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic closefds.c +mv closefds.o shared/closefds.o +rm -f closefds.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c closefds.c +ld -x -r closefds.o +mv a.out closefds.o +rm -f concat.o shared/concat.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic concat.c +mv concat.o shared/concat.o +rm -f concat.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c concat.c +ld -x -r concat.o +mv a.out concat.o +rm -f copy.o shared/copy.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic copy.c +mv copy.o shared/copy.o +rm -f copy.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c copy.c +ld -x -r copy.o +mv a.out copy.o +rm -f copyip.o shared/copyip.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic copyip.c +mv copyip.o shared/copyip.o +rm -f copyip.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c copyip.c +ld -x -r copyip.o +mv a.out copyip.o +rm -f cpydata.o shared/cpydata.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic cpydata.c +mv cpydata.o shared/cpydata.o +rm -f cpydata.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c cpydata.c +ld -x -r cpydata.o +mv a.out cpydata.o +rm -f cpydgst.o shared/cpydgst.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic cpydgst.c +mv cpydgst.o shared/cpydgst.o +rm -f cpydgst.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c cpydgst.c +ld -x -r cpydgst.o +mv a.out cpydgst.o +rm -f discard.o shared/discard.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic discard.c +mv discard.o shared/discard.o +rm -f discard.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c discard.c +ld -x -r discard.o +mv a.out discard.o +rm -f done.o shared/done.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic done.c +mv done.o shared/done.o +rm -f done.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c done.c +ld -x -r done.o +mv a.out done.o +rm -f fdcompare.o shared/fdcompare.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic fdcompare.c +mv fdcompare.o shared/fdcompare.o +rm -f fdcompare.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c fdcompare.c +ld -x -r fdcompare.o +mv a.out fdcompare.o +rm -f gans.o shared/gans.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic gans.c +mv gans.o shared/gans.o +rm -f gans.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c gans.c +ld -x -r gans.o +mv a.out gans.o +rm -f getans.o shared/getans.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic getans.c +mv getans.o shared/getans.o +rm -f getans.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c getans.c +ld -x -r getans.o +mv a.out getans.o +rm -f getanswer.o shared/getanswer.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic getanswer.c +mv getanswer.o shared/getanswer.o +rm -f getanswer.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c getanswer.c +ld -x -r getanswer.o +mv a.out getanswer.o +rm -f getcpy.o shared/getcpy.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic getcpy.c +mv getcpy.o shared/getcpy.o +rm -f getcpy.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c getcpy.c +ld -x -r getcpy.o +mv a.out getcpy.o +rm -f help.o shared/help.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic help.c +mv help.o shared/help.o +rm -f help.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c help.c +ld -x -r help.o +mv a.out help.o +rm -f fmtcompile.o shared/fmtcompile.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic fmtcompile.c +mv fmtcompile.o shared/fmtcompile.o +rm -f fmtcompile.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c fmtcompile.c +ld -x -r fmtcompile.o +mv a.out fmtcompile.o +rm -f formataddr.o shared/formataddr.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic formataddr.c +mv formataddr.o shared/formataddr.o +rm -f formataddr.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c formataddr.c +ld -x -r formataddr.o +mv a.out formataddr.o +rm -f formatsbr.o shared/formatsbr.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic formatsbr.c +mv formatsbr.o shared/formatsbr.o +rm -f formatsbr.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c formatsbr.c +ld -x -r formatsbr.o +mv a.out formatsbr.o +rm -f m_atoi.o shared/m_atoi.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_atoi.c +mv m_atoi.o shared/m_atoi.o +rm -f m_atoi.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_atoi.c +ld -x -r m_atoi.o +mv a.out m_atoi.o +rm -f m_backup.o shared/m_backup.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_backup.c +mv m_backup.o shared/m_backup.o +rm -f m_backup.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_backup.c +ld -x -r m_backup.o +mv a.out m_backup.o +rm -f m_convert.o shared/m_convert.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_convert.c +mv m_convert.o shared/m_convert.o +rm -f m_convert.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_convert.c +ld -x -r m_convert.o +mv a.out m_convert.o +rm -f m_delete.o shared/m_delete.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_delete.c +mv m_delete.o shared/m_delete.o +rm -f m_delete.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_delete.c +ld -x -r m_delete.o +mv a.out m_delete.o +rm -f m_draft.o shared/m_draft.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_draft.c +mv m_draft.o shared/m_draft.o +rm -f m_draft.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_draft.c +ld -x -r m_draft.o +mv a.out m_draft.o +rm -f m_find.o shared/m_find.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_find.c +mv m_find.o shared/m_find.o +rm -f m_find.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_find.c +ld -x -r m_find.o +mv a.out m_find.o +rm -f m_fmsg.o shared/m_fmsg.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_fmsg.c +mv m_fmsg.o shared/m_fmsg.o +rm -f m_fmsg.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_fmsg.c +ld -x -r m_fmsg.o +mv a.out m_fmsg.o +rm -f m_foil.o shared/m_foil.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_foil.c +mv m_foil.o shared/m_foil.o +rm -f m_foil.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_foil.c +ld -x -r m_foil.o +mv a.out m_foil.o +rm -f m_getdefs.o shared/m_getdefs.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_getdefs.c +mv m_getdefs.o shared/m_getdefs.o +rm -f m_getdefs.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_getdefs.c +ld -x -r m_getdefs.o +mv a.out m_getdefs.o +rm -f m_getfld.o shared/m_getfld.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_getfld.c +mv m_getfld.o shared/m_getfld.o +rm -f m_getfld.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_getfld.c +ld -x -r m_getfld.o +mv a.out m_getfld.o +rm -f m_getfolder.o shared/m_getfolder.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_getfolder.c +mv m_getfolder.o shared/m_getfolder.o +rm -f m_getfolder.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_getfolder.c +ld -x -r m_getfolder.o +mv a.out m_getfolder.o +rm -f m_gmprot.o shared/m_gmprot.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_gmprot.c +mv m_gmprot.o shared/m_gmprot.o +rm -f m_gmprot.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_gmprot.c +ld -x -r m_gmprot.o +mv a.out m_gmprot.o +rm -f m_gmsg.o shared/m_gmsg.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_gmsg.c +mv m_gmsg.o shared/m_gmsg.o +rm -f m_gmsg.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_gmsg.c +ld -x -r m_gmsg.o +mv a.out m_gmsg.o +rm -f m_maildir.o shared/m_maildir.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_maildir.c +mv m_maildir.o shared/m_maildir.o +rm -f m_maildir.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_maildir.c +ld -x -r m_maildir.o +mv a.out m_maildir.o +rm -f m_name.o shared/m_name.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_name.c +mv m_name.o shared/m_name.o +rm -f m_name.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_name.c +ld -x -r m_name.o +mv a.out m_name.o +rm -f m_readefs.o shared/m_readefs.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_readefs.c +mv m_readefs.o shared/m_readefs.o +rm -f m_readefs.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_readefs.c +ld -x -r m_readefs.o +mv a.out m_readefs.o +rm -f m_remsg.o shared/m_remsg.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_remsg.c +mv m_remsg.o shared/m_remsg.o +rm -f m_remsg.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_remsg.c +ld -x -r m_remsg.o +mv a.out m_remsg.o +rm -f m_replace.o shared/m_replace.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_replace.c +mv m_replace.o shared/m_replace.o +rm -f m_replace.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_replace.c +ld -x -r m_replace.o +mv a.out m_replace.o +rm -f m_scratch.o shared/m_scratch.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_scratch.c +mv m_scratch.o shared/m_scratch.o +rm -f m_scratch.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_scratch.c +ld -x -r m_scratch.o +mv a.out m_scratch.o +rm -f m_seq.o shared/m_seq.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_seq.c +mv m_seq.o shared/m_seq.o +rm -f m_seq.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_seq.c +ld -x -r m_seq.o +mv a.out m_seq.o +rm -f m_seqbits.o shared/m_seqbits.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_seqbits.c +mv m_seqbits.o shared/m_seqbits.o +rm -f m_seqbits.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_seqbits.c +ld -x -r m_seqbits.o +mv a.out m_seqbits.o +rm -f m_seqflag.o shared/m_seqflag.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_seqflag.c +mv m_seqflag.o shared/m_seqflag.o +rm -f m_seqflag.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_seqflag.c +ld -x -r m_seqflag.o +mv a.out m_seqflag.o +rm -f m_seqnew.o shared/m_seqnew.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_seqnew.c +mv m_seqnew.o shared/m_seqnew.o +rm -f m_seqnew.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_seqnew.c +ld -x -r m_seqnew.o +mv a.out m_seqnew.o +rm -f m_setcur.o shared/m_setcur.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_setcur.c +mv m_setcur.o shared/m_setcur.o +rm -f m_setcur.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_setcur.c +ld -x -r m_setcur.o +mv a.out m_setcur.o +rm -f m_setseq.o shared/m_setseq.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_setseq.c +mv m_setseq.o shared/m_setseq.o +rm -f m_setseq.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_setseq.c +ld -x -r m_setseq.o +mv a.out m_setseq.o +rm -f m_setvis.o shared/m_setvis.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_setvis.c +mv m_setvis.o shared/m_setvis.o +rm -f m_setvis.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_setvis.c +ld -x -r m_setvis.o +mv a.out m_setvis.o +rm -f m_sync.o shared/m_sync.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_sync.c +mv m_sync.o shared/m_sync.o +rm -f m_sync.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_sync.c +ld -x -r m_sync.o +mv a.out m_sync.o +rm -f m_tmpfil.o shared/m_tmpfil.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_tmpfil.c +mv m_tmpfil.o shared/m_tmpfil.o +rm -f m_tmpfil.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_tmpfil.c +ld -x -r m_tmpfil.o +mv a.out m_tmpfil.o +rm -f m_update.o shared/m_update.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_update.c +mv m_update.o shared/m_update.o +rm -f m_update.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_update.c +ld -x -r m_update.o +mv a.out m_update.o +rm -f makedir.o shared/makedir.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic makedir.c +mv makedir.o shared/makedir.o +rm -f makedir.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c makedir.c +ld -x -r makedir.o +mv a.out makedir.o +rm -f path.o shared/path.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic path.c +mv path.o shared/path.o +rm -f path.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c path.c +ld -x -r path.o +mv a.out path.o +rm -f peekc.o shared/peekc.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic peekc.c +mv peekc.o shared/peekc.o +rm -f peekc.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c peekc.c +ld -x -r peekc.o +mv a.out peekc.o +rm -f pidwait.o shared/pidwait.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic pidwait.c +mv pidwait.o shared/pidwait.o +rm -f pidwait.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c pidwait.c +ld -x -r pidwait.o +mv a.out pidwait.o +rm -f pidstatus.o shared/pidstatus.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic pidstatus.c +mv pidstatus.o shared/pidstatus.o +rm -f pidstatus.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c pidstatus.c +ld -x -r pidstatus.o +mv a.out pidstatus.o +rm -f printsw.o shared/printsw.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic printsw.c +mv printsw.o shared/printsw.o +rm -f printsw.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c printsw.c +ld -x -r printsw.o +mv a.out printsw.o +rm -f push.o shared/push.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic push.c +mv push.o shared/push.o +rm -f push.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c push.c +ld -x -r push.o +mv a.out push.o +rm -f putenv.o shared/putenv.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic putenv.c +mv putenv.o shared/putenv.o +rm -f putenv.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c putenv.c +ld -x -r putenv.o +mv a.out putenv.o +rm -f pwd.o shared/pwd.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic pwd.c +mv pwd.o shared/pwd.o +rm -f pwd.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c pwd.c +ld -x -r pwd.o +mv a.out pwd.o +rm -f refile.o shared/refile.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic refile.c +mv refile.o shared/refile.o +rm -f refile.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c refile.c +ld -x -r refile.o +mv a.out refile.o +rm -f remdir.o shared/remdir.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic remdir.c +mv remdir.o shared/remdir.o +rm -f remdir.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c remdir.c +ld -x -r remdir.o +mv a.out remdir.o +rm -f r1bindex.o shared/r1bindex.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic r1bindex.c +mv r1bindex.o shared/r1bindex.o +rm -f r1bindex.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c r1bindex.c +ld -x -r r1bindex.o +mv a.out r1bindex.o +rm -f showfile.o shared/showfile.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic showfile.c +mv showfile.o shared/showfile.o +rm -f showfile.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c showfile.c +ld -x -r showfile.o +mv a.out showfile.o +rm -f smatch.o shared/smatch.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic smatch.c +mv smatch.o shared/smatch.o +rm -f smatch.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c smatch.c +ld -x -r smatch.o +mv a.out smatch.o +rm -f sprintb.o shared/sprintb.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic sprintb.c +mv sprintb.o shared/sprintb.o +rm -f sprintb.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c sprintb.c +ld -x -r sprintb.o +mv a.out sprintb.o +rm -f ssequal.o shared/ssequal.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic ssequal.c +mv ssequal.o shared/ssequal.o +rm -f ssequal.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c ssequal.c +ld -x -r ssequal.o +mv a.out ssequal.o +rm -f strindex.o shared/strindex.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic strindex.c +mv strindex.o shared/strindex.o +rm -f strindex.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c strindex.c +ld -x -r strindex.o +mv a.out strindex.o +rm -f trimcpy.o shared/trimcpy.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic trimcpy.c +mv trimcpy.o shared/trimcpy.o +rm -f trimcpy.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c trimcpy.c +ld -x -r trimcpy.o +mv a.out trimcpy.o +rm -f uleq.o shared/uleq.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic uleq.c +mv uleq.o shared/uleq.o +rm -f uleq.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c uleq.c +ld -x -r uleq.o +mv a.out uleq.o +rm -f uprf.o shared/uprf.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic uprf.c +mv uprf.o shared/uprf.o +rm -f uprf.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c uprf.c +ld -x -r uprf.o +mv a.out uprf.o +rm -f vfgets.o shared/vfgets.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic vfgets.c +mv vfgets.o shared/vfgets.o +rm -f vfgets.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c vfgets.c +ld -x -r vfgets.o +mv a.out vfgets.o +rm -f formatdef.o shared/formatdef.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic formatdef.c +mv formatdef.o shared/formatdef.o +rm -f formatdef.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c formatdef.c +ld -x -r formatdef.o +mv a.out formatdef.o +rm -f m_msgdef.o shared/m_msgdef.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c -pic m_msgdef.c +mv m_msgdef.o shared/m_msgdef.o +rm -f m_msgdef.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -c m_msgdef.c +ld -x -r m_msgdef.o +mv a.out m_msgdef.o +mv libmh.a zlibmh.a +mv: libmh.a: Cannot access: No such file or directory +*** Error code 1 (ignored) +ar r libmh.a add.o adios.o admonish.o addrsbr.o advertise.o advise.o ambigsw.o atooi.o brkstring.o closefds.o concat.o copy.o copyip.o cpydata.o cpydgst.o discard.o done.o fdcompare.o gans.o getans.o getanswer.o getcpy.o help.o fmtcompile.o formataddr.o formatsbr.o m_atoi.o m_backup.o m_convert.o m_delete.o m_draft.o m_find.o m_fmsg.o m_foil.o m_getdefs.o m_getfld.o m_getfolder.o m_gmprot.o m_gmsg.o m_maildir.o m_name.o m_readefs.o m_remsg.o m_replace.o m_scratch.o m_seq.o m_seqbits.o m_seqflag.o m_seqnew.o m_setcur.o m_setseq.o m_setvis.o m_sync.o m_tmpfil.o m_update.o makedir.o path.o peekc.o pidwait.o pidstatus.o printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o; ranlib libmh.a +ar: creating libmh.a +-rw-rw-r-- 1 mh 120560 Feb 9 15:25 libmh.a +MH library built normally +mv -f libmh.so zlibmh.so +mv: libmh.so: Cannot access: No such file or directory +*** Error code 1 (ignored) +(cd shared; ld -o ../libmh.so -assert pure-text add.o adios.o admonish.o addrsbr.o advertise.o advise.o ambigsw.o atooi.o brkstring.o closefds.o concat.o copy.o copyip.o cpydata.o cpydgst.o discard.o done.o fdcompare.o gans.o getans.o getanswer.o getcpy.o help.o fmtcompile.o formataddr.o formatsbr.o m_atoi.o m_backup.o m_convert.o m_delete.o m_draft.o m_find.o m_fmsg.o m_foil.o m_getdefs.o m_getfld.o m_getfolder.o m_gmprot.o m_gmsg.o m_maildir.o m_name.o m_readefs.o m_remsg.o m_replace.o m_scratch.o m_seq.o m_seqbits.o m_seqflag.o m_seqnew.o m_setcur.o m_setseq.o m_setvis.o m_sync.o m_tmpfil.o m_update.o makedir.o path.o peekc.o pidwait.o pidstatus.o printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o) +ln libmh.so libmh.so.3.2 +-rwxrwxr-x 2 mh 90112 Feb 9 15:25 libmh.so +-rwxrwxr-x 2 mh 90112 Feb 9 15:25 libmh.so.3.2 +MH shared library built normally +mv libmh.sa zlibmh.sa +mv: libmh.sa: Cannot access: No such file or directory +*** Error code 1 (ignored) +ar r libmh.sa formatdef.o m_msgdef.o; ranlib libmh.sa +ar: creating libmh.sa +ln libmh.sa libmh.sa.3.2 +-rw-rw-r-- 2 mh 600 Feb 9 15:25 libmh.sa +-rw-rw-r-- 2 mh 600 Feb 9 15:25 libmh.sa.3.2 +MH data interface description built normally +for d in sendmail; do (cd $d; make DESTDIR= -k all); done +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -c hosts.c +ld -x -r hosts.o +mv a.out hosts.o +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -c smail.c +ld -x -r smail.o +mv a.out smail.o +mv sendmts.a zsendmts.a +mv: sendmts.a: Cannot access: No such file or directory +*** Error code 1 (ignored) +ar r sendmts.a hosts.o smail.o; ranlib sendmts.a +ar: creating sendmts.a +rm -f ../libmts.a +cd ..; ln sendmail/sendmts.a libmts.a +rm -f ../llib-lmts +cd .. ; ln sendmail/llib-lsendmail llib-lmts +-rw-rw-r-- 2 mh 15192 Feb 9 15:25 sendmts.a +SendMail/SMTP-MTS library built normally +for d in mts bboards tws mf; do (cd $d; make DESTDIR= -k all); done +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c mts.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c lock.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c client.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c getbbent.c +lex -nt dtimep.lex | sed -f lexedit.sed > dtimep.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c dtimep.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -c -DONECASE lexstring.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c dtime.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c date.c +/bin/cc -s -L/opt/mh-6.8.4/lib -o date date.o dtime.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c mf.c +mv libzot.a zlibzot.a +mv: libzot.a: Cannot access: No such file or directory +*** Error code 1 (ignored) +ar r libzot.a mts/mts.o mts/lock.o mts/client.o mf/mf.o bboards/getbbent.o tws/dtime.o tws/dtimep.o tws/lexstring.o; ranlib libzot.a +ar: creating libzot.a +-rw-rw-r-- 1 mh 94030 Feb 9 15:25 libzot.a +ZOTnet library built normally +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c ali.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c aliasbr.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xali ali.o aliasbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c anno.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c annosbr.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xanno anno.o annosbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c burst.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xburst burst.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c comp.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c whatnowproc.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c whatnowsbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c sendsbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c distsbr.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xcomp comp.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c dist.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xdist dist.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c folder.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xfolder folder.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c forw.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xforw forw.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c inc.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c scansbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c dropsbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c trmsbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c popsbr.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xinc inc.o scansbr.o dropsbr.o \ + trmsbr.o popsbr.o \ + ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mark.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmark mark.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mhmail.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmhmail mhmail.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mhn.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c ftpsbr.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmhn mhn.o ftpsbr.o trmsbr.o \ + ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mhpath.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmhpath mhpath.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c msgchk.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmsgchk msgchk.o popsbr.o \ + ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c msh.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mshcmds.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c vmhsbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c picksbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mhlsbr.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -DPSHSBR -c pshsbr.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmsh msh.o mshcmds.o vmhsbr.o \ + picksbr.o scansbr.o dropsbr.o mhlsbr.o trmsbr.o \ + pshsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c show.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xshow show.o \ + mhlsbr.o trmsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c packf.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xpackf packf.o dropsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c pick.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xpick pick.o picksbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c prompter.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xprompter prompter.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c refile.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrefile refile.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c repl.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c replsbr.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrepl repl.o replsbr.o whatnowproc.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c rmf.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrmf rmf.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c rmm.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrmm rmm.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c scan.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xscan scan.o \ + scansbr.o trmsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c send.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xsend send.o \ + sendsbr.o annosbr.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c sortm.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xsortm sortm.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c vmh.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xvmh vmh.o vmhsbr.o -lcurses -ltermcap ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c whatnow.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xwhatnow whatnow.o \ + whatnowsbr.o sendsbr.o annosbr.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c whom.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xwhom whom.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c bbc.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xbbc bbc.o pshsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c bbl.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xbbl bbl.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c ap.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xap ap.o trmsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c conflict.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xconflict conflict.o aliasbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c dp.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xdp dp.o trmsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c install-mh.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xinstall-mh install-mh.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mhl.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmhl mhl.o \ + mhlsbr.o trmsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c post.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xpost post.o \ + aliasbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c rcvdist.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrcvdist rcvdist.o distsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c rcvpack.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrcvpack rcvpack.o dropsbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c rcvstore.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrcvstore rcvstore.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c rcvtty.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xrcvtty rcvtty.o scansbr.o trmsbr.o \ + ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c fmtdump.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xfmtdump fmtdump.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c mhparam.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xmhparam mhparam.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm -lcurses -ltermcap +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c sendmail.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xsendmail sendmail.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -target sun4 -c spost.c +LD_LIBRARY_PATH=../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xspost spost.o aliasbr.o ../config/config.o -Bdynamic -lmh.3.2 ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -ldbm +for d in bboards general pop; do (cd $d; make DESTDIR= -k all); done +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c popd.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c popser.c +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c syslog.c +LD_LIBRARY_PATH=../../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xpopd popd.o popser.o syslog.o \ + ../../uip/dropsbr.o \ + ../../config/config.o ../../config/version.o -Bdynamic -lmh.3.2 ../../zotnet/libzot.a ../../mts/libmts.a -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c popaka.c +LD_LIBRARY_PATH=../../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xpopaka popaka.o ../../zotnet/libzot.a ../../mts/libmts.a -ldbm +/bin/cc -DBIND -DBSD42 -DBSD43 -DMHE -DMHRC -DRPATHS -DWHATNOW -DMIME -DUCI -DPOP2 -DRPOP -DNEWSAUTH -DDBMPWD -DNFS -DSUN40 -DATTVIBUG -DSENDMTS -DMMDFII -DSMTP -DPOP -DBPOP -DNNTP -DTYPESIG=void -O -I.. -target sun4 -c popwrd.c +LD_LIBRARY_PATH=../../sbr /bin/cc -s -L/opt/mh-6.8.4/lib -o xpopwrd popwrd.o ../../zotnet/libzot.a ../../mts/libmts.a -ldbm +cat tmac.me ali.me | sed -f me2man.sed > ali.man +cat tmac.me anno.me | sed -f me2man.sed > anno.man +cat tmac.me burst.me | sed -f me2man.sed > burst.man +cat tmac.me comp.me | sed -f me2man.sed > comp.man +cat tmac.me dist.me | sed -f me2man.sed > dist.man +cat tmac.me folder.me | sed -f me2man.sed > folder.man +cat tmac.me forw.me | sed -f me2man.sed > forw.man +cat tmac.me inc.me | sed -f me2man.sed > inc.man +cat tmac.me mark.me | sed -f me2man.sed > mark.man +cat tmac.me mh-chart.me | sed -f me2man.sed > mh-chart.man +cat tmac.me mh.me | sed -f me2man.sed > mh.man +cat tmac.me mhl.me | sed -f me2man.sed > mhl.man +cat tmac.me mhook.me | sed -f me2man.sed > mhook.man +cat tmac.me mhmail.me | sed -f me2man.sed > mhmail.man +cat tmac.me mhn.me | sed -f me2man.sed > mhn.man +cat tmac.me mhparam.me | sed -f me2man.sed > mhparam.man +cat tmac.me mhpath.me | sed -f me2man.sed > mhpath.man +cat tmac.me msgchk.me | sed -f me2man.sed > msgchk.man +cat tmac.me msh.me | sed -f me2man.sed > msh.man +cat tmac.me next.me | sed -f me2man.sed > next.man +cat tmac.me packf.me | sed -f me2man.sed > packf.man +cat tmac.me pick.me | sed -f me2man.sed > pick.man +cat tmac.me prev.me | sed -f me2man.sed > prev.man +cat tmac.me prompter.me | sed -f me2man.sed > prompter.man +cat tmac.me rcvstore.me | sed -f me2man.sed > rcvstore.man +cat tmac.me refile.me | sed -f me2man.sed > refile.man +cat tmac.me repl.me | sed -f me2man.sed > repl.man +cat tmac.me rmf.me | sed -f me2man.sed > rmf.man +cat tmac.me rmm.me | sed -f me2man.sed > rmm.man +cat tmac.me scan.me | sed -f me2man.sed > scan.man +cat tmac.me send.me | sed -f me2man.sed > send.man +cat tmac.me show.me | sed -f me2man.sed > show.man +cat tmac.me slocal.me | sed -f me2man.sed > slocal.man +cat tmac.me sortm.me | sed -f me2man.sed > sortm.man +cat tmac.me vmh.me | sed -f me2man.sed > vmh.man +cat tmac.me whatnow.me | sed -f me2man.sed > whatnow.man +cat tmac.me whom.me | sed -f me2man.sed > whom.man +cat tmac.me bbc.me | sed -f me2man.sed > bbc.man +cat tmac.me bbl.me | sed -f me2man.sed > bbl.man +cat tmac.me bbleader.me | sed -f me2man.sed > bbleader.man +cat tmac.me bboards.me | sed -f me2man.sed > bboards.man +cat tmac.me mh-alias.me | sed -f me2man.sed > mh-alias.man +cat tmac.me mh-format.me | sed -f me2man.sed > mh-format.man +cat tmac.me mh-mail.me | sed -f me2man.sed > mh-mail.man +cat tmac.me mh-profile.me | sed -f me2man.sed > mh-profile.man +cat tmac.me mh-sequence.me | sed -f me2man.sed > mh-sequence.man +cat tmac.me mh-tailor.me | sed -f me2man.sed > mh-tailor.man +cat tmac.me ap.me | sed -f me2man.sed > ap.man +cat tmac.me conflict.me | sed -f me2man.sed > conflict.man +cat tmac.me dp.me | sed -f me2man.sed > dp.man +cat tmac.me install-mh.me | sed -f me2man.sed > install-mh.man +cat tmac.me post.me | sed -f me2man.sed > post.man +cat tmac.me fmtdump.me | sed -f me2man.sed > fmtdump.man diff --git a/docs/historical/mh-6.8.5/miscellany/RCS/README,v b/docs/historical/mh-6.8.5/miscellany/RCS/README,v new file mode 100644 index 0000000..9a5d499 --- /dev/null +++ b/docs/historical/mh-6.8.5/miscellany/RCS/README,v @@ -0,0 +1,213 @@ +head 1.9; +access; +symbols; +locks; strict; +comment @# @; + + +1.9 +date 95.12.11.18.09.27; author jromine; state Exp; +branches; +next 1.8; + +1.8 +date 92.11.20.17.05.30; author jromine; state Exp; +branches; +next 1.7; + +1.7 +date 92.11.06.03.44.09; author jromine; state Exp; +branches; +next 1.6; + +1.6 +date 92.10.21.02.03.57; author jromine; state Exp; +branches; +next 1.5; + +1.5 +date 92.10.21.02.03.11; author jromine; state Exp; +branches; +next 1.4; + +1.4 +date 92.05.12.22.13.16; author jromine; state Exp; +branches; +next 1.3; + +1.3 +date 90.04.06.11.24.12; author sources; state Exp; +branches; +next 1.2; + +1.2 +date 90.04.06.10.27.17; author sources; state Exp; +branches; +next 1.1; + +1.1 +date 90.04.06.10.26.59; author sources; state Exp; +branches; +next ; + + +desc +@@ + + +1.9 +log +@update mh-e +@ +text +@$Id: README,v 1.8 1992/11/20 17:05:30 jromine Exp jromine $ + +The "miscellany/" directory contains some useful things for MH +users and installers. + +These three tools are probably out of date, but should be of help. + +compress-4.0 MH Patches are sent out compressed. +less-177 "less is more" - a more/pg-like pager (ver. 177) +patch-2.0.12u8 The famous patch program. MH updates are sent as patches. + +Other interesting stuff: + +audit A perl package to parse and process messages +convert Utilities for converting to/from other mailbox formats. +libndir The new directory routines for sites that don't have them. +mem A reminder system using an appointment folder. +mh-e GNU Emacs interface to MH (Contributed by Stephen Gildea. + Latest version available at ftp://ftp.x.org/misc/mh-e). +mhe Brian Reid's MHE system +mtrenv Some of Marshall T. Rose's MH environment +multi-media Multi-media mail as specified by RFC 1341 (MIME) +netnews Making netnews directories MH folders under 4BSD +rcvtrip A script mhook which will annoy all posters of + mailing lists the user might be on. +scripts Some useful scripts +sendmail A replacement local mailer which uses the MMDF + maildrop format +sortf Sort a folder by arbitrary fields (for MH6.6) +tools MH maintenance tools. +@ + + +1.8 +log +@get latest version of "patch" +include "audit" +@ +text +@d1 1 +a1 1 +$Id: README,v 1.7 1992/11/06 03:44:09 jromine Exp jromine $ +d18 2 +a19 1 +mh-e GNU Emacs interface to MH (probably not the newest version) +@ + + +1.7 +log +@note sendmail spooler.c +@ +text +@d1 1 +a1 1 +$Id: README,v 1.6 1992/10/21 02:03:57 jromine Exp $ +d9 2 +a10 2 +less-5.0 "less is more" - a more/pg-like pager (v5) +patch-2.0.12 The famous patch program. MH updates are sent as patches. +d14 1 +d17 2 +a18 2 +mem A reminder system. +mh-e GNU Emacs interface to MH +d23 2 +a24 1 +rcvtrip A script mhook. +d26 2 +a27 1 +sendmail A replacement local mailer which uses the ctrl/A maildrop format +@ + + +1.6 +log +@typo +@ +text +@d1 1 +a1 1 +$Id: README,v 1.5 1992/10/21 02:03:11 jromine Exp jromine $ +d24 1 +@ + + +1.5 +log +@document MIME +@ +text +@d1 1 +a1 1 +$Id$ +d3 2 +a4 1 +This directory contains some useful things for MH users and installers. +@ + + +1.4 +log +@fix ifdefs +@ +text +@d1 1 +a1 1 +miscellany/README $Revision: 1.3 $ $Date: 1990/04/06 11:24:12 $ +d19 1 +@ + + +1.3 +log +@*** empty log message *** +@ +text +@d1 1 +a1 1 +miscellany/README $Revision: 1.2 $ $Date: 90/04/06 10:27:17 $ +d16 2 +a17 2 +mh-e Brian Reid's MHE system +mhe GNU Emacs interface to MH +@ + + +1.2 +log +@*** empty log message *** +@ +text +@d1 1 +a1 1 +miscellany/README $Revision: 1.1 $ $Date:$ +d7 2 +a8 2 +compress Compress 4.0. MH Patches are usually sent out compressed. +less.5 "less is more" - a more/pg-like pager (v5) +@ + + +1.1 +log +@Initial revision +@ +text +@d1 1 +a1 1 +miscellany/README $Revision:$ +@ diff --git a/docs/historical/mh-6.8.5/miscellany/README b/docs/historical/mh-6.8.5/miscellany/README new file mode 100644 index 0000000..795084f --- /dev/null +++ b/docs/historical/mh-6.8.5/miscellany/README @@ -0,0 +1,30 @@ +$Id: README,v 1.9 1995/12/11 18:09:27 jromine Exp $ + +The "miscellany/" directory contains some useful things for MH +users and installers. + +These three tools are probably out of date, but should be of help. + +compress-4.0 MH Patches are sent out compressed. +less-177 "less is more" - a more/pg-like pager (ver. 177) +patch-2.0.12u8 The famous patch program. MH updates are sent as patches. + +Other interesting stuff: + +audit A perl package to parse and process messages +convert Utilities for converting to/from other mailbox formats. +libndir The new directory routines for sites that don't have them. +mem A reminder system using an appointment folder. +mh-e GNU Emacs interface to MH (Contributed by Stephen Gildea. + Latest version available at ftp://ftp.x.org/misc/mh-e). +mhe Brian Reid's MHE system +mtrenv Some of Marshall T. Rose's MH environment +multi-media Multi-media mail as specified by RFC 1341 (MIME) +netnews Making netnews directories MH folders under 4BSD +rcvtrip A script mhook which will annoy all posters of + mailing lists the user might be on. +scripts Some useful scripts +sendmail A replacement local mailer which uses the MMDF + maildrop format +sortf Sort a folder by arbitrary fields (for MH6.6) +tools MH maintenance tools. diff --git a/docs/historical/mh-6.8.5/miscellany/audit/Bug_fixes b/docs/historical/mh-6.8.5/miscellany/audit/Bug_fixes new file mode 100644 index 0000000..9cb057e --- /dev/null +++ b/docs/historical/mh-6.8.5/miscellany/audit/Bug_fixes @@ -0,0 +1,6 @@ +Bugs fixed since previous release: + + - @to and @cc are always created. + - $apparentlyto is set to $headers{"apparently-to"} if it exists. + - mail header names that contain hyphens (return-path, replty-to, + etc.) are parsed correctly. diff --git a/docs/historical/mh-6.8.5/miscellany/audit/CHANGES b/docs/historical/mh-6.8.5/miscellany/audit/CHANGES new file mode 100644 index 0000000..c63c65a --- /dev/null +++ b/docs/historical/mh-6.8.5/miscellany/audit/CHANGES @@ -0,0 +1,132 @@ +V0.2 Changes +============ + +The variable $friendly now is set to the friendly part of the sender's +email address. For example, if the sender's address is: + + strike@convex.com (Martin Streicher) + +$friendly would be set to "Martin Streicher" + + + +Keys for the %headers array are all lowercase. That is to say that if a mail +message has headers: + + To: strike + Cc: george + From: zombie@foo.edu + Subject: News + +the keys for %header will be "to", "from", "cc", "subject". $header{"subject"} +would be set to "News" + + + +The "Received" headers in a mail message are now saved in an array called +@received. The first element in the array is the first received header; +that last element in the array would show the message being delivered to +your machine. See the Suggestions file for how to use this feature. + + + +If someone from your local machine sends you email, $organization +is set to "local". If the site name (e.g.,"convex" for "pixel.convex.com") +cannot be determined, $organization is set to "unknown". Also, $organization +is much more reliable (I have not found a case yet where $organization +was not set correctly.) + + + +$organization is always in lower-case. + + + +audit.pl was broken up to make the code more reusable. The utilities +refileto and refilefrom use some of the routines in audit.pl and mh.pl. + + + +Fixed a bug that sometimes added NULL to an empty message body. + + + +mh.pl has new routines to recursively create a directory path, parse your +MH profile and parse MH-like command line options. + + +New utilities +============= +There are two new utilities: refileto and rfolder and adjunts refilefrom +and rfolders. + +refileto is used to refile messages into log folders according to who +you sent the messages to. refilefrom refiles messages you have received +according to who sent you the message. + +By default all messages are logged into the folder +log. You can change this +by adding the line: + + Logdir: log + +to your .mh_profile. Also by default, the current folder is processed. +You can change that also. Here are the command line options for +refileto/refilefrom: + +refileto -help +syntax: refileto [msgs] [switches] + switches are: + -debug + -draft + -file file + -help + -link + -log +folder + -nolink + -nopreserve + -preserve + -rmmproc program + -src +folder + -verbose + + +A sample usage might be: + +refileto -src +outbox -verbose + +-verbose shows you what is being files and where. Use -debug to check what will +happen without actually refiling the mail messages. + +Here is a sample output of the command +"refileto -src +log/outgoing -verbose all": + +refile -file /gmaster/home/strike/Mail/log/outgoing/5 +log/local/holt +refile -file /gmaster/home/strike/Mail/log/outgoing/7 +log/convex/sowton +refile -file /gmaster/home/strike/Mail/log/outgoing/9 +log/convex/lutz + +log/convex/sowton + + + +The rfolder utility is like folders: it can recursively descend +a list of folders. However, you can use rfolder to run another MH command +in every folder it finds. For example, let say you want to sort +all of the subfolders in your +log folder. + +You could say: + +rfolder +log -all -recurse -verbose -exec sortm -textfield subject + +-debug will show you what might happen without actually executing the +command. + +By the way, -clean can be used to remove empty folders (empty folders +must be completely empty, without any .# or # files from rmm's, etc.) + + +You can even use refileto/refilefrom and rfolder(s) to build a new +log directory from all your existing mail. Ala: + +rfolder -all -recurse -verbose -exec refilefrom -log +log -src + + +rfolders implis the -all -recurse flags diff --git a/docs/historical/mh-6.8.5/miscellany/audit/Installation b/docs/historical/mh-6.8.5/miscellany/audit/Installation new file mode 100644 index 0000000..472afc0 --- /dev/null +++ b/docs/historical/mh-6.8.5/miscellany/audit/Installation @@ -0,0 +1,71 @@ +1. Create a directory and unpack the perl files. + +2. Create a perl script to audit your mail. You might name it something + like ~/.audit. + +3. Follow the instruction in the README and require the files audit.pl + and mh.pl in your PERL script. + + * + * BE SURE TO CHANGE THE PATH NAMES to + * to the absolute path name of where you unpacked + * the files in step 1. + * + + If you install the .pl file in /usr/lib/perl, you can just + require them as in "require 'audit.pl';" + +4. Create a .forward file in your home directory and add + + " | " + + where is the absolute path of your audit script + and is your login name. + +5. If you are going to use the refileto and rfolder utilities, + also edit the unshift line to reference the NEW absolute path. + + By default it will look in the path reference by the environment + variable DELIVERPATH. You can change that to an absolute path + if you want to. + + If you installed audit.pl and mh.pl in /usr/lib/perl, + you can delete the unshift line. + +6. Make sure you chmod +x your audit file script! + + +For example, + +1. My PERL files are in /gmaster/home/strike/work/perl/deliver. + +2. My audit script is in /gmaster/home/strike/.audit and has + + #! /usr/local/bin/perl + + require '/gmaster/home/strike/work/perl/deliver/audit.pl' || + die "deliver: cannot include audit.pl: $@"; + + require '/gmaster/home/strike/work/perl/deliver/mh.pl' || + die "deliver: cannot include mh.pl: $@"; + + &initialize(); + + + at the very top of the file. + +4. My .forward file has: + + " | /gmaster/home/strike/.audit strike" + +5. I edited refileto and rfolder to say: + + unshift(@INC, "/gmaster/home/strike/work/perl/deliver"); + + I could also have set DELIVERPATH ala + + setenv DELIVERPATH /gmaster/home/strike/work/perl/deliver + +6. I did: + + chmod +x /gmaster/home/strike/.audit diff --git a/docs/historical/mh-6.8.5/miscellany/audit/README b/docs/historical/mh-6.8.5/miscellany/audit/README new file mode 100644 index 0000000..1989f67 --- /dev/null +++ b/docs/historical/mh-6.8.5/miscellany/audit/README @@ -0,0 +1,357 @@ +Date: Mon, 1 Jun 1992 20:00:07 GMT +Subject: Mail auditing + more package +From: Martin Streicher + +I am changing jobs, so this will be the final release of my audit +package until I get a new UNIX account established. There are +several little bugs fixed in this release that should fix +lots of parsing problems - other than that, this package seems very solid +and I have gotten good feedback on the usefulness of the package. + +Enjoy... + +The audit.pl package. +===================== + +What this package does: +======================= +This package provides routines that parse an incoming mail message, divide +it into a header and the body of the message and further decompose +the mail header into its fields. The routines set variables that you +can query and parse in your own PERL script to determine what to do with +the incoming mail message. + +To use the package, insert the following two PERL instructions to the very +TOP of your PERL script: + +require '/gmaster/home/strike/work/perl/deliver/audit.pl' || + die "deliver: cannot include audit.pl: $@"; + +&initialize(); + + +Variables that &initialize() sets: +--------------------------------- +The routine &initialize() reads the incoming mail message and sets +the following variables: + +$sender This is the sender shown on the "From " line. + +%headers An associative array containing the lines in the mail + header. $header{'Subject'} contains the Subject: line; + $header{'Date'} contains Date:, etc. + + If the To: or Cc: line appeared more than once in the header, + those lines are concatenated together into a single + comma-separated list of names. Other header lines that + appear twice are clobbered. + +There are also many variables and arrays set for your convenience if you +dont want to parse the entries of %headers yourself. + +$subject The Subject: line. + +$precedence The Precedence: line. + +$friendly The friendly (human) name of the sender + (e.g., Martin Streicher) + +$address The email address of the sender + (e.g., strike@pixel.convex.com) + +$from The login name of the sender with all addressing stripped. For + example, if $address was strike@pixel.convex.com, $from + is strike. + +$organization The name of the sender's organization. This is derived from + $address; for example strike@pixel.convex.com yields convex; + wizard!jim@uunet.uu.net yields wizard; jane@mach.site.co.uk + yields site. + +@to The list of names on the To: line(s). Note that the + name listed on the Apparently-To: line also appears in @to. + +@cc The list of names on the Cc: line(s). + +@received The list of received headers in the mail message that + show the path the message traveled to be delivered. + + +Routines that audit.pl provides: +-------------------------------- +The package offers some canned routines for handling the incoming +mail message: + +&deliver() Deliver the incoming mail message. &deliver() appends + the incoming mail message to the end of your UNIX mail + drop /usr/spool/mail/, where is the name + specified in the .forward file. + +&vacation() Reply automatically to the sender if you have a vacation + message in $HOME/.vacation.msg. If you do not have this + file, this routine does absolutely nothing. If you have + a .vacation.msg file, &vacation sends the sender of the + message an automatic reply containing that file. + + This routine also records who you sent + vacation mail to; it will not send duplicate vacation messages + to the same person. If you change your vacation message, the + list is zeroed. The list of people you sent vacation mail to + is kept in $HOME/.vacation.log. + + Some notes about &vacation(): + - It will send you vacation mail. This is useful + to test your vacation message out. + + - It will not send vacation mail to anyone named + root, mailer-daemon, postmaster, daemon or mailer. + This are not considered to be real users. + + - It will not respond to mail that is labelled + with precendence bulk or junk. + +&file_from() or +&file_from($dir) + This routine files the incoming mail message + in a hierarchy of mail folders. The top-level of the + hierarchy is specified in $dir; by default (if no + directory is specified) it is $HOME/log. The next level + of the hierachy is sorted by $organization; below this level + mail is sorted by the sender's login name. + + For example, say you receive a message from + strike@pixel.convex.com; if you call &file_from(), + the corresponsing mail message will be filed into a mail + folder called $HOME/log/convex/strike. All mail sent to you + by strike@pixel.convex.com would be filed in this mail folder. + + You can &file_from to file all correspondence for future + reference. + +&openpipe($command) + You can also use your own commands (scripts/programs) + to process an incoming mail message. &openpipe($command) + opens a PERL pipe to $command and pipes the mail message + to that command. + +You can use none, one or all of these routines. You can also repeat +and combine all of these functions to do more than one thing with a piece of +incoming mail (you probably only want to &deliver() the message once though). + +For example, say you get a message from strike@pixel.convex.com. You want +to file the message away for auditing purposes, save the mail message in your +mail drop and send some vacation mail if you are gone. Use the &file_from(), +&deliver() and &vacation() functions to do all of these things to one message. + +WARNING: IF YOU EXIT FROM THE PERL SCRIPT WITHOUT DOING SOMETHING + WITH THE MAIL MESSAGE, IT IS LOST FOREVER. + +Actually, exiting the PERL script can be an effective way of dropping +unwanted mail messages. See the example below. + + +Other convenience functions for MH users: +----------------------------------------- +If you use MH, other convenience routines are provided to +pipe the incoming mail message to rcvstore, rcvdist and/or rcvtty. +There is also a special refile routine to file incoming mail messages +in folders according to the sender's organization and login. + +To access the MH functions, add the following line to the TOP of your script: + +require '/gmaster/home/strike/work/perl/deliver/mh.pl' || + die "deliver: cannot include mh.pl: $@"; + +This file provides the following functions: + +&rcvstore($folder) + Pipe the incoming mail message to rcvstore; the $folder + argument is the name of the folder to store the message + into. + +&rcvtty() Pipe the incoming mail message to rcvtty. rcvtty + is MH's equivalent to biff and its output can be tailored + exactly like you can customize scan or inc. + +&rcvdist($names) + Pipe the incoming mail message to rcvdist. $names + is a blank separated list of names to send the + message to. You can use the &ali() command (see below) + to expand MH aliases. + +&ali($alias) Expand the MH alias name in $alias to the list + of addresses it stands for. Unlink all the other routines, + this routine returns an array of names, where + each element is an addressee on the alias. + +&refile_from() or +&refile_from($dir) + File a copy of the incoming mail message into a hierarchy of + MH folders. The top-level directory is "log" by default unless + you specify another folder (all this below you Mailpath folder, + of course). The next level is sorted by organization name + and the level below that is sorted by sender's login name. + + + +Writing a PERL mail auditing script: +==================================== +The best way to show what all this can do is with a specific example. Here +is my script (with comments!): + +------ script starts here ------- +#! /usr/local/bin/perl + +require '/gmaster/home/strike/work/perl/deliver/audit.pl' || + die "deliver: cannot include audit.pl: $@"; + +require '/gmaster/home/strike/work/perl/deliver/mh.pl' || + die "deliver: cannot include mh.pl: $@"; + +&initialize(); + + +# ----- +# My mail processing starts here +# + +# If this message came from the MAILER, deliver it to me directly +# and do nothing else. +# +($from =~ /MAILER/) && do { &deliver(); exit; }; + +# If this message is sent to xpixel (either To or Cc, deliver +# the messsage to me and exit. +# +(grep(/^xpixel/, @to, @cc)) && do { &deliver(); exit; }; + +# If the message is from a place called "lupine", this +# is really NCD. +# +$organization = "ncd" if ($organization eq "lupine"); + +# If the sender's name is in the password file, the organization +# is CONVEX. +# +$organization = "convex" if ($logname = (getpwnam($from))[0]); + +# If I am specifically named on the To or Cc line, do the default. +# The routine &default is below: it delivers the message, refiles +# it in an MH folder, sends vacation mail if I am gone, and +# biffs me if I am logged in somewhere. +# +(grep(/^strike/, @to, @cc)) && do { + &default(); + exit; +}; + +# If the mail message went to x where hostname +# is in our /etc/hosts, trash the message (JUST EXIT TO DROP +# THE MESSAGE) +# +exit if (grep((/^x(.*)/ && (@n = gethostbyname($1))), @to, @cc)); + +# Throw away anything to anyone or any alias named avs-updates +# +exit if (grep(($_ eq "avs-updates"), @to)); + +# Throw away junk mail from AVS, Inc. +# +if ($organization eq "avs") { + exit if ($subject =~ /^(Opened|Assigned) to/); + exit if ($subject =~ /^(Edited|Fixed|Killed) by/); +}; + + +# If the mail message went to an X Consortium alias, +# deliver it to me if it is advisory board mail. Otherwise, +# refile it into an archive and redistribute it to anyone at CONVEX +# that subscribes to it through me. +# +$xcons = 0; +@consortium = ( + '/^advisory/', '/^blend/', '/^bug-trackers/', + '/^color/', '/^fix-trackers/', '/^fontwork/', + '/^imagework/', '/^xlib/', '/intrinsics/', + '/^mltalk/', '/^pex-si/', '/^pex-spec/', + '/^protocol/', '/^security/', '/^shape/', + '/^trackers/', '/^transport/', '/^wmtalk/', + '/^xbuffer/', '/^xc/', '/^xinput/', + '/^xtest/', '/^consortium/', '/^serialwork/', + '/^xie_/', '/^mtserver/' +); + +foreach $list (@consortium) { + for (grep(eval $list, @to, @cc)) { + &deliver() if ($_ =~ "^advisory"); + $xcons++; + &rcvstore("XConsortium/$_"); + @dist = &ali("XConsortium-$_"); + &rcvdist(join(' ', @dist)) if ((@dist)); + }; +}; +exit if $xcons; + + +# this mail was not sent to me directly, so dont answer with vacation mail, +# +&deliver(); +&rcvtty(); + +# All done! +# +exit; + + +# ===== +# Subroutine default +# defaults specifies what to do when I want to accept a piece +# of mail. It is a convenience. +sub default { + + &deliver(); + &vacation(); + &rcvtty(); + &refile_from(); +} + +------ script ends ---------- + + +Testing +======== +If you want to test your PERL script, put the following in your .forward file: + + , "| /