print compiled macros correctly
authorAndy Wingo <wingo@pobox.com>
Wed, 3 Sep 2008 05:24:11 +0000 (22:24 -0700)
committerAndy Wingo <wingo@pobox.com>
Sun, 7 Sep 2008 20:27:19 +0000 (22:27 +0200)
* libguile/macros.c (macro_print): Print macros whose code is a program
  as non-primitive. (Already, primitive-macro? would return #f.)

libguile/macros.c

index db279ec..48286d8 100644 (file)
@@ -28,6 +28,7 @@
 #include "libguile/deprecation.h"
 
 #include "libguile/validate.h"
+#include "libguile/programs.h"
 #include "libguile/macros.h"
 
 #include "libguile/private-options.h"
@@ -44,7 +45,7 @@ macro_print (SCM macro, SCM port, scm_print_state *pstate)
       || scm_is_false (scm_printer_apply (SCM_PRINT_CLOSURE,
                                        macro, port, pstate)))
     {
-      if (!SCM_CLOSUREP (code))
+      if (!SCM_CLOSUREP (code) && !SCM_PROGRAM_P (code))
        scm_puts ("#<primitive-", port);
       else
        scm_puts ("#<", port);