This commit is contained in:
yhirose 2019-10-27 17:27:57 -04:00
parent f0b1b5dbfd
commit 8fb37a449d

View File

@ -1011,8 +1011,8 @@ inline void read_file(const std::string &path, std::string &out) {
inline std::string file_extension(const std::string &path) { inline std::string file_extension(const std::string &path) {
std::smatch m; std::smatch m;
auto pat = std::regex("\\.([a-zA-Z0-9]+)$"); auto re = std::regex("\\.([a-zA-Z0-9]+)$");
if (std::regex_search(path, m, pat)) { return m[1].str(); } if (std::regex_search(path, m, re)) { return m[1].str(); }
return std::string(); return std::string();
} }
@ -1898,16 +1898,16 @@ inline bool parse_multipart_formdata(const std::string &boundary,
inline bool parse_range_header(const std::string &s, Ranges &ranges) { inline bool parse_range_header(const std::string &s, Ranges &ranges) {
try { try {
static auto re = std::regex(R"(bytes=(\d*-\d*(?:,\s*\d*-\d*)*))"); static auto re_first_range = std::regex(R"(bytes=(\d*-\d*(?:,\s*\d*-\d*)*))");
std::smatch m; std::smatch m;
if (std::regex_match(s, m, re)) { if (std::regex_match(s, m, re_first_range)) {
auto pos = m.position(1); auto pos = m.position(1);
auto len = m.length(1); auto len = m.length(1);
detail::split(&s[pos], &s[pos + len], ',', detail::split(&s[pos], &s[pos + len], ',',
[&](const char *b, const char *e) { [&](const char *b, const char *e) {
static auto re = std::regex(R"(\s*(\d*)-(\d*))"); static auto re_another_range = std::regex(R"(\s*(\d*)-(\d*))");
std::cmatch m; std::cmatch m;
if (std::regex_match(b, e, m, re)) { if (std::regex_match(b, e, m, re_another_range)) {
ssize_t first = -1; ssize_t first = -1;
if (!m.str(1).empty()) { if (!m.str(1).empty()) {
first = static_cast<ssize_t>(std::stoll(m.str(1))); first = static_cast<ssize_t>(std::stoll(m.str(1)));