Bug 72900 - Greek letters after sigma are wrong
Summary: Greek letters after sigma are wrong
Status: RESOLVED FIXED
Alias: None
Product: kstars
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: kstars
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-18 20:09 UTC by kstars
Modified: 2004-01-27 09:45 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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) != " " )