Annotation of coherent/g/usr/bin/vi/vars.c, revision 1.1

1.1     ! root        1: /* vars.c */
        !             2: 
        !             3: /* Author:
        !             4:  *     Steve Kirkendall
        !             5:  *     14407 SW Teal Blvd. #C
        !             6:  *     Beaverton, OR 97005
        !             7:  *     [email protected]
        !             8:  */
        !             9: 
        !            10: 
        !            11: /* This file contains variables which weren't happy anyplace else */
        !            12: 
        !            13: #include "config.h"
        !            14: #include "vi.h"
        !            15: 
        !            16: /*------------------------------------------------------------------------*/
        !            17: 
        !            18: /* used to remember whether the file has been modified */
        !            19: struct _viflags        viflags;
        !            20: 
        !            21: /* used to access the tmp file */
        !            22: long           lnum[MAXBLKS];
        !            23: long           nlines;
        !            24: int            tmpfd = -1;
        !            25: int            tmpnum;
        !            26: #ifndef CRUNCH
        !            27: int            wset = FALSE;
        !            28: #endif
        !            29: 
        !            30: /* used to keep track of the current file & alternate file */
        !            31: long           origtime;
        !            32: char           origname[256];
        !            33: char           prevorig[256];
        !            34: long           prevline = 1;
        !            35: 
        !            36: /* used to track various places in the text */
        !            37: MARK           mark[NMARKS];   /* marks 'a through 'z, plus mark '' */
        !            38: MARK           cursor;         /* the cursor position within the file */
        !            39: 
        !            40: /* which mode of the editor we're in */
        !            41: int            mode;           /* vi mode? ex mode? quitting? */
        !            42: 
        !            43: /* used to manage the args list */
        !            44: char           args[BLKSIZE];  /* list of filenames to edit */
        !            45: int            argno;          /* index of current file in args list */
        !            46: int            nargs;          /* number of filenames in args[] */
        !            47: 
        !            48: /* dummy var, never explicitly referenced */
        !            49: int            bavar;          /* used only in BeforeAfter macros */
        !            50: 
        !            51: /* used to detect changes that invalidate cached text/blocks */
        !            52: long           changes;        /* incremented when file is changed */
        !            53: int            significant;    /* boolean: was a *REAL* change made? */
        !            54: int            exitcode;       /* 0=not updated, 1=overwritten, else error */
        !            55: 
        !            56: /* used to support the pfetch() macro */
        !            57: int            plen;           /* length of the line */
        !            58: long           pline;          /* line number that len refers to */
        !            59: long           pchgs;          /* "changes" level that len refers to */
        !            60: char           *ptext;         /* text of previous line, if valid */
        !            61: 
        !            62: /* misc temporary storage - mostly for strings */
        !            63: BLK            tmpblk;         /* a block used to accumulate changes */
        !            64: 
        !            65: /* screen oriented stuff */
        !            66: long           topline;        /* file line number of top line */
        !            67: int            leftcol;        /* column number of left col */
        !            68: int            physcol;        /* physical column number that cursor is on */
        !            69: int            physrow;        /* physical row number that cursor is on */
        !            70: 
        !            71: /* used to help minimize that "[Hit a key to continue]" message */
        !            72: int            exwrote;        /* Boolean: was the last ex command wordy? */
        !            73: 
        !            74: /* This variable affects the behaviour of certain functions -- most importantly
        !            75:  * the input function.
        !            76:  */
        !            77: int            doingdot;       /* boolean: are we doing the "." command? */
        !            78: 
        !            79: /* This variable affects the behaviour of the ":s" command, and it is also
        !            80:  * used to detect & prohibit nesting of ":g" commands
        !            81:  */
        !            82: int            doingglobal;    /* boolean: are doing a ":g" command? */
        !            83: 
        !            84: /* This variable is zeroed before a command executes, and later ORed with the
        !            85:  * command's flags after the command has been executed.  It is used to force
        !            86:  * certain flags to be TRUE for *some* invocations of a particular command.
        !            87:  * For example, "/regexp/+offset" forces the LNMD flag, and sometimes a "p"
        !            88:  * or "P" command will force FRNT.
        !            89:  */
        !            90: int            force_flags;
        !            91: 
        !            92: /* These are used for reporting multi-line changes to the user */
        !            93: long           rptlines;       /* number of lines affected by a command */
        !            94: char           *rptlabel;      /* description of how lines were affected */
        !            95: 
        !            96: /* These store info that pertains to the shift-U command */
        !            97: long   U_line;                 /* line# of the undoable line, or 0l for none */
        !            98: char   U_text[BLKSIZE];        /* contents of the undoable line */
        !            99: 
        !           100: 
        !           101: #ifndef NO_VISIBLE
        !           102: /* These are used to implement the 'v' and 'V' commands */
        !           103: MARK   V_from;                 /* starting point for v or V */
        !           104: int    V_linemd;               /* boolean: doing line-mode version? (V, not v) */
        !           105: #endif
        !           106: 
        !           107: /* Bigger stack req'ed for TOS and TURBOC */
        !           108: 
        !           109: #if TOS
        !           110: long   _stksize = 16384;
        !           111: #endif
        !           112: 
        !           113: #if TURBOC
        !           114: #include <dos.h>
        !           115: extern unsigned _stklen = 16384U;
        !           116: #endif

unix.superglobalmegacorp.com

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