Commit | Line | Data |
---|---|---|
b348deae MP |
1 | #ifdef HAVE_CONFIG_H |
2 | #include "config.h" | |
3 | #endif | |
4 | ||
5 | #include <ctype.h> | |
6 | #include <errno.h> | |
7 | #include <fcntl.h> | |
8 | #include <limits.h> | |
9 | ||
10 | #if HAVE_MCHECK_H | |
11 | #include <mcheck.h> | |
12 | #endif | |
13 | ||
14 | #include <stdio.h> | |
15 | #include <stdlib.h> | |
16 | #include <string.h> | |
17 | ||
18 | #if HAVE_UNISTD_H | |
19 | #include <unistd.h> | |
20 | #endif | |
21 | ||
22 | #ifdef __NeXT | |
23 | /* access macros are not declared in non posix mode in unistd.h - | |
24 | don't try to use posix on NeXTstep 3.3 ! */ | |
25 | #include <libc.h> | |
26 | #endif | |
27 | ||
28 | /* AIX requires this to be the first thing in the file. */ | |
29 | #ifndef __GNUC__ | |
30 | # if HAVE_ALLOCA_H | |
31 | # include <alloca.h> | |
32 | # else | |
33 | # ifdef _AIX | |
34 | #pragma alloca | |
35 | # else | |
36 | # ifndef alloca /* predefined by HP cc +Olibcalls */ | |
37 | char *alloca (); | |
38 | # endif | |
39 | # endif | |
40 | # endif | |
41 | #elif defined(__GNUC__) && defined(__STRICT_ANSI__) | |
42 | #define alloca __builtin_alloca | |
43 | #endif | |
44 | ||
45 | /*@only@*/ char * xstrdup (const char *str); | |
46 | ||
47 | #if HAVE_MCHECK_H && defined(__GNUC__) | |
48 | #define vmefail() (fprintf(stderr, "virtual memory exhausted.\n"), exit(EXIT_FAILURE), NULL) | |
49 | #define xstrdup(_str) (strcpy((malloc(strlen(_str)+1) ? : vmefail()), (_str))) | |
50 | #else | |
51 | #define xstrdup(_str) strdup(_str) | |
52 | #endif /* HAVE_MCHECK_H && defined(__GNUC__) */ | |
53 | ||
54 | ||
55 | #include "popt.h" |