|
|
1.1 root 1: /* vars.c */
2:
3: /* Author:
4: * Steve Kirkendall
5: * 16820 SW Tallac Way
6: * Beaverton, OR 97006
7: * [email protected], or ...uunet!tektronix!psueea!jove!kirkenda
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:
26: /* used to keep track of the current file & alternate file */
27: long origtime;
28: char origname[256];
29: char prevorig[256];
30: long prevline = 1;
31:
32: /* used to track various places in the text */
33: MARK mark[NMARKS]; /* marks 'a through 'z, plus mark '' */
34: MARK cursor; /* the cursor position within the file */
35:
36: /* which mode of the editor we're in */
37: int mode; /* vi mode? ex mode? quitting? */
38:
39: /* used to manage the args list */
40: char args[BLKSIZE]; /* list of filenames to edit */
41: int argno; /* index of current file in args list */
42: int nargs; /* number of filenames in args[] */
43:
44: /* dummy var, never explicitly referenced */
45: int bavar; /* used only in BeforeAfter macros */
46:
47: /* have we made a multi-line change? */
48: int mustredraw; /* must we redraw the whole screen? */
49:
50: /* used to detect changes that invalidate cached text/blocks */
51: long changes; /* incremented when file is changed */
52: int significant; /* boolean: was a *REAL* change made? */
53:
54: /* used to support the pfetch() macro */
55: int plen; /* length of the line */
56: long pline; /* line number that len refers to */
57: long pchgs; /* "changes" level that len refers to */
58: char *ptext; /* text of previous line, if valid */
59:
60: /* misc temporary storage - mostly for strings */
61: BLK tmpblk; /* a block used to accumulate changes */
62:
63: /* screen oriented stuff */
64: long topline; /* file line number of top line */
65: int leftcol; /* column number of left col */
66: int physcol; /* physical column number that cursor is on */
67: int physrow; /* physical row number that cursor is on */
68:
69: /* used to help minimize that "[Hit a key to continue]" message */
70: int exwrote; /* Boolean: was the last ex command wordy? */
71:
72: /* This variable affects the behaviour of certain functions -- most importantly
73: * the input function.
74: */
75: int doingdot; /* boolean: are we doing the "." command? */
76:
77: /* This variable affects the behaviour of the ":s" command, and it is also
78: * used to detect & prohibit nesting of ":g" commands
79: */
80: int doingglobal; /* boolean: are doing a ":g" command? */
81: /* These are used for reporting multi-line changes to the user */
82: long rptlines; /* number of lines affected by a command */
83: char *rptlabel; /* description of how lines were affected */
84:
85: /* These store info that pertains to the shift-U command */
86: long U_line; /* line# of the undoable line, or 0l for none */
87: char U_text[BLKSIZE]; /* contents of the undoable line */
88:
89: /* Bigger stack req'ed for TOS */
90:
91: #if TOS
92: long _stksize = 16384;
93: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.