No empty .Rs/.Re
[netbsd-mini2440.git] / gnu / usr.bin / fgrep / std.h
blob5185cac250da8ff6d7637cf2233f609e1070e12a
1 /* std.h - automagically adapt to old and new compilers.
2 In the Public Domain; written by Mike Haertel. */
4 #if __STDC__
6 #include <stddef.h>
7 #include <limits.h>
9 typedef void *PTR;
10 typedef const void *PTRCONST;
12 #define AND ,
13 #define DEFUN(F, L, P) F(P)
14 #define EXFUN(F, P) F P
16 #else
18 #define const
19 #define volatile
21 /* The following approximations of <stddef.h> and <limits.h> are appropriate
22 for most machines. */
23 typedef int ptrdiff_t;
24 typedef unsigned int size_t;
25 #define NULL 0
26 #define offsetof(T, M) ((size_t)&((T *) 0)->(M))
28 #define CHAR_BIT 8
29 #define SCHAR_MIN -128
30 #define SCHAR_MAX 127
31 #define UCHAR_MAX 255
32 #define CHAR_MIN ((char) UCHAR_MAX < 0 ? SCHAR_MIN : 0)
33 #define CHAR_MAX ((char) UCHAR_MAX < 0 ? SCHAR_MAX : UCHAR_MAX)
34 #define SHRT_MIN -32768
35 #define SHRT_MAX 32767
36 #define USHRT_MAX 65535
37 #define INT_MIN (sizeof (int) == 2 ? -32768 : -2147483648)
38 #define INT_MAX (sizeof (int) == 2 ? 32767 : 2147483647)
39 #define UINT_MAX (sizeof (int) == 2 ? 65535 : 4294967295)
40 #define LONG_MIN -2147483648L
41 #define LONG_MAX 2147483647L
42 #define ULONG_MAX 4294967295
44 typedef char *PTR;
45 typedef const char *PTRCONST;
47 #define AND ;
48 #define DEFUN(F, L, P) F L P ;
49 #define EXFUN(F, P) F()
51 #endif
53 /* Deal with <ctype.h> lossage. */
54 #include <ctype.h>
56 #ifndef isascii
58 #define ISALNUM(C) isalnum(C)
59 #define ISALPHA(C) isalpha(C)
60 #define ISCNTRL(C) iscntrl(C)
61 #define ISDIGIT(C) isdigit(C)
62 #define ISGRAPH(C) isgraph(C)
63 #define ISLOWER(C) islower(C)
64 #define ISPRINT(C) isprint(C)
65 #define ISPUNCT(C) ispunct(C)
66 #define ISSPACE(C) isspace(C)
67 #define ISUPPER(C) isupper(C)
68 #define ISXDIGIT(C) isxdigit(C)
69 #define TOLOWER(C) tolower(C)
70 #define TOUPPER(C) toupper(C)
72 #else
74 #define ISALNUM(C) (isascii(C) && isalnum(C))
75 #define ISALPHA(C) (isascii(C) && isalpha(C))
76 #define ISCNTRL(C) (isascii(C) && iscntrl(C))
77 #define ISDIGIT(C) (isascii(C) && isdigit(C))
78 #define ISGRAPH(C) (isascii(C) && isgraph(C))
79 #define ISLOWER(C) (isascii(C) && islower(C))
80 #define ISPRINT(C) (isascii(C) && isprint(C))
81 #define ISPUNCT(C) (isascii(C) && ispunct(C))
82 #define ISSPACE(C) (isascii(C) && isspace(C))
83 #define ISUPPER(C) (isascii(C) && isupper(C))
84 #define ISXDIGIT(C) (isascii(C) && isxdigit(C))
85 #define TOLOWER(C) (ISUPPER(C) ? tolower(C) : (C))
86 #define TOUPPER(C) (ISLOWER(C) ? toupper(C) : (C))
88 #endif
90 /* Declaring this here should be safe. Some losing <errno.h>'s don't. */
91 extern int errno;
93 /* Adapt variable arguments to new implementations (with <stdarg.h>)
94 or old (which are assumed to have <varargs.h>). */
96 #if __STDC__
98 #include <stdarg.h>
100 #define VA_ALIST ...
101 #define VA_DCL ...
102 #define VA_LIST va_list
103 #define VA_START(AP, LASTARG) va_start(AP, LASTARG)
104 #define VA_ARG(AP, TYPE) va_arg(AP, TYPE)
105 #define VA_END(AP) va_end(AP)
107 #define VA_DEFUN(F, L, P) F(P)
109 #else
111 #include <varargs.h>
113 #define VA_ALIST va_alist
114 #define VA_DCL va_dcl
115 #define VA_LIST va_list
116 #define VA_START(AP, LASTARG) va_start(AP)
117 #define VA_ARG(AP, TYPE) va_arg(AP, TYPE)
118 #define VA_END(AP) va_end(AP)
120 #define VA_DEFUN(F, L, P) F L P
122 #endif
124 /* Declarations of traditional library routines. */
125 extern double EXFUN(atof, (const char *));
126 extern int EXFUN(atoi, (const char *));
127 extern long int EXFUN(atol, (const char *));
128 extern int EXFUN(rand, (void));
129 extern void EXFUN(srand, (int));
130 extern PTR EXFUN(calloc, (size_t, size_t));
131 extern void EXFUN(free, (PTR));
132 extern PTR EXFUN(malloc, (size_t));
133 extern PTR EXFUN(realloc, (PTR, size_t));
134 extern void EXFUN(abort, (void));
135 extern void EXFUN(exit, (int));
136 extern char *EXFUN(getenv, (const char *));
137 extern int EXFUN(system, (const char *));
138 extern void EXFUN(qsort, (PTR, size_t, size_t,
139 int EXFUN((*), (PTRCONST, PTRCONST))));
140 extern int EXFUN(abs, (int));
141 extern long int EXFUN(labs, (long int));
143 #ifdef X_strerror
144 extern char *EXFUN(strerror, (int));
145 #endif