version bump
[smdp.git] / src / markdown.c
index 2db9d68..c03d307 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * An implementation of markdown objects.
- * Copyright (C) 2014 Michael Goehler
+ * Copyright (C) 2018 Michael Goehler
  *
  * This file is part of mdp.
  *
@@ -43,7 +43,7 @@ slide_t *new_slide() {
     slide_t *x = malloc(sizeof(slide_t));
     x->line = NULL;
     x->prev = x->next = NULL;
-    x->lines = 0;
+    x->lines = x->stop = 0;
     return x;
 }
 
@@ -62,26 +62,27 @@ deck_t *new_deck() {
     return x;
 }
 
-void free_line(line_t *l) {
-    line_t *n;
-    while (l) {
-        n = l->next;
-        cstring_delete(l->text);
-        free(l);
-        l = n;
+void free_line(line_t *line) {
+    line_t *next;
+    while (line) {
+        next = line->next;
+        if(line->text)
+            (line->text->delete)(line->text);
+        free(line);
+        line = next;
     }
 }
 
 void free_deck(deck_t *deck) {
-    slide_t *s, *t;
+    slide_t *slide, *next;
     if (deck == NULL)
         return;
-    s = deck->slide;
-    while (s) {
-        free_line(s->line);
-        t = s->next;
-        free(s);
-        s = t;
+    slide = deck->slide;
+    while (slide) {
+        free_line(slide->line);
+        next = slide->next;
+        free(slide);
+        slide = next;
     }
     free_line(deck->header);
     free(deck);