This function makes the packages available to the current session.
The user option @code{package-load-list} specifies which packages to
make available; by default, all installed packages are made available.
-If called during startup, this function also sets
-@code{package-enable-at-startup} to @code{nil}, to avoid accidentally
-evaluating package autoloads more than once. @xref{Package
-Installation,,, emacs, The GNU Emacs Manual}.
+@xref{Package Installation,,, emacs, The GNU Emacs Manual}.
In most cases, you should not need to call @code{package-activate-all},
as this is done automatically during startup. Simply make sure to put
(dolist (archive package-archives)
(package-read-archive-contents (car archive))))
+\f
;;;; Package Initialize
;; A bit of a milestone. This brings together some of the above
;; sections and populates all relevant lists of packages from contents
;; available on disk.
-(defvar package--initialized nil)
+
+(defvar package--initialized nil
+ "Non-nil if `package-initialize' has been run.")
+
+;;;###autoload
+(defvar package--activated nil
+ "Non-nil if `package-activate-all' has been run.")
;;;###autoload
(defun package-initialize (&optional no-activate)
"Load Emacs Lisp packages, and activate them.
The variable `package-load-list' controls which packages to load.
If optional arg NO-ACTIVATE is non-nil, don't activate packages.
-If called as part of loading `user-init-file', set
-`package-enable-at-startup' to nil, to prevent accidentally
-loading packages twice.
It is not necessary to adjust `load-path' or `require' the
individual packages after calling `package-initialize' -- this is
(lwarn '(package reinitialization) :warning
"Unnecessary call to `package-initialize' in init file"))
(setq package-alist nil)
- (setq package-enable-at-startup nil)
(package-load-all-descriptors)
(package-read-all-archive-contents)
(setq package--initialized t)
(defun package-activate-all ()
"Activate all installed packages.
The variable `package-load-list' controls which packages to load."
- (setq package-enable-at-startup nil)
+ (setq package--activated t)
(if (file-readable-p package-quickstart-file)
;; Skip load-source-file-function which would slow us down by a factor
;; 2 (this assumes we were careful to save this file so it doesn't need
(when debug-on-error-should-be-set
(setq debug-on-error debug-on-error-from-init-file))))
+(defvar package--activated nil)
+
(defun command-line ()
"A subroutine of `normal-top-level'.
Amongst another things, it parses the command-line arguments."
;; If any package directory exists, initialize the package system.
(and user-init-file
package-enable-at-startup
+ (not package--activated)
(catch 'package-dir-found
(let (dirs)
(if (boundp 'package-directory-list)