diff --git a/flexmark-util-sequence/src/main/java/com/vladsch/flexmark/util/sequence/Escaping.java b/flexmark-util-sequence/src/main/java/com/vladsch/flexmark/util/sequence/Escaping.java index 86daa3f82..5b4c4562d 100644 --- a/flexmark-util-sequence/src/main/java/com/vladsch/flexmark/util/sequence/Escaping.java +++ b/flexmark-util-sequence/src/main/java/com/vladsch/flexmark/util/sequence/Escaping.java @@ -663,12 +663,12 @@ private static String replaceAll(@NotNull Pattern p, @NotNull CharSequence s, @N } @NotNull - private static BasedSequence replaceAll(Pattern p, @NotNull BasedSequence s, @NotNull Replacer replacer, @NotNull ReplacedTextMapper textMapper) { + private static BasedSequence replaceAll(@NotNull Pattern p, @NotNull BasedSequence s, @NotNull Replacer replacer, @NotNull ReplacedTextMapper textMapper) { return replaceAll(p, s, 0, s.length(), replacer, textMapper); } @NotNull - private static BasedSequence replaceAll(Pattern p, @NotNull BasedSequence s, int startOffset, int endOffset, @NotNull Replacer replacer, @NotNull ReplacedTextMapper textMapper) { + private static BasedSequence replaceAll(@NotNull Pattern p, @NotNull BasedSequence s, int startOffset, int endOffset, @NotNull Replacer replacer, @NotNull ReplacedTextMapper textMapper) { Matcher matcher = p.matcher(s); matcher.region(startOffset, endOffset); matcher.useTransparentBounds(false); @@ -697,7 +697,7 @@ private static BasedSequence replaceAll(Pattern p, @NotNull BasedSequence s, int } @NotNull - private static BasedSequence replaceAll(Pattern p, @NotNull BasedSequence s, @NotNull List ranges, @NotNull Replacer replacer, @NotNull ReplacedTextMapper textMapper) { + private static BasedSequence replaceAll(@NotNull Pattern p, @NotNull BasedSequence s, @NotNull List ranges, @NotNull Replacer replacer, @NotNull ReplacedTextMapper textMapper) { Matcher matcher = p.matcher(s); matcher.useTransparentBounds(false); @@ -708,7 +708,7 @@ private static BasedSequence replaceAll(Pattern p, @NotNull BasedSequence s, @No int lastEnd = 0; for (Range range : ranges) { - int start = Utils.rangeLimit(range.getStart(), 0, s.length()); + int start = Utils.rangeLimit(range.getStart(), lastEnd, s.length()); int end = Utils.rangeLimit(range.getEnd(), start, s.length()); matcher.region(start, end);