From bd175c8bd97670f04f1ae015053016985bf8a0ef Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 26 Nov 2015 22:47:29 +0000 Subject: [PATCH] [MSIEXEC] Sync with Wine Staging 1.7.55. CORE-10536 svn path=/trunk/; revision=70125 --- reactos/base/system/msiexec/msiexec.c | 51 ++++++++++++++------------- reactos/media/doc/README.WINE | 2 +- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/reactos/base/system/msiexec/msiexec.c b/reactos/base/system/msiexec/msiexec.c index cbcd8ec8bd2..44f1f28862e 100644 --- a/reactos/base/system/msiexec/msiexec.c +++ b/reactos/base/system/msiexec/msiexec.c @@ -882,10 +882,6 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine { InstallUILevel = INSTALLUILEVEL_NONE; } - else if(msi_strequal(argvW[i]+2, "b")) - { - InstallUILevel = INSTALLUILEVEL_BASIC; - } else if(msi_strequal(argvW[i]+2, "r")) { InstallUILevel = INSTALLUILEVEL_REDUCED; @@ -898,28 +894,25 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine { InstallUILevel = INSTALLUILEVEL_NONE|INSTALLUILEVEL_ENDDIALOG; } - else if(msi_strequal(argvW[i]+2, "b+")) + else if(msi_strprefix(argvW[i]+2, "b")) { - InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_ENDDIALOG; - } - else if(msi_strequal(argvW[i]+2, "b-")) - { - InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_PROGRESSONLY; - } - else if(msi_strequal(argvW[i]+2, "b+!")) - { - WINE_FIXME("Unhandled modifier: !\n"); - InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_ENDDIALOG|INSTALLUILEVEL_HIDECANCEL; - } - else if(msi_strequal(argvW[i]+2, "b-!")) - { - WINE_FIXME("Unhandled modifier: !\n"); - InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_PROGRESSONLY|INSTALLUILEVEL_HIDECANCEL; - } - else if(msi_strequal(argvW[i]+2, "b!")) - { - WINE_FIXME("Unhandled modifier: !\n"); - InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_HIDECANCEL; + const WCHAR *ptr = argvW[i] + 3; + + InstallUILevel = INSTALLUILEVEL_BASIC; + + while (*ptr) + { + if (msi_strprefix(ptr, "+")) + InstallUILevel |= INSTALLUILEVEL_ENDDIALOG; + if (msi_strprefix(ptr, "-")) + InstallUILevel |= INSTALLUILEVEL_PROGRESSONLY; + if (msi_strprefix(ptr, "!")) + { + WINE_FIXME("Unhandled modifier: !\n"); + InstallUILevel |= INSTALLUILEVEL_HIDECANCEL; + } + ptr++; + } } else { @@ -927,6 +920,14 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine wine_dbgstr_w(argvW[i]+2)); } } + else if(msi_option_equal(argvW[i], "passive")) + { + static const WCHAR rebootpromptW[] = + {'R','E','B','O','O','T','P','R','O','M','P','T','=','"','S','"',0}; + + InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_PROGRESSONLY|INSTALLUILEVEL_HIDECANCEL; + StringListAppend(&property_list, rebootpromptW); + } else if(msi_option_equal(argvW[i], "y")) { FunctionDllRegisterServer = TRUE; diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 2189af465cf..432650cc913 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -243,7 +243,7 @@ reactos/base/applications/winhlp32 # Synced to WineStaging-1.7.55 reactos/base/applications/wordpad # Synced to WineStaging-1.7.55 reactos/base/services/rpcss # Synced to WineStaging-1.7.55 reactos/base/system/expand # Synced to WineStaging-1.7.47 -reactos/base/system/msiexec # Synced to WineStaging-1.7.47 +reactos/base/system/msiexec # Synced to WineStaging-1.7.55 reactos/modules/rosapps/winfile # Autosync In addition the following libs, dlls and source files are mostly based on code ported