From 4b5b668df4c1906d97a78911691ebb4a5fa5b2c0 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (office)" <j.wuttke@fz-juelich.de>
Date: Mon, 1 Sep 2008 17:11:34 +0200
Subject: [PATCH] immer noch absurde 270-er non-Kommentare aus dualplot l. 435.
 Versuch mit %14.7g

---
 src/curve.cpp    | 18 +++++++++++-------
 src/dualplot.cpp |  2 +-
 src/olm.cpp      | 10 ++++++++++
 src/olm.h        |  9 ++++-----
 4 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/src/curve.cpp b/src/curve.cpp
index 93aaf4b4..f9dc82f8 100644
--- a/src/curve.cpp
+++ b/src/curve.cpp
@@ -469,8 +469,8 @@ double myeval( double x, void* data )
 namespace NCurveFile
 {
     void IntegrateFile(
-        const COlc *fin, const int k, const string mode,
-        const int ip, const string name );
+        const COlc *fin, const int k, const string& mode,
+        const int ip, const string& name, const CCoord& ico );
     double NumericIntegral(
         const COlc *fc, const CCurve *c, const int k, const int j,
         const double low, const double hig );
@@ -540,10 +540,12 @@ void NCurveFile::Integrate(void)
             CList parsel( mode, CLimits( 0, fin->nPar()-1 ) );
             for( uint iv=0; iv<parsel.n(); ++iv ){
                 int ip = parsel.V[iv];
-                IntegrateFile( fin, fiter.SelNo(), "p", ip, "p"+strg(ip) );
+                IntegrateFile( fin, fiter.SelNo(),
+                               "p", ip, "p"+strg(ip), fin->PCo[ip] );
             }
         } else // other integrals
-            IntegrateFile( fin, fiter.SelNo(), mode, -1, mode );
+            IntegrateFile( fin, fiter.SelNo(), mode, -1, mode,
+                           CCoord( "mode", "" ) );
     }
 }
 
@@ -551,8 +553,8 @@ void NCurveFile::Integrate(void)
 //! Extract exactly one integral from each curve of fin.
 
 void NCurveFile::IntegrateFile( const COlc *fin, const int k,
-                                const string mode, const int ip,
-                                const string name )
+                                const string& mode, const int ip,
+                                const string& name, const CCoord& ico )
 {
     COld fout;
     CScan S;
@@ -566,7 +568,9 @@ void NCurveFile::IntegrateFile( const COlc *fin, const int k,
             fout.name.replace( 0, 4, "" );
         fout.name.insert( 0, name + "_" );
         fout.xco = fin->ZCo.back();
-        fout.yco = fin->PCo[ip];
+        fout.yco = ico;
+        if( fout.ZCo.size()<1 )
+            throw string( "input has no z coord" );
         fout.ZCo.pop_back();
         S.Clear();
         S.z = fin->VC[0].z;
diff --git a/src/dualplot.cpp b/src/dualplot.cpp
index 9e4edf18..adacc5b0 100644
--- a/src/dualplot.cpp
+++ b/src/dualplot.cpp
@@ -432,7 +432,7 @@ void NPlot::Line(const int lstyle,
     ps_accu.push_back( outlin );
     for (uint i=0; i<np; i++) {
         snprintf( outlin, LINSIZ,
-                  "%7.3f%7.3f%7.3f t%c %% %12.6g wx %12.6g wy\n",
+                  "%7.3f%7.3f%7.3f t%c %% %14.7g wx %14.7g wy\n",
                   X.pc(xp[i]), Y.pc(yp[i]), 0.0,
                   i==0 ? 'i' : i==np-1 ? 'f' : ' ',
                   xp[i], yp[i]);
diff --git a/src/olm.cpp b/src/olm.cpp
index 60c57fa9..1d319239 100644
--- a/src/olm.cpp
+++ b/src/olm.cpp
@@ -85,6 +85,16 @@ void COlo::SaveHeader_a01(FILE *fd)
 //***************************************************************************//
 
 
+COld::COld( class COlc const* c )
+{
+    name = c->name;
+    lDoc = c->lDoc;
+    xco = c->xco;
+    yco = c->yco;
+    ZCo = c->ZCo;
+    RPar = c->RPar;
+}
+
 //! Save bulk of online file in one of several formats.
 
 void COld::SaveBody( FILE *fd, string fmt )
diff --git a/src/olm.h b/src/olm.h
index 6702d5ca..1d46c6ee 100644
--- a/src/olm.h
+++ b/src/olm.h
@@ -18,7 +18,7 @@ class COlo { // on-line object (virtual base class for COld, COlc)
     vector<CParam> RPar;
     bool as_on_disk;
 
-    virtual inline ~COlo(void) { }; // magic: makes dynamic_cast possible
+    virtual inline ~COlo(void) {}; // magic: makes dynamic_cast possible
 
     inline uint nZ(void) const { return ZCo.size(); };
 
@@ -30,9 +30,8 @@ class COld : public COlo { // on-line data file
  public:
     vector<CScan> VS;
 
-    inline COld(void) { };
-    COld( class COlc const* c ) {};
-    //COld(CCoord CX, CCoord CY, CGrid VX, vector<double> VY);
+    inline COld(void) {};
+    COld( class COlc const* c );
 
     inline uint nScan(void) const { return VS.size(); };
     uint nPts(uint j) const; 
@@ -65,7 +64,7 @@ class CEle {
     void* Ptr;
 
  public:
-    inline CEle(void) { };
+    inline CEle(void) {};
     inline CEle(COld* pin) {
         Typ = DATA;
         Ptr = (void*) pin;
-- 
GitLab