]> git.eshelyaron.com Git - emacs.git/commitdiff
(choose-completion-delete-max-match): Handle minibuffer prompts explicitly.
authorRichard M. Stallman <rms@gnu.org>
Thu, 18 Jul 2002 14:57:46 +0000 (14:57 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 18 Jul 2002 14:57:46 +0000 (14:57 +0000)
lisp/simple.el

index 564aac035411d3952853e08a3c25a3e327525f79..d1026e6ff6bf7390a37192f3e270636a4f1c9a37 100644 (file)
@@ -3782,14 +3782,17 @@ With prefix argument N, move N items (negative N means move backward)."
 ;; that can be found before POINT.
 (defun choose-completion-delete-max-match (string)
   (let ((opoint (point))
-       (len (min (length string)
-                 (- (point) (point-min)))))
-    (goto-char (- (point) (length string)))
+       len)
+    ;; Try moving back by the length of the string.
+    (goto-char (max (- (point) (length string))
+                   (minibuffer-prompt-end)))
+    ;; See how far back we were actually able to move.  That is the
+    ;; upper bound on how much we can match and delete.
+    (setq len (- opoint (point)))
     (if completion-ignore-case
        (setq string (downcase string)))
     (while (and (> len 0)
-               (let ((tail (buffer-substring (point)
-                                             (+ (point) len))))
+               (let ((tail (buffer-substring (point) opoint)))
                  (if completion-ignore-case
                      (setq tail (downcase tail)))
                  (not (string= tail (substring string 0 len)))))