diff options
| author | Joakim Verona | 2012-06-13 18:00:21 +0200 |
|---|---|---|
| committer | Joakim Verona | 2012-06-13 18:00:21 +0200 |
| commit | 13d6898b0656b38da837261ec20a055a1be4a7e5 (patch) | |
| tree | b3399abf9cbea221b083b5bd8368915169b02fb1 /src/eval.c | |
| parent | 5259b41aab32e82ff06d977877f2e456541b3c0b (diff) | |
| parent | 8cca97031d60136b3bdebef0d978ee3fe40eddec (diff) | |
| download | emacs-13d6898b0656b38da837261ec20a055a1be4a7e5.tar.gz emacs-13d6898b0656b38da837261ec20a055a1be4a7e5.zip | |
upstream, doesn build yet
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 20 |
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. */ | ||
| 794 | DEFUN ("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 | ||
| 794 | DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0, | 805 | DEFUN ("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); |