Mercurial > emacs
changeset 22464:fc8109f5d8f5
(elisp-eval-region): Accept new arg read-function; also handle
load-read-function.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 13 Jun 1998 04:34:18 +0000 |
parents | fd555029931d |
children | 5dcb65955074 |
files | lisp/emacs-lisp/eval-reg.el |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/eval-reg.el Sat Jun 13 04:33:31 1998 +0000 +++ b/lisp/emacs-lisp/eval-reg.el Sat Jun 13 04:34:18 1998 +0000 @@ -122,7 +122,8 @@ (funcall elisp-code))))) -(defun elisp-eval-region (elisp-start elisp-end &optional elisp-output) +(defun elisp-eval-region (elisp-start elisp-end &optional elisp-output + elisp-read-function) "Execute the region as Lisp code. When called from programs, expects two arguments, giving starting and ending indices in the current buffer @@ -130,6 +131,10 @@ Programs can pass third argument PRINTFLAG which controls printing of output: nil means discard it; anything else is stream for print. +Also the fourth argument READ-FUNCTION, if non-nil, is used +instead of `read' to read each expression. It gets one argument +which is the input stream for reading characters. + This version, from `eval-reg.el', allows Lisp customization of read, eval, and the printer." @@ -149,7 +154,13 @@ (goto-char elisp-start) (elisp-skip-whitespace) (while (< (point) elisp-end-marker) - (setq elisp-form (read elisp-buf)) + (setq elisp-form + (cond (elisp-read-function + (funcall elisp-read-function elisp-buf)) + (load-read-function + (funcall load-read-function elisp-buf)) + (t + (read elisp-buf)))) (let ((elisp-current-buffer (current-buffer))) ;; Restore the inside current-buffer.