xref: /original-bsd/usr.bin/ex/ex_tune.h (revision ec7df300)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)ex_tune.h	7.8 (Berkeley) 05/31/85
7  */
8 
9 /*
10  * Definitions of editor parameters and limits
11  */
12 
13 /*
14  * Pathnames.
15  *
16  * Only exstrings is looked at "+4", i.e. if you give
17  * "/usr/lib/..." here, "/lib" will be tried only for strings.
18  */
19 #define libpath(file) "/usr/lib/file"
20 #define loclibpath(file) "/usr/local/lib/file"
21 #define binpath(file) "/usr/ucb/file"
22 #define usrpath(file) "/usr/file"
23 #define E_TERMCAP	"/etc/termcap"
24 #define B_CSH		"/bin/csh"
25 #define	EXRECOVER	libpath(ex3.7recover)
26 #define	EXPRESERVE	libpath(ex3.7preserve)
27 #ifndef VMUNIX
28 #define	EXSTRINGS	libpath(ex3.7strings)
29 #endif
30 
31 /*
32  * If your system believes that tabs expand to a width other than
33  * 8 then your makefile should cc with -DTABS=whatever, otherwise we use 8.
34  */
35 #ifndef TABS
36 #define	TABS	8
37 #endif
38 
39 /*
40  * Maximums
41  *
42  * The definition of LBSIZE should be the same as BUFSIZ (512 usually).
43  * Most other definitions are quite generous.
44  */
45 /* FNSIZE is also defined in expreserve.c */
46 #define	FNSIZE		128		/* File name size */
47 #ifdef VMUNIX
48 #define	LBSIZE		1024
49 #define	ESIZE		512
50 #define CRSIZE		1024
51 #else
52 #ifdef u370
53 #define LBSIZE		4096
54 #define ESIZE		512
55 #define CRSIZE		4096
56 #else
57 #define	LBSIZE		512		/* Line length */
58 #define	ESIZE		128		/* Size of compiled re */
59 #define CRSIZE		512
60 #endif
61 #endif
62 #define	RHSSIZE		256		/* Size of rhs of substitute */
63 #define	NBRA		9		/* Number of re \( \) pairs */
64 #define	TAGSIZE		128		/* Tag length */
65 #define	ONMSZ		64		/* Option name size */
66 #define	GBSIZE		256		/* Buffer size */
67 #define	UXBSIZE		128		/* Unix command buffer size */
68 #define	VBSIZE		128		/* Partial line max size in visual */
69 /* LBLKS is also defined in expreserve.c */
70 #ifndef VMUNIX
71 #define	LBLKS		125		/* Line pointer blocks in temp file */
72 #define	HBLKS		1		/* struct header fits in BUFSIZ*HBLKS */
73 #else
74 #define	LBLKS		900
75 #define	HBLKS		2
76 #endif
77 #define	MAXDIRT		12		/* Max dirtcnt before sync tfile */
78 #define TCBUFSIZE	1024		/* Max entry size in termcap, see
79 					   also termlib and termcap */
80 
81 /*
82  * Except on VMUNIX, these are a ridiculously small due to the
83  * lousy arglist processing implementation which fixes core
84  * proportional to them.  Argv (and hence NARGS) is really unnecessary,
85  * and argument character space not needed except when
86  * arguments exist.  Argument lists should be saved before the "zero"
87  * of the incore line information and could then
88  * be reasonably large.
89  */
90 #undef NCARGS
91 #ifndef VMUNIX
92 #define	NARGS	100		/* Maximum number of names in "next" */
93 #define	NCARGS	LBSIZE		/* Maximum arglist chars in "next" */
94 #else
95 #define	NCARGS	5120
96 #define	NARGS	(NCARGS/6)
97 #endif
98 
99 /*
100  * Note: because the routine "alloca" is not portable, TUBESIZE
101  * bytes are allocated on the stack each time you go into visual
102  * and then never freed by the system.  Thus if you have no terminals
103  * which are larger than 24 * 80 you may well want to make TUBESIZE
104  * smaller.  TUBECOLS should stay at 160 since this defines the maximum
105  * length of opening on hardcopies and allows two lines of open on
106  * terminals like adm3's (glass tty's) where it switches to pseudo
107  * hardcopy mode when a line gets longer than 80 characters.
108  */
109 #ifndef VMUNIX
110 #define	TUBELINES	60	/* Number of screen lines for visual */
111 #define	TUBECOLS	160	/* Number of screen columns for visual */
112 #define	TUBESIZE	5000	/* Maximum screen size for visual */
113 #else
114 #define	TUBELINES	70
115 #define	TUBECOLS	160
116 #define	TUBESIZE	7000	/* 70 * 100 */
117 #endif
118 
119 /*
120  * Output column (and line) are set to this value on cursor addressible
121  * terminals when we lose track of the cursor to force cursor
122  * addressing to occur.
123  */
124 #define	UKCOL		-20	/* Prototype unknown column */
125 
126 /*
127  * Attention is the interrupt character (normally 0177 -- delete).
128  * Quit is the quit signal (normally FS -- control-\) and quits open/visual.
129  */
130 #define	ATTN	(-2)	/* mjm: (char) ??  */
131 #define	QUIT	('\\' & 037)
132