diff --git a/kitty/conf/utils.py b/kitty/conf/utils.py index 9cccec7dd..946052730 100644 --- a/kitty/conf/utils.py +++ b/kitty/conf/utils.py @@ -127,6 +127,7 @@ def to_cmdline(x: str, expand: bool = True) -> list[str]: def python_string(text: str) -> str: from ast import literal_eval + text = (text[:-1] + "\\'") if text.endswith("'") else text ans: str = literal_eval("'''" + text.replace("'''", "'\\''") + "'''") return ans diff --git a/kitty_tests/options.py b/kitty_tests/options.py index 169b8aed1..4eb56ff6e 100644 --- a/kitty_tests/options.py +++ b/kitty_tests/options.py @@ -234,6 +234,10 @@ def conf_parsing(self): self.ae(opts.mouse_hide_wait[3], True) self.ae(opts.color23, Color(255, 0, 0)) self.assertFalse(opts.keyboard_modes[''].keymap) + opts = p("url_excluded_characters '''") + self.ae(opts.url_excluded_characters, "'''") + opts = p("url_excluded_characters abc'") + self.ae(opts.url_excluded_characters, "abc'") opts = p('clear_all_shortcuts y', 'map f1 next_window') self.ae(len(opts.keyboard_modes[''].keymap), 1) opts = p('clear_all_mouse_actions y', 'mouse_map left click ungrabbed mouse_click_url_or_select')