aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorStefan Monnier2012-06-08 09:18:26 -0400
committerStefan Monnier2012-06-08 09:18:26 -0400
commit513749ee1862278385028d6700e1d2ce8abd35e6 (patch)
treecb835ce77cd2aa8d828dca57b55642e85f3942c5 /src/eval.c
parent595ef4ad76fb75db4a0adb2baf117ef6d68a2e41 (diff)
downloademacs-513749ee1862278385028d6700e1d2ce8abd35e6.tar.gz
emacs-513749ee1862278385028d6700e1d2ce8abd35e6.zip
Clean up scoping rule of predefined single-word vars.
* lisp/startup.el (argv, argi): Make lexically scoped. * lisp/emacs-lisp/float-sup.el (pi): Use internal-make-var-non-special. * lisp/emacs-lisp/cl-macs.el: Use lexical-binding. Rename cl-bind-* to cl--bind-*. * lisp/files.el: Don't require `cl' since it doesn't use it. * lisp/emacs-lisp/pcase.el, lisp/emacs-lisp/macroexp.el: Add coding cookie. * src/eval.c (Fmake_var_non_special): New primitive. (syms_of_eval): Defsubr it. * src/lread.c (syms_of_lread): Mark `values' as lexically scoped.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c
index 85ff3ae19e6..5a9327a99d8 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -790,6 +790,17 @@ usage: (defconst SYMBOL INITVALUE [DOCSTRING]) */)
790 return sym; 790 return sym;
791} 791}
792 792
793/* Make SYMBOL lexically scoped. */
794DEFUN ("internal-make-var-non-special", Fmake_var_non_special,
795 Smake_var_non_special, 1, 1, 0,
796 doc: /* Internal function. */)
797 (Lisp_Object symbol)
798{
799 CHECK_SYMBOL (symbol);
800 XSYMBOL (symbol)->declared_special = 0;
801 return Qnil;
802}
803
793 804
794DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0, 805DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0,
795 doc: /* Bind variables according to VARLIST then eval BODY. 806 doc: /* Bind variables according to VARLIST then eval BODY.
@@ -3582,6 +3593,7 @@ alist of active lexical bindings. */);
3582 defsubr (&Sdefvar); 3593 defsubr (&Sdefvar);
3583 defsubr (&Sdefvaralias); 3594 defsubr (&Sdefvaralias);
3584 defsubr (&Sdefconst); 3595 defsubr (&Sdefconst);
3596 defsubr (&Smake_var_non_special);
3585 defsubr (&Slet); 3597 defsubr (&Slet);
3586 defsubr (&SletX); 3598 defsubr (&SletX);
3587 defsubr (&Swhile); 3599 defsubr (&Swhile);