about summary refs log tree commit diff stats
path: root/src/structdump.h
diff options
context:
space:
mode:
authorThomas E. Dickey <dickey@invisible-island.net>2011-06-11 13:06:08 -0400
committerThomas E. Dickey <dickey@invisible-island.net>2011-06-11 13:06:08 -0400
commitf06f1fc3d95167ec780cb0963548f2afdd548b20 (patch)
tree6c12f0dea0a3c860994a46c37d7f32336d39d7db /src/structdump.h
parent279010bc0791556e63b4951d83a2c45252142b80 (diff)
downloadlynx-snapshots-f06f1fc3d95167ec780cb0963548f2afdd548b20.tar.gz
snapshot of project "lynx", label v2-8-8dev_8m
Diffstat (limited to 'src/structdump.h')
-rw-r--r--src/structdump.h158
1 files changed, 158 insertions, 0 deletions
diff --git a/src/structdump.h b/src/structdump.h
new file mode 100644
index 00000000..a084486b
--- /dev/null
+++ b/src/structdump.h
@@ -0,0 +1,158 @@
+/*
+ *
+ * Some macros to dump out formatted struct's via the trace file.  -KED
+ *
+ */
+#ifndef STRUCTDUMP_H
+#define STRUCTDUMP_H
+
+/* usage: DUMPSTRUCT_LINK(link_ptr, "message"); */
+#define   DUMPSTRUCT_LINK(L,X) \
+if ((L)) { \
+CTRACE((tfp, "\n" \
+            "KED:     link_ptr=%p  sizeof=%d  ["X"]\n" \
+            "link       struct {\n"      \
+            "           *lname=%p\n"     \
+            "            lname=|%s|\n"   \
+            "          *target=%p\n"     \
+            "           target=|%s|\n"   \
+            "        *hightext=%p\n"     \
+            "         hightext=|%s|\n"   \
+            "       *hightext2=%p\n"     \
+            "        hightext2=|%s|\n"   \
+            " hightext2_offset=%d\n"     \
+            "      inUnderline=%1x\n"    \
+            "               lx=%d\n"     \
+            "               ly=%d\n"     \
+            "             type=%d\n"     \
+            "    anchor_number=%d\n"     \
+            "  anchor_line_num=%d\n"     \
+            "            *form=%p\n"     \
+            "}\n", \
+            (L), sizeof(*((L))), \
+            (L)->lname, (L)->lname, (L)->target, (L)->target, \
+            (L)->l_hightext, (L)->l_hightext, \
+	    (L)->l_hightext2, (L)->l_hightext2, \
+            (L)->l_hightext2_offset, \
+	    (L)->inUnderline, (L)->lx, (L)->ly, \
+            (L)->type, (L)->anchor_number, (L)->anchor_line_num, (L)->form)); \
+}else{ \
+CTRACE((tfp, "\n" \
+            "KED:     link_ptr=0x00000000  (NULL)     ["X"]\n")); \
+} \
+CTRACE_FLUSH(tfp);
+
+/* usage: DUMPSTRUCT_ANCHOR(anchor_ptr, "message"); */
+#define   DUMPSTRUCT_ANCHOR(A,X) \
+if ((A)) { \
+CTRACE((tfp, "\n" \
+            "KED:   anchor_ptr=%p  sizeof=%d  ["X"]\n" \
+            "TextAnchor struct {\n"      \
+            "            *next=%p\n"     \
+            "           number=%d\n"     \
+            "         line_pos=%d\n"     \
+            "           extent=%d\n"     \
+            "         line_num=%d\n"     \
+            "        *hightext=%p\n"     \
+            "         hightext=|%s|\n"   \
+            "       *hightext2=%p\n"     \
+            "        hightext2=|%s|\n"   \
+            "  hightext2offset=%d\n"     \
+            "        link_type=%d\n"     \
+            "     *input_field=%p\n"     \
+            "      input_field=|%s|\n"   \
+            "      show_anchor=%1x\n"    \
+            "      inUnderline=%1x\n"    \
+            "   expansion_anch=%1x\n"    \
+            "          *anchor=%p\n"     \
+            "}\n", \
+            (A), sizeof(*((A))), \
+            (A)->next, (A)->number, (A)->line_pos, \
+            (A)->extent, (A)->line_num, \
+            (A)->hightext, (A)->hightext, (A)->hightext2, (A)->hightext2, \
+            (A)->hightext2offset, (A)->link_type, \
+            (A)->input_field, (A)->input_field->name, (A)->show_anchor, \
+            (A)->inUnderline, (A)->expansion_anch, (A)->anchor)); \
+}else{ \
+CTRACE((tfp, "\n" \
+            "KED:   anchor_ptr=0x00000000  (NULL)     ["X"]\n")); \
+} \
+CTRACE_FLUSH(tfp);
+
+/* usage: DUMPSTRUCT_FORM(forminfo_ptr, "message"); */
+#define   DUMPSTRUCT_FORMINFO(F,X) \
+if ((F)) { \
+CTRACE((tfp, "\n" \
+            "KED: forminfo_ptr=%p  sizeof=%d  ["X"]\n" \
+            "FormInfo   struct {\n"      \
+            "            *name=%p\n"     \
+            "             name=|%s|\n"   \
+            "           number=%d\n"     \
+            "             type=%d\n"     \
+            "           *value=%p\n"     \
+            "            value=|%s|\n"   \
+            "      *orig_value=%p\n"     \
+            "       orig_value=|%s|\n"   \
+            "             size=%d\n"     \
+            "        maxlength=%d\n"     \
+            "            group=%d\n"     \
+            "        num_value=%d\n"     \
+            "           hrange=%d\n"     \
+            "           lrange=%d\n"     \
+            "     *select_list=%p\n"     \
+            "    submit_action=|%s|\n"   \
+            "    submit_method=%d\n"     \
+            "   submit_enctype=|%s|\n"   \
+            "     submit_title=|%s|\n"   \
+            "         no_cache=%1x\n"    \
+            "  cp_submit_value=|%s|\n"   \
+            "orig_submit_value=|%s|\n"   \
+            "           size_l=%d\n"     \
+            "         disabled=%d\n"     \
+            "         readonly=%d\n"     \
+            "          name_cs=%d\n"     \
+            "         value_cs=%d\n"     \
+            "        accept_cs=|%s|\n"   \
+            "}\n", \
+            (F), sizeof(*((F))), \
+            (F)->name, (F)->name, (F)->number, (F)->type, \
+            (F)->value, (F)->value, (F)->orig_value, (F)->orig_value, \
+            (F)->size, (F)->maxlength, (F)->group, (F)->num_value, \
+            (F)->hrange, (F)->lrange, (F)->select_list, (F)->submit_action, \
+            (F)->submit_method, (F)->submit_enctype, (F)->submit_title, \
+            (F)->no_cache, (F)->cp_submit_value, (F)->orig_submit_value, \
+            (F)->size_l, (F)->disabled, (F)->readonly, (F)->name_cs, (F)->value_cs, \
+            (F)->accept_cs)); \
+} else { \
+CTRACE((tfp, "\n" \
+            "KED: forminfo_ptr=0x00000000  (NULL)     ["X"]\n")); \
+} \
+CTRACE_FLUSH(tfp);
+
+/* usage: DUMPSTRUCT_LINE(htline_ptr, "message"); */
+#define   DUMPSTRUCT_LINE(L,X) \
+if ((L)) { \
+CTRACE((tfp, "\n" \
+            "KED: htline_ptr=%p  sizeof=%d  ["X"]\n" \
+            "HTLine  struct {\n"      \
+            "         *next=%p\n"     \
+            "         *prev=%p\n"     \
+            "        offset=%d\n"     \
+            "          size=%d\n"     \
+            "   split_after=%1x\n"    \
+            "        bullet=%1x\n"    \
+            "expansion_line=%1x\n"    \
+            "w/o U_C_S def\n"         \
+            "        data[]=%p\n"     \
+            "          data=|%s|\n"   \
+            "}\n", \
+            (L), sizeof(*((L))), \
+            (L)->next, (L)->prev, (L)->offset, (L)->size, (L)->split_after, \
+            (L)->bullet, (L)->expansion_line, (L)->data, (L)->data)); \
+}else{ \
+CTRACE((tfp, "\n" \
+            "KED: htline_ptr=0x00000000  (NULL)     ["X"]\n")); \
+} \
+CTRACE_FLUSH(tfp);
+
+#endif /* STRUCTDUMP_H */