[1/2] msiexec: Fix parsing of basic UI level modifiers.
Hans Leidekker
hans at codeweavers.com
Mon Oct 5 17:29:12 CDT 2015
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
{
--
2.1.4
More information about the wine-patches
mailing list