From 68f0bb9791bb40a0a09cf7bca3ddee3d18e86486 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Wed, 8 Jan 2014 00:36:29 +0100 Subject: [PATCH] Fix bug 15980 * 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 | 6 ++++++ lisp/minibuffer.el | 23 +++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index add146fd2b1..1f8187d9e27 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-01-07 Bastien Guerry + + * 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 * window.el (balance-windows-2): While rounding don't give a diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index c1d2d9c5440..c87fcc1c3ea 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -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 -- 2.39.2