]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/shadow.el
Add a provide statement.
[gnu-emacs] / lisp / emacs-lisp / shadow.el
index 1e5ef45e7f49058df5000c5213a4f664006e1f7e..eeaaa7ffc0aa9a66dbc2a2ded17a22d026584a22 100644 (file)
@@ -1,4 +1,4 @@
-;;; shadow.el --- Locate Emacs Lisp file shadowings.
+;;; shadow.el --- locate Emacs Lisp file shadowings
 
 ;; Copyright (C) 1995 Free Software Foundation, Inc.
 
 
 ;;; Code:
 \f
-(defvar shadows-compare-text-p nil
+(defgroup lisp-shadow nil
+  "Locate Emacs Lisp file shadowings."
+  :prefix "shadows-"
+  :group 'lisp)
+
+(defcustom shadows-compare-text-p nil
   "*If non-nil, then shadowing files are reported only if their text differs.
-This is slower, but filters out some innocuous shadowing.")
+This is slower, but filters out some innocuous shadowing."
+  :type 'boolean
+  :group 'lisp-shadow)
 
 (defun find-emacs-lisp-shadows (&optional path)
   "Return a list of Emacs Lisp files that create shadows.
@@ -67,7 +74,7 @@ the file in position 2i+1.  Emacs Lisp file suffixes \(.el and .elc\)
 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.
@@ -79,7 +86,7 @@ See the documentation for `list-load-path-shadows' for further information."
        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) "."))))
@@ -118,7 +125,7 @@ See the documentation for `list-load-path-shadows' for further information."
            ;; 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.
@@ -130,8 +137,8 @@ See the documentation for `list-load-path-shadows' for further information."
                                ;; This is a bit strict, but safe.
                                (shadow-same-file-or-nonexistent
                                 (concat base1 ".elc") (concat base2 ".elc"))))
-               (setq shadows
-                     (append shadows (list base1 base2)))))
+                     (setq shadows
+                           (append shadows (list base1 base2)))))
 
              ;; Not seen before, add it to the list of seen files.
              (setq files (cons (cons file dir) files))))
@@ -154,7 +161,7 @@ See the documentation for `list-load-path-shadows' for further information."
                 ;; 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 ()
@@ -195,7 +202,7 @@ considered to shadow a later file XXX.el, and vice-versa.
 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)
@@ -207,10 +214,10 @@ buffer called `*Shadows*'.  Shadowings are located by calling the
       (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)
@@ -242,12 +249,13 @@ buffer called `*Shadows*'.  Shadowings are located by calling the
          (message "This site has duplicate Lisp libraries with the same name.
 If a locally-installed Lisp library overrides a library in the Emacs release,
 that can cause trouble, and you should probably remove the locally-installed
-version unless you know what you are doing.\n"))
-       (while shadows
-         (message "%s hides %s" (car shadows) (car (cdr shadows)))
-         (setq shadows (cdr (cdr shadows))))
-       (message "%s" msg)))))
+version unless you know what you are doing.\n")
+         (while shadows
+           (message "%s hides %s" (car shadows) (car (cdr shadows)))
+           (setq shadows (cdr (cdr shadows))))
+         (message "%s" msg))))))
 
 (provide 'shadow)
 
+;;; arch-tag: 0480e8a7-62ed-4a12-a9f6-f44ded9b0830
 ;;; shadow.el ends here