Bug 69645

Summary: can't read data that uses capital E in scientific notation and doesn't plot last point in a data file
Product: [Applications] kst Reporter: Karl Meredith <kvm>
Component: generalAssignee: George Staikos <staikos>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: RedHat Enterprise Linux   
OS: Linux   
Latest Commit: Version Fixed In:

Description Karl Meredith 2003-12-04 20:26:18 UTC
Version:           0.94 (using KDE KDE 3.1.1)
Installed from:    RedHat RPMs
OS:          Linux

I am new to using KST.  I noticed that there is a problem when reading
in ascii data.  If the data is written in scientific notation with a
capital E (ie. 1E-2) then kst cannot read it.  If it comes from stdin
with a capital E, then kst reads it just fine.  Here's an example.
I have three data files that should all result in the same plot.

==> test1.dat <==
1 0.1
2 0.3
3 0.2

==> test2.dat <==
1 1e-1
2 3e-1
3 2e-1

==> test3.dat <==
1 1E-1
2 3E-1
3 2E-1

Typing 
>> kst -x 1 -y 2 test1.dat
works just fine.  The plot comes up and looks good.

Typing 
>> kst -x 1 -y 2 test2.dat
still works just fine.  

Typing 
>> kst -x 1 -y 2 test3.dat
doesn't give anything and kst exits.

However, if I get test3.dat from stdin,
>> cat test3.dat|kst -x 1 -y 2 stdin
then it works just fine.

I am working with some FORTRAN programs that output in the capital E
scientific notation format.  

Also, on a side note, kst doesn't seem to plot the last data point in
the file.

Any fixes or help that you could provide on these issues would be
greatly appreciated.

Thanks,

Karl
Comment 1 George Staikos 2003-12-05 09:31:53 UTC
Argh, it's a 1 character regression that resulted from the datasources change.  Will commit a fix shortly.  Meanwhile there is a second bug reported here so I can't close the report yet.
Comment 2 George Staikos 2003-12-05 09:34:05 UTC
Subject: kdeextragear-2/kst/kst/datasources/ascii

CVS commit by staikos: 

Properly detect ascii files that use E instead of e for scientific notation.

CCMAIL: 69645@bugs.kde.org


  M +1 -1      ascii.cpp   1.8


--- kdeextragear-2/kst/kst/datasources/ascii/ascii.cpp  #1.7:1.8
@@ -259,5 +259,5 @@ bool understands_ascii(const QString& fi
     if (rc >= 2) {
       // FIXME: comments
-      if (QRegExp("^[\\s]*([0-9\\-\\.e]+[\\s]+)+[\\n]*$").exactMatch(s)) {
+      if (QRegExp("^[\\s]*([0-9\\-\\.eE]+[\\s]+)+[\\n]*$").exactMatch(s)) {
         return true;
       }


Comment 3 George Staikos 2003-12-07 23:24:14 UTC
Subject: kdeextragear-2/kst/kst

CVS commit by staikos: 

draw the last point in graphs.  I'm not sure if this is entirely correct, but
it definitely fixes this bug.  The problem is that there might be unexpected
consequences, so this needs lots of testing before release.

CCMAIL: 69645-done@bugs.kde.org


  M +1 -1      kstplot.cpp   1.27


--- kdeextragear-2/kst/kst/kstplot.cpp  #1.26:1.27
@@ -1195,5 +1195,5 @@ void KstPlot::paint(QPainter &p, double 
         last_y1 = Y1;
 
-        for (i_pt = i0+1; i_pt < iN; i_pt++) {
+        for (i_pt = i0 + 1; i_pt <= iN; i_pt++) {
 
           X2 = last_x1;