(elisp-eval-region): Accept new arg read-function; also handle
load-read-function.
This commit is contained in:
parent
63987c84b1
commit
a440f81d29
1 changed files with 13 additions and 2 deletions
|
@ -122,7 +122,8 @@ its value will not be lost."
|
|||
(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 @@ of the text to be executed.
|
|||
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 @@ eval, and the printer."
|
|||
(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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue