date and time created 83/05/06 23:47:37 by tut
authorBill Tuthill <tut@ucbvax.Berkeley.EDU>
Sat, 7 May 1983 14:47:37 +0000 (06:47 -0800)
committerBill Tuthill <tut@ucbvax.Berkeley.EDU>
Sat, 7 May 1983 14:47:37 +0000 (06:47 -0800)
SCCS-vsn: old/refer/mkey/mkey1.c 4.1

usr/src/old/refer/mkey/mkey1.c [new file with mode: 0644]

diff --git a/usr/src/old/refer/mkey/mkey1.c b/usr/src/old/refer/mkey/mkey1.c
new file mode 100644 (file)
index 0000000..72a90fe
--- /dev/null
@@ -0,0 +1,97 @@
+#ifndef lint
+static char *sccsid = "@(#)mkey1.c     4.1 (Berkeley) %G%";
+#endif
+
+#include <stdio.h>
+
+extern char *comname;  /* "/usr/lib/eign" */
+int wholefile = 0;
+int keycount = 100;
+int labels = 1;
+int minlen = 3;
+extern int comcount;
+char *iglist = "XYZ#";
+
+main (argc,argv)
+char *argv[];
+{
+       /* this program expects as its arguments a list of
+        * files and generates a set of lines of the form
+        *      filename:byte-add,length (tab) key1 key2 key3
+        * where the byte addresses give the position within
+        * the file and the keys are the strings off the lines
+        * which are alphabetic, first six characters only.
+        */
+
+       int i;
+       char *name, qn[200];
+       char *inlist = 0;
+
+       FILE *f, *ff;
+
+       while (argc>1 && argv[1][0] == '-')
+       {
+               switch(argv[1][1])
+               {
+               case 'c':
+                       comname = argv[2];
+                       argv++; 
+                       argc--;
+                       break;
+               case 'w':
+                       wholefile = 1;  
+                       break;
+               case 'f':
+                       inlist = argv[2];
+                       argv++; 
+                       argc--;
+                       break;
+               case 'i':
+                       iglist = argv[2];
+                       argv++; 
+                       argc--;
+                       break;
+               case 'l':
+                       minlen = atoi(argv[1]+2);
+                       if (minlen<=0) minlen=3;
+                       break;
+               case 'n': /* number of common words to use */
+                       comcount = atoi(argv[1]+2);
+                       break;
+               case 'k': /* number  of keys per file max */
+                       keycount = atoi(argv[1]+2);
+                       break;
+               case 's': /* suppress labels, search only */
+                       labels = 0;
+                       break;
+               }
+               argc--; 
+               argv++;
+       }
+       if (inlist)
+       {
+               ff = fopen(inlist, "r");
+               while (fgets(qn, 200, ff))
+               {
+                       trimnl(qn);
+                       f = fopen (qn, "r");
+                       if (f!=NULL)
+                               dofile(f, qn);
+                       else
+                               fprintf(stderr, "Can't read %s\n",qn);
+               }
+       }
+       else
+               if (argc<=1)
+                       dofile(stdin, "");
+               else
+                       for(i=1; i<argc; i++)
+                       {
+                               f = fopen(name=argv[i], "r");
+                               if (f==NULL)
+                                       err("No file %s",name);
+                               else
+                                       dofile(f, name);
+                       }
+       exit(0);
+}