diff --git a/kitty/utils.py b/kitty/utils.py index c223af843..68cb42195 100644 --- a/kitty/utils.py +++ b/kitty/utils.py @@ -61,6 +61,11 @@ def sgr_sanitizer_pat(for_splitting: bool = False) -> 're.Pattern[str]': return re.compile(pat) +@run_once +def ansi_sanitizer_pat() -> 're.Pattern[str]': + return re.compile(r'\x1b(?:\[.*?m|\].*?\x1b\\)') + + def platform_window_id(os_window_id: int) -> Optional[int]: if is_macos: from .fast_data_types import cocoa_window_id diff --git a/kitty/window.py b/kitty/window.py index 4fd8b906f..a1d085ce2 100644 --- a/kitty/window.py +++ b/kitty/window.py @@ -42,11 +42,12 @@ from .notify import NotificationCommand, handle_notification_cmd from .options.types import Options from .rgb import to_color from .terminfo import get_capabilities -from .types import MouseEvent, WindowGeometry, ac, run_once +from .types import MouseEvent, WindowGeometry, ac from .typing import BossType, ChildType, EdgeLiteral, TabType, TypedDict from .utils import ( - get_primary_selection, load_shaders, log_error, open_cmd, open_url, - parse_color_set, resolve_custom_file, sanitize_title, set_primary_selection + ansi_sanitizer_pat, get_primary_selection, load_shaders, log_error, + open_cmd, open_url, parse_color_set, resolve_custom_file, sanitize_title, + set_primary_selection ) MatchPatternType = Union[Pattern[str], Tuple[Pattern[str], Optional[Pattern[str]]]] @@ -282,11 +283,6 @@ def setup_colors(screen: Screen, opts: Options) -> None: ) -@run_once -def ansi_sanitizer_pat() -> 're.Pattern[str]': - return re.compile(r'\x1b(?:\[.*?m|\].*?\x1b\\)') - - def text_sanitizer(as_ansi: bool, add_wrap_markers: bool) -> Callable[[str], str]: pat = ansi_sanitizer_pat() ansi, wrap_markers = not as_ansi, not add_wrap_markers