Allow CFLGAS="-std=c99 -D_POSIX_C_SOURCE=2"

Use glib function:
strcasecmp -> g_ascii_strcasecmp
bzero -> memset
strdup -> g_strdump

Don't use arithmetic void*+int
This commit is contained in:
Nirgal Vourgère
2014-12-28 12:36:55 +01:00
parent 4b52d6bfd9
commit 2a70e16a8b
14 changed files with 59 additions and 57 deletions

View File

@@ -154,7 +154,7 @@ gmdb_sql_write_rslt_cb(GtkWidget *w, GladeXML *xml)
table = sql->cur_table; table = sql->cur_table;
for (i=0; i<table->num_cols; i++) { for (i=0; i<table->num_cols; i++) {
col = g_ptr_array_index(table->columns, i); col = g_ptr_array_index(table->columns, i);
if (!strcasecmp(sqlcol->name, col->name)) if (!g_ascii_strcasecmp(sqlcol->name, col->name))
break; break;
} }
/* assert(i!=table->num_cols). Can't happen, already checked. */ /* assert(i!=table->num_cols). Can't happen, already checked. */

View File

@@ -792,7 +792,7 @@ generate_table_schema(FILE *outfile, MdbCatalogEntry *entry, char *dbnamespace,
fputs("TRUE", outfile); fputs("TRUE", outfile);
else if (!strcmp(defval, "No")) else if (!strcmp(defval, "No"))
fputs("FALSE", outfile); fputs("FALSE", outfile);
else if (!strcasecmp(defval, "date()")) { else if (!g_ascii_strcasecmp(defval, "date()")) {
if (!strcmp(mdb_col_get_prop(col, "Format"), "Short Date")) if (!strcmp(mdb_col_get_prop(col, "Format"), "Short Date"))
fputs(mdb->default_backend->short_now, outfile); fputs(mdb->default_backend->short_now, outfile);
else else

View File

@@ -147,7 +147,7 @@ mdb_get_catalogentry_by_name(MdbHandle *mdb, const gchar* name)
for (i=0; i<mdb->num_catalog; i++) { for (i=0; i<mdb->num_catalog; i++) {
entry = g_ptr_array_index(mdb->catalog, i); entry = g_ptr_array_index(mdb->catalog, i);
if (!strcasecmp(entry->object_name, name)) if (!g_ascii_strcasecmp(entry->object_name, name))
return entry; return entry;
} }
return NULL; return NULL;

View File

@@ -67,7 +67,7 @@ mdb_bind_column_by_name(MdbTableDef *table, gchar *col_name, void *bind_ptr, int
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i); col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(col->name,col_name)) { if (!g_ascii_strcasecmp(col->name,col_name)) {
col_num = i + 1; col_num = i + 1;
if (bind_ptr) if (bind_ptr)
col->bind_ptr = bind_ptr; col->bind_ptr = bind_ptr;
@@ -497,7 +497,7 @@ mdb_ole_read_next(MdbHandle *mdb, MdbColumn *col, void *ole_ptr)
mdb_debug(MDB_DEBUG_OLE,"start %d len %d", row_start, len); mdb_debug(MDB_DEBUG_OLE,"start %d len %d", row_start, len);
if (col->bind_ptr) if (col->bind_ptr)
memcpy(col->bind_ptr, buf + row_start + 4, len - 4); memcpy(col->bind_ptr, (char*)buf + row_start + 4, len - 4);
col->cur_blob_pg_row = mdb_get_int32(buf, row_start); col->cur_blob_pg_row = mdb_get_int32(buf, row_start);
return len - 4; return len - 4;
@@ -542,7 +542,7 @@ mdb_ole_read(MdbHandle *mdb, MdbColumn *col, void *ole_ptr, int chunk_size)
mdb_debug(MDB_DEBUG_OLE,"start %d len %d", row_start, len); mdb_debug(MDB_DEBUG_OLE,"start %d len %d", row_start, len);
if (col->bind_ptr) { if (col->bind_ptr) {
memcpy(col->bind_ptr, buf + row_start, len); memcpy(col->bind_ptr, (char*)buf + row_start, len);
if (mdb_get_option(MDB_DEBUG_OLE)) if (mdb_get_option(MDB_DEBUG_OLE))
mdb_buffer_dump(col->bind_ptr, 0, 16); mdb_buffer_dump(col->bind_ptr, 0, 16);
} }
@@ -560,7 +560,7 @@ mdb_ole_read(MdbHandle *mdb, MdbColumn *col, void *ole_ptr, int chunk_size)
mdb_debug(MDB_DEBUG_OLE,"start %d len %d", row_start, len); mdb_debug(MDB_DEBUG_OLE,"start %d len %d", row_start, len);
if (col->bind_ptr) if (col->bind_ptr)
memcpy(col->bind_ptr, buf + row_start + 4, len - 4); memcpy(col->bind_ptr, (char*)buf + row_start + 4, len - 4);
col->cur_blob_pg_row = mdb_get_int32(buf, row_start); col->cur_blob_pg_row = mdb_get_int32(buf, row_start);
mdb_debug(MDB_DEBUG_OLE, "next pg_row %d", col->cur_blob_pg_row); mdb_debug(MDB_DEBUG_OLE, "next pg_row %d", col->cur_blob_pg_row);
@@ -692,7 +692,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
if (memo_len & 0x80000000) { if (memo_len & 0x80000000) {
/* inline memo field */ /* inline memo field */
mdb_unicode2ascii(mdb, pg_buf + start + MDB_MEMO_OVERHEAD, mdb_unicode2ascii(mdb, (char*)pg_buf + start + MDB_MEMO_OVERHEAD,
size - MDB_MEMO_OVERHEAD, text, MDB_BIND_SIZE); size - MDB_MEMO_OVERHEAD, text, MDB_BIND_SIZE);
return text; return text;
} else if (memo_len & 0x40000000) { } else if (memo_len & 0x40000000) {
@@ -710,7 +710,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
pg_row & 0xff, row_start, len); pg_row & 0xff, row_start, len);
mdb_buffer_dump(buf, row_start, len); mdb_buffer_dump(buf, row_start, len);
#endif #endif
mdb_unicode2ascii(mdb, buf + row_start, len, text, MDB_BIND_SIZE); mdb_unicode2ascii(mdb, (char*)buf + row_start, len, text, MDB_BIND_SIZE);
return text; return text;
} else if ((memo_len & 0xff000000) == 0) { // assume all flags in MSB } else if ((memo_len & 0xff000000) == 0) { // assume all flags in MSB
/* multi-page memo field */ /* multi-page memo field */
@@ -739,7 +739,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
if (!len) if (!len)
break; break;
memcpy(tmp + tmpoff, buf + row_start + 4, len - 4); memcpy(tmp + tmpoff, (char*)buf + row_start + 4, len - 4);
tmpoff += len - 4; tmpoff += len - 4;
} while (( pg_row = mdb_get_int32(buf, row_start) )); } while (( pg_row = mdb_get_int32(buf, row_start) ));
if (tmpoff < memo_len) { if (tmpoff < memo_len) {
@@ -940,7 +940,7 @@ char *mdb_col_to_string(MdbHandle *mdb, void *buf, int start, int datatype, int
text = g_strdup(""); text = g_strdup("");
} else { } else {
text = (char *) g_malloc(MDB_BIND_SIZE); text = (char *) g_malloc(MDB_BIND_SIZE);
mdb_unicode2ascii(mdb, buf + start, mdb_unicode2ascii(mdb, (char*)buf + start,
size, text, MDB_BIND_SIZE); size, text, MDB_BIND_SIZE);
} }
break; break;

View File

@@ -423,7 +423,7 @@ unsigned char mdb_pg_get_byte(MdbHandle *mdb, int offset)
int mdb_get_int16(void *buf, int offset) int mdb_get_int16(void *buf, int offset)
{ {
guint16 l; guint16 l;
memcpy(&l, buf + offset, 2); memcpy(&l, (char*)buf + offset, 2);
return (int)GUINT16_FROM_LE(l); return (int)GUINT16_FROM_LE(l);
} }
int mdb_pg_get_int16(MdbHandle *mdb, int offset) int mdb_pg_get_int16(MdbHandle *mdb, int offset)
@@ -436,13 +436,13 @@ int mdb_pg_get_int16(MdbHandle *mdb, int offset)
long mdb_get_int32_msb(void *buf, int offset) long mdb_get_int32_msb(void *buf, int offset)
{ {
gint32 l; gint32 l;
memcpy(&l, buf + offset, 4); memcpy(&l, (char*)buf + offset, 4);
return (long)GINT32_FROM_BE(l); return (long)GINT32_FROM_BE(l);
} }
long mdb_get_int32(void *buf, int offset) long mdb_get_int32(void *buf, int offset)
{ {
gint32 l; gint32 l;
memcpy(&l, buf + offset, 4); memcpy(&l, (char*)buf + offset, 4);
return (long)GINT32_FROM_LE(l); return (long)GINT32_FROM_LE(l);
} }
long mdb_pg_get_int32(MdbHandle *mdb, int offset) long mdb_pg_get_int32(MdbHandle *mdb, int offset)
@@ -455,7 +455,7 @@ long mdb_pg_get_int32(MdbHandle *mdb, int offset)
float mdb_get_single(void *buf, int offset) float mdb_get_single(void *buf, int offset)
{ {
union {guint32 g; float f;} f; union {guint32 g; float f;} f;
memcpy(&f, buf + offset, 4); memcpy(&f, (char*)buf + offset, 4);
f.g = GUINT32_FROM_LE(f.g); f.g = GUINT32_FROM_LE(f.g);
return f.f; return f.f;
} }
@@ -469,7 +469,7 @@ float mdb_pg_get_single(MdbHandle *mdb, int offset)
double mdb_get_double(void *buf, int offset) double mdb_get_double(void *buf, int offset)
{ {
union {guint64 g; double d;} d; union {guint64 g; double d;} d;
memcpy(&d, buf + offset, 8); memcpy(&d, (char*)buf + offset, 8);
d.g = GUINT64_FROM_LE(d.g); d.g = GUINT64_FROM_LE(d.g);
return d.d; return d.d;
} }

View File

@@ -192,7 +192,7 @@ mdb_kkd_to_props(MdbHandle *mdb, void *buffer, size_t len) {
switch (record_type) { switch (record_type) {
case 0x80: case 0x80:
if (names) free_names(names); if (names) free_names(names);
names = mdb_read_props_list(mdb, buffer+pos+6, record_len - 6); names = mdb_read_props_list(mdb, (char*)buffer+pos+6, record_len - 6);
break; break;
case 0x00: case 0x00:
case 0x01: case 0x01:
@@ -200,7 +200,7 @@ mdb_kkd_to_props(MdbHandle *mdb, void *buffer, size_t len) {
fprintf(stderr,"sequence error!\n"); fprintf(stderr,"sequence error!\n");
break; break;
} }
props = mdb_read_props(mdb, names, buffer+pos+6, record_len - 6); props = mdb_read_props(mdb, names, (char*)buffer+pos+6, record_len - 6);
g_array_append_val(result, props); g_array_append_val(result, props);
//mdb_dump_props(props, stderr, 1); //mdb_dump_props(props, stderr, 1);
break; break;

View File

@@ -302,7 +302,7 @@ int mdb_add_sarg_by_name(MdbTableDef *table, char *colname, MdbSarg *in_sarg)
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col = g_ptr_array_index (table->columns, i); col = g_ptr_array_index (table->columns, i);
if (!strcasecmp(col->name,colname)) { if (!g_ascii_strcasecmp(col->name,colname)) {
return mdb_add_sarg(col, in_sarg); return mdb_add_sarg(col, in_sarg);
} }
} }

View File

@@ -95,7 +95,7 @@ MdbTableDef *mdb_read_table(MdbCatalogEntry *entry)
/* grab a copy of the usage map */ /* grab a copy of the usage map */
pg_row = mdb_get_int32(pg_buf, fmt->tab_usage_map_offset); pg_row = mdb_get_int32(pg_buf, fmt->tab_usage_map_offset);
mdb_find_pg_row(mdb, pg_row, &buf, &row_start, &(table->map_sz)); mdb_find_pg_row(mdb, pg_row, &buf, &row_start, &(table->map_sz));
table->usage_map = g_memdup(buf + row_start, table->map_sz); table->usage_map = g_memdup((char*)buf + row_start, table->map_sz);
if (mdb_get_option(MDB_DEBUG_USAGE)) if (mdb_get_option(MDB_DEBUG_USAGE))
mdb_buffer_dump(buf, row_start, table->map_sz); mdb_buffer_dump(buf, row_start, table->map_sz);
mdb_debug(MDB_DEBUG_USAGE,"usage map found on page %ld row %d start %d len %d", mdb_debug(MDB_DEBUG_USAGE,"usage map found on page %ld row %d start %d len %d",
@@ -104,7 +104,7 @@ MdbTableDef *mdb_read_table(MdbCatalogEntry *entry)
/* grab a copy of the free space page map */ /* grab a copy of the free space page map */
pg_row = mdb_get_int32(pg_buf, fmt->tab_free_map_offset); pg_row = mdb_get_int32(pg_buf, fmt->tab_free_map_offset);
mdb_find_pg_row(mdb, pg_row, &buf, &row_start, &(table->freemap_sz)); mdb_find_pg_row(mdb, pg_row, &buf, &row_start, &(table->freemap_sz));
table->free_usage_map = g_memdup(buf + row_start, table->freemap_sz); table->free_usage_map = g_memdup((char*)buf + row_start, table->freemap_sz);
mdb_debug(MDB_DEBUG_USAGE,"free map found on page %ld row %d start %d len %d\n", mdb_debug(MDB_DEBUG_USAGE,"free map found on page %ld row %d start %d len %d\n",
pg_row >> 8, pg_row & 0xff, row_start, table->freemap_sz); pg_row >> 8, pg_row & 0xff, row_start, table->freemap_sz);
@@ -128,7 +128,7 @@ MdbTableDef *mdb_read_table_by_name(MdbHandle *mdb, gchar *table_name, int obj_t
for (i=0; i<mdb->num_catalog; i++) { for (i=0; i<mdb->num_catalog; i++) {
entry = g_ptr_array_index(mdb->catalog, i); entry = g_ptr_array_index(mdb->catalog, i);
if (!strcasecmp(entry->object_name, table_name)) if (!g_ascii_strcasecmp(entry->object_name, table_name))
return mdb_read_table(entry); return mdb_read_table(entry);
} }
@@ -168,6 +168,8 @@ read_pg_if_8(MdbHandle *mdb, int *cur_pos)
void * void *
read_pg_if_n(MdbHandle *mdb, void *buf, int *cur_pos, size_t len) read_pg_if_n(MdbHandle *mdb, void *buf, int *cur_pos, size_t len)
{ {
char* _buf = buf;
/* Advance to page which contains the first byte */ /* Advance to page which contains the first byte */
while (*cur_pos >= mdb->fmt->pg_size) { while (*cur_pos >= mdb->fmt->pg_size) {
mdb_read_pg(mdb, mdb_get_int32(mdb->pg_buf,4)); mdb_read_pg(mdb, mdb_get_int32(mdb->pg_buf,4));
@@ -176,20 +178,20 @@ read_pg_if_n(MdbHandle *mdb, void *buf, int *cur_pos, size_t len)
/* Copy pages into buffer */ /* Copy pages into buffer */
while (*cur_pos + len >= mdb->fmt->pg_size) { while (*cur_pos + len >= mdb->fmt->pg_size) {
int piece_len = mdb->fmt->pg_size - *cur_pos; int piece_len = mdb->fmt->pg_size - *cur_pos;
if (buf) { if (_buf) {
memcpy(buf, mdb->pg_buf + *cur_pos, piece_len); memcpy(_buf, mdb->pg_buf + *cur_pos, piece_len);
buf += piece_len; _buf += piece_len;
} }
len -= piece_len; len -= piece_len;
mdb_read_pg(mdb, mdb_get_int32(mdb->pg_buf,4)); mdb_read_pg(mdb, mdb_get_int32(mdb->pg_buf,4));
*cur_pos = 8; *cur_pos = 8;
} }
/* Copy into buffer from final page */ /* Copy into buffer from final page */
if (len && buf) { if (len && _buf) {
memcpy(buf, mdb->pg_buf + *cur_pos, len); memcpy(_buf, mdb->pg_buf + *cur_pos, len);
} }
*cur_pos += len; *cur_pos += len;
return buf; return _buf;
} }

View File

@@ -33,7 +33,7 @@ void
mdb_put_int16(void *buf, guint32 offset, guint32 value) mdb_put_int16(void *buf, guint32 offset, guint32 value)
{ {
value = GINT32_TO_LE(value); value = GINT32_TO_LE(value);
memcpy(buf + offset, &value, 2); memcpy((char*)buf + offset, &value, 2);
} }
void void
_mdb_put_int16(void *buf, guint32 offset, guint32 value) _mdb_put_int16(void *buf, guint32 offset, guint32 value)
@@ -47,7 +47,7 @@ void
mdb_put_int32(void *buf, guint32 offset, guint32 value) mdb_put_int32(void *buf, guint32 offset, guint32 value)
{ {
value = GINT32_TO_LE(value); value = GINT32_TO_LE(value);
memcpy(buf + offset, &value, 4); memcpy((char*)buf + offset, &value, 4);
} }
void void
_mdb_put_int32(void *buf, guint32 offset, guint32 value) _mdb_put_int32(void *buf, guint32 offset, guint32 value)
@@ -61,7 +61,7 @@ void
mdb_put_int32_msb(void *buf, guint32 offset, guint32 value) mdb_put_int32_msb(void *buf, guint32 offset, guint32 value)
{ {
value = GINT32_TO_BE(value); value = GINT32_TO_BE(value);
memcpy(buf + offset, &value, 4); memcpy((char*)buf + offset, &value, 4);
} }
void void
_mdb_put_int32_mdb(void *buf, guint32 offset, guint32 value) _mdb_put_int32_mdb(void *buf, guint32 offset, guint32 value)
@@ -194,7 +194,7 @@ mdb_crack_row(MdbTableDef *table, int row_start, int row_end, MdbField *fields)
} }
bitmask_sz = (row_cols + 7) / 8; bitmask_sz = (row_cols + 7) / 8;
nullmask = pg_buf + row_end - bitmask_sz + 1; nullmask = (unsigned char*)pg_buf + row_end - bitmask_sz + 1;
/* read table of variable column locations */ /* read table of variable column locations */
if (table->num_var_cols > 0) { if (table->num_var_cols > 0) {
@@ -235,7 +235,7 @@ mdb_crack_row(MdbTableDef *table, int row_start, int row_end, MdbField *fields)
&& (fixed_cols_found < row_fixed_cols)) { && (fixed_cols_found < row_fixed_cols)) {
col_start = col->fixed_offset + col_count_size; col_start = col->fixed_offset + col_count_size;
fields[i].start = row_start + col_start; fields[i].start = row_start + col_start;
fields[i].value = pg_buf + row_start + col_start; fields[i].value = (char*)pg_buf + row_start + col_start;
fields[i].siz = col->col_size; fields[i].siz = col->col_size;
fixed_cols_found++; fixed_cols_found++;
/* Use col->var_col_num because a deleted column is still /* Use col->var_col_num because a deleted column is still
@@ -244,7 +244,7 @@ mdb_crack_row(MdbTableDef *table, int row_start, int row_end, MdbField *fields)
&& (col->var_col_num < row_var_cols)) { && (col->var_col_num < row_var_cols)) {
col_start = var_col_offsets[col->var_col_num]; col_start = var_col_offsets[col->var_col_num];
fields[i].start = row_start + col_start; fields[i].start = row_start + col_start;
fields[i].value = pg_buf + row_start + col_start; fields[i].value = (char*)pg_buf + row_start + col_start;
fields[i].siz = var_col_offsets[(col->var_col_num)+1] - fields[i].siz = var_col_offsets[(col->var_col_num)+1] -
col_start; col_start;
} else { } else {
@@ -627,14 +627,14 @@ mdb_add_row_to_pg(MdbTableDef *table, unsigned char *row_buffer, int new_row_siz
for (i=0;i<num_rows;i++) { for (i=0;i<num_rows;i++) {
mdb_find_row(mdb, i, &row_start, &row_size); mdb_find_row(mdb, i, &row_start, &row_size);
pos -= row_size; pos -= row_size;
memcpy(new_pg + pos, mdb->pg_buf + row_start, row_size); memcpy((char*)new_pg + pos, mdb->pg_buf + row_start, row_size);
mdb_put_int16(new_pg, (fmt->row_count_offset + 2) + (i*2), pos); mdb_put_int16(new_pg, (fmt->row_count_offset + 2) + (i*2), pos);
} }
} }
/* add our new row */ /* add our new row */
pos -= new_row_size; pos -= new_row_size;
memcpy(new_pg + pos, row_buffer, new_row_size); memcpy((char*)new_pg + pos, row_buffer, new_row_size);
/* add row to the row offset table */ /* add row to the row offset table */
mdb_put_int16(new_pg, (fmt->row_count_offset + 2) + (num_rows*2), pos); mdb_put_int16(new_pg, (fmt->row_count_offset + 2) + (num_rows*2), pos);
@@ -747,20 +747,20 @@ int i, pos;
for (i=0;i<row;i++) { for (i=0;i<row;i++) {
mdb_find_row(mdb, i, &row_start, &row_size); mdb_find_row(mdb, i, &row_start, &row_size);
pos -= row_size; pos -= row_size;
memcpy(new_pg + pos, mdb->pg_buf + row_start, row_size); memcpy((char*)new_pg + pos, mdb->pg_buf + row_start, row_size);
mdb_put_int16(new_pg, rco + 2 + i*2, pos); mdb_put_int16(new_pg, rco + 2 + i*2, pos);
} }
/* our row */ /* our row */
pos -= new_row_size; pos -= new_row_size;
memcpy(new_pg + pos, new_row, new_row_size); memcpy((char*)new_pg + pos, new_row, new_row_size);
mdb_put_int16(new_pg, rco + 2 + row*2, pos); mdb_put_int16(new_pg, rco + 2 + row*2, pos);
/* rows after */ /* rows after */
for (i=row+1;i<num_rows;i++) { for (i=row+1;i<num_rows;i++) {
mdb_find_row(mdb, i, &row_start, &row_size); mdb_find_row(mdb, i, &row_start, &row_size);
pos -= row_size; pos -= row_size;
memcpy(new_pg + pos, mdb->pg_buf + row_start, row_size); memcpy((char*)new_pg + pos, mdb->pg_buf + row_start, row_size);
mdb_put_int16(new_pg, rco + 2 + i*2, pos); mdb_put_int16(new_pg, rco + 2 + i*2, pos);
} }
@@ -838,7 +838,7 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage *ipg)
mdb_buffer_dump(key_hash, 0, col->col_size); mdb_buffer_dump(key_hash, 0, col->col_size);
} }
memcpy(new_pg + ipg->offset, mdb->pg_buf + ipg->offset, ipg->len); memcpy((char*)new_pg + ipg->offset, mdb->pg_buf + ipg->offset, ipg->len);
ipg->offset += ipg->len; ipg->offset += ipg->len;
ipg->len = 0; ipg->len = 0;
@@ -863,7 +863,7 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage *ipg)
printf("--------\n"); printf("--------\n");
} }
((char *)new_pg)[ipg->offset] = 0x7f; ((char *)new_pg)[ipg->offset] = 0x7f;
memcpy(new_pg + ipg->offset + 1, key_hash, col->col_size); memcpy((char*)new_pg + ipg->offset + 1, key_hash, col->col_size);
pg_row = (pgnum << 8) | ((rownum-1) & 0xff); pg_row = (pgnum << 8) | ((rownum-1) & 0xff);
mdb_put_int32_msb(new_pg, ipg->offset + 5, pg_row); mdb_put_int32_msb(new_pg, ipg->offset + 5, pg_row);
ipg->idx_starts[row++] = ipg->offset + ipg->len; ipg->idx_starts[row++] = ipg->offset + ipg->len;

View File

@@ -119,7 +119,7 @@ static int LoadDSN (
{ {
while (GetNextItem (stream, &name, &value)) while (GetNextItem (stream, &name, &value))
{ {
g_hash_table_insert (table, strdup (name), strdup (value)); g_hash_table_insert (table, g_strdup (name), g_strdup (value));
} }
} }
@@ -535,7 +535,7 @@ ODBCINSTGetProperties(HODBCINSTPROPERTY hLastProperty)
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_FILENAME; hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_FILENAME;
strncpy(hLastProperty->szName, "Database", INI_MAX_PROPERTY_NAME); strncpy(hLastProperty->szName, "Database", INI_MAX_PROPERTY_NAME);
strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE); strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE);
hLastProperty->pszHelp = (char *) strdup("Filename and Path of MDB file to connect to.\n" hLastProperty->pszHelp = (char *) g_strdup("Filename and Path of MDB file to connect to.\n"
"Use the full path to the database file."); "Use the full path to the database file.");

View File

@@ -765,7 +765,7 @@ static SQLRETURN SQL_API _SQLDescribeCol(
table = sql->cur_table; table = sql->cur_table;
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i); col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(sqlcol->name, col->name)) { if (!g_ascii_strcasecmp(sqlcol->name, col->name)) {
break; break;
} }
} }
@@ -899,7 +899,7 @@ static SQLRETURN SQL_API _SQLColAttributes(
table = sql->cur_table; table = sql->cur_table;
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i); col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(sqlcol->name, col->name)) { if (!g_ascii_strcasecmp(sqlcol->name, col->name)) {
break; break;
} }
} }
@@ -1484,7 +1484,7 @@ static SQLRETURN SQL_API _SQLColumns(
for (i=0; i<mdb->num_catalog; i++) { for (i=0; i<mdb->num_catalog; i++) {
entry = g_ptr_array_index(mdb->catalog, i); entry = g_ptr_array_index(mdb->catalog, i);
/* TODO: Do more advanced matching */ /* TODO: Do more advanced matching */
if (strcasecmp((char*)szTableName, entry->object_name) != 0) if (g_ascii_strcasecmp((char*)szTableName, entry->object_name) != 0)
continue; continue;
table = mdb_read_table(entry); table = mdb_read_table(entry);
mdb_read_columns(table); mdb_read_columns(table);
@@ -1607,7 +1607,7 @@ static SQLRETURN SQL_API _SQLGetData(
table = sql->cur_table; table = sql->cur_table;
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i); col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(sqlcol->name, col->name)) { if (!g_ascii_strcasecmp(sqlcol->name, col->name)) {
break; break;
} }
} }
@@ -1866,7 +1866,7 @@ SQLRETURN SQL_API SQLGetFunctions(
switch (fFunction) { switch (fFunction) {
#if ODBCVER >= 0x0300 #if ODBCVER >= 0x0300
case SQL_API_ODBC3_ALL_FUNCTIONS: case SQL_API_ODBC3_ALL_FUNCTIONS:
bzero(pfExists, SQL_API_ODBC3_ALL_FUNCTIONS_SIZE); memset(pfExists, 0, SQL_API_ODBC3_ALL_FUNCTIONS_SIZE);
_set_func_exists(pfExists,SQL_API_SQLALLOCCONNECT); _set_func_exists(pfExists,SQL_API_SQLALLOCCONNECT);
_set_func_exists(pfExists,SQL_API_SQLALLOCENV); _set_func_exists(pfExists,SQL_API_SQLALLOCENV);
_set_func_exists(pfExists,SQL_API_SQLALLOCHANDLE); _set_func_exists(pfExists,SQL_API_SQLALLOCHANDLE);
@@ -1927,7 +1927,7 @@ SQLRETURN SQL_API SQLGetFunctions(
break; break;
#endif #endif
case SQL_API_ALL_FUNCTIONS: case SQL_API_ALL_FUNCTIONS:
bzero(pfExists, 100); // 100 by spec memset(pfExists, 0, 100); // 100 by spec
_set_func_exists(pfExists,SQL_API_SQLALLOCCONNECT); _set_func_exists(pfExists,SQL_API_SQLALLOCCONNECT);
_set_func_exists(pfExists,SQL_API_SQLALLOCENV); _set_func_exists(pfExists,SQL_API_SQLALLOCENV);
_set_func_exists(pfExists,SQL_API_SQLALLOCSTMT); _set_func_exists(pfExists,SQL_API_SQLALLOCSTMT);

View File

@@ -66,22 +66,22 @@ like { return LIKE; }
return IDENT; return IDENT;
} }
[a-z\xa0-\xff][a-z0-9_#@\xa0-\xff]* { yylval.name = strdup(yytext); return NAME; } [a-z\xa0-\xff][a-z0-9_#@\xa0-\xff]* { yylval.name = g_strdup(yytext); return NAME; }
'[^']*'' { '[^']*'' {
yyless(yyleng-1); yyless(yyleng-1);
yymore(); yymore();
} }
'[^']*' { '[^']*' {
yylval.name = strdup(yytext); yylval.name = g_strdup(yytext);
return STRING; return STRING;
} }
(-*[0-9]+|([0-9]*\.[0-9]+)(e[-+]?[0-9]+)?) { (-*[0-9]+|([0-9]*\.[0-9]+)(e[-+]?[0-9]+)?) {
yylval.name = strdup(yytext); return NUMBER; yylval.name = g_strdup(yytext); return NUMBER;
} }
~?(\/?[a-z0-9\.\xa0-\xff]+)+ { ~?(\/?[a-z0-9\.\xa0-\xff]+)+ {
yylval.name = strdup(yytext); return PATH; yylval.name = g_strdup(yytext); return PATH;
} }
. { return yytext[0]; } . { return yytext[0]; }

View File

@@ -641,7 +641,7 @@ int mdb_sql_find_sargcol(MdbSargNode *node, gpointer data)
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i); col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(col->name, (char *)node->parent)) { if (!g_ascii_strcasecmp(col->name, (char *)node->parent)) {
node->col = col; node->col = col;
break; break;
} }
@@ -689,7 +689,7 @@ int found = 0;
found=0; found=0;
for (j=0;j<table->num_cols;j++) { for (j=0;j<table->num_cols;j++) {
col=g_ptr_array_index(table->columns,j); col=g_ptr_array_index(table->columns,j);
if (!strcasecmp(sqlcol->name, col->name)) { if (!g_ascii_strcasecmp(sqlcol->name, col->name)) {
sqlcol->disp_size = mdb_col_disp_size(col); sqlcol->disp_size = mdb_col_disp_size(col);
found=1; found=1;
break; break;

View File

@@ -42,7 +42,7 @@ int len;
mdb = mdb_open(argv[1], MDB_WRITABLE); mdb = mdb_open(argv[1], MDB_WRITABLE);
tabname = argv[2]; tabname = argv[2];
sargname = argv[3]; sargname = argv[3];
updstr = strdup(argv[4]); updstr = g_strdup(argv[4]);
table = mdb_read_table_by_name(mdb, tabname, MDB_TABLE); table = mdb_read_table_by_name(mdb, tabname, MDB_TABLE);
@@ -78,7 +78,7 @@ void read_to_row(MdbTableDef *table, char *sargname)
sargcol = strtok(sargname," "); sargcol = strtok(sargname," ");
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i); col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(col->name, (char *)sargcol)) { if (!g_ascii_strcasecmp(col->name, (char *)sargcol)) {
sarg.col = col; sarg.col = col;
break; break;
} }