]> git.eshelyaron.com Git - emacs.git/commitdiff
(kill-buffer-and-window): Remove `yes-or-no-p' so that
authorRichard M. Stallman <rms@gnu.org>
Fri, 12 Sep 2003 00:52:08 +0000 (00:52 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 12 Sep 2003 00:52:08 +0000 (00:52 +0000)
the function is less noisy.  Now only `kill-buffer' can ask questions.

lisp/window.el

index 0dadd4195c603e3b54415ed13dbdc142cb6669de..2cfc254b220cc417fde52544db77954f4192bd6e 100644 (file)
@@ -532,11 +532,18 @@ Return non-nil if the window was shrunk."
 (defun kill-buffer-and-window ()
   "Kill the current buffer and delete the selected window."
   (interactive)
-  (if (yes-or-no-p (format "Kill buffer `%s'? " (buffer-name)))
-      (let ((buffer (current-buffer)))
-       (delete-window (selected-window))
-       (kill-buffer buffer))
-    (error "Aborted")))
+  (let ((window-to-delete (selected-window))
+       (delete-window-hook (lambda ()
+                             (condition-case nil
+                                 (delete-window)
+                               (error nil)))))
+    (add-hook 'kill-buffer-hook delete-window-hook t t)
+    (if (kill-buffer (current-buffer))
+       ;; If `delete-window' failed before, we rerun it to regenerate
+       ;; the error so it can be seen in the minibuffer.
+       (when (eq (selected-window) window-to-delete)
+         (delete-window))
+      (remove-hook 'kill-buffer-hook delete-window-hook t))))
 
 (defun quit-window (&optional kill window)
   "Quit the current buffer.  Bury it, and maybe delete the selected frame.