aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2021-04-24 16:01:19 +0300
committerEli Zaretskii2021-04-24 16:01:19 +0300
commitfa65c044f2ebe666467166075c1507a8d0e1347f (patch)
treeedfbf27802fbc0b029c71747e98514d51f3977c8
parent592ffd35b0de48f098fcf070d0a29bb3406e4bf9 (diff)
downloademacs-feature/native-comp.tar.gz
emacs-feature/native-comp.zip
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.c10
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)
746 char *candidate = NULL; 746 char *candidate = NULL;
747 747
748 /* If the executable name contains a slash, we have some kind of 748 /* If the executable name contains a slash, we have some kind of
749 path already, so just copy it. */ 749 path already, so just resolve symlinks and return the result. */
750 eassert (argv0); 750 eassert (argv0);
751 if (strchr (argv0, DIRECTORY_SEP)) 751 if (strchr (argv0, DIRECTORY_SEP))
752 { 752 {
753 char *real_name = realpath (argv0, NULL);
754
755 if (real_name)
756 {
757 *candidate_size = strlen (real_name) + 1;
758 return real_name;
759 }
760
753 char *val = xstrdup (argv0); 761 char *val = xstrdup (argv0);
754 *candidate_size = strlen (val) + 1; 762 *candidate_size = strlen (val) + 1;
755 return val; 763 return val;