emacs: Fix search tab completion in terminals
authorAustin Clements <amdragon@MIT.EDU>
Fri, 16 Mar 2012 03:13:12 +0000 (23:13 -0400)
committerDavid Bremner <bremner@debian.org>
Sun, 18 Mar 2012 12:14:23 +0000 (09:14 -0300)
In X, Emacs distinguishes the tab key, which produces a 'tab event;
from C-i, which produces a ?\t event.  However, in a terminal, these
are indistinguishable and only produce a ?\t event.  In order to
simplify things, Emacs automatically translates from 'tab to ?\t (see
"Function key translations" in M-x describe-bindings), so functions
only need to be bound to ?\t to work in all situations.

Previously, the search tab completion code usedq (kbd "<tab>"), which
produced the event sequence [tab], which only matched the 'tab event
and hence only worked in X.  This patch changes it to (kbd "TAB"),
which matches the general ?\t event and works in all situations.

emacs/notmuch.el

index 99e0c93af01971a059d3c50c3c68f9e849477295..f0afa0721628c8d53e7abfe3b8d4e603260d2892 100644 (file)
@@ -962,7 +962,7 @@ PROMPT is the string to prompt with."
                                         completions)))
               (t (list string)))))))
       ;; this was simpler than convincing completing-read to accept spaces:
-      (define-key keymap (kbd "<tab>") 'minibuffer-complete)
+      (define-key keymap (kbd "TAB") 'minibuffer-complete)
       (let ((history-delete-duplicates t))
        (read-from-minibuffer prompt nil keymap nil
                              'notmuch-search-history nil nil)))))