Annotation of 43BSD/ucb/window/context.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * @(#)context.h       3.7 4/24/85
        !             3:  */
        !             4: 
        !             5: /*
        !             6:  * Copyright (c) 1983 Regents of the University of California,
        !             7:  * All rights reserved.  Redistribution permitted subject to
        !             8:  * the terms of the Berkeley Software License Agreement.
        !             9:  */
        !            10: 
        !            11: #include <stdio.h>
        !            12: 
        !            13: struct context {
        !            14:        struct context *x_link;         /* nested contexts */
        !            15:        char x_type;                    /* tag for union */
        !            16:        union {
        !            17:                struct {        /* input is a file */
        !            18:                        char *X_filename;       /* input file name */
        !            19:                        FILE *X_fp;             /* input stream */
        !            20:                        short X_lineno;         /* current line number */
        !            21:                        char X_bol;             /* at beginning of line */
        !            22:                        char X_noerr;           /* don't report errors */
        !            23:                        struct ww *X_errwin;    /* error window */
        !            24:                } x_f;
        !            25:                struct {        /* input is a buffer */
        !            26:                        char *X_buf;            /* input buffer */
        !            27:                        char *X_bufp;           /* current position in buf */
        !            28:                        struct value *X_arg;    /* argument for alias */
        !            29:                        int X_narg;             /* number of arguments */
        !            30:                } x_b;
        !            31:        } x_un;
        !            32:                /* holding place for current token */
        !            33:        int x_token;                    /* the token */
        !            34:        struct value x_val;             /* values associated with token */
        !            35:                /* parser error flags */
        !            36:        unsigned x_erred :1;            /* had an error */
        !            37:        unsigned x_synerred :1;         /* had syntax error */
        !            38:        unsigned x_abort :1;            /* fatal error */
        !            39: };
        !            40: #define x_buf          x_un.x_b.X_buf
        !            41: #define x_bufp         x_un.x_b.X_bufp
        !            42: #define x_arg          x_un.x_b.X_arg
        !            43: #define x_narg         x_un.x_b.X_narg
        !            44: #define x_filename     x_un.x_f.X_filename
        !            45: #define x_fp           x_un.x_f.X_fp
        !            46: #define x_lineno       x_un.x_f.X_lineno
        !            47: #define x_bol          x_un.x_f.X_bol
        !            48: #define x_errwin       x_un.x_f.X_errwin
        !            49: #define x_noerr                x_un.x_f.X_noerr
        !            50: 
        !            51:        /* x_type values, 0 is reserved */
        !            52: #define X_FILE         1               /* input is a file */
        !            53: #define X_BUF          2               /* input is a buffer */
        !            54: 
        !            55: struct context cx;                     /* the current context */

unix.superglobalmegacorp.com

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