From: Richard M. Stallman Date: Tue, 21 Mar 1995 20:05:23 +0000 (+0000) Subject: (Vload_read_function): New variable. X-Git-Tag: emacs-19.34~4779 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=84a150451b13a779f1d2e638e0b49047bc793441;p=emacs.git (Vload_read_function): New variable. (readevalloop): Use that variable. (syms_of_lread): Set up Lisp variable. --- diff --git a/src/lread.c b/src/lread.c index f0afa5f0710..1af746ad9ef 100644 --- a/src/lread.c +++ b/src/lread.c @@ -87,6 +87,9 @@ Lisp_Object Vcurrent_load_list; /* Name of file actually being read by `load'. */ Lisp_Object Vload_file_name; +/* Function to use for reading, in `load' and friends. */ +Lisp_Object Vload_read_function; + /* List of descriptors now open for Fload. */ static Lisp_Object load_descriptor_list; @@ -743,7 +746,10 @@ readevalloop (readcharfun, stream, sourcename, evalfun, printflag) else { UNREAD (c); - val = read0 (readcharfun); + if (NILP (Vload_read_function)) + val = read0 (readcharfun); + else + val = call1 (Vload_read_function, readcharfun); } val = (*evalfun) (val); @@ -2083,6 +2089,11 @@ or variables, and cons cells `(provide . FEATURE)' and `(require . FEATURE)'."); "Used for internal purposes by `load'."); Vcurrent_load_list = Qnil; + DEFVAR_LISP ("load-read-function", &Vload_read_function, + "Function used by `load' and `eval-region' for reading expressions.\n\ +The default is nil, which means use the function `read'."); + Vload_read_function = Qnil; + load_descriptor_list = Qnil; staticpro (&load_descriptor_list);