]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/files.el (require-with-check): Provide more info in the error message
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 22 Oct 2024 00:21:10 +0000 (20:21 -0400)
committerEshel Yaron <me@eshelyaron.com>
Tue, 22 Oct 2024 19:02:43 +0000 (21:02 +0200)
Rather than only show the "new" file to be loaded, show also the
name of the currently loaded file, to clarify the conflict.

(cherry picked from commit 8a2fbddf17b4beb31d19161769066a4c1bd8bab0)

lisp/files.el

index 10c8999b3ef95274c9c36e9d10e377f4d78953b7..1186d1cc2c344ce1226d71eca576db9055211cce 100644 (file)
@@ -1326,15 +1326,17 @@ NOERROR is equal to `reload'), or otherwise emit a warning."
          ((assoc fn load-history) nil)  ;We loaded the right file.
          ((eq noerror 'reload) (load fn nil 'nomessage))
          ((and fn (memq feature features))
-          (funcall (if noerror #'warn #'error)
-                   "Feature `%S' is now provided by a different file %s"
-                   feature fn))
+          (let ((oldfile (symbol-file feature 'provide)))
+            (funcall (if noerror #'warn #'error)
+                     "Feature `%S' loaded from %S is now provided by %S"
+                     feature (if oldfile (abbreviate-file-name oldfile))
+                     (abbreviate-file-name fn))))
          (fn
           (funcall (if noerror #'warn #'error)
-                   "Could not load file %s" fn))
+                   "Could not load file: %s" fn))
          (t
           (funcall (if noerror #'warn #'error)
-                   "Could not locate file %s in load path"
+                   "Could not locate file in load path: %s"
                    (or filename (symbol-name feature)))))))
     res))
 
@@ -4463,7 +4465,7 @@ already the major mode."
   (pcase var
     ('mode
      (let ((mode (intern (concat (downcase (symbol-name val))
-                          "-mode"))))
+                                 "-mode"))))
        (set-auto-mode-0 mode t)))
     ('eval
      (pcase val