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 --.
This commit is contained in:
David Bremner 2011-10-09 10:57:03 -03:00
parent 532829d463
commit ff2cd7a789

View file

@ -26,7 +26,7 @@ notmuch_dump_command (unused (void *ctx), int argc, char *argv[])
notmuch_config_t *config; notmuch_config_t *config;
notmuch_database_t *notmuch; notmuch_database_t *notmuch;
notmuch_query_t *query; notmuch_query_t *query;
FILE *output; FILE *output = stdout;
notmuch_messages_t *messages; notmuch_messages_t *messages;
notmuch_message_t *message; notmuch_message_t *message;
notmuch_tags_t *tags; notmuch_tags_t *tags;
@ -40,24 +40,29 @@ notmuch_dump_command (unused (void *ctx), int argc, char *argv[])
if (notmuch == NULL) if (notmuch == NULL)
return 1; return 1;
query = notmuch_query_create (notmuch, ""); if (argc && strcmp (argv[0], "--") != 0) {
if (query == NULL) {
fprintf (stderr, "Out of memory\n");
return 1;
}
notmuch_query_set_sort (query, NOTMUCH_SORT_MESSAGE_ID);
if (argc) {
output = fopen (argv[0], "w"); output = fopen (argv[0], "w");
if (output == NULL) { if (output == NULL) {
fprintf (stderr, "Error opening %s for writing: %s\n", fprintf (stderr, "Error opening %s for writing: %s\n",
argv[0], strerror (errno)); argv[0], strerror (errno));
return 1; return 1;
} }
} else { argc--;
output = stdout; 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); for (messages = notmuch_query_search_messages (query);
notmuch_messages_valid (messages); notmuch_messages_valid (messages);
notmuch_messages_move_to_next (messages)) notmuch_messages_move_to_next (messages))