data page dissector. fix compiler warnings

This commit is contained in:
brianb 2004-02-15 22:15:33 +00:00
parent ee53cdd230
commit d9f25cfba7
4 changed files with 109 additions and 61 deletions

View File

@ -1,6 +1,12 @@
Sun Feb 15 07:37:19 EST 2004 Brian Bruns <brian@bruns.com> Sun Feb 15 07:37:19 EST 2004 Brian Bruns <brian@bruns.com>
* src/gmdb2/debug.c: move declarations to top of function, fixes bug 675022 * HACKING: better description of Jet4 column deletion/addition
* src/gmdb2/debug.c: merge patch for bug #688655, check negative values on datetime * src/gmdb2/gladefiles/gmdb-debug.glade:
remove incorrect default callback
* src/gmdb2/debug.c:
move declarations to top of function, fixes bug 675022
fix -Wall messages
add data page dissector for jet4
* src/lib/data.c: merge patch for bug #688655, check negative values on datetime
Sat Feb 14 14:41:00 EST 2004 Brian Bruns <brian@bruns.com> Sat Feb 14 14:41:00 EST 2004 Brian Bruns <brian@bruns.com>
* include/.cvsignore: add mdbver.h * include/.cvsignore: add mdbver.h

17
HACKING
View File

@ -467,17 +467,20 @@ Column Type may be one of the following (not complete):
UNKNOWN_0D = 0x0D UNKNOWN_0D = 0x0D
REPID = 0x0F /* GUID */ REPID = 0x0F /* GUID */
Notes on deleted columns: Notes on deleted and added columns: (sort of Jet4 specific)
If a fixed length column is deleted the offset_F field will contain the values If a fixed length column is deleted the offset_F field will contain the offsets
of the original row definition. Thus is the number of columns on the row does of the original row definition. Thus is the number of columns on the row does
not match the number in the tdef, the offset_F field could be used to return not match the number in the tdef, the offset_F field could be used to return
the proper data. No idea how multiple column deletions are handled, my instinct the proper data. Columns are never really deleted in the row data. The deleted column will forever exist and be set to null for new rows.
is that Access can only handle a single column deletion event (which may involve
more than one column if new rows have not been added) without touching all the A row may have less than max_cols columns but will never have more, as max_cols
rows. is never decremented. If you have a table with 6 columns, delete one, and add
one, then max_cols will be 7.
For variable length columns, offset_V will hold the position in the offset table
of that column. Missing columns are set to null for new rows.
Don't know if variable columns work by the same mechanism yet. Stay tuned.
Page Usage Maps Page Usage Maps
--------------- ---------------

View File

