From 982a37842525fbdd2f39635a935a37d1c00e8700 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 19 Aug 2023 10:10:16 +0900 Subject: [PATCH] mruby-print/print.c: stop flushing every time in printstr Instead, call `fflush` at the end of `print` method, if stdout is connected to a tty. --- mrbgems/mruby-print/src/print.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mrbgems/mruby-print/src/print.c b/mrbgems/mruby-print/src/print.c index 742224e4a..94cab36ef 100644 --- a/mrbgems/mruby-print/src/print.c +++ b/mrbgems/mruby-print/src/print.c @@ -13,6 +13,8 @@ # define isatty(x) _isatty(x) # define fileno(x) _fileno(x) #endif +#else +# include #endif static void @@ -37,7 +39,6 @@ printstr(mrb_state *mrb, mrb_value s) } #endif fwrite(p, (size_t)len, 1, stdout); - fflush(stdout); } } @@ -53,6 +54,7 @@ mrb_print(mrb_state *mrb, mrb_value self) mrb_value str = mrb_obj_as_string(mrb, argv[i]); printstr(mrb, str); } + if (isatty(fileno(stdout))) fflush(stdout); return mrb_nil_value(); }