X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.c;h=e519f98e7013b1d0ff3e83cb3b4c730563d8fe3c;hp=72ca62044e90a2a3ccd2a0cee493f81141504fa4;hb=b2a9fcd5cfd1bf84321b8bf53b37e7fb98618d6e;hpb=53f8cc565126db4a003dbfc02850d2bf3b260636 diff --git a/notmuch.c b/notmuch.c index 72ca6204..e519f98e 100644 --- a/notmuch.c +++ b/notmuch.c @@ -52,7 +52,7 @@ static const char search_terms_help[] = "\t\t\tto:\n" "\t\t\tsubject:\n" "\t\t\tattachment:\n" - "\t\t\ttag:\n" + "\t\t\ttag: (or is:)\n" "\t\t\tid:\n" "\t\t\tthread:\n" "\n" @@ -66,7 +66,7 @@ static const char search_terms_help[] = "\t\tthe subject of an email. Quoted phrases are supported when\n" "\t\tsearching with: subject:\"this is a phrase\".\n" "\n" - "\t\tFor tag:, valid tag values include \"inbox\" and \"unread\"\n" + "\t\tFor tag: and is:, valid tag values include \"inbox\" and \"unread\"\n" "\t\tby default for new messages added by \"notmuch new\" as well\n" "\t\tas any other tag values added manually with \"notmuch tag\".\n" "\n" @@ -89,7 +89,22 @@ static const char search_terms_help[] = "\t\tParentheses can also be used to control the combination of\n" "\t\tthe Boolean operators, but will have to be protected from\n" "\t\tinterpretation by the shell, (such as by putting quotation\n" - "\t\tmarks around any parenthesized expression).\n\n"; + "\t\tmarks around any parenthesized expression).\n" + "\n" + "\t\tFinally, results can be restricted to only messages within a\n" + "\t\tparticular time range, (based on the Date: header) with:\n" + "\n" + "\t\t\t..\n" + "\n" + "\t\tEach timestamp is a number representing the number of seconds\n" + "\t\tsince 1970-01-01 00:00:00 UTC. This is not the most convenient\n" + "\t\tmeans of expressing date ranges, but until notmuch is fixed to\n" + "\t\taccept a more convenient form, one can use the date program to\n" + "\t\tconstruct timestamps. For example, with the bash shell the\n" + "\t\tfollowing syntax would specify a date range to return messages\n" + "\t\tfrom 2009-10-01 until the current time:\n" + "\n" + "\t\t\t$(date +%%s -d 2009-10-01)..$(date +%%s)\n\n"; command_t commands[] = { { "setup", notmuch_setup_command, @@ -130,11 +145,6 @@ command_t commands[] = { "\t\t\tVerbose operation. Shows paths of message files as\n" "\t\t\tthey are being indexed.\n" "\n" - "\t\tNote: \"notmuch new\" runs (other than the first run) will\n" - "\t\tskip any read-only directories, so you can use that to mark\n" - "\t\tdirectories that will not receive any new mail (and make\n" - "\t\t\"notmuch new\" even faster).\n" - "\n" "\t\tInvoking notmuch with no command argument will run new if\n" "\t\tthe setup command has previously been completed, but new has\n" "\t\tnot previously been run." }, @@ -147,15 +157,10 @@ command_t commands[] = { "\n" "\t\tSupported options for search include:\n" "\n" - "\t\t--max-threads=\n" - "\n" - "\t\t\tRestricts displayed search results to a subset\n" - "\t\t\tof the results that would match the terms.\n" - "\n" - "\t\t--first=\n" + "\t\t--format=(json|text)\n" "\n" - "\t\t\tOmits the first threads from the search\n" - "\t\t\tresults that would otherwise be displayed.\n" + "\t\t\tPresents the results in either JSON or\n" + "\t\t\tplain-text (default)\n" "\n" "\t\t--sort=(newest-first|oldest-first)\n" "\n" @@ -172,13 +177,32 @@ command_t commands[] = { "\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" + "\t\tSupported options for show include:\n" + "\n" + "\t\t--entire-thread\n" + "\n" + "\t\t\tBy default only those messages that match the\n" + "\t\t\tsearch terms will be displayed. With this option,\n" + "\t\t\tall messages in the same thread as any matched\n" + "\t\t\tmessage will be displayed.\n" + "\n" + "\t\t--format=(json|text)\n" + "\n" + "\t\t\ttext\t(default)\n" + "\n" + "\t\t\tThe plain-text has all text-content MIME parts decoded.\n" + "\t\t\tVarious components in the output, ('message', 'header',\n" + "\t\t\t'body', 'attachment', and MIME 'part') are delimited by\n" + "\t\t\teasily-parsed markers. Each marker consists of a Control-L\n" + "\t\t\tcharacter (ASCII decimal 12), the name of the marker, and\n" + "\t\t\tthen either an opening or closing brace, '{' or '}' to\n" + "\t\t\teither open or close the component.\n" + "\n" + "\t\t\tjson\n" + "\n" + "\t\t\tFormat output as Javascript Object Notation (JSON).\n" + "\t\t\tJSON output always includes all messages in a matching,\n" + "\t\t\tthread i.e. '--output=json' implies '--entire-thread'\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" @@ -199,7 +223,7 @@ command_t commands[] = { "\t\tSee \"notmuch help search-terms\" for details of the search\n" "\t\tterms syntax." }, { "reply", notmuch_reply_command, - " [...]", + "[options...] [...]", "\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" @@ -208,10 +232,22 @@ command_t commands[] = { "\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" + "\t\tof the original messages is quoted and included in the body\n" + "\t\t(unless --format=headers-only is given).\n" "\n" "\t\tThe resulting message template is output to stdout.\n" "\n" + "\t\tSupported options for reply include:\n" + "\n" + "\t\t--format=(default|headers-only)\n" + "\n" + "\t\t\tdefault:\n" + "\t\t\t\tIncludes subject and quoted message body.\n" + "\n" + "\t\t\theaders-only:\n" + "\t\t\t\tOnly produces In-Reply-To, References, To\n" + "\t\t\t\tCc, and Bcc headers.\n" + "\n" "\t\tSee \"notmuch help search-terms\" for details of the search\n" "\t\tterms syntax." }, { "tag", notmuch_tag_command, @@ -249,6 +285,15 @@ command_t commands[] = { "\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, + "[ [...] ]", + "\t\tList all tags found in the database or matching messages.", + "\t\tRun this command without any search-term(s) to obtain a list\n" + "\t\tof all tags found in the database. If you provide one or more\n" + "\t\tsearch-terms as argument(s) then the resulting list will\n" + "\t\tcontain tags only from messages that match the search-term(s).\n" + "\n" + "\t\tIn both cases the list will be alphabetically sorted." }, { "help", notmuch_help_command, "[]", "\t\tThis message, or more detailed help for the named command.", @@ -262,7 +307,10 @@ usage (FILE *out) command_t *command; unsigned int i; - fprintf (out, "Usage: notmuch [args...]\n"); + fprintf (out, + "Usage: notmuch --help\n" + " notmuch --version\n" + " notmuch [args...]\n"); fprintf (out, "\n"); fprintf (out, "Where and [args...] are as follows:\n"); fprintf (out, "\n"); @@ -412,6 +460,14 @@ main (int argc, char *argv[]) if (argc == 1) return notmuch (local); + if (STRNCMP_LITERAL (argv[1], "--help") == 0) + return notmuch_help_command (NULL, 0, NULL); + + if (STRNCMP_LITERAL (argv[1], "--version") == 0) { + printf ("notmuch version " STRINGIFY(NOTMUCH_VERSION) "\n"); + return 0; + } + for (i = 0; i < ARRAY_SIZE (commands); i++) { command = &commands[i];