From f686e5ebff1a8a30c496ffe38c9cd0fcde6307ce Mon Sep 17 00:00:00 2001 From: Vadim Chugunov Date: Wed, 19 Mar 2014 00:42:02 -0700 Subject: Fixed Win64 build --- src/libstd/rt/util.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/libstd/rt/util.rs') diff --git a/src/libstd/rt/util.rs b/src/libstd/rt/util.rs index 4c208a64ddf..84284ca1faf 100644 --- a/src/libstd/rt/util.rs +++ b/src/libstd/rt/util.rs @@ -71,14 +71,22 @@ pub fn default_sched_threads() -> uint { } } -pub struct Stderr; +pub struct Stdio(libc::c_int); -impl io::Writer for Stderr { +pub static Stdout: Stdio = Stdio(libc::STDOUT_FILENO); +pub static Stderr: Stdio = Stdio(libc::STDERR_FILENO); + +impl io::Writer for Stdio { fn write(&mut self, data: &[u8]) -> IoResult<()> { + #[cfg(unix)] + type WriteLen = libc::size_t; + #[cfg(windows)] + type WriteLen = libc::c_uint; unsafe { - libc::write(libc::STDERR_FILENO, + let Stdio(fd) = *self; + libc::write(fd, data.as_ptr() as *libc::c_void, - data.len() as libc::size_t); + data.len() as WriteLen); } Ok(()) // yes, we're lying } -- cgit 1.4.1-3-g733a5