Bug 4264

Summary: wchar output is broken
Product: Sisyphus Reporter: Alexey Voinov <voins>
Component: libstdc++3.3Assignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P2 CC: glebfm
Version: unstable   
Hardware: all   
OS: Linux   

Description Alexey Voinov 2004-05-31 12:36:08 MSD
$ cat > test.c
#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int
main(void)
{
	setlocale(LC_ALL, "");
	wprintf(L"%s\n", setlocale(LC_CTYPE, NULL));
	wprintf(L"[\x0440]\n");
	return 0;
}
$ gcc -std=c99 test.c
$ ./a.out
ru_RU.KOI8-R
[р]
$ cat > test.cc
#include <iostream>
#include <locale>
#include <clocale>

using namespace std;

int main(void)
{
	locale::global(locale(""));
	wcout.imbue(locale(""));
	wcout << L"[\x0440]" << endl;
	return 0;
}
$ g++ test.cc
$ a.out
[$

т.е. программа на C++ в момент вывода символа не из ASCII просто
останавливается. (с кодом завершения 0). Это очень плохо.
Программа на C приведена для демонстрации того, что символ правильный и вывод
wchar_t в libc реализован правильно и работает.
Comment 1 Alexey Voinov 2005-01-11 18:36:28 MSK
fixed in gcc3.4