public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: libstdc++/5280: Problems with named locales and iostreams (gnulocale)
@ 2002-01-30 13:13 paolo
  0 siblings, 0 replies; 2+ messages in thread
From: paolo @ 2002-01-30 13:13 UTC (permalink / raw)
  To: bkoz, gcc-bugs, gcc-prs, nobody, schmid

Synopsis: Problems with named locales and iostreams (gnulocale)

Responsible-Changed-From-To: unassigned->bkoz
Responsible-Changed-By: paolo
Responsible-Changed-When: Wed Jan 30 13:13:14 2002
Responsible-Changed-Why:
    Responsible.
State-Changed-From-To: open->closed
State-Changed-By: paolo
State-Changed-When: Wed Jan 30 13:13:14 2002
State-Changed-Why:
    Fixed with:
    http://gcc.gnu.org/ml/gcc-patches/2002-01/msg01537.html

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5280


^ permalink raw reply	[flat|nested] 2+ messages in thread

* libstdc++/5280: Problems with named locales and iostreams (gnulocale)
@ 2002-01-04 15:06 Peter Schmid
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Schmid @ 2002-01-04 15:06 UTC (permalink / raw)
  To: gcc-gnats


>Number:         5280
>Category:       libstdc++
>Synopsis:       Problems with named locales and iostreams (gnulocale)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jan 04 15:06:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Peter Schmid
>Release:        3.1 20011229 (experimental)
>Organization:
TU Darmstadt
>Environment:
System: Linux kiste 2.4.17 #7 Thu Jan 3 17:21:51 CET 2002 i686 unknown
Architecture: i686
SuSE 7.3
glibc 2.2.4 + patches
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads --enable-languages=c,c++,f77,objc --enable-concept-checks
>Description:
After updating my system libc I tried name locales again. They no longer
crash but the call to the default named locale does only partly work. For
example, consider the following code tl.C. Doubles are output
according to the default locale, the locale employed for input is read
in by the program. When LANG is set to C, everything works as
expected. Doubles separated with a comma as decimal point are
transformed into doubles with a dot as a separator. 
 
LANG=C ./tl 
de_DE
cout locale: C
cin locale: de_DE
1,2
1.2
1,3
1.3 
^D pressed

Unfortunately, when LANG is set to de_DE this does no longer work. The
comma is a not accepted as a valid separator as it should and the loop
terminates with an error. If I set LANG to a different value, for
example fr_FR, the same problem occurs.

LANG=de_DE ./tl
de_DE
cout locale: de_DE
cin locale: de_DE
1,3

>How-To-Repeat:
tl.C
#include <iostream>
#include <locale>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
  locale coutLocale("");
  cout.imbue(coutLocale);

  string s;
  cin >> s;
  if (!cin) {
    cerr << "ERROR while reading the locale" << endl;
    return EXIT_FAILURE;
  }
  

locale cinLocale(s.c_str());
cin.imbue(cinLocale);

cout << "cout locale: " << coutLocale.name() << endl;
cout << "cin locale: " << cinLocale.name() << endl;
double value;
while (cin >> value) {
  cout << value << endl;
}
}

Compiling tl.C 
g++ -v -o tl tl.C -W -Wall 
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads --enable-languages=c,c++,f77,objc --enable-concept-checks
Thread model: posix
gcc version 3.1 20011229 (experimental)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -W -Wall -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ tl.C -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase tl.C -W -Wall -version -o /tmp/cc8e37VS.s
GNU CPP version 3.1 20011229 (experimental) (cpplib) (i386 Linux/ELF)
GNU C++ version 3.1 20011229 (experimental) (i686-pc-linux-gnu)
	compiled by GNU C version 3.1 20011229 (experimental).
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include/g++-v3
 /usr/local/include/g++-v3/i686-pc-linux-gnu
 /usr/local/include/g++-v3/backward
 /usr/local/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include
 /usr/include
End of search list.
 as -V -Qy -o /tmp/ccxwlGmA.o /tmp/cc8e37VS.s
GNU assembler version 2.11.90.0.29 (i486-suse-linux) using BFD version 2.11.90.0.29
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o tl /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtbegin.o -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1 -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../.. /tmp/ccxwlGmA.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtend.o /usr/lib/crtn.o


>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-01-30 21:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-01-30 13:13 libstdc++/5280: Problems with named locales and iostreams (gnulocale) paolo
  -- strict thread matches above, loose matches on Subject: below --
2002-01-04 15:06 Peter Schmid

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).