Earlier a prompt “Continue operation? (y, n, s, d)” was used only with a
temporary buffer for package operations and there were no problems with
modifying a mode-line there.

But now (I mean after the next patch) it is also used to prompt before
building a source derivation (as "substitutes" and "dry-run" make sence
there too).  This patch will handle this case.

>From 8036ec72ef486c158683ce67a1a5f15056de0cc4 Mon Sep 17 00:00:00 2001
From: Alex Kost <alez...@gmail.com>
Date: Sun, 9 Nov 2014 11:00:35 +0300
Subject: [PATCH 2/3] emacs: Restore mode-line after operation prompt.

* emacs/guix-base.el (guix-operation-prompt): Restore 'mode-line-format' after
  prompting.
---
 emacs/guix-base.el | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index 3dda938..784474e 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -928,7 +928,7 @@ ENTRIES is a list of package entries to get info about packages."
     (insert "\n")))
 
 (defun guix-operation-prompt ()
-  "Prompt a user for continuing the current package operation.
+  "Prompt a user for continuing the current operation.
 Return non-nil, if the operation should be continued; nil otherwise."
   (let* ((option-keys (mapcar #'guix-operation-option-key
                               guix-operation-options))
@@ -943,9 +943,11 @@ Return non-nil, if the operation should be continued; nil otherwise."
                           keys
                           ", ")
                          ") ")))
-    (prog1 (guix-operation-prompt-1 prompt keys)
-      ;; Clear the minibuffer after prompting.
-      (message ""))))
+    (let ((mode-line mode-line-format))
+      (prog1 (guix-operation-prompt-1 prompt keys)
+        (setq mode-line-format mode-line)
+        ;; Clear the minibuffer after prompting.
+        (message "")))))
 
 (defun guix-operation-prompt-1 (prompt keys)
   "This function is internal for `guix-operation-prompt'."
-- 
2.1.2

Reply via email to