branch: externals/denote commit 4c8c8d1552a87e02446938f4f842e2600d256709 Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
Harden conditionality when 'denote-file-prompt' returns nil This is related to commit 80d0afd about issue 131 on the GitHub mirror.[1] If the 'denote-directory' is empty, the file prompt will now return nil instead of throwing an exception. With this change we make sure to do the right thing in that scenario. [1] https://github.com/protesilaos/denote/issues/131 --- denote.el | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/denote.el b/denote.el index 75c50066c6..8d9d2edae0 100644 --- a/denote.el +++ b/denote.el @@ -2577,13 +2577,14 @@ whitespace-only), insert an ID-ONLY link." selected-text)) (identifier-only (or id-only (string-empty-p description))) (file-type (denote-filetype-heuristics (buffer-file-name)))) - (insert - (denote-link--format-link - target - (denote-link--file-type-format file-type identifier-only) - description)) - (unless (derived-mode-p 'org-mode) - (make-button beg (point) 'type 'denote-link-button)))) + (when target + (insert + (denote-link--format-link + target + (denote-link--file-type-format file-type identifier-only) + description)) + (unless (derived-mode-p 'org-mode) + (make-button beg (point) 'type 'denote-link-button))))) (defalias 'denote-link-insert-link 'denote-link "Alias of `denote-link' command.") @@ -2698,7 +2699,7 @@ With optional ID-ONLY as a prefix argument create a link that consists of just the identifier. Else try to also include the file's title. This has the same meaning as in `denote-link'." (interactive (list (denote-file-prompt) current-prefix-arg)) - (if (file-exists-p target) + (if (and target (file-exists-p target)) (denote-link target id-only) (call-interactively #'denote-link-after-creating))) @@ -3091,9 +3092,9 @@ file." "Like `denote-link' but for Org integration. This lets the user complete a link through the `org-insert-link' interface by first selecting the `denote:' hyperlink type." - (concat - "denote:" - (denote-retrieve-filename-identifier (denote-file-prompt)))) + (if-let ((file (denote-file-prompt))) + (concat "denote:" (denote-retrieve-filename-identifier file)) + (user-error "No files in `denote-directory'"))) (declare-function org-link-store-props "ol.el" (&rest plist)) (defvar org-store-link-plist)