msi: Use a different separator as a semi-colon may separate values in the CustomActionData

James Hawkins truiken at gmail.com
Tue Jul 24 17:54:36 CDT 2007


Hi,

Fixes the Adobe Acrobat 7 installer.

Changelog:
* Use a different separator as a semi-colon may separate values in the
CustomActionData.

 dlls/msi/custom.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

-- 
James Hawkins
-------------- next part --------------
diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c
index 06699d2..cc08c29 100644
--- a/dlls/msi/custom.c
+++ b/dlls/msi/custom.c
@@ -137,7 +137,7 @@ static BOOL check_execution_scheduling_o
 
 /* 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(LP
     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(MS
 {
     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 *pac
     WCHAR *deformated=NULL;
 
     /* deferred action: [properties]Action */
-    if ((ptr = strchrW(action_copy, ']')))
+    if ((ptr = strrchrW(action_copy, ']')))
     {
         deferred_data = action_copy;
         action = ptr + 1;
-- 
1.4.1


More information about the wine-patches mailing list