* lisp/initz.el (initz-get-files): Add optional argument `all'.
[elisp/initz.git] / lisp / initz.el
index 2caad35..156d461 100644 (file)
@@ -79,17 +79,11 @@ If ARG is specified, don't display code name."
 
 (defconst initz-init-alist
   `((argument . ("argument"
-                ,(let ((args initz-null-string))
-                   (mapc
-                    (function (lambda (arg)
-                                (unless (string= args initz-null-string)
-                                  (setq args (concat args
-                                                     initz-separator-string)))
-                                (setq arg (initz-trim-separator arg))
-                                (setq args (concat args arg))))
-                    (cdr command-line-args))
-                   args)))
-    (flavor . ("flavor" ,initz-flavor))
+                ,(mapconcat #'(lambda (arg)
+                                (initz-trim-separator arg))
+                            (cdr command-line-args)
+                            initz-separator-string)))
+    ( flavor . ("flavor" ,initz-flavor))
     (host . ("host" ,(system-name)))
     (system . ("system" ,(symbol-name system-type)))
     (misc . (,initz-null-string ,initz-null-string))))
@@ -100,16 +94,14 @@ If ARG is specified, don't display code name."
        (count 0))
     (unless (null list)
       (catch 'found
-       (mapc
-        (function (lambda (temp)
-                    (if (eq type temp)
-                        (let ((elem (nth count list)))
-                          (when (and (eq type 'prefix)
-                                   (not (string= elem initz-null-string)))
-                              (setq elem (concat initz-separator-string
-                                                 elem)))
-                          (throw 'found elem))
-                      (setq count (incf count)))))
+       (mapc #'(lambda (temp)
+                 (if (eq type temp)
+                     (let ((elem (nth count list)))
+                       (when (and (eq type 'prefix)
+                                  (not (string= elem initz-null-string)))
+                         (setq elem (concat initz-separator-string elem)))
+                       (throw 'found elem))
+                   (setq count (incf count))))
         '(dir prefix))
        nil))))
 
@@ -136,11 +128,10 @@ If ARG is specified, don't display code name."
 (defun initz-get-kind (file)
   "Return the kind of FILE."
   (catch 'found
-    (mapc
-     (function (lambda (kind)
-                (when (string-match (initz-directory kind) file)
-                  (throw 'found kind))))
-     '(startup flavor))
+    (mapc #'(lambda (kind)
+             (when (string-match (initz-directory kind) file)
+               (throw 'found kind)))
+         '(startup flavor))
     nil))
 
 (defun initz-get-dir (file)
@@ -154,11 +145,10 @@ If ARG is specified, don't display code name."
          (throw 'found 'misc)
        (when (string-match (concat directory "\\(.+\\)") file)
          (let ((dir (substring (match-string 1 file) 1)))
-           (mapc
-            (function (lambda (alist)
-                        (when (string= (nth 0 (cdr alist)) dir)
-                          (throw 'found (car alist)))))
-            initz-init-alist))))
+           (mapc #'(lambda (alist)
+                     (when (string= (nth 0 (cdr alist)) dir)
+                       (throw 'found (car alist))))
+                 initz-init-alist))))
       nil)))
 
 (defun initz-get-correspondence-file (init-file)
@@ -175,7 +165,7 @@ If ARG is specified, don't display code name."
                        (concat file "c"))
                      directory)))
 
-(defun initz-get-files (kind dir)
+(defun initz-get-files (kind dir &optional all)
   "Return files of the directory made by KIND and DIR."
   (let ((directory (expand-file-name
                    (initz-get-init-value dir 'dir)
@@ -184,32 +174,36 @@ If ARG is specified, don't display code name."
                 (concat initz-prefix
                         (initz-get-init-value dir 'prefix))))
        (ext (if (eq kind 'startup) "\\.el$" "\\.elc$")))
-    (unless (and (not (eq dir 'misc))
-                (string= prefix initz-prefix))
-      (directory-files
-       directory t (concat "^\\(" prefix "\\|"
-                          prefix initz-separator-string
-                          initz-module-regexp "\\)" ext)))))
+    ;; List all files.
+    (if all
+       (directory-files
+        directory t (concat "^\\(" initz-prefix "\\|"
+                            initz-prefix initz-separator-string
+                            initz-module-regexp "\\)" ext))
+      (unless (and (not (eq dir 'misc))
+                  (string= prefix initz-prefix))
+       (directory-files
+        directory t (concat "^\\(" prefix "\\|"
+                            prefix initz-separator-string
+                            initz-module-regexp "\\)" ext))))))
 
 (defun initz-make-directory (sym)
   "Make SYM's directory."
-  (mapc
-   (function (lambda (kind)
-              (let ((directory (expand-file-name
-                                (initz-get-init-value sym 'dir)
-                                (initz-directory kind))))
-                (unless (file-directory-p directory)
-                  (make-directory directory t)))))
-   '(startup flavor)))
+  (mapc #'(lambda (kind)
+           (let ((directory (expand-file-name
+                             (initz-get-init-value sym 'dir)
+                             (initz-directory kind))))
+             (unless (file-directory-p directory)
+               (make-directory directory t))))
+       '(startup flavor)))
 
 (defun initz-make-directories ()
   "Make initz directories."
   (interactive)
-  (mapc
-   (function (lambda (alist)
-              (let ((sym (car alist)))
-                (initz-make-directory sym))))
-   initz-init-alist))
+  (mapc #'(lambda (alist)
+           (let ((sym (car alist)))
+             (initz-make-directory sym)))
+       initz-init-alist))
 
 (defun initz-delete-file (flavor-file)
   "Delete the FLAVOR-FILE when startup-file was deleted."
@@ -220,20 +214,18 @@ If ARG is specified, don't display code name."
 (defun initz-delete-files (sym)
   "Delete files in the SYM's directory when startup-file was deleted."
   (let ((flavor-files (initz-get-files 'flavor sym)))
-    (mapc
-     (function (lambda (flavor-file)
-                (initz-delete-file flavor-file)))
-     flavor-files)))
+    (mapc #'(lambda (flavor-file)
+             (initz-delete-file flavor-file))
+         flavor-files)))
 
 (defun initz-delete ()
   "Delete the initz startup files."
   (interactive)
   (initz-make-directories)
-  (mapc
-   (function (lambda (alist)
-              (let ((sym (car alist)))
-                (initz-delete-files sym))))
-   initz-init-alist))
+  (mapc #'(lambda (alist)
+           (let ((sym (car alist)))
+             (initz-delete-files sym)))
+       initz-init-alist))
 
 (defun initz-compile-file (startup-file)
   "Compile the STARTUP-FILE."
@@ -255,10 +247,9 @@ If ARG is specified, don't display code name."
   "Compile files in the SYM's directory."
   (let ((startup-files (initz-get-files 'startup sym))
        compiled-files)
-    (mapc
-     (function (lambda (startup-file)
-                (initz-compile-file startup-file)))
-     startup-files)
+    (mapc #'(lambda (startup-file)
+             (initz-compile-file startup-file))
+         startup-files)
     (setq compiled-files (directory-files
                          (initz-startup-directory sym) nil "\\.elc$"))
     (install-files compiled-files (initz-startup-directory sym)
@@ -269,11 +260,10 @@ If ARG is specified, don't display code name."
   (interactive)
   (initz-delete)
   (setq initz-compile-error-files nil)
-  (mapc
-   (function (lambda (alist)
-              (let ((sym (car alist)))
-                (initz-compile-files sym))))
-   initz-init-alist)
+  (mapc #'(lambda (alist)
+           (let ((sym (car alist)))
+             (initz-compile-files sym)))
+       initz-init-alist)
   (and initz-compile-error-files (eq initz-verbose 'errors)
        (initz-error)))
 
@@ -310,10 +300,9 @@ If ARG is specified, don't display code name."
 (defun initz-load-files (sym)
   "Load files in the SYM's directory."
   (let ((flavor-files (initz-get-files 'flavor sym)))
-    (mapc
-     (function (lambda (flavor-file)
-                (initz-load-file flavor-file)))
-     flavor-files)))
+    (mapc #'(lambda (flavor-file)
+             (initz-load-file flavor-file))
+         flavor-files)))
 
 (defun initz-load ()
   "Load the initz startup files."
@@ -324,16 +313,20 @@ If ARG is specified, don't display code name."
   ;; tricky
   (setq initz-load-list-internal initz-load-list)
   (setq initz-ignore-list-internal initz-ignore-list)
-  (mapc
-   (function (lambda (alist)
-              (let ((sym (car alist)))
-                (initz-load-files sym))))
-   initz-init-alist)
+  (mapc #'(lambda (alist)
+           (let ((sym (car alist)))
+             (initz-load-files sym)))
+       initz-init-alist)
   (and initz-load-error-files (eq initz-verbose 'errors)
        (initz-error)))
 
 (defun initz-done ()
   "Initz done."
+  (when initz-delete-compile-log-buffer
+    (mapc #'(lambda (buffer)
+             (when (string-match "^\\*Compile-Log\\*$" (buffer-name buffer))
+               (kill-buffer buffer)))
+         (buffer-list)))
   (initz-message (format initz-done-message-format
                         (initz-version) initz-flavor)))