• 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-tools/gnulib-lib/
1/* vasprintf and asprintf with out-of-memory checking.
2   Copyright (C) 2002-2004, 2006-2007 Free Software Foundation, Inc.
3
4   This program is free software: you can redistribute it and/or modify
5   it under the terms of the GNU General Public License as published by
6   the Free Software Foundation; either version 3 of the License, or
7   (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   GNU General Public License for more details.
13
14   You should have received a copy of the GNU General Public License
15   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16
17#ifndef _XVASPRINTF_H
18#define _XVASPRINTF_H
19
20/* Get va_list.  */
21#include <stdarg.h>
22
23#ifndef __attribute__
24/* This feature is available in gcc versions 2.5 and later.  */
25# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
26#  define __attribute__(Spec) /* empty */
27# endif
28/* The __-protected variants of `format' and `printf' attributes
29   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
30# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
31#  define __format__ format
32#  define __printf__ printf
33# endif
34#endif
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40/* Write formatted output to a string dynamically allocated with malloc(),
41   and return it.  Upon [ENOMEM] memory allocation error, call xalloc_die.
42   On some other error
43     - [EOVERFLOW] resulting string length is > INT_MAX,
44     - [EINVAL] invalid format string,
45     - [EILSEQ] error during conversion between wide and multibyte characters,
46   return NULL.  */
47extern char *xasprintf (const char *format, ...)
48       __attribute__ ((__format__ (__printf__, 1, 2)));
49extern char *xvasprintf (const char *format, va_list args)
50       __attribute__ ((__format__ (__printf__, 1, 0)));
51
52#ifdef __cplusplus
53}
54#endif
55
56#endif /* _XVASPRINTF_H */
57