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