summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-12-19 09:44:48 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-12-19 09:44:48 -0800
commit8a71de7d058592b05c7f74424d2a2efbeab8ddc2 (patch)
tree01618bab0ec2162b5d480893a9eab10f7a7d0362
parent68c3a91166347a32a57fb81223750a63cfd92105 (diff)
Improve rendering of commonmark code spans with spaces.
Closes #316.
-rw-r--r--src/commonmark.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/commonmark.c b/src/commonmark.c
index 404c290..3440a91 100644
--- a/src/commonmark.c
+++ b/src/commonmark.c
@@ -182,6 +182,7 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
char *emph_delim;
bool first_in_list_item;
bufsize_t marker_width;
+ bool has_nonspace;
bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options) &&
!(CMARK_OPT_HARDBREAKS & options);
@@ -371,9 +372,16 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
code = cmark_node_get_literal(node);
code_len = strlen(code);
numticks = shortest_unused_backtick_sequence(code);
+ has_nonspace = false;
+ for (i=0; i < code_len; i++) {
+ if (code[i] != ' ') {
+ has_nonspace = true;
+ break;
+ }
+ }
extra_spaces = code_len == 0 ||
code[0] == '`' || code[code_len - 1] == '`' ||
- code[0] == ' ' || code[code_len - 1] == ' ';
+ (has_nonspace && code[0] == ' ' && code[code_len - 1] == ' ');
for (i = 0; i < numticks; i++) {
LIT("`");
}