]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/eval.c (Fmacroexpand): Stop if the macro returns the same form.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 8 Jun 2012 02:47:26 +0000 (22:47 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 8 Jun 2012 02:47:26 +0000 (22:47 -0400)
src/ChangeLog
src/eval.c

index 3acf12e4483651b851d87f2a616bb9daa74f41fb..e16da43761f2655c4fceaef4197a0086f65c94ea 100644 (file)
@@ -1,3 +1,7 @@
+2012-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fmacroexpand): Stop if the macro returns the same form.
+
 2012-06-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        * doprnt.c (doprnt): Truncate multibyte char correctly.
index 1da841a4073d03ee36fcef1b88b9a161820dcc2e..85ff3ae19e6cee7a642c4c78f3365748077477c1 100644 (file)
@@ -1020,7 +1020,13 @@ definitions to shadow the loaded ones for use in file byte-compilation.  */)
          if (NILP (expander))
            break;
        }
-      form = apply1 (expander, XCDR (form));
+      {
+       Lisp_Object newform = apply1 (expander, XCDR (form));
+       if (EQ (form, newform))
+         break;
+       else
+         form = newform;
+      }
     }
   return form;
 }