about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-05-08 21:45:37 -0700
committerbors <bors@rust-lang.org>2013-05-08 21:45:37 -0700
commit101d4bf8b2a9d7bf7cd537ae8a9d9a9a12ebc150 (patch)
treea9422aee4cb6251083cd1bb40065d8d030df6a12 /src/libstd
parent3bbbb314ee61aa00deb3e9756421fd2465fd7a91 (diff)
parentad5ee00c93043f08626efae8547587b640cf2630 (diff)
downloadrust-101d4bf8b2a9d7bf7cd537ae8a9d9a9a12ebc150.tar.gz
rust-101d4bf8b2a9d7bf7cd537ae8a9d9a9a12ebc150.zip
auto merge of #6332 : huonw/rust/std-base64-match, r=nikomatsakis
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/base64.rs44
1 files changed, 20 insertions, 24 deletions
diff --git a/src/libstd/base64.rs b/src/libstd/base64.rs
index b26296c9aca..85ba2707863 100644
--- a/src/libstd/base64.rs
+++ b/src/libstd/base64.rs
@@ -156,31 +156,27 @@ impl FromBase64 for ~[u8] {
                 let ch = self[i] as char;
                 n <<= 6u;
 
-                if ch >= 'A' && ch <= 'Z' {
-                    n |= (ch as uint) - 0x41u;
-                } else if ch >= 'a' && ch <= 'z' {
-                    n |= (ch as uint) - 0x47u;
-                } else if ch >= '0' && ch <= '9' {
-                    n |= (ch as uint) + 0x04u;
-                } else if ch == '+' {
-                    n |= 0x3Eu;
-                } else if ch == '/' {
-                    n |= 0x3Fu;
-                } else if ch == '=' {
-                    match len - i {
-                      1u => {
-                        r.push(((n >> 16u) & 0xFFu) as u8);
-                        r.push(((n >> 8u ) & 0xFFu) as u8);
-                        return copy r;
-                      }
-                      2u => {
-                        r.push(((n >> 10u) & 0xFFu) as u8);
-                        return copy r;
-                      }
-                      _ => fail!(~"invalid base64 padding")
+                match ch {
+                    'A'..'Z' => n |= (ch as uint) - 0x41,
+                    'a'..'z' => n |= (ch as uint) - 0x47,
+                    '0'..'9' => n |= (ch as uint) + 0x04,
+                    '+'      => n |= 0x3E,
+                    '/'      => n |= 0x3F,
+                    '='      => {
+                        match len - i {
+                            1u => {
+                                r.push(((n >> 16u) & 0xFFu) as u8);
+                                r.push(((n >> 8u ) & 0xFFu) as u8);
+                                return copy r;
+                            }
+                            2u => {
+                                r.push(((n >> 10u) & 0xFFu) as u8);
+                                return copy r;
+                            }
+                            _ => fail!(~"invalid base64 padding")
+                        }
                     }
-                } else {
-                    fail!(~"invalid base64 character");
+                    _ => fail!(~"invalid base64 character")
                 }
 
                 i += 1u;