Author: tfaber
Date: Thu Nov 24 13:27:34 2011
New Revision: 54494

URL: http://svn.reactos.org/svn/reactos?rev=54494&view=rev
Log:
[CRT]
- Remove some differences to Wine. Fixes comparing a char against EOF in fgetwc.

Modified:
    trunk/reactos/lib/sdk/crt/stdio/file.c

Modified: trunk/reactos/lib/sdk/crt/stdio/file.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/stdio/file.c?rev=54494&r1=54493&r2=54494&view=diff
==============================================================================
--- trunk/reactos/lib/sdk/crt/stdio/file.c [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/stdio/file.c [iso-8859-1] Thu Nov 24 13:27:34 2011
@@ -120,7 +120,7 @@
 
 static inline BOOL is_valid_fd(int fd)
 {
-  return fd >= 0 && fd < fdend && (fdesc[fd].wxflag & WX_OPEN);
+    return fd >= 0 && fd < fdend && (fdesc[fd].wxflag & WX_OPEN);
 }
 
 /* INTERNAL: Get the HANDLE for a fd
@@ -177,6 +177,7 @@
     WARN(":files exhausted!\n");
     return -1;
   }
+
   fdesc[fd].handle = hand;
   fdesc[fd].wxflag = WX_OPEN | (flag & (WX_DONTINHERIT | WX_APPEND | WX_TEXT));
 
@@ -233,6 +234,7 @@
       return fstreams[i];
     }
   }
+
   return NULL;
 }
 
@@ -341,9 +343,10 @@
   if (!(fdesc[0].wxflag & WX_OPEN) || fdesc[0].handle == INVALID_HANDLE_VALUE)
   {
 #ifndef __REACTOS__
-    DuplicateHandle(GetCurrentProcess(), GetStdHandle(STD_INPUT_HANDLE),
-                    GetCurrentProcess(), &fdesc[0].handle, 0, TRUE,
-                    DUPLICATE_SAME_ACCESS);
+      HANDLE std = GetStdHandle(STD_INPUT_HANDLE);
+      if (std != INVALID_HANDLE_VALUE && DuplicateHandle(GetCurrentProcess(), 
std,
+                                                         GetCurrentProcess(), 
&fdesc[0].handle,
+                                                         0, TRUE, 
DUPLICATE_SAME_ACCESS))
 #else
       fdesc[0].handle = GetStdHandle(STD_INPUT_HANDLE);
       if (fdesc[0].handle == NULL)
@@ -351,12 +354,14 @@
 #endif
     fdesc[0].wxflag = WX_OPEN | WX_TEXT;
   }
+
   if (!(fdesc[1].wxflag & WX_OPEN) || fdesc[1].handle == INVALID_HANDLE_VALUE)
   {
 #ifndef __REACTOS__
-      DuplicateHandle(GetCurrentProcess(), GetStdHandle(STD_OUTPUT_HANDLE),
-                    GetCurrentProcess(), &fdesc[1].handle, 0, TRUE,
-                    DUPLICATE_SAME_ACCESS);
+      HANDLE std = GetStdHandle(STD_OUTPUT_HANDLE);
+      if (std != INVALID_HANDLE_VALUE && DuplicateHandle(GetCurrentProcess(), 
std,
+                                                         GetCurrentProcess(), 
&fdesc[1].handle,
+                                                         0, TRUE, 
DUPLICATE_SAME_ACCESS))
 #else
       fdesc[1].handle = GetStdHandle(STD_OUTPUT_HANDLE);
       if (fdesc[1].handle == NULL)
@@ -364,12 +369,14 @@
 #endif
     fdesc[1].wxflag = WX_OPEN | WX_TEXT;
   }
+
   if (!(fdesc[2].wxflag & WX_OPEN) || fdesc[2].handle == INVALID_HANDLE_VALUE)
   {
 #ifndef __REACTOS__
-      DuplicateHandle(GetCurrentProcess(), GetStdHandle(STD_ERROR_HANDLE),
-                    GetCurrentProcess(), &fdesc[2].handle, 0, TRUE,
-                    DUPLICATE_SAME_ACCESS);
+      HANDLE std = GetStdHandle(STD_ERROR_HANDLE);
+      if (std != INVALID_HANDLE_VALUE && DuplicateHandle(GetCurrentProcess(), 
std,
+                                                         GetCurrentProcess(), 
&fdesc[2].handle,
+                                                         0, TRUE, 
DUPLICATE_SAME_ACCESS))
 #else
       fdesc[2].handle = GetStdHandle(STD_ERROR_HANDLE);
       if (fdesc[2].handle == NULL)
@@ -378,8 +385,8 @@
     fdesc[2].wxflag = WX_OPEN | WX_TEXT;
   }
 
-  TRACE(":handles (%p)(%p)(%p)\n",fdesc[0].handle,
-       fdesc[1].handle,fdesc[2].handle);
+  TRACE(":handles (%p)(%p)(%p)\n", fdesc[0].handle,
+       fdesc[1].handle, fdesc[2].handle);
 
   memset(_iob,0,3*sizeof(FILE));
   for (i = 0; i < 3; i++)
@@ -425,7 +432,7 @@
 }
 
 /* INTERNAL: Convert integer to base32 string (0-9a-v), 0 becomes "" */
-static void int_to_base32(int num, char *str)
+static int int_to_base32(int num, char *str)
 {
   char *p;
   int n = num;
@@ -445,6 +452,8 @@
       *p += ('a' - '0' - 10);
     num >>= 5;
   }
+
+  return digits;
 }
 
 /*********************************************************************
@@ -1953,12 +1962,13 @@
  */
 wint_t CDECL fgetwc(FILE* file)
 {
-  char c;
+  int c;
 
   if (!(fdesc[file->_file].wxflag & WX_TEXT))
     {
       wchar_t wc;
-      int i,j;
+      unsigned int i;
+      int j;
       char *chp, *wcp;
       wcp = (char *)&wc;
       for(i=0; i<sizeof(wc); i++)


Reply via email to