-/* Read a line from stdin, without any line-terminator character. The
- * return value is a newly allocated string. The caller should free()
- * the string when finished with it.
- *
- * This function returns NULL if EOF is encountered before any
- * characters are input (otherwise it returns those characters).
- */
-char *
-read_line (void)
-{
- char *result = NULL;
- GError *error = NULL;
- GIOStatus g_io_status;
- gsize length;
-
- GIOChannel *channel = g_io_channel_unix_new (fileno (stdin));
-
- g_io_status = g_io_channel_read_line (channel, &result,
- &length, NULL, &error);
-
- if (g_io_status == EOF)
- goto DONE;
+static int
+notmuch_help_command (notmuch_config_t *config, int argc, char *argv[]);
+
+static int
+notmuch_command (notmuch_config_t *config, int argc, char *argv[]);
+
+static command_t commands[] = {
+ { NULL, notmuch_command, TRUE,
+ "Notmuch main command." },
+ { "setup", notmuch_setup_command, TRUE,
+ "Interactively setup notmuch for first use." },
+ { "new", notmuch_new_command, FALSE,
+ "Find and import new messages to the notmuch database." },
+ { "search", notmuch_search_command, FALSE,
+ "Search for messages matching the given search terms." },
+ { "show", notmuch_show_command, FALSE,
+ "Show all messages matching the search terms." },
+ { "count", notmuch_count_command, FALSE,
+ "Count messages matching the search terms." },
+ { "reply", notmuch_reply_command, FALSE,
+ "Construct a reply template for a set of messages." },
+ { "tag", notmuch_tag_command, FALSE,
+ "Add/remove tags for all messages matching the search terms." },
+ { "dump", notmuch_dump_command, FALSE,
+ "Create a plain-text dump of the tags for each message." },
+ { "restore", notmuch_restore_command, FALSE,
+ "Restore the tags from the given dump file (see 'dump')." },
+ { "config", notmuch_config_command, FALSE,
+ "Get or set settings in the notmuch configuration file." },
+ { "help", notmuch_help_command, TRUE, /* create but don't save config */
+ "This message, or more detailed help for the named command." }
+};