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