mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-06-28 15:39:02 +08:00
Patch bufferdump.diff from Nirgal
This commit is contained in:
parent
3e2407044d
commit
1f2749cdfc
@ -479,7 +479,7 @@ extern void mdb_set_date_fmt(const char *);
|
||||
extern int mdb_read_row(MdbTableDef *table, unsigned int row);
|
||||
|
||||
/* dump.c */
|
||||
extern void buffer_dump(const void *buf, int start, size_t len);
|
||||
extern void mdb_buffer_dump(const void *buf, int start, size_t len);
|
||||
|
||||
/* backend.c */
|
||||
extern char* mdb_get_coltype_string(MdbBackend *backend, int col_type); /* obsolete */
|
||||
|
@ -116,7 +116,7 @@ GPtrArray *mdb_read_catalog (MdbHandle *mdb, int objtype)
|
||||
if (kkd_size_ole) {
|
||||
size_t kkd_len;
|
||||
void *kkd = mdb_ole_read_full(mdb, col_props, &kkd_len);
|
||||
//buffer_dump(kkd, 0, kkd_len);
|
||||
//mdb_buffer_dump(kkd, 0, kkd_len);
|
||||
entry->props = mdb_kkd_to_props(mdb, kkd, kkd_len);
|
||||
free(kkd);
|
||||
}
|
||||
|
@ -283,7 +283,7 @@ int mdb_read_row(MdbTableDef *table, unsigned int row)
|
||||
#endif
|
||||
|
||||
#if MDB_DEBUG
|
||||
buffer_dump(mdb->pg_buf, row_start, row_size);
|
||||
mdb_buffer_dump(mdb->pg_buf, row_start, row_size);
|
||||
#endif
|
||||
|
||||
/* take advantage of mdb_crack_row() to clean up binding */
|
||||
@ -546,7 +546,7 @@ mdb_ole_read(MdbHandle *mdb, MdbColumn *col, void *ole_ptr, int chunk_size)
|
||||
if (col->bind_ptr) {
|
||||
memcpy(col->bind_ptr, buf + row_start, len);
|
||||
if (mdb_get_option(MDB_DEBUG_OLE))
|
||||
buffer_dump(col->bind_ptr, 0, 16);
|
||||
mdb_buffer_dump(col->bind_ptr, 0, 16);
|
||||
}
|
||||
return len;
|
||||
} else if ((ole_len & 0xff000000) == 0) {
|
||||
@ -683,7 +683,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
|
||||
}
|
||||
|
||||
#if MDB_DEBUG
|
||||
buffer_dump(pg_buf, start, MDB_MEMO_OVERHEAD);
|
||||
mdb_buffer_dump(pg_buf, start, MDB_MEMO_OVERHEAD);
|
||||
#endif
|
||||
|
||||
/* The 32 bit integer at offset 0 is the length of the memo field
|
||||
@ -710,7 +710,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
|
||||
#if MDB_DEBUG
|
||||
printf("row num %d start %d len %d\n",
|
||||
pg_row & 0xff, row_start, len);
|
||||
buffer_dump(buf, row_start, len);
|
||||
mdb_buffer_dump(buf, row_start, len);
|
||||
#endif
|
||||
mdb_unicode2ascii(mdb, buf + row_start, len, text, MDB_BIND_SIZE);
|
||||
return text;
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "dmalloc.h"
|
||||
#endif
|
||||
|
||||
void buffer_dump(const void* buf, int start, size_t len)
|
||||
void mdb_buffer_dump(const void* buf, int start, size_t len)
|
||||
{
|
||||
char asc[20];
|
||||
int j, k;
|
||||
|
@ -645,9 +645,9 @@ mdb_index_find_next(MdbHandle *mdb, MdbIndex *idx, MdbIndexChain *chain, guint32
|
||||
/* handle compressed indexes, single key indexes only? */
|
||||
if (idx->num_keys==1 && idx_sz>0 && ipg->len - 4 < idx_sz) {
|
||||
//printf("short index found\n");
|
||||
//buffer_dump(ipg->cache_value, 0, idx_sz);
|
||||
//mdb_buffer_dump(ipg->cache_value, 0, idx_sz);
|
||||
memcpy(&ipg->cache_value[idx_sz - (ipg->len - 4)], &mdb->pg_buf[ipg->offset], ipg->len);
|
||||
//buffer_dump(ipg->cache_value, 0, idx_sz);
|
||||
//mdb_buffer_dump(ipg->cache_value, 0, idx_sz);
|
||||
} else {
|
||||
idx_start = ipg->offset + (ipg->len - 4 - idx_sz);
|
||||
memcpy(ipg->cache_value, &mdb->pg_buf[idx_start], idx_sz);
|
||||
@ -660,7 +660,7 @@ mdb_index_find_next(MdbHandle *mdb, MdbIndex *idx, MdbIndexChain *chain, guint32
|
||||
} while (!passed);
|
||||
|
||||
//fprintf(stdout,"len = %d pos %d\n", ipg->len, ipg->mask_pos);
|
||||
//buffer_dump(mdb->pg_buf, ipg->offset, ipg->len);
|
||||
//mdb_buffer_dump(mdb->pg_buf, ipg->offset, ipg->len);
|
||||
|
||||
return ipg->len;
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ global:
|
||||
mdb_*;
|
||||
_mdb_put_int16;
|
||||
_mdb_put_int32;
|
||||
buffer_dump;
|
||||
|
||||
local:
|
||||
*;
|
||||
|
@ -31,7 +31,7 @@ mdb_read_props_list(MdbHandle *mdb, gchar *kkd, int len)
|
||||
names = g_ptr_array_new();
|
||||
int i=0;
|
||||
#if MDB_DEBUG
|
||||
buffer_dump(kkd, 0, len);
|
||||
mdb_buffer_dump(kkd, 0, len);
|
||||
#endif
|
||||
pos = 0;
|
||||
while (pos < len) {
|
||||
@ -39,7 +39,7 @@ mdb_read_props_list(MdbHandle *mdb, gchar *kkd, int len)
|
||||
pos += 2;
|
||||
if (mdb_get_option(MDB_DEBUG_PROPS)) {
|
||||
fprintf(stderr, "%02d ",i++);
|
||||
buffer_dump(kkd, pos - 2, record_len + 2);
|
||||
mdb_buffer_dump(kkd, pos - 2, record_len + 2);
|
||||
}
|
||||
name = g_malloc(3*record_len + 1); /* worst case scenario is 3 bytes out per byte in */
|
||||
mdb_unicode2ascii(mdb, &kkd[pos], record_len, name, 3*record_len);
|
||||
@ -86,7 +86,7 @@ mdb_read_props(MdbHandle *mdb, GPtrArray *names, gchar *kkd, int len)
|
||||
int i=0;
|
||||
|
||||
#if MDB_DEBUG
|
||||
buffer_dump(kkd, 0, len);
|
||||
mdb_buffer_dump(kkd, 0, len);
|
||||
#endif
|
||||
pos = 0;
|
||||
|
||||
@ -116,7 +116,7 @@ mdb_read_props(MdbHandle *mdb, GPtrArray *names, gchar *kkd, int len)
|
||||
if (mdb_get_option(MDB_DEBUG_PROPS)) {
|
||||
fprintf(stderr, "%02d ",i++);
|
||||
mdb_debug(MDB_DEBUG_PROPS,"elem %d (%s) dsize %d dtype %d", elem, name, dsize, dtype);
|
||||
buffer_dump(value, 0, dsize);
|
||||
mdb_buffer_dump(value, 0, dsize);
|
||||
}
|
||||
if (dtype == MDB_MEMO) dtype = MDB_TEXT;
|
||||
if (dtype == MDB_BOOL) {
|
||||
@ -161,12 +161,12 @@ mdb_kkd_to_props(MdbHandle *mdb, void *buffer, size_t len) {
|
||||
MdbProperties *props;
|
||||
|
||||
#if MDB_DEBUG
|
||||
buffer_dump(buffer, 0, len);
|
||||
mdb_buffer_dump(buffer, 0, len);
|
||||
#endif
|
||||
mdb_debug(MDB_DEBUG_PROPS,"starting prop parsing of type %s", buffer);
|
||||
if (strcmp("KKD", buffer) && strcmp("MR2", buffer)) {
|
||||
fprintf(stderr, "Unrecognized format.\n");
|
||||
buffer_dump(buffer, 0, len);
|
||||
mdb_buffer_dump(buffer, 0, len);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ mdb_kkd_to_props(MdbHandle *mdb, void *buffer, size_t len) {
|
||||
record_len = mdb_get_int32(buffer, pos);
|
||||
record_type = mdb_get_int16(buffer, pos + 4);
|
||||
mdb_debug(MDB_DEBUG_PROPS,"prop chunk type:0x%04x len:%d", record_type, record_len);
|
||||
//buffer_dump(buffer, pos+4, record_len);
|
||||
//mdb_buffer_dump(buffer, pos+4, record_len);
|
||||
switch (record_type) {
|
||||
case 0x80:
|
||||
if (names) free_names(names);
|
||||
|
@ -98,7 +98,7 @@ MdbTableDef *mdb_read_table(MdbCatalogEntry *entry)
|
||||
mdb_find_pg_row(mdb, pg_row, &buf, &row_start, &(table->map_sz));
|
||||
table->usage_map = g_memdup(buf + row_start, table->map_sz);
|
||||
if (mdb_get_option(MDB_DEBUG_USAGE))
|
||||
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",
|
||||
pg_row >> 8, pg_row & 0xff, row_start, table->map_sz);
|
||||
|
||||
@ -232,7 +232,7 @@ GPtrArray *mdb_read_columns(MdbTableDef *table)
|
||||
for (i=0;i<table->num_cols;i++) {
|
||||
#ifdef MDB_DEBUG
|
||||
/* printf("column %d\n", i);
|
||||
buffer_dump(mdb->pg_buf, cur_pos, fmt->tab_col_entry_size); */
|
||||
mdb_buffer_dump(mdb->pg_buf, cur_pos, fmt->tab_col_entry_size); */
|
||||
#endif
|
||||
read_pg_if_n(mdb, col, &cur_pos, fmt->tab_col_entry_size);
|
||||
pcol = (MdbColumn *) g_malloc0(sizeof(MdbColumn));
|
||||
|
@ -158,7 +158,7 @@ mdb_crack_row(MdbTableDef *table, int row_start, int row_end, MdbField *fields)
|
||||
unsigned int i;
|
||||
|
||||
if (mdb_get_option(MDB_DEBUG_ROW)) {
|
||||
buffer_dump(pg_buf, row_start, row_end - row_start + 1);
|
||||
mdb_buffer_dump(pg_buf, row_start, row_end - row_start + 1);
|
||||
}
|
||||
|
||||
if (IS_JET4(mdb)) {
|
||||
@ -539,7 +539,7 @@ mdb_insert_row(MdbTableDef *table, int num_fields, MdbField *fields)
|
||||
}
|
||||
new_row_size = mdb_pack_row(table, row_buffer, num_fields, fields);
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
buffer_dump(row_buffer, 0, new_row_size);
|
||||
mdb_buffer_dump(row_buffer, 0, new_row_size);
|
||||
}
|
||||
pgnum = mdb_map_find_next_freepage(table, new_row_size);
|
||||
if (!pgnum) {
|
||||
@ -550,8 +550,8 @@ mdb_insert_row(MdbTableDef *table, int num_fields, MdbField *fields)
|
||||
rownum = mdb_add_row_to_pg(table, row_buffer, new_row_size);
|
||||
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
buffer_dump(mdb->pg_buf, 0, 40);
|
||||
buffer_dump(mdb->pg_buf, fmt->pg_size - 160, 160);
|
||||
mdb_buffer_dump(mdb->pg_buf, 0, 40);
|
||||
mdb_buffer_dump(mdb->pg_buf, fmt->pg_size - 160, 160);
|
||||
}
|
||||
mdb_debug(MDB_DEBUG_WRITE, "writing page %d", pgnum);
|
||||
if (!mdb_write_pg(mdb, pgnum)) {
|
||||
@ -653,7 +653,7 @@ unsigned int num_fields;
|
||||
|
||||
mdb_debug(MDB_DEBUG_WRITE,"page %lu row %d start %d end %d", (unsigned long) table->cur_phys_pg, table->cur_row-1, row_start, row_end);
|
||||
if (mdb_get_option(MDB_DEBUG_LIKE))
|
||||
buffer_dump(mdb->pg_buf, row_start, old_row_size);
|
||||
mdb_buffer_dump(mdb->pg_buf, row_start, old_row_size);
|
||||
|
||||
for (i=0;i<table->num_cols;i++) {
|
||||
col = g_ptr_array_index(table->columns,i);
|
||||
@ -679,7 +679,7 @@ unsigned int num_fields;
|
||||
|
||||
new_row_size = mdb_pack_row(table, row_buffer, num_fields, fields);
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE))
|
||||
buffer_dump(row_buffer, 0, new_row_size);
|
||||
mdb_buffer_dump(row_buffer, 0, new_row_size);
|
||||
if (new_row_size > (old_row_size + mdb_pg_get_freespace(mdb))) {
|
||||
fprintf(stderr, "No space left on this page, update will not occur\n");
|
||||
return 0;
|
||||
@ -702,8 +702,8 @@ guint16 num_rows;
|
||||
int i, pos;
|
||||
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
buffer_dump(mdb->pg_buf, 0, 40);
|
||||
buffer_dump(mdb->pg_buf, pg_size - 160, 160);
|
||||
mdb_buffer_dump(mdb->pg_buf, 0, 40);
|
||||
mdb_buffer_dump(mdb->pg_buf, pg_size - 160, 160);
|
||||
}
|
||||
mdb_debug(MDB_DEBUG_WRITE,"updating row %d on page %lu", row, (unsigned long) table->cur_phys_pg);
|
||||
new_pg = mdb_new_data_pg(entry);
|
||||
@ -741,8 +741,8 @@ int i, pos;
|
||||
|
||||
_mdb_put_int16(mdb->pg_buf, 2, mdb_pg_get_freespace(mdb));
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
buffer_dump(mdb->pg_buf, 0, 40);
|
||||
buffer_dump(mdb->pg_buf, pg_size - 160, 160);
|
||||
mdb_buffer_dump(mdb->pg_buf, 0, 40);
|
||||
mdb_buffer_dump(mdb->pg_buf, pg_size - 160, 160);
|
||||
}
|
||||
/* drum roll, please */
|
||||
if (!mdb_write_pg(mdb, table->cur_phys_pg)) {
|
||||
@ -803,9 +803,9 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage *ipg)
|
||||
key_hash[col->col_size - 1] &= 0x7f;
|
||||
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
buffer_dump(mdb->pg_buf, ipg->offset, ipg->len);
|
||||
buffer_dump(mdb->pg_buf, ipg->offset + 1, col->col_size);
|
||||
buffer_dump(key_hash, 0, col->col_size);
|
||||
mdb_buffer_dump(mdb->pg_buf, ipg->offset, ipg->len);
|
||||
mdb_buffer_dump(mdb->pg_buf, ipg->offset + 1, col->col_size);
|
||||
mdb_buffer_dump(key_hash, 0, col->col_size);
|
||||
}
|
||||
|
||||
memcpy(new_pg + ipg->offset, mdb->pg_buf + ipg->offset, ipg->len);
|
||||
@ -823,8 +823,8 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage *ipg)
|
||||
key_hash[0] |= 0x080;
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
printf("key_hash\n");
|
||||
buffer_dump(idx_fields[0].value, 0, col->col_size);
|
||||
buffer_dump(key_hash, 0, col->col_size);
|
||||
mdb_buffer_dump(idx_fields[0].value, 0, col->col_size);
|
||||
mdb_buffer_dump(key_hash, 0, col->col_size);
|
||||
printf("--------\n");
|
||||
}
|
||||
((char *)new_pg)[ipg->offset] = 0x7f;
|
||||
@ -834,12 +834,12 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage *ipg)
|
||||
ipg->idx_starts[row++] = ipg->offset + ipg->len;
|
||||
//ipg->idx_starts[row] = ipg->offset + ipg->len;
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size);
|
||||
mdb_buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size);
|
||||
}
|
||||
memcpy(mdb->pg_buf, new_pg, mdb->fmt->pg_size);
|
||||
mdb_index_pack_bitmap(mdb, ipg);
|
||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||
buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size);
|
||||
mdb_buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size);
|
||||
}
|
||||
g_free(new_pg);
|
||||
|
||||
|
@ -84,7 +84,7 @@ char *sargcol, *sargop, *sargval;
|
||||
|
||||
mdb_rewind_table(table);
|
||||
while (mdb_fetch_row(table)) {
|
||||
buffer_dump(ole_data, 0, len);
|
||||
mdb_buffer_dump(ole_data, 0, len);
|
||||
printf("---\n");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user