aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorJoakim Verona2012-06-13 18:00:21 +0200
committerJoakim Verona2012-06-13 18:00:21 +0200
commit13d6898b0656b38da837261ec20a055a1be4a7e5 (patch)
treeb3399abf9cbea221b083b5bd8368915169b02fb1 /src/eval.c
parent5259b41aab32e82ff06d977877f2e456541b3c0b (diff)
parent8cca97031d60136b3bdebef0d978ee3fe40eddec (diff)
downloademacs-13d6898b0656b38da837261ec20a055a1be4a7e5.tar.gz
emacs-13d6898b0656b38da837261ec20a055a1be4a7e5.zip
upstream, doesn build yet
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index 1da841a4073..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.
@@ -1020,7 +1031,13 @@ definitions to shadow the loaded ones for use in file byte-compilation. */)
1020 if (NILP (expander)) 1031 if (NILP (expander))
1021 break; 1032 break;
1022 } 1033 }
1023 form = apply1 (expander, XCDR (form)); 1034 {
1035 Lisp_Object newform = apply1 (expander, XCDR (form));
1036 if (EQ (form, newform))
1037 break;
1038 else
1039 form = newform;
1040 }
1024 } 1041 }
1025 return form; 1042 return form;
1026} 1043}
@@ -3576,6 +3593,7 @@ alist of active lexical bindings. */);
3576 defsubr (&Sdefvar); 3593 defsubr (&Sdefvar);
3577 defsubr (&Sdefvaralias); 3594 defsubr (&Sdefvaralias);
3578 defsubr (&Sdefconst); 3595 defsubr (&Sdefconst);
3596 defsubr (&Smake_var_non_special);
3579 defsubr (&Slet); 3597 defsubr (&Slet);
3580 defsubr (&SletX); 3598 defsubr (&SletX);
3581 defsubr (&Swhile); 3599 defsubr (&Swhile);