summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-08-09 10:54:29 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2017-08-09 10:54:29 -0700
commitb9c7a496ba7dd9c3495bae2ff2855899e47b245d (patch)
tree1531288a341e21c84ad38f4f2b681c711a590ad9
parent61b51fa7c8ec635eee19a16c6aa38c39093a0572 (diff)
--smart: open quote can never occur right after `]` or `)`.
Closes #227.
-rw-r--r--src/inlines.c3
-rw-r--r--test/smart_punct.txt9
2 files changed, 11 insertions, 1 deletions
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:
<p>“Second paragraph by same speaker, in fiction.”</p>
````````````````````````````````
+A quote following a `]` or `)` character cannot
+be an open quote:
+
+```````````````````````````````` example
+[a]'s b'
+.
+<p>[a]’s b’</p>
+````````````````````````````````
+
Quotes that are escaped come out as literal straight
quotes: