3377 |
(if bound |
(if bound |
3378 |
(cons bound byte-compile-bound-variables) |
(cons bound byte-compile-bound-variables) |
3379 |
byte-compile-bound-variables)) |
byte-compile-bound-variables)) |
3380 |
|
;; Suppress all warnings, for code not used in Emacs. |
3381 |
(byte-compile-warnings |
(byte-compile-warnings |
3382 |
(if (equal ,condition '(featurep 'xemacs)) |
(if (member ,condition '((featurep 'xemacs) |
3383 |
|
(not (featurep 'emacs)))) |
3384 |
nil byte-compile-warnings))) |
nil byte-compile-warnings))) |
3385 |
(unwind-protect |
(unwind-protect |
3386 |
(progn ,@body) |
(progn ,@body) |
3452 |
(byte-compile-form-do-effect t) |
(byte-compile-form-do-effect t) |
3453 |
(byte-compile-and-recursion args failtag)))) |
(byte-compile-and-recursion args failtag)))) |
3454 |
|
|
3455 |
;; Handle compilation of a multi-argument `and' call. |
;; Handle compilation of a nontrivial `and' call. |
3456 |
;; We use tail recursion so we can use byte-compile-maybe-guarded. |
;; We use tail recursion so we can use byte-compile-maybe-guarded. |
3457 |
(defun byte-compile-and-recursion (rest failtag) |
(defun byte-compile-and-recursion (rest failtag) |
3458 |
(if (cdr rest) |
(if (cdr rest) |
3469 |
(args (cdr form))) |
(args (cdr form))) |
3470 |
(if (null args) |
(if (null args) |
3471 |
(byte-compile-form-do-effect nil) |
(byte-compile-form-do-effect nil) |
3472 |
(while (cdr args) |
(byte-compile-or-recursion args wintag)))) |
3473 |
(byte-compile-form (car args)) |
|
3474 |
|
;; Handle compilation of a nontrivial `or' call. |
3475 |
|
;; We use tail recursion so we can use byte-compile-maybe-guarded. |
3476 |
|
(defun byte-compile-or-recursion (rest wintag) |
3477 |
|
(if (cdr rest) |
3478 |
|
(progn |
3479 |
|
(byte-compile-form (car rest)) |
3480 |
(byte-compile-goto-if t for-effect wintag) |
(byte-compile-goto-if t for-effect wintag) |
3481 |
(setq args (cdr args))) |
(byte-compile-maybe-guarded (list 'not (car rest)) |
3482 |
(byte-compile-form-do-effect (car args)) |
(byte-compile-or-recursion (cdr rest) wintag))) |
3483 |
(byte-compile-out-tag wintag)))) |
(byte-compile-form-do-effect (car rest)) |
3484 |
|
(byte-compile-out-tag wintag))) |
3485 |
|
|
3486 |
(defun byte-compile-while (form) |
(defun byte-compile-while (form) |
3487 |
(let ((endtag (byte-compile-make-tag)) |
(let ((endtag (byte-compile-make-tag)) |