Piotr Caban : msvcrt: Use fputwc to output characters to file in fprintf functions.
Alexandre Julliard
julliard at winehq.org
Fri Jan 11 13:46:58 CST 2013
Module: wine
Branch: master
Commit: a8c2ae17510ba75bea35a39538183fa195bdce84
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a8c2ae17510ba75bea35a39538183fa195bdce84
Author: Piotr Caban <piotr at codeweavers.com>
Date: Fri Jan 11 11:19:08 2013 +0100
msvcrt: Use fputwc to output characters to file in fprintf functions.
---
dlls/msvcrt/file.c | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index 19ad11c..daea39a 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -4208,7 +4208,25 @@ static int puts_clbk_file_a(void *file, int len, const char *str)
static int puts_clbk_file_w(void *file, int len, const MSVCRT_wchar_t *str)
{
- return MSVCRT_fwrite(str, sizeof(MSVCRT_wchar_t), len, file);
+ int i, ret;
+
+ MSVCRT__lock_file(file);
+
+ if(!(msvcrt_get_ioinfo(((MSVCRT_FILE*)file)->_file)->wxflag & WX_TEXT)) {
+ ret = MSVCRT_fwrite(str, sizeof(MSVCRT_wchar_t), len, file);
+ MSVCRT__unlock_file(file);
+ return ret;
+ }
+
+ for(i=0; i<len; i++) {
+ if(MSVCRT_fputwc(str[i], file) == MSVCRT_WEOF) {
+ MSVCRT__unlock_file(file);
+ return -1;
+ }
+ }
+
+ MSVCRT__unlock_file(file);
+ return len;
}
/*********************************************************************
More information about the wine-cvs
mailing list