From: Andre Noll Date: Tue, 28 Apr 2020 19:58:47 +0000 (+0200) Subject: gui: Do not decode the pressed key multiple times. X-Git-Tag: v0.6.3~9 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=62c0894fbb589dd45e69b7d9ef1fd152a9960d62;ds=sidebyside gui: Do not decode the pressed key multiple times. Although the key name is a loop invariant, we recompute it during every iteration of the loop. Fix this. --- diff --git a/gui.c b/gui.c index 0eb5444f..d779ff86 100644 --- a/gui.c +++ b/gui.c @@ -1049,6 +1049,7 @@ static void handle_command(int c) { int i; const struct lls_opt_result *lor = OPT_RESULT(KEY_MAP); + const char *keyname = km_keyname(c); /* first check user-defined key bindings */ FOR_EACH_KEY_MAP(i) { @@ -1059,7 +1060,7 @@ static void handle_command(int c) free(tmp); return; } - if (strcmp(tmp, km_keyname(c))) { + if (strcmp(tmp, keyname)) { free(tmp); continue; } @@ -1079,13 +1080,13 @@ static void handle_command(int c) } /* not found, check internal key bindings */ for (i = 0; command_list[i].handler; i++) { - if (!strcmp(km_keyname(c), command_list[i].key)) { + if (!strcmp(keyname, command_list[i].key)) { command_list[i].handler(); return; } } print_in_bar(COLOR_ERRMSG, "key '%s' is not bound, press ? for help", - km_keyname(c)); + keyname); } static int input_post_select(__a_unused struct sched *s,