Rudiments
ucs2charstring.h
1// Copyright (c) 1999-2018 David Muse
2// See the COPYING file for more information.
3
4#ifndef RUDIMENTS_UCS2CHARSTRING_H
5#define RUDIMENTS_UCS2CHARSTRING_H
6
7#include <rudiments/private/ucs2charstringincludes.h>
8
9#define ucs2literal(___ucs2charstrvar,___charstrvar) \
10 ucs2_t ___ucs2charstrvar##array[sizeof(___charstrvar)/sizeof(char)]; \
11 { \
12 const char *___charstrptr=___charstrvar; \
13 ucs2_t *___ucs2strptr=___ucs2charstrvar##array; \
14 while (*___charstrptr) { \
15 *___ucs2strptr=(ucs2_t)(*___charstrptr); \
16 ___charstrptr++; \
17 ___ucs2strptr++; \
18 } \
19 *___ucs2strptr=(ucs2_t)'\0'; \
20 } \
21 const ucs2_t *___ucs2charstrvar=___ucs2charstrvar##array
22
25class RUDIMENTS_DLLSPEC ucs2charstring {
26 public:
27
29 static size_t getLength(const ucs2_t *string);
30
33 static size_t getSize(const ucs2_t *string);
34
36 static bool isNullOrEmpty(const ucs2_t *string);
37
45 static bool isYes(const ucs2_t *string);
46
53 static bool isNo(const ucs2_t *string);
54
60 static void zero(ucs2_t *str, size_t len);
61
66 const ucs2_t *source);
67
72 const ucs2_t *source,
73 size_t len);
74
80
86
91 double number);
92
98 double number,
99 uint16_t scale);
100
106 double number,
108 uint16_t scale);
109
114 const ucs2_t *source);
115
120 const ucs2_t *source,
121 size_t len);
122
128 size_t location,
129 const ucs2_t *source);
130
136 size_t location,
137 const ucs2_t *source,
138 size_t len);
139
145 size_t destlen,
146 const ucs2_t *source);
147
153 size_t destlen,
154 const ucs2_t *source,
155 size_t sourcelen);
156
159 static int32_t compare(const ucs2_t *str1,
160 const ucs2_t *str2);
161
165 static int32_t compare(const ucs2_t *str1,
166 const ucs2_t *str2,
167 size_t length);
168
172 const ucs2_t *str2);
173
178 const ucs2_t *str2,
179 size_t len);
180
187 const ucs2_t *str2);
188
200 const ucs2_t *str2,
201 const ucs2_t *delimiters);
202
207 const ucs2_t *str2);
208
218 const ucs2_t *str2,
219 const ucs2_t *delimiters);
220
231 static bool compareWithWildcards(const ucs2_t *string,
232 size_t stringlength,
233 const ucs2_t *pattern,
234 size_t patternlength,
237
247 static bool compareWithWildcards(const ucs2_t *string,
248 const ucs2_t *pattern,
249 size_t patternlength,
252
262 static bool compareWithWildcards(const ucs2_t *string,
263 size_t stringlength,
264 const ucs2_t *pattern,
267
276 static bool compareWithWildcards(const ucs2_t *string,
277 const ucs2_t *pattern,
280
285 static bool isInSet(const ucs2_t *str,
286 const ucs2_t * const *set);
287
292 static bool isInSetIgnoringCase(const ucs2_t *str,
293 const ucs2_t * const *set);
294
297 static bool contains(const ucs2_t *haystack,
298 const ucs2_t *needle);
299
303 const ucs2_t *needle);
304
307 static bool contains(const ucs2_t *haystack,
308 ucs2_t needle);
309
313 ucs2_t needle);
314
317 static bool startsWith(const ucs2_t *haystack,
318 const ucs2_t *needle);
319
322 static bool endsWith(const ucs2_t *haystack,
323 const ucs2_t *needle);
324
327 static const ucs2_t *findFirst(const ucs2_t *haystack,
328 const ucs2_t *needle);
329
333 const ucs2_t *haystack,
334 const ucs2_t *needle);
335
338 static const ucs2_t *findFirst(const ucs2_t *haystack,
339 ucs2_t needle);
340
344 const ucs2_t *haystack,
345 ucs2_t needle);
346
350 static const ucs2_t *findFirstOrEnd(
351 const ucs2_t *haystack,
352 const ucs2_t *needle);
353
358 const ucs2_t *haystack,
359 const ucs2_t *needle);
360
364 static const ucs2_t *findFirstOrEnd(
365 const ucs2_t *haystack,
366 ucs2_t needle);
367
372 const ucs2_t *haystack,
373 ucs2_t needle);
374
377 static const ucs2_t *findLast(const ucs2_t *haystack,
378 const ucs2_t *needle);
379
383 const ucs2_t *haystack,
384 const ucs2_t *needle);
385
388 static const ucs2_t *findLast(const ucs2_t *haystack,
389 ucs2_t needle);
390
394 const ucs2_t *haystack,
395 ucs2_t needle);
396
400 const ucs2_t *needle);
401
406 const ucs2_t *needle);
407
411 ucs2_t needle);
412
417 ucs2_t needle);
418
423 const ucs2_t *needle);
424
430 const ucs2_t *needle);
431
435 const ucs2_t *needle);
436
441 const ucs2_t *needle);
442
446 ucs2_t needle);
447
452 ucs2_t needle);
453
457 static const ucs2_t *findFirstOfSet(
458 const ucs2_t *haystack,
459 const ucs2_t *set);
460
465 const ucs2_t *set);
466
472 const ucs2_t *haystack,
473 const ucs2_t *set);
474
481 const ucs2_t *set);
482
486 static const ucs2_t *findLastOfSet(
487 const ucs2_t *haystack,
488 const ucs2_t *set);
489
494 const ucs2_t *set);
495
501 const ucs2_t *haystack,
502 const ucs2_t *set);
503
510 const ucs2_t *set);
511
531 bool backslash,
532 bool doubling);
533
552 const ucs2_t *string,
554 bool backslash,
555 bool doubling);
556
576 size_t stringlen,
578 bool backslash,
579 bool doubling);
580
600 const ucs2_t *string,
601 size_t stringlen,
603 bool backslash,
604 bool doubling);
605
627 bool backslash,
628 bool doubling);
629
651 const ucs2_t *string,
652 bool backslash,
653 bool doubling);
654
677 size_t stringlen,
678 bool backslash,
679 bool doubling);
680
703 const ucs2_t *string,
704 size_t stringlen,
705 bool backslash,
706 bool doubling);
707
712 static ucs2_t *isBefore(const ucs2_t *str,
713 const ucs2_t *delimiter);
714
719 static ucs2_t *isBetween(const ucs2_t *str,
720 const ucs2_t *start,
721 const ucs2_t *end);
722
728 static ucs2_t *isAfter(const ucs2_t *str,
729 const ucs2_t *delimiter);
730
735 const ucs2_t *haystack,
736 const ucs2_t *set);
737
742 const ucs2_t *haystack,
743 const ucs2_t *set);
744
753 static ucs2_t *duplicate(const char *str);
754
763 static ucs2_t *duplicate(const char *str, size_t len);
764
775 static ucs2_t *duplicate(const char *str, bool bigendian);
776
787 static ucs2_t *duplicate(const char *str,
788 size_t len,
789 bool bigendian);
790
797 static ucs2_t *duplicate(const ucs2_t *str);
798
805 static ucs2_t *duplicate(const ucs2_t *str, size_t len);
806
817 static ucs2_t *duplicate(const wchar_t *str);
818
830 static ucs2_t *duplicate(const wchar_t *str, size_t len);
831
844 static ucs2_t *duplicate(const wchar_t *str, bool bigendian);
845
859 static ucs2_t *duplicate(const wchar_t *str, size_t len,
860 bool bigendian);
861
872 static ucs2_t *duplicate(const wchar_t *str,
874
886 static ucs2_t *duplicate(const wchar_t *str,
887 size_t len,
889
902 static ucs2_t *duplicate(const wchar_t *str,
904 bool bigendian);
905
919 static ucs2_t *duplicate(const wchar_t *str,
920 size_t len,
922 bool bigendian);
923
925 static void upper(ucs2_t *str);
926
928 static void lower(ucs2_t *str);
929
932 static void capitalize(ucs2_t *str);
933
935 static void rightTrim(ucs2_t *str);
936
940
942 static void leftTrim(ucs2_t *str);
943
947
949 static void bothTrim(ucs2_t *str);
950
953
958
962 static bool strip(ucs2_t *str1, const ucs2_t *str2);
963
967 static bool stripSet(ucs2_t *str1, const ucs2_t *set);
968
971 static void replace(ucs2_t *str,
974
977 static void replace(ucs2_t *str,
978 const ucs2_t *oldchars,
980
984 static ucs2_t *replace(const ucs2_t *str,
985 const ucs2_t *oldstr,
986 const ucs2_t *newstr);
987
994 static ucs2_t *replace(const ucs2_t *str,
995 const ucs2_t * const *oldstrset,
996 const ucs2_t * const *newstrset);
997
1005 static ucs2_t *replace(const ucs2_t *str,
1006 const ucs2_t * const *oldstrset,
1007 size_t *oldstrlen,
1008 const ucs2_t * const *newstrset);
1009
1014 ucs2_t newchar);
1015
1019 const ucs2_t *oldchars,
1020 ucs2_t newchar);
1021
1026 const ucs2_t *oldstr,
1027 const ucs2_t *newstr);
1028
1036 const ucs2_t * const *oldstrset,
1037 const ucs2_t * const *newstrset);
1038
1047 const ucs2_t * const *oldstrset,
1048 size_t *oldstrlen,
1049 const ucs2_t * const *newstrset);
1050
1054
1058
1062
1066
1070
1074
1077 static bool isInteger(const ucs2_t *val);
1078
1081 static bool isInteger(const ucs2_t *val, int32_t len);
1082
1085 static bool isNumber(const ucs2_t *val);
1086
1089 static bool isNumber(const ucs2_t *val, int32_t len);
1090
1095
1100
1106
1112
1117
1122
1128
1134
1139
1144
1150
1156
1157
1161 static ucs2_t *parseNumber(float number);
1162
1167 uint16_t scale);
1168
1174 uint16_t scale);
1175
1179 static ucs2_t *parseNumber(double number);
1180
1184 static ucs2_t *parseNumber(double number,
1185 uint16_t scale);
1186
1190 static ucs2_t *parseNumber(double number,
1192 uint16_t scale);
1193
1197 static ucs2_t *parseNumber(long double number);
1198
1202 static ucs2_t *parseNumber(long double number,
1203 uint16_t scale);
1204
1208 static ucs2_t *parseNumber(long double number,
1210 uint16_t scale);
1211
1213 static int64_t convertToInteger(const ucs2_t *string);
1214
1218 static int64_t convertToInteger(const ucs2_t *string,
1219 const ucs2_t **endptr);
1220
1222 static int64_t convertToInteger(const ucs2_t *string,
1223 int32_t base);
1224
1228 static int64_t convertToInteger(const ucs2_t *string,
1229 const ucs2_t **endptr,
1230 int32_t base);
1231
1234 const ucs2_t *string);
1235
1240 const ucs2_t *string,
1241 const ucs2_t **endptr);
1242
1246 const ucs2_t *string,
1247 int32_t base);
1248
1254 const ucs2_t *string,
1255 const ucs2_t **endptr,
1256 int32_t base);
1257
1258
1260 static long double convertToFloat(const ucs2_t *string);
1261
1271 static long double convertToFloatC(const ucs2_t *string);
1272
1276 static long double convertToFloat(const ucs2_t *string,
1277 const ucs2_t **endptr);
1278
1282
1286
1294
1295
1300 static ucs2_t *escape(const ucs2_t *input,
1301 const ucs2_t *characters);
1302
1307 static ucs2_t *unescape(const ucs2_t *input);
1308
1312 static void escape(const ucs2_t *input,
1314 ucs2_t **output,
1316 const ucs2_t *characters);
1317
1321 static void unescape(const ucs2_t *input,
1323 ucs2_t **output,
1325
1331
1337
1341 static void center(ucs2_t *str, int32_t len);
1342
1349 static ucs2_t *pad(const ucs2_t *string,
1353
1362 static void split(const ucs2_t *string,
1363 size_t stringlength,
1364 const ucs2_t *delimiter,
1365 size_t delimiterlength,
1366 bool collapse,
1367 ucs2_t ***list,
1369
1377 static void split(const ucs2_t *string,
1378 const ucs2_t *delimiter,
1379 size_t delimiterlength,
1380 bool collapse,
1381 ucs2_t ***list,
1383
1391 static void split(const ucs2_t *string,
1392 size_t stringlength,
1393 const ucs2_t *delimiter,
1394 bool collapse,
1395 ucs2_t ***list,
1397
1405 static void split(const ucs2_t *string,
1406 const ucs2_t *delimiter,
1407 bool collapse,
1408 ucs2_t ***list,
1410
1415 size_t start, size_t end);
1416
1420 static ucs2_t *getSubString(const ucs2_t *str, size_t start);
1421
1425 const ucs2_t *src,
1426 uint64_t index);
1427
1434
1442 bool onethousand);
1443
1448
1456 bool onethousand);
1457
1461 static ucs2_t *getHumanReadable(long double number);
1462
1469 static ucs2_t *getHumanReadable(long double number,
1470 bool onethousand);
1471
1474 static bool isByteOrderMark(const ucs2_t *str);
1475
1478 static bool isBigEndian(const ucs2_t *str);
1479
1500 static ssize_t printf(ucs2_t *buffer, size_t len,
1501 const ucs2_t *format, ...);
1502
1526 static ssize_t printf(ucs2_t *buffer, size_t len,
1527 const ucs2_t *format,
1528 va_list *argp);
1529
1544 static ssize_t printf(ucs2_t **buffer,
1545 const ucs2_t *format, ...);
1546
1561 static ssize_t printf(ucs2_t **buffer,
1562 const ucs2_t *format,
1563 va_list *argp);
1564
1567 static bool supportsPrintf();
1568
1569 #include <rudiments/private/ucs2charstring.h>
1570};
1571
1572#endif
Definition avltree.h:11
Definition character.h:11
Definition input.h:11
Definition output.h:11
Definition ucs2charstring.h:25
static ucs2_t * getHumanReadable(long double number)
static ucs2_t * duplicate(const wchar_t *str, size_t len, bool bigendian)
static void rightJustify(ucs2_t *str, int32_t len)
static ucs2_t * convertAmount(int64_t amount, uint16_t padding)
static ucs2_t * escape(const ucs2_t *input, const ucs2_t *characters)
static void zero(ucs2_t *str, size_t len)
static ucs2_t * isBefore(const ucs2_t *str, const ucs2_t *delimiter)
static const ucs2_t * findFirstOrEndIgnoringCase(const ucs2_t *haystack, ucs2_t needle)
static const ucs2_t * findLastOfSetOrEnd(const ucs2_t *haystack, const ucs2_t *set)
static ucs2_t * append(ucs2_t *dest, int64_t number)
static ucs2_t * duplicate(const ucs2_t *str, size_t len)
static long double convertToFloatC(const ucs2_t *string)
static bool compareWithWildcards(const ucs2_t *string, const ucs2_t *pattern, ucs2_t singlewildcard, ucs2_t multiwildcard)
static ucs2_t * duplicate(const wchar_t *str, ucs2_t replacement)
static ucs2_t * findLastIgnoringCase(ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * findFirst(ucs2_t *haystack, ucs2_t needle)
static ucs2_t * getHumanReadable(long double number, bool onethousand)
static void replaceIgnoringCase(ucs2_t *str, ucs2_t oldchar, ucs2_t newchar)
static uint64_t convertToUnsignedInteger(const ucs2_t *string, const ucs2_t **endptr, int32_t base)
static ucs2_t * duplicate(const char *str, bool bigendian)
static ucs2_t * parseNumber(int32_t number)
static ssize_t printf(ucs2_t **buffer, const ucs2_t *format, va_list *argp)
static bool isInteger(const ucs2_t *val)
static bool isInSetIgnoringCase(const ucs2_t *str, const ucs2_t *const *set)
static ssize_t printf(ucs2_t *buffer, size_t len, const ucs2_t *format,...)
static ucs2_t * replaceIgnoringCase(const ucs2_t *str, const ucs2_t *const *oldstrset, const ucs2_t *const *newstrset)
static bool isNo(const ucs2_t *string)
static void escape(const ucs2_t *input, uint64_t inputlength, ucs2_t **output, uint64_t *outputlength, const ucs2_t *characters)
static void unescape(const ucs2_t *input, uint64_t inputlength, ucs2_t **output, uint64_t *outputlength)
static ucs2_t * findFirstOrEndIgnoringCase(ucs2_t *haystack, const ucs2_t *needle)
static void replaceIgnoringCase(ucs2_t *str, const ucs2_t *oldchars, ucs2_t newchar)
static uint16_t getIntegerLength(int32_t number)
static bool contains(const ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * parseNumber(long double number)
static uint64_t convertToUnsignedInteger(const ucs2_t *string, const ucs2_t **endptr)
static ucs2_t * duplicate(const wchar_t *str, size_t len, ucs2_t replacement, bool bigendian)
static ucs2_t * findLast(ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * replace(const ucs2_t *str, const ucs2_t *const *oldstrset, size_t *oldstrlen, const ucs2_t *const *newstrset)
static ucs2_t * findFirstIgnoringCase(ucs2_t *haystack, const ucs2_t *needle)
static bool isYes(const ucs2_t *string)
static bool compareWithWildcards(const ucs2_t *string, const ucs2_t *pattern, size_t patternlength, ucs2_t singlewildcard, ucs2_t multiwildcard)
static uint64_t convertToUnsignedInteger(const ucs2_t *string)
static ucs2_t * duplicate(const ucs2_t *str)
static long double convertToFloat(const ucs2_t *string)
static int32_t compareVersions(const ucs2_t *str1, const ucs2_t *str2, const ucs2_t *delimiters)
static const ucs2_t * findEndOfQuotedString(const ucs2_t *string, size_t stringlen, bool backslash, bool doubling)
static const ucs2_t * findEndOfQuotedString(const ucs2_t *string, size_t stringlen, ucs2_t quote, bool backslash, bool doubling)
static ucs2_t * findLastOfSet(ucs2_t *haystack, const ucs2_t *set)
static ucs2_t * parseNumber(int64_t number, uint16_t zeropadding)
static const ucs2_t * findFirstOrEnd(const ucs2_t *haystack, ucs2_t needle)
static ucs2_t * parseNumber(int16_t number, uint16_t zeropadding)
static bool strip(ucs2_t *str1, const ucs2_t *str2)
static void replace(ucs2_t *str, ucs2_t oldchar, ucs2_t newchar)
static ucs2_t * parseNumber(float number, uint16_t scale)
static int32_t compare(const ucs2_t *str1, const ucs2_t *str2)
static ucs2_t * findEndOfQuotedString(ucs2_t *string, size_t stringlen, bool backslash, bool doubling)
static void replace(ucs2_t *str, const ucs2_t *oldchars, ucs2_t newchar)
static ucs2_t * findFirstOfSet(ucs2_t *haystack, const ucs2_t *set)
static ucs2_t * copy(ucs2_t *dest, const ucs2_t *source)
static int32_t compareNatural(const ucs2_t *str1, const ucs2_t *str2, const ucs2_t *delimiters)
static ucs2_t * parseNumber(long double number, uint16_t precision, uint16_t scale)
static int64_t convertToInteger(const ucs2_t *string)
static ucs2_t * getSubString(const ucs2_t *str, size_t start)
static ucs2_t * parseNumber(double number, uint16_t precision, uint16_t scale)
static ssize_t printf(ucs2_t *buffer, size_t len, const ucs2_t *format, va_list *argp)
static const ucs2_t * findLast(const ucs2_t *haystack, ucs2_t needle)
static int32_t compareNatural(const ucs2_t *str1, const ucs2_t *str2)
static const ucs2_t * findLastIgnoringCase(const ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * getHumanReadable(int64_t number)
static ucs2_t * duplicate(const wchar_t *str, size_t len)
static bool containsIgnoringCase(const ucs2_t *haystack, const ucs2_t *needle)
static bool strip(ucs2_t *str, ucs2_t character)
static uint16_t getIntegerLength(int64_t number)
static uint64_t convertToUnsignedInteger(const ucs2_t *string, int32_t base)
static ucs2_t * duplicate(const char *str)
static ucs2_t * parseNumber(float number, uint16_t precision, uint16_t scale)
static void lower(ucs2_t *str)
static ucs2_t * duplicate(const char *str, size_t len)
static ucs2_t * parseNumber(uint32_t number, uint16_t zeropadding)
static ucs2_t * parseNumber(uint64_t number, uint16_t zeropadding)
static ucs2_t * duplicate(const wchar_t *str, ucs2_t replacement, bool bigendian)
static bool compareWithWildcards(const ucs2_t *string, size_t stringlength, const ucs2_t *pattern, size_t patternlength, ucs2_t singlewildcard, ucs2_t multiwildcard)
static size_t getSize(const ucs2_t *string)
static const ucs2_t * findFirstOrEndIgnoringCase(const ucs2_t *haystack, const ucs2_t *needle)
static uint16_t getIntegerLength(uint16_t number)
static ucs2_t * findLast(ucs2_t *haystack, ucs2_t needle)
static ucs2_t * append(ucs2_t *dest, const ucs2_t *source, size_t len)
static bool stripSet(ucs2_t *str1, const ucs2_t *set)
static ucs2_t * safeCopy(ucs2_t *dest, size_t destlen, const ucs2_t *source)
static ucs2_t * getSubString(const ucs2_t *str, size_t start, size_t end)
static ucs2_t * append(ucs2_t *dest, const ucs2_t *source)
static void capitalize(ucs2_t *str)
static ucs2_t * replaceIgnoringCase(const ucs2_t *str, const ucs2_t *const *oldstrset, size_t *oldstrlen, const ucs2_t *const *newstrset)
static const ucs2_t * findLastIgnoringCase(const ucs2_t *haystack, ucs2_t needle)
static ucs2_t * copy(ucs2_t *dest, size_t location, const ucs2_t *source, size_t len)
static ucs2_t * findLastOfSetOrEnd(ucs2_t *haystack, const ucs2_t *set)
static ucs2_t * duplicate(const char *str, size_t len, bool bigendian)
static const ucs2_t * findLastOfSet(const ucs2_t *haystack, const ucs2_t *set)
static const ucs2_t * findLast(const ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * replace(const ucs2_t *str, const ucs2_t *oldstr, const ucs2_t *newstr)
static size_t getLength(const ucs2_t *string)
static int32_t compare(const ucs2_t *str1, const ucs2_t *str2, size_t length)
static ucs2_t * pad(const ucs2_t *string, ucs2_t padchar, int16_t direction, uint64_t totallength)
static ucs2_t * insertString(const ucs2_t *dest, const ucs2_t *src, uint64_t index)
static const ucs2_t * findFirstIgnoringCase(const ucs2_t *haystack, ucs2_t needle)
static const ucs2_t * findFirstOfSet(const ucs2_t *haystack, const ucs2_t *set)
static bool endsWith(const ucs2_t *haystack, const ucs2_t *needle)
static uint16_t getIntegerLength(uint64_t number)
static bool isNumber(const ucs2_t *val)
static long double convertToFloat(const ucs2_t *string, const ucs2_t **endptr)
static int32_t compareIgnoringCase(const ucs2_t *str1, const ucs2_t *str2, size_t len)
static bool isByteOrderMark(const ucs2_t *str)
static ucs2_t * isBetween(const ucs2_t *str, const ucs2_t *start, const ucs2_t *end)
static bool isNullOrEmpty(const ucs2_t *string)
static ucs2_t * getHumanReadable(int64_t number, bool onethousand)
static ucs2_t * append(ucs2_t *dest, double number, uint16_t precision, uint16_t scale)
static ucs2_t * findEndOfQuotedString(ucs2_t *string, bool backslash, bool doubling)
static void leftTrim(ucs2_t *str)
static int64_t convertAmount(const ucs2_t *amount)
static const ucs2_t * findEndOfQuotedString(const ucs2_t *string, ucs2_t quote, bool backslash, bool doubling)
static ucs2_t * duplicate(const wchar_t *str)
static ucs2_t * append(ucs2_t *dest, double number, uint16_t scale)
static ucs2_t * getHumanReadable(uint64_t number)
static ucs2_t * append(ucs2_t *dest, uint64_t number)
static size_t getLengthContainingSet(const ucs2_t *haystack, const ucs2_t *set)
static uint16_t getIntegerLength(uint32_t number)
static void rightTrim(ucs2_t *str)
static bool isInteger(const ucs2_t *val, int32_t len)
static void split(const ucs2_t *string, size_t stringlength, const ucs2_t *delimiter, size_t delimiterlength, bool collapse, ucs2_t ***list, uint64_t *listcount)
static ssize_t printf(ucs2_t **buffer, const ucs2_t *format,...)
static ucs2_t * replace(const ucs2_t *str, const ucs2_t *const *oldstrset, const ucs2_t *const *newstrset)
static ucs2_t * getHumanReadable(uint64_t number, bool onethousand)
static ucs2_t * findLastIgnoringCase(ucs2_t *haystack, ucs2_t needle)
static int32_t compareIgnoringCase(const ucs2_t *str1, const ucs2_t *str2)
static ucs2_t * parseNumber(uint64_t number)
static void bothTrim(ucs2_t *str, ucs2_t character)
static ucs2_t * replaceIgnoringCase(const ucs2_t *str, const ucs2_t *oldstr, const ucs2_t *newstr)
static void bothTrim(ucs2_t *str)
static ucs2_t * parseNumber(int64_t number)
static ucs2_t * unescape(const ucs2_t *input)
static ucs2_t * parseNumber(uint16_t number, uint16_t zeropadding)
static ucs2_t * findEndOfQuotedString(ucs2_t *string, size_t stringlen, ucs2_t quote, bool backslash, bool doubling)
static ucs2_t * duplicate(const wchar_t *str, size_t len, ucs2_t replacement)
static ucs2_t * parseNumber(int16_t number)
static ucs2_t * findFirstIgnoringCase(ucs2_t *haystack, ucs2_t needle)
static const ucs2_t * findFirstOrEnd(const ucs2_t *haystack, const ucs2_t *needle)
static size_t getLengthNotContainingSet(const ucs2_t *haystack, const ucs2_t *set)
static uint16_t getIntegerLength(int16_t number)
static ucs2_t * safeCopy(ucs2_t *dest, size_t destlen, const ucs2_t *source, size_t sourcelen)
static void leftJustify(ucs2_t *str, int32_t len)
static bool isInSet(const ucs2_t *str, const ucs2_t *const *set)
static ucs2_t * parseNumber(double number, uint16_t scale)
static void upper(ucs2_t *str)
static ucs2_t * parseNumber(uint16_t number)
static ucs2_t * parseNumber(int32_t number, uint16_t zeropadding)
static ucs2_t * parseNumber(uint32_t number)
static const ucs2_t * findEndOfQuotedString(const ucs2_t *string, bool backslash, bool doubling)
static ucs2_t * findEndOfQuotedString(ucs2_t *string, ucs2_t quote, bool backslash, bool doubling)
static int64_t convertToInteger(const ucs2_t *string, int32_t base)
static bool contains(const ucs2_t *haystack, ucs2_t needle)
static ucs2_t * append(ucs2_t *dest, double number)
static void center(ucs2_t *str, int32_t len)
static bool supportsPrintf()
static ucs2_t * copy(ucs2_t *dest, size_t location, const ucs2_t *source)
static bool isBigEndian(const ucs2_t *str)
static void split(const ucs2_t *string, const ucs2_t *delimiter, size_t delimiterlength, bool collapse, ucs2_t ***list, uint64_t *listcount)
static ucs2_t * parseNumber(float number)
static int64_t convertToInteger(const ucs2_t *string, const ucs2_t **endptr)
static void split(const ucs2_t *string, size_t stringlength, const ucs2_t *delimiter, bool collapse, ucs2_t ***list, uint64_t *listcount)
static const ucs2_t * findFirst(const ucs2_t *haystack, ucs2_t needle)
static ucs2_t * findFirstOrEnd(ucs2_t *haystack, const ucs2_t *needle)
static int64_t convertToInteger(const ucs2_t *string, const ucs2_t **endptr, int32_t base)
static ucs2_t * findFirst(ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * convertAmount(int64_t amount)
static bool containsIgnoringCase(const ucs2_t *haystack, ucs2_t needle)
static const ucs2_t * findFirstIgnoringCase(const ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * parseNumber(double number)
static bool isNumber(const ucs2_t *val, int32_t len)
static bool startsWith(const ucs2_t *haystack, const ucs2_t *needle)
static ucs2_t * findFirstOfSetOrEnd(ucs2_t *haystack, const ucs2_t *set)
static ucs2_t * copy(ucs2_t *dest, const ucs2_t *source, size_t len)
static const ucs2_t * findFirst(const ucs2_t *haystack, const ucs2_t *needle)
static void split(const ucs2_t *string, const ucs2_t *delimiter, bool collapse, ucs2_t ***list, uint64_t *listcount)
static bool compareWithWildcards(const ucs2_t *string, size_t stringlength, const ucs2_t *pattern, ucs2_t singlewildcard, ucs2_t multiwildcard)
static ucs2_t * parseNumber(long double number, uint16_t scale)
static int32_t compareVersions(const ucs2_t *str1, const ucs2_t *str2)
static const ucs2_t * findFirstOfSetOrEnd(const ucs2_t *haystack, const ucs2_t *set)
static ucs2_t * isAfter(const ucs2_t *str, const ucs2_t *delimiter)
static ucs2_t * duplicate(const wchar_t *str, bool bigendian)
static void leftTrim(ucs2_t *str, ucs2_t character)
static void rightTrim(ucs2_t *str, ucs2_t character)