]> git.cameronkatri.com Git - mandoc.git/commitdiff
Let a trailing .Ns macro take effect
authorIngo Schwarze <schwarze@openbsd.org>
Wed, 18 Jul 2012 16:20:43 +0000 (16:20 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Wed, 18 Jul 2012 16:20:43 +0000 (16:20 +0000)
even on an input line containing a partial implicit macro.

Fixes horizontal spacing in vi(1), ddb(4), and ppp(8).

OpenBSD rev. 1.74.

TODO
mdoc_macro.c

diff --git a/TODO b/TODO
index b28a40e4286f18fb3d2d7a79002b5ce117040119..d3c9921fdcbff28c0024d65864c036abb3dc522c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,6 @@
 ************************************************************************
 * Official mandoc TODO.
-* $Id: TODO,v 1.139 2012/07/18 11:11:12 schwarze Exp $
+* $Id: TODO,v 1.140 2012/07/18 16:20:43 schwarze Exp $
 ************************************************************************
 
 ************************************************************************
   Also, we don't want to break the line within the argument of:
   .Fa "chtype tl"
 
-- .Ns should work when called at the end of an input line, see
-  the following code in vi(1):
-    .It Xo
-    .Op Ar line
-    .Cm a Ns Op Cm ppend Ns
-    .Op Cm !\&
-    .Xc
-    The input text is appended after the specified line.
-
 - Header lines of excessive length:
   Port OpenBSD man_term.c rev. 1.25 to mdoc_term.c
   and document it in mdoc(7) and man(7) COMPATIBILITY
index 0e7c9bdbcc0ad300a9712647088cd9d86558543b..eb7c78aa033fb2f63cfa802a6a5c538ba59c565b 100644 (file)
@@ -1,7 +1,7 @@
-/*     $Id: mdoc_macro.c,v 1.116 2012/05/27 17:39:28 schwarze Exp $ */
+/*     $Id: mdoc_macro.c,v 1.117 2012/07/18 16:20:43 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010, 2012 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -1359,6 +1359,13 @@ blk_part_imp(MACRO_PROT_ARGS)
        if (n && ! rew_sub(MDOC_BLOCK, m, tok, line, ppos))
                return(0);
 
+       /* Move trailing .Ns out of scope. */
+
+       for (n = body->child; n && n->next; n = n->next)
+               /* Do nothing. */ ;
+       if (n && MDOC_Ns == n->tok)
+               mdoc_node_relink(m, n);
+
        return(1);
 }