1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
2 /* Elementary Unicode string functions.
3 Copyright (C) 2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
5 This program is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Lesser General Public License as published
7 by the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
36 /* These work like the printf function family.
38 The format directive 'U' takes an UTF-8 string (const uint8_t *).
39 The format directive 'lU' takes an UTF-16 string (const uint16_t *).
40 The format directive 'llU' takes an UTF-32 string (const uint32_t *).
42 The prefix (ulc_, u8_, u16_, u16_) indicates the type of the resulting
43 string. The prefix 'ulc' stands for "locale encoded".
45 An infix 'v' indicates that a va_list is passed instead of multiple
48 The functions *sprintf have a 'buf' argument that is assumed to be large
49 enough. (DANGEROUS! Overflowing the buffer will crash the program.)
50 The functions *snprintf have a 'buf' argument that is assumed to be 'size'
51 units large. (DANGEROUS! The resulting string might be truncated in the
52 middle of a multibyte character.)
53 The functions *asprintf have a 'resultp' argument. The result will be
54 freshly allocated and stored in *resultp.
55 The functions *asnprintf have a (resultbuf, lengthp) argument pair. If
56 resultbuf is not NULL and the result fits into *lengthp units, it is put
57 in resultbuf, and resultbuf is returned. Otherwise, a freshly allocated
58 string is returned. In both cases, *lengthp is set to the length (number
59 of units) of the returned string. In case of error, NULL is returned and
63 /* ASCII format string, result in locale dependent encoded 'char *'. */
65 ulc_sprintf (char *buf,
66 const char *format, ...);
68 ulc_snprintf (char *buf, size_t size,
69 const char *format, ...);
71 ulc_asprintf (char **resultp,
72 const char *format, ...);
74 ulc_asnprintf (char *resultbuf, size_t *lengthp,
75 const char *format, ...);
77 ulc_vsprintf (char *buf,
78 const char *format, va_list ap);
80 ulc_vsnprintf (char *buf, size_t size,
81 const char *format, va_list ap);
83 ulc_vasprintf (char **resultp,
84 const char *format, va_list ap);
86 ulc_vasnprintf (char *resultbuf, size_t *lengthp,
87 const char *format, va_list ap);
89 /* ASCII format string, result in UTF-8 format. */
91 u8_sprintf (uint8_t *buf,
92 const char *format, ...);
94 u8_snprintf (uint8_t *buf, size_t size,
95 const char *format, ...);
97 u8_asprintf (uint8_t **resultp,
98 const char *format, ...);
100 u8_asnprintf (uint8_t *resultbuf, size_t *lengthp,
101 const char *format, ...);
103 u8_vsprintf (uint8_t *buf,
104 const char *format, va_list ap);
106 u8_vsnprintf (uint8_t *buf, size_t size,
107 const char *format, va_list ap);
109 u8_vasprintf (uint8_t **resultp,
110 const char *format, va_list ap);
112 u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp,
113 const char *format, va_list ap);
115 /* UTF-8 format string, result in UTF-8 format. */
117 u8_u8_sprintf (uint8_t *buf,
118 const uint8_t *format, ...);
120 u8_u8_snprintf (uint8_t *buf, size_t size,
121 const uint8_t *format, ...);
123 u8_u8_asprintf (uint8_t **resultp,
124 const uint8_t *format, ...);
126 u8_u8_asnprintf (uint8_t *resultbuf, size_t *lengthp,
127 const uint8_t *format, ...);
129 u8_u8_vsprintf (uint8_t *buf,
130 const uint8_t *format, va_list ap);
132 u8_u8_vsnprintf (uint8_t *buf, size_t size,
133 const uint8_t *format, va_list ap);
135 u8_u8_vasprintf (uint8_t **resultp,
136 const uint8_t *format, va_list ap);
138 u8_u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp,
139 const uint8_t *format, va_list ap);
141 /* ASCII format string, result in UTF-16 format. */
143 u16_sprintf (uint16_t *buf,
144 const char *format, ...);
146 u16_snprintf (uint16_t *buf, size_t size,
147 const char *format, ...);
149 u16_asprintf (uint16_t **resultp,
150 const char *format, ...);
152 u16_asnprintf (uint16_t *resultbuf, size_t *lengthp,
153 const char *format, ...);
155 u16_vsprintf (uint16_t *buf,
156 const char *format, va_list ap);
158 u16_vsnprintf (uint16_t *buf, size_t size,
159 const char *format, va_list ap);
161 u16_vasprintf (uint16_t **resultp,
162 const char *format, va_list ap);
164 u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp,
165 const char *format, va_list ap);
167 /* UTF-16 format string, result in UTF-16 format. */
169 u16_u16_sprintf (uint16_t *buf,
170 const uint16_t *format, ...);
172 u16_u16_snprintf (uint16_t *buf, size_t size,
173 const uint16_t *format, ...);
175 u16_u16_asprintf (uint16_t **resultp,
176 const uint16_t *format, ...);
178 u16_u16_asnprintf (uint16_t *resultbuf, size_t *lengthp,
179 const uint16_t *format, ...);
181 u16_u16_vsprintf (uint16_t *buf,
182 const uint16_t *format, va_list ap);
184 u16_u16_vsnprintf (uint16_t *buf, size_t size,
185 const uint16_t *format, va_list ap);
187 u16_u16_vasprintf (uint16_t **resultp,
188 const uint16_t *format, va_list ap);
190 u16_u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp,
191 const uint16_t *format, va_list ap);
193 /* ASCII format string, result in UTF-32 format. */
195 u32_sprintf (uint32_t *buf,
196 const char *format, ...);
198 u32_snprintf (uint32_t *buf, size_t size,
199 const char *format, ...);
201 u32_asprintf (uint32_t **resultp,
202 const char *format, ...);
204 u32_asnprintf (uint32_t *resultbuf, size_t *lengthp,
205 const char *format, ...);
207 u32_vsprintf (uint32_t *buf,
208 const char *format, va_list ap);
210 u32_vsnprintf (uint32_t *buf, size_t size,
211 const char *format, va_list ap);
213 u32_vasprintf (uint32_t **resultp,
214 const char *format, va_list ap);
216 u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp,
217 const char *format, va_list ap);
219 /* UTF-32 format string, result in UTF-32 format. */
221 u32_u32_sprintf (uint32_t *buf,
222 const uint32_t *format, ...);
224 u32_u32_snprintf (uint32_t *buf, size_t size,
225 const uint32_t *format, ...);
227 u32_u32_asprintf (uint32_t **resultp,
228 const uint32_t *format, ...);
230 u32_u32_asnprintf (uint32_t *resultbuf, size_t *lengthp,
231 const uint32_t *format, ...);
233 u32_u32_vsprintf (uint32_t *buf,
234 const uint32_t *format, va_list ap);
236 u32_u32_vsnprintf (uint32_t *buf, size_t size,
237 const uint32_t *format, va_list ap);
239 u32_u32_vasprintf (uint32_t **resultp,
240 const uint32_t *format, va_list ap);
242 u32_u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp,
243 const uint32_t *format, va_list ap);
245 /* ASCII format string, output to FILE in locale dependent encoding. */
247 ulc_fprintf (FILE *stream,
248 const char *format, ...);
250 ulc_vfprintf (FILE *stream,
251 const char *format, va_list ap);
257 #endif /* _UNISTDIO_H */