diff options
Diffstat (limited to 'lisp/comint.el')
-rw-r--r-- | lisp/comint.el | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/lisp/comint.el b/lisp/comint.el index 5928804fe73..d21cc1378f7 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -1,6 +1,6 @@ ;;; comint.el --- general command interpreter in a window stuff -*- lexical-binding: t -*- -;; Copyright (C) 1988, 1990, 1992-2018 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1990, 1992-2019 Free Software Foundation, Inc. ;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Simon Marshall <simon@gnu.org> @@ -1618,8 +1618,8 @@ Go to the history element by the absolute history position HIST-POS." (defun comint-within-quotes (beg end) "Return t if the number of quotes between BEG and END is odd. Quotes are single and double." - (let ((countsq (comint-how-many-region "\\(^\\|[^\\\\]\\)'" beg end)) - (countdq (comint-how-many-region "\\(^\\|[^\\\\]\\)\"" beg end))) + (let ((countsq (comint-how-many-region "\\(^\\|[^\\]\\)'" beg end)) + (countdq (comint-how-many-region "\\(^\\|[^\\]\\)\"" beg end))) (or (= (mod countsq 2) 1) (= (mod countdq 2) 1)))) (defun comint-how-many-region (regexp beg end) @@ -2072,20 +2072,6 @@ Make backspaces delete the previous character." (goto-char (process-mark process)) (set-marker comint-last-output-start (point)) - ;; Try to skip repeated prompts, which can occur as a result of - ;; commands sent without inserting them in the buffer. - (let ((bol (save-excursion (forward-line 0) (point)))) ;No fields. - (when (and (not (bolp)) - (looking-back comint-prompt-regexp bol)) - (let* ((prompt (buffer-substring bol (point))) - (prompt-re (concat "\\`" (regexp-quote prompt)))) - (while (string-match prompt-re string) - (setq string (substring string (match-end 0))))))) - (while (string-match (concat "\\(^" comint-prompt-regexp - "\\)\\1+") - string) - (setq string (replace-match "\\1" nil nil string))) - ;; insert-before-markers is a bad thing. XXX ;; Luckily we don't have to use it any more, we use ;; window-point-insertion-type instead. @@ -2536,13 +2522,16 @@ Useful if you accidentally suspend the top-level process." (defun comint-skip-input () "Skip all pending input, from last stuff output by interpreter to point. -This means mark it as if it had been sent as input, without sending it." +This means mark it as if it had been sent as input, without +sending it. The command keys used to trigger the command that +called this function are inserted into the buffer." (let ((comint-input-sender 'ignore) (comint-input-filter-functions nil)) (comint-send-input t t)) (end-of-line) (let ((pos (point)) - (marker (process-mark (get-buffer-process (current-buffer))))) + (marker (process-mark (get-buffer-process (current-buffer)))) + (inhibit-read-only t)) (insert " " (key-description (this-command-keys))) (if (= marker pos) (set-marker marker (point))))) @@ -3089,7 +3078,7 @@ interpreter (e.g., the percent notation of cmd.exe on Windows)." (let (env-var-name env-var-val) (save-match-data - (while (string-match "%\\([^\\\\/]*\\)%" name) + (while (string-match "%\\([^\\/]*\\)%" name) (setq env-var-name (match-string 1 name)) (setq env-var-val (or (getenv env-var-name) "")) (setq name (replace-match env-var-val t t name)))))) |