[Bug 1028949] New: Locale::Maketext interpolating escaped backslashes improperly

bugzilla at redhat.com bugzilla at redhat.com
Mon Nov 11 10:16:56 UTC 2013


https://bugzilla.redhat.com/show_bug.cgi?id=1028949

            Bug ID: 1028949
           Summary: Locale::Maketext interpolating escaped backslashes
                    improperly
           Product: Fedora
           Version: 18
         Component: perl
          Keywords: Patch
          Assignee: jplesnik at redhat.com
          Reporter: ppisar at redhat.com
        QA Contact: extras-qa at fedoraproject.org
                CC: cweyl at alumni.drew.edu, eggled at gmail.com,
                    iarnell at gmail.com, jplesnik at redhat.com, kasal at ucw.cz,
                    perl-devel at lists.fedoraproject.org, ppisar at redhat.com,
                    psabata at redhat.com, rc040203 at freenet.de,
                    tcallawa at redhat.com
        Depends On: 1026763
   External Bug ID: CPAN 120457



+++ This bug was initially created as a clone of Bug #1026763 +++

+++ This bug was initially created as a clone of Bug #1025906 +++

Description of problem:
When a literal backslash is in an L10N value, it is treated nonuniformly by the
Locale::Maketext::_compile method, as patched by RH in Locale::Maketext::Guts
(per https://bugzilla.redhat.com/show_bug.cgi?id=884354).  The result depends
on unrelated parts of the string.

[...]

How reproducible:
Always

Steps to Reproduce:
1. Create a language token, whose value is 'Some data\n'
2. Query the language token through Locale::Maketext ($lh->maketext($tag))

Actual results:
'Some data\\n'

Expected results:
'Some data\n'

Additional info:

The behavior changes in the following cases:
1) If the value contains a tokenized field, behavior depends on whether there
is a trailing newline:

'[_1]Some data\n' => 'Some data\n'
'[_1]Some data\n'."\n" => 'Some data\\n
'
2) If the escaped backslash is in a function call, it behaves as expected:

'Some data[sprintf,\n]' => 'Some data\n'



NOTE: All of these cases in standard perl (with Locale::Maketext v 1.13 from
CPAN) behave exactly the same as each other, and they all produce just a single
'\' before the 'n'.


--- Additional comment from Petr Pisar on 2013-11-04 12:16:19 GMT ---

The 'Some data\n' is due to back-porting the fix to perl 5.10.1.

The parameterized case behaves for me differently and is caused by the changes
in the fix. Even latest Locale::Maketext is affected.
----

All Fedoras are affected.
----

F < 20 bundled Locale::Maketext in perl.


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1026763
[Bug 1026763] Locale::Maketext interpolating escaped backslashes improperly
-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=iKBvBciF8T&a=cc_unsubscribe



More information about the perl-devel mailing list