move debug function to parser.c
[smdp.git] / parser.c
index fddd8d8..254c084 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -232,6 +232,49 @@ int markdown_analyse(cstring_t *text) {
     return bits;
 }
 
+void markdown_debug(document_t *doc, int debug) {
+
+    // print header to STDERR
+    int offset;
+    line_t *header;
+    if(doc->header) {
+        header = doc->header;
+        while(header &&
+            header->length > 0 &&
+            header->text->text[0] == '%') {
+
+            offset = next_blank(header->text, 0) + 1;
+            fprintf(stderr, "header: %s\n", &header->text->text[offset]);
+            header = header->next;
+        }
+    }
+
+    // print page/line count to STDERR
+    int cp = 0, cl = 0;
+    page_t *page = doc->page;
+    line_t *line;
+    while(page) {
+        cp++;
+        if(debug > 1) {
+            fprintf(stderr, "page %i:\n", cp);
+        }
+        line = page->line;
+        cl = 0;
+        while(line) {
+            cl++;
+            if(debug > 1) {
+                fprintf(stderr, "  line %i: bits = %i, length = %i\n", cl, line->bits, line->length);
+            }
+            line = line->next;
+        }
+        if(debug == 1) {
+            fprintf(stderr, "page %i: %i lines\n", cp, cl);
+        }
+        page = page->next;
+    }
+}
+
+
 int is_utf8(char ch) {
     return (ch & 0x80);
 }