[PATCH 2/4] notmuch-dump: convert to notmuch-opts argument handling.
Jani Nikula
jani at nikula.org
Tue Dec 6 12:43:38 PST 2011
On Sun, 4 Dec 2011 11:47:53 -0400, David Bremner <david at tethera.net> wrote:
> From: David Bremner <bremner at debian.org>
>
> The output file is handled via positional arguments. There are
> currently no "normal" options.
> ---
> notmuch-dump.c | 32 ++++++++++++++++++++------------
> 1 files changed, 20 insertions(+), 12 deletions(-)
>
> diff --git a/notmuch-dump.c b/notmuch-dump.c
> index a490917..6fbdc81 100644
> --- a/notmuch-dump.c
> +++ b/notmuch-dump.c
> @@ -19,6 +19,7 @@
> */
>
> #include "notmuch-client.h"
> +#include "notmuch-opts.h"
>
> int
> notmuch_dump_command (unused (void *ctx), int argc, char *argv[])
> @@ -41,27 +42,34 @@ notmuch_dump_command (unused (void *ctx), int argc, char *argv[])
> if (notmuch == NULL)
> return 1;
>
> - argc--; argv++; /* skip subcommand argument */
> + char *output_file_name = NULL;
> + int opt_index;
>
> - if (argc && strcmp (argv[0], "--") != 0) {
> + notmuch_opt_desc_t options[] = {
> + { "out-file", 'o', NOTMUCH_OPT_POSITION, 0, &output_file_name },
> + { 0, 0, 0, 0, 0 }
> + };
> +
> + opt_index = notmuch_parse_args (argc, argv, options, 1);
> +
> + if (opt_index < 0) {
> + /* diagnostics already printed */
> + exit(1);
return 1 rather than exit(1)?
BR,
Jani.
> + }
> +
> + if (output_file_name) {
> fprintf (stderr, "Warning: the output file argument of dump is deprecated.\n");
> - output = fopen (argv[0], "w");
> + output = fopen (output_file_name, "w");
> if (output == NULL) {
> fprintf (stderr, "Error opening %s for writing: %s\n",
> - argv[0], strerror (errno));
> + output_file_name, strerror (errno));
> return 1;
> }
> - argc--;
> - argv++;
> }
>
> - if (argc && strcmp (argv[0], "--") == 0){
> - argc--;
> - argv++;
> - }
>
> - if (argc) {
> - query_str = query_string_from_args (notmuch, argc, argv);
> + if (opt_index < argc) {
> + query_str = query_string_from_args (notmuch, argc-opt_index, argv+opt_index);
> if (query_str == NULL) {
> fprintf (stderr, "Out of memory.\n");
> return 1;
> --
> 1.7.7.3
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
More information about the notmuch
mailing list