From 8f29ccb8d734b885edd542f69fe9e3ef488c752d Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 30 Jun 2025 13:56:52 +0100 Subject: Canonicalize file paths before interning. * ennum.el (ennum-intern): Canonical file paths before interning. --- ennum.el | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ennum.el b/ennum.el index 57c2705..d32ca75 100644 --- a/ennum.el +++ b/ennum.el @@ -182,14 +182,17 @@ value of the last form in BODY." ;; changes? Yes, since we ask for an absolute working directory, we ;; should. (defun ennum-intern (filename) - (let* ((store-item - (expand-file-name (ennum-file-hash filename) + (let* ((canonical-file-path + (expand-file-name filename + (ennum-setting :working-directory))) + (store-item + (expand-file-name (ennum-file-hash canonical-file-path) (ennum-setting :store))) - (interned-path (expand-file-name (file-name-nondirectory filename) + (interned-path (expand-file-name (file-name-nondirectory canonical-file-path) store-item))) (unless (file-exists-p store-item) - (message "Interning %s in %s" filename store-item) - (ennum-copy filename interned-path t) + (message "Interning %s in %s" canonical-file-path store-item) + (ennum-copy canonical-file-path interned-path t) (ennum--set-file-modes-recursively store-item #o555 #o444 #o555)) interned-path)) -- cgit v1.2.3