[ 
https://issues.apache.org/jira/browse/STDCXX-1073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13475626#comment-13475626
 ] 

Liviu Nicoara commented on STDCXX-1073:
---------------------------------------

The following still fails with the first patch:

{noformat}
$ cat ../../tests/localization/t.cpp; nice make t.cpp && ./t af_ZA.utf8; echo $?
#include <iostream>
#include <locale>
#include <string>

int 
main (int argc, char** argv)
{
    std::locale loc (argv [1]);

    const std::collate< char >& fac = 
        std::use_facet< std::collate< char > > (loc);

    char const buf [] = "a\0\0b";
    std::string s = fac.transform (buf, buf + sizeof buf - 1);

    size_t i = 0;
    for (; i < s.size () && 0 == s [i]; ++i) ;

    return !(i == 2);
}
1
{noformat}
                
> Narrow collate_byname transform with libc removes embedded NULs
> ---------------------------------------------------------------
>
>                 Key: STDCXX-1073
>                 URL: https://issues.apache.org/jira/browse/STDCXX-1073
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 22. Localization
>    Affects Versions: 4.2.1, 4.2.x
>         Environment: Independent.
>            Reporter: Liviu Nicoara
>            Assignee: Liviu Nicoara
>            Priority: Minor
>              Labels: NUL, collate_byname, strxfrm
>             Fix For: 4.2.x, 4.3.x, 5.0.0
>
>         Attachments: collate.cpp.patch
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> Transform should preserve embedded NULs. The narrow specialization of 
> collate_byname, when using libc strxfrm, removes the embedded NULs. 
> Comparisons of transformed strings is altered.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to