Annotation of coherent/d/bin/ed/ed.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * An editor.
                      3:  * Header file.
                      4:  */
                      5: 
                      6: #define ULARGE 65535L                  /* Largest unsigned value */
                      7: #define LNSIZE 2000                    /* Initial size of line number table */
                      8: #define LBSIZE 512                     /* Size of line buffer */
                      9: #define CBSIZE 512                     /* Size of code buffer */
                     10: #define TBSIZE CBSIZE                  /* Size of temporary buffer */
                     11: #define SBSIZE 512                     /* Replace substitute buffer size */
                     12: #define GBSIZE 512                     /* Global command buffer size */
                     13: #define DBSIZE 512                     /* Size of disk buffer cache */
                     14: #define BRSIZE 9                       /* Number of \( ... \) allowed */
                     15: #define FNSIZE 64                      /* File name size */
                     16: #define        CKSIZE  64                      /* Length of crypt key */
                     17: #define MKSIZE 26                      /* Size of mark line table */
                     18: #define PGSIZE 22                      /* Page size */
                     19: 
                     20: /*
                     21:  * Functions for finding out whether a character is a letter and
                     22:  * to switch case from lower to upper and vice versa.
                     23:  * Knows about ctype.h internals.
                     24:  */
                     25: #define isallet(c)     (_ctype[(c)+1]&(_L|_N))
                     26: #define toother(c)     ((c)^' ')
                     27: 
                     28: /*
                     29:  * Click size definitions.
                     30:  * These functions are used to get the block number and offset into
                     31:  * the block given a seek pointer gotten from the line number table.
                     32:  * It takes into account the size of the disk buffer (DBSIZE) and
                     33:  * the fact that the seek pointer may be off by one (caused by the
                     34:  * global command marking lines.
                     35:  */
                     36: #define CLSIZE         16
                     37: #define blockn(a)      ((a)>>6)
                     38: #define offset(a)      (((a)&076) << 3)
                     39: #define linead()       (tmpseek >> 3)
                     40: 
                     41: /*
                     42:  * Definition for stream directives in regular expressions.
                     43:  * The order of these must not be changed.  In particular,
                     44:  * the `stream of' directives must immediately follow their
                     45:  * single counterparts.
                     46:  */
                     47: #define CSNUL  000                     /* End of expression */
                     48: #define CSSOL  001                     /* Match start of line */
                     49: #define CSEOL  002                     /* End of line */
                     50: #define CSOPR  003                     /* \( */
                     51: #define CSCPR  004                     /* \) */
                     52: #define CSBRN  005                     /* Match nth \( ... \) */
                     53: #define CSDOT  006                     /* Any character */
                     54: #define CMDOT  007                     /* Stream of any characters */
                     55: #define CSCHR  010                     /* Match given character */
                     56: #define CMCHR  011                     /* Match stream of given characters */
                     57: #define CSSCC  012                     /* Char in single case */
                     58: #define CMSCC  013                     /* Stream of chars in single case */
                     59: #define CSCCL  014                     /* Character class */
                     60: #define CMCCL  015                     /* Stream of character class */
                     61: #define CSNCL  016                     /* Not character class */
                     62: #define CMNCL  017                     /* Stream of not char class */
                     63: 
                     64: /*
                     65:  * Typedefs.
                     66:  */
                     67: typedef        unsigned LINE;                  /* Typedef for line table */
                     68: 
                     69: /*
                     70:  * Structure for remembering \( ... \).
                     71:  */
                     72: typedef        struct {
                     73:        char    *b_bp;                  /* Ptr to start of string matched */
                     74:        char    *b_ep;                  /* Ptr to end of string matched */
                     75: } BRACE;
                     76: 
                     77: /*
                     78:  * External function declarations.
                     79:  */
                     80: extern char    *calloc();
                     81: extern FILE    *copen();
                     82: extern char    *getdisk();
                     83: extern char    *getenv();
                     84: extern char    *getpass();
                     85: extern char    *malloc();
                     86: extern char    *match();
                     87: extern int     readfil();
                     88: extern int     readtty();
                     89: extern char    *realloc();
                     90: extern char    *strcpy();
                     91: extern FILE    *xfopen();
                     92: 
                     93: /*
                     94:  * Global variables.
                     95:  */
                     96: extern int     cflag;                  /* Print character counts */
                     97: extern int     mflag;                  /* Allow multiple commands per line */
                     98: extern int     pflag;                  /* Editor prompts */
                     99: extern int     oflag;                  /* Behaves like the old editor */
                    100: extern int     sflag;                  /* Match patterns in single case */
                    101: extern int     tflag;                  /* Set up for screen editor */
                    102: extern int     vflag;                  /* Verbose error messages */
                    103: extern int     intflag;                /* Interrupt has been hit */
                    104: extern char    *tfn;                   /* Temp file name */
                    105: extern FILE    *tmp;                   /* Temp file pointer */
                    106: extern long    tmpseek;                /* Free space seek ptr in tmp file */
                    107: extern int     rcurbno;                /* Current read block number */
                    108: extern int     wcurbno;                /* Current write block number */
                    109: extern LINE    *line;                  /* Pointer to line table */
                    110: extern int     lnsize;                 /* Current size of line table */
                    111: extern int     savechr;                /* Character that was ungetx'ed */
                    112: extern int     lastchr;                /* Last character we read */
                    113: extern char    *gcp;                   /* Global input pointer */
                    114: extern char    linebuf[LBSIZE];        /* Line buffer */
                    115: extern char    codebuf[CBSIZE];        /* Code buffer */
                    116: extern char    tempbuf[TBSIZE];        /* Temporary buffer */
                    117: extern char    subsbuf[SBSIZE];        /* Substitute buffer */
                    118: extern char    globbuf[GBSIZE];        /* Buffer for global command */
                    119: extern char    rdbcbuf[DBSIZE];        /* Disk buffer cache */
                    120: extern char    wdbcbuf[DBSIZE];        /* Write buffer cache */
                    121: extern BRACE   brace[1+BRSIZE];        /* For remembering \( \) */
                    122: extern char    file[FNSIZE+1];         /* Filename */
                    123: extern LINE    marklin[MKSIZE];        /* Mark line table */
                    124: extern int     dotadd;                 /* Address of the current line */
                    125: extern int     doladd;                 /* Address of last line */
                    126: extern char    vcom;                   /* Verify command */
                    127: extern int     saved;                  /* File saved since last written */
                    128: extern FILE    *fp;                    /* File pointer for readfil */
                    129: extern long    cct;                    /* Number of chars read in append */
                    130: extern long    lct;                    /* Number of lines read in append */
                    131: extern int     appflag;                /* In append mode */
                    132: extern int     addspec;                /* Number of addresses specified */
                    133: extern int     adderrr;                /* Error in computing address */
                    134: extern int     addpage;                /* An ampersand was found */
                    135: extern int     addques;                /* A question mark was found */
                    136: extern int     subnths;                /* Which substitute wanted */
                    137: extern int     subnewl;                /* A newline is being replaced */
                    138: extern int     subseek;                /* Seek position of new line */
                    139: extern int     suborig;                /* Seek position of old line */
                    140: extern char    *errstr;                /* Pointer to last error message */
                    141: extern char    *keyp;                  /* Pointer to crypt key */

unix.superglobalmegacorp.com

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