summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
Diffstat (limited to 'mysys')
-rw-r--r--mysys/my_fopen.c2
-rw-r--r--mysys/my_init.c19
2 files changed, 11 insertions, 10 deletions
diff --git a/mysys/my_fopen.c b/mysys/my_fopen.c
index 25b492846e5..2bc1da52d66 100644
--- a/mysys/my_fopen.c
+++ b/mysys/my_fopen.c
@@ -291,6 +291,8 @@ static void make_ftype(register char * to, register int flag)
if (flag & FILE_BINARY)
*to++='b';
+ else if (flag & O_TEXT)
+ *to++= 't';
if (O_CLOEXEC)
*to++= 'e';
diff --git a/mysys/my_init.c b/mysys/my_init.c
index 2f21bcb735f..44488e5848a 100644
--- a/mysys/my_init.c
+++ b/mysys/my_init.c
@@ -401,16 +401,15 @@ static void my_win_init(void)
_tzset();
- /*
- We do not want text translation (LF->CRLF)
- when stdout is console/terminal, it is buggy
- */
- if (fileno(stdout) >= 0 && isatty(fileno(stdout)))
- (void)setmode(fileno(stdout), O_BINARY);
-
- if (fileno(stderr) >= 0 && isatty(fileno(stderr)))
- (void) setmode(fileno(stderr), O_BINARY);
-
+ /* Disable automatic LF->CRLF translation. */
+ FILE* stdf[]= {stdin, stdout, stderr};
+ for (int i= 0; i < array_elements(stdf); i++)
+ {
+ int fd= fileno(stdf[i]);
+ if (fd >= 0)
+ (void) _setmode(fd, O_BINARY);
+ }
+ _set_fmode(O_BINARY);
setup_codepages();
DBUG_VOID_RETURN;
}