|
|
1.1 ! root 1: /* ! 2: * str.h ! 3: * Nroff/Troff. ! 4: * Input stack header. ! 5: */ ! 6: ! 7: #define SREQS 0 /* Request */ ! 8: #define SSINP 1 /* Insertion from standard input */ ! 9: #define SFILE 2 /* File I/O */ ! 10: #define SCORE 3 /* Core I/O */ ! 11: #define SCTEX 4 /* Chained text */ ! 12: #define SCDIV 5 /* Chained diversion */ ! 13: ! 14: #define ARGSIZE 10 /* Maximum number of arguments */ ! 15: ! 16: /* ! 17: * Used for stacking input sources. ! 18: */ ! 19: typedef union STR { ! 20: struct x1 { /* Used for insertions from stdin */ ! 21: union STR *s_next; /* Pointer to next in stack */ ! 22: int s_type; /* Type of input */ ! 23: int s_eoff; /* End of file flag */ ! 24: int s_clnc; /* Current line number */ ! 25: int s_nlnc; /* Last line number */ ! 26: int s_argc; /* Number of arguments */ ! 27: char *s_argp[ARGSIZE]; /* Pointer to arguments */ ! 28: char *s_abuf; /* Arg buffer space */ ! 29: } x1; ! 30: struct x2 { /* File I/O */ ! 31: union STR *s_next; /* Pointer to next in stack */ ! 32: int s_type; /* Type of input */ ! 33: int s_eoff; /* End of file flag */ ! 34: int s_clnc; /* Current line number */ ! 35: int s_nlnc; /* Last line number */ ! 36: int s_argc; /* Number of arguments */ ! 37: char *s_argp[ARGSIZE]; /* Pointer to arguments */ ! 38: char *s_abuf; /* Arg buffer space */ ! 39: char *s_fname; /* File name */ ! 40: FILE *s_fp; /* File pointer */ ! 41: } x2; ! 42: struct x3 { /* Core I/O */ ! 43: union STR *s_next; /* Pointer to next in stack */ ! 44: int s_type; /* Type of input */ ! 45: int s_eoff; /* End of file flag */ ! 46: int s_clnc; /* Current line number */ ! 47: int s_nlnc; /* Last line number */ ! 48: int s_argc; /* Number of arguments */ ! 49: char *s_argp[ARGSIZE]; /* Pointer to arguments */ ! 50: char *s_abuf; /* Arg buffer space */ ! 51: char *s_cp; /* Pointer in core */ ! 52: char *s_srel; /* Released when unstacked */ ! 53: } x3; ! 54: struct x4 { /* Chained I/O */ ! 55: union STR *s_next; /* Pointer to next in stack */ ! 56: int s_type; /* Type of input */ ! 57: int s_eoff; /* End of file flag */ ! 58: int s_clnc; /* Current line number */ ! 59: int s_nlnc; /* Last line number */ ! 60: int s_argc; /* Number of arguments */ ! 61: char *s_argp[ARGSIZE]; /* Pointer to arguments */ ! 62: char *s_abuf; /* Arg buffer space */ ! 63: char *s_bufp; /* Pointer to buffer */ ! 64: char *s_bufend; /* End of buffer in core */ ! 65: union MAC *s_macp; /* Next in chain list */ ! 66: int s_disk; /* Data is on disk */ ! 67: char *s_sp; /* Position in core */ ! 68: unsigned long s_seek; /* Seek position */ ! 69: int s_n; /* Counter (count down) */ ! 70: } x4; ! 71: } STR; ! 72: ! 73: /* ! 74: * Global variables. ! 75: */ ! 76: extern STR *strp; /* Input stack */ ! 77: ! 78: /* end of str.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.