]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/minibuffer.el (completion-pcm--merge-try): Merge trailing / with
authorStephen Berman <stephen.berman@gmx.net>
Wed, 14 May 2014 16:21:13 +0000 (12:21 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 14 May 2014 16:21:13 +0000 (12:21 -0400)
suffix.

Fixes: debbugs:15419
lisp/ChangeLog
lisp/minibuffer.el

index da8f90d3b3b93b436fa67f38f0846dbbd6b617e0..c4df237a66843d7f10510f5ddc6e3258b6f0ff78 100644 (file)
@@ -1,3 +1,9 @@
+2014-05-14  Stephen Berman <stephen.berman@gmx.net>
+            Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * minibuffer.el (completion-pcm--merge-try): Merge trailing / with
+       suffix (bug#15419).
+
 2014-05-14  Glenn Morris  <rgm@gnu.org>
 
        * vc/emerge.el (emerge-temp-file-prefix):
index 929ab3dc3259730c63c3b2bab0b13200978e8062..242dc7fe94e943ee9dbfbee30e218cf5877a1588 100644 (file)
@@ -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)