diff options
Diffstat (limited to 'src/latex.c')
| -rw-r--r-- | src/latex.c | 10 | 
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; | 
