21 return (
unsigned)(c -
min) <= (
unsigned)(
max -
min);
36 return is_ws(c) || c ==
',' || c ==
';';
56static const char*
skip_ws(
const char str[])
80 if ((c = *str++) ==
'\0')
82 }
while (
is_sep(c) ==
false);
85 if ((c = *str++) ==
'\0')
101 if ((c = *str++) ==
'\0')
103 }
while (c != separator);
106 if ((c = *str++) ==
'\0')
108 }
while (c == separator);
126 while ((digit =
to_hex(*str)) >= 0)
128 if (--max_digits < 0)
130 n = (n << 4) | digit;
134 if (*str == 0 ||
is_ws(*str))
149 int64_t maxAbsValue = std::numeric_limits<int>::max();
153 maxAbsValue = -
static_cast<int64_t
>(std::numeric_limits<int>::min());
164 n = 10*n + *str -
'0';
165 if (n > maxAbsValue) {
195 n = 10*n + *str -
'0';
198 int remaining10s = 3;
203 n = 10*n + *str -
'0';
205 if (--remaining10s == 0)
209 while (--remaining10s >= 0)
221 float v = (float)strtod(str, &stop);
240 if (--
count == 0 || str ==
nullptr)
262 static const char* gYes[] = {
"yes",
"1",
"true" };
263 static const char* gNo[] = {
"no",
"0",
"false" };
270 else if (
lookup_str(str, gNo, std::size(gNo)))
280 size_t len = strlen(
target);
285 const char*
end = strchr(list,
',');
289 entryLen = strlen(list);
291 entryLen =
end - list;
293 if (entryLen == len && memcmp(
target, list, len) == 0)
static bool lookup_str(const char str[], const char **table, int count)
static bool is_sep(int c)
static const char * skip_sep(const char str[])
static bool is_digit(int c)
static bool is_hex(int c)
static const char * skip_ws(const char str[])
static bool is_between(int c, int min, int max)
static int sign(SkScalar x)
constexpr int32_t SkToS32(S x)
static const char * FindScalar(const char str[], SkScalar *value)
static const char * FindHex(const char str[], uint32_t *value)
static const char * FindS32(const char str[], int32_t *value)
static int Count(const char str[])
static const char * FindScalars(const char str[], SkScalar value[], int count)
static int FindList(const char str[], const char list[])
static bool FindBool(const char str[], bool *value)
static const char * FindMSec(const char str[], SkMSec *value)
static float max(float r, float g, float b)
static float min(float r, float g, float b)