branch: master
commit 3bda0cc8da27db655ec538be9a1d5ca582767323
Author: Artur Malabarba
Commit: Artur Malabarba
packages/package-fixes: Finalize code
---
packages/package-fixes/package-fixes.el | 168 ---
1 files changed, 44 insertions(+), 124 deletions(-)
diff --git a/packages/package-fixes/package-fixes.el
b/packages/package-fixes/package-fixes.el
index d480232..c0324e8 100644
--- a/packages/package-fixes/package-fixes.el
+++ b/packages/package-fixes/package-fixes.el
@@ -26,31 +26,40 @@
;; macro changes. It is designed to be required as a dependency by
;; packages whose installation is affected by these bugs.
-;; This package can be safely installed on recent Emacsen, in which
+;; This package can be safely installed on Emacs >= 25, in which
;; case it does nothing.
;;; Code:
-(require 'package)
-(require 'find-func)
-
+
+;;; Emacs < 25
(unless (fboundp 'package--list-loaded-files)
-
- (defun package--autoloads-file-name (pkg-desc)
+ (require 'package)
+ (require 'find-func)
+
+ (declare-function package-fixes--autoloads-file-name "package-fixes")
+ (declare-function find-library-name "find-func")
+ (declare-function package-fixes--list-loaded-files "package-fixes")
+ (declare-function package-fixes--activate-autoloads-and-load-path
"package-fixes")
+
+ ;; None of these functions are defined in Emacs < 25.1. Defining
+ ;; them here doesn't actually do anything yet, they will be used by
+ ;; the advices below.
+ (defun package-fixes--autoloads-file-name (pkg-desc)
"Return the absolute name of the autoloads file, sans extension.
PKG-DESC is a `package-desc' object."
(expand-file-name
(format "%s-autoloads" (package-desc-name pkg-desc))
(package-desc-dir pkg-desc)))
- (defun package--activate-autoloads-and-load-path (pkg-desc)
+ (defun package-fixes--activate-autoloads-and-load-path (pkg-desc)
"Load the autoloads file and add package dir to `load-path'.
PKG-DESC is a `package-desc' object."
(let* ((old-lp load-path)
(pkg-dir (package-desc-dir pkg-desc))
(pkg-dir-dir (file-name-as-directory pkg-dir)))
(with-demoted-errors "Error loading autoloads: %s"
-(load (package--autoloads-file-name pkg-desc) nil t))
+(load (package-fixes--autoloads-file-name pkg-desc) nil t))
(when (and (eq old-lp load-path)
(not (or (member pkg-dir load-path)
(member pkg-dir-dir load-path
@@ -58,16 +67,7 @@ PKG-DESC is a `package-desc' object."
;; do it ourselves.
(push pkg-dir load-path
- (defvar warning-minimum-level)
- (defun package--compile (pkg-desc)
-"Byte-compile installed package PKG-DESC."
-(let ((warning-minimum-level :error)
- (save-silently inhibit-message)
- (load-path load-path))
- (package--activate-autoloads-and-load-path pkg-desc)
- (byte-recompile-directory (package-desc-dir pkg-desc) 0 t)))
-
- (defun package--list-loaded-files (dir)
+ (defun package-fixes--list-loaded-files (dir)
"Recursively list all files in DIR which correspond to loaded features.
Returns the `file-name-sans-extension' of each file, relative to
DIR, sorted by most recently loaded last."
@@ -101,15 +101,15 @@ DIR, sorted by most recently loaded last."
;; Sort the files by ascending HISTORY-POSITION.
(lambda (x y) (< (cdr x) (cdr y
- (defun package--load-files-for-activation (pkg-desc reload)
+ (defun package-fixes--load-files-for-activation (pkg-desc reload)
"Load files for activating a package given by PKG-DESC.
Load the autoloads file, and ensure `load-path' is setup. If
RELOAD is non-nil, also load all files in the package that
correspond to previously loaded files."
(let* ((loaded-files-list (when reload
-(package--list-loaded-files (package-desc-dir
pkg-desc)
+(package-fixes--list-loaded-files
(package-desc-dir pkg-desc)
;; Add to load path, add autoloads, and activate the package.
- (package--activate-autoloads-and-load-path pkg-desc)
+ (package-fixes--activate-autoloads-and-load-path pkg-desc)
;; Call `load' on all files in `package-desc-dir' already present in
;; `load-history'. This is done so that macros in these files are
updated
;; to their new definitions. If another package is being installed which
@@ -118,111 +118,31 @@ correspond to previously loaded files."
(with-demoted-errors "Error in package--load-files-for-activation: %s"
(mapc (lambda (feature) (load feature nil t))
;; Skip autoloads file since we already evaluated it above.
- (remove (file-truename (package--autoloads-file-name pkg-desc))
+ (remove (file-truename (package-fixes--autoloads-file-name
pkg-desc))
loaded-files-list)
- (