From 8f531e769a025859eeebf6e99c50c4b786fb0814 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 1 Sep 2011 12:58:24 -0700 Subject: [PATCH] Convert rust_file_is_dir from estrs to cstrs. Issue #855 --- src/lib/fs.rs | 6 ++++-- src/rt/rust_builtin.cpp | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/fs.rs b/src/lib/fs.rs index 0e9dc591756b..922d01e841be 100644 --- a/src/lib/fs.rs +++ b/src/lib/fs.rs @@ -4,7 +4,7 @@ import os_fs; import str; native "rust" mod rustrt { - fn rust_file_is_dir(path: str) -> int; + fn rust_file_is_dir(path: istr::sbuf) -> int; } fn path_sep() -> istr { ret istr::from_char(os_fs::path_sep); } @@ -43,7 +43,9 @@ fn connect(pre: &path, post: &path) -> path { } fn file_is_dir(p: &path) -> bool { - ret rustrt::rust_file_is_dir(istr::to_estr(p)) != 0; + ret istr::as_buf(p, { |buf| + rustrt::rust_file_is_dir(buf) != 0 + }); } fn list_dir(p: &path) -> [istr] { diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp index 3e89d12e4382..34624f1a8171 100644 --- a/src/rt/rust_builtin.cpp +++ b/src/rt/rust_builtin.cpp @@ -444,9 +444,9 @@ rust_dirent_filename(rust_task *task, dirent* ent) { #endif extern "C" CDECL int -rust_file_is_dir(rust_task *task, rust_str *path) { +rust_file_is_dir(rust_task *task, char *path) { struct stat buf; - if (stat((char*)path->data, &buf)) { + if (stat(path, &buf)) { return 0; } return S_ISDIR(buf.st_mode);