32 int av_strstart(
const char *str,
const char *pfx,
const char **ptr)
34 while (*pfx && *pfx == *str) {
43 int av_stristart(
const char *str,
const char *pfx,
const char **ptr)
67 char *
av_strnstr(
const char *haystack,
const char *needle,
size_t hay_length)
69 size_t needle_len = strlen(needle);
72 while (hay_length >= needle_len) {
74 if (!memcmp(haystack, needle, needle_len))
84 while (++len < size && *src)
88 return len + strlen(src) - 1;
93 size_t len = strlen(dst);
95 return len + strlen(src);
96 return len +
av_strlcpy(dst + len, src, size - len);
101 int len = strlen(dst);
105 len += vsnprintf(dst + len, size > len ? size - len : 0, fmt, vl);
115 snprintf(str, 16,
"%f", d);
119 #define WHITESPACES " \n\t"
124 char *ret =
out, *end =
out;
125 const char *p = *
buf;
130 while (*p && !strspn(p, term)) {
132 if (c ==
'\\' && *p) {
135 }
else if (c ==
'\'') {
136 while (*p && *p !=
'\'')
162 }
while (c1 && c1 == c2);
168 const char *end = a + n;
173 }
while (a < end && c1 && c1 == c2);
179 char *p = strrchr(path,
'/');
182 char *q = strrchr(path,
'\\');
183 char *d = strchr(path,
':');
196 char *p = strrchr(path,
'/');
199 char *q = strrchr(path,
'\\');
200 char *d = strchr(path,
':');
217 return c >=
'0' && c <=
'9';
222 return c > 32 && c < 127;
227 return c ==
' ' || c ==
'\f' || c ==
'\n' || c ==
'\r' || c ==
'\t' ||
234 return av_isdigit(c) || (c >=
'a' && c <=
'f');
242 const char *strings[] = {
258 "'foo : ' :blahblah",
264 " foo bar : blahblah",
266 "'foo : \\ \\ ' : blahblah",
267 "'\\fo\\o:': blahblah",
268 "\\'fo\\o\\:': foo ' :blahblah"
271 printf(
"Testing av_get_token()\n");
273 const char *p = strings[i];
277 printf(
" -> |%s|", q);
278 printf(
" + |%s|\n", p);