oledb32: Allow single quotation marks around property values.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
83d33b6f94
commit
0cb665ca8a
|
@ -401,18 +401,19 @@ static HRESULT parse_init_string(const WCHAR *initstring, struct dbprops *props)
|
|||
while (start && (eq = strchrW(start, '=')))
|
||||
{
|
||||
static const WCHAR providerW[] = {'P','r','o','v','i','d','e','r',0};
|
||||
WCHAR *delim, quote;
|
||||
BSTR value, name;
|
||||
WCHAR *delim;
|
||||
|
||||
name = SysAllocStringLen(start, eq - start);
|
||||
/* skip equal sign to get value */
|
||||
eq++;
|
||||
|
||||
if (*eq == '"')
|
||||
quote = (*eq == '"' || *eq == '\'') ? *eq : 0;
|
||||
if (quote)
|
||||
{
|
||||
/* for quoted value string, skip opening mark, look for terminating one */
|
||||
eq++;
|
||||
delim = strchrW(eq, '"');
|
||||
delim = strchrW(eq, quote);
|
||||
}
|
||||
else
|
||||
delim = strchrW(eq, ';');
|
||||
|
@ -422,7 +423,7 @@ static HRESULT parse_init_string(const WCHAR *initstring, struct dbprops *props)
|
|||
/* skip semicolon if present */
|
||||
if (delim)
|
||||
{
|
||||
if (*delim == '"')
|
||||
if (*delim == quote)
|
||||
delim++;
|
||||
if (*delim == ';')
|
||||
delim++;
|
||||
|
|
|
@ -295,6 +295,8 @@ static void test_database(void)
|
|||
static WCHAR extended_prop[] = {'d','a','t','a',' ','s','o','u','r','c','e','=','d','u','m','m','y',';',
|
||||
'E','x','t','e','n','d','e','d',' ','P','r','o','p','e','r','t','i','e','s','=','\"','D','R','I','V','E','R','=','A',
|
||||
' ','W','i','n','e',' ','O','D','B','C',' ','d','r','i','v','e','r',';','U','I','D','=','w','i','n','e',';','\"',';',0};
|
||||
static WCHAR extended_prop2[] = {'d','a','t','a',' ','s','o','u','r','c','e','=','\'','d','u','m','m','y','\'',';',
|
||||
'c','u','s','t','o','m','p','r','o','p','=','\'','1','2','3','.','4','\'',';',0};
|
||||
IDataInitialize *datainit = NULL;
|
||||
HRESULT hr;
|
||||
|
||||
|
@ -312,6 +314,7 @@ static void test_database(void)
|
|||
test_GetDataSource(initstring_lower);
|
||||
test_GetDataSource2(customprop);
|
||||
test_GetDataSource2(extended_prop);
|
||||
test_GetDataSource2(extended_prop2);
|
||||
}
|
||||
|
||||
static void free_dispparams(DISPPARAMS *params)
|
||||
|
|
Loading…
Reference in New Issue