branch: externals/denote
commit 63621dc37ba42e59102a438db9f10ad906761239
Author: Protesilaos Stavrou <[email protected]>
Commit: Protesilaos Stavrou <[email protected]>
Fix regression caused by commit c0db85d
What we ultimately want is to be able to extract data from a buffer,
though the previous version did not handle all cases gracefully. A
problem with that was how it would get the title of the current file
as the description of a link, even though it would correctly point to
the selected link target.
---
denote.el | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/denote.el b/denote.el
index 9279ebfba9..6131fbeb0c 100644
--- a/denote.el
+++ b/denote.el
@@ -1374,9 +1374,16 @@ Run `denote-desluggify' on title if the extraction is
sucessful."
"Return path to FILE or its buffer together with the appropriate function.
Subroutine of `denote--file-with-temp-buffer'."
(when file
- (if (file-exists-p file)
- (cons #'insert-file-contents buffer-file-name)
- (cons #'insert-buffer (get-file-buffer file)))))
+ (let ((buffer (get-file-buffer file))
+ (file-exists (file-exists-p file)))
+ (cond
+ ((or (and file-exists buffer (not (buffer-modified-p buffer)))
+ file-exists)
+ (cons #'insert-file-contents file))
+ (buffer
+ (cons #'insert-buffer buffer))
+ (t
+ (error "Cannot find anything about file `%s'" file))))))
(defmacro denote--file-with-temp-buffer (file &rest body)
"If FILE exists, insert its contents in a temp buffer and call BODY."