msi: Add support for localizable strings in MsiDatabaseImport.
This commit is contained in:
parent
53f68ae3e6
commit
5b19cc79bd
|
@ -351,7 +351,7 @@ static LPWSTR msi_build_createsql_columns(LPWSTR *columns_data, LPWSTR *types, D
|
|||
LPCWSTR type;
|
||||
DWORD sql_size = 1, i, len;
|
||||
WCHAR expanded[128], *ptr;
|
||||
WCHAR size[10], comma[2], extra[10];
|
||||
WCHAR size[10], comma[2], extra[30];
|
||||
|
||||
static const WCHAR column_fmt[] = {'`','%','s','`',' ','%','s','%','s','%','s','%','s',' ',0};
|
||||
static const WCHAR size_fmt[] = {'(','%','s',')',0};
|
||||
|
@ -359,6 +359,7 @@ static LPWSTR msi_build_createsql_columns(LPWSTR *columns_data, LPWSTR *types, D
|
|||
static const WCHAR type_int[] = {'I','N','T',0};
|
||||
static const WCHAR type_long[] = {'L','O','N','G',0};
|
||||
static const WCHAR type_notnull[] = {' ','N','O','T',' ','N','U','L','L',0};
|
||||
static const WCHAR localizable[] = {' ','L','O','C','A','L','I','Z','A','B','L','E',0};
|
||||
|
||||
columns = msi_alloc_zero(sql_size * sizeof(WCHAR));
|
||||
if (!columns)
|
||||
|
@ -376,12 +377,20 @@ static LPWSTR msi_build_createsql_columns(LPWSTR *columns_data, LPWSTR *types, D
|
|||
|
||||
ptr = &types[i][1];
|
||||
len = atolW(ptr);
|
||||
extra[0] = '\0';
|
||||
|
||||
switch (types[i][0])
|
||||
{
|
||||
case 'l': case 's':
|
||||
case 'l':
|
||||
lstrcpyW(extra, type_notnull);
|
||||
case 'L': case 'S':
|
||||
case 'L':
|
||||
lstrcatW(extra, localizable);
|
||||
type = type_char;
|
||||
sprintfW(size, size_fmt, ptr);
|
||||
break;
|
||||
case 's':
|
||||
lstrcpyW(extra, type_notnull);
|
||||
case 'S':
|
||||
type = type_char;
|
||||
sprintfW(size, size_fmt, ptr);
|
||||
break;
|
||||
|
|
|
@ -766,13 +766,10 @@ static void test_packagecoltypes(void)
|
|||
ok(count == 6, "Expected 6, got %d\n", count);
|
||||
ok(check_record(rec, 1, "i2"), "wrong column label\n");
|
||||
ok(check_record(rec, 2, "i4"), "wrong column label\n");
|
||||
ok(check_record(rec, 3, "L64"), "wrong column label\n");
|
||||
ok(check_record(rec, 4, "S255"), "wrong column label\n");
|
||||
ok(check_record(rec, 5, "S32"), "wrong column label\n");
|
||||
ok(check_record(rec, 6, "S72"), "wrong column label\n");
|
||||
todo_wine
|
||||
{
|
||||
ok(check_record(rec, 3, "L64"), "wrong column label\n");
|
||||
}
|
||||
|
||||
MsiCloseHandle(rec);
|
||||
MsiCloseHandle(view);
|
||||
|
|
Loading…
Reference in New Issue