From 1ae611c7e3e453655bd3500ee8b166f2959370d2 Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Thu, 17 Aug 2023 15:45:10 +0300 Subject: [PATCH] fixup! org-id-find-id-in-file: Prefer using temporary buffer * lisp/org-id.el (org-id-find-id-in-file): Fix Emacs 27 compatibility. Avoid modifications not captured by element cache. --- lisp/org-id.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/org-id.el b/lisp/org-id.el index a2c452b44..d09c61b06 100644 --- a/lisp/org-id.el +++ b/lisp/org-id.el @@ -677,13 +677,17 @@ optional argument MARKERP, return the position as a new marker." (let* ((visiting (find-buffer-visiting file)) (buffer (or visiting (if markerp (find-file-noselect file) - (get-buffer-create " *Org ID temp*" t))))) + (if (<= 2 (cdr (func-arity #'get-buffer-create))) + (get-buffer-create " *Org ID temp*" t) + ;; Emacs 27 does not yet have second argument. + (get-buffer-create " *Org ID temp*")))))) (unwind-protect (with-current-buffer buffer (unless (derived-mode-p 'org-mode) (org-mode)) (unless (or visiting markerp) (buffer-disable-undo) - (insert-file-contents file nil nil nil 'replace)) + (erase-buffer) + (insert-file-contents file)) (let ((pos (org-find-entry-with-id id))) (cond ((null pos) nil)