X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-restore.c;h=f23ab983a93da0a84020ee460300f4f631225743;hp=dd2507f310e757093e628a7ae3551c54d7818dce;hb=3fed6736a7ef8b8b1f05d0fabb136bdd3b5917ee;hpb=e76f6517de020783d828be59f461f1d4f465c4b4 diff --git a/notmuch-restore.c b/notmuch-restore.c index dd2507f3..f23ab983 100644 --- a/notmuch-restore.c +++ b/notmuch-restore.c @@ -120,9 +120,8 @@ parse_sup_line (void *ctx, char *line, } int -notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) +notmuch_restore_command (notmuch_config_t *config, int argc, char *argv[]) { - notmuch_config_t *config; notmuch_database_t *notmuch; notmuch_bool_t accumulate = FALSE; tag_op_flag_t flags = 0; @@ -139,13 +138,9 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) int opt_index; int input_format = DUMP_FORMAT_AUTO; - config = notmuch_config_open (ctx, NULL, FALSE); - if (config == NULL) - return 1; - if (notmuch_database_open (notmuch_config_get_database_path (config), NOTMUCH_DATABASE_MODE_READ_WRITE, ¬much)) - return 1; + return EXIT_FAILURE; if (notmuch_config_get_maildir_synchronize_flags (config)) flags |= TAG_FLAG_MAILDIR_SYNC; @@ -162,11 +157,8 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) }; opt_index = parse_arguments (argc, argv, options, 1); - - if (opt_index < 0) { - /* diagnostics already printed */ - return 1; - } + if (opt_index < 0) + return EXIT_FAILURE; if (! accumulate) flags |= TAG_FLAG_REMOVE_ALL; @@ -176,21 +168,19 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) if (input == NULL) { fprintf (stderr, "Error opening %s for reading: %s\n", input_file_name, strerror (errno)); - return 1; + return EXIT_FAILURE; } } if (opt_index < argc) { - fprintf (stderr, - "Unused positional parameter: %s\n", - argv[opt_index]); - return 1; + fprintf (stderr, "Unused positional parameter: %s\n", argv[opt_index]); + return EXIT_FAILURE; } - tag_ops = tag_op_list_create (ctx); + tag_ops = tag_op_list_create (config); if (tag_ops == NULL) { fprintf (stderr, "Out of memory.\n"); - return 1; + return EXIT_FAILURE; } do { @@ -198,7 +188,7 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) /* empty input file not considered an error */ if (line_len < 0) - return 0; + return EXIT_SUCCESS; } while ((line_len == 0) || (line[0] == '#') || @@ -226,7 +216,7 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) if (line_ctx != NULL) talloc_free (line_ctx); - line_ctx = talloc_new (ctx); + line_ctx = talloc_new (config); if (input_format == DUMP_FORMAT_SUP) { ret = parse_sup_line (line_ctx, line, &query_string, tag_ops); } else { @@ -280,5 +270,5 @@ notmuch_restore_command (unused (void *ctx), int argc, char *argv[]) if (input != stdin) fclose (input); - return ret; + return ret ? EXIT_FAILURE : EXIT_SUCCESS; }