]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_term.c
For .Do/.Dq, use the documented and portable \(lq and \(rq
[mandoc.git] / man_term.c
index 781244d16c0ee5d8566e5f3d5630030ce0ac1d0c..8946a05067a7df470a6ee165630073dfe19a29c6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_term.c,v 1.206 2017/06/17 01:27:05 schwarze Exp $ */
+/*     $Id: man_term.c,v 1.209 2017/07/31 15:19:06 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -128,6 +128,8 @@ static      const struct termact __termacts[MAN_MAX - MAN_TH] = {
        { pre_literal, NULL, 0 }, /* EE */
        { pre_UR, post_UR, 0 }, /* UR */
        { NULL, NULL, 0 }, /* UE */
+       { pre_UR, post_UR, 0 }, /* MT */
+       { NULL, NULL, 0 }, /* ME */
 };
 static const struct termact *termacts = __termacts - MAN_TH;
 
@@ -671,7 +673,7 @@ pre_SS(DECL_ARGS)
 
                do {
                        n = n->prev;
-               } while (n != NULL && n->tok != TOKEN_NONE &&
+               } while (n != NULL && n->tok >= MAN_TH &&
                    termacts[n->tok].flags & MAN_NOTEXT);
                if (n == NULL || (n->tok == MAN_SS && n->body->child == NULL))
                        break;
@@ -733,7 +735,7 @@ pre_SH(DECL_ARGS)
 
                do {
                        n = n->prev;
-               } while (n != NULL && n->tok != TOKEN_NONE &&
+               } while (n != NULL && n->tok >= MAN_TH &&
                    termacts[n->tok].flags & MAN_NOTEXT);
                if (n == NULL || (n->tok == MAN_SH && n->body->child == NULL))
                        break;
@@ -872,7 +874,10 @@ print_man_node(DECL_ARGS)
                 * before printing the line's data.
                 */
                if (*n->string == '\0') {
-                       term_vspace(p);
+                       if (p->flags & TERMP_NONEWLINE)
+                               term_newln(p);
+                       else
+                               term_vspace(p);
                        return;
                } else if (*n->string == ' ' && n->flags & NODE_LINE &&
                    (p->flags & TERMP_NONEWLINE) == 0)