;;; Code:
\f
-(defgroup shadow nil
+(defgroup lisp-shadow nil
"Locate Emacs Lisp file shadowings."
:prefix "shadows-"
:group 'lisp)
"*If non-nil, then shadowing files are reported only if their text differs.
This is slower, but filters out some innocuous shadowing."
:type 'boolean
- :group 'shadow)
+ :group 'lisp-shadow)
(defun find-emacs-lisp-shadows (&optional path)
"Return a list of Emacs Lisp files that create shadows.
are stripped from the file names in the list.
See the documentation for `list-load-path-shadows' for further information."
-
+
(or path (setq path load-path))
(let (true-names ; List of dirs considered.
files-seen-this-dir ; Files seen so far in this dir.
file) ; The current file.
-
+
(while path
(setq dir (directory-file-name (file-truename (or (car path) "."))))
;; This test prevents us declaring that XXX.el shadows
;; XXX.elc (or vice-versa) when they are in the same directory.
(setq files-seen-this-dir (cons file files-seen-this-dir))
-
+
(if (setq orig-dir (assoc file files))
;; This file was seen before, we have a shadowing.
;; Report it unless the files are identical.
;; sizes.
(and (= (nth 7 (file-attributes f1))
(nth 7 (file-attributes f2)))
- (zerop (call-process "cmp" nil nil nil "-s" f1 f2))))))))
+ (eq 0 (call-process "cmp" nil nil nil "-s" f1 f2))))))))
\f
;;;###autoload
(defun list-load-path-shadows ()
When run interactively, the shadowings \(if any\) are displayed in a
buffer called `*Shadows*'. Shadowings are located by calling the
\(non-interactive\) companion function, `find-emacs-lisp-shadows'."
-
+
(interactive)
(let* ((path (copy-sequence load-path))
(tem path)
(setq tem (cdr tem)))
(if (> (length toplevs) 1)
;; Cut off our copy of load-path right before
- ;; the second directory which has simple.el in it.
+ ;; the last directory which has simple.el in it.
;; This avoids loads of duplications between the source dir
;; and the dir where these files were copied by installation.
- (let ((break (nth (- (length toplevs) 2) toplevs)))
+ (let ((break (car toplevs)))
(setq tem path)
(while tem
(if (eq (nth 1 tem) break)
(provide 'shadow)
+;;; arch-tag: 0480e8a7-62ed-4a12-a9f6-f44ded9b0830
;;; shadow.el ends here