Re: [PATCH 09/11] GETTEXT_POISON=rot13: do compare the output in `test_i18ncmp`
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 15, 2021, 19:58 UTC
- Message-ID
- <xmqqlfcurn05.fsf@gitster.c.googlers.com>
- In-Reply-To
- <nycvar.QRO.7.76.6.2101151643410.52@tvgsbejvaqbjf.bet>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 16 quoted lines
> On Tue, 12 Jan 2021, Junio C Hamano wrote:
>
>> > +static size_t unrot13(char *buf)
>> > +{
>> > + char *p = buf, *q = buf;
>> > +
>> > + while (*p) {
>> > + const char *begin = strstr(p, "<rot13>"), *end;
>>
>> AFAIR from my reading of [02/11], the encoding side did not special
>> case the payload that has <ebg13> or </ebg13>; if we want to make it
>> reversible conversion (which is excellent improvement over the
>> current "# GETTEXT_POISON #" obfuscation), we'd need to do something
>> about it, I think.
>
> Do you expect any message to be translated _twice_?Not at all.
But what I had in mind, when I wrote the above, was that the programmers are entitled to expect that they are allowed to say:
die(_("message with <ebg13/>, <ebg13> and <rot13> in it"));This will be rot13'd, and the entire thing will be enclosed inside "<rot13>...</rot13>"; I would expect that somewhere inside "..." the receiving end that attempts to parse it by relying on these markers will be confused.
>> But on second thought, nobody can prevent a caller to die(_("%s", msg));
>> to have "<rot13>" in the msg part, so perhaps punting like this
>> series does is sufficient. I dunno.And this comment still stands.