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