From 0d053e2b2b3f1381f5492ff21ee7ed27613eac0b Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Wed, 17 Jul 2013 01:21:20 +0200 Subject: Allow for getting help on key bindings In addition to getting help on specific topics, users can type things like ":help s" or ":help ^A" to get help on specific key bindings now. Note that we do not add help texts for these keys here -- we will alias key bindings to already existing topics in a follow-up patch. Signed-off-by: Lukas Fleischer --- doc/intro.txt | 8 ++++---- src/calcurse.c | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/doc/intro.txt b/doc/intro.txt index a841739..9b91c86 100644 --- a/doc/intro.txt +++ b/doc/intro.txt @@ -4,10 +4,10 @@ calcurse Online Help Welcome to the calcurse online help. The online help system allows for easily getting help on specific calcurse features. -On the calcurse main screen, type `:help ` (e.g. `:help add`) to get -help on a specific feature. Type `:help` without any parameter to display this -introduction or simply use the corresponding keyboard shortcut (`?` by -default). +On the calcurse main screen, type `:help ` (e.g. `:help add`) or +`:help ` (e.g. `:help ^A`) to get help on a specific feature or key +binding. Type `:help` without any parameter to display this introduction or +simply use the corresponding keyboard shortcut (`?` by default). All help texts are displayed using an external pager. You need to exit the pager in order to get back to calcurse (pressing `q` should almost always diff --git a/src/calcurse.c b/src/calcurse.c index c3a7ce8..9127c98 100644 --- a/src/calcurse.c +++ b/src/calcurse.c @@ -506,6 +506,14 @@ static inline void key_generic_cmd(void) topic = "intro"; snprintf(path, BUFSIZ, DOCDIR "/%s.txt", topic); + + if (!io_file_exist(path) && keys_str2int(topic) > 0 && + keys_get_action(keys_str2int(topic)) > 0) { + enum key action = keys_get_action(keys_str2int(topic)); + snprintf(path, BUFSIZ, DOCDIR "/%s.txt", + keys_get_label(action)); + } + if (io_file_exist(path)) { wins_launch_external(path, conf.pager); } else { -- cgit v1.2.3-54-g00ecf