Rudiments
wcharstring.h
1// Copyright (c) 1999-2018 David Muse
2// See the COPYING file for more information.
3
4#ifndef RUDIMENTS_WCHARSTRING_H
5#define RUDIMENTS_WCHARSTRING_H
6
7#include <rudiments/private/wcharstringincludes.h>
8
17class RUDIMENTS_DLLSPEC wcharstring {
18 public:
19
21 static size_t getLength(const wchar_t *string);
22
25 static size_t getSize(const wchar_t *string);
26
28 static bool isNullOrEmpty(const wchar_t *string);
29
37 static bool isYes(const wchar_t *string);
38
45 static bool isNo(const wchar_t *string);
46
48 static void zero(wchar_t *str, size_t len);
49
53 static wchar_t *append(wchar_t *dest, const wchar_t *source);
54
58 static wchar_t *append(wchar_t *dest, const wchar_t *source,
59 size_t len);
60
64 static wchar_t *append(wchar_t *dest, int64_t number);
65
69 static wchar_t *append(wchar_t *dest, uint64_t number);
70
74 static wchar_t *append(wchar_t *dest, double number);
75
80 static wchar_t *append(wchar_t *dest, double number,
81 uint16_t scale);
82
87 static wchar_t *append(wchar_t *dest, double number,
89 uint16_t scale);
90
94 static wchar_t *copy(wchar_t *dest, const wchar_t *source);
95
99 static wchar_t *copy(wchar_t *dest,
100 const wchar_t *source, size_t len);
101
106 static wchar_t *copy(wchar_t *dest, size_t location,
107 const wchar_t *source);
108
113 static wchar_t *copy(wchar_t *dest, size_t location,
114 const wchar_t *source, size_t len);
115
120 static wchar_t *safeCopy(wchar_t *dest, size_t destlen,
121 const wchar_t *source);
122
127 static wchar_t *safeCopy(wchar_t *dest,
128 size_t destlen,
129 const wchar_t *source,
130 size_t sourcelen);
131
134 static int32_t compare(const wchar_t *str1,
135 const wchar_t *str2);
136
139 static int32_t compare(const wchar_t *str1,
140 const wchar_t *str2,
141 size_t len);
142
145 static int32_t compareIgnoringCase(const wchar_t *str1,
146 const wchar_t *str2);
147
151 static int32_t compareIgnoringCase(const wchar_t *str1,
152 const wchar_t *str2,
153 size_t len);
154
160 static int32_t compareNatural(const wchar_t *str1,
161 const wchar_t *str2);
162
173 static int32_t compareNatural(const wchar_t *str1,
174 const wchar_t *str2,
175 const wchar_t *delimiters);
176
180 static int32_t compareVersions(const wchar_t *str1,
181 const wchar_t *str2);
182
191 static int32_t compareVersions(const wchar_t *str1,
192 const wchar_t *str2,
193 const wchar_t *delimiters);
194
205 static bool compareWithWildcards(const wchar_t *string,
206 size_t stringlength,
207 const wchar_t *pattern,
208 size_t patternlength,
209 wchar_t singlewildcard,
210 wchar_t multiwildcard);
211
221 static bool compareWithWildcards(const wchar_t *string,
222 const wchar_t *pattern,
223 size_t patternlength,
224 wchar_t singlewildcard,
225 wchar_t multiwildcard);
226
236 static bool compareWithWildcards(const wchar_t *string,
237 size_t stringlength,
238 const wchar_t *pattern,
239 wchar_t singlewildcard,
240 wchar_t multiwildcard);
241
250 static bool compareWithWildcards(const wchar_t *string,
251 const wchar_t *pattern,
252 wchar_t singlewildcard,
253 wchar_t multiwildcard);
254
259 static bool isInSet(const wchar_t *str,
260 const wchar_t * const *set);
261
266 static bool isInSetIgnoringCase(const wchar_t *str,
267 const wchar_t * const *set);
268
271 static bool contains(const wchar_t *haystack,
272 const wchar_t *needle);
273
276 static bool containsIgnoringCase(const wchar_t *haystack,
277 const wchar_t *needle);
278
281 static bool contains(const wchar_t *haystack,
282 wchar_t needle);
283
286 static bool containsIgnoringCase(const wchar_t *haystack,
287 wchar_t needle);
288
291 static bool startsWith(const wchar_t *haystack,
292 const wchar_t *needle);
293
296 static bool endsWith(const wchar_t *haystack,
297 const wchar_t *needle);
298
301 static const wchar_t *findFirst(const wchar_t *haystack,
302 const wchar_t *needle);
303
306 static const wchar_t *findFirstIgnoringCase(
307 const wchar_t *haystack,
308 const wchar_t *needle);
309
312 static const wchar_t *findFirst(const wchar_t *haystack,
313 wchar_t needle);
314
317 static const wchar_t *findFirstIgnoringCase(
318 const wchar_t *haystack,
319 wchar_t needle);
320
324 static const wchar_t *findFirstOrEnd(const wchar_t *haystack,
325 const wchar_t *needle);
326
330 static const wchar_t *findFirstOrEndIgnoringCase(
331 const wchar_t *haystack,
332 const wchar_t *needle);
333
337 static const wchar_t *findFirstOrEnd(const wchar_t *haystack,
338 wchar_t needle);
339
343 static const wchar_t *findFirstOrEndIgnoringCase(
344 const wchar_t *haystack,
345 wchar_t needle);
346
349 static const wchar_t *findLast(const wchar_t *haystack,
350 const wchar_t *needle);
351
354 static const wchar_t *findLast(const wchar_t *haystack,
355 wchar_t needle);
356
359 static wchar_t *findFirst(wchar_t *haystack,
360 const wchar_t *needle);
361
364 static wchar_t *findFirstIgnoringCase(wchar_t *haystack,
365 const wchar_t *needle);
366
369 static wchar_t *findFirst(wchar_t *haystack, wchar_t needle);
370
373 static wchar_t *findFirstIgnoringCase(wchar_t *haystack,
374 wchar_t needle);
375
379 static wchar_t *findFirstOrEnd(wchar_t *haystack,
380 const wchar_t *needle);
381
385 static wchar_t *findFirstOrEndIgnoringCase(wchar_t *haystack,
386 const wchar_t *needle);
387
390 static wchar_t *findLast(wchar_t *haystack,
391 const wchar_t *needle);
392
395 static const wchar_t *findLastIgnoringCase(
396 const wchar_t *haystack,
397 const wchar_t *needle);
398
401 static wchar_t *findLast(wchar_t *haystack, wchar_t needle);
402
405 static const wchar_t *findLastIgnoringCase(
406 const wchar_t *haystack,
407 wchar_t needle);
408
412 static const wchar_t *findFirstOfSet(const wchar_t *haystack,
413 const wchar_t *set);
414
418 static wchar_t *findFirstOfSet(wchar_t *haystack,
419 const wchar_t *set);
420
425 static const wchar_t *findFirstOfSetOrEnd(
426 const wchar_t *haystack,
427 const wchar_t *set);
428
433 static wchar_t *findFirstOfSetOrEnd(
434 wchar_t *haystack,
435 const wchar_t *set);
436
440 static const wchar_t *findLastOfSet(const wchar_t *haystack,
441 const wchar_t *set);
442
446 static wchar_t *findLastOfSet(wchar_t *haystack,
447 const wchar_t *set);
448
453 static const wchar_t *findLastOfSetOrEnd(
454 const wchar_t *haystack,
455 const wchar_t *set);
456
461 static wchar_t *findLastOfSetOrEnd(
462 wchar_t *haystack,
463 const wchar_t *set);
464
482 static wchar_t *findEndOfQuotedString(wchar_t *string,
483 wchar_t quote,
484 bool backslash,
485 bool doubling);
486
504 static const wchar_t *findEndOfQuotedString(
505 const wchar_t *string,
506 wchar_t quote,
507 bool backslash,
508 bool doubling);
509
528 static wchar_t *findEndOfQuotedString(wchar_t *string,
529 size_t stringlen,
530 wchar_t quote,
531 bool backslash,
532 bool doubling);
533
552 static const wchar_t *findEndOfQuotedString(
553 const wchar_t *string,
554 size_t stringlen,
555 wchar_t quote,
556 bool backslash,
557 bool doubling);
558
579 static wchar_t *findEndOfQuotedString(wchar_t *string,
580 bool backslash,
581 bool doubling);
582
603 static const wchar_t *findEndOfQuotedString(
604 const wchar_t *string,
605 bool backslash,
606 bool doubling);
607
629 static wchar_t *findEndOfQuotedString(wchar_t *string,
630 size_t stringlen,
631 bool backslash,
632 bool doubling);
633
655 static const wchar_t *findEndOfQuotedString(
656 const wchar_t *string,
657 size_t stringlen,
658 bool backslash,
659 bool doubling);
660
665 static wchar_t *isBefore(const wchar_t *str,
666 const wchar_t *delimiter);
667
672 static wchar_t *isBetween(const wchar_t *str,
673 const wchar_t *start,
674 const wchar_t *end);
675
681 static wchar_t *isAfter(const wchar_t *str,
682 const wchar_t *delimiter);
683
688 const wchar_t *haystack,
689 const wchar_t *set);
690
695 const wchar_t *haystack,
696 const wchar_t *set);
697
702 static wchar_t *duplicate(const wchar_t *str);
703
709 static wchar_t *duplicate(const wchar_t *str, size_t len);
710
716 static wchar_t *duplicate(const char *str);
717
723 static wchar_t *duplicate(const char *str, size_t len);
724
736 static wchar_t *duplicateUcs2(const ucs2_t *str);
737
750 static wchar_t *duplicateUcs2(const ucs2_t *str, size_t len);
751
764 static wchar_t *duplicateUcs2(const ucs2_t *str,
765 bool bigendian);
766
780 static wchar_t *duplicateUcs2(const ucs2_t *str,
781 size_t len,
782 bool bigendian);
783
795 static wchar_t *duplicateUcs2(const ucs2_t *str,
796 wchar_t replacement);
797
810 static wchar_t *duplicateUcs2(const ucs2_t *str,
811 size_t len,
812 wchar_t replacement);
813
826 static wchar_t *duplicateUcs2(const ucs2_t *str,
827 wchar_t replacement,
828 bool bigendian);
829
843 static wchar_t *duplicateUcs2(const ucs2_t *str,
844 size_t len,
845 wchar_t replacement,
846 bool bigendian);
847
849 static void upper(wchar_t *str);
850
852 static void lower(wchar_t *str);
853
856 static void capitalize(wchar_t *str);
857
859 static void rightTrim(wchar_t *str);
860
863 static void rightTrim(wchar_t *str, wchar_t character);
864
866 static void leftTrim(wchar_t *str);
867
870 static void leftTrim(wchar_t *str, wchar_t character);
871
873 static void bothTrim(wchar_t *str);
874
876 static void bothTrim(wchar_t *str, wchar_t character);
877
881 static bool strip(wchar_t *str, wchar_t character);
882
886 static bool strip(wchar_t *str1, const wchar_t *str2);
887
891 static bool stripSet(wchar_t *str1, const wchar_t *set);
892
895 static void replace(wchar_t *str,
896 wchar_t oldchar,
897 wchar_t newchar);
898
901 static void replace(wchar_t *str,
902 const wchar_t *oldchars,
903 wchar_t newchar);
904
908 static wchar_t *replace(const wchar_t *str,
909 const wchar_t *oldstr,
910 const wchar_t *newstr);
911
919 static wchar_t *replace(const wchar_t *str,
920 const wchar_t * const *oldstrset,
921 size_t *oldstrlen,
922 const wchar_t * const *newstrset);
923
926 static void replaceIgnoringCase(wchar_t *str,
927 wchar_t oldchar,
928 wchar_t newchar);
929
932 static void replaceIgnoringCase(wchar_t *str,
933 const wchar_t *oldchars,
934 wchar_t newchar);
935
939 static wchar_t *replaceIgnoringCase(const wchar_t *str,
940 const wchar_t *oldstr,
941 const wchar_t *newstr);
942
950 static wchar_t *replaceIgnoringCase(const wchar_t *str,
951 const wchar_t * const *oldstrset,
952 size_t *oldstrlen,
953 const wchar_t * const *newstrset);
954
958
962
966
970
974
978
981 static bool isInteger(const wchar_t *val);
982
985 static bool isInteger(const wchar_t *val, int32_t len);
986
989 static bool isNumber(const wchar_t *val);
990
993 static bool isNumber(const wchar_t *val, int32_t len);
994
998 static wchar_t *parseNumber(int16_t number);
999
1003 static wchar_t *parseNumber(uint16_t number);
1004
1008 static wchar_t *parseNumber(int16_t number,
1010
1014 static wchar_t *parseNumber(uint16_t number,
1016
1020 static wchar_t *parseNumber(int32_t number);
1021
1025 static wchar_t *parseNumber(uint32_t number);
1026
1030 static wchar_t *parseNumber(int32_t number,
1032
1036 static wchar_t *parseNumber(uint32_t number,
1038
1042 static wchar_t *parseNumber(int64_t number);
1043
1047 static wchar_t *parseNumber(uint64_t number);
1048
1052 static wchar_t *parseNumber(int64_t number,
1054
1058 static wchar_t *parseNumber(uint64_t number,
1060
1061
1065 static wchar_t *parseNumber(float number);
1066
1070 static wchar_t *parseNumber(float number,
1071 uint16_t scale);
1072
1076 static wchar_t *parseNumber(float number,
1078 uint16_t scale);
1079
1083 static wchar_t *parseNumber(double number);
1084
1088 static wchar_t *parseNumber(double number,
1089 uint16_t scale);
1090
1094 static wchar_t *parseNumber(double number,
1096 uint16_t scale);
1097
1101 static wchar_t *parseNumber(long double number);
1102
1106 static wchar_t *parseNumber(long double number,
1107 uint16_t scale);
1108
1112 static wchar_t *parseNumber(long double number,
1114 uint16_t scale);
1115
1117 static int64_t convertToInteger(const wchar_t *string);
1118
1122 static int64_t convertToInteger(const wchar_t *string,
1123 const wchar_t **endptr);
1124
1126 static int64_t convertToInteger(const wchar_t *string,
1127 int32_t base);
1128
1132 static int64_t convertToInteger(const wchar_t *string,
1133 const wchar_t **endptr,
1134 int32_t base);
1135
1138 const wchar_t *string);
1139
1144 const wchar_t *string,
1145 const wchar_t **endptr);
1146
1150 const wchar_t *string,
1151 int32_t base);
1152
1158 const wchar_t *string,
1159 const wchar_t **endptr,
1160 int32_t base);
1161
1162
1164 static long double convertToFloat(const wchar_t *string);
1165
1176 static long double convertToFloatC(const wchar_t *string);
1177
1181 static long double convertToFloat(const wchar_t *string,
1182 const wchar_t **endptr);
1183
1186 static int64_t convertAmount(const wchar_t *amount);
1187
1190 static wchar_t *convertAmount(int64_t amount);
1191
1199
1200
1205 static wchar_t *escape(const wchar_t *input,
1206 const wchar_t *characters);
1207
1212 static wchar_t *unescape(const wchar_t *input);
1213
1217 static void escape(const wchar_t *input, uint64_t inputlen,
1218 wchar_t **output, uint64_t *outputlen,
1219 const wchar_t *characters);
1220
1224 static void unescape(const wchar_t *input,
1226 wchar_t **output,
1228
1233 static void leftJustify(wchar_t *str, int32_t len);
1234
1239 static void rightJustify(wchar_t *str, int32_t len);
1240
1244 static void center(wchar_t *str, int32_t len);
1245
1252 static wchar_t *pad(const wchar_t *string,
1253 wchar_t padchar,
1256
1265 static void split(const wchar_t *string,
1266 size_t stringlength,
1267 const wchar_t *delimiter,
1268 size_t delimiterlength,
1269 bool collapse,
1270 wchar_t ***list,
1272
1280 static void split(const wchar_t *string,
1281 const wchar_t *delimiter,
1282 size_t delimiterlength,
1283 bool collapse,
1284 wchar_t ***list,
1286
1294 static void split(const wchar_t *string,
1295 size_t stringlength,
1296 const wchar_t *delimiter,
1297 bool collapse,
1298 wchar_t ***list,
1300
1308 static void split(const wchar_t *string,
1309 const wchar_t *delimiter,
1310 bool collapse,
1311 wchar_t ***list,
1313
1317 static wchar_t *getSubString(const wchar_t *str,
1318 size_t start, size_t end);
1319
1323 static wchar_t *getSubString(const wchar_t *str, size_t start);
1324
1327 static wchar_t *insertString(const wchar_t *dest,
1328 const wchar_t *src,
1329 uint64_t index);
1330
1337
1345 bool onethousand);
1346
1351
1359 bool onethousand);
1360
1364 static wchar_t *getHumanReadable(long double number);
1365
1372 static wchar_t *getHumanReadable(long double number,
1373 bool onethousand);
1374
1399 static ssize_t printf(wchar_t *buffer, size_t len,
1400 const wchar_t *format, ...);
1401
1429 static ssize_t printf(wchar_t *buffer, size_t len,
1430 const wchar_t *format,
1431 va_list *argp);
1432
1451 static ssize_t printf(wchar_t **buffer,
1452 const wchar_t *format, ...);
1453
1472 static ssize_t printf(wchar_t **buffer,
1473 const wchar_t *format,
1474 va_list *argp);
1475
1480 static bool supportsPrintf();
1481
1482 #include <rudiments/private/wcharstring.h>
1483};
1484
1485#endif
Definition avltree.h:11
Definition character.h:11
Definition input.h:11
Definition output.h:11
Definition wcharstring.h:17
static const wchar_t * findFirstOrEnd(const wchar_t *haystack, wchar_t needle)
static wchar_t * getHumanReadable(long double number)
static void lower(wchar_t *str)
static wchar_t * replace(const wchar_t *str, const wchar_t *const *oldstrset, size_t *oldstrlen, const wchar_t *const *newstrset)
static uint16_t getIntegerLength(int32_t number)
static bool isNumber(const wchar_t *val, int32_t len)
static wchar_t * copy(wchar_t *dest, const wchar_t *source, size_t len)
static int32_t compareNatural(const wchar_t *str1, const wchar_t *str2)
static const wchar_t * findFirstOfSetOrEnd(const wchar_t *haystack, const wchar_t *set)
static wchar_t * duplicateUcs2(const ucs2_t *str)
static void center(wchar_t *str, int32_t len)
static wchar_t * parseNumber(uint64_t number)
static bool isYes(const wchar_t *string)
static bool compareWithWildcards(const wchar_t *string, const wchar_t *pattern, wchar_t singlewildcard, wchar_t multiwildcard)
static wchar_t * findFirstOrEndIgnoringCase(wchar_t *haystack, const wchar_t *needle)
static const wchar_t * findFirstOrEnd(const wchar_t *haystack, const wchar_t *needle)
static const wchar_t * findLastIgnoringCase(const wchar_t *haystack, wchar_t needle)
static void rightJustify(wchar_t *str, int32_t len)
static wchar_t * parseNumber(int64_t number)
static wchar_t * replace(const wchar_t *str, const wchar_t *oldstr, const wchar_t *newstr)
static bool supportsPrintf()
static wchar_t * findFirstOrEnd(wchar_t *haystack, const wchar_t *needle)
static wchar_t * getHumanReadable(uint64_t number)
static wchar_t * parseNumber(double number, uint16_t precision, uint16_t scale)
static wchar_t * parseNumber(int32_t number, uint16_t zeropadding)
static wchar_t * parseNumber(uint32_t number)
static size_t getLengthContainingSet(const wchar_t *haystack, const wchar_t *set)
static int64_t convertToInteger(const wchar_t *string, const wchar_t **endptr, int32_t base)
static wchar_t * insertString(const wchar_t *dest, const wchar_t *src, uint64_t index)
static bool strip(wchar_t *str, wchar_t character)
static void leftTrim(wchar_t *str)
static void replaceIgnoringCase(wchar_t *str, const wchar_t *oldchars, wchar_t newchar)
static wchar_t * parseNumber(int32_t number)
static wchar_t * getHumanReadable(int64_t number)
static wchar_t * append(wchar_t *dest, double number, uint16_t scale)
static wchar_t * parseNumber(double number)
static long double convertToFloat(const wchar_t *string, const wchar_t **endptr)
static wchar_t * copy(wchar_t *dest, size_t location, const wchar_t *source)
static void split(const wchar_t *string, const wchar_t *delimiter, bool collapse, wchar_t ***list, uint64_t *listcount)
static bool startsWith(const wchar_t *haystack, const wchar_t *needle)
static int32_t compare(const wchar_t *str1, const wchar_t *str2)
static wchar_t * isBetween(const wchar_t *str, const wchar_t *start, const wchar_t *end)
static const wchar_t * findLast(const wchar_t *haystack, const wchar_t *needle)
static void bothTrim(wchar_t *str, wchar_t character)
static wchar_t * append(wchar_t *dest, int64_t number)
static void rightTrim(wchar_t *str)
static wchar_t * findFirstOfSetOrEnd(wchar_t *haystack, const wchar_t *set)
static wchar_t * replaceIgnoringCase(const wchar_t *str, const wchar_t *oldstr, const wchar_t *newstr)
static wchar_t * getSubString(const wchar_t *str, size_t start, size_t end)
static wchar_t * findEndOfQuotedString(wchar_t *string, size_t stringlen, wchar_t quote, bool backslash, bool doubling)
static int32_t compareIgnoringCase(const wchar_t *str1, const wchar_t *str2, size_t len)
static wchar_t * convertAmount(int64_t amount)
static wchar_t * parseNumber(uint32_t number, uint16_t zeropadding)
static ssize_t printf(wchar_t *buffer, size_t len, const wchar_t *format, va_list *argp)
static ssize_t printf(wchar_t *buffer, size_t len, const wchar_t *format,...)
static size_t getLength(const wchar_t *string)
static bool isNumber(const wchar_t *val)
static size_t getSize(const wchar_t *string)
static wchar_t * duplicateUcs2(const ucs2_t *str, size_t len, wchar_t replacement)
static wchar_t * safeCopy(wchar_t *dest, size_t destlen, const wchar_t *source)
static wchar_t * append(wchar_t *dest, uint64_t number)
static wchar_t * copy(wchar_t *dest, size_t location, const wchar_t *source, size_t len)
static wchar_t * duplicateUcs2(const ucs2_t *str, wchar_t replacement)
static wchar_t * findFirstIgnoringCase(wchar_t *haystack, const wchar_t *needle)
static uint16_t getIntegerLength(int16_t number)
static wchar_t * parseNumber(int16_t number, uint16_t zeropadding)
static uint16_t getIntegerLength(uint32_t number)
static void rightTrim(wchar_t *str, wchar_t character)
static uint16_t getIntegerLength(uint16_t number)
static wchar_t * isAfter(const wchar_t *str, const wchar_t *delimiter)
static wchar_t * escape(const wchar_t *input, const wchar_t *characters)
static uint64_t convertToUnsignedInteger(const wchar_t *string, const wchar_t **endptr, int32_t base)
static size_t getLengthNotContainingSet(const wchar_t *haystack, const wchar_t *set)
static wchar_t * duplicateUcs2(const ucs2_t *str, bool bigendian)
static int64_t convertAmount(const wchar_t *amount)
static void replace(wchar_t *str, const wchar_t *oldchars, wchar_t newchar)
static wchar_t * findLastOfSetOrEnd(wchar_t *haystack, const wchar_t *set)
static bool compareWithWildcards(const wchar_t *string, const wchar_t *pattern, size_t patternlength, wchar_t singlewildcard, wchar_t multiwildcard)
static wchar_t * unescape(const wchar_t *input)
static wchar_t * parseNumber(float number)
static uint64_t convertToUnsignedInteger(const wchar_t *string, const wchar_t **endptr)
static int64_t convertToInteger(const wchar_t *string)
static void escape(const wchar_t *input, uint64_t inputlen, wchar_t **output, uint64_t *outputlen, const wchar_t *characters)
static wchar_t * parseNumber(uint16_t number, uint16_t zeropadding)
static const wchar_t * findEndOfQuotedString(const wchar_t *string, bool backslash, bool doubling)
static wchar_t * findFirst(wchar_t *haystack, const wchar_t *needle)
static wchar_t * findLast(wchar_t *haystack, wchar_t needle)
static int32_t compareVersions(const wchar_t *str1, const wchar_t *str2, const wchar_t *delimiters)
static wchar_t * duplicate(const wchar_t *str, size_t len)
static bool contains(const wchar_t *haystack, const wchar_t *needle)
static const wchar_t * findFirstIgnoringCase(const wchar_t *haystack, wchar_t needle)
static wchar_t * duplicateUcs2(const ucs2_t *str, size_t len, bool bigendian)
static const wchar_t * findEndOfQuotedString(const wchar_t *string, size_t stringlen, bool backslash, bool doubling)
static uint64_t convertToUnsignedInteger(const wchar_t *string)
static wchar_t * parseNumber(float number, uint16_t precision, uint16_t scale)
static int32_t compare(const wchar_t *str1, const wchar_t *str2, size_t len)
static wchar_t * findLastOfSet(wchar_t *haystack, const wchar_t *set)
static int32_t compareVersions(const wchar_t *str1, const wchar_t *str2)
static void replace(wchar_t *str, wchar_t oldchar, wchar_t newchar)
static wchar_t * findEndOfQuotedString(wchar_t *string, wchar_t quote, bool backslash, bool doubling)
static const wchar_t * findLastOfSet(const wchar_t *haystack, const wchar_t *set)
static bool isInSet(const wchar_t *str, const wchar_t *const *set)
static long double convertToFloat(const wchar_t *string)
static bool compareWithWildcards(const wchar_t *string, size_t stringlength, const wchar_t *pattern, wchar_t singlewildcard, wchar_t multiwildcard)
static bool contains(const wchar_t *haystack, wchar_t needle)
static wchar_t * parseNumber(long double number)
static const wchar_t * findFirstOrEndIgnoringCase(const wchar_t *haystack, const wchar_t *needle)
static long double convertToFloatC(const wchar_t *string)
static wchar_t * duplicateUcs2(const ucs2_t *str, wchar_t replacement, bool bigendian)
static bool containsIgnoringCase(const wchar_t *haystack, wchar_t needle)
static wchar_t * duplicate(const wchar_t *str)
static wchar_t * duplicateUcs2(const ucs2_t *str, size_t len)
static int32_t compareNatural(const wchar_t *str1, const wchar_t *str2, const wchar_t *delimiters)
static uint64_t convertToUnsignedInteger(const wchar_t *string, int32_t base)
static wchar_t * findFirst(wchar_t *haystack, wchar_t needle)
static wchar_t * getSubString(const wchar_t *str, size_t start)
static wchar_t * append(wchar_t *dest, double number, uint16_t precision, uint16_t scale)
static bool isNo(const wchar_t *string)
static bool isNullOrEmpty(const wchar_t *string)
static int64_t convertToInteger(const wchar_t *string, const wchar_t **endptr)
static wchar_t * append(wchar_t *dest, double number)
static wchar_t * getHumanReadable(int64_t number, bool onethousand)
static const wchar_t * findFirst(const wchar_t *haystack, wchar_t needle)
static uint16_t getIntegerLength(uint64_t number)
static wchar_t * parseNumber(uint64_t number, uint16_t zeropadding)
static wchar_t * convertAmount(int64_t amount, uint16_t padding)
static int32_t compareIgnoringCase(const wchar_t *str1, const wchar_t *str2)
static wchar_t * parseNumber(long double number, uint16_t precision, uint16_t scale)
static wchar_t * findEndOfQuotedString(wchar_t *string, size_t stringlen, bool backslash, bool doubling)
static wchar_t * getHumanReadable(long double number, bool onethousand)
static void leftJustify(wchar_t *str, int32_t len)
static const wchar_t * findLast(const wchar_t *haystack, wchar_t needle)
static wchar_t * copy(wchar_t *dest, const wchar_t *source)
static wchar_t * replaceIgnoringCase(const wchar_t *str, const wchar_t *const *oldstrset, size_t *oldstrlen, const wchar_t *const *newstrset)
static bool isInSetIgnoringCase(const wchar_t *str, const wchar_t *const *set)
static wchar_t * findFirstOfSet(wchar_t *haystack, const wchar_t *set)
static wchar_t * safeCopy(wchar_t *dest, size_t destlen, const wchar_t *source, size_t sourcelen)
static wchar_t * append(wchar_t *dest, const wchar_t *source)
static void replaceIgnoringCase(wchar_t *str, wchar_t oldchar, wchar_t newchar)
static const wchar_t * findFirstIgnoringCase(const wchar_t *haystack, const wchar_t *needle)
static const wchar_t * findEndOfQuotedString(const wchar_t *string, size_t stringlen, wchar_t quote, bool backslash, bool doubling)
static void capitalize(wchar_t *str)
static bool isInteger(const wchar_t *val)
static wchar_t * parseNumber(int16_t number)
static wchar_t * parseNumber(int64_t number, uint16_t zeropadding)
static bool endsWith(const wchar_t *haystack, const wchar_t *needle)
static int64_t convertToInteger(const wchar_t *string, int32_t base)
static wchar_t * parseNumber(uint16_t number)
static wchar_t * pad(const wchar_t *string, wchar_t padchar, int16_t direction, uint64_t totallength)
static wchar_t * findLast(wchar_t *haystack, const wchar_t *needle)
static wchar_t * duplicate(const char *str)
static void bothTrim(wchar_t *str)
static bool stripSet(wchar_t *str1, const wchar_t *set)
static wchar_t * parseNumber(long double number, uint16_t scale)
static wchar_t * findEndOfQuotedString(wchar_t *string, bool backslash, bool doubling)
static bool compareWithWildcards(const wchar_t *string, size_t stringlength, const wchar_t *pattern, size_t patternlength, wchar_t singlewildcard, wchar_t multiwildcard)
static const wchar_t * findEndOfQuotedString(const wchar_t *string, wchar_t quote, bool backslash, bool doubling)
static void upper(wchar_t *str)
static wchar_t * findFirstIgnoringCase(wchar_t *haystack, wchar_t needle)
static const wchar_t * findFirstOrEndIgnoringCase(const wchar_t *haystack, wchar_t needle)
static ssize_t printf(wchar_t **buffer, const wchar_t *format,...)
static wchar_t * getHumanReadable(uint64_t number, bool onethousand)
static wchar_t * parseNumber(float number, uint16_t scale)
static ssize_t printf(wchar_t **buffer, const wchar_t *format, va_list *argp)
static wchar_t * isBefore(const wchar_t *str, const wchar_t *delimiter)
static void split(const wchar_t *string, const wchar_t *delimiter, size_t delimiterlength, bool collapse, wchar_t ***list, uint64_t *listcount)
static const wchar_t * findFirstOfSet(const wchar_t *haystack, const wchar_t *set)
static void leftTrim(wchar_t *str, wchar_t character)
static bool isInteger(const wchar_t *val, int32_t len)
static const wchar_t * findLastIgnoringCase(const wchar_t *haystack, const wchar_t *needle)
static bool strip(wchar_t *str1, const wchar_t *str2)
static const wchar_t * findLastOfSetOrEnd(const wchar_t *haystack, const wchar_t *set)
static const wchar_t * findFirst(const wchar_t *haystack, const wchar_t *needle)
static wchar_t * duplicateUcs2(const ucs2_t *str, size_t len, wchar_t replacement, bool bigendian)
static void unescape(const wchar_t *input, uint64_t inputlen, wchar_t **output, uint64_t *outputlen)
static void split(const wchar_t *string, size_t stringlength, const wchar_t *delimiter, size_t delimiterlength, bool collapse, wchar_t ***list, uint64_t *listcount)
static wchar_t * parseNumber(double number, uint16_t scale)
static wchar_t * append(wchar_t *dest, const wchar_t *source, size_t len)
static uint16_t getIntegerLength(int64_t number)
static bool containsIgnoringCase(const wchar_t *haystack, const wchar_t *needle)
static wchar_t * duplicate(const char *str, size_t len)
static void split(const wchar_t *string, size_t stringlength, const wchar_t *delimiter, bool collapse, wchar_t ***list, uint64_t *listcount)
static void zero(wchar_t *str, size_t len)