xref: /Universal-ctags/gnulib/stdlib.in.h (revision 820c1a8d46849a90376d8eb15b319ac05439f656)
1*820c1a8dSHiroo HAYASHI /* A GNU-like <stdlib.h>.
2*820c1a8dSHiroo HAYASHI 
3*820c1a8dSHiroo HAYASHI    Copyright (C) 1995, 2001-2004, 2006-2021 Free Software Foundation, Inc.
4*820c1a8dSHiroo HAYASHI 
5*820c1a8dSHiroo HAYASHI    This file is free software: you can redistribute it and/or modify
6*820c1a8dSHiroo HAYASHI    it under the terms of the GNU Lesser General Public License as
7*820c1a8dSHiroo HAYASHI    published by the Free Software Foundation; either version 2.1 of the
8*820c1a8dSHiroo HAYASHI    License, or (at your option) any later version.
9*820c1a8dSHiroo HAYASHI 
10*820c1a8dSHiroo HAYASHI    This file is distributed in the hope that it will be useful,
11*820c1a8dSHiroo HAYASHI    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*820c1a8dSHiroo HAYASHI    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*820c1a8dSHiroo HAYASHI    GNU Lesser General Public License for more details.
14*820c1a8dSHiroo HAYASHI 
15*820c1a8dSHiroo HAYASHI    You should have received a copy of the GNU Lesser General Public License
16*820c1a8dSHiroo HAYASHI    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
17*820c1a8dSHiroo HAYASHI 
18*820c1a8dSHiroo HAYASHI #if __GNUC__ >= 3
19*820c1a8dSHiroo HAYASHI @PRAGMA_SYSTEM_HEADER@
20*820c1a8dSHiroo HAYASHI #endif
21*820c1a8dSHiroo HAYASHI @PRAGMA_COLUMNS@
22*820c1a8dSHiroo HAYASHI 
23*820c1a8dSHiroo HAYASHI #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc
24*820c1a8dSHiroo HAYASHI /* Special invocation conventions inside some gnulib header files,
25*820c1a8dSHiroo HAYASHI    and inside some glibc header files, respectively.  */
26*820c1a8dSHiroo HAYASHI 
27*820c1a8dSHiroo HAYASHI #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
28*820c1a8dSHiroo HAYASHI 
29*820c1a8dSHiroo HAYASHI #else
30*820c1a8dSHiroo HAYASHI /* Normal invocation convention.  */
31*820c1a8dSHiroo HAYASHI 
32*820c1a8dSHiroo HAYASHI #ifndef _@GUARD_PREFIX@_STDLIB_H
33*820c1a8dSHiroo HAYASHI 
34*820c1a8dSHiroo HAYASHI /* The include_next requires a split double-inclusion guard.  */
35*820c1a8dSHiroo HAYASHI #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
36*820c1a8dSHiroo HAYASHI 
37*820c1a8dSHiroo HAYASHI #ifndef _@GUARD_PREFIX@_STDLIB_H
38*820c1a8dSHiroo HAYASHI #define _@GUARD_PREFIX@_STDLIB_H
39*820c1a8dSHiroo HAYASHI 
40*820c1a8dSHiroo HAYASHI /* NetBSD 5.0 mis-defines NULL.  */
41*820c1a8dSHiroo HAYASHI #include <stddef.h>
42*820c1a8dSHiroo HAYASHI 
43*820c1a8dSHiroo HAYASHI /* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>.  */
44*820c1a8dSHiroo HAYASHI #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS
45*820c1a8dSHiroo HAYASHI # include <sys/wait.h>
46*820c1a8dSHiroo HAYASHI #endif
47*820c1a8dSHiroo HAYASHI 
48*820c1a8dSHiroo HAYASHI /* Solaris declares getloadavg() in <sys/loadavg.h>.  */
49*820c1a8dSHiroo HAYASHI #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@
50*820c1a8dSHiroo HAYASHI /* OpenIndiana has a bug: <sys/time.h> must be included before
51*820c1a8dSHiroo HAYASHI    <sys/loadavg.h>.  */
52*820c1a8dSHiroo HAYASHI # include <sys/time.h>
53*820c1a8dSHiroo HAYASHI # include <sys/loadavg.h>
54*820c1a8dSHiroo HAYASHI #endif
55*820c1a8dSHiroo HAYASHI 
56*820c1a8dSHiroo HAYASHI /* Native Windows platforms declare _mktemp() in <io.h>.  */
57*820c1a8dSHiroo HAYASHI #if defined _WIN32 && !defined __CYGWIN__
58*820c1a8dSHiroo HAYASHI # include <io.h>
59*820c1a8dSHiroo HAYASHI #endif
60*820c1a8dSHiroo HAYASHI 
61*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM_R@
62*820c1a8dSHiroo HAYASHI 
63*820c1a8dSHiroo HAYASHI /* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
64*820c1a8dSHiroo HAYASHI    from <stdlib.h> if _REENTRANT is defined.  Include it whenever we need
65*820c1a8dSHiroo HAYASHI    'struct random_data'.  */
66*820c1a8dSHiroo HAYASHI # if @HAVE_RANDOM_H@
67*820c1a8dSHiroo HAYASHI #  include <random.h>
68*820c1a8dSHiroo HAYASHI # endif
69*820c1a8dSHiroo HAYASHI 
70*820c1a8dSHiroo HAYASHI # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@
71*820c1a8dSHiroo HAYASHI #  include <stdint.h>
72*820c1a8dSHiroo HAYASHI # endif
73*820c1a8dSHiroo HAYASHI 
74*820c1a8dSHiroo HAYASHI # if !@HAVE_STRUCT_RANDOM_DATA@
75*820c1a8dSHiroo HAYASHI /* Define 'struct random_data'.
76*820c1a8dSHiroo HAYASHI    But allow multiple gnulib generated <stdlib.h> replacements to coexist.  */
77*820c1a8dSHiroo HAYASHI #  if !GNULIB_defined_struct_random_data
78*820c1a8dSHiroo HAYASHI struct random_data
79*820c1a8dSHiroo HAYASHI {
80*820c1a8dSHiroo HAYASHI   int32_t *fptr;                /* Front pointer.  */
81*820c1a8dSHiroo HAYASHI   int32_t *rptr;                /* Rear pointer.  */
82*820c1a8dSHiroo HAYASHI   int32_t *state;               /* Array of state values.  */
83*820c1a8dSHiroo HAYASHI   int rand_type;                /* Type of random number generator.  */
84*820c1a8dSHiroo HAYASHI   int rand_deg;                 /* Degree of random number generator.  */
85*820c1a8dSHiroo HAYASHI   int rand_sep;                 /* Distance between front and rear.  */
86*820c1a8dSHiroo HAYASHI   int32_t *end_ptr;             /* Pointer behind state table.  */
87*820c1a8dSHiroo HAYASHI };
88*820c1a8dSHiroo HAYASHI #   define GNULIB_defined_struct_random_data 1
89*820c1a8dSHiroo HAYASHI #  endif
90*820c1a8dSHiroo HAYASHI # endif
91*820c1a8dSHiroo HAYASHI #endif
92*820c1a8dSHiroo HAYASHI 
93*820c1a8dSHiroo HAYASHI #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__)
94*820c1a8dSHiroo HAYASHI /* On Mac OS X 10.3, only <unistd.h> declares mkstemp.  */
95*820c1a8dSHiroo HAYASHI /* On Mac OS X 10.5, only <unistd.h> declares mkstemps.  */
96*820c1a8dSHiroo HAYASHI /* On Mac OS X 10.13, only <unistd.h> declares mkostemp and mkostemps.  */
97*820c1a8dSHiroo HAYASHI /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt.  */
98*820c1a8dSHiroo HAYASHI /* But avoid namespace pollution on glibc systems and native Windows.  */
99*820c1a8dSHiroo HAYASHI # include <unistd.h>
100*820c1a8dSHiroo HAYASHI #endif
101*820c1a8dSHiroo HAYASHI 
102*820c1a8dSHiroo HAYASHI /* The __attribute__ feature is available in gcc versions 2.5 and later.
103*820c1a8dSHiroo HAYASHI    The attribute __pure__ was added in gcc 2.96.  */
104*820c1a8dSHiroo HAYASHI #ifndef _GL_ATTRIBUTE_PURE
105*820c1a8dSHiroo HAYASHI # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__
106*820c1a8dSHiroo HAYASHI #  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
107*820c1a8dSHiroo HAYASHI # else
108*820c1a8dSHiroo HAYASHI #  define _GL_ATTRIBUTE_PURE /* empty */
109*820c1a8dSHiroo HAYASHI # endif
110*820c1a8dSHiroo HAYASHI #endif
111*820c1a8dSHiroo HAYASHI 
112*820c1a8dSHiroo HAYASHI /* The definition of _Noreturn is copied here.  */
113*820c1a8dSHiroo HAYASHI 
114*820c1a8dSHiroo HAYASHI /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
115*820c1a8dSHiroo HAYASHI 
116*820c1a8dSHiroo HAYASHI /* The definition of _GL_ARG_NONNULL is copied here.  */
117*820c1a8dSHiroo HAYASHI 
118*820c1a8dSHiroo HAYASHI /* The definition of _GL_WARN_ON_USE is copied here.  */
119*820c1a8dSHiroo HAYASHI 
120*820c1a8dSHiroo HAYASHI 
121*820c1a8dSHiroo HAYASHI /* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
122*820c1a8dSHiroo HAYASHI #ifndef EXIT_SUCCESS
123*820c1a8dSHiroo HAYASHI # define EXIT_SUCCESS 0
124*820c1a8dSHiroo HAYASHI #endif
125*820c1a8dSHiroo HAYASHI /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
126*820c1a8dSHiroo HAYASHI    with proper operation of xargs.  */
127*820c1a8dSHiroo HAYASHI #ifndef EXIT_FAILURE
128*820c1a8dSHiroo HAYASHI # define EXIT_FAILURE 1
129*820c1a8dSHiroo HAYASHI #elif EXIT_FAILURE != 1
130*820c1a8dSHiroo HAYASHI # undef EXIT_FAILURE
131*820c1a8dSHiroo HAYASHI # define EXIT_FAILURE 1
132*820c1a8dSHiroo HAYASHI #endif
133*820c1a8dSHiroo HAYASHI 
134*820c1a8dSHiroo HAYASHI 
135*820c1a8dSHiroo HAYASHI #if @GNULIB__EXIT@
136*820c1a8dSHiroo HAYASHI /* Terminate the current process with the given return code, without running
137*820c1a8dSHiroo HAYASHI    the 'atexit' handlers.  */
138*820c1a8dSHiroo HAYASHI # if !@HAVE__EXIT@
139*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
140*820c1a8dSHiroo HAYASHI # endif
141*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (_Exit, void, (int status));
142*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (_Exit);
143*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
144*820c1a8dSHiroo HAYASHI # undef _Exit
145*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL__EXIT
146*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
147*820c1a8dSHiroo HAYASHI                  "use gnulib module _Exit for portability");
148*820c1a8dSHiroo HAYASHI # endif
149*820c1a8dSHiroo HAYASHI #endif
150*820c1a8dSHiroo HAYASHI 
151*820c1a8dSHiroo HAYASHI 
152*820c1a8dSHiroo HAYASHI /* Allocate memory with indefinite extent and specified alignment.  */
153*820c1a8dSHiroo HAYASHI #if @GNULIB_ALIGNED_ALLOC@
154*820c1a8dSHiroo HAYASHI # if @REPLACE_ALIGNED_ALLOC@
155*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
156*820c1a8dSHiroo HAYASHI #   undef aligned_alloc
157*820c1a8dSHiroo HAYASHI #   define aligned_alloc rpl_aligned_alloc
158*820c1a8dSHiroo HAYASHI #  endif
159*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
160*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
161*820c1a8dSHiroo HAYASHI # else
162*820c1a8dSHiroo HAYASHI #  if @HAVE_ALIGNED_ALLOC@
163*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size));
164*820c1a8dSHiroo HAYASHI #  endif
165*820c1a8dSHiroo HAYASHI # endif
166*820c1a8dSHiroo HAYASHI # if @HAVE_ALIGNED_ALLOC@
167*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (aligned_alloc);
168*820c1a8dSHiroo HAYASHI # endif
169*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
170*820c1a8dSHiroo HAYASHI # undef aligned_alloc
171*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_ALIGNED_ALLOC
172*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - "
173*820c1a8dSHiroo HAYASHI                  "use gnulib module aligned_alloc for portability");
174*820c1a8dSHiroo HAYASHI # endif
175*820c1a8dSHiroo HAYASHI #endif
176*820c1a8dSHiroo HAYASHI 
177*820c1a8dSHiroo HAYASHI #if @GNULIB_ATOLL@
178*820c1a8dSHiroo HAYASHI /* Parse a signed decimal integer.
179*820c1a8dSHiroo HAYASHI    Returns the value of the integer.  Errors are not detected.  */
180*820c1a8dSHiroo HAYASHI # if !@HAVE_ATOLL@
181*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (atoll, long long, (const char *string)
182*820c1a8dSHiroo HAYASHI                                     _GL_ATTRIBUTE_PURE
183*820c1a8dSHiroo HAYASHI                                     _GL_ARG_NONNULL ((1)));
184*820c1a8dSHiroo HAYASHI # endif
185*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (atoll, long long, (const char *string));
186*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (atoll);
187*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
188*820c1a8dSHiroo HAYASHI # undef atoll
189*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_ATOLL
190*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (atoll, "atoll is unportable - "
191*820c1a8dSHiroo HAYASHI                  "use gnulib module atoll for portability");
192*820c1a8dSHiroo HAYASHI # endif
193*820c1a8dSHiroo HAYASHI #endif
194*820c1a8dSHiroo HAYASHI 
195*820c1a8dSHiroo HAYASHI #if @GNULIB_CALLOC_POSIX@
196*820c1a8dSHiroo HAYASHI # if @REPLACE_CALLOC@
197*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
198*820c1a8dSHiroo HAYASHI #   undef calloc
199*820c1a8dSHiroo HAYASHI #   define calloc rpl_calloc
200*820c1a8dSHiroo HAYASHI #  endif
201*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size));
202*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size));
203*820c1a8dSHiroo HAYASHI # else
204*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size));
205*820c1a8dSHiroo HAYASHI # endif
206*820c1a8dSHiroo HAYASHI # if __GLIBC__ >= 2
207*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (calloc);
208*820c1a8dSHiroo HAYASHI # endif
209*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
210*820c1a8dSHiroo HAYASHI # undef calloc
211*820c1a8dSHiroo HAYASHI /* Assume calloc is always declared.  */
212*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
213*820c1a8dSHiroo HAYASHI                  "use gnulib module calloc-posix for portability");
214*820c1a8dSHiroo HAYASHI #endif
215*820c1a8dSHiroo HAYASHI 
216*820c1a8dSHiroo HAYASHI #if @GNULIB_CANONICALIZE_FILE_NAME@
217*820c1a8dSHiroo HAYASHI # if @REPLACE_CANONICALIZE_FILE_NAME@
218*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
219*820c1a8dSHiroo HAYASHI #   define canonicalize_file_name rpl_canonicalize_file_name
220*820c1a8dSHiroo HAYASHI #  endif
221*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name)
222*820c1a8dSHiroo HAYASHI                                                   _GL_ARG_NONNULL ((1)));
223*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name));
224*820c1a8dSHiroo HAYASHI # else
225*820c1a8dSHiroo HAYASHI #  if !@HAVE_CANONICALIZE_FILE_NAME@
226*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name)
227*820c1a8dSHiroo HAYASHI                                                   _GL_ARG_NONNULL ((1)));
228*820c1a8dSHiroo HAYASHI #  endif
229*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
230*820c1a8dSHiroo HAYASHI # endif
231*820c1a8dSHiroo HAYASHI # ifndef GNULIB_defined_canonicalize_file_name
232*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_canonicalize_file_name \
233*820c1a8dSHiroo HAYASHI      (!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@)
234*820c1a8dSHiroo HAYASHI # endif
235*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (canonicalize_file_name);
236*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
237*820c1a8dSHiroo HAYASHI # undef canonicalize_file_name
238*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
239*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (canonicalize_file_name,
240*820c1a8dSHiroo HAYASHI                  "canonicalize_file_name is unportable - "
241*820c1a8dSHiroo HAYASHI                  "use gnulib module canonicalize-lgpl for portability");
242*820c1a8dSHiroo HAYASHI # endif
243*820c1a8dSHiroo HAYASHI #endif
244*820c1a8dSHiroo HAYASHI 
245*820c1a8dSHiroo HAYASHI #if @GNULIB_MDA_ECVT@
246*820c1a8dSHiroo HAYASHI /* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not
247*820c1a8dSHiroo HAYASHI    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
248*820c1a8dSHiroo HAYASHI    platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have
249*820c1a8dSHiroo HAYASHI    it.  */
250*820c1a8dSHiroo HAYASHI # if defined _WIN32 && !defined __CYGWIN__
251*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
252*820c1a8dSHiroo HAYASHI #   undef ecvt
253*820c1a8dSHiroo HAYASHI #   define ecvt _ecvt
254*820c1a8dSHiroo HAYASHI #  endif
255*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_MDA (ecvt, char *,
256*820c1a8dSHiroo HAYASHI                   (double number, int ndigits, int *decptp, int *signp));
257*820c1a8dSHiroo HAYASHI # else
258*820c1a8dSHiroo HAYASHI #  if @HAVE_DECL_ECVT@
259*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (ecvt, char *,
260*820c1a8dSHiroo HAYASHI                   (double number, int ndigits, int *decptp, int *signp));
261*820c1a8dSHiroo HAYASHI #  endif
262*820c1a8dSHiroo HAYASHI # endif
263*820c1a8dSHiroo HAYASHI # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_ECVT@
264*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (ecvt);
265*820c1a8dSHiroo HAYASHI # endif
266*820c1a8dSHiroo HAYASHI #endif
267*820c1a8dSHiroo HAYASHI 
268*820c1a8dSHiroo HAYASHI #if @GNULIB_MDA_FCVT@
269*820c1a8dSHiroo HAYASHI /* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not
270*820c1a8dSHiroo HAYASHI    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
271*820c1a8dSHiroo HAYASHI    platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have
272*820c1a8dSHiroo HAYASHI    it.  */
273*820c1a8dSHiroo HAYASHI # if defined _WIN32 && !defined __CYGWIN__
274*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
275*820c1a8dSHiroo HAYASHI #   undef fcvt
276*820c1a8dSHiroo HAYASHI #   define fcvt _fcvt
277*820c1a8dSHiroo HAYASHI #  endif
278*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_MDA (fcvt, char *,
279*820c1a8dSHiroo HAYASHI                   (double number, int ndigits, int *decptp, int *signp));
280*820c1a8dSHiroo HAYASHI # else
281*820c1a8dSHiroo HAYASHI #  if @HAVE_DECL_FCVT@
282*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (fcvt, char *,
283*820c1a8dSHiroo HAYASHI                   (double number, int ndigits, int *decptp, int *signp));
284*820c1a8dSHiroo HAYASHI #  endif
285*820c1a8dSHiroo HAYASHI # endif
286*820c1a8dSHiroo HAYASHI # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCVT@
287*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (fcvt);
288*820c1a8dSHiroo HAYASHI # endif
289*820c1a8dSHiroo HAYASHI #endif
290*820c1a8dSHiroo HAYASHI 
291*820c1a8dSHiroo HAYASHI #if @GNULIB_FREE_POSIX@
292*820c1a8dSHiroo HAYASHI # if @REPLACE_FREE@
293*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
294*820c1a8dSHiroo HAYASHI #   undef free
295*820c1a8dSHiroo HAYASHI #   define free rpl_free
296*820c1a8dSHiroo HAYASHI #  endif
297*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (free, void, (void *ptr));
298*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (free, void, (void *ptr));
299*820c1a8dSHiroo HAYASHI # else
300*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (free, void, (void *ptr));
301*820c1a8dSHiroo HAYASHI # endif
302*820c1a8dSHiroo HAYASHI # if __GLIBC__ >= 2
303*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (free);
304*820c1a8dSHiroo HAYASHI # endif
305*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
306*820c1a8dSHiroo HAYASHI # undef free
307*820c1a8dSHiroo HAYASHI /* Assume free is always declared.  */
308*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
309*820c1a8dSHiroo HAYASHI                  "use gnulib module free for portability");
310*820c1a8dSHiroo HAYASHI #endif
311*820c1a8dSHiroo HAYASHI 
312*820c1a8dSHiroo HAYASHI #if @GNULIB_MDA_GCVT@
313*820c1a8dSHiroo HAYASHI /* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not
314*820c1a8dSHiroo HAYASHI    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
315*820c1a8dSHiroo HAYASHI    platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have
316*820c1a8dSHiroo HAYASHI    it.  */
317*820c1a8dSHiroo HAYASHI # if defined _WIN32 && !defined __CYGWIN__
318*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
319*820c1a8dSHiroo HAYASHI #   undef gcvt
320*820c1a8dSHiroo HAYASHI #   define gcvt _gcvt
321*820c1a8dSHiroo HAYASHI #  endif
322*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf));
323*820c1a8dSHiroo HAYASHI # else
324*820c1a8dSHiroo HAYASHI #  if @HAVE_DECL_GCVT@
325*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf));
326*820c1a8dSHiroo HAYASHI #  endif
327*820c1a8dSHiroo HAYASHI # endif
328*820c1a8dSHiroo HAYASHI # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_GCVT@
329*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (gcvt);
330*820c1a8dSHiroo HAYASHI # endif
331*820c1a8dSHiroo HAYASHI #endif
332*820c1a8dSHiroo HAYASHI 
333*820c1a8dSHiroo HAYASHI #if @GNULIB_GETLOADAVG@
334*820c1a8dSHiroo HAYASHI /* Store max(NELEM,3) load average numbers in LOADAVG[].
335*820c1a8dSHiroo HAYASHI    The three numbers are the load average of the last 1 minute, the last 5
336*820c1a8dSHiroo HAYASHI    minutes, and the last 15 minutes, respectively.
337*820c1a8dSHiroo HAYASHI    LOADAVG is an array of NELEM numbers.  */
338*820c1a8dSHiroo HAYASHI # if !@HAVE_DECL_GETLOADAVG@
339*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem)
340*820c1a8dSHiroo HAYASHI                                    _GL_ARG_NONNULL ((1)));
341*820c1a8dSHiroo HAYASHI # endif
342*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
343*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (getloadavg);
344*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
345*820c1a8dSHiroo HAYASHI # undef getloadavg
346*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_GETLOADAVG
347*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
348*820c1a8dSHiroo HAYASHI                  "use gnulib module getloadavg for portability");
349*820c1a8dSHiroo HAYASHI # endif
350*820c1a8dSHiroo HAYASHI #endif
351*820c1a8dSHiroo HAYASHI 
352*820c1a8dSHiroo HAYASHI #if @GNULIB_GETSUBOPT@
353*820c1a8dSHiroo HAYASHI /* Assuming *OPTIONP is a comma separated list of elements of the form
354*820c1a8dSHiroo HAYASHI    "token" or "token=value", getsubopt parses the first of these elements.
355*820c1a8dSHiroo HAYASHI    If the first element refers to a "token" that is member of the given
356*820c1a8dSHiroo HAYASHI    NULL-terminated array of tokens:
357*820c1a8dSHiroo HAYASHI      - It replaces the comma with a NUL byte, updates *OPTIONP to point past
358*820c1a8dSHiroo HAYASHI        the first option and the comma, sets *VALUEP to the value of the
359*820c1a8dSHiroo HAYASHI        element (or NULL if it doesn't contain an "=" sign),
360*820c1a8dSHiroo HAYASHI      - It returns the index of the "token" in the given array of tokens.
361*820c1a8dSHiroo HAYASHI    Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
362*820c1a8dSHiroo HAYASHI    For more details see the POSIX specification.
363*820c1a8dSHiroo HAYASHI    https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */
364*820c1a8dSHiroo HAYASHI # if !@HAVE_GETSUBOPT@
365*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (getsubopt, int,
366*820c1a8dSHiroo HAYASHI                   (char **optionp, char *const *tokens, char **valuep)
367*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1, 2, 3)));
368*820c1a8dSHiroo HAYASHI # endif
369*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (getsubopt, int,
370*820c1a8dSHiroo HAYASHI                   (char **optionp, char *const *tokens, char **valuep));
371*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (getsubopt);
372*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
373*820c1a8dSHiroo HAYASHI # undef getsubopt
374*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_GETSUBOPT
375*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - "
376*820c1a8dSHiroo HAYASHI                  "use gnulib module getsubopt for portability");
377*820c1a8dSHiroo HAYASHI # endif
378*820c1a8dSHiroo HAYASHI #endif
379*820c1a8dSHiroo HAYASHI 
380*820c1a8dSHiroo HAYASHI #if @GNULIB_GRANTPT@
381*820c1a8dSHiroo HAYASHI /* Change the ownership and access permission of the slave side of the
382*820c1a8dSHiroo HAYASHI    pseudo-terminal whose master side is specified by FD.  */
383*820c1a8dSHiroo HAYASHI # if !@HAVE_GRANTPT@
384*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (grantpt, int, (int fd));
385*820c1a8dSHiroo HAYASHI # endif
386*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (grantpt, int, (int fd));
387*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (grantpt);
388*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
389*820c1a8dSHiroo HAYASHI # undef grantpt
390*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_GRANTPT
391*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
392*820c1a8dSHiroo HAYASHI                  "use gnulib module grantpt for portability");
393*820c1a8dSHiroo HAYASHI # endif
394*820c1a8dSHiroo HAYASHI #endif
395*820c1a8dSHiroo HAYASHI 
396*820c1a8dSHiroo HAYASHI /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not
397*820c1a8dSHiroo HAYASHI    rely on GNU or POSIX semantics for malloc and realloc (for example,
398*820c1a8dSHiroo HAYASHI    by never specifying a zero size), so it does not need malloc or
399*820c1a8dSHiroo HAYASHI    realloc to be redefined.  */
400*820c1a8dSHiroo HAYASHI #if @GNULIB_MALLOC_POSIX@
401*820c1a8dSHiroo HAYASHI # if @REPLACE_MALLOC@
402*820c1a8dSHiroo HAYASHI #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
403*820c1a8dSHiroo HAYASHI         || _GL_USE_STDLIB_ALLOC)
404*820c1a8dSHiroo HAYASHI #   undef malloc
405*820c1a8dSHiroo HAYASHI #   define malloc rpl_malloc
406*820c1a8dSHiroo HAYASHI #  endif
407*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (malloc, void *, (size_t size));
408*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (malloc, void *, (size_t size));
409*820c1a8dSHiroo HAYASHI # else
410*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (malloc, void *, (size_t size));
411*820c1a8dSHiroo HAYASHI # endif
412*820c1a8dSHiroo HAYASHI # if __GLIBC__ >= 2
413*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (malloc);
414*820c1a8dSHiroo HAYASHI # endif
415*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
416*820c1a8dSHiroo HAYASHI # undef malloc
417*820c1a8dSHiroo HAYASHI /* Assume malloc is always declared.  */
418*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
419*820c1a8dSHiroo HAYASHI                  "use gnulib module malloc-posix for portability");
420*820c1a8dSHiroo HAYASHI #endif
421*820c1a8dSHiroo HAYASHI 
422*820c1a8dSHiroo HAYASHI /* Convert a multibyte character to a wide character.  */
423*820c1a8dSHiroo HAYASHI #if @GNULIB_MBTOWC@
424*820c1a8dSHiroo HAYASHI # if @REPLACE_MBTOWC@
425*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
426*820c1a8dSHiroo HAYASHI #   undef mbtowc
427*820c1a8dSHiroo HAYASHI #   define mbtowc rpl_mbtowc
428*820c1a8dSHiroo HAYASHI #  endif
429*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (mbtowc, int,
430*820c1a8dSHiroo HAYASHI                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
431*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (mbtowc, int,
432*820c1a8dSHiroo HAYASHI                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
433*820c1a8dSHiroo HAYASHI # else
434*820c1a8dSHiroo HAYASHI #  if !@HAVE_MBTOWC@
435*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (mbtowc, int,
436*820c1a8dSHiroo HAYASHI                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
437*820c1a8dSHiroo HAYASHI #  endif
438*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (mbtowc, int,
439*820c1a8dSHiroo HAYASHI                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
440*820c1a8dSHiroo HAYASHI # endif
441*820c1a8dSHiroo HAYASHI # if __GLIBC__ >= 2
442*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (mbtowc);
443*820c1a8dSHiroo HAYASHI # endif
444*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
445*820c1a8dSHiroo HAYASHI # undef mbtowc
446*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_MBTOWC
447*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - "
448*820c1a8dSHiroo HAYASHI                  "use gnulib module mbtowc for portability");
449*820c1a8dSHiroo HAYASHI # endif
450*820c1a8dSHiroo HAYASHI #endif
451*820c1a8dSHiroo HAYASHI 
452*820c1a8dSHiroo HAYASHI #if @GNULIB_MKDTEMP@
453*820c1a8dSHiroo HAYASHI /* Create a unique temporary directory from TEMPLATE.
454*820c1a8dSHiroo HAYASHI    The last six characters of TEMPLATE must be "XXXXXX";
455*820c1a8dSHiroo HAYASHI    they are replaced with a string that makes the directory name unique.
456*820c1a8dSHiroo HAYASHI    Returns TEMPLATE, or a null pointer if it cannot get a unique name.
457*820c1a8dSHiroo HAYASHI    The directory is created mode 700.  */
458*820c1a8dSHiroo HAYASHI # if !@HAVE_MKDTEMP@
459*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1)));
460*820c1a8dSHiroo HAYASHI # endif
461*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/));
462*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (mkdtemp);
463*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
464*820c1a8dSHiroo HAYASHI # undef mkdtemp
465*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_MKDTEMP
466*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
467*820c1a8dSHiroo HAYASHI                  "use gnulib module mkdtemp for portability");
468*820c1a8dSHiroo HAYASHI # endif
469*820c1a8dSHiroo HAYASHI #endif
470*820c1a8dSHiroo HAYASHI 
471*820c1a8dSHiroo HAYASHI #if @GNULIB_MKOSTEMP@
472*820c1a8dSHiroo HAYASHI /* Create a unique temporary file from TEMPLATE.
473*820c1a8dSHiroo HAYASHI    The last six characters of TEMPLATE must be "XXXXXX";
474*820c1a8dSHiroo HAYASHI    they are replaced with a string that makes the file name unique.
475*820c1a8dSHiroo HAYASHI    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
476*820c1a8dSHiroo HAYASHI    and O_TEXT, O_BINARY (defined in "binary-io.h").
477*820c1a8dSHiroo HAYASHI    The file is then created, with the specified flags, ensuring it didn't exist
478*820c1a8dSHiroo HAYASHI    before.
479*820c1a8dSHiroo HAYASHI    The file is created read-write (mask at least 0600 & ~umask), but it may be
480*820c1a8dSHiroo HAYASHI    world-readable and world-writable (mask 0666 & ~umask), depending on the
481*820c1a8dSHiroo HAYASHI    implementation.
482*820c1a8dSHiroo HAYASHI    Returns the open file descriptor if successful, otherwise -1 and errno
483*820c1a8dSHiroo HAYASHI    set.  */
484*820c1a8dSHiroo HAYASHI # if !@HAVE_MKOSTEMP@
485*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)
486*820c1a8dSHiroo HAYASHI                                  _GL_ARG_NONNULL ((1)));
487*820c1a8dSHiroo HAYASHI # endif
488*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
489*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (mkostemp);
490*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
491*820c1a8dSHiroo HAYASHI # undef mkostemp
492*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_MKOSTEMP
493*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
494*820c1a8dSHiroo HAYASHI                  "use gnulib module mkostemp for portability");
495*820c1a8dSHiroo HAYASHI # endif
496*820c1a8dSHiroo HAYASHI #endif
497*820c1a8dSHiroo HAYASHI 
498*820c1a8dSHiroo HAYASHI #if @GNULIB_MKOSTEMPS@
499*820c1a8dSHiroo HAYASHI /* Create a unique temporary file from TEMPLATE.
500*820c1a8dSHiroo HAYASHI    The last six characters of TEMPLATE before a suffix of length
501*820c1a8dSHiroo HAYASHI    SUFFIXLEN must be "XXXXXX";
502*820c1a8dSHiroo HAYASHI    they are replaced with a string that makes the file name unique.
503*820c1a8dSHiroo HAYASHI    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
504*820c1a8dSHiroo HAYASHI    and O_TEXT, O_BINARY (defined in "binary-io.h").
505*820c1a8dSHiroo HAYASHI    The file is then created, with the specified flags, ensuring it didn't exist
506*820c1a8dSHiroo HAYASHI    before.
507*820c1a8dSHiroo HAYASHI    The file is created read-write (mask at least 0600 & ~umask), but it may be
508*820c1a8dSHiroo HAYASHI    world-readable and world-writable (mask 0666 & ~umask), depending on the
509*820c1a8dSHiroo HAYASHI    implementation.
510*820c1a8dSHiroo HAYASHI    Returns the open file descriptor if successful, otherwise -1 and errno
511*820c1a8dSHiroo HAYASHI    set.  */
512*820c1a8dSHiroo HAYASHI # if !@HAVE_MKOSTEMPS@
513*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (mkostemps, int,
514*820c1a8dSHiroo HAYASHI                   (char * /*template*/, int /*suffixlen*/, int /*flags*/)
515*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
516*820c1a8dSHiroo HAYASHI # endif
517*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (mkostemps, int,
518*820c1a8dSHiroo HAYASHI                   (char * /*template*/, int /*suffixlen*/, int /*flags*/));
519*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (mkostemps);
520*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
521*820c1a8dSHiroo HAYASHI # undef mkostemps
522*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_MKOSTEMPS
523*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - "
524*820c1a8dSHiroo HAYASHI                  "use gnulib module mkostemps for portability");
525*820c1a8dSHiroo HAYASHI # endif
526*820c1a8dSHiroo HAYASHI #endif
527*820c1a8dSHiroo HAYASHI 
528*820c1a8dSHiroo HAYASHI #if @GNULIB_MKSTEMP@
529*820c1a8dSHiroo HAYASHI /* Create a unique temporary file from TEMPLATE.
530*820c1a8dSHiroo HAYASHI    The last six characters of TEMPLATE must be "XXXXXX";
531*820c1a8dSHiroo HAYASHI    they are replaced with a string that makes the file name unique.
532*820c1a8dSHiroo HAYASHI    The file is then created, ensuring it didn't exist before.
533*820c1a8dSHiroo HAYASHI    The file is created read-write (mask at least 0600 & ~umask), but it may be
534*820c1a8dSHiroo HAYASHI    world-readable and world-writable (mask 0666 & ~umask), depending on the
535*820c1a8dSHiroo HAYASHI    implementation.
536*820c1a8dSHiroo HAYASHI    Returns the open file descriptor if successful, otherwise -1 and errno
537*820c1a8dSHiroo HAYASHI    set.  */
538*820c1a8dSHiroo HAYASHI # if @REPLACE_MKSTEMP@
539*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
540*820c1a8dSHiroo HAYASHI #   define mkstemp rpl_mkstemp
541*820c1a8dSHiroo HAYASHI #  endif
542*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
543*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/));
544*820c1a8dSHiroo HAYASHI # else
545*820c1a8dSHiroo HAYASHI #  if ! @HAVE_MKSTEMP@
546*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
547*820c1a8dSHiroo HAYASHI #  endif
548*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/));
549*820c1a8dSHiroo HAYASHI # endif
550*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (mkstemp);
551*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
552*820c1a8dSHiroo HAYASHI # undef mkstemp
553*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_MKSTEMP
554*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - "
555*820c1a8dSHiroo HAYASHI                  "use gnulib module mkstemp for portability");
556*820c1a8dSHiroo HAYASHI # endif
557*820c1a8dSHiroo HAYASHI #endif
558*820c1a8dSHiroo HAYASHI 
559*820c1a8dSHiroo HAYASHI #if @GNULIB_MKSTEMPS@
560*820c1a8dSHiroo HAYASHI /* Create a unique temporary file from TEMPLATE.
561*820c1a8dSHiroo HAYASHI    The last six characters of TEMPLATE prior to a suffix of length
562*820c1a8dSHiroo HAYASHI    SUFFIXLEN must be "XXXXXX";
563*820c1a8dSHiroo HAYASHI    they are replaced with a string that makes the file name unique.
564*820c1a8dSHiroo HAYASHI    The file is then created, ensuring it didn't exist before.
565*820c1a8dSHiroo HAYASHI    The file is created read-write (mask at least 0600 & ~umask), but it may be
566*820c1a8dSHiroo HAYASHI    world-readable and world-writable (mask 0666 & ~umask), depending on the
567*820c1a8dSHiroo HAYASHI    implementation.
568*820c1a8dSHiroo HAYASHI    Returns the open file descriptor if successful, otherwise -1 and errno
569*820c1a8dSHiroo HAYASHI    set.  */
570*820c1a8dSHiroo HAYASHI # if !@HAVE_MKSTEMPS@
571*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)
572*820c1a8dSHiroo HAYASHI                                  _GL_ARG_NONNULL ((1)));
573*820c1a8dSHiroo HAYASHI # endif
574*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/));
575*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (mkstemps);
576*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
577*820c1a8dSHiroo HAYASHI # undef mkstemps
578*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_MKSTEMPS
579*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
580*820c1a8dSHiroo HAYASHI                  "use gnulib module mkstemps for portability");
581*820c1a8dSHiroo HAYASHI # endif
582*820c1a8dSHiroo HAYASHI #endif
583*820c1a8dSHiroo HAYASHI 
584*820c1a8dSHiroo HAYASHI #if @GNULIB_MDA_MKTEMP@
585*820c1a8dSHiroo HAYASHI /* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not
586*820c1a8dSHiroo HAYASHI    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
587*820c1a8dSHiroo HAYASHI    platforms by defining GNULIB_NAMESPACE::mktemp always.  */
588*820c1a8dSHiroo HAYASHI # if defined _WIN32 && !defined __CYGWIN__
589*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
590*820c1a8dSHiroo HAYASHI #   undef mktemp
591*820c1a8dSHiroo HAYASHI #   define mktemp _mktemp
592*820c1a8dSHiroo HAYASHI #  endif
593*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/));
594*820c1a8dSHiroo HAYASHI # else
595*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/));
596*820c1a8dSHiroo HAYASHI # endif
597*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (mktemp);
598*820c1a8dSHiroo HAYASHI #endif
599*820c1a8dSHiroo HAYASHI 
600*820c1a8dSHiroo HAYASHI /* Allocate memory with indefinite extent and specified alignment.  */
601*820c1a8dSHiroo HAYASHI #if @GNULIB_POSIX_MEMALIGN@
602*820c1a8dSHiroo HAYASHI # if @REPLACE_POSIX_MEMALIGN@
603*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
604*820c1a8dSHiroo HAYASHI #   undef posix_memalign
605*820c1a8dSHiroo HAYASHI #   define posix_memalign rpl_posix_memalign
606*820c1a8dSHiroo HAYASHI #  endif
607*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (posix_memalign, int,
608*820c1a8dSHiroo HAYASHI                   (void **memptr, size_t alignment, size_t size)
609*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
610*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (posix_memalign, int,
611*820c1a8dSHiroo HAYASHI                   (void **memptr, size_t alignment, size_t size));
612*820c1a8dSHiroo HAYASHI # else
613*820c1a8dSHiroo HAYASHI #  if @HAVE_POSIX_MEMALIGN@
614*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (posix_memalign, int,
615*820c1a8dSHiroo HAYASHI                   (void **memptr, size_t alignment, size_t size));
616*820c1a8dSHiroo HAYASHI #  endif
617*820c1a8dSHiroo HAYASHI # endif
618*820c1a8dSHiroo HAYASHI # if @HAVE_POSIX_MEMALIGN@
619*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (posix_memalign);
620*820c1a8dSHiroo HAYASHI # endif
621*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
622*820c1a8dSHiroo HAYASHI # undef posix_memalign
623*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_POSIX_MEMALIGN
624*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - "
625*820c1a8dSHiroo HAYASHI                  "use gnulib module posix_memalign for portability");
626*820c1a8dSHiroo HAYASHI # endif
627*820c1a8dSHiroo HAYASHI #endif
628*820c1a8dSHiroo HAYASHI 
629*820c1a8dSHiroo HAYASHI #if @GNULIB_POSIX_OPENPT@
630*820c1a8dSHiroo HAYASHI /* Return an FD open to the master side of a pseudo-terminal.  Flags should
631*820c1a8dSHiroo HAYASHI    include O_RDWR, and may also include O_NOCTTY.  */
632*820c1a8dSHiroo HAYASHI # if !@HAVE_POSIX_OPENPT@
633*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
634*820c1a8dSHiroo HAYASHI # endif
635*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
636*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (posix_openpt);
637*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
638*820c1a8dSHiroo HAYASHI # undef posix_openpt
639*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_POSIX_OPENPT
640*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
641*820c1a8dSHiroo HAYASHI                  "use gnulib module posix_openpt for portability");
642*820c1a8dSHiroo HAYASHI # endif
643*820c1a8dSHiroo HAYASHI #endif
644*820c1a8dSHiroo HAYASHI 
645*820c1a8dSHiroo HAYASHI #if @GNULIB_PTSNAME@
646*820c1a8dSHiroo HAYASHI /* Return the pathname of the pseudo-terminal slave associated with
647*820c1a8dSHiroo HAYASHI    the master FD is open on, or NULL on errors.  */
648*820c1a8dSHiroo HAYASHI # if @REPLACE_PTSNAME@
649*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
650*820c1a8dSHiroo HAYASHI #   undef ptsname
651*820c1a8dSHiroo HAYASHI #   define ptsname rpl_ptsname
652*820c1a8dSHiroo HAYASHI #  endif
653*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (ptsname, char *, (int fd));
654*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (ptsname, char *, (int fd));
655*820c1a8dSHiroo HAYASHI # else
656*820c1a8dSHiroo HAYASHI #  if !@HAVE_PTSNAME@
657*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (ptsname, char *, (int fd));
658*820c1a8dSHiroo HAYASHI #  endif
659*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
660*820c1a8dSHiroo HAYASHI # endif
661*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (ptsname);
662*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
663*820c1a8dSHiroo HAYASHI # undef ptsname
664*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_PTSNAME
665*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
666*820c1a8dSHiroo HAYASHI                  "use gnulib module ptsname for portability");
667*820c1a8dSHiroo HAYASHI # endif
668*820c1a8dSHiroo HAYASHI #endif
669*820c1a8dSHiroo HAYASHI 
670*820c1a8dSHiroo HAYASHI #if @GNULIB_PTSNAME_R@
671*820c1a8dSHiroo HAYASHI /* Set the pathname of the pseudo-terminal slave associated with
672*820c1a8dSHiroo HAYASHI    the master FD is open on and return 0, or set errno and return
673*820c1a8dSHiroo HAYASHI    non-zero on errors.  */
674*820c1a8dSHiroo HAYASHI # if @REPLACE_PTSNAME_R@
675*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
676*820c1a8dSHiroo HAYASHI #   undef ptsname_r
677*820c1a8dSHiroo HAYASHI #   define ptsname_r rpl_ptsname_r
678*820c1a8dSHiroo HAYASHI #  endif
679*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
680*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
681*820c1a8dSHiroo HAYASHI # else
682*820c1a8dSHiroo HAYASHI #  if !@HAVE_PTSNAME_R@
683*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
684*820c1a8dSHiroo HAYASHI #  endif
685*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
686*820c1a8dSHiroo HAYASHI # endif
687*820c1a8dSHiroo HAYASHI # ifndef GNULIB_defined_ptsname_r
688*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_ptsname_r (!@HAVE_PTSNAME_R@ || @REPLACE_PTSNAME_R@)
689*820c1a8dSHiroo HAYASHI # endif
690*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (ptsname_r);
691*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
692*820c1a8dSHiroo HAYASHI # undef ptsname_r
693*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_PTSNAME_R
694*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - "
695*820c1a8dSHiroo HAYASHI                  "use gnulib module ptsname_r for portability");
696*820c1a8dSHiroo HAYASHI # endif
697*820c1a8dSHiroo HAYASHI #endif
698*820c1a8dSHiroo HAYASHI 
699*820c1a8dSHiroo HAYASHI #if @GNULIB_PUTENV@
700*820c1a8dSHiroo HAYASHI # if @REPLACE_PUTENV@
701*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
702*820c1a8dSHiroo HAYASHI #   undef putenv
703*820c1a8dSHiroo HAYASHI #   define putenv rpl_putenv
704*820c1a8dSHiroo HAYASHI #  endif
705*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1)));
706*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (putenv, int, (char *string));
707*820c1a8dSHiroo HAYASHI # elif defined _WIN32 && !defined __CYGWIN__
708*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
709*820c1a8dSHiroo HAYASHI #   undef putenv
710*820c1a8dSHiroo HAYASHI #   define putenv _putenv
711*820c1a8dSHiroo HAYASHI #  endif
712*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_MDA (putenv, int, (char *string));
713*820c1a8dSHiroo HAYASHI # else
714*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (putenv, int, (char *string));
715*820c1a8dSHiroo HAYASHI # endif
716*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (putenv);
717*820c1a8dSHiroo HAYASHI #elif @GNULIB_MDA_PUTENV@
718*820c1a8dSHiroo HAYASHI /* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not
719*820c1a8dSHiroo HAYASHI    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
720*820c1a8dSHiroo HAYASHI    platforms by defining GNULIB_NAMESPACE::putenv always.  */
721*820c1a8dSHiroo HAYASHI # if defined _WIN32 && !defined __CYGWIN__
722*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
723*820c1a8dSHiroo HAYASHI #   undef putenv
724*820c1a8dSHiroo HAYASHI #   define putenv _putenv
725*820c1a8dSHiroo HAYASHI #  endif
726*820c1a8dSHiroo HAYASHI /* Need to cast, because on mingw, the parameter is either
727*820c1a8dSHiroo HAYASHI    'const char *string' or 'char *string'.  */
728*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_MDA_CAST (putenv, int, (char *string));
729*820c1a8dSHiroo HAYASHI # else
730*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (putenv, int, (char *string));
731*820c1a8dSHiroo HAYASHI # endif
732*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (putenv);
733*820c1a8dSHiroo HAYASHI #endif
734*820c1a8dSHiroo HAYASHI 
735*820c1a8dSHiroo HAYASHI #if @GNULIB_QSORT_R@
736*820c1a8dSHiroo HAYASHI /* Sort an array of NMEMB elements, starting at address BASE, each element
737*820c1a8dSHiroo HAYASHI    occupying SIZE bytes, in ascending order according to the comparison
738*820c1a8dSHiroo HAYASHI    function COMPARE.  */
739*820c1a8dSHiroo HAYASHI # if @REPLACE_QSORT_R@
740*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
741*820c1a8dSHiroo HAYASHI #   undef qsort_r
742*820c1a8dSHiroo HAYASHI #   define qsort_r rpl_qsort_r
743*820c1a8dSHiroo HAYASHI #  endif
744*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
745*820c1a8dSHiroo HAYASHI                                   int (*compare) (void const *, void const *,
746*820c1a8dSHiroo HAYASHI                                                   void *),
747*820c1a8dSHiroo HAYASHI                                   void *arg) _GL_ARG_NONNULL ((1, 4)));
748*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
749*820c1a8dSHiroo HAYASHI                                   int (*compare) (void const *, void const *,
750*820c1a8dSHiroo HAYASHI                                                   void *),
751*820c1a8dSHiroo HAYASHI                                   void *arg));
752*820c1a8dSHiroo HAYASHI # else
753*820c1a8dSHiroo HAYASHI #  if !@HAVE_QSORT_R@
754*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
755*820c1a8dSHiroo HAYASHI                                   int (*compare) (void const *, void const *,
756*820c1a8dSHiroo HAYASHI                                                   void *),
757*820c1a8dSHiroo HAYASHI                                   void *arg) _GL_ARG_NONNULL ((1, 4)));
758*820c1a8dSHiroo HAYASHI #  endif
759*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
760*820c1a8dSHiroo HAYASHI                                   int (*compare) (void const *, void const *,
761*820c1a8dSHiroo HAYASHI                                                   void *),
762*820c1a8dSHiroo HAYASHI                                   void *arg));
763*820c1a8dSHiroo HAYASHI # endif
764*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (qsort_r);
765*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
766*820c1a8dSHiroo HAYASHI # undef qsort_r
767*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_QSORT_R
768*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - "
769*820c1a8dSHiroo HAYASHI                  "use gnulib module qsort_r for portability");
770*820c1a8dSHiroo HAYASHI # endif
771*820c1a8dSHiroo HAYASHI #endif
772*820c1a8dSHiroo HAYASHI 
773*820c1a8dSHiroo HAYASHI 
774*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM_R@
775*820c1a8dSHiroo HAYASHI # if !@HAVE_RANDOM_R@
776*820c1a8dSHiroo HAYASHI #  ifndef RAND_MAX
777*820c1a8dSHiroo HAYASHI #   define RAND_MAX 2147483647
778*820c1a8dSHiroo HAYASHI #  endif
779*820c1a8dSHiroo HAYASHI # endif
780*820c1a8dSHiroo HAYASHI #endif
781*820c1a8dSHiroo HAYASHI 
782*820c1a8dSHiroo HAYASHI 
783*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM@
784*820c1a8dSHiroo HAYASHI # if @REPLACE_RANDOM@
785*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
786*820c1a8dSHiroo HAYASHI #   undef random
787*820c1a8dSHiroo HAYASHI #   define random rpl_random
788*820c1a8dSHiroo HAYASHI #  endif
789*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (random, long, (void));
790*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (random, long, (void));
791*820c1a8dSHiroo HAYASHI # else
792*820c1a8dSHiroo HAYASHI #  if !@HAVE_RANDOM@
793*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (random, long, (void));
794*820c1a8dSHiroo HAYASHI #  endif
795*820c1a8dSHiroo HAYASHI /* Need to cast, because on Haiku, the return type is
796*820c1a8dSHiroo HAYASHI                                int.  */
797*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS_CAST (random, long, (void));
798*820c1a8dSHiroo HAYASHI # endif
799*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (random);
800*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
801*820c1a8dSHiroo HAYASHI # undef random
802*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_RANDOM
803*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (random, "random is unportable - "
804*820c1a8dSHiroo HAYASHI                  "use gnulib module random for portability");
805*820c1a8dSHiroo HAYASHI # endif
806*820c1a8dSHiroo HAYASHI #endif
807*820c1a8dSHiroo HAYASHI 
808*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM@
809*820c1a8dSHiroo HAYASHI # if @REPLACE_RANDOM@
810*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
811*820c1a8dSHiroo HAYASHI #   undef srandom
812*820c1a8dSHiroo HAYASHI #   define srandom rpl_srandom
813*820c1a8dSHiroo HAYASHI #  endif
814*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (srandom, void, (unsigned int seed));
815*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (srandom, void, (unsigned int seed));
816*820c1a8dSHiroo HAYASHI # else
817*820c1a8dSHiroo HAYASHI #  if !@HAVE_RANDOM@
818*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
819*820c1a8dSHiroo HAYASHI #  endif
820*820c1a8dSHiroo HAYASHI /* Need to cast, because on FreeBSD, the first parameter is
821*820c1a8dSHiroo HAYASHI                                        unsigned long seed.  */
822*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed));
823*820c1a8dSHiroo HAYASHI # endif
824*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (srandom);
825*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
826*820c1a8dSHiroo HAYASHI # undef srandom
827*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_SRANDOM
828*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (srandom, "srandom is unportable - "
829*820c1a8dSHiroo HAYASHI                  "use gnulib module random for portability");
830*820c1a8dSHiroo HAYASHI # endif
831*820c1a8dSHiroo HAYASHI #endif
832*820c1a8dSHiroo HAYASHI 
833*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM@
834*820c1a8dSHiroo HAYASHI # if @REPLACE_INITSTATE@
835*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
836*820c1a8dSHiroo HAYASHI #   undef initstate
837*820c1a8dSHiroo HAYASHI #   define initstate rpl_initstate
838*820c1a8dSHiroo HAYASHI #  endif
839*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (initstate, char *,
840*820c1a8dSHiroo HAYASHI                   (unsigned int seed, char *buf, size_t buf_size)
841*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((2)));
842*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (initstate, char *,
843*820c1a8dSHiroo HAYASHI                   (unsigned int seed, char *buf, size_t buf_size));
844*820c1a8dSHiroo HAYASHI # else
845*820c1a8dSHiroo HAYASHI #  if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@
846*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (initstate, char *,
847*820c1a8dSHiroo HAYASHI                   (unsigned int seed, char *buf, size_t buf_size)
848*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((2)));
849*820c1a8dSHiroo HAYASHI #  endif
850*820c1a8dSHiroo HAYASHI /* Need to cast, because on FreeBSD, the first parameter is
851*820c1a8dSHiroo HAYASHI                         unsigned long seed.  */
852*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS_CAST (initstate, char *,
853*820c1a8dSHiroo HAYASHI                        (unsigned int seed, char *buf, size_t buf_size));
854*820c1a8dSHiroo HAYASHI # endif
855*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (initstate);
856*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
857*820c1a8dSHiroo HAYASHI # undef initstate
858*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_INITSTATE
859*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (initstate, "initstate is unportable - "
860*820c1a8dSHiroo HAYASHI                  "use gnulib module random for portability");
861*820c1a8dSHiroo HAYASHI # endif
862*820c1a8dSHiroo HAYASHI #endif
863*820c1a8dSHiroo HAYASHI 
864*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM@
865*820c1a8dSHiroo HAYASHI # if @REPLACE_SETSTATE@
866*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
867*820c1a8dSHiroo HAYASHI #   undef setstate
868*820c1a8dSHiroo HAYASHI #   define setstate rpl_setstate
869*820c1a8dSHiroo HAYASHI #  endif
870*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
871*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (setstate, char *, (char *arg_state));
872*820c1a8dSHiroo HAYASHI # else
873*820c1a8dSHiroo HAYASHI #  if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@
874*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
875*820c1a8dSHiroo HAYASHI #  endif
876*820c1a8dSHiroo HAYASHI /* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter
877*820c1a8dSHiroo HAYASHI    is                                     const char *arg_state.  */
878*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state));
879*820c1a8dSHiroo HAYASHI # endif
880*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (setstate);
881*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
882*820c1a8dSHiroo HAYASHI # undef setstate
883*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_SETSTATE
884*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (setstate, "setstate is unportable - "
885*820c1a8dSHiroo HAYASHI                  "use gnulib module random for portability");
886*820c1a8dSHiroo HAYASHI # endif
887*820c1a8dSHiroo HAYASHI #endif
888*820c1a8dSHiroo HAYASHI 
889*820c1a8dSHiroo HAYASHI 
890*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM_R@
891*820c1a8dSHiroo HAYASHI # if @REPLACE_RANDOM_R@
892*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
893*820c1a8dSHiroo HAYASHI #   undef random_r
894*820c1a8dSHiroo HAYASHI #   define random_r rpl_random_r
895*820c1a8dSHiroo HAYASHI #  endif
896*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result)
897*820c1a8dSHiroo HAYASHI                                  _GL_ARG_NONNULL ((1, 2)));
898*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result));
899*820c1a8dSHiroo HAYASHI # else
900*820c1a8dSHiroo HAYASHI #  if !@HAVE_RANDOM_R@
901*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result)
902*820c1a8dSHiroo HAYASHI                                  _GL_ARG_NONNULL ((1, 2)));
903*820c1a8dSHiroo HAYASHI #  endif
904*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result));
905*820c1a8dSHiroo HAYASHI # endif
906*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (random_r);
907*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
908*820c1a8dSHiroo HAYASHI # undef random_r
909*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_RANDOM_R
910*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (random_r, "random_r is unportable - "
911*820c1a8dSHiroo HAYASHI                  "use gnulib module random_r for portability");
912*820c1a8dSHiroo HAYASHI # endif
913*820c1a8dSHiroo HAYASHI #endif
914*820c1a8dSHiroo HAYASHI 
915*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM_R@
916*820c1a8dSHiroo HAYASHI # if @REPLACE_RANDOM_R@
917*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
918*820c1a8dSHiroo HAYASHI #   undef srandom_r
919*820c1a8dSHiroo HAYASHI #   define srandom_r rpl_srandom_r
920*820c1a8dSHiroo HAYASHI #  endif
921*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (srandom_r, int,
922*820c1a8dSHiroo HAYASHI                   (unsigned int seed, struct random_data *rand_state)
923*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((2)));
924*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (srandom_r, int,
925*820c1a8dSHiroo HAYASHI                   (unsigned int seed, struct random_data *rand_state));
926*820c1a8dSHiroo HAYASHI # else
927*820c1a8dSHiroo HAYASHI #  if !@HAVE_RANDOM_R@
928*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (srandom_r, int,
929*820c1a8dSHiroo HAYASHI                   (unsigned int seed, struct random_data *rand_state)
930*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((2)));
931*820c1a8dSHiroo HAYASHI #  endif
932*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (srandom_r, int,
933*820c1a8dSHiroo HAYASHI                   (unsigned int seed, struct random_data *rand_state));
934*820c1a8dSHiroo HAYASHI # endif
935*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (srandom_r);
936*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
937*820c1a8dSHiroo HAYASHI # undef srandom_r
938*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_SRANDOM_R
939*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
940*820c1a8dSHiroo HAYASHI                  "use gnulib module random_r for portability");
941*820c1a8dSHiroo HAYASHI # endif
942*820c1a8dSHiroo HAYASHI #endif
943*820c1a8dSHiroo HAYASHI 
944*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM_R@
945*820c1a8dSHiroo HAYASHI # if @REPLACE_RANDOM_R@
946*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
947*820c1a8dSHiroo HAYASHI #   undef initstate_r
948*820c1a8dSHiroo HAYASHI #   define initstate_r rpl_initstate_r
949*820c1a8dSHiroo HAYASHI #  endif
950*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (initstate_r, int,
951*820c1a8dSHiroo HAYASHI                   (unsigned int seed, char *buf, size_t buf_size,
952*820c1a8dSHiroo HAYASHI                    struct random_data *rand_state)
953*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((2, 4)));
954*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (initstate_r, int,
955*820c1a8dSHiroo HAYASHI                   (unsigned int seed, char *buf, size_t buf_size,
956*820c1a8dSHiroo HAYASHI                    struct random_data *rand_state));
957*820c1a8dSHiroo HAYASHI # else
958*820c1a8dSHiroo HAYASHI #  if !@HAVE_RANDOM_R@
959*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (initstate_r, int,
960*820c1a8dSHiroo HAYASHI                   (unsigned int seed, char *buf, size_t buf_size,
961*820c1a8dSHiroo HAYASHI                    struct random_data *rand_state)
962*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((2, 4)));
963*820c1a8dSHiroo HAYASHI #  endif
964*820c1a8dSHiroo HAYASHI /* Need to cast, because on Haiku, the third parameter is
965*820c1a8dSHiroo HAYASHI                                                      unsigned long buf_size.  */
966*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS_CAST (initstate_r, int,
967*820c1a8dSHiroo HAYASHI                        (unsigned int seed, char *buf, size_t buf_size,
968*820c1a8dSHiroo HAYASHI                         struct random_data *rand_state));
969*820c1a8dSHiroo HAYASHI # endif
970*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (initstate_r);
971*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
972*820c1a8dSHiroo HAYASHI # undef initstate_r
973*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_INITSTATE_R
974*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
975*820c1a8dSHiroo HAYASHI                  "use gnulib module random_r for portability");
976*820c1a8dSHiroo HAYASHI # endif
977*820c1a8dSHiroo HAYASHI #endif
978*820c1a8dSHiroo HAYASHI 
979*820c1a8dSHiroo HAYASHI #if @GNULIB_RANDOM_R@
980*820c1a8dSHiroo HAYASHI # if @REPLACE_RANDOM_R@
981*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
982*820c1a8dSHiroo HAYASHI #   undef setstate_r
983*820c1a8dSHiroo HAYASHI #   define setstate_r rpl_setstate_r
984*820c1a8dSHiroo HAYASHI #  endif
985*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (setstate_r, int,
986*820c1a8dSHiroo HAYASHI                   (char *arg_state, struct random_data *rand_state)
987*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1, 2)));
988*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (setstate_r, int,
989*820c1a8dSHiroo HAYASHI                   (char *arg_state, struct random_data *rand_state));
990*820c1a8dSHiroo HAYASHI # else
991*820c1a8dSHiroo HAYASHI #  if !@HAVE_RANDOM_R@
992*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (setstate_r, int,
993*820c1a8dSHiroo HAYASHI                   (char *arg_state, struct random_data *rand_state)
994*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1, 2)));
995*820c1a8dSHiroo HAYASHI #  endif
996*820c1a8dSHiroo HAYASHI /* Need to cast, because on Haiku, the first parameter is
997*820c1a8dSHiroo HAYASHI                         void *arg_state.  */
998*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS_CAST (setstate_r, int,
999*820c1a8dSHiroo HAYASHI                        (char *arg_state, struct random_data *rand_state));
1000*820c1a8dSHiroo HAYASHI # endif
1001*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (setstate_r);
1002*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1003*820c1a8dSHiroo HAYASHI # undef setstate_r
1004*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_SETSTATE_R
1005*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
1006*820c1a8dSHiroo HAYASHI                  "use gnulib module random_r for portability");
1007*820c1a8dSHiroo HAYASHI # endif
1008*820c1a8dSHiroo HAYASHI #endif
1009*820c1a8dSHiroo HAYASHI 
1010*820c1a8dSHiroo HAYASHI 
1011*820c1a8dSHiroo HAYASHI #if @GNULIB_REALLOC_POSIX@
1012*820c1a8dSHiroo HAYASHI # if @REPLACE_REALLOC@
1013*820c1a8dSHiroo HAYASHI #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
1014*820c1a8dSHiroo HAYASHI         || _GL_USE_STDLIB_ALLOC)
1015*820c1a8dSHiroo HAYASHI #   undef realloc
1016*820c1a8dSHiroo HAYASHI #   define realloc rpl_realloc
1017*820c1a8dSHiroo HAYASHI #  endif
1018*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size));
1019*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
1020*820c1a8dSHiroo HAYASHI # else
1021*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
1022*820c1a8dSHiroo HAYASHI # endif
1023*820c1a8dSHiroo HAYASHI # if __GLIBC__ >= 2
1024*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (realloc);
1025*820c1a8dSHiroo HAYASHI # endif
1026*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
1027*820c1a8dSHiroo HAYASHI # undef realloc
1028*820c1a8dSHiroo HAYASHI /* Assume realloc is always declared.  */
1029*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
1030*820c1a8dSHiroo HAYASHI                  "use gnulib module realloc-posix for portability");
1031*820c1a8dSHiroo HAYASHI #endif
1032*820c1a8dSHiroo HAYASHI 
1033*820c1a8dSHiroo HAYASHI 
1034*820c1a8dSHiroo HAYASHI #if @GNULIB_REALLOCARRAY@
1035*820c1a8dSHiroo HAYASHI # if @REPLACE_REALLOCARRAY@
1036*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1037*820c1a8dSHiroo HAYASHI #   undef reallocarray
1038*820c1a8dSHiroo HAYASHI #   define reallocarray rpl_reallocarray
1039*820c1a8dSHiroo HAYASHI #  endif
1040*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (reallocarray, void *,
1041*820c1a8dSHiroo HAYASHI                   (void *ptr, size_t nmemb, size_t size));
1042*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (reallocarray, void *,
1043*820c1a8dSHiroo HAYASHI                   (void *ptr, size_t nmemb, size_t size));
1044*820c1a8dSHiroo HAYASHI # else
1045*820c1a8dSHiroo HAYASHI #  if ! @HAVE_REALLOCARRAY@
1046*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (reallocarray, void *,
1047*820c1a8dSHiroo HAYASHI                   (void *ptr, size_t nmemb, size_t size));
1048*820c1a8dSHiroo HAYASHI #  endif
1049*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (reallocarray, void *,
1050*820c1a8dSHiroo HAYASHI                   (void *ptr, size_t nmemb, size_t size));
1051*820c1a8dSHiroo HAYASHI # endif
1052*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (reallocarray);
1053*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1054*820c1a8dSHiroo HAYASHI # undef reallocarray
1055*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_REALLOCARRAY
1056*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - "
1057*820c1a8dSHiroo HAYASHI                  "use gnulib module reallocarray for portability");
1058*820c1a8dSHiroo HAYASHI # endif
1059*820c1a8dSHiroo HAYASHI #endif
1060*820c1a8dSHiroo HAYASHI 
1061*820c1a8dSHiroo HAYASHI #if @GNULIB_REALPATH@
1062*820c1a8dSHiroo HAYASHI # if @REPLACE_REALPATH@
1063*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1064*820c1a8dSHiroo HAYASHI #   define realpath rpl_realpath
1065*820c1a8dSHiroo HAYASHI #  endif
1066*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (realpath, char *,
1067*820c1a8dSHiroo HAYASHI                   (const char *restrict name, char *restrict resolved)
1068*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1069*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (realpath, char *,
1070*820c1a8dSHiroo HAYASHI                   (const char *restrict name, char *restrict resolved));
1071*820c1a8dSHiroo HAYASHI # else
1072*820c1a8dSHiroo HAYASHI #  if !@HAVE_REALPATH@
1073*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (realpath, char *,
1074*820c1a8dSHiroo HAYASHI                   (const char *restrict name, char *restrict resolved)
1075*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1076*820c1a8dSHiroo HAYASHI #  endif
1077*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (realpath, char *,
1078*820c1a8dSHiroo HAYASHI                   (const char *restrict name, char *restrict resolved));
1079*820c1a8dSHiroo HAYASHI # endif
1080*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (realpath);
1081*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1082*820c1a8dSHiroo HAYASHI # undef realpath
1083*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_REALPATH
1084*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module "
1085*820c1a8dSHiroo HAYASHI                  "canonicalize or canonicalize-lgpl for portability");
1086*820c1a8dSHiroo HAYASHI # endif
1087*820c1a8dSHiroo HAYASHI #endif
1088*820c1a8dSHiroo HAYASHI 
1089*820c1a8dSHiroo HAYASHI #if @GNULIB_RPMATCH@
1090*820c1a8dSHiroo HAYASHI /* Test a user response to a question.
1091*820c1a8dSHiroo HAYASHI    Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear.  */
1092*820c1a8dSHiroo HAYASHI # if !@HAVE_RPMATCH@
1093*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1)));
1094*820c1a8dSHiroo HAYASHI # endif
1095*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (rpmatch, int, (const char *response));
1096*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (rpmatch);
1097*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1098*820c1a8dSHiroo HAYASHI # undef rpmatch
1099*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_RPMATCH
1100*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
1101*820c1a8dSHiroo HAYASHI                  "use gnulib module rpmatch for portability");
1102*820c1a8dSHiroo HAYASHI # endif
1103*820c1a8dSHiroo HAYASHI #endif
1104*820c1a8dSHiroo HAYASHI 
1105*820c1a8dSHiroo HAYASHI #if @GNULIB_SECURE_GETENV@
1106*820c1a8dSHiroo HAYASHI /* Look up NAME in the environment, returning 0 in insecure situations.  */
1107*820c1a8dSHiroo HAYASHI # if !@HAVE_SECURE_GETENV@
1108*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (secure_getenv, char *,
1109*820c1a8dSHiroo HAYASHI                   (char const *name) _GL_ARG_NONNULL ((1)));
1110*820c1a8dSHiroo HAYASHI # endif
1111*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name));
1112*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (secure_getenv);
1113*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1114*820c1a8dSHiroo HAYASHI # undef secure_getenv
1115*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_SECURE_GETENV
1116*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - "
1117*820c1a8dSHiroo HAYASHI                  "use gnulib module secure_getenv for portability");
1118*820c1a8dSHiroo HAYASHI # endif
1119*820c1a8dSHiroo HAYASHI #endif
1120*820c1a8dSHiroo HAYASHI 
1121*820c1a8dSHiroo HAYASHI #if @GNULIB_SETENV@
1122*820c1a8dSHiroo HAYASHI /* Set NAME to VALUE in the environment.
1123*820c1a8dSHiroo HAYASHI    If REPLACE is nonzero, overwrite an existing value.  */
1124*820c1a8dSHiroo HAYASHI # if @REPLACE_SETENV@
1125*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1126*820c1a8dSHiroo HAYASHI #   undef setenv
1127*820c1a8dSHiroo HAYASHI #   define setenv rpl_setenv
1128*820c1a8dSHiroo HAYASHI #  endif
1129*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (setenv, int,
1130*820c1a8dSHiroo HAYASHI                   (const char *name, const char *value, int replace)
1131*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1132*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (setenv, int,
1133*820c1a8dSHiroo HAYASHI                   (const char *name, const char *value, int replace));
1134*820c1a8dSHiroo HAYASHI # else
1135*820c1a8dSHiroo HAYASHI #  if !@HAVE_DECL_SETENV@
1136*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (setenv, int,
1137*820c1a8dSHiroo HAYASHI                   (const char *name, const char *value, int replace)
1138*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1139*820c1a8dSHiroo HAYASHI #  endif
1140*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (setenv, int,
1141*820c1a8dSHiroo HAYASHI                   (const char *name, const char *value, int replace));
1142*820c1a8dSHiroo HAYASHI # endif
1143*820c1a8dSHiroo HAYASHI # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@)
1144*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (setenv);
1145*820c1a8dSHiroo HAYASHI # endif
1146*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1147*820c1a8dSHiroo HAYASHI # undef setenv
1148*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_SETENV
1149*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (setenv, "setenv is unportable - "
1150*820c1a8dSHiroo HAYASHI                  "use gnulib module setenv for portability");
1151*820c1a8dSHiroo HAYASHI # endif
1152*820c1a8dSHiroo HAYASHI #endif
1153*820c1a8dSHiroo HAYASHI 
1154*820c1a8dSHiroo HAYASHI #if @GNULIB_STRTOD@
1155*820c1a8dSHiroo HAYASHI  /* Parse a double from STRING, updating ENDP if appropriate.  */
1156*820c1a8dSHiroo HAYASHI # if @REPLACE_STRTOD@
1157*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1158*820c1a8dSHiroo HAYASHI #   define strtod rpl_strtod
1159*820c1a8dSHiroo HAYASHI #  endif
1160*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_strtod_function 1
1161*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (strtod, double,
1162*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp)
1163*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1164*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (strtod, double,
1165*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp));
1166*820c1a8dSHiroo HAYASHI # else
1167*820c1a8dSHiroo HAYASHI #  if !@HAVE_STRTOD@
1168*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (strtod, double,
1169*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp)
1170*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1171*820c1a8dSHiroo HAYASHI #  endif
1172*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (strtod, double,
1173*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp));
1174*820c1a8dSHiroo HAYASHI # endif
1175*820c1a8dSHiroo HAYASHI # if __GLIBC__ >= 2
1176*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (strtod);
1177*820c1a8dSHiroo HAYASHI # endif
1178*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1179*820c1a8dSHiroo HAYASHI # undef strtod
1180*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_STRTOD
1181*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (strtod, "strtod is unportable - "
1182*820c1a8dSHiroo HAYASHI                  "use gnulib module strtod for portability");
1183*820c1a8dSHiroo HAYASHI # endif
1184*820c1a8dSHiroo HAYASHI #endif
1185*820c1a8dSHiroo HAYASHI 
1186*820c1a8dSHiroo HAYASHI #if @GNULIB_STRTOLD@
1187*820c1a8dSHiroo HAYASHI  /* Parse a 'long double' from STRING, updating ENDP if appropriate.  */
1188*820c1a8dSHiroo HAYASHI # if @REPLACE_STRTOLD@
1189*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1190*820c1a8dSHiroo HAYASHI #   define strtold rpl_strtold
1191*820c1a8dSHiroo HAYASHI #  endif
1192*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_strtold_function 1
1193*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (strtold, long double,
1194*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp)
1195*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1196*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (strtold, long double,
1197*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp));
1198*820c1a8dSHiroo HAYASHI # else
1199*820c1a8dSHiroo HAYASHI #  if !@HAVE_STRTOLD@
1200*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (strtold, long double,
1201*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp)
1202*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1203*820c1a8dSHiroo HAYASHI #  endif
1204*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (strtold, long double,
1205*820c1a8dSHiroo HAYASHI                   (const char *restrict str, char **restrict endp));
1206*820c1a8dSHiroo HAYASHI # endif
1207*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (strtold);
1208*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1209*820c1a8dSHiroo HAYASHI # undef strtold
1210*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_STRTOLD
1211*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (strtold, "strtold is unportable - "
1212*820c1a8dSHiroo HAYASHI                  "use gnulib module strtold for portability");
1213*820c1a8dSHiroo HAYASHI # endif
1214*820c1a8dSHiroo HAYASHI #endif
1215*820c1a8dSHiroo HAYASHI 
1216*820c1a8dSHiroo HAYASHI #if @GNULIB_STRTOL@
1217*820c1a8dSHiroo HAYASHI /* Parse a signed integer whose textual representation starts at STRING.
1218*820c1a8dSHiroo HAYASHI    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
1219*820c1a8dSHiroo HAYASHI    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
1220*820c1a8dSHiroo HAYASHI    "0x").
1221*820c1a8dSHiroo HAYASHI    If ENDPTR is not NULL, the address of the first byte after the integer is
1222*820c1a8dSHiroo HAYASHI    stored in *ENDPTR.
1223*820c1a8dSHiroo HAYASHI    Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set
1224*820c1a8dSHiroo HAYASHI    to ERANGE.  */
1225*820c1a8dSHiroo HAYASHI # if @REPLACE_STRTOL@
1226*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1227*820c1a8dSHiroo HAYASHI #   define strtol rpl_strtol
1228*820c1a8dSHiroo HAYASHI #  endif
1229*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_strtol_function 1
1230*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (strtol, long,
1231*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1232*820c1a8dSHiroo HAYASHI                    int base)
1233*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1234*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (strtol, long,
1235*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1236*820c1a8dSHiroo HAYASHI                    int base));
1237*820c1a8dSHiroo HAYASHI # else
1238*820c1a8dSHiroo HAYASHI #  if !@HAVE_STRTOL@
1239*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (strtol, long,
1240*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1241*820c1a8dSHiroo HAYASHI                    int base)
1242*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1243*820c1a8dSHiroo HAYASHI #  endif
1244*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (strtol, long,
1245*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1246*820c1a8dSHiroo HAYASHI                    int base));
1247*820c1a8dSHiroo HAYASHI # endif
1248*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (strtol);
1249*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1250*820c1a8dSHiroo HAYASHI # undef strtol
1251*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_STRTOL
1252*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (strtol, "strtol is unportable - "
1253*820c1a8dSHiroo HAYASHI                  "use gnulib module strtol for portability");
1254*820c1a8dSHiroo HAYASHI # endif
1255*820c1a8dSHiroo HAYASHI #endif
1256*820c1a8dSHiroo HAYASHI 
1257*820c1a8dSHiroo HAYASHI #if @GNULIB_STRTOLL@
1258*820c1a8dSHiroo HAYASHI /* Parse a signed integer whose textual representation starts at STRING.
1259*820c1a8dSHiroo HAYASHI    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
1260*820c1a8dSHiroo HAYASHI    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
1261*820c1a8dSHiroo HAYASHI    "0x").
1262*820c1a8dSHiroo HAYASHI    If ENDPTR is not NULL, the address of the first byte after the integer is
1263*820c1a8dSHiroo HAYASHI    stored in *ENDPTR.
1264*820c1a8dSHiroo HAYASHI    Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
1265*820c1a8dSHiroo HAYASHI    to ERANGE.  */
1266*820c1a8dSHiroo HAYASHI # if @REPLACE_STRTOLL@
1267*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1268*820c1a8dSHiroo HAYASHI #   define strtoll rpl_strtoll
1269*820c1a8dSHiroo HAYASHI #  endif
1270*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_strtoll_function 1
1271*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (strtoll, long long,
1272*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1273*820c1a8dSHiroo HAYASHI                    int base)
1274*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1275*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (strtoll, long long,
1276*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1277*820c1a8dSHiroo HAYASHI                    int base));
1278*820c1a8dSHiroo HAYASHI # else
1279*820c1a8dSHiroo HAYASHI #  if !@HAVE_STRTOLL@
1280*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (strtoll, long long,
1281*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1282*820c1a8dSHiroo HAYASHI                    int base)
1283*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1284*820c1a8dSHiroo HAYASHI #  endif
1285*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (strtoll, long long,
1286*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1287*820c1a8dSHiroo HAYASHI                    int base));
1288*820c1a8dSHiroo HAYASHI # endif
1289*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (strtoll);
1290*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1291*820c1a8dSHiroo HAYASHI # undef strtoll
1292*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_STRTOLL
1293*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
1294*820c1a8dSHiroo HAYASHI                  "use gnulib module strtoll for portability");
1295*820c1a8dSHiroo HAYASHI # endif
1296*820c1a8dSHiroo HAYASHI #endif
1297*820c1a8dSHiroo HAYASHI 
1298*820c1a8dSHiroo HAYASHI #if @GNULIB_STRTOUL@
1299*820c1a8dSHiroo HAYASHI /* Parse an unsigned integer whose textual representation starts at STRING.
1300*820c1a8dSHiroo HAYASHI    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
1301*820c1a8dSHiroo HAYASHI    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
1302*820c1a8dSHiroo HAYASHI    "0x").
1303*820c1a8dSHiroo HAYASHI    If ENDPTR is not NULL, the address of the first byte after the integer is
1304*820c1a8dSHiroo HAYASHI    stored in *ENDPTR.
1305*820c1a8dSHiroo HAYASHI    Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE.  */
1306*820c1a8dSHiroo HAYASHI # if @REPLACE_STRTOUL@
1307*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1308*820c1a8dSHiroo HAYASHI #   define strtoul rpl_strtoul
1309*820c1a8dSHiroo HAYASHI #  endif
1310*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_strtoul_function 1
1311*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (strtoul, unsigned long,
1312*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1313*820c1a8dSHiroo HAYASHI                    int base)
1314*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1315*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (strtoul, unsigned long,
1316*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1317*820c1a8dSHiroo HAYASHI                    int base));
1318*820c1a8dSHiroo HAYASHI # else
1319*820c1a8dSHiroo HAYASHI #  if !@HAVE_STRTOUL@
1320*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (strtoul, unsigned long,
1321*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1322*820c1a8dSHiroo HAYASHI                    int base)
1323*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1324*820c1a8dSHiroo HAYASHI #  endif
1325*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (strtoul, unsigned long,
1326*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1327*820c1a8dSHiroo HAYASHI                    int base));
1328*820c1a8dSHiroo HAYASHI # endif
1329*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (strtoul);
1330*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1331*820c1a8dSHiroo HAYASHI # undef strtoul
1332*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_STRTOUL
1333*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (strtoul, "strtoul is unportable - "
1334*820c1a8dSHiroo HAYASHI                  "use gnulib module strtoul for portability");
1335*820c1a8dSHiroo HAYASHI # endif
1336*820c1a8dSHiroo HAYASHI #endif
1337*820c1a8dSHiroo HAYASHI 
1338*820c1a8dSHiroo HAYASHI #if @GNULIB_STRTOULL@
1339*820c1a8dSHiroo HAYASHI /* Parse an unsigned integer whose textual representation starts at STRING.
1340*820c1a8dSHiroo HAYASHI    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
1341*820c1a8dSHiroo HAYASHI    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
1342*820c1a8dSHiroo HAYASHI    "0x").
1343*820c1a8dSHiroo HAYASHI    If ENDPTR is not NULL, the address of the first byte after the integer is
1344*820c1a8dSHiroo HAYASHI    stored in *ENDPTR.
1345*820c1a8dSHiroo HAYASHI    Upon overflow, the return value is ULLONG_MAX, and errno is set to
1346*820c1a8dSHiroo HAYASHI    ERANGE.  */
1347*820c1a8dSHiroo HAYASHI # if @REPLACE_STRTOULL@
1348*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1349*820c1a8dSHiroo HAYASHI #   define strtoull rpl_strtoull
1350*820c1a8dSHiroo HAYASHI #  endif
1351*820c1a8dSHiroo HAYASHI #  define GNULIB_defined_strtoull_function 1
1352*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (strtoull, unsigned long long,
1353*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1354*820c1a8dSHiroo HAYASHI                    int base)
1355*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1356*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (strtoull, unsigned long long,
1357*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1358*820c1a8dSHiroo HAYASHI                    int base));
1359*820c1a8dSHiroo HAYASHI # else
1360*820c1a8dSHiroo HAYASHI #  if !@HAVE_STRTOULL@
1361*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (strtoull, unsigned long long,
1362*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1363*820c1a8dSHiroo HAYASHI                    int base)
1364*820c1a8dSHiroo HAYASHI                   _GL_ARG_NONNULL ((1)));
1365*820c1a8dSHiroo HAYASHI #  endif
1366*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (strtoull, unsigned long long,
1367*820c1a8dSHiroo HAYASHI                   (const char *restrict string, char **restrict endptr,
1368*820c1a8dSHiroo HAYASHI                    int base));
1369*820c1a8dSHiroo HAYASHI # endif
1370*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (strtoull);
1371*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1372*820c1a8dSHiroo HAYASHI # undef strtoull
1373*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_STRTOULL
1374*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (strtoull, "strtoull is unportable - "
1375*820c1a8dSHiroo HAYASHI                  "use gnulib module strtoull for portability");
1376*820c1a8dSHiroo HAYASHI # endif
1377*820c1a8dSHiroo HAYASHI #endif
1378*820c1a8dSHiroo HAYASHI 
1379*820c1a8dSHiroo HAYASHI #if @GNULIB_UNLOCKPT@
1380*820c1a8dSHiroo HAYASHI /* Unlock the slave side of the pseudo-terminal whose master side is specified
1381*820c1a8dSHiroo HAYASHI    by FD, so that it can be opened.  */
1382*820c1a8dSHiroo HAYASHI # if !@HAVE_UNLOCKPT@
1383*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (unlockpt, int, (int fd));
1384*820c1a8dSHiroo HAYASHI # endif
1385*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (unlockpt, int, (int fd));
1386*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (unlockpt);
1387*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1388*820c1a8dSHiroo HAYASHI # undef unlockpt
1389*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_UNLOCKPT
1390*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
1391*820c1a8dSHiroo HAYASHI                  "use gnulib module unlockpt for portability");
1392*820c1a8dSHiroo HAYASHI # endif
1393*820c1a8dSHiroo HAYASHI #endif
1394*820c1a8dSHiroo HAYASHI 
1395*820c1a8dSHiroo HAYASHI #if @GNULIB_UNSETENV@
1396*820c1a8dSHiroo HAYASHI /* Remove the variable NAME from the environment.  */
1397*820c1a8dSHiroo HAYASHI # if @REPLACE_UNSETENV@
1398*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1399*820c1a8dSHiroo HAYASHI #   undef unsetenv
1400*820c1a8dSHiroo HAYASHI #   define unsetenv rpl_unsetenv
1401*820c1a8dSHiroo HAYASHI #  endif
1402*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
1403*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (unsetenv, int, (const char *name));
1404*820c1a8dSHiroo HAYASHI # else
1405*820c1a8dSHiroo HAYASHI #  if !@HAVE_DECL_UNSETENV@
1406*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
1407*820c1a8dSHiroo HAYASHI #  endif
1408*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
1409*820c1a8dSHiroo HAYASHI # endif
1410*820c1a8dSHiroo HAYASHI # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@)
1411*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (unsetenv);
1412*820c1a8dSHiroo HAYASHI # endif
1413*820c1a8dSHiroo HAYASHI #elif defined GNULIB_POSIXCHECK
1414*820c1a8dSHiroo HAYASHI # undef unsetenv
1415*820c1a8dSHiroo HAYASHI # if HAVE_RAW_DECL_UNSETENV
1416*820c1a8dSHiroo HAYASHI _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - "
1417*820c1a8dSHiroo HAYASHI                  "use gnulib module unsetenv for portability");
1418*820c1a8dSHiroo HAYASHI # endif
1419*820c1a8dSHiroo HAYASHI #endif
1420*820c1a8dSHiroo HAYASHI 
1421*820c1a8dSHiroo HAYASHI /* Convert a wide character to a multibyte character.  */
1422*820c1a8dSHiroo HAYASHI #if @GNULIB_WCTOMB@
1423*820c1a8dSHiroo HAYASHI # if @REPLACE_WCTOMB@
1424*820c1a8dSHiroo HAYASHI #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1425*820c1a8dSHiroo HAYASHI #   undef wctomb
1426*820c1a8dSHiroo HAYASHI #   define wctomb rpl_wctomb
1427*820c1a8dSHiroo HAYASHI #  endif
1428*820c1a8dSHiroo HAYASHI _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc));
1429*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc));
1430*820c1a8dSHiroo HAYASHI # else
1431*820c1a8dSHiroo HAYASHI _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc));
1432*820c1a8dSHiroo HAYASHI # endif
1433*820c1a8dSHiroo HAYASHI # if __GLIBC__ >= 2
1434*820c1a8dSHiroo HAYASHI _GL_CXXALIASWARN (wctomb);
1435*820c1a8dSHiroo HAYASHI # endif
1436*820c1a8dSHiroo HAYASHI #endif
1437*820c1a8dSHiroo HAYASHI 
1438*820c1a8dSHiroo HAYASHI 
1439*820c1a8dSHiroo HAYASHI #endif /* _@GUARD_PREFIX@_STDLIB_H */
1440*820c1a8dSHiroo HAYASHI #endif /* _@GUARD_PREFIX@_STDLIB_H */
1441*820c1a8dSHiroo HAYASHI #endif
1442