GNU bug report logs - #4504
23.1; [missing feature] `minibuffer-force-completion' does not cycle through completions

Previous Next

Package: emacs;

Reported by: Bruno Barbier <bruno.barbier.cs <at> orange.fr>

Date: Mon, 21 Sep 2009 14:50:04 UTC

Severity: normal

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 4504 in the body.
You can then email your comments to 4504 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4504; Package emacs. (Mon, 21 Sep 2009 14:50:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Barbier <bruno.barbier.cs <at> orange.fr>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Mon, 21 Sep 2009 14:50:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Bruno Barbier <bruno.barbier.cs <at> orange.fr>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.1; [missing feature] `minibuffer-force-completion' does not
 cycle through completions
Date: Mon, 21 Sep 2009 16:20:16 +0200
[Message part 1 (text/plain, inline)]
* Problem

The function `minibuffer-force-complete' does not cycle
through completions; it just steps through the completion list once.


* Step to reproduce:

  1. In a shell
        emacs -Q --eval "(progn                                        \
                           (define-key minibuffer-local-completion-map \
                               (kbd \"M-<tab>\" )                      \
                               #'minibuffer-force-complete)            \
                           (setq unread-command-events                 \
                                (append '(?\M-x ?s ?e ?t ?- ?v)        \
                                        '(tab M-tab M-tab)             \
                                        unread-command-events ))       \
                           ) \
                          "  
  2. Hit M-<tab>


* Result

   M-<tab> offers only "set-visited-file-name" as the sole completion.


* Expected result

   M-<tab> should allow cycling through the choices:

           set-variable
           set-visited-file-name

        

* Proposed solution

See attached patch against today CVS version ([2009-09-21 Mon]).


* Proposed ChangeLog item if needed.

2009-09-21    <bruno.barbier.cs <at> orange.fr> or whoever commits it

	* minibuffer.el: The function `minibuffer-force-complete' now cycles
	through the completion choices (it was just stepping through the
	completion list once).

[minibuffer.el.patch (text/plain, attachment)]

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4504; Package emacs. (Thu, 24 Sep 2009 02:45:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Thu, 24 Sep 2009 02:45:06 GMT) Full text and rfc822 format available.

Message #10 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Bruno Barbier <bruno.barbier.cs <at> orange.fr>
Cc: 4504 <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
Subject: Re: bug#4504: 23.1; [missing feature] `minibuffer-force-completion' does not cycle through completions
Date: Wed, 23 Sep 2009 22:39:06 -0400
> The function `minibuffer-force-complete' does not cycle
> through completions; it just steps through the completion list once.

Indeed.

> See attached patch against today CVS version ([2009-09-21 Mon]).

Thank you.  I've installed a simpler patch (see below) that makes use of
the `last' function.

> 2009-09-21    <bruno.barbier.cs <at> orange.fr> or whoever commits it

Actually, this part of the changelog should list the author of the
patch, not the person who committed it.


        Stefan


Index: lisp/minibuffer.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/minibuffer.el,v
retrieving revision 1.83
diff -u -r1.83 minibuffer.el
--- lisp/minibuffer.el	2 Sep 2009 03:09:19 -0000	1.83
+++ lisp/minibuffer.el	24 Sep 2009 02:37:30 -0000
@@ -546,7 +546,9 @@
       ;; completion-all-sorted-completions to nil, but we prefer not to,
       ;; so that repeated calls minibuffer-force-complete still cycle
       ;; through the previous possible completions.
-      (setq completion-all-sorted-completions (cdr all)))))
+      (let ((last (last all)))
+        (setcdr last (cons (car all) (cdr last)))
+        (setq completion-all-sorted-completions (cdr all))))))
 
 (defvar minibuffer-confirm-exit-commands
   '(minibuffer-complete minibuffer-complete-word PC-complete PC-complete-word)




Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4504; Package emacs. (Thu, 24 Sep 2009 02:45:09 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Thu, 24 Sep 2009 02:45:09 GMT) Full text and rfc822 format available.

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4504; Package emacs. (Thu, 24 Sep 2009 08:20:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Barbier <bruno.barbier.cs <at> orange.fr>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Thu, 24 Sep 2009 08:20:04 GMT) Full text and rfc822 format available.

Message #20 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Bruno Barbier <bruno.barbier.cs <at> orange.fr>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 4504 <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
Subject: Re: bug#4504: 23.1; [missing feature]
 `minibuffer-force-completion' does not cycle through completions
Date: Thu, 24 Sep 2009 09:51:14 +0200
On Wed, Sep 23, 2009 at 10:39:06PM -0400, Stefan Monnier wrote:
> 
> Thank you.  I've installed a simpler patch (see below) that makes use of
> the `last' function.
> 

Great. It's simpler and it works.

Thank you.

Bruno







Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4504; Package emacs. (Thu, 24 Sep 2009 08:20:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Barbier <bruno.barbier.cs <at> orange.fr>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Thu, 24 Sep 2009 08:20:06 GMT) Full text and rfc822 format available.

Reply sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
You have taken responsibility. (Thu, 24 Sep 2009 15:15:05 GMT) Full text and rfc822 format available.

Notification sent to Bruno Barbier <bruno.barbier.cs <at> orange.fr>:
bug acknowledged by developer. (Thu, 24 Sep 2009 15:15:05 GMT) Full text and rfc822 format available.

Message #30 received at 4504-done <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Bruno Barbier <bruno.barbier.cs <at> orange.fr>
Subject: Re: bug#4504: 23.1; [missing feature] `minibuffer-force-completion' does not cycle through completions
Date: Thu, 24 Sep 2009 11:07:24 -0400
>> Thank you.  I've installed a simpler patch (see below) that makes use of
>> the `last' function.
> Great. It's simpler and it works.
> Thank you.

Thanks for confirming,


        Stefan



bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> emacsbugs.donarmstrong.com. (Fri, 23 Oct 2009 14:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 15 years and 241 days ago.

Previous Next


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