Annotation of 43BSD/contrib/B/src/b/par.h, revision 1.1

1.1     ! root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */
        !             2: /* $Header: par.h,v 1.1 84/07/04 17:57:16 timo Exp $ */
        !             3: 
        !             4: #include       <stdio.h>
        !             5: #define        EQ      ==
        !             6: #define        NE      !=
        !             7: #define        EOS     '\0'
        !             8: #define        ERR     (-1)
        !             9: 
        !            10: #ifdef MFILE
        !            11: #define        MDOTS   "... "
        !            12: #else
        !            13: #define        MDOTS   ""
        !            14: #endif
        !            15: 
        !            16: #define        ERM     {fprintf(stderr, "%s: ", pname); fprintf(stderr,
        !            17: #define        MRE     ); exit(ERR); }
        !            18: 
        !            19: #ifdef lint
        !            20: int __void__;  /* to tell `lint' not to care */
        !            21: #define        VOID(x) (__void__ = (int)(x))
        !            22: #else  lint
        !            23: #define        VOID(x) (x)
        !            24: #endif lint
        !            25: 
        !            26: FILE   *ifile;         /* input file */
        !            27: char   *iname;         /* input name */
        !            28: char   *pname;         /* program name */
        !            29: 
        !            30: main(pargc, pargv) char *pargv[];      {
        !            31:        register int argc;
        !            32:        register char **argv;
        !            33: 
        !            34:        pname = pargv[0];
        !            35:        argc = pargc-1;
        !            36:        argv = pargv+1;
        !            37:        while (argc > 0 && argv[0][0] EQ '-' && argv[0][1] NE EOS)      {
        !            38: #ifdef OPTIONS
        !            39:                register int nop = options(argc, argv);
        !            40:                if (nop EQ ERR)
        !            41:                        ERM "options are [%s] [ file %s]\n",
        !            42:                                OPTIONS, MDOTS
        !            43:                        MRE
        !            44:                argc -= nop;
        !            45:                argv += nop;
        !            46: #else
        !            47:                ERM "parameters are [ file %s]\n", MDOTS MRE
        !            48: #endif
        !            49:        }
        !            50: #ifndef        MFILE
        !            51:        if (argc > 1)
        !            52:                ERM "arg count\n" MRE
        !            53: #endif
        !            54:        do      {
        !            55:                if (argc EQ 0 || (argv[0][0] EQ '-' && argv[0][1] EQ EOS))      {
        !            56:                        iname = "standard input";
        !            57:                        ifile = stdin;
        !            58:                }
        !            59:                else    {
        !            60:                        iname = *argv;
        !            61:                        ifile = fopen(iname, "r");
        !            62: #ifndef        MFILE
        !            63:                        if (ifile EQ NULL)
        !            64:                                ERM "cannot open %s\n", iname MRE
        !            65: #endif
        !            66:                }
        !            67:                process();
        !            68:                if (ifile NE NULL && ifile NE stdin)
        !            69:                        VOID(fclose(ifile));
        !            70:        } while (++argv, --argc > 0);
        !            71:        exit(0);
        !            72: }
        !            73: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.