From kde-core-devel Thu Aug 23 22:15:37 2001 From: Kurt Granroth Date: Thu, 23 Aug 2001 22:15:37 +0000 To: kde-core-devel Subject: klocale changes fatal to kde! X-MARC-Message: https://marc.info/?l=kde-core-devel&m=99860509029744 I updated kdelibs today and noticed that *voila* everything crashes. The backtrace is something like this: ----------------------------------------------------------------------- Program received signal SIGSEGV, Segmentation fault. 0x4075c628 in XAddExtension () from /usr/X11R6/lib/libX11.so.6 (gdb) where #0 0x4075c628 in XAddExtension () from /usr/X11R6/lib/libX11.so.6 #1 0x409e46ec in _XftDisplayInfoGet () from /usr/X11R6/lib/libXft.so.1 #2 0x409e479f in XftDefaultHasRender () from /usr/X11R6/lib/libXft.so.1 #3 0x403688da in qt_use_xft () from /usr/lib/qt2/lib/libqt.so.2 #4 0x403940d4 in QFontDatabase::createDatabase () from /usr/lib/qt2/lib/libqt.so.2 #5 0x403970cc in QFontDatabase::QFontDatabase () from /usr/lib/qt2/lib/libqt.so.2 #6 0x400e930d in KCharsetsPrivate::getAvailableCharsets (this=0x804f028) at kcharsets.cpp:227 #7 0x400f0263 in KCharsets::isAvailable (this=0x804f098, charset=ISO_8859_1) at kcharsets.cpp:564 #8 0x400f471e in KCharsets::charsetForEncoding (this=0x804f098, e=@0xbfffef7c, noUnicode=false) at kcharsets.cpp:845 #9 0x400c6393 in KLocale::initCharset (this=0x804ef78, config=0x804d658) at klocale.cpp:1545 ----------------------------------------------------------------------- Now I haven't changed Qt or X in a while so I doubted that it was #0 - #5. So I messed around with versions and found the problem to be in klocale.cpp version 1.273. It's this change: void KLocale::initCharset(KConfig *config) { - KConfigGroupSaver saver(config, "Locale"); - m_charset = config->readEntry("Charset"); - - if (m_charset.isEmpty()) - { - m_charset = QString::fromLatin1("iso-8859-1"); - } - else - { - // ### HPB: This code should be rewritten/removed - bool bOk; - KGlobal::charsets()->codecForName(m_charset, bOk); - // if !ok, we have a problem. it will return latin-1 then, but thats - // obviously not what the user wants - if(!bOk) - kdWarning(173) << "charset " << m_charset - << " is not known. using ISO 8859-1 instead." << endl; - //m_charset = QString::fromLatin1("iso-8859-1"); - } + m_charset = KGlobal::charsets()->charsetForEncoding(encoding()); If I revert it, then everything is honky-dory. With it *nothing* works. Is it just me? -- Kurt Granroth | http://www.granroth.org KDE Developer/Evangelist | SuSE Labs Open Source Developer granroth@kde.org | granroth@suse.com KDE -- Conquer Your Desktop