Am 10/31/2010 12:34, schrieb Ãvar ArnfjÃrà Bjarmason: > Change eval_gettext(1) in git-sh-i18n.sh to use a modified version of > gettext's envsubst(1) program, instead of using a clever (but broken) > printf + eval + printf trick. > > Our previous fallback would incorrectly handle cases where the > variable being interpolated contained spaces. E.g.: > > cmd="git foo"; eval_gettext "command: \$cmd" > > Would emit "command: gitfoo", instead of the correct "command: git > foo". This happened with a message in git-am.sh that used the $cmdline > variable. > > To work around this, and to improve our variable expansion behavior > (eval has security issues) I've imported a stripped-down version of > gettext's envsubst(1) program. Would this help the case mentioned above at all? To pass the value of 'cmd' to envsubst, you have to export it. But the code snippet above doesn't do that. Wouldn't it be much simpler to dodge variable substitutions in the translated string entirely by rewriting such texts as (e.g.) gettext_printf "command: %s\n" "$cmd" and use printf in the implementation. I don't know how compatible you can make this with existing gettext implementations, though. -- Hannes -- 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