unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Stephen Berman <stephen.berman@gmx.net>
To: 23695@debbugs.gnu.org
Subject: bug#23695: 25.0.94; todo-mode breaks minibuffer-complete-word
Date: Sun, 05 Jun 2016 11:18:46 +0200	[thread overview]
Message-ID: <87y46km1s9.fsf@gmx.net> (raw)

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.  (Since I normally don't
use SPC for minibuffer completion but just TAB, I only discovered this
bug yesterday, when I was trying and failed to reproduce bug#23670 in a
session in which I had already used the broken todo-mode function.)

diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index 8e75258..f0d4bc5 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -5750,8 +5750,9 @@ todo-read-category
 against categories in that file; otherwise complete against all
 categories from `todo-category-completions-files'."
   ;; Allow SPC to insert spaces, for adding new category names.
-  (let ((map minibuffer-local-completion-map))
-    (define-key map " " nil)
+  (let ((minibuffer-local-completion-map
+         (copy-keymap minibuffer-local-completion-map)))
+    (define-key minibuffer-local-completion-map " " 'self-insert-command)
     (let* ((add (eq match-type 'add))
 	   (archive (eq match-type 'archive))
 	   (file0 (when (and file (> (length todo-files) 1))


In GNU Emacs 25.0.94.8 (x86_64-suse-linux-gnu, GTK+ Version 3.14.15)
 of 2016-06-05 built on rosalinde
Repository revision: a5d05f447008c4a99d1b00f0af642b4a5ce4cbce
Windowing system distributor 'The X.Org Foundation', version 11.0.11601000
System Description:	openSUSE 13.2 (Harlequin) (x86_64)

Configured using:
 'configure --with-xwidgets 'CFLAGS=-Og -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 XWIDGETS

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix





             reply	other threads:[~2016-06-05  9:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-05  9:18 Stephen Berman [this message]
2016-06-10  9:28 ` bug#23695: 25.0.94; todo-mode breaks minibuffer-complete-word Stephen Berman
2016-06-10 10:18   ` Eli Zaretskii
2016-06-10 10:36     ` Stephen Berman
2016-06-14 17:05       ` Eli Zaretskii
2016-06-14 21:46         ` Stephen Berman
2016-06-29  9:52           ` Stephen Berman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y46km1s9.fsf@gmx.net \
    --to=stephen.berman@gmx.net \
    --cc=23695@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).