Fix in_attr_char(); cleanup const char array iteration
This commit is contained in:
parent
a70445e122
commit
863493766d
20
src/util.cc
20
src/util.cc
|
@ -68,13 +68,14 @@ const char DEFAULT_STRIP_CHARSET[] = "\r\n\t ";
|
||||||
const char UPPER_XDIGITS[] = "0123456789ABCDEF";
|
const char UPPER_XDIGITS[] = "0123456789ABCDEF";
|
||||||
|
|
||||||
bool inRFC3986UnreservedChars(const char c) {
|
bool inRFC3986UnreservedChars(const char c) {
|
||||||
static const char unreserved[] = {'-', '.', '_', '~'};
|
static constexpr const char unreserved[] = {'-', '.', '_', '~'};
|
||||||
return isAlpha(c) || isDigit(c) ||
|
return isAlpha(c) || isDigit(c) ||
|
||||||
std::find(&unreserved[0], &unreserved[4], c) != &unreserved[4];
|
std::find(std::begin(unreserved), std::end(unreserved), c) !=
|
||||||
|
std::end(unreserved);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool in_rfc3986_sub_delims(const char c) {
|
bool in_rfc3986_sub_delims(const char c) {
|
||||||
static const char sub_delims[] = {'!', '$', '&', '\'', '(', ')',
|
static constexpr const char sub_delims[] = {'!', '$', '&', '\'', '(', ')',
|
||||||
'*', '+', ',', ';', '='};
|
'*', '+', ',', ';', '='};
|
||||||
return std::find(std::begin(sub_delims), std::end(sub_delims), c) !=
|
return std::find(std::begin(sub_delims), std::end(sub_delims), c) !=
|
||||||
std::end(sub_delims);
|
std::end(sub_delims);
|
||||||
|
@ -117,18 +118,17 @@ std::string percent_encode_path(const std::string &s) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool in_token(char c) {
|
bool in_token(char c) {
|
||||||
static const char extra[] = {'!', '#', '$', '%', '&', '\'', '*', '+',
|
static constexpr const char extra[] = {'!', '#', '$', '%', '&',
|
||||||
'-', '.', '^', '_', '`', '|', '~'};
|
'\'', '*', '+', '-', '.',
|
||||||
|
'^', '_', '`', '|', '~'};
|
||||||
return isAlpha(c) || isDigit(c) ||
|
return isAlpha(c) || isDigit(c) ||
|
||||||
std::find(&extra[0], &extra[sizeof(extra)], c) !=
|
std::find(std::begin(extra), std::end(extra), c) != std::end(extra);
|
||||||
&extra[sizeof(extra)];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool in_attr_char(char c) {
|
bool in_attr_char(char c) {
|
||||||
static const char bad[] = {'*', '\'', '%'};
|
static constexpr const char bad[] = {'*', '\'', '%'};
|
||||||
return util::in_token(c) &&
|
return util::in_token(c) &&
|
||||||
std::find(std::begin(bad), std::end(bad) - 1, c) == std::end(bad) - 1;
|
std::find(std::begin(bad), std::end(bad), c) == std::end(bad);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string percent_encode_token(const std::string &target) {
|
std::string percent_encode_token(const std::string &target) {
|
||||||
|
|
Loading…
Reference in New Issue