From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Leo Newsgroups: gmane.emacs.bugs Subject: bug#6943: 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-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: dough.gmane.org 1283139588 26698 80.91.229.12 (30 Aug 2010 03:39:48 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 30 Aug 2010 03:39:48 +0000 (UTC) Cc: Juanma Barranquero To: 6943@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Aug 30 05:39:47 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OpvDl-0006Cj-MV for geb-bug-gnu-emacs@m.gmane.org; Mon, 30 Aug 2010 05:39:46 +0200 Original-Received: from localhost ([127.0.0.1]:45253 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OpvDl-0007vh-0g for geb-bug-gnu-emacs@m.gmane.org; Sun, 29 Aug 2010 23:39:45 -0400 Original-Received: from [140.186.70.92] (port=44850 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OpvDf-0007vY-1u for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2010 23:39:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OpvDd-000559-Sn for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2010 23:39:38 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:33115) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OpvDd-000551-Nf for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2010 23:39:37 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1Opuwc-0007w1-BW; Sun, 29 Aug 2010 23:22:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Leo Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 30 Aug 2010 03:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 6943 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.128313848130483 (code B ref -1); Mon, 30 Aug 2010 03:22:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 30 Aug 2010 03:21:21 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Opuvw-0007vc-CA for submit@debbugs.gnu.org; Sun, 29 Aug 2010 23:21:20 -0400 Original-Received: from mx10.gnu.org ([199.232.76.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Opuvu-0007vX-7H for submit@debbugs.gnu.org; Sun, 29 Aug 2010 23:21:18 -0400 Original-Received: from lists.gnu.org ([199.232.76.165]:40521) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1OpuxQ-0001K5-K7 for submit@debbugs.gnu.org; Sun, 29 Aug 2010 23:22:52 -0400 Original-Received: from [140.186.70.92] (port=35817 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OpuxP-0005CB-5C for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2010 23:22:52 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OpuxN-00037a-T4 for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2010 23:22:51 -0400 Original-Received: from ppsw-33.csi.cam.ac.uk ([131.111.8.133]:54626) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OpuxN-00037S-Lc for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2010 23:22:49 -0400 X-Cam-AntiVirus: no malware found X-Cam-SpamDetails: not scanned X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Original-Received: from cpc1-cmbg13-0-0-cust596.5-4.cable.virginmedia.com ([86.9.122.85]:55558 helo=Victoria.local) by ppsw-33.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.159]:587) with esmtpsa (PLAIN:sl392) (TLSv1:DHE-RSA-AES128-SHA:128) id 1OpuxL-00053A-hR (Exim 4.72) (return-path ); Mon, 30 Aug 2010 04:22:47 +0100 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 29 Aug 2010 23:22:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:39816 Archived-At: --=-=-= The attached patch makes C-k in ido kills virtual buffers too. --=-=-= Content-Type: text/x-diff Content-Disposition: inline Content-Description: ido C-k patch >From fb3cb0a3c3c6ab82a3ec7c8061478b59366ae77a Mon Sep 17 00:00:00 2001 From: Leo sdl.web@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 --=-=-=--