Re: [RFC/PATCH 1/5] gettext: fix bug in git-sh-i18n's eval_gettext() by using envsubst(1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]