From 87fe9ecae5bc3ae0681a47e0ec6e6929d910664b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 22 Nov 2015 14:37:45 +0300 Subject: emacs: Generalize buffer reverting. This is a partial revert of commit d2b299a91f3be283df1264afe62770ab2783ace9. * emacs/guix-base.el (guix-revert-buffer): Make it more general by removing the code specific to a particular search (a search for packages/outputs by ID). Rename to... (guix-buffer-revert): ... this. --- emacs/guix-base.el | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) (limited to 'emacs/guix-base.el') diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 7592988fec..9b90942d09 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -235,7 +235,7 @@ If MODES is nil, return list of all Guix 'list' and 'info' buffers." (defun guix-update-buffer (buffer) "Update information in a 'list' or 'info' BUFFER." (with-current-buffer buffer - (guix-revert-buffer nil t))) + (guix-buffer-revert nil t))) (defun guix-update-buffers-maybe-after-operation () "Update buffers after Guix operation if needed. @@ -447,7 +447,7 @@ If non-nil, ask to confirm for reverting `%S' buffer." ,(concat "Major mode for displaying information about " entry-str ".\n\n" "\\{" mode-map-str "}") - (setq-local revert-buffer-function 'guix-revert-buffer) + (setq-local revert-buffer-function 'guix-buffer-revert) (setq-local guix-history-size (guix-buffer-history-size ',buffer-type ',entry-type)) @@ -582,7 +582,7 @@ If NO-DISPLAY is non-nil, do not switch to the buffer." buffer-type) entry-type))))) -(defun guix-revert-buffer (_ignore-auto noconfirm) +(defun guix-buffer-revert (_ignore-auto noconfirm) "Update information in the current buffer. The function is suitable for `revert-buffer-function'. See `revert-buffer' for the meaning of NOCONFIRM." @@ -590,31 +590,13 @@ See `revert-buffer' for the meaning of NOCONFIRM." (guix-buffer-revert-confirm? guix-buffer-type guix-entry-type) (y-or-n-p "Update current information? ")) - (let* ((search-type guix-search-type) - (search-vals guix-search-vals) - (params (guix-get-params-for-receiving guix-buffer-type + (let* ((params (guix-get-params-for-receiving guix-buffer-type guix-entry-type)) (entries (guix-get-entries guix-profile guix-entry-type - guix-search-type guix-search-vals params)) - ;; If a REPL was restarted, package/output IDs are not actual - ;; anymore, because 'object-address'-es died with the REPL, so if a - ;; search by ID didn't give results, search again by name. - (entries (if (and (null entries) - (eq guix-search-type 'id) - (or (eq guix-entry-type 'package) - (eq guix-entry-type 'output))) - (progn - (setq search-type 'name - search-vals - (guix-package-entries->name-specifications - guix-entries)) - (guix-get-entries - guix-profile guix-entry-type - search-type search-vals params)) - entries))) + guix-search-type guix-search-vals params))) (guix-set-buffer guix-profile entries guix-buffer-type guix-entry-type - search-type search-vals t t)))) + guix-search-type guix-search-vals t t)))) (defvar guix-buffer-after-redisplay-hook nil "Hook run by `guix-buffer-redisplay'. -- cgit 1.4.1