diff options
| author | Marijn Haverbeke <marijnh@gmail.com> | 2012-02-23 13:41:10 +0100 |
|---|---|---|
| committer | Marijn Haverbeke <marijnh@gmail.com> | 2012-02-23 17:00:19 +0100 |
| commit | d802c1fbd2b3a9d1b16977379b93c5f3095d6f38 (patch) | |
| tree | 331274f2a0310ea8a73acbb8a6499d94b45e754a /src/libstd | |
| parent | 35e9192762f30ec893e4e72f49abffe7f77c4615 (diff) | |
| download | rust-d802c1fbd2b3a9d1b16977379b93c5f3095d6f38.tar.gz rust-d802c1fbd2b3a9d1b16977379b93c5f3095d6f38.zip | |
Various cleanups and optimizations in core::str
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/fs.rs | 18 | ||||
| -rw-r--r-- | src/libstd/net.rs | 2 |
2 files changed, 6 insertions, 14 deletions
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs index 3ba2f8b105a..8e835bad7f6 100644 --- a/src/libstd/fs.rs +++ b/src/libstd/fs.rs @@ -254,16 +254,9 @@ the first element of the returned vector will be the drive letter followed by a colon. */ fn split(p: path) -> [path] { - // FIXME: use UTF-8 safe str, and/or various other string formats - let split1 = str::split_byte(p, os_fs::path_sep as u8); - let split2 = []; - for s in split1 { - split2 += str::split_byte(s, os_fs::alt_path_sep as u8); - } - - // filter out "" - let split3 = vec::filter(split2, {|seg| "" != seg}); - ret split3; + str::split_nonempty(p, {|c| + c == os_fs::path_sep || c == os_fs::alt_path_sep + }) } /* @@ -276,13 +269,12 @@ path includes directory components then they are included in the filename part of the result pair. */ fn splitext(p: path) -> (str, str) { - // FIXME: use UTF-8 safe str, and/or various other string formats if str::is_empty(p) { ("", "") } else { - let parts = str::split_byte(p, '.' as u8); + let parts = str::split_char(p, '.'); if vec::len(parts) > 1u { let base = str::connect(vec::init(parts), "."); - let ext = "." + option::get(vec::last(parts)); + let ext = "." + vec::last_total(parts); fn is_dotfile(base: str) -> bool { str::is_empty(base) diff --git a/src/libstd/net.rs b/src/libstd/net.rs index 2325598a2d3..06db7f7d7c8 100644 --- a/src/libstd/net.rs +++ b/src/libstd/net.rs @@ -49,7 +49,7 @@ Failure: String must be a valid IPv4 address */ fn parse_addr(ip: str) -> ip_addr { - let parts = vec::map(str::split_byte(ip, "."[0]), {|s| + let parts = vec::map(str::split_char(ip, '.'), {|s| alt uint::from_str(s) { some(n) if n <= 255u { n } _ { fail "Invalid IP Address part." } |
