home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gettext-0.10.24-src.tgz / tar.out / fsf / gettext / lib / system.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  3KB  |  125 lines

  1. /* system.h -- header for GNU gettext libiberty
  2.    Copyright (C) 1995, 1996 Free Software Foundation, Inc.
  3.  
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2, or (at your option)
  7. any later version.
  8.  
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. GNU General Public License for more details.
  13.  
  14. You should have received a copy of the GNU General Public License
  15. along with this program; if not, write to the Free Software Foundation,
  16. Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
  17.  
  18. #ifndef _SYSTEM_H
  19. #define _SYSTEM_H 1
  20.  
  21. #ifndef PARAMS
  22. # if __STDC__
  23. #  define PARAMS(args) args
  24. # else
  25. #  define PARAMS(args) ()
  26. # endif
  27. #endif
  28.  
  29. #include <stdio.h>
  30. #include <sys/types.h>
  31.  
  32. #if defined STDC_HEADERS
  33. # include <stdlib.h>
  34. #else
  35. # ifdef HAVE_MALLOC_H
  36. #  include <malloc.h>
  37. # endif
  38. unsigned long strtoul ();
  39. #endif
  40.  
  41. /* Prototypes for helper functions.  */
  42. extern FILE *open_po_file PARAMS ((const char *__input_name,
  43.                    char **__file_name));
  44.  
  45. /* Wrapper functions with error checking for standard functions.  */
  46. extern char *xgetcwd PARAMS ((void));
  47. extern void *xmalloc PARAMS ((size_t __n));
  48. extern void *xrealloc PARAMS ((void *__p, size_t __n));
  49. extern char *xstrdup PARAMS ((const char *__string));
  50. extern char *stpcpy PARAMS ((char *__dst, const char *__src));
  51. extern char *stpncpy PARAMS ((char *__dst, const char *__src, size_t __n));
  52. extern size_t parse_printf_format PARAMS ((const char *__fmt, size_t __n,
  53.                        int *__argtypes));
  54. extern int asprintf PARAMS ((char **, const char *, ...));
  55. extern int strcasecmp PARAMS ((const char *__s1, const char *__s2));
  56. extern int strncasecmp PARAMS ((const char *__s1, const char *__s2,
  57.                 size_t __n));
  58.  
  59. #if STDC_HEADERS || HAVE_STRING_H
  60. # include <string.h>
  61. # if !STDC_HEADERS && HAVE_MEMORY_H
  62. #  include <memory.h>
  63. # endif
  64. #else
  65. # include <strings.h>
  66. #endif
  67. #if !HAVE_MEMCPY
  68. # ifndef memcpy
  69. #  define memcpy(D, S, N) bcopy ((S), (D), (N))
  70. # endif
  71. #endif
  72. #if !HAVE_STRCHR
  73. # ifndef strchr
  74. #  define strchr index
  75. # endif
  76. #endif
  77.  
  78. #ifdef __GNUC__
  79. # ifndef alloca
  80. #  define alloca __builtin_alloca
  81. # endif
  82. #else
  83. # if HAVE_ALLOCA_H
  84. #  include <alloca.h>
  85. # else
  86. #  ifdef _AIX
  87.  #pragma alloca
  88. #  else
  89. #   ifdef __hpux /* This section must match that of bison generated files. */
  90. #    ifdef __cplusplus
  91. extern "C" void *alloca (unsigned int);
  92. #    else /* not __cplusplus */
  93. void *alloca ();
  94. #    endif /* not __cplusplus */
  95. #   else /* not __hpux */
  96. #    ifndef alloca
  97. char *alloca ();
  98. #    endif
  99. #   endif /* __hpux */
  100. #  endif
  101. # endif
  102. #endif
  103.  
  104. #ifndef MAX
  105. # if __STDC__ && defined __GNUC__ && __GNUC__ >= 2
  106. #  define MAX(a,b) (__extension__                        \
  107.              ({__typeof__ (a) _a = (a);                    \
  108.                __typeof__ (b) _b = (b);                    \
  109.                _a > _b ? _a : _b;                    \
  110.               }))
  111. # else
  112. #  define MAX(a,b) ((a) > (b) ? (a) : (b))
  113. # endif
  114. #endif
  115.  
  116. /* Some systems do not define EXIT_*, even with STDC_HEADERS.  */
  117. #ifndef EXIT_SUCCESS
  118. # define EXIT_SUCCESS 0
  119. #endif
  120. #ifndef EXIT_FAILURE
  121. # define EXIT_FAILURE 1
  122. #endif
  123.  
  124. #endif
  125.