GNU bug report logs - #6943
23.2; [PATCH] * lisp/ido.el (ido-kill-buffer-at-head): support killing virtual buffers.

Previous Next

Package: emacs;

Reported by: Leo <sdl.web <at> gmail.com>

Date: Mon, 30 Aug 2010 03:22:02 UTC

Severity: wishlist

Tags: patch

Found in version 23.2

Fixed in version 24.1

Done: Leo <sdl.web <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Leo <sdl.web <at> gmail.com>
Subject: bug#6943: closed (Re: bug#6943: 23.2; [PATCH] * lisp/ido.el
 (ido-kill-buffer-at-head): support killing virtual buffers.)
Date: Mon, 11 Apr 2011 03:56:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#6943: 23.2; [PATCH] * lisp/ido.el (ido-kill-buffer-at-head): support killing virtual buffers.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 6943 <at> debbugs.gnu.org.

-- 
6943: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6943
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Leo <sdl.web <at> gmail.com>
To: 6943-done <at> debbugs.gnu.org
Subject: Re: bug#6943: 23.2;
	[PATCH] * lisp/ido.el (ido-kill-buffer-at-head): support killing
	virtual buffers.
Date: Mon, 11 Apr 2011 11:54:56 +0800
Version: 24.1

[Message part 3 (message/rfc822, inline)]
From: Leo <sdl.web <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Cc: Juanma Barranquero <lekktu <at> gmail.com>
Subject: 23.2; [PATCH] * lisp/ido.el (ido-kill-buffer-at-head): support killing
	virtual buffers.
Date: Mon, 30 Aug 2010 04:22:46 +0100
[Message part 4 (text/plain, inline)]
The attached patch makes C-k in ido kills virtual buffers too.

[Message part 5 (text/x-diff, inline)]
From fb3cb0a3c3c6ab82a3ec7c8061478b59366ae77a Mon Sep 17 00:00:00 2001
From: Leo sdl.web <at> gmail.com
Date: Mon, 30 Aug 2010 04:17:03 +0100
Subject: [PATCH] * lisp/ido.el (ido-kill-buffer-at-head): support killing virtual buffers.

---
 lisp/ido.el |   43 +++++++++++++++++++++++++------------------
 1 files changed, 25 insertions(+), 18 deletions(-)

diff --git a/lisp/ido.el b/lisp/ido.el
index 858ee3e..944499e 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -3920,24 +3920,31 @@ If cursor is not at the end of the user input, delete to end of input."
     (let ((enable-recursive-minibuffers t)
 	  (buf (ido-name (car ido-matches)))
 	  (nextbuf (cadr ido-matches)))
-      (when (get-buffer buf)
-	;; If next match names a buffer use the buffer object; buffer
-	;; name may be changed by packages such as uniquify; mindful
-	;; of virtual buffers.
-	(when (and nextbuf (get-buffer nextbuf))
-	  (setq nextbuf (get-buffer nextbuf)))
-	(if (null (kill-buffer buf))
-	    ;; Buffer couldn't be killed.
-	    (setq ido-rescan t)
-	  ;; Else `kill-buffer' succeeds so re-make the buffer list
-	  ;; taking into account packages like uniquify may rename
-	  ;; buffers.
-	  (if (bufferp nextbuf)
-	      (setq nextbuf (buffer-name nextbuf)))
-	  (setq ido-default-item nextbuf
-		ido-text-init ido-text
-		ido-exit 'refresh)
-	  (exit-minibuffer))))))
+      (if (get-buffer buf)
+	  (progn
+	    ;; If next match names a buffer use the buffer object; buffer
+	    ;; name may be changed by packages such as uniquify; mindful
+	    ;; of virtual buffers.
+	    (when (and nextbuf (get-buffer nextbuf))
+	      (setq nextbuf (get-buffer nextbuf)))
+	    (if (null (kill-buffer buf))
+		;; Buffer couldn't be killed.
+		(setq ido-rescan t)
+	      ;; Else `kill-buffer' succeeds so re-make the buffer list
+	      ;; taking into account packages like uniquify may rename
+	      ;; buffers.
+	      (if (bufferp nextbuf)
+		  (setq nextbuf (buffer-name nextbuf)))
+	      (setq ido-default-item nextbuf
+		    ido-text-init ido-text
+		    ido-exit 'refresh)
+	      (exit-minibuffer)))
+	;; Handle virtual buffers
+	(when recentf-list
+	  (setq recentf-list
+		(delete (cdr (assoc buf ido-virtual-buffers)) recentf-list))
+	  (setq ido-cur-list (delete buf ido-cur-list))
+	  (setq ido-rescan t))))))
 
 ;;; DELETE CURRENT FILE
 (defun ido-delete-file-at-head ()
-- 
1.7.1


This bug report was last modified 14 years and 123 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.