emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 3c125290d2: Add sanity check for Emacsen distributed without .el


From: Lars Ingebrigtsen
Subject: master 3c125290d2: Add sanity check for Emacsen distributed without .el files
Date: Sat, 2 Jul 2022 12:42:42 -0400 (EDT)

branch: master
commit 3c125290d208e4c962635aa5af4951249af17804
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Add sanity check for Emacsen distributed without .el files
    
    * src/lread.c (maybe_swap_for_eln): Add sanity check for Emacsen
    distributed without .el files (bug#48342).
---
 src/lread.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/lread.c b/src/lread.c
index ef2bb036e3..759cc08946 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1735,13 +1735,24 @@ maybe_swap_for_eln (bool no_native, Lisp_Object 
*filename, int *fd,
        {
          if (!NILP (find_symbol_value (
                       Qnative_comp_warning_on_missing_source)))
-           call2 (intern_c_string ("display-warning"),
-                  Qcomp,
-                  CALLN (Fformat,
-                         build_string ("Cannot look-up eln file as no source "
-                                       "file was found for %s"),
-                         *filename));
-         return;
+           {
+             /* If we have an installation without any .el files,
+                there's really no point in giving a warning here,
+                because that will trigger a cascade of warnings.  So
+                just do a sanity check and refuse to do anything if we
+                can't find even central .el files.  */
+             if (NILP (Flocate_file_internal (build_string ("simple.el"),
+                                              Vload_path,
+                                              Qnil, Qnil)))
+               return;
+             call2 (intern_c_string ("display-warning"),
+                    Qcomp,
+                    CALLN (Fformat,
+                           build_string ("Cannot look up eln file as "
+                                         "no source file was found for %s"),
+                           *filename));
+             return;
+           }
        }
     }
   Lisp_Object eln_rel_name = Fcomp_el_to_eln_rel_filename (src_name);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]