@ -197,7 +197,7 @@ gmdb_nav_add_page(GladeXML *xml, guint32 page_num)
nav_elem = g_malloc0(sizeof(guint)); nav_elem = g_malloc0(sizeof(guint));
} }
sprintf(buf, "%lu", page_num); sprintf(buf, "%lu", (unsigned long)page_num);
nav_list = g_object_get_data(G_OBJECT(win),"nav_list"); nav_list = g_object_get_data(G_OBJECT(win),"nav_list");
/* /*
@ -207,7 +207,6 @@ gmdb_nav_add_page(GladeXML *xml, guint32 page_num)
num_items = g_list_length(nav_list); num_items = g_list_length(nav_list);
if (num_items > *nav_elem) { if (num_items > *nav_elem) {
for (i=num_items - 1; i >= *nav_elem; i--) { for (i=num_items - 1; i >= *nav_elem; i--) {
printf("freeing element %d\n",i);
link = g_list_nth(nav_list,i); link = g_list_nth(nav_list,i);
nav_list = g_list_remove_link(nav_list, link); nav_list = g_list_remove_link(nav_list, link);
g_free(link->data); g_free(link->data);
@ -228,7 +227,6 @@ void
gmdb_debug_jump_cb(GtkWidget *w, GladeXML *xml) gmdb_debug_jump_cb(GtkWidget *w, GladeXML *xml)
{ {
GtkTextView *textview; GtkTextView *textview;
GtkTextMark *mark;
GtkTextBuffer *txtbuffer; GtkTextBuffer *txtbuffer;
GtkTextIter start, end; GtkTextIter start, end;
GtkWidget *entry; GtkWidget *entry;
@ -268,7 +266,6 @@ void
gmdb_debug_jump_msb_cb(GtkWidget *w, GladeXML *xml) gmdb_debug_jump_msb_cb(GtkWidget *w, GladeXML *xml)
{ {
GtkTextView *textview; GtkTextView *textview;
GtkTextMark *mark;
GtkTextBuffer *txtbuffer; GtkTextBuffer *txtbuffer;
GtkTextIter start, end; GtkTextIter start, end;
GtkWidget *entry; GtkWidget *entry;
@ -308,10 +305,10 @@ gmdb_debug_jump_msb_cb(GtkWidget *w, GladeXML *xml)
void void
gmdb_debug_display_cb(GtkWidget *w, GladeXML *xml) gmdb_debug_display_cb(GtkWidget *w, GladeXML *xml)
{ {
int page; int page;
int i,j; int i;
GtkWidget *entry; GtkWidget *entry;
gchar *s; gchar *s;
if (!mdb) return; if (!mdb) return;
@ -362,7 +359,7 @@ gmdb_debug_display(GladeXML *xml, guint32 page)
textview = (GtkTextView *) glade_xml_get_widget (xml, "debug_textview"); textview = (GtkTextView *) glade_xml_get_widget (xml, "debug_textview");
gmdb_debug_clear(xml); gmdb_debug_clear(xml);
sprintf(pagestr, "%lu", page); sprintf(pagestr, "%lu", (unsigned long)page);
entry = glade_xml_get_widget (xml, "debug_entry"); entry = glade_xml_get_widget (xml, "debug_entry");
gtk_entry_set_text(GTK_ENTRY(entry),pagestr); gtk_entry_set_text(GTK_ENTRY(entry),pagestr);
@ -468,8 +465,7 @@ return l;
void void
gmdb_debug_dissect_column(GtkTreeStore *store, GtkTreeIter *parent, char *fbuf, int offset) gmdb_debug_dissect_column(GtkTreeStore *store, GtkTreeIter *parent, char *fbuf, int offset)
{ {
gchar str[100]; gchar str[100];
GtkCTreeNode *node;
snprintf(str, 100, "Column Type: 0x%02x (%s)", fbuf[offset], snprintf(str, 100, "Column Type: 0x%02x (%s)", fbuf[offset],
gmdb_val_to_str(column_types, fbuf[offset])); gmdb_val_to_str(column_types, fbuf[offset]));
@ -478,9 +474,9 @@ GtkCTreeNode *node;
gmdb_debug_add_item(store, parent, str, offset+1, offset+2); gmdb_debug_add_item(store, parent, str, offset+1, offset+2);
snprintf(str, 100, "VarCol Offset: %d", get_uint16(&fbuf[offset+3])); snprintf(str, 100, "VarCol Offset: %d", get_uint16(&fbuf[offset+3]));
gmdb_debug_add_item(store, parent, str, offset+3, offset+4); gmdb_debug_add_item(store, parent, str, offset+3, offset+4);
snprintf(str, 100, "Unknown", get_uint32(&fbuf[offset+5])); snprintf(str, 100, "Unknown");
gmdb_debug_add_item(store, parent, str, offset+5, offset+8); gmdb_debug_add_item(store, parent, str, offset+5, offset+8);
snprintf(str, 100, "Unknown", get_uint32(&fbuf[offset+9])); snprintf(str, 100, "Unknown");
gmdb_debug_add_item(store, parent, str, offset+9, offset+12); gmdb_debug_add_item(store, parent, str, offset+9, offset+12);
snprintf(str, 100, "Variable Column: %s", snprintf(str, 100, "Variable Column: %s",
fbuf[offset+13] & 0x01 ? "No" : "Yes"); fbuf[offset+13] & 0x01 ? "No" : "Yes");
@ -493,19 +489,17 @@ GtkCTreeNode *node;
void void
gmdb_debug_dissect_index1(GtkTreeStore *store, GtkTreeIter *parent, char *fbuf, int offset) gmdb_debug_dissect_index1(GtkTreeStore *store, GtkTreeIter *parent, char *fbuf, int offset)
{ {
gchar str[100]; gchar str[100];
GtkCTreeNode *node;
snprintf(str, 100, "Unknown"); snprintf(str, 100, "Unknown");
gmdb_debug_add_item(store, parent, str, offset, offset+3); gmdb_debug_add_item(store, parent, str, offset, offset+3);
snprintf(str, 100, "Rows in Index: %lu", get_uint32(&fbuf[offset+4])); snprintf(str, 100, "Rows in Index: %lu", (unsigned long)get_uint32(&fbuf[offset+4]));
gmdb_debug_add_item(store, parent, str, offset+4, offset+7); gmdb_debug_add_item(store, parent, str, offset+4, offset+7);
} }
void void
gmdb_debug_dissect_index2(GtkTreeStore *store, GtkTreeIter *parent, char *fbuf, int offset) gmdb_debug_dissect_index2(GtkTreeStore *store, GtkTreeIter *parent, char *fbuf, int offset)
{ {
gchar str[100]; gchar str[100];
GtkCTreeNode *node;
int mod=0; int mod=0;
unsigned char flags; unsigned char flags;
gchar flagstr[100]; /* If adding flags increase this */ gchar flagstr[100]; /* If adding flags increase this */
@ -544,7 +538,7 @@ GtkTreeIter *node;
snprintf(str, 100, "Row Number: %u", fbuf[offset]); snprintf(str, 100, "Row Number: %u", fbuf[offset]);
gmdb_debug_add_item(store, node, str, offset, offset); gmdb_debug_add_item(store, node, str, offset, offset);
snprintf(str, 100, "Page Number: %lu", get_uint24(&fbuf[offset+1])); snprintf(str, 100, "Page Number: %lu", (unsigned long)get_uint24(&fbuf[offset+1]));
gmdb_debug_add_item(store, node, str, offset+1, offset+3); gmdb_debug_add_item(store, node, str, offset+1, offset+3);
} }
void void
@ -593,7 +587,7 @@ guint32 tdef;
get_uint16(&fbuf[offset+2])); get_uint16(&fbuf[offset+2]));
gmdb_debug_add_item(store, NULL, str, offset+2, offset+3); gmdb_debug_add_item(store, NULL, str, offset+2, offset+3);
tdef = get_uint32(&fbuf[offset+4]); tdef = get_uint32(&fbuf[offset+4]);
snprintf(str, 100, "Parents TDEF page: 0x%06x (%lu)", tdef,tdef); snprintf(str, 100, "Parents TDEF page: 0x%06x (%lu)", tdef,(unsigned long)tdef);
gmdb_debug_add_item(store, NULL, str, offset+4, offset+7); gmdb_debug_add_item(store, NULL, str, offset+4, offset+7);
} }
@ -604,26 +598,67 @@ gchar str[100];
guint32 tdef; guint32 tdef;
tdef = get_uint32(&fbuf[offset+4]); tdef = get_uint32(&fbuf[offset+4]);
snprintf(str, 100, "Parents TDEF page: 0x%06x (%lu)", tdef,tdef); snprintf(str, 100, "Parents TDEF page: 0x%06x (%lu)", tdef,(unsigned long)tdef);
gmdb_debug_add_item(store, NULL, str, offset+4, offset+7); gmdb_debug_add_item(store, NULL, str, offset+4, offset+7);
snprintf(str, 100, "Previous leaf page: 0x%06x (%lu)", get_uint32(&fbuf[offset+8]),get_uint32(&fbuf[offset+8])); snprintf(str, 100, "Previous leaf page: 0x%06x (%lu)", get_uint32(&fbuf[offset+8]),(unsigned long)get_uint32(&fbuf[offset+8]));
gmdb_debug_add_item(store, NULL, str, offset+8, offset+11); gmdb_debug_add_item(store, NULL, str, offset+8, offset+11);
snprintf(str, 100, "Next leaf page: 0x%06x (%lu)", get_uint32(&fbuf[offset+12]),get_uint32(&fbuf[offset+12])); snprintf(str, 100, "Next leaf page: 0x%06x (%lu)", get_uint32(&fbuf[offset+12]),(unsigned long)get_uint32(&fbuf[offset+12]));
gmdb_debug_add_item(store, NULL, str, offset+12, offset+15); gmdb_debug_add_item(store, NULL, str, offset+12, offset+15);
} }
void void
gmdb_debug_dissect_data_pg(GtkTreeStore *store, char *fbuf, int offset, int len) gmdb_debug_dissect_data_pg4(GtkTreeStore *store, char *fbuf, int offset, int len)
{ {
gchar str[100]; gchar str[100];
int num_rows, i, row_start, row_end; int num_rows, i, row_start, row_end;
guint32 tdef; guint32 tdef;
GtkTreeIter *container; GtkTreeIter *container;
snprintf(str, 100, "Page free space: %u", snprintf(str, 100, "Page free space: %u",
get_uint16(&fbuf[offset+2])); get_uint16(&fbuf[offset+2]));
gmdb_debug_add_item(store, NULL, str, offset+2, offset+3); gmdb_debug_add_item(store, NULL, str, offset+2, offset+3);
tdef = get_uint32(&fbuf[offset+4]); tdef = get_uint32(&fbuf[offset+4]);
snprintf(str, 100, "Parents TDEF page: 0x%06x (%lu)", tdef,tdef); snprintf(str, 100, "Parents TDEF page: 0x%06x (%lu)", tdef,(unsigned long)tdef);
gmdb_debug_add_item(store, NULL, str, offset+4, offset+7);
num_rows = get_uint16(&fbuf[offset+12]);
snprintf(str, 100, "Num rows: %u", num_rows);
gmdb_debug_add_item(store, NULL, str, offset+12, offset+13);
for (i=0;i<num_rows;i++) {
row_start = get_uint16(&fbuf[offset+14+(2*i)]);
snprintf(str, 100, "Row %d offset: 0x%02x (%u)",
i+1, row_start, row_start) ;
gmdb_debug_add_item(store, NULL, str, offset+14+(2*i),
offset+14+(2*i)+1);
}
for (i=0;i<num_rows;i++) {
row_start = get_uint16(&fbuf[offset+14+(2*i)]);
if (i==0)
row_end = mdb->fmt->pg_size - 1;
else
row_end = (get_uint16(&fbuf[offset+14+(i-1)*2])
& 0x0FFF) - 1;
snprintf(str, 100, "Row %d", i+1);
container = gmdb_debug_add_item(store, NULL, str, row_start, row_end);
/* usage pages have parent id of 0 (database) and do not
* follow normal row format */
/* if (tdef)
gmdb_debug_dissect_row(store, container, fbuf, row_start, row_end);
*/
}
}
void
gmdb_debug_dissect_data_pg3(GtkTreeStore *store, char *fbuf, int offset, int len)
{
gchar str[100];
int num_rows, i, row_start, row_end;
guint32 tdef;
GtkTreeIter *container;
snprintf(str, 100, "Page free space: %u",
get_uint16(&fbuf[offset+2]));
gmdb_debug_add_item(store, NULL, str, offset+2, offset+3);
tdef = get_uint32(&fbuf[offset+4]);
snprintf(str, 100, "Parents TDEF page: 0x%06x (%lu)", tdef,(unsigned long)tdef);
gmdb_debug_add_item(store, NULL, str, offset+4, offset+7); gmdb_debug_add_item(store, NULL, str, offset+4, offset+7);
num_rows = get_uint16(&fbuf[offset+8]); num_rows = get_uint16(&fbuf[offset+8]);
snprintf(str, 100, "Num rows: %u", num_rows); snprintf(str, 100, "Num rows: %u", num_rows);
@ -640,8 +675,8 @@ GtkTreeIter *container;
if (i==0) if (i==0)
row_end = mdb->fmt->pg_size - 1; row_end = mdb->fmt->pg_size - 1;
else else
row_end = get_uint16(&fbuf[offset+10+(i-1)*2]) row_end = (get_uint16(&fbuf[offset+10+(i-1)*2])
& 0x0FFF - 1; & 0x0FFF) - 1;
snprintf(str, 100, "Row %d", i+1); snprintf(str, 100, "Row %d", i+1);
container = gmdb_debug_add_item(store, NULL, str, row_start, row_end); container = gmdb_debug_add_item(store, NULL, str, row_start, row_end);
@ -652,6 +687,14 @@ GtkTreeIter *container;
} }
} }
void void
gmdb_debug_dissect_data_pg(GtkTreeStore *store, char *fbuf, int offset, int len)
{
if (IS_JET3(mdb))
gmdb_debug_dissect_data_pg3(store, fbuf, offset, len);
else
gmdb_debug_dissect_data_pg4(store, fbuf, offset, len);
}
void
gmdb_debug_dissect_tabledef_pg4(GtkTreeStore *store, char *fbuf, int offset, int len) gmdb_debug_dissect_tabledef_pg4(GtkTreeStore *store, char *fbuf, int offset, int len)
{ {
gchar str[100]; gchar str[100];
@ -660,13 +703,13 @@ int newbase;
GtkTreeIter *node, *container; GtkTreeIter *node, *container;
snprintf(str, 100, "Next TDEF Page: 0x%06x (%lu)", snprintf(str, 100, "Next TDEF Page: 0x%06x (%lu)",
get_uint32(&fbuf[offset+4]), get_uint32(&fbuf[offset+4])); get_uint32(&fbuf[offset+4]), (unsigned long)get_uint32(&fbuf[offset+4]));
gmdb_debug_add_item(store, NULL, str, offset+4, offset+7); gmdb_debug_add_item(store, NULL, str, offset+4, offset+7);
snprintf(str, 100, "Length of Data: %lu", get_uint32(&fbuf[offset+8])); snprintf(str, 100, "Length of Data: %lu", (unsigned long)get_uint32(&fbuf[offset+8]));
gmdb_debug_add_item(store, NULL, str, offset+8, offset+11); gmdb_debug_add_item(store, NULL, str, offset+8, offset+11);
snprintf(str, 100, "# of Records: %lu", get_uint32(&fbuf[offset+16])); snprintf(str, 100, "# of Records: %lu", (unsigned long)get_uint32(&fbuf[offset+16]));
gmdb_debug_add_item(store, NULL, str, offset+16, offset+19); gmdb_debug_add_item(store, NULL, str, offset+16, offset+19);
snprintf(str, 100, "Autonumber Value: %lu", get_uint32(&fbuf[offset+20])); snprintf(str, 100, "Autonumber Value: %lu", (unsigned long)get_uint32(&fbuf[offset+20]));
gmdb_debug_add_item(store, NULL, str, offset+20, offset+23); gmdb_debug_add_item(store, NULL, str, offset+20, offset+23);
snprintf(str, 100, "Table Type: 0x%02x (%s)", fbuf[offset+40], snprintf(str, 100, "Table Type: 0x%02x (%s)", fbuf[offset+40],
gmdb_val_to_str(table_types, fbuf[offset+40])); gmdb_val_to_str(table_types, fbuf[offset+40]));
@ -678,14 +721,14 @@ GtkTreeIter *node, *container;
get_uint16(&fbuf[offset+43])); get_uint16(&fbuf[offset+43]));
gmdb_debug_add_item(store, NULL, str, offset+43, offset+44); gmdb_debug_add_item(store, NULL, str, offset+43, offset+44);
snprintf(str, 100, "# of Columns: %u", snprintf(str, 100, "# of Columns: %u",
get_uint16(&fbuf[offset+45])); (unsigned int)get_uint16(&fbuf[offset+45]));
gmdb_debug_add_item(store, NULL, str, offset+45, offset+46); gmdb_debug_add_item(store, NULL, str, offset+45, offset+46);
idx_entries = get_uint32(&fbuf[offset+47]); idx_entries = get_uint32(&fbuf[offset+47]);
snprintf(str, 100, "# of Index Entries: %lu", idx_entries); snprintf(str, 100, "# of Index Entries: %lu", (unsigned long)idx_entries);
gmdb_debug_add_item(store, NULL, str, offset+47, offset+50); gmdb_debug_add_item(store, NULL, str, offset+47, offset+50);
num_idx = get_uint32(&fbuf[offset+51]); num_idx = get_uint32(&fbuf[offset+51]);
snprintf(str, 100, "# of Real Indices: %lu", num_idx); snprintf(str, 100, "# of Real Indices: %lu", (unsigned long)num_idx);
gmdb_debug_add_item(store, NULL, str, offset+51, offset+54); gmdb_debug_add_item(store, NULL, str, offset+51, offset+54);
gmdb_debug_add_page_ptr(store, NULL, fbuf, "Used Pages Pointer", offset+55); gmdb_debug_add_page_ptr(store, NULL, fbuf, "Used Pages Pointer", offset+55);
@ -716,13 +759,13 @@ int newbase;
GtkTreeIter *node, *container; GtkTreeIter *node, *container;
snprintf(str, 100, "Next TDEF Page: 0x%06x (%lu)", snprintf(str, 100, "Next TDEF Page: 0x%06x (%lu)",
get_uint32(&fbuf[offset+4]), get_uint32(&fbuf[offset+4])); get_uint32(&fbuf[offset+4]), (unsigned long)get_uint32(&fbuf[offset+4]));
gmdb_debug_add_item(store, NULL, str, offset+4, offset+7); gmdb_debug_add_item(store, NULL, str, offset+4, offset+7);
snprintf(str, 100, "Length of Data: %lu", get_uint32(&fbuf[offset+8])); snprintf(str, 100, "Length of Data: %lu", (unsigned long)get_uint32(&fbuf[offset+8]));
gmdb_debug_add_item(store, NULL, str, offset+8, offset+11); gmdb_debug_add_item(store, NULL, str, offset+8, offset+11);
snprintf(str, 100, "# of Records: %lu", get_uint32(&fbuf[offset+12])); snprintf(str, 100, "# of Records: %lu", (unsigned long)get_uint32(&fbuf[offset+12]));
gmdb_debug_add_item(store, NULL, str, offset+12, offset+15); gmdb_debug_add_item(store, NULL, str, offset+12, offset+15);
snprintf(str, 100, "Autonumber Value: %lu", get_uint32(&fbuf[offset+16])); snprintf(str, 100, "Autonumber Value: %lu", (unsigned long)get_uint32(&fbuf[offset+16]));
gmdb_debug_add_item(store, NULL, str, offset+16, offset+19); gmdb_debug_add_item(store, NULL, str, offset+16, offset+19);
snprintf(str, 100, "Table Type: 0x%02x (%s)", fbuf[offset+20], snprintf(str, 100, "Table Type: 0x%02x (%s)", fbuf[offset+20],
gmdb_val_to_str(table_types, fbuf[offset+20])); gmdb_val_to_str(table_types, fbuf[offset+20]));
@ -737,11 +780,11 @@ GtkTreeIter *node, *container;
get_uint16(&fbuf[offset+25])); get_uint16(&fbuf[offset+25]));
gmdb_debug_add_item(store, NULL, str, offset+25, offset+26); gmdb_debug_add_item(store, NULL, str, offset+25, offset+26);
idx_entries = get_uint32(&fbuf[offset+27]); idx_entries = get_uint32(&fbuf[offset+27]);
snprintf(str, 100, "# of Index Entries: %lu", idx_entries); snprintf(str, 100, "# of Index Entries: %lu", (unsigned long)idx_entries);
gmdb_debug_add_item(store, NULL, str, offset+27, offset+30); gmdb_debug_add_item(store, NULL, str, offset+27, offset+30);
num_idx = get_uint32(&fbuf[offset+31]); num_idx = get_uint32(&fbuf[offset+31]);
snprintf(str, 100, "# of Real Indices: %lu", num_idx); snprintf(str, 100, "# of Real Indices: %lu", (unsigned long)num_idx);
gmdb_debug_add_item(store, NULL, str, offset+31, offset+34); gmdb_debug_add_item(store, NULL, str, offset+31, offset+34);
gmdb_debug_add_page_ptr(store, NULL, fbuf, "Used Pages Pointer", offset+35); gmdb_debug_add_page_ptr(store, NULL, fbuf, "Used Pages Pointer", offset+35);
@ -844,7 +887,6 @@ gmdb_debug_dissect(GtkTreeStore *store, char *fbuf, int offset, int len)
static void static void
gmdb_debug_clear(GladeXML *xml) gmdb_debug_clear(GladeXML *xml)
{ {
gpointer data;
GtkTextBuffer *buffer; GtkTextBuffer *buffer;
GtkWidget *treeview, *textview, *store; GtkWidget *treeview, *textview, *store;
@ -877,7 +919,6 @@ static void
gmdb_debug_text_on(GtkWidget *textbox, gmdb_debug_text_on(GtkWidget *textbox,
int start_byte, int end_byte) int start_byte, int end_byte)
{ {
gchar *text;
GtkTextBuffer *buffer; GtkTextBuffer *buffer;
GtkTextTag *tag; GtkTextTag *tag;
GtkTextIter start, end; GtkTextIter start, end;
@ -899,7 +940,6 @@ GtkTextIter start, end;
static void static void
gmdb_debug_text_off(GtkWidget *textbox) gmdb_debug_text_off(GtkWidget *textbox)
{ {
gchar *text;
GtkTextBuffer *buffer; GtkTextBuffer *buffer;
GtkTextTag *tag; GtkTextTag *tag;
int end_byte; int end_byte;
@ -939,8 +979,7 @@ gmdb_debug_close_all()
GladeXML *xml; GladeXML *xml;
GtkWidget *win; GtkWidget *win;
while (xml = g_list_nth_data(debug_list, 0)) { while ((xml = g_list_nth_data(debug_list, 0))) {
printf("fetching %ld from list\n", xml);
win = glade_xml_get_widget (xml, "debug_window"); win = glade_xml_get_widget (xml, "debug_window");
debug_list = g_list_remove(debug_list, xml); debug_list = g_list_remove(debug_list, xml);
if (win) gtk_widget_destroy(win); if (win) gtk_widget_destroy(win);
@ -1053,7 +1092,7 @@ gmdb_debug_new_cb(GtkWidget *w, gpointer *data)
gmdb_debug_init(mdb, debugwin_xml); gmdb_debug_init(mdb, debugwin_xml);
if (data) { if (data) {
page = *((guint32 *)data); page = *((guint32 *)data);
sprintf(text,"%lu",page); sprintf(text,"%lu",(unsigned long)page);
gtk_entry_set_text(GTK_ENTRY(entry),text); gtk_entry_set_text(GTK_ENTRY(entry),text);
gmdb_debug_display_cb(w, debugwin_xml); gmdb_debug_display_cb(w, debugwin_xml);
} }
@ -1073,13 +1112,12 @@ gmdb_debug_set_dissect_cb(GtkWidget *w, GladeXML *xml)
} }
static void gmdb_debug_init(MdbHandle *mdb, GladeXML *xml) static void gmdb_debug_init(MdbHandle *mdb, GladeXML *xml)
{ {
struct stat st;
char tmpstr[100]; char tmpstr[100];
GtkWidget *pglabel, *entry; GtkWidget *pglabel, *entry;
guint *dissect; guint *dissect;
pglabel = glade_xml_get_widget (xml, "debug_num_label"); pglabel = glade_xml_get_widget (xml, "debug_num_label");
sprintf(tmpstr, "(0-%d):", gmdb_get_max_page(mdb)); sprintf(tmpstr, "(0-%d):", (int)gmdb_get_max_page(mdb));
gtk_label_set_text(GTK_LABEL(pglabel), tmpstr); gtk_label_set_text(GTK_LABEL(pglabel), tmpstr);
entry = glade_xml_get_widget (xml, "debug_entry"); entry = glade_xml_get_widget (xml, "debug_entry");
gtk_widget_grab_focus(GTK_WIDGET(entry)); gtk_widget_grab_focus(GTK_WIDGET(entry));

View File

@ -97,7 +97,6 @@
<property name="stock_item">GNOMEUIINFO_MENU_NEW_ITEM</property> <property name="stock_item">GNOMEUIINFO_MENU_NEW_ITEM</property>
<property name="label" translatable="yes">_Forward</property> <property name="label" translatable="yes">_Forward</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<signal name="activate" handler="on_menu_forward_activate" last_modification_time="Fri, 03 Jan 2003 15:27:51 GMT"/>
</widget> </widget>
</child> </child>
@ -186,6 +185,7 @@
<property name="tooltip" translatable="yes">New File</property> <property name="tooltip" translatable="yes">New File</property>
<property name="label">gtk-go-back</property> <property name="label">gtk-go-back</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="new_group">True</property>
</widget> </widget>
<packing> <packing>
<property name="new_group">True</property> <property name="new_group">True</property>
@ -215,6 +215,7 @@
<property name="tooltip" translatable="yes">Save File</property> <property name="tooltip" translatable="yes">Save File</property>
<property name="label">gtk-close</property> <property name="label">gtk-close</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="new_group">True</property>
</widget> </widget>
<packing> <packing>
<property name="new_group">True</property> <property name="new_group">True</property>