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().