From: Carl Worth Date: Wed, 21 Apr 2010 22:54:03 +0000 (-0700) Subject: notmuch: Abort if specified configuration file is not found. X-Git-Tag: 0.3~127 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=f41a35e2923b0b3ef2f66e91cd30e20b4c1a336a;ds=sidebyside notmuch: Abort if specified configuration file is not found. When there is no configuration file at all, (and none specified), notmuch works correctly by assuming correct default values. But when the user specifies a configuration file (with the NOTMUCH_CONFIG environment variable) and that file doesn't exist, then notmuch should aboirt and let the user know about the problem. --- diff --git a/notmuch-config.c b/notmuch-config.c index 95430db1..cc05f6c4 100644 --- a/notmuch-config.c +++ b/notmuch-config.c @@ -186,7 +186,6 @@ notmuch_config_open (void *ctx, config->filename = talloc_strdup (config, filename); } else if ((notmuch_config_env = getenv ("NOTMUCH_CONFIG"))) { config->filename = talloc_strdup (config, notmuch_config_env); - notmuch_config_env = NULL; } else { config->filename = talloc_asprintf (config, "%s/.notmuch-config", getenv ("HOME")); @@ -206,8 +205,12 @@ notmuch_config_open (void *ctx, &error)) { /* We are capable of dealing with a non-existent configuration - * file, so be silent about that. */ - if (!(error->domain == G_FILE_ERROR && + * file, so be silent about that (unless the user had set a + * non-default configuration file with the NOTMUCH_CONFIG + * variable) + */ + if (notmuch_config_env || + !(error->domain == G_FILE_ERROR && error->code == G_FILE_ERROR_NOENT)) { fprintf (stderr, "Error reading configuration file %s: %s\n",