diff --git a/lib/remote/url-characters.hpp b/lib/remote/url-characters.hpp index c44614f50..a2a088401 100644 --- a/lib/remote/url-characters.hpp +++ b/lib/remote/url-characters.hpp @@ -26,8 +26,8 @@ #define UNRESERVED ALPHA NUMERIC "-._~" "%" #define GEN_DELIMS ":/?#[]@" #define SUB_DELIMS "!$&'()*+,;=" -#define RESERVED GEN_DELIMS SUB-DELIMS #define PCHAR UNRESERVED SUB_DELIMS ":@" +#define PCHAR_ENCODE UNRESERVED ":@" #define ACSCHEME ALPHA NUMERIC ".-+" @@ -37,7 +37,10 @@ #define ACPORT NUMERIC #define ACPATHSEGMENT PCHAR +#define ACPATHSEGMENT_ENCODE PCHAR_ENCODE #define ACQUERY PCHAR "/?" +#define ACQUERY_ENCODE PCHAR_ENCODE "/?" #define ACFRAGMENT PCHAR "/?" +#define ACFRAGMENT_ENCODE PCHAR_ENCODE "/?" #endif /* URL_CHARACTERS_H */ diff --git a/lib/remote/url.cpp b/lib/remote/url.cpp index c736f8df3..f79b1101e 100644 --- a/lib/remote/url.cpp +++ b/lib/remote/url.cpp @@ -243,7 +243,7 @@ String Url::Format(bool print_credentials) const else { BOOST_FOREACH (const String& segment, m_Path) { url += "/"; - url += Utility::EscapeString(segment, ACPATHSEGMENT, false); + url += Utility::EscapeString(segment, ACPATHSEGMENT_ENCODE, false); } } @@ -252,7 +252,7 @@ String Url::Format(bool print_credentials) const typedef std::pair > kv_pair; BOOST_FOREACH (const kv_pair& kv, m_Query) { - String key = Utility::EscapeString(kv.first, ACQUERY, false); + String key = Utility::EscapeString(kv.first, ACQUERY_ENCODE, false); if (param.IsEmpty()) param = "?"; else @@ -268,7 +268,7 @@ String Url::Format(bool print_credentials) const if (kv.second.size() > 1) temp += "[]"; - temp += "=" + Utility::EscapeString(s, ACQUERY, false); + temp += "=" + Utility::EscapeString(s, ACQUERY_ENCODE, false); } param += temp; } @@ -277,7 +277,7 @@ String Url::Format(bool print_credentials) const url += param; if (!m_Fragment.IsEmpty()) - url += "#" + Utility::EscapeString(m_Fragment, ACFRAGMENT, false); + url += "#" + Utility::EscapeString(m_Fragment, ACFRAGMENT_ENCODE, false); return url; }