From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 3f9a4d88 for ; Mon, 6 Mar 2017 09:58:43 -0500 (EST) Date: Mon, 6 Mar 2017 09:58:43 -0500 (EST) Message-Id: <17582693521364594518.enqueue@fantadrom.bsd.lv> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: URIs need different escaping; reported by reyk@ X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- URIs need different escaping; reported by reyk@ Modified Files: -------------- mdocml: mdoc_markdown.c mdocml/regress/mdoc/Rs: allch.out_markdown Revision Data ------------- Index: mdoc_markdown.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/mdoc_markdown.c,v retrieving revision 1.2 retrieving revision 1.3 diff -Lmdoc_markdown.c -Lmdoc_markdown.c -u -p -r1.2 -r1.3 --- mdoc_markdown.c +++ mdoc_markdown.c @@ -220,7 +220,7 @@ static const struct md_act md_acts[MDOC_ { 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, 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,6 +1235,7 @@ static int 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,8 +1252,16 @@ md_pre_Lk(struct roff_node *n) } else md_rawword("<"); - outflags &= ~MD_spc; - md_word(link->string); + 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; Index: allch.out_markdown =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/mdoc/Rs/allch.out_markdown,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/mdoc/Rs/allch.out_markdown -Lregress/mdoc/Rs/allch.out_markdown -u -p -r1.1 -r1.2 --- regress/mdoc/Rs/allch.out_markdown +++ regress/mdoc/Rs/allch.out_markdown @@ -18,7 +18,7 @@ author name, report name, number of journal, volume number, -uniform resource locator, +, page number, institutional author, city name, @@ -40,7 +40,7 @@ author name, report name, number of journal, volume number, -uniform resource locator, +, page number, institutional author, city name, -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv