~ubuntu-branches/ubuntu/natty/diffutils/natty

« back to all changes in this revision

Viewing changes to lib/stdlib.in.h

  • Committer: Bazaar Package Importer
  • Author(s): Santiago Vila
  • Date: 2010-05-04 20:38:00 UTC
  • mfrom: (2.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100504203800-f67xd9rsa9xl9qqj
Tags: 1:3.0-1
New upstream release.

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