|
|
1.1 root 1: /* buffer definitions for emacs */
2:
3: /* EMACS_MODES: c !fill */
4:
5: int BUFILE; /* buffer file number */
6: int BUFEND; /* next free line of buffer */
7: #define bufname bbfname[curbf]
8: #define filename bfilname[curbf]
9: #define bufmod bbfmod[curbf]
10: #define diron dirbuf[curbf]
11:
12: /* Undo information */
13:
14: #define NUNDO 64 /* Number of undo segments kept */
15:
16: long undostack[NUNDO];
17: int undop;
18: int unseg;
19:
20: /* Format of an entry. This should be done with fields, but it
21: * doesn't work on some machines since the fields are bigger than ints */
22:
23: #define UNDMASK 7 /* Mask for type field */
24: #define UNDSHIFT 3 /* Shift to extract parameter */
25:
26: #define UNDEL 1 /* next item is a deletion */
27: #define UNINS 2 /* next item is an insertion */
28: #define UNMUL 3 /* Next item is a multiple undo */
29: #define UNBAD 4 /* Next item is a partial multiple */
30:
31: /* kill stack stuff */
32:
33: #define KBSIZE 512
34: #define NKILLP 16
35: #ifdef PC
36: #define KBLIM 8192L
37: int BINMODE = 0;
38: #else
39: #define KBLIM 262144L /* size of kill buffer */
40: #endif PC
41: int kbdfile = 0;
42:
43: /* File size limit -- rejects huge files */
44:
45: #ifdef PC
46: #define MAXFS 140000
47: #else
48: #ifdef u370
49: #define MAXFS 1500000
50: #else
51: #define MAXFS 750000
52: #endif
53: #endif
54: long kstk[NKILLP+1];
55: char kbuf[KBSIZE];
56: int kbapp = 0; /* append kill buffer flag */
57: int nkp = -1;
58: long kend = 0L;
59: long kbwrt = 0L;
60: int kptr = 0;
61: long kbase = 0L;
62: int kbmod = 0;
63: int kfile = 0;
64: int crashes = 0;
65: int EOFNL = 1; /* If 1, force newline on EOF */
66:
67: /* Cryptography */
68:
69: #ifdef CRYPTO
70: int crypt = 0;
71: char cryptkey[10];
72: long bufkey;
73: #endif
74:
75: /* block buffer stuff */
76:
77:
78: #ifdef PC
79: /* Stupid compiler won't do compile time computations */
80:
81: #define BFACT 32
82: #define BMASK 0777
83: #define BRESID 037
84: #define BRMASK 0177740
85: #define BRSHIFT 5
86: #else
87: #define BFACT (BLEN/LSMALL)
88: #ifdef v8
89: #undef BMASK
90: #endif
91: #define BMASK (BLEN-1)
92: #define BRESID (BFACT-1)
93: #define BRMASK (~BRESID)
94: #define BRSHIFT (BSHIFT-LSSHIFT)
95: #endif
96:
97: /* sbrk rounding factor */
98:
99: #ifdef univac
100: #define BRKMSK 0377777777000
101: #else
102: #ifdef pdp11
103: #define BRKMSK 0177000
104: #else
105: #define BRKMSK ~0777
106: #endif
107: #endif
108:
109: int fbkno; /* first block buffer */
110: int macptr; /* macro storage pointer */
111:
112: int sblk;
113: int curblk;
114: int mostwrit;
115: int nxtflsh;
116:
117:
118: char bstat[NBLOCK];
119: unsigned bblock[NBLOCK];
120:
121: int hipt[NBLOCK];
122: int lowpt[NBLOCK];
123: int xline;
124:
125: /* multiple buffer stuff */
126:
127: #define NBUF 12
128: #ifdef PC
129: char *BTEMPATH = "c";
130: #else
131: #ifndef BTEMPATH
132: #define BTEMPATH "/tmp"
133: #endif
134: #endif PC
135: int btmpfile[NBUF]= {0,0,0,0,0,0,0,0}; /* temp file frn */
136: int btmpfree[NBUF]= {0,0,0,0,0,0,0,0}; /* temp file free pointer */
137: int bcurln[NBUF] = {0,0,0,0,0,0,0,0}; /* current line */
138: int bcolumn[NBUF]; /* current column */
139: int bnlines[NBUF]; /* number of lines */
140: char bbfmod[NBUF];
141: time_t mtime[NBUF];
142: #ifdef DIRED
143: char dirbuf[NBUF];
144: #endif
145: char bbfname[NBUF] [FNLEN]; /* buffer names */
146: char bfilname[NBUF] [FNLEN]; /* buffer file name */
147:
148: int curbf = 0; /* current buffer number */
149:
150: #define bnext() (blockp<blocke ? *blockp++: bnxt())
151: #define bput(chr) if(blockp<blocke) *blockp++ = (chr) ; else bpt(chr)
152:
153: /* trace stuff */
154:
155:
156: #define TSIZE 200
157:
158: /*int trcbuf[TSIZE];*/
159: /*int tnumb;*/
160:
161: /*#define TRACE(event) if (tnumb<TSIZE) trcbuf[tnumb++] = event; else trcbuf[(tnumb=1)-1] = event;*/
162: #define TRACE(event)
163:
164: #define TRSEEK 0
165: #define TRREAD 1
166: #define TRWRIT 2
167: #define TRMAKE 3
168: #define TRCKEX 4
169: #define TRCKCP 5
170: #define TRMKEM 6
171: #define TRBGRAB 7
172:
173: extern int VERBOSE;
174: char *expenv();
175: extern char *mkl();
176: extern int NSCHAR;
177: extern int SAVEMD;
178: extern char mdchar[];
179: extern char *endput;
180: extern char *getenv();
181: extern char *myname;
182: extern char version[];
183: char serial[10] = {' ',' ',' ',' ',' ',' ',' ',' ','0',0};
184: extern int READONLY;
185: extern int USILENT;
186: extern int savelink; /* Mode fails to ask on links */
187: extern int etrace;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.