2006-05-17 04:04:09 +04:00
# ifdef HAVE_CONFIG_H
2001-10-23 18:16:22 +04:00
# include "config.h"
2006-05-17 04:04:09 +04:00
# endif
# if defined (__GLIBC__) && defined(__LCLINT__)
/*@-declundef@*/
/*@unchecked@*/
extern __const __int32_t * __ctype_tolower ;
/*@unchecked@*/
extern __const __int32_t * __ctype_toupper ;
/*@=declundef@*/
# endif
2001-10-23 18:16:22 +04:00
# include <ctype.h>
2006-05-17 04:04:09 +04:00
2001-10-23 18:16:22 +04:00
# include <errno.h>
# include <fcntl.h>
# include <limits.h>
# if HAVE_MCHECK_H
# include <mcheck.h>
# endif
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# if HAVE_UNISTD_H
# include <unistd.h>
# endif
# ifdef __NeXT
/* access macros are not declared in non posix mode in unistd.h -
don ' t try to use posix on NeXTstep 3.3 ! */
# include <libc.h>
# endif
2006-05-17 04:04:09 +04:00
# if defined(__LCLINT__)
/*@-declundef -incondefs -redecl@*/ /* LCL: missing annotation */
/*@only@*/ void * alloca ( size_t __size )
/*@ensures MaxSet(result) == (__size - 1) @*/
/*@*/ ;
/*@=declundef =incondefs =redecl@*/
# endif
2001-10-23 18:16:22 +04:00
/* AIX requires this to be the first thing in the file. */
# ifndef __GNUC__
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
# pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
char * alloca ( ) ;
# endif
# endif
# endif
# elif defined(__GNUC__) && defined(__STRICT_ANSI__)
# define alloca __builtin_alloca
# endif
2006-05-17 04:04:09 +04:00
/*@-redecl -redef@*/
/*@mayexit@*/ /*@only@*/ char * xstrdup ( const char * str )
/*@*/ ;
/*@=redecl =redef@*/
2001-10-23 18:16:22 +04:00
# if HAVE_MCHECK_H && defined(__GNUC__)
# define vmefail() (fprintf(stderr, "virtual memory exhausted.\n"), exit(EXIT_FAILURE), NULL)
# define xstrdup(_str) (strcpy((malloc(strlen(_str)+1) ? : vmefail()), (_str)))
# else
# define xstrdup(_str) strdup(_str)
# endif /* HAVE_MCHECK_H && defined(__GNUC__) */
# include "popt.h"