]> git.cworth.org Git - notmuch/commitdiff
Merge branch 'release'
authorDavid Bremner <david@tethera.net>
Sat, 23 Sep 2023 11:43:44 +0000 (08:43 -0300)
committerDavid Bremner <david@tethera.net>
Sat, 23 Sep 2023 11:43:44 +0000 (08:43 -0300)
NEWS
bindings/python/notmuch/version.py
debian/changelog
lib/config.cc
lib/notmuch-private.h
lib/open.cc
notmuch.c
test/T030-config.sh
version.txt

diff --git a/NEWS b/NEWS
index 00f4fe47d94bce570edf1332f2c83d1163d837ae..34bdfca21bc2415a5bbd7c2e12872ffc7b70b6a1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+Notmuch 0.38.1 (UNRELEASED)
+===========================
+
 Notmuch 0.38 (2023-09-12)
 =========================
 
index c847a1a3abc7f8627d528aa141975eb256849d8c..af97e6d1d704f8c34dd4ff75185cde9e74a0a21e 100644 (file)
@@ -1,3 +1,3 @@
 # this file should be kept in sync with ../../../version
-__VERSION__ = '0.38'
+__VERSION__ = '0.38.1~pre0'
 SOVERSION = '5'
index c2c2f6abadca96ca6166f27bbded349d5a7d5036..eec70b0522548aa27c19322d82d733b667601233 100644 (file)
@@ -1,3 +1,9 @@
+notmuch (0.38.1~pre0-1) UNRELEASED; urgency=medium
+
+  * New upstream release release candidate
+
+ -- David Bremner <bremner@debian.org>  Sat, 23 Sep 2023 08:15:19 -0300
+
 notmuch (0.38-2) unstable; urgency=medium
 
   * Restrict autopkgtests to amd64 and aarch64. There are failures in
index 2323860dbc3ba7a999c698944b22fe43ad28e376..6cd15fab26bc16610e1c56e1b5e0019b41279259 100644 (file)
@@ -416,7 +416,8 @@ _expand_path (void *ctx, const char *key, const char *val)
 
 notmuch_status_t
 _notmuch_config_load_from_file (notmuch_database_t *notmuch,
-                               GKeyFile *file)
+                               GKeyFile *file,
+                               char **status_string)
 {
     notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
     gchar **groups = NULL, **keys, *val;
@@ -435,6 +436,7 @@ _notmuch_config_load_from_file (notmuch_database_t *notmuch,
        for (gchar **keys_p = keys; *keys_p; keys_p++) {
            char *absolute_key = talloc_asprintf (notmuch, "%s.%s", *grp,  *keys_p);
            char *normalized_val;
+           GError *gerr = NULL;
 
            /* If we opened from a given path, do not overwrite it */
            if (strcmp (absolute_key, "database.path") == 0 &&
@@ -442,7 +444,14 @@ _notmuch_config_load_from_file (notmuch_database_t *notmuch,
                notmuch->xapian_db)
                continue;
 
-           val = g_key_file_get_string (file, *grp, *keys_p, NULL);
+           val = g_key_file_get_string (file, *grp, *keys_p, &gerr);
+           if (gerr) {
+               if (status_string)
+                   IGNORE_RESULT (asprintf (status_string,
+                                            "GLib: %s\n",
+                                            gerr->message));
+               g_error_free (gerr);
+           }
            if (! val) {
                status = NOTMUCH_STATUS_FILE_ERROR;
                goto DONE;
index c19ee8e20a4b0c6785481509b921639a563c703f..367e23e610d0220df108eed1cc078694b10bfea9 100644 (file)
@@ -726,7 +726,7 @@ notmuch_status_t
 _notmuch_config_load_from_database (notmuch_database_t *db);
 
 notmuch_status_t
-_notmuch_config_load_from_file (notmuch_database_t *db, GKeyFile *file);
+_notmuch_config_load_from_file (notmuch_database_t *db, GKeyFile *file, char **status_string);
 
 notmuch_status_t
 _notmuch_config_load_defaults (notmuch_database_t *db);
index 54d1faf30127c8a72f3c96e838cf9d4edba7e70a..005872dc2c5877d5f0ac483b0ef2cec19b2ca85c 100644 (file)
@@ -555,7 +555,7 @@ _finish_open (notmuch_database_t *notmuch,
            goto DONE;
 
        if (key_file)
-           status = _notmuch_config_load_from_file (notmuch, key_file);
+           status = _notmuch_config_load_from_file (notmuch, key_file, &message);
        if (status)
            goto DONE;
 
@@ -961,7 +961,7 @@ notmuch_database_load_config (const char *database_path,
     }
 
     if (key_file) {
-       status = _notmuch_config_load_from_file (notmuch, key_file);
+       status = _notmuch_config_load_from_file (notmuch, key_file, &message);
        if (status)
            goto DONE;
     }
index 37286b8f491af6428c0d22c3222a01f85039a369..814b9e42a59f46ae675f24f688005ec22ab58914 100644 (file)
--- a/notmuch.c
+++ b/notmuch.c
@@ -563,6 +563,12 @@ main (int argc, char *argv[])
                                               NULL,
                                               &notmuch,
                                               &status_string);
+       if (status_string) {
+           fputs (status_string, stderr);
+           free (status_string);
+           status_string = NULL;
+       }
+
        switch (status) {
        case NOTMUCH_STATUS_NO_CONFIG:
            if (! (command->mode & NOTMUCH_COMMAND_CONFIG_CREATE)) {
@@ -584,6 +590,8 @@ main (int argc, char *argv[])
        case NOTMUCH_STATUS_SUCCESS:
            break;
        default:
+           fputs ("Error: unable to load config file.\n", stderr);
+           ret = 1;
            goto DONE;
        }
 
index ea0b4012b468ce44e3437f4608c9a5978032751f..621e0b69721091a5f7383db7db726004fadc2c4f 100755 (executable)
@@ -3,6 +3,8 @@
 test_description='"notmuch config"'
 . $(dirname "$0")/test-lib.sh || exit 1
 
+cp notmuch-config initial-config
+
 test_begin_subtest "Get string value"
 test_expect_equal "$(notmuch config get user.name)" "Notmuch Test Suite"
 
@@ -193,4 +195,17 @@ test_begin_subtest "get built_with.nonexistent prints false"
 output=$(notmuch config get built_with.nonexistent)
 test_expect_equal "$output" "false"
 
+test_begin_subtest "Bad utf8 reported as error"
+cp initial-config bad-config
+printf '[query]\nq3=from:\xff\n' >>bad-config
+test_expect_code 1 "notmuch --config=./bad-config config list"
+
+test_begin_subtest "Specific error message about bad utf8"
+notmuch --config=./bad-config config list 2>ERRORS
+cat <<EOF > EXPECTED
+GLib: Key file contains key “q3” with value “from:�” which is not UTF-8
+Error: unable to load config file.
+EOF
+test_expect_equal_file EXPECTED ERRORS
+
 test_done
index 1cbc8125942070be5bbec8e28ed7616fcff0b32a..cf30d88f52037ce8fde5624ee3db568084ed6acc 100644 (file)
@@ -1 +1 @@
-0.38
+0.38.1~pre0