Sat, 11 Nov 2017 12:22:16 +0100
UiInteger uses int64 now
0 | 1 | /* |
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | |
3 | * | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
4 | * Copyright 2015 Olaf Wintermann. All rights reserved. |
0 | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | |
7 | * modification, are permitted provided that the following conditions are met: | |
8 | * | |
9 | * 1. Redistributions of source code must retain the above copyright | |
10 | * notice, this list of conditions and the following disclaimer. | |
11 | * | |
12 | * 2. Redistributions in binary form must reproduce the above copyright | |
13 | * notice, this list of conditions and the following disclaimer in the | |
14 | * documentation and/or other materials provided with the distribution. | |
15 | * | |
16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
26 | * POSSIBILITY OF SUCH DAMAGE. | |
27 | */ | |
28 | /** | |
29 | * Bounded string implementation. | |
30 | * | |
31 | * The UCX strings (<code>sstr_t</code>) provide an alternative to C strings. | |
32 | * The main difference to C strings is, that <code>sstr_t</code> does <b>not | |
33 | * need to be <code>NULL</code>-terminated</b>. Instead the length is stored | |
34 | * within the structure. | |
35 | * | |
36 | * When using <code>sstr_t</code>, developers must be full aware of what type | |
37 | * of string (<code>NULL</code>-terminated) or not) they are using, when | |
38 | * accessing the <code>char* ptr</code> directly. | |
39 | * | |
40 | * The UCX string module provides some common string functions, known from | |
41 | * standard libc, working with <code>sstr_t</code>. | |
42 | * | |
43 | * @file string.h | |
44 | * @author Mike Becker | |
45 | * @author Olaf Wintermann | |
46 | */ | |
47 | ||
48 | #ifndef UCX_STRING_H | |
49 | #define UCX_STRING_H | |
50 | ||
51 | #include "ucx.h" | |
52 | #include "allocator.h" | |
53 | #include <stddef.h> | |
54 | ||
55 | /** Shortcut for a <code>sstr_t struct</code> literal. */ | |
56 | #define ST(s) { (char*)s, sizeof(s)-1 } | |
57 | ||
58 | /** Shortcut for the conversion of a C string to a <code>sstr_t</code>. */ | |
59 | #define S(s) sstrn((char*)s, sizeof(s)-1) | |
60 | ||
61 | #ifdef __cplusplus | |
62 | extern "C" { | |
63 | #endif | |
64 | ||
65 | /** | |
66 | * The UCX string structure. | |
67 | */ | |
68 | typedef struct { | |
69 | /** A reference to the string (<b>not necessarily <code>NULL</code> | |
70 | * -terminated</b>) */ | |
71 | char *ptr; | |
72 | /** The length of the string */ | |
73 | size_t length; | |
74 | } sstr_t; | |
75 | ||
76 | /** | |
77 | * Creates a new sstr_t based on a C string. | |
78 | * | |
79 | * The length is implicitly inferred by using a call to <code>strlen()</code>. | |
80 | * | |
81 | * <b>Note:</b> the sstr_t will hold a <i>reference</i> to the C string. If you | |
82 | * do want a copy, use sstrdup() on the return value of this function. | |
83 | * | |
84 | * @param cstring the C string to wrap | |
85 | * @return a new sstr_t containing the C string | |
86 | * | |
87 | * @see sstrn() | |
88 | */ | |
89 | sstr_t sstr(char *cstring); | |
90 | ||
91 | /** | |
92 | * Creates a new sstr_t of the specified length based on a C string. | |
93 | * | |
94 | * <b>Note:</b> the sstr_t will hold a <i>reference</i> to the C string. If you | |
95 | * do want a copy, use sstrdup() on the return value of this function. | |
96 | * | |
97 | * @param cstring the C string to wrap | |
98 | * @param length the length of the string | |
99 | * @return a new sstr_t containing the C string | |
100 | * | |
101 | * @see sstr() | |
102 | * @see S() | |
103 | */ | |
104 | sstr_t sstrn(char *cstring, size_t length); | |
105 | ||
106 | ||
107 | /** | |
108 | * Returns the cumulated length of all specified strings. | |
109 | * | |
110 | * At least one string must be specified. | |
111 | * | |
112 | * <b>Attention:</b> if the count argument does not match the count of the | |
113 | * specified strings, the behavior is undefined. | |
114 | * | |
115 | * @param count the total number of specified strings (so at least 1) | |
116 | * @param string the first string | |
117 | * @param ... all other strings | |
118 | * @return the cumulated length of all strings | |
119 | */ | |
120 | size_t sstrnlen(size_t count, sstr_t string, ...); | |
121 | ||
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
122 | /** |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
123 | * Concatenates two or more strings. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
124 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
125 | * The resulting string will be allocated by standard <code>malloc()</code>. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
126 | * So developers <b>MUST</b> pass the sstr_t.ptr to <code>free()</code>. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
127 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
128 | * The sstr_t.ptr of the return value will <i>always</i> be <code>NULL</code>- |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
129 | * terminated. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
130 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
131 | * @param count the total number of strings to concatenate |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
132 | * @param s1 first string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
133 | * @param s2 second string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
134 | * @param ... all remaining strings |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
135 | * @return the concatenated string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
136 | */ |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
137 | sstr_t sstrcat(size_t count, sstr_t s1, sstr_t s2, ...); |
0 | 138 | |
139 | /** | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
140 | * Concatenates two or more strings using an UcxAllocator. |
0 | 141 | * |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
142 | * See sstrcat() for details. |
0 | 143 | * |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
144 | * @param a the allocator to use |
0 | 145 | * @param count the total number of strings to concatenate |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
146 | * @param s1 first string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
147 | * @param s2 second string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
148 | * @param ... all remaining strings |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
149 | * @return the concatenated string |
0 | 150 | */ |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
151 | sstr_t sstrcat_a(UcxAllocator *a, size_t count, sstr_t s1, sstr_t s2, ...); |
0 | 152 | |
153 | ||
154 | /** | |
155 | * Returns a substring starting at the specified location. | |
156 | * | |
157 | * <b>Attention:</b> the new string references the same memory area as the | |
158 | * input string and will <b>NOT</b> be <code>NULL</code>-terminated. | |
159 | * Use sstrdup() to get a copy. | |
160 | * | |
161 | * @param string input string | |
162 | * @param start start location of the substring | |
163 | * @return a substring of <code>string</code> starting at <code>start</code> | |
164 | * | |
165 | * @see sstrsubsl() | |
166 | * @see sstrchr() | |
167 | */ | |
168 | sstr_t sstrsubs(sstr_t string, size_t start); | |
169 | ||
170 | /** | |
171 | * Returns a substring with a maximum length starting at the specified location. | |
172 | * | |
173 | * <b>Attention:</b> the new string references the same memory area as the | |
174 | * input string and will <b>NOT</b> be <code>NULL</code>-terminated. | |
175 | * Use sstrdup() to get a copy. | |
176 | * | |
177 | * @param string input string | |
178 | * @param start start location of the substring | |
179 | * @param length the maximum length of the substring | |
180 | * @return a substring of <code>string</code> starting at <code>start</code> | |
181 | * with a maximum length of <code>length</code> | |
182 | * | |
183 | * @see sstrsubs() | |
184 | * @see sstrchr() | |
185 | */ | |
186 | sstr_t sstrsubsl(sstr_t string, size_t start, size_t length); | |
187 | ||
188 | /** | |
189 | * Returns a substring starting at the location of the first occurrence of the | |
190 | * specified character. | |
191 | * | |
192 | * If the string does not contain the character, an empty string is returned. | |
193 | * | |
194 | * @param string the string where to locate the character | |
195 | * @param chr the character to locate | |
196 | * @return a substring starting at the first location of <code>chr</code> | |
197 | * | |
198 | * @see sstrsubs() | |
199 | */ | |
200 | sstr_t sstrchr(sstr_t string, int chr); | |
201 | ||
202 | /** | |
203 | * Returns a substring starting at the location of the last occurrence of the | |
204 | * specified character. | |
205 | * | |
206 | * If the string does not contain the character, an empty string is returned. | |
207 | * | |
208 | * @param string the string where to locate the character | |
209 | * @param chr the character to locate | |
210 | * @return a substring starting at the last location of <code>chr</code> | |
211 | * | |
212 | * @see sstrsubs() | |
213 | */ | |
214 | sstr_t sstrrchr(sstr_t string, int chr); | |
215 | ||
216 | /** | |
217 | * Splits a string into parts by using a delimiter string. | |
218 | * | |
219 | * This function will return <code>NULL</code>, if one of the following happens: | |
220 | * <ul> | |
221 | * <li>the string length is zero</li> | |
222 | * <li>the delimeter length is zero</li> | |
223 | * <li>the string equals the delimeter</li> | |
224 | * <li>memory allocation fails</li> | |
225 | * </ul> | |
226 | * | |
227 | * The integer referenced by <code>count</code> is used as input and determines | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
228 | * the maximum size of the resulting array, i.e. the maximum count of splits to |
0 | 229 | * perform + 1. |
230 | * | |
231 | * The integer referenced by <code>count</code> is also used as output and is | |
232 | * set to | |
233 | * <ul> | |
234 | * <li>-2, on memory allocation errors</li> | |
235 | * <li>-1, if either the string or the delimiter is an empty string</li> | |
236 | * <li>0, if the string equals the delimiter</li> | |
237 | * <li>1, if the string does not contain the delimiter</li> | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
238 | * <li>the count of array items, otherwise</li> |
0 | 239 | * </ul> |
240 | * | |
241 | * If the string starts with the delimiter, the first item of the resulting | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
242 | * array will be an empty string. |
0 | 243 | * |
244 | * If the string ends with the delimiter and the maximum list size is not | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
245 | * exceeded, the last array item will be an empty string. |
0 | 246 | * |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
247 | * <b>Attention:</b> The array pointer <b>AND</b> all sstr_t.ptr of the array |
0 | 248 | * items must be manually passed to <code>free()</code>. Use sstrsplit_a() with |
249 | * an allocator to managed memory, to avoid this. | |
250 | * | |
251 | * @param string the string to split | |
252 | * @param delim the delimiter string | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
253 | * @param count IN: the maximum size of the resulting array (0 = no limit), |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
254 | * OUT: the actual size of the array |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
255 | * @return a sstr_t array containing the split strings or |
0 | 256 | * <code>NULL</code> on error |
257 | * | |
258 | * @see sstrsplit_a() | |
259 | */ | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
260 | sstr_t* sstrsplit(sstr_t string, sstr_t delim, ssize_t *count); |
0 | 261 | |
262 | /** | |
263 | * Performing sstrsplit() using an UcxAllocator. | |
264 | * | |
265 | * <i>Read the description of sstrsplit() for details.</i> | |
266 | * | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
267 | * The memory for the sstr_t.ptr pointers of the array items and the memory for |
0 | 268 | * the sstr_t array itself are allocated by using the UcxAllocator.malloc() |
269 | * function. | |
270 | * | |
271 | * <b>Note:</b> the allocator is not used for memory that is freed within the | |
272 | * same call of this function (locally scoped variables). | |
273 | * | |
274 | * @param allocator the UcxAllocator used for allocating memory | |
275 | * @param string the string to split | |
276 | * @param delim the delimiter string | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
277 | * @param count IN: the maximum size of the resulting array (0 = no limit), |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
278 | * OUT: the actual size of the array |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
279 | * @return a sstr_t array containing the split strings or |
0 | 280 | * <code>NULL</code> on error |
281 | * | |
282 | * @see sstrsplit() | |
283 | */ | |
284 | sstr_t* sstrsplit_a(UcxAllocator *allocator, sstr_t string, sstr_t delim, | |
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
285 | ssize_t *count); |
0 | 286 | |
287 | /** | |
288 | * Compares two UCX strings with standard <code>memcmp()</code>. | |
289 | * | |
290 | * At first it compares the sstr_t.length attribute of the two strings. The | |
291 | * <code>memcmp()</code> function is called, if and only if the lengths match. | |
292 | * | |
293 | * @param s1 the first string | |
294 | * @param s2 the second string | |
295 | * @return -1, if the length of s1 is less than the length of s2 or 1, if the | |
296 | * length of s1 is greater than the length of s2 or the result of | |
297 | * <code>memcmp()</code> otherwise (i.e. 0 if the strings match) | |
298 | */ | |
299 | int sstrcmp(sstr_t s1, sstr_t s2); | |
300 | ||
301 | /** | |
302 | * Compares two UCX strings ignoring the case. | |
303 | * | |
304 | * At first it compares the sstr_t.length attribute of the two strings. If and | |
305 | * only if the lengths match, both strings are compared char by char ignoring | |
306 | * the case. | |
307 | * | |
308 | * @param s1 the first string | |
309 | * @param s2 the second string | |
310 | * @return -1, if the length of s1 is less than the length of s2 or 1, if the | |
311 | * length of s1 is greater than the length of s2 or the difference between the | |
312 | * first two differing characters otherwise (i.e. 0 if the strings match and | |
313 | * no characters differ) | |
314 | */ | |
315 | int sstrcasecmp(sstr_t s1, sstr_t s2); | |
316 | ||
317 | /** | |
318 | * Creates a duplicate of the specified string. | |
319 | * | |
320 | * The new sstr_t will contain a copy allocated by standard | |
321 | * <code>malloc()</code>. So developers <b>MUST</b> pass the sstr_t.ptr to | |
322 | * <code>free()</code>. | |
323 | * | |
324 | * The sstr_t.ptr of the return value will <i>always</i> be <code>NULL</code>- | |
325 | * terminated. | |
326 | * | |
327 | * @param string the string to duplicate | |
328 | * @return a duplicate of the string | |
329 | * @see sstrdup_a() | |
330 | */ | |
331 | sstr_t sstrdup(sstr_t string); | |
332 | ||
333 | /** | |
334 | * Creates a duplicate of the specified string using an UcxAllocator. | |
335 | * | |
336 | * The new sstr_t will contain a copy allocated by the allocators | |
337 | * ucx_allocator_malloc function. So it is implementation depended, whether the | |
338 | * returned sstr_t.ptr pointer must be passed to the allocators | |
339 | * ucx_allocator_free function manually. | |
340 | * | |
341 | * The sstr_t.ptr of the return value will <i>always</i> be <code>NULL</code>- | |
342 | * terminated. | |
343 | * | |
344 | * @param allocator a valid instance of an UcxAllocator | |
345 | * @param string the string to duplicate | |
346 | * @return a duplicate of the string | |
347 | * @see sstrdup() | |
348 | */ | |
349 | sstr_t sstrdup_a(UcxAllocator *allocator, sstr_t string); | |
350 | ||
351 | /** | |
352 | * Omits leading and trailing spaces. | |
353 | * | |
354 | * This function returns a new sstr_t containing a trimmed version of the | |
355 | * specified string. | |
356 | * | |
357 | * <b>Note:</b> the new sstr_t references the same memory, thus you | |
358 | * <b>MUST NOT</b> pass the sstr_t.ptr of the return value to | |
359 | * <code>free()</code>. It is also highly recommended to avoid assignments like | |
360 | * <code>mystr = sstrtrim(mystr);</code> as you lose the reference to the | |
361 | * source string. Assignments of this type are only permitted, if the | |
362 | * sstr_t.ptr of the source string does not need to be freed or if another | |
363 | * reference to the source string exists. | |
364 | * | |
365 | * @param string the string that shall be trimmed | |
366 | * @return a new sstr_t containing the trimmed string | |
367 | */ | |
368 | sstr_t sstrtrim(sstr_t string); | |
369 | ||
370 | /** | |
371 | * Checks, if a string has a specific prefix. | |
372 | * @param string the string to check | |
373 | * @param prefix the prefix the string should have | |
374 | * @return 1, if and only if the string has the specified prefix, 0 otherwise | |
375 | */ | |
376 | int sstrprefix(sstr_t string, sstr_t prefix); | |
377 | ||
378 | /** | |
379 | * Checks, if a string has a specific suffix. | |
380 | * @param string the string to check | |
381 | * @param suffix the suffix the string should have | |
382 | * @return 1, if and only if the string has the specified suffix, 0 otherwise | |
383 | */ | |
384 | int sstrsuffix(sstr_t string, sstr_t suffix); | |
385 | ||
124
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
386 | /** |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
387 | * Returns a lower case version of a string. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
388 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
389 | * This function creates a duplicate of the input string, first. See the |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
390 | * documentation of sstrdup() for the implications. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
391 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
392 | * @param string the input string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
393 | * @return the resulting lower case string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
394 | * @see sstrdup() |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
395 | */ |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
396 | sstr_t sstrlower(sstr_t string); |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
397 | |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
398 | /** |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
399 | * Returns a lower case version of a string. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
400 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
401 | * This function creates a duplicate of the input string, first. See the |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
402 | * documentation of sstrdup_a() for the implications. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
403 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
404 | * @param allocator the allocator used for duplicating the string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
405 | * @param string the input string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
406 | * @return the resulting lower case string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
407 | * @see sstrdup_a() |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
408 | */ |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
409 | sstr_t sstrlower_a(UcxAllocator *allocator, sstr_t string); |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
410 | |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
411 | /** |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
412 | * Returns a upper case version of a string. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
413 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
414 | * This function creates a duplicate of the input string, first. See the |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
415 | * documentation of sstrdup() for the implications. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
416 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
417 | * @param string the input string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
418 | * @return the resulting upper case string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
419 | * @see sstrdup() |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
420 | */ |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
421 | sstr_t sstrupper(sstr_t string); |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
422 | |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
423 | /** |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
424 | * Returns a upper case version of a string. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
425 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
426 | * This function creates a duplicate of the input string, first. See the |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
427 | * documentation of sstrdup_a() for the implications. |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
428 | * |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
429 | * @param allocator the allocator used for duplicating the string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
430 | * @param string the input string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
431 | * @return the resulting upper case string |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
432 | * @see sstrdup_a() |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
433 | */ |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
434 | sstr_t sstrupper_a(UcxAllocator *allocator, sstr_t string); |
80609f9675f1
added support for icons for the table widget (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
435 | |
0 | 436 | #ifdef __cplusplus |
437 | } | |
438 | #endif | |
439 | ||
440 | #endif /* UCX_STRING_H */ |