Commit 4c8f26e9f6

Andrew Kelley <superjoe30@gmail.com>
2016-02-07 03:48:42
std: remove auto flushing of stderr. use printf
1 parent c7dc56f
Changed files (2)
example
guess_number
std
example/guess_number/main.zig
@@ -5,7 +5,7 @@ import "rand.zig";
 import "os.zig";
 
 pub fn main(args: [][]u8) -> %void {
-    %%stderr.print_str("Welcome to the Guess Number Game in Zig.\n");
+    %%stdout.printf("Welcome to the Guess Number Game in Zig.\n");
 
     var seed : u32 = undefined;
     const seed_bytes = (&u8)(&seed)[0...4];
@@ -16,24 +16,24 @@ pub fn main(args: [][]u8) -> %void {
     const answer = rand.range_u64(0, 100) + 1;
 
     while (true) {
-        %%stderr.print_str("\nGuess a number between 1 and 100: ");
+        %%stdout.printf("\nGuess a number between 1 and 100: ");
         var line_buf : [20]u8 = undefined;
 
         const line_len = stdin.read(line_buf) %% |err| {
-            %%stderr.print_str("Unable to read from stdin.\n");
+            %%stdout.printf("Unable to read from stdin.\n");
             return err;
         };
 
         const guess = parse_u64(line_buf[0...line_len - 1], 10) %% {
-            %%stderr.print_str("Invalid number.\n");
+            %%stdout.printf("Invalid number.\n");
             continue;
         };
         if (guess > answer) {
-            %%stderr.print_str("Guess lower.\n");
+            %%stdout.printf("Guess lower.\n");
         } else if (guess < answer) {
-            %%stderr.print_str("Guess higher.\n");
+            %%stdout.printf("Guess higher.\n");
         } else {
-            %%stderr.print_str("You win!\n");
+            %%stdout.printf("You win!\n");
             return;
         }
     }
std/std.zig
@@ -14,14 +14,12 @@ pub var stdout = OutStream {
     .fd = stdout_fileno,
     .buffer = undefined,
     .index = 0,
-    .buffered = true,
 };
 
 pub var stderr = OutStream {
     .fd = stderr_fileno,
     .buffer = undefined,
     .index = 0,
-    .buffered = false,
 };
 
 /// The function received invalid input at runtime. An Invalid error means a
@@ -50,9 +48,6 @@ pub struct OutStream {
     fd: isize,
     buffer: [buffer_size]u8,
     index: isize,
-    // TODO remove this. let the user flush at will.
-    // for stderr the user can use printf
-    buffered: bool,
 
     pub fn print_str(os: &OutStream, str: []const u8) -> %isize {
         var src_bytes_left = str.len;
@@ -68,9 +63,6 @@ pub struct OutStream {
             }
             src_bytes_left -= copy_amt;
         }
-        if (!os.buffered) {
-            %return os.flush();
-        }
         return str.len;
     }
 
@@ -89,10 +81,6 @@ pub struct OutStream {
         const amt_printed = buf_print_u64(os.buffer[os.index...], x);
         os.index += amt_printed;
 
-        if (!os.buffered) {
-            %return os.flush();
-        }
-
         return amt_printed;
     }
 
@@ -103,10 +91,6 @@ pub struct OutStream {
         const amt_printed = buf_print_i64(os.buffer[os.index...], x);
         os.index += amt_printed;
 
-        if (!os.buffered) {
-            %return os.flush();
-        }
-
         return amt_printed;
     }
 
@@ -117,10 +101,6 @@ pub struct OutStream {
         const amt_printed = buf_print_f64(os.buffer[os.index...], x, 4);
         os.index += amt_printed;
 
-        if (!os.buffered) {
-            %return os.flush();
-        }
-
         return amt_printed;
     }