summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2015-02-14 15:06:27 -0200
committerArtur Malabarba <bruce.connor.am@gmail.com>2015-02-14 15:09:50 -0200
commitf4f4f93e42a0ae572a62c9f64b90e4401232d9f4 (patch)
tree5d4615babcfb396f06e6621c99b1704f7efebc3f /lisp/emacs-lisp
parent93888585deba41f7f67a83cda2c69927ffb130c8 (diff)
downloademacs-f4f4f93e42a0ae572a62c9f64b90e4401232d9f4.tar.gz
emacs-f4f4f93e42a0ae572a62c9f64b90e4401232d9f4.tar.bz2
emacs-f4f4f93e42a0ae572a62c9f64b90e4401232d9f4.zip
emacs-lisp/package.el (describe-package-1): Describe incompatibility.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package.el36
1 files changed, 23 insertions, 13 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 64a646a9896..d8a4fc9c846 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1817,8 +1817,9 @@ the table."
(built-in (eq pkg-dir 'builtin))
(installable (and archive (not built-in)))
(status (if desc (package-desc-status desc) "orphan"))
+ (incompatible-reason (package--incompatible-p desc))
(signed (if desc (package-desc-signed desc))))
- (when (string= status "incompat")
+ (when incompatible-reason
(setq status "incompatible"))
(prin1 name)
(princ " is ")
@@ -1850,6 +1851,12 @@ the table."
(if signed
(insert ".")
(insert " (unsigned).")))
+ (incompatible-reason
+ (insert (propertize "Incompatible" 'face font-lock-warning-face)
+ " because it depends on ")
+ (if (stringp incompatible-reason)
+ (insert "Emacs " incompatible-reason ".")
+ (insert "uninstallable packages.")))
(installable
(insert (capitalize status))
(insert " from " (format "%s" archive))
@@ -1870,19 +1877,22 @@ the table."
(setq reqs (if desc (package-desc-reqs desc)))
(when reqs
(insert " " (propertize "Requires" 'font-lock-face 'bold) ": ")
- (let ((first t)
- name vers text)
+ (let ((first t))
(dolist (req reqs)
- (setq name (car req)
- vers (cadr req)
- text (format "%s-%s" (symbol-name name)
- (package-version-join vers)))
- (cond (first (setq first nil))
- ((>= (+ 2 (current-column) (length text))
- (window-width))
- (insert ",\n "))
- (t (insert ", ")))
- (help-insert-xref-button text 'help-package name))
+ (let* ((name (car req))
+ (vers (cadr req))
+ (text (format "%s-%s" (symbol-name name)
+ (package-version-join vers)))
+ (reason (if (and (listp incompatible-reason)
+ (assq name incompatible-reason))
+ " (not available)" "")))
+ (cond (first (setq first nil))
+ ((>= (+ 2 (current-column) (length text) (length reason))
+ (window-width))
+ (insert ",\n "))
+ (t (insert ", ")))
+ (help-insert-xref-button text 'help-package name)
+ (insert reason)))
(insert "\n")))
(insert " " (propertize "Summary" 'font-lock-face 'bold)
": " (if desc (package-desc-summary desc)) "\n")