summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@gnu.org>2014-01-08 00:36:29 +0100
committerBastien Guerry <bzg@gnu.org>2014-01-08 00:36:29 +0100
commit68f0bb9791bb40a0a09cf7bca3ddee3d18e86486 (patch)
treeb987f25d1817a6f5a7257635f22055cc3f1d3387
parentbe316ede5fffb724852ee225489e70778d240bb0 (diff)
downloademacs-68f0bb9791bb40a0a09cf7bca3ddee3d18e86486.tar.gz
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.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/minibuffer.el23
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 <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
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