File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / srclib / stdlib.in.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 09:29:43 2012 UTC (12 years, 1 month ago) by misho
Branches: libiconv, MAIN
CVS tags: v1_14p0, v1_14, HEAD
libiconv v1.14

    1: /* A GNU-like <stdlib.h>.
    2: 
    3:    Copyright (C) 1995, 2001-2004, 2006-2011 Free Software Foundation, Inc.
    4: 
    5:    This program is free software: you can redistribute it and/or modify
    6:    it under the terms of the GNU General Public License as published by
    7:    the Free Software Foundation; either version 3 of the License, or
    8:    (at your option) any later version.
    9: 
   10:    This program is distributed in the hope that it will be useful,
   11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   13:    GNU General Public License for more details.
   14: 
   15:    You should have received a copy of the GNU General Public License
   16:    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
   17: 
   18: #if __GNUC__ >= 3
   19: @PRAGMA_SYSTEM_HEADER@
   20: #endif
   21: @PRAGMA_COLUMNS@
   22: 
   23: #if defined __need_malloc_and_calloc
   24: /* Special invocation convention inside glibc header files.  */
   25: 
   26: #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
   27: 
   28: #else
   29: /* Normal invocation convention.  */
   30: 
   31: #ifndef _@GUARD_PREFIX@_STDLIB_H
   32: 
   33: /* The include_next requires a split double-inclusion guard.  */
   34: #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
   35: 
   36: #ifndef _@GUARD_PREFIX@_STDLIB_H
   37: #define _@GUARD_PREFIX@_STDLIB_H
   38: 
   39: /* NetBSD 5.0 mis-defines NULL.  */
   40: #include <stddef.h>
   41: 
   42: /* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>.  */
   43: #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS
   44: # include <sys/wait.h>
   45: #endif
   46: 
   47: /* Solaris declares getloadavg() in <sys/loadavg.h>.  */
   48: #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@
   49: # include <sys/loadavg.h>
   50: #endif
   51: 
   52: #if @GNULIB_RANDOM_R@
   53: 
   54: /* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
   55:    from <stdlib.h> if _REENTRANT is defined.  Include it whenever we need
   56:    'struct random_data'.  */
   57: # if @HAVE_RANDOM_H@
   58: #  include <random.h>
   59: # endif
   60: 
   61: # if !@HAVE_STRUCT_RANDOM_DATA@ || !@HAVE_RANDOM_R@
   62: #  include <stdint.h>
   63: # endif
   64: 
   65: # if !@HAVE_STRUCT_RANDOM_DATA@
   66: /* Define 'struct random_data'.
   67:    But allow multiple gnulib generated <stdlib.h> replacements to coexist.  */
   68: #  if !GNULIB_defined_struct_random_data
   69: struct random_data
   70: {
   71:   int32_t *fptr;                /* Front pointer.  */
   72:   int32_t *rptr;                /* Rear pointer.  */
   73:   int32_t *state;               /* Array of state values.  */
   74:   int rand_type;                /* Type of random number generator.  */
   75:   int rand_deg;                 /* Degree of random number generator.  */
   76:   int rand_sep;                 /* Distance between front and rear.  */
   77:   int32_t *end_ptr;             /* Pointer behind state table.  */
   78: };
   79: #   define GNULIB_defined_struct_random_data 1
   80: #  endif
   81: # endif
   82: #endif
   83: 
   84: #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
   85: /* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
   86: /* On MacOS X 10.5, only <unistd.h> declares mkstemps.  */
   87: /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt.  */
   88: /* But avoid namespace pollution on glibc systems and native Windows.  */
   89: # include <unistd.h>
   90: #endif
   91: 
   92: /* The definition of _Noreturn is copied here.  */
   93: 
   94: /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
   95: 
   96: /* The definition of _GL_ARG_NONNULL is copied here.  */
   97: 
   98: /* The definition of _GL_WARN_ON_USE is copied here.  */
   99: 
  100: 
  101: /* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
  102: #ifndef EXIT_SUCCESS
  103: # define EXIT_SUCCESS 0
  104: #endif
  105: /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
  106:    with proper operation of xargs.  */
  107: #ifndef EXIT_FAILURE
  108: # define EXIT_FAILURE 1
  109: #elif EXIT_FAILURE != 1
  110: # undef EXIT_FAILURE
  111: # define EXIT_FAILURE 1
  112: #endif
  113: 
  114: 
  115: #if @GNULIB__EXIT@
  116: /* Terminate the current process with the given return code, without running
  117:    the 'atexit' handlers.  */
  118: # if !@HAVE__EXIT@
  119: _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
  120: # endif
  121: _GL_CXXALIAS_SYS (_Exit, void, (int status));
  122: _GL_CXXALIASWARN (_Exit);
  123: #elif defined GNULIB_POSIXCHECK
  124: # undef _Exit
  125: # if HAVE_RAW_DECL__EXIT
  126: _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
  127:                  "use gnulib module _Exit for portability");
  128: # endif
  129: #endif
  130: 
  131: 
  132: #if @GNULIB_ATOLL@
  133: /* Parse a signed decimal integer.
  134:    Returns the value of the integer.  Errors are not detected.  */
  135: # if !@HAVE_ATOLL@
  136: _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ARG_NONNULL ((1)));
  137: # endif
  138: _GL_CXXALIAS_SYS (atoll, long long, (const char *string));
  139: _GL_CXXALIASWARN (atoll);
  140: #elif defined GNULIB_POSIXCHECK
  141: # undef atoll
  142: # if HAVE_RAW_DECL_ATOLL
  143: _GL_WARN_ON_USE (atoll, "atoll is unportable - "
  144:                  "use gnulib module atoll for portability");
  145: # endif
  146: #endif
  147: 
  148: #if @GNULIB_CALLOC_POSIX@
  149: # if @REPLACE_CALLOC@
  150: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  151: #   undef calloc
  152: #   define calloc rpl_calloc
  153: #  endif
  154: _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size));
  155: _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size));
  156: # else
  157: _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size));
  158: # endif
  159: _GL_CXXALIASWARN (calloc);
  160: #elif defined GNULIB_POSIXCHECK
  161: # undef calloc
  162: /* Assume calloc is always declared.  */
  163: _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
  164:                  "use gnulib module calloc-posix for portability");
  165: #endif
  166: 
  167: #if @GNULIB_CANONICALIZE_FILE_NAME@
  168: # if @REPLACE_CANONICALIZE_FILE_NAME@
  169: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  170: #   define canonicalize_file_name rpl_canonicalize_file_name
  171: #  endif
  172: _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name)
  173:                                                   _GL_ARG_NONNULL ((1)));
  174: _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name));
  175: # else
  176: #  if !@HAVE_CANONICALIZE_FILE_NAME@
  177: _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name)
  178:                                                   _GL_ARG_NONNULL ((1)));
  179: #  endif
  180: _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
  181: # endif
  182: _GL_CXXALIASWARN (canonicalize_file_name);
  183: #elif defined GNULIB_POSIXCHECK
  184: # undef canonicalize_file_name
  185: # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
  186: _GL_WARN_ON_USE (canonicalize_file_name,
  187:                  "canonicalize_file_name is unportable - "
  188:                  "use gnulib module canonicalize-lgpl for portability");
  189: # endif
  190: #endif
  191: 
  192: #if @GNULIB_GETLOADAVG@
  193: /* Store max(NELEM,3) load average numbers in LOADAVG[].
  194:    The three numbers are the load average of the last 1 minute, the last 5
  195:    minutes, and the last 15 minutes, respectively.
  196:    LOADAVG is an array of NELEM numbers.  */
  197: # if !@HAVE_DECL_GETLOADAVG@
  198: _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem)
  199:                                    _GL_ARG_NONNULL ((1)));
  200: # endif
  201: _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
  202: _GL_CXXALIASWARN (getloadavg);
  203: #elif defined GNULIB_POSIXCHECK
  204: # undef getloadavg
  205: # if HAVE_RAW_DECL_GETLOADAVG
  206: _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
  207:                  "use gnulib module getloadavg for portability");
  208: # endif
  209: #endif
  210: 
  211: #if @GNULIB_GETSUBOPT@
  212: /* Assuming *OPTIONP is a comma separated list of elements of the form
  213:    "token" or "token=value", getsubopt parses the first of these elements.
  214:    If the first element refers to a "token" that is member of the given
  215:    NULL-terminated array of tokens:
  216:      - It replaces the comma with a NUL byte, updates *OPTIONP to point past
  217:        the first option and the comma, sets *VALUEP to the value of the
  218:        element (or NULL if it doesn't contain an "=" sign),
  219:      - It returns the index of the "token" in the given array of tokens.
  220:    Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
  221:    For more details see the POSIX:2001 specification.
  222:    http://www.opengroup.org/susv3xsh/getsubopt.html */
  223: # if !@HAVE_GETSUBOPT@
  224: _GL_FUNCDECL_SYS (getsubopt, int,
  225:                   (char **optionp, char *const *tokens, char **valuep)
  226:                   _GL_ARG_NONNULL ((1, 2, 3)));
  227: # endif
  228: _GL_CXXALIAS_SYS (getsubopt, int,
  229:                   (char **optionp, char *const *tokens, char **valuep));
  230: _GL_CXXALIASWARN (getsubopt);
  231: #elif defined GNULIB_POSIXCHECK
  232: # undef getsubopt
  233: # if HAVE_RAW_DECL_GETSUBOPT
  234: _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - "
  235:                  "use gnulib module getsubopt for portability");
  236: # endif
  237: #endif
  238: 
  239: #if @GNULIB_GRANTPT@
  240: /* Change the ownership and access permission of the slave side of the
  241:    pseudo-terminal whose master side is specified by FD.  */
  242: # if !@HAVE_GRANTPT@
  243: _GL_FUNCDECL_SYS (grantpt, int, (int fd));
  244: # endif
  245: _GL_CXXALIAS_SYS (grantpt, int, (int fd));
  246: _GL_CXXALIASWARN (grantpt);
  247: #elif defined GNULIB_POSIXCHECK
  248: # undef grantpt
  249: # if HAVE_RAW_DECL_GRANTPT
  250: _GL_WARN_ON_USE (ptsname, "grantpt is not portable - "
  251:                  "use gnulib module grantpt for portability");
  252: # endif
  253: #endif
  254: 
  255: /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not
  256:    rely on GNU or POSIX semantics for malloc and realloc (for example,
  257:    by never specifying a zero size), so it does not need malloc or
  258:    realloc to be redefined.  */
  259: #if @GNULIB_MALLOC_POSIX@
  260: # if @REPLACE_MALLOC@
  261: #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
  262:         || _GL_USE_STDLIB_ALLOC)
  263: #   undef malloc
  264: #   define malloc rpl_malloc
  265: #  endif
  266: _GL_FUNCDECL_RPL (malloc, void *, (size_t size));
  267: _GL_CXXALIAS_RPL (malloc, void *, (size_t size));
  268: # else
  269: _GL_CXXALIAS_SYS (malloc, void *, (size_t size));
  270: # endif
  271: _GL_CXXALIASWARN (malloc);
  272: #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
  273: # undef malloc
  274: /* Assume malloc is always declared.  */
  275: _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
  276:                  "use gnulib module malloc-posix for portability");
  277: #endif
  278: 
  279: /* Convert a multibyte character to a wide character.  */
  280: #if @GNULIB_MBTOWC@
  281: # if @REPLACE_MBTOWC@
  282: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  283: #   undef mbtowc
  284: #   define mbtowc rpl_mbtowc
  285: #  endif
  286: _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
  287: _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
  288: # else
  289: _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
  290: # endif
  291: _GL_CXXALIASWARN (mbtowc);
  292: #endif
  293: 
  294: #if @GNULIB_MKDTEMP@
  295: /* Create a unique temporary directory from TEMPLATE.
  296:    The last six characters of TEMPLATE must be "XXXXXX";
  297:    they are replaced with a string that makes the directory name unique.
  298:    Returns TEMPLATE, or a null pointer if it cannot get a unique name.
  299:    The directory is created mode 700.  */
  300: # if !@HAVE_MKDTEMP@
  301: _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1)));
  302: # endif
  303: _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/));
  304: _GL_CXXALIASWARN (mkdtemp);
  305: #elif defined GNULIB_POSIXCHECK
  306: # undef mkdtemp
  307: # if HAVE_RAW_DECL_MKDTEMP
  308: _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
  309:                  "use gnulib module mkdtemp for portability");
  310: # endif
  311: #endif
  312: 
  313: #if @GNULIB_MKOSTEMP@
  314: /* Create a unique temporary file from TEMPLATE.
  315:    The last six characters of TEMPLATE must be "XXXXXX";
  316:    they are replaced with a string that makes the file name unique.
  317:    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
  318:    and O_TEXT, O_BINARY (defined in "binary-io.h").
  319:    The file is then created, with the specified flags, ensuring it didn't exist
  320:    before.
  321:    The file is created read-write (mask at least 0600 & ~umask), but it may be
  322:    world-readable and world-writable (mask 0666 & ~umask), depending on the
  323:    implementation.
  324:    Returns the open file descriptor if successful, otherwise -1 and errno
  325:    set.  */
  326: # if !@HAVE_MKOSTEMP@
  327: _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)
  328:                                  _GL_ARG_NONNULL ((1)));
  329: # endif
  330: _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
  331: _GL_CXXALIASWARN (mkostemp);
  332: #elif defined GNULIB_POSIXCHECK
  333: # undef mkostemp
  334: # if HAVE_RAW_DECL_MKOSTEMP
  335: _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
  336:                  "use gnulib module mkostemp for portability");
  337: # endif
  338: #endif
  339: 
  340: #if @GNULIB_MKOSTEMPS@
  341: /* Create a unique temporary file from TEMPLATE.
  342:    The last six characters of TEMPLATE before a suffix of length
  343:    SUFFIXLEN must be "XXXXXX";
  344:    they are replaced with a string that makes the file name unique.
  345:    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
  346:    and O_TEXT, O_BINARY (defined in "binary-io.h").
  347:    The file is then created, with the specified flags, ensuring it didn't exist
  348:    before.
  349:    The file is created read-write (mask at least 0600 & ~umask), but it may be
  350:    world-readable and world-writable (mask 0666 & ~umask), depending on the
  351:    implementation.
  352:    Returns the open file descriptor if successful, otherwise -1 and errno
  353:    set.  */
  354: # if !@HAVE_MKOSTEMPS@
  355: _GL_FUNCDECL_SYS (mkostemps, int,
  356:                   (char * /*template*/, int /*suffixlen*/, int /*flags*/)
  357:                   _GL_ARG_NONNULL ((1)));
  358: # endif
  359: _GL_CXXALIAS_SYS (mkostemps, int,
  360:                   (char * /*template*/, int /*suffixlen*/, int /*flags*/));
  361: _GL_CXXALIASWARN (mkostemps);
  362: #elif defined GNULIB_POSIXCHECK
  363: # undef mkostemps
  364: # if HAVE_RAW_DECL_MKOSTEMPS
  365: _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - "
  366:                  "use gnulib module mkostemps for portability");
  367: # endif
  368: #endif
  369: 
  370: #if @GNULIB_MKSTEMP@
  371: /* Create a unique temporary file from TEMPLATE.
  372:    The last six characters of TEMPLATE must be "XXXXXX";
  373:    they are replaced with a string that makes the file name unique.
  374:    The file is then created, ensuring it didn't exist before.
  375:    The file is created read-write (mask at least 0600 & ~umask), but it may be
  376:    world-readable and world-writable (mask 0666 & ~umask), depending on the
  377:    implementation.
  378:    Returns the open file descriptor if successful, otherwise -1 and errno
  379:    set.  */
  380: # if @REPLACE_MKSTEMP@
  381: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  382: #   define mkstemp rpl_mkstemp
  383: #  endif
  384: _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
  385: _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/));
  386: # else
  387: #  if ! @HAVE_MKSTEMP@
  388: _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
  389: #  endif
  390: _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/));
  391: # endif
  392: _GL_CXXALIASWARN (mkstemp);
  393: #elif defined GNULIB_POSIXCHECK
  394: # undef mkstemp
  395: # if HAVE_RAW_DECL_MKSTEMP
  396: _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - "
  397:                  "use gnulib module mkstemp for portability");
  398: # endif
  399: #endif
  400: 
  401: #if @GNULIB_MKSTEMPS@
  402: /* Create a unique temporary file from TEMPLATE.
  403:    The last six characters of TEMPLATE prior to a suffix of length
  404:    SUFFIXLEN must be "XXXXXX";
  405:    they are replaced with a string that makes the file name unique.
  406:    The file is then created, ensuring it didn't exist before.
  407:    The file is created read-write (mask at least 0600 & ~umask), but it may be
  408:    world-readable and world-writable (mask 0666 & ~umask), depending on the
  409:    implementation.
  410:    Returns the open file descriptor if successful, otherwise -1 and errno
  411:    set.  */
  412: # if !@HAVE_MKSTEMPS@
  413: _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)
  414:                                  _GL_ARG_NONNULL ((1)));
  415: # endif
  416: _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/));
  417: _GL_CXXALIASWARN (mkstemps);
  418: #elif defined GNULIB_POSIXCHECK
  419: # undef mkstemps
  420: # if HAVE_RAW_DECL_MKSTEMPS
  421: _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
  422:                  "use gnulib module mkstemps for portability");
  423: # endif
  424: #endif
  425: 
  426: #if @GNULIB_PTSNAME@
  427: /* Return the pathname of the pseudo-terminal slave associated with
  428:    the master FD is open on, or NULL on errors.  */
  429: # if !@HAVE_PTSNAME@
  430: _GL_FUNCDECL_SYS (ptsname, char *, (int fd));
  431: # endif
  432: _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
  433: _GL_CXXALIASWARN (ptsname);
  434: #elif defined GNULIB_POSIXCHECK
  435: # undef ptsname
  436: # if HAVE_RAW_DECL_PTSNAME
  437: _GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
  438:                  "use gnulib module ptsname for portability");
  439: # endif
  440: #endif
  441: 
  442: #if @GNULIB_PUTENV@
  443: # if @REPLACE_PUTENV@
  444: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  445: #   undef putenv
  446: #   define putenv rpl_putenv
  447: #  endif
  448: _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1)));
  449: _GL_CXXALIAS_RPL (putenv, int, (char *string));
  450: # else
  451: _GL_CXXALIAS_SYS (putenv, int, (char *string));
  452: # endif
  453: _GL_CXXALIASWARN (putenv);
  454: #endif
  455: 
  456: 
  457: #if @GNULIB_RANDOM_R@
  458: # if !@HAVE_RANDOM_R@
  459: #  ifndef RAND_MAX
  460: #   define RAND_MAX 2147483647
  461: #  endif
  462: # endif
  463: #endif
  464: 
  465: #if @GNULIB_RANDOM_R@
  466: # if !@HAVE_RANDOM_R@
  467: _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result)
  468:                                  _GL_ARG_NONNULL ((1, 2)));
  469: # endif
  470: _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result));
  471: _GL_CXXALIASWARN (random_r);
  472: #elif defined GNULIB_POSIXCHECK
  473: # undef random_r
  474: # if HAVE_RAW_DECL_RANDOM_R
  475: _GL_WARN_ON_USE (random_r, "random_r is unportable - "
  476:                  "use gnulib module random_r for portability");
  477: # endif
  478: #endif
  479: 
  480: #if @GNULIB_RANDOM_R@
  481: # if !@HAVE_RANDOM_R@
  482: _GL_FUNCDECL_SYS (srandom_r, int,
  483:                   (unsigned int seed, struct random_data *rand_state)
  484:                   _GL_ARG_NONNULL ((2)));
  485: # endif
  486: _GL_CXXALIAS_SYS (srandom_r, int,
  487:                   (unsigned int seed, struct random_data *rand_state));
  488: _GL_CXXALIASWARN (srandom_r);
  489: #elif defined GNULIB_POSIXCHECK
  490: # undef srandom_r
  491: # if HAVE_RAW_DECL_SRANDOM_R
  492: _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
  493:                  "use gnulib module random_r for portability");
  494: # endif
  495: #endif
  496: 
  497: #if @GNULIB_RANDOM_R@
  498: # if !@HAVE_RANDOM_R@
  499: _GL_FUNCDECL_SYS (initstate_r, int,
  500:                   (unsigned int seed, char *buf, size_t buf_size,
  501:                    struct random_data *rand_state)
  502:                   _GL_ARG_NONNULL ((2, 4)));
  503: # endif
  504: _GL_CXXALIAS_SYS (initstate_r, int,
  505:                   (unsigned int seed, char *buf, size_t buf_size,
  506:                    struct random_data *rand_state));
  507: _GL_CXXALIASWARN (initstate_r);
  508: #elif defined GNULIB_POSIXCHECK
  509: # undef initstate_r
  510: # if HAVE_RAW_DECL_INITSTATE_R
  511: _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
  512:                  "use gnulib module random_r for portability");
  513: # endif
  514: #endif
  515: 
  516: #if @GNULIB_RANDOM_R@
  517: # if !@HAVE_RANDOM_R@
  518: _GL_FUNCDECL_SYS (setstate_r, int,
  519:                   (char *arg_state, struct random_data *rand_state)
  520:                   _GL_ARG_NONNULL ((1, 2)));
  521: # endif
  522: _GL_CXXALIAS_SYS (setstate_r, int,
  523:                   (char *arg_state, struct random_data *rand_state));
  524: _GL_CXXALIASWARN (setstate_r);
  525: #elif defined GNULIB_POSIXCHECK
  526: # undef setstate_r
  527: # if HAVE_RAW_DECL_SETSTATE_R
  528: _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
  529:                  "use gnulib module random_r for portability");
  530: # endif
  531: #endif
  532: 
  533: 
  534: #if @GNULIB_REALLOC_POSIX@
  535: # if @REPLACE_REALLOC@
  536: #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
  537:         || _GL_USE_STDLIB_ALLOC)
  538: #   undef realloc
  539: #   define realloc rpl_realloc
  540: #  endif
  541: _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size));
  542: _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
  543: # else
  544: _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
  545: # endif
  546: _GL_CXXALIASWARN (realloc);
  547: #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
  548: # undef realloc
  549: /* Assume realloc is always declared.  */
  550: _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
  551:                  "use gnulib module realloc-posix for portability");
  552: #endif
  553: 
  554: #if @GNULIB_REALPATH@
  555: # if @REPLACE_REALPATH@
  556: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  557: #   define realpath rpl_realpath
  558: #  endif
  559: _GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved)
  560:                                     _GL_ARG_NONNULL ((1)));
  561: _GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved));
  562: # else
  563: #  if !@HAVE_REALPATH@
  564: _GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved)
  565:                                     _GL_ARG_NONNULL ((1)));
  566: #  endif
  567: _GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved));
  568: # endif
  569: _GL_CXXALIASWARN (realpath);
  570: #elif defined GNULIB_POSIXCHECK
  571: # undef realpath
  572: # if HAVE_RAW_DECL_REALPATH
  573: _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module "
  574:                  "canonicalize or canonicalize-lgpl for portability");
  575: # endif
  576: #endif
  577: 
  578: #if @GNULIB_RPMATCH@
  579: /* Test a user response to a question.
  580:    Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear.  */
  581: # if !@HAVE_RPMATCH@
  582: _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1)));
  583: # endif
  584: _GL_CXXALIAS_SYS (rpmatch, int, (const char *response));
  585: _GL_CXXALIASWARN (rpmatch);
  586: #elif defined GNULIB_POSIXCHECK
  587: # undef rpmatch
  588: # if HAVE_RAW_DECL_RPMATCH
  589: _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
  590:                  "use gnulib module rpmatch for portability");
  591: # endif
  592: #endif
  593: 
  594: #if @GNULIB_SETENV@
  595: /* Set NAME to VALUE in the environment.
  596:    If REPLACE is nonzero, overwrite an existing value.  */
  597: # if @REPLACE_SETENV@
  598: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  599: #   undef setenv
  600: #   define setenv rpl_setenv
  601: #  endif
  602: _GL_FUNCDECL_RPL (setenv, int,
  603:                   (const char *name, const char *value, int replace)
  604:                   _GL_ARG_NONNULL ((1)));
  605: _GL_CXXALIAS_RPL (setenv, int,
  606:                   (const char *name, const char *value, int replace));
  607: # else
  608: #  if !@HAVE_DECL_SETENV@
  609: _GL_FUNCDECL_SYS (setenv, int,
  610:                   (const char *name, const char *value, int replace)
  611:                   _GL_ARG_NONNULL ((1)));
  612: #  endif
  613: _GL_CXXALIAS_SYS (setenv, int,
  614:                   (const char *name, const char *value, int replace));
  615: # endif
  616: # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@)
  617: _GL_CXXALIASWARN (setenv);
  618: # endif
  619: #elif defined GNULIB_POSIXCHECK
  620: # undef setenv
  621: # if HAVE_RAW_DECL_SETENV
  622: _GL_WARN_ON_USE (setenv, "setenv is unportable - "
  623:                  "use gnulib module setenv for portability");
  624: # endif
  625: #endif
  626: 
  627: #if @GNULIB_STRTOD@
  628:  /* Parse a double from STRING, updating ENDP if appropriate.  */
  629: # if @REPLACE_STRTOD@
  630: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  631: #   define strtod rpl_strtod
  632: #  endif
  633: _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp)
  634:                                   _GL_ARG_NONNULL ((1)));
  635: _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp));
  636: # else
  637: #  if !@HAVE_STRTOD@
  638: _GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp)
  639:                                   _GL_ARG_NONNULL ((1)));
  640: #  endif
  641: _GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp));
  642: # endif
  643: _GL_CXXALIASWARN (strtod);
  644: #elif defined GNULIB_POSIXCHECK
  645: # undef strtod
  646: # if HAVE_RAW_DECL_STRTOD
  647: _GL_WARN_ON_USE (strtod, "strtod is unportable - "
  648:                  "use gnulib module strtod for portability");
  649: # endif
  650: #endif
  651: 
  652: #if @GNULIB_STRTOLL@
  653: /* Parse a signed integer whose textual representation starts at STRING.
  654:    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
  655:    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
  656:    "0x").
  657:    If ENDPTR is not NULL, the address of the first byte after the integer is
  658:    stored in *ENDPTR.
  659:    Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
  660:    to ERANGE.  */
  661: # if !@HAVE_STRTOLL@
  662: _GL_FUNCDECL_SYS (strtoll, long long,
  663:                   (const char *string, char **endptr, int base)
  664:                   _GL_ARG_NONNULL ((1)));
  665: # endif
  666: _GL_CXXALIAS_SYS (strtoll, long long,
  667:                   (const char *string, char **endptr, int base));
  668: _GL_CXXALIASWARN (strtoll);
  669: #elif defined GNULIB_POSIXCHECK
  670: # undef strtoll
  671: # if HAVE_RAW_DECL_STRTOLL
  672: _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
  673:                  "use gnulib module strtoll for portability");
  674: # endif
  675: #endif
  676: 
  677: #if @GNULIB_STRTOULL@
  678: /* Parse an unsigned integer whose textual representation starts at STRING.
  679:    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
  680:    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
  681:    "0x").
  682:    If ENDPTR is not NULL, the address of the first byte after the integer is
  683:    stored in *ENDPTR.
  684:    Upon overflow, the return value is ULLONG_MAX, and errno is set to
  685:    ERANGE.  */
  686: # if !@HAVE_STRTOULL@
  687: _GL_FUNCDECL_SYS (strtoull, unsigned long long,
  688:                   (const char *string, char **endptr, int base)
  689:                   _GL_ARG_NONNULL ((1)));
  690: # endif
  691: _GL_CXXALIAS_SYS (strtoull, unsigned long long,
  692:                   (const char *string, char **endptr, int base));
  693: _GL_CXXALIASWARN (strtoull);
  694: #elif defined GNULIB_POSIXCHECK
  695: # undef strtoull
  696: # if HAVE_RAW_DECL_STRTOULL
  697: _GL_WARN_ON_USE (strtoull, "strtoull is unportable - "
  698:                  "use gnulib module strtoull for portability");
  699: # endif
  700: #endif
  701: 
  702: #if @GNULIB_UNLOCKPT@
  703: /* Unlock the slave side of the pseudo-terminal whose master side is specified
  704:    by FD, so that it can be opened.  */
  705: # if !@HAVE_UNLOCKPT@
  706: _GL_FUNCDECL_SYS (unlockpt, int, (int fd));
  707: # endif
  708: _GL_CXXALIAS_SYS (unlockpt, int, (int fd));
  709: _GL_CXXALIASWARN (unlockpt);
  710: #elif defined GNULIB_POSIXCHECK
  711: # undef unlockpt
  712: # if HAVE_RAW_DECL_UNLOCKPT
  713: _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
  714:                  "use gnulib module unlockpt for portability");
  715: # endif
  716: #endif
  717: 
  718: #if @GNULIB_UNSETENV@
  719: /* Remove the variable NAME from the environment.  */
  720: # if @REPLACE_UNSETENV@
  721: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  722: #   undef unsetenv
  723: #   define unsetenv rpl_unsetenv
  724: #  endif
  725: _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
  726: _GL_CXXALIAS_RPL (unsetenv, int, (const char *name));
  727: # else
  728: #  if !@HAVE_DECL_UNSETENV@
  729: _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
  730: #  endif
  731: _GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
  732: # endif
  733: # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@)
  734: _GL_CXXALIASWARN (unsetenv);
  735: # endif
  736: #elif defined GNULIB_POSIXCHECK
  737: # undef unsetenv
  738: # if HAVE_RAW_DECL_UNSETENV
  739: _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - "
  740:                  "use gnulib module unsetenv for portability");
  741: # endif
  742: #endif
  743: 
  744: /* Convert a wide character to a multibyte character.  */
  745: #if @GNULIB_WCTOMB@
  746: # if @REPLACE_WCTOMB@
  747: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
  748: #   undef wctomb
  749: #   define wctomb rpl_wctomb
  750: #  endif
  751: _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc));
  752: _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc));
  753: # else
  754: _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc));
  755: # endif
  756: _GL_CXXALIASWARN (wctomb);
  757: #endif
  758: 
  759: 
  760: #endif /* _@GUARD_PREFIX@_STDLIB_H */
  761: #endif /* _@GUARD_PREFIX@_STDLIB_H */
  762: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>