Comment: These are patches to produce the Andrew component of the X.V11R4 distribution, patch level 2 Andrew-Patch: 2 Date: Fri, 12 Jan 90 15:58:22 -0500 (EST) Date-span: 89/11/14 14:34:15 through 90/1/12 15:19:27 Bugs addressed: 737 Count of patched files: 112 RCS logs: Source file: ams/libs/cui/cuilib.c Current version: 2.42 revision 2.42 date: 89/12/12 14:57:22; author: ghoti; state: Exp; lines added/del: 3/3 sync with MIT tape ---------------------------- revision 2.41 date: 89/11/20 13:27:26; author: cfe; state: Exp; lines added/del: 10/9 Don't core-dump when reading a badly-formatted vote header. Source file: ams/libs/ms/apndfile.c Current version: 2.7 revision 2.7 date: 89/12/22 15:09:00; author: cfe; state: Exp; lines added/del: 3/2 Bullet-proof to ensure that caption-template fields are set the way they're supposed to be set. Source file: ams/libs/ms/bldcapt.c Current version: 2.14 revision 2.14 date: 89/12/22 15:52:52; author: cfe; state: Exp; lines added/del: 3/3 whoops typo. ---------------------------- revision 2.13 date: 89/12/22 15:09:28; author: cfe; state: Exp; lines added/del: 3/1 Bullet-proof to ensure that caption-template fields are set the way they're supposed to be set. Source file: ams/libs/ms/chzdirs.c Current version: 2.16 Source file: ams/libs/ms/hdlnew.c Current version: 2.51 Source file: ams/libs/ms/merge.c Current version: 2.7 revision 2.7 date: 89/12/22 15:10:01; author: cfe; state: Exp; lines added/del: 3/2 Bullet-proof to ensure that caption-template fields are set the way they're supposed to be set. Source file: ams/libs/ms/newmail.c Current version: 2.14 revision 2.14 date: 89/12/22 15:10:23; author: cfe; state: Exp; lines added/del: 4/4 Bullet-proof to ensure that caption-template fields are set the way they're supposed to be set. Source file: ams/libs/ms/rawdb.c Current version: 2.51 revision 2.51 date: 89/12/18 11:50:01; author: cfe; state: Exp; lines added/del: 43/34 (a) Take a version of Janssen's fix to scavenge more than one or two files at a time. (b) Sort files being scavenged into date order. Source file: ams/libs/ms/recon.c Current version: 2.17 Source file: ams/libs/ms/submsg.c Current version: 2.11 revision 2.11 date: 89/12/22 15:10:42; author: cfe; state: Exp; lines added/del: 2/1 Bullet-proof to ensure that caption-template fields are set the way they're supposed to be set. Source file: ams/msclients/cui/cui.c Current version: 2.28 revision 2.28 date: 89/12/18 10:59:56; author: cfe; state: Exp; lines added/del: 11/4 Incorporate Janssen's fix to CUI alias processing. Probably better would be to understand high-order bits in addresses in the CUI command loop processing, but...) ---------------------------- revision 2.27 date: 89/12/18 10:50:46; author: cfe; state: Exp; lines added/del: 4/4 Better error messages for ``epoch'' misuse. ---------------------------- revision 2.26 date: 89/11/20 10:27:45; author: cfe; state: Exp; lines added/del: 3/3 Compensate for the ``terrible hack'' in forwarding messages from CUI. ---------------------------- revision 2.25 date: 89/11/20 09:29:30; author: cfe; state: Exp; lines added/del: 2/3 Eliminate funky choose-from-list error. Source file: ams/utils/dlistc/readalias.c Current version: 1.3 revision 1.3 date: 89/12/18 11:14:25; author: mcinerny; state: Exp; lines added/del: 4/3 Won't dump core on /dev/null as alias file Source file: ams/delivery/sendmail/sendmail.c Current version: 1.8 revision 1.8 date: 89/12/14 13:46:28; author: cfe; state: Exp; lines added/del: 1/1 Remove primary-cell references. Source file: ams/doc/MsgSrvr.ovr Current version: 1.2 revision 1.2 date: 89/12/15 13:29:51; author: cfe; state: Exp; lines added/del: 461/1 Checking in Bob's draft-so-far. Source file: atk/apt/apt/apt.c Current version: 1.6 revision 1.6 date: 89/12/12 14:57:47; author: ghoti; state: Exp; lines added/del: 26/16 sync with MIT tape Source file: atk/apt/suite/suitecv.c Current version: 1.13 revision 1.13 date: 89/12/14 15:14:28; author: cfe; state: Exp; lines added/del: 10/1 Sync with MIT tape (add additional log stuff). ---------------------------- revision 1.12 date: 89/12/12 14:58:15; author: ghoti; state: Exp; lines added/del: 6/2 sync with MIT tape Source file: atk/apt/suite/suite.c Current version: 1.28 revision 1.28 date: 89/12/12 14:57:54; author: ghoti; state: Exp; lines added/del: 9/4 sync with MIT tape Source file: atk/basics/x/xgraphic.c Current version: 1.7 Source file: atk/basics/x/xim.c Current version: 1.25 revision 1.25 date: 89/12/12 14:59:26; author: ghoti; state: Exp; lines added/del: 183/114 sync with MIT tape ---------------------------- revision 1.24 date: 89/11/20 14:46:12; author: tpn; state: Exp; lines added/del: 6/4 This change fixes the bug where XEvents could be sent to the wrong im, if windows are up on more that one display. ---------------------------- revision 1.23 date: 89/11/19 23:47:11; author: wjh; state: Exp; lines added/del: 1099/66 Fixed so long cuts and pastes do not crash it. The problem is that the xlib code for XFetchBytes and XStoreBytes doesn't pay any attention to max_request_size, nor to the partial transfer feature of XGetWindowProperty Modified to grab the PRIMARY and CLIPBOARD selections as well as storing the cut/copy value into CUT_BUFFER0. Source file: atk/basics/common/dataobj.c Current version: 2.10 revision 2.10 date: 89/12/12 14:58:27; author: ghoti; state: Exp; lines added/del: 12/3 sync with MIT tape Source file: atk/basics/common/filetype.c Current version: 2.8 revision 2.8 date: 89/11/20 11:11:12; author: ajp; state: Exp; lines added/del: 4/4 Fixed code in attribute processing portion of AddEntry. It was setting the wrong byte to 0 when attempting to NULL terminate the value string of the attribute. Source file: atk/basics/common/im.c Current version: 2.27 revision 2.27 date: 89/12/12 14:58:34; author: ghoti; state: Exp; lines added/del: 13/5 sync with MIT tape ---------------------------- revision 2.26 date: 89/11/19 23:52:49; author: wjh; state: Exp; lines added/del: 23/11 Fixed so incremental search works correctly. It will no longer insert characeters in the text if you type too fast. The problem was that im_GetCharacter was calling im_Interact when there were enqueued keys. This change will also mean that query-replace no longer continues in operation after a mouse click. And more: this closes BUG: 737 which reported that function keys were not being correctlyu treated by im_GetCharacter. They will not be sent in as multiple key sequences. bug fix beta-144 was partially backed out. This means that the correct directory will always be used. Source file: atk/basics/common/menulist.c Current version: 2.7 revision 2.7 date: 89/12/12 14:59:19; author: ghoti; state: Exp; lines added/del: 4/4 sync with MIT tape Source file: atk/champ/monthv.ch Current version: 2.4 revision 2.4 date: 89/12/18 10:53:15; author: cfe; state: Exp; lines added/del: 1/0 Declare and use a FinalizeObject routine to poot core leaks. Source file: atk/champ/monthv.c Current version: 2.7 revision 2.7 date: 89/12/18 10:53:41; author: cfe; state: Exp; lines added/del: 7/0 Declare and use a FinalizeObject routine to poot core leaks. Source file: atk/console/consoles/tang.con Current version: 2.5 revision 2.5 date: 90/01/03 08:18:25; author: ghoti; state: Exp; lines added/del: 2/2 replaced /cmu/common/printing/spool with /afs/andrew/service/printing/spool fixes the path for AFS (at CMU) - still doesn't mean much for non-AFS users. Source file: atk/console/lib/setup.c Current version: 2.45 revision 2.45 date: 89/11/22 13:19:54; author: cfe; state: Exp; lines added/del: 17/11 Don't pass a null pointer to ExplodeFontName. Source file: atk/console/stats/hp300/getstats.c Current version: 1.6 revision 1.6 date: 89/12/12 14:59:59; author: ghoti; state: Exp; lines added/del: 89/107 sync with MIT tape Source file: atk/console/stats/rt_r3/getstats.c Current version: 1.4 revision 1.4 date: 89/11/21 08:17:50; author: ghoti; state: Exp; lines added/del: 4/4 added extra parens around statement to override "natural" precedence Source file: atk/createinset/null/nullv.c Current version: 1.2 revision 1.2 date: 89/12/12 15:00:08; author: ghoti; state: Exp; lines added/del: 90/81 sync with MIT tape Source file: atk/createinset/null/nullv.ch Current version: 1.2 revision 1.2 date: 89/12/12 15:00:16; author: ghoti; state: Exp; lines added/del: 25/16 sync with MIT tape Source file: atk/createinset/null/nullvt.c Current version: 1.2 revision 1.2 date: 89/12/12 15:00:22; author: ghoti; state: Exp; lines added/del: 16/13 sync with MIT tape Source file: atk/createinset/cmd/cres8et.help Current version: 1.3 revision 1.3 date: 89/12/22 11:25:01; author: wjh; state: Exp; lines added/del: 143/109 revised for new enviormnet Source file: atk/extensions/spell.c Current version: 2.9 revision 2.9 date: 89/12/12 15:00:29; author: ghoti; state: Exp; lines added/del: 12/6 sync with MIT tape ---------------------------- revision 2.8 date: 89/11/21 16:18:21; author: zs01; state: Exp; lines added/del: 4/4 Changed error message for external sites that may not have ispell. Source file: atk/extensions/deskey.ch Current version: 1.3 revision 1.3 date: 89/12/22 11:14:18; author: ghoti; state: Exp; lines added/del: 0/3 added new improved proctable describing features - that allow you to bring up a list of all the curently bound keys from any ATK application with a frame (not console) see desproc.help for more details Source file: atk/extensions/deskey.c Current version: 1.3 revision 1.3 date: 89/12/22 11:13:13; author: ghoti; state: Exp; lines added/del: 721/176 added new improved proctable describing features - that allow you to bring up a list of all the curently bound keys from any ATK application with a frame (not console) see desproc.help for more details Source file: atk/extensions/desproc.help Current version: 1.3 revision 1.3 date: 89/12/22 11:14:22; author: ghoti; state: Exp; lines added/del: 170/8 added new improved proctable describing features - that allow you to bring up a list of all the curently bound keys from any ATK application with a frame (not console) see desproc.help for more details Source file: atk/frame/frame.c Current version: 2.13 revision 2.13 date: 89/12/12 15:00:36; author: ghoti; state: Exp; lines added/del: 20/5 sync with MIT tape Source file: atk/help/src/help.c Current version: 2.68 revision 2.68 date: 89/12/12 15:01:03; author: ghoti; state: Exp; lines added/del: 110/104 sync with MIT tape ---------------------------- revision 2.67 date: 89/11/21 15:07:27; author: jhh; state: Exp; lines added/del: 7/3 Avoid "struct label" name clash in sys/types.h called by andrewos.h. Source file: atk/help/src/help.h Current version: 1.35 revision 1.35 date: 89/12/12 15:01:32; author: ghoti; state: Exp; lines added/del: 4/10 sync with MIT tape Source file: atk/lset/arbcon.c Current version: 2.32 revision 2.32 date: 89/12/12 15:01:46; author: ghoti; state: Exp; lines added/del: 3/3 sync with MIT tape ---------------------------- revision 2.31 date: 89/11/21 09:45:35; author: cfe; state: Exp; lines added/del: 4/4 Rename ``chdir'' function to ``arbchdir'' as per emerging standards. Source file: atk/ness/objects/call.c Current version: 1.34 revision 1.34 date: 89/12/12 15:04:47; author: ghoti; state: Exp; lines added/del: 7/7 sync with MIT tape ---------------------------- revision 1.33 date: 89/11/19 23:20:09; author: wjh; state: Exp; lines added/del: 31/20 call C functions with anytype.long instead of anytype.string because strings are passed differently on SPARC (thanks to Guy Harris) Fixed to understand the types defined with proctable_DefineTypedProc. Source file: atk/ness/objects/interp.c Current version: 1.28 revision 1.28 date: 89/11/21 11:56:33; author: wjh; state: Exp; lines added/del: 38/9 Correct the decision in writefile() of whether and what template to use. This fixes the bug in files written by gendoc. They were getting style menus for only a few styles. Now they get all styles. Source file: atk/ness/objects/ness.c Current version: 1.27 revision 1.27 date: 89/11/18 20:57:18; author: wjh; state: Exp; lines added/del: 5/4 removed two declarations of unused variables: version and origin Source file: atk/ness/objects/nevent.c Current version: 1.21 revision 1.21 date: 89/12/12 15:05:01; author: ghoti; state: Exp; lines added/del: 17/17 sync with MIT tape Source file: atk/ness/objects/yypshpop.c Current version: 1.8 revision 1.8 date: 89/12/12 15:05:14; author: ghoti; state: Exp; lines added/del: 9/9 sync with MIT tape ---------------------------- revision 1.7 date: 89/11/19 23:22:58; author: wjh; state: Exp; lines added/del: 25/2 Revised so presnet.n does not get a syntax error on AIX. (bug reported by Wayne Richardson) The problem was that AIX has a modified yaccpar with many more global variables that need to be saved for recursive compilation. Source file: atk/ness/doc/nessman.d Current version: 1.4 revision 1.4 date: 89/12/12 15:04:01; author: ghoti; state: Exp; lines added/del: 19/8 sync with MIT tape Source file: atk/ness/doc/nessauth.d Current version: 1.2 revision 1.2 date: 89/12/12 15:02:07; author: ghoti; state: Exp; lines added/del: 19/12 sync with MIT tape Source file: atk/ness/doc/nesshack.d Current version: 1.2 revision 1.2 date: 89/12/12 15:03:53; author: ghoti; state: Exp; lines added/del: 16/6 sync with MIT tape Source file: atk/ness/doc/nessuser.d Current version: 1.2 revision 1.2 date: 89/12/12 15:04:37; author: ghoti; state: Exp; lines added/del: 27/18 sync with MIT tape Source file: atk/ness/doc/nesstut.d Current version: 1.3 revision 1.3 date: 89/12/12 15:04:26; author: ghoti; state: Exp; lines added/del: 27/20 sync with MIT tape Source file: atk/ness/doc/nessfunc.d Current version: 1.3 revision 1.3 date: 89/12/12 15:03:27; author: ghoti; state: Exp; lines added/del: 22/13 sync with MIT tape Source file: atk/rofftext/roffstyl.c Current version: 2.8 revision 2.8 date: 89/12/12 15:05:50; author: ghoti; state: Exp; lines added/del: 3/3 sync with MIT tape Source file: atk/support/complete.c Current version: 2.10 revision 2.10 date: 89/12/12 15:05:55; author: ghoti; state: Exp; lines added/del: 9/3 sync with MIT tape Source file: atk/support/nstdmark.c Current version: 2.9 revision 2.9 date: 89/11/20 08:39:51; author: ghoti; state: Exp; lines added/del: 4/3 added newline at EOF Source file: atk/support/print.c Current version: 2.19 revision 2.19 date: 89/11/17 10:58:49; author: tpn; state: Exp; lines added/del: 54/2 Added ifndefs to allow the defined parameters (ex print_PRINTCOMMAND) to be defined in the site.h file, regardless of ifdef IBM032_ENV, CMU_ENV or EXPRESS being defined. Source file: atk/supportviews/lpair.c Current version: 2.14 revision 2.14 date: 90/01/03 18:40:56; author: ghoti; state: Exp; lines added/del: 458/431 ran through 'cb' to fix indentations and long lines so that ps_aix11 preprocesser can handle it Source file: atk/text/smpltext.c Current version: 2.16 revision 2.16 date: 89/12/12 15:06:08; author: ghoti; state: Exp; lines added/del: 4/4 sync with MIT tape Source file: atk/text/txttroff.c Current version: 2.22 revision 2.22 date: 90/01/11 11:20:25; author: tpn; state: Exp; lines added/del: 5/2 change to return troff to proper state when troff is called recursivly by embeded text objects (such as footnotes). Source file: atk/text/txtvcmds.c Current version: 2.37 revision 2.37 date: 90/01/05 11:02:23; author: ghoti; state: Exp; lines added/del: 4/10 remove the keeping of the replacement string as a default for the next invocation. The functionality was nice, but the interface for the implementation proved too confusing. ---------------------------- revision 2.36 date: 89/12/22 12:33:48; author: ghoti; state: Exp; lines added/del: 5/14 don't put default replacement string in brackets - put it out as if it were user input - otherwise it is impossible to replace 'something' with 'nothing' ---------------------------- revision 2.35 date: 89/12/21 09:07:23; author: ghoti; state: Exp; lines added/del: 9/6 minor tweek ---------------------------- revision 2.34 date: 89/12/21 09:01:04; author: ghoti; state: Exp; lines added/del: 12/5 modified it a small bit - based on emacs conventions: ',' (comma) will now do the last replacement, quit, and stay at that position in the document. '=' will *not* do the last replacement, but will quit and stay at that position in the docuement. ---------------------------- revision 2.33 date: 89/12/20 15:41:48; author: ghoti; state: Exp; lines added/del: 164/147 fixed/modified query-replace - so that: a) it *always* holds on to the previous 'search' string as a default. b) it now holds onto the previous 'replacement' string as a default. c) it accepts '=' as meaning: "replace this occurance, quit [query-replace], but leave the caret here (i.e. do not return it to where the query-replace started. Source file: atk/text/qryrplc.help Current version: 1.3 revision 1.3 date: 90/01/05 11:03:37; author: ghoti; state: Exp; lines added/del: 4/4 remove the keeping of the replacement string as a default for the next invocation. The functionality was nice, but the interface for the implementation proved too confusing. ---------------------------- revision 1.2 date: 89/12/22 11:24:57; author: ghoti; state: Exp; lines added/del: 44/13 updated query-replace info Source file: atk/typescript/tscript.c Current version: 2.28 revision 2.28 date: 89/11/21 15:26:55; author: jhh; state: Exp; lines added/del: 35/35 Change ifdef AIX to if SY_AIX221 throughout. It compiles on PS2 this way, but still does not work. ---------------------------- revision 2.27 date: 89/11/16 15:04:30; author: tpn; state: Exp; lines added/del: 9/4 Now calls new GetPtyandName function when AIX is defined to get the ptyname so that AIX can close and reopen it to make it the controlling terminal. Source file: atk/zip/lib/zipocapt.c Current version: 2.11 revision 2.11 date: 89/11/17 16:21:21; author: cfe; state: Exp; lines added/del: 2/2 Make transfer_mode local be ``register long'' rather than ``register short''. Source file: atk/zip/lib/ziposym.c Current version: 2.19 revision 2.19 date: 89/11/20 12:51:16; author: gk5g; state: Exp; lines added/del: 3/3 Fixed bogus dereferencing of argument to strlen() in Filter(). Source file: atkams/messages/lib/messages.c Current version: 2.27 revision 2.27 date: 89/11/17 16:32:37; author: cfe; state: Exp; lines added/del: 4/4 Try to get the ``Append message body to file:'' question to appear in the current window. Source file: atkams/messages/scripts/sendmail.sh Current version: 2.3 revision 2.3 date: 89/12/18 14:46:57; author: cfe; state: Exp; lines added/del: 1/1 Remove obsolete option from the script. Source file: contrib/m3text/m3text.c Current version: 1.4 revision 1.4 date: 89/11/15 09:00:33; author: ghoti; state: Exp; lines added/del: 3/3 BUG: ? (from info-andrew) use environment_InsertStyle instead of old environment_Insert Source file: contrib/rctext/rctext.c Current version: 1.4 revision 1.4 date: 89/11/15 09:02:19; author: ghoti; state: Exp; lines added/del: 7/7 BUG: ? (from info-andrew) use environment_InsertStyle instead of old environment_Insert Source file: contrib/rmtext/rmtext.c Current version: 1.5 revision 1.5 date: 89/11/15 09:03:11; author: ghoti; state: Exp; lines added/del: 4/4 BUG: ? (from info-andrew) use environment_InsertStyle instead of old environment_Insert Source file: install/install.c Current version: 1.3 revision 1.3 date: 89/11/20 15:04:37; author: cfe; state: Exp; lines added/del: 12/4 Don't try to strip files (shell scripts) whose first character is '#'. Source file: overhead/class/lib/class.c Current version: 2.24 revision 2.24 date: 89/12/12 15:07:10; author: ghoti; state: Exp; lines added/del: 13/3 sync with MIT tape Source file: overhead/conv/conclass.c Current version: 1.5 revision 1.5 date: 89/12/12 15:08:43; author: ghoti; state: Exp; lines added/del: 83/34 sync with MIT tape Source file: overhead/cmenu/cmcreate.c Current version: 2.7 revision 2.7 date: 90/01/11 11:00:38; author: tpn; state: Exp; lines added/del: 6/6 Fixed bug where some X functions were being called without the display variable. Source file: overhead/cmenu/cmdraw.c Current version: 2.5 revision 2.5 date: 90/01/11 11:03:30; author: tpn; state: Exp; lines added/del: 7/7 Fixed bug where some X functions were being called with ints instead of unsigned ints. Source file: overhead/mail/hdrs/mail.h Current version: 2.16 revision 2.16 date: 89/12/14 13:49:20; author: cfe; state: Exp; lines added/del: 1/1 Remove primary-cell references. Source file: overhead/mail/lib/amsauth.c Current version: 2.13 revision 2.13 date: 89/12/14 13:50:20; author: cfe; state: Exp; lines added/del: 2/2 Remove primary-cell references. ---------------------------- revision 2.12 date: 89/12/12 15:08:57; author: ghoti; state: Exp; lines added/del: 1/18 sync with MIT tape Source file: overhead/mail/lib/authret.c Current version: 2.7 revision 2.7 date: 89/12/12 15:09:04; author: ghoti; state: Exp; lines added/del: 2/2 sync with MIT tape Source file: overhead/mail/lib/mailconf.c Current version: 2.43 revision 2.43 date: 89/12/14 13:56:07; author: cfe; state: Exp; lines added/del: 8/8 Remove primary-cell references. Source file: overhead/malloc/malloc.ci Current version: 2.8 revision 2.8 date: 89/12/12 15:09:20; author: ghoti; state: Exp; lines added/del: 32/30 sync with MIT tape ---------------------------- revision 2.7 date: 89/11/18 21:06:45; author: wjh; state: Exp; lines added/del: 26/19 move morecore and realloc_srchlen from plumber.ci to malloc.ci This fixes problems with multiply defined symbols when not using MALLOC_DEBUG_ENV. (Also moved to the end of malloc.ci all declarations of dummy entry points.) Source file: overhead/malloc/imalloc.h Current version: 2.7 revision 2.7 date: 89/12/12 15:09:15; author: ghoti; state: Exp; lines added/del: 22/12 sync with MIT tape Source file: overhead/malloc/plumber.ci Current version: 2.8 revision 2.8 date: 89/12/12 15:09:29; author: ghoti; state: Exp; lines added/del: 19/12 sync with MIT tape ---------------------------- revision 2.7 date: 89/11/18 21:08:18; author: wjh; state: Exp; lines added/del: 3/20 move morecore and realloc_srchlen from plumber.ci to malloc.ci This fixes problems with multiply defined symbols when not using MALLOC_DEBUG_ENV. (Also moved to the end of malloc.ci all declarations of dummy entry points.) Source file: overhead/snap2/guardian/cmd/guardian.c Current version: 2.85 revision 2.85 date: 89/12/21 16:39:30; author: cfe; state: Exp; lines added/del: 7/2 Coddle the old ktc.c's use of getuid() in setting the ViceId field in old tokens. ---------------------------- revision 2.84 date: 89/12/20 16:00:09; author: cfe; state: Exp; lines added/del: 2/2 Bump MAX_PASSWORD to a more reasonable length--350 rather than 120. Source file: overhead/snap2/guardian/cmd/fwddecl.h Current version: 1.3 Source file: overhead/snap2/guardian/cmd/snptguar.c Current version: 1.13 Source file: overhead/snap2/snap2/snapguar.c Current version: 2.7 revision 2.7 date: 89/12/05 14:04:52; author: aw0g; state: Exp; lines added/del: 6/1 put SNAP_istcp back till Steve gets snmp installed so the new guardian can be checked in ---------------------------- revision 2.6 date: 89/12/04 08:39:31; author: aw0g; state: Exp; lines added/del: 1/6 remove SNAP_istcp(). Guardian now has both the tcp and udp libraries linked and supports both services Source file: overhead/util/hdrs/svcconf.h Current version: 2.9 revision 2.9 date: 89/12/14 14:35:29; author: cfe; state: Exp; lines added/del: 3/3 Remove PrimaryCell stuff. Source file: overhead/util/hdrs/util.h Current version: 2.24 revision 2.24 date: 89/12/14 14:35:17; author: cfe; state: Exp; lines added/del: 3/11 Remove PrimaryCell stuff. ---------------------------- revision 2.23 date: 89/11/21 13:12:21; author: cfe; state: Exp; lines added/del: 7/4 Protect against multiple inclusions of util.h by #ifndef/#define/#endif. Source file: overhead/util/lib/cawp.c Current version: 1.8 revision 1.8 date: 89/12/12 15:09:34; author: ghoti; state: Exp; lines added/del: 110/95 sync with MIT tape Source file: overhead/util/lib/gtvpwent.c Current version: 2.8 revision 2.8 date: 89/12/14 14:06:12; author: cfe; state: Exp; lines added/del: 2/2 Correct infinite-recursion typo Source file: overhead/util/lib/getvuid.c Current version: 2.6 revision 2.6 date: 89/12/14 14:06:40; author: cfe; state: Exp; lines added/del: 5/5 Remove PrimaryCell stuff in favor of ThisDomain. ---------------------------- revision 2.5 date: 89/12/12 15:09:47; author: ghoti; state: Exp; lines added/del: 8/8 sync with MIT tape Source file: overhead/util/lib/cellauth.c Current version: 2.17 revision 2.17 date: 89/12/14 16:38:23; author: cfe; state: Exp; lines added/del: 5/5 drat. kvno==999 checks were weird. ---------------------------- revision 2.16 date: 89/12/14 14:48:49; author: cfe; state: Exp; lines added/del: 13/38 Remove obsolete primary-cell stuff. ---------------------------- revision 2.15 date: 89/12/12 15:09:40; author: ghoti; state: Exp; lines added/del: 118/53 sync with MIT tape Source file: overhead/util/lib/svcconf.c Current version: 2.13 revision 2.13 date: 89/12/14 14:48:19; author: cfe; state: Exp; lines added/del: 4/20 Remove obsolete primary-cell stuff. Source file: overhead/util/lib/setprof.c Current version: 2.11 revision 2.11 date: 89/11/20 16:17:16; author: cfe; state: Exp; lines added/del: 2/2 Typo in error message. Source file: overhead/util/lib/tokpak.c Current version: 2.18 revision 2.18 date: 89/12/18 11:52:09; author: cfe; state: Exp; lines added/del: 3/3 3777777 isn't a big hex number; 7fffff is. ---------------------------- revision 2.17 date: 89/12/15 13:15:13; author: cfe; state: Exp; lines added/del: 7/4 Excise getandpacktokens! ---------------------------- revision 2.16 date: 89/12/15 12:08:54; author: cfe; state: Exp; lines added/del: 138/45 Support passing Kerberos tokens. Source file: overhead/util/lib/tokunpak.c Current version: 2.16 revision 2.16 locked by: cfe; date: 89/12/15 12:09:54; author: cfe; state: Exp; lines added/del: 254/73 Support passing Kerberos tokens. Source file: overhead/util/lib/thiscell.c Current version: 2.8 revision 2.8 date: 89/12/14 14:48:37; author: cfe; state: Exp; lines added/del: 4/82 Remove obsolete primary-cell stuff. Source file: overhead/util/lib/wpcbase.c Current version: 2.9 revision 2.9 date: 89/12/14 14:06:57; author: cfe; state: Exp; lines added/del: 6/5 Remove PrimaryCell stuff in favor of ThisDomain. ---------------------------- revision 2.8 date: 89/11/20 12:22:22; author: cfe; state: Exp; lines added/del: 6/20 Eliminate the union-type parameter to wp_DeAllocate; do casts by hand. (from Isaac Salzman, for SPARC architecture.) Move the defaulting of the WP directory for ThisDomain to wp_InitializeCell, from wp_Initialize. ---------------------------- revision 2.7 date: 89/11/17 17:00:36; author: cfe; state: Exp; lines added/del: 19/8 Provide a preference for a non-AFS White Pages directory. Source file: overhead/util/lib/wpbase.c Current version: 2.12 revision 2.12 date: 89/11/20 12:20:04; author: cfe; state: Exp; lines added/del: 69/41 Eliminate the union-type parameter to wp_DeAllocate; do casts by hand. (from Isaac Salzman, for SPARC architecture.) Move the defaulting of the WP directory for ThisDomain to wp_InitializeCell, from wp_Initialize. Source file: overhead/util/lib/wpname.c Current version: 2.13 revision 2.13 date: 89/11/20 12:21:49; author: cfe; state: Exp; lines added/del: 5/5 Eliminate the union-type parameter to wp_DeAllocate; do casts by hand. (from Isaac Salzman, for SPARC architecture.) Move the defaulting of the WP directory for ThisDomain to wp_InitializeCell, from wp_Initialize. ---------------------------- revision 2.12 date: 89/11/17 16:47:27; author: cfe; state: Exp; lines added/del: 17/14 Clean up name-matching policies. Source file: overhead/util/lib/hname.c Current version: 1.8 revision 1.8 date: 89/11/17 16:41:15; author: cfe; state: Exp; lines added/del: 5/5 Allow admins to specify no domain suffix. Source file: overhead/util/lib/getpty.c Current version: 1.4 revision 1.4 date: 89/11/16 15:06:38; author: tpn; state: Exp; lines added/del: 11/3 Now provides GetPtyandName function to copy the pty name on a passed in string array. AIX needs this in typescript. Source file: overhead/pobbconf/pobbconf.c Current version: 1.58 revision 1.58 date: 89/12/14 15:58:22; author: cfe; state: Exp; lines added/del: 1/1 Set absolute path name for ~andrew-service pseudo-account's home dir. ---------------------------- revision 1.57 date: 89/12/05 16:21:30; author: cfe; state: Exp; lines added/del: 5/3 tinker with local config for Pierette. ---------------------------- revision 1.56 date: 89/12/04 16:48:49; author: cfe; state: Exp; lines added/del: 8/1 Implement a bi-weekly purge. ---------------------------- revision 1.55 date: 89/12/04 11:24:47; author: cfe; state: Exp; lines added/del: 1/1 Track po5's IP address change. ---------------------------- revision 1.54 date: 89/11/21 17:18:39; author: cfe; state: Exp; lines added/del: 83/0 Move the list of folder-trees to be purged from BBD.pobb to pobbconf.c, where it should have been, and where people can configure it. ---------------------------- revision 1.53 date: 89/11/15 11:19:02; author: cfe; state: Exp; lines added/del: 1/1 Change ownership of pierette:mailmavens. Source file: overhead/pobbconf/pobbconf.h Current version: 1.27 revision 1.27 date: 89/12/04 16:49:16; author: cfe; state: Exp; lines added/del: 2/0 Implement a bi-weekly purge. ---------------------------- revision 1.26 date: 89/11/21 17:19:20; author: cfe; state: Exp; lines added/del: 9/0 Move the list of folder-trees to be purged from BBD.pobb to pobbconf.c, where it should have been, and where people can configure it. Source file: overhead/pobbconf/pobbscpt.c Current version: 1.41 revision 1.41 date: 89/12/14 13:57:38; author: cfe; state: Exp; lines added/del: 0/1 Remove primary-cell references. ---------------------------- revision 1.40 date: 89/12/04 16:49:25; author: cfe; state: Exp; lines added/del: 1/0 Implement a bi-weekly purge. ---------------------------- revision 1.39 date: 89/11/21 17:19:28; author: cfe; state: Exp; lines added/del: 4/0 Move the list of folder-trees to be purged from BBD.pobb to pobbconf.c, where it should have been, and where people can configure it. Source file: overhead/pobbconf/Imakefile Current version: 1.24 revision 1.24 date: 89/12/04 16:21:20; author: cfe; state: Exp; lines added/del: 2/1 Use new regime for BBD runs. ---------------------------- revision 1.23 date: 89/11/21 13:25:10; author: cfe; state: Exp; lines added/del: 1/1 Use AFSBASEDIR to help find the ``fs'' command. Source file: overhead/pobbconf/BBD.pobb Current version: 1.58 revision 1.58 date: 89/12/04 16:49:38; author: cfe; state: Exp; lines added/del: 38/0 Implement a bi-weekly purge. ---------------------------- revision 1.57 date: 89/11/21 17:19:49; author: cfe; state: Exp; lines added/del: 12/101 Move the list of folder-trees to be purged from BBD.pobb to pobbconf.c, where it should have been, and where people can configure it. Source file: overhead/pobbconf/config.awk.pobb Current version: 1.31 revision 1.31 date: 89/12/06 09:40:03; author: cfe; state: Exp; lines added/del: 2/0 Announce that runBBD should be running to config.monitor and pobb.shutdown. ---------------------------- revision 1.30 date: 89/12/05 09:51:46; author: cfe; state: Exp; lines added/del: 2/2 Let startup process finish. ---------------------------- revision 1.29 date: 89/12/04 16:49:57; author: cfe; state: Exp; lines added/del: 13/3 Implement a bi-weekly purge. ---------------------------- revision 1.28 date: 89/12/04 16:39:33; author: cfe; state: Exp; lines added/del: 1/1 Cosmetics on generated output. ---------------------------- revision 1.27 date: 89/12/04 16:17:05; author: cfe; state: Exp; lines added/del: 8/4 Use new regime for BBD runs. Source file: overhead/pobbconf/pobb-install.pobb Current version: 1.45 revision 1.45 date: 89/12/04 16:17:27; author: cfe; state: Exp; lines added/del: 6/4 Use new regime for BBD runs. ---------------------------- revision 1.44 date: 89/11/21 13:25:31; author: cfe; state: Exp; lines added/del: 12/2 Use AFSBASEDIR to help find the ``fs'' command. Source file: overhead/pobbconf/post.office.pobb Current version: 1.22 revision 1.22 date: 89/12/04 16:17:56; author: cfe; state: Exp; lines added/del: 4/0 Use new regime for BBD runs. Source file: overhead/pobbconf/queueBBD.pobb Current version: 1.3 revision 1.3 date: 89/12/05 09:27:45; author: cfe; state: Exp; lines added/del: 3/1 Forgot to do all the args. ---------------------------- revision 1.2 date: 89/12/04 16:49:52; author: cfe; state: Exp; lines added/del: 9/0 Implement a bi-weekly purge. ---------------------------- revision 1.1 date: 89/12/04 16:18:07; author: cfe; state: Exp; Initial revision Source file: overhead/pobbconf/uses.nntp.pobb Current version: 1.8 revision 1.8 date: 89/12/05 09:59:35; author: cfe; state: Exp; lines added/del: 0/1 No need for ~usenetbb/.MS.spec any more. Source file: overhead/pobbconf/runBBD.pobb Current version: 1.1 revision 1.1 date: 89/12/04 16:18:31; author: cfe; state: Exp; Initial revision *** patchlevel.h Fri Jan 12 13:40:23 1990 --- patchlevel.h.NEW Fri Jan 12 15:33:28 1990 *************** *** 1 **** ! This is the Andrew component of the X.V11R4 distribution, patch level 1 --- 1 ---- ! This is the Andrew component of the X.V11R4 distribution, patch level 2 No differences encountered *** ams/libs/cui/cuilib.c Tue Dec 5 21:25:07 1989 --- ams/libs/cui/cuilib.c.NEW Tue Dec 12 16:09:49 1989 *************** *** 3,10 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: cuilib.c,v 1.1 89/12/05 21:18:00 xguest Exp $ ! $Source: /xsrc/contrib/toolkits/andrew/ams/libs/cui/RCS/cuilib.c,v $ */ #include #include --- 3,10 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/src/andrew/ams/libs/cui/RCS/cuilib.c,v 2.42 89/12/12 14:57:22 ghoti Exp $ ! $Source: /afs/andrew.cmu.edu/itc/src/andrew/ams/libs/cui/RCS/cuilib.c,v $ */ #include #include *** ams/libs/ms/apndfile.c Wed Nov 22 11:32:01 1989 --- ams/libs/ms/apndfile.c.NEW Fri Dec 22 15:14:11 1989 *************** *** 3,10 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/apndfile.c,v 2.6 89/08/03 13:25:57 ghoti Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/apndfile.c,v $ */ #include #include --- 3,10 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/apndfile.c,v 2.7 89/12/22 15:09:00 cfe Exp $ ! $Source: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/apndfile.c,v $ */ #include #include *************** *** 71,76 **** --- 71,77 ---- bzero(Msg, sizeof(struct MS_Message)); Msg->OpenFD = -1; bzero(&CapTemplate, sizeof(struct MS_CaptionTemplate)); + CapTemplate.basictype = BASICTEMPLATE_NORMAL; CapTemplate.datetype = DATETYPE_FROMHEADER; if (ReadRawFile(FileName, Msg, DoDelete) || ParseMessageFromRawBody(Msg) *** ams/libs/ms/bldcapt.c Wed Nov 22 11:32:06 1989 --- ams/libs/ms/bldcapt.c.NEW Fri Dec 22 15:59:19 1989 *************** *** 3,10 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/bldcapt.c,v 2.12 89/11/07 10:50:02 cfe Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/bldcapt.c,v $ */ #include #include --- 3,10 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/bldcapt.c,v 2.14 89/12/22 15:52:52 cfe Exp $ ! $Source: /afs/andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/bldcapt.c,v $ */ #include #include *************** *** 54,59 **** --- 54,61 ---- if (!Template) { Template = &DefaultTemplate; bzero(Template, sizeof(struct MS_CaptionTemplate)); + DefaultTemplate.basictype = BASICTEMPLATE_NORMAL; + DefaultTemplate.datetype = DATETYPE_CURRENT; } switch (Template->datetype) { *** ams/libs/ms/chzdirs.c Wed Nov 22 11:32:26 1989 --- ams/libs/ms/chzdirs.c.NEW Fri Dec 22 15:14:19 1989 *************** *** 3,10 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/chzdirs.c,v 2.16 89/05/23 18:43:23 bobg Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/chzdirs.c,v $ */ /* chzdirs.c -- Routines for deciding in which directories to put mail --- 3,10 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/chzdirs.c,v 2.16 89/05/23 18:43:23 bobg Exp $ ! $Source: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/chzdirs.c,v $ */ /* chzdirs.c -- Routines for deciding in which directories to put mail *************** *** 17,23 **** */ ! char ams_choosedirs_rcsid[] = "$Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/chzdirs.c,v 2.16 89/05/23 18:43:23 bobg Exp $"; #include #include --- 17,23 ---- */ ! char ams_choosedirs_rcsid[] = "$Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/chzdirs.c,v 2.16 89/05/23 18:43:23 bobg Exp $"; #include #include *** ams/libs/ms/hdlnew.c Wed Nov 22 11:33:20 1989 --- ams/libs/ms/hdlnew.c.NEW Fri Dec 22 15:14:25 1989 *************** *** 2,13 **** * Copyright IBM Corporation 1988,1989 - All Rights Reserved * * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ ! /* $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/hdlnew.c,v 2.51 89/10/20 14:59:27 bobg Exp $ */ /* $ACIS: $ */ ! /* $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/hdlnew.c,v $ */ #ifndef lint ! static char *rcsid = "$Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/hdlnew.c,v 2.51 89/10/20 14:59:27 bobg Exp $ "; #endif /* lint */ --- 2,13 ---- * Copyright IBM Corporation 1988,1989 - All Rights Reserved * * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ ! /* $Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/hdlnew.c,v 2.51 89/10/20 14:59:27 bobg Exp $ */ /* $ACIS: $ */ ! /* $Source: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/hdlnew.c,v $ */ #ifndef lint ! static char *rcsid = "$Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/hdlnew.c,v 2.51 89/10/20 14:59:27 bobg Exp $ "; #endif /* lint */ *** ams/libs/ms/merge.c Wed Nov 22 11:33:51 1989 --- ams/libs/ms/merge.c.NEW Fri Dec 22 15:14:30 1989 *************** *** 3,10 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/merge.c,v 2.6 89/07/13 12:02:15 bobg Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/merge.c,v $ */ #include #include --- 3,10 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/merge.c,v 2.7 89/12/22 15:10:01 cfe Exp $ ! $Source: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/merge.c,v $ */ #include #include *************** *** 254,259 **** --- 254,260 ---- Msg->OpenFD = -1; bzero(&CT, sizeof(struct MS_CaptionTemplate)); CT.datetype = DATETYPE_CURRENT; + CT.basictype = BASICTEMPLATE_NORMAL; if (ReadRawFile(BodyFileName, Msg, FALSE) || ParseMessageFromRawBody(Msg) || CheckAuthUid(Msg) *** ams/libs/ms/newmail.c Wed Nov 22 11:34:13 1989 --- ams/libs/ms/newmail.c.NEW Fri Dec 22 15:14:28 1989 *************** *** 3,16 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/newmail.c,v 2.13 89/05/31 10:04:32 cfe Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/newmail.c,v $ */ /* newmail.c -- Routines for accessing incoming mail files in the raw. */ ! char ams_newmail_rcsid[] = "$Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/newmail.c,v 2.13 89/05/31 10:04:32 cfe Exp $"; #include #include --- 3,16 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/newmail.c,v 2.14 89/12/22 15:10:23 cfe Exp $ ! $Source: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/newmail.c,v $ */ /* newmail.c -- Routines for accessing incoming mail files in the raw. */ ! char ams_newmail_rcsid[] = "$Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/newmail.c,v 2.14 89/12/22 15:10:23 cfe Exp $"; #include #include *************** *** 137,146 **** } debug(4, ("Trying to add message to directory %s\n", DirList[i])); if (Code == PROCESSNEW_FASTRECON) { CaptionTemplateList[i].datetype = DATETYPE_FROMFILE; ! } ! else { CaptionTemplateList[i].datetype = DATETYPE_FROMHEADER; } --- 137,146 ---- } debug(4, ("Trying to add message to directory %s\n", DirList[i])); + CaptionTemplateList[i].basictype = BASICTEMPLATE_NORMAL; if (Code == PROCESSNEW_FASTRECON) { CaptionTemplateList[i].datetype = DATETYPE_FROMFILE; ! } else { CaptionTemplateList[i].datetype = DATETYPE_FROMHEADER; } *** ams/libs/ms/rawdb.c Wed Nov 22 11:34:25 1989 --- ams/libs/ms/rawdb.c.NEW Mon Dec 18 12:18:53 1989 *************** *** 3,16 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/rawdb.c,v 2.50 89/11/07 10:50:15 cfe Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/rawdb.c,v $ */ /* rawdb.c -- Routines for accessing MS database files in the raw. */ ! char ams_rawdb_rcsid[] = "$Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/rawdb.c,v 2.50 89/11/07 10:50:15 cfe Exp $"; #include /* sys/file.h */ #include --- 3,16 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/rawdb.c,v 2.51 89/12/18 11:50:01 cfe Exp $ ! $Source: /afs/andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/rawdb.c,v $ */ /* rawdb.c -- Routines for accessing MS database files in the raw. */ ! char ams_rawdb_rcsid[] = "$Header: /afs/andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/rawdb.c,v 2.51 89/12/18 11:50:01 cfe Exp $"; #include /* sys/file.h */ #include *************** *** 1470,1483 **** return (1); } struct CheckList { char *Label; ! char **ToCheck; ! int Allocated, Used; ! } FilesToCheck = {"file", 0, 0, 0}, ! SnapsToCheck = {"snapshot", 0, 0, 0}, ! Orphans = {"orphan", 0, 0, 0}, ! Missing = {"missing", 0, 0, 0}; int HandleMarksInProgress(Dir, Quiet) struct MS_Directory *Dir; --- 1470,1485 ---- return (1); } + struct FileInfo {char *Name; unsigned long int FileDate;}; + struct CheckList { char *Label; ! struct FileInfo *ToCheck; ! int Allocated, Used, UsesDates; ! } FilesToCheck = {"file", 0, 0, 0, 0}, ! SnapsToCheck = {"snapshot", 0, 0, 0, 0}, ! Orphans = {"orphan", 0, 0, 0, 1}, ! Missing = {"missing", 0, 0, 0, 0}; int HandleMarksInProgress(Dir, Quiet) struct MS_Directory *Dir; *************** *** 1550,1568 **** CheckList->Allocated *= 2; CheckList->Allocated += 25; if (CheckList->ToCheck) { ! CheckList->ToCheck = (char **) realloc(CheckList->ToCheck, CheckList->Allocated * sizeof(char *)); } else { ! CheckList->ToCheck = (char **) malloc(CheckList->Allocated * sizeof(char *)); } if (!CheckList->ToCheck) AMS_RETURN_ERRCODE(ENOMEM, EIN_MALLOC, EVIA_MARKINPROGRESS); debug(262144, ("The %s checklist now has %d/%d entries.\n", CheckList->Label, CheckList->Used, CheckList->Allocated)); } ! CheckList->ToCheck[CheckList->Used] = malloc(1 + strlen(name)); ! if (!CheckList->ToCheck[CheckList->Used]) AMS_RETURN_ERRCODE(ENOMEM, EIN_MALLOC, EVIA_MARKINPROGRESS); ! strcpy(CheckList->ToCheck[CheckList->Used], name); ++CheckList->Used; return (0); } --- 1552,1571 ---- CheckList->Allocated *= 2; CheckList->Allocated += 25; if (CheckList->ToCheck) { ! CheckList->ToCheck = (struct FileInfo *) realloc(CheckList->ToCheck, CheckList->Allocated * sizeof(struct FileInfo)); } else { ! CheckList->ToCheck = (struct FileInfo *) malloc(CheckList->Allocated * sizeof(struct FileInfo)); } if (!CheckList->ToCheck) AMS_RETURN_ERRCODE(ENOMEM, EIN_MALLOC, EVIA_MARKINPROGRESS); debug(262144, ("The %s checklist now has %d/%d entries.\n", CheckList->Label, CheckList->Used, CheckList->Allocated)); } ! CheckList->ToCheck[CheckList->Used].FileDate = 0; ! CheckList->ToCheck[CheckList->Used].Name = (char *) malloc(1 + strlen(name)); ! if (!CheckList->ToCheck[CheckList->Used].Name) AMS_RETURN_ERRCODE(ENOMEM, EIN_MALLOC, EVIA_MARKINPROGRESS); ! strcpy(CheckList->ToCheck[CheckList->Used].Name, name); ++CheckList->Used; return (0); } *************** *** 1569,1575 **** static FreeCheckLists() { ! FreeCheckList(&Orphans); FreeCheckList(&Missing); FreeCheckList(&SnapsToCheck); FreeCheckList(&FilesToCheck); --- 1572,1578 ---- static FreeCheckLists() { ! FreeCheckList(&Orphans); FreeCheckList(&Missing); FreeCheckList(&SnapsToCheck); FreeCheckList(&FilesToCheck); *************** *** 1582,1588 **** if (CheckList->ToCheck) { for (i = 0; i < CheckList->Used; ++i) { ! free(CheckList->ToCheck[i]); } free(CheckList->ToCheck); CheckList->ToCheck = NULL; --- 1585,1591 ---- if (CheckList->ToCheck) { for (i = 0; i < CheckList->Used; ++i) { ! free(CheckList->ToCheck[i].Name); } free(CheckList->ToCheck); CheckList->ToCheck = NULL; *************** *** 1592,1606 **** } static int CompareStrings(s1, s2) ! char **s1, **s2; { ! return (strcmp(*s1, *s2)); } static int CompareTimes(s1, s2) ! char **s1, **s2; { ! return (conv64tolong(*s1) - conv64tolong(*s2)); } static int CheckCheckLists(Dir, Quiet, alien) --- 1595,1609 ---- } static int CompareStrings(s1, s2) ! struct FileInfo *s1, *s2; { ! return (strcmp(s1->Name, s2->Name)); } static int CompareTimes(s1, s2) ! struct FileInfo *s1, *s2; { ! return (s1->FileDate - s2->FileDate); } static int CheckCheckLists(Dir, Quiet, alien) *************** *** 1607,1613 **** struct MS_Directory *Dir; int Quiet, alien; { ! char FileName[1 + MAXPATHLEN], *partstart, ErrorText[200 + MAXPATHLEN]; int foundct = 0, errs = 0, i, j, code, missingct = 0; strcpy(FileName, Dir->UNIXDir); --- 1610,1616 ---- struct MS_Directory *Dir; int Quiet, alien; { ! char FileName[1 + MAXPATHLEN], *partstart, ErrorText[200 + MAXPATHLEN], FileBuf2[1 + MAXPATHLEN]; int foundct = 0, errs = 0, i, j, code, missingct = 0; strcpy(FileName, Dir->UNIXDir); *************** *** 1617,1624 **** debug(262144, ("%d messages in directory %s.\n", FilesToCheck.Used, Dir->UNIXDir)); debug(262144, ("%d snapshots in its .MS_MsgDir file.\n", SnapsToCheck.Used)); ! qsort(FilesToCheck.ToCheck, FilesToCheck.Used, sizeof(char *), CompareStrings); ! qsort(SnapsToCheck.ToCheck, SnapsToCheck.Used, sizeof(char *), CompareStrings); for (i = 0, j = 0; i < FilesToCheck.Used || j < SnapsToCheck.Used;) { if (j >= SnapsToCheck.Used) { debug(2, ("Automatically using the file\n")); --- 1620,1627 ---- debug(262144, ("%d messages in directory %s.\n", FilesToCheck.Used, Dir->UNIXDir)); debug(262144, ("%d snapshots in its .MS_MsgDir file.\n", SnapsToCheck.Used)); ! qsort(FilesToCheck.ToCheck, FilesToCheck.Used, sizeof(struct FileInfo), CompareStrings); ! qsort(SnapsToCheck.ToCheck, SnapsToCheck.Used, sizeof(struct FileInfo), CompareStrings); for (i = 0, j = 0; i < FilesToCheck.Used || j < SnapsToCheck.Used;) { if (j >= SnapsToCheck.Used) { debug(2, ("Automatically using the file\n")); *************** *** 1629,1635 **** code = 1; } else { ! code = strcmp(FilesToCheck.ToCheck[i], SnapsToCheck.ToCheck[j]); debug(2, ("Comparing the file and snapshot\n")); } if (!code) { --- 1632,1638 ---- code = 1; } else { ! code = strcmp(FilesToCheck.ToCheck[i].Name, SnapsToCheck.ToCheck[j].Name); debug(2, ("Comparing the file and snapshot\n")); } if (!code) { *************** *** 1639,1665 **** continue; } if (code > 0) { ! debug(2, ("Adding from snapshot: %s\n", SnapsToCheck.ToCheck[j])); ! AddToCheckList(SnapsToCheck.ToCheck[j], &Missing); ++j; } else { ! debug(2, ("Adding from files: %s\n", FilesToCheck.ToCheck[i])); ! AddToCheckList(FilesToCheck.ToCheck[i], &Orphans); ++i; } } if (Orphans.Used > 0) { debug(262144, ("The directory %s DOES have hidden mail in it-- %d messages!\n", Dir->UNIXDir, Orphans.Used)); - qsort(Orphans.ToCheck, Orphans.Used, sizeof(char *), CompareTimes); for (i = 0; i < Orphans.Used; ++i) { ++foundct; ! debug(2, ("The directory %s DOES have hidden mail in it -- %s!\n", Dir->UNIXDir, Orphans.ToCheck[i])); ! strcpy(partstart, Orphans.ToCheck[i]); ! if (AppendFileToMSDirInternal(FileName, Dir, TRUE, alien)) ++errs; if ((i & 077) == 077) ! debug(262144, ("Finished adding %d of %d hidden files\n", i, Orphans.Used)); } debug(262144, ("Finished adding all %d hidden files.\n", Orphans.Used)); } --- 1642,1674 ---- continue; } if (code > 0) { ! debug(2, ("Adding from snapshot: %s\n", SnapsToCheck.ToCheck[j].Name)); ! AddToCheckList(SnapsToCheck.ToCheck[j].Name, &Missing); ++j; } else { ! debug(2, ("Adding from files: %s\n", FilesToCheck.ToCheck[i].Name)); ! AddToCheckList(FilesToCheck.ToCheck[i].Name, &Orphans); ++i; } } if (Orphans.Used > 0) { + struct stat SBuf; debug(262144, ("The directory %s DOES have hidden mail in it-- %d messages!\n", Dir->UNIXDir, Orphans.Used)); for (i = 0; i < Orphans.Used; ++i) { + strcpy(partstart, Orphans.ToCheck[i].Name); + Orphans.ToCheck[i].FileDate = (stat(FileName, &SBuf) == 0 ? SBuf.st_ctime : 0); + } + qsort(Orphans.ToCheck, Orphans.Used, sizeof(struct FileInfo), CompareTimes); + for (i = 0; i < Orphans.Used; ++i) { ++foundct; ! debug(2, ("The directory %s DOES have hidden mail in it -- %s!\n", Dir->UNIXDir, Orphans.ToCheck[i].Name)); ! strcpy(partstart, Orphans.ToCheck[i].Name); ! strcpy(FileBuf2, FileName); /* make a temp copy of the name of the file to add */ ! if (AppendFileToMSDirInternal(FileBuf2, Dir, TRUE, alien)) ++errs; if ((i & 077) == 077) ! debug(262144, ("...finished adding %d of %d hidden files\n", i, Orphans.Used)); } debug(262144, ("Finished adding all %d hidden files.\n", Orphans.Used)); } *************** *** 1670,1677 **** char snapshot[AMS_SNAPSHOTSIZE + 1]; ++missingct; ! debug(2, ("The directory %s has an orphaned snapshot in it -- %s!\n", Dir->UNIXDir, Missing.ToCheck[i])); ! mserrcode = GetSnapshotByID(Dir, Missing.ToCheck[i], &msgnum, snapshot); if (mserrcode) { ++errs; } else { --- 1679,1686 ---- char snapshot[AMS_SNAPSHOTSIZE + 1]; ++missingct; ! debug(2, ("The directory %s has an orphaned snapshot in it -- %s!\n", Dir->UNIXDir, Missing.ToCheck[i].Name)); ! mserrcode = GetSnapshotByID(Dir, Missing.ToCheck[i].Name, &msgnum, snapshot); if (mserrcode) { ++errs; } else { *** ams/libs/ms/recon.c Wed Nov 22 11:34:53 1989 --- ams/libs/ms/recon.c.NEW Fri Dec 22 15:14:34 1989 *************** *** 4,11 **** \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/recon.c,v 2.17 89/10/26 11:02:48 cfe Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/recon.c,v $ */ #include --- 4,11 ---- \* ********************************************************************** */ /* ! $Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/recon.c,v 2.17 89/10/26 11:02:48 cfe Exp $ ! $Source: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/recon.c,v $ */ #include *************** *** 37,43 **** #define MS_DB_VERSION 4 ! static char ams_reconstruct_rcsid[] = "$Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/recon.c,v 2.17 89/10/26 11:02:48 cfe Exp $"; struct hashlist { unsigned long *hashes; --- 37,43 ---- #define MS_DB_VERSION 4 ! static char ams_reconstruct_rcsid[] = "$Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/recon.c,v 2.17 89/10/26 11:02:48 cfe Exp $"; struct hashlist { unsigned long *hashes; *** ams/libs/ms/submsg.c Wed Nov 22 11:35:19 1989 --- ams/libs/ms/submsg.c.NEW Fri Dec 22 15:14:37 1989 *************** *** 3,10 **** * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/submsg.c,v 2.10 89/07/14 17:35:38 cfe Exp $ ! $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/libs/ms/RCS/submsg.c,v $ */ #include #include --- 3,10 ---- * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ /* ! $Header: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/submsg.c,v 2.11 89/12/22 15:10:42 cfe Exp $ ! $Source: /afs/.andrew.cmu.edu/itc/src/andrew/ams/libs/ms/RCS/submsg.c,v $ */ #include #include *************** *** 315,320 **** --- 315,321 ---- char NewFileName[1 + MAXPATHLEN], *s2; bzero(&Captemp, sizeof(struct MS_CaptionTemplate)); + Captemp.basictype = BASICTEMPLATE_NORMAL; Captemp.datetype = DATETYPE_CURRENT; s2 = Msg->RawBits; /* Why am I doing this? I no longer * remember, sigh... */ *** ams/msclients/cui/cui.c Wed Nov 22 11:37:15 1989 --- ams/msclients/cui/cui.c.NEW Mon Dec 18 12:19:11 1989 *************** *** 2,16 **** * Copyright IBM Corporation 1988,1989 - All Rights Reserved * * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ ! /* $Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/msclients/cui/RCS/cui.c,v 2.26 89/11/20 10:27:45 cfe Exp $ */ /* $ACIS: $ */ ! /* $Source: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/msclients/cui/RCS/cui.c,v $ */ #define CUIP_MAJ_VER 2 #define CUIP_MIN_VER 0 #ifndef NO_DUPLICATE_STATIC_CHARS ! static char *rcsid = "$Header: /afs/andrew.cmu.edu/itc/sm/releases/X.V11R4/andrew/ams/msclients/cui/RCS/cui.c,v 2.26 89/11/20 10:27:45 cfe Exp $ "; #endif /* NO_DUPLICATE_STATIC_CHARS */ --- 2,16 ---- * Copyright IBM Corporation 1988,1989 - All Rights Reserved * * For full copyright information see:'andrew/config/COPYRITE' * \* ********************************************************************** */ ! /* $Header: /afs/andrew.cmu.edu/itc/src/andrew/ams/msclients/cui/RCS/cui.c,v 2.28 89/12/18 10:59:56 cfe Exp $ */ /* $ACIS: $ */ ! /* $Source: /afs/andrew.cmu.edu/itc/src/andrew/ams/msclients/cui/RCS/cui.c,v $ */ #define CUIP_MAJ_VER 2 #define CUIP_MIN_VER 0 #ifndef NO_DUPLICATE_STATIC_CHARS ! static char *rcsid = "$Header: /afs/andrew.cmu.edu/itc/src/andrew/ams/msclients/cui/RCS/cui.c,v 2.28 89/12/18 10:59:56 cfe Exp $ "; #endif /* NO_DUPLICATE_STATIC_CHARS */ *************** *** 1645,1651 **** int Period, Passes; char *cmd = arg, ! CmdBuf[500]; debug(1,("DemonLoop %s\n", arg)); while (*cmd && *cmd != ' ' && *cmd != '\n') { --- 1645,1651 ---- int Period, Passes; char *cmd = arg, ! *CmdBuf; debug(1,("DemonLoop %s\n", arg)); while (*cmd && *cmd != ' ' && *cmd != '\n') { *************** *** 1672,1683 **** return(0); } cmd = StripWhiteEnds(cmd); while (TRUE) { strcpy(CmdBuf, cmd); /* ProcessCommand eats its arguments */ ProcessMultipleCommands(CmdBuf, AliasCt); /* always pass it top-level ct */ ! if (Passes > 0 && --Passes == 0) return(0); sleep(Period); } } --- 1672,1690 ---- return(0); } cmd = StripWhiteEnds(cmd); + CmdBuf = (char *) malloc(strlen(cmd)+1); + if (CmdBuf == NULL) { + ReportError("Out of storage for command buffer", ERR_WARNING, FALSE); + return(0); + } while (TRUE) { strcpy(CmdBuf, cmd); /* ProcessCommand eats its arguments */ ProcessMultipleCommands(CmdBuf, AliasCt); /* always pass it top-level ct */ ! if (Passes > 0 && --Passes == 0) { ! free(CmdBuf); return(0); + } sleep(Period); } } *************** *** 2413,2420 **** *date++ = '\0'; date = StripWhiteEnds(date); } ! if (!*dname) { ! ReportError("You must supply a header specification", ERR_WARNING, FALSE); return(-1); } if (!date || !*date) { --- 2420,2427 ---- *date++ = '\0'; date = StripWhiteEnds(date); } ! if (!dname || !*dname || *dname != '/') { ! ReportError("You must supply a full path name to a folder tree (beginning with '/')", ERR_WARNING, FALSE); return(-1); } if (!date || !*date) { *** ams/utils/dlistc/readalias.c Wed Nov 22 11:39:26 1989 --- ams/utils/dlistc/readalias.c.NEW Mon Dec 18 12:19:31 1989 *************** *** 470,478 **** { int i; ! for(i = 0; aliases->aliases[i]!=NULL; ++i) { ! ResolveAliasMembers(aliases, aliases->aliases[i]); ! } } static int AliasCmp(a1, a2) --- 470,479 ---- { int i; ! if (aliases->alias_count > 0) ! for(i = 0; aliases->aliases[i] != NULL; ++i) { ! ResolveAliasMembers(aliases, aliases->aliases[i]); ! } } static int AliasCmp(a1, a2) *** ams/delivery/sendmail/sendmail.c Wed Nov 22 11:41:54 1989 --- ams/delivery/sendmail/sendmail.c.NEW Thu Dec 14 16:02:00 1989 *************** *** 183,189 **** /* Body of message */ fprintf(fout, "/usr/lib/sendmail was invoked on host %s at %s\n", host(), arpadate()); ! fprintf(fout, "User %s, primary ``%s'', WS %s\n", user(), UserPrimaryCell, WorkstationCell); fprintf(fout, "Problem: %s\n", problem); fprintf(fout, "\nCommand: %s", argv[0]); for (i=1; argv[i]!=NULL; i++) --- 183,189 ---- /* Body of message */ fprintf(fout, "/usr/lib/sendmail was invoked on host %s at %s\n", host(), arpadate()); ! fprintf(fout, "User %s, WS cell %s\n", user(), WorkstationCell); fprintf(fout, "Problem: %s\n", problem); fprintf(fout, "\nCommand: %s", argv[0]); for (i=1; argv[i]!=NULL; i++) *** ams/doc/MsgSrvr.ovr Wed Nov 22 11:44:00 1989 --- ams/doc/MsgSrvr.ovr.NEW Mon Dec 18 12:20:11 1989 *************** *** 1 **** ! Overview of the Messages DataBase and Message Server. --- 1,461 ---- ! \begindata{text,268712400} ! \textdsversion{12} ! \template{default} ! \define{footnote ! ! attr:[Flags OverBar Int Set] ! attr:[FontSize PreviousFontSize Point -2]} ! \majorheading{Overview of the Andrew Message System Database ! ! } ! \chapter{Introduction} ! ! The Andrew Message System (AMS) is a collection of interfaces to the AMS ! ``Message Server,'' another program whose purpose is to interact with a large ! and diverse database. The elements of this database are implemented as normal ! Unix\footnote{\ ! \begindata{fnote,268705460} ! \textdsversion{12} ! Unix is a trademark of AT&T Bell Laboratories.\ ! \enddata{fnote,268705460} ! \view{fnotev,268705460,0,0,0}} files and directories, but there are several ! classes of these files and directories, each of which has a purpose and ! content specialized for use by and for the Message Server. This document ! describes all classes of files and directories created by and/or for the ! Andrew Message System. ! ! ! \begindata{bp,268722248} ! \enddata{bp,268722248} ! \view{bpv,268722248,1,0,0} ! \chapter{Terminology} ! ! This chapter introduces several phrases and terms necessary to understanding ! the functions of the diverse parts of the AMS database. ! ! ! \leftindent{\bold{Body} The portion of a \italic{message} which follows the ! \italic{header} region and which may contain arbitrary text. See ``Header''. ! ! ! \bold{Address} The destination of a \italic{message}. One or more destination ! addresses are specified by the sender of a message, indicating who the ! recipients are to be. In the Andrew Message System, the concept of an address ! is often broken down into the following two domains: ! ! \leftindent{\description{\bold{Display Address} This is the address that is ! ``advertised'' for a given destination; i.e., the address that users are told ! to specify in their outgoing messages. The display address may or may not ! uniquely identify the recipient to the delivery system; however, ! \italic{validation} can convert a display address into a \italic{submission ! address}. ! ! \bold{Submission Address} This is the address that is actually used by the ! delivery system to route the message to the correct recipient(s). ! ! }}Display addresses are designed to be easily remembered; for instance, to ! send a message to ``andrew.ms'' (which is the name of a local public folder at ! Carnegie Mellon), the sender need only place ``andrew.ms'' in the ``To'' field ! of an outgoing message. The sender need not be aware that validation converts ! ``andrew.ms'' to the more meaningful submission address ! ``+dist+/afs/andrew.cmu.edu/usr0/postman/DistLists/AMS-users.dl@andrew.cmu.edu.\ ! '' ! ! ! \bold{Caption} A brief, one-line summary of a \italic{message}, usually ! containing the sending date, a portion of the Subject \italic{header}, the ! name of the sender, and the length of the message in bytes. AMS interfaces ! typically display some of the message captions in whichever \italic{folder} ! the user happens to be reading; the user then chooses which full messages to ! read based on the captions. ! ! ! \bold{Display Address} See ``Address.'' ! ! ! \bold{FLAMES} The Filtering Language for the Andrew MEssage System. This ! programming language, based on Lisp, can be used to write programs that ! control the disposition of incoming \italic{message}s during \italic{mailbox ! processing}. ! ! ! \bold{Folder} A sequenced collection of \italic{message}s. A folder is used ! to represent a user's mail, a bulletin board, a USENET newsgroup, etc. A ! folder is the unit of \italic{subscription}; i.e., a user may subscribe to a ! folder, after which he or she will normally be shown the new messages as they ! arrive in that folder. Each folder is implemented as a Unix directory with ! some special attributes: it must contain a special index file; it must reside ! somewhere beneath a \italic{folder root}; and it may contain zero, one or more ! message files and/or \italic{subfolder}s. ! ! ! \bold{Folder Root} Any directory whose name begins with the string ! ``.MESSAGES''. A folder root is not a \italic{folder}, but directories and ! subdirectories beneath it may be folders. If a directory is not somewhere ! beneath a folder root, then it is not a folder. ! ! ! \bold{Header} One of several information lines that are normally found at the ! beginning of a \italic{message}. A message is divided into two parts: the ! header region and the \italic{body} ! region\footnote{\ ! \begindata{fnote,268705684} ! \textdsversion{12} ! Refer to Internet RFC 822 for a detailed description of the format of network ! mail messages.\ ! \enddata{fnote,268705684} ! \view{fnotev,268705684,2,0,0}}. Each header has a name, such as ``Subject,'' ! ``Date'' or ``From.'' The name is terminated by a colon (:), followed by the ! content of the header. Headers typically identify the sender of a message, ! the date it was sent, the subject of the message, the intended recipients, the ! route taken by the message to reach its current location, etc. The end of the ! header region (and the beginning of the body region) is demarked by the first ! empty line encountered. ! ! ! \bold{Mailbox} A repository for incoming \italic{message}s. All messages ! arriving at a given destination are immediately placed in that destination's ! Mailbox. These messages may then be filed into one or more \italic{folder}s, ! possibly via a \italic{FLAMES} program. Once in folders, messages may be read ! normally. A Mailbox is simply a Unix directory. ! ! ! \bold{Mailbox Processing} The process of removing \italic{message}s from a ! \italic{mailbox} and (usually) placing them into \italic{folder}s. Messages ! must be in folders in order to be read with any AMS interface. Mailbox ! processing can be controlled with a \italic{FLAMES} program. ! ! ! \bold{Message} An individual piece of mail, or a bulletin board post. Each ! message is stored individually in its own Unix file. ! ! ! \bold{Postmaster} A specially designated user of the system. The postmaster ! is typically responsible for maintaining public \italic{folder}s, delivering ! \italic{message}s, and various other tasks. The postmaster is highly ! priveleged with respect to the AMS Database. ! ! ! \bold{Subfolder} A subdirectory of a \italic{folder}. Any directories ! appearing inside of folders are themselves folders (as long as they meet the ! necessary conditions for ``folderness''). ! ! ! \bold{Submission Address} See ``Address.'' ! ! ! \bold{Subscription} An indication to the Andrew Message System that the user ! wishes to read the \italic{message}s in a given \italic{folder}. When a user ! subscribes to a folder, he or she will then normally be informed by AMS ! programs when new messages arrive in that folder. A user may have any number ! of folder subscriptions. ! ! ! \bold{Validation} That phase of \italic{message}-sending wherein ! user-specified destination \italic{address}es are disambiguated and/or ! corrected. For instance, if a user addresses a piece of mail to ``John ! Smith,'' and there are three John Smiths known to the AMS, then the user will ! be prompted with a menu of different John Smiths, and may choose from among ! the three unique \italic{user-id}s. Alternatively, validation may convert a ! \italic{display address} to a \italic{submission address}. ! ! } ! \begindata{bp,268720740} ! \enddata{bp,268720740} ! \view{bpv,268720740,3,0,0} ! \chapter{Mail} ! ! ! \section{Introduction} ! ! A major use of the Andrew Message System is electronic mail; i.e., the sending ! of messages among individual users. This chapter describes the portions of ! the AMS Database used for the purposes of personal mail. ! ! ! \section{Essential Files and Directories} ! ! ! \subsection{Directories} ! ! ! \paragraph{$HOME/Mailbox} ! ! This directory is the repository for incoming mail. The Andrew Message ! Delivery System places messages destined for a particular user into that ! user's Mailbox directory, each message in a separate and uniquely-named file. ! These messages then await mailbox processing, at which time they may be ! placed into folders, re-sent to other destinations, etc. By default, mailbox ! processing places all messages in Mailbox into the user's ``mail'' folder. ! ! ! The permissions on $HOME/Mailbox should be set so that anyone may insert or ! lock files and do directory lookups; the owner should be able to read, insert, ! lock, lookup and delete files from $HOME/Mailbox. ! ! ! \paragraph{$HOME/.Outgoing} ! ! This directory is the repository for outgoing mail. When a user composes a ! message and then submits it for delivery, it is placed in a file in this ! directory. The message will then shortly be delivered by the Andrew Message ! Delivery System. ! ! ! The permissions on $HOME/.Outgoing should be set so that the owner may read, ! insert, delete, list and lock files; the Postmaster should have the same ! rights. ! ! ! \paragraph{$HOME/.MESSAGES} ! ! This is the user's default folder root. ! ! ! The permissions on $HOME/.MESSAGES should be set so that the owner has ! complete access. No other users should have rights to this directory. ! ! ! \paragraph{$HOME/.MESSAGES/mail} ! ! This is the user's default folder. If the user does not have a FLAMES ! program, then messages in that user's mailbox will automatically be placed in ! this folder during mailbox processing (i.e., when the user ``Checks new ! mail.'') ! ! ! The permissions on $HOME/.MESSAGES/mail should be set so that the owner has ! complete access. No other users should have rights to this directory. ! ! ! \subsection{Files} ! ! ! \paragraph{$HOME/.AMS.prof} ! ! This file contains information about the user's subscriptions. It consists ! primarily of lines of the form ! ! ! \leftindent{