On 10/19/19 9:55 PM, Vijay Kiran Kamuju wrote:
+static BOOL get_size_from_inf(HINF layoutinf, WCHAR *filename, LONGLONG *size) +{
- static const WCHAR SourceDisksFiles[] = {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s',0};
- INFCONTEXT context;
- WCHAR buffer[20];
- if (!SetupFindFirstLineW(layoutinf, SourceDisksFiles, filename, &context))
return FALSE;
- if (!SetupGetStringFieldW(&context, 3, buffer, sizeof(buffer), NULL))
return FALSE;
- /* FIXME: is there a atollW ? */
- *size = wcstol(buffer, NULL, 10);
There is wcstoll in ucrtbase, and _wcstoi64() otherwise. Also you can inline string constants with L"".
- return TRUE;
+}
if (!SetupGetStringFieldW(&context, 1, dest, sizeof(dest) / sizeof(WCHAR), NULL))
goto end;
if (!SetupGetStringFieldW(&context, 2, src, sizeof(src) / sizeof(WCHAR), NULL))
*src = 0;
This should be cleaner if made dynamic, using returned required size.
- if (section)
- {
len = MultiByteToWideChar(CP_ACP, 0, section, -1, NULL, 0);
sectionW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
if (!sectionW)
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
MultiByteToWideChar(CP_ACP, 0, section, -1, sectionW, len);
- }
- ret = SetupAddSectionToDiskSpaceListW(diskspace, hinf, hlist, sectionW, operation,
reserved1, reserved2);
- if (sectionW) HeapFree(GetProcessHeap(), 0, sectionW);
- return ret;
+}
Same as for earlier patch, this could be using strdupAtoW().