]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/uri.cpp
made IsPathSeparator(NUL) work (by returning false)
[wxWidgets.git] / src / common / uri.cpp
index 0d181449c16d612ac9d0e43f377dab65d62a0096..584eaf37e1c9bdf581ce6219498268010dee548e 100644 (file)
@@ -117,7 +117,8 @@ wxChar wxURI::TranslateEscape(const wxChar* s)
 {
     wxASSERT_MSG(IsHex(*s) && IsHex(*(s+1)), wxT("Invalid escape!"));
 
-    return CharToHex(*s) * 0x10 + CharToHex(*++s);
+    //<<4 == 16
+    return ( CharToHex(*s) << 4 ) | CharToHex(*++s);
 }
 
 wxString wxURI::Unescape(const wxString& uri)
@@ -131,6 +132,8 @@ wxString wxURI::Unescape(const wxString& uri)
             new_uri += wxURI::TranslateEscape( &(uri.c_str()[i+1]) );
             i += 2;
         }
+        else
+            new_uri += uri[i];
     }
 
     return new_uri;
@@ -1152,9 +1155,9 @@ bool wxURI::ParseIPvFuture(const wxChar*& uri)
 //static
 wxChar wxURI::CharToHex(const wxChar& c)
 {
-    if ((c >= wxT('A')) && (c <= wxT('Z')))    return c - wxT('A') + 0x0A;
-    if ((c >= wxT('a')) && (c <= wxT('z')))    return c - wxT('a') + 0x0a;
-    if ((c >= wxT('0')) && (c <= wxT('9')))    return c - wxT('0') + 0x00;
+    if ((c >= wxT('A')) && (c <= wxT('Z'))) return wxChar(c - wxT('A') + 0x0A);
+    if ((c >= wxT('a')) && (c <= wxT('z'))) return wxChar(c - wxT('a') + 0x0a);
+    if ((c >= wxT('0')) && (c <= wxT('9'))) return wxChar(c - wxT('0') + 0x00);
 
     return 0;
 }