BSD 4_3_Net_2 release
[unix-history] / usr / src / sys / vax / inline / main.c
index 670c895..d5f79f7 100644 (file)
@@ -1,18 +1,45 @@
-/*
- * Copyright (c) 1984 Regents of the University of California.
- * All rights reserved.  The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
+/*-
+ * Copyright (c) 1984, 1986 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
 
 #ifndef lint
 char copyright[] =
  */
 
 #ifndef lint
 char copyright[] =
-"@(#) Copyright (c) 1984 Regents of the University of California.\n\
+"@(#) Copyright (c) 1984, 1986 The Regents of the University of California.\n\
  All rights reserved.\n";
  All rights reserved.\n";
-#endif not lint
+#endif /* not lint */
 
 #ifndef lint
 
 #ifndef lint
-static char sccsid[] = "@(#)main.c     1.9 (Berkeley) %G%";
-#endif not lint
+static char sccsid[] = "@(#)main.c     7.2 (Berkeley) 5/8/91";
+#endif /* not lint */
 
 #include <stdio.h>
 #include <ctype.h>
 
 #include <stdio.h>
 #include <ctype.h>
@@ -21,10 +48,21 @@ static char sccsid[] = "@(#)main.c  1.9 (Berkeley) %G%";
 /*
  * These are the pattern tables to be loaded
  */
 /*
  * These are the pattern tables to be loaded
  */
-struct pats *inittables[] = {
+struct pats *vax_inittables[] = {
+       language_ptab,
+       libc_ptab,
+       vax_libc_ptab,
+       machine_ptab,
+       vax_ptab,
+       0
+};
+
+struct pats *vaxsubset_inittables[] = {
        language_ptab,
        libc_ptab,
        language_ptab,
        libc_ptab,
+       vaxsubset_libc_ptab,
        machine_ptab,
        machine_ptab,
+       vaxsubset_ptab,
        0
 };
 
        0
 };
 
@@ -55,18 +93,39 @@ main(argc, argv)
        register struct inststoptbl *itp, **ithp;
        int size;
        extern char *index();
        register struct inststoptbl *itp, **ithp;
        int size;
        extern char *index();
+       int subset = 0;
 
        whoami = argv[0];
 
        whoami = argv[0];
-       if (argc > 1 && bcmp(argv[1], "-d", 3) == 0)
-               dflag++, argc--, argv++;
+       argc--;
+       argv++;
+       while (argc > 0 && argv[0][0] == '-') {
+               switch(argv[0][1]) {
+
+               case 's':
+                       subset++;
+                       break;
+
+               case 'd':
+                       dflag++;
+                       break;
+
+               default:
+                       break;
+               }
+               argc--, argv++;
+       }
+       if (argc > 0)
+               freopen(argv[0], "r", stdin);
        if (argc > 1)
        if (argc > 1)
-               freopen(argv[1], "r", stdin);
-       if (argc > 2)
-               freopen(argv[2], "w", stdout);
+               freopen(argv[1], "w", stdout);
        /*
         * Set up the hash table for the patterns.
         */
        /*
         * Set up the hash table for the patterns.
         */
-       for (tablep = inittables; *tablep; tablep++) {
+       if (subset)
+               tablep = vaxsubset_inittables;
+       else
+               tablep = vax_inittables;
+       for ( ; *tablep; tablep++) {
                for (pp = *tablep; pp->name[0] != '\0'; pp++) {
                        php = &patshdr[hash(pp->name, &size)];
                        pp->size = size;
                for (pp = *tablep; pp->name[0] != '\0'; pp++) {
                        php = &patshdr[hash(pp->name, &size)];
                        pp->size = size;