libmdoc accepts whitespace following control character.
[mandoc.git] / mdoc_term.c
index e805bce51f9be9e2a729dcb810dc99e340d6c4d8..52d770b8e147d386241bb3bcf327089347ccc12a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.63 2009/07/25 16:03:03 kristaps Exp $ */
+/*     $Id: mdoc_term.c,v 1.66 2009/08/10 10:09:51 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -26,6 +26,9 @@
 #include "term.h"
 #include "mdoc.h"
 
+#define        INDENT            5
+#define        HALFINDENT        3
+
 /* FIXME: macro arguments can be escaped. */
 
 #define        TTYPE_PROG        0
@@ -1398,10 +1401,18 @@ termp_fd_post(DECL_ARGS)
 static int
 termp_sh_pre(DECL_ARGS)
 {
-
+       /* 
+        * XXX: undocumented: using two `Sh' macros in sequence has no
+        * vspace between calls, only a newline.
+        */
        switch (node->type) {
-       case (MDOC_HEAD):
+       case (MDOC_BLOCK):
+               if (node->prev && MDOC_Sh == node->prev->tok)
+                       if (NULL == node->prev->body->child)
+                               break;
                term_vspace(p);
+               break;
+       case (MDOC_HEAD):
                pair->flag |= ttypes[TTYPE_SECTION];
                break;
        case (MDOC_BODY):