summaryrefslogtreecommitdiff
path: root/src/latex.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/latex.c')
-rw-r--r--src/latex.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/latex.c b/src/latex.c
index cd2f6f3..904a1b9 100644
--- a/src/latex.c
+++ b/src/latex.c
@@ -223,6 +223,7 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
cmark_list_type list_type;
const char *roman_numerals[] = {"", "i", "ii", "iii", "iv", "v",
"vi", "vii", "viii", "ix", "x"};
+ bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options);
// avoid warning about unused parameter:
(void)(options);
@@ -334,7 +335,7 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
break;
case CMARK_NODE_TEXT:
- OUT(cmark_node_get_literal(node), true, NORMAL);
+ OUT(cmark_node_get_literal(node), allow_wrap, NORMAL);
break;
case CMARK_NODE_LINEBREAK:
@@ -343,10 +344,13 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
break;
case CMARK_NODE_SOFTBREAK:
- if (renderer->width == 0) {
+ if (options & CMARK_OPT_HARDBREAKS) {
+ LIT("\\\\");
+ CR();
+ } else if (renderer->width == 0 && !(CMARK_OPT_NOBREAKS & options)) {
CR();
} else {
- OUT(" ", true, NORMAL);
+ OUT(" ", allow_wrap, NORMAL);
}
break;