]> git.eshelyaron.com Git - emacs.git/commitdiff
(elisp-eval-region): Accept new arg read-function; also handle
authorRichard M. Stallman <rms@gnu.org>
Sat, 13 Jun 1998 04:34:18 +0000 (04:34 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 13 Jun 1998 04:34:18 +0000 (04:34 +0000)
load-read-function.

lisp/emacs-lisp/eval-reg.el

index a38acade8be60ddb622dbcb9ce22e1ad30a9425e..8d7824146ba00654095ab399dc16a28103ccaaaa 100644 (file)
@@ -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.