diff options
| author | Stefan Monnier | 2012-06-07 22:47:26 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-06-07 22:47:26 -0400 |
| commit | 4f18a4ed84d7268090a92a194dcda40cae1197dd (patch) | |
| tree | 240fec2999a3a8338795e4e0fb4f5aea35d45058 /src/eval.c | |
| parent | 0e8bbf669099d453b89e47896c8e897f390118ad (diff) | |
| download | emacs-4f18a4ed84d7268090a92a194dcda40cae1197dd.tar.gz emacs-4f18a4ed84d7268090a92a194dcda40cae1197dd.zip | |
* src/eval.c (Fmacroexpand): Stop if the macro returns the same form.
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c index 1da841a4073..85ff3ae19e6 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1020,7 +1020,13 @@ definitions to shadow the loaded ones for use in file byte-compilation. */) | |||
| 1020 | if (NILP (expander)) | 1020 | if (NILP (expander)) |
| 1021 | break; | 1021 | break; |
| 1022 | } | 1022 | } |
| 1023 | form = apply1 (expander, XCDR (form)); | 1023 | { |
| 1024 | Lisp_Object newform = apply1 (expander, XCDR (form)); | ||
| 1025 | if (EQ (form, newform)) | ||
| 1026 | break; | ||
| 1027 | else | ||
| 1028 | form = newform; | ||
| 1029 | } | ||
| 1024 | } | 1030 | } |
| 1025 | return form; | 1031 | return form; |
| 1026 | } | 1032 | } |