Annotation of embedaddon/rsync/popt/system.h, revision 1.1
1.1 ! misho 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: #ifdef HAVE_SYS_TYPES_H
! 26: # include <sys/types.h>
! 27: #endif
! 28: #ifdef STDC_HEADERS
! 29: # include <stdlib.h>
! 30: # include <stddef.h>
! 31: #else
! 32: # ifdef HAVE_STDLIB_H
! 33: # include <stdlib.h>
! 34: # endif
! 35: #endif
! 36: #ifdef HAVE_STRING_H
! 37: # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
! 38: # include <memory.h>
! 39: # endif
! 40: # include <string.h>
! 41: #endif
! 42: #ifdef HAVE_STRINGS_H
! 43: # include <strings.h>
! 44: #endif
! 45: #ifdef HAVE_UNISTD_H
! 46: # include <unistd.h>
! 47: #endif
! 48:
! 49: #ifndef __GNUC__
! 50: #define __attribute__(x)
! 51: #endif
! 52:
! 53: #ifdef __NeXT
! 54: /* access macros are not declared in non posix mode in unistd.h -
! 55: don't try to use posix on NeXTstep 3.3 ! */
! 56: #include <libc.h>
! 57: #endif
! 58:
! 59: #if defined(__LCLINT__)
! 60: /*@-declundef -incondefs @*/ /* LCL: missing annotation */
! 61: /*@only@*/ /*@out@*/
! 62: void * alloca (size_t __size)
! 63: /*@ensures MaxSet(result) == (__size - 1) @*/
! 64: /*@*/;
! 65: /*@=declundef =incondefs @*/
! 66: #endif
! 67:
! 68: /* AIX requires this to be the first thing in the file. */
! 69: #ifndef __GNUC__
! 70: # if HAVE_ALLOCA_H
! 71: # include <alloca.h>
! 72: # else
! 73: # ifdef _AIX
! 74: #pragma alloca
! 75: # else
! 76: # ifdef HAVE_ALLOCA
! 77: # ifndef alloca /* predefined by HP cc +Olibcalls */
! 78: char *alloca(size_t size);
! 79: # endif
! 80: # else
! 81: # ifdef alloca
! 82: # undef alloca
! 83: # endif
! 84: # define alloca(sz) malloc(sz) /* Kludge this for now */
! 85: # endif
! 86: # endif
! 87: # endif
! 88: #elif !defined(alloca)
! 89: #define alloca __builtin_alloca
! 90: #endif
! 91:
! 92: #ifndef HAVE_STRLCPY
! 93: size_t strlcpy(char *d, const char *s, size_t bufsize);
! 94: #endif
! 95:
! 96: #ifndef HAVE_STRLCAT
! 97: size_t strlcat(char *d, const char *s, size_t bufsize);
! 98: #endif
! 99:
! 100: #if HAVE_MCHECK_H && defined(__GNUC__)
! 101: static inline char *
! 102: xstrdup(const char *s)
! 103: {
! 104: size_t memsize = strlen(s) + 1;
! 105: char *ptr = malloc(memsize);
! 106: if (!ptr) {
! 107: fprintf(stderr, "virtual memory exhausted.\n");
! 108: exit(EXIT_FAILURE);
! 109: }
! 110: strlcpy(ptr, s, memsize);
! 111: return ptr;
! 112: }
! 113: #else
! 114: #define xstrdup(_str) strdup(_str)
! 115: #endif /* HAVE_MCHECK_H && defined(__GNUC__) */
! 116:
! 117: #if HAVE___SECURE_GETENV && !defined(__LCLINT__)
! 118: #define getenv(_s) __secure_getenv(_s)
! 119: #endif
! 120:
! 121: #if !defined HAVE_SNPRINTF || !defined HAVE_C99_VSNPRINTF
! 122: #define snprintf rsync_snprintf
! 123: int snprintf(char *str,size_t count,const char *fmt,...);
! 124: #endif
! 125:
! 126: #define UNUSED(x) x __attribute__((__unused__))
! 127:
! 128: #define PACKAGE "rsync"
! 129:
! 130: #include "popt.h"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>