Be more defensive regarding elements of 'load-history'
* lisp/loadhist.el (file-dependents): * lisp/apropos.el (apropos-library): * lisp/help-fns.el (help-fns--autoloaded-p, help--loaded-p): * lisp/emacs-lisp/package.el (package--list-loaded-files): Don't assume 'load-history' elements must have a string as their 'car'. (Bug#34462)
This commit is contained in:
parent
cb95d771a2
commit
8eb94161b3
4 changed files with 7 additions and 5 deletions
|
@ -681,7 +681,7 @@ the output includes key-bindings of commands."
|
|||
(re (concat "\\(?:\\`\\|[\\/]\\)" (regexp-quote file)
|
||||
"\\(\\.\\|\\'\\)")))
|
||||
(while (and lh (null lh-entry))
|
||||
(if (and (caar lh) (string-match re (caar lh)))
|
||||
(if (and (stringp (caar lh)) (string-match re (caar lh)))
|
||||
(setq lh-entry (car lh))
|
||||
(setq lh (cdr lh)))))
|
||||
(unless lh-entry (error "Unknown library `%s'" file)))
|
||||
|
|
|
@ -756,7 +756,8 @@ DIR, sorted by most recently loaded last."
|
|||
(let* ((history (delq nil
|
||||
(mapcar (lambda (x)
|
||||
(let ((f (car x)))
|
||||
(and f (file-name-sans-extension f))))
|
||||
(and (stringp f)
|
||||
(file-name-sans-extension f))))
|
||||
load-history)))
|
||||
(dir (file-truename dir))
|
||||
;; List all files that have already been loaded.
|
||||
|
|
|
@ -76,7 +76,7 @@ The functions will receive the function name as argument.")
|
|||
(let* ((re (load-history-regexp file))
|
||||
(done nil))
|
||||
(dolist (x load-history)
|
||||
(and (car x) (string-match-p re (car x)) (setq done t)))
|
||||
(and (stringp (car x)) (string-match-p re (car x)) (setq done t)))
|
||||
done)))
|
||||
|
||||
(defun help--load-prefixes (prefixes)
|
||||
|
@ -521,7 +521,7 @@ FILE is the file where FUNCTION was probably defined."
|
|||
(target (cons t function))
|
||||
found)
|
||||
(while (and load-hist (not found))
|
||||
(and (caar load-hist)
|
||||
(and (stringp (caar load-hist))
|
||||
(equal (file-name-sans-extension (caar load-hist)) file)
|
||||
(setq found (member target (cdar load-hist))))
|
||||
(setq load-hist (cdr load-hist)))
|
||||
|
|
|
@ -96,7 +96,8 @@ A library name is equivalent to the file name that `load-library' would load."
|
|||
(let ((provides (file-provides file))
|
||||
(dependents nil))
|
||||
(dolist (x load-history dependents)
|
||||
(when (file-set-intersect provides (file-requires (car x)))
|
||||
(when (and (stringp (car x))
|
||||
(file-set-intersect provides (file-requires (car x))))
|
||||
(push (car x) dependents)))))
|
||||
|
||||
(defun read-feature (prompt &optional loaded-p)
|
||||
|
|
Loading…
Add table
Reference in a new issue