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/* 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 LESSKEYINFILE_SYS "c:\\_syslesskey" 126#define LESSHISTFILE "_lesshst" 127 128 129/* Settings always true for MS-DOS systems. */ 130 131/* 132 * Define MSDOS_COMPILER if compiling for MS-DOS. 133 */ 134#ifdef __DJGPP__ 135#define MSDOS_COMPILER DJGPPC 136#else 137#ifdef __BORLANDC__ 138#define MSDOS_COMPILER BORLANDC 139#else 140#define MSDOS_COMPILER MSOFTC 141#endif 142#endif 143 144/* 145 * Pathname separator character. 146 */ 147#define PATHNAME_SEP "\\" 148 149/* 150 * HAVE_ANSI_PROTOS is 1 if your compiler supports ANSI function prototypes. 151 */ 152#define HAVE_ANSI_PROTOS 1 153 154/* 155 * HAVE_SYS_TYPES_H is 1 if your system has <sys/types.h>. 156 */ 157#define HAVE_SYS_TYPES_H 1 158 159/* 160 * Define if you have the <sgstat.h> header file. 161 */ 162#define HAVE_SGSTAT_H 0 163 164/* 165 * HAVE_PERROR is 1 if your system has the perror() call. 166 * (Actually, if it has sys_errlist, sys_nerr and errno.) 167 */ 168#define HAVE_PERROR 1 169 170/* 171 * HAVE_TIME is 1 if your system has the time() call. 172 */ 173#define HAVE_TIME 1 174 175/* 176 * HAVE_SHELL is 1 if your system supports a SHELL command interpreter. 177 */ 178#define HAVE_SHELL 0 179 180/* 181 * Default shell metacharacters and meta-escape character. 182 */ 183#define DEF_METACHARS "; *?\t\n'\"()<>|&" 184#define DEF_METAESCAPE "" 185 186/* 187 * HAVE_DUP is 1 if your system has the dup() call. 188 */ 189#define HAVE_DUP 1 190 191/* Define to 1 to support reading lesskey source files (not just binary). */ 192#define HAVE_LESSKEYSRC 1 193 194/* 195 * Sizes of various buffers. 196 */ 197#if 0 /* old sizes for small memory machines 198#define CMDBUF_SIZE 512 /* Buffer for multichar commands */ 199#define UNGOT_SIZE 100 /* Max chars to unget() */ 200#define LINEBUF_SIZE 1024 /* Max size of line in input file */ 201#define OUTBUF_SIZE 1024 /* Output buffer */ 202#define PROMPT_SIZE 200 /* Max size of prompt string */ 203#define TERMBUF_SIZE 2048 /* Termcap buffer for tgetent */ 204#define TERMSBUF_SIZE 1024 /* Buffer to hold termcap strings */ 205#define TAGLINE_SIZE 512 /* Max size of line in tags file */ 206#define TABSTOP_MAX 32 /* Max number of custom tab stops */ 207#else /* more reasonable sizes for modern machines */ 208#define CMDBUF_SIZE 2048 /* Buffer for multichar commands */ 209#define UNGOT_SIZE 200 /* Max chars to unget() */ 210#define LINEBUF_SIZE 1024 /* Initial max size of line in input file */ 211#define OUTBUF_SIZE 1024 /* Output buffer */ 212#define PROMPT_SIZE 2048 /* Max size of prompt string */ 213#define TERMBUF_SIZE 2048 /* Termcap buffer for tgetent */ 214#define TERMSBUF_SIZE 1024 /* Buffer to hold termcap strings */ 215#define TAGLINE_SIZE 1024 /* Max size of line in tags file */ 216#define TABSTOP_MAX 128 /* Max number of custom tab stops */ 217#endif 218 219/* Define to `long' if <sys/types.h> doesn't define. */ 220#if MSDOS_COMPILER==BORLANDC 221#define off_t long 222#endif 223 224/* Define if you need to in order for stat and other things to work. */ 225/* #undef _POSIX_SOURCE */ 226 227/* Define as the return type of signal handlers (int or void). */ 228#define RETSIGTYPE void 229 230 231/* 232 * Regular expression library. 233 * Define exactly one of the following to be 1: 234 * HAVE_POSIX_REGCOMP: POSIX regcomp() and regex.h 235 * HAVE_RE_COMP: BSD re_comp() 236 * HAVE_REGCMP: System V regcmp() 237 * HAVE_V8_REGCOMP: Henry Spencer V8 regcomp() and regexp.h 238 * NO_REGEX: pattern matching is supported, but without metacharacters. 239 */ 240/* #undef HAVE_POSIX_REGCOMP */ 241/* #undef HAVE_RE_COMP */ 242/* #undef HAVE_REGCMP */ 243/* #undef HAVE_V8_REGCOMP */ 244#if MSDOS_COMPILER==DJGPPC 245#define HAVE_POSIX_REGCOMP 1 246#else 247#define NO_REGEX 1 248#endif 249 250/* Define HAVE_VOID if your compiler supports the "void" type. */ 251#define HAVE_VOID 1 252 253/* Define HAVE_CONST if your compiler supports the "const" modifier. */ 254#define HAVE_CONST 1 255 256/* Define HAVE_TIME_T if your system supports the "time_t" type. */ 257#define HAVE_TIME_T 1 258 259/* Define HAVE_STRERROR if you have the strerror() function. */ 260#define HAVE_STRERROR 1 261 262/* Define HAVE_FILENO if you have the fileno() macro. */ 263#define HAVE_FILENO 1 264 265/* Define HAVE_ERRNO if you have the errno variable */ 266/* Define MUST_DEFINE_ERRNO if you have errno but it is not defined 267 * in errno.h */ 268#if MSDOS_COMPILER==MSOFTC || MSDOS_COMPILER==DJGPPC 269#define HAVE_ERRNO 1 270#define MUST_DEFINE_ERRNO 0 271#else 272#define HAVE_ERRNO 1 273#define MUST_DEFINE_ERRNO 1 274#endif 275 276/* Define HAVE_SYS_ERRLIST if you have the sys_errlist[] variable */ 277#define HAVE_SYS_ERRLIST 1 278 279/* Define HAVE_OSPEED if your termcap library has the ospeed variable */ 280/* Define MUST_DEFINE_OSPEED if you have ospeed but it is not defined 281 * in termcap.h. */ 282#define HAVE_OSPEED 0 283#define MUST_DEFINE_OSPEED 0 284 285/* Define HAVE_LOCALE if you have locale.h and setlocale. */ 286#define HAVE_LOCALE 0 287 288/* Define HAVE_TERMIOS_FUNCS if you have tcgetattr/tcsetattr */ 289#define HAVE_TERMIOS_FUNCS 0 290 291/* Define HAVE_UPPER_LOWER if you have isupper, islower, toupper, tolower */ 292#define HAVE_UPPER_LOWER 1 293 294/* Define if you have the _setjmp function. */ 295#if MSDOS_COMPILER==MSOFTC || MSDOS_COMPILER==DJGPPC 296#define HAVE__SETJMP 0 297#else 298#define HAVE__SETJMP 1 299#endif 300 301/* Define if you have the memcpy function. */ 302#define HAVE_MEMCPY 1 303 304/* Define if you have the popen function. */ 305#if MSDOS_COMPILER==DJGPPC 306#define HAVE_POPEN 1 307#else 308#define HAVE_POPEN 0 309#endif 310 311/* Define if you have the sigsetmask function. */ 312#define HAVE_SIGSETMASK 0 313 314/* Define if you have the sigprocmask function. */ 315#define HAVE_SIGPROCMASK 0 316 317/* Define if you have the sigset_t type and sigemptyset macro */ 318#define HAVE_SIGSET_T 0 319#define HAVE_SIGEMPTYSET 0 320 321/* Define if you have the stat function. */ 322#define HAVE_STAT 1 323 324/* Define if you have the strchr function. */ 325#define HAVE_STRCHR 1 326 327/* Define if you have the system function. */ 328#define HAVE_SYSTEM 1 329 330/* Define if you have the snprintf function. */ 331#define HAVE_SNPRINTF 0 332 333/* Define if you have the <ctype.h> header file. */ 334#define HAVE_CTYPE_H 1 335 336/* Define if you have the <wctype.h> header file. */ 337#define HAVE_WCTYPE_H 0 338 339/* Define if you have the <errno.h> header file. */ 340#define HAVE_ERRNO_H 1 341 342/* Define if you have the <fcntl.h> header file. */ 343#define HAVE_FCNTL_H 1 344 345/* Define if you have the <limits.h> header file. */ 346#define HAVE_LIMITS_H 1 347 348/* Define if you have the <stdio.h> header file. */ 349#define HAVE_STDIO_H 1 350 351/* Define if you have the <stdlib> header file. */ 352#define HAVE_STDLIB_H 1 353 354/* Define if you have the <string.h> header file. */ 355#define HAVE_STRING_H 1 356 357/* Define if you have the <sys/ioctl.h> header file. */ 358#define HAVE_SYS_IOCTL_H 0 359 360/* Define if you have the <sys/ptem.h> header file. */ 361#define HAVE_SYS_PTEM_H 0 362 363/* Define if you have the <sys/stream.h> header file. */ 364#define HAVE_SYS_STREAM_H 0 365 366/* Define if you have the <termcap.h> header file. */ 367#define HAVE_TERMCAP_H 0 368 369/* Define if you have the <termio.h> header file. */ 370#define HAVE_TERMIO_H 0 371 372/* Define if you have the <termios.h> header file. */ 373#define HAVE_TERMIOS_H 0 374 375/* Define if you have the <time.h> header file. */ 376#define HAVE_TIME_H 1 377 378/* Define if you have the <unistd.h> header file. */ 379#if MSDOS_COMPILER==DJGPPC 380#define HAVE_UNISTD_H 1 381#else 382#define HAVE_UNISTD_H 0 383#endif 384 385/* Define if you have the <values.h> header file. */ 386#if MSDOS_COMPILER==MSOFTC 387#define HAVE_VALUES_H 0 388#else 389#define HAVE_VALUES_H 1 390#endif 391 392#if MSDOS_COMPILER == MSOFTC && _MSC_VER >= 700 393/* 394 * The names of these things changed in Microsoft C version 7.0. 395 */ 396#define videoconfig _videoconfig 397#define rccoord _rccoord 398#define O_RDONLY _O_RDONLY 399#define O_WRONLY _O_WRONLY 400#define O_APPEND _O_APPEND 401#define O_BINARY _O_BINARY 402#define O_TEXT _O_TEXT 403#define find_t _find_t 404#define stat _stat 405#define S_IFMT _S_IFMT 406#define S_IFDIR _S_IFDIR 407#define S_IFREG _S_IFREG 408#define dup _dup 409#define open _open 410#define lseek _lseek 411#define write _write 412#define creat _creat 413#define fstat _fstat 414#define isatty _isatty 415#define close _close 416#define read _read 417#define ungetch _ungetch 418#define kbhit _kbhit 419#define getch _getch 420#endif 421