Create a new private entry point _help_for so that we can call help
without simulating a command line invokation to set up the arguments.
-notmuch_help_command (unused (notmuch_config_t * config), int argc, char *argv[])
+_help_for (const char *topic_name)
{
command_t *command;
help_topic_t *topic;
unsigned int i;
{
command_t *command;
help_topic_t *topic;
unsigned int i;
- argc--; argv++; /* Ignore "help" */
-
- if (argc == 0) {
printf ("The notmuch mail system.\n\n");
usage (stdout);
return EXIT_SUCCESS;
}
printf ("The notmuch mail system.\n\n");
usage (stdout);
return EXIT_SUCCESS;
}
- if (strcmp (argv[0], "help") == 0) {
+ if (strcmp (topic_name, "help") == 0) {
printf ("The notmuch help system.\n\n"
"\tNotmuch uses the man command to display help. In case\n"
"\tof difficulties check that MANPATH includes the pages\n"
printf ("The notmuch help system.\n\n"
"\tNotmuch uses the man command to display help. In case\n"
"\tof difficulties check that MANPATH includes the pages\n"
- command = find_command (argv[0]);
+ command = find_command (topic_name);
if (command) {
char *page = talloc_asprintf (NULL, "notmuch-%s", command->name);
exec_man (page);
if (command) {
char *page = talloc_asprintf (NULL, "notmuch-%s", command->name);
exec_man (page);
for (i = 0; i < ARRAY_SIZE (help_topics); i++) {
topic = &help_topics[i];
for (i = 0; i < ARRAY_SIZE (help_topics); i++) {
topic = &help_topics[i];
- if (strcmp (argv[0], topic->name) == 0) {
+ if (strcmp (topic_name, topic->name) == 0) {
char *page = talloc_asprintf (NULL, "notmuch-%s", topic->name);
exec_man (page);
}
char *page = talloc_asprintf (NULL, "notmuch-%s", topic->name);
exec_man (page);
}
fprintf (stderr,
"\nSorry, %s is not a known command. There's not much I can do to help.\n\n",
fprintf (stderr,
"\nSorry, %s is not a known command. There's not much I can do to help.\n\n",
+static int
+notmuch_help_command (unused (notmuch_config_t * config), int argc, char *argv[])
+{
+ argc--; argv++; /* Ignore "help" */
+
+ if (argc == 0) {
+ return _help_for (NULL);
+ }
+
+ return _help_for (argv[0]);
+}
+
/* Handle the case of "notmuch" being invoked with no command
* argument. For now we just call notmuch_setup_command, but we plan
* to be more clever about this in the future.
/* Handle the case of "notmuch" being invoked with no command
* argument. For now we just call notmuch_setup_command, but we plan
* to be more clever about this in the future.