Hans Leidekker : msiexec: Fix parsing of basic UI level modifiers.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Oct 6 09:43:59 CDT 2015
Module: wine
Branch: master
Commit: 171a4c4154d031f240616e76be80ba8041342185
URL: http://source.winehq.org/git/wine.git/?a=commit;h=171a4c4154d031f240616e76be80ba8041342185
Author: Hans Leidekker <hans at codeweavers.com>
Date: Tue Oct 6 00:29:12 2015 +0200
msiexec: Fix parsing of basic UI level modifiers.
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
programs/msiexec/msiexec.c | 43 ++++++++++++++++++-------------------------
1 file changed, 18 insertions(+), 25 deletions(-)
diff --git a/programs/msiexec/msiexec.c b/programs/msiexec/msiexec.c
index cb0984d..bb5c931 100644
--- a/programs/msiexec/msiexec.c
+++ b/programs/msiexec/msiexec.c
@@ -886,10 +886,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;
@@ -902,28 +898,25 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
{
InstallUILevel = INSTALLUILEVEL_NONE|INSTALLUILEVEL_ENDDIALOG;
}
- else if(msi_strequal(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!"))
+ else if(msi_strprefix(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
{
More information about the wine-cvs
mailing list