[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r111281: * comint.el (comint-redirect
From: |
Michael Mauger |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r111281: * comint.el (comint-redirect-previous-input-string): New variable. |
Date: |
Thu, 20 Dec 2012 21:08:29 -0500 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 111281
committer: Michael Mauger <address@hidden>
branch nick: trunk
timestamp: Thu 2012-12-20 21:08:29 -0500
message:
* comint.el (comint-redirect-previous-input-string): New variable.
(comint-redirect-setup, comint-redirect-cleanup)
(comint-redirect-preoutput-filter): Use it. Fixes redirection bug.
(comint-redirect-preoutput-filter): Fix verbose message.
modified:
lisp/ChangeLog
lisp/comint.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-12-20 11:15:38 +0000
+++ b/lisp/ChangeLog 2012-12-21 02:08:29 +0000
@@ -1,3 +1,10 @@
+2012-12-20 Michael R. Mauger <address@hidden>
+
+ * comint.el (comint-redirect-previous-input-string): New variable.
+ (comint-redirect-setup, comint-redirect-cleanup)
+ (comint-redirect-preoutput-filter): Use it. Fixes redirection bug.
+ (comint-redirect-preoutput-filter): Fix verbose message.
+
2012-12-20 Michael Albinus <address@hidden>
* progmodes/grep.el (rgrep): Escape command line. Sometimes, it
=== modified file 'lisp/comint.el'
--- a/lisp/comint.el 2012-10-08 00:12:26 +0000
+++ b/lisp/comint.el 2012-12-21 02:08:29 +0000
@@ -3490,6 +3490,11 @@
This is useful, for instance, for insertion into Help mode buffers.
You probably want to set it locally to the output buffer.")
+(defvar comint-redirect-previous-input-string nil
+ "Last redirected line of text.
+Allows detection of the end of the redirection in case the
+completion string is split between two output segments.")
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Functions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -3527,6 +3532,9 @@
(make-local-variable 'comint-redirect-completed)
(setq comint-redirect-completed nil)
+ (make-local-variable 'comint-redirect-previous-input-string)
+ (setq comint-redirect-previous-input-string "")
+
(setq mode-line-process
(if mode-line-process
(list (concat (elt mode-line-process 0) " Redirection"))
@@ -3535,6 +3543,8 @@
(defun comint-redirect-cleanup ()
"End a Comint redirection. See `comint-redirect-send-command'."
(interactive)
+ ;; Release the last redirected string
+ (setq comint-redirect-previous-input-string nil)
;; Restore the process filter
(set-process-filter (get-buffer-process (current-buffer))
comint-redirect-original-filter-function)
@@ -3616,18 +3626,21 @@
;; Message
(and comint-redirect-verbose
- (message "Redirected output to buffer(s) %s"
- (mapconcat 'identity output-buffer-list " ")))
+ (message "Redirected output to buffer(s) %s" output-buffer-list))
;; If we see the prompt, tidy up
;; We'll look for the prompt in the original string, so nobody can
;; clobber it
- (and (string-match comint-redirect-finished-regexp input-string)
+ (and (string-match comint-redirect-finished-regexp
+ (concat comint-redirect-previous-input-string
+ input-string))
(progn
(and comint-redirect-verbose
(message "Redirection completed"))
(comint-redirect-cleanup)
(run-hooks 'comint-redirect-hook)))
+ (setq comint-redirect-previous-input-string input-string)
+
;; Echo input?
(if comint-redirect-echo-input
filtered-input-string
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r111281: * comint.el (comint-redirect-previous-input-string): New variable.,
Michael Mauger <=