Version: 1.0 (using KDE 3.1.4) Installed from: compiled sources Compiler: gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7) OS: Linux (i686) release 2.4.20-20.8 I found an error in the code that renders greek letters. There are actually two entries in Unicode for lowercase sigma. I did not take this into account, so everything after sigma is offset by one (i.e., "tau" shows the symbol for sigma, "upsilon" shows tau, etc.). I am making a bug report rather than just fixing it because I don't want to forget to backport this to KDE_3_2_BRANCH (which is currently still in deep freeze).
Subject: kdeedu/kstars/kstars CVS commit by harris: Fixing bug #72900 (Greek letters after sigma are wrong). Did you know there are two symbols for the Greek letter sigma in Unicode? I sure didn't! :) CCMAIL: 72900-done@bugs.kde.org CCMAIL: kstars-devel@kde.org M +11 -9 starobject.cpp 1.17 --- kdeedu/kstars/kstars/starobject.cpp #1.16:1.17 @@ -105,11 +105,13 @@ QString StarObject::greekLetter( void ) if ( code == "pi " ) letter = QString( QChar(alpha +15) ); if ( code == "rho" ) letter = QString( QChar(alpha +16) ); - if ( code == "sig" ) letter = QString( QChar(alpha +17) ); - if ( code == "tau" ) letter = QString( QChar(alpha +18) ); - if ( code == "ups" ) letter = QString( QChar(alpha +19) ); - if ( code == "phi" ) letter = QString( QChar(alpha +20) ); - if ( code == "chi" ) letter = QString( QChar(alpha +21) ); - if ( code == "psi" ) letter = QString( QChar(alpha +22) ); - if ( code == "ome" ) letter = QString( QChar(alpha +23) ); + //there are two unicode symbols for sigma; + //skip the first one, the second is more widely used + if ( code == "sig" ) letter = QString( QChar(alpha +18) ); + if ( code == "tau" ) letter = QString( QChar(alpha +19) ); + if ( code == "ups" ) letter = QString( QChar(alpha +20) ); + if ( code == "phi" ) letter = QString( QChar(alpha +21) ); + if ( code == "chi" ) letter = QString( QChar(alpha +22) ); + if ( code == "psi" ) letter = QString( QChar(alpha +23) ); + if ( code == "ome" ) letter = QString( QChar(alpha +24) ); if ( name2().length() && name2().mid(3,1) != " " )