git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/6] i18n win32: add git-am eval_gettext variable prefix

From
Junio C Hamano <gitster@pobox.com>
Date
May 26, 2011, 14:13 UTC
Message-ID
<7vlixtzh1q.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4DDDF483.70805@viscovery.net>
Johannes Sixt <j.sixt@viscovery.net> writes:
Show 31 quoted lines
> I gather that the actual substitution of variable values is done by
> sh-i18n--envsubst, and not by the shell (right?). Let's look at an example:
>
> 	git sh-i18n--envsubst --variables '$foo and $bar'
>
> produces
>
> 	foo
> 	bar
>
> What if it produced
>
> 	GIT_I18N_VARIABLE_foo=$foo
> 	GIT_I18N_VARIABLE_bar=$bar
> 	export GIT_I18N_VARIABLE_foo GIT_I18N_VARIABLE_bar
>
> then the definition of eval_gettext() would look like
>
> eval_gettext () {
> 	printf "%s" "$1" | (
> 		export PATH
> 		eval "$(git sh-i18n--envsubst --variables "$1")"
> 		git sh-i18n--envsubst "$1"
> 	)
> }
>
> and the second call of sh-i18n--envsubst should replace $foo and $bar that
> it sees on stdin by the values of GIT_I18N_VARIABLE_foo and
> GIT_I18N_VARIABLE_bar from the environment.
>
> What do you think?

This started on windows that confuses between $path and $PATH, we wouldn't be doing this, right? In git-submodule.sh uses $path variable for something other than the search-path, and the definition updated by you would become in the larger picture:

	path=... ;# git-submodule uses the variable for not-a-search-path
        _I18N__path=$path
        export _I18N__path
        git sh-i18n--envsubst "... $_I18N__path"

Is the RHS of the second assignment safe on Windows? Are environment variables case insane but normal variables are safe?

If that is a non-issue, I think your change is a good thing to do.
Previous: Johannes SixtNext: Johannes Sixt
Message 4 of 11 in “i18n: Windows shellscript support”
  1. 0/6 i18n: Windows shellscript supportÆvar Arnfjörð Bjarmason, May 25, 2011
  2. 1/6 i18n win32: add git-am eval_gettext variable prefixÆvar Arnfjörð Bjarmason, May 25, 2011
  3. Johannes SixtMay 26, 2011
  4. Junio C HamanoMay 26, 2011
  5. Johannes SixtMay 26, 2011
  6. Ævar Arnfjörð BjarmasonMay 26, 2011
  7. 2/6 i18n win32: add git-bisect eval_gettext variable prefixÆvar Arnfjörð Bjarmason, May 25, 2011
  8. 3/6 i18n win32: add git-pull eval_gettext variable prefixÆvar Arnfjörð Bjarmason, May 25, 2011
  9. 4/6 i18n win32: add git-stash eval_gettext variable prefixÆvar Arnfjörð Bjarmason, May 25, 2011
  10. 5/6 i18n win32: add git-submodule eval_gettext variable prefixÆvar Arnfjörð Bjarmason, May 25, 2011
  11. 6/6 i18n win32: add test eval_gettext variable prefixÆvar Arnfjörð Bjarmason, May 25, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.