=================================================================== RCS file: /cvs/mandoc/mdoc_markdown.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -p -r1.15 -r1.16 --- mandoc/mdoc_markdown.c 2017/03/11 12:35:45 1.15 +++ mandoc/mdoc_markdown.c 2017/04/17 12:53:29 1.16 @@ -1,4 +1,4 @@ -/* $Id: mdoc_markdown.c,v 1.15 2017/03/11 12:35:45 schwarze Exp $ */ +/* $Id: mdoc_markdown.c,v 1.16 2017/04/17 12:53:29 schwarze Exp $ */ /* * Copyright (c) 2017 Ingo Schwarze * @@ -1304,18 +1304,29 @@ md_pre_Lk(struct roff_node *n) if ((link = n->child) == NULL) return 0; - descr = link->next == NULL ? link : link->next; + /* Link text. */ + descr = link->next; + if (descr == NULL || descr->flags & NODE_DELIMC) + descr = link; /* no text */ md_rawword("["); outflags &= ~MD_spc; do { md_word(descr->string); - descr = link->next == NULL ? NULL : descr->next; - } while (descr != NULL); + descr = descr->next; + } while (descr != NULL && !(descr->flags & NODE_DELIMC)); outflags &= ~MD_spc; + + /* Link target. */ md_rawword("]("); md_uri(link->string); outflags &= ~MD_spc; md_rawword(")"); + + /* Trailing punctuation. */ + while (descr != NULL) { + md_word(descr->string); + descr = descr->next; + } return 0; }