diff options
| author | Stefan Monnier | 2012-08-15 21:18:07 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-08-15 21:18:07 -0400 |
| commit | 8be3a09c4f4ed0eae2902b81e80856e917a81b2d (patch) | |
| tree | 6b460256c489213a92086200db5a183318175dd8 /src | |
| parent | 94c9ece10275f8ca9323c38f93607f1046035c79 (diff) | |
| download | emacs-8be3a09c4f4ed0eae2902b81e80856e917a81b2d.tar.gz emacs-8be3a09c4f4ed0eae2902b81e80856e917a81b2d.zip | |
* src/eval.c (eval_sub): Bind lexical-binding.
* src/lread.c (Qlexical_binding): Make non-static.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 17 | ||||
| -rw-r--r-- | src/eval.c | 14 | ||||
| -rw-r--r-- | src/lread.c | 2 |
3 files changed, 25 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 6e49dd44fde..b203908cdb6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2012-08-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * eval.c (eval_sub): Bind lexical-binding. | ||
| 4 | * lread.c (Qlexical_binding): Make non-static. | ||
| 5 | |||
| 1 | 2012-08-15 Jan Djärv <jan.h.d@swipnet.se> | 6 | 2012-08-15 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 7 | ||
| 3 | * nsmenu.m (popupSession): Remove. | 8 | * nsmenu.m (popupSession): Remove. |
| @@ -44,8 +49,8 @@ | |||
| 44 | 49 | ||
| 45 | Generalize and cleanup font subsystem checks. | 50 | Generalize and cleanup font subsystem checks. |
| 46 | * font.h (FONT_DEBUG, font_assert): Remove. | 51 | * font.h (FONT_DEBUG, font_assert): Remove. |
| 47 | * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: Change | 52 | * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: |
| 48 | font_assert to eassert. Use eassert where appropriate. | 53 | Change font_assert to eassert. Use eassert where appropriate. |
| 49 | 54 | ||
| 50 | 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru> | 55 | 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru> |
| 51 | 56 | ||
| @@ -53,10 +58,10 @@ | |||
| 53 | 58 | ||
| 54 | 2012-08-15 Chong Yidong <cyd@gnu.org> | 59 | 2012-08-15 Chong Yidong <cyd@gnu.org> |
| 55 | 60 | ||
| 56 | * gtkutil.c (xg_get_font): Rename from xg_get_font_name. When | 61 | * gtkutil.c (xg_get_font): Rename from xg_get_font_name. |
| 57 | using the new font chooser, use gtk_font_chooser_get_font_desc to | 62 | When using the new font chooser, use gtk_font_chooser_get_font_desc to |
| 58 | extract the font descriptor instead of just the font name. In | 63 | extract the font descriptor instead of just the font name. |
| 59 | that case, return a font spec instead of a string. | 64 | In that case, return a font spec instead of a string. |
| 60 | (x_last_font_name): Move to this file from xfns.c. | 65 | (x_last_font_name): Move to this file from xfns.c. |
| 61 | 66 | ||
| 62 | * xfns.c (Fx_select_font): The return value can also be a font | 67 | * xfns.c (Fx_select_font): The return value can also be a font |
diff --git a/src/eval.c b/src/eval.c index b531f790cc5..f3f14d60e1c 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -2217,7 +2217,19 @@ eval_sub (Lisp_Object form) | |||
| 2217 | goto retry; | 2217 | goto retry; |
| 2218 | } | 2218 | } |
| 2219 | if (EQ (funcar, Qmacro)) | 2219 | if (EQ (funcar, Qmacro)) |
| 2220 | val = eval_sub (apply1 (Fcdr (fun), original_args)); | 2220 | { |
| 2221 | ptrdiff_t count = SPECPDL_INDEX (); | ||
| 2222 | extern Lisp_Object Qlexical_binding; | ||
| 2223 | Lisp_Object exp; | ||
| 2224 | /* Bind lexical-binding during expansion of the macro, so the | ||
| 2225 | macro can know reliably if the code it outputs will be | ||
| 2226 | interpreted using lexical-binding or not. */ | ||
| 2227 | specbind (Qlexical_binding, | ||
| 2228 | NILP (Vinternal_interpreter_environment) ? Qnil : Qt); | ||
| 2229 | exp = apply1 (Fcdr (fun), original_args); | ||
| 2230 | unbind_to (count, Qnil); | ||
| 2231 | val = eval_sub (exp); | ||
| 2232 | } | ||
| 2221 | else if (EQ (funcar, Qlambda) | 2233 | else if (EQ (funcar, Qlambda) |
| 2222 | || EQ (funcar, Qclosure)) | 2234 | || EQ (funcar, Qclosure)) |
| 2223 | val = apply_lambda (fun, original_args); | 2235 | val = apply_lambda (fun, original_args); |
diff --git a/src/lread.c b/src/lread.c index 72991e92bae..94ae4dd4282 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -80,7 +80,7 @@ static Lisp_Object Qascii_character, Qload, Qload_file_name; | |||
| 80 | Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; | 80 | Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; |
| 81 | static Lisp_Object Qinhibit_file_name_operation; | 81 | static Lisp_Object Qinhibit_file_name_operation; |
| 82 | static Lisp_Object Qeval_buffer_list; | 82 | static Lisp_Object Qeval_buffer_list; |
| 83 | static Lisp_Object Qlexical_binding; | 83 | Lisp_Object Qlexical_binding; |
| 84 | static Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */ | 84 | static Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */ |
| 85 | 85 | ||
| 86 | /* Used instead of Qget_file_char while loading *.elc files compiled | 86 | /* Used instead of Qget_file_char while loading *.elc files compiled |