From 8e4a732efec2e7797a2e5527c27d265cd008f409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Barr=C3=A9?= Date: Mon, 26 Sep 2022 21:55:28 -0400 Subject: [PATCH] Fix ANE when parsing empty documents with trackTrivia enabled --- src/Markdig.Tests/TestParser.cs | 10 ++++++++++ src/Markdig/Parsers/MarkdownParser.cs | 6 +++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Markdig.Tests/TestParser.cs b/src/Markdig.Tests/TestParser.cs index 70e44a78..3d509c59 100644 --- a/src/Markdig.Tests/TestParser.cs +++ b/src/Markdig.Tests/TestParser.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; using Markdig.Extensions.JiraLinks; +using Markdig.Renderers.Roundtrip; using Markdig.Syntax; using NUnit.Framework; @@ -67,6 +68,15 @@ namespace Markdig.Tests TestDescendantsOrder.TestSchemas(specsSyntaxTrees); } + [Test] + public void ParseEmptyDocumentWithTrackTriviaEnabled() + { + var document = Markdown.Parse("", trackTrivia: true); + using var sw = new StringWriter(); + new RoundtripRenderer(sw).Render(document); + Assert.AreEqual("", sw.ToString()); + } + public static void TestSpec(string inputText, string expectedOutputText, string extensions = null, bool plainText = false, string context = null) { context ??= string.Empty; diff --git a/src/Markdig/Parsers/MarkdownParser.cs b/src/Markdig/Parsers/MarkdownParser.cs index b1255c95..d81e25e5 100644 --- a/src/Markdig/Parsers/MarkdownParser.cs +++ b/src/Markdig/Parsers/MarkdownParser.cs @@ -65,7 +65,11 @@ namespace Markdig.Parsers var noBlocksFoundBlock = new EmptyBlock(null); List linesBefore = blockProcessor.UseLinesBefore(); noBlocksFoundBlock.LinesAfter = new List(); - noBlocksFoundBlock.LinesAfter.AddRange(linesBefore); + if (linesBefore != null) + { + noBlocksFoundBlock.LinesAfter.AddRange(linesBefore); + } + document.Add(noBlocksFoundBlock); } else if (lastBlock != null && blockProcessor.LinesBefore != null)