Index: emacs/lisp/emacs-lisp/bytecomp.el diff -c emacs/lisp/emacs-lisp/bytecomp.el:2.170 emacs/lisp/emacs-lisp/bytecomp.el:2.171 *** emacs/lisp/emacs-lisp/bytecomp.el:2.170 Mon Jul 4 17:33:35 2005 --- emacs/lisp/emacs-lisp/bytecomp.el Fri Jul 8 22:49:47 2005 *************** *** 3351,3361 **** (defmacro byte-compile-maybe-guarded (condition &rest body) "Execute forms in BODY, potentially guarded by CONDITION. ! CONDITION is the test in an `if' form or in a `cond' clause. ! BODY is to compile the first arm of the if or the body of the ! cond clause. If CONDITION is of the form `(foundp 'foo)' or `(boundp 'foo)', the relevant warnings from BODY about foo ! being undefined will be suppressed." (declare (indent 1) (debug t)) `(let* ((fbound (if (eq 'fboundp (car-safe ,condition)) --- 3351,3364 ---- (defmacro byte-compile-maybe-guarded (condition &rest body) "Execute forms in BODY, potentially guarded by CONDITION. ! CONDITION is a variable whose value is a test in an `if' or `cond'. ! BODY is the code to compile first arm of the if or the body of the ! cond clause. If CONDITION's value is of the form `(foundp 'foo)' or `(boundp 'foo)', the relevant warnings from BODY about foo ! being undefined will be suppressed. ! ! If CONDITION's value is `(featurep 'xemacs)', that suppresses all ! warnings during execution of BODY." (declare (indent 1) (debug t)) `(let* ((fbound (if (eq 'fboundp (car-safe ,condition)) *************** *** 3373,3385 **** (byte-compile-bound-variables (if bound (cons bound byte-compile-bound-variables) ! byte-compile-bound-variables))) ! (progn ,@body) ! ;; Maybe remove the function symbol from the unresolved list. ! (if fbound ! (setq byte-compile-unresolved-functions ! (delq (assq fbound byte-compile-unresolved-functions) ! byte-compile-unresolved-functions))))) (defun byte-compile-if (form) (byte-compile-form (car (cdr form))) --- 3376,3392 ---- (byte-compile-bound-variables (if bound (cons bound byte-compile-bound-variables) ! byte-compile-bound-variables)) ! (byte-compile-warnings ! (if (equal ,condition '(featurep 'xemacs)) ! nil byte-compile-warnings))) ! (unwind-protect ! (progn ,@body) ! ;; Maybe remove the function symbol from the unresolved list. ! (if fbound ! (setq byte-compile-unresolved-functions ! (delq (assq fbound byte-compile-unresolved-functions) ! byte-compile-unresolved-functions)))))) (defun byte-compile-if (form) (byte-compile-form (car (cdr form))) *************** *** 3420,3431 **** (if (null (cdr clause)) ;; First clause is a singleton. (byte-compile-goto-if t for-effect donetag) ! (setq nexttag (byte-compile-make-tag)) ! (byte-compile-goto 'byte-goto-if-nil nexttag) ! (byte-compile-maybe-guarded (car clause) ! (byte-compile-body (cdr clause) for-effect)) ! (byte-compile-goto 'byte-goto donetag) ! (byte-compile-out-tag nexttag))))) ;; Last clause (let ((guard (car clause))) (and (cdr clause) (not (eq guard t)) --- 3427,3438 ---- (if (null (cdr clause)) ;; First clause is a singleton. (byte-compile-goto-if t for-effect donetag) ! (setq nexttag (byte-compile-make-tag)) ! (byte-compile-goto 'byte-goto-if-nil nexttag) ! (byte-compile-maybe-guarded (car clause) ! (byte-compile-body (cdr clause) for-effect)) ! (byte-compile-goto 'byte-goto donetag) ! (byte-compile-out-tag nexttag))))) ;; Last clause (let ((guard (car clause))) (and (cdr clause) (not (eq guard t))
_______________________________________________ Emacs-diffs mailing list Emacs-diffs@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-diffs