From a0f7cb2db4c51a4a0fed37fde7f1992aec0cc9bb Mon Sep 17 00:00:00 2001 From: Greg McGary Date: Fri, 18 Apr 1997 06:32:28 +0000 Subject: Initial revision --- idx.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 idx.c (limited to 'idx.c') diff --git a/idx.c b/idx.c new file mode 100644 index 0000000..e62e2d9 --- /dev/null +++ b/idx.c @@ -0,0 +1,88 @@ +/* static char copyright[] = "@(#)Copyright (c) 1986, Greg McGary"; + static char sccsid[] = "@(#)idx.c 1.2 86/10/17"; */ + +#include "config.h" +#include +#include +#include "misc.h" +#include "filenames.h" +#include "scanners.h" + +void idxtract (char *path); + +char const *program_name; + +static void +usage (void) +{ + fprintf (stderr, "Usage: %s [-u] [+/-a] [-c] files\n", program_name); + exit (1); +} + +int +main (int argc, char **argv) +{ + char *arg; + int op; + + program_name = basename ((argc--, *argv++)); + + init_scanners (); + + while (argc) + { + arg = (argc--, *argv++); + switch (op = *arg++) + { + case '-': + case '+': + break; + default: + (argc++, --argv); + goto argsdone; + } + switch (*arg++) + { + case 'S': + set_scan_args (op, arg); + break; + default: + usage (); + } + } +argsdone: + + if (argc == 0) + usage (); + + while (argc) + idxtract ((argc--, *argv++)); + + return 0; +} + +void +idxtract (char *file_name) +{ + char const *key; + FILE *source_FILE; + int flags; + char const *suffix; + char const *filter; + char const *lang_name; + char const *(*scanner) (FILE*, int*); + + suffix = strrchr (file_name, '.'); + lang_name = get_lang_name (suffix); + scanner = get_scanner (lang_name); + if (scanner == NULL) + return; + source_FILE = open_source_FILE (file_name, filter = get_filter (suffix)); + if (source_FILE == NULL) + return; + + while ((key = (*scanner) (source_FILE, &flags)) != NULL) + puts (key); + + close_source_FILE (source_FILE, filter); +} -- cgit v1.2.3