=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_markdown.c,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** src/usr.bin/mandoc/mdoc_markdown.c 2017/03/04 21:41:13 1.2 --- src/usr.bin/mandoc/mdoc_markdown.c 2017/03/06 14:57:44 1.3 *************** *** 1,4 **** ! /* $OpenBSD: mdoc_markdown.c,v 1.2 2017/03/04 21:41:13 schwarze Exp $ */ /* * Copyright (c) 2017 Ingo Schwarze * --- 1,4 ---- ! /* $OpenBSD: mdoc_markdown.c,v 1.3 2017/03/06 14:57:44 schwarze Exp $ */ /* * Copyright (c) 2017 Ingo Schwarze * *************** *** 220,226 **** { NULL, NULL, md_post_pc, NULL, NULL }, /* %Q */ { NULL, md_pre_br, NULL, NULL, NULL }, /* br */ { NULL, md_pre_Pp, NULL, NULL, NULL }, /* sp */ ! { NULL, NULL, md_post_pc, NULL, NULL }, /* %U */ { NULL, NULL, NULL, NULL, NULL }, /* Ta */ { NULL, NULL, NULL, NULL, NULL }, /* ll */ { NULL, NULL, NULL, NULL, NULL }, /* ROOT */ --- 220,226 ---- { NULL, NULL, md_post_pc, NULL, NULL }, /* %Q */ { NULL, md_pre_br, NULL, NULL, NULL }, /* br */ { NULL, md_pre_Pp, NULL, NULL, NULL }, /* sp */ ! { NULL, md_pre_Lk, md_post_pc, NULL, NULL }, /* %U */ { NULL, NULL, NULL, NULL, NULL }, /* Ta */ { NULL, NULL, NULL, NULL, NULL }, /* ll */ { NULL, NULL, NULL, NULL, NULL }, /* ROOT */ *************** *** 1235,1240 **** --- 1235,1241 ---- md_pre_Lk(struct roff_node *n) { const struct roff_node *link, *descr; + const unsigned char *s; if ((link = n->child) == NULL) return 0; *************** *** 1251,1258 **** } else md_rawword("<"); ! outflags &= ~MD_spc; ! md_word(link->string); outflags &= ~MD_spc; md_rawword(link->next == NULL ? ">" : ")"); return 0; --- 1252,1267 ---- } else md_rawword("<"); ! for (s = link->string; *s != '\0'; s++) { ! if (strchr("%)<>", *s) != NULL) { ! printf("%%%2.2hhX", *s); ! outcount += 3; ! } else { ! putchar(*s); ! outcount++; ! } ! } ! outflags &= ~MD_spc; md_rawword(link->next == NULL ? ">" : ")"); return 0;