]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_action.c
Fix in `Mt' mailto from a patch by Tim van der Molen.
[mandoc.git] / man_action.c
index d481f103bbfb1270550dbe401c5450dc732cb6c4..1edd6509f357c51c6f38dcdc4db35490216c9e61 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_action.c,v 1.26 2010/03/22 14:03:03 kristaps Exp $ */
+/*     $Id: man_action.c,v 1.30 2010/03/27 10:04:56 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -18,8 +18,6 @@
 #include "config.h"
 #endif
 
-#include <sys/utsname.h>
-
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
@@ -32,6 +30,7 @@ struct        actions {
 };
 
 static int       post_TH(struct man *);
+static int       post_de(struct man *);
 static int       post_fi(struct man *);
 static int       post_nf(struct man *);
 
@@ -68,6 +67,15 @@ const        struct actions man_actions[MAN_MAX] = {
        { NULL }, /* DT */
        { NULL }, /* UC */
        { NULL }, /* PD */
+       { NULL }, /* Sp */
+       { post_nf }, /* Vb */
+       { post_fi }, /* Ve */
+       { post_de }, /* de */
+       { post_de }, /* dei */
+       { post_de }, /* am */
+       { post_de }, /* ami */
+       { post_de }, /* ig */
+       { NULL }, /* . */
 };
 
 
@@ -106,6 +114,20 @@ post_fi(struct man *m)
 }
 
 
+static int
+post_de(struct man *m)
+{
+
+       /*
+        * XXX: for the time being, we indiscriminately remove roff
+        * instructions from the parse stream.
+        */
+       if (MAN_BLOCK == m->last->type)
+               man_node_delete(m, m->last);
+       return(1);
+}
+
+
 static int
 post_nf(struct man *m)
 {
@@ -178,8 +200,10 @@ post_TH(struct man *m)
        if (n && (n = n->next))
                m->meta.vol = mandoc_strdup(n->string);
 
-       n = m->last;
-       man_node_unlink(m, n);
-       man_node_freelist(n);
+       /*
+        * Remove the `TH' node after we've processed it for our
+        * meta-data.
+        */
+       man_node_delete(m, m->last);
        return(1);
 }