diff options
| author | Tycho Sci <tychosci@gmail.com> | 2012-10-18 22:13:01 +0900 |
|---|---|---|
| committer | Tycho Sci <tychosci@gmail.com> | 2012-10-18 23:27:55 +0900 |
| commit | 6ce4cf769f671c53f05e97357110d4c0ba322eae (patch) | |
| tree | ec90b59551584ead210c8bb9d1ca27e62055af77 | |
| parent | c0cee3ebe47d4fca73cdab23889322c5e47f12e5 (diff) | |
| download | rust-6ce4cf769f671c53f05e97357110d4c0ba322eae.tar.gz rust-6ce4cf769f671c53f05e97357110d4c0ba322eae.zip | |
rustdoc: Make markdown_writer::pandoc_writer UTF-8 safe
| -rw-r--r-- | src/rustdoc/markdown_writer.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/rustdoc/markdown_writer.rs b/src/rustdoc/markdown_writer.rs index ea559ae2ee6..1ed007def63 100644 --- a/src/rustdoc/markdown_writer.rs +++ b/src/rustdoc/markdown_writer.rs @@ -136,13 +136,15 @@ fn readclose(fd: libc::c_int) -> ~str { // Copied from run::program_output let file = os::fdopen(fd); let reader = io::FILE_reader(file, false); - let mut buf = ~""; - while !reader.eof() { - let bytes = reader.read_bytes(4096u); - buf += str::from_bytes(bytes); - } + let buf = io::with_bytes_writer(|writer| { + let mut bytes = [mut 0, ..4096]; + while !reader.eof() { + let nread = reader.read(bytes, bytes.len()); + writer.write(bytes.view(0, nread)); + } + }); os::fclose(file); - return buf; + str::from_bytes(buf) } fn generic_writer(+process: fn~(markdown: ~str)) -> Writer { |
