summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-12-05 14:42:12 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2012-12-06 20:30:34 +0100
commit5ae805a15be4aff0e012da58f02a2aada02f2018 (patch)
tree59faa4fff15302073ccc9bc231e98a5d30bbe7ba
parent5720d463bbdcaa252ba3dc8cc2633a2a8994f2cb (diff)
downloadmsitools-5ae805a15be4aff0e012da58f02a2aada02f2018.tar.gz
msitools-5ae805a15be4aff0e012da58f02a2aada02f2018.tar.xz
msitools-5ae805a15be4aff0e012da58f02a2aada02f2018.zip
convert array-strings to literals
-rw-r--r--libmsi/alter.c18
-rw-r--r--libmsi/database.c75
-rw-r--r--libmsi/msipriv.h14
-rw-r--r--libmsi/msiquery.c8
-rw-r--r--libmsi/record.c2
-rw-r--r--libmsi/suminfo.c2
-rw-r--r--libmsi/table.c21
7 files changed, 52 insertions, 88 deletions
diff --git a/libmsi/alter.c b/libmsi/alter.c
index 78b3b45..aba817b 100644
--- a/libmsi/alter.c
+++ b/libmsi/alter.c
@@ -75,12 +75,8 @@ static bool check_column_exists(LibmsiDatabase *db, const char *table, const cha
LibmsiRecord *rec;
unsigned r;
- static const char query[] = {
- 'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
- '`','_','C','o','l','u','m','n','s','`',' ','W','H','E','R','E',' ',
- '`','T','a','b','l','e','`','=','\'','%','s','\'',' ','A','N','D',' ',
- '`','N','a','m','e','`','=','\'','%','s','\'',0
- };
+ static const char query[] =
+ "SELECT * FROM `_Columns` WHERE `Table`='%s' AND `Name`='%s'";
r = _libmsi_query_open(db, &view, query, table, column);
if (r != LIBMSI_RESULT_SUCCESS)
@@ -105,13 +101,9 @@ static unsigned alter_add_column(LibmsiAlterView *av)
LibmsiQuery *view;
LibmsiView *columns;
- static const char szColumns[] = {'_','C','o','l','u','m','n','s',0};
- static const char query[] = {
- 'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
- '`','_','C','o','l','u','m','n','s','`',' ','W','H','E','R','E',' ',
- '`','T','a','b','l','e','`','=','\'','%','s','\'',' ','O','R','D','E','R',' ',
- 'B','Y',' ','`','N','u','m','b','e','r','`',0
- };
+ static const char szColumns[] = "_Columns";
+ static const char query[] =
+ "SELECT * FROM `_Columns` WHERE `Table`='%s' ORDER BY `Number`";
r = table_view_create(av->db, szColumns, &columns);
if (r != LIBMSI_RESULT_SUCCESS)
diff --git a/libmsi/database.c b/libmsi/database.c
index 62cf364..1dafd91 100644
--- a/libmsi/database.c
+++ b/libmsi/database.c
@@ -842,7 +842,7 @@ static char *msi_build_createsql_prelude(char *table)
char *prelude;
unsigned size;
- static const char create_fmt[] = {'C','R','E','A','T','E',' ','T','A','B','L','E',' ','`','%','s','`',' ','(',' ',0};
+ static const char create_fmt[] = "CREATE TABLE `%s` (";
size = sizeof(create_fmt)/sizeof(create_fmt[0]) + strlen(table) - 2;
prelude = msi_alloc(size * sizeof(char));
@@ -862,14 +862,14 @@ static char *msi_build_createsql_columns(char **columns_data, char **types, unsi
char expanded[128], *ptr;
char size[10], comma[2], extra[30];
- static const char column_fmt[] = {'`','%','s','`',' ','%','s','%','s','%','s','%','s',' ',0};
- static const char size_fmt[] = {'(','%','s',')',0};
- static const char type_char[] = {'C','H','A','R',0};
- static const char type_int[] = {'I','N','T',0};
- static const char type_long[] = {'L','O','N','G',0};
- static const char type_object[] = {'O','B','J','E','C','T',0};
- static const char type_notnull[] = {' ','N','O','T',' ','N','U','L','L',0};
- static const char localizable[] = {' ','L','O','C','A','L','I','Z','A','B','L','E',0};
+ static const char column_fmt[] = "`%s` %s%s%s%s ";
+ static const char size_fmt[] = "(%s)";
+ static const char type_char[] = "CHAR";
+ static const char type_int[] = "INT";
+ static const char type_long[] = "LONG";
+ static const char type_object[] = "OBJECT";
+ static const char type_notnull[] = " NOT NULL";
+ static const char localizable[] = " LOCALIZABLE";
columns = msi_alloc_zero(sql_size * sizeof(char));
if (!columns)
@@ -957,8 +957,8 @@ static char *msi_build_createsql_postlude(char **primary_keys, unsigned num_keys
char *ptr;
unsigned size, key_size, i;
- static const char key_fmt[] = {'`','%','s','`',',',' ',0};
- static const char postlude_fmt[] = {'P','R','I','M','A','R','Y',' ','K','E','Y',' ','%','s',')',0};
+ static const char key_fmt[] = "`%s`, ";
+ static const char postlude_fmt[] = "PRIMARY KEY %s)";
for (i = 0, size = 1; i < num_keys; i++)
size += strlen(key_fmt) + strlen(primary_keys[i]) - 2;
@@ -1161,10 +1161,8 @@ static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *folder,
char ***records = NULL;
char ***temp_records;
- static const char suminfo[] =
- {'_','S','u','m','m','a','r','y','I','n','f','o','r','m','a','t','i','o','n',0};
- static const char forcecodepage[] =
- {'_','F','o','r','c','e','C','o','d','e','p','a','g','e',0};
+ static const char suminfo[] = "_SummaryInformation";
+ static const char forcecodepage[] = "_ForceCodepage";
TRACE("%p %s %s\n", db, debugstr_a(folder), debugstr_a(file) );
@@ -1349,10 +1347,8 @@ static unsigned msi_export_forcecodepage( int fd, unsigned codepage )
static unsigned _libmsi_database_export( LibmsiDatabase *db, const char *table,
int fd)
{
- static const char query[] = {
- 's','e','l','e','c','t',' ','*',' ','f','r','o','m',' ','%','s',0 };
- static const char forcecodepage[] = {
- '_','F','o','r','c','e','C','o','d','e','p','a','g','e',0 };
+ static const char query[] = "select * from %s";
+ static const char forcecodepage[] = "_ForceCodepage";
LibmsiRecord *rec = NULL;
LibmsiQuery *view = NULL;
unsigned r;
@@ -1601,7 +1597,7 @@ static char *get_key_value(LibmsiQuery *view, const char *key, LibmsiRecord *rec
if (_libmsi_record_get_string_raw(rec, i)) /* check record field is a string */
{
/* quote string record fields */
- const char szQuote[] = {'\'', 0};
+ const char szQuote[] = "'";
sz += 2;
val = msi_alloc(sz*sizeof(char));
if (!val)
@@ -1643,13 +1639,9 @@ static char *create_diff_row_query(LibmsiDatabase *merge, LibmsiQuery *view,
LibmsiRecord *keys;
unsigned r, i, count;
- static const char keyset[] = {
- '`','%','s','`',' ','=',' ','%','s',' ','A','N','D',' ',0};
- static const char lastkeyset[] = {
- '`','%','s','`',' ','=',' ','%','s',' ',0};
- static const char fmt[] = {'S','E','L','E','C','T',' ','*',' ',
- 'F','R','O','M',' ','`','%','s','`',' ',
- 'W','H','E','R','E',' ','%','s',0};
+ static const char keyset[] = "`%s` = %s AND";
+ static const char lastkeyset[] = "`%s` = %s ";
+ static const char fmt[] = "SELECT * FROM %s WHERE %s";
r = _libmsi_database_get_primary_keys(merge, table, &keys);
if (r != LIBMSI_RESULT_SUCCESS)
@@ -1897,8 +1889,7 @@ static unsigned msi_get_merge_table (LibmsiDatabase *db, const char *name, MERGE
MERGETABLE *table;
LibmsiQuery *mergeview = NULL;
- static const char query[] = {'S','E','L','E','C','T',' ','*',' ',
- 'F','R','O','M',' ','`','%','s','`',0};
+ static const char query[] = "SELECT * FROM %s";
table = msi_alloc_zero(sizeof(MERGETABLE));
if (!table)
@@ -1948,8 +1939,7 @@ static unsigned merge_diff_tables(LibmsiRecord *rec, void *param)
const char *name;
unsigned r;
- static const char query[] = {'S','E','L','E','C','T',' ','*',' ',
- 'F','R','O','M',' ','`','%','s','`',0};
+ static const char query[] = "SELECT * FROM %s";
name = _libmsi_record_get_string_raw(rec, 1);
@@ -1996,9 +1986,7 @@ done:
static unsigned gather_merge_data(LibmsiDatabase *db, LibmsiDatabase *merge,
struct list *tabledata)
{
- static const char query[] = {
- 'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
- '`','_','T','a','b','l','e','s','`',0};
+ static const char query[] = "SELECT * FROM _Tables";
LibmsiQuery *view;
MERGEDATA data;
unsigned r;
@@ -2051,20 +2039,11 @@ static unsigned update_merge_errors(LibmsiDatabase *db, const char *error,
unsigned r;
LibmsiQuery *view;
- static const char create[] = {
- 'C','R','E','A','T','E',' ','T','A','B','L','E',' ',
- '`','%','s','`',' ','(','`','T','a','b','l','e','`',' ',
- 'C','H','A','R','(','2','5','5',')',' ','N','O','T',' ',
- 'N','U','L','L',',',' ','`','N','u','m','R','o','w','M','e','r','g','e',
- 'C','o','n','f','l','i','c','t','s','`',' ','S','H','O','R','T',' ',
- 'N','O','T',' ','N','U','L','L',' ','P','R','I','M','A','R','Y',' ',
- 'K','E','Y',' ','`','T','a','b','l','e','`',')',0};
- static const char insert[] = {
- 'I','N','S','E','R','T',' ','I','N','T','O',' ',
- '`','%','s','`',' ','(','`','T','a','b','l','e','`',',',' ',
- '`','N','u','m','R','o','w','M','e','r','g','e',
- 'C','o','n','f','l','i','c','t','s','`',')',' ','V','A','L','U','E','S',
- ' ','(','\'','%','s','\'',',',' ','%','d',')',0};
+ static const char create[] =
+ "CREATE TABLE `%s` (`Table` CHAR(255) NOT NULL, "
+ "`NumRowMergeConflicts` SHORT NOT NULL PRIMARY KEY `Table`)";
+ static const char insert[] =
+ "INSERT INTO `%s` (`Table`, `NumRowMergeConflicts`) VALUES ('%s', %d)";
if (!table_view_exists(db, error))
{
diff --git a/libmsi/msipriv.h b/libmsi/msipriv.h
index 2b78eb5..89554e0 100644
--- a/libmsi/msipriv.h
+++ b/libmsi/msipriv.h
@@ -435,13 +435,13 @@ extern unsigned msi_get_property( LibmsiDatabase *, const char *, char *, unsign
extern int msi_get_property_int( LibmsiDatabase *package, const char *prop, int def );
/* common strings */
-static const char szEmpty[] = {0};
-static const char szStreams[] = {'_','S','t','r','e','a','m','s',0};
-static const char szStorages[] = {'_','S','t','o','r','a','g','e','s',0};
-static const char szStringData[] = {'_','S','t','r','i','n','g','D','a','t','a',0};
-static const char szStringPool[] = {'_','S','t','r','i','n','g','P','o','o','l',0};
-static const char szName[] = {'N','a','m','e',0};
-static const char szData[] = {'D','a','t','a',0};
+static const char szEmpty[] = "";
+static const char szStreams[] = "_Streams";
+static const char szStorages[] = "_Storages";
+static const char szStringData[] = "_StringData";
+static const char szStringPool[] = "_StringPool";
+static const char szName[] = "Name";
+static const char szData[] = "Data";
/* memory allocation macro functions */
diff --git a/libmsi/msiquery.c b/libmsi/msiquery.c
index 0776beb..39b520c 100644
--- a/libmsi/msiquery.c
+++ b/libmsi/msiquery.c
@@ -398,7 +398,7 @@ LibmsiResult libmsi_query_execute(LibmsiQuery *query, LibmsiRecord *rec)
static unsigned msi_set_record_type_string( LibmsiRecord *rec, unsigned field,
unsigned type, bool temporary )
{
- static const char fmt[] = { '%','d',0 };
+ static const char fmt[] = "%d";
char szType[0x10];
if (MSITYPE_IS_BINARY(type))
@@ -746,11 +746,7 @@ static unsigned msi_primary_key_iterator( LibmsiRecord *rec, void *param )
unsigned _libmsi_database_get_primary_keys( LibmsiDatabase *db,
const char *table, LibmsiRecord **prec )
{
- static const char sql[] = {
- 's','e','l','e','c','t',' ','*',' ',
- 'f','r','o','m',' ','`','_','C','o','l','u','m','n','s','`',' ',
- 'w','h','e','r','e',' ',
- '`','T','a','b','l','e','`',' ','=',' ','\'','%','s','\'',0 };
+ static const char sql[] = "select * from `_Columns` where `Table` = '%s'";
struct msi_primary_key_record_info info;
LibmsiQuery *query = NULL;
unsigned r;
diff --git a/libmsi/record.c b/libmsi/record.c
index df394d4..d98686a 100644
--- a/libmsi/record.c
+++ b/libmsi/record.c
@@ -343,7 +343,7 @@ unsigned _libmsi_record_get_string(const LibmsiRecord *rec, unsigned iField,
{
unsigned len=0, ret;
char buffer[16];
- static const char szFormat[] = { '%','d',0 };
+ static const char szFormat[] = "%d";
TRACE("%p %d %p %p\n", rec, iField, szValue, pcchValue);
diff --git a/libmsi/suminfo.c b/libmsi/suminfo.c
index 610fb95..8ba346b 100644
--- a/libmsi/suminfo.c
+++ b/libmsi/suminfo.c
@@ -26,7 +26,7 @@
#include "libmsi.h"
#include "msipriv.h"
-static const char szSumInfo[] = {5 ,'S','u','m','m','a','r','y','I','n','f','o','r','m','a','t','i','o','n',0};
+static const char szSumInfo[] = "\5SummaryInformation";
static const uint8_t fmtid_SummaryInformation[16] =
{ 0xe0, 0x85, 0x9f, 0xf2, 0xf9, 0x4f, 0x68, 0x10, 0xab, 0x91, 0x08, 0x00, 0x2b, 0x27, 0xb3, 0xd9};
diff --git a/libmsi/table.c b/libmsi/table.c
index d22ecd2..f95e813 100644
--- a/libmsi/table.c
+++ b/libmsi/table.c
@@ -30,7 +30,7 @@
#define LibmsiTable_HASH_TABLE_SIZE 37
-static const char szDot[] = {'.',0};
+static const char szDot[] = ".";
typedef struct LibmsiColumnHashEntry
{
@@ -65,11 +65,11 @@ struct LibmsiTable
};
/* information for default tables */
-static const char szTables[] = {'_','T','a','b','l','e','s',0};
-static const char szTable[] = {'T','a','b','l','e',0};
-static const char szColumns[] = {'_','C','o','l','u','m','n','s',0};
-static const char szNumber[] = {'N','u','m','b','e','r',0};
-static const char szType[] = {'T','y','p','e',0};
+static const char szTables[] = "_Tables";
+static const char szTable[] = "Table";
+static const char szColumns[] = "_Columns";
+static const char szNumber[] = "Number";
+static const char szType[] = "Type";
static const LibmsiColumnInfo _Columns_cols[4] = {
{ szColumns, 1, szTable, MSITYPE_VALID | MSITYPE_STRING | MSITYPE_KEY | 64, 0, 0, 0, NULL },
@@ -1100,7 +1100,7 @@ static unsigned msi_stream_name( const LibmsiTableView *tv, unsigned row, char *
}
else
{
- static const char fmt[] = { '%','d',0 };
+ static const char fmt[] = "%d";
unsigned n = bytes_per_column( tv->db, &tv->columns[i], LONG_STR_BYTES );
switch( n )
@@ -1225,11 +1225,8 @@ static unsigned table_view_get_row( LibmsiView *view, unsigned row, LibmsiRecord
static unsigned _libmsi_add_stream( LibmsiDatabase *db, const char *name, GsfInput *data )
{
- static const char insert[] = {
- 'I','N','S','E','R','T',' ','I','N','T','O',' ',
- '`','_','S','t','r','e','a','m','s','`',' ',
- '(','`','N','a','m','e','`',',','`','D','a','t','a','`',')',' ',
- 'V','A','L','U','E','S',' ','(','?',',','?',')',0};
+ static const char insert[] =
+ "INSERT INTO `_Streams`(`Name`, `Data`) VALUES (?, ?)";
LibmsiQuery *query = NULL;
LibmsiRecord *rec;
unsigned r;