(root)/
gettext-0.22.4/
gettext-runtime/
libasprintf/
vasprintf.h
       1  /* vsprintf with automatic memory allocation.
       2     Copyright (C) 2002-2003, 2012 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 Lesser General Public License as published by
       6     the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  #ifndef _VASPRINTF_H
      18  #define _VASPRINTF_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
      37  extern "C" {
      38  #endif
      39  
      40  /* Write formatted output to a string dynamically allocated with malloc().
      41     If the memory allocation succeeds, store the address of the string in
      42     *RESULT and return the number of resulting bytes, excluding the trailing
      43     NUL.  Upon memory allocation error, or some other error, return -1.  */
      44  extern int asprintf (char **result, const char *format, ...)
      45         __attribute__ ((__format__ (__printf__, 2, 3)));
      46  extern int vasprintf (char **result, const char *format, va_list args)
      47         __attribute__ ((__format__ (__printf__, 2, 0)));
      48  
      49  #ifdef __cplusplus
      50  }
      51  #endif
      52  
      53  #endif /* _VASPRINTF_H */