From e5361e27bda4317adb178f8a708f8f2556d935aa Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Wed, 14 May 2014 14:45:08 +0000 Subject: [PATCH] [CRT] * Update alloc_buffer(). CORE-8080 svn path=/trunk/; revision=63291 --- reactos/lib/sdk/crt/stdio/file.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 12f20d02410..df9c92127bd 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -533,19 +533,24 @@ int CDECL _isatty(int fd) } /* INTERNAL: Allocate stdio file buffer */ -/*static*/ void alloc_buffer(FILE* file) +/*static*/ BOOL alloc_buffer(FILE* file) { - file->_base = calloc(BUFSIZ,1); - if(file->_base) { - file->_bufsiz = BUFSIZ; - file->_flag |= _IOMYBUF; - } else { - file->_base = (char*)(&file->_charbuf); - /* put here 2 ??? */ - file->_bufsiz = sizeof(file->_charbuf); - } - file->_ptr = file->_base; - file->_cnt = 0; + if((file->_file==STDOUT_FILENO || file->_file==STDERR_FILENO) + && _isatty(file->_file)) + return FALSE; + + file->_base = calloc(BUFSIZ,1); + if(file->_base) { + file->_bufsiz = BUFSIZ; + file->_flag |= _IOMYBUF; + } else { + file->_base = (char*)(&file->_charbuf); + /* put here 2 ??? */ + file->_bufsiz = sizeof(file->_charbuf); + } + file->_ptr = file->_base; + file->_cnt = 0; + return TRUE; } /* INTERNAL: Convert integer to base32 string (0-9a-v), 0 becomes "" */ @@ -2886,7 +2891,7 @@ wint_t CDECL fgetwc(FILE* file) wint_t ret; int ch; - _lock_file(file); + _lock_file(file); if((get_ioinfo(file->_file)->exflag & (EF_UTF8 | EF_UTF16)) || !(get_ioinfo(file->_file)->wxflag & WX_TEXT)) {