mkid patches part 1/2

Tom Horsley tom at ssd.csd.harris.com
Wed Feb 27 03:08:10 AEST 1991


This is the first of a two-part posting with patches to apply to the mkid
sources posted to alt.sources back before Christmas. This updates mkid
with all the patches I have received since that time, and adds a short
README file as well as a texinfo manual. If I get no additional patches
in the next few days, I will submit the whole thing to comp.sources.unix.

For folks who don't remember what mkid is, here is part of the README file:

   An ID database is simply a file containing a list of file names, a
list of identifiers, and a binary relation (stored as a bit matrix)
indicating which of the identifiers appear in each file.  With this
database and some tools to manipulate the data, a host of tasks
become simpler and faster. You can `grep' through hundreds of files
for a name, skipping the files that don't contain the name.  You can
search for all the memos containing references to a project.  You can
edit every file that calls some function, adding a new required
argument. Anyone with a large software project to maintain, or a
large set of text files to organize can benefit from the ID database
and the tools that manipulate it.

After unpacking, you will have two new files (README and id.texinfo) and
a file named "Patch". The "Patch" file should be applied to the sources
using the "patch" program: patch -p -N < Patch

#! /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 <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 2)."
# Contents:  Patch README
# Wrapped by tom at hcx2 on Tue Feb 26 10:53:11 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Patch' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Patch'\"
else
echo shar: Extracting \"'Patch'\" \(18303 characters\)
sed "s/^X//" >'Patch' <<'END_OF_FILE'
X*** ../../usenet-mkid/src/MANIFEST	Tue Feb 26 10:40:46 1991
X--- MANIFEST	Tue Feb 26 10:07:10 1991
X***************
X*** 1,52 ****
X     File Name		Archive #	Description
X  -----------------------------------------------------------
X   MANIFEST                   1	This shipping list
X!  Makefile                   5	
X!  Status                     2	
X   TODO                       1	
X!  TUTORIAL                   8	
X   basename.c                 1	
X   bitcount.c                 1	
X   bitops.c                   1	
X   bitops.h                   1	
X!  bitsvec.c                  2	
X   bool.h                     1	
X   bsearch.c                  1	
X   bzero.c                    1	
X!  cannoname.c                3	
X   document.c                 1	
X   extern.h                   1	
X   fid.1                      1	
X!  fid.c                      2	
X   gets0.c                    1	
X   getsFF.c                   1	
X!  getscan.c                  6	
X   gid.el                     1	
X!  hash.c                     2	
X!  id.h                       2	
X   idx.c                      1	
X!  iid.1                      4	
X!  iid.help                   3	
X!  iid.y                      7	
X!  iiddef.h                   5	
X!  iidfun.c                   9	
X   init.c                     1	
X!  kshgetwd.c                 2	
X!  lid.1                      4	
X!  lid.c                     11	
X!  mkid.1                     4	
X!  mkid.c                    10	
X   numtst.c                   1	
X!  opensrc.c                  2	
X   patchlevel.h               1	
X!  paths.c                    3	
X   radix.h                    1	
X!  scan-asm.c                 5	
X!  scan-c.c                   6	
X!  scan-text.c                3	
X!  stoi.c                     2	
X   string.h                   1	
X!  symfunc.el                 3	
X   tty.c                      1	
X   uerror.c                   1	
X   unsymlink.c                2	
X--- 1,54 ----
X     File Name		Archive #	Description
X  -----------------------------------------------------------
X   MANIFEST                   1	This shipping list
X!  Makefile                   3	
X!  README                     1	
X!  Status                     1	
X   TODO                       1	
X!  TUTORIAL                   4	
X   basename.c                 1	
X   bitcount.c                 1	
X   bitops.c                   1	
X   bitops.h                   1	
X!  bitsvec.c                  1	
X   bool.h                     1	
X   bsearch.c                  1	
X   bzero.c                    1	
X!  cannoname.c                2	
X   document.c                 1	
X   extern.h                   1	
X   fid.1                      1	
X!  fid.c                      1	
X   gets0.c                    1	
X   getsFF.c                   1	
X!  getscan.c                  3	
X   gid.el                     1	
X!  hash.c                     1	
X!  id.h                       1	
X!  id.texinfo                 7	
X   idx.c                      1	
X!  iid.1                      2	
X!  iid.help                   2	
X!  iid.y                      4	
X!  iiddef.h                   3	
X!  iidfun.c                   5	
X   init.c                     1	
X!  kshgetwd.c                 1	
X!  lid.1                      3	
X!  lid.c                      6	
X!  mkid.1                     2	
X!  mkid.c                     5	
X   numtst.c                   1	
X!  opensrc.c                  1	
X   patchlevel.h               1	
X!  paths.c                    2	
X   radix.h                    1	
X!  scan-asm.c                 3	
X!  scan-c.c                   4	
X!  scan-text.c                2	
X!  stoi.c                     1	
X   string.h                   1	
X!  symfunc.el                 2	
X   tty.c                      1	
X   uerror.c                   1	
X   unsymlink.c                2	
X*** ../../usenet-mkid/src/Makefile	Tue Feb 26 10:41:33 1991
X--- Makefile	Tue Feb 26 10:08:09 1991
X***************
X*** 30,35 ****
X--- 30,43 ----
X  #
X  # * If you have ranlib(1), define `RANLIB' as such.  If you don't have
X  #   it, set `RANLIB' to something harmless like `@:', or `echo'
X+ #
X+ # * If you want lists of file names compressed with csh {} notation by
X+ #   default, set -DCRUNCH_DEFAULT=1. If you want files printed with no
X+ #   "crunching", set -DCRUNCH_DEFAULT=0. (The -k and -g options allow
X+ #   runtime control regardless of the builtin default).
X+ #
X+ # * If your system supports the alloca() function for allocating space
X+ #   on the stack, defined -DUSE_ALLOCA
X  # --------------------------------------------------------------------
X  
X  DEFS	=	-Dvoid=int -DREGEX -DTERMIO	# typical System-V defs
X***************
X*** 45,50 ****
X--- 53,64 ----
X  RANLIB	=	@:	# system doesn't have ranlib (Sys-V)
X  # RANLIB	=	ranlib	# system has ranlib (typically V7 & BSD)
X  
X+ CRUNCH  =       -DCRUNCH_DEFAULT=1      # Original default - crunch file names
X+ #CRUNCH =       -DCRUNCH_DEFAULT=0      # Don't crunch names by default
X+ 
X+ ALLOCA  =       -DUSE_ALLOCA            # alloca support exists on system
X+ #ALLOCA =                               # system has no alloca() function
X+ 
X  # --------------------------------------------------------------------
X  # Compilation / Loading options:
X  #   Choose options to generate a system as an installed product,
X***************
X*** 70,76 ****
X  MANDIR =        /usr/catman/local_man/man1
X  
X  LIDLINKS = 	gid aid eid pid
X! CFLAGS =	$(CCFLG) -I. $(DEFS)
X  LDFLAGS =	$(LDFLG) libid.a $(LIBS)
X  
X  OFILES =	init.o getscan.o scan-c.o scan-asm.o bsearch.o hash.o \
X--- 84,90 ----
X  MANDIR =        /usr/catman/local_man/man1
X  
X  LIDLINKS = 	gid aid eid pid
X! CFLAGS =	$(CCFLG) -I. $(DEFS) $(CRUNCH) $(ALLOCA)
X  LDFLAGS =	$(LDFLG) libid.a $(LIBS)
X  
X  OFILES =	init.o getscan.o scan-c.o scan-asm.o bsearch.o hash.o \
X***************
X*** 78,83 ****
X--- 92,100 ----
X  		stoi.o uerror.o document.o bitcount.o wmatch.o bitsvec.o \
X  		tty.o bzero.o scan-text.o cannoname.o kshgetwd.o unsymlink.o
X  
X+ TEXJUNK=id.aux id.cp id.cps id.dvi id.fn id.fns id.ky id.kys id.log id.pg \
X+ 	id.pgs id.toc id.tp id.tps id.vr id.vrs id-info
X+ 
X  # --------------------------------------------------------------------
X  
X  all:		$(TARGETS)
X***************
X*** 153,159 ****
X  		ln $(DESTINATION_DIR)/lid $(DESTINATION_DIR)/pid
X  
X  clean:
X! 		rm -f $(TARGETS) *.o iid.c core a.out
X  
X  id.tar:
X  		cd ..; tar cvbf 20 id/id.tar id/*.[ch1-8] id/makefile id/TODO id/TUTORIAL
X--- 170,176 ----
X  		ln $(DESTINATION_DIR)/lid $(DESTINATION_DIR)/pid
X  
X  clean:
X! 		rm -f $(TARGETS) *.o iid.c core a.out $(TEXJUNK)
X  
X  id.tar:
X  		cd ..; tar cvbf 20 id/id.tar id/*.[ch1-8] id/makefile id/TODO id/TUTORIAL
X***************
X*** 175,188 ****
X  debug:
X  	make CCFLG='-g -DDEBUG' LDFLG='-g'
X  
X! ID:
X! 	rm -f ../TOOLS/ID ../EXEC/ID ../SRC/ID
X! 	cd ../TOOLS ; find ../SRC -name '*.[ch]' -print | mkid -v -
X! 	ln ../TOOLS/ID ../EXEC/ID
X! 	ln ../TOOLS/ID ../SRC/ID
X  
X! TAGS:
X! 	rm -f ../TOOLS/TAGS ../EXEC/TAGS ../SRC/TAGS
X! 	cd ../TOOLS ; find ../SRC -name '*.[ch]' -print | etags -twS
X! 	ln ../TOOLS/TAGS ../EXEC/TAGS
X! 	ln ../TOOLS/TAGS ../SRC/TAGS
X--- 192,233 ----
X  debug:
X  	make CCFLG='-g -DDEBUG' LDFLG='-g'
X  
X! ID::
X! 	/bin/rm -f ID
X! 	mkid *.[chy]
X  
X! TAGS::
X! 	/bin/rm -f TAGS
X! 	etags -tw *.[chy]
X! 
X! # TeX stuff - these actions count on several things being installed on
X! # your system:
X! #
X! # tex - the document processor
X! # texinfo.tex - the texinfo macro package used to format the document
X! # texindex - the index sorting program used to generate the index
X! # makeinfo - the program to turn texinfo files into online documentation
X! #
X! # A tex distribution tape can be obtained from the University of Washington.
X! # send email to: elisabet at max.u.washington.edu for more info.
X! #
X! # The other texinfo tools are part of the Gnuemacs distribution and can
X! # be obtained via FTP from prep.ai.mit.edu
X! 
X! # Make the online info file by running makeinfo - texinfo-format-buffer from
X! # within emacs probably will not work very well.
X! id-info: id.texinfo
X! 	makeinfo id.texinfo
X! 
X! # If you are running TeX from a clean directory, need to run once to get
X! # the initial .aux file with the cross reference info in it.
X! id.aux: id.texinfo
X! 	tex id.texinfo
X! 	texindex id.??
X! 
X! # Running TeX twice here is probably overkill, but it makes absolutely sure
X! # the index agrees with the actual location of text.
X! id.dvi: id.aux
X! 	tex id.texinfo
X! 	texindex id.??
X! 	tex id.texinfo
X*** ../../usenet-mkid/src/Status	Tue Feb 26 10:41:11 1991
X--- Status	Tue Feb 26 10:07:12 1991
X***************
X*** 1,30 ****
X! This is the mkid package originally posted to the net around September of
X! 1987 by Greg McGary (who then vanished from the net). Since then I have been
X! extensively hacking it, and so have others. In an effort to have all of us
X! benefit from the modifications and improvements we all have made, I have
X! (probably foolishly :-) volunteered to "take over" mkid.
X  
X! To get the ball rolling, I am posting this version to alt.sources, and I
X! expect people to send me their patches. I will merge them all and eventually
X! post an "official" version to comp.sources.unix.
X  
X! I know there are probably portability problems with this version of the
X! source, I have some stuff in here that references functions you only have if
X! your system supports symbolic links, etc, so it will need to have some
X! config parameters and ifdef code added for sure.
X  
X! Anyway, keep those patches rolling in...
X  
X! ======================================================================
X! domain: tahorsley at csd.harris.com       USMail: Tom Horsley
X!   uucp: ...!uunet!hcx1!tahorsley               511 Kingbird Circle
X!                                                Delray Beach, FL  33444
X! +==== Censorship is the only form of Obscenity ======================+
X! |     (Wait, I forgot government tobacco subsidies...)               |
X! +====================================================================+
X  
X! P.S.
X  
X!    The TUTORIAL has not been changed since 1987, so a lot of stuff is not
X!    well documented. This situation also need to improve prior to the
X!    official release.
X--- 1,31 ----
X! In the original alt.sources posting, this file started off:
X  
X!    This is the mkid package originally posted to the net around September of
X!    1987 by Greg McGary (who then vanished from the net). Since then I have been
X!    extensively hacking it, and so have others. In an effort to have all of us
X!    benefit from the modifications and improvements we all have made, I have
X!    (probably foolishly :-) volunteered to "take over" mkid.
X  
X! Since then, Greg has revealed that he is still alive and on the net, and
X! he apparently has lots of plans for mkid revisions (but not much time to
X! do them -- a situation we are probably all familiar with).
X  
X! Anyway, after I post this version to comp.sources.unix, I will probably
X! let Greg take over as the official maintainer.
X  
X! This version contains some cleanup work done since the alt.sources posting
X! (but no major changes). It also comes with a brand new id.texinfo file
X! containing the latest and greatest documentation for the tools (Note: I have
X! no plans to upgrade the man pages, the texinfo doc is the only place where
X! the latest and greatest options are documented right now).
X  
X! This is the final posting to alt.sources. It contains the patches to upgrade
X! the original alt.sources posting to what I now have. If a few days go past
X! with no additional bugs cropping up, I will send it all off to
X! comp.sources.unix.
X  
X! You can reach me (Tom Horsley) at:
X!    tahorsley at csd.harris.com or ...!uunet!hcx1!tahorsley
X! 
X! The email address I have for Greg McGary is:
X!    gm at blip.wsrcc.com or ...!uunet!wsrcc!blip!gm
X*** ../../usenet-mkid/src/cannoname.c	Tue Feb 26 10:41:20 1991
X--- cannoname.c	Tue Feb 26 10:07:55 1991
X***************
X*** 106,112 ****
X     }
X     *cad++ = NULL ;
X  
X!    /* find multiple // and use last slash as root */
X     s = NULL ;
X     cap = &components[0] ;
X     cad = cap ;
X--- 106,115 ----
X     }
X     *cad++ = NULL ;
X  
X!    /* find multiple // and use last slash as root, except on apollo which
X!     * apparently actually uses // in real file names (don't ask me why).
X!     */
X! #ifndef apollo
X     s = NULL ;
X     cap = &components[0] ;
X     cad = cap ;
X***************
X*** 118,123 ****
X--- 121,127 ----
X        *cad++ = s;
X     }
X     *cad = NULL ;
X+ #endif
X  
X     /* if this is absolute name get rid of any /.. at beginning */
X     if ((components[0] == &slash[0]) && (components[1] == &dotdot[0])) {
X*** ../../usenet-mkid/src/iidfun.c	Tue Feb 26 10:41:56 1991
X--- iidfun.c	Tue Feb 26 10:08:34 1991
X***************
X*** 2,8 ****
X--- 2,29 ----
X   */
X  
X  #include "iiddef.h"
X+ #ifdef USE_ALLOCA
X  
X+ /* Apparently Sun's need the following to work correctly */
X+ #ifdef sun
X+ #include <alloca.h>
X+ #endif /* sun */
X+ 
X+ /* Define TEMP_ALLOC to call alloca, and TEMP_FREE to do nothing */
X+ 
X+ #define TEMP_ALLOC(s) alloca(s)
X+ #define TEMP_FREE(s)
X+ 
X+ #else
X+ 
X+ /* Not using alloca() (not everyone has it) - define TEMP_ALLOC to call
X+  * malloc() and TEMP_FREE to call free().
X+  */
X+ #define TEMP_ALLOC(s) malloc(s)
X+ #define TEMP_FREE(s)  free(s)
X+ 
X+ #endif /* USE_ALLOCA */
X+ 
X  /* ArgListSize - count the size of an arg list so can alloca() enough
X   * space for the command.
X   */
X***************
X*** 358,367 ****
X     char *     pp ;
X     set_type * sp ;
X  {
X!    char *         cmd = (char *)alloca(SetListSize(sp) + strlen(pp) + 2);
X     int            i ;
X     id_type *      idep ;
X     
X     strcpy(cmd, pp) ;
X     for (i = 0; i < NextFileNum; ++i) {
X        if (FileList[i]->mask_word < sp->set_size) {
X--- 379,389 ----
X     char *     pp ;
X     set_type * sp ;
X  {
X!    char *         cmd ;
X     int            i ;
X     id_type *      idep ;
X     
X+    cmd = (char *)TEMP_ALLOC(SetListSize(sp) + strlen(pp) + 2);
X     strcpy(cmd, pp) ;
X     for (i = 0; i < NextFileNum; ++i) {
X        if (FileList[i]->mask_word < sp->set_size) {
X***************
X*** 372,377 ****
X--- 394,400 ----
X        }
X     }
X     system(cmd) ;
X+    TEMP_FREE(cmd) ;
X  }
X  
X  /* AddSet - add a new set to the universal list of sets. Assign
X***************
X*** 409,415 ****
X     id_list_type * idlp ;
X  {
X     int            c ;
X!    char *         cmd = (char *)alloca(ArgListSize(idlp) + strlen(pp) + 2);
X     char *         dp ;
X     char           file [ MAXCMD ] ;
X     int            i ;
X--- 432,438 ----
X     id_list_type * idlp ;
X  {
X     int            c ;
X!    char *         cmd ;
X     char *         dp ;
X     char           file [ MAXCMD ] ;
X     int            i ;
X***************
X*** 418,423 ****
X--- 441,447 ----
X     FILE *         prog ;
X     set_type *     sp ;
X     
X+    cmd = (char *)TEMP_ALLOC(ArgListSize(idlp) + strlen(pp) + 2);
X     FlushFiles() ;
X     strcpy(cmd, pp) ;
X     idep = idlp->id_list ;
X***************
X*** 473,478 ****
X--- 497,503 ----
X        sp->set_data[i] = TheFiles[i] ;
X     }
X     AddSet(sp) ;
X+    TEMP_FREE(cmd);
X     return(sp) ;
X  }
X  
X***************
X*** 640,649 ****
X     char *         pp ;
X     id_list_type * idlp ;
X  {
X!    char *         cmd = (char *)alloca(ArgListSize(idlp) + strlen(pp) + 2);
X     id_type *      idep ;
X     id_type *      next_id ;
X     
X     strcpy(cmd, pp) ;
X     idep = idlp->id_list ;
X     while (idep != NULL) {
X--- 665,675 ----
X     char *         pp ;
X     id_list_type * idlp ;
X  {
X!    char *         cmd ;
X     id_type *      idep ;
X     id_type *      next_id ;
X     
X+    cmd = (char *)TEMP_ALLOC(ArgListSize(idlp) + strlen(pp) + 2);
X     strcpy(cmd, pp) ;
X     idep = idlp->id_list ;
X     while (idep != NULL) {
X***************
X*** 655,658 ****
X--- 681,685 ----
X     }
X     free(idlp) ;
X     system(cmd) ;
X+    TEMP_FREE(cmd);
X  }
X*** ../../usenet-mkid/src/lid.c	Tue Feb 26 10:42:02 1991
X--- lid.c	Tue Feb 26 10:08:40 1991
X***************
X*** 47,52 ****
X--- 47,56 ----
X  #define	TOLOWER(c)	(isupper(c) ? tolower(c) : (c))
X  #endif
X  
X+ #ifndef CRUNCH_DEFAULT
X+ #define CRUNCH_DEFAULT TRUE
X+ #endif
X+ 
X  /*
X  *  Sorry about all the globals, but it's really cleaner this way.
X  */
X***************
X*** 54,60 ****
X  bool		Merging;
X  bool		Radix;
X  bool            EchoOn = TRUE;
X! bool            CrunchOn = TRUE;
X  bool		pathRegExp = FALSE;
X  bool		matchBase = FALSE;
X  char		IdDir[BUFSIZ];
X--- 58,64 ----
X  bool		Merging;
X  bool		Radix;
X  bool            EchoOn = TRUE;
X! bool            CrunchOn = CRUNCH_DEFAULT;
X  bool		pathRegExp = FALSE;
X  bool		matchBase = FALSE;
X  char		IdDir[BUFSIZ];
X***************
X*** 122,127 ****
X--- 126,132 ----
X  		case 'a': Radix |= RADIX_ALL; break;
X  		case 's': Solo = op; break;
X  		case 'k': CrunchOn = FALSE; break;
X+ 		case 'g': CrunchOn = TRUE; break;
X  		case 'n': EchoOn = FALSE; break;
X  		case 'c': useIDpath = FALSE; usePWDpath = TRUE; break;
X  		case 'b': matchBase = TRUE; break;
X***************
X*** 870,877 ****
X  		if (!BITTST(bitArray, i))
X  			continue;
X  		if (idArgs->ida_flags & IDA_BLANK) {
X! 			printf("BOTCH: blank index!\n");
X! 			abort();
X  		}
X  		if (!(idArgs->ida_flags & IDA_ADJUST)) {
X  			absname = spanPath(IdDir, idArgs->ida_arg);
X--- 875,881 ----
X  		if (!BITTST(bitArray, i))
X  			continue;
X  		if (idArgs->ida_flags & IDA_BLANK) {
X! 			continue;
X  		}
X  		if (!(idArgs->ida_flags & IDA_ADJUST)) {
X  			absname = spanPath(IdDir, idArgs->ida_arg);
X*** ../../usenet-mkid/src/mkid.c	Tue Feb 26 10:42:00 1991
X--- mkid.c	Tue Feb 26 10:08:35 1991
X***************
X*** 11,16 ****
X--- 11,17 ----
X  #include	<bitops.h>
X  #include	<errno.h>
X  #include	<extern.h>
X+ #include        "patchlevel.h"
X  
X  int idnHashCmp();
X  int idnQsortCmp();
X***************
X*** 251,258 ****
X  	if (HashFill == 0)
X  		exit(0);
X  
X! 	if (Verbose)
X  		fprintf(stderr, "Compressing Hash Table...\n");
X  	hashCompress(HashTable, HashSize);
X  	if (Verbose)
X  		fprintf(stderr, "Sorting Hash Table...\n");
X--- 252,261 ----
X  	if (HashFill == 0)
X  		exit(0);
X  
X! 	if (Verbose) {
X! 		fprintf(stderr, "mkid patchlevel %d:\n", PATCHLEVEL);
X  		fprintf(stderr, "Compressing Hash Table...\n");
X+ 	}
X  	hashCompress(HashTable, HashSize);
X  	if (Verbose)
X  		fprintf(stderr, "Sorting Hash Table...\n");
X*** ../../usenet-mkid/src/patchlevel.h	Tue Feb 26 10:41:04 1991
X--- patchlevel.h	Tue Feb 26 10:07:47 1991
X***************
X*** 1 ****
X! #define PATCHLEVEL 1
X--- 1 ----
X! #define PATCHLEVEL 2
END_OF_FILE
if test 18303 -ne `wc -c <'Patch'`; then
    echo shar: \"'Patch'\" unpacked with wrong size!
fi
# end of 'Patch'
fi
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(2051 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
XHere is the overview section of the id.texinfo document:
X
XOverview
X********
X
X   An ID database is simply a file containing a list of file names, a
Xlist of identifiers, and a binary relation (stored as a bit matrix)
Xindicating which of the identifiers appear in each file.  With this
Xdatabase and some tools to manipulate the data, a host of tasks
Xbecome simpler and faster. You can `grep' through hundreds of files
Xfor a name, skipping the files that don't contain the name.  You can
Xsearch for all the memos containing references to a project.  You can
Xedit every file that calls some function, adding a new required
Xargument. Anyone with a large software project to maintain, or a
Xlarge set of text files to organize can benefit from the ID database
Xand the tools that manipulate it.
X
X   There are several programs in the ID family.  The `mkid' program
Xscans the files, finds the identifiers and builds the ID database. 
XThe `lid' and `aid' tools are used to generate lists of file names
Xcontaining an identifier (perhaps to recompile every file that
Xreferences a macro which just changed). The `eid' program will invoke
Xan editor on each of the files containing an identifier and the `gid'
Xprogram will `grep' for an identifier in the subset of files known to
Xcontain it.  The `pid' tool is used to query the path names of the
Xfiles in the database (rather than the contents).  Finally, the `iid'
Xtool is an interactive program supporting complex queries to
Xintersect and join sets of file names.
X
XThat ends the overview.
X
X
XTo build and install mkid, look through the Makefile - all the various
Xconfiguration options are (more or less :-) documented there. Change them
Xaround to work for your system, and type "make" to build the programs.
X
XTo make the texinfo online documentation type "make id-info".
X
XTo make the printed manual construct the .dvi file with "make id.dvi".  You
Xwill have to figure out how printing .dvi files works on your system (talk
Xto a local TeX guru -- if you don't have TeX, you won't be able to print the
Xmanual, sorry).
END_OF_FILE
if test 2051 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
echo shar: End of archive 1 \(of 2\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked both archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
--
======================================================================
domain: tahorsley at csd.harris.com       USMail: Tom Horsley
  uucp: ...!uunet!hcx1!tahorsley               511 Kingbird Circle
                                               Delray Beach, FL  33444
+==== Censorship is the only form of Obscenity ======================+
|     (Wait, I forgot government tobacco subsidies...)               |
+====================================================================+



More information about the Alt.sources mailing list