]> git.eshelyaron.com Git - emacs.git/commitdiff
Better support for multi-line shell input.
authorJuri Linkov <juri@linkov.net>
Fri, 5 Dec 2014 23:55:20 +0000 (01:55 +0200)
committerJoão Távora <joaotavora@gmail.com>
Tue, 13 Jan 2015 07:39:15 +0000 (07:39 +0000)
* lisp/comint.el (comint-history-isearch-search)
(comint-history-isearch-wrap): Use field-beginning instead of
comint-line-beginning-position.
(comint-send-input): Go to the end of the field instead of the end
of the line to accept whole multi-line input.
http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00305.html

[backport from trunk]

lisp/ChangeLog
lisp/comint.el

index 8481dd1fccecd57833d9a5bde73c4deeec2d44f8..ff384a4c14dc036bb7b98d5089450bed5a97bcef 100644 (file)
@@ -1,3 +1,12 @@
+2015-01-13  Juri Linkov  <juri@linkov.net>
+
+        * comint.el (comint-history-isearch-search)
+       (comint-history-isearch-wrap): Use field-beginning instead of
+       comint-line-beginning-position.
+       (comint-send-input): Go to the end of the field instead of the end
+       of the line to accept whole multi-line input.
+       http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00305.html
+
 2015-01-09  Eli Zaretskii  <eliz@gnu.org>
 
        * net/net-utils.el (net-utils-run-program, net-utils-run-simple):
index 257cacb747393f7c1c7cef96af8135b41ff4f283..cd6ecb4c2f14c80bc5a12d5b41861c9242a39d30 100644 (file)
@@ -1475,7 +1475,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'."
       (or
        ;; 1. First try searching in the initial comint text
        (funcall search-fun string
-               (if isearch-forward bound (comint-line-beginning-position))
+               (if isearch-forward bound (field-beginning))
                noerror)
        ;; 2. If the above search fails, start putting next/prev history
        ;; elements in the comint successively, and search the string
@@ -1491,7 +1491,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'."
                        (when (null comint-input-ring-index)
                          (error "End of history; no next item"))
                        (comint-next-input 1)
-                       (goto-char (comint-line-beginning-position)))
+                       (goto-char (field-beginning)))
                       (t
                        ;; Signal an error here explicitly, because
                        ;; `comint-previous-input' doesn't signal an error.
@@ -1509,7 +1509,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'."
                                      (unless isearch-forward
                                        ;; For backward search, don't search
                                        ;; in the comint prompt
-                                       (comint-line-beginning-position))
+                                       (field-beginning))
                                      noerror)))
               ;; Return point of the new search result
               (point))
@@ -1557,7 +1557,7 @@ or to the last history element for a backward search."
       (comint-goto-input (1- (ring-length comint-input-ring)))
     (comint-goto-input nil))
   (setq isearch-success t)
-  (goto-char (if isearch-forward (comint-line-beginning-position) (point-max))))
+  (goto-char (if isearch-forward (field-beginning) (point-max))))
 
 (defun comint-history-isearch-push-state ()
   "Save a function restoring the state of input history search.
@@ -1775,7 +1775,7 @@ Similarly for Soar, Scheme, etc."
       (widen)
       (let* ((pmark (process-mark proc))
              (intxt (if (>= (point) (marker-position pmark))
-                        (progn (if comint-eol-on-send (end-of-line))
+                        (progn (if comint-eol-on-send (goto-char (field-end)))
                                (buffer-substring pmark (point)))
                       (let ((copy (funcall comint-get-old-input)))
                         (goto-char pmark)