Mark Brown (JIRA) wrote:
[ https://issues.apache.org/jira/browse/STDCXX-333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12474266 ]
Mark Brown commented on STDCXX-333:
-----------------------------------

I tried to see if I could reproduce this problem on Cygwin. My version of 
Cygwin doesn't have any locales so I tried to generate the en_US.UTF-8 locale 
using the stdcxx localedef program. I got this error:

nls$ ../bin/localedef -c -f /home/mbrown/stdcxx/etc/nls/charmaps/UTF-8 -i 
/home/mbrown/stdcxx/etc/nls/src/en_US en_US.UTF-8
call to system LC_ALL=C /usr/bin/locale -a >/tmp/tdf4.0 2>/dev/null: No such 
file or directory
Hangup

This looks like an unrelated problem. Could you open a new issue for it?

Thanks
Martin



std::wfilebuf extracts more than 1 character from a 1 byte file
---------------------------------------------------------------

                Key: STDCXX-333
                URL: https://issues.apache.org/jira/browse/STDCXX-333
            Project: C++ Standard Library
         Issue Type: Bug
         Components: 27. Input/Output
   Affects Versions: 4.1.3
        Environment: gcc 3.2.3 on Linux
           Reporter: Mark Brown

I get an an abort when I run the following program on Linux.
#include <cassert>
#include <fstream>
#include <iostream>
int main ()
{
    {
        std::filebuf fb;
        fb.open ("file", std::ios::out);
        fb.sputc ('a');
    }
    std::wfilebuf fb;
    fb.pubimbue (std::locale ("en_US.UTF-8"));
    fb.open ("file", std::ios::in);
    const int c[] = { fb.sbumpc (), fb.sgetc () };
    std::cout << c [0] << ' ' << c [1] << std::endl;
    assert (L'a' == c [0]);
    assert (std::wfilebuf::traits_type::eof () == c [1]);
}
test: test.cpp:21: int main(): Assertion `std::wfilebuf::traits_type::eof () == 
c [1]' failed.
Aborted



Reply via email to