mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-07-11 18:23:20 +00:00
fix: when parsing python_strings options, don't fail if ' is last
Previously, if the last character was `'` parsing would fail: from `abc'` it would produce the literal `'''abc''''`, which has one too many unescaped single quote at the end. This also fixes the issue for solo `'''`, where before it would produce `''''\\'''''`, again with one too many single quote at the end. I added tests for both cases.
This commit is contained in:
parent
d837a64e36
commit
4cccf929eb
2 changed files with 5 additions and 0 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue