stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Brown <mbr...@inbox.com>
Subject Re: [jira] Commented: (STDCXX-333) std::wfilebuf extracts more than 1 character from a 1 byte file
Date Mon, 19 Feb 2007 20:51:24 GMT
> -----Original Message-----
> From: sebor@roguewave.com
> Sent: Mon, 19 Feb 2007 13:35:19 -0700
> To: stdcxx-dev@incubator.apache.org
> Subject: Re: [jira] Commented: (STDCXX-333) std::wfilebuf extracts more
> than 1 character from a 1 byte file
> 
> 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?

Sure. Here it is: https://issues.apache.org/jira/browse/STDCXX-340.

Mark

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

Mime
View raw message