[ros-diffs] [greatlrd] 22143: small rewrite by me, pass wine test and no bugs in ungetc accroing wine test of msvcrt.

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Thu Jun 1 11:26:32 CEST 2006


Author: greatlrd
Date: Thu Jun  1 13:26:32 2006
New Revision: 22143

URL: http://svn.reactos.ru/svn/reactos?rev=22143&view=rev
Log:
small rewrite by me, pass wine test and no bugs in ungetc accroing wine test of msvcrt. 

Modified:
    trunk/reactos/lib/crt/stdio/ungetc.c

Modified: trunk/reactos/lib/crt/stdio/ungetc.c
URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/lib/crt/stdio/ungetc.c?rev=22143&r1=22142&r2=22143&view=diff
==============================================================================
--- trunk/reactos/lib/crt/stdio/ungetc.c (original)
+++ trunk/reactos/lib/crt/stdio/ungetc.c Thu Jun  1 13:26:32 2006
@@ -18,33 +18,20 @@
 
   if (c == _TEOF)
     return _TEOF;
-
-  if (f->_ptr == NULL || f->_base == NULL)
-    return _TEOF;
-
+  
   if (f->_ptr == f->_base)
-    {
+  {
       if (f->_cnt == 0)
         f->_ptr+=sizeof(_TCHAR);
       else
         return _TEOF;
-    }
-
-  f->_cnt+=sizeof(_TCHAR);
-  f->_ptr-=sizeof(_TCHAR);
-
-#if 1
-  if (*((_TCHAR*)(f->_ptr)) != c)
-    {
-      f->_flag |= _IOUNGETC;
-      *((_TCHAR*)(f->_ptr)) = c;
-    }
-#else
-  /* This is the old unicode version. Dunno what version is most correct. -Gunnar */
-  f->_flag |= _IOUNGETC;
-  *((_TCHAR*)(f->_ptr)) = c;
-#endif
-
-  return c;
+   }
+            
+   fseek(f, -1, SEEK_CUR);
+    
+   if(*(_TCHAR*)f->_ptr != c)
+        *((_TCHAR*)(f->_ptr)) = c;
+           
+   return c;
 }
 




More information about the Ros-diffs mailing list