diff options
author | Eli Zaretskii <eliz@gnu.org> | 2021-04-24 16:01:19 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2021-04-24 16:01:19 +0300 |
commit | fa65c044f2ebe666467166075c1507a8d0e1347f (patch) | |
tree | edfbf27802fbc0b029c71747e98514d51f3977c8 | |
parent | 592ffd35b0de48f098fcf070d0a29bb3406e4bf9 (diff) | |
download | emacs-feature/native-comp.tar.gz |
Improve detection of pdumper file and *.eln filesfeature/native-comp
* src/emacs.c (load_pdump_find_executable): Resolve symlinks even
if argv[0] includes leading directories. (Bug#46790)
-rw-r--r-- | src/emacs.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/emacs.c b/src/emacs.c index 792f690797d..9157cd84a99 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -746,10 +746,18 @@ load_pdump_find_executable (char const *argv0, ptrdiff_t *candidate_size) char *candidate = NULL; /* If the executable name contains a slash, we have some kind of - path already, so just copy it. */ + path already, so just resolve symlinks and return the result. */ eassert (argv0); if (strchr (argv0, DIRECTORY_SEP)) { + char *real_name = realpath (argv0, NULL); + + if (real_name) + { + *candidate_size = strlen (real_name) + 1; + return real_name; + } + char *val = xstrdup (argv0); *candidate_size = strlen (val) + 1; return val; |