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.
This commit is contained in:
Stefan Monnier 2023-05-22 18:49:26 +02:00 committed by Robert Pluim
parent 6f6071c526
commit 0abb79ca09

View file

@ -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.