~ubuntu-branches/ubuntu/maverick/mpop/maverick

« back to all changes in this revision

Viewing changes to gnulib/stdlib.in.h

  • Committer: Bazaar Package Importer
  • Author(s): Emmanuel Bouthenot
  • Date: 2009-08-14 18:08:48 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20090814180848-f31eii74n1dnzimr
Tags: 1.0.17-1
* New upstream release (Closes: #513223)
* Adopting the package: setting me as maintainer.
* Add a Homepage field.
* Bump Standards-Version to 3.8.2.
* Update debian/copyright:
  - point to the GPLv3 licence from /usr/share/common-licences
    instead of including the whole licence.
  - Add new copyright holders.
  - Cleaning and refactoring.
* Add Vcs-Git and Vcs-Browser fields.
* Switch packaging from CDBS to "plain debhelper".
* Update debian/compat to version 7.
* New binary package mpop-gnome (mpop with GNOME keyring support)
  which depends on "standard" mpop package and diverts /usr/bin/mpop.
* Update patch which fixes lintian warnings about hyphens in mpop
  manpage.
* Add DM-Upload-Allowed field.

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-2009 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
 
 
39
/* Solaris declares getloadavg() in <sys/loadavg.h>.  */
 
40
#if @GNULIB_GETLOADAVG@ && @HAVE_SYS_LOADAVG_H@
 
41
# include <sys/loadavg.h>
 
42
#endif
 
43
 
 
44
/* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
 
45
   from <stdlib.h> if _REENTRANT is defined.  Include it always.  */
 
46
#if @HAVE_RANDOM_H@
 
47
# include <random.h>
 
48
#endif
 
49
 
 
50
#if @GNULIB_RANDOM_R@ || !@HAVE_STRUCT_RANDOM_DATA@
 
51
# include <stdint.h>
 
52
#endif
 
53
 
 
54
#if !@HAVE_STRUCT_RANDOM_DATA@
 
55
struct random_data
 
56
{
 
57
  int32_t *fptr;                /* Front pointer.  */
 
58
  int32_t *rptr;                /* Rear pointer.  */
 
59
  int32_t *state;               /* Array of state values.  */
 
60
  int rand_type;                /* Type of random number generator.  */
 
61
  int rand_deg;                 /* Degree of random number generator.  */
 
62
  int rand_sep;                 /* Distance between front and rear.  */
 
63
  int32_t *end_ptr;             /* Pointer behind state table.  */
 
64
};
 
65
#endif
 
66
 
 
67
/* The definition of GL_LINK_WARNING is copied here.  */
 
68
 
 
69
 
 
70
/* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
 
71
#ifndef EXIT_SUCCESS
 
72
# define EXIT_SUCCESS 0
 
73
#endif
 
74
/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
 
75
   with proper operation of xargs.  */
 
76
#ifndef EXIT_FAILURE
 
77
# define EXIT_FAILURE 1
 
78
#elif EXIT_FAILURE != 1
 
79
# undef EXIT_FAILURE
 
80
# define EXIT_FAILURE 1
 
81
#endif
 
82
 
 
83
 
 
84
#ifdef __cplusplus
 
85
extern "C" {
 
86
#endif
 
87
 
 
88
 
 
89
#if @GNULIB_MALLOC_POSIX@
 
90
# if !@HAVE_MALLOC_POSIX@
 
91
#  undef malloc
 
92
#  define malloc rpl_malloc
 
93
extern void * malloc (size_t size);
 
94
# endif
 
95
#elif defined GNULIB_POSIXCHECK
 
96
# undef malloc
 
97
# define malloc(s) \
 
98
    (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
 
99
                      "use gnulib module malloc-posix for portability"), \
 
100
     malloc (s))
 
101
#endif
 
102
 
 
103
 
 
104
#if @GNULIB_REALLOC_POSIX@
 
105
# if !@HAVE_REALLOC_POSIX@
 
106
#  undef realloc
 
107
#  define realloc rpl_realloc
 
108
extern void * realloc (void *ptr, size_t size);
 
109
# endif
 
110
#elif defined GNULIB_POSIXCHECK
 
111
# undef realloc
 
112
# define realloc(p,s) \
 
113
    (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
 
114
                      "use gnulib module realloc-posix for portability"), \
 
115
     realloc (p, s))
 
