| 3407 | } |
| 3408 | |
| 3409 | inline bool compare_case_ignore(const std::string &a, const std::string &b) { |
| 3410 | if (a.size() != b.size()) { return false; } |
| 3411 | for (size_t i = 0; i < b.size(); i++) { |
| 3412 | if (::tolower(a[i]) != ::tolower(b[i])) { return false; } |
| 3413 | } |
| 3414 | return true; |
| 3415 | } |
| 3416 | |
| 3417 | template <typename T> |
| 3418 | inline bool parse_header(const char *beg, const char *end, T fn) { |