From 3c0b582b52021a6abea644f056a4da4301e2bc30 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 16 Feb 2015 06:44:10 -0800 Subject: Properly handle " with no matching close quote with --smart. This occurs in fiction: when a speaker has dialogue with multiple paragraphs, a close quote is used only on the final one. Added test cases. --- src/inlines.c | 2 +- test/smart_punct.txt | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/inlines.c b/src/inlines.c index a5af1a5..3b2edbb 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -368,7 +368,7 @@ static cmark_node* handle_delim(subject* subj, unsigned char c, bool smart) if (c == '\'' && smart) { contents = cmark_chunk_literal("’"); } else if (c == '"' && smart) { - contents = cmark_chunk_literal("”"); + contents = cmark_chunk_literal(can_close ? "”" : "“"); } else { contents = cmark_chunk_dup(&subj->input, subj->pos - numdelims, numdelims); } diff --git a/test/smart_punct.txt b/test/smart_punct.txt index 5deccde..66b6fd2 100644 --- a/test/smart_punct.txt +++ b/test/smart_punct.txt @@ -40,6 +40,21 @@ Here is some quoted '`code`' and a "[quoted link](url)".

Here is some quoted ‘code’ and a “quoted link”.

. +. +'tis the season to be 'jolly' +. +

’tis the season to be ‘jolly’

+. + +. +"A paragraph with no closing quote. + +"Second paragraph by same speaker, in fiction." +. +

“A paragraph with no closing quote.

+

“Second paragraph by same speaker, in fiction.”

+. + . Some dashes: one---two --- three---four --- five. -- cgit v1.2.3