diff options
| -rw-r--r-- | nncmpp.c | 36 | 
1 files changed, 20 insertions, 16 deletions
| @@ -3108,9 +3108,28 @@ app_init_bindings (const char *keymap,  	return a;  } +static char * +app_strfkey (const termo_key_t *key) +{ +	// For display purposes, this is highly desirable +	int flags = termo_get_flags (g.tk); +	termo_set_flags (g.tk, flags | TERMO_FLAG_SPACESYMBOL); +	termo_key_t fixed = *key; +	termo_canonicalise (g.tk, &fixed); +	termo_set_flags (g.tk, flags); + +	char buf[16] = ""; +	termo_strfkey_utf8 (g.tk, buf, sizeof buf, &fixed, TERMO_FORMAT_ALTISMETA); +	return xstrdup (buf); +} +  static bool  app_process_termo_event (termo_key_t *event)  { +	char *formatted = app_strfkey (event); +	print_debug ("%s", formatted); +	free (formatted); +  	bool handled = false;  	if ((handled = event->type == TERMO_TYPE_FOCUS))  	{ @@ -4163,21 +4182,6 @@ help_tab_on_action (enum action action)  }  static void -help_tab_strfkey (const termo_key_t *key, struct strv *out) -{ -	// For display purposes, this is highly desirable -	int flags = termo_get_flags (g.tk); -	termo_set_flags (g.tk, flags | TERMO_FLAG_SPACESYMBOL); -	termo_key_t fixed = *key; -	termo_canonicalise (g.tk, &fixed); -	termo_set_flags (g.tk, flags); - -	char buf[16]; -	termo_strfkey_utf8 (g.tk, buf, sizeof buf, &fixed, TERMO_FORMAT_ALTISMETA); -	strv_append (out, buf); -} - -static void  help_tab_assign_action (enum action action)  {  	hard_assert (g_help_tab.lines.len > g_help_tab.actions_len); @@ -4198,7 +4202,7 @@ help_tab_group (struct binding *keys, size_t len, struct strv *out,  		struct strv ass = strv_make ();  		for (size_t k = 0; k < len; k++)  			if (keys[k].action == i) -				help_tab_strfkey (&keys[k].decoded, &ass); +				strv_append_owned (&ass, app_strfkey (&keys[k].decoded));  		if (ass.len)  		{  			char *joined = strv_join (&ass, ", "); | 
