emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-bug-tracker] bug#7211: closed (completion suffix and completions


From: GNU bug Tracking System
Subject: [Emacs-bug-tracker] bug#7211: closed (completion suffix and completions buffer)
Date: Mon, 08 Nov 2010 20:55:02 +0000

Your message dated Mon, 08 Nov 2010 15:55:49 -0500
with message-id <address@hidden>
and subject line Re: bug#7211: 23.2; partial-completion-mode suffix and 
completions buffer
has caused the GNU bug report #7211,
regarding completion suffix and completions buffer
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
7211: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7211
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 23.2; partial-completion-mode suffix and completions buffer Date: Thu, 14 Oct 2010 11:30:58 +1100 User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.2 (gnu/linux)
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".


In GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)
 of 2010-05-16 on raven, modified by Debian
configured using `configure  '--build' 'i486-linux-gnu' '--build' 
'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' 
'--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' 
'--mandir=/usr/share/man' '--with-pop=yes' 
'--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim'
 '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 
'build_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default enable-multibyte-characters: t



--- End Message ---
--- Begin Message --- Subject: Re: bug#7211: 23.2; partial-completion-mode suffix and completions buffer Date: Mon, 08 Nov 2010 15:55:49 -0500 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)
> 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



--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]