1405 |
nil |
nil |
1406 |
(save-some-buffers) |
(save-some-buffers) |
1407 |
(force-mode-line-update)) |
(force-mode-line-update)) |
1408 |
(let ((directories (list (expand-file-name directory))) |
(save-current-buffer |
1409 |
(skip-count 0) |
(byte-goto-log-buffer) |
1410 |
(fail-count 0) |
(setq default-directory directory) |
1411 |
(file-count 0) |
(let ((directories (list (expand-file-name directory))) |
1412 |
(dir-count 0) |
(default-directory default-directory) |
1413 |
last-dir) |
(skip-count 0) |
1414 |
(displaying-byte-compile-warnings |
(fail-count 0) |
1415 |
(while directories |
(file-count 0) |
1416 |
(setq directory (car directories)) |
(dir-count 0) |
1417 |
(message "Checking %s..." directory) |
last-dir) |
1418 |
(let ((files (directory-files directory)) |
(displaying-byte-compile-warnings |
1419 |
source dest) |
(while directories |
1420 |
(dolist (file files) |
(setq directory (car directories)) |
1421 |
(setq source (expand-file-name file directory)) |
(message "Checking %s..." directory) |
1422 |
(if (and (not (member file '("." ".." "RCS" "CVS"))) |
(let ((files (directory-files directory)) |
1423 |
(file-directory-p source) |
source dest) |
1424 |
(not (file-symlink-p source))) |
(dolist (file files) |
1425 |
;; This file is a subdirectory. Handle them differently. |
(setq source (expand-file-name file directory)) |
1426 |
(when (or (null arg) |
(if (and (not (member file '("." ".." "RCS" "CVS"))) |
1427 |
(eq 0 arg) |
(file-directory-p source) |
1428 |
(y-or-n-p (concat "Check " source "? "))) |
(not (file-symlink-p source))) |
1429 |
(setq directories |
;; This file is a subdirectory. Handle them differently. |
1430 |
(nconc directories (list source)))) |
(when (or (null arg) |
1431 |
;; It is an ordinary file. Decide whether to compile it. |
(eq 0 arg) |
1432 |
(if (and (string-match emacs-lisp-file-regexp source) |
(y-or-n-p (concat "Check " source "? "))) |
1433 |
(file-readable-p source) |
(setq directories |
1434 |
(not (auto-save-file-name-p source)) |
(nconc directories (list source)))) |
1435 |
(setq dest (byte-compile-dest-file source)) |
;; It is an ordinary file. Decide whether to compile it. |
1436 |
(if (file-exists-p dest) |
(if (and (string-match emacs-lisp-file-regexp source) |
1437 |
;; File was already compiled. |
(file-readable-p source) |
1438 |
(or force (file-newer-than-file-p source dest)) |
(not (auto-save-file-name-p source)) |
1439 |
;; No compiled file exists yet. |
(setq dest (byte-compile-dest-file source)) |
1440 |
(and arg |
(if (file-exists-p dest) |
1441 |
(or (eq 0 arg) |
;; File was already compiled. |
1442 |
(y-or-n-p (concat "Compile " source "? ")))))) |
(or force (file-newer-than-file-p source dest)) |
1443 |
(progn (if (and noninteractive (not byte-compile-verbose)) |
;; No compiled file exists yet. |
1444 |
(message "Compiling %s..." source)) |
(and arg |
1445 |
(let ((res (byte-compile-file source))) |
(or (eq 0 arg) |
1446 |
(cond ((eq res 'no-byte-compile) |
(y-or-n-p (concat "Compile " source "? ")))))) |
1447 |
(setq skip-count (1+ skip-count))) |
(progn (if (and noninteractive (not byte-compile-verbose)) |
1448 |
((eq res t) |
(message "Compiling %s..." source)) |
1449 |
(setq file-count (1+ file-count))) |
(let ((res (byte-compile-file source))) |
1450 |
((eq res nil) |
(cond ((eq res 'no-byte-compile) |
1451 |
(setq fail-count (1+ fail-count))))) |
(setq skip-count (1+ skip-count))) |
1452 |
(or noninteractive |
((eq res t) |
1453 |
(message "Checking %s..." directory)) |
(setq file-count (1+ file-count))) |
1454 |
(if (not (eq last-dir directory)) |
((eq res nil) |
1455 |
(setq last-dir directory |
(setq fail-count (1+ fail-count))))) |
1456 |
dir-count (1+ dir-count))) |
(or noninteractive |
1457 |
))))) |
(message "Checking %s..." directory)) |
1458 |
(setq directories (cdr directories)))) |
(if (not (eq last-dir directory)) |
1459 |
(message "Done (Total of %d file%s compiled%s%s%s)" |
(setq last-dir directory |
1460 |
file-count (if (= file-count 1) "" "s") |
dir-count (1+ dir-count))) |
1461 |
(if (> fail-count 0) (format ", %d failed" fail-count) "") |
))))) |
1462 |
(if (> skip-count 0) (format ", %d skipped" skip-count) "") |
(setq directories (cdr directories)))) |
1463 |
(if (> dir-count 1) (format " in %d directories" dir-count) "")))) |
(message "Done (Total of %d file%s compiled%s%s%s)" |
1464 |
|
file-count (if (= file-count 1) "" "s") |
1465 |
|
(if (> fail-count 0) (format ", %d failed" fail-count) "") |
1466 |
|
(if (> skip-count 0) (format ", %d skipped" skip-count) "") |
1467 |
|
(if (> dir-count 1) (format " in %d directories" dir-count) ""))))) |
1468 |
|
|
1469 |
(defvar no-byte-compile nil |
(defvar no-byte-compile nil |
1470 |
"Non-nil to prevent byte-compiling of emacs-lisp code. |
"Non-nil to prevent byte-compiling of emacs-lisp code. |