mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
Stop files with same basename messing up finder's package--builtins
* lisp/Makefile.in (setwins_finder): New, excluding leim. (finder-data): Use setwins_finder. * lisp/finder.el (finder-no-scan-regexp): Add leim-list. (finder-compile-keywords): Don't skip files with same basename. Fixes: debbugs:14010
This commit is contained in:
parent
83e7ae1837
commit
459d74ef99
@ -1,5 +1,11 @@
|
||||
2014-03-14 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* finder.el (finder-no-scan-regexp): Add leim-list.
|
||||
(finder-compile-keywords):
|
||||
Don't skip files with same basename. (Bug#14010)
|
||||
* Makefile.in (setwins_finder): New, excluding leim.
|
||||
(finder-data): Use setwins_finder.
|
||||
|
||||
* help-fns.el (help-split-fundoc, help-add-fundoc-usage)
|
||||
(help-function-arglist, help-make-usage): Move from here...
|
||||
* help.el (help-split-fundoc, help-add-fundoc-usage)
|
||||
|
@ -124,6 +124,15 @@ setwins_almost=for file in `find ${srcdir} -type d -print`; do \
|
||||
esac; \
|
||||
done
|
||||
|
||||
# Find all subdirectories except `obsolete', `term', and `leim' (and subdirs).
|
||||
# We don't want the leim files listed as packages, especially
|
||||
# since many share basenames with files in language/.
|
||||
setwins_finder=for file in `find ${srcdir} -type d -print`; do \
|
||||
case $$file in ${srcdir}*/obsolete | ${srcdir}*/term | ${srcdir}*/leim* ) ;; \
|
||||
*) wins="$$wins$${wins:+ }$$file" ;; \
|
||||
esac; \
|
||||
done
|
||||
|
||||
# Find all subdirectories in which we might want to create subdirs.el.
|
||||
setwins_for_subdirs=for file in `find ${srcdir} -type d -print`; do \
|
||||
case $$file in \
|
||||
@ -166,7 +175,7 @@ custom-deps: doit
|
||||
$(lisp)/finder-inf.el:
|
||||
$(MAKE) $(MFLAGS) finder-data
|
||||
finder-data: doit
|
||||
$(setwins_almost); \
|
||||
$(setwins_finder); \
|
||||
echo Directories: $$wins; \
|
||||
$(emacs) -l finder \
|
||||
--eval '(setq generated-finder-keywords-file (unmsys--file-name "$(srcdir)/finder-inf.el"))' \
|
||||
|
@ -135,7 +135,7 @@ Keywords and package names both should be symbols.")
|
||||
;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-01/msg00469.html
|
||||
;; ldefs-boot is not auto-generated, but has nothing useful.
|
||||
(defvar finder-no-scan-regexp "\\(^\\.#\\|\\(loaddefs\\|ldefs-boot\\|\
|
||||
cus-load\\|finder-inf\\|esh-groups\\|subdirs\\)\\.el$\\)"
|
||||
cus-load\\|finder-inf\\|esh-groups\\|subdirs\\|leim-list\\)\\.el$\\)"
|
||||
"Regexp matching file names not to scan for keywords.")
|
||||
|
||||
(autoload 'autoload-rubric "autoload")
|
||||
@ -194,7 +194,16 @@ from; the default is `load-path'."
|
||||
(and (string-match el-file-regexp f)
|
||||
(intern (match-string 1 f)))))
|
||||
(memq base-name processed))
|
||||
(push base-name processed)
|
||||
;; There are multiple files in the tree with the same basename.
|
||||
;; So skipping files based on basename means you randomly (depending
|
||||
;; on which order the files are traversed in) miss some packages.
|
||||
;; http://debbugs.gnu.org/14010
|
||||
;; You might think this could lead to two files providing the same package,
|
||||
;; but it does not, because the duplicates are (at time of writing)
|
||||
;; all due to files in cedet, which end up with package-override set.
|
||||
;; FIXME this is obviously fragile.
|
||||
;; Make the (eq base-name package) case below issue a warning?
|
||||
;; (push base-name processed)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (expand-file-name f d))
|
||||
(setq summary (lm-synopsis)
|
||||
|
Loading…
Reference in New Issue
Block a user