diff --git a/lisp/org.el b/lisp/org.el index cc2c09e3a..b0a6d8ef3 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -14567,19 +14567,20 @@ This uses the icalendar.el library." (tmpfile (make-temp-name (expand-file-name "orgics" tmpdir))) buf rtn b e) - (with-current-buffer frombuf - (icalendar-export-region (point-min) (point-max) tmpfile) - (setq buf (find-buffer-visiting tmpfile)) - (set-buffer buf) - (goto-char (point-min)) - (when (re-search-forward "^BEGIN:VEVENT" nil t) - (setq b (match-beginning 0))) - (goto-char (point-max)) - (when (re-search-backward "^END:VEVENT" nil t) - (setq e (match-end 0))) - (setq rtn (if (and b e) (concat (buffer-substring b e) "\n") ""))) - (kill-buffer buf) - (delete-file tmpfile) + (unwind-protect + (with-current-buffer frombuf + (icalendar-export-region (point-min) (point-max) tmpfile) + (setq buf (find-buffer-visiting tmpfile)) + (set-buffer buf) + (goto-char (point-min)) + (when (re-search-forward "^BEGIN:VEVENT" nil t) + (setq b (match-beginning 0))) + (goto-char (point-max)) + (when (re-search-backward "^END:VEVENT" nil t) + (setq e (match-end 0))) + (setq rtn (if (and b e) (concat (buffer-substring b e) "\n") ""))) + (when (and buf (buffer-live-p buf)) (kill-buffer buf)) + (delete-file tmpfile)) rtn)) (defun org-closest-date (start current prefer)