1/*
2 * Copyright (C) 1984-2019  Mark Nudelman
3 *
4 * You may distribute under the terms of either the GNU General Public
5 * License or the Less License, as specified in the README file.
6 *
7 * For more information, see the README file.
8 */
9
10
11/* DOS definition file for less.  */
12/*
13 * This file has 2 sections:
14 * User preferences.
15 * Settings always true for MS-DOS systems.
16 */
17
18/* User preferences.  */
19
20/*
21 * SECURE is 1 if you wish to disable a bunch of features in order to
22 * be safe to run by unprivileged users.
23 */
24#define	SECURE		0
25
26/*
27 * SHELL_ESCAPE is 1 if you wish to allow shell escapes.
28 * (This is possible only if your system supplies the system() function.)
29 */
30#define	SHELL_ESCAPE	(!SECURE)
31
32/*
33 * EXAMINE is 1 if you wish to allow examining files by name from within less.
34 */
35#define	EXAMINE		(!SECURE)
36
37/*
38 * TAB_COMPLETE_FILENAME is 1 if you wish to allow the TAB key
39 * to complete filenames at prompts.
40 */
41#define	TAB_COMPLETE_FILENAME	(!SECURE)
42
43/*
44 * CMD_HISTORY is 1 if you wish to allow keys to cycle through
45 * previous commands at prompts.
46 */
47#define	CMD_HISTORY	1
48
49/*
50 * HILITE_SEARCH is 1 if you wish to have search targets to be
51 * displayed in standout mode.
52 */
53#define	HILITE_SEARCH	1
54
55/*
56 * EDITOR is 1 if you wish to allow editor invocation (the "v" command).
57 * (This is possible only if your system supplies the system() function.)
58 * EDIT_PGM is the name of the (default) editor to be invoked.
59 */
60#define	EDITOR		(!SECURE)
61#define	EDIT_PGM	"vi"
62
63/*
64 * TAGS is 1 if you wish to support tag files.
65 */
66#define	TAGS		(!SECURE)
67
68/*
69 * USERFILE is 1 if you wish to allow a .less file to specify
70 * user-defined key bindings.
71 */
72#define	USERFILE	(!SECURE)
73
74/*
75 * GLOB is 1 if you wish to have shell metacharacters expanded in filenames.
76 * This will generally work if your system provides the "popen" function
77 * and the "echo" shell command.
78 */
79#ifdef __DJGPP__
80#define	GLOB		(!SECURE)
81#else
82#define	GLOB		0
83#endif
84
85/*
86 * PIPEC is 1 if you wish to have the "|" command
87 * which allows the user to pipe data into a shell command.
88 */
89#ifdef __DJGPP__
90#define	PIPEC		(!SECURE)
91#else
92#define	PIPEC		0
93#endif
94
95/*
96 * LOGFILE is 1 if you wish to allow the -o option (to create log files).
97 */
98#define	LOGFILE		(!SECURE)
99
100/*
101 * GNU_OPTIONS is 1 if you wish to support the GNU-style command
102 * line options --help and --version.
103 */
104#define	GNU_OPTIONS	1
105
106/*
107 * ONLY_RETURN is 1 if you want RETURN to be the only input which
108 * will continue past an error message.
109 * Otherwise, any key will continue past an error message.
110 */
111#define	ONLY_RETURN	0
112
113/*
114 * LESSKEYFILE is the filename of the default lesskey output file
115 * (in the HOME directory).
116 * LESSKEYFILE_SYS is the filename of the system-wide lesskey output file.
117 * DEF_LESSKEYINFILE is the filename of the default lesskey input
118 * (in the HOME directory).
119 * LESSHISTFILE is the filename of the history file
120 * (in the HOME directory).
121 */
122#define	LESSKEYFILE		"_less"
123#define	LESSKEYFILE_SYS		"c:\\_sysless"
124#define	DEF_LESSKEYINFILE	"_lesskey"
125#define LESSHISTFILE		"_lesshst"
126
127
128/* Settings always true for MS-DOS systems.  */
129
130/*
131 * Define MSDOS_COMPILER if compiling for MS-DOS.
132 */
133#ifdef __DJGPP__
134#define	MSDOS_COMPILER		DJGPPC
135#else
136#ifdef __BORLANDC__
137#define	MSDOS_COMPILER		BORLANDC
138#else
139#define	MSDOS_COMPILER		MSOFTC
140#endif
141#endif
142
143/*
144 * Pathname separator character.
145 */
146#define	PATHNAME_SEP	"\\"
147
148/*
149 * HAVE_ANSI_PROTOS	is 1 if your compiler supports ANSI function prototypes.
150 */
151#define HAVE_ANSI_PROTOS	1
152
153/*
154 * HAVE_SYS_TYPES_H is 1 if your system has <sys/types.h>.
155 */
156#define HAVE_SYS_TYPES_H	1
157
158/*
159 * Define if you have the <sgstat.h> header file.
160 */
161#define HAVE_SGSTAT_H	0
162
163/*
164 * HAVE_PERROR is 1 if your system has the perror() call.
165 * (Actually, if it has sys_errlist, sys_nerr and errno.)
166 */
167#define	HAVE_PERROR	1
168
169/*
170 * HAVE_TIME is 1 if your system has the time() call.
171 */
172#define	HAVE_TIME	1
173
174/*
175 * HAVE_SHELL is 1 if your system supports a SHELL command interpreter.
176 */
177#define	HAVE_SHELL	0
178
179/*
180 * Default shell metacharacters and meta-escape character.
181 */
182#define	DEF_METACHARS	"; *?\t\n'\"()<>|&"
183#define	DEF_METAESCAPE	""
184
185/*
186 * HAVE_DUP is 1 if your system has the dup() call.
187 */
188#define	HAVE_DUP	1
189
190/*
191 * Sizes of various buffers.
192 */
193#if 0 /* old sizes for small memory machines
194#define	CMDBUF_SIZE	512	/* Buffer for multichar commands */
195#define	UNGOT_SIZE	100	/* Max chars to unget() */
196#define	LINEBUF_SIZE	1024	/* Max size of line in input file */
197#define	OUTBUF_SIZE	1024	/* Output buffer */
198#define	PROMPT_SIZE	200	/* Max size of prompt string */
199#define	TERMBUF_SIZE	2048	/* Termcap buffer for tgetent */
200#define	TERMSBUF_SIZE	1024	/* Buffer to hold termcap strings */
201#define	TAGLINE_SIZE	512	/* Max size of line in tags file */
202#define	TABSTOP_MAX	32	/* Max number of custom tab stops */
203#else /* more reasonable sizes for modern machines */
204#define	CMDBUF_SIZE	2048	/* Buffer for multichar commands */
205#define	UNGOT_SIZE	200	/* Max chars to unget() */
206#define	LINEBUF_SIZE	1024	/* Initial max size of line in input file */
207#define	OUTBUF_SIZE	1024	/* Output buffer */
208#define	PROMPT_SIZE	2048	/* Max size of prompt string */
209#define	TERMBUF_SIZE	2048	/* Termcap buffer for tgetent */
210#define	TERMSBUF_SIZE	1024	/* Buffer to hold termcap strings */
211#define	TAGLINE_SIZE	1024	/* Max size of line in tags file */
212#define	TABSTOP_MAX	128	/* Max number of custom tab stops */
213#endif
214
215/* Define to `long' if <sys/types.h> doesn't define.  */
216#if MSDOS_COMPILER==BORLANDC
217#define	off_t	long
218#endif
219
220/* Define if you need to in order for stat and other things to work.  */
221/* #undef _POSIX_SOURCE */
222
223/* Define as the return type of signal handlers (int or void).  */
224#define RETSIGTYPE void
225
226
227/*
228 * Regular expression library.
229 * Define exactly one of the following to be 1:
230 * HAVE_POSIX_REGCOMP: POSIX regcomp() and regex.h
231 * HAVE_RE_COMP: BSD re_comp()
232 * HAVE_REGCMP: System V regcmp()
233 * HAVE_V8_REGCOMP: Henry Spencer V8 regcomp() and regexp.h
234 * NO_REGEX: pattern matching is supported, but without metacharacters.
235 */
236/* #undef HAVE_POSIX_REGCOMP */
237/* #undef HAVE_RE_COMP */
238/* #undef HAVE_REGCMP */
239/* #undef HAVE_V8_REGCOMP */
240#if MSDOS_COMPILER==DJGPPC
241#define	HAVE_POSIX_REGCOMP 1
242#else
243#define NO_REGEX 1
244#endif
245
246/* Define HAVE_VOID if your compiler supports the "void" type. */
247#define HAVE_VOID 1
248
249/* Define HAVE_CONST if your compiler supports the "const" modifier. */
250#define HAVE_CONST 1
251
252/* Define HAVE_TIME_T if your system supports the "time_t" type. */
253#define HAVE_TIME_T 1
254
255/* Define HAVE_STRERROR if you have the strerror() function. */
256#define HAVE_STRERROR 1
257
258/* Define HAVE_FILENO if you have the fileno() macro. */
259#define HAVE_FILENO 1
260
261/* Define HAVE_ERRNO if you have the errno variable */
262/* Define MUST_DEFINE_ERRNO if you have errno but it is not defined
263 * in errno.h */
264#if MSDOS_COMPILER==MSOFTC || MSDOS_COMPILER==DJGPPC
265#define HAVE_ERRNO 1
266#define MUST_DEFINE_ERRNO 0
267#else
268#define HAVE_ERRNO 1
269#define MUST_DEFINE_ERRNO 1
270#endif
271
272/* Define HAVE_SYS_ERRLIST if you have the sys_errlist[] variable */
273#define HAVE_SYS_ERRLIST 1
274
275/* Define HAVE_OSPEED if your termcap library has the ospeed variable */
276/* Define MUST_DEFINE_OSPEED if you have ospeed but it is not defined
277 * in termcap.h. */
278#define HAVE_OSPEED 0
279#define MUST_DEFINE_OSPEED 0
280
281/* Define HAVE_LOCALE if you have locale.h and setlocale. */
282#define HAVE_LOCALE 0
283
284/* Define HAVE_TERMIOS_FUNCS if you have tcgetattr/tcsetattr */
285#define HAVE_TERMIOS_FUNCS 0
286
287/* Define HAVE_UPPER_LOWER if you have isupper, islower, toupper, tolower */
288#define HAVE_UPPER_LOWER 1
289
290/* Define if you have the _setjmp function.  */
291#if MSDOS_COMPILER==MSOFTC || MSDOS_COMPILER==DJGPPC
292#define HAVE__SETJMP	0
293#else
294#define HAVE__SETJMP	1
295#endif
296
297/* Define if you have the memcpy function.  */
298#define HAVE_MEMCPY 1
299
300/* Define if you have the popen function.  */
301#if MSDOS_COMPILER==DJGPPC
302#define HAVE_POPEN	1
303#else
304#define HAVE_POPEN	0
305#endif
306
307/* Define if you have the sigsetmask function.  */
308#define HAVE_SIGSETMASK	0
309
310/* Define if you have the sigprocmask function.  */
311#define HAVE_SIGPROCMASK	0
312
313/* Define if you have the sigset_t type and sigemptyset macro */
314#define HAVE_SIGSET_T	0
315#define HAVE_SIGEMPTYSET	0
316
317/* Define if you have the stat function.  */
318#define HAVE_STAT 1
319
320/* Define if you have the strchr function.  */
321#define HAVE_STRCHR 1
322
323/* Define if you have the system function.  */
324#define HAVE_SYSTEM	1
325
326/* Define if you have the snprintf function.  */
327#define HAVE_SNPRINTF	0
328
329/* Define if you have the <ctype.h> header file.  */
330#define HAVE_CTYPE_H 1
331
332/* Define if you have the <wctype.h> header file.  */
333#define HAVE_WCTYPE_H 0
334
335/* Define if you have the <errno.h> header file.  */
336#define HAVE_ERRNO_H 1
337
338/* Define if you have the <fcntl.h> header file.  */
339#define HAVE_FCNTL_H 1
340
341/* Define HAVE_FLOAT if your compiler supports the "double" type. */
342#define HAVE_FLOAT 1
343
344/* Define if you have the <limits.h> header file.  */
345#define HAVE_LIMITS_H 1
346
347/* Define if you have the <stdio.h> header file.  */
348#define HAVE_STDIO_H 1
349
350/* Define if you have the <stdlib> header file. */
351#define HAVE_STDLIB_H 1
352
353/* Define if you have the <string.h> header file.  */
354#define HAVE_STRING_H 1
355
356/* Define if you have the <sys/ioctl.h> header file.  */
357#define HAVE_SYS_IOCTL_H 0
358
359/* Define if you have the <sys/ptem.h> header file.  */
360#define HAVE_SYS_PTEM_H	0
361
362/* Define if you have the <sys/stream.h> header file.  */
363#define HAVE_SYS_STREAM_H	0
364
365/* Define if you have the <termcap.h> header file.  */
366#define HAVE_TERMCAP_H	0
367
368/* Define if you have the <termio.h> header file.  */
369#define HAVE_TERMIO_H	0
370
371/* Define if you have the <termios.h> header file.  */
372#define HAVE_TERMIOS_H 0
373
374/* Define if you have the <time.h> header file.  */
375#define HAVE_TIME_H 1
376
377/* Define if you have the <unistd.h> header file.  */
378#if MSDOS_COMPILER==DJGPPC
379#define HAVE_UNISTD_H 1
380#else
381#define HAVE_UNISTD_H 0
382#endif
383
384/* Define if you have the <values.h> header file.  */
385#if MSDOS_COMPILER==MSOFTC
386#define HAVE_VALUES_H 0
387#else
388#define HAVE_VALUES_H 1
389#endif
390
391#if MSDOS_COMPILER == MSOFTC && _MSC_VER >= 700
392/*
393 * The names of these things changed in Microsoft C version 7.0.
394 */
395#define videoconfig	_videoconfig
396#define rccoord		_rccoord
397#define O_RDONLY	_O_RDONLY
398#define O_WRONLY	_O_WRONLY
399#define O_APPEND	_O_APPEND
400#define O_BINARY	_O_BINARY
401#define O_TEXT		_O_TEXT
402#define find_t		_find_t
403#define stat		_stat
404#define S_IFMT		_S_IFMT
405#define S_IFDIR		_S_IFDIR
406#define S_IFREG		_S_IFREG
407#define dup		_dup
408#define open		_open
409#define lseek		_lseek
410#define write		_write
411#define creat		_creat
412#define fstat		_fstat
413#define isatty		_isatty
414#define close		_close
415#define read		_read
416#define ungetch		_ungetch
417#define kbhit		_kbhit
418#define getch		_getch
419#endif
420