about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2025-06-30 13:56:52 +0100
committerArun Isaac2025-06-30 15:36:48 +0100
commit8f29ccb8d734b885edd542f69fe9e3ef488c752d (patch)
tree2b2149b8d9b0b58c86b4a06bb18aac2001b3d64d
parentf9a4628c94893937ea8f393b3b060acbaa888c61 (diff)
downloadennum-8f29ccb8d734b885edd542f69fe9e3ef488c752d.tar.gz
ennum-8f29ccb8d734b885edd542f69fe9e3ef488c752d.tar.lz
ennum-8f29ccb8d734b885edd542f69fe9e3ef488c752d.zip
Canonicalize file paths before interning.
* ennum.el (ennum-intern): Canonical file paths before interning.
-rw-r--r--ennum.el13
1 files 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))