Duane Clark : msvcrt: Fix _getw.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jul 31 04:32:14 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 88aeeb9fd838af4bb40669f561506b52785f60bd
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=88aeeb9fd838af4bb40669f561506b52785f60bd
Author: Duane Clark <fpga at pacbell.net>
Date: Sat Jul 29 15:38:02 2006 -0700
msvcrt: Fix _getw.
---
dlls/msvcrt/file.c | 34 +++++++++++++++++++---------------
dlls/msvcrt/tests/file.c | 4 ++--
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index a1bc07a..d5d9647 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -1675,21 +1675,6 @@ int CDECL _read(int fd, void *buf, unsig
}
/*********************************************************************
- * _getw (MSVCRT.@)
- */
-int CDECL MSVCRT__getw(MSVCRT_FILE* file)
-{
- int i;
- switch (_read(file->_file, &i, sizeof(int)))
- {
- case 1: return i;
- case 0: file->_flag |= MSVCRT__IOEOF; break;
- default: file->_flag |= MSVCRT__IOERR; break;
- }
- return EOF;
-}
-
-/*********************************************************************
* _setmode (MSVCRT.@)
*/
int CDECL _setmode(int fd,int mode)
@@ -2226,6 +2211,25 @@ MSVCRT_wint_t CDECL MSVCRT_fgetwc(MSVCRT
}
/*********************************************************************
+ * _getw (MSVCRT.@)
+ */
+int CDECL MSVCRT__getw(MSVCRT_FILE* file)
+{
+ char *ch;
+ int i, j, k;
+ ch = (char *)&i;
+ for (j=0; j<sizeof(int); j++) {
+ k = MSVCRT_fgetc(file);
+ if (k == MSVCRT_EOF) {
+ file->_flag |= MSVCRT__IOEOF;
+ return EOF;
+ }
+ ch[j] = k;
+ }
+ return i;
+}
+
+/*********************************************************************
* getwc (MSVCRT.@)
*/
MSVCRT_wint_t CDECL MSVCRT_getwc(MSVCRT_FILE* file)
diff --git a/dlls/msvcrt/tests/file.c b/dlls/msvcrt/tests/file.c
index e3f8ce5..b9387ce 100644
--- a/dlls/msvcrt/tests/file.c
+++ b/dlls/msvcrt/tests/file.c
@@ -227,7 +227,7 @@ static void test_readmode( BOOL ascii_mo
ok(fgets(buffer,MSVCRT_BUFSIZ+256,file) !=0,"padding line fgets failed unexpected in %s\n", IOMODE);
i = _getw(file);
ip = (int *)outbuffer;
- todo_wine ok(i == *ip,"_getw failed, expected %08x got %08x in %s\n", *ip, i, IOMODE);
+ ok(i == *ip,"_getw failed, expected %08x got %08x in %s\n", *ip, i, IOMODE);
for (fp=0; fp<strlen(outbuffer); fp++)
if (outbuffer[fp] == '\n') break;
fp++;
@@ -239,7 +239,7 @@ static void test_readmode( BOOL ascii_mo
}
i = _getw(file);
ip = (int *)buffer;
- todo_wine ok(i == *ip,"_getw failed, expected %08x got %08x in %s\n", *ip, i, IOMODE);
+ ok(i == *ip,"_getw failed, expected %08x got %08x in %s\n", *ip, i, IOMODE);
fclose (file);
unlink ("fdopen.tst");
More information about the wine-cvs
mailing list