diff options
Diffstat (limited to 'gl/printf-args.c')
-rw-r--r-- | gl/printf-args.c | 125 |
1 files changed, 124 insertions, 1 deletions
diff --git a/gl/printf-args.c b/gl/printf-args.c index 5e14f65..eb0d2cd 100644 --- a/gl/printf-args.c +++ b/gl/printf-args.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* Decomposed printf argument list. | 1 | /* Decomposed printf argument list. |
2 | Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2023 Free Software | 2 | Copyright (C) 1999, 2002-2003, 2005-2007, 2009-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 |
@@ -29,6 +29,9 @@ | |||
29 | # include "printf-args.h" | 29 | # include "printf-args.h" |
30 | #endif | 30 | #endif |
31 | 31 | ||
32 | /* Get INT_WIDTH. */ | ||
33 | #include <limits.h> | ||
34 | |||
32 | #ifdef STATIC | 35 | #ifdef STATIC |
33 | STATIC | 36 | STATIC |
34 | #endif | 37 | #endif |
@@ -71,6 +74,102 @@ PRINTF_FETCHARGS (va_list args, arguments *a) | |||
71 | case TYPE_ULONGLONGINT: | 74 | case TYPE_ULONGLONGINT: |
72 | ap->a.a_ulonglongint = va_arg (args, unsigned long long int); | 75 | ap->a.a_ulonglongint = va_arg (args, unsigned long long int); |
73 | break; | 76 | break; |
77 | case TYPE_INT8_T: | ||
78 | #if INT8_WIDTH < INT_WIDTH | ||
79 | ap->a.a_int8_t = va_arg (args, /* int8_t */ int); | ||
80 | #else | ||
81 | ap->a.a_int8_t = va_arg (args, int8_t); | ||
82 | #endif | ||
83 | break; | ||
84 | case TYPE_UINT8_T: | ||
85 | #if UINT8_WIDTH < INT_WIDTH | ||
86 | ap->a.a_uint8_t = va_arg (args, /* uint8_t */ int); | ||
87 | #else | ||
88 | ap->a.a_uint8_t = va_arg (args, uint8_t); | ||
89 | #endif | ||
90 | break; | ||
91 | case TYPE_INT16_T: | ||
92 | #if INT16_WIDTH < INT_WIDTH | ||
93 | ap->a.a_int16_t = va_arg (args, /* int16_t */ int); | ||
94 | #else | ||
95 | ap->a.a_int16_t = va_arg (args, int16_t); | ||
96 | #endif | ||
97 | break; | ||
98 | case TYPE_UINT16_T: | ||
99 | #if UINT16_WIDTH < INT_WIDTH | ||
100 | ap->a.a_uint16_t = va_arg (args, /* uint16_t */ int); | ||
101 | #else | ||
102 | ap->a.a_uint16_t = va_arg (args, uint16_t); | ||
103 | #endif | ||
104 | break; | ||
105 | case TYPE_INT32_T: | ||
106 | #if INT32_WIDTH < INT_WIDTH | ||
107 | ap->a.a_int32_t = va_arg (args, /* int32_t */ int); | ||
108 | #else | ||
109 | ap->a.a_int32_t = va_arg (args, int32_t); | ||
110 | #endif | ||
111 | break; | ||
112 | case TYPE_UINT32_T: | ||
113 | #if UINT32_WIDTH < INT_WIDTH | ||
114 | ap->a.a_uint32_t = va_arg (args, /* uint32_t */ int); | ||
115 | #else | ||
116 | ap->a.a_uint32_t = va_arg (args, uint32_t); | ||
117 | #endif | ||
118 | break; | ||
119 | case TYPE_INT64_T: | ||
120 | ap->a.a_int64_t = va_arg (args, int64_t); | ||
121 | break; | ||
122 | case TYPE_UINT64_T: | ||
123 | ap->a.a_uint64_t = va_arg (args, uint64_t); | ||
124 | break; | ||
125 | case TYPE_INT_FAST8_T: | ||
126 | #if INT_FAST8_WIDTH < INT_WIDTH | ||
127 | ap->a.a_int_fast8_t = va_arg (args, /* int_fast8_t */ int); | ||
128 | #else | ||
129 | ap->a.a_int_fast8_t = va_arg (args, int_fast8_t); | ||
130 | #endif | ||
131 | break; | ||
132 | case TYPE_UINT_FAST8_T: | ||
133 | #if UINT_FAST8_WIDTH < INT_WIDTH | ||
134 | ap->a.a_uint_fast8_t = va_arg (args, /* uint_fast8_t */ int); | ||
135 | #else | ||
136 | ap->a.a_uint_fast8_t = va_arg (args, uint_fast8_t); | ||
137 | #endif | ||
138 | break; | ||
139 | case TYPE_INT_FAST16_T: | ||
140 | #if INT_FAST16_WIDTH < INT_WIDTH | ||
141 | ap->a.a_int_fast16_t = va_arg (args, /* int_fast16_t */ int); | ||
142 | #else | ||
143 | ap->a.a_int_fast16_t = va_arg (args, int_fast16_t); | ||
144 | #endif | ||
145 | break; | ||
146 | case TYPE_UINT_FAST16_T: | ||
147 | #if UINT_FAST16_WIDTH < INT_WIDTH | ||
148 | ap->a.a_uint_fast16_t = va_arg (args, /* uint_fast16_t */ int); | ||
149 | #else | ||
150 | ap->a.a_uint_fast16_t = va_arg (args, uint_fast16_t); | ||
151 | #endif | ||
152 | break; | ||
153 | case TYPE_INT_FAST32_T: | ||
154 | #if INT_FAST32_WIDTH < INT_WIDTH | ||
155 | ap->a.a_int_fast32_t = va_arg (args, /* int_fast32_t */ int); | ||
156 | #else | ||
157 | ap->a.a_int_fast32_t = va_arg (args, int_fast32_t); | ||
158 | #endif | ||
159 | break; | ||
160 | case TYPE_UINT_FAST32_T: | ||
161 | #if UINT_FAST32_WIDTH < INT_WIDTH | ||
162 | ap->a.a_uint_fast32_t = va_arg (args, /* uint_fast32_t */ int); | ||
163 | #else | ||
164 | ap->a.a_uint_fast32_t = va_arg (args, uint_fast32_t); | ||
165 | #endif | ||
166 | break; | ||
167 | case TYPE_INT_FAST64_T: | ||
168 | ap->a.a_int_fast64_t = va_arg (args, int_fast64_t); | ||
169 | break; | ||
170 | case TYPE_UINT_FAST64_T: | ||
171 | ap->a.a_uint_fast64_t = va_arg (args, uint_fast64_t); | ||
172 | break; | ||
74 | case TYPE_DOUBLE: | 173 | case TYPE_DOUBLE: |
75 | ap->a.a_double = va_arg (args, double); | 174 | ap->a.a_double = va_arg (args, double); |
76 | break; | 175 | break; |
@@ -136,6 +235,30 @@ PRINTF_FETCHARGS (va_list args, arguments *a) | |||
136 | case TYPE_COUNT_LONGLONGINT_POINTER: | 235 | case TYPE_COUNT_LONGLONGINT_POINTER: |
137 | ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); | 236 | ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); |
138 | break; | 237 | break; |
238 | case TYPE_COUNT_INT8_T_POINTER: | ||
239 | ap->a.a_count_int8_t_pointer = va_arg (args, int8_t *); | ||
240 | break; | ||
241 | case TYPE_COUNT_INT16_T_POINTER: | ||
242 | ap->a.a_count_int16_t_pointer = va_arg (args, int16_t *); | ||
243 | break; | ||
244 | case TYPE_COUNT_INT32_T_POINTER: | ||
245 | ap->a.a_count_int32_t_pointer = va_arg (args, int32_t *); | ||
246 | break; | ||
247 | case TYPE_COUNT_INT64_T_POINTER: | ||
248 | ap->a.a_count_int64_t_pointer = va_arg (args, int64_t *); | ||
249 | break; | ||
250 | case TYPE_COUNT_INT_FAST8_T_POINTER: | ||
251 | ap->a.a_count_int_fast8_t_pointer = va_arg (args, int_fast8_t *); | ||
252 | break; | ||
253 | case TYPE_COUNT_INT_FAST16_T_POINTER: | ||
254 | ap->a.a_count_int_fast16_t_pointer = va_arg (args, int_fast16_t *); | ||
255 | break; | ||
256 | case TYPE_COUNT_INT_FAST32_T_POINTER: | ||
257 | ap->a.a_count_int_fast32_t_pointer = va_arg (args, int_fast32_t *); | ||
258 | break; | ||
259 | case TYPE_COUNT_INT_FAST64_T_POINTER: | ||
260 | ap->a.a_count_int_fast64_t_pointer = va_arg (args, int_fast64_t *); | ||
261 | break; | ||
139 | #if ENABLE_UNISTDIO | 262 | #if ENABLE_UNISTDIO |
140 | /* The unistdio extensions. */ | 263 | /* The unistdio extensions. */ |
141 | case TYPE_U8_STRING: | 264 | case TYPE_U8_STRING: |