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
>
|