• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/gettext-0.17/gettext-runtime/gnulib-lib/
1/* A GNU-like <stdlib.h>.
2
3   Copyright (C) 1995, 2001-2002, 2006-2007 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 defined __need_malloc_and_calloc
19/* Special invocation convention inside glibc header files.  */
20
21#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
22
23#else
24/* Normal invocation convention.  */
25
26#ifndef _GL_STDLIB_H
27
28/* The include_next requires a split double-inclusion guard.  */
29#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
30
31#ifndef _GL_STDLIB_H
32#define _GL_STDLIB_H
33
34
35/* The definition of GL_LINK_WARNING is copied here.  */
36
37
38/* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
39#ifndef EXIT_SUCCESS
40# define EXIT_SUCCESS 0
41#endif
42/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
43   with proper operation of xargs.  */
44#ifndef EXIT_FAILURE
45# define EXIT_FAILURE 1
46#elif EXIT_FAILURE != 1
47# undef EXIT_FAILURE
48# define EXIT_FAILURE 1
49#endif
50
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56
57#if @GNULIB_MALLOC_POSIX@
58# if !@HAVE_MALLOC_POSIX@
59#  undef malloc
60#  define malloc rpl_malloc
61extern void * malloc (size_t size);
62# endif
63#elif defined GNULIB_POSIXCHECK
64# undef malloc
65# define malloc(s) \
66    (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
67                      "use gnulib module malloc-posix for portability"), \
68     malloc (s))
69#endif
70
71
72#if @GNULIB_REALLOC_POSIX@
73# if !@HAVE_REALLOC_POSIX@
74#  undef realloc
75#  define realloc rpl_realloc
76extern void * realloc (void *ptr, size_t size);
77# endif
78#elif defined GNULIB_POSIXCHECK
79# undef realloc
80# define realloc(p,s) \
81    (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
82                      "use gnulib module realloc-posix for portability"), \
83     realloc (p, s))
84#endif
85
86
87#if @GNULIB_CALLOC_POSIX@
88# if !@HAVE_CALLOC_POSIX@
89#  undef calloc
90#  define calloc rpl_calloc
91extern void * calloc (size_t nmemb, size_t size);
92# endif
93#elif defined GNULIB_POSIXCHECK
94# undef calloc
95# define calloc(n,s) \
96    (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
97                      "use gnulib module calloc-posix for portability"), \
98     calloc (n, s))
99#endif
100
101
102#if @GNULIB_GETSUBOPT@
103/* Assuming *OPTIONP is a comma separated list of elements of the form
104   "token" or "token=value", getsubopt parses the first of these elements.
105   If the first element refers to a "token" that is member of the given
106   NULL-terminated array of tokens:
107     - It replaces the comma with a NUL byte, updates *OPTIONP to point past
108       the first option and the comma, sets *VALUEP to the value of the
109       element (or NULL if it doesn't contain an "=" sign),
110     - It returns the index of the "token" in the given array of tokens.
111   Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
112   For more details see the POSIX:2001 specification.
113   http://www.opengroup.org/susv3xsh/getsubopt.html */
114# if !@HAVE_GETSUBOPT@
115extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
116# endif
117#elif defined GNULIB_POSIXCHECK
118# undef getsubopt
119# define getsubopt(o,t,v) \
120    (GL_LINK_WARNING ("getsubopt is unportable - " \
121                      "use gnulib module getsubopt for portability"), \
122     getsubopt (o, t, v))
123#endif
124
125
126#if @GNULIB_MKDTEMP@
127# if !@HAVE_MKDTEMP@
128/* Create a unique temporary directory from TEMPLATE.
129   The last six characters of TEMPLATE must be "XXXXXX";
130   they are replaced with a string that makes the directory name unique.
131   Returns TEMPLATE, or a null pointer if it cannot get a unique name.
132   The directory is created mode 700.  */
133extern char * mkdtemp (char * /*template*/);
134# endif
135#elif defined GNULIB_POSIXCHECK
136# undef mkdtemp
137# define mkdtemp(t) \
138    (GL_LINK_WARNING ("mkdtemp is unportable - " \
139                      "use gnulib module mkdtemp for portability"), \
140     mkdtemp (t))
141#endif
142
143
144#if @GNULIB_MKSTEMP@
145# if @REPLACE_MKSTEMP@
146/* Create a unique temporary file from TEMPLATE.
147   The last six characters of TEMPLATE must be "XXXXXX";
148   they are replaced with a string that makes the file name unique.
149   The file is then created, ensuring it didn't exist before.
150   The file is created read-write (mask at least 0600 & ~umask), but it may be
151   world-readable and world-writable (mask 0666 & ~umask), depending on the
152   implementation.
153   Returns the open file descriptor if successful, otherwise -1 and errno
154   set.  */
155#  define mkstemp rpl_mkstemp
156extern int mkstemp (char * /*template*/);
157# else
158/* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
159#  include <unistd.h>
160# endif
161#elif defined GNULIB_POSIXCHECK
162# undef mkstemp
163# define mkstemp(t) \
164    (GL_LINK_WARNING ("mkstemp is unportable - " \
165                      "use gnulib module mkstemp for portability"), \
166     mkstemp (t))
167#endif
168
169
170#if @GNULIB_PUTENV@
171# if @REPLACE_PUTENV@
172#  undef putenv
173#  define putenv rpl_putenv
174extern int putenv (char *string);
175# endif
176#endif
177
178
179#ifdef __cplusplus
180}
181#endif
182
183#endif /* _GL_STDLIB_H */
184#endif /* _GL_STDLIB_H */
185#endif
186