summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2023-05-22 18:49:26 +0200
committerRobert Pluim <rpluim@gmail.com>2023-05-23 14:12:21 +0200
commit0abb79ca09a9d0118e2bae7a4d00cd8f8a537795 (patch)
tree29378d2f7c7d7d8fccc46e68ddec913f88927b22 /lisp/emacs-lisp
parent6f6071c52616cc30bc28083688a3ad8d70ce713e (diff)
downloademacs-0abb79ca09a9d0118e2bae7a4d00cd8f8a537795.tar.gz
emacs-0abb79ca09a9d0118e2bae7a4d00cd8f8a537795.tar.bz2
emacs-0abb79ca09a9d0118e2bae7a4d00cd8f8a537795.zip
Avoid duplicates when adding package dirs to load-path
Do not merge to master, we're going to delete this code there. * lisp/emacs-lisp/package.el (package-activate-1): Check if the path we're about to add is already in 'load-path', since package autoload files have been updating 'load-path' for a decade.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 0d90e4a4059..340ca9400fa 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -904,7 +904,12 @@ correspond to previously loaded files."
(package--reload-previously-loaded pkg-desc))
(with-demoted-errors "Error loading autoloads: %s"
(load (package--autoloads-file-name pkg-desc) nil t))
- (add-to-list 'load-path (directory-file-name pkg-dir)))
+ ;; FIXME: Since 2013 (commit 4fac34cee97a), the autoload files take
+ ;; care of changing the `load-path', so maybe it's time to
+ ;; remove this fallback code?
+ (unless (or (member (file-name-as-directory pkg-dir) load-path)
+ (member (directory-file-name pkg-dir) load-path))
+ (add-to-list 'load-path pkg-dir)))
;; Add info node.
(when (file-exists-p (expand-file-name "dir" pkg-dir))
;; FIXME: not the friendliest, but simple.