- "\t\tShow all messages matching the search terms.",
- "\t\tThe messages are grouped and sorted based on the threading\n"
- "\t\t(all replies to a particular message appear immediately\n"
- "\t\tafter that message in date order).\n"
- "\n"
- "\t\tThe output format is plain-text, with all text-content\n"
- "\t\tMIME parts decoded. Various components in the output,\n"
- "\t\t('message', 'header', 'body', 'attachment', and MIME 'part')\n"
- "\t\tare delimited by easily-parsed markers. Each marker consists\n"
- "\t\tof a Control-L character (ASCII decimal 12), the name of\n"
- "\t\tthe marker, and then either an opening or closing brace,\n"
- "\t\t'{' or '}' to either open or close the component.\n"
- "\n"
- "\t\tA common use of \"notmuch show\" is to display a single\n"
- "\t\tthread of email messages. For this, use a search term of\n"
- "\t\t\"thread:<thread-id>\" as can be seen in the first column\n"
- "\t\tof output from the \"notmuch search\" command.\n"
- "\n"
- "\t\tSee \"notmuch help search-terms\" for details of the search\n"
- "\t\tterms syntax." },
- { "count", notmuch_count_command,
- "<search-terms> [...]",
- "\t\tCount messages matching the search terms.",
- "\t\tThe number of matching messages is output to stdout.\n"
- "\n"
- "\t\tA common use of \"notmuch count\" is to display the count\n"
- "\t\tof messages matching both a specific tag and either inbox\n"
- "\t\tor unread\n"
- "\n"
- "\t\tSee \"notmuch help search-terms\" for details of the search\n"
- "\t\tterms syntax." },
- { "reply", notmuch_reply_command,
- "<search-terms> [...]",
- "\t\tConstruct a reply template for a set of messages.",
- "\t\tConstructs a new message as a reply to a set of existing\n"
- "\t\tmessages. The Reply-To: header (if any, otherwise From:) is\n"
- "\t\tused for the To: address. The To: and Cc: headers are copied,\n"
- "\t\tbut not including any of the user's configured addresses.\n"
- "\n"
- "\t\tA suitable subject is constructed. The In-Reply-to: and\n"
- "\t\tReferences: headers are set appropriately, and the content\n"
- "\t\tof the original messages is quoted and included in the body.\n"
- "\n"
- "\t\tThe resulting message template is output to stdout.\n"
- "\n"
- "\t\tSee \"notmuch help search-terms\" for details of the search\n"
- "\t\tterms syntax." },
- { "tag", notmuch_tag_command,
- "+<tag>|-<tag> [...] [--] <search-terms> [...]",
- "\t\tAdd/remove tags for all messages matching the search terms.",
- "\t\tThe search terms are handled exactly as in 'search' so one\n"
- "\t\tcan use that command first to see what will be modified.\n"
- "\n"
- "\t\tTags prefixed by '+' are added while those prefixed by\n"
- "\t\t'-' are removed. For each message, tag removal is performed\n"
- "\t\tbefore tag addition.\n"
- "\n"
- "\t\tThe beginning of <search-terms> is recognized by the first\n"
- "\t\targument that begins with neither '+' nor '-'. Support for\n"
- "\t\tan initial search term beginning with '+' or '-' is provided\n"
- "\t\tby allowing the user to specify a \"--\" argument to separate\n"
- "\t\tthe tags from the search terms.\n"
- "\n"
- "\t\tSee \"notmuch help search-terms\" for details of the search\n"
- "\t\tterms syntax." },
- { "dump", notmuch_dump_command,
- "[<filename>]",
- "\t\tCreate a plain-text dump of the tags for each message.",
- "\t\tOutput is to the given filename, if any, or to stdout.\n"
- "\t\tThese tags are the only data in the notmuch database\n"
- "\t\tthat can't be recreated from the messages themselves.\n"
- "\t\tThe output of notmuch dump is therefore the only\n"
- "\t\tcritical thing to backup (and much more friendly to\n"
- "\t\tincremental backup than the native database files.)" },
- { "restore", notmuch_restore_command,
- "<filename>",
- "\t\tRestore the tags from the given dump file (see 'dump').",
- "\t\tNote: The dump file format is specifically chosen to be\n"
- "\t\tcompatible with the format of files produced by sup-dump.\n"
- "\t\tSo if you've previously been using sup for mail, then the\n"
- "\t\t\"notmuch restore\" command provides you a way to import\n"
- "\t\tall of your tags (or labels as sup calls them)." },
- { "search-tags", notmuch_search_tags_command,
- NULL,
- "List all tags found in the database.",
- "\t\tThis command returns an alphabetically sorted list of all tags\n"
- "\t\tthat are present in the database. In other words, the resulting\n"
- "\t\tlist is a collection of all tags from all messages." },
- { "help", notmuch_help_command,
+ "Show all messages matching the search terms." },
+ { "count", notmuch_count_command, FALSE,
+ "[options...] <search-terms> [...]",
+ "Count messages matching the search terms." },
+ { "reply", notmuch_reply_command, FALSE,
+ "[options...] <search-terms> [...]",
+ "Construct a reply template for a set of messages." },
+ { "tag", notmuch_tag_command, FALSE,
+ "+<tag>|-<tag> [...] [--] <search-terms> [...]" ,
+ "Add/remove tags for all messages matching the search terms." },
+ { "dump", notmuch_dump_command, FALSE,
+ "[<filename>] [--] [<search-terms>]",
+ "Create a plain-text dump of the tags for each message." },
+ { "restore", notmuch_restore_command, FALSE,
+ "[--accumulate] [<filename>]",
+ "Restore the tags from the given dump file (see 'dump')." },
+ { "config", notmuch_config_command, FALSE,
+ "[get|set] <section>.<item> [value ...]",
+ "Get or set settings in the notmuch configuration file." },
+ { "help", notmuch_help_command, TRUE, /* create but don't save config */