diff options
| author | Paul Eggert | 2019-09-18 03:06:10 -0700 |
|---|---|---|
| committer | Paul Eggert | 2019-09-18 03:06:49 -0700 |
| commit | 94ca934a5c4ef4908fdb7bcd78950bacf9c4ce88 (patch) | |
| tree | 2da3d0da35162d50632e3cd4d6382213444cb2ca | |
| parent | 9dc306b1db08196684d05a474148e16305adbad0 (diff) | |
| download | emacs-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.c | 9 |
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 | } |