aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2019-09-18 05:17:03 -0700
committerPaul Eggert2019-09-18 05:18:58 -0700
commit9597ee68d999d43145d47ff53e1474f1493f8727 (patch)
tree3b93b2c431a6aaaf1695841894f64f4e172943c9
parent98586c2fe62fd26bc9105a06b78d93446bd2a269 (diff)
downloademacs-9597ee68d999d43145d47ff53e1474f1493f8727.tar.gz
emacs-9597ee68d999d43145d47ff53e1474f1493f8727.zip
Out-of-datedness .elc check is merely a file test
* src/fileio.c (file_test_errno): Now extern. * src/lread.c (Fload): Use file_test_errno instead, since this is really just a file test (the attributes are not given to the user).
-rw-r--r--etc/NEWS2
-rw-r--r--src/fileio.c2
-rw-r--r--src/lisp.h1
-rw-r--r--src/lread.c2
4 files changed, 4 insertions, 3 deletions
diff --git a/etc/NEWS b/etc/NEWS
index dce4903384f..f8322104d42 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2009,7 +2009,7 @@ longer defaults to 'buffer-file-name'.
2009** File metadata primitives now signal an error if I/O, access, or 2009** File metadata primitives now signal an error if I/O, access, or
2010other serious errors prevent them from determining the result. 2010other serious errors prevent them from determining the result.
2011Formerly, these functions often (though not always) returned nil. 2011Formerly, these functions often (though not always) returned nil.
2012For example, if the directory /etc/firewalld is not searchable, 2012For example, if searching /etc/firewalld results in an I/O error,
2013(file-symlink-p "/etc/firewalld/firewalld.conf") now signals an error 2013(file-symlink-p "/etc/firewalld/firewalld.conf") now signals an error
2014instead of returning nil, because file-symlink-p cannot determine 2014instead of returning nil, because file-symlink-p cannot determine
2015whether a symbolic link exists there. These functions still behave as 2015whether a symbolic link exists there. These functions still behave as
diff --git a/src/fileio.c b/src/fileio.c
index 53eecc31aaf..5337ea5c800 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -265,7 +265,7 @@ file_attribute_errno (Lisp_Object file, int err)
265enum { PICKY_EACCES = false }; 265enum { PICKY_EACCES = false };
266#endif 266#endif
267 267
268static Lisp_Object 268Lisp_Object
269file_test_errno (Lisp_Object file, int err) 269file_test_errno (Lisp_Object file, int err)
270{ 270{
271 if (!PICKY_EACCES && err == EACCES) 271 if (!PICKY_EACCES && err == EACCES)
diff --git a/src/lisp.h b/src/lisp.h
index e68d2732e21..b081ae1cee8 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4315,6 +4315,7 @@ extern AVOID report_file_errno (const char *, Lisp_Object, int);
4315extern AVOID report_file_error (const char *, Lisp_Object); 4315extern AVOID report_file_error (const char *, Lisp_Object);
4316extern AVOID report_file_notify_error (const char *, Lisp_Object); 4316extern AVOID report_file_notify_error (const char *, Lisp_Object);
4317extern Lisp_Object file_attribute_errno (Lisp_Object, int); 4317extern Lisp_Object file_attribute_errno (Lisp_Object, int);
4318extern Lisp_Object file_test_errno (Lisp_Object, int);
4318extern bool internal_delete_file (Lisp_Object); 4319extern bool internal_delete_file (Lisp_Object);
4319extern Lisp_Object check_emacs_readlinkat (int, Lisp_Object, char const *); 4320extern Lisp_Object check_emacs_readlinkat (int, Lisp_Object, char const *);
4320extern bool file_directory_p (Lisp_Object); 4321extern bool file_directory_p (Lisp_Object);
diff --git a/src/lread.c b/src/lread.c
index d8883db46c1..ab0fab47a98 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1358,7 +1358,7 @@ Return t if the file exists and loads successfully. */)
1358 make_fixnum (-1)); 1358 make_fixnum (-1));
1359 } 1359 }
1360 if (result != 0) 1360 if (result != 0)
1361 file_attribute_errno (found, err); 1361 file_test_errno (found, err);
1362 else if (timespec_cmp (get_stat_mtime (&s1), 1362 else if (timespec_cmp (get_stat_mtime (&s1),
1363 get_stat_mtime (&s2)) 1363 get_stat_mtime (&s2))
1364 < 0) 1364 < 0)