Skip to content

Commit 4422dd3

Browse files
committed
Don't append a newline character when rendering inline nodes.
1 parent 587a12b commit 4422dd3

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

api_test/main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ static void render_commonmark(test_batch_runner *runner) {
689689
cmark_node *text = cmark_node_new(CMARK_NODE_TEXT);
690690
cmark_node_set_literal(text, "Hi");
691691
commonmark = cmark_render_commonmark(text, CMARK_OPT_DEFAULT, 0);
692-
STR_EQ(runner, commonmark, "Hi\n", "render single inline node");
692+
STR_EQ(runner, commonmark, "Hi", "render single inline node");
693693
free(commonmark);
694694

695695
cmark_node_free(text);
@@ -733,7 +733,7 @@ static void render_plaintext(test_batch_runner *runner) {
733733
cmark_node *text = cmark_node_new(CMARK_NODE_TEXT);
734734
cmark_node_set_literal(text, "Hi");
735735
plaintext = cmark_render_plaintext(text, CMARK_OPT_DEFAULT, 0);
736-
STR_EQ(runner, plaintext, "Hi\n", "render single inline node");
736+
STR_EQ(runner, plaintext, "Hi", "render single inline node");
737737
free(plaintext);
738738

739739
cmark_node_free(text);

src/render.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,11 @@ char *cmark_render(cmark_mem *mem, cmark_node *root, int options, int width,
198198
}
199199
}
200200

201-
// ensure final newline
202-
if (renderer.buffer->size == 0 || renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {
203-
cmark_strbuf_putc(renderer.buffer, '\n');
201+
// If the root node is a block type (i.e. not inline), ensure there's a final newline:
202+
if (CMARK_NODE_TYPE_BLOCK_P(root->type)) {
203+
if (renderer.buffer->size == 0 || renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {
204+
cmark_strbuf_putc(renderer.buffer, '\n');
205+
}
204206
}
205207

206208
result = (char *)cmark_strbuf_detach(renderer.buffer);

0 commit comments

Comments
 (0)