about summary refs log tree commit diff
path: root/src/libstd/rt/util.rs
diff options
context:
space:
mode:
authorVadim Chugunov <vadimcn@gmail.com>2014-03-19 00:42:02 -0700
committerVadim Chugunov <vadimcn@gmail.com>2014-04-22 18:08:06 -0700
commitf686e5ebff1a8a30c496ffe38c9cd0fcde6307ce (patch)
treecd86e55f1f14e6da75efcaeced791c91804fa386 /src/libstd/rt/util.rs
parent6619134d49dc87d61274006be4c0d268658e1c2a (diff)
downloadrust-f686e5ebff1a8a30c496ffe38c9cd0fcde6307ce.tar.gz
rust-f686e5ebff1a8a30c496ffe38c9cd0fcde6307ce.zip
Fixed Win64 build
Diffstat (limited to 'src/libstd/rt/util.rs')
-rw-r--r--src/libstd/rt/util.rs16
1 files changed, 12 insertions, 4 deletions
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
     }