aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/fs.rs9
-rw-r--r--src/lib/posix_fs.rs1
-rw-r--r--src/lib/win32_fs.rs1
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;