diff options
author | Tomi Ollila <tomi.ollila@iki.fi> | 2012-11-08 14:08:00 +0200 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2012-11-25 11:06:23 -0400 |
commit | 0a21fb98b2a7b80958e19711d904eb91e2234250 (patch) | |
tree | 7e4317e23b7bcb419498815e646d68a369e803cc /emacs | |
parent | 60b5bff53d16a6e78bd989179076f7450d63c2e3 (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.el | 15 |
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) |