about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-10-06 15:07:27 -0700
committerAlex Crichton <alex@alexcrichton.com>2013-10-10 03:38:51 -0700
commitff95904c488f573bfd07e94a0d456e4d35f325ce (patch)
treeb9eb8189e87458018d39a65edbb86b28966fb358 /src/libstd
parentb07ab1fe4baa584401fa17a7ba20bea8c97c5043 (diff)
downloadrust-ff95904c488f573bfd07e94a0d456e4d35f325ce.tar.gz
rust-ff95904c488f573bfd07e94a0d456e4d35f325ce.zip
Remove usage of io::FILE_writer
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/io.rs37
-rw-r--r--src/libstd/run.rs25
2 files changed, 13 insertions, 49 deletions
diff --git a/src/libstd/io.rs b/src/libstd/io.rs
index 2dfd41a4435..791616d330e 100644
--- a/src/libstd/io.rs
+++ b/src/libstd/io.rs
@@ -1233,14 +1233,6 @@ impl Writer for *libc::FILE {
     }
 }
 
-pub fn FILE_writer(f: *libc::FILE, cleanup: bool) -> @Writer {
-    if cleanup {
-        @Wrapper { base: f, cleanup: FILERes::new(f) } as @Writer
-    } else {
-        @f as @Writer
-    }
-}
-
 impl Writer for fd_t {
     fn write(&self, v: &[u8]) {
         #[fixed_stack_segment]; #[inline(never)];
@@ -1618,25 +1610,6 @@ pub fn file_writer(path: &Path, flags: &[FileFlag]) -> Result<@Writer, ~str> {
     mk_file_writer(path, flags).and_then(|w| Ok(w))
 }
 
-
-// FIXME: fileflags // #2004
-pub fn buffered_file_writer(path: &Path) -> Result<@Writer, ~str> {
-    #[fixed_stack_segment]; #[inline(never)];
-
-    unsafe {
-        let f = do path.with_c_str |pathbuf| {
-            do "w".with_c_str |modebuf| {
-                libc::fopen(pathbuf, modebuf)
-            }
-        };
-        return if f as uint == 0u {
-            Err(~"error opening " + path.to_str())
-        } else {
-            Ok(FILE_writer(f, true))
-        }
-    }
-}
-
 // FIXME (#2004) it would be great if this could be a const
 // FIXME (#2004) why are these different from the way stdin() is
 // implemented?
@@ -2087,16 +2060,6 @@ mod tests {
     }
 
     #[test]
-    fn buffered_file_writer_bad_name() {
-        match io::buffered_file_writer(&Path("?/?")) {
-          Err(e) => {
-            assert!(e.starts_with("error opening"));
-          }
-          Ok(_) => fail2!()
-        }
-    }
-
-    #[test]
     fn bytes_buffer_overwrite() {
         let wr = BytesWriter::new();
         wr.write([0u8, 1u8, 2u8, 3u8]);
diff --git a/src/libstd/run.rs b/src/libstd/run.rs
index 38fb597f296..8712d01aae9 100644
--- a/src/libstd/run.rs
+++ b/src/libstd/run.rs
@@ -307,7 +307,6 @@ pub fn process_output(prog: &str, args: &[~str]) -> ProcessOutput {
 
 #[cfg(test)]
 mod tests {
-    use io;
     use libc::c_int;
     use option::{Option, None, Some};
     use os;
@@ -315,6 +314,8 @@ mod tests {
     use run;
     use str;
     use unstable::running_on_valgrind;
+    use rt::io::native::file;
+    use rt::io::{Writer, Reader};
 
     #[test]
     #[cfg(not(target_os="android"))]
@@ -412,21 +413,21 @@ mod tests {
     }
 
     fn writeclose(fd: c_int, s: &str) {
-        let writer = io::fd_writer(fd, false);
-        writer.write_str(s);
-        os::close(fd);
+        let mut writer = file::FileDesc::new(fd);
+        writer.write(s.as_bytes());
     }
 
     fn readclose(fd: c_int) -> ~str {
-        #[fixed_stack_segment]; #[inline(never)];
-
-        unsafe {
-            let file = os::fdopen(fd);
-            let reader = io::FILE_reader(file, false);
-            let buf = reader.read_whole_stream();
-            os::fclose(file);
-            str::from_utf8(buf)
+        let mut res = ~[];
+        let mut reader = file::FileDesc::new(fd);
+        let mut buf = [0, ..1024];
+        loop {
+            match reader.read(buf) {
+                Some(n) => { res.push_all(buf.slice_to(n)); }
+                None => break
+            }
         }
+        str::from_utf8_owned(res)
     }
 
     #[test]