* comint.el (comint-previous-matching-input-from-input): Retain point.
authorLe Wang <l26wang@gmail.com>
Wed, 18 Dec 2013 03:02:39 +0000 (11:02 +0800)
committerChong Yidong <cyd@gnu.org>
Wed, 18 Dec 2013 03:02:39 +0000 (11:02 +0800)
Fixes: debbugs:13404

lisp/ChangeLog
lisp/comint.el

index 3a86fff..126f10a 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-18  Le Wang  <l26wang@gmail.com>
+
+       * comint.el (comint-previous-matching-input-from-input): Retain
+       point (Bug#13404).
+
 2013-12-18  Chong Yidong  <cyd@gnu.org>
 
        * simple.el (append-next-kill): Doc fix (Bug#15995, Bug#16016).
index e7dff58..5cdec45 100644 (file)
@@ -1210,8 +1210,9 @@ If N is negative, find the previous or Nth previous match."
 With prefix argument N, search for Nth previous match.
 If N is negative, search forwards for the -Nth following match."
   (interactive "p")
-  (if (not (memq last-command '(comint-previous-matching-input-from-input
-                               comint-next-matching-input-from-input)))
+  (let ((opoint (point)))
+    (unless (memq last-command '(comint-previous-matching-input-from-input
+                                comint-next-matching-input-from-input))
       ;; Starting a new search
       (setq comint-matching-input-from-input-string
            (buffer-substring
@@ -1219,9 +1220,10 @@ If N is negative, search forwards for the -Nth following match."
                 (process-mark (get-buffer-process (current-buffer))))
             (point))
            comint-input-ring-index nil))
-  (comint-previous-matching-input
-   (concat "^" (regexp-quote comint-matching-input-from-input-string))
-   n))
+    (comint-previous-matching-input
+     (concat "^" (regexp-quote comint-matching-input-from-input-string))
+     n)
+    (goto-char opoint)))
 
 (defun comint-next-matching-input-from-input (n)
   "Search forwards through input history for match for current input.