aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs
diff options
context:
space:
mode:
authorGravatar Tomi Ollila <tomi.ollila@iki.fi>2012-11-08 14:08:00 +0200
committerGravatar David Bremner <bremner@debian.org>2012-11-25 11:06:23 -0400
commit0a21fb98b2a7b80958e19711d904eb91e2234250 (patch)
tree7e4317e23b7bcb419498815e646d68a369e803cc /emacs
parent60b5bff53d16a6e78bd989179076f7450d63c2e3 (diff)
notmuch-show.el: handle the case where icalendar-import-buffer returns nil
icalendar-import-buffer can fail by an error signal (which have been witnessed) but according to its docstring it can also return nil when failing (it returns t when succeeding). Now that the error is caught by the caller of notmuch-show-inset-part-* functions in case icalendar-import-buffer returns nil an explicit error is signaled and unwind-protect takes care of deleting the temporary file (just in case, it is usually not written to the fs yet).
Diffstat (limited to 'emacs')
-rw-r--r--emacs/notmuch-show.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index ac7e644f..24db4c70 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -754,12 +754,15 @@ message at DEPTH in the current thread."
(replace-match "\n" nil nil))
(let ((file (make-temp-file "notmuch-ical"))
result)
- (icalendar-import-buffer file t)
- (set-buffer (get-file-buffer file))
- (setq result (buffer-substring (point-min) (point-max)))
- (set-buffer-modified-p nil)
- (kill-buffer (current-buffer))
- (delete-file file)
+ (unwind-protect
+ (progn
+ (unless (icalendar-import-buffer file t)
+ (error "Icalendar import error. See *icalendar-errors* for more information"))
+ (set-buffer (get-file-buffer file))
+ (setq result (buffer-substring (point-min) (point-max)))
+ (set-buffer-modified-p nil)
+ (kill-buffer (current-buffer)))
+ (delete-file file))
result)))
t)