diff options
| author | Graydon Hoare <[email protected]> | 2011-05-05 14:31:10 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-05-05 14:31:45 -0700 |
| commit | 50ac893b00853fa832a0f689b81104bd82e2a9b5 (patch) | |
| tree | e1b2220a5fd356c41330d17234c2ca302d8f18c9 /src | |
| parent | rustc: Fix bug in equal_abi that was preventing Rust intrinsics from working (diff) | |
| download | rust-50ac893b00853fa832a0f689b81104bd82e2a9b5.tar.xz rust-50ac893b00853fa832a0f689b81104bd82e2a9b5.zip | |
Attempt to fix fs.dirname harder.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/fs.rs | 9 | ||||
| -rw-r--r-- | src/lib/posix_fs.rs | 1 | ||||
| -rw-r--r-- | src/lib/win32_fs.rs | 1 |
3 files changed, 4 insertions, 7 deletions
diff --git a/src/lib/fs.rs b/src/lib/fs.rs index 29719233..0a951e5a 100644 --- a/src/lib/fs.rs +++ b/src/lib/fs.rs @@ -9,14 +9,9 @@ fn path_sep() -> str { type path = str; fn dirname(path p) -> path { - auto sep = path_sep(); - assert (_str.byte_len(sep) == 1u); - let int i = _str.rindex(p, sep.(0)); + let int i = _str.rindex(p, os_fs.path_sep as u8); if (i == -1) { - // FIXME: the '/' character is a path separator on all 3 platforms we - // support. This should probably be generalized a bit more in the - // future, but for now this should work. - i = _str.rindex(p, '/' as u8); + i = _str.rindex(p, os_fs.alt_path_sep as u8); if (i == -1) { ret p; } diff --git a/src/lib/posix_fs.rs b/src/lib/posix_fs.rs index f4cf12d3..99f411e7 100644 --- a/src/lib/posix_fs.rs +++ b/src/lib/posix_fs.rs @@ -20,6 +20,7 @@ fn list_dir(str path) -> vec[str] { } const char path_sep = '/'; +const char alt_path_sep = '/'; // Local Variables: // mode: rust; diff --git a/src/lib/win32_fs.rs b/src/lib/win32_fs.rs index 2d0ea38c..94599e3c 100644 --- a/src/lib/win32_fs.rs +++ b/src/lib/win32_fs.rs @@ -14,6 +14,7 @@ fn list_dir(str path) -> vec[str] { * tag type. */ const char path_sep = '/'; +const char alt_path_sep = '\\'; // Local Variables: // mode: rust; |