Am 5/26/2011 1:19, schrieb Ãvar ArnfjÃrà Bjarmason: > - eval_gettext 'Patch failed at $msgnum $FIRSTLINE'; echo > + GIT_I18N_VARIABLE_msgnum=$msgnum > + GIT_I18N_VARIABLE_FIRSTLINE=$FIRSTLINE > + eval_gettext 'Patch failed at $GIT_I18N_VARIABLE_msgnum $GIT_I18N_VARIABLE_FIRSTLINE'; echo That's not pretty. I wonder whether it is possible to automate the variable prefix. Looking at the definition of eval_gettext() eval_gettext () { printf "%s" "$1" | ( export PATH $(git sh-i18n--envsubst --variables "$1"); git sh-i18n--envsubst "$1" ) } 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? BTW, if you re-roll the series, would you mind shortening the prefix to, say, _I18N__ because on Windows the variables names count towards the environment budget, which is restricted to 32k characters. BTW2, the following patch is needed to avoid a crash of an invocation of 'git sh-i18n--envsubst' without arguments. -- Hannes (Warning: hand-edited patch text) diff --git a/sh-i18n--envsubst.c b/sh-i18n--envsubst.c index 7125093..8104973 100644 --- a/sh-i18n--envsubst.c +++ b/sh-i18n--envsubst.c @@ -76,2 +76,3 @@ main (int argc, char *argv[]) error ("we won't substitute all variables on stdin for you"); + break; /* -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html