From 45e629c56b9f9d878a322ff921b4ceb53a419074 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 22 Nov 2021 22:43:06 +0530 Subject: [PATCH] Avoid infinite recursion for action_alias --- kitty/options/utils.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kitty/options/utils.py b/kitty/options/utils.py index cf86b597d..c02d1041b 100644 --- a/kitty/options/utils.py +++ b/kitty/options/utils.py @@ -849,6 +849,10 @@ def build_action_aliases(raw: Dict[str, List[str]], first_arg_replacement: str = def resolve_aliases_in_action(action: KeyAction, aliases: Dict[str, List[ActionAlias]]) -> KeyAction: for alias in aliases.get(action.func, ()): if alias.second_arg_test is None: + recursive = alias.func_name == action.func + action = action._replace(func=alias.func_name, args=alias.args + action.args) + if recursive: + return action return resolve_aliases_in_action(action._replace(func=alias.func_name, args=alias.args + action.args), 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)