git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/branches/class@4184 1feff8c3-07ed-0310-ac33-dd36852eb9cd

This commit is contained in:
Scott R Charlton 2010-03-23 21:05:40 +00:00
parent 27d7dd9d29
commit 6257006116
4 changed files with 35 additions and 18 deletions

View File

@ -1,4 +1,5 @@
#include <memory> #include <memory>
#include <cassert>
#include "IPhreeqc.h" #include "IPhreeqc.h"
#include "IPhreeqc.hpp" #include "IPhreeqc.hpp"
#include "ErrorReporter.hxx" #include "ErrorReporter.hxx"
@ -824,29 +825,36 @@ int IPhreeqc::handler(const int action, const int type, const char *err_str, con
int IPhreeqc::output_handler(const int type, const char *err_str, const int stop, void *cookie, const char *format, va_list args) int IPhreeqc::output_handler(const int type, const char *err_str, const int stop, void *cookie, const char *format, va_list args)
{ {
IPhreeqc* pIPhreeqc = (IPhreeqc*) cookie; assert(cookie == this);
switch (type) switch (type)
{ {
case OUTPUT_ERROR: case OUTPUT_ERROR:
if (pIPhreeqc) if (this)
{ {
std::ostringstream oss;
oss << "ERROR: " << err_str << "\n";
if (stop == STOP) if (stop == STOP)
{ {
static std::string str(200, ' ');
static std::ostringstream oss(str);
oss << "ERROR: " << err_str << "\n";
oss << "Stopping.\n"; oss << "Stopping.\n";
this->AddError(oss.str().c_str());
}
else
{
std::ostringstream oss;
oss << "ERROR: " << err_str << "\n";
this->AddError(oss.str().c_str());
} }
pIPhreeqc->AddError(oss.str().c_str());
} }
break; break;
case OUTPUT_WARNING: case OUTPUT_WARNING:
if (pIPhreeqc) if (this)
{ {
std::ostringstream oss; std::ostringstream oss;
oss << "WARNING: " << err_str << "\n"; oss << "WARNING: " << err_str << "\n";
pIPhreeqc->AddWarning(oss.str().c_str()); this->AddWarning(oss.str().c_str());
} }
break; break;

View File

@ -222,7 +222,12 @@ RunStringF(char* input, unsigned int input_length)
int int
GetSelectedOutputRowCountF(void) GetSelectedOutputRowCountF(void)
{ {
return ::GetSelectedOutputRowCount(); int rows = ::GetSelectedOutputRowCount();
if (rows > 0)
{
rows -= 1;
}
return rows;
} }
int int
@ -237,7 +242,10 @@ GetSelectedOutputValueF(int *row, int *col, int *vtype, double* dvalue, char* sv
VRESULT result; VRESULT result;
VAR v; VAR v;
VarInit(&v); VarInit(&v);
result = ::GetSelectedOutputValue(*row, *col, &v); char buffer[100];
int adjcol = *col - 1;
result = ::GetSelectedOutputValue(*row, adjcol, &v);
switch (v.type) { switch (v.type) {
case TT_EMPTY: case TT_EMPTY:
@ -249,10 +257,14 @@ GetSelectedOutputValueF(int *row, int *col, int *vtype, double* dvalue, char* sv
case TT_LONG: case TT_LONG:
*vtype = TT_DOUBLE; *vtype = TT_DOUBLE;
*dvalue = (double)v.lVal; *dvalue = (double)v.lVal;
::sprintf(buffer, "%d", v.lVal);
padfstring(svalue, buffer, svalue_length);
break; break;
case TT_DOUBLE: case TT_DOUBLE:
*vtype = v.type; *vtype = v.type;
*dvalue = v.dVal; *dvalue = v.dVal;
::sprintf(buffer, "%23.15e", v.dVal);
padfstring(svalue, buffer, svalue_length);
break; break;
case TT_STRING: case TT_STRING:
*vtype = v.type; *vtype = v.type;
@ -391,7 +403,7 @@ void __stdcall OUTPUTLINES(void)
} }
int __stdcall GETSELECTEDOUTPUTROWCOUNT(void) int __stdcall GETSELECTEDOUTPUTROWCOUNT(void)
{ {
return GetSelectedOutputRowCountF() - 1; return GetSelectedOutputRowCountF();
} }
int __stdcall GETSELECTEDOUTPUTCOLUMNCOUNT(void) int __stdcall GETSELECTEDOUTPUTCOLUMNCOUNT(void)
{ {
@ -399,8 +411,7 @@ int __stdcall GETSELECTEDOUTPUTCOLUMNCOUNT(void)
} }
int __stdcall GETSELECTEDOUTPUTVALUE(int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length) int __stdcall GETSELECTEDOUTPUTVALUE(int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length)
{ {
int adjcol = *col - 1; return GetSelectedOutputValueF(row, col, vtype, dvalue, svalue, svalue_length);
return GetSelectedOutputValueF(row, &adjcol, vtype, dvalue, svalue, svalue_length);
} }
#if defined(__cplusplus) #if defined(__cplusplus)
} }

View File

@ -88,7 +88,7 @@ void OUTPUTLINES(void)
} }
int GETSELECTEDOUTPUTROWCOUNT(void) int GETSELECTEDOUTPUTROWCOUNT(void)
{ {
return GetSelectedOutputRowCountF() - 1; return GetSelectedOutputRowCountF();
} }
int GETSELECTEDOUTPUTCOLUMNCOUNT(void) int GETSELECTEDOUTPUTCOLUMNCOUNT(void)
{ {
@ -96,8 +96,7 @@ int GETSELECTEDOUTPUTCOLUMNCOUNT(void)
} }
int GETSELECTEDOUTPUTVALUE(int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length) int GETSELECTEDOUTPUTVALUE(int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length)
{ {
int adjcol = *col - 1; return GetSelectedOutputValueF(row, col, vtype, dvalue, svalue, svalue_length);
return GetSelectedOutputValueF(row, &adjcol, vtype, dvalue, svalue, svalue_length);
} }
#if defined(__cplusplus) #if defined(__cplusplus)

View File

@ -88,7 +88,7 @@ void outputlines_(void)
} }
int getselectedoutputrowcount_(void) int getselectedoutputrowcount_(void)
{ {
return GetSelectedOutputRowCountF() - 1; return GetSelectedOutputRowCountF();
} }
int getselectedoutputcolumncount_(void) int getselectedoutputcolumncount_(void)
{ {
@ -96,8 +96,7 @@ int getselectedoutputcolumncount_(void)
} }
int getselectedoutputvalue_(int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length) int getselectedoutputvalue_(int *row, int *col, int *vtype, double* dvalue, char* svalue, unsigned int svalue_length)
{ {
int adjcol = *col - 1; return GetSelectedOutputValueF(row, col, vtype, dvalue, svalue, svalue_length);
return GetSelectedOutputValueF(row, &adjcol, vtype, dvalue, svalue, svalue_length);
} }
#if defined(__cplusplus) #if defined(__cplusplus)