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

1.1     ! root        1: /*
        !             2:  * roff.h
        !             3:  * Nroff/Troff.
        !             4:  * Header file.
        !             5:  */
        !             6: 
        !             7: #include <stdio.h>
        !             8: #include "code.h"
        !             9: #include "codebug.h"
        !            10: #include "div.h"
        !            11: #include "env.h"
        !            12: #include "escapes.h"
        !            13: #include "fonts.h"
        !            14: #include "hyphen.h"
        !            15: #include "reg.h"
        !            16: #include "request.h"
        !            17: #include "str.h"
        !            18: 
        !            19: #define        VERSION "4.0.5"
        !            20: 
        !            21: /* Buffer sizes. */
        !            22: #define        ABFSIZE 256                     /* Size of argument buffer      */
        !            23: #define        ASCSIZE 128                     /* Size of ASCII character set  */
        !            24: #define        CBFSIZE 128                     /* Size of char buffer          */
        !            25: #ifdef GEMDOS
        !            26: #define        DBFSIZE 128                     /* Size of disk buffer          */
        !            27: #else
        !            28: #define        DBFSIZE 128                     /* Size of disk buffer          */
        !            29: #endif
        !            30: #define        MSCSIZE 256                     /* Size of miscellaneous buffer */
        !            31: 
        !            32: /* Types of justification. */
        !            33: #define        NJUS    0                       /* None (marks end of table)    */
        !            34: #define        LJUS    1                       /* Left justification           */
        !            35: #define        CJUS    2                       /* Centre justification         */
        !            36: #define        RJUS    3                       /* Right justification          */
        !            37: #define        FJUS    4                       /* Filled justification         */
        !            38: 
        !            39: /*
        !            40:  * Unit measures.
        !            41:  * These use constants defined as globals in tty.c (nroff) or output.c (troff).
        !            42:  * The values are different for nroff and troff,
        !            43:  * but the same unlinked object works for both.
        !            44:  * Changing these to different manifest constants with a conditional
        !            45:  * compilation switch would require different unlinked objects.
        !            46:  */
        !            47: #define        SMCENT  ((long) 50*sinmul)      /* Centimetre (mul)             */
        !            48: #define        SDCENT  ((long) 127*sindiv)     /* Centimetre (div)             */
        !            49: #define        SMEMSP  ((long) psz*semmul)     /* Em space (mul)               */
        !            50: #define        SDEMSP  ((long) semdiv)         /* Em space (div)               */
        !            51: #define        SMENSP  ((long) psz*senmul)     /* En space (mul)               */
        !            52: #define        SDENSP  ((long) sendiv)         /* En space (div)               */
        !            53: #define        SMHRES  ((long) shrmul)         /* Horizontal resolution (mul)  */
        !            54: #define        SDHRES  ((long) shrdiv)         /* Horizontal resolution (div)  */
        !            55: #define        SMINCH  ((long) sinmul)         /* Inch (mul)                   */
        !            56: #define        SDINCH  ((long) sindiv)         /* Inch (div)                   */
        !            57: #define        SMNARS  ((long) psz*snrmul)     /* Narrow space (mul)           */
        !            58: #define        SDNARS  ((long) snrdiv)         /* Narrow space (div)           */
        !            59: #define        SMPICA  ((long) sinmul)         /* Pica (mul)                   */
        !            60: #define        SDPICA  ((long) 6*sindiv)       /* Pica (div)                   */
        !            61: #define        SMPOIN  ((long) sinmul)         /* Point (mul)                  */
        !            62: #define        SDPOIN  ((long) 72*sindiv)      /* Point (div)                  */
        !            63: #define        SMUNIT  ((long) 1)              /* Unit (mul)                   */
        !            64: #define        SDUNIT  ((long) 1)              /* Unit (div)                   */
        !            65: #define        SMVEMS  ((long) psz)            /* Vertical em space (mul)      */
        !            66: #define        SDVEMS  ((long) 1)              /* Vertical em space  (div)     */
        !            67: #define        SMVLSP  ((long) vls)            /* Line space (mul)             */
        !            68: #define        SDVLSP  ((long) 1)              /* Line space (div)             */
        !            69: #define        SMVRES  ((long) svrmul)         /* Vertical resolution (mul)    */
        !            70: #define        SDVRES  ((long) svrdiv)         /* Vertical resolution (div)    */
        !            71: 
        !            72: /* Miscellaneous. */
        !            73: #define        NROFF           1               /* Program is nroff             */
        !            74: #define        TROFF           2               /* Program is troff             */
        !            75: #define        IESTACKSIZE     20              /* .ie stack size               */
        !            76: #define        INFINITY        32767
        !            77: 
        !            78: /* Kludge to avoid hanging PostScript printer on very large files. */
        !            79: #define        ZKLUDGE 1                       /* Include Zflag kludge         */
        !            80: #if    ZKLUDGE
        !            81: #define        ZPAGES  25                      /* Default Zflag value          */
        !            82: #endif
        !            83: 
        !            84: /* System-dependent directory and file names. */
        !            85: #ifdef MSDOS
        !            86: /* MSDOS */
        !            87: #define        LIBDIR  "\\usr\\lib\\roff\\"    /* Configuration directory      */
        !            88: #define        NRDIR   "nroff\\"               /* nroff subdirectory           */
        !            89: #define        POST_L  "_post_land"            /* Landscape postfix filename   */
        !            90: #define        POST_P  "_post"                 /* Portrait postfix filename    */
        !            91: #define        PRE_L   "_pre_land"             /* Landscape prefix filename    */
        !            92: #define        PRE_P   "_pre"                  /* Portrait prefix filename     */
        !            93: #define        TMACDIR "\\usr\\lib\\"          /* Macro library directory      */
        !            94: #define        TMACFMT "%s.tmc"                /* Macro filename format        */
        !            95: #define        TMPLATE "roffX.tmp"             /* Temp file template           */
        !            96: #define        TPCLDIR "troff_pcl\\"           /* PCL troff subdirectory       */
        !            97: #define        TPSDIR  "troff_ps\\"            /* PS troff subdirectory        */
        !            98: #else
        !            99: #ifdef GEMDOS
        !           100: /* GEMDOS */
        !           101: #define        TMACDIR "\\bin\\"
        !           102: #define        TMACFMT "%s.tmc"
        !           103: #else
        !           104: /* COHERENT */
        !           105: #define        LIBDIR  "/usr/lib/roff/"        /* Configuration directory      */
        !           106: #define        NRDIR   "nroff/"                /* nroff subdirectory           */
        !           107: #define        POST_L  ".post_land"            /* Landscape postfix filename   */
        !           108: #define        POST_P  ".post"                 /* Portrait postfix filename    */
        !           109: #define        PRE_L   ".pre_land"             /* Landscape prefix filename    */
        !           110: #define        PRE_P   ".pre"                  /* Portrait prefix filename     */
        !           111: #define        TMACDIR "/usr/lib/"             /* Macro library directory      */
        !           112: #define        TMACFMT "tmac.%s"               /* Macro filename format        */
        !           113: #define        TMPLATE "/tmp/rofXXXXXX"        /* Temp file template           */
        !           114: #define        TPCLDIR "troff_pcl/"            /* PCL troff subdirectory       */
        !           115: #define        TPSDIR  "troff_ps/"             /* PS troff subdirectory        */
        !           116: #endif
        !           117: #endif
        !           118: 
        !           119: /* Roman numeral table. */
        !           120: typedef struct {
        !           121:        char    o_digit;                /* Offset for digit             */
        !           122:        char    o_state;                /* Next state                   */
        !           123: } ROM;
        !           124: 
        !           125: /* Special characters. */
        !           126: typedef struct special {
        !           127:        struct special  *spc_link;      /* Link to next                 */
        !           128:        char            spc_name[2];    /* Name                         */
        !           129:        char            *spc_val;       /* Value                        */
        !           130: } SPECIAL;
        !           131: 
        !           132: /*
        !           133:  * Device dependent variables,
        !           134:  * defined in tty.c (nroff) or output.c (troff).
        !           135:  */
        !           136: extern int     ntroff;                 /* Program type                 */
        !           137: extern long    semmul;                 /* Multiplier for em space      */
        !           138: extern long    semdiv;                 /* Divisor for em space         */
        !           139: extern long    senmul;                 /* Multiplier for en space      */
        !           140: extern long    sendiv;                 /* Divisor for en space         */
        !           141: extern long    shrmul;                 /* Horizontal resolution (mul)  */
        !           142: extern long    shrdiv;                 /* Horizontal resolution (div)  */
        !           143: extern long    sinmul;                 /* Multiplier for inch          */
        !           144: extern long    sindiv;                 /* Divisor for inch             */
        !           145: extern long    snrmul;                 /* Narrow space (mul)           */
        !           146: extern long    snrdiv;                 /* Narrow space (div)           */
        !           147: extern long    svrmul;                 /* Vertical resolution (mul)    */
        !           148: extern long    svrdiv;                 /* Vertical resolution (div)    */
        !           149: 
        !           150: /* Global variables, defined in extern.c. */
        !           151: extern int     A_reg;                  /* .A register                  */
        !           152: extern int     a_reg;                  /* .a register                  */
        !           153: extern char    *argv0;                 /* "nroff" or "troff"           */
        !           154: extern int     bracelevel;             /* Level of \{ \} nesting       */
        !           155: extern int     byeflag;                /* True when exiting            */
        !           156: extern int     dbglvl;                 /* Debug level                  */
        !           157: extern int     dflag;                  /* Debug flag                   */
        !           158: extern char    diskbuf[DBFSIZE];       /* Disk buffer for temp file    */
        !           159: extern char    endtrap[2];             /* End macro name               */
        !           160: extern char    esc;                    /* Escape character             */
        !           161: extern int     escflag;                /* Last character was escaped   */
        !           162: extern int     iestack[IESTACKSIZE];   /* .ie condition stack          */
        !           163: extern int     iestackx;               /* .ie condition stack index    */
        !           164: extern int     infalse;                /* True in false conditional    */
        !           165: extern int     lflag;                  /* Landscape mode               */
        !           166: extern char    miscbuf[MSCSIZE];       /* Miscellaneous buffer         */
        !           167: extern int     nbrflag;                /* Don't allow command to break */
        !           168: extern unsigned        npn;                    /* Next page number             */
        !           169: extern int     n_reg;                  /* .n register                  */
        !           170: extern int     oldbracelevel;          /* Old level of \{ \} nesting   */
        !           171: extern int     oldpof;                 /* Old page offset              */
        !           172: extern unsigned        pct;                    /* Page counter                 */
        !           173: extern int     pflag;                  /* Generate PostScript output   */
        !           174: extern unsigned        pgl;                    /* Page length                  */
        !           175: extern int     pof;                    /* Page offset                  */
        !           176: extern SPECIAL *spc_list;              /* Special characters           */
        !           177: extern int     svs;                    /* Saved space                  */
        !           178: extern FILE    *tmp;                   /* Temp file pointer            */
        !           179: extern unsigned long tmpseek;          /* Pointer into temp file       */
        !           180: extern int     T_reg;                  /* .T register                  */
        !           181: extern int     varsp;                  /* Variable spacing             */
        !           182: extern int     xflag;                  /* Suppress page eject on exit  */
        !           183: #if    ZKLUDGE
        !           184: extern int     Zflag;                  /* PS save/restore kludge       */
        !           185: #endif
        !           186: 
        !           187: /* Global tables, defined in tables.c. */
        !           188: extern char    esctab[];
        !           189: extern char    *mapfont[];
        !           190: extern REQ     reqtab[];
        !           191: extern ROM     romtab[];
        !           192: extern char    trantab[];
        !           193: 
        !           194: /* Functions. */
        !           195: extern STR     *allstr();
        !           196: extern char    *duplstr();
        !           197: extern REG     *findreg();
        !           198: extern void    font_display();
        !           199: extern REG     *getnreg();
        !           200: extern REG     *makereg();
        !           201: extern char    *nalloc();
        !           202: extern char    *nextarg();
        !           203: extern void    resetdev();
        !           204: extern SPECIAL *spc_find();
        !           205: 
        !           206: /* Library functions. */
        !           207: extern char    *index();
        !           208: extern void    free();
        !           209: extern long    lseek();
        !           210: extern char    *malloc();
        !           211: extern char    *realloc();
        !           212: extern char    *strcpy();
        !           213: 
        !           214: /* end of roff.h */

unix.superglobalmegacorp.com

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