1: /* A GNU-like <stdlib.h>.
2:
3: Copyright (C) 1995, 2001-2004, 2006-2019 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 <https://www.gnu.org/licenses/>. */
17:
18: #if __GNUC__ >= 3
19: @PRAGMA_SYSTEM_HEADER@
20: #endif
21: @PRAGMA_COLUMNS@
22:
23: #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc
24: /* Special invocation conventions inside some gnulib header files,
25: and inside some glibc header files, respectively. */
26:
27: #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
28:
29: #else
30: /* Normal invocation convention. */
31:
32: #ifndef _@GUARD_PREFIX@_STDLIB_H
33:
34: /* The include_next requires a split double-inclusion guard. */
35: #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
36:
37: #ifndef _@GUARD_PREFIX@_STDLIB_H
38: #define _@GUARD_PREFIX@_STDLIB_H
39:
40: /* NetBSD 5.0 mis-defines NULL. */
41: #include <stddef.h>
42:
43: /* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>. */
44: #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS
45: # include <sys/wait.h>
46: #endif
47:
48: /* Solaris declares getloadavg() in <sys/loadavg.h>. */
49: #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@
50: /* OpenIndiana has a bug: <sys/time.h> must be included before
51: <sys/loadavg.h>. */
52: # include <sys/time.h>
53: # include <sys/loadavg.h>
54: #endif
55:
56: /* Native Windows platforms declare mktemp() in <io.h>. */
57: #if 0 && (defined _WIN32 && ! defined __CYGWIN__)
58: # include <io.h>
59: #endif
60:
61: #if @GNULIB_RANDOM_R@
62:
63: /* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
64: from <stdlib.h> if _REENTRANT is defined. Include it whenever we need
65: 'struct random_data'. */
66: # if @HAVE_RANDOM_H@
67: # include <random.h>
68: # endif
69:
70: # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@
71: # include <stdint.h>
72: # endif
73:
74: # if !@HAVE_STRUCT_RANDOM_DATA@
75: /* Define 'struct random_data'.
76: But allow multiple gnulib generated <stdlib.h> replacements to coexist. */
77: # if !GNULIB_defined_struct_random_data
78: struct random_data
79: {
80: int32_t *fptr; /* Front pointer. */
81: int32_t *rptr; /* Rear pointer. */
82: int32_t *state; /* Array of state values. */
83: int rand_type; /* Type of random number generator. */
84: int rand_deg; /* Degree of random number generator. */
85: int rand_sep; /* Distance between front and rear. */
86: int32_t *end_ptr; /* Pointer behind state table. */
87: };
88: # define GNULIB_defined_struct_random_data 1
89: # endif
90: # endif
91: #endif
92:
93: #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__)
94: /* On Mac OS X 10.3, only <unistd.h> declares mkstemp. */
95: /* On Mac OS X 10.5, only <unistd.h> declares mkstemps. */
96: /* On Mac OS X 10.13, only <unistd.h> declares mkostemp and mkostemps. */
97: /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */
98: /* But avoid namespace pollution on glibc systems and native Windows. */
99: # include <unistd.h>
100: #endif
101:
102: /* The __attribute__ feature is available in gcc versions 2.5 and later.
103: The attribute __pure__ was added in gcc 2.96. */
104: #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
105: # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
106: #else
107: # define _GL_ATTRIBUTE_PURE /* empty */
108: #endif
109:
110: /* The definition of _Noreturn is copied here. */
111:
112: /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
113:
114: /* The definition of _GL_ARG_NONNULL is copied here. */
115:
116: /* The definition of _GL_WARN_ON_USE is copied here. */
117:
118:
119: /* Some systems do not define EXIT_*, despite otherwise supporting C89. */
120: #ifndef EXIT_SUCCESS
121: # define EXIT_SUCCESS 0
122: #endif
123: /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
124: with proper operation of xargs. */
125: #ifndef EXIT_FAILURE
126: # define EXIT_FAILURE 1
127: #elif EXIT_FAILURE != 1
128: # undef EXIT_FAILURE
129: # define EXIT_FAILURE 1
130: #endif
131:
132:
133: #if @GNULIB__EXIT@
134: /* Terminate the current process with the given return code, without running
135: the 'atexit' handlers. */
136: # if !@HAVE__EXIT@
137: _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
138: # endif
139: _GL_CXXALIAS_SYS (_Exit, void, (int status));
140: _GL_CXXALIASWARN (_Exit);
141: #elif defined GNULIB_POSIXCHECK
142: # undef _Exit
143: # if HAVE_RAW_DECL__EXIT
144: _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
145: "use gnulib module _Exit for portability");
146: # endif
147: #endif
148:
149:
150: #if @GNULIB_ATOLL@
151: /* Parse a signed decimal integer.
152: Returns the value of the integer. Errors are not detected. */
153: # if !@HAVE_ATOLL@
154: _GL_FUNCDECL_SYS (atoll, long long, (const char *string)
155: _GL_ATTRIBUTE_PURE
156: _GL_ARG_NONNULL ((1)));
157: # endif
158: _GL_CXXALIAS_SYS (atoll, long long, (const char *string));
159: _GL_CXXALIASWARN (atoll);
160: #elif defined GNULIB_POSIXCHECK
161: # undef atoll
162: # if HAVE_RAW_DECL_ATOLL
163: _GL_WARN_ON_USE (atoll, "atoll is unportable - "
164: "use gnulib module atoll for portability");
165: # endif
166: #endif
167:
168: #if @GNULIB_CALLOC_POSIX@
169: # if @REPLACE_CALLOC@
170: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
171: # undef calloc
172: # define calloc rpl_calloc
173: # endif
174: _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size));
175: _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size));
176: # else
177: _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size));
178: # endif
179: _GL_CXXALIASWARN (calloc);
180: #elif defined GNULIB_POSIXCHECK
181: # undef calloc
182: /* Assume calloc is always declared. */
183: _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
184: "use gnulib module calloc-posix for portability");
185: #endif
186:
187: #if @GNULIB_CANONICALIZE_FILE_NAME@
188: # if @REPLACE_CANONICALIZE_FILE_NAME@
189: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
190: # define canonicalize_file_name rpl_canonicalize_file_name
191: # endif
192: _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name)
193: _GL_ARG_NONNULL ((1)));
194: _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name));
195: # else
196: # if !@HAVE_CANONICALIZE_FILE_NAME@
197: _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name)
198: _GL_ARG_NONNULL ((1)));
199: # endif
200: _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
201: # endif
202: _GL_CXXALIASWARN (canonicalize_file_name);
203: #elif defined GNULIB_POSIXCHECK
204: # undef canonicalize_file_name
205: # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
206: _GL_WARN_ON_USE (canonicalize_file_name,
207: "canonicalize_file_name is unportable - "
208: "use gnulib module canonicalize-lgpl for portability");
209: # endif
210: #endif
211:
212: #if @GNULIB_GETLOADAVG@
213: /* Store max(NELEM,3) load average numbers in LOADAVG[].
214: The three numbers are the load average of the last 1 minute, the last 5
215: minutes, and the last 15 minutes, respectively.
216: LOADAVG is an array of NELEM numbers. */
217: # if !@HAVE_DECL_GETLOADAVG@
218: _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem)
219: _GL_ARG_NONNULL ((1)));
220: # endif
221: _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
222: _GL_CXXALIASWARN (getloadavg);
223: #elif defined GNULIB_POSIXCHECK
224: # undef getloadavg
225: # if HAVE_RAW_DECL_GETLOADAVG
226: _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
227: "use gnulib module getloadavg for portability");
228: # endif
229: #endif
230:
231: #if @GNULIB_GETSUBOPT@
232: /* Assuming *OPTIONP is a comma separated list of elements of the form
233: "token" or "token=value", getsubopt parses the first of these elements.
234: If the first element refers to a "token" that is member of the given
235: NULL-terminated array of tokens:
236: - It replaces the comma with a NUL byte, updates *OPTIONP to point past
237: the first option and the comma, sets *VALUEP to the value of the
238: element (or NULL if it doesn't contain an "=" sign),
239: - It returns the index of the "token" in the given array of tokens.
240: Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
241: For more details see the POSIX:2001 specification.
242: http://www.opengroup.org/susv3xsh/getsubopt.html */
243: # if !@HAVE_GETSUBOPT@
244: _GL_FUNCDECL_SYS (getsubopt, int,
245: (char **optionp, char *const *tokens, char **valuep)
246: _GL_ARG_NONNULL ((1, 2, 3)));
247: # endif
248: _GL_CXXALIAS_SYS (getsubopt, int,
249: (char **optionp, char *const *tokens, char **valuep));
250: _GL_CXXALIASWARN (getsubopt);
251: #elif defined GNULIB_POSIXCHECK
252: # undef getsubopt
253: # if HAVE_RAW_DECL_GETSUBOPT
254: _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - "
255: "use gnulib module getsubopt for portability");
256: # endif
257: #endif
258:
259: #if @GNULIB_GRANTPT@
260: /* Change the ownership and access permission of the slave side of the
261: pseudo-terminal whose master side is specified by FD. */
262: # if !@HAVE_GRANTPT@
263: _GL_FUNCDECL_SYS (grantpt, int, (int fd));
264: # endif
265: _GL_CXXALIAS_SYS (grantpt, int, (int fd));
266: _GL_CXXALIASWARN (grantpt);
267: #elif defined GNULIB_POSIXCHECK
268: # undef grantpt
269: # if HAVE_RAW_DECL_GRANTPT
270: _GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
271: "use gnulib module grantpt for portability");
272: # endif
273: #endif
274:
275: /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not
276: rely on GNU or POSIX semantics for malloc and realloc (for example,
277: by never specifying a zero size), so it does not need malloc or
278: realloc to be redefined. */
279: #if @GNULIB_MALLOC_POSIX@
280: # if @REPLACE_MALLOC@
281: # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
282: || _GL_USE_STDLIB_ALLOC)
283: # undef malloc
284: # define malloc rpl_malloc
285: # endif
286: _GL_FUNCDECL_RPL (malloc, void *, (size_t size));
287: _GL_CXXALIAS_RPL (malloc, void *, (size_t size));
288: # else
289: _GL_CXXALIAS_SYS (malloc, void *, (size_t size));
290: # endif
291: _GL_CXXALIASWARN (malloc);
292: #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
293: # undef malloc
294: /* Assume malloc is always declared. */
295: _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
296: "use gnulib module malloc-posix for portability");
297: #endif
298:
299: /* Convert a multibyte character to a wide character. */
300: #if @GNULIB_MBTOWC@
301: # if @REPLACE_MBTOWC@
302: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
303: # undef mbtowc
304: # define mbtowc rpl_mbtowc
305: # endif
306: _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
307: _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
308: # else
309: # if !@HAVE_MBTOWC@
310: _GL_FUNCDECL_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
311: # endif
312: _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
313: # endif
314: _GL_CXXALIASWARN (mbtowc);
315: #elif defined GNULIB_POSIXCHECK
316: # undef mbtowc
317: # if HAVE_RAW_DECL_MBTOWC
318: _GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - "
319: "use gnulib module mbtowc for portability");
320: # endif
321: #endif
322:
323: #if @GNULIB_MKDTEMP@
324: /* Create a unique temporary directory from TEMPLATE.
325: The last six characters of TEMPLATE must be "XXXXXX";
326: they are replaced with a string that makes the directory name unique.
327: Returns TEMPLATE, or a null pointer if it cannot get a unique name.
328: The directory is created mode 700. */
329: # if !@HAVE_MKDTEMP@
330: _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1)));
331: # endif
332: _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/));
333: _GL_CXXALIASWARN (mkdtemp);
334: #elif defined GNULIB_POSIXCHECK
335: # undef mkdtemp
336: # if HAVE_RAW_DECL_MKDTEMP
337: _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
338: "use gnulib module mkdtemp for portability");
339: # endif
340: #endif
341:
342: #if @GNULIB_MKOSTEMP@
343: /* Create a unique temporary file from TEMPLATE.
344: The last six characters of TEMPLATE must be "XXXXXX";
345: they are replaced with a string that makes the file name unique.
346: The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
347: and O_TEXT, O_BINARY (defined in "binary-io.h").
348: The file is then created, with the specified flags, ensuring it didn't exist
349: before.
350: The file is created read-write (mask at least 0600 & ~umask), but it may be
351: world-readable and world-writable (mask 0666 & ~umask), depending on the
352: implementation.
353: Returns the open file descriptor if successful, otherwise -1 and errno
354: set. */
355: # if !@HAVE_MKOSTEMP@
356: _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)
357: _GL_ARG_NONNULL ((1)));
358: # endif
359: _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
360: _GL_CXXALIASWARN (mkostemp);
361: #elif defined GNULIB_POSIXCHECK
362: # undef mkostemp
363: # if HAVE_RAW_DECL_MKOSTEMP
364: _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
365: "use gnulib module mkostemp for portability");
366: # endif
367: #endif
368:
369: #if @GNULIB_MKOSTEMPS@
370: /* Create a unique temporary file from TEMPLATE.
371: The last six characters of TEMPLATE before a suffix of length
372: SUFFIXLEN must be "XXXXXX";
373: they are replaced with a string that makes the file name unique.
374: The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
375: and O_TEXT, O_BINARY (defined in "binary-io.h").
376: The file is then created, with the specified flags, ensuring it didn't exist
377: before.
378: The file is created read-write (mask at least 0600 & ~umask), but it may be
379: world-readable and world-writable (mask 0666 & ~umask), depending on the
380: implementation.
381: Returns the open file descriptor if successful, otherwise -1 and errno
382: set. */
383: # if !@HAVE_MKOSTEMPS@
384: _GL_FUNCDECL_SYS (mkostemps, int,
385: (char * /*template*/, int /*suffixlen*/, int /*flags*/)
386: _GL_ARG_NONNULL ((1)));
387: # endif
388: _GL_CXXALIAS_SYS (mkostemps, int,
389: (char * /*template*/, int /*suffixlen*/, int /*flags*/));
390: _GL_CXXALIASWARN (mkostemps);
391: #elif defined GNULIB_POSIXCHECK
392: # undef mkostemps
393: # if HAVE_RAW_DECL_MKOSTEMPS
394: _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - "
395: "use gnulib module mkostemps for portability");
396: # endif
397: #endif
398:
399: #if @GNULIB_MKSTEMP@
400: /* Create a unique temporary file from TEMPLATE.
401: The last six characters of TEMPLATE must be "XXXXXX";
402: they are replaced with a string that makes the file name unique.
403: The file is then created, ensuring it didn't exist before.
404: The file is created read-write (mask at least 0600 & ~umask), but it may be
405: world-readable and world-writable (mask 0666 & ~umask), depending on the
406: implementation.
407: Returns the open file descriptor if successful, otherwise -1 and errno
408: set. */
409: # if @REPLACE_MKSTEMP@
410: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
411: # define mkstemp rpl_mkstemp
412: # endif
413: _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
414: _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/));
415: # else
416: # if ! @HAVE_MKSTEMP@
417: _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
418: # endif
419: _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/));
420: # endif
421: _GL_CXXALIASWARN (mkstemp);
422: #elif defined GNULIB_POSIXCHECK
423: # undef mkstemp
424: # if HAVE_RAW_DECL_MKSTEMP
425: _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - "
426: "use gnulib module mkstemp for portability");
427: # endif
428: #endif
429:
430: #if @GNULIB_MKSTEMPS@
431: /* Create a unique temporary file from TEMPLATE.
432: The last six characters of TEMPLATE prior to a suffix of length
433: SUFFIXLEN must be "XXXXXX";
434: they are replaced with a string that makes the file name unique.
435: The file is then created, ensuring it didn't exist before.
436: The file is created read-write (mask at least 0600 & ~umask), but it may be
437: world-readable and world-writable (mask 0666 & ~umask), depending on the
438: implementation.
439: Returns the open file descriptor if successful, otherwise -1 and errno
440: set. */
441: # if !@HAVE_MKSTEMPS@
442: _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)
443: _GL_ARG_NONNULL ((1)));
444: # endif
445: _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/));
446: _GL_CXXALIASWARN (mkstemps);
447: #elif defined GNULIB_POSIXCHECK
448: # undef mkstemps
449: # if HAVE_RAW_DECL_MKSTEMPS
450: _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
451: "use gnulib module mkstemps for portability");
452: # endif
453: #endif
454:
455: #if @GNULIB_POSIX_OPENPT@
456: /* Return an FD open to the master side of a pseudo-terminal. Flags should
457: include O_RDWR, and may also include O_NOCTTY. */
458: # if !@HAVE_POSIX_OPENPT@
459: _GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
460: # endif
461: _GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
462: _GL_CXXALIASWARN (posix_openpt);
463: #elif defined GNULIB_POSIXCHECK
464: # undef posix_openpt
465: # if HAVE_RAW_DECL_POSIX_OPENPT
466: _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
467: "use gnulib module posix_openpt for portability");
468: # endif
469: #endif
470:
471: #if @GNULIB_PTSNAME@
472: /* Return the pathname of the pseudo-terminal slave associated with
473: the master FD is open on, or NULL on errors. */
474: # if @REPLACE_PTSNAME@
475: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
476: # undef ptsname
477: # define ptsname rpl_ptsname
478: # endif
479: _GL_FUNCDECL_RPL (ptsname, char *, (int fd));
480: _GL_CXXALIAS_RPL (ptsname, char *, (int fd));
481: # else
482: # if !@HAVE_PTSNAME@
483: _GL_FUNCDECL_SYS (ptsname, char *, (int fd));
484: # endif
485: _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
486: # endif
487: _GL_CXXALIASWARN (ptsname);
488: #elif defined GNULIB_POSIXCHECK
489: # undef ptsname
490: # if HAVE_RAW_DECL_PTSNAME
491: _GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
492: "use gnulib module ptsname for portability");
493: # endif
494: #endif
495:
496: #if @GNULIB_PTSNAME_R@
497: /* Set the pathname of the pseudo-terminal slave associated with
498: the master FD is open on and return 0, or set errno and return
499: non-zero on errors. */
500: # if @REPLACE_PTSNAME_R@
501: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
502: # undef ptsname_r
503: # define ptsname_r rpl_ptsname_r
504: # endif
505: _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
506: _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
507: # else
508: # if !@HAVE_PTSNAME_R@
509: _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
510: # endif
511: _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
512: # endif
513: _GL_CXXALIASWARN (ptsname_r);
514: #elif defined GNULIB_POSIXCHECK
515: # undef ptsname_r
516: # if HAVE_RAW_DECL_PTSNAME_R
517: _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - "
518: "use gnulib module ptsname_r for portability");
519: # endif
520: #endif
521:
522: #if @GNULIB_PUTENV@
523: # if @REPLACE_PUTENV@
524: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
525: # undef putenv
526: # define putenv rpl_putenv
527: # endif
528: _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1)));
529: _GL_CXXALIAS_RPL (putenv, int, (char *string));
530: # else
531: _GL_CXXALIAS_SYS (putenv, int, (char *string));
532: # endif
533: _GL_CXXALIASWARN (putenv);
534: #endif
535:
536: #if @GNULIB_QSORT_R@
537: /* Sort an array of NMEMB elements, starting at address BASE, each element
538: occupying SIZE bytes, in ascending order according to the comparison
539: function COMPARE. */
540: # if @REPLACE_QSORT_R@
541: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
542: # undef qsort_r
543: # define qsort_r rpl_qsort_r
544: # endif
545: _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
546: int (*compare) (void const *, void const *,
547: void *),
548: void *arg) _GL_ARG_NONNULL ((1, 4)));
549: _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
550: int (*compare) (void const *, void const *,
551: void *),
552: void *arg));
553: # else
554: # if !@HAVE_QSORT_R@
555: _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
556: int (*compare) (void const *, void const *,
557: void *),
558: void *arg) _GL_ARG_NONNULL ((1, 4)));
559: # endif
560: _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
561: int (*compare) (void const *, void const *,
562: void *),
563: void *arg));
564: # endif
565: _GL_CXXALIASWARN (qsort_r);
566: #elif defined GNULIB_POSIXCHECK
567: # undef qsort_r
568: # if HAVE_RAW_DECL_QSORT_R
569: _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - "
570: "use gnulib module qsort_r for portability");
571: # endif
572: #endif
573:
574:
575: #if @GNULIB_RANDOM_R@
576: # if !@HAVE_RANDOM_R@
577: # ifndef RAND_MAX
578: # define RAND_MAX 2147483647
579: # endif
580: # endif
581: #endif
582:
583:
584: #if @GNULIB_RANDOM@
585: # if @REPLACE_RANDOM@
586: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
587: # undef random
588: # define random rpl_random
589: # endif
590: _GL_FUNCDECL_RPL (random, long, (void));
591: _GL_CXXALIAS_RPL (random, long, (void));
592: # else
593: # if !@HAVE_RANDOM@
594: _GL_FUNCDECL_SYS (random, long, (void));
595: # endif
596: _GL_CXXALIAS_SYS (random, long, (void));
597: # endif
598: _GL_CXXALIASWARN (random);
599: #elif defined GNULIB_POSIXCHECK
600: # undef random
601: # if HAVE_RAW_DECL_RANDOM
602: _GL_WARN_ON_USE (random, "random is unportable - "
603: "use gnulib module random for portability");
604: # endif
605: #endif
606:
607: #if @GNULIB_RANDOM@
608: # if @REPLACE_RANDOM@
609: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
610: # undef srandom
611: # define srandom rpl_srandom
612: # endif
613: _GL_FUNCDECL_RPL (srandom, void, (unsigned int seed));
614: _GL_CXXALIAS_RPL (srandom, void, (unsigned int seed));
615: # else
616: # if !@HAVE_RANDOM@
617: _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
618: # endif
619: _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed));
620: # endif
621: _GL_CXXALIASWARN (srandom);
622: #elif defined GNULIB_POSIXCHECK
623: # undef srandom
624: # if HAVE_RAW_DECL_SRANDOM
625: _GL_WARN_ON_USE (srandom, "srandom is unportable - "
626: "use gnulib module random for portability");
627: # endif
628: #endif
629:
630: #if @GNULIB_RANDOM@
631: # if @REPLACE_INITSTATE@
632: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
633: # undef initstate
634: # define initstate rpl_initstate
635: # endif
636: _GL_FUNCDECL_RPL (initstate, char *,
637: (unsigned int seed, char *buf, size_t buf_size)
638: _GL_ARG_NONNULL ((2)));
639: _GL_CXXALIAS_RPL (initstate, char *,
640: (unsigned int seed, char *buf, size_t buf_size));
641: # else
642: # if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@
643: _GL_FUNCDECL_SYS (initstate, char *,
644: (unsigned int seed, char *buf, size_t buf_size)
645: _GL_ARG_NONNULL ((2)));
646: # endif
647: _GL_CXXALIAS_SYS (initstate, char *,
648: (unsigned int seed, char *buf, size_t buf_size));
649: # endif
650: _GL_CXXALIASWARN (initstate);
651: #elif defined GNULIB_POSIXCHECK
652: # undef initstate
653: # if HAVE_RAW_DECL_INITSTATE
654: _GL_WARN_ON_USE (initstate, "initstate is unportable - "
655: "use gnulib module random for portability");
656: # endif
657: #endif
658:
659: #if @GNULIB_RANDOM@
660: # if @REPLACE_SETSTATE@
661: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
662: # undef setstate
663: # define setstate rpl_setstate
664: # endif
665: _GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
666: _GL_CXXALIAS_RPL (setstate, char *, (char *arg_state));
667: # else
668: # if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@
669: _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
670: # endif
671: _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state));
672: # endif
673: _GL_CXXALIASWARN (setstate);
674: #elif defined GNULIB_POSIXCHECK
675: # undef setstate
676: # if HAVE_RAW_DECL_SETSTATE
677: _GL_WARN_ON_USE (setstate, "setstate is unportable - "
678: "use gnulib module random for portability");
679: # endif
680: #endif
681:
682:
683: #if @GNULIB_RANDOM_R@
684: # if @REPLACE_RANDOM_R@
685: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
686: # undef random_r
687: # define random_r rpl_random_r
688: # endif
689: _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result)
690: _GL_ARG_NONNULL ((1, 2)));
691: _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result));
692: # else
693: # if !@HAVE_RANDOM_R@
694: _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result)
695: _GL_ARG_NONNULL ((1, 2)));
696: # endif
697: _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result));
698: # endif
699: _GL_CXXALIASWARN (random_r);
700: #elif defined GNULIB_POSIXCHECK
701: # undef random_r
702: # if HAVE_RAW_DECL_RANDOM_R
703: _GL_WARN_ON_USE (random_r, "random_r is unportable - "
704: "use gnulib module random_r for portability");
705: # endif
706: #endif
707:
708: #if @GNULIB_RANDOM_R@
709: # if @REPLACE_RANDOM_R@
710: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
711: # undef srandom_r
712: # define srandom_r rpl_srandom_r
713: # endif
714: _GL_FUNCDECL_RPL (srandom_r, int,
715: (unsigned int seed, struct random_data *rand_state)
716: _GL_ARG_NONNULL ((2)));
717: _GL_CXXALIAS_RPL (srandom_r, int,
718: (unsigned int seed, struct random_data *rand_state));
719: # else
720: # if !@HAVE_RANDOM_R@
721: _GL_FUNCDECL_SYS (srandom_r, int,
722: (unsigned int seed, struct random_data *rand_state)
723: _GL_ARG_NONNULL ((2)));
724: # endif
725: _GL_CXXALIAS_SYS (srandom_r, int,
726: (unsigned int seed, struct random_data *rand_state));
727: # endif
728: _GL_CXXALIASWARN (srandom_r);
729: #elif defined GNULIB_POSIXCHECK
730: # undef srandom_r
731: # if HAVE_RAW_DECL_SRANDOM_R
732: _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
733: "use gnulib module random_r for portability");
734: # endif
735: #endif
736:
737: #if @GNULIB_RANDOM_R@
738: # if @REPLACE_RANDOM_R@
739: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
740: # undef initstate_r
741: # define initstate_r rpl_initstate_r
742: # endif
743: _GL_FUNCDECL_RPL (initstate_r, int,
744: (unsigned int seed, char *buf, size_t buf_size,
745: struct random_data *rand_state)
746: _GL_ARG_NONNULL ((2, 4)));
747: _GL_CXXALIAS_RPL (initstate_r, int,
748: (unsigned int seed, char *buf, size_t buf_size,
749: struct random_data *rand_state));
750: # else
751: # if !@HAVE_RANDOM_R@
752: _GL_FUNCDECL_SYS (initstate_r, int,
753: (unsigned int seed, char *buf, size_t buf_size,
754: struct random_data *rand_state)
755: _GL_ARG_NONNULL ((2, 4)));
756: # endif
757: _GL_CXXALIAS_SYS (initstate_r, int,
758: (unsigned int seed, char *buf, size_t buf_size,
759: struct random_data *rand_state));
760: # endif
761: _GL_CXXALIASWARN (initstate_r);
762: #elif defined GNULIB_POSIXCHECK
763: # undef initstate_r
764: # if HAVE_RAW_DECL_INITSTATE_R
765: _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
766: "use gnulib module random_r for portability");
767: # endif
768: #endif
769:
770: #if @GNULIB_RANDOM_R@
771: # if @REPLACE_RANDOM_R@
772: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
773: # undef setstate_r
774: # define setstate_r rpl_setstate_r
775: # endif
776: _GL_FUNCDECL_RPL (setstate_r, int,
777: (char *arg_state, struct random_data *rand_state)
778: _GL_ARG_NONNULL ((1, 2)));
779: _GL_CXXALIAS_RPL (setstate_r, int,
780: (char *arg_state, struct random_data *rand_state));
781: # else
782: # if !@HAVE_RANDOM_R@
783: _GL_FUNCDECL_SYS (setstate_r, int,
784: (char *arg_state, struct random_data *rand_state)
785: _GL_ARG_NONNULL ((1, 2)));
786: # endif
787: _GL_CXXALIAS_SYS (setstate_r, int,
788: (char *arg_state, struct random_data *rand_state));
789: # endif
790: _GL_CXXALIASWARN (setstate_r);
791: #elif defined GNULIB_POSIXCHECK
792: # undef setstate_r
793: # if HAVE_RAW_DECL_SETSTATE_R
794: _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
795: "use gnulib module random_r for portability");
796: # endif
797: #endif
798:
799:
800: #if @GNULIB_REALLOC_POSIX@
801: # if @REPLACE_REALLOC@
802: # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
803: || _GL_USE_STDLIB_ALLOC)
804: # undef realloc
805: # define realloc rpl_realloc
806: # endif
807: _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size));
808: _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
809: # else
810: _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
811: # endif
812: _GL_CXXALIASWARN (realloc);
813: #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
814: # undef realloc
815: /* Assume realloc is always declared. */
816: _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
817: "use gnulib module realloc-posix for portability");
818: #endif
819:
820:
821: #if @GNULIB_REALLOCARRAY@
822: # if ! @HAVE_REALLOCARRAY@
823: _GL_FUNCDECL_SYS (reallocarray, void *,
824: (void *ptr, size_t nmemb, size_t size));
825: # endif
826: _GL_CXXALIAS_SYS (reallocarray, void *,
827: (void *ptr, size_t nmemb, size_t size));
828: _GL_CXXALIASWARN (reallocarray);
829: #elif defined GNULIB_POSIXCHECK
830: # undef reallocarray
831: # if HAVE_RAW_DECL_REALLOCARRAY
832: _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - "
833: "use gnulib module reallocarray for portability");
834: # endif
835: #endif
836:
837: #if @GNULIB_REALPATH@
838: # if @REPLACE_REALPATH@
839: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
840: # define realpath rpl_realpath
841: # endif
842: _GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved)
843: _GL_ARG_NONNULL ((1)));
844: _GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved));
845: # else
846: # if !@HAVE_REALPATH@
847: _GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved)
848: _GL_ARG_NONNULL ((1)));
849: # endif
850: _GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved));
851: # endif
852: _GL_CXXALIASWARN (realpath);
853: #elif defined GNULIB_POSIXCHECK
854: # undef realpath
855: # if HAVE_RAW_DECL_REALPATH
856: _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module "
857: "canonicalize or canonicalize-lgpl for portability");
858: # endif
859: #endif
860:
861: #if @GNULIB_RPMATCH@
862: /* Test a user response to a question.
863: Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */
864: # if !@HAVE_RPMATCH@
865: _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1)));
866: # endif
867: _GL_CXXALIAS_SYS (rpmatch, int, (const char *response));
868: _GL_CXXALIASWARN (rpmatch);
869: #elif defined GNULIB_POSIXCHECK
870: # undef rpmatch
871: # if HAVE_RAW_DECL_RPMATCH
872: _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
873: "use gnulib module rpmatch for portability");
874: # endif
875: #endif
876:
877: #if @GNULIB_SECURE_GETENV@
878: /* Look up NAME in the environment, returning 0 in insecure situations. */
879: # if !@HAVE_SECURE_GETENV@
880: _GL_FUNCDECL_SYS (secure_getenv, char *,
881: (char const *name) _GL_ARG_NONNULL ((1)));
882: # endif
883: _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name));
884: _GL_CXXALIASWARN (secure_getenv);
885: #elif defined GNULIB_POSIXCHECK
886: # undef secure_getenv
887: # if HAVE_RAW_DECL_SECURE_GETENV
888: _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - "
889: "use gnulib module secure_getenv for portability");
890: # endif
891: #endif
892:
893: #if @GNULIB_SETENV@
894: /* Set NAME to VALUE in the environment.
895: If REPLACE is nonzero, overwrite an existing value. */
896: # if @REPLACE_SETENV@
897: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
898: # undef setenv
899: # define setenv rpl_setenv
900: # endif
901: _GL_FUNCDECL_RPL (setenv, int,
902: (const char *name, const char *value, int replace)
903: _GL_ARG_NONNULL ((1)));
904: _GL_CXXALIAS_RPL (setenv, int,
905: (const char *name, const char *value, int replace));
906: # else
907: # if !@HAVE_DECL_SETENV@
908: _GL_FUNCDECL_SYS (setenv, int,
909: (const char *name, const char *value, int replace)
910: _GL_ARG_NONNULL ((1)));
911: # endif
912: _GL_CXXALIAS_SYS (setenv, int,
913: (const char *name, const char *value, int replace));
914: # endif
915: # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@)
916: _GL_CXXALIASWARN (setenv);
917: # endif
918: #elif defined GNULIB_POSIXCHECK
919: # undef setenv
920: # if HAVE_RAW_DECL_SETENV
921: _GL_WARN_ON_USE (setenv, "setenv is unportable - "
922: "use gnulib module setenv for portability");
923: # endif
924: #endif
925:
926: #if @GNULIB_STRTOD@
927: /* Parse a double from STRING, updating ENDP if appropriate. */
928: # if @REPLACE_STRTOD@
929: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
930: # define strtod rpl_strtod
931: # endif
932: # define GNULIB_defined_strtod_function 1
933: _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp)
934: _GL_ARG_NONNULL ((1)));
935: _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp));
936: # else
937: # if !@HAVE_STRTOD@
938: _GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp)
939: _GL_ARG_NONNULL ((1)));
940: # endif
941: _GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp));
942: # endif
943: _GL_CXXALIASWARN (strtod);
944: #elif defined GNULIB_POSIXCHECK
945: # undef strtod
946: # if HAVE_RAW_DECL_STRTOD
947: _GL_WARN_ON_USE (strtod, "strtod is unportable - "
948: "use gnulib module strtod for portability");
949: # endif
950: #endif
951:
952: #if @GNULIB_STRTOLD@
953: /* Parse a 'long double' from STRING, updating ENDP if appropriate. */
954: # if @REPLACE_STRTOLD@
955: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
956: # define strtold rpl_strtold
957: # endif
958: # define GNULIB_defined_strtold_function 1
959: _GL_FUNCDECL_RPL (strtold, long double, (const char *str, char **endp)
960: _GL_ARG_NONNULL ((1)));
961: _GL_CXXALIAS_RPL (strtold, long double, (const char *str, char **endp));
962: # else
963: # if !@HAVE_STRTOLD@
964: _GL_FUNCDECL_SYS (strtold, long double, (const char *str, char **endp)
965: _GL_ARG_NONNULL ((1)));
966: # endif
967: _GL_CXXALIAS_SYS (strtold, long double, (const char *str, char **endp));
968: # endif
969: _GL_CXXALIASWARN (strtold);
970: #elif defined GNULIB_POSIXCHECK
971: # undef strtold
972: # if HAVE_RAW_DECL_STRTOLD
973: _GL_WARN_ON_USE (strtold, "strtold is unportable - "
974: "use gnulib module strtold for portability");
975: # endif
976: #endif
977:
978: #if @GNULIB_STRTOLL@
979: /* Parse a signed integer whose textual representation starts at STRING.
980: The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
981: it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
982: "0x").
983: If ENDPTR is not NULL, the address of the first byte after the integer is
984: stored in *ENDPTR.
985: Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
986: to ERANGE. */
987: # if !@HAVE_STRTOLL@
988: _GL_FUNCDECL_SYS (strtoll, long long,
989: (const char *string, char **endptr, int base)
990: _GL_ARG_NONNULL ((1)));
991: # endif
992: _GL_CXXALIAS_SYS (strtoll, long long,
993: (const char *string, char **endptr, int base));
994: _GL_CXXALIASWARN (strtoll);
995: #elif defined GNULIB_POSIXCHECK
996: # undef strtoll
997: # if HAVE_RAW_DECL_STRTOLL
998: _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
999: "use gnulib module strtoll for portability");
1000: # endif
1001: #endif
1002:
1003: #if @GNULIB_STRTOULL@
1004: /* Parse an unsigned integer whose textual representation starts at STRING.
1005: The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
1006: it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
1007: "0x").
1008: If ENDPTR is not NULL, the address of the first byte after the integer is
1009: stored in *ENDPTR.
1010: Upon overflow, the return value is ULLONG_MAX, and errno is set to
1011: ERANGE. */
1012: # if !@HAVE_STRTOULL@
1013: _GL_FUNCDECL_SYS (strtoull, unsigned long long,
1014: (const char *string, char **endptr, int base)
1015: _GL_ARG_NONNULL ((1)));
1016: # endif
1017: _GL_CXXALIAS_SYS (strtoull, unsigned long long,
1018: (const char *string, char **endptr, int base));
1019: _GL_CXXALIASWARN (strtoull);
1020: #elif defined GNULIB_POSIXCHECK
1021: # undef strtoull
1022: # if HAVE_RAW_DECL_STRTOULL
1023: _GL_WARN_ON_USE (strtoull, "strtoull is unportable - "
1024: "use gnulib module strtoull for portability");
1025: # endif
1026: #endif
1027:
1028: #if @GNULIB_UNLOCKPT@
1029: /* Unlock the slave side of the pseudo-terminal whose master side is specified
1030: by FD, so that it can be opened. */
1031: # if !@HAVE_UNLOCKPT@
1032: _GL_FUNCDECL_SYS (unlockpt, int, (int fd));
1033: # endif
1034: _GL_CXXALIAS_SYS (unlockpt, int, (int fd));
1035: _GL_CXXALIASWARN (unlockpt);
1036: #elif defined GNULIB_POSIXCHECK
1037: # undef unlockpt
1038: # if HAVE_RAW_DECL_UNLOCKPT
1039: _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
1040: "use gnulib module unlockpt for portability");
1041: # endif
1042: #endif
1043:
1044: #if @GNULIB_UNSETENV@
1045: /* Remove the variable NAME from the environment. */
1046: # if @REPLACE_UNSETENV@
1047: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1048: # undef unsetenv
1049: # define unsetenv rpl_unsetenv
1050: # endif
1051: _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
1052: _GL_CXXALIAS_RPL (unsetenv, int, (const char *name));
1053: # else
1054: # if !@HAVE_DECL_UNSETENV@
1055: _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
1056: # endif
1057: _GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
1058: # endif
1059: # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@)
1060: _GL_CXXALIASWARN (unsetenv);
1061: # endif
1062: #elif defined GNULIB_POSIXCHECK
1063: # undef unsetenv
1064: # if HAVE_RAW_DECL_UNSETENV
1065: _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - "
1066: "use gnulib module unsetenv for portability");
1067: # endif
1068: #endif
1069:
1070: /* Convert a wide character to a multibyte character. */
1071: #if @GNULIB_WCTOMB@
1072: # if @REPLACE_WCTOMB@
1073: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1074: # undef wctomb
1075: # define wctomb rpl_wctomb
1076: # endif
1077: _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc));
1078: _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc));
1079: # else
1080: _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc));
1081: # endif
1082: _GL_CXXALIASWARN (wctomb);
1083: #endif
1084:
1085:
1086: #endif /* _@GUARD_PREFIX@_STDLIB_H */
1087: #endif /* _@GUARD_PREFIX@_STDLIB_H */
1088: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>