Annotation of 43BSD/contrib/B/src/bed/supr.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */
                      2: /* $Header: supr.h,v 2.2 84/07/11 15:20:05 guido Exp $ */
                      3: 
                      4: /*
                      5:  * B editor -- Superstructure for fine focusing.
                      6:  */
                      7: 
                      8: /*
                      9:  * Interpretation of mode and s1, s2, s3:
                     10:  * WHOLE: whole node is the focus;
                     11:  * SUBSET: s1/2, s2/2 are first and last child number under focus;
                     12:  *         even means fixed text, odd means child node;
                     13:  * SUBRANGE: s1/2 is fixed text number; s2, s3 are 1st&last char;
                     14:  *         if s1 is odd, ditto for child which must be "text";
                     15:  * VHOLE: s1/2 is fixed text number; volatile hole before char s2;
                     16:  *         if s1 is odd, ditto for child which must be "text".
                     17:  * ATEND: a volatile hole just after the entire node.
                     18:  * ATBEGIN: ditto just before it.
                     19:  * SUBLIST: s3 indicates how many times downrite() bring us
                     20:  *         beyond the focus (i.e., the focus is the subtree below
                     21:  *         ep->focus EXCLUDING the subtree reached after s3 times
                     22:  *         downrite().  Note s3 > 0.
                     23:  * FHOLE: Like VHOLE but in Fixed text.
                     24:  *
                     25:  * It is assumed that if the focus is a substring of fixed text
                     26:  * (SUBRANGE, VHOLE), it does not begin or end with lay-out of spaces.
                     27:  */
                     28: 
                     29: #define WHOLE  'W'
                     30: #define SUBSET 'S'
                     31: #define SUBRANGE       'R'
                     32: #define VHOLE  'V'
                     33: #define ATEND  'E'
                     34: #define ATBEGIN        'B'
                     35: #define SUBLIST        'L'
                     36: #define FHOLE  'F'
                     37: 
                     38: typedef struct {
                     39:        path focus;
                     40:        char mode;
                     41:        char /*bool*/ copyflag;
                     42:        char /*bool*/ spflag;
                     43:        char /*bool*/ changed;
                     44:        short /*0..2*MAXCHILD+1*/ s1;
                     45:        short s2;
                     46:        short s3;
                     47:        short highest;
                     48:        value copybuffer; /* Actually, a queue */
                     49:        value oldmacro; /* A text */
                     50:        value newmacro; /* A text, too */
                     51:        int generation;
                     52: } environ;
                     53: 
                     54: #ifdef STRUCTASS
                     55: #define Emove(e1, e2) ((e2) = (e1))
                     56: #else !STRUCTASS
                     57: #define Emove(e1, e2) emove(&(e1), &(e2))
                     58: #endif !STRUCTASS
                     59: #define Ecopy(e1, e2) ecopy(&(e1), &(e2))
                     60: #define Erelease(e) erelease(&(e))

unix.superglobalmegacorp.com

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