From 97a342fd3f0472e49407f38a136183231a556242 Mon Sep 17 00:00:00 2001 From: bing Date: Mon, 21 Feb 2022 02:05:12 +0800 Subject: [PATCH] (fix): `org-roam-descendant-of-p` bug on Windows (#2089) On Windows, `file-truename` and `directory-file-name` downcase driver label: "C:/" => "c:/", while `expand-file-name` keep the case unchanged. If `org-roam-directory` use upper case driver label, `org-roam-descendant-of-p` will alway return `nil`. Fix by only using `file-truename` in the function. --- extensions/org-roam-dailies.el | 2 +- org-roam-utils.el | 7 ------- org-roam.el | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/extensions/org-roam-dailies.el b/extensions/org-roam-dailies.el index e82d55d..5d63882 100644 --- a/extensions/org-roam-dailies.el +++ b/extensions/org-roam-dailies.el @@ -289,7 +289,7 @@ If FILE is not specified, use the current buffer's file-path." (save-match-data (and (org-roam-file-p path) - (org-roam-descendant-of-p path directory))))) + (file-in-directory-p path directory))))) ;;;###autoload (defun org-roam-dailies-find-directory () diff --git a/org-roam-utils.el b/org-roam-utils.el index f2e4ed9..9d3ccce 100644 --- a/org-roam-utils.el +++ b/org-roam-utils.el @@ -108,13 +108,6 @@ SPEC is a list, as per `dolist'." `(dolist-with-progress-reporter ,spec ,msg ,@body) `(dolist ,spec ,@body))) -;;; File utilities -(defun org-roam-descendant-of-p (a b) - "Return t if A is descendant of B." - (unless (equal (file-truename a) (file-truename b)) - (string-prefix-p (expand-file-name b) - (expand-file-name a)))) - (defmacro org-roam-with-file (file keep-buf-p &rest body) "Execute BODY within FILE. If FILE is nil, execute BODY in the current buffer. diff --git a/org-roam.el b/org-roam.el index d1d75e6..5b7b0f3 100644 --- a/org-roam.el +++ b/org-roam.el @@ -194,7 +194,7 @@ FILE is an Org-roam file if: (member ext org-roam-file-extensions) (not (and org-roam-file-exclude-regexp (string-match-p org-roam-file-exclude-regexp path))) - (org-roam-descendant-of-p path (expand-file-name org-roam-directory)))))) + (file-in-directory-p path (expand-file-name org-roam-directory)))))) (defun org-roam-list-files () "Return a list of all Org-roam files under `org-roam-directory'.