summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2022-10-17 15:26:21 +0200
committerStefan Kangas <stefankangas@gmail.com>2022-10-17 15:26:34 +0200
commit40b734c5003c71dc533d588bb00ea51a983bd730 (patch)
tree05eb67127c447fab4383c98a80a6fec9b400c650
parent24b85b10e388303c9c871a65ccf5deeed19b04f8 (diff)
downloademacs-40b734c5003c71dc533d588bb00ea51a983bd730.tar.gz
emacs-40b734c5003c71dc533d588bb00ea51a983bd730.tar.bz2
emacs-40b734c5003c71dc533d588bb00ea51a983bd730.zip
Don't prune *.eln files in parent of eln-load-path
* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Don't prune *.eln files in parent directory of `native-comp-eln-load-path'. * test/lisp/emacs-lisp/comp-tests.el (test-native-compile-prune-cache/dont-delete-in-parent-of-cache): New test.
-rw-r--r--lisp/emacs-lisp/comp.el4
-rw-r--r--test/lisp/emacs-lisp/comp-tests.el11
2 files changed, 14 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 686c7aeb3db..460d260192d 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -4334,7 +4334,9 @@ of (commands) to run simultaneously."
;; `invocation-directory'.
(setq dir (expand-file-name dir invocation-directory))
(when (file-exists-p dir)
- (dolist (subdir (directory-files dir t))
+ (dolist (subdir (seq-filter
+ (lambda (f) (not (string-match (rx "/." (? ".") eos) f)))
+ (directory-files dir t)))
(when (and (file-directory-p subdir)
(file-writable-p subdir)
(not (equal (file-name-nondirectory
diff --git a/test/lisp/emacs-lisp/comp-tests.el b/test/lisp/emacs-lisp/comp-tests.el
index 97761cd728e..31f32dad1f5 100644
--- a/test/lisp/emacs-lisp/comp-tests.el
+++ b/test/lisp/emacs-lisp/comp-tests.el
@@ -59,4 +59,15 @@
(should (file-regular-p (expand-file-name "keep1.txt" c1)))
(should (file-regular-p (expand-file-name "keep2.txt" c2)))))
+(ert-deftest test-native-compile-prune-cache/dont-delete-in-parent-of-cache ()
+ (skip-unless (featurep 'native-compile))
+ (with-test-native-compile-prune-cache
+ (let ((f1 (expand-file-name "some.eln" (expand-file-name ".." testdir)))
+ (f2 (expand-file-name "some.eln" testdir)))
+ (with-temp-file f1 (insert "foo"))
+ (with-temp-file f2 (insert "foo"))
+ (native-compile-prune-cache)
+ (should (file-regular-p f1))
+ (should (file-regular-p f2)))))
+
;;; comp-tests.el ends here