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

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

Test case:

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

int
main (int argc, char** argv)
{
    char const c [] = "a\0c";

    std::locale loc (argv [1]);

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

    std::string s = col.transform (c, c + sizeof c / sizeof *c - 1);

    for (size_t i = 0; i < s.size (); ++i) {
        if (0 == s [i])
            return 0;
    }

    return 1;
}
make: `t' is up to date.
failed
{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
>
>   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