/[emacs]/emacs/lisp/emacs-lisp/bytecomp.el
ViewVC logotype

Diff of /emacs/lisp/emacs-lisp/bytecomp.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.172 by rms, Sat Jul 16 18:02:07 2005 UTC revision 2.173 by rms, Sat Jul 16 18:27:25 2005 UTC
# Line 3377  warnings during execution of BODY." Line 3377  warnings during execution of BODY."
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)
# Line 3450  warnings during execution of BODY." Line 3452  warnings during execution of 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)
# Line 3467  warnings during execution of BODY." Line 3469  warnings during execution of BODY."
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))

Legend:
Removed from v.2.172  
changed lines
  Added in v.2.173

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26