116
#endif
 
117
 
 
118
 
 
119
#if @GNULIB_CALLOC_POSIX@
 
120
# if !@HAVE_CALLOC_POSIX@
 
121
#  undef calloc
 
122
#  define calloc rpl_calloc
 
123
extern void * calloc (size_t nmemb, size_t size);
 
124
# endif
 
125
#elif defined GNULIB_POSIXCHECK
 
126
# undef calloc
 
127
# define calloc(n,s) \
 
128
    (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
 
129
                      "use gnulib module calloc-posix for portability"), \
 
130
     calloc (n, s))
 
131
#endif
 
132
 
 
133
 
 
134
#if @GNULIB_ATOLL@
 
135
# if !@HAVE_ATOLL@
 
136
/* Parse a signed decimal integer.
 
137
   Returns the value of the integer.  Errors are not detected.  */
 
138
extern long long atoll (const char *string);
 
139
# endif
 
140
#elif defined GNULIB_POSIXCHECK
 
141
# undef atoll
 
142
# define atoll(s) \
 
143
    (GL_LINK_WARNING ("atoll is unportable - " \
 
144
                      "use gnulib module atoll for portability"), \
 
145
     atoll (s))
 
146
#endif
 
147
 
 
148
 
 
149
#if @GNULIB_GETLOADAVG@
 
150
# if !@HAVE_DECL_GETLOADAVG@
 
151
/* Store max(NELEM,3) load average numbers in LOADAVG[].
 
152
   The three numbers are the load average of the last 1 minute, the last 5
 
153
   minutes, and the last 15 minutes, respectively.
 
154
   LOADAVG is an array of NELEM numbers.  */
 
155
extern int getloadavg (double loadavg[], int nelem);
 
156
# endif
 
157
#elif defined GNULIB_POSIXCHECK
 
158
# undef getloadavg
 
159
# define getloadavg(l,n) \
 
160
    (GL_LINK_WARNING ("getloadavg is not portable - " \
 
161
                      "use gnulib module getloadavg for portability"), \
 
162
     getloadavg (l, n))
 
163
#endif
 
164
 
 
165
 
 
166
#if @GNULIB_GETSUBOPT@
 
167
/* Assuming *OPTIONP is a comma separated list of elements of the form
 
168
   "token" or "token=value", getsubopt parses the first of these elements.
 
169
   If the first element refers to a "token" that is member of the given
 
170
   NULL-terminated array of tokens:
 
171
     - It replaces the comma with a NUL byte, updates *OPTIONP to point past
 
172
       the first option and the comma, sets *VALUEP to the value of the
 
173
       element (or NULL if it doesn't contain an "=" sign),
 
174
     - It returns the index of the "token" in the given array of tokens.
 
175
   Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
 
176
   For more details see the POSIX:2001 specification.
 
177
   http://www.opengroup.org/susv3xsh/getsubopt.html */
 
178
# if !@HAVE_GETSUBOPT@
 
179
extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
 
180
# endif
 
181
#elif defined GNULIB_POSIXCHECK
 
182
# undef getsubopt
 
183
# define getsubopt(o,t,v) \
 
184
    (GL_LINK_WARNING ("getsubopt is unportable - " \
 
185
                      "use gnulib module getsubopt for portability"), \
 
186
     getsubopt (o, t, v))
 
187
#endif
 
188
 
 
189
 
 
190
#if @GNULIB_MKDTEMP@
 
191
# if !@HAVE_MKDTEMP@
 
192
/* Create a unique temporary directory from TEMPLATE.
 
193
   The last six characters of TEMPLATE must be "XXXXXX";
 
194
   they are replaced with a string that makes the directory name unique.
 
195
   Returns TEMPLATE, or a null pointer if it cannot get a unique name.
 
196
   The directory is created mode 700.  */
 
197
extern char * mkdtemp (char * /*template*/);
 
198
# endif
 
199
#elif defined GNULIB_POSIXCHECK
 
200
# undef mkdtemp
 
201
# define mkdtemp(t) \
 
202
    (GL_LINK_WARNING ("mkdtemp is unportable - " \
 
203
                      "use gnulib module mkdtemp for portability"), \
 
204
     mkdtemp (t))
 
205
#endif
 
206
 
 
207
 
 
208
#if @GNULIB_MKSTEMP@
 
209
# if @REPLACE_MKSTEMP@
 
210
/* Create a unique temporary file from TEMPLATE.
 
211
   The last six characters of TEMPLATE must be "XXXXXX";
 
212
   they are replaced with a string that makes the file name unique.
 
213
   The file is then created, ensuring it didn't exist before.
 
214
   The file is created read-write (mask at least 0600 & ~umask), but it may be
 
215
   world-readable and world-writable (mask 0666 & ~umask), depending on the
 
216
   implementation.
 
217
   Returns the open file descriptor if successful, otherwise -1 and errno
 
218
   set.  */
 
219
#  define mkstemp rpl_mkstemp
 
220
extern int mkstemp (char * /*template*/);
 
221
# else
 
222
/* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
 
223
#  include <unistd.h>
 
224
# endif
 
225
#elif defined GNULIB_POSIXCHECK
 
226
# undef mkstemp
 
227
# define mkstemp(t) \
 
228
    (GL_LINK_WARNING ("mkstemp is unportable - " \
 
229
                      "use gnulib module mkstemp for portability"), \
 
230
     mkstemp (t))
 
231
#endif
 
232
 
 
233
 
 
234
#if @GNULIB_PUTENV@
 
235
# if @REPLACE_PUTENV@
 
236
#  undef putenv
 
237
#  define putenv rpl_putenv
 
238
extern int putenv (char *string);
 
239
# endif
 
240
#endif
 
241
 
 
242
 
 
243
#if @GNULIB_RANDOM_R@
 
244
# if !@HAVE_RANDOM_R@
 
245
 
 
246
#  ifndef RAND_MAX
 
247
#   define RAND_MAX 2147483647
 
248
#  endif
 
249
 
 
250
int srandom_r (unsigned int seed, struct random_data *rand_state);
 
251
int initstate_r (unsigned int seed, char *buf, size_t buf_size,
 
252
                 struct random_data *rand_state);
 
253
int setstate_r (char *arg_state, struct random_data *rand_state);
 
254
int random_r (struct random_data *buf, int32_t *result);
 
255
# endif
 
256
#elif defined GNULIB_POSIXCHECK
 
257
# undef random_r
 
258
# define random_r(b,r)                            \
 
259
    (GL_LINK_WARNING ("random_r is unportable - " \
 
260
                      "use gnulib module random_r for portability"), \
 
261
     random_r (b,r))
 
262
# undef initstate_r
 
263
# define initstate_r(s,b,sz,r)                       \
 
264
    (GL_LINK_WARNING ("initstate_r is unportable - " \
 
265
                      "use gnulib module random_r for portability"), \
 
266
     initstate_r (s,b,sz,r))
 
267
# undef srandom_r
 
268
# define srandom_r(s,r)                            \
 
269
    (GL_LINK_WARNING ("srandom_r is unportable - " \
 
270
                      "use gnulib module random_r for portability"), \
 
271
     srandom_r (s,r))
 
272
# undef setstate_r
 
273
# define setstate_r(a,r)                                    \
 
274
    (GL_LINK_WARNING ("setstate_r is unportable - " \
 
275
                      "use gnulib module random_r for portability"), \
 
276
     setstate_r (a,r))
 
277
#endif
 
278
 
 
279
 
 
280
#if @GNULIB_RPMATCH@
 
281
# if !@HAVE_RPMATCH@
 
282
/* Test a user response to a question.
 
283
   Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear.  */
 
284
extern int rpmatch (const char *response);
 
285
# endif
 
286
#elif defined GNULIB_POSIXCHECK
 
287
# undef rpmatch
 
288
# define rpmatch(r) \
 
289
    (GL_LINK_WARNING ("rpmatch is unportable - " \
 
290
                      "use gnulib module rpmatch for portability"), \
 
291
     rpmatch (r))
 
292
#endif
 
293
 
 
294
 
 
295
#if @GNULIB_SETENV@
 
296
# if !@HAVE_SETENV@
 
297
/* Set NAME to VALUE in the environment.
 
298
   If REPLACE is nonzero, overwrite an existing value.  */
 
299
extern int setenv (const char *name, const char *value, int replace);
 
300
# endif
 
301
#endif
 
302
 
 
303
 
 
304
#if @GNULIB_UNSETENV@
 
305
# if @HAVE_UNSETENV@
 
306
#  if @VOID_UNSETENV@
 
307
/* On some systems, unsetenv() returns void.
 
308
   This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4.  */
 
309
#   define unsetenv(name) ((unsetenv)(name), 0)
 
310
#  endif
 
311
# else
 
312
/* Remove the variable NAME from the environment.  */
 
313
extern int unsetenv (const char *name);
 
314
# endif
 
315
#endif
 
316
 
 
317
 
 
318
#if @GNULIB_STRTOD@
 
319
# if @REPLACE_STRTOD@
 
320
#  define strtod rpl_strtod
 
321
# endif
 
322
# if !@HAVE_STRTOD@ || @REPLACE_STRTOD@
 
323
 /* Parse a double from STRING, updating ENDP if appropriate.  */
 
324
extern double strtod (const char *str, char **endp);
 
325
# endif
 
326
#elif defined GNULIB_POSIXCHECK
 
327
# undef strtod
 
328
# define strtod(s, e)                           \
 
329
    (GL_LINK_WARNING ("strtod is unportable - " \
 
330
                      "use gnulib module strtod for portability"), \
 
331
     strtod (s, e))
 
332
#endif
 
333
 
 
334
 
 
335
#if @GNULIB_STRTOLL@
 
336
# if !@HAVE_STRTOLL@
 
337
/* Parse a signed integer whose textual representation starts at STRING.
 
338
   The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
 
339
   it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
 
340
   "0x").
 
341
   If ENDPTR is not NULL, the address of the first byte after the integer is
 
342
   stored in *ENDPTR.
 
343
   Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
 
344
   to ERANGE.  */
 
345
extern long long strtoll (const char *string, char **endptr, int base);
 
346
# endif
 
347
#elif defined GNULIB_POSIXCHECK
 
348
# undef strtoll
 
349
# define strtoll(s,e,b) \
 
350
    (GL_LINK_WARNING ("strtoll is unportable - " \
 
351
                      "use gnulib module strtoll for portability"), \
 
352
     strtoll (s, e, b))
 
353
#endif
 
354
 
 
355
 
 
356
#if @GNULIB_STRTOULL@
 
357
# if !@HAVE_STRTOULL@
 
358
/* Parse an unsigned integer whose textual representation starts at STRING.
 
359
   The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
 
360
   it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
 
361
   "0x").
 
362
   If ENDPTR is not NULL, the address of the first byte after the integer is
 
363
   stored in *ENDPTR.
 
364
   Upon overflow, the return value is ULLONG_MAX, and errno is set to
 
365
   ERANGE.  */
 
366
extern unsigned long long strtoull (const char *string, char **endptr, int base);
 
367
# endif
 
368
#elif defined GNULIB_POSIXCHECK
 
369
# undef strtoull
 
370
# define strtoull(s,e,b) \
 
371
    (GL_LINK_WARNING ("strtoull is unportable - " \
 
372
                      "use gnulib module strtoull for portability"), \
 
373
     strtoull (s, e, b))
 
374
#endif
 
375
 
 
376
 
 
377
#ifdef __cplusplus
 
378
}
 
379
#endif
 
380
 
 
381
#endif /* _GL_STDLIB_H */
 
382
#endif /* _GL_STDLIB_H */
 
383
#endif