From 6af199ef9c4e25e3521f8ad3b109a0ab43edebae Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Tue, 24 Jul 2007 15:54:36 -0700 Subject: [PATCH] msi: Use a different separator as a semi-colon may separate values in the CustomActionData. --- dlls/msi/custom.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c index 06699d2a44b..cc08c2978e7 100644 --- a/dlls/msi/custom.c +++ b/dlls/msi/custom.c @@ -137,7 +137,7 @@ static BOOL check_execution_scheduling_options(MSIPACKAGE *package, LPCWSTR acti /* stores the following properties before the action: * - * [CustomActionData;UserSID;ProductCode]Action + * [CustomActionData][UserSID][ProductCode]Action */ static LPWSTR msi_get_deferred_action(LPCWSTR action, LPCWSTR actiondata, LPCWSTR usersid, LPCWSTR prodcode) @@ -145,7 +145,7 @@ static LPWSTR msi_get_deferred_action(LPCWSTR action, LPCWSTR actiondata, LPWSTR deferred; DWORD len; - static const WCHAR format[] = {'[','%','s',';','%','s',';','%','s',']','%','s',0}; + static const WCHAR format[] = {'[','%','s',']','[','%','s',']','[','%','s',']','%','s',0}; if (!actiondata) return strdupW(action); @@ -162,15 +162,15 @@ static void set_deferred_action_props(MSIPACKAGE *package, LPWSTR deferred_data) { LPWSTR end, beg = deferred_data + 1; - end = strchrW(beg, ';'); + end = strchrW(beg, ']'); *end = '\0'; MSI_SetPropertyW(package, szActionData, beg); - beg = end + 1; + beg = end + 2; - end = strchrW(beg, ';'); + end = strchrW(beg, ']'); *end = '\0'; MSI_SetPropertyW(package, UserSID, beg); - beg = end + 1; + beg = end + 2; end = strchrW(beg, ']'); *end = '\0'; @@ -193,7 +193,7 @@ UINT ACTION_CustomAction(MSIPACKAGE *package, LPCWSTR action, UINT script, BOOL WCHAR *deformated=NULL; /* deferred action: [properties]Action */ - if ((ptr = strchrW(action_copy, ']'))) + if ((ptr = strrchrW(action_copy, ']'))) { deferred_data = action_copy; action = ptr + 1;