/*% cat %
This directory contains source for modules as listed.
The include files used in these source modules are in ../include
Each of the files in this directory has a `com' line for compilation.

NOTE - COM INSTALLATION:

`Com' checks for magic numbers in the first word of the file.
You may want to change this to whatever mechanism that you
use for listing magic numbers.
I used the simplest form possible.
The relevant repl lines are:

com.c:000100:	switch (magic) {
com.c:000101:	case 0407: /* executable */
com.c:000102:	case 0410: /* pure executable */
com.c:000103:	case 0411: /* separate executable */
com.c:000104:	case 043344: /* tips profile */
com.c:000105:	case 043345: /* tips template object code */
com.c:000106:	case 0145405: /* huffman encoded file */
com.c:000107:	case 0177545: /* archive */
com.c:000108:	case 0177555: /* old archive */
com.c:000109:		fprintf(diag, "%s: has a magic number 0%o\n", file, magic);
com.c:000110:		close(cbuf.fildes);
com.c:000111:		return;
com.c:000112:	}

NOTE - Use of Repl.

To delete the invalid cases in the above, replace the 2nd colon
by a `d'; put lines into file called `whatever'.
Then do:

	repl -vs whatever

to check it, and

	repl -vr whatever

to do it.
Please remember that deleting lines will change the line numbers
thus repl input shouldn't be used twice.

DIRECTORIES:

FILES:

addr.c     -- form letter, mailing label, and address fetch 
args.c     -- run a command with args from standard input 
badchars.c -- find unprintables 
cal.c      -- multi-format version of Cal (I) 
com.c      -- run a command contained in source file 
comingup.c -- check comingup files for events (eg. birthdays) 
commf.c    -- remove words from I /O stream in dictionaries
commw.c    -- remove words from I/O stream found in dictionaries 
divide.c   -- a split that looks for a line to split at 
double.c   -- produce a replacement dictionary 
ffill.c    -- fill in empty fields with last non-null equivalent 
filter.c   -- run a file through contained shell commands 
findc.c  -- find and replace C terms
findf.c  -- find and replace fields
findw.c  -- find and replace words
grep.c     -- grep with new flags 
kmake.c    -- A make that understands archives 
l.c        -- a fast but simple columnated ls 
lastsl.c   -- replace last slashes by a tab 
lines.c    -- output first M and last N lines of a file 

PATHNAME repl change lines:

addr.c:000016:#define	ADDRDEFAULT "/usr/adm/addr"
addr.c:000020:#define	DEVTTY	"/dev/tty"
addr.c:000024:#include	"../include/getcbuf.h"
addr.c:000228:		sprintf(addrfile, "%s/.addr", logdir());
com.c:000145:					execl("/bin/sh", 
comingup.c:000028:#include "../include/getcbuf.h"
comingup.c:000066:	getuser(getuid(), "/etc/passwd");
comingup.c:000068:	getuser(getgid(), "/etc/group");
comingup.c:000396:			strcpy(fstr, "/usr/adm/comingup");
comingup.c:000402:			strcpy(fstr, "/usr/adm/comingup.ext");
comingup.c:000405:			sprintf(fstr, "%s/.comingup", logdir());
commf.c:000013:#include "../include/getcbuf.h"
commw.c:000008:#define	W2006	"/usr/lib/w2006"
commw.c:000009:#define	BNSR	"/usr/lib/b2006"
commw.c:000016:#include "../include/getcbuf.h"
divide.c:000005:#include "../include/getcbuf.h"
double.c:000009:#include "../include/getcbuf.h"
filter.c:000126:		execl("/bin/sh", "sh", "-c", line+lensearch, 0);
findf.c:000011:#include "../include/getcbuf.h"
findw.c:000005:#define	NRPREFIX	"/usr/lib/nr.prefixes"
findw.c:000006:#define	VPPREFIX	"/usr/lib/vp.prefixes"
findw.c:000019:#include "../include/getcbuf.h"
kmake.c:000042:char tempname[] "/tmp/kmakez99999";
kmake.c:000409:		execl("/bin/sh", "sh", tempname, tmpname(d->cons, 0), tmpname(d->ante, 1));
l.c:000009:#include "../include/stat.h"
lines.c:000013:#include "../include/getcbuf.h"
lines.c:000024:	sprintf(filename, "/tmp/lines%d", getpid());
