2 * The Regina Rexx Interpreter
3 * Copyright (C) 1992-1994 Anders Christensen <anders@pvv.unit.no>
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
15 * You should have received a copy of the GNU Library General Public
16 * License along with this library; if not, write to the Free
17 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 * For platforms that don't use autoconf, put these here...
22 #define HAVE_ASSERT_H 1
23 #define HAVE_ERRNO_H 1
24 #define HAVE_CTYPE_H 1
25 #define HAVE_STDARG_H 1
26 #define HAVE_SYS_STAT_H 1
28 #if defined(DOS) && defined(EMX)
29 # define HAVE_ALLOCA_H 1
31 # define HAVE_MATH_H 1
32 # define HAVE_RANDOM 1
33 #undef HAVE_RANDOM /* needs bsd support and linking with -lbsd */
34 # define HAVE_SIGACTION 1
35 # define HAVE_STDIO_H 1
36 # define HAVE_SYS_TIME_H 1
37 # define HAVE_SYSCONF 1
38 # define HAVE_TERMIOS_H 1
39 # define HAVE_TIME_H 1
40 # define HAVE_FCNTL_H 1
43 # define HAVE_LIMITS_H 1
44 # define HAVE_MALLOC_H 1
45 # define HAVE_SETJMP_H 1
46 # define HAVE_SIGNAL_H 1
47 # define HAVE_STDLIB_H 1
48 # define HAVE_STRING_H 1
49 # define HAVE_UNISTD_H 1
50 # define HAVE_SYS_SOCKET_H 1
51 # define HAVE_NETINET_IN_H 1
52 # define HAVE_SYS_SELECT_H 1
53 # define HAVE_NETDB_H 1
54 # define HAVE_ARPA_INET_H 1
55 # define HAVE__FULLPATH 1
56 # define HAVE_PUTENV 1
57 # define HAVE_GETTIMEOFDAY 1
58 # define HAVE_FTRUNCATE 1
59 # define HAVE_MEMCPY 1
60 # define HAVE_MEMMOVE 1
61 # define HAVE_STRERROR 1
62 # define HAVE_VSPRINTF 1
63 # define HAVE_GETPID 1
64 # define TIME_WITH_SYS_TIME 1
69 #if defined(OS2) && defined(EMX)
70 # define HAVE_ALLOCA_H 1
72 # define HAVE_MATH_H 1
73 # define HAVE_RANDOM 1
74 #undef HAVE_RANDOM /* needs bsd support and linking with -lbsd */
75 # define HAVE_SIGACTION 1
76 # define HAVE_STDIO_H 1
77 # define HAVE_SYS_TIME_H 1
78 # define HAVE_SYS_STAT_H 1
79 # define HAVE_SYS_TYPES_H 1
80 # define HAVE_SYSCONF 1
81 # define HAVE_TERMIOS_H 1
82 # define HAVE_TIME_H 1
83 # define HAVE_FCNTL_H 1
86 # define HAVE_LIMITS_H 1
87 # define HAVE_PROCESS_H 1
88 # define HAVE_MALLOC_H 1
89 # define HAVE_SETJMP_H 1
90 # define HAVE_SIGNAL_H 1
91 # define HAVE_STDLIB_H 1
92 # define HAVE_STDINT_H 1
93 # define HAVE_STRING_H 1
94 # define HAVE_UNISTD_H 1
95 # define HAVE_SYS_SOCKET_H 1
96 # define HAVE_NETINET_IN_H 1
97 # define HAVE_SYS_SELECT_H 1
98 # define HAVE_NETDB_H 1
99 # define HAVE_ARPA_INET_H 1
100 # define HAVE__FULLPATH 1
101 # define HAVE_PUTENV 1
102 # define HAVE_GETTIMEOFDAY 1
103 # define HAVE_FTRUNCATE 1
104 # define HAVE_MEMCPY 1
105 # define HAVE_MEMMOVE 1
106 # define HAVE_STRERROR 1
107 # define HAVE_VSPRINTF 1
108 # define HAVE_GETPID 1
110 # define HAVE_RAISE 1
111 # define TIME_WITH_SYS_TIME 1
112 # if defined(DYNAMIC)
117 #if defined(OS2) && defined(__IBMC__)
118 # define HAVE_SETJMP_H
119 # define HAVE__FULLPATH
121 # define HAVE_GETTIMEOFDAY
122 # define HAVE_FTRUNCATE
124 # define HAVE_MEMMOVE
125 # define HAVE_STRERROR
126 # define HAVE_VSPRINTF
130 # define TIME_WITH_SYS_TIME
133 #if defined(OS2) && defined(__WATCOMC__)
134 # define HAVE_ARPA_INET_H /* at least OpenWatcom */
135 # define HAVE_DIRECT_H
137 # define HAVE_FCNTL_H
140 # define HAVE_MALLOC_H
142 # define HAVE_MEMMOVE
143 # define HAVE_NETDB_H /* at least OpenWatcom */
144 # define HAVE_NETINET_IN_H /* at least OpenWatcom */
145 # define HAVE_PROCESS_H /* at least OpenWatcom */
149 # define HAVE_SETJMP_H
150 # define HAVE_PROCESS_H
151 # define HAVE_SIGNAL_H
152 # define HAVE_STRERROR
153 # define HAVE_STRING_H
154 # define HAVE_SYS_SELECT_H /* at least OpenWatcom */
155 # define HAVE_SYS_SOCKET_H /* at least OpenWatcom */
156 # define HAVE_TYPES_H
157 # define HAVE_UNISTD_H
158 # define HAVE_VSPRINTF
159 # define HAVE__FULLPATH
160 # define HAVE__SPLITPATH2
161 # if defined(DYNAMIC)
166 #if defined(WIN32) && defined(__WATCOMC__)
167 # define HAVE_ARPA_INET_H /* at least OpenWatcom */
168 # define HAVE_DIRECT_H
170 # define HAVE_FCNTL_H
173 # define HAVE_MALLOC_H
175 # define HAVE_MEMMOVE
176 # define HAVE_NETDB_H /* at least OpenWatcom */
177 # define HAVE_NETINET_IN_H /* at least OpenWatcom */
178 # define HAVE_PROCESS_H /* at least OpenWatcom */
182 # define HAVE_SETJMP_H
183 # define HAVE_SIGNAL_H
184 # define HAVE_STRERROR
185 # define HAVE_STRING_H
186 # define HAVE_SYS_SELECT_H /* at least OpenWatcom */
187 # define HAVE_SYS_SOCKET_H /* at least OpenWatcom */
188 # define HAVE_TYPES_H
189 # define HAVE_UNISTD_H
190 # define HAVE_VSPRINTF
191 # define HAVE__FULLPATH
192 # define HAVE__SPLITPATH2
193 # if defined(DYNAMIC)
194 # define DYNAMIC_WIN32
198 #if defined(DOS) && defined(__WATCOMC__)
199 # define HAVE_MALLOC_H
200 # define HAVE_SETJMP_H
201 # define HAVE_SIGNAL_H
202 # define HAVE_UNISTD_H
203 # define HAVE_STRING_H
205 # define HAVE_FCNTL_H
206 # define HAVE_PROCESS_H /* at least OpenWatcom */
207 # define HAVE__FULLPATH
208 # define HAVE__SPLITPATH2
209 /* # define HAVE_FTRUNCATE */
211 # define HAVE_MEMMOVE
213 # define HAVE_STRERROR
214 # define HAVE_VSPRINTF
220 #if defined(WIN32) && defined(_MSC_VER)
221 # define HAVE_FCNTL_H
222 # define HAVE_LIMITS_H
223 # define HAVE_MALLOC_H
224 # define HAVE_PROCESS_H
225 # define HAVE_SETJMP_H
226 # define HAVE_SIGNAL_H
227 # define HAVE_STDLIB_H
228 # define HAVE_STRING_H
229 # define HAVE__FULLPATH
230 # define HAVE__SPLITPATH
231 # define HAVE_FTRUNCATE
232 # define HAVE_MY_WIN32_SETENV
235 # define HAVE_MEMMOVE
236 # define HAVE_STRERROR
237 # define HAVE_VSPRINTF
241 # if defined(DYNAMIC)
242 # define DYNAMIC_WIN32
246 #if defined(WIN32) && defined(__BORLANDC__)
247 # define HAVE_FCNTL_H
248 # define HAVE_LIMITS_H
249 # define HAVE_MALLOC_H
250 # define HAVE_PROCESS_H
251 # define HAVE_SETJMP_H
252 # define HAVE_SIGNAL_H
253 # define HAVE_STDLIB_H
254 # define HAVE_STRING_H
255 # define HAVE__FULLPATH
256 # define HAVE__SPLITPATH
257 # define HAVE_MY_WIN32_SETENV
260 # define HAVE_MEMMOVE
261 # define HAVE_STRERROR
262 # define HAVE_VSPRINTF
265 # if defined(DYNAMIC)
266 # define DYNAMIC_WIN32
270 #if defined(WIN32) && defined(__CYGWIN32__)
271 # define HAVE_GRP_H 1
272 # define HAVE_PWD_H 1
273 # define HAVE_LIMITS_H 1
274 # define HAVE_MALLOC_H 1
275 # define HAVE_PROCESS_H 1
276 # define HAVE_SETJMP_H 1
277 # define HAVE_SIGNAL_H 1
278 # define HAVE_STDLIB_H 1
279 # define HAVE_STRING_H 1
280 # define HAVE_UNISTD_H 1
281 /* # define HAVE__FULLPATH 1 */
282 # define HAVE_PUTENV 1
283 # define HAVE_GETTIMEOFDAY 1
284 # define HAVE_FTRUNCATE 1
285 # define HAVE_MEMCPY 1
286 # define HAVE_MEMMOVE 1
287 # define HAVE_STRERROR 1
288 # define HAVE_VSPRINTF 1
292 # define TIME_WITH_SYS_TIME 1
293 # if defined(DYNAMIC)
294 # define DYNAMIC_WIN32
298 #if defined(WIN32) && defined(__MINGW32__)
299 # define HAVE_LIMITS_H 1
300 # define HAVE_MALLOC_H 1
301 # define HAVE_PROCESS_H 1
302 # define HAVE_SETJMP_H 1
303 # define HAVE_SIGNAL_H 1
304 # define HAVE_STDLIB_H 1
305 # define HAVE_STRING_H 1
306 # define HAVE_UNISTD_H 1
307 # define HAVE_FCNTL_H 1
308 # define HAVE__FULLPATH 1
309 # define HAVE_PUTENV 1
310 /* # define HAVE_GETTIMEOFDAY 1 */
311 /* # define HAVE_FTRUNCATE 1 */
312 # define HAVE_MEMCPY 1
313 # define HAVE_MEMMOVE 1
314 # define HAVE_STRERROR 1
315 # define HAVE_VSPRINTF 1
319 # define TIME_WITH_SYS_TIME 1
320 # if defined(DYNAMIC)
321 # define DYNAMIC_WIN32
325 #if defined(WIN32) && defined(__LCC__)
326 # define HAVE_FCNTL_H 1
327 # define HAVE_DIRECT_H 1
328 # define HAVE_LIMITS_H 1
329 # define HAVE_MALLOC_H 1
330 # define HAVE_PROCESS_H 1
331 # define HAVE_SETJMP_H 1
332 # define HAVE_SIGNAL_H 1
333 # define HAVE_STDLIB_H 1
334 # define HAVE_STRING_H 1
335 # define HAVE_UNISTD_H 1
336 # define HAVE__FULLPATH 1
337 # define HAVE_PUTENV 1
338 /* # define HAVE_GETTIMEOFDAY 1 */
339 /* # define HAVE_FTRUNCATE 1 */
340 # define HAVE_MEMCPY 1
341 # define HAVE_MEMMOVE 1
342 # define HAVE_STRERROR 1
343 # define HAVE_VSPRINTF 1
344 # define HAVE__SPLITPATH 1
345 # define HAVE_GETPID 1
348 /* # define TIME_WITH_SYS_TIME 1 */
349 # if defined(DYNAMIC)
350 # define DYNAMIC_WIN32
354 #if defined(DOS) && defined(DJGPP)
355 # define HAVE_FCNTL_H
358 # define HAVE_LIMITS_H
359 # define HAVE_STRING_H
360 # define TIME_WITH_SYS_TIME
361 # define HAVE_SETJMP_H
362 # define HAVE_UNISTD_H
363 # define HAVE_SYS_SOCKET_H
364 # define HAVE_NETINET_IN_H
365 /* # define HAVE_SYS_SELECT_H */
366 # define HAVE_NETDB_H
367 # define HAVE_ARPA_INET_H
369 # define HAVE_GETTIMEOFDAY
370 # define HAVE_FTRUNCATE
374 # define HAVE_MEMMOVE
375 # define HAVE_STRERROR
376 # define HAVE__TRUENAME
377 # define HAVE_VSPRINTF
382 # define _MAX_PATH PATH_MAX
386 #if defined(_AMIGA) && defined(__SASC)
387 # define HAVE_SETJMP_H
388 /* # define HAVE_UNISTD_H */
391 # define HAVE_MEMMOVE
392 # define HAVE_STRERROR
393 # define HAVE_VSPRINTF
399 #if defined(AMIGA) && !defined(__AROS__) && ( defined(GCC) || defined(__GNUC__) )
400 # define HAVE_GRP_H 1
401 # define HAVE_PWD_H 1
402 # define HAVE_LIMITS_H 1
403 # define HAVE_MALLOC_H 1
404 # define HAVE_SETJMP_H 1
405 # define HAVE_SIGNAL_H 1
406 # define HAVE_STDLIB_H 1
407 # define HAVE_STRING_H 1
408 # define HAVE_UNISTD_H 1
409 # define HAVE_SYS_SOCKET_H 1
410 # define HAVE_SYS_FCNTL_H 1
411 # define HAVE_NETINET_IN_H 1
412 # define HAVE_NETDB_H 1
413 # define HAVE_ARPA_INET_H 1
414 /* # define HAVE__FULLPATH 1 */
415 # define HAVE_PUTENV 1
416 # define HAVE_FTIME 1
417 # define HAVE_FTRUNCATE 1
418 # define HAVE_MEMCPY 1
419 # define HAVE_MEMMOVE 1
420 # define HAVE_STRERROR 1
421 # define HAVE_VSPRINTF 1
425 # define TIME_WITH_SYS_TIME 1
426 # if !defined( _AMIGA )
429 # if !defined( __AMIGADATE__ )
430 # define __AMIGADATE__ "("__DATE__")"
434 #if defined(__AROS__)
435 #define STDC_HEADERS 1
436 #define TIME_WITH_SYS_TIME 1
438 #define HAVE_GETTIMEOFDAY 1
439 #define HAVE_MEMCPY 1
440 #define HAVE_MEMMOVE 1
441 #define HAVE_PUTENV 1
442 #define HAVE_RANDOM 1
443 #define HAVE_RANDOM_DATA 1
444 #define HAVE_STRERROR 1
445 #define HAVE_STRERROR_R 1
446 #define HAVE_VSPRINTF 1
447 #define HAVE_ALLOCA_H 1
448 #define HAVE_FCNTL_H 1
449 /*#define HAVE_GRP_H*/
450 #define HAVE_LIMITS_H 1
451 /* #define HAVE_MALLOC_H 1 */
452 #define HAVE_MATH_H 1
453 #define HAVE_SETJMP_H 1
454 #define HAVE_STDARG_H 1
455 #define HAVE_STDLIB_H 1
456 #define HAVE_STRING_H 1
457 #define HAVE_UNISTD_H 1
459 #define HAVE_STDINT_H 1
464 #if defined(__MORPHOS__) && !( defined(GCC) || defined(__GNUC__) )
465 #define STDC_HEADERS 1
466 #define TIME_WITH_SYS_TIME 1
467 #define HAVE_GETTIMEOFDAY 1
468 #define HAVE_MEMCPY 1
469 #define HAVE_MEMMOVE 1
470 #define HAVE_SETENV 1
471 #define HAVE_RANDOM 1
472 #define HAVE_RANDOM_DATA 1
473 #define HAVE_STRERROR 1
474 #define HAVE_STRERROR_R 1
475 #define HAVE_VSPRINTF 1
476 #define HAVE_FCNTL_H 1
477 #define HAVE_LIMITS_H 1
478 #define HAVE_MATH_H 1
479 #define HAVE_SETJMP_H 1
480 #define HAVE_STDARG_H 1
481 #define HAVE_STDLIB_H 1
482 #define HAVE_STRING_H 1
483 #define HAVE_UNISTD_H 1
485 #define HAVE_STDINT_H 1
488 # if !defined( _AMIGA )
491 # if !defined( __AMIGADATE__ )
492 # define __AMIGADATE__ "("__DATE__")"
497 /* # define HAVE_GRP_H 1 */
498 /* # define HAVE_PWD_H 1 */
499 # define HAVE_LIMITS_H 1
500 /* # define HAVE_MALLOC_H 1 */
501 # define HAVE_SETJMP_H 1
502 # define HAVE_SIGNAL_H 1
503 # define HAVE_STDLIB_H 1
504 # define HAVE_STRING_H 1
505 /* # define HAVE_UNISTD_H 1 */
507 # define HAVE_SYS_SOCKET_H 1
508 # define HAVE_NETINET_IN_H 1
509 # define HAVE_NETDB_H 1
510 # define HAVE_ARPA_INET_H 1
512 /* # define HAVE__FULLPATH 1 */
513 /*# define HAVE_SETENV 1 */
514 /* # define HAVE_FTIME 1 */
515 /* # define HAVE_FTRUNCATE 1 */
516 # define HAVE_MEMCPY 1
517 # define HAVE_MEMMOVE 1
518 # define HAVE_STRERROR 1
519 # define HAVE_VSPRINTF 1
523 /* # define TIME_WITH_SYS_TIME 1 */
527 * The following are for Epoc32 platform
529 #if defined(__VC32__) && defined(__WINS__)
530 # define HAVE_SYS_FCNTL_H
531 # define HAVE_LIMITS_H
532 # define HAVE_PROCESS_H
533 # define HAVE_SETJMP_H
534 # define HAVE_SIGNAL_H
535 # define HAVE_STDLIB_H
536 # define HAVE_STRING_H
537 /* # define HAVE__FULLPATH */
538 /* # define HAVE__SPLITPATH */
539 /* # define HAVE_FTRUNCATE */
540 /* # define HAVE_MY_WIN32_SETENV */
542 # define HAVE_MEMMOVE
543 # define HAVE_STRERROR
544 # define HAVE_VSPRINTF
548 # define HAVE_SYS_SOCKET_H
549 # define HAVE_NETINET_IN_H
550 # define HAVE_NETDB_H
551 # define HAVE_ARPA_INET_H
552 # define HAVE_UNISTD_H
553 # if defined(DYNAMIC)
554 # define DYNAMIC_WIN32
558 #if defined(__GCC32__) && defined(__EPOC32__)
559 # define HAVE_SYS_FCNTL_H 1
560 /* # define HAVE_GRP_H 1 */
561 /* # define HAVE_PWD_H 1 */
562 # define HAVE_LIMITS_H 1
563 /*# define HAVE_MALLOC_H 1 */
564 # define HAVE_PROCESS_H 1
565 # define HAVE_SETJMP_H 1
566 # define HAVE_SIGNAL_H 1
567 # define HAVE_STDLIB_H 1
568 # define HAVE_STRING_H 1
569 # define HAVE_UNISTD_H 1
570 /* # define HAVE__FULLPATH 1 */
571 /* # define HAVE_PUTENV 1 */
572 # define HAVE_GETTIMEOFDAY 1
573 /*# define HAVE_FTRUNCATE 1 */
574 # define HAVE_MEMCPY 1
575 # define HAVE_MEMMOVE 1
576 # define HAVE_STRERROR 1
577 # define HAVE_VSPRINTF 1
578 # define HAVE_GETPID 1
581 # define TIME_WITH_SYS_TIME 1
582 # define HAVE_SYS_SOCKET_H 1
583 # define HAVE_NETINET_IN_H 1
584 # define HAVE_NETDB_H 1
585 # define HAVE_ARPA_INET_H 1
586 # if defined(DYNAMIC)
587 # define DYNAMIC_WIN32
592 # include <skyos/libskyos.h>
593 # define HAVE_SYS_FCNTL_H 1
594 # define HAVE_GRP_H 1
595 # define HAVE_PWD_H 1
596 # define HAVE_LIMITS_H 1
597 # define HAVE_MALLOC_H 1
598 # define HAVE_PROCESS_H 1
599 # define HAVE_SETJMP_H 1
600 # define HAVE_SIGNAL_H 1
601 # define HAVE_STDLIB_H 1
602 # define HAVE_STRING_H 1
603 # define HAVE_UNISTD_H 1
604 /* # define HAVE__FULLPATH 1 */
605 # define HAVE_PUTENV 1
606 # define HAVE_GETTIMEOFDAY 1
607 /*# define HAVE_FTRUNCATE 1 */
608 # define HAVE_MEMCPY 1
609 # define HAVE_MEMMOVE 1
610 # define HAVE_STRERROR 1
611 # define HAVE_VSPRINTF 1
612 # define HAVE_GETPID 1
614 # define HAVE_RAISE 1
615 /*# define TIME_WITH_SYS_TIME 1*/
616 # define HAVE_SYS_SOCKET_H 1
617 # define HAVE_NETINET_IN_H 1
618 # define HAVE_NETDB_H 1
619 # define HAVE_ARPA_INET_H 1
620 # if defined(DYNAMIC)
621 # define DYNAMIC_SKYOS
629 /* Configurable values */
632 /* The macro MAXLEVELS is the maximum number of levels that the
633 * interpreter shall handle. One level is used for functioncalls and
634 * the commands CALL, IF, DO and SELECT
636 #define MAXLEVELS 1024
638 /* The macro MAX_INDEX_LENGTH defines the maximum length that the name
639 * of an compund variable might expand to.
641 #define MAX_INDEX_LENGTH 256
643 /* The macro MAX_EXPONENT is the maximum exponent disregarding sign we
644 * are able to handle.
645 * This value MUST change for 64-bit-support.
647 #define MAX_EXPONENT 999999999
650 * The macro DEFAULT_FLUSH_STACK can be defined to either 1 or 0,
651 * depending on whether you want the stack to be flushed during a
652 * command reading input from or writing output to the stack. If
653 * defined, a line written will be physically in the stack at once,
654 * while if not defined, all output lines will be temporarily stacked
655 * until the command has terminated, then they are all simultaneously
656 * flushed to the stack. The default default value is 0, it can be
657 * changed through OPTIONS.
659 #ifndef DEFAULT_FLUSHSTACK
660 # define DEFAULT_FLUSHSTACK 0
664 * The macro DEFAULT_LINEOUTTRUNC can be set to 1 or 0, whether you want
665 * the default behavior of lineout() to truncate the file immediately
666 * after the end of each new file written out. When set to 1, the file
667 * will be truncated. Also note, that if HAVE_FTRUNCATE isn't set later
668 * in this script, the DEFAULT_LINEOUTTRUNC will be forced to 0, just
669 * for consistency (then, setting it to 1 will have no practical effect.
671 #ifndef DEFAULT_LINEOUTTRUNC
672 # define DEFAULT_LINEOUTTRUNC 1
675 #define DEFAULT_MAKEBUF_BIF 1
676 #define DEFAULT_DROPBUF_BIF 1
677 #define DEFAULT_BUFTYPE_BIF 1
678 #define DEFAULT_DESBUF_BIF 1
680 #define DEFAULT_CACHEEXT 0
681 #define DEFAULT_PRUNE_TRACE 1
684 * Indicates that Regina treats external commands as functions by default
686 #define DEFAULT_EXT_COMMANDS_AS_FUNCS 1
688 * Indicates that Regina does not send output that normally goes to stderr, to stdout
690 #define DEFAULT_STDOUT_FOR_STDERR 0
692 * Indicates that Regina allows external queues (and internal queues) by default
694 #define DEFAULT_INTERNAL_QUEUES 0
696 * Indicates that Regina does not wrap trace output in HTML code by default
698 #define DEFAULT_TRACE_HTML 0
700 * Indicates that Regina returns 1 or 0 for when calling LINES BIF without optional 2nd argument by default
702 #define DEFAULT_FAST_LINES_BIF_DEFAULT 1
704 * Indicates that Regina does not observe strict ANSI functionality by default
706 #define DEFAULT_STRICT_ANSI 0
708 * Indicates that Regina-specific BUFs are available by default
710 #define DEFAULT_REGINA_BIFS 1
712 * Indicates that Regina does not do strict white space comparison by default
714 #define DEFAULT_STRICT_WHITE_SPACE_COMPARISONS 0
716 * Indicates if the ARexx BIFs (OPEN, CLOSE, EOF) use AREXX semantics or not
717 * On Amiga and AROS, they are on by default.
719 #if defined(_AMIGA) || defined(__AROS__)
720 # define DEFAULT_AREXX_SEMANTICS 1
722 # define DEFAULT_AREXX_SEMANTICS 0
725 * Indicates that AREXX BIFs are available by default on Amiga and AROS, but
726 * OFF on other platforms
728 #if defined(_AMIGA) || defined(__AROS__)
729 # define DEFAULT_AREXX_BIFS 1
731 # define DEFAULT_AREXX_BIFS 0
734 * Indicates if the user want the "broken" semantics of ADDRESS COMMAND
736 #define DEFAULT_BROKEN_ADDRESS_COMMAND 0
738 * Indicates if the user wants outer parentheses when using CALL subroutine.
739 * On Amiga and AROS, they are on by default.
741 #if defined(_AMIGA) || defined(__AROS__)
742 #define DEFAULT_CALLS_AS_FUNCS 1
744 #define DEFAULT_CALLS_AS_FUNCS 0
747 * Indicates if the user wants the broken queue naming conventions.
749 #define DEFAULT_QUEUES_301 0
751 * Indicates if a failure in a call to an external routine halts the caller with error 40.1
753 #define DEFAULT_HALT_ON_EXT_CALL_FAIL 0
755 * Indicates if a new thread calls an API function the call occurs in the current (and only one) instance of an interpreter
757 #define DEFAULT_SINGLE_INTERPRETER 0
759 * ARexx OPTIONS RESULTS default to off
761 #define DEFAULT_RESULTS 0
764 * The FILE_SEPARATOR is one character, and defines the char that separates
765 * directories, and filename from directories in a file's path.
766 * The PATH_SEPARATOR is one character, and defines the char that separates
767 * directories, from one another in a PATH environment variable.
770 #if defined(MSDOS) || ( defined(__WATCOMC__) && !defined(__QNX__) ) || defined(_MSC_VER) || defined(DOS) || defined(OS2) || defined(__WINS__) || defined(__EPOC32__) || defined(__LCC__) || defined(__BORLANDC__) || defined(__MINGW32__)
771 # define FILE_SEPARATORS "\\/:"
772 # define FILE_SEPARATOR '\\'
773 # define FILE_SEPARATOR_STR "\\"
774 # define PATH_SEPARATOR ';'
775 # define PATH_SEPARATOR_STR ";"
777 # define FILE_SEPARATORS "]"
778 # define FILE_SEPARATOR ']'
779 # define FILE_SEPARATOR_STR "]"
780 # define PATH_SEPARATOR '?'
781 # define PATH_SEPARATOR_STR "?"
783 # define FILE_SEPARATOR "]"
784 # define FILE_SEPARATOR ']'
785 # define FILE_SEPARATOR_STR "]"
786 # define PATH_SEPARATOR '?'
787 # define PATH_SEPARATOR_STR "?"
788 #elif defined(_AMIGA) || defined(__AROS__)
789 # define FILE_SEPARATORS "/:"
790 # define FILE_SEPARATOR '/'
791 # define FILE_SEPARATOR_STR "/"
792 # define PATH_SEPARATOR '?'
793 # define PATH_SEPARATOR_STR "?"
795 # define FILE_SEPARATORS "/"
796 # define FILE_SEPARATOR '/'
797 # define FILE_SEPARATOR_STR "/"
798 # define PATH_SEPARATOR ':'
799 # define PATH_SEPARATOR_STR ":"
804 #define FIX_ALL_PROTOS
807 #if defined(HPUX) || defined(__hpux)
808 # define YY_CHAR_TYPE unsigned char
811 #if !defined(HAVE_MEMCPY)
812 # define memcpy(a,b,c) bcopy((b),(a),(c))
815 #if !defined(HAVE_MEMMOVE)
816 # define memmove(a,b,c) bcopy((b),(a),(c))
819 #if !defined(HAVE_STRERROR)
820 const char *get_sys_errlist( int num
);
821 # define strerror(a) get_sys_errlist(a)
825 #if defined(sgi) || defined(__sgi)
831 # define YY_CHAR_TYPE unsigned char
835 * Define HAVE_USLEEP if you have the usleep() function available. It will
836 * take the number of micro-seconds to sleep. If this is not defined,
837 * the 'normal' sleep() will be used.
838 * Handled by autoconf
842 * Define HAVE_RANDOM if your machine has the routines random() and
843 * srandom(). If it is not defined, rand() and srand() are used
844 * instead. There are several reason why you might want to use
845 * random() instead of rand()
846 * Handled by autoconf
850 #define DEFAULT_NUMERIC_FUZZ 0
851 #define DEFAULT_NUMERIC_SIZE 9
852 #define DEFAULT_MATH_TYPE 0
856 * If you use gcc on a machine that does not have proper ANSI C
857 * libraries and the function div() is not defined, then you can
858 * define the symbol HAVE_NO_DIV, which will try to kludge it.
860 * This is necessary on Suns, and some other machines.
862 * Not used anymore MH 10-06-97
868 # define YY_CHAR_TYPE unsigned char
870 # define YY_CHAR_TYPE char
875 /* Unfortunately, ftruncate() is not POSIX, so if you don't have it,
876 * just ignore it, the effect is that lines written to the middle of a
877 * file will not cause the rest of the file (after the linefeed
878 * terminating the line written), also to truncate the file at that
879 * point. If you wonder whether you have ftruncate(), the bsd portions
880 * of you system (if it exist) is a good place to start looking. You
881 * may have to link in a specific library too, maybe libbsd.a.
883 /*#define HAVE_FTRUNCATE*/ /* handled in makefile - TBD in autoconf */
888 # ifdef HAVE_GETTIMEOFDAY
889 # undef HAVE_GETTIMEOFDAY
894 # ifdef HAVE_FTRUNCATE
895 # undef HAVE_FTRUNCATE
900 #if defined(__GNUC__) && defined(VMS)
901 # ifdef HAVE_GETTIMEOFODAY
902 # undef HAVE_GETTIMEOFDAY
907 * DLOPEN - dlopen()/dlsym() under SunOS and SysV4
908 * HPSHLOAD - shl_load()/shl_findsym() under HP-UX
909 * AIXLOAD - load()/loadbind() under AIX - not supported
910 * OS2 - DosLoadModule()/DosQueryProcAddr() under OS/2
911 * WIN32 - LoadLibrary()/GetProcAddress() under Win32
915 * QNX 4.2x does have a ftrunc() equivalent: ltrunc()
917 #if defined(__WATCOMC__) && defined(__QNX__)
918 # define HAVE_FTRUNCATE
921 * If we don't have ftruncate() then we don't want the default setting
922 * of LINEOUT() to be to truncate after each new line written out.
924 #ifndef HAVE_FTRUNCATE
925 # undef DEFAULT_LINEOUTTRUNC /* MH 10-06-96 */
926 # define DEFAULT_LINEOUTTRUNC 0
930 /* This picky compiler claims about unused formal parameters.
931 * This is correct but hides (for human eyes) other errors since they
932 * are many and we can't reduce them all.
933 * Error 4100 is "unused formal parameter".
935 # pragma warning(disable:4100)