When mapping a custom kitten allow using shell escaping for the kitten path

Fixes #8178
This commit is contained in:
Kovid Goyal
2024-12-31 12:13:17 +05:30
parent dac6f88453
commit 909bccb807
3 changed files with 10 additions and 5 deletions

View File

@@ -84,6 +84,10 @@ consumption to do the same tasks.
Detailed list of changes Detailed list of changes
------------------------------------- -------------------------------------
0.38.2 [future]
- When mapping a custom kitten allow using shell escaping for the kitten path (:iss:`8178`)
0.38.1 [2024-12-26] 0.38.1 [2024-12-26]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -122,12 +122,10 @@ def send_key(func: str, rest: str) -> FuncArgsType:
@func_with_args('run_kitten', 'run_simple_kitten', 'kitten') @func_with_args('run_kitten', 'run_simple_kitten', 'kitten')
def kitten_parse(func: str, rest: str) -> FuncArgsType: def kitten_parse(func: str, rest: str) -> FuncArgsType:
parts = to_cmdline(rest)
if func == 'kitten': if func == 'kitten':
args = rest.split(maxsplit=1) return func, parts
else: return 'kitten', args[1:]
args = rest.split(maxsplit=2)[1:]
func = 'kitten'
return func, [args[0]] + (to_cmdline(args[1]) if len(args) > 1 else [])
@func_with_args('open_url') @func_with_args('open_url')

View File

@@ -114,6 +114,9 @@ class TestConfParsing(BaseTest):
self.ae((ac().func, ac(1).func), ('new_window', 'launch')) self.ae((ac().func, ac(1).func), ('new_window', 'launch'))
self.ae(ac(1).args, ('--moo', 'XXX')) self.ae(ac(1).args, ('--moo', 'XXX'))
opts = p('clear_all_shortcuts y', 'action_alias ss kitten "space 1"', 'map f1 ss "space 2"')
self.ae(ac().args, ('space 1', 'space 2'))
opts = p('kitty_mod alt') opts = p('kitty_mod alt')
self.ae(opts.kitty_mod, to_modifiers('alt')) self.ae(opts.kitty_mod, to_modifiers('alt'))
self.ae(next(keys_for_func(opts, 'next_layout')).mods, opts.kitty_mod) self.ae(next(keys_for_func(opts, 'next_layout')).mods, opts.kitty_mod)