1 /*
2 Copyright (C) 2015-2021, Dirk Krause
3 SPDX-License-Identifier: BSD-3-Clause
4 */
5 
6 /*
7 	WARNING: This file was generated by the dkct program (see
8 	http://dktools.sourceforge.net/ for details).
9 	Changes you make here will be lost if dkct is run again!
10 	You should modify the original source and run dkct on it.
11 	Original source: dk4strd.ctr
12 */
13 
14 /**	@file dk4strd.c The dk4strd module.
15 */
16 
17 
18 
19 #include "dk4conf.h"
20 #include <libdk4base/dk4strd.h>
21 
22 #if DK4_CHAR_SIZE > 1
23 #ifndef DK4STRW_H_INCLUDED
24 #include <libdk4base/dk4strw.h>
25 #endif
26 #else
27 #ifndef DK4STR8_H_INCLUDED
28 #include <libdk4base/dk4str8.h>
29 #endif
30 #endif
31 
32 
33 int
34 
dk4str_cpy_s(dkChar * dst,size_t sz,const dkChar * src,dk4_er_t * erp)35 dk4str_cpy_s(dkChar *dst, size_t sz, const dkChar *src, dk4_er_t *erp)
36 {
37 #if DK4_CHAR_SIZE > 1
38   return (dk4strw_cpy_s(dst, sz, src, erp));
39 #else
40   return (dk4str8_cpy_s(dst, sz, src, erp));
41 #endif
42 }
43 
44 
45 
46 int
47 
dk4str_cat_s(dkChar * dst,size_t sz,const dkChar * src,dk4_er_t * erp)48 dk4str_cat_s(dkChar *dst, size_t sz, const dkChar *src, dk4_er_t *erp)
49 {
50 #if DK4_CHAR_SIZE > 1
51   return (dk4strw_cat_s(dst, sz, src, erp));
52 #else
53   return (dk4str8_cat_s(dst, sz, src, erp));
54 #endif
55 }
56 
57 
58 
59 void
60 
dk4str_cpy_to_left(dkChar * dst,const dkChar * src)61 dk4str_cpy_to_left(dkChar *dst, const dkChar *src)
62 {
63 #if DK4_CHAR_SIZE > 1
64   dk4strw_cpy_to_left(dst, src);
65 #else
66   dk4str8_cpy_to_left(dst, src);
67 #endif
68 }
69 
70 
71 
72 size_t
73 
dk4str_len(const dkChar * src)74 dk4str_len(const dkChar *src)
75 {
76 #if DK4_CHAR_SIZE > 1
77   return (dk4strw_len(src));
78 #else
79   return (dk4str8_len(src));
80 #endif
81 }
82 
83 
84 
85 int
86 
dk4str_cmp(const dkChar * s1,const dkChar * s2)87 dk4str_cmp(const dkChar *s1, const dkChar *s2)
88 {
89 #if DK4_CHAR_SIZE > 1
90   return (dk4strw_cmp(s1, s2));
91 #else
92   return (dk4str8_cmp(s1, s2));
93 #endif
94 }
95 
96 
97 
98 int
99 
dk4str_ncmp(const dkChar * s1,const dkChar * s2,size_t n)100 dk4str_ncmp(const dkChar *s1, const dkChar *s2, size_t n)
101 {
102 #if DK4_CHAR_SIZE > 1
103   return (dk4strw_ncmp(s1, s2, n));
104 #else
105   return (dk4str8_ncmp(s1, s2, n));
106 #endif
107 }
108 
109 
110 int
111 
dk4str_casecmp(const dkChar * s1,const dkChar * s2)112 dk4str_casecmp(const dkChar *s1, const dkChar *s2)
113 {
114 #if DK4_CHAR_SIZE > 1
115   return (dk4strw_casecmp(s1, s2));
116 #else
117   return (dk4str8_casecmp(s1, s2));
118 #endif
119 }
120 
121 
122 
123 dkChar *
124 
dk4str_sep(dkChar ** stringp,const dkChar * delim)125 dk4str_sep(dkChar **stringp, const dkChar *delim)
126 {
127 #if DK4_CHAR_SIZE > 1
128   return (dk4strw_sep(stringp, delim));
129 #else
130   return (dk4str8_sep(stringp, delim));
131 #endif
132 }
133 
134 
135 
136 dkChar *
137 
dk4str_start(const dkChar * src,const dkChar * delim)138 dk4str_start(const dkChar *src, const dkChar *delim)
139 {
140 #if DK4_CHAR_SIZE > 1
141   return (dk4strw_start(src, delim));
142 #else
143   return (dk4str8_start(src, delim));
144 #endif
145 }
146 
147 
148 
149 dkChar *
150 
dk4str_next(dkChar * src,const dkChar * delim)151 dk4str_next(dkChar *src, const dkChar *delim)
152 {
153 #if DK4_CHAR_SIZE > 1
154   return (dk4strw_next(src, delim));
155 #else
156   return (dk4str8_next(src, delim));
157 #endif
158 }
159 
160 
161 
162 size_t
163 
dk4str_tokenize(dkChar ** dpp,size_t szdpp,dkChar * src,const dkChar * delim,dk4_er_t * erp)164 dk4str_tokenize(
165   dkChar **dpp, size_t szdpp, dkChar *src, const dkChar *delim, dk4_er_t *erp
166 )
167 {
168 #if DK4_CHAR_SIZE > 1
169   return (dk4strw_tokenize(dpp, szdpp, src, delim, erp));
170 #else
171   return (dk4str8_tokenize(dpp, szdpp, src, delim, erp));
172 #endif
173 }
174 
175 
176 
177 void
178 
dk4str_normalize(dkChar * src,const dkChar * delim)179 dk4str_normalize(dkChar *src, const dkChar *delim)
180 {
181 #if DK4_CHAR_SIZE > 1
182   dk4strw_normalize(src, delim);
183 #else
184   dk4str8_normalize(src, delim);
185 #endif
186 }
187 
188 
189 
190 #if (defined(_WIN32) && DK4_USE_WINDOWS_LOCAL_ALLOC) \
191     || (DK4_HAVE_MALLOC && DK4_HAVE_FREE)
192 
193 dkChar *
194 
dk4str_dup(const dkChar * src,dk4_er_t * erp)195 dk4str_dup(const dkChar *src, dk4_er_t *erp)
196 {
197 #if DK4_CHAR_SIZE > 1
198   return (dk4strw_dup(src, erp));
199 #else
200   return (dk4str8_dup(src, erp));
201 #endif
202 }
203 
204 #endif
205 /* if (defined(_WIN32) ... */
206 
207 
208 
209 int
210 
dk4str_array_index(const dkChar * const * arr,const dkChar * str,int cs)211 dk4str_array_index(const dkChar * const *arr, const dkChar *str, int cs)
212 {
213 #if DK4_CHAR_SIZE > 1
214   return (dk4strw_array_index(arr, str, cs));
215 #else
216   return (dk4str8_array_index(arr, str, cs));
217 #endif
218 }
219 
220 
221 
222 int
223 
dk4str_is_abbr(const dkChar * str,const dkChar * pattern,dkChar spec,int cs)224 dk4str_is_abbr(const dkChar *str, const dkChar *pattern, dkChar spec, int cs)
225 {
226 #if DK4_CHAR_SIZE > 1
227   return (dk4strw_is_abbr(str, pattern, spec, cs));
228 #else
229   return (dk4str8_is_abbr(str, pattern, spec, cs));
230 #endif
231 }
232 
233 
234 
235 int
236 
dk4str_abbr_index(const dkChar * const * arr,dkChar spec,const dkChar * str,int cs)237 dk4str_abbr_index(
238   const dkChar * const	*arr,
239   dkChar		 spec,
240   const dkChar		*str,
241   int cs
242 )
243 {
244 #if DK4_CHAR_SIZE > 1
245   return (dk4strw_abbr_index(arr, spec, str, cs));
246 #else
247   return (dk4str8_abbr_index(arr, spec, str, cs));
248 #endif
249 }
250 
251 
252 
253 int
254 
dk4str_is_bool(const dkChar * str)255 dk4str_is_bool(const dkChar *str)
256 {
257 #if DK4_CHAR_SIZE > 1
258   return (dk4strw_is_bool(str));
259 #else
260   return (dk4str8_is_bool(str));
261 #endif
262 }
263 
264 
265 
266 int
267 
dk4str_is_on(const dkChar * str)268 dk4str_is_on(const dkChar *str)
269 {
270 #if DK4_CHAR_SIZE > 1
271   return (dk4strw_is_on(str));
272 #else
273   return (dk4str8_is_on(str));
274 #endif
275 }
276 
277 
278 
279 dkChar *
280 
dk4str_chr(const dkChar * s,dkChar c)281 dk4str_chr(const dkChar *s, dkChar c)
282 {
283 #if DK4_CHAR_SIZE > 1
284   return (dk4strw_chr(s,  c));
285 #else
286   return (dk4str8_chr(s, c));
287 #endif
288 }
289 
290 
291 
292 dkChar *
293 
dk4str_rchr(const dkChar * s,dkChar c)294 dk4str_rchr(const dkChar *s, dkChar c)
295 {
296 #if DK4_CHAR_SIZE > 1
297   return (dk4strw_rchr(s, c));
298 #else
299   return (dk4str8_rchr(s, c));
300 #endif
301 }
302 
303 
304 
305 int
306 
dk4str_pathcmp(const dkChar * s1,const dkChar * s2)307 dk4str_pathcmp(const dkChar *s1, const dkChar *s2)
308 {
309 #if DK4_HAVE_CASE_INSENSITIVE_PATHNAMES
310   return (dk4str_casecmp(s1, s2));
311 #else
312   return (dk4str_cmp(s1, s2));
313 #endif
314 }
315 
316 
317 
318 void
319 
dk4str_rtwh(dkChar * str,const dkChar * whsp)320 dk4str_rtwh(dkChar *str, const dkChar *whsp)
321 {
322 #if DK4_CHAR_SIZE > 1
323   dk4strw_rtwh(str, whsp);
324 #else
325   dk4str8_rtwh(str, whsp);
326 #endif
327 }
328 
329 
330 
331 void
332 
dk4str_delnl(dkChar * lptr)333 dk4str_delnl(dkChar *lptr)
334 {
335 #if DK4_CHAR_SIZE > 1
336   dk4strw_delnl(lptr);
337 #else
338   dk4str8_delnl(lptr);
339 #endif
340 }
341 
342 
343 
344 const dkChar *
345 
dk4str_skip(const dkChar * line,size_t skip)346 dk4str_skip(const dkChar *line, size_t skip)
347 {
348 #if DK4_CHAR_SIZE > 1
349   return (dk4strw_skip(line, skip));
350 #else
351   return (dk4str8_skip(line, skip));
352 #endif
353 }
354 
355 
356 
357 
358 int
359 
dk4str_sanitize(dkChar * str)360 dk4str_sanitize(dkChar *str)
361 {
362 #if DK4_CHAR_SIZE > 1
363   return (dk4strw_sanitize(str));
364 #else
365   return (dk4str8_sanitize(str));
366 #endif
367 }
368 
369 
370 
371 int
372 
dk4str_buffer_sanitize(dkChar * str,size_t sz)373 dk4str_buffer_sanitize(dkChar *str, size_t sz)
374 {
375 #if DK4_CHAR_SIZE > 1
376   return (dk4strw_buffer_sanitize(str, sz));
377 #else
378   return (dk4str8_buffer_sanitize(str, sz));
379 #endif
380 }
381 
382 
383 
384 int
385 
dk4str_free_sanitized(dkChar * str)386 dk4str_free_sanitized(dkChar *str)
387 {
388 #if DK4_CHAR_SIZE > 1
389   return (dk4strw_free_sanitized(str));
390 #else
391   return (dk4str8_free_sanitized(str));
392 #endif
393 }
394 
395