GNU bug report logs -
#7211
completion suffix and completions buffer
Previous Next
Reported by: Kevin Ryde <user42 <at> zip.com.au>
Date: Thu, 14 Oct 2010 00:29:01 UTC
Severity: normal
Found in version 23.2
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
Message #15 received at 7211-done <at> debbugs.gnu.org (full text, mbox):
> In partial completion mode, if the choices have a common suffix, then
> selecting an entry from the *Completions* buffer returns a string which
> is not that choice. For example
> (completing-read "enter: " '(("xx-aa" . "")
> ("yy-aa" . "")))
> type "-aa"
> press Tab
> M-v to go to *Completions* buffer
> Ret to choose "xx-aa"
> => return value "xx-aa-aa"
> where I hoped the return would be "xx-aa".
Thanks. I've installed the patch below (in emacs-23) which should fix
this problem.
Stefan
=== modified file 'lisp/minibuffer.el'
--- lisp/minibuffer.el 2010-10-17 17:30:22 +0000
+++ lisp/minibuffer.el 2010-11-08 20:52:12 +0000
@@ -41,7 +41,7 @@
;; provide the start info but not the end info in
;; completion-base-position.
;; - quoting is problematic. E.g. the double-dollar quoting used in
-;; substitie-in-file-name (and hence read-file-name-internal) bumps
+;; substitute-in-file-name (and hence read-file-name-internal) bumps
;; into various bugs:
;; - choose-completion doesn't know how to quote the text it inserts.
;; E.g. it fails to double the dollars in file-name completion, or
@@ -1075,6 +1075,7 @@
(interactive)
(message "Making completion list...")
(lexical-let* ((start (field-beginning))
+ (end (field-end))
(string (field-string))
(completions (completion-all-completions
string
@@ -1106,10 +1107,12 @@
completions)))
(with-current-buffer standard-output
(set (make-local-variable 'completion-base-position)
- ;; FIXME: We should provide the END part as well, but
- ;; currently completion-all-completions does not give
- ;; us the necessary information.
- (list (+ start base-size) nil)))
+ (list (+ start base-size)
+ ;; FIXME: We should pay attention to completion
+ ;; boundaries here, but currently
+ ;; completion-all-completions does not give us the
+ ;; necessary information.
+ end)))
(display-completion-list completions)))
;; If there are no completions, or if the current input is already the
This bug report was last modified 14 years and 253 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.