Fix bug 15980
authorBastien Guerry <bzg@gnu.org>
Tue, 7 Jan 2014 23:36:29 +0000 (00:36 +0100)
committerBastien Guerry <bzg@gnu.org>
Tue, 7 Jan 2014 23:36:29 +0000 (00:36 +0100)
* minibuffer.el (completion--try-word-completion): When both a
hyphen and a space are possible candidates for the character
following a word, display both candidates.

lisp/ChangeLog
lisp/minibuffer.el

index add146f..1f8187d 100644 (file)
@@ -1,3 +1,9 @@
+2014-01-07  Bastien Guerry  <bzg@gnu.org>
+
+       * minibuffer.el (completion--try-word-completion): When both a
+       hyphen and a space are possible candidates for the character
+       following a word, display both candidates.  (Bug#15980)
+
 2014-01-07  Martin Rudalics  <rudalics@gmx.at>
 
        * window.el (balance-windows-2): While rounding don't give a
index c1d2d9c..c87fcc1 100644 (file)
@@ -1334,16 +1334,19 @@ appear to be a match."
         ;; instead, but it was too blunt, leading to situations where SPC
         ;; was the only insertable char at point but minibuffer-complete-word
         ;; refused inserting it.
-        (let ((exts (mapcar (lambda (str) (propertize str 'completion-try-word t))
-                            '(" " "-")))
-              (before (substring string 0 point))
-              (after (substring string point))
-             tem)
-         (while (and exts (not (consp tem)))
-            (setq tem (completion-try-completion
-                      (concat before (pop exts) after)
-                      table predicate (1+ point) md)))
-         (if (consp tem) (setq comp tem))))
+        (let* ((exts (mapcar (lambda (str) (propertize str 'completion-try-word t))
+                            '(" " "-")))
+              (before (substring string 0 point))
+              (after (substring string point))
+              (comps
+               (delete nil
+                       (mapcar (lambda (ext)
+                                 (completion-try-completion
+                                  (concat before ext after)
+                                  table predicate (1+ point) md))
+                               exts))))
+         (when (and (= 1 (length comps) (consp (car comps))))
+           (setq comp (car comps)))))
 
       ;; Completing a single word is actually more difficult than completing
       ;; as much as possible, because we first have to find the "current