]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_html.c
duplicate word, found by igor(1)
[mandoc.git] / man_html.c
index 87c6372be68eda401e506846cf1450ac94f54e3c..a304b3e4d240bf67a2902f3cab892e73f7d0c000 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_html.c,v 1.142 2017/05/09 14:10:01 schwarze Exp $ */
+/*     $Id: man_html.c,v 1.145 2017/06/25 11:42:02 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
 /*
  * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -26,6 +26,7 @@
 #include <string.h>
 
 #include "mandoc_aux.h"
 #include <string.h>
 
 #include "mandoc_aux.h"
+#include "mandoc.h"
 #include "roff.h"
 #include "man.h"
 #include "out.h"
 #include "roff.h"
 #include "man.h"
 #include "out.h"
@@ -105,6 +106,8 @@ static      const struct htmlman __mans[MAN_MAX - MAN_TH] = {
        { NULL, NULL }, /* EE */
        { man_UR_pre, NULL }, /* UR */
        { NULL, NULL }, /* UE */
        { NULL, NULL }, /* EE */
        { man_UR_pre, NULL }, /* UR */
        { NULL, NULL }, /* UE */
+       { man_UR_pre, NULL }, /* MT */
+       { NULL, NULL }, /* ME */
 };
 static const struct htmlman *const mans = __mans - MAN_TH;
 
 };
 static const struct htmlman *const mans = __mans - MAN_TH;
 
@@ -229,6 +232,7 @@ print_man_node(MAN_ARGS)
                case MAN_P:   /* reopen .nf in the body.        */
                case MAN_RS:
                case MAN_UR:
                case MAN_P:   /* reopen .nf in the body.        */
                case MAN_RS:
                case MAN_UR:
+               case MAN_MT:
                        fillmode(h, MAN_fi);
                        break;
                default:
                        fillmode(h, MAN_fi);
                        break;
                default:
@@ -358,13 +362,9 @@ fillmode(struct html *h, int want)
 static int
 a2width(const struct roff_node *n, struct roffsu *su)
 {
 static int
 a2width(const struct roff_node *n, struct roffsu *su)
 {
-
        if (n->type != ROFFT_TEXT)
                return 0;
        if (n->type != ROFFT_TEXT)
                return 0;
-       if (a2roffsu(n->string, su, SCALE_EN))
-               return 1;
-
-       return 0;
+       return a2roffsu(n->string, su, SCALE_EN) != NULL;
 }
 
 static void
 }
 
 static void
@@ -647,11 +647,17 @@ man_RS_pre(MAN_ARGS)
 static int
 man_UR_pre(MAN_ARGS)
 {
 static int
 man_UR_pre(MAN_ARGS)
 {
+       char *cp;
        n = n->child;
        assert(n->type == ROFFT_HEAD);
        if (n->child != NULL) {
                assert(n->child->type == ROFFT_TEXT);
        n = n->child;
        assert(n->type == ROFFT_HEAD);
        if (n->child != NULL) {
                assert(n->child->type == ROFFT_TEXT);
-               print_otag(h, TAG_A, "cTh", "Lk", n->child->string);
+               if (n->tok == MAN_MT) {
+                       mandoc_asprintf(&cp, "mailto:%s", n->child->string);
+                       print_otag(h, TAG_A, "cTh", "Mt", cp);
+                       free(cp);
+               } else
+                       print_otag(h, TAG_A, "cTh", "Lk", n->child->string);
        }
 
        assert(n->next->type == ROFFT_BODY);
        }
 
        assert(n->next->type == ROFFT_BODY);