From 94a7b203864d380bd3c12a20157df609738e9de9 Mon Sep 17 00:00:00 2001 From: Shaisolaris <66793913+Shaisolaris@users.noreply.github.com> Date: Tue, 13 Oct 2026 00:15:35 +0000 Subject: [PATCH] Keep partially consumed tab when an HTML block starts or continues in a block quote --- .../main/java/org/commonmark/internal/DocumentParser.java | 4 ++++ .../test/java/org/commonmark/test/SpecialInputTest.java | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/commonmark/src/main/java/org/commonmark/internal/DocumentParser.java b/commonmark/src/main/java/org/commonmark/internal/DocumentParser.java index 607a68bb..62b392b8 100644 --- a/commonmark/src/main/java/org/commonmark/internal/DocumentParser.java +++ b/commonmark/src/main/java/org/commonmark/internal/DocumentParser.java @@ -391,6 +391,10 @@ private void findNextNonSpace() { } private void setNewIndex(int newIndex) { + if (newIndex == index) { + // Staying where we are, so keep a partially consumed tab (e.g. after ">\t") as it is + return; + } if (newIndex >= nextNonSpace) { // We can start from here, no need to calculate tab stops again index = nextNonSpace; diff --git a/commonmark/src/test/java/org/commonmark/test/SpecialInputTest.java b/commonmark/src/test/java/org/commonmark/test/SpecialInputTest.java index 007b5765..43b7686c 100644 --- a/commonmark/src/test/java/org/commonmark/test/SpecialInputTest.java +++ b/commonmark/src/test/java/org/commonmark/test/SpecialInputTest.java @@ -463,4 +463,12 @@ public void codeSpansAfterUnclosedBackticks() { assertRendering( "`` `a` `c` `e`", "
`` a c e
\n\n\n"); + assertRendering(">\n>\tfoo", "\n\n foo\n\n"); + } }