Add help command
This adds a "help" command to the list of available command mode commands. You can currently type "help", followed by a topic like "add". calcurse will then try to open a file named "add.txt" in the documentation directory and display it in an external pager. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
parent
c4dae80dd2
commit
2c25d99ad0
@ -2,6 +2,7 @@ AUTOMAKE_OPTIONS = foreign
|
|||||||
|
|
||||||
bin_PROGRAMS = calcurse
|
bin_PROGRAMS = calcurse
|
||||||
|
|
||||||
|
AM_CPPFLAGS = -DDOCDIR=\"@docdir@\"
|
||||||
AM_CFLAGS = -std=c99 -pedantic -D_POSIX_C_SOURCE=200809L
|
AM_CFLAGS = -std=c99 -pedantic -D_POSIX_C_SOURCE=200809L
|
||||||
|
|
||||||
calcurse_SOURCES = \
|
calcurse_SOURCES = \
|
||||||
|
@ -491,12 +491,41 @@ static inline void key_generic_quit(void)
|
|||||||
static inline void key_generic_cmd(void)
|
static inline void key_generic_cmd(void)
|
||||||
{
|
{
|
||||||
char cmd[BUFSIZ] = "";
|
char cmd[BUFSIZ] = "";
|
||||||
|
char *cmd_name;
|
||||||
|
|
||||||
status_mesg(_("Command:"), "");
|
status_mesg(_("Command:"), "");
|
||||||
if (getstring(win[STA].p, cmd, BUFSIZ, 0, 1) != GETSTRING_VALID)
|
if (getstring(win[STA].p, cmd, BUFSIZ, 0, 1) != GETSTRING_VALID)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wins_update(FLAG_STA);
|
cmd_name = strtok(cmd, " ");
|
||||||
|
|
||||||
|
if (!strcmp(cmd_name, "help")) {
|
||||||
|
char *topic = strtok(NULL, " ");
|
||||||
|
char path[BUFSIZ];
|
||||||
|
|
||||||
|
snprintf(path, BUFSIZ, DOCDIR "/%s.txt", topic);
|
||||||
|
if (io_file_exist(path)) {
|
||||||
|
wins_launch_external(path, conf.pager);
|
||||||
|
} else {
|
||||||
|
char error_msg[BUFSIZ];
|
||||||
|
|
||||||
|
snprintf(error_msg, BUFSIZ,
|
||||||
|
_("Help topic does not exist: %s"),
|
||||||
|
topic);
|
||||||
|
error_msg[BUFSIZ - 1] = '\0';
|
||||||
|
|
||||||
|
warnbox(error_msg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
char error_msg[BUFSIZ];
|
||||||
|
|
||||||
|
snprintf(error_msg, BUFSIZ, _("No such command: %s"), cmd);
|
||||||
|
error_msg[BUFSIZ - 1] = '\0';
|
||||||
|
|
||||||
|
warnbox(error_msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
wins_update(FLAG_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user