[ros-diffs] [dchapyshev] 38191: - Fix 2 winetests

dchapyshev at svn.reactos.org dchapyshev at svn.reactos.org
Sat Dec 20 09:02:26 CET 2008


Author: dchapyshev
Date: Sat Dec 20 02:02:25 2008
New Revision: 38191

URL: http://svn.reactos.org/svn/reactos?rev=38191&view=rev
Log:
- Fix 2 winetests

Modified:
    trunk/reactos/dll/win32/kernel32/file/lfile.c

Modified: trunk/reactos/dll/win32/kernel32/file/lfile.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/file/lfile.c?rev=38191&r1=38190&r2=38191&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/file/lfile.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/file/lfile.c [iso-8859-1] Sat Dec 20 02:02:25 2008
@@ -28,8 +28,8 @@
 	DWORD	NumberOfBytesRead;
 
 	if ( !ReadFile(
-		(HANDLE) hFile,
-		(LPVOID) lpBuffer,
+		LongToHandle(hFile),
+		lpBuffer,
 		(DWORD) lBytes,
 		& NumberOfBytesRead,
 		NULL) )
@@ -84,34 +84,42 @@
 	int	iReadWrite
 	)
 {
-	DWORD dwAccessMask = 0;
-	DWORD dwShareMode = 0;
+    DWORD dwAccess, dwSharing, dwCreation;
 
-	if ( (iReadWrite & OF_READWRITE ) == OF_READWRITE )
-		dwAccessMask = GENERIC_READ | GENERIC_WRITE;
-	else if ( (iReadWrite & OF_READ ) == OF_READ )
-		dwAccessMask = GENERIC_READ;
-	else if ( (iReadWrite & OF_WRITE ) == OF_WRITE )
-		dwAccessMask = GENERIC_WRITE;
+    if (iReadWrite & OF_CREATE)
+    {
+        dwCreation = CREATE_ALWAYS;
+        dwAccess = GENERIC_READ | GENERIC_WRITE;
+    }
+    else
+    {
+        dwCreation = OPEN_EXISTING;
+        switch(iReadWrite & 0x03)
+        {
+            case OF_READ:      dwAccess = GENERIC_READ; break;
+            case OF_WRITE:     dwAccess = GENERIC_WRITE; break;
+            case OF_READWRITE: dwAccess = GENERIC_READ | GENERIC_WRITE; break;
+            default:           dwAccess = 0; break;
+        }
+    }
 
-	if ((iReadWrite & OF_SHARE_DENY_READ) == OF_SHARE_DENY_READ)
-		dwShareMode = FILE_SHARE_WRITE;
-	else if ((iReadWrite & OF_SHARE_DENY_WRITE) == OF_SHARE_DENY_WRITE )
-		dwShareMode = FILE_SHARE_READ;
-	else if ((iReadWrite & OF_SHARE_EXCLUSIVE) == OF_SHARE_EXCLUSIVE)
-		dwShareMode = 0;
-	else
-		/* OF_SHARE_DENY_NONE, OF_SHARE_COMPAT and everything else */
-                dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;
+    switch(iReadWrite & 0x70)
+    {
+        case OF_SHARE_EXCLUSIVE:  dwSharing = 0; break;
+        case OF_SHARE_DENY_WRITE: dwSharing = FILE_SHARE_READ; break;
+        case OF_SHARE_DENY_READ:  dwSharing = FILE_SHARE_WRITE; break;
+        case OF_SHARE_DENY_NONE:
+        case OF_SHARE_COMPAT:
+        default:                  dwSharing = FILE_SHARE_READ | FILE_SHARE_WRITE; break;
+    }
 
-	return (HFILE) CreateFileA(
-			lpPathName,
-			dwAccessMask,
-			dwShareMode,
-			NULL,
-			OPEN_EXISTING,
-			FILE_ATTRIBUTE_NORMAL,
-			NULL);
+    return (HFILE) CreateFileA(lpPathName,
+                               dwAccess,
+                               dwSharing,
+                               NULL,
+                               dwCreation,
+                               FILE_ATTRIBUTE_NORMAL,
+                               NULL);
 }
 
 
@@ -125,15 +133,18 @@
 	int	iAttribute
 	)
 {
-	iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
-	return (HFILE) CreateFileA(
-			lpPathName,
-			GENERIC_READ | GENERIC_WRITE,
-			(FILE_SHARE_READ | FILE_SHARE_WRITE),
-			NULL,
-			CREATE_ALWAYS,
-			iAttribute,
-			NULL);
+    HANDLE hFile;
+
+    iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
+    hFile = CreateFileA(lpPathName,
+                        GENERIC_READ | GENERIC_WRITE,
+                        (FILE_SHARE_READ | FILE_SHARE_WRITE),
+                        NULL,
+                        CREATE_ALWAYS,
+                        iAttribute,
+                        NULL);
+
+    return HandleToLong(hFile);
 }
 
 
@@ -146,11 +157,7 @@
 	HFILE	hFile
 	)
 {
-	if (CloseHandle ((HANDLE)hFile))
-	{
-		return 0;
-	}
-	return HFILE_ERROR;
+	return CloseHandle(LongToHandle(hFile)) ? 0 : HFILE_ERROR;
 }
 
 
@@ -165,11 +172,10 @@
 	int	iOrigin
 	)
 {
-	return SetFilePointer (
-			(HANDLE) hFile,
-			lOffset,
-			NULL,
-			(DWORD) iOrigin);
+    return SetFilePointer(LongToHandle(hFile),
+                          lOffset,
+                          NULL,
+                          (DWORD) iOrigin);
 }
 
 /* EOF */



More information about the Ros-diffs mailing list