]> git.cameronkatri.com Git - mandoc.git/commitdiff
fix .Lk for -Tascii and implement it for -Tman
authorIngo Schwarze <schwarze@openbsd.org>
Sun, 8 Jul 2012 22:49:29 +0000 (22:49 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Sun, 8 Jul 2012 22:49:29 +0000 (22:49 +0000)
OpenBSD rev. 1.22 and 1.142, respectively

mdoc_man.c
mdoc_term.c

index 4e1cba576efd1a361f71b150148746402df10e1a..900c225ea4f52a93685052ee6fcb8efcd6d5e950 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_man.c,v 1.23 2012/07/08 18:39:47 schwarze Exp $ */
+/*     $Id: mdoc_man.c,v 1.24 2012/07/08 22:49:29 schwarze Exp $ */
 /*
  * Copyright (c) 2011, 2012 Ingo Schwarze <schwarze@openbsd.org>
  *
@@ -70,6 +70,7 @@ static        int       pre_fo(DECL_ARGS);
 static int       pre_ft(DECL_ARGS);
 static int       pre_in(DECL_ARGS);
 static int       pre_it(DECL_ARGS);
+static int       pre_lk(DECL_ARGS);
 static int       pre_nm(DECL_ARGS);
 static int       pre_ns(DECL_ARGS);
 static int       pre_pp(DECL_ARGS);
@@ -199,7 +200,7 @@ static      const struct manact manacts[MDOC_MAX + 1] = {
        { NULL, pre_ux, NULL, "currently under development.", NULL }, /* Ud */
        { NULL, NULL, post_lb, NULL, NULL }, /* Lb */
        { NULL, pre_pp, NULL, NULL, NULL }, /* Lp */
-       { NULL, NULL, NULL, NULL, NULL }, /* _Lk */
+       { NULL, pre_lk, NULL, NULL, NULL }, /* Lk */
        { NULL, NULL, NULL, NULL, NULL }, /* _Mt */
        { cond_body, pre_enc, post_enc, "{", "}" }, /* Brq */
        { cond_body, pre_enc, post_enc, "{", "}" }, /* Bro */
@@ -830,6 +831,34 @@ post_lb(DECL_ARGS)
                outflags |= MMAN_br;
 }
 
+static int
+pre_lk(DECL_ARGS)
+{
+       const struct mdoc_node *link, *descr;
+
+       if (NULL == (link = n->child))
+               return(0);
+
+       if (NULL != (descr = link->next)) {
+               print_word("\\fI");
+               outflags &= ~MMAN_spc;
+               while (NULL != descr) {
+                       print_word(descr->string);
+                       descr = descr->next;
+               }
+               print_word(":");
+               outflags &= ~MMAN_spc;
+               print_word("\\fP");
+       }
+
+       print_word("\\fB");
+       outflags &= ~MMAN_spc;
+       print_word(link->string);
+       outflags &= ~MMAN_spc;
+       print_word("\\fP");
+       return(0);
+}
+
 static int
 pre_nm(DECL_ARGS)
 {
index 459462aff7150151f2d55464264125967ce57953..cff1057106468edbe86eba1cc5dc123d20fc5091 100644 (file)
@@ -1,7 +1,7 @@
-/*     $Id: mdoc_term.c,v 1.239 2012/07/08 16:52:20 schwarze Exp $ */
+/*     $Id: mdoc_term.c,v 1.240 2012/07/08 22:49:29 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 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
@@ -2159,25 +2159,24 @@ termp_li_pre(DECL_ARGS)
 static int
 termp_lk_pre(DECL_ARGS)
 {
-       const struct mdoc_node *nn, *sv;
+       const struct mdoc_node *link, *descr;
 
-       term_fontpush(p, TERMFONT_UNDER);
-
-       nn = sv = n->child;
-
-       if (NULL == nn || NULL == nn->next)
-               return(1);
-
-       for (nn = nn->next; nn; nn = nn->next) 
-               term_word(p, nn->string);
-
-       term_fontpop(p);
+       if (NULL == (link = n->child))
+               return(0);
 
-       p->flags |= TERMP_NOSPACE;
-       term_word(p, ":");
+       if (NULL != (descr = link->next)) {
+               term_fontpush(p, TERMFONT_UNDER);
+               while (NULL != descr) {
+                       term_word(p, descr->string);
+                       descr = descr->next;
+               }
+               p->flags |= TERMP_NOSPACE;
+               term_word(p, ":");
+               term_fontpop(p);
+       }
 
        term_fontpush(p, TERMFONT_BOLD);
-       term_word(p, sv->string);
+       term_word(p, link->string);
        term_fontpop(p);
 
        return(0);