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