[PATCH 4/5] msi: Don't reimplement record formatting.
Zebediah Figura
z.figura12 at gmail.com
Sun Jun 18 18:44:20 CDT 2017
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/msi/package.c | 41 ++++++-----------------------------------
dlls/msi/tests/package.c | 1 -
2 files changed, 6 insertions(+), 36 deletions(-)
diff --git a/dlls/msi/package.c b/dlls/msi/package.c
index eae01e0..f16b1dc 100644
--- a/dlls/msi/package.c
+++ b/dlls/msi/package.c
@@ -1709,8 +1709,8 @@ INT MSI_ProcessMessage( MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIREC
static const WCHAR szSetProgress[] = {'S','e','t','P','r','o','g','r','e','s','s',0};
static const WCHAR szActionText[] = {'A','c','t','i','o','n','T','e','x','t',0};
MSIRECORD *uirow;
- LPWSTR deformated, message;
- DWORD i, len, total_len, log_type = 0;
+ LPWSTR deformated, message = {0};
+ DWORD len, log_type = 0;
INT rc = 0;
char *msg;
@@ -1776,39 +1776,10 @@ INT MSI_ProcessMessage( MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIREC
}
else
{
- static const WCHAR format[] = {'%','u',':',' ',0};
- UINT count = MSI_RecordGetFieldCount( record );
- WCHAR *p;
-
- total_len = 1;
- for (i = 1; i <= count; i++)
- {
- len = 0;
- MSI_RecordGetStringW( record, i, NULL, &len );
- total_len += len + 13;
- }
- p = message = msi_alloc( total_len * sizeof(WCHAR) );
- if (!p) return ERROR_OUTOFMEMORY;
-
- for (i = 1; i <= count; i++)
- {
- if (count > 1)
- {
- len = sprintfW( p, format, i );
- total_len -= len;
- p += len;
- }
- len = total_len;
- MSI_RecordGetStringW( record, i, p, &len );
- total_len -= len;
- p += len;
- if (count > 1 && total_len)
- {
- *p++ = ' ';
- total_len--;
- }
- }
- p[0] = 0;
+ MSI_FormatRecordW(package, record, message, &len);
+ len++;
+ message = msi_alloc(len * sizeof(WCHAR));
+ MSI_FormatRecordW(package, record, message, &len);
}
/* convert it to ASCII */
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c
index d15b397..503cf9a 100644
--- a/dlls/msi/tests/package.c
+++ b/dlls/msi/tests/package.c
@@ -9082,7 +9082,6 @@ static INT CALLBACK externalui_callback(void *context, UINT message_type, LPCSTR
{
externalui_ran = 1;
ok(message_type == INSTALLMESSAGE_USER, "expected INSTALLMESSAGE_USER, got %08x\n", message_type);
- todo_wine
ok(!strcmp(message, "test message 12345"), "message didn't match\n");
return 0;
}
--
2.7.4
More information about the wine-patches
mailing list