[BACK]Return to fep_defs.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / fep

Annotation of OpenXM_contrib2/fep/fep_defs.h, Revision 1.1

1.1     ! noro        1: /*     Copyright (c) 1987, 1988 by Software Research Associates, Inc.  */
        !             2:
        !             3: #ifndef lint
        !             4: # define FEP_DEFS \
        !             5:     "$Header: /home/mmb/utashiro/src/fep/RCS/fep_defs.h,v 4.3 1989/01/06 10:07:29 utashiro Exp $ (SRA)"
        !             6: #endif /* lint */
        !             7:
        !             8: #define        MAXCMDLEN               512     /* maximum command length */
        !             9: #define MAXARGS                        64      /* maximum number of arguments */
        !            10: #define ON                     1       /* on switch */
        !            11: #define OFF                    0       /* off switch */
        !            12: #define DFL_HISTLEN            100     /* default history length */
        !            13: #define DFL_SHOWHIST           20      /* default show history length */
        !            14: #define        IGNORED                 2       /* ignored */
        !            15: #define        PROCESSED               1       /* processed or not by history */
        !            16: #define        NOT_PROCESSED           0       /* built-in functions */
        !            17:
        !            18: #define BS                     '\b'    /* backspace character */
        !            19: #define SP                     ' '     /* space character */
        !            20:
        !            21: #define        DEFAULT_DELIMITERS      " \t"   /* default delimiter character */
        !            22:
        !            23: /*
        !            24:  * Pseudo functions
        !            25:  */
        !            26: #define eq(a,b)                (strcmp(a,b) == 0)
        !            27: #define abs(a)         ((a)>0?(a):-(a))
        !            28: #define max(a,b)       ((a)>(b)?(a):(b))
        !            29: #define min(a,b)       ((a)<(b)?(a):(b))
        !            30: #ifdef KANJI
        !            31: # define isctlchar(c)  (c && !iskanji(c) && (!(c&0140) || c=='\177'))
        !            32: # define iswordchar(c) (c && (iskanji(c) || isalnum(c) || iscntrl(c)))
        !            33: # define isWordchar(c) ((c) && !isspace((c)))
        !            34: #else /* KANJI */
        !            35: # define isctlchar(c)  (c && (!(c&0140) || c=='\177'))
        !            36: # define iswordchar(c) (isalnum(c) || iscntrl(c))
        !            37: # define isWordchar(c) ((c) && !isspace((c)))
        !            38: #endif /* KANJI */
        !            39: #define unctl(c)       (((c)=='\177') ? '?' : ((c) >= 040) ? (c) : (c)|0100)
        !            40: #define toctrl(c)      ((c)&~0100)
        !            41: #define ctrl(c)                ((c)&037)
        !            42:
        !            43: #if defined(__alpha)
        !            44: #define INDIRECTED      (((u_long)1)<<63)
        !            45: #define isIndirect(f)   ((u_long)(f)&(u_long)INDIRECTED)
        !            46: #define setIndirect(f)  (FUNC)((u_long)(f)|(u_long)INDIRECTED)
        !            47: #define maskIndirect(f) (FUNC *)((u_long)(f)&~(u_long)INDIRECTED)
        !            48: #else
        !            49: #define        INDIRECTED      (1<<(sizeof(char*)*8-1))
        !            50:                        /* this is actually 0x80000000 on 32 bit machine,
        !            51:                        that addresses kernel address space */
        !            52: #define isIndirect(f)  ((u_int)(f)&(u_int)INDIRECTED)
        !            53: #define setIndirect(f) (FUNC)((u_int)(f)|(u_int)INDIRECTED)
        !            54: #define        maskIndirect(f) (FUNC *)((u_int)(f)&~(u_int)INDIRECTED)
        !            55: #endif
        !            56:
        !            57: /*
        !            58:  * Type of character
        !            59:  */
        !            60: #ifdef KANJI
        !            61: # define CHAR          unsigned char
        !            62: # define CHARMASK      0377
        !            63: #else /* KANJI */
        !            64: # define CHAR          char
        !            65: # define CHARMASK      0177
        !            66: #endif /* KANJI */
        !            67:
        !            68: /*
        !            69:  * Only one machine I know alloca() works is vax.
        !            70:  */
        !            71: #ifdef vax
        !            72: # define ALLOCA
        !            73: #endif /* vax */
        !            74:
        !            75: /*
        !            76:  * Typedef's
        !            77:  */
        !            78: typedef        int     (*FUNC)();              /* pointer to funciton */
        !            79:
        !            80: typedef enum {                         /* edit status */
        !            81:        EDITING,
        !            82:        NOTEDITING
        !            83: } EDITSTATUS;
        !            84:
        !            85: typedef enum {                         /* edit mode */
        !            86:        NOTYET,
        !            87:        EMACS,
        !            88:        VI
        !            89: } EDITMODE;
        !            90:
        !            91: typedef struct {                       /* bind table entry type */
        !            92:        char    *bt_s;
        !            93:        FUNC    bt_func;
        !            94: } BINDENT;
        !            95:
        !            96: typedef struct _var {
        !            97:        char *v_name;
        !            98:        char *v_value;
        !            99:        char *v_help;
        !           100:        struct _var *v_next;
        !           101: } VAR;
        !           102:
        !           103: typedef struct {
        !           104:        char *b_buf;                    /* buffer */
        !           105:        char *b_lastbuf;                /* last i/o done pointer */
        !           106:        int b_max;                      /* max size */
        !           107:        int b_next;                     /* next read point */
        !           108:        int b_count;                    /* count */
        !           109:        int b_hiwater;                  /* high water mark */
        !           110: } BUFFER;
        !           111:
        !           112: #define buf_count(b) ((b)->b_count)
        !           113: #define buf_remain(b) ((b)->b_size-(b)->b_count)
        !           114: /*
        !           115: char buf_char (b, n)
        !           116:     BUFFER *b;
        !           117:     int n;
        !           118: {
        !           119:     if (n >= b->b_count || -n > b->b_count)
        !           120:        return (-1);
        !           121:     if (b->b_next+n >= b->b_count)
        !           122:        return (b->b_buf[b->b_next+n-b->b_count]);
        !           123:     else if (b->b_next+n < 0)
        !           124:        return (b->b_buf[b->b_next+n+b->b_count]);
        !           125:     else
        !           126:        return (b->b_buf[b->b_next+n]);
        !           127: }
        !           128: */
        !           129: #define buf_char(b,n) \
        !           130:        (((n) >= (b)->b_count || -(n) > (b)->b_count) \
        !           131:          ?((char)-1) \
        !           132:          :((((b)->b_next + (n)) >= (b)->b_count) \
        !           133:            ?((b)->b_buf[(b)->b_next + (n) - (b)->b_count]) \
        !           134:            :((((b)->b_next + (n)) < 0) \
        !           135:              ?((b)->b_buf[(b)->b_next + (n) + (b)->b_count]) \
        !           136:              :((b)->b_buf[(b)->b_next + (n)]))))

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>