Deprecate the old notmuch new options, but keep them around for a
transitional period, overriding the top level options.
---
 notmuch-new.c |   31 +++++++++++++++++++++++++------
 1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/notmuch-new.c b/notmuch-new.c
index faa33f1..d425103 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -855,16 +855,21 @@ notmuch_new_command (notmuch_config_t *config, int argc, 
char *argv[])
     int opt_index;
     int i;
     notmuch_bool_t timer_is_active = FALSE;
-    notmuch_bool_t no_hooks = FALSE;
+    notmuch_bool_t no_hooks = notmuch_global_get_no_hooks (config);

-    add_files_state.verbose = FALSE;
-    add_files_state.debug = FALSE;
+    add_files_state.verbose = notmuch_global_get_verbose (config);
+    add_files_state.debug = notmuch_global_get_debug (config);
     add_files_state.output_is_a_tty = isatty (fileno (stdout));

+    /* transitional, these will go away */
+    notmuch_bool_t deprecated_verbose = FALSE;
+    notmuch_bool_t deprecated_debug = FALSE;
+    notmuch_bool_t deprecated_no_hooks = FALSE;
+
     notmuch_opt_desc_t options[] = {
-       { NOTMUCH_OPT_BOOLEAN,  &add_files_state.verbose, "verbose", 'v', 0 },
-       { NOTMUCH_OPT_BOOLEAN,  &add_files_state.debug, "debug", 'd', 0 },
-       { NOTMUCH_OPT_BOOLEAN,  &no_hooks, "no-hooks", 'n', 0 },
+       { NOTMUCH_OPT_BOOLEAN,  &deprecated_verbose, "verbose", 'v', 0 },
+       { NOTMUCH_OPT_BOOLEAN,  &deprecated_debug, "debug", 'd', 0 },
+       { NOTMUCH_OPT_BOOLEAN,  &deprecated_no_hooks, "no-hooks", 'n', 0 },
        { 0, 0, 0, 0, 0 }
     };

@@ -874,6 +879,20 @@ notmuch_new_command (notmuch_config_t *config, int argc, 
char *argv[])
        return 1;
     }

+    /* transitional, these will go away */
+    if (deprecated_verbose) {
+       add_files_state.verbose = deprecated_verbose;
+       fprintf (stderr, "Note: 'notmuch new --verbose' is deprecated. Please 
use 'notmuch --verbose new' instead.\n");
+    }
+    if (deprecated_debug) {
+       add_files_state.debug = deprecated_debug;
+       fprintf (stderr, "Note: 'notmuch new --debug' is deprecated. Please use 
'notmuch --debug new' instead.\n");
+    }
+    if (deprecated_no_hooks) {
+       no_hooks = deprecated_no_hooks;
+       fprintf (stderr, "Note: 'notmuch new --no-hooks' is deprecated. Please 
use 'notmuch --no-hooks new' instead.\n");
+    }
+
     add_files_state.new_tags = notmuch_config_get_new_tags (config, 
&add_files_state.new_tags_length);
     add_files_state.new_ignore = notmuch_config_get_new_ignore (config, 
&add_files_state.new_ignore_length);
     add_files_state.synchronize_flags = 
notmuch_config_get_maildir_synchronize_flags (config);
-- 
1.7.10.4

Reply via email to