[PATCH] emacs: show: lazy part bugfix
Mark Walters
markwalters1009 at gmail.com
Fri Aug 23 01:34:35 PDT 2013
The lazy part handling had a subtle bug. Notmuch stores the part
information as a text property with the displayed part so attachment
handling (saving viewing etc work).
Now, some mime parts have subparts and to avoid overwriting the
sub-part data notmuch checks and if part data is already recorded it
does not overwrite it.
Now with lazy part handling this could fail: there is already part
data stored. In the common case it works as the part type information
was stored when the lazy-part button was inserted. However, this fails
if the lazy part has sub-parts: notmuch had no idea these existed
until the lazy part insertion.
We fix this by removing any existing part-information from the
relevant region before doing the lazy insertion.
---
This was shown up by Istvan's patch in id:m3r4dtgz9k.fsf at zsu.kismala.com and
the bug found by Jamie in id:87fvu4fl25.fsf at servo.finestructure.net
I think this is essentially the right patch: I am not certain about
the +1 in the removing the property. It seems to be needed but maybe
something with front/back sticky would be better.
Also this definitely needs more testing before going into master: this
code is definitely fragile.
Best wishes
Mark
emacs/notmuch-show.el | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 20844f0..a31b6dc 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -853,6 +853,9 @@ message at DEPTH in the current thread."
;; character of the button by adding a newline and finish by
;; removing the extra newline from the end of the part.
(save-excursion
+ ;; Remove part-information from lazy part-region
+ (put-text-property (button-start button) (1+ (button-end button)) :notmuch-part nil)
+
(goto-char (button-end button))
(insert "\n")
(let* ((inhibit-read-only t)
--
1.7.9.1
More information about the notmuch
mailing list