org-diary-to-ical-string: Make sure that temporary file/buffer is cleaned
* lisp/org.el (org-diary-to-ical-string): Clean temporary file buffer on error. Reported-by: Alexei Gilev <gerardomoro37@gmail.com> Link: https://orgmode.org/list/CAF4Fj9gUBj4Ap4noTLP3aSG4owXJ2nydxaqwT4cF5x9DcdhQmg@mail.gmail.com
This commit is contained in:
parent
2e883b21a7
commit
351279ffae
27
lisp/org.el
27
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)
|
||||
|
|
Loading…
Reference in New Issue