diff --git a/src/mars_patcher/text.py b/src/mars_patcher/text.py index 5bd7ae9..7ea7221 100644 --- a/src/mars_patcher/text.py +++ b/src/mars_patcher/text.py @@ -125,14 +125,6 @@ def encode_text( escaped = False markup_tag: list[str] | None = None - def handle_break() -> None: - nonlocal prev_break, width_since_break, line_width, line_number - prev_break = len(text) - width_since_break = 0 - if char_val in NEWLINE_CHARS: - line_width = 0 - line_number += 1 - for char in string: if not escaped: # Check for escaped character @@ -158,10 +150,17 @@ def handle_break() -> None: if char_val is None: raise ValueError(f"Invalid markup tag '{tag_str}'") if char_val in NEWLINE_CHARS: - handle_break() + prev_break = len(text) + width_since_break = 0 + line_width = 0 + if char_val == NEXT: + line_number = 0 + else: + line_number += 1 text.append(char_val) markup_tag = None else: + # Still parsing markup tag markup_tag.append(char) continue else: @@ -173,7 +172,11 @@ def handle_break() -> None: width_since_break += char_width if char_val in BREAKING_CHARS: - handle_break() + prev_break = len(text) + width_since_break = 0 + if char_val in NEWLINE_CHARS: + line_width = 0 + line_number += 1 extra_char = None