about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorKevin Cantu <me@kevincantu.org>2012-02-11 03:20:45 -0800
committerKevin Cantu <me@kevincantu.org>2012-02-11 16:39:39 -0800
commit27161f4415e484680cf404b9819bf37d66c26783 (patch)
tree95d6b672323ae58ecac7bd2adea14a2b4391beb6 /src/libstd
parent14baf88f89241f1384e4d12b4751910fe16c947c (diff)
downloadrust-27161f4415e484680cf404b9819bf37d66c26783.tar.gz
rust-27161f4415e484680cf404b9819bf37d66c26783.zip
using str::index...
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/getopts.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libstd/getopts.rs b/src/libstd/getopts.rs
index 33674fe67f3..8288501defc 100644
--- a/src/libstd/getopts.rs
+++ b/src/libstd/getopts.rs
@@ -230,16 +230,14 @@ fn getopts(args: [str], opts: [opt]) -> result unsafe {
             let i_arg = option::none::<str>;
             if cur[1] == '-' as u8 {
                 let tail = str::unsafe::slice_bytes(cur, 2u, curlen);
-                let eq = str::index_byte(tail, '=' as u8);
-                if eq == -1 {
+                let tail_eq = str::splitn_char(tail, '=', 1u);
+                if vec::len(tail_eq) <= 1u {
                     names = [long(tail)];
                 } else {
                     names =
-                        [long(str::unsafe::slice_bytes(tail,0u,eq as uint))];
+                        [long(tail_eq[0])];
                     i_arg =
-                        option::some::<str>(str::unsafe::slice_bytes(tail,
-                                                       (eq as uint) + 1u,
-                                                       curlen - 2u));
+                        option::some::<str>(tail_eq[1]);
                 }
             } else {
                 let j = 1u;