- (if (and (or (string-match "^[^=].*\\.el$" f)
- ;; Allow compressed files also. Fixme:
- ;; generalize this, especially for
- ;; MS-DOG-type filenames.
- (and (string-match "^[^=].*\\.el\\.\\(gz\\|Z\\)$" f)
- (require 'jka-compr)))
- ;; Ignore lock files.
- (not (string-match "^.#" f))
- (not (member f processed)))
- (let (summary keystart keywords)
- (setq processed (cons f processed))
- (save-excursion
- (set-buffer (get-buffer-create "*finder-scratch*"))
- (buffer-disable-undo (current-buffer))
- (erase-buffer)
- (insert-file-contents
- (concat (file-name-as-directory (or d ".")) f))
- (setq summary (lm-synopsis))
- (setq keywords (lm-keywords)))
- (insert
- (format " (\"%s\"\n "
- (if (string-match "\\.\\(gz\\|Z\\)$" f)
- (file-name-sans-extension f)
- f)))
- (prin1 summary (current-buffer))
- (insert
- "\n ")
- (setq keystart (point))
- (insert
- (if keywords (format "(%s)" keywords) "nil")
- ")\n")
- (subst-char-in-region keystart (point) ?, ? )
- )))
- (directory-files (or d ".")))))
- (or dirs load-path))
- (insert "))\n
-\(provide '" (file-name-sans-extension
- (file-name-nondirectory generated-finder-keywords-file)) ")
-
-;; Local Variables:
-;; version-control: never
-;; no-byte-compile: t
-;; no-update-autoloads: t
-;; End:
-\;;; " (file-name-nondirectory generated-finder-keywords-file) " ends here\n")
- (kill-buffer "*finder-scratch*")
- (eval-buffer) ;; So we get the new keyword list immediately
- (basic-save-buffer))))
+ ;; FIXME should this not be using (expand-file-name f d)?
+ (unless (or (member f processed)
+ (string-match finder-no-scan-regexp f))
+ (setq processed (cons f processed))
+ (with-temp-buffer
+ (insert-file-contents (expand-file-name f d))
+ (setq summary (lm-synopsis)
+ keywords (lm-keywords-list)))
+ (insert
+ (format " (\"%s\"\n "
+ (if (string-match "\\.\\(gz\\|Z\\)$" f)
+ (file-name-sans-extension f)
+ f)))
+ (prin1 summary (current-buffer))
+ (insert "\n ")
+ (princ keywords (current-buffer))
+ (insert ")\n")))
+ (directory-files d nil
+ ;; Allow compressed files also. FIXME:
+ ;; generalize this, especially for
+ ;; MS-DOG-type filenames.
+ "^[^=].*\\.el\\(\\.\\(gz\\|Z\\)\\)?$"
+ ))))
+ (or dirs load-path)))
+ (insert " ))\n")
+ (eval-buffer) ; so we get the new keyword list immediately
+ (basic-save-buffer)))