emacs: Use package/output type variables where needed.
authorAlex Kost <alezost@gmail.com>
Sun, 28 Sep 2014 05:32:41 +0000 (09:32 +0400)
committerAlex Kost <alezost@gmail.com>
Sun, 28 Sep 2014 18:46:15 +0000 (22:46 +0400)
* emacs/guix-list.el (guix-package-list-type, guix-output-list-describe-type):
  Move to...
* emacs/guix-base.el: ... here.  Rename 'guix-output-list-describe-type' to
  'guix-package-info-type'.
* emacs/guix-info.el (guix-generation-info-insert-number): Use
  'guix-package-list-type'.
* emacs/guix.el (guix-get-show-packages): Use 'guix-package-info-type'.

emacs/guix-base.el
emacs/guix-info.el
emacs/guix-list.el
emacs/guix.el

index 98ce0bc..fb1cd97 100644 (file)
@@ -342,7 +342,25 @@ following keywords are available:
 (put 'guix-define-buffer-type 'lisp-indent-function 'defun)
 
 \f
-;;; Getting info about packages and generations
+;;; Getting and displaying info about packages and generations
+
+(defcustom guix-package-list-type 'output
+  "Define how to display packages in a list buffer.
+May be a symbol `package' or `output' (if `output', display each
+output on a separate line; if `package', display each package on
+a separate line)."
+  :type '(choice (const :tag "List of packages" package)
+                 (const :tag "List of outputs" output))
+  :group 'guix)
+
+(defcustom guix-package-info-type 'package
+  "Define how to display packages in an info buffer.
+May be a symbol `package' or `output' (if `output', display each
+output separately; if `package', display outputs inside a package
+information)."
+  :type '(choice (const :tag "Display packages" package)
+                 (const :tag "Display outputs" output))
+  :group 'guix)
 
 (defun guix-get-entries (entry-type search-type search-vals
                          &optional params)
index aefb32a..d0a320f 100644 (file)
@@ -620,7 +620,7 @@ ENTRY is an alist with package info."
   (guix-info-insert-action-button
    "Packages"
    (lambda (btn)
-     (guix-get-show-entries 'list 'package 'generation
+     (guix-get-show-entries 'list guix-package-list-type 'generation
                             (button-get btn 'number)))
    "Show installed packages for this generation"
    'number number)
index 3342175..6a4cdfc 100644 (file)
@@ -469,15 +469,6 @@ With prefix (if ARG is non-nil), describe entries marked with any mark."
   "Face used if a package is obsolete."
   :group 'guix-package-list)
 
-(defcustom guix-package-list-type 'output
-  "Define how to display packages in a list buffer.
-May be a symbol `package' or `output' (if `output', display each
-output on a separate line; if `package', display each package on
-a separate line)."
-  :type '(choice (const :tag "List of packages" package)
-                 (const :tag "List of outputs" output))
-  :group 'guix-package-list)
-
 (defcustom guix-package-list-generation-marking-enabled nil
   "If non-nil, allow putting marks in a list with 'generation packages'.
 
@@ -648,15 +639,6 @@ The specification is suitable for `guix-process-package-actions'."
           (upgrade . ?U)
           (delete  . ?D)))
 
-(defcustom guix-output-list-describe-type 'package
-  "Define how to describe outputs in a list buffer.
-May be a symbol `package' or `output' (if `output', describe only
-marked outputs; if `package', describe all outputs of the marked
-packages)."
-  :type '(choice (const :tag "Describe packages" package)
-                 (const :tag "Describe outputs" output))
-  :group 'guix-output-list)
-
 (let ((map guix-output-list-mode-map))
   (define-key map (kbd "RET") 'guix-output-list-describe)
   (define-key map (kbd "x")   'guix-output-list-execute)
@@ -721,9 +703,9 @@ The specification is suitable for `guix-process-output-actions'."
   "Describe outputs or packages marked with a general mark.
 If no entries are marked, describe the current output or package.
 With prefix (if ARG is non-nil), describe entries marked with any mark.
-Also see `guix-output-list-describe-type'."
+Also see `guix-package-info-type'."
   (interactive "P")
-  (if (eq guix-output-list-describe-type 'output)
+  (if (eq guix-package-info-type 'output)
       (guix-list-describe arg)
     (let* ((oids (or (apply #'guix-list-get-marked-id-list
                             (unless arg '(general)))
index f6e2023..a142516 100644 (file)
@@ -57,25 +57,19 @@ SEARCH-VALS.
 
 Results are displayed in the list buffer, unless a single package
 is found and `guix-list-single-package' is nil."
-  (let* ((list-params (guix-get-params-for-receiving
-                       'list guix-package-list-type))
-         (packages (guix-get-entries guix-package-list-type
-                                     search-type search-vals
-                                     list-params)))
+  (let ((packages (guix-get-entries guix-package-list-type
+                                    search-type search-vals
+                                    (guix-get-params-for-receiving
+                                     'list guix-package-list-type))))
     (if (or guix-list-single-package
             (cdr packages))
         (guix-set-buffer packages 'list guix-package-list-type
                          search-type search-vals)
-      (let* ((info-params (guix-get-params-for-receiving
-                           'info guix-package-list-type))
-             (packages (if (equal list-params info-params)
-                           packages
-                         ;; If we don't have required info, we should
-                         ;; receive it again
-                         (guix-get-entries guix-package-list-type
-                                           search-type search-vals
-                                           info-params))))
-        (guix-set-buffer packages 'info guix-package-list-type
+      (let ((packages (guix-get-entries guix-package-info-type
+                                        search-type search-vals
+                                        (guix-get-params-for-receiving
+                                         'info guix-package-info-type))))
+        (guix-set-buffer packages 'info guix-package-info-type
                          search-type search-vals)))))
 
 (defun guix-get-show-generations (search-type &rest search-vals)