From: Stephen Berman Date: Wed, 14 May 2014 16:21:13 +0000 (-0400) Subject: * lisp/minibuffer.el (completion-pcm--merge-try): Merge trailing / with X-Git-Tag: emacs-24.3.92~205 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=34cba8e885f2ed1c0e9c805ad89b9464e0b5766a;p=emacs.git * lisp/minibuffer.el (completion-pcm--merge-try): Merge trailing / with suffix. Fixes: debbugs:15419 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index da8f90d3b3b..c4df237a668 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-05-14 Stephen Berman + Stefan Monnier + + * minibuffer.el (completion-pcm--merge-try): Merge trailing / with + suffix (bug#15419). + 2014-05-14 Glenn Morris * vc/emerge.el (emerge-temp-file-prefix): diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 929ab3dc325..242dc7fe94e 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -3215,11 +3215,20 @@ the same set of elements." ;; Not `prefix'. mergedpat)) ;; New pos from the start. - (newpos (length (completion-pcm--pattern->string pointpat))) + (newpos (length (completion-pcm--pattern->string pointpat))) ;; Do it afterwards because it changes `pointpat' by side effect. (merged (completion-pcm--pattern->string (nreverse mergedpat)))) - (setq suffix (completion--merge-suffix merged newpos suffix)) + (setq suffix (completion--merge-suffix + ;; The second arg should ideally be "the position right + ;; after the last char of `merged' that comes from the text + ;; to be completed". But completion-pcm--merge-completions + ;; currently doesn't give us that info. So instead we just + ;; use the "last but one" position, which tends to work + ;; well in practice since `suffix' always starts + ;; with a boundary and we hence mostly/only care about + ;; merging this boundary (bug#15419). + merged (max 0 (1- (length merged))) suffix)) (cons (concat prefix merged suffix) (+ newpos (length prefix))))))) (defun completion-pcm-try-completion (string table pred point)