msi: Make sure to reset the 'in_quotes' state in all cases.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Dmitry Timoshkov 2015-11-03 18:09:00 +08:00 committed by Alexandre Julliard
parent 2d7f00c8d3
commit 2ee784e624
2 changed files with 9 additions and 7 deletions

View file

@ -255,8 +255,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes )
len++;
break;
default:
if (!count) in_quotes = FALSE;
else in_quotes = TRUE;
if (count) in_quotes = TRUE;
len++;
break;
}
@ -277,8 +276,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes )
break;
default:
state = state_token;
if (!count) in_quotes = FALSE;
else in_quotes = TRUE;
if (count) in_quotes = TRUE;
len++;
break;
}
@ -287,6 +285,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes )
default: break;
}
if (!ignore) *out++ = *p;
if (!count) in_quotes = FALSE;
}
done:

View file

@ -4716,11 +4716,14 @@ static void test_propcase(void)
ok(delete_pf("msitest\\augustus", TRUE), "File not installed\n");
ok(delete_pf("msitest", FALSE), "Directory not created\n");
r = MsiInstallProductA(msifile, "BLAHBLAH=\"Copyright \"\"My Company\"\" 2015\" MyProp=42");
r = MsiInstallProductA(msifile, "Prop1=\"Copyright \"\"My Company\"\" 2015\" MyProp=42");
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
ok(delete_pf("msitest\\augustus", TRUE), "File not installed\n");
ok(delete_pf("msitest", FALSE), "Directory not created\n");
r = MsiInstallProductA(msifile, "Prop1=\"\"\"install.exe\"\" /Install\" MyProp=\"42\"");
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
todo_wine
ok(delete_pf("msitest\\augustus", TRUE), "File not installed\n");
todo_wine
ok(delete_pf("msitest", FALSE), "Directory not created\n");
error: