]> git.eshelyaron.com Git - emacs.git/commitdiff
Be more defensive regarding elements of 'load-history'
authorEli Zaretskii <eliz@gnu.org>
Fri, 1 Mar 2019 09:44:52 +0000 (11:44 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 1 Mar 2019 09:44:52 +0000 (11:44 +0200)
* 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)

lisp/apropos.el
lisp/emacs-lisp/package.el
lisp/help-fns.el
lisp/loadhist.el

index 6614645f74ea1f26c1d98a2545a8b62ee2eca202..1b86f5bcde3a6a850ff75eb0ebedcf6004303d51 100644 (file)
@@ -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)))
index 458bfad327948b04c43f24331acb13a65efc9ac3..5e8864ec73f740b91a56cf84548e56653ef04c42 100644 (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.
index b4e93d36d4c88f2258e1100d122ac22883b385ba..06b4ec8c2099f8813a002fe2ef2051b2aee9015d 100644 (file)
@@ -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)))
index 5070a00aaf580e8679de311b4c9cd79a9daac07d..4e5d8e0f38d6be404256c76cc326652df2e5ccfa 100644 (file)
@@ -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)