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 f303cb1..9b80bb3 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; |