Mercurial > emacs
changeset 43579:ebb2754ac469
(comint-preoutput-filter-functions): Doc fix.
(comint-output-filter-functions, comint-input-filter-functions)
(comint-redirect-filter-functions): Likewise.
(comint-redirect-preoutput-filter): Do the local-hook
handling of t when running comint-redirect-filter-functions.
(comint-output-filter): Likewise for comint-preoutput-filter-functions.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 27 Feb 2002 19:31:00 +0000 |
parents | fa66c2edee4d |
children | a163de064942 |
files | lisp/comint.el |
diffstat | 1 files changed, 26 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/comint.el Wed Feb 27 05:29:00 2002 +0000 +++ b/lisp/comint.el Wed Feb 27 19:31:00 2002 +0000 @@ -378,7 +378,8 @@ "Functions to call before input is sent to the process. These functions get one argument, a string containing the text to send. -This variable is buffer-local.") +You can use `add-hook' to add functions to this list +either globally or locally.") (defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom) "Functions to call after output is inserted into the buffer. @@ -390,7 +391,8 @@ See also `comint-preoutput-filter-functions'. -This variable is buffer-local.") +You can use `add-hook' to add functions to this list +either globally or locally.") (defvar comint-input-sender-no-newline nil "Non-nil directs the `comint-input-sender' function not to send a newline.") @@ -1564,7 +1566,8 @@ the last function is the text that is actually inserted in the redirection buffer. -This variable is permanent-local.") +You can use `add-hook' to add functions to this list +either globally or locally.") ;; When non-nil, this is the last overlay used for output. ;; It is kept around so that we can extend it instead of creating @@ -1631,7 +1634,12 @@ ;; Run preoutput filters (let ((functions comint-preoutput-filter-functions)) (while (and functions string) - (setq string (funcall (car functions) string)) + (if (eq (car functions) t) + (let ((functions (default-value 'comint-preoutput-filter-functions))) + (while (and functions string) + (setq string (funcall (car functions) string)) + (setq functions (cdr functions)))) + (setq string (funcall (car functions) string))) (setq functions (cdr functions)))) ;; Insert STRING @@ -2990,9 +2998,10 @@ The functions on the list are called sequentially, and each one is given the string returned by the previous one. The string returned by the -last function is the text that is actually inserted in the redirection buffer.") - -(make-variable-buffer-local 'comint-redirect-filter-functions) +last function is the text that is actually inserted in the redirection buffer. + +You can use `add-hook' to add functions to this list +either globally or locally.") ;; Internal variables @@ -3126,8 +3135,16 @@ ;; If there are any filter functions, give them a chance to modify the string (let ((functions comint-redirect-filter-functions)) (while (and functions filtered-input-string) - (setq filtered-input-string - (funcall (car functions) filtered-input-string)) + (if (eq (car functions) t) + ;; If a local value says "use the default value too", + ;; do that. + (let ((functions (default-value 'comint-redirect-filter-functions))) + (while (and functions filtered-input-string) + (setq filtered-input-string + (funcall (car functions) filtered-input-string)) + (setq functions (cdr functions)))) + (setq filtered-input-string + (funcall (car functions) filtered-input-string))) (setq functions (cdr functions)))) ;; Clobber `comint-redirect-finished-regexp'