mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-09-19 02:27:55 +08:00
Alter buffer_dump's third parameter from 'end' to 'length'
This commit is contained in:
@@ -1,3 +1,12 @@
|
|||||||
|
Sat Jul 2 02:12:39 CDT 2005 Jeff Smith <whydoubt@yahoo.com>
|
||||||
|
* include/mdbtools.h:
|
||||||
|
* src/libmdb/data.c:
|
||||||
|
* src/libmdb/dump.c:
|
||||||
|
* src/libmdb/index.c:
|
||||||
|
* src/libmdb/props.c:
|
||||||
|
* src/libmdb/table.c:
|
||||||
|
* src/libmdb/write.c: Alter buffer_dump's third parameter from 'end' to 'length'
|
||||||
|
|
||||||
Mon Jun 27 23:52:15 CDT 2005 Jeff Smith <whydoubt@yahoo.com>
|
Mon Jun 27 23:52:15 CDT 2005 Jeff Smith <whydoubt@yahoo.com>
|
||||||
* include/mdbtools.h:
|
* include/mdbtools.h:
|
||||||
* src/gmdb2/debug.c:
|
* src/gmdb2/debug.c:
|
||||||
|
@@ -452,7 +452,7 @@ extern void mdb_set_date_fmt(const char *);
|
|||||||
extern int mdb_read_row(MdbTableDef *table, unsigned int row);
|
extern int mdb_read_row(MdbTableDef *table, unsigned int row);
|
||||||
|
|
||||||
/* dump.c */
|
/* dump.c */
|
||||||
extern void buffer_dump(const void *buf, int start, int end);
|
extern void buffer_dump(const void *buf, int start, size_t len);
|
||||||
|
|
||||||
/* backend.c */
|
/* backend.c */
|
||||||
extern char *mdb_get_coltype_string(MdbBackend *backend, int col_type);
|
extern char *mdb_get_coltype_string(MdbBackend *backend, int col_type);
|
||||||
|
@@ -274,7 +274,7 @@ int mdb_read_row(MdbTableDef *table, unsigned int row)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MDB_DEBUG
|
#if MDB_DEBUG
|
||||||
buffer_dump(mdb->pg_buf, row_start, row_start + row_size - 1);
|
buffer_dump(mdb->pg_buf, row_start, row_size);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* take advantage of mdb_crack_row() to clean up binding */
|
/* take advantage of mdb_crack_row() to clean up binding */
|
||||||
@@ -610,7 +610,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if MDB_DEBUG
|
#if MDB_DEBUG
|
||||||
buffer_dump(pg_buf, start, start + MDB_MEMO_OVERHEAD - 1);
|
buffer_dump(pg_buf, start, MDB_MEMO_OVERHEAD);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* The 32 bit integer at offset 0 is the length of the memo field
|
/* The 32 bit integer at offset 0 is the length of the memo field
|
||||||
@@ -637,7 +637,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
|
|||||||
#if MDB_DEBUG
|
#if MDB_DEBUG
|
||||||
printf("row num %d start %d len %d\n",
|
printf("row num %d start %d len %d\n",
|
||||||
pg_row & 0xff, row_start, len);
|
pg_row & 0xff, row_start, len);
|
||||||
buffer_dump(buf, row_start, row_start + len - 1);
|
buffer_dump(buf, row_start, len);
|
||||||
#endif
|
#endif
|
||||||
mdb_unicode2ascii(mdb, buf + row_start, len, text, MDB_BIND_SIZE);
|
mdb_unicode2ascii(mdb, buf + row_start, len, text, MDB_BIND_SIZE);
|
||||||
return text;
|
return text;
|
||||||
|
@@ -6,14 +6,14 @@
|
|||||||
#include "dmalloc.h"
|
#include "dmalloc.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void buffer_dump(const void* buf, int start, int end)
|
void buffer_dump(const void* buf, int start, size_t len)
|
||||||
{
|
{
|
||||||
char asc[20];
|
char asc[20];
|
||||||
int j, k;
|
int j, k;
|
||||||
|
|
||||||
memset(asc, 0, sizeof(asc));
|
memset(asc, 0, sizeof(asc));
|
||||||
k = 0;
|
k = 0;
|
||||||
for (j=start; j<=end; j++) {
|
for (j=start; j<start+len; j++) {
|
||||||
int c = ((const unsigned char *)(buf))[j];
|
int c = ((const unsigned char *)(buf))[j];
|
||||||
if (k == 0) {
|
if (k == 0) {
|
||||||
fprintf(stdout, "%04x ", j);
|
fprintf(stdout, "%04x ", j);
|
||||||
|
@@ -626,7 +626,7 @@ mdb_index_find_next(MdbHandle *mdb, MdbIndex *idx, MdbIndexChain *chain, guint32
|
|||||||
} while (!passed);
|
} while (!passed);
|
||||||
|
|
||||||
//fprintf(stdout,"len = %d pos %d\n", ipg->len, ipg->mask_pos);
|
//fprintf(stdout,"len = %d pos %d\n", ipg->len, ipg->mask_pos);
|
||||||
//buffer_dump(mdb->pg_buf, ipg->offset, ipg->offset+ipg->len-1);
|
//buffer_dump(mdb->pg_buf, ipg->offset, ipg->len);
|
||||||
|
|
||||||
return ipg->len;
|
return ipg->len;
|
||||||
}
|
}
|
||||||
|
@@ -31,7 +31,7 @@ mdb_read_props_list(gchar *kkd, int len)
|
|||||||
|
|
||||||
names = g_ptr_array_new();
|
names = g_ptr_array_new();
|
||||||
#ifdef MDB_DEBUG
|
#ifdef MDB_DEBUG
|
||||||
buffer_dump(kkd, 0, len - 1);
|
buffer_dump(kkd, 0, len);
|
||||||
#endif
|
#endif
|
||||||
pos = 0;
|
pos = 0;
|
||||||
while (pos < len) {
|
while (pos < len) {
|
||||||
@@ -39,7 +39,7 @@ mdb_read_props_list(gchar *kkd, int len)
|
|||||||
pos += 2;
|
pos += 2;
|
||||||
#ifdef MDB_DEBUG
|
#ifdef MDB_DEBUG
|
||||||
printf("%02d ",i++);
|
printf("%02d ",i++);
|
||||||
buffer_dump(kkd, pos - 2, pos + record_len - 1);
|
buffer_dump(kkd, pos - 2, record_len + 2);
|
||||||
#endif
|
#endif
|
||||||
name = g_malloc(record_len + 1);
|
name = g_malloc(record_len + 1);
|
||||||
strncpy(name, &kkd[pos], record_len);
|
strncpy(name, &kkd[pos], record_len);
|
||||||
@@ -80,7 +80,7 @@ mdb_read_props(MdbHandle *mdb, GPtrArray *names, gchar *kkd, int len)
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
#ifdef MDB_DEBUG
|
#ifdef MDB_DEBUG
|
||||||
buffer_dump(kkd, 0, len - 1);
|
buffer_dump(kkd, 0, len);
|
||||||
#endif
|
#endif
|
||||||
pos = 0;
|
pos = 0;
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ mdb_read_props(MdbHandle *mdb, GPtrArray *names, gchar *kkd, int len)
|
|||||||
name = g_ptr_array_index(names,elem);
|
name = g_ptr_array_index(names,elem);
|
||||||
#ifdef MDB_DEBUG
|
#ifdef MDB_DEBUG
|
||||||
printf("%02d ",i++);
|
printf("%02d ",i++);
|
||||||
buffer_dump(kkd, pos, pos + record_len - 1);
|
buffer_dump(kkd, pos, record_len);
|
||||||
printf("elem %d dsize %d dtype %d\n", elem, dsize, dtype);
|
printf("elem %d dsize %d dtype %d\n", elem, dsize, dtype);
|
||||||
#endif
|
#endif
|
||||||
if (dtype == MDB_MEMO) dtype = MDB_TEXT;
|
if (dtype == MDB_MEMO) dtype = MDB_TEXT;
|
||||||
|
@@ -97,7 +97,7 @@ MdbTableDef *mdb_read_table(MdbCatalogEntry *entry)
|
|||||||
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(buf + row_start, table->map_sz);
|
||||||
if (mdb_get_option(MDB_DEBUG_USAGE))
|
if (mdb_get_option(MDB_DEBUG_USAGE))
|
||||||
buffer_dump(buf, row_start, row_start+table->map_sz-1);
|
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",
|
||||||
pg_row >> 8, pg_row & 0xff, row_start, table->map_sz);
|
pg_row >> 8, pg_row & 0xff, row_start, table->map_sz);
|
||||||
|
|
||||||
@@ -220,7 +220,7 @@ GPtrArray *mdb_read_columns(MdbTableDef *table)
|
|||||||
for (i=0;i<table->num_cols;i++) {
|
for (i=0;i<table->num_cols;i++) {
|
||||||
#ifdef MDB_DEBUG
|
#ifdef MDB_DEBUG
|
||||||
/* printf("column %d\n", i);
|
/* printf("column %d\n", i);
|
||||||
buffer_dump(mdb->pg_buf, cur_pos ,cur_pos + 18); */
|
buffer_dump(mdb->pg_buf, cur_pos, fmt->tab_col_entry_size); */
|
||||||
#endif
|
#endif
|
||||||
read_pg_if_n(mdb, col, &cur_pos, fmt->tab_col_entry_size);
|
read_pg_if_n(mdb, col, &cur_pos, fmt->tab_col_entry_size);
|
||||||
cur_pos += fmt->tab_col_entry_size;
|
cur_pos += fmt->tab_col_entry_size;
|
||||||
|
@@ -158,7 +158,7 @@ mdb_crack_row(MdbTableDef *table, int row_start, int row_end, MdbField *fields)
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
if (mdb_get_option(MDB_DEBUG_ROW)) {
|
if (mdb_get_option(MDB_DEBUG_ROW)) {
|
||||||
buffer_dump(pg_buf, row_start, row_end);
|
buffer_dump(pg_buf, row_start, row_end - row_start + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_JET4(mdb)) {
|
if (IS_JET4(mdb)) {
|
||||||
@@ -537,7 +537,7 @@ mdb_insert_row(MdbTableDef *table, int num_fields, MdbField *fields)
|
|||||||
}
|
}
|
||||||
new_row_size = mdb_pack_row(table, row_buffer, num_fields, fields);
|
new_row_size = mdb_pack_row(table, row_buffer, num_fields, fields);
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
buffer_dump(row_buffer, 0, new_row_size-1);
|
buffer_dump(row_buffer, 0, new_row_size);
|
||||||
}
|
}
|
||||||
pgnum = mdb_map_find_next_freepage(table, new_row_size);
|
pgnum = mdb_map_find_next_freepage(table, new_row_size);
|
||||||
if (!pgnum) {
|
if (!pgnum) {
|
||||||
@@ -548,8 +548,8 @@ mdb_insert_row(MdbTableDef *table, int num_fields, MdbField *fields)
|
|||||||
rownum = mdb_add_row_to_pg(table, row_buffer, new_row_size);
|
rownum = mdb_add_row_to_pg(table, row_buffer, new_row_size);
|
||||||
|
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
buffer_dump(mdb->pg_buf, 0, 39);
|
buffer_dump(mdb->pg_buf, 0, 40);
|
||||||
buffer_dump(mdb->pg_buf, fmt->pg_size - 160, fmt->pg_size-1);
|
buffer_dump(mdb->pg_buf, fmt->pg_size - 160, 160);
|
||||||
}
|
}
|
||||||
mdb_debug(MDB_DEBUG_WRITE, "writing page %d", pgnum);
|
mdb_debug(MDB_DEBUG_WRITE, "writing page %d", pgnum);
|
||||||
if (!mdb_write_pg(mdb, pgnum)) {
|
if (!mdb_write_pg(mdb, pgnum)) {
|
||||||
@@ -651,7 +651,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);
|
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))
|
if (mdb_get_option(MDB_DEBUG_LIKE))
|
||||||
buffer_dump(mdb->pg_buf, row_start, row_end);
|
buffer_dump(mdb->pg_buf, row_start, old_row_size);
|
||||||
|
|
||||||
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);
|
||||||
@@ -677,7 +677,7 @@ unsigned int num_fields;
|
|||||||
|
|
||||||
new_row_size = mdb_pack_row(table, row_buffer, num_fields, fields);
|
new_row_size = mdb_pack_row(table, row_buffer, num_fields, fields);
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE))
|
if (mdb_get_option(MDB_DEBUG_WRITE))
|
||||||
buffer_dump(row_buffer, 0, new_row_size-1);
|
buffer_dump(row_buffer, 0, new_row_size);
|
||||||
if (new_row_size > (old_row_size + mdb_pg_get_freespace(mdb))) {
|
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");
|
fprintf(stderr, "No space left on this page, update will not occur\n");
|
||||||
return 0;
|
return 0;
|
||||||
@@ -700,8 +700,8 @@ guint16 num_rows;
|
|||||||
int i, pos;
|
int i, pos;
|
||||||
|
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
buffer_dump(mdb->pg_buf, 0, 39);
|
buffer_dump(mdb->pg_buf, 0, 40);
|
||||||
buffer_dump(mdb->pg_buf, pg_size - 160, pg_size-1);
|
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);
|
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);
|
new_pg = mdb_new_data_pg(entry);
|
||||||
@@ -739,8 +739,8 @@ int i, pos;
|
|||||||
|
|
||||||
_mdb_put_int16(mdb->pg_buf, 2, mdb_pg_get_freespace(mdb));
|
_mdb_put_int16(mdb->pg_buf, 2, mdb_pg_get_freespace(mdb));
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
buffer_dump(mdb->pg_buf, 0, 39);
|
buffer_dump(mdb->pg_buf, 0, 40);
|
||||||
buffer_dump(mdb->pg_buf, pg_size - 160, pg_size-1);
|
buffer_dump(mdb->pg_buf, pg_size - 160, 160);
|
||||||
}
|
}
|
||||||
/* drum roll, please */
|
/* drum roll, please */
|
||||||
if (!mdb_write_pg(mdb, table->cur_phys_pg)) {
|
if (!mdb_write_pg(mdb, table->cur_phys_pg)) {
|
||||||
@@ -802,9 +802,9 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage *ipg)
|
|||||||
key_hash[col->col_size - 1] &= 0x7f;
|
key_hash[col->col_size - 1] &= 0x7f;
|
||||||
|
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
buffer_dump(mdb->pg_buf, ipg->offset, ipg->offset + ipg->len - 1);
|
buffer_dump(mdb->pg_buf, ipg->offset, ipg->len);
|
||||||
buffer_dump(mdb->pg_buf, ipg->offset + 1, ipg->offset + col->col_size);
|
buffer_dump(mdb->pg_buf, ipg->offset + 1, col->col_size);
|
||||||
buffer_dump(key_hash, 0, col->col_size - 1);
|
buffer_dump(key_hash, 0, col->col_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(new_pg + ipg->offset, mdb->pg_buf + ipg->offset, ipg->len);
|
memcpy(new_pg + ipg->offset, mdb->pg_buf + ipg->offset, ipg->len);
|
||||||
@@ -822,8 +822,8 @@ mdb_copy_index_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPage *ipg)
|
|||||||
key_hash[0] |= 0x080;
|
key_hash[0] |= 0x080;
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
printf("key_hash\n");
|
printf("key_hash\n");
|
||||||
buffer_dump(idx_fields[0].value, 0, col->col_size-1);
|
buffer_dump(idx_fields[0].value, 0, col->col_size);
|
||||||
buffer_dump(key_hash, 0, col->col_size-1);
|
buffer_dump(key_hash, 0, col->col_size);
|
||||||
printf("--------\n");
|
printf("--------\n");
|
||||||
}
|
}
|
||||||
((char *)new_pg)[ipg->offset] = 0x7f;
|
((char *)new_pg)[ipg->offset] = 0x7f;
|
||||||
@@ -833,12 +833,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;
|
||||||
//ipg->idx_starts[row] = ipg->offset + ipg->len;
|
//ipg->idx_starts[row] = ipg->offset + ipg->len;
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size-1);
|
buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size);
|
||||||
}
|
}
|
||||||
memcpy(mdb->pg_buf, new_pg, mdb->fmt->pg_size);
|
memcpy(mdb->pg_buf, new_pg, mdb->fmt->pg_size);
|
||||||
mdb_index_pack_bitmap(mdb, ipg);
|
mdb_index_pack_bitmap(mdb, ipg);
|
||||||
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
if (mdb_get_option(MDB_DEBUG_WRITE)) {
|
||||||
buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size-1);
|
buffer_dump(mdb->pg_buf, 0, mdb->fmt->pg_size);
|
||||||
}
|
}
|
||||||
g_free(new_pg);
|
g_free(new_pg);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user