Subject: bug#23695: 25.0.94; todo-mode breaks minibuffer-complete-word

From: Stephen Berman <[email-masked]>
Date: Fri, 10 Jun 2016 12:36:20 +0200

On Fri, 10 Jun 2016 13:18:48 +0300 Eli Zaretskii <[email-masked]> wrote:

>> From: Stephen Berman <[email-masked]>
>> Date: Fri, 10 Jun 2016 11:28:14 +0200
>> 
>> On Sun, 05 Jun 2016 11:18:46 +0200 Stephen Berman <[email-masked]> wrote:
>> 
>> > 0. emacs -Q
>> > 1. Sanity check: Typing e.g. `C-h f url- SPC' should pop up a
>> >    *Completions* buffer showing functions beginning with "url-", since
>> >    SPC in the minibuffer is bound to minibuffer-complete-word.
>> > 2. C-g to exit the minibuffer, then, if you have no files made by
>> >    todo-mode (i.e. no directory ~/.emacs.d/todo), type `M-x todo-show
>> >    RET RET RET RET RET' (accepting defaults) to create a todo file with
>> >    a category and an entry.
>> > 3. Type `q' to quit todo-mode (optional) and redo step 1.
>> > => Upon typing SPC this time, instead of getting the *Completions*
>> >    buffer, a space is inserted in the minibuffer after "url-".
>> >
>> > If at step 2 you already have one or more todo-files, then invoking a
>> > number of todo-mode commands, e.g. `j' to jump to another category or
>> > `C a' to add a new category, will likewise globally change the effect of
>> > all subsequent uses of SPC in the minibuffer.
>> >
>> > The patch below fixes this.  I request approval to push this fix to
>> > emacs-25, since without it, todo-mode-specific behavior changes the
>> > minibuffer behavior in rest of Emacs.  Also, the fix is certainly safe,
>> > since it replaces naively implemented functionality by canonical code to
>> > temporarily change a minibuffer key binding.
>> 
>> Ping!  Any objections to pushing this fix to emacs-25?
>
> We've lived with this for the last 2 years, how come it's so urgent
> now?

It's no more urgent now than it was two years ago, it's just that I only
discovered it now.  And again, the bug not only affects todo-mode but
completion throughout Emacs.  Admittedly, the intersection of those who
regularly use both todo-mode and minibuffer-complete-word is probably
very small (possibly empty), but still, why release with a known bug
when the fix is obvious and obviously safe?  Or do you think it isn't?

Steve Berman