Re: [PATCH] Fix relative built-in paths to be relative to the command invocation
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jul 13, 2008, 20:43 UTC
- Message-ID
- <alpine.DEB.1.00.0807132141130.8950@racer>
- In-Reply-To
- <1215981083-10815-4-git-send-email-johannes.sixt@telecom.at>
Hi,
On Sun, 13 Jul 2008, Johannes Sixt wrote:
Show 10 quoted lines
> diff --git a/Makefile b/Makefile > index 4796565..2bdb9bf 100644 > --- a/Makefile > +++ b/Makefile > @@ -1301,7 +1301,7 @@ remove-dashes: > ### Installation rules > > ifeq ($(firstword $(subst /, ,$(template_dir))),..) > -template_instdir = $(gitexecdir)/$(template_dir) > +template_instdir = $(shell cd '$(bindir_SQ)/$(template_dir_SQ)' && pwd)
What is this for? Did the original line stop working?
Show 40 quoted lines
> diff --git a/exec_cmd.c b/exec_cmd.c
> index 8899e31..45f92eb 100644
> --- a/exec_cmd.c
> +++ b/exec_cmd.c
> @@ -5,6 +5,7 @@
>
> extern char **environ;
> static const char *argv_exec_path;
> +static const char *argv0_path;
>
> static const char *builtin_exec_path(void)
> {
> @@ -42,14 +43,19 @@ static const char *builtin_exec_path(void)
>
> const char *system_path(const char *path)
> {
> - if (!is_absolute_path(path)) {
> + if (!is_absolute_path(path) && argv0_path) {
> struct strbuf d = STRBUF_INIT;
> - strbuf_addf(&d, "%s/%s", git_exec_path(), path);
> + strbuf_addf(&d, "%s/%s", argv0_path, path);
> path = strbuf_detach(&d, NULL);
> }
> return path;
> }
>
> +void git_set_argv0_path(const char *path)
> +{
> + argv0_path = path;
> +}
> +
> void git_set_argv_exec_path(const char *exec_path)
> {
> argv_exec_path = exec_path;
> @@ -84,7 +90,7 @@ static void add_path(struct strbuf *out, const char *path)
> }
> }
>
> -void setup_path(const char *cmd_path)
> +void setup_path(void)It seems to me that this patch would not do anything different, but with less code change, if setup_path() would set argv0_path, and not a new function was introduced.
Ciao, Dscho