aboutsummaryrefslogtreecommitdiff
path: root/notmuch-dump.c
diff options
context:
space:
mode:
authorDavid Bremner <bremner@debian.org>2011-10-09 10:57:03 -0300
committerDavid Bremner <bremner@debian.org>2011-10-16 19:59:53 -0300
commitff2cd7a789b81e76d2279ac8a13a06172c6d8279 (patch)
tree2a1228ebbe12a33fcabef506d31e4384094731a0 /notmuch-dump.c
parent532829d463717ed36c43756728608d7465deac8e (diff)
notmuch-dump: update handling of file name argument
We permit -- as an "option processing terminator". Currently this does not do anything useful, but we plan to add search terms after the --.
Diffstat (limited to 'notmuch-dump.c')
-rw-r--r--notmuch-dump.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/notmuch-dump.c b/notmuch-dump.c
index 7e7bc17..610144e 100644
--- a/notmuch-dump.c
+++ b/notmuch-dump.c
@@ -26,7 +26,7 @@ notmuch_dump_command (unused (void *ctx), int argc, char *argv[])
notmuch_config_t *config;
notmuch_database_t *notmuch;
notmuch_query_t *query;
- FILE *output;
+ FILE *output = stdout;
notmuch_messages_t *messages;
notmuch_message_t *message;
notmuch_tags_t *tags;
@@ -40,23 +40,28 @@ notmuch_dump_command (unused (void *ctx), int argc, char *argv[])
if (notmuch == NULL)
return 1;
- query = notmuch_query_create (notmuch, "");
- if (query == NULL) {
- fprintf (stderr, "Out of memory\n");
- return 1;
- }
- notmuch_query_set_sort (query, NOTMUCH_SORT_MESSAGE_ID);
-
- if (argc) {
+ if (argc && strcmp (argv[0], "--") != 0) {
output = fopen (argv[0], "w");
if (output == NULL) {
fprintf (stderr, "Error opening %s for writing: %s\n",
argv[0], strerror (errno));
return 1;
}
- } else {
- output = stdout;
+ argc--;
+ argv++;
+ }
+
+ if (argc && strcmp (argv[0], "--") == 0){
+ argc--;
+ argv++;
+ }
+
+ query = notmuch_query_create (notmuch, "");
+ if (query == NULL) {
+ fprintf (stderr, "Out of memory\n");
+ return 1;
}
+ notmuch_query_set_sort (query, NOTMUCH_SORT_MESSAGE_ID);
for (messages = notmuch_query_search_messages (query);
notmuch_messages_valid (messages);