diff options
Diffstat (limited to 'gl/printf-args.h')
| -rw-r--r-- | gl/printf-args.h | 61 |
1 files changed, 58 insertions, 3 deletions
diff --git a/gl/printf-args.h b/gl/printf-args.h index f303cb19..9b80bb39 100644 --- a/gl/printf-args.h +++ b/gl/printf-args.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* Decomposed printf argument list. | 1 | /* Decomposed printf argument list. |
| 2 | Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2023 Free Software | 2 | Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2024 Free Software |
| 3 | Foundation, Inc. | 3 | Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is free software: you can redistribute it and/or modify | 5 | This file is free software: you can redistribute it and/or modify |
| @@ -41,6 +41,9 @@ | |||
| 41 | # include <wchar.h> | 41 | # include <wchar.h> |
| 42 | #endif | 42 | #endif |
| 43 | 43 | ||
| 44 | /* Get intN_t, uintN_t, intN_fast_t, uintN_fast_t. */ | ||
| 45 | #include <stdint.h> | ||
| 46 | |||
| 44 | /* Get va_list. */ | 47 | /* Get va_list. */ |
| 45 | #include <stdarg.h> | 48 | #include <stdarg.h> |
| 46 | 49 | ||
| @@ -59,6 +62,26 @@ typedef enum | |||
| 59 | TYPE_ULONGINT, | 62 | TYPE_ULONGINT, |
| 60 | TYPE_LONGLONGINT, | 63 | TYPE_LONGLONGINT, |
| 61 | TYPE_ULONGLONGINT, | 64 | TYPE_ULONGLONGINT, |
| 65 | /* According to ISO C 23 ยง 7.23.6.1, "all exact-width integer types", | ||
| 66 | "all minimum-width integer types", and "all fastest minimum-width integer | ||
| 67 | types" defined in <stdint.h> should be supported. But for portability | ||
| 68 | between platforms, we support only those with N = 8, 16, 32, 64. */ | ||
| 69 | TYPE_INT8_T, | ||
| 70 | TYPE_UINT8_T, | ||
| 71 | TYPE_INT16_T, | ||
| 72 | TYPE_UINT16_T, | ||
| 73 | TYPE_INT32_T, | ||
| 74 | TYPE_UINT32_T, | ||
| 75 | TYPE_INT64_T, | ||
| 76 | TYPE_UINT64_T, | ||
| 77 | TYPE_INT_FAST8_T, | ||
| 78 | TYPE_UINT_FAST8_T, | ||
| 79 | TYPE_INT_FAST16_T, | ||
| 80 | TYPE_UINT_FAST16_T, | ||
| 81 | TYPE_INT_FAST32_T, | ||
| 82 | TYPE_UINT_FAST32_T, | ||
| 83 | TYPE_INT_FAST64_T, | ||
| 84 | TYPE_UINT_FAST64_T, | ||
| 62 | TYPE_DOUBLE, | 85 | TYPE_DOUBLE, |
| 63 | TYPE_LONGDOUBLE, | 86 | TYPE_LONGDOUBLE, |
| 64 | TYPE_CHAR, | 87 | TYPE_CHAR, |
| @@ -74,7 +97,15 @@ typedef enum | |||
| 74 | TYPE_COUNT_SHORT_POINTER, | 97 | TYPE_COUNT_SHORT_POINTER, |
| 75 | TYPE_COUNT_INT_POINTER, | 98 | TYPE_COUNT_INT_POINTER, |
| 76 | TYPE_COUNT_LONGINT_POINTER, | 99 | TYPE_COUNT_LONGINT_POINTER, |
| 77 | TYPE_COUNT_LONGLONGINT_POINTER | 100 | TYPE_COUNT_LONGLONGINT_POINTER, |
| 101 | TYPE_COUNT_INT8_T_POINTER, | ||
| 102 | TYPE_COUNT_INT16_T_POINTER, | ||
| 103 | TYPE_COUNT_INT32_T_POINTER, | ||
| 104 | TYPE_COUNT_INT64_T_POINTER, | ||
| 105 | TYPE_COUNT_INT_FAST8_T_POINTER, | ||
| 106 | TYPE_COUNT_INT_FAST16_T_POINTER, | ||
| 107 | TYPE_COUNT_INT_FAST32_T_POINTER, | ||
| 108 | TYPE_COUNT_INT_FAST64_T_POINTER | ||
| 78 | #if ENABLE_UNISTDIO | 109 | #if ENABLE_UNISTDIO |
| 79 | /* The unistdio extensions. */ | 110 | /* The unistdio extensions. */ |
| 80 | , TYPE_U8_STRING | 111 | , TYPE_U8_STRING |
| @@ -99,7 +130,23 @@ typedef struct | |||
| 99 | unsigned long int a_ulongint; | 130 | unsigned long int a_ulongint; |
| 100 | long long int a_longlongint; | 131 | long long int a_longlongint; |
| 101 | unsigned long long int a_ulonglongint; | 132 | unsigned long long int a_ulonglongint; |
| 102 | float a_float; | 133 | int8_t a_int8_t; |
| 134 | uint8_t a_uint8_t; | ||
| 135 | int16_t a_int16_t; | ||
| 136 | uint16_t a_uint16_t; | ||
| 137 | int32_t a_int32_t; | ||
| 138 | uint32_t a_uint32_t; | ||
| 139 | int64_t a_int64_t; | ||
| 140 | uint64_t a_uint64_t; | ||
| 141 | int_fast8_t a_int_fast8_t; | ||
| 142 | uint_fast8_t a_uint_fast8_t; | ||
| 143 | int_fast16_t a_int_fast16_t; | ||
| 144 | uint_fast16_t a_uint_fast16_t; | ||
| 145 | int_fast32_t a_int_fast32_t; | ||
| 146 | uint_fast32_t a_uint_fast32_t; | ||
| 147 | int_fast64_t a_int_fast64_t; | ||
| 148 | uint_fast64_t a_uint_fast64_t; | ||
| 149 | float a_float; /* unused */ | ||
| 103 | double a_double; | 150 | double a_double; |
| 104 | long double a_longdouble; | 151 | long double a_longdouble; |
| 105 | int a_char; | 152 | int a_char; |
| @@ -116,6 +163,14 @@ typedef struct | |||
| 116 | int * a_count_int_pointer; | 163 | int * a_count_int_pointer; |
| 117 | long int * a_count_longint_pointer; | 164 | long int * a_count_longint_pointer; |
| 118 | long long int * a_count_longlongint_pointer; | 165 | long long int * a_count_longlongint_pointer; |
| 166 | int8_t * a_count_int8_t_pointer; | ||
| 167 | int16_t * a_count_int16_t_pointer; | ||
| 168 | int32_t * a_count_int32_t_pointer; | ||
| 169 | int64_t * a_count_int64_t_pointer; | ||
| 170 | int_fast8_t * a_count_int_fast8_t_pointer; | ||
| 171 | int_fast16_t * a_count_int_fast16_t_pointer; | ||
| 172 | int_fast32_t * a_count_int_fast32_t_pointer; | ||
| 173 | int_fast64_t * a_count_int_fast64_t_pointer; | ||
| 119 | #if ENABLE_UNISTDIO | 174 | #if ENABLE_UNISTDIO |
| 120 | /* The unistdio extensions. */ | 175 | /* The unistdio extensions. */ |
| 121 | const uint8_t * a_u8_string; | 176 | const uint8_t * a_u8_string; |
