From d7f569b341a2c4428a015f3e57c2ef33509e5578 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 22 Nov 2021 22:54:21 +0530 Subject: [PATCH] Add a test for recursion --- kitty/options/utils.py | 2 +- kitty_tests/options.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kitty/options/utils.py b/kitty/options/utils.py index 7a426a4e1..f52080504 100644 --- a/kitty/options/utils.py +++ b/kitty/options/utils.py @@ -854,7 +854,7 @@ def resolve_aliases_in_action(action: KeyAction, aliases: Dict[str, List[ActionA if recursive: aliases = aliases.copy() aliases.pop(alias.func_name) - return resolve_aliases_in_action(action._replace(func=alias.func_name, args=alias.args + action.args), aliases) + return resolve_aliases_in_action(action, aliases) if action.args and alias.second_arg_test(action.args[0]): return resolve_aliases_in_action(action._replace(func=alias.func_name, args=alias.args + action.args[1:]), aliases) return action diff --git a/kitty_tests/options.py b/kitty_tests/options.py index e008679b4..90d702503 100644 --- a/kitty_tests/options.py +++ b/kitty_tests/options.py @@ -63,6 +63,10 @@ class TestConfParsing(BaseTest): ka = tuple(opts.keymap.values())[0][0] self.ae(ka.func, 'launch') self.ae(ka.args, ('--moo', 'recursive', 'XXX')) + opts = p('clear_all_shortcuts y', 'action_alias launch launch --moo', 'map f1 launch XXX') + ka = tuple(opts.keymap.values())[0][0] + self.ae(ka.func, 'launch') + self.ae(ka.args, ('--moo', 'XXX')) opts = p('clear_all_shortcuts y', 'action_alias la launch --moo', 'map f1 combine : new_window : la ') ka = tuple(opts.keymap.values())[0] self.ae((ka[0].func, ka[1].func), ('new_window', 'launch'))