]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-config.c
Merge tag '0.25.1'
[notmuch] / notmuch-config.c
index b202bb1e229988f21b2807e49b0c62c60cf5991e..cb9529b90912d601f214a1f62147fa7b6265ce91 100644 (file)
@@ -104,10 +104,20 @@ static const char search_config_comment[] =
 static const char crypto_config_comment[] =
     " Cryptography related configuration\n"
     "\n"
-    " The following option is supported here:\n"
+#if (GMIME_MAJOR_VERSION < 3)
+    " The following *deprecated* option is currently supported:\n"
     "\n"
     "\tgpg_path\n"
-    "\t\tbinary name or full path to invoke gpg.\n";
+    "\t\tbinary name or full path to invoke gpg.\n"
+    "\t\tNOTE: In a future build, this option will be ignored.\n"
+#else
+    " The following old option is now ignored:\n"
+    "\n"
+    "\tgpgpath\n"
+    "\t\tThis option was used by older builds of notmuch to choose\n"
+    "\t\tthe version of gpg to use.\n"
+#endif
+    "\t\tSetting $PATH is a better approach.\n";
 
 struct _notmuch_config {
     char *filename;
@@ -215,24 +225,23 @@ get_config_from_file (notmuch_config_t *config, notmuch_bool_t create_new)
 
     FILE *fp = fopen(config->filename, "r");
     if (fp == NULL) {
-       /* If create_new is true, then the caller is prepared for a
-        * default configuration file in the case of FILE NOT FOUND.
-        */
-       if (create_new) {
-           config->is_new = TRUE;
-           ret = TRUE;
-           goto out;
-       } else if (errno == ENOENT) {
-           fprintf (stderr, "Configuration file %s not found.\n"
-                    "Try running 'notmuch setup' to create a configuration.\n",
-                    config->filename);
-           goto out;
+       if (errno == ENOENT) {
+           /* If create_new is true, then the caller is prepared for a
+            * default configuration file in the case of FILE NOT FOUND.
+            */
+           if (create_new) {
+               config->is_new = TRUE;
+               ret = TRUE;
+           } else {
+               fprintf (stderr, "Configuration file %s not found.\n"
+                        "Try running 'notmuch setup' to create a configuration.\n",
+                        config->filename);
+           }
        } else {
-           fprintf (stderr, "Error opening config file '%s': %s\n"
-                    "Try running 'notmuch setup' to create a configuration.\n",
+           fprintf (stderr, "Error opening config file '%s': %s\n",
                     config->filename, strerror(errno));
-           goto out;
        }
+       goto out;
     }
 
     config_str = talloc_zero_array (config, char, config_bufsize);
@@ -322,7 +331,7 @@ out:
 notmuch_config_t *
 notmuch_config_open (void *ctx,
                     const char *filename,
-                    notmuch_bool_t create_new)
+                    notmuch_config_mode_t config_mode)
 {
     GError *error = NULL;
     size_t tmp;
@@ -356,9 +365,13 @@ notmuch_config_open (void *ctx,
 
     config->key_file = g_key_file_new ();
 
-    if (! get_config_from_file (config, create_new)) {
-       talloc_free (config);
-       return NULL;
+    if (config_mode & NOTMUCH_CONFIG_OPEN) {
+       notmuch_bool_t create_new = (config_mode & NOTMUCH_CONFIG_CREATE) != 0;
+
+       if (! get_config_from_file (config, create_new)) {
+           talloc_free (config);
+           return NULL;
+       }
     }
 
     /* Whenever we know of configuration sections that don't appear in
@@ -457,10 +470,12 @@ notmuch_config_open (void *ctx,
        g_error_free (error);
     }
 
+#if (GMIME_MAJOR_VERSION < 3)
     if (notmuch_config_get_crypto_gpg_path (config) == NULL) {
        notmuch_config_set_crypto_gpg_path (config, "gpg");
     }
-    
+#endif
+
     /* Whenever we know of configuration sections that don't appear in
      * the configuration file, we add some comments to help the user
      * understand what can be done. */
@@ -749,6 +764,7 @@ notmuch_config_set_search_exclude_tags (notmuch_config_t *config,
                      &(config->search_exclude_tags));
 }
 
+#if (GMIME_MAJOR_VERSION < 3)
 const char *
 notmuch_config_get_crypto_gpg_path (notmuch_config_t *config)
 {
@@ -761,6 +777,7 @@ notmuch_config_set_crypto_gpg_path (notmuch_config_t *config,
 {
     _config_set (config, &config->crypto_gpg_path, "crypto", "gpg_path", gpg_path);
 }
+#endif
 
 
 /* Given a configuration item of the form <group>.<key> return the