Subject: bug#15631: closed (Re: bug#15631: 24.3; ido : invert effect of ido-restrict-to-matches with prefix arg)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 01 Jul 2015 23:02:03 +0000

Your bug report

#15631: 24.3; ido : invert effect of ido-restrict-to-matches with prefix arg

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 [email-masked].

-- 
15631: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15631
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#15631: 24.3; ido : invert effect of ido-restrict-to-matches with prefix arg
From: Nicolas Richard <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Thu, 02 Jul 2015 01:01:19 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:
> A "to" is missing where indicated.

Thanks, I fixed it and pushed. Closing.

Nico.

Subject: 24.3; ido : invert effect of ido-restrict-to-matches with prefix arg
From: Nicolas Richard <[email-masked]>
To: [email-masked]
Date: Wed, 16 Oct 2013 16:54:24 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello

The function `ido-restrict-to-matches' is used within ido to restrict
focus on currently matched items. It was asked on #emacs to have a
function with the opposite effect : restrict focus on unmatched items.

I found it was useful for me and came up with this solution (adding an
optional argument to the existing function) :

diff --git a/lisp/ido.el b/lisp/ido.el
index cda4021..31aa303 100644
*** a/lisp/ido.el
--- b/lisp/ido.el
***************
*** 3133,3143 ****
        (if (> i 0)
  	  (setq ido-cur-list (ido-chop ido-cur-list (nth i ido-matches)))))))
  
! (defun ido-restrict-to-matches ()
!   "Set current item list to the currently matched items."
!   (interactive)
    (when ido-matches
!     (setq ido-cur-list ido-matches
  	  ido-text-init ""
  	  ido-rescan nil
  	  ido-exit 'keep)
--- 3133,3155 ----
        (if (> i 0)
  	  (setq ido-cur-list (ido-chop ido-cur-list (nth i ido-matches)))))))
  
! (defun ido-restrict-to-matches (&optional removep)
!   "Set current item list to the currently matched items.
! 
! When argument REMOVEP is non-nil, the currently matched items are
! instead removed from the current item list."
!   (interactive "P")
    (when ido-matches
!     (setq ido-cur-list (cond
!                         (removep
!                          (delq nil
!                                (mapcar
!                                 (lambda (elt)
!                                   (when (not (member elt ido-matches))
!                                     elt))
!                                 ido-cur-list)))
!                         (t ido-matches))
!           ido-matches ido-cur-list
  	  ido-text-init ""
  	  ido-rescan nil
  	  ido-exit 'keep)

-- 
Nicolas.