Home | History | Annotate | Download | only in libpopt
      1 #ifdef HAVE_CONFIG_H
      2 #include "config.h"
      3 #endif
      4 
      5 #if defined (__GLIBC__) && defined(__LCLINT__)
      6 /*@-declundef@*/
      7 /*@unchecked@*/
      8 extern __const __int32_t *__ctype_tolower;
      9 /*@unchecked@*/
     10 extern __const __int32_t *__ctype_toupper;
     11 /*@=declundef@*/
     12 #endif
     13 
     14 #include <ctype.h>
     15 
     16 #include <errno.h>
     17 #include <fcntl.h>
     18 #include <limits.h>
     19 
     20 #if HAVE_MCHECK_H
     21 #include <mcheck.h>
     22 #endif
     23 
     24 #include <stdio.h>
     25 #include <stdlib.h>
     26 #include <string.h>
     27 
     28 #if HAVE_UNISTD_H
     29 #include <unistd.h>
     30 #endif
     31 
     32 #ifdef __NeXT
     33 /* access macros are not declared in non posix mode in unistd.h -
     34  don't try to use posix on NeXTstep 3.3 ! */
     35 #include <libc.h>
     36 #endif
     37 
     38 #if defined(__LCLINT__)
     39 /*@-declundef -incondefs @*/ /* LCL: missing annotation */
     40 /*@only@*/ /*@out@*/
     41 void * alloca (size_t __size)
     42 	/*@ensures MaxSet(result) == (__size - 1) @*/
     43 	/*@*/;
     44 /*@=declundef =incondefs @*/
     45 #endif
     46 
     47 /* AIX requires this to be the first thing in the file.  */
     48 #ifndef __GNUC__
     49 # if HAVE_ALLOCA_H
     50 #  include <alloca.h>
     51 # else
     52 #  ifdef _AIX
     53 #pragma alloca
     54 #  else
     55 #   ifndef alloca /* predefined by HP cc +Olibcalls */
     56 char *alloca ();
     57 #   endif
     58 #  endif
     59 # endif
     60 #elif defined(__GNUC__) && defined(__STRICT_ANSI__)
     61 #define alloca __builtin_alloca
     62 #endif
     63 
     64 /*@-redecl -redef@*/
     65 /*@mayexit@*/ /*@only@*/ /*@unused@*/
     66 char * xstrdup (const char *str)
     67 	/*@*/;
     68 /*@=redecl =redef@*/
     69 
     70 #if HAVE_MCHECK_H && defined(__GNUC__)
     71 #define	vmefail()	(fprintf(stderr, "virtual memory exhausted.\n"), exit(EXIT_FAILURE), NULL)
     72 #define xstrdup(_str)   (strcpy((malloc(strlen(_str)+1) ? : vmefail()), (_str)))
     73 #else
     74 #define	xstrdup(_str)	strdup(_str)
     75 #endif  /* HAVE_MCHECK_H && defined(__GNUC__) */
     76 
     77 #if HAVE___SECURE_GETENV && !defined(__LCLINT__)
     78 #define	getenv(_s)	__secure_getenv(_s)
     79 #endif
     80 
     81 #include "popt.h"
     82