Bug 72900

Summary: Greek letters after sigma are wrong
Product: [Applications] kstars Reporter: kstars
Component: generalAssignee: kstars
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description kstars 2004-01-18 20:09:15 UTC
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).
Comment 1 kstars 2004-01-27 09:45:37 UTC
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) != " " )