diff --git a/ircd/rfc3986.cc b/ircd/rfc3986.cc index 2f034cd3d..63c810346 100644 --- a/ircd/rfc3986.cc +++ b/ircd/rfc3986.cc @@ -435,22 +435,22 @@ namespace ircd::rfc3986::parser::decoder static const auto is_safe { - [](const char val, auto &c, bool &pass) + [](const int8_t val, auto &c, bool &pass) { pass = (val > 0x1F) | (val < 0x00); attr_at<0>(c) = val; } }; - const expr decode_char + const rule decode_char_safe { - lit('%') >> qi::int_parser{} + lit('%') > qi::int_parser{}[is_safe] ,"url decodable character" }; - const rule decode_char_safe + const expr decode_char { - lit('%') > qi::int_parser{}[is_safe] + lit('%') >> qi::int_parser{} ,"url decodable character" };