;ELC   
;;; compiled by rms@psilocin.gnu.ai.mit.edu on Tue Jul 23 22:49:07 1996
;;; from file /home/fsf/rms/e19/lisp/shadow.el
;;; emacs version 19.31.96.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`shadow.el' was compiled for Emacs 19.29 or later"))


#@445 Return a list of Emacs Lisp files that create shadows.
This function does the work for `list-load-path-shadows'.

We traverse PATH looking for shadows, and return a (possibly empty)
even-length list of files.  A file in this list at position 2i shadows
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.
(defalias 'find-emacs-lisp-shadows #[(&optional path) " 		\n @& !\nJ  @ @̘ @\" \nC\"\n@Y !i $} } G# @Oؘ ق O\f \fB\" 	AQQD\"	 BBA A 	." [path load-path nil file files-seen-this-dir orig-dir curr-files dir files shadows true-names file-truename "." noninteractive message "Ignoring redundant directory %s" append file-accessible-directory-p directory-files ".\\.elc?$" t "Checking %d files in %s..." 0 -1 "c" -4 -3 assoc "/"] 9 (#$ . 475)])
#@1777 Display a list of Emacs Lisp files that shadow other files.

This function lists potential load-path problems.  Directories in the
`load-path' variable are searched, in order, for Emacs Lisp
files.  When a previously encountered file name is found again, a
message is displayed indicating that the later file is "hidden" by
the earlier.

For example, suppose `load-path' is set to

("/usr/gnu/emacs/site-lisp" "/usr/gnu/emacs/share/emacs/19.30/lisp")

and that each of these directories contains a file called XXX.el.  Then
XXX.el in the site-lisp directory is referred to by all of:
(require 'XXX), (autoload .... "XXX"), (load-library "XXX") etc.

The first XXX.el file prevents emacs from seeing the second (unless
the second is loaded explicitly via load-file).

When not intended, such shadowings can be the source of subtle
problems.  For example, the above situation may have arisen because the
XXX package was not distributed with versions of emacs prior to
19.30.  An emacs maintainer downloaded XXX from elsewhere and installed
it.  Later, XXX was updated and included in the emacs distribution.
Unless the emacs maintainer checks for this, the new version of XXX
will be hidden behind the old (which may no longer work with the new
emacs version).

This function performs these checks and flags all possible
shadowings.  Because a .el file may exist without a corresponding .elc
(or vice-versa), these suffixes are essentially ignored.  A file
XXX.elc in an early directory (that does not contain XXX.el) is
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'.
(defalias 'list-load-path-shadows #[nil " G¥U ǂ !PU# ˂$ #t\\ !!q 	S 	@	A@#c	AAA ȱ*v 	q 	@	A@#	AA` \"+" [find-emacs-lisp-shadows shadows 2 n format "%s Emacs Lisp load-path shadowing%s found" 0 "No" "\n" number-to-string 1 " was" "s were" msg get-buffer-create "*Shadows*" output-buffer display-buffer erase-buffer "%s hides %s\n" message "%s hides %s" "%s"] 6 (#$ . 1522) nil])
(provide (quote shadow))
