diff --git a/cmd-source-file.c b/cmd-source-file.c index 43bcead3..9e1c18ac 100644 --- a/cmd-source-file.c +++ b/cmd-source-file.c @@ -135,16 +135,7 @@ cmd_source_file_done(struct client *c, const char *path, int error, static void cmd_source_file_add(struct cmd_source_file_data *cdata, const char *path) { - char resolved[PATH_MAX]; - - if (realpath(path, resolved) == NULL) { - log_debug("%s: realpath(\"%s\") failed: %s", __func__, - path, strerror(errno)); - } else - path = resolved; - log_debug("%s: %s", __func__, path); - cdata->files = xreallocarray(cdata->files, cdata->nfiles + 1, sizeof *cdata->files); cdata->files[cdata->nfiles++] = xstrdup(path); diff --git a/tmux.c b/tmux.c index 298bdf30..8d390203 100644 --- a/tmux.c +++ b/tmux.c @@ -139,7 +139,7 @@ expand_path(const char *path, const char *home) } static void -expand_paths(const char *s, char ***paths, u_int *n, int ignore_errors) +expand_paths(const char *s, char ***paths, u_int *n, int no_realpath) { const char *home = find_home(); char *copy, *next, *tmp, resolved[PATH_MAX], *expanded; @@ -156,15 +156,15 @@ expand_paths(const char *s, char ***paths, u_int *n, int ignore_errors) log_debug("%s: invalid path: %s", __func__, next); continue; } - if (realpath(expanded, resolved) == NULL) { - log_debug("%s: realpath(\"%s\") failed: %s", __func__, - expanded, strerror(errno)); - if (ignore_errors) { + if (no_realpath) + path = expanded; + else { + if (realpath(expanded, resolved) == NULL) { + log_debug("%s: realpath(\"%s\") failed: %s", __func__, + expanded, strerror(errno)); free(expanded); continue; } - path = expanded; - } else { path = xstrdup(resolved); free(expanded); } @@ -196,7 +196,7 @@ make_label(const char *label, char **cause) label = "default"; uid = getuid(); - expand_paths(TMUX_SOCK, &paths, &n, 1); + expand_paths(TMUX_SOCK, &paths, &n, 0); if (n == 0) { xasprintf(cause, "no suitable socket path"); return (NULL);