X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fprintf-args.h;h=6f75e2aea40ab226dafd173c0c2cd0278e93e5f8;hb=5a21606b0d57082670bd060d169492c2f3a410f2;hp=74a18d9bf342426fac0d39e7d45ce94d1516d6a6;hpb=ac5d57a6683bc6f146b28d2c84e1fdbf80877e06;p=gnulib.git diff --git a/lib/printf-args.h b/lib/printf-args.h index 74a18d9bf..6f75e2aea 100644 --- a/lib/printf-args.h +++ b/lib/printf-args.h @@ -18,6 +18,16 @@ #ifndef _PRINTF_ARGS_H #define _PRINTF_ARGS_H +/* This file can be parametrized with the following macros: + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. + PRINTF_FETCHARGS Name of the function to be declared. + STATIC Set to 'static' to declare the function static. */ + +/* Default parameters. */ +#ifndef PRINTF_FETCHARGS +# define PRINTF_FETCHARGS printf_fetchargs +#endif + /* Get size_t. */ #include @@ -52,9 +62,7 @@ typedef enum TYPE_ULONGLONGINT, #endif TYPE_DOUBLE, -#if HAVE_LONG_DOUBLE TYPE_LONGDOUBLE, -#endif TYPE_CHAR, #if HAVE_WINT_T TYPE_WIDE_CHAR, @@ -71,6 +79,12 @@ typedef enum #if HAVE_LONG_LONG_INT , TYPE_COUNT_LONGLONGINT_POINTER #endif +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ +, TYPE_U8_STRING +, TYPE_U16_STRING +, TYPE_U32_STRING +#endif } arg_type; /* Polymorphic argument */ @@ -93,9 +107,7 @@ typedef struct #endif float a_float; double a_double; -#if HAVE_LONG_DOUBLE long double a_longdouble; -#endif int a_char; #if HAVE_WINT_T wint_t a_wide_char; @@ -112,6 +124,12 @@ typedef struct #if HAVE_LONG_LONG_INT long long int * a_count_longlongint_pointer; #endif +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + const uint8_t * a_u8_string; + const uint16_t * a_u16_string; + const uint32_t * a_u32_string; +#endif } a; } @@ -131,6 +149,6 @@ STATIC #else extern #endif -int printf_fetchargs (va_list args, arguments *a); +int PRINTF_FETCHARGS (va_list args, arguments *a); #endif /* _PRINTF_ARGS_H */