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 <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2013-07-17 01:21:20 +02:00
parent 20709b7a7e
commit 0d053e2b2b
2 changed files with 12 additions and 4 deletions

View File

@ -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 <feature>` (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 <feature>` (e.g. `:help add`) or
`:help <key>` (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

View File

@ -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 {