~p-ch-e/gnuhello/gnuhello

« back to all changes in this revision

Viewing changes to gnulib/lib/stdlib.in.h

  • Committer: Reuben Thomas
  • Date: 2011-12-17 11:23:38 UTC
  • Revision ID: rrt@sc3d.org-20111217112338-kurwdy8nu69g3t6f
Update gnulib and convert .cvsignore to .bzrignore.

        * gnulib: Update.
        * .bzrignore: Add.
        * .cvsignore: Remove.
        * contrib/.cvsignore: Likewise.
        * doc/.cvsignore: Likewise.
        * man/.cvsignore: Likewise.
        * po/.cvsignore: Likewise.
        * src/.cvsignore: Likewise.
        * tests/.cvsignore: Likewise.
        * build/mkinstalldirs: Remove: no longer needed.
        * po: Update.

Show diffs side-by-side

added added

removed removed

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