about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-08-24 16:00:26 -0700
committerBrian Anderson <banderson@mozilla.com>2011-08-27 15:53:09 -0700
commitc2eafd268b982cd9a494dad783f8e3c68b9b4826 (patch)
tree703ef32cf4e57702647f25d086714fe58b5d49b8 /src/comp
parent051f1ff562ad1d88fd815f2b8b9905cd10dd2764 (diff)
downloadrust-c2eafd268b982cd9a494dad783f8e3c68b9b4826.tar.gz
rust-c2eafd268b982cd9a494dad783f8e3c68b9b4826.zip
Convert std::fs to istrs. Issue #855
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/back/link.rs10
-rw-r--r--src/comp/driver/rustc.rs35
-rw-r--r--src/comp/metadata/creader.rs20
-rw-r--r--src/comp/syntax/parse/eval.rs15
-rw-r--r--src/comp/syntax/parse/parser.rs4
5 files changed, 51 insertions, 33 deletions
diff --git a/src/comp/back/link.rs b/src/comp/back/link.rs
index 3805f937c9d..29eb74e41eb 100644
--- a/src/comp/back/link.rs
+++ b/src/comp/back/link.rs
@@ -40,7 +40,9 @@ fn llvm_err(sess: session::session, msg: str) {
 }
 
 fn link_intrinsics(sess: session::session, llmod: ModuleRef) {
-    let path = fs::connect(sess.get_opts().sysroot, "lib/intrinsics.bc");
+    let path = istr::to_estr(
+        fs::connect(istr::from_estr(sess.get_opts().sysroot),
+                    ~"lib/intrinsics.bc"));
     let membuf =
         llvm::LLVMRustCreateMemoryBufferWithContentsOfFile(str::buf(path));
     if membuf as uint == 0u {
@@ -360,10 +362,12 @@ fn build_link_meta(sess: &session::session, c: &ast::crate, output: &str,
               none. {
                 let name =
                     {
-                        let os = str::split(fs::basename(output), '.' as u8);
+                        let os = istr::split(
+                            fs::basename(istr::from_estr(output)),
+                            '.' as u8);
                         assert (vec::len(os) >= 2u);
                         vec::pop(os);
-                        str::connect(os, ".")
+                        istr::to_estr(istr::connect(os, ~"."))
                     };
                 warn_missing(sess, "name", name);
                 name
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs
index 918fc05fb25..c65ecfaaf2a 100644
--- a/src/comp/driver/rustc.rs
+++ b/src/comp/driver/rustc.rs
@@ -312,7 +312,8 @@ fn get_arch(triple: str) -> session::arch {
 }
 
 fn get_default_sysroot(binary: str) -> str {
-    let dirname = fs::dirname(binary);
+    let dirname = istr::to_estr(
+        fs::dirname(istr::from_estr(binary)));
     if str::eq(dirname, binary) { ret "."; }
     ret dirname;
 }
@@ -443,7 +444,8 @@ fn opts() -> [getopts::opt] {
 
 fn main(args: [str]) {
     let binary = vec::shift(args);
-    let binary_dir = fs::dirname(binary);
+    let binary_dir = istr::to_estr(
+        fs::dirname(istr::from_estr(binary)));
     let match =
         alt getopts::getopts(args, opts()) {
           getopts::success(m) { m }
@@ -557,20 +559,20 @@ fn main(args: [str]) {
     } else { lib_cmd = "-shared"; }
 
     // Converts a library file name into a gcc -l argument
-    fn unlib(config: @session::config, filename: str) -> str {
+    fn unlib(config: @session::config, filename: &istr) -> istr {
         let rmlib =
-            bind fn (config: @session::config, filename: str) -> str {
-                     if config.os == session::os_macos ||
-                            config.os == session::os_linux &&
-                                str::find(filename, "lib") == 0 {
-                         ret str::slice(filename, 3u,
-                                        str::byte_len(filename));
-                     } else { ret filename; }
-                 }(config, _);
-        fn rmext(filename: str) -> str {
-            let parts = str::split(filename, '.' as u8);
+            bind fn (config: @session::config, filename: &istr) -> istr {
+            if config.os == session::os_macos ||
+                config.os == session::os_linux &&
+                istr::find(filename, ~"lib") == 0 {
+                ret istr::slice(filename, 3u,
+                                istr::byte_len(filename));
+            } else { ret filename; }
+        }(config, _);
+        fn rmext(filename: &istr) -> istr {
+            let parts = istr::split(filename, '.' as u8);
             vec::pop(parts);
-            ret str::connect(parts, ".");
+            ret istr::connect(parts, ~".");
         }
         ret alt config.os {
               session::os_macos. { rmext(rmlib(filename)) }
@@ -585,10 +587,11 @@ fn main(args: [str]) {
             gcc_args += [cratepath];
             cont;
         }
+        let cratepath = istr::from_estr(cratepath);
         let dir = fs::dirname(cratepath);
-        if dir != "" { gcc_args += ["-L" + dir]; }
+        if dir != ~"" { gcc_args += ["-L" + istr::to_estr(dir)]; }
         let libarg = unlib(sess.get_targ_cfg(), fs::basename(cratepath));
-        gcc_args += ["-l" + libarg];
+        gcc_args += ["-l" + istr::to_estr(libarg)];
     }
 
     let ula = cstore::get_used_link_args(cstore);
diff --git a/src/comp/metadata/creader.rs b/src/comp/metadata/creader.rs
index b2570e41148..c13de2d6f9d 100644
--- a/src/comp/metadata/creader.rs
+++ b/src/comp/metadata/creader.rs
@@ -15,6 +15,7 @@ import back::x86;
 import util::common;
 import std::vec;
 import std::str;
+import std::istr;
 import std::fs;
 import std::io;
 import std::option;
@@ -150,7 +151,8 @@ fn find_library_crate_aux(nn: &{prefix: str, suffix: str}, crate_name: str,
                           metas: &[@ast::meta_item],
                           library_search_paths: &[str]) ->
    option::t<{ident: str, data: @[u8]}> {
-    let prefix: str = nn.prefix + crate_name;
+    let prefix: istr = istr::from_estr(nn.prefix + crate_name);
+    let suffix: istr = istr::from_estr(nn.suffix);
     // FIXME: we could probably use a 'glob' function in std::fs but it will
     // be much easier to write once the unsafe module knows more about FFI
     // tricks. Currently the glob(3) interface is a bit more than we can
@@ -159,13 +161,17 @@ fn find_library_crate_aux(nn: &{prefix: str, suffix: str}, crate_name: str,
 
     for library_search_path: str in library_search_paths {
         log #fmt["searching %s", library_search_path];
-        for path: str in fs::list_dir(library_search_path) {
-            log #fmt["searching %s", path];
-            let f: str = fs::basename(path);
-            if !(str::starts_with(f, prefix) && str::ends_with(f, nn.suffix))
+        let library_search_path = istr::from_estr(library_search_path);
+        for path: istr in fs::list_dir(library_search_path) {
+            log #fmt["searching %s", istr::to_estr(path)];
+            let f: istr = fs::basename(path);
+            let path = istr::to_estr(path);
+            if !(istr::starts_with(f, prefix) && istr::ends_with(f, suffix))
                {
-                log #fmt["skipping %s, doesn't look like %s*%s", path, prefix,
-                         nn.suffix];
+                log #fmt["skipping %s, doesn't look like %s*%s",
+                         path,
+                         istr::to_estr(prefix),
+                         istr::to_estr(suffix)];
                 cont;
             }
             alt get_metadata_section(path) {
diff --git a/src/comp/syntax/parse/eval.rs b/src/comp/syntax/parse/eval.rs
index af1ba91b37b..18d9a04ebbf 100644
--- a/src/comp/syntax/parse/eval.rs
+++ b/src/comp/syntax/parse/eval.rs
@@ -1,5 +1,6 @@
 
 import std::str;
+import std::istr;
 import std::option;
 import std::option::some;
 import std::option::none;
@@ -48,10 +49,12 @@ fn eval_crate_directive(cx: ctx, cdir: @ast::crate_directive, prefix: str,
       ast::cdir_src_mod(id, file_opt, attrs) {
         let file_path = id + ".rs";
         alt file_opt { some(f) { file_path = f; } none. { } }
-        let full_path =
-            if std::fs::path_is_absolute(file_path) {
-                file_path
-            } else { prefix + std::fs::path_sep() + file_path };
+        let full_path = if std::fs::path_is_absolute(
+            istr::from_estr(file_path)) {
+            file_path
+        } else {
+            prefix + istr::to_estr(std::fs::path_sep()) + file_path
+        };
         if cx.mode == mode_depend { cx.deps += [full_path]; ret; }
         let p0 =
             new_parser_from_file(cx.sess, cx.cfg, full_path, cx.chpos,
@@ -73,9 +76,9 @@ fn eval_crate_directive(cx: ctx, cdir: @ast::crate_directive, prefix: str,
         let path = id;
         alt dir_opt { some(d) { path = d; } none. { } }
         let full_path =
-            if std::fs::path_is_absolute(path) {
+            if std::fs::path_is_absolute(istr::from_estr(path)) {
                 path
-            } else { prefix + std::fs::path_sep() + path };
+            } else { prefix + istr::to_estr(std::fs::path_sep()) + path };
         let m0 = eval_crate_directives_to_mod(cx, cdirs, full_path);
         let i =
             @{ident: id,
diff --git a/src/comp/syntax/parse/parser.rs b/src/comp/syntax/parse/parser.rs
index 8ee2645fe5d..59cea6e131d 100644
--- a/src/comp/syntax/parse/parser.rs
+++ b/src/comp/syntax/parse/parser.rs
@@ -2,6 +2,7 @@
 import std::io;
 import std::vec;
 import std::str;
+import std::istr;
 import std::option;
 import std::option::some;
 import std::option::none;
@@ -2525,7 +2526,8 @@ fn parse_crate_from_crate_file(input: &str, cfg: &ast::crate_cfg,
                                sess: &parse_sess) -> @ast::crate {
     let p = new_parser_from_file(sess, cfg, input, 0u, 0u, CRATE_FILE);
     let lo = p.get_lo_pos();
-    let prefix = std::fs::dirname(p.get_filemap().name);
+    let prefix = istr::to_estr(
+        std::fs::dirname(istr::from_estr(p.get_filemap().name)));
     let leading_attrs = parse_inner_attrs_and_next(p);
     let crate_attrs = leading_attrs.inner;
     let first_cdir_attr = leading_attrs.next;