- (when (and (listp (caddr entry))
- (not (eq 'byte-code (caaddr entry)))
- ;; Under XEmacs, it's (funcall #<compiled-function ...>)
- (not (and (eq 'funcall (caaddr entry))
- (compiled-function-p (car (cdaddr entry))))))
- (fset 'gnus-tmp-func `(lambda () ,(caddr entry)))
- (byte-compile 'gnus-tmp-func)
- (setcar (cddr entry) (gnus-byte-code 'gnus-tmp-func)))))
+ (let ((form (caddr entry)))
+ (when (and (listp form)
+ ;; Under GNU Emacs, it's (byte-code ...)
+ (not (eq 'byte-code (car form)))
+ ;; Under XEmacs, it's (funcall #<compiled-function ...>)
+ (not (and (eq 'funcall (car form))
+ (byte-code-function-p (cadr form)))))
+ (fset 'gnus-tmp-func `(lambda () ,form))
+ (byte-compile 'gnus-tmp-func)
+ (setcar (cddr entry) (gnus-byte-code 'gnus-tmp-func))))))