about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-08-06 13:12:49 -0700
committerBrian Anderson <banderson@mozilla.com>2012-08-06 13:12:49 -0700
commit1e3143b34e66ca5157b03d3658d64d7c01563186 (patch)
treec2ee9f7547e3bd2d2e84aafffa1ee1af6e8918c6 /src/libstd
parent03330baf9ca15d88e58753167b1eb40ca03cba78 (diff)
std: Parse underscores in url paths
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/net_url.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libstd/net_url.rs b/src/libstd/net_url.rs
index d43a8add1cc..a604f0ee4ec 100644
--- a/src/libstd/net_url.rs
+++ b/src/libstd/net_url.rs
@@ -537,7 +537,8 @@ fn get_path(rawurl: ~str, authority : bool) ->
     for str::each_chari(rawurl) |i,c| {
         match c {
           'A' to 'Z' | 'a' to 'z' | '0' to '9' | '&' |'\'' | '(' | ')' | '.'
-          | '@' | ':' | '%' | '/' | '+' | '!' | '*' | ',' | ';' | '=' => {
+          | '@' | ':' | '%' | '/' | '+' | '!' | '*' | ',' | ';' | '='
+          | '_' => {
             again;
           }
           '?' | '#' => {
@@ -796,6 +797,14 @@ mod tests {
     }
 
     #[test]
+    fn test_url_with_underscores() {
+        let urlstr = ~"http://dotcom.com/file_name.html";
+        let url = from_str(urlstr).get();
+        #debug("url: %?", url);
+        assert url.path == ~"/file_name.html";
+    }
+
+    #[test]
     fn test_no_scheme() {
         assert result::is_err(get_scheme(~"noschemehere.html"));
     }