aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2019-09-18 03:06:10 -0700
committerPaul Eggert2019-09-18 03:06:49 -0700
commit94ca934a5c4ef4908fdb7bcd78950bacf9c4ce88 (patch)
tree2da3d0da35162d50632e3cd4d6382213444cb2ca
parent9dc306b1db08196684d05a474148e16305adbad0 (diff)
downloademacs-94ca934a5c4ef4908fdb7bcd78950bacf9c4ce88.tar.gz
emacs-94ca934a5c4ef4908fdb7bcd78950bacf9c4ce88.zip
Fix permission-denied issue in MS-Windows startup
* src/callproc.c (init_callproc): Use file_access_p rather than Ffile_exists_p during startup (Bug#37445).
-rw-r--r--src/callproc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/callproc.c b/src/callproc.c
index 1ac0bdc710a..dbbf15c792a 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -1560,20 +1560,19 @@ init_callproc (void)
1560 source directory. */ 1560 source directory. */
1561 if (data_dir == 0) 1561 if (data_dir == 0)
1562 { 1562 {
1563 Lisp_Object tem, tem1, srcdir; 1563 Lisp_Object tem, srcdir;
1564 Lisp_Object lispdir = Fcar (decode_env_path (0, PATH_DUMPLOADSEARCH, 0)); 1564 Lisp_Object lispdir = Fcar (decode_env_path (0, PATH_DUMPLOADSEARCH, 0));
1565 1565
1566 srcdir = Fexpand_file_name (build_string ("../src/"), lispdir); 1566 srcdir = Fexpand_file_name (build_string ("../src/"), lispdir);
1567 1567
1568 tem = Fexpand_file_name (build_string ("NEWS"), Vdata_directory); 1568 tem = Fexpand_file_name (build_string ("NEWS"), Vdata_directory);
1569 tem1 = Ffile_exists_p (tem); 1569 if (!NILP (Fequal (srcdir, Vinvocation_directory))
1570 if (!NILP (Fequal (srcdir, Vinvocation_directory)) || NILP (tem1)) 1570 || !file_access_p (SSDATA (tem), F_OK))
1571 { 1571 {
1572 Lisp_Object newdir; 1572 Lisp_Object newdir;
1573 newdir = Fexpand_file_name (build_string ("../etc/"), lispdir); 1573 newdir = Fexpand_file_name (build_string ("../etc/"), lispdir);
1574 tem = Fexpand_file_name (build_string ("NEWS"), newdir); 1574 tem = Fexpand_file_name (build_string ("NEWS"), newdir);
1575 tem1 = Ffile_exists_p (tem); 1575 if (file_access_p (SSDATA (tem), F_OK))
1576 if (!NILP (tem1))
1577 Vdata_directory = newdir; 1576 Vdata_directory = newdir;
1578 } 1577 }
1579 } 1578 }