Annotation of coherent/d/bin/nroff/reg.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * reg.h
        !             3:  * Nroff/Troff.
        !             4:  * Register header.
        !             5:  */
        !             6: 
        !             7: /*
        !             8:  * Types of data in macro.
        !             9:  */
        !            10: #define MTEXT  0                       /* Text */
        !            11: #define MDIVN  1                       /* Diversion */
        !            12: #define MREQS  2                       /* Request */
        !            13: 
        !            14: #define RHTSIZE        128                     /* Size of register hash table */
        !            15: 
        !            16: /*
        !            17:  * Data descriptor in macro.
        !            18:  */
        !            19: typedef        union   MAC     {
        !            20:        struct  t_div {                 /* Text and diversions */
        !            21:                union MAC *m_next;      /* Pointer to next */
        !            22:                int     m_type;         /* Type of data */
        !            23:                int     m_size;         /* Count */
        !            24:                char    *m_core;        /* Pointer in core */
        !            25:                unsigned long   m_seek; /* Seek pointer */
        !            26:        } t_div;
        !            27:        struct  r_div {                 /* Requests */
        !            28:                union MAC *m_next;      /* Pointer to next */
        !            29:                int     m_type;         /* Type of data */
        !            30:                int     m_size;         /* Count */
        !            31:                int     (*m_func)();    /* Function for request */
        !            32:        } r_div;
        !            33: } MAC;
        !            34: 
        !            35: /*
        !            36:  * Types of registers.
        !            37:  */
        !            38: #define RTEXT  0                       /* Text register */
        !            39: #define RNUMR  1                       /* Number register */
        !            40: 
        !            41: /*
        !            42:  * Register structure.
        !            43:  */
        !            44: typedef        union   REG     {
        !            45:        struct  t_reg {                 /* Text register */
        !            46:                union REG *r_next;      /* Pointer to next register */
        !            47:                int     r_type;         /* Register type */
        !            48:                char    r_name[2];      /* Register name */
        !            49:                int     r_maxh;         /* Maximum height in diversion */
        !            50:                int     r_maxw;         /* Maximum width in diversion */
        !            51:                MAC     r_macd;         /* Macro descriptor */
        !            52:        } t_reg;
        !            53:        struct  n_reg {                 /* Number register */
        !            54:                union REG *r_next;      /* Pointer to next register */
        !            55:                int     r_type;         /* Register type */
        !            56:                char    r_name[2];      /* Register name */
        !            57:                int     r_nval;         /* Value of register */
        !            58:                int     r_incr;         /* Increment */
        !            59:                char    r_form;         /* Format character */
        !            60:        } n_reg;
        !            61: } REG;
        !            62: 
        !            63: /*
        !            64:  * Hashing function for registers.
        !            65:  */
        !            66: #define hash(name)     ((name[0]+name[1])%RHTSIZE)
        !            67: 
        !            68: /*
        !            69:  * Global variables.
        !            70:  */
        !            71: extern REG     *nrctreg;               /* Character type */
        !            72: extern REG     *nrdlreg;               /* Max width of last diversion */
        !            73: extern REG     *nrdnreg;               /* Height of last diversion */
        !            74: extern REG     *nrdwreg;               /* Day of the week */
        !            75: extern REG     *nrdyreg;               /* Day of the month */
        !            76: extern REG     *nrhpreg;               /* Current horizontal place */
        !            77: extern REG     *nrlnreg;               /* Output line number */
        !            78: extern REG     *nrmoreg;               /* Month */
        !            79: extern REG     *nrnlreg;               /* Position of last printed line */
        !            80: extern REG     *nrpnreg;               /* Current page number */
        !            81: extern REG     *nrsbreg;               /* Depth of string below base */
        !            82: extern REG     *nrstreg;               /* Height of string above base */
        !            83: extern REG     *nryrreg;               /* Year */
        !            84: extern REG     *regt[RHTSIZE];         /* Register hash table */
        !            85: 
        !            86: /* Page number. */
        !            87: #define         pno    (nrpnreg->n_reg.r_nval)
        !            88: 
        !            89: /* end of reg.h */

unix.superglobalmegacorp.com

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