From 782692f3e6a9672904b70df90b30b9016e205f31 Mon Sep 17 00:00:00 2001 From: Valentin Gosu Date: Fri, 8 May 2015 03:40:10 +0300 Subject: [PATCH] Percent encode curly braces --- src/parser.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parser.rs b/src/parser.rs index 3c4d1512..880f8c43 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -13,7 +13,7 @@ use std::fmt::{self, Formatter}; use super::{UrlParser, Url, SchemeData, RelativeSchemeData, Host, SchemeType}; use percent_encoding::{ utf8_percent_encode_to, percent_encode, - SIMPLE_ENCODE_SET, DEFAULT_ENCODE_SET, USERINFO_ENCODE_SET, QUERY_ENCODE_SET + SIMPLE_ENCODE_SET, DEFAULT_ENCODE_SET, USERINFO_ENCODE_SET, QUERY_ENCODE_SET, FORM_URLENCODED_ENCODE_SET }; @@ -531,6 +531,10 @@ fn parse_path<'a>(base_path: &[String], input: &'a str, context: Context, end = i; break }, + '{' | '}' => { + utf8_percent_encode_to(&input[i..next_i], + FORM_URLENCODED_ENCODE_SET, &mut path_part); + }, '\t' | '\n' | '\r' => try!(parser.parse_error(ParseError::InvalidCharacter)), _ => { try!(check_url_code_point(input, i, c, parser));