Annotation of 43BSDReno/usr.bin/window/context.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1983 Regents of the University of California.
        !             3:  * All rights reserved.
        !             4:  *
        !             5:  * This code is derived from software contributed to Berkeley by
        !             6:  * Edward Wang at The University of California, Berkeley.
        !             7:  *
        !             8:  * Redistribution and use in source and binary forms are permitted provided
        !             9:  * that: (1) source distributions retain this entire copyright notice and
        !            10:  * comment, and (2) distributions including binaries display the following
        !            11:  * acknowledgement:  ``This product includes software developed by the
        !            12:  * University of California, Berkeley and its contributors'' in the
        !            13:  * documentation or other materials provided with the distribution and in
        !            14:  * all advertising materials mentioning features or use of this software.
        !            15:  * Neither the name of the University nor the names of its contributors may
        !            16:  * be used to endorse or promote products derived from this software without
        !            17:  * specific prior written permission.
        !            18:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            19:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            20:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            21:  *
        !            22:  *     @(#)context.h   3.11 (Berkeley) 6/6/90
        !            23:  */
        !            24: 
        !            25: #include <stdio.h>
        !            26: 
        !            27: struct context {
        !            28:        struct context *x_link;         /* nested contexts */
        !            29:        char x_type;                    /* tag for union */
        !            30:        union {
        !            31:                struct {        /* input is a file */
        !            32:                        char *X_filename;       /* input file name */
        !            33:                        FILE *X_fp;             /* input stream */
        !            34:                        short X_lineno;         /* current line number */
        !            35:                        char X_bol;             /* at beginning of line */
        !            36:                        char X_noerr;           /* don't report errors */
        !            37:                        struct ww *X_errwin;    /* error window */
        !            38:                } x_f;
        !            39:                struct {        /* input is a buffer */
        !            40:                        char *X_buf;            /* input buffer */
        !            41:                        char *X_bufp;           /* current position in buf */
        !            42:                        struct value *X_arg;    /* argument for alias */
        !            43:                        int X_narg;             /* number of arguments */
        !            44:                } x_b;
        !            45:        } x_un;
        !            46:                /* holding place for current token */
        !            47:        int x_token;                    /* the token */
        !            48:        struct value x_val;             /* values associated with token */
        !            49:                /* parser error flags */
        !            50:        unsigned x_erred :1;            /* had an error */
        !            51:        unsigned x_synerred :1;         /* had syntax error */
        !            52:        unsigned x_abort :1;            /* fatal error */
        !            53: };
        !            54: #define x_buf          x_un.x_b.X_buf
        !            55: #define x_bufp         x_un.x_b.X_bufp
        !            56: #define x_arg          x_un.x_b.X_arg
        !            57: #define x_narg         x_un.x_b.X_narg
        !            58: #define x_filename     x_un.x_f.X_filename
        !            59: #define x_fp           x_un.x_f.X_fp
        !            60: #define x_lineno       x_un.x_f.X_lineno
        !            61: #define x_bol          x_un.x_f.X_bol
        !            62: #define x_errwin       x_un.x_f.X_errwin
        !            63: #define x_noerr                x_un.x_f.X_noerr
        !            64: 
        !            65:        /* x_type values, 0 is reserved */
        !            66: #define X_FILE         1               /* input is a file */
        !            67: #define X_BUF          2               /* input is a buffer */
        !            68: 
        !            69: 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.