From b9c7a496ba7dd9c3495bae2ff2855899e47b245d Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 9 Aug 2017 10:54:29 -0700 Subject: --smart: open quote can never occur right after `]` or `)`. Closes #227. --- src/inlines.c | 3 ++- test/smart_punct.txt | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/inlines.c b/src/inlines.c index 6bf82e2..2d7f385 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -345,7 +345,8 @@ static int scan_delims(subject *subj, unsigned char c, bool *can_open, *can_close = right_flanking && (!left_flanking || cmark_utf8proc_is_punctuation(after_char)); } else if (c == '\'' || c == '"') { - *can_open = left_flanking && !right_flanking; + *can_open = left_flanking && !right_flanking && + before_char != ']' && before_char != ')'; *can_close = right_flanking; } else { *can_open = left_flanking; diff --git a/test/smart_punct.txt b/test/smart_punct.txt index 3522c94..fd55e62 100644 --- a/test/smart_punct.txt +++ b/test/smart_punct.txt @@ -78,6 +78,15 @@ left double quote, to facilitate this style:

“Second paragraph by same speaker, in fiction.”

```````````````````````````````` +A quote following a `]` or `)` character cannot +be an open quote: + +```````````````````````````````` example +[a]'s b' +. +

[a]’s b’

+```````````````````````````````` + Quotes that are escaped come out as literal straight quotes: -- cgit v1.2.3