]> code.delx.au - gnu-emacs/commitdiff
(byte-compile-form): Only call cl-byte-compile-compiler-macro if it exists.
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 8 Apr 2006 14:56:21 +0000 (14:56 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 8 Apr 2006 14:56:21 +0000 (14:56 +0000)
lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el

index 7b64b3fed767c2bef35757642618aa7350413cad..11834490dc0f1887946d41d0a3e758d2c804e47b 100644 (file)
@@ -1,7 +1,12 @@
+2006-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/bytecomp.el (byte-compile-form): Don't call
+       cl-byte-compile-compiler-macro unless it exists.
+
 2006-04-08  Eli Zaretskii  <eliz@gnu.org>
 
-       * files.el (hack-local-variables-confirm) <offer-save>: Clarify
-       message text.  Suggested by Ralf Angeli.
+       * files.el (hack-local-variables-confirm) <offer-save>:
+       Clarify message text.  Suggested by Ralf Angeli.
 
 2006-04-08  Michael Cadilhac  <michael.cadilhac@lrde.org>  (tiny change)
 
        (cua--init-keymaps): Use it instead of fixed C-return.
        (cua-mode): Set after it.
 
-       * emulation/cua-rect.el (cua--init-rectangles): Use
-       cua-rectangle-mark-key instead of fixed C-return.
+       * emulation/cua-rect.el (cua--init-rectangles):
+       Use cua-rectangle-mark-key instead of fixed C-return.
 
 2006-03-25  Nick Roberts  <nickrob@snap.net.nz>
 
        * progmodes/gdb-ui.el (gdb-continuation): Declare earlier to
        prevent compiler warnings.
        (gdb-stopped): Check for gud-last-last-frame (case: signal).
-       (breakpoint-disabled): Make lighter for contrast with overlay
-       arrow.
+       (breakpoint-disabled): Make lighter for contrast with overlay arrow.
        (gdb-assembler-custom): Use hollow-right-triangle for assembler
        buffer too.
 
index 64b0a07332b6e1fbf642781b2ab5c7a4edf7381c..83620f3344f7b0c3a5a2e1ab7bb178f8833543a6 100644 (file)
@@ -2765,9 +2765,15 @@ If FORM is a lambda or a macro, byte-compile it as a function."
                (byte-compile-warn "`%s' used from Lisp code\n\
 That command is designed for interactive use only" fn))
           (if (and handler
-                   (or (not (byte-compile-version-cond
-                             byte-compile-compatibility))
-                       (not (get (get fn 'byte-opcode) 'emacs19-opcode))))
+                    ;; Make sure that function exists.  This is important
+                    ;; for CL compiler macros since the symbol may be
+                    ;; `cl-byte-compile-compiler-macro' but if CL isn't
+                    ;; loaded, this function doesn't exist.
+                    (or (not (memq handler '(cl-byte-compile-compiler-macro)))
+                        (fboundp handler))
+                   (not (and (byte-compile-version-cond
+                               byte-compile-compatibility)
+                              (get (get fn 'byte-opcode) 'emacs19-opcode))))
                (funcall handler form)
             (when (memq 'callargs byte-compile-warnings)
               (if (memq fn '(custom-declare-group custom-declare-variable custom-declare-face))