diff --git a/src/lib/io.rs b/src/lib/io.rs index 7135c2bc857..a84fbbe995e 100644 --- a/src/lib/io.rs +++ b/src/lib/io.rs @@ -52,7 +52,8 @@ state obj FILE_reader(os.libc.FILE f, bool must_close) { auto buf = ""; while (true) { auto ch = os.libc.fgetc(f); - if (ch == -1) {break;} if (ch == 10) {break;} + if (ch == -1) { ret buf; } + if (ch == 10) { ret buf; } buf += _str.unsafe_from_bytes(vec(ch as u8)); } ret buf; @@ -61,7 +62,7 @@ state obj FILE_reader(os.libc.FILE f, bool must_close) { auto buf = ""; while (true) { auto ch = os.libc.fgetc(f); - if (ch < 1) {break;} + if (ch < 1) { ret buf; } buf += _str.unsafe_from_bytes(vec(ch as u8)); } ret buf; diff --git a/src/lib/posix_fs.rs b/src/lib/posix_fs.rs index 676d4150e3c..0a37f85d16e 100644 --- a/src/lib/posix_fs.rs +++ b/src/lib/posix_fs.rs @@ -9,7 +9,10 @@ impure fn list_dir(str path) -> vec[str] { let vec[str] result = vec(); while (true) { auto ent = os.libc.readdir(dir); - if (ent as int == 0) {break;} + if (ent as int == 0) { + os.libc.closedir(dir); + ret result; + } _vec.push[str](result, rustrt.rust_dirent_filename(ent)); } os.libc.closedir(dir);