summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS14
-rw-r--r--bindings/python/notmuch/version.py2
-rw-r--r--debian/changelog9
-rw-r--r--doc/Makefile.local8
-rw-r--r--lib/string-map.c2
-rwxr-xr-xtest/T610-message-property.sh35
-rw-r--r--version2
7 files changed, 69 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index 2a69b0be..9fcb57ed 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,20 @@ Command Line Interface
`notmuch show` now supports --body=false and --include-html with
--format=text
+Notmuch 0.28.3 (2019-03-05)
+===========================
+
+Library
+-------
+
+Fix a bug with the internal data structure _notmuch_string_map_t used
+by message properties.
+
+Build System
+------------
+
+Serialize calls to sphinx-build to avoid race condition.
+`
Notmuch 0.28.2 (2019-02-17)
===========================
diff --git a/bindings/python/notmuch/version.py b/bindings/python/notmuch/version.py
index f376f6e6..8217eabf 100644
--- a/bindings/python/notmuch/version.py
+++ b/bindings/python/notmuch/version.py
@@ -1,3 +1,3 @@
# this file should be kept in sync with ../../../version
-__VERSION__ = '0.28.2'
+__VERSION__ = '0.28.3'
SOVERSION = '5'
diff --git a/debian/changelog b/debian/changelog
index 9ed2547e..8afd985b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+notmuch (0.28.3-1) unstable; urgency=medium
+
+ * New upstream bugfix release.
+ * Fix for bug in message property search
+ * Fix for race condition leading to (very) occasional build failures
+ when building the documentation.
+
+ -- David Bremner <bremner@debian.org> Tue, 05 Mar 2019 15:39:09 -0400
+
notmuch (0.28.2-1) unstable; urgency=medium
* [notmuch-emacs] Invoke gpg from with --batch and --no-tty
diff --git a/doc/Makefile.local b/doc/Makefile.local
index f53b3702..bab3d0d2 100644
--- a/doc/Makefile.local
+++ b/doc/Makefile.local
@@ -41,6 +41,14 @@ ifeq ($(WITH_EMACS),1)
$(DOCBUILDDIR)/.roff.stamp sphinx-html sphinx-texinfo: docstring.stamp
endif
+# Sequentialize the calls to sphinx-build to avoid races with
+# reading/writing cached state. This uses GNU make specific
+# "order-only" prerequisites.
+
+sphinx-html: | $(DOCBUILDDIR)/.roff.stamp
+sphinx-texinfo: | sphinx-html
+sphinx-info: | sphinx-texinfo
+
sphinx-html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(DOCBUILDDIR)/html
diff --git a/lib/string-map.c b/lib/string-map.c
index ad818207..a88404c7 100644
--- a/lib/string-map.c
+++ b/lib/string-map.c
@@ -106,7 +106,7 @@ _notmuch_string_map_sort (notmuch_string_map_t *map)
map->sorted = true;
}
-static bool
+static int
string_cmp (const char *a, const char *b, bool exact)
{
if (exact)
diff --git a/test/T610-message-property.sh b/test/T610-message-property.sh
index 0abef824..53a0be3b 100755
--- a/test/T610-message-property.sh
+++ b/test/T610-message-property.sh
@@ -100,6 +100,41 @@ cat <<'EOF' >EXPECTED
EOF
test_expect_equal_file EXPECTED OUTPUT
+test_begin_subtest "testing string map binary search (via message properties)"
+cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
+{
+ char *keys[] = {"a", "b", "c", "d", "e", NULL};
+ for (int i=0; keys[i]; i++)
+ EXPECT0(notmuch_message_add_property (message, keys[i], keys[i]));
+
+ for (int i=0; keys[i]; i++) {
+ EXPECT0(notmuch_message_get_property (message, keys[i], &val));
+ printf("%s = %s\n", keys[i], val);
+ }
+
+ for (int i=0; keys[i]; i++) {
+ EXPECT0(notmuch_message_remove_property (message, keys[i], keys[i]));
+ EXPECT0(notmuch_message_get_property (message, keys[i], &val));
+ printf("%s = %s\n", keys[i], val == NULL ? "NULL" : val);
+ }
+}
+EOF
+cat <<EOF > EXPECTED
+== stdout ==
+a = a
+b = b
+c = c
+d = d
+e = e
+a = NULL
+b = NULL
+c = NULL
+d = NULL
+e = NULL
+== stderr ==
+EOF
+test_expect_equal_file EXPECTED OUTPUT
+
test_begin_subtest "notmuch_message_get_properties: empty list"
cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR}
{
diff --git a/version b/version
index a37255a8..b79f04f4 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-0.28.2
+0.28.3