diff --git a/io.c b/io.c index ac2f246b51..e3d93059f1 100644 --- a/io.c +++ b/io.c @@ -7767,6 +7767,11 @@ void rb_write_error2(const char *mesg, long len) { if (rb_stderr == orig_stderr || RFILE(orig_stderr)->fptr->fd < 0) { +#ifdef _WIN32 + if (isatty(fileno(stderr))) { + if (rb_w32_write_console(rb_str_new(mesg, len), fileno(stderr)) > 0) return; + } +#endif if (fwrite(mesg, sizeof(char), (size_t)len, stderr) < (size_t)len) { /* failed to write to stderr, what can we do? */ return;