BSD 4 development
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Mon, 7 Jan 1980 02:35:58 +0000 (18:35 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Mon, 7 Jan 1980 02:35:58 +0000 (18:35 -0800)
Work on file usr/src/cmd/refer/mkey1.c

Synthesized-from: CSRG//cd1/4.0

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

diff --git a/usr/src/cmd/refer/mkey1.c b/usr/src/cmd/refer/mkey1.c
new file mode 100644 (file)
index 0000000..7f3758d
--- /dev/null
@@ -0,0 +1,87 @@
+# 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);
+}