From 35e0f51672daaa679f965a95d109daaa4fece4ea Mon Sep 17 00:00:00 2001 From: Jan-Erik Rediger Date: Mon, 9 Jan 2023 21:51:21 +0100 Subject: [PATCH] Handle empty documents. Fixes #31 --- src/lib.rs | 2 +- tests/empty_document.in.md | 3 +++ tests/empty_document.out.md | 2 ++ tests/it.rs | 7 +++++++ 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 tests/empty_document.in.md create mode 100644 tests/empty_document.out.md diff --git a/src/lib.rs b/src/lib.rs index c4d11b1..958a2c9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -229,7 +229,7 @@ fn add_toc(content: &str, cfg: &Config) -> Result { log::trace!("content_after_toc={:?}", content_after_toc); // Multiline markers might have consumed trailing newlines, // we ensure there's always one before the content. - let extra = if content_after_toc.as_bytes()[0] == b'\n' { + let extra = if content_after_toc.is_empty() || content_after_toc.as_bytes()[0] == b'\n' { "" } else { "\n" diff --git a/tests/empty_document.in.md b/tests/empty_document.in.md new file mode 100644 index 0000000..b5041f2 --- /dev/null +++ b/tests/empty_document.in.md @@ -0,0 +1,3 @@ +# Chapter 1 + + diff --git a/tests/empty_document.out.md b/tests/empty_document.out.md new file mode 100644 index 0000000..6786da2 --- /dev/null +++ b/tests/empty_document.out.md @@ -0,0 +1,2 @@ +# Chapter 1 + diff --git a/tests/it.rs b/tests/it.rs index 474b2dc..7101ded 100644 --- a/tests/it.rs +++ b/tests/it.rs @@ -157,3 +157,10 @@ fn backslash_escapes() { // Backslash-escaped elements should still be escaped. assert_toc!("backslash_escapes"); } + +#[test] +fn empty_document() { + // Regression test #31 + // Empty documents should not fail + assert_toc!("empty_document"); +}