From: Stefan Monnier Date: Sun, 10 Nov 2024 21:50:36 +0000 (-0500) Subject: lisp/files.el (require-with-check): Fix bug#74091. X-Git-Tag: archive/raspbian/1%30.1+1-3+rpi1^2~2^2~20^2~280 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3496234c8ed10a14f740199722ec727bd43c82d3;p=emacs.git lisp/files.el (require-with-check): Fix bug#74091. --- diff --git a/lisp/files.el b/lisp/files.el index c3fce9f15f9..898f9d23cf8 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1280,7 +1280,7 @@ NOERROR is equal to `reload'), or otherwise emit a warning." (let* ((fn (locate-file (or filename (symbol-name feature)) load-path (get-load-suffixes) nil )) ;; load-prefer-newer - ;; We used to look for `fn' in `load-history' with `assoc' + ;; We used to look for `fn' in `load-history' with `assoc' ;; which works in most cases, but in some cases (e.g. when ;; `load-prefer-newer' is set) `locate-file' can return a ;; different file than the file that `require' would load, @@ -1288,10 +1288,11 @@ NOERROR is equal to `reload'), or otherwise emit a warning." ;; we did load "it". (bug#74040) ;; So use a "permissive" search which doesn't pay attention to ;; differences between file extensions. - (prefix (if (string-match - (concat (regexp-opt (get-load-suffixes)) "\\'") fn) - (concat (substring fn 0 (match-beginning 0)) ".") - fn)) + (prefix (when fn + (if (string-match + (concat (regexp-opt (get-load-suffixes)) "\\'") fn) + (concat (substring fn 0 (match-beginning 0)) ".") + fn))) (lh load-history)) (while (and lh (let ((file (car-safe (car lh)))) (not (and file (string-prefix-p prefix file)))))