1 : /* Copyright (c) 2007 James Antill -- See LICENSE file for terms. */
2 : #ifndef USTR_SPN_H
3 : #define USTR_SPN_H 1
4 :
5 : #ifndef USTR_MAIN_H
6 : # error " You should include ustr-main.h before this file, or just ustr.h"
7 : #endif
8 :
9 : /* normal strspn() like, deals with embeded NILs */
10 : USTR_CONF_E_PROTO size_t ustr_spn_chr_fwd(const struct Ustr *, size_t, char)
11 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
12 : USTR__COMPILE_ATTR_NONNULL_A();
13 : USTR_CONF_E_PROTO size_t ustr_spn_chr_rev(const struct Ustr *, size_t, char)
14 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
15 : USTR__COMPILE_ATTR_NONNULL_A();
16 : USTR_CONF_E_PROTO
17 : size_t ustr_spn_chrs_fwd(const struct Ustr *, size_t, const char *, size_t)
18 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
19 : USTR__COMPILE_ATTR_NONNULL_A();
20 : USTR_CONF_E_PROTO
21 : size_t ustr_spn_chrs_rev(const struct Ustr *, size_t, const char *, size_t)
22 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
23 : USTR__COMPILE_ATTR_NONNULL_A();
24 : USTR_CONF_EI_PROTO
25 : size_t ustr_spn_fwd(const struct Ustr *, size_t, const struct Ustr *)
26 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
27 : USTR__COMPILE_ATTR_NONNULL_A();
28 : USTR_CONF_EI_PROTO
29 : size_t ustr_spn_rev(const struct Ustr *, size_t, const struct Ustr *)
30 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
31 : USTR__COMPILE_ATTR_NONNULL_A();
32 : USTR_CONF_EI_PROTO
33 : size_t ustr_spn_cstr_fwd(const struct Ustr *, size_t, const char *)
34 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
35 : USTR__COMPILE_ATTR_NONNULL_A();
36 : USTR_CONF_EI_PROTO
37 : size_t ustr_spn_cstr_rev(const struct Ustr *, size_t, const char *)
38 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
39 : USTR__COMPILE_ATTR_NONNULL_A();
40 :
41 : USTR_CONF_E_PROTO size_t ustr_cspn_chr_fwd(const struct Ustr *, size_t, char)
42 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
43 : USTR__COMPILE_ATTR_NONNULL_A();
44 : USTR_CONF_E_PROTO size_t ustr_cspn_chr_rev(const struct Ustr *, size_t, char)
45 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
46 : USTR__COMPILE_ATTR_NONNULL_A();
47 : USTR_CONF_E_PROTO
48 : size_t ustr_cspn_chrs_fwd(const struct Ustr *, size_t, const char *, size_t)
49 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
50 : USTR__COMPILE_ATTR_NONNULL_A();
51 : USTR_CONF_E_PROTO
52 : size_t ustr_cspn_chrs_rev(const struct Ustr *, size_t, const char *, size_t)
53 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
54 : USTR__COMPILE_ATTR_NONNULL_A();
55 : USTR_CONF_EI_PROTO
56 : size_t ustr_cspn_fwd(const struct Ustr *, size_t, const struct Ustr *)
57 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
58 : USTR__COMPILE_ATTR_NONNULL_A();
59 : USTR_CONF_EI_PROTO
60 : size_t ustr_cspn_rev(const struct Ustr *, size_t, const struct Ustr *)
61 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
62 : USTR__COMPILE_ATTR_NONNULL_A();
63 : USTR_CONF_EI_PROTO
64 : size_t ustr_cspn_cstr_fwd(const struct Ustr *, size_t, const char *)
65 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
66 : USTR__COMPILE_ATTR_NONNULL_A();
67 : USTR_CONF_EI_PROTO
68 : size_t ustr_cspn_cstr_rev(const struct Ustr *, size_t, const char *)
69 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
70 : USTR__COMPILE_ATTR_NONNULL_A();
71 :
72 : #ifdef USTR_UTF8_H
73 : USTR_CONF_E_PROTO
74 : size_t ustr_utf8_spn_chrs_fwd(const struct Ustr *, size_t, const char *, size_t)
75 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
76 : USTR__COMPILE_ATTR_NONNULL_A();
77 : USTR_CONF_E_PROTO
78 : size_t ustr_utf8_spn_chrs_rev(const struct Ustr *, size_t, const char *, size_t)
79 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
80 : USTR__COMPILE_ATTR_NONNULL_A();
81 : USTR_CONF_EI_PROTO
82 : size_t ustr_utf8_spn_fwd(const struct Ustr *, size_t, const struct Ustr *)
83 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
84 : USTR__COMPILE_ATTR_NONNULL_A();
85 : USTR_CONF_EI_PROTO
86 : size_t ustr_utf8_spn_rev(const struct Ustr *, size_t, const struct Ustr *)
87 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
88 : USTR__COMPILE_ATTR_NONNULL_A();
89 : USTR_CONF_EI_PROTO
90 : size_t ustr_utf8_spn_cstr_fwd(const struct Ustr *, size_t, const char *)
91 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
92 : USTR__COMPILE_ATTR_NONNULL_A();
93 : USTR_CONF_EI_PROTO
94 : size_t ustr_utf8_spn_cstr_rev(const struct Ustr *, size_t, const char *)
95 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
96 : USTR__COMPILE_ATTR_NONNULL_A();
97 :
98 : USTR_CONF_E_PROTO
99 : size_t ustr_utf8_cspn_chrs_fwd(const struct Ustr *,size_t, const char *, size_t)
100 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
101 : USTR__COMPILE_ATTR_NONNULL_A();
102 : USTR_CONF_E_PROTO
103 : size_t ustr_utf8_cspn_chrs_rev(const struct Ustr *,size_t, const char *, size_t)
104 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
105 : USTR__COMPILE_ATTR_NONNULL_A();
106 : USTR_CONF_EI_PROTO
107 : size_t ustr_utf8_cspn_fwd(const struct Ustr *, size_t, const struct Ustr *)
108 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
109 : USTR__COMPILE_ATTR_NONNULL_A();
110 : USTR_CONF_EI_PROTO
111 : size_t ustr_utf8_cspn_rev(const struct Ustr *, size_t, const struct Ustr *)
112 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
113 : USTR__COMPILE_ATTR_NONNULL_A();
114 : USTR_CONF_EI_PROTO
115 : size_t ustr_utf8_cspn_cstr_fwd(const struct Ustr *, size_t, const char *)
116 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
117 : USTR__COMPILE_ATTR_NONNULL_A();
118 : USTR_CONF_EI_PROTO
119 : size_t ustr_utf8_cspn_cstr_rev(const struct Ustr *, size_t, const char *)
120 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
121 : USTR__COMPILE_ATTR_NONNULL_A();
122 : #endif
123 :
124 : #if USTR_CONF_INCLUDE_CODEONLY_HEADERS
125 : # include "ustr-spn-code.h"
126 : #endif
127 :
128 : #if USTR_CONF_COMPILE_USE_INLINE
129 : USTR_CONF_II_PROTO
130 : size_t ustr_spn_cstr_fwd(const struct Ustr *s1, size_t off, const char *cstr)
131 102 : { return (ustr_spn_chrs_fwd(s1, off, cstr, strlen(cstr))); }
132 : USTR_CONF_II_PROTO
133 : size_t ustr_spn_cstr_rev(const struct Ustr *s1, size_t off, const char *cstr)
134 92 : { return (ustr_spn_chrs_rev(s1, off, cstr, strlen(cstr))); }
135 :
136 : USTR_CONF_II_PROTO
137 : size_t ustr_cspn_cstr_fwd(const struct Ustr *s1, size_t off, const char *cstr)
138 114 : { return (ustr_cspn_chrs_fwd(s1, off, cstr, strlen(cstr))); }
139 : USTR_CONF_II_PROTO
140 : size_t ustr_cspn_cstr_rev(const struct Ustr *s1, size_t off, const char *cstr)
141 120 : { return (ustr_cspn_chrs_rev(s1, off, cstr, strlen(cstr))); }
142 :
143 : USTR_CONF_II_PROTO
144 : size_t ustr_spn_fwd(const struct Ustr *s1, size_t off, const struct Ustr *s2)
145 24 : { return (ustr_spn_chrs_fwd(s1, off, ustr_cstr(s2), ustr_len(s2))); }
146 : USTR_CONF_II_PROTO
147 : size_t ustr_spn_rev(const struct Ustr *s1, size_t off, const struct Ustr *s2)
148 24 : { return (ustr_spn_chrs_rev(s1, off, ustr_cstr(s2), ustr_len(s2))); }
149 :
150 : USTR_CONF_II_PROTO
151 : size_t ustr_cspn_fwd(const struct Ustr *s1, size_t off, const struct Ustr *s2)
152 66 : { return (ustr_cspn_chrs_fwd(s1, off, ustr_cstr(s2), ustr_len(s2))); }
153 : USTR_CONF_II_PROTO
154 : size_t ustr_cspn_rev(const struct Ustr *s1, size_t off, const struct Ustr *s2)
155 36 : { return (ustr_cspn_chrs_rev(s1, off, ustr_cstr(s2), ustr_len(s2))); }
156 :
157 : # ifdef USTR_UTF8_H
158 : USTR_CONF_II_PROTO
159 : size_t ustr_utf8_spn_cstr_fwd(const struct Ustr *s1,size_t off,const char *cstr)
160 4 : { return (ustr_utf8_spn_chrs_fwd(s1, off, cstr, strlen(cstr))); }
161 : USTR_CONF_II_PROTO
162 : size_t ustr_utf8_spn_cstr_rev(const struct Ustr *s1,size_t off,const char *cstr)
163 8 : { return (ustr_utf8_spn_chrs_rev(s1, off, cstr, strlen(cstr))); }
164 :
165 : USTR_CONF_II_PROTO
166 : size_t ustr_utf8_cspn_cstr_fwd(const struct Ustr*s1,size_t off,const char *cstr)
167 16 : { return (ustr_utf8_cspn_chrs_fwd(s1, off, cstr, strlen(cstr))); }
168 : USTR_CONF_II_PROTO
169 : size_t ustr_utf8_cspn_cstr_rev(const struct Ustr*s1,size_t off,const char *cstr)
170 16 : { return (ustr_utf8_cspn_chrs_rev(s1, off, cstr, strlen(cstr))); }
171 :
172 : USTR_CONF_II_PROTO
173 : size_t ustr_utf8_spn_fwd(const struct Ustr *s1,size_t off,const struct Ustr *s2)
174 4 : { return (ustr_utf8_spn_chrs_fwd(s1, off, ustr_cstr(s2), ustr_len(s2))); }
175 : USTR_CONF_II_PROTO
176 : size_t ustr_utf8_spn_rev(const struct Ustr *s1,size_t off,const struct Ustr *s2)
177 20 : { return (ustr_utf8_spn_chrs_rev(s1, off, ustr_cstr(s2), ustr_len(s2))); }
178 :
179 : USTR_CONF_II_PROTO
180 : size_t ustr_utf8_cspn_fwd(const struct Ustr*s1,size_t off,const struct Ustr *s2)
181 44 : { return (ustr_utf8_cspn_chrs_fwd(s1, off, ustr_cstr(s2), ustr_len(s2))); }
182 : USTR_CONF_II_PROTO
183 : size_t ustr_utf8_cspn_rev(const struct Ustr*s1,size_t off,const struct Ustr *s2)
184 44 : { return (ustr_utf8_cspn_chrs_rev(s1, off, ustr_cstr(s2), ustr_len(s2))); }
185 : # endif
186 : #endif
187 :
188 : /* ---------------- pool wrapper APIs ---------------- */
189 :
190 : /* normal strspn() like, deals with embeded NILs */
191 : USTR_CONF_EI_PROTO size_t ustrp_spn_chr_fwd(const struct Ustrp *, size_t, char)
192 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
193 : USTR__COMPILE_ATTR_NONNULL_A();
194 : USTR_CONF_EI_PROTO size_t ustrp_spn_chr_rev(const struct Ustrp *, size_t, char)
195 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
196 : USTR__COMPILE_ATTR_NONNULL_A();
197 : USTR_CONF_EI_PROTO
198 : size_t ustrp_spn_chrs_fwd(const struct Ustrp *, size_t, const char *, size_t)
199 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
200 : USTR__COMPILE_ATTR_NONNULL_A();
201 : USTR_CONF_EI_PROTO
202 : size_t ustrp_spn_chrs_rev(const struct Ustrp *, size_t, const char *, size_t)
203 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
204 : USTR__COMPILE_ATTR_NONNULL_A();
205 : USTR_CONF_EI_PROTO
206 : size_t ustrp_spn_fwd(const struct Ustrp *, size_t, const struct Ustrp *)
207 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
208 : USTR__COMPILE_ATTR_NONNULL_A();
209 : USTR_CONF_EI_PROTO
210 : size_t ustrp_spn_rev(const struct Ustrp *, size_t, const struct Ustrp *)
211 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
212 : USTR__COMPILE_ATTR_NONNULL_A();
213 : USTR_CONF_EI_PROTO
214 : size_t ustrp_spn_cstr_fwd(const struct Ustrp *, size_t, const char *)
215 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
216 : USTR__COMPILE_ATTR_NONNULL_A();
217 : USTR_CONF_EI_PROTO
218 : size_t ustrp_spn_cstr_rev(const struct Ustrp *, size_t, const char *)
219 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
220 : USTR__COMPILE_ATTR_NONNULL_A();
221 :
222 : USTR_CONF_EI_PROTO size_t ustrp_cspn_chr_fwd(const struct Ustrp *, size_t, char)
223 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
224 : USTR__COMPILE_ATTR_NONNULL_A();
225 : USTR_CONF_EI_PROTO size_t ustrp_cspn_chr_rev(const struct Ustrp *, size_t, char)
226 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
227 : USTR__COMPILE_ATTR_NONNULL_A();
228 : USTR_CONF_EI_PROTO
229 : size_t ustrp_cspn_chrs_fwd(const struct Ustrp *, size_t, const char *, size_t)
230 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
231 : USTR__COMPILE_ATTR_NONNULL_A();
232 : USTR_CONF_EI_PROTO
233 : size_t ustrp_cspn_chrs_rev(const struct Ustrp *, size_t, const char *, size_t)
234 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
235 : USTR__COMPILE_ATTR_NONNULL_A();
236 : USTR_CONF_EI_PROTO
237 : size_t ustrp_cspn_fwd(const struct Ustrp *, size_t, const struct Ustrp *)
238 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
239 : USTR__COMPILE_ATTR_NONNULL_A();
240 : USTR_CONF_EI_PROTO
241 : size_t ustrp_cspn_rev(const struct Ustrp *, size_t, const struct Ustrp *)
242 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
243 : USTR__COMPILE_ATTR_NONNULL_A();
244 : USTR_CONF_EI_PROTO
245 : size_t ustrp_cspn_cstr_fwd(const struct Ustrp *, size_t, const char *)
246 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
247 : USTR__COMPILE_ATTR_NONNULL_A();
248 : USTR_CONF_EI_PROTO
249 : size_t ustrp_cspn_cstr_rev(const struct Ustrp *, size_t, const char *)
250 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
251 : USTR__COMPILE_ATTR_NONNULL_A();
252 :
253 : #ifdef USTR_UTF8_H
254 : USTR_CONF_EI_PROTO size_t ustrp_utf8_spn_chrs_fwd(const struct Ustrp *, size_t,
255 : const char *, size_t)
256 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
257 : USTR__COMPILE_ATTR_NONNULL_A();
258 : USTR_CONF_EI_PROTO size_t ustrp_utf8_spn_chrs_rev(const struct Ustrp *, size_t,
259 : const char *, size_t)
260 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
261 : USTR__COMPILE_ATTR_NONNULL_A();
262 : USTR_CONF_EI_PROTO
263 : size_t ustrp_utf8_spn_fwd(const struct Ustrp *, size_t, const struct Ustrp *)
264 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
265 : USTR__COMPILE_ATTR_NONNULL_A();
266 : USTR_CONF_EI_PROTO
267 : size_t ustrp_utf8_spn_rev(const struct Ustrp *, size_t, const struct Ustrp *)
268 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
269 : USTR__COMPILE_ATTR_NONNULL_A();
270 : USTR_CONF_EI_PROTO
271 : size_t ustrp_utf8_spn_cstr_fwd(const struct Ustrp *, size_t, const char *)
272 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
273 : USTR__COMPILE_ATTR_NONNULL_A();
274 : USTR_CONF_EI_PROTO
275 : size_t ustrp_utf8_spn_cstr_rev(const struct Ustrp *, size_t, const char *)
276 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
277 : USTR__COMPILE_ATTR_NONNULL_A();
278 :
279 : USTR_CONF_EI_PROTO size_t ustrp_utf8_cspn_chrs_fwd(const struct Ustrp *, size_t,
280 : const char *, size_t)
281 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
282 : USTR__COMPILE_ATTR_NONNULL_A();
283 : USTR_CONF_EI_PROTO size_t ustrp_utf8_cspn_chrs_rev(const struct Ustrp *, size_t,
284 : const char *, size_t)
285 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
286 : USTR__COMPILE_ATTR_NONNULL_A();
287 : USTR_CONF_EI_PROTO
288 : size_t ustrp_utf8_cspn_fwd(const struct Ustrp *, size_t, const struct Ustrp *)
289 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
290 : USTR__COMPILE_ATTR_NONNULL_A();
291 : USTR_CONF_EI_PROTO
292 : size_t ustrp_utf8_cspn_rev(const struct Ustrp *, size_t, const struct Ustrp *)
293 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
294 : USTR__COMPILE_ATTR_NONNULL_A();
295 : USTR_CONF_EI_PROTO
296 : size_t ustrp_utf8_cspn_cstr_fwd(const struct Ustrp *, size_t, const char *)
297 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
298 : USTR__COMPILE_ATTR_NONNULL_A();
299 : USTR_CONF_EI_PROTO
300 : size_t ustrp_utf8_cspn_cstr_rev(const struct Ustrp *, size_t, const char *)
301 : USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
302 : USTR__COMPILE_ATTR_NONNULL_A();
303 : #endif
304 :
305 : #if USTR_CONF_COMPILE_USE_INLINE
306 : USTR_CONF_II_PROTO
307 : size_t ustrp_spn_chr_fwd(const struct Ustrp *s1, size_t off, char chr)
308 8 : { return (ustr_spn_chr_fwd(&s1->s, off, chr)); }
309 : USTR_CONF_II_PROTO
310 : size_t ustrp_spn_chr_rev(const struct Ustrp *s1, size_t off, char chr)
311 8 : { return (ustr_spn_chr_rev(&s1->s, off, chr)); }
312 : USTR_CONF_II_PROTO size_t ustrp_spn_chrs_fwd(const struct Ustrp *s1, size_t off,
313 : const char *chrs, size_t len)
314 28 : { return (ustr_spn_chrs_fwd(&s1->s, off, chrs, len)); }
315 : USTR_CONF_II_PROTO size_t ustrp_spn_chrs_rev(const struct Ustrp *s1, size_t off,
316 : const char *chrs, size_t len)
317 24 : { return (ustr_spn_chrs_rev(&s1->s, off, chrs, len)); }
318 : USTR_CONF_II_PROTO
319 : size_t ustrp_spn_fwd(const struct Ustrp *s1, size_t off, const struct Ustrp *s2)
320 16 : { return (ustr_spn_fwd(&s1->s, off, &s2->s)); }
321 : USTR_CONF_II_PROTO
322 : size_t ustrp_spn_rev(const struct Ustrp *s1, size_t off, const struct Ustrp *s2)
323 16 : { return (ustr_spn_rev(&s1->s, off, &s2->s)); }
324 : USTR_CONF_II_PROTO
325 : size_t ustrp_spn_cstr_fwd(const struct Ustrp *s1, size_t off, const char *chrs)
326 28 : { return (ustrp_spn_chrs_fwd(s1, off, chrs, strlen(chrs))); }
327 : USTR_CONF_II_PROTO
328 : size_t ustrp_spn_cstr_rev(const struct Ustrp *s1, size_t off, const char *chrs)
329 24 : { return (ustrp_spn_chrs_rev(s1, off, chrs, strlen(chrs))); }
330 :
331 : USTR_CONF_II_PROTO
332 : size_t ustrp_cspn_chr_fwd(const struct Ustrp *s1, size_t off, char chr)
333 16 : { return (ustr_cspn_chr_fwd(&s1->s, off, chr)); }
334 : USTR_CONF_II_PROTO
335 : size_t ustrp_cspn_chr_rev(const struct Ustrp *s1, size_t off, char chr)
336 8 : { return (ustr_cspn_chr_rev(&s1->s, off, chr)); }
337 : USTR_CONF_II_PROTO size_t ustrp_cspn_chrs_fwd(const struct Ustrp *s1,size_t off,
338 : const char *chrs, size_t len)
339 52 : { return (ustr_cspn_chrs_fwd(&s1->s, off, chrs, len)); }
340 : USTR_CONF_II_PROTO size_t ustrp_cspn_chrs_rev(const struct Ustrp *s1,size_t off,
341 : const char *chrs, size_t len)
342 32 : { return (ustr_cspn_chrs_rev(&s1->s, off, chrs, len)); }
343 : USTR_CONF_II_PROTO
344 : size_t ustrp_cspn_fwd(const struct Ustrp *s1,size_t off, const struct Ustrp *s2)
345 44 : { return (ustr_cspn_fwd(&s1->s, off, &s2->s)); }
346 : USTR_CONF_II_PROTO
347 : size_t ustrp_cspn_rev(const struct Ustrp *s1,size_t off, const struct Ustrp *s2)
348 24 : { return (ustr_cspn_rev(&s1->s, off, &s2->s)); }
349 : USTR_CONF_II_PROTO
350 : size_t ustrp_cspn_cstr_fwd(const struct Ustrp *s1, size_t off, const char *chrs)
351 52 : { return (ustrp_cspn_chrs_fwd(s1, off, chrs, strlen(chrs))); }
352 : USTR_CONF_II_PROTO
353 : size_t ustrp_cspn_cstr_rev(const struct Ustrp *s1, size_t off, const char *chrs)
354 32 : { return (ustrp_cspn_chrs_rev(s1, off, chrs, strlen(chrs))); }
355 :
356 : # ifdef USTR_UTF8_H
357 : USTR_CONF_II_PROTO
358 : size_t ustrp_utf8_spn_chrs_fwd(const struct Ustrp *s1, size_t off,
359 : const char *chrs, size_t len)
360 16 : { return (ustr_utf8_spn_chrs_fwd(&s1->s, off, chrs, len)); }
361 : USTR_CONF_II_PROTO
362 : size_t ustrp_utf8_spn_chrs_rev(const struct Ustrp *s1, size_t off,
363 : const char *chrs, size_t len)
364 8 : { return (ustr_utf8_spn_chrs_rev(&s1->s, off, chrs, len)); }
365 : USTR_CONF_II_PROTO size_t ustrp_utf8_spn_fwd(const struct Ustrp *s1, size_t off,
366 : const struct Ustrp *s2)
367 4 : { return (ustr_utf8_spn_fwd(&s1->s, off, &s2->s)); }
368 : USTR_CONF_II_PROTO size_t ustrp_utf8_spn_rev(const struct Ustrp *s1, size_t off,
369 : const struct Ustrp *s2)
370 20 : { return (ustr_utf8_spn_rev(&s1->s, off, &s2->s)); }
371 : USTR_CONF_II_PROTO size_t ustrp_utf8_spn_cstr_fwd(const struct Ustrp *s1,
372 : size_t off, const char *chrs)
373 16 : { return (ustrp_utf8_spn_chrs_fwd(s1, off, chrs, strlen(chrs))); }
374 : USTR_CONF_II_PROTO size_t ustrp_utf8_spn_cstr_rev(const struct Ustrp *s1,
375 : size_t off, const char *chrs)
376 8 : { return (ustrp_utf8_spn_chrs_rev(s1, off, chrs, strlen(chrs))); }
377 :
378 : USTR_CONF_II_PROTO
379 : size_t ustrp_utf8_cspn_chrs_fwd(const struct Ustrp *s1, size_t off,
380 : const char *chrs, size_t len)
381 8 : { return (ustr_utf8_cspn_chrs_fwd(&s1->s, off, chrs, len)); }
382 : USTR_CONF_II_PROTO
383 : size_t ustrp_utf8_cspn_chrs_rev(const struct Ustrp *s1, size_t off,
384 : const char *chrs, size_t len)
385 8 : { return (ustr_utf8_cspn_chrs_rev(&s1->s, off, chrs, len)); }
386 : USTR_CONF_II_PROTO size_t ustrp_utf8_cspn_fwd(const struct Ustrp *s1,size_t off,
387 : const struct Ustrp *s2)
388 44 : { return (ustr_utf8_cspn_fwd(&s1->s, off, &s2->s)); }
389 : USTR_CONF_II_PROTO size_t ustrp_utf8_cspn_rev(const struct Ustrp *s1,size_t off,
390 : const struct Ustrp *s2)
391 44 : { return (ustr_utf8_cspn_rev(&s1->s, off, &s2->s)); }
392 : USTR_CONF_II_PROTO size_t ustrp_utf8_cspn_cstr_fwd(const struct Ustrp *s1,
393 : size_t off, const char *chrs)
394 8 : { return (ustrp_utf8_cspn_chrs_fwd(s1, off, chrs, strlen(chrs))); }
395 : USTR_CONF_II_PROTO size_t ustrp_utf8_cspn_cstr_rev(const struct Ustrp *s1,
396 : size_t off, const char *chrs)
397 8 : { return (ustrp_utf8_cspn_chrs_rev(s1, off, chrs, strlen(chrs))); }
398 : # endif
399 : #endif
400 :
401 : #endif
|