[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/package.el-reload-files-on-upgrade 300dbb1 1/6: *
From: |
Artur Malabarba |
Subject: |
[Emacs-diffs] scratch/package.el-reload-files-on-upgrade 300dbb1 1/6: * emacs-lisp/package.el (package--list-loaded-files): New function |
Date: |
Sat, 13 Dec 2014 02:47:43 +0000 |
branch: scratch/package.el-reload-files-on-upgrade
commit 300dbb1e183afd63721ee4e83e105e494b83d8d7
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
* emacs-lisp/package.el (package--list-loaded-files): New function
New function to list files in a given directory which correspond to
already loaded files.
---
lisp/ChangeLog | 6 ++++++
lisp/emacs-lisp/package.el | 36 +++++++++++++++++++++++-------------
2 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 454ee00..6c54dd5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2014-12-10 Artur Malabarba <address@hidden>
+
+ * emacs-lisp/package.el (package--list-loaded-files): New function
+ to list files in a given directory which correspond to already
+ loaded files.
+
2014-12-10 Andreas Schwab <address@hidden>
* files.el (file-tree-walk): Use file-name-as-directory
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 4e5c397..9caa5a2 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -543,19 +543,29 @@ Return the max version (as a string) if the package is
held at a lower version."
;; Don't return nil.
t))
-(defun package-built-in-p (package &optional min-version)
- "Return true if PACKAGE is built-in to Emacs.
-Optional arg MIN-VERSION, if non-nil, should be a version list
-specifying the minimum acceptable version."
- (if (package-desc-p package) ;; was built-in and then was converted
- (eq 'builtin (package-desc-dir package))
- (let ((bi (assq package package--builtin-versions)))
- (cond
- (bi (version-list-<= min-version (cdr bi)))
- ((remove 0 min-version) nil)
- (t
- (require 'finder-inf nil t) ; For `package--builtins'.
- (assq package package--builtins))))))
+(defun package-list-loaded-files (dir)
+ "List all files in DIR which correspond to loaded features.
+Returns the `file-name-base' of each file, sorted by most recently
+loaded last."
+ (let* ((history (mapcar (lambda (x) (file-name-sans-extension
+ (file-truename (car x))))
+ load-history))
+ ;; List all files that have already been loaded.
+ (list-of-conflicts
+ (remove
+ nil
+ (mapcar (lambda (x) (let* ((path (file-name-sans-extension
+ (file-truename
+ (find-library-name (file-name-base
x)))))
+ (pos (when path (member path history))))
+ ;; Return (FILENAME . HISTORY-POSITION)
+ (when pos (cons path (length pos)))))
+ (directory-files "./" nil "^[^\\.].*\\.el\\'" 'nosort)))))
+ ;; Turn the list of (FILENAME . POS) back into a list of features.
+ (mapcar (lambda (x) (file-name-base (car x)))
+ (sort list-of-conflicts
+ ;; Sort the files by ascending HISORY-POSITION.
+ (lambda (x y) (< (cdr x) (cdr y)))))))
(defun package--from-builtin (bi-desc)
(package-desc-create :name (pop bi-desc)
- [Emacs-diffs] branch scratch/package.el-reload-files-on-upgrade created (now 5675b0a), Artur Malabarba, 2014/12/12
- [Emacs-diffs] scratch/package.el-reload-files-on-upgrade 37cbe15 3/6: Revert accidental deletion of package-built-in-p, Artur Malabarba, 2014/12/12
- [Emacs-diffs] scratch/package.el-reload-files-on-upgrade 300dbb1 1/6: * emacs-lisp/package.el (package--list-loaded-files): New function,
Artur Malabarba <=
- [Emacs-diffs] scratch/package.el-reload-files-on-upgrade 93003f1 4/6: Typo, Artur Malabarba, 2014/12/12
- [Emacs-diffs] scratch/package.el-reload-files-on-upgrade 634cc69 5/6: (package-list-loaded-files) A couple of symbol refactorings, Artur Malabarba, 2014/12/12
- [Emacs-diffs] scratch/package.el-reload-files-on-upgrade ba1d269 2/6: emacs-lisp/package.el (package-activate-1): Reload package files after upgrade., Artur Malabarba, 2014/12/12
- [Emacs-diffs] scratch/package.el-reload-files-on-upgrade 5675b0a 6/6: (package--list-loaded-files) Return a recursive list of files, Artur Malabarba, 2014/12/12