mirror of
https://github.com/reactos/reactos.git
synced 2024-07-09 06:05:11 +00:00
********** Wine-ify parts of SetupCopyOEMInfW to make it closer to Wine counterpart
This commit is contained in:
parent
967b115170
commit
6399c1525b
|
@ -2340,14 +2340,14 @@ BOOL WINAPI SetupCopyOEMInfW(
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
HANDLE hSearch = INVALID_HANDLE_VALUE;
|
HANDLE find_handle = INVALID_HANDLE_VALUE;
|
||||||
WIN32_FIND_DATAW FindFileData;
|
WIN32_FIND_DATAW find_data;
|
||||||
BOOL AlreadyExists;
|
BOOL AlreadyExists;
|
||||||
DWORD NextFreeNumber = 0;
|
DWORD NextFreeNumber = 0;
|
||||||
SIZE_T len;
|
SIZE_T len;
|
||||||
LPWSTR pFullFileName = NULL;
|
LPWSTR pFullFileName = NULL;
|
||||||
LPWSTR pFileName; /* Pointer into pFullFileName buffer */
|
LPWSTR pFileName; /* Pointer into pFullFileName buffer */
|
||||||
HANDLE hSourceFile = INVALID_HANDLE_VALUE;
|
HANDLE source_file = INVALID_HANDLE_VALUE;
|
||||||
|
|
||||||
if (OEMSourceMediaType == SPOST_PATH || OEMSourceMediaType == SPOST_URL)
|
if (OEMSourceMediaType == SPOST_PATH || OEMSourceMediaType == SPOST_URL)
|
||||||
FIXME("OEMSourceMediaType 0x%lx ignored\n", OEMSourceMediaType);
|
FIXME("OEMSourceMediaType 0x%lx ignored\n", OEMSourceMediaType);
|
||||||
|
@ -2365,7 +2365,7 @@ BOOL WINAPI SetupCopyOEMInfW(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
GetFullPathNameW(SourceInfFileName, len, path, NULL);
|
GetFullPathNameW(SourceInfFileName, len, path, NULL);
|
||||||
hSourceFile = CreateFileW(
|
source_file = CreateFileW(
|
||||||
path, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
path, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||||
NULL, OPEN_EXISTING, 0, NULL);
|
NULL, OPEN_EXISTING, 0, NULL);
|
||||||
|
@ -2387,22 +2387,22 @@ BOOL WINAPI SetupCopyOEMInfW(
|
||||||
p = path + strlenW(path);
|
p = path + strlenW(path);
|
||||||
strcpyW(p, Inf);
|
strcpyW(p, Inf);
|
||||||
strcatW(p, SourceInfFileName);
|
strcatW(p, SourceInfFileName);
|
||||||
hSourceFile = CreateFileW(
|
source_file = CreateFileW(
|
||||||
path, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
path, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||||
NULL, OPEN_EXISTING, 0, NULL);
|
NULL, OPEN_EXISTING, 0, NULL);
|
||||||
if (hSourceFile == INVALID_HANDLE_VALUE)
|
if (source_file == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
strcpyW(p, System32);
|
strcpyW(p, System32);
|
||||||
strcatW(p, SourceInfFileName);
|
strcatW(p, SourceInfFileName);
|
||||||
hSourceFile = CreateFileW(
|
source_file = CreateFileW(
|
||||||
path, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
path, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||||
NULL, OPEN_EXISTING, 0, NULL);
|
NULL, OPEN_EXISTING, 0, NULL);
|
||||||
}
|
}
|
||||||
MyFree(path);
|
MyFree(path);
|
||||||
}
|
}
|
||||||
if (hSourceFile == INVALID_HANDLE_VALUE)
|
if (source_file == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
SetLastError(ERROR_FILE_NOT_FOUND);
|
SetLastError(ERROR_FILE_NOT_FOUND);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -2427,38 +2427,38 @@ BOOL WINAPI SetupCopyOEMInfW(
|
||||||
/* Search if the specified .inf file already exists in %WINDIR%\Inf */
|
/* Search if the specified .inf file already exists in %WINDIR%\Inf */
|
||||||
AlreadyExists = FALSE;
|
AlreadyExists = FALSE;
|
||||||
strcpyW(pFileName, OemFileMask);
|
strcpyW(pFileName, OemFileMask);
|
||||||
hSearch = FindFirstFileW(pFullFileName, &FindFileData);
|
find_handle = FindFirstFileW(pFullFileName, &find_data);
|
||||||
if (hSearch != INVALID_HANDLE_VALUE)
|
if (find_handle != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
LARGE_INTEGER SourceFileSize;
|
LARGE_INTEGER source_file_size;
|
||||||
|
|
||||||
if (GetFileSizeEx(hSourceFile, &SourceFileSize))
|
if (GetFileSizeEx(source_file, &source_file_size))
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
LARGE_INTEGER DestFileSize;
|
LARGE_INTEGER dest_file_size;
|
||||||
HANDLE hDestFile;
|
HANDLE dest_file;
|
||||||
|
|
||||||
strcpyW(pFileName, FindFileData.cFileName);
|
strcpyW(pFileName, find_data.cFileName);
|
||||||
hDestFile = CreateFileW(
|
dest_file = CreateFileW(
|
||||||
pFullFileName, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
pFullFileName, FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||||
NULL, OPEN_EXISTING, 0, NULL);
|
NULL, OPEN_EXISTING, 0, NULL);
|
||||||
if (hDestFile != INVALID_HANDLE_VALUE)
|
if (dest_file != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
if (GetFileSizeEx(hDestFile, &DestFileSize)
|
if (GetFileSizeEx(dest_file, &dest_file_size)
|
||||||
&& DestFileSize.QuadPart == SourceFileSize.QuadPart
|
&& dest_file_size.QuadPart == source_file_size.QuadPart
|
||||||
&& !compare_files(hSourceFile, hDestFile))
|
&& !compare_files(source_file, dest_file))
|
||||||
{
|
{
|
||||||
TRACE("%s already exists as %s\n",
|
TRACE("%s already exists as %s\n",
|
||||||
debugstr_w(SourceInfFileName), debugstr_w(pFileName));
|
debugstr_w(SourceInfFileName), debugstr_w(pFileName));
|
||||||
AlreadyExists = TRUE;
|
AlreadyExists = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (!AlreadyExists && FindNextFileW(hSearch, &FindFileData));
|
} while (!AlreadyExists && FindNextFileW(find_handle, &find_data));
|
||||||
}
|
}
|
||||||
FindClose(hSearch);
|
FindClose(find_handle);
|
||||||
hSearch = INVALID_HANDLE_VALUE;
|
find_handle = INVALID_HANDLE_VALUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!AlreadyExists && CopyStyle & SP_COPY_REPLACEONLY)
|
if (!AlreadyExists && CopyStyle & SP_COPY_REPLACEONLY)
|
||||||
|
@ -2487,8 +2487,8 @@ BOOL WINAPI SetupCopyOEMInfW(
|
||||||
|
|
||||||
/* Search the number to give to OEM??.INF */
|
/* Search the number to give to OEM??.INF */
|
||||||
strcpyW(pFileName, OemFileMask);
|
strcpyW(pFileName, OemFileMask);
|
||||||
hSearch = FindFirstFileW(pFullFileName, &FindFileData);
|
find_handle = FindFirstFileW(pFullFileName, &find_data);
|
||||||
if (hSearch == INVALID_HANDLE_VALUE)
|
if (find_handle == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
if (GetLastError() != ERROR_FILE_NOT_FOUND)
|
if (GetLastError() != ERROR_FILE_NOT_FOUND)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -2498,13 +2498,13 @@ BOOL WINAPI SetupCopyOEMInfW(
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
DWORD CurrentNumber;
|
DWORD CurrentNumber;
|
||||||
if (swscanf(FindFileData.cFileName, OemFileSpecification, &CurrentNumber) == 1
|
if (swscanf(find_data.cFileName, OemFileSpecification, &CurrentNumber) == 1
|
||||||
&& CurrentNumber <= OEM_INDEX_LIMIT)
|
&& CurrentNumber <= OEM_INDEX_LIMIT)
|
||||||
{
|
{
|
||||||
if (CurrentNumber >= NextFreeNumber)
|
if (CurrentNumber >= NextFreeNumber)
|
||||||
NextFreeNumber = CurrentNumber + 1;
|
NextFreeNumber = CurrentNumber + 1;
|
||||||
}
|
}
|
||||||
} while (FindNextFileW(hSearch, &FindFileData));
|
} while (FindNextFileW(find_handle, &find_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NextFreeNumber > OEM_INDEX_LIMIT)
|
if (NextFreeNumber > OEM_INDEX_LIMIT)
|
||||||
|
@ -2554,10 +2554,10 @@ BOOL WINAPI SetupCopyOEMInfW(
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (hSourceFile != INVALID_HANDLE_VALUE)
|
if (source_file != INVALID_HANDLE_VALUE)
|
||||||
CloseHandle(hSourceFile);
|
CloseHandle(source_file);
|
||||||
if (hSearch != INVALID_HANDLE_VALUE)
|
if (find_handle != INVALID_HANDLE_VALUE)
|
||||||
FindClose(hSearch);
|
FindClose(find_handle);
|
||||||
MyFree(pFullFileName);
|
MyFree(pFullFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue