branch: externals/denote
commit 1c771bd012c5f6336cbbd24af10ae3caad10f51b
Author: Noboru Ota <m...@nobiot.com>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    fix: 9ce9a24, which has error in determining the file ext
    
    Follow-up patch for GitHub issue #135 and this thread on "Issue with
    linking non-text files"
    
<https://lists.sr.ht/~protesilaos/denote/%3C871qm9vagf.fsf%40protesilaos.com%3E#%3c86lejapfp5....@nobiot.com%3E>
    
    This patch addresses two issues:
    
    1) The previous related commit 9ce9a24 does not correctly determine the
       file extension for the case when 'denote-file-type' is explicitly 
defined.
    
       When 'denote-file-type' is not org such as markdown-yaml, its extension
       is ".md", not the same as denote-file-type (markdown-yaml)
    
    2) 9ce9a24 does not address the case where you (rather edge one)
       (a) do not explicitly define 'denote-file-type' (thus org is
           assumed)
       (b) you create a denote file other than org
       (c) you create a non-denote file(s) with the same ID as (b).
    
    In the patch "or" expression is used so that we can prioritize
    'denote-file-type' and org file types, and then as a secondary priority
    look at 'denote--extensions'.  The sequence within this list is not
    explicitly define (I would assume it's the alphabetical order).
---
 denote.el | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/denote.el b/denote.el
index d662f292e1..3db2e7800d 100644
--- a/denote.el
+++ b/denote.el
@@ -779,9 +779,12 @@ whatever matches `denote-excluded-directories-regexp'."
         (car files)
       (seq-find
        (lambda (file)
-         (and (denote-file-is-note-p file)
-              (or (string= denote-file-type (file-name-extension file))
-                  (string= "org" (file-name-extension file)))))
+         (let ((file-extension (file-name-extension file :period)))
+           (and (denote-file-is-note-p file)
+                (or (string= (denote--file-extension denote-file-type)
+                             file-extension)
+                    (string= ".org" file-extension)
+                    (member file-extension (denote--extensions))))))
        files))))
 
 (define-obsolete-function-alias

Reply via email to