mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
notmuch release 0.38.1-1 for unstable (sid) [dgit]
[dgit distro=debian no-split --quilt=linear] -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmU69y8ACgkQA0U5G1Wq FSFXdRAAgxgPM5Gys4Dv6GVBm8UmzLKVKokkChlW3Gw/OsEn00QBAXeVZU/Vg5PA 3b5kmDSotmXoxbHgPrJQ2F20NMP2AMgDnOD7nYGY85VAgccdFPKPOkRYCihJxDva oOdt0f2BAUFNgH7DL2usUHJUO2Pjhb97zK5c4wY/akZLL2hnhA3uc9V9Zj2QJz9o IlpuaZLt755YCXRYlms9rlFItTqcLisULGu1ppnk1BK2JFK9zQQM27j0P5Gmq0Rq ArdLzVHo1+aLcMvUBmwqxgrSjogubwh6rqQF3X+ww09fTAZOAubV6QVIiXRQySVp P45nOiIrKLSUxw63cAdvD8kvub6okie0F+8adDGUjVWSPM9941yNAfM8KQCF+4rN VylpEjcCPSeGPv9aCtn7CVmBhYq6pLVHdwEWZmMQEltITj2QlobgGZ1YWDhAFS6+ jTt3uuXrbwWe69eS67tjvZlZYz3Gb0aLKmGALzydyblQhrQ6FQZ9IR9jZYyJWmr3 2ftk636HVDpDrapyqVFXZCY0EfEQNB+aI0j9KfjqpONpE218gtCT/pZsuXYLVaah Uo41O540ZNIoeAviHgiMM9sjRczWFtWoKVieBLGCUJkY6dhQXSNmSWcq3Lex6+BZ wmUAd3lfYE9MA9I/ruUhacKrlMsnlNWFazsQbqhRnkczCpMXouU= =6DHu -----END PGP SIGNATURE----- Merge tag 'debian/0.38.1-1' into debian/bookworm-backports notmuch release 0.38.1-1 for unstable (sid) [dgit] [dgit distro=debian no-split --quilt=linear]
This commit is contained in:
commit
75560c052b
12 changed files with 108 additions and 16 deletions
18
NEWS
18
NEWS
|
@ -1,3 +1,21 @@
|
||||||
|
Notmuch 0.38.1 (2023-10-26)
|
||||||
|
===========================
|
||||||
|
|
||||||
|
CLI
|
||||||
|
---
|
||||||
|
|
||||||
|
Report parse errors in config files.
|
||||||
|
|
||||||
|
Emacs
|
||||||
|
-----
|
||||||
|
|
||||||
|
Fix image toggling for Emacs >= 29.1.
|
||||||
|
|
||||||
|
notmuch-mutt
|
||||||
|
------------
|
||||||
|
|
||||||
|
Fix syntax error in script.
|
||||||
|
|
||||||
Notmuch 0.38 (2023-09-12)
|
Notmuch 0.38 (2023-09-12)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# this file should be kept in sync with ../../../version
|
# this file should be kept in sync with ../../../version
|
||||||
__VERSION__ = '0.38'
|
__VERSION__ = '0.38.1'
|
||||||
SOVERSION = '5'
|
SOVERSION = '5'
|
||||||
|
|
|
@ -67,7 +67,7 @@ sub check_search_cache_maildir($) {
|
||||||
foreach my $d (@contents) {
|
foreach my $d (@contents) {
|
||||||
-l "$maildir/$d" and die_dir( $maildir, "contains symlink $d");
|
-l "$maildir/$d" and die_dir( $maildir, "contains symlink $d");
|
||||||
-d "$maildir/$d" or die_dir( $maildir, "contains non-directory $d");
|
-d "$maildir/$d" or die_dir( $maildir, "contains non-directory $d");
|
||||||
exists($required[$d]) or die_dir( $maildir, "contains directory $d");
|
exists($required{$d}) or die_dir( $maildir, "contains directory $d");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
18
debian/changelog
vendored
18
debian/changelog
vendored
|
@ -1,3 +1,21 @@
|
||||||
|
notmuch (0.38.1-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream bugfix release
|
||||||
|
|
||||||
|
-- David Bremner <bremner@debian.org> Thu, 26 Oct 2023 19:58:42 -0300
|
||||||
|
|
||||||
|
notmuch (0.38.1~rc1-1) experimental; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release candidate
|
||||||
|
|
||||||
|
-- David Bremner <bremner@debian.org> Thu, 12 Oct 2023 19:53:10 -0300
|
||||||
|
|
||||||
|
notmuch (0.38.1~pre0-1) experimental; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release candidate
|
||||||
|
|
||||||
|
-- David Bremner <bremner@debian.org> Sun, 01 Oct 2023 08:14:17 -0300
|
||||||
|
|
||||||
notmuch (0.38-2~bpo12+1) bookworm-backports; urgency=medium
|
notmuch (0.38-2~bpo12+1) bookworm-backports; urgency=medium
|
||||||
|
|
||||||
* Rebuild for bookworm-backports.
|
* Rebuild for bookworm-backports.
|
||||||
|
|
|
@ -703,6 +703,7 @@ current buffer, if possible."
|
||||||
(when (mm-inlinable-p handle)
|
(when (mm-inlinable-p handle)
|
||||||
(set-buffer display-buffer)
|
(set-buffer display-buffer)
|
||||||
(mm-display-part handle)
|
(mm-display-part handle)
|
||||||
|
(plist-put part :undisplayer (mm-handle-undisplayer handle))
|
||||||
t))))))
|
t))))))
|
||||||
|
|
||||||
;;; Generic Utilities
|
;;; Generic Utilities
|
||||||
|
|
|
@ -644,8 +644,24 @@ message at DEPTH in the current thread."
|
||||||
(when show
|
(when show
|
||||||
(button-put button :notmuch-lazy-part nil)
|
(button-put button :notmuch-lazy-part nil)
|
||||||
(notmuch-show-lazy-part lazy-part button))
|
(notmuch-show-lazy-part lazy-part button))
|
||||||
;; else there must be an overlay.
|
(let* ((part (plist-get properties :notmuch-part))
|
||||||
(overlay-put overlay 'invisible (not show))
|
(undisplayer (plist-get part :undisplayer))
|
||||||
|
(mime-type (plist-get part :computed-type))
|
||||||
|
(redisplay-data (button-get button
|
||||||
|
:notmuch-redisplay-data))
|
||||||
|
(imagep (string-match "^image/" mime-type)))
|
||||||
|
(cond
|
||||||
|
((and imagep (not show) undisplayer)
|
||||||
|
;; call undisplayer thunk created by gnus.
|
||||||
|
(funcall undisplayer)
|
||||||
|
;; there is an extra newline left
|
||||||
|
(delete-region
|
||||||
|
(+ 1 (button-end button))
|
||||||
|
(+ 2 (button-end button))))
|
||||||
|
((and imagep show redisplay-data)
|
||||||
|
(notmuch-show-lazy-part redisplay-data button))
|
||||||
|
(t
|
||||||
|
(overlay-put overlay 'invisible (not show)))))
|
||||||
t)))))))
|
t)))))))
|
||||||
|
|
||||||
;;; Part content ID handling
|
;;; Part content ID handling
|
||||||
|
@ -1019,10 +1035,13 @@ will return nil if the CID is unknown or cannot be retrieved."
|
||||||
(part-end (copy-marker (point) t))
|
(part-end (copy-marker (point) t))
|
||||||
;; We have to save the depth as we can't find the depth
|
;; We have to save the depth as we can't find the depth
|
||||||
;; when narrowed.
|
;; when narrowed.
|
||||||
(depth (notmuch-show-get-depth)))
|
(depth (notmuch-show-get-depth))
|
||||||
|
(mime-type (plist-get (cadr part-args) :computed-type)))
|
||||||
(save-restriction
|
(save-restriction
|
||||||
(narrow-to-region part-beg part-end)
|
(narrow-to-region part-beg part-end)
|
||||||
(delete-region part-beg part-end)
|
(delete-region part-beg part-end)
|
||||||
|
(when (and mime-type (string-match "^image/" mime-type))
|
||||||
|
(button-put button :notmuch-redisplay-data part-args))
|
||||||
(apply #'notmuch-show-insert-bodypart-internal part-args)
|
(apply #'notmuch-show-insert-bodypart-internal part-args)
|
||||||
(indent-rigidly part-beg
|
(indent-rigidly part-beg
|
||||||
part-end
|
part-end
|
||||||
|
@ -1106,14 +1125,18 @@ is t, hide the part initially and show the button."
|
||||||
(and deep button)
|
(and deep button)
|
||||||
(and high button)
|
(and high button)
|
||||||
(and long button))))
|
(and long button))))
|
||||||
(content-beg (point)))
|
(content-beg (point))
|
||||||
|
(part-data (list msg part mime-type nth depth button)))
|
||||||
;; Store the computed mime-type for later use (e.g. by attachment handlers).
|
;; Store the computed mime-type for later use (e.g. by attachment handlers).
|
||||||
(plist-put part :computed-type mime-type)
|
(plist-put part :computed-type mime-type)
|
||||||
(if show-part
|
(cond
|
||||||
(notmuch-show-insert-bodypart-internal msg part mime-type nth depth button)
|
(show-part
|
||||||
|
(apply #'notmuch-show-insert-bodypart-internal part-data)
|
||||||
|
(when (and button (string-match "^image/" mime-type))
|
||||||
|
(button-put button :notmuch-redisplay-data part-data)))
|
||||||
|
(t
|
||||||
(when button
|
(when button
|
||||||
(button-put button :notmuch-lazy-part
|
(button-put button :notmuch-lazy-part part-data))))
|
||||||
(list msg part mime-type nth depth button))))
|
|
||||||
;; Some of the body part handlers leave point somewhere up in the
|
;; Some of the body part handlers leave point somewhere up in the
|
||||||
;; part, so we make sure that we're down at the end.
|
;; part, so we make sure that we're down at the end.
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
|
|
|
@ -416,7 +416,8 @@ _expand_path (void *ctx, const char *key, const char *val)
|
||||||
|
|
||||||
notmuch_status_t
|
notmuch_status_t
|
||||||
_notmuch_config_load_from_file (notmuch_database_t *notmuch,
|
_notmuch_config_load_from_file (notmuch_database_t *notmuch,
|
||||||
GKeyFile *file)
|
GKeyFile *file,
|
||||||
|
char **status_string)
|
||||||
{
|
{
|
||||||
notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
|
notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
|
||||||
gchar **groups = NULL, **keys, *val;
|
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++) {
|
for (gchar **keys_p = keys; *keys_p; keys_p++) {
|
||||||
char *absolute_key = talloc_asprintf (notmuch, "%s.%s", *grp, *keys_p);
|
char *absolute_key = talloc_asprintf (notmuch, "%s.%s", *grp, *keys_p);
|
||||||
char *normalized_val;
|
char *normalized_val;
|
||||||
|
GError *gerr = NULL;
|
||||||
|
|
||||||
/* If we opened from a given path, do not overwrite it */
|
/* If we opened from a given path, do not overwrite it */
|
||||||
if (strcmp (absolute_key, "database.path") == 0 &&
|
if (strcmp (absolute_key, "database.path") == 0 &&
|
||||||
|
@ -442,7 +444,14 @@ _notmuch_config_load_from_file (notmuch_database_t *notmuch,
|
||||||
notmuch->xapian_db)
|
notmuch->xapian_db)
|
||||||
continue;
|
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) {
|
if (! val) {
|
||||||
status = NOTMUCH_STATUS_FILE_ERROR;
|
status = NOTMUCH_STATUS_FILE_ERROR;
|
||||||
goto DONE;
|
goto DONE;
|
||||||
|
|
|
@ -726,7 +726,7 @@ notmuch_status_t
|
||||||
_notmuch_config_load_from_database (notmuch_database_t *db);
|
_notmuch_config_load_from_database (notmuch_database_t *db);
|
||||||
|
|
||||||
notmuch_status_t
|
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_status_t
|
||||||
_notmuch_config_load_defaults (notmuch_database_t *db);
|
_notmuch_config_load_defaults (notmuch_database_t *db);
|
||||||
|
|
|
@ -555,7 +555,7 @@ _finish_open (notmuch_database_t *notmuch,
|
||||||
goto DONE;
|
goto DONE;
|
||||||
|
|
||||||
if (key_file)
|
if (key_file)
|
||||||
status = _notmuch_config_load_from_file (notmuch, key_file);
|
status = _notmuch_config_load_from_file (notmuch, key_file, &message);
|
||||||
if (status)
|
if (status)
|
||||||
goto DONE;
|
goto DONE;
|
||||||
|
|
||||||
|
@ -961,7 +961,7 @@ notmuch_database_load_config (const char *database_path,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key_file) {
|
if (key_file) {
|
||||||
status = _notmuch_config_load_from_file (notmuch, key_file);
|
status = _notmuch_config_load_from_file (notmuch, key_file, &message);
|
||||||
if (status)
|
if (status)
|
||||||
goto DONE;
|
goto DONE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -563,6 +563,12 @@ main (int argc, char *argv[])
|
||||||
NULL,
|
NULL,
|
||||||
¬much,
|
¬much,
|
||||||
&status_string);
|
&status_string);
|
||||||
|
if (status_string) {
|
||||||
|
fputs (status_string, stderr);
|
||||||
|
free (status_string);
|
||||||
|
status_string = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case NOTMUCH_STATUS_NO_CONFIG:
|
case NOTMUCH_STATUS_NO_CONFIG:
|
||||||
if (! (command->mode & NOTMUCH_COMMAND_CONFIG_CREATE)) {
|
if (! (command->mode & NOTMUCH_COMMAND_CONFIG_CREATE)) {
|
||||||
|
@ -584,6 +590,8 @@ main (int argc, char *argv[])
|
||||||
case NOTMUCH_STATUS_SUCCESS:
|
case NOTMUCH_STATUS_SUCCESS:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
fputs ("Error: unable to load config file.\n", stderr);
|
||||||
|
ret = 1;
|
||||||
goto DONE;
|
goto DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
test_description='"notmuch config"'
|
test_description='"notmuch config"'
|
||||||
. $(dirname "$0")/test-lib.sh || exit 1
|
. $(dirname "$0")/test-lib.sh || exit 1
|
||||||
|
|
||||||
|
cp notmuch-config initial-config
|
||||||
|
|
||||||
test_begin_subtest "Get string value"
|
test_begin_subtest "Get string value"
|
||||||
test_expect_equal "$(notmuch config get user.name)" "Notmuch Test Suite"
|
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)
|
output=$(notmuch config get built_with.nonexistent)
|
||||||
test_expect_equal "$output" "false"
|
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:<3A>” which is not UTF-8
|
||||||
|
Error: unable to load config file.
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file EXPECTED ERRORS
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
0.38
|
0.38.1
|
||||||
|
|
Loading…
Reference in a new issue