Merge remote-tracking branch 'origin/master' into yasp 55/11355/2
Antoine ELIAS [Mon, 22 Apr 2013 10:16:12 +0000 (12:16 +0200)]
Conflicts:
scilab/modules/helptools/macros/xmltoformat.sci
scilab/modules/output_stream/sci_gateway/cpp/sci_diary.cpp
scilab/modules/scicos/src/c/scicos.c
scilab/modules/spreadsheet/includes/gw_spreadsheet.h
scilab/modules/spreadsheet/sci_gateway/c/gw_spreadsheet.c
scilab/modules/spreadsheet/sci_gateway/spreadsheet_gateway.xml
scilab/modules/spreadsheet/src/c/csvRead.c
scilab/modules/spreadsheet/src/c/csvWrite.c
scilab/modules/spreadsheet/src/c/csv_strsubst.c
scilab/modules/string/Makefile.am
scilab/modules/string/Makefile.in
scilab/modules/string/includes/gw_string.h
scilab/modules/string/sci_gateway/c/gw_string.c
scilab/modules/string/sci_gateway/c/sci_isnum.c
scilab/modules/string/src/c/string.vcxproj
scilab/modules/ui_data/src/cpp/UpdateBrowseVar.cpp

Change-Id: I0857f9853d8c4699f4fa4bc8a33a65a332bc6baf

44 files changed:
1  2 
scilab/configure
scilab/configure.ac
scilab/contrib/Makefile.in
scilab/modules/arnoldi/sci_gateway/c/sci_dnaupd.c
scilab/modules/arnoldi/sci_gateway/c/sci_dneupd.c
scilab/modules/arnoldi/sci_gateway/c/sci_dsaupd.c
scilab/modules/arnoldi/sci_gateway/c/sci_dseupd.c
scilab/modules/arnoldi/sci_gateway/c/sci_znaupd.c
scilab/modules/arnoldi/sci_gateway/c/sci_zneupd.c
scilab/modules/ast/src/cpp/visitor_common.cpp
scilab/modules/boolean/sci_gateway/cpp/sci_find.cpp
scilab/modules/output_stream/sci_gateway/cpp/sci_diary.cpp
scilab/modules/renderer/renderer.iss
scilab/modules/scicos/src/c/scicos.c
scilab/modules/spreadsheet/Makefile.am
scilab/modules/spreadsheet/Makefile.in
scilab/modules/spreadsheet/includes/gw_spreadsheet.h
scilab/modules/spreadsheet/sci_gateway/c/gw_spreadsheet.c
scilab/modules/spreadsheet/sci_gateway/c/sci_csvRead.c
scilab/modules/spreadsheet/sci_gateway/c/sci_csvStringToDouble.c
scilab/modules/spreadsheet/sci_gateway/c/sci_csvTextScan.c
scilab/modules/spreadsheet/sci_gateway/spreadsheet_gateway.xml
scilab/modules/spreadsheet/spreadsheet.vcxproj
scilab/modules/spreadsheet/src/c/csvRead.c
scilab/modules/spreadsheet/src/c/csvWrite.c
scilab/modules/spreadsheet/src/c/getRange.c
scilab/modules/string/Makefile.am
scilab/modules/string/Makefile.in
scilab/modules/string/includes/stringToComplex.h
scilab/modules/string/includes/stringToDouble.h
scilab/modules/string/includes/string_gw.hxx
scilab/modules/string/includes/strsubst.h
scilab/modules/string/sci_gateway/cpp/sci_isnum.cpp
scilab/modules/string/sci_gateway/cpp/sci_strsubst.cpp
scilab/modules/string/sci_gateway/cpp/string_gw.cpp
scilab/modules/string/sci_gateway/cpp/string_gw.vcxproj
scilab/modules/string/sci_gateway/cpp/string_gw.vcxproj.filters
scilab/modules/string/src/c/isnum.c
scilab/modules/string/src/c/isnum.h
scilab/modules/string/src/c/string.vcxproj
scilab/modules/string/src/c/stringToComplex.c
scilab/modules/string/src/c/stringToDouble.c
scilab/modules/string/src/c/strsubst.c
scilab/modules/ui_data/src/cpp/UpdateBrowseVar.cpp

Simple merge
Simple merge
Simple merge
@@@ -58,9 -58,9 +58,7 @@@ int sci_dnaupd(char *fname, void *pvApi
      int* pINFO          = NULL;
  
      int IDO,   mIDO,   nIDO;
--    int mBMAT,  nBMAT;
      int mN,     nN;
--    int mWHICH, nWHICH;
      int mNEV,   nNEV;
      int mTOL,   nTOL;
      int RESID, mRESID, nRESID;
@@@ -75,7 -75,7 +75,6 @@@ int sci_dneupd(char *fname, void *pvApi
      int* pINFO          = NULL;
  
      int mRVEC,     nRVEC;
--    int mHOWMANY,  nHOWMANY;
      int mSELECT,   nSELECT;
      int Dr,        mDr,       nDr;
      int Di,        mDi,       nDi;
@@@ -83,9 -83,9 +82,7 @@@
      int mSIGMAr,   nSIGMAr;
      int mSIGMAi,   nSIGMAi;
      int mWORKev,   nWORKev;
--    int mBMAT,     nBMAT;
      int mN,        nN;
--    int mWHICH,    nWHICH;
      int mNEV,      nNEV;
      int mTOL,      nTOL;
      int RESID,    mRESID,    nRESID;
@@@ -57,9 -57,9 +57,7 @@@ int sci_dsaupd(char *fname, void *pvApi
      int* pINFO          = NULL;
  
      int IDO,   mIDO,   nIDO;
--    int mBMAT,  nBMAT;
      int mN,     nN;
--    int mWHICH, nWHICH;
      int mNEV,   nNEV;
      int mTOL,   nTOL;
      int RESID, mRESID, nRESID;
@@@ -71,14 -71,14 +71,11 @@@ int sci_dseupd(char *fname, void *pvApi
      int* pINFO          = NULL;
  
      int mRVEC,     nRVEC;
--    int mHOWMANY,  nHOWMANY;
      int mSELECT,   nSELECT;
      int D,        mD,        nD;
      int Z,        mZ,        nZ;
      int mSIGMA,    nSIGMA;
--    int mBMAT,     nBMAT;
      int mN,        nN;
--    int mWHICH,    nWHICH;
      int mNEV,      nNEV;
      int mTOL,      nTOL;
      int RESID,    mRESID,    nRESID;
@@@ -63,9 -62,9 +63,7 @@@ int sci_znaupd(char *fname, void *pvApi
      doublecomplex* pWORKL   = NULL;
  
      int IDO,   mIDO,   nIDO;
--    int mBMAT,  nBMAT;
      int mN,     nN;
--    int mWHICH, nWHICH;
      int mNEV,   nNEV;
      int mTOL,   nTOL;
      int RESID, mRESID, nRESID;
@@@ -77,15 -76,15 +77,12 @@@ int sci_zneupd(char *fname, void *pvApi
      doublecomplex* pWORKL   = NULL;
  
      int mRVEC,     nRVEC;
--    int mHOWMANY,  nHOWMANY;
      int mSELECT,   nSELECT;
      int D,        mD,        nD;
      int Z,        mZ,        nZ;
      int mSIGMA,    nSIGMA;
      int mWORKev,   nWORKev;
--    int mBMAT,     nBMAT;
      int mN,        nN;
--    int mWHICH,    nWHICH;
      int mNEV,      nNEV;
      int mTOL,      nTOL;
      int RESID,    mRESID,    nRESID;
index 698fe83,0000000..f14734c
mode 100644,000000..100644
--- /dev/null
@@@ -1,1172 -1,0 +1,1172 @@@
 +/*
 +*  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 +*  Copyright (C) 2010-2010 - DIGITEO - Antoine ELIAS
 +*
 +*  This file must be used under the terms of the CeCILL.
 +*  This source file is licensed as described in the file COPYING, which
 +*  you should have received as part of this distribution.  The terms
 +*  are also available at
 +*  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 +*
 +*/
 +
 +#include <string>
 +#include <numeric>
 +#include "visitor_common.hxx"
 +#include "exp.hxx"
 +#include "fieldexp.hxx"
 +#include "simplevar.hxx"
 +#include "callexp.hxx"
 +#include "struct.hxx"
 +#include "context.hxx"
 +#include "execvisitor.hxx"
 +
 +#include "alltypes.hxx"
 +
 +using namespace types;
 +
 +bool bConditionState(types::InternalType *_pITResult)
 +{
 +    if (_pITResult->isDouble() &&
 +            _pITResult->getAs<types::Double>()->isComplex() == false)
 +    {
 +        types::Double *pR = _pITResult->getAs<types::Double>();
 +        if (pR->isEmpty())
 +        {
 +            //[]
 +            return false;
 +        }
 +
 +        double *pReal = pR->getReal();
 +        for (int i = 0 ; i < pR->getSize() ; i++)
 +        {
 +            if (pReal[i] == 0)
 +            {
 +                return false;
 +            }
 +        }
 +    }
 +    else if (_pITResult->isBool())
 +    {
 +        types::Bool *pB               = _pITResult->getAs<types::Bool>();
 +        int *piData   = pB->get();
 +
 +        for (int i = 0 ; i < pB->getSize() ; i++)
 +        {
 +            if (piData[i] == 0)
 +            {
 +                return false;
 +                break;
 +            }
 +        }
 +    }
 +    else if (_pITResult->isInt())
 +    {
 +    }
 +    else
 +    {
 +        return false;
 +    }
 +    return true;
 +}
 +
 +/*
 + * Generate destination variable from _poSource type and size parameters
 + */
 +types::InternalType* allocDest(types::InternalType* _poSource, int _iRows, int _iCols)
 +{
 +    types::InternalType* poResult = NULL;
 +    switch (_poSource->getType())
 +    {
 +        case types::GenericType::RealDouble :
 +            poResult = new types::Double(_iRows, _iCols, false);
 +            break;
 +        case types::GenericType::RealBool :
 +            poResult = new types::Bool(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealInt8 :
 +            poResult = new types::Int8(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealUInt8 :
 +            poResult = new types::UInt8(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealInt16 :
 +            poResult = new types::Int16(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealUInt16 :
 +            poResult = new types::UInt16(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealInt32 :
 +            poResult = new types::Int32(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealUInt32 :
 +            poResult = new types::UInt32(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealInt64 :
 +            poResult = new types::Int64(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealUInt64 :
 +            poResult = new types::UInt64(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealString :
 +            poResult = new types::String(_iRows, _iCols);
 +            break;
 +        case types::GenericType::RealPoly :
 +        {
 +            int* piRank = new int[_iRows * _iCols];
 +            for (int i = 0 ; i < _iRows * _iCols ; i++)
 +            {
 +                piRank[i] = 1;
 +            }
 +            poResult = new types::Polynom(_poSource->getAs<types::Polynom>()->getVariableName(), _iRows, _iCols, piRank);
 +            break;
 +        }
 +        case types::InternalType::RealImplicitList :
 +            poResult = new types::ImplicitList();
 +            break;
 +        default :
 +            // FIXME : What should we do here ??
 +            break;
 +    }
 +    return poResult;
 +}
 +
 +types::InternalType* AddElementToVariableFromCol(types::InternalType* _poDest, types::InternalType* _poSource, int _iRows, int _iCols, int *_piCols)
 +{
 +    types::InternalType *poResult                 = NULL;
 +    types::InternalType::RealType TypeSource  = _poSource->getType();
 +    types::InternalType::RealType TypeDest            = types::InternalType::RealInternal;
 +    int iCurRow                                 = _iRows;
 +    int iCurCol                                 = _iCols;
 +
 +
 +    if (_poDest == NULL)
 +    {
 +        //First call, alloc _poSource
 +        poResult    = allocDest(_poSource, _iRows, _iCols);
 +        TypeDest      = TypeSource;
 +        iCurCol           = 0;
 +        iCurRow               = 0;
 +    }
 +    else
 +    {
 +        TypeDest    = _poDest->getType();
 +        poResult    = _poDest;
 +    }
 +
 +    if (TypeDest != TypeSource)
 +    {
 +        //check if source type is compatible with dest type
 +    }
 +    else
 +    {
 +        switch (TypeDest)
 +        {
 +            case types::GenericType::RealDouble :
 +                if (poResult->getAs<types::Double>()->isComplex() == false && _poSource->getAs<types::Double>()->isComplex() == true)
 +                {
 +                    poResult->getAs<types::Double>()->setComplex(true);
 +                }
 +
 +                poResult->getAs<types::Double>()->fillFromCol(*_piCols, _poSource->getAs<types::Double>());
 +                *_piCols += _poSource->getAs<types::Double>()->getCols();
 +
 +                break;
 +            default:
 +                break;
 +        }
 +        return poResult;
 +    }
 +    return NULL;
 +}
 +
 +types::InternalType* AddElementToVariableFromRow(types::InternalType* _poDest, types::InternalType* _poSource, int _iRows, int _iCols, int *_piRows)
 +{
 +    types::InternalType *poResult                 = NULL;
 +    types::InternalType::RealType TypeSource  = _poSource->getType();
 +    types::InternalType::RealType TypeDest            = types::InternalType::RealInternal;
 +    int iCurRow                                 = _iRows;
 +    int iCurCol                                 = _iCols;
 +
 +    if (_poDest == NULL)
 +    {
 +        //First call, alloc _poSource
 +        poResult    = allocDest(_poSource, _iRows, _iCols);
 +        iCurCol           = 0;
 +        iCurRow               = 0;
 +        TypeDest      = TypeSource;
 +    }
 +    else
 +    {
 +        TypeDest      = _poDest->getType();
 +        poResult    = _poDest;
 +    }
 +
 +
 +    if (TypeDest != TypeSource)
 +    {
 +        //check if source type is compatible with dest type
 +    }
 +    else
 +    {
 +        switch (TypeDest)
 +        {
 +            case types::GenericType::RealDouble :
 +                if (poResult->getAs<types::Double>()->isComplex() == false && _poSource->getAs<types::Double>()->isComplex() == true)
 +                {
 +                    poResult->getAs<types::Double>()->setComplex(true);
 +                }
 +
 +                poResult->getAs<types::Double>()->fillFromRow(*_piRows, _poSource->getAs<types::Double>());
 +                *_piRows += _poSource->getAs<types::Double>()->getRows();
 +
 +                break;
 +            default:
 +                break;
 +        }
 +        return poResult;
 +    }
 +    return NULL;
 +}
 +
 +
 +/*
 +_iRows : Position if _poDest allready initialized else size of the matrix
 +_iCols : Position if _poDest allready initialized else size of the matrix
 +*/
 +types::InternalType* AddElementToVariable(types::InternalType* _poDest, types::InternalType* _poSource, int _iRows, int _iCols)
 +{
 +    types::InternalType *poResult     = NULL;
 +    types::InternalType::RealType TypeSource  = _poSource->getType();
 +    types::InternalType::RealType TypeDest            =       types::InternalType::RealInternal;
 +    int iCurRow = _iRows;
 +    int iCurCol = _iCols;
 +
 +    if (_poDest == NULL)
 +    {
 +        switch (TypeSource)
 +        {
 +            case types::GenericType::RealDouble :
 +                poResult = new types::Double(_iRows, _iCols, false);
 +                break;
 +            case types::GenericType::RealBool :
 +                poResult = new types::Bool(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealInt8 :
 +                poResult = new types::Int8(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealUInt8 :
 +                poResult = new types::UInt8(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealInt16 :
 +                poResult = new types::Int16(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealUInt16 :
 +                poResult = new types::UInt16(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealInt32 :
 +                poResult = new types::Int32(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealUInt32 :
 +                poResult = new types::UInt32(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealInt64 :
 +                poResult = new types::Int64(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealUInt64 :
 +                poResult = new types::UInt64(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealString :
 +                poResult = new types::String(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealSparse :
 +                poResult = new types::Sparse(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealSparseBool :
 +                poResult = new types::SparseBool(_iRows, _iCols);
 +                break;
 +            case types::GenericType::RealPoly :
 +            {
 +                int* piRank = new int[_iRows * _iCols];
 +                for (int i = 0 ; i < _iRows * _iCols ; i++)
 +                {
 +                    piRank[i] = 1;
 +                }
 +                poResult = new types::Polynom(_poSource->getAs<types::Polynom>()->getVariableName(), _iRows, _iCols, piRank);
 +                break;
 +            }
 +            case types::InternalType::RealImplicitList :
 +                poResult = new types::ImplicitList();
 +                break;
 +            case types::GenericType::RealHandle :
 +                poResult = new types::GraphicHandle(_iRows, _iCols);
 +                break;
 +            default :
 +                // FIXME What should we do here ...
 +                break;
 +        }
 +        iCurCol = 0;
 +        iCurRow = 0;
 +        TypeDest =    TypeSource;
 +    }
 +    else
 +    {
 +        TypeDest = _poDest->getType();
 +        poResult = _poDest;
 +    }
 +
 +
 +    if (TypeDest != TypeSource)
 +    {
 +        //check if source type is compatible with dest type
 +        switch (TypeDest)
 +        {
 +            case types::GenericType::RealDouble :
 +                if (TypeSource == types::GenericType::RealPoly)
 +                {
 +                    types::Double *poDest = _poDest->getAs<types::Double>();
 +                    //Convert Dest to RealPoly
 +                    int *piRank = new int[poDest->getSize()];
 +                    for (int i = 0 ; i < poDest->getSize() ; i++)
 +                    {
 +                        piRank[i] = 1;
 +                    }
 +
 +                    poResult = new types::Polynom(_poSource->getAs<types::Polynom>()->getVariableName(), poDest->getRows(), poDest->getCols(),  piRank);
 +
 +                    double *pR = poDest->getReal();
 +                    double *pI = poDest->getImg();
 +                    for (int i = 0 ; i < poDest->getSize() ; i++)
 +                    {
 +                        types::Double *pdbl = NULL;
 +                        if (poDest->isComplex())
 +                        {
 +                            pdbl = new types::Double(pR[i], pI[i]);
 +                        }
 +                        else
 +                        {
 +                            pdbl = new types::Double(pR[i]);
 +                        }
 +
 +                        poResult->getAs<types::Polynom>()->setCoef(i, pdbl);
 +                        delete pdbl;
 +                    }
 +
 +                    Polynom* pP = _poSource->getAs<types::Polynom>();
 +
 +                    for (int i = 0 ; i < pP->getRows() ; i++)
 +                    {
 +                        for (int j = 0 ; j < pP->getCols() ; j++)
 +                        {
 +                            poResult->getAs<types::Polynom>()->setCoef(iCurRow + i, iCurCol + j, _poSource->getAs<types::Polynom>()->get(i, j)->getCoef());
 +                        }
 +                    }
 +                }
 +                break;
 +            case types::GenericType::RealPoly :
 +                if (TypeSource == types::GenericType::RealDouble)
 +                {
 +                    //Add Source like coef of the new element
 +                    Double* pD = _poSource->getAs<Double>();
 +                    types::Polynom* pPolyOut = poResult->getAs<types::Polynom>();
 +
 +                    if (pD->isComplex())
 +                    {
 +                        pPolyOut->setComplex(true);
 +                        for (int i = 0 ; i < pD->getRows() ; i++)
 +                        {
 +                            for (int j = 0 ; j < pD->getCols() ; j++)
 +                            {
 +                                types::SinglePoly* pSPOut = pPolyOut->get(iCurRow + i, iCurCol + j);
 +
 +                                pSPOut->setRank(1);
 +                                double pDblR = pD->get(i, j);
 +                                double pDblI = pD->getImg(i, j);
 +                                pSPOut->setCoef(&pDblR, &pDblI);
 +                            }
 +                        }
 +                    }
 +                    else
 +                    {
 +                        for (int i = 0 ; i < pD->getRows() ; i++)
 +                        {
 +                            for (int j = 0 ; j < pD->getCols() ; j++)
 +                            {
 +                                types::SinglePoly* pSPOut = pPolyOut->get(iCurRow + i, iCurCol + j);
 +
 +                                pSPOut->setRank(1);
 +                                double pDbl = pD->get(i, j);
 +                                pSPOut->setCoef(&pDbl, NULL);
 +                            }
 +                        }
 +                    }
 +                }
 +                break;
 +            case types::GenericType::RealSparse :
 +                if (TypeSource == types::GenericType::RealDouble)
 +                {
 +                    types::Double* poSource = _poSource->getAs<types::Double>();
 +                    types::Sparse* spResult = poResult->getAs<types::Sparse>();
 +
 +                    // Set complex the result if one of inputs is complex
 +                    if (poSource->isComplex())
 +                    {
 +                        if (spResult->isComplex() == false)
 +                        {
 +                            spResult->toComplex();
 +                        }
 +                    }
 +
 +                    // Add poSource at the end of spResult
 +                    if (spResult->isComplex())
 +                    {
 +                        if (poSource->isComplex())
 +                        {
 +                            for (int i = 0; i < poSource->getRows(); i++)
 +                            {
 +                                for (int j = 0; j < poSource->getCols(); j++)
 +                                {
 +                                    double dbl = poSource->get(i, j);
 +                                    double dblImg = poSource->getImg(i, j);
 +                                    if (dbl != 0 || dblImg != 0)
 +                                    {
 +                                        spResult->set(i + iCurRow, j + iCurCol, std::complex<double>(dbl, dblImg));
 +                                    }
 +                                }
 +                            }
 +                        }
 +                        else
 +                        {
 +                            for (int i = 0; i < poSource->getRows(); i++)
 +                            {
 +                                for (int j = 0; j < poSource->getCols(); j++)
 +                                {
 +                                    double dbl = poSource->get(i, j);
 +                                    if (dbl != 0)
 +                                    {
 +                                        spResult->set(i + iCurRow, j + iCurCol, std::complex<double>(dbl, 0));
 +                                    }
 +                                }
 +                            }
 +                        }
 +                    }
 +                    else
 +                    {
 +                        for (int i = 0; i < poSource->getRows(); i++)
 +                        {
 +                            for (int j = 0; j < poSource->getCols(); j++)
 +                            {
 +                                double dbl = poSource->get(i, j);
 +                                if (dbl != 0)
 +                                {
 +                                    spResult->set(i + iCurRow, j + iCurCol, dbl);
 +                                }
 +                            }
 +                        }
 +                    }
 +                }
 +                break;
 +            case types::GenericType::RealSparseBool :
 +                if (TypeSource == types::GenericType::RealBool)
 +                {
 +                    types::Bool* poSource = _poSource->getAs<types::Bool>();
 +                    types::SparseBool* spResult = poResult->getAs<types::SparseBool>();
 +
 +                    // Add poSource at the end of spResult
 +                    for (int i = 0; i < poSource->getRows(); i++)
 +                    {
 +                        for (int j = 0; j < poSource->getCols(); j++)
 +                        {
-                             bool bValue = poSource->get(i, j);
++                            bool bValue = poSource->get(i, j) == 1;
 +                            if (bValue)
 +                            {
 +                                spResult->set(i + iCurRow, j + iCurCol, true);
 +                            }
 +                        }
 +                    }
 +                }
 +                break;
 +            default:
 +                break;
 +        }
 +        return poResult;
 +    }
 +    else
 +    {
 +        //Just add the new value in the current item
 +        switch (TypeDest)
 +        {
 +            case types::GenericType::RealDouble :
 +                ((Double*)poResult)->append(iCurRow, iCurCol, (Double*)_poSource);
 +                break;
 +            case types::GenericType::RealPoly :
 +                poResult->getAs<types::Polynom>()->append(iCurRow, iCurCol, _poSource->getAs<types::Polynom>());
 +                break;
 +            case types::GenericType::RealBool:
 +                poResult->getAs<types::Bool>()->append(iCurRow, iCurCol, _poSource->getAs<types::Bool>());
 +                break;
 +            case types::GenericType::RealInt8 :
 +                poResult->getAs<types::Int8>()->append(iCurRow, iCurCol, _poSource->getAs<types::Int8>());
 +                break;
 +            case types::GenericType::RealUInt8 :
 +                poResult->getAs<types::UInt8>()->append(iCurRow, iCurCol, _poSource->getAs<types::UInt8>());
 +                break;
 +            case types::GenericType::RealInt16 :
 +                poResult->getAs<types::Int16>()->append(iCurRow, iCurCol, _poSource->getAs<types::Int16>());
 +                break;
 +            case types::GenericType::RealUInt16 :
 +                poResult->getAs<types::UInt16>()->append(iCurRow, iCurCol, _poSource->getAs<types::UInt16>());
 +                break;
 +            case types::GenericType::RealInt32 :
 +                poResult->getAs<types::Int32>()->append(iCurRow, iCurCol, _poSource->getAs<types::Int32>());
 +                break;
 +            case types::GenericType::RealUInt32 :
 +                poResult->getAs<types::UInt32>()->append(iCurRow, iCurCol, _poSource->getAs<types::UInt32>());
 +                break;
 +            case types::GenericType::RealInt64 :
 +                poResult->getAs<types::Int64>()->append(iCurRow, iCurCol, _poSource->getAs<types::Int64>());
 +                break;
 +            case types::GenericType::RealUInt64 :
 +                poResult->getAs<types::UInt64>()->append(iCurRow, iCurCol, _poSource->getAs<types::UInt64>());
 +                break;
 +            case types::GenericType::RealSparse :
 +                poResult->getAs<types::Sparse>()->append(iCurRow, iCurCol, _poSource->getAs<types::Sparse>());
 +                break;
 +            case types::GenericType::RealSparseBool :
 +                poResult->getAs<types::SparseBool>()->append(iCurRow, iCurCol, _poSource->getAs<types::SparseBool>());
 +                break;
 +            case types::GenericType::RealString :
 +            {
 +                types::String* pSource = _poSource->getAs<types::String>();
 +                poResult->getAs<types::String>()->append(iCurRow, iCurCol, pSource);
 +            }
 +            break;
 +            case types::GenericType::RealImplicitList :
 +            {
 +                if (_poSource->getAs<ImplicitList>()->getStartType() == types::InternalType::RealPoly)
 +                {
 +                    poResult->getAs<ImplicitList>()->setStart(_poSource->getAs<ImplicitList>()->getStart());
 +                }
 +                else
 +                {
 +                    poResult->getAs<ImplicitList>()->setStart(_poSource->getAs<ImplicitList>()->getStart());
 +                }
 +
 +                if (_poSource->getAs<ImplicitList>()->getStepType() == types::InternalType::RealPoly)
 +                {
 +                    poResult->getAs<ImplicitList>()->setStep(_poSource->getAs<ImplicitList>()->getStep());
 +                }
 +                else
 +                {
 +                    poResult->getAs<ImplicitList>()->setStep(_poSource->getAs<ImplicitList>()->getStep());
 +                }
 +
 +                if (_poSource->getAs<ImplicitList>()->getEndType() == types::InternalType::RealPoly)
 +                {
 +                    poResult->getAs<ImplicitList>()->setEnd(_poSource->getAs<ImplicitList>()->getEnd());
 +                }
 +                else
 +                {
 +                    poResult->getAs<ImplicitList>()->setEnd(_poSource->getAs<ImplicitList>()->getEnd());
 +                }
 +                break;
 +            }
 +            case types::GenericType::RealHandle :
 +                poResult->getAs<types::GraphicHandle>()->append(iCurRow, iCurCol, _poSource->getAs<types::GraphicHandle>());
 +                break;
 +            default:
 +                break;
 +        }
 +        return poResult;
 +    }
 +    return NULL;
 +}
 +
 +const std::wstring* getStructNameFromExp(const Exp* _pExp)
 +{
 +    const FieldExp* pField =  dynamic_cast<const FieldExp*>(_pExp);
 +    const SimpleVar* pVar =  dynamic_cast<const SimpleVar*>(_pExp);
 +    const CallExp* pCall =  dynamic_cast<const CallExp*>(_pExp);
 +
 +    if (pField)
 +    {
 +        return getStructNameFromExp(pField->head_get());
 +    }
 +    else if (pVar)
 +    {
 +        return &(pVar->name_get().name_get());
 +    }
 +    else if (pCall)
 +    {
 +        return getStructNameFromExp(&(pCall->name_get()));
 +    }
 +    else
 +    {
 +        std::wostringstream os;
 +        os << _W("Unknow expression");
 +        //os << ((Location)e.right_exp_get().location_get()).location_getString() << std::endl;
 +        throw ScilabError(os.str(), 999, _pExp->location_get());
 +    }
 +    return NULL;
 +}
 +
 +bool getStructFromExp(const Exp* _pExp, types::InternalType** _pMain, types::InternalType** _pCurrent, typed_list** _pArgs, types::InternalType* _pIT)
 +{
 +    const FieldExp* pField      = dynamic_cast<const FieldExp*>(_pExp);
 +    const SimpleVar* pVar       = dynamic_cast<const SimpleVar*>(_pExp);
 +    const CallExp* pCall        = dynamic_cast<const CallExp*>(_pExp);
 +    const CellCallExp* pCell    = dynamic_cast<const CellCallExp*>(_pExp);
 +
 +    if (pField)
 +    {
 +        //y.x
 +
 +        //evaluate head "y"
 +        typed_list *pArgs       = NULL;
 +        InternalType* pMain     = *_pMain;
 +        InternalType* pCurrent  = *_pCurrent;
 +
 +        bool bOK = getStructFromExp(pField->head_get(), &pMain, &pCurrent, &pArgs, NULL);
 +        if (bOK)
 +        {
 +            pVar    = dynamic_cast<const SimpleVar*>(pField->tail_get());
 +
 +            if (pCurrent->isStruct())
 +            {
 +                Struct* pCurStr = pCurrent->getAs<Struct>();
 +                //clone _pIT BEFORE addField in case of st.b = st
 +                types::InternalType* pIT = _pIT ? _pIT->clone() : NULL;
 +
 +                //create field "x"
 +                std::wstring var = pVar->name_get().name_get();
 +                bool bOK = pCurStr->addField(pVar->name_get().name_get());
 +                if (*_pMain == NULL && _pIT != NULL)
 +                {
 +                    //first stack, assign value to field and return main structure
 +
 +                    if (pArgs != NULL && pArgs->size() != 0)
 +                    {
 +                        //args returned by "parent"
 +                        std::wstring var = pVar->name_get().name_get();
 +                        //be careful, extract functions copy values
 +
 +                        Struct *pStr = pCurStr->extractWithoutClone(pArgs)->getAs<Struct>();
 +                        pStr->setCloneInCopyValue(false);
 +                        SingleStruct* pSS = pStr->get(0);
 +                        pSS->set(pVar->name_get().name_get(), pIT);
 +                        pSS->IncreaseRef();
 +                        delete pStr;
 +                        pSS->DecreaseRef();
 +                    }
 +                    else if (_pArgs == NULL || *_pArgs == NULL)
 +                    {
 +                        std::wstring var = pVar->name_get().name_get();
 +                        //std::wcout << var << L" <- " << pIT->getTypeStr() << std::endl;
 +                        pCurStr->get(0)->set(pVar->name_get().name_get(), pIT);
 +                    }
 +                    else
 +                    {
 +                        Struct* pStr = new Struct(1, 1);
 +                        std::wstring var = pVar->name_get().name_get();
 +                        pStr->addField(pVar->name_get().name_get());
 +                        pStr->get(0)->set(pVar->name_get().name_get(), pIT);
 +                        pCurStr->insertWithoutClone(*_pArgs, pStr->get(0));
 +                        delete pStr;
 +                    }
 +                }
 +                else
 +                {
 +                    //y.x.w
 +                    //in this case, we are in the middle of expression
 +                    //we know that "x" is a struct but we can't assign value yet
 +                    //so assign empty struct and return new pCurrent
 +                    Struct* pStr = NULL;
 +
 +                    /*try to extract field*/
 +                    if (pArgs == NULL)
 +                    {
 +                        //without extract argument
 +                        pStr = pCurStr->get(0)->get(pVar->name_get().name_get())->getAs<Struct>();
 +                    }
 +                    else
 +                    {
 +                        Struct* pStepStr = pCurStr->extractWithoutClone(pArgs)->getAs<Struct>();
 +                        pStepStr->setCloneInCopyValue(false);
 +                        SingleStruct* pSS = pStepStr->get(0);
 +                        pStr = pSS->get(pVar->name_get().name_get())->getAs<Struct>();
 +                        //we can delete pStepStr without deleted its fields
 +                        pSS->IncreaseRef();
 +                        delete pStepStr;
 +                        pSS->DecreaseRef();
 +                    }
 +
 +                    if (pStr == NULL)
 +                    {
 +                        //new field or not struct field
 +                        if (_pArgs == NULL || *_pArgs == NULL)
 +                        {
 +                            pStr = new Struct(1, 1);
 +                        }
 +                        else
 +                        {
 +                            Struct* p = new Struct(1, 1);
 +                            pStr = Struct::insertNew(*_pArgs, p)->getAs<Struct>();
 +                            delete p;
 +                        }
 +
 +                        if (pArgs != NULL)
 +                        {
 +                            std::wstring var = pVar->name_get().name_get();
 +
 +                            Struct* pStepStr = pCurStr->extractWithoutClone(pArgs)->getAs<Struct>();
 +                            pStepStr->setCloneInCopyValue(false);
 +                            SingleStruct* pSS = pStepStr->get(0);
 +                            pSS->set(pVar->name_get().name_get(), pStr);
 +                            pSS->IncreaseRef();
 +                            delete pStepStr;
 +                            pSS->DecreaseRef();
 +                        }
 +                        else
 +                        {
 +                            std::wstring var = pVar->name_get().name_get();
 +                            pCurStr->get(0)->set(pVar->name_get().name_get(), pStr);
 +                        }
 +                    }
 +
 +                    pCurrent = pStr;
 +                }
 +
 +                *_pMain = pMain;
 +                *_pCurrent = pCurrent;
 +            }
 +            else //handle
 +            {
 +                String* pTail = new String(pVar->name_get().name_get().c_str());
 +                if (_pArgs != NULL && *_pArgs == NULL)
 +                {
 +                    *_pArgs = new typed_list;
 +                    pArgs = *_pArgs;
 +                }
 +                else if (pArgs == NULL)
 +                {
 +                    pArgs = new typed_list;
 +                }
 +
 +                if (pArgs)
 +                {
 +                    pArgs->push_back(pTail);
 +                    if (_pIT == NULL)
 +                    {
 +                        //let caller work
 +
 +                        //try to extract, if extract work, clear args and flag we need set operation after.
 +                        GraphicHandle* pCurH = pCurrent->getAs<GraphicHandle>();
 +                        typed_list in;
 +                        typed_list out;
 +                        optional_list opt;
 +                        ExecVisitor exec;
 +
 +                        if (pArgs->size() == 1)
 +                        {
 +                            in.push_back((*pArgs)[0]);
 +                        }
 +                        else
 +                        {
 +                            List* pList = new List();
 +                            for (int i = 0 ; i < pArgs->size() ; i++)
 +                            {
 +                                pList->append((*pArgs)[i]);
 +                            }
 +                            in.push_back(pList);
 +                        }
 +
 +                        in.push_back(pCurrent);
 +                        in.front()->IncreaseRef();
 +                        pCurrent->IncreaseRef();
 +
 +                        Function* pCall = (Function*)symbol::Context::getInstance()->get(symbol::Symbol(L"%h_e"));
 +                        Callable::ReturnValue ret =  pCall->call(in, opt, 1, out, &exec);
 +
 +                        in.front()->DecreaseRef();
 +                        pCurrent->DecreaseRef();
 +
 +                        if (in.front()->isList())
 +                        {
 +                            //delete pList
 +                            delete in.front();
 +                        }
 +
 +                        if (ret != Callable::OK)
 +                        {
 +                            std::wostringstream os;
 +                            os << _W("unable to update handle");
 +                            throw ScilabError(os.str(), 999, pField->location_get());
 +                        }
 +
 +                        if (out[0]->isHandle() || out[0]->isStruct())
 +                        {
 +                            *_pCurrent = out[0];
 +                            (*_pCurrent)->IncreaseRef();
 +
 +                            //clean *_pArgs to do nt extract previons fields
 +                            if (_pArgs && *_pArgs)
 +                            {
 +                                (*_pArgs)->clear();
 +                            }
 +
 +                        }
 +                        else
 +                        {
 +                            *_pCurrent = pCurrent;
 +                        }
 +
 +                        *_pMain = pMain;
 +                        return true;
 +                    }
 +
 +                    //call %x_i_h
 +                    GraphicHandle* pCurH = pCurrent->getAs<GraphicHandle>();
 +                    typed_list in;
 +                    typed_list out;
 +                    optional_list opt;
 +                    ExecVisitor exec;
 +
 +
 +                    if (pArgs->size() == 1)
 +                    {
 +                        in.push_back((*pArgs)[0]);
 +                    }
 +                    else
 +                    {
 +                        List* pList = new List();
 +                        for (int i = 0 ; i < pArgs->size() ; i++)
 +                        {
 +                            pList->append((*pArgs)[i]);
 +                        }
 +                        in.push_back(pList);
 +                    }
 +
 +                    std::wstring str = L"%" + _pIT->getShortTypeStr() + L"_i_h";
 +
 +                    in.push_back(_pIT);
 +                    in.push_back(pCurrent);
 +                    in.front()->IncreaseRef();
 +                    _pIT->IncreaseRef();
 +                    pCurrent->IncreaseRef();
 +
 +                    Function* pCall = (Function*)symbol::Context::getInstance()->get(symbol::Symbol(str));
 +                    Callable::ReturnValue ret =  pCall->call(in, opt, 1, out, &exec);
 +                    in.front()->DecreaseRef();
 +                    //_pIT->DecreaseRef();
 +                    pCurrent->DecreaseRef();
 +
 +                    if (in.front()->isList())
 +                    {
 +                        //delete pList
 +                        delete in.front();
 +                    }
 +
 +                    if (ret != Callable::OK)
 +                    {
 +                        std::wostringstream os;
 +                        os << _W("unable to update handle");
 +                        throw ScilabError(os.str(), 999, pField->location_get());
 +                    }
 +                }
 +                else
 +                {
 +                    std::wostringstream os;
 +                    os << _W("impossible !");
 +                    throw ScilabError(os.str(), 999, pField->location_get());
 +                }
 +
 +            }
 +
 +
 +            //clean pArgs return by getStructFromExp
 +            for (int iArg = 0 ; pArgs != NULL && iArg < pArgs->size() ; iArg++)
 +            {
 +                if ((*pArgs)[iArg]->isDeletable())
 +                {
 +                    delete (*pArgs)[iArg];
 +                }
 +            }
 +            delete pArgs;
 +            return true;
 +        }
 +        else
 +        {
 +            return false;
 +        }
 +    }
 +    else if (pVar)
 +    {
 +        //a.x : with x not only a SimpleVar
 +        types::InternalType *pStr = NULL;
 +        types::InternalType *pIT = symbol::Context::getInstance()->get(pVar->name_get());
 +        if (pIT == NULL ||
 +                (   pIT->isStruct() == false &&
 +                    pIT->isHandle() == false &&
 +                    pIT->isMList() == false &&
 +                    pIT->isTList() == false))
 +        {
 +            //"a" doest not exist or it is another type, create it with size 1,1 and return it
 +            //create new structure variable
 +            if (_pArgs == NULL || *_pArgs == NULL)
 +            {
 +                pStr = new types::Struct(1, 1);
 +            }
 +            else
 +            {
 +                if ((**_pArgs)[0]->isString())
 +                {
 +                    pStr = new types::Struct(1, 1);
 +                }
 +                else
 +                {
 +                    Struct* p = new Struct(1, 1);
 +                    pStr = Struct::insertNew(*_pArgs, p)->getAs<Struct>();
 +                    delete p;
 +                }
 +            }
 +            //Add variable to scope
 +            symbol::Context::getInstance()->put(pVar->name_get(), *pStr);
 +        }
 +        else if (pIT->isHandle() || pIT->isStruct())
 +        {
 +            pStr = pIT;
 +        }
 +        else
 +        {
 +            //TList or MList, work will be done outside
 +            return false;
 +        }
 +
 +        if (*_pMain == NULL)
 +        {
 +            *_pMain = pStr;
 +        }
 +        *_pCurrent = pStr;
 +        return true;
 +    }
 +    else if (pCall)
 +    {
 +        //a(x,y)
 +        ExecVisitor execMe;
 +        InternalType* pCurrent = NULL;
 +
 +        typed_list *pCurrentArgs = execMe.GetArgumentList(pCall->args_get());
 +        typed_list *pReturnedArgs = NULL;
 +
 +        //Struct* pStruct = Struct::insertNew(pArgs, new Struct(1,1))->getAs<Struct>();
 +        if (*_pMain == NULL)
 +        {
 +            //a is the new main but can be a complex expression
 +            //bool bOK = getStructFromExp(&pCall->name_get(), _pMain, &pCurrent, &pArgs, pStruct);
 +            bool bOK = getStructFromExp(&pCall->name_get(), _pMain, &pCurrent, &pReturnedArgs, NULL);
 +            if (bOK == false)
 +            {
 +                return false;
 +            }
 +
 +            if ((*pCurrentArgs)[0]->isString())
 +            {
 +                String* pS = (*pCurrentArgs)[0]->getAs<String>();
 +                if (pCurrentArgs->size() != 1 || pS->isScalar() == false)
 +                {
 +                    //manage error
 +                    std::wostringstream os;
 +                    os << _W("Invalid Index.\n");
 +                    throw ScilabError(os.str(), 999, (*(pCall->args_get().begin()))->location_get());
 +                }
 +
 +                wchar_t* pFieldName = pS->get(0);
 +
 +
 +                if (pCurrent->isStruct())
 +                {
 +                    Struct* pStr = NULL;
 +                    Struct *pCurStr = pCurrent->getAs<Struct>();
 +                    if (pReturnedArgs && (*pReturnedArgs)[0]->isString() == false)
 +                    {
 +                        pStr = pCurStr->extractWithoutClone(pReturnedArgs)->getAs<Struct>();
 +                        pStr->setCloneInCopyValue(false);
 +                    }
 +                    else
 +                    {
 +                        pStr = pCurStr;
 +                    }
 +
 +                    SingleStruct* pSS = pStr->get(0);
 +
 +                    //check if field already exists
 +                    if (pStr->exists(pFieldName))
 +                    {
 +                        InternalType* pField = pSS->get(pFieldName);
 +                        if (pField->isStruct())
 +                        {
 +                            pStr = pField->getAs<Struct>();
 +                        }
 +                        else
 +                        {
 +                            //erase previous value by a struct(1,1)
 +                            pSS->set(pFieldName, new Struct(1, 1));
 +                            pStr = pSS->get(pFieldName)->getAs<Struct>();
 +                        }
 +                    }
 +                    else
 +                    {
 +                        //field does not exist
 +                        pCurStr->addField(pFieldName);
 +                        pSS->set(pFieldName, new Struct(1, 1));
 +                        pCurrent = pSS->get(pFieldName);
 +                    }
 +
 +                    if (pReturnedArgs && (*pReturnedArgs)[0]->isString() == false)
 +                    {
 +                        pSS->IncreaseRef();
 +                        delete pStr;
 +                        pSS->DecreaseRef();
 +
 +                        //clean pReturnedArgs return by GetArgumentList
 +                        for (int iArg = 0 ; iArg < pReturnedArgs->size() ; iArg++)
 +                        {
 +                            if ((*pReturnedArgs)[iArg]->isDeletable())
 +                            {
 +                                delete (*pReturnedArgs)[iArg];
 +                            }
 +                        }
 +                        delete pReturnedArgs;
 +                    }
 +                }
 +                else
 +                {
 +                    //handle
 +                    GraphicHandle* pCurH = pCurrent->getAs<GraphicHandle>();
 +                }
 +            }
 +            else
 +            {
 +                /*try to extract sub struct, if it fails, resize the struct and try again*/
 +                if (pCurrent->isStruct())
 +                {
 +                    Struct* pCurStr = pCurrent->getAs<Struct>();
 +                    InternalType* pIT = pCurStr->extract(pCurrentArgs);
 +                    if (pIT == NULL)
 +                    {
 +                        //fail to extract, pCurrent is not enough big, resize it !
 +                        Struct* p = new Struct(1, 1);
 +                        pCurStr->insert(pCurrentArgs, p); //insert empty struct, caller will assign the good value
 +                        delete p;
 +                    }
 +                    else
 +                    {
 +                        delete pIT;
 +                    }
 +
 +                    *_pArgs = pCurrentArgs;
 +                }
 +                else
 +                {
 +                    //handle
 +                    GraphicHandle* pCurH = pCurrent->getAs<GraphicHandle>();
 +                    InternalType* pIT = pCurH->extract(pCurrentArgs);
 +                    if (pIT == NULL)
 +                    {
 +                        //manage error
 +                        std::wostringstream os;
 +                        os << _W("Invalid Index.\n");
 +                        throw ScilabError(os.str(), 999, (*(pCall->args_get().begin()))->location_get());
 +                    }
 +                    else
 +                    {
 +                        delete pIT;
 +                    }
 +
 +                    *_pArgs = pCurrentArgs;
 +                }
 +            }
 +        }
 +        else
 +        {
 +            //we have a parent, so assign "a" to this parent
 +            //(*_pMain)->set(0, pStruct->get(0));
 +        }
 +        *_pCurrent = pCurrent;
 +        return true;
 +    }
 +    else if (pCell)
 +    {
 +    }
 +    else
 +    {
 +        std::wostringstream os;
 +        os << _W("Unknown expression");
 +        //os << ((Location)e.right_exp_get().location_get()).location_getString() << std::endl;
 +        throw ScilabError(os.str(), 999, _pExp->location_get());
 +    }
 +    return false;
 +}
 +
 +void callOnPrompt(void)
 +{
 +    types::InternalType* pOnPrompt = NULL;
 +    pOnPrompt = symbol::Context::getInstance()->get(symbol::Symbol(L"%onprompt"));
 +    if (pOnPrompt != NULL && pOnPrompt->isCallable())
 +    {
 +        types::typed_list in;
 +        types::typed_list out;
 +        types::optional_list opt;
 +        ExecVisitor execCall;
 +        pOnPrompt->getAs<types::Callable>()->call(in, opt, 1, out, &execCall);
 +    }
 +}
 +
 +List* getPropertyTree(Exp* e, List* pList)
 +{
 +
 +    //a.b
 +    SimpleVar* pVar = dynamic_cast<SimpleVar*>(e);
 +    if (pVar)
 +    {
 +        pList->append(new String(pVar->name_get().name_get().c_str()));
 +        return pList;
 +    }
 +
 +    //a(x).b
 +    CallExp* pCall = dynamic_cast<CallExp*>(e);
 +    if (pCall)
 +    {
 +        pList = getPropertyTree(&pCall->name_get(), pList);
 +        ExecVisitor exec;
 +        std::list<Exp*> l = pCall->args_get();
 +        std::list<Exp*>::const_iterator it;
 +        for (it = l.begin() ; it != l.end() ; it++)
 +        {
 +            Exp* pArg = (*it);
 +            try
 +            {
 +                pArg->accept(exec);
 +                pList->append(exec.result_get());
 +                exec.result_clear();
 +            }
 +            catch (ScilabException e)
 +            {
 +                throw e;
 +            }
 +        }
 +
 +        return pList;
 +    }
 +
 +    //a.b.c
 +    FieldExp* pField = dynamic_cast<FieldExp*>(e);
 +    if (pField)
 +    {
 +        pList = getPropertyTree(pField->head_get(), pList);
 +        pList = getPropertyTree(pField->tail_get(), pList);
 +        return pList;
 +    }
 +
 +    return pList;
 +}
index 7465d35,0000000..5640b0a
mode 100644,000000..100644
--- /dev/null
@@@ -1,211 -1,0 +1,211 @@@
 +/*
 +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 +* Copyright (C) 2012 - DIGITEO - Antoine ELIAS
 +*
 +* This file must be used under the terms of the CeCILL.
 +* This source file is licensed as described in the file COPYING, which
 +* you should have received as part of this distribution.  The terms
 +* are also available at
 +* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 +*
 +*/
 +/*--------------------------------------------------------------------------*/
 +
 +#include "boolean_gw.hxx"
 +#include "function.hxx"
 +#include "double.hxx"
 +#include "string.hxx"
 +#include "bool.hxx"
 +#include "sparse.hxx"
 +#include "overload.hxx"
 +#include "execvisitor.hxx"
 +
 +extern "C"
 +{
 +#include "localization.h"
 +#include "Scierror.h"
 +}
 +
 +static void getCoordFromIndex(int _iIndex, int* _piIndexes, int* _piDims, int _iDims);
 +/*--------------------------------------------------------------------------*/
 +types::Function::ReturnValue sci_find(types::typed_list &in, int _iRetCount, types::typed_list &out)
 +{
 +    int iMax = -1;
 +    if(in.size() > 2)
 +    {
 +        Scierror(77, _("%s: Wrong number of input argument(s): %d to %d expected.\n"), "find", 1, 2);
 +        return types::Function::Error;
 +    }
 +
 +    if(in.size() == 2)
 +    {
 +        if(in[1]->isDouble() == false || in[1]->getAs<types::Double>()->isScalar() == false || in[1]->getAs<types::Double>()->get(0) <= 0)
 +        {
 +            Scierror(999, _("%s:  Wrong type for input argument #%d: Scalar positive integer expected.\n"), "find", 2);
 +            return types::Function::Error;
 +        }
 +
-         iMax = in[1]->getAs<types::Double>()->get(0);
++        iMax = (int)in[1]->getAs<types::Double>()->get(0);
 +    }
 +
 +    int* piIndex = 0;
 +    int iValues = 0;
 +
 +    types::GenericType* pGT = in[0]->getAs<types::GenericType>();
 +    if(in[0]->isGenericType())
 +    {
 +        piIndex = new int[pGT->getSize()];
 +    }
 +
 +    if(in[0]->isBool())
 +    {
 +        types::Bool* pB = in[0]->getAs<types::Bool>();
 +        for(int i = 0 ; (iMax == -1 || iValues < iMax) && i < pB->getSize() ; i++)
 +        {
 +            if(pB->get(i))
 +            {
 +                piIndex[iValues] = i;
 +                iValues++;
 +            }
 +        }
 +    }
 +    else if(in[0]->isDouble())
 +    {
 +        types::Double* pD = in[0]->getAs<types::Double>();
 +        for(int i = 0 ; (iMax == -1 || iValues < iMax) && i < pD->getSize() ; i++)
 +        {
 +            if(pD->get(i))
 +            {
 +                piIndex[iValues] = i;
 +                iValues++;
 +            }
 +        }
 +    }
 +    else if(in[0]->isSparse())
 +    {
 +        types::Sparse* pSP = in[0]->getAs<types::Sparse>();
-         int iNNZ = pSP->nonZeros();
++        int iNNZ = (int)pSP->nonZeros();
 +        int iRows = pSP->getRows();
 +        double* pRows = new double[iNNZ * 2];
 +        
 +        pSP->outputRowCol(pRows);
 +        double *pCols = pRows + iNNZ;
 +
 +        for(int i = 0 ; (iMax == -1 || iValues < iMax) && i < iNNZ ; i++)
 +        {
-             piIndex[iValues] = (pCols[i]-1) * iRows + (pRows[i]-1);
++            piIndex[iValues] = ((int)pCols[i]-1) * iRows + ((int)pRows[i]-1);
 +            iValues++;
 +        }
 +    }
 +    else if(in[0]->isSparseBool())
 +    {
 +        types::SparseBool* pSB = in[0]->getAs<types::SparseBool>();
-         int iNNZ = pSB->nbTrue();
++        int iNNZ = (int)pSB->nbTrue();
 +        int iRows = pSB->getRows();
 +        double* pRows = new double[iNNZ * 2];
 +        
 +        pSB->outputRowCol(pRows);
 +        double *pCols = pRows + iNNZ;
 +
 +        for(int i = 0 ; (iMax == -1 || iValues < iMax) && i < iNNZ ; i++)
 +        {
-             piIndex[iValues] = (pCols[i]-1) * iRows + (pRows[i]-1);
++            piIndex[iValues] = ((int)pCols[i]-1) * iRows + ((int)pRows[i]-1);
 +            iValues++;
 +        }
 +    }
 +    else
 +    {//call overload for other types
 +        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_find";
 +        Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
 +        return Function::OK;
 +    }
 +
 +    if(iValues == 0)
 +    {
 +        for(int i = 0 ; i < _iRetCount ; i++)
 +        {
 +            out.push_back(Double::Empty());
 +        }
 +    }
 +    else
 +    {
 +        int* piRefDims = pGT->getDimsArray();
 +        int iRefDims = pGT->getDims();
 +
 +        int* piDims = new int[_iRetCount];
 +        int iDims = _iRetCount;
 +
 +        if(iDims == iRefDims)
 +        {
 +            for(int i = 0 ; i < iRefDims ; i++)
 +            {
 +                piDims[i] = piRefDims[i];
 +            }
 +        }
 +        else if(iDims > iRefDims)
 +        {
 +            for(int i = 0 ; i < iRefDims ; i++)
 +            {
 +                piDims[i] = piRefDims[i];
 +            }
 +
 +            for(int i = iRefDims ; i < iDims ; i++)
 +            {
 +                piDims[i] = 1;
 +            }
 +        }
 +        else //iDims < iRefDims
 +        {
 +            for(int i = 0 ; i < iDims - 1 ; i++)
 +            {
 +                piDims[i] = piRefDims[i];
 +            }
 +
 +            piDims[iDims - 1] = 1;
 +            for(int i = iDims - 1 ; i < iRefDims ; i++)
 +            {
 +                piDims[iDims - 1] *= piRefDims[i];
 +            }
 +        }
 +
 +        int** piCoord = new int*[iValues];
 +        for(int i = 0 ; i < iValues ; i++)
 +        {
 +            piCoord[i] = new int[_iRetCount];
 +        }
 +
 +        for(int i = 0 ; i < iValues ; i++)
 +        {
 +            getCoordFromIndex(piIndex[i], piCoord[i], piDims, iDims);
 +        }
 +
 +        for(int i = 0 ; i < _iRetCount ; i++)
 +        {
 +            types::Double* pOut = new Double(1, iValues);
 +            for(int j = 0 ; j < iValues ; j++)
 +            {
 +                pOut->set(j, piCoord[j][i] + 1);
 +            }
 +            out.push_back(pOut);
 +        }
 +
 +        delete piDims;
 +        for(int i = 0 ; i < iValues ; i++)
 +        {
 +            delete piCoord[i];
 +        }
 +        delete piCoord;
 +    }
 +    return types::Function::OK;
 +}
 +
 +static void getCoordFromIndex(int _iIndex, int* _piIndexes, int* _piDims, int _iDims)
 +{
 +    int iMul = 1;
 +    for(int i = 0 ; i < _iDims ; i++)
 +    {
 +        _piIndexes[i] = (int)(_iIndex / iMul) % _piDims[i];
 +        iMul *= _piDims[i];
 +    }
 +}
 +/*--------------------------------------------------------------------------*/
@@@ -1132,10 -1132,17 +1132,17 @@@ static int PauseByIds(char *fname, void
      int dIDs_size = 0;
      int ierr = 0;
  
 -    dIDs = getInputArgumentOneIDs(fname, &dIDs_size, &ierr);
 +    dIDs = getInputArgumentOneIDs(fname, pvApiCtx, &dIDs_size, &ierr);
-     if (ierr) return 0;
+     if (ierr == 2)
+     {
+         // diary([],"pause")
+         diaryPauseAll();
+         PutLhsVar();
+         return 0;
+     }
+     else if (ierr) return 0;
  
 -    ierr = checkExistByIDs(fname, dIDs, dIDs_size);
 +    ierr = checkExistByIDs(fname, pvApiCtx, dIDs, dIDs_size);
      if (ierr) return 0;
  
      for (int i = 0; i < dIDs_size; i++)
@@@ -1190,10 -1197,17 +1197,17 @@@ static int ResumeByIds(char *fname, voi
      int dIDs_size = 0;
      int ierr = 0;
  
 -    dIDs = getInputArgumentOneIDs(fname, &dIDs_size, &ierr);
 +    dIDs = getInputArgumentOneIDs(fname, pvApiCtx, &dIDs_size, &ierr);
-     if (ierr) return 0;
+     if (ierr == 2)
+     {
+         //diary([],"resume")
+         diaryResumeAll();
+         PutLhsVar();
+         return 0;
+     }
+     else if (ierr) return 0;
  
 -    ierr = checkExistByIDs(fname, dIDs, dIDs_size);
 +    ierr = checkExistByIDs(fname, pvApiCtx, dIDs, dIDs_size);
      if (ierr) return 0;
  
      for (int i = 0; i < dIDs_size; i++)
Simple merge
@@@ -5361,11 -5870,12 +5871,14 @@@ int C2F(funnum)(char * fname
          i++;
      }
      ln = (int)strlen(fname);
 -    C2F(iislink)(fname, &loc);
 -    C2F(iislink)(fname, &loc);
 +
 +    //TODO: see in dynamic_lin how to check if a function os already link to Scilab
 +    //C2F(iislink)(fname, &loc);
 +    //C2F(iislink)(fname, &loc);
-     if (loc >= 0) return(ntabsim + (int)loc + 1);
+     if (loc >= 0)
+     {
+         return(ntabsim + (int)loc + 1);
+     }
      return(0);
  }/* funnum */
  /*--------------------------------------------------------------------------*/
@@@ -27,37 -23,12 +23,36 @@@ src/c/ripole/logger.c 
  src/c/ripole/ripole.c \
  src/c/ripole/bt-int.c
  
 +GATEWAY_CXX_SOURCES = \
 +sci_gateway/cpp/sci_xls_read.cpp \
 +sci_gateway/cpp/sci_xls_open.cpp
 +
 +libscispreadsheet_la_CPPFLAGS= \
 +-I$(srcdir)/includes/ \
 +-I$(srcdir)/src/c/ \
 +-I$(srcdir)/src/c/ripole \
 +-I$(top_srcdir)/libs/MALLOC/includes/ \
 +-I$(top_srcdir)/modules/output_stream/includes \
 +-I$(top_srcdir)/modules/api_scilab/includes \
 +-I$(top_srcdir)/modules/dynamic_link/includes \
 +-I$(top_srcdir)/modules/symbol/includes \
 +-I$(top_srcdir)/modules/ast/includes \
 +-I$(top_srcdir)/modules/threads/includes \
 +-I$(top_srcdir)/modules/operations/includes \
 +-I$(top_srcdir)/modules/system_env/includes \
 +-I$(top_srcdir)/modules/fileio/includes \
 +-I$(top_srcdir)/modules/types/includes/ \
 +-I$(top_srcdir)/modules/localization/includes/ \
 +-I$(top_srcdir)/modules/string/includes/ \
 +-I$(top_srcdir)/modules/string/src/c/ \
 +-I$(top_srcdir)/modules/io/includes/ \
 +-I$(top_srcdir)/modules/dynamic_link/includes \
 +$(AM_CPPFLAGS)
 +
  GATEWAY_C_SOURCES = \
  sci_gateway/c/gw_spreadsheet.c \
 -sci_gateway/c/sci_xls_read.c \
 -sci_gateway/c/sci_xls_open.c \
  sci_gateway/c/gw_csv_helpers.c \
  sci_gateway/c/sci_csvDefault.c \
- sci_gateway/c/sci_csvIsnum.c \
  sci_gateway/c/sci_csvRead.c \
  sci_gateway/c/sci_csvStringToDouble.c \
  sci_gateway/c/sci_csvTextScan.c \
@@@ -158,12 -154,11 +154,11 @@@ am_libscispreadsheet_algo_la_OBJECTS = 
  libscispreadsheet_algo_la_OBJECTS =  \
        $(am_libscispreadsheet_algo_la_OBJECTS)
  libscispreadsheet_la_DEPENDENCIES = libscispreadsheet-algo.la
 -am__objects_3 = libscispreadsheet_la-gw_spreadsheet.lo \
 -      libscispreadsheet_la-sci_xls_read.lo \
 -      libscispreadsheet_la-sci_xls_open.lo \
 +am__objects_3 = libscispreadsheet_la-sci_xls_read.lo \
 +      libscispreadsheet_la-sci_xls_open.lo
 +am__objects_4 = libscispreadsheet_la-gw_spreadsheet.lo \
        libscispreadsheet_la-gw_csv_helpers.lo \
        libscispreadsheet_la-sci_csvDefault.lo \
-       libscispreadsheet_la-sci_csvIsnum.lo \
        libscispreadsheet_la-sci_csvRead.lo \
        libscispreadsheet_la-sci_csvStringToDouble.lo \
        libscispreadsheet_la-sci_csvTextScan.lo \
@@@ -503,34 -485,15 +494,33 @@@ libscispreadsheet_la_CPPFLAGS = 
  -I$(srcdir)/includes/ \
  -I$(srcdir)/src/c/ \
  -I$(srcdir)/src/c/ripole \
 +-I$(top_srcdir)/libs/MALLOC/includes/ \
 +-I$(top_srcdir)/modules/output_stream/includes \
 +-I$(top_srcdir)/modules/api_scilab/includes \
 +-I$(top_srcdir)/modules/dynamic_link/includes \
 +-I$(top_srcdir)/modules/symbol/includes \
 +-I$(top_srcdir)/modules/ast/includes \
 +-I$(top_srcdir)/modules/threads/includes \
 +-I$(top_srcdir)/modules/operations/includes \
 +-I$(top_srcdir)/modules/system_env/includes \
 +-I$(top_srcdir)/modules/fileio/includes \
 +-I$(top_srcdir)/modules/types/includes/ \
  -I$(top_srcdir)/modules/localization/includes/ \
 --I$(top_srcdir)/modules/output_stream/includes/ \
 --I$(top_srcdir)/modules/io/includes/ \
 --I$(top_srcdir)/modules/string/src/c/ \
  -I$(top_srcdir)/modules/string/includes/ \
 --I$(top_srcdir)/modules/api_scilab/includes/ \
 --I$(top_srcdir)/modules/fileio/includes/ \
 +-I$(top_srcdir)/modules/string/src/c/ \
 +-I$(top_srcdir)/modules/io/includes/ \
 +-I$(top_srcdir)/modules/dynamic_link/includes \
  $(AM_CPPFLAGS)
  
 +GATEWAY_C_SOURCES = \
 +sci_gateway/c/gw_spreadsheet.c \
 +sci_gateway/c/gw_csv_helpers.c \
 +sci_gateway/c/sci_csvDefault.c \
- sci_gateway/c/sci_csvIsnum.c \
 +sci_gateway/c/sci_csvRead.c \
 +sci_gateway/c/sci_csvStringToDouble.c \
 +sci_gateway/c/sci_csvTextScan.c \
 +sci_gateway/c/sci_csvWrite.c
 +
  pkglib_LTLIBRARIES = libscispreadsheet.la
  noinst_LTLIBRARIES = libscispreadsheet-algo.la
  libscispreadsheet_algo_la_SOURCES = $(SPREADSHEET_C_SOURCES) $(RIPOLE_SOURCES)
  #define __GW_SPREADSHEET_H__
  /*--------------------------------------------------------------------------*/
  #include "dynlib_spreadsheet.h"
 +#include "c_gateway_prototype.h"
  /*--------------------------------------------------------------------------*/
 -SPREADSHEET_IMPEXP int gw_spreadsheet(void);
 -/*--------------------------------------------------------------------------*/
 -SPREADSHEET_IMPEXP int sci_xls_read(char *fname, unsigned long fname_len);
 -SPREADSHEET_IMPEXP int sci_xls_open(char *fname, unsigned long fname_len);
 -SPREADSHEET_IMPEXP int sci_csvDefault(char *fname, unsigned long fname_len);
 -SPREADSHEET_IMPEXP int sci_csvRead(char *fname, unsigned long fname_len);
 -SPREADSHEET_IMPEXP int sci_csvStringToDouble(char *fname, unsigned long fname_len);
 -SPREADSHEET_IMPEXP int sci_csvTextScan(char *fname, unsigned long fname_len);
 -SPREADSHEET_IMPEXP int sci_csvWrite(char *fname, unsigned long fname_len);
 -
 +C_GATEWAY_PROTOTYPE(sci_csvDefault);
- C_GATEWAY_PROTOTYPE(sci_csvIsnum);
 +C_GATEWAY_PROTOTYPE(sci_csvRead);
 +C_GATEWAY_PROTOTYPE(sci_csvStringToDouble);
 +C_GATEWAY_PROTOTYPE(sci_csvTextScan);
 +C_GATEWAY_PROTOTYPE(sci_csvWrite);
  /*--------------------------------------------------------------------------*/
  #endif /*  __GW_SPREADSHEET_H__ */
  /*--------------------------------------------------------------------------*/
  /*--------------------------------------------------------------------------*/
  static gw_generic_table Tab[] =
  {
 -    {sci_xls_open, "xls_open"},
 -    {sci_xls_read, "xls_read"},
 -    {sci_csvDefault, "csvDefault"},
 -    {sci_csvRead, "csvRead"},
 -    {sci_csvStringToDouble, "csvStringToDouble"},
 -    {sci_csvTextScan, "csvTextScan"},
 -    {sci_csvWrite, "csvWrite"},
 -    {sci_csvWrite, "write_csv"},
 -    {sci_csvRead, "read_csv"}
 +    {NULL, ""}, // "xls_open"
 +    {NULL, ""}, // "xls_read"
 +    {NULL, ""}, // "csvDefault"
-     {NULL, ""}, // "csvIsnum"
 +    {NULL, ""}, // "csvRead"
 +    {NULL, ""}, // "csvStringToDouble"
 +    {NULL, ""}, // "csvTextScan"
 +    {NULL, ""}, // "csvWrite"
 +    {NULL, ""}, // "write_csv"
 +    {NULL, ""} // "read_csv"
  };
  /*--------------------------------------------------------------------------*/
  int gw_spreadsheet(void)
  #include "freeArrayOfString.h"
  #include "MALLOC.h"
  #include "csvRead.h"
 -#ifdef _MSC_VER
 -#include "strdup_windows.h"
 -#endif
  #include "stringToComplex.h"
  #include "csvDefault.h"
- #include "csv_complex.h"
+ #include "complex_array.h"
  #include "gw_csv_helpers.h"
  #include "getRange.h"
 +#include "os_strdup.h"
  
 -static void releaseObjects(csvResult *result, char *filename, char *conversion);
  
 +static void releaseObjects(csvResult *result, char *filename, char *conversion);
  /* ==================================================================== */
  #define CONVTOSTR "string"
  #define CONVTODOUBLE "double"
  #include "stringToComplex.h"
  #include "csvDefault.h"
  #include "gw_csv_helpers.h"
- #include "csv_complex.h"
+ #include "complex_array.h"
  
  // =============================================================================
 -int sci_csvStringToDouble(char *fname, unsigned long fname_len)
 +int sci_csvStringToDouble(char *fname, void* pvApiCtx)
  {
      SciErr sciErr;
      int iErr = 0;
@@@ -1,32 -1,41 +1,31 @@@
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 -
 +<!DOCTYPE module SYSTEM "../../functions/xml/gateway.dtd">
  <!--
 - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 - * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr>
 +/*
 + *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 + *  Copyright (C) 2011 - DIGITEO - Cedric DELAMARRE
   *
 - * This file must be used under the terms of the CeCILL.
 - * This source file is licensed as described in the file COPYING, which
 - * you should have received as part of this distribution.  The terms
 - * are also available at
 - * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 + *  This file must be used under the terms of the CeCILL.
 + *  This source file is licensed as described in the file COPYING, which
 + *  you should have received as part of this distribution.  The terms
 + *  are also available at
 + *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
   *
 - -->
 -
 -<!--
 - Scilab Interface description. In this file, we define the list of the function which
 + */
 + Scilab
 + Interface description. In this file, we define the list of the function which
   will be available into Scilab and the link to the "native" function.
  
 - gatewayId is the position in the hashtable 'Interfaces' defined in the
 - file SCI/modules/core/src/c/callinterf.h
 -
 - primitiveId is the position in the hashtable '<module>Table Tab[]' defined
 - in the file modules/<module>/sci_gateway/c/gw_<module>.c
 -
 - primitiveName is the name of the Scilab function
 -
   Don't touch if you do not know what you are doing
  -->
 -
 -<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd">
 -<GATEWAY name="spreadsheet">
 -    <PRIMITIVE gatewayId="56" primitiveId="1" primitiveName="xls_open" />
 -    <PRIMITIVE gatewayId="56" primitiveId="2" primitiveName="xls_read" />
 -    <PRIMITIVE gatewayId="56" primitiveId="3" primitiveName="csvDefault" />
 -    <PRIMITIVE gatewayId="56" primitiveId="4" primitiveName="csvRead" />
 -    <PRIMITIVE gatewayId="56" primitiveId="5" primitiveName="csvStringToDouble" />
 -    <PRIMITIVE gatewayId="56" primitiveId="6" primitiveName="csvTextScan" />
 -    <PRIMITIVE gatewayId="56" primitiveId="7" primitiveName="csvWrite" />
 -    <PRIMITIVE gatewayId="56" primitiveId="8" primitiveName="write_csv" />
 -    <PRIMITIVE gatewayId="56" primitiveId="9" primitiveName="read_csv" />
 -</GATEWAY>
 +<module name="spreadsheet">
 +    <gateway name="sci_xls_open"            function="xls_open"             type="1" />
 +    <gateway name="sci_xls_read"            function="xls_read"             type="1" />
 +    <gateway name="sci_csvDefault"          function="csvDefault"           type="0" />
-     <gateway name="sci_csvIsnum"            function="csvIsnum"             type="0" />
 +    <gateway name="sci_csvRead"             function="csvRead"              type="0" />
 +    <gateway name="sci_csvStringToDouble"   function="csvStringToDouble"    type="0" />
 +    <gateway name="sci_csvTextScan"         function="csvTextScan"          type="0" />
 +    <gateway name="sci_csvWrite"            function="csvWrite"             type="0" />
 +    <gateway name="sci_write_csv"           function="write_csv"            type="0" />
 +    <gateway name="sci_read_csv"            function="read_csv"             type="0" />
 +</module>
      <ClCompile Include="sci_gateway\c\sci_csvStringToDouble.c" />
      <ClCompile Include="sci_gateway\c\sci_csvTextScan.c" />
      <ClCompile Include="sci_gateway\c\sci_csvWrite.c" />
 -    <ClCompile Include="sci_gateway\c\sci_xls_open.c" />
 -    <ClCompile Include="sci_gateway\c\sci_xls_read.c" />
 +    <ClCompile Include="sci_gateway\cpp\sci_xls_open.cpp" />
 +    <ClCompile Include="sci_gateway\cpp\sci_xls_read.cpp" />
      <ClCompile Include="src\c\checkCsvWriteFormat.c" />
      <ClCompile Include="src\c\csvDefault.c" />
-     <ClCompile Include="src\c\csvIsnum.c" />
      <ClCompile Include="src\c\csvRead.c" />
      <ClCompile Include="src\c\csvWrite.c" />
-     <ClCompile Include="src\c\csv_complex.c" />
-     <ClCompile Include="src\c\csv_strsubst.c" />
      <ClCompile Include="src\c\DllmainSpreadsheet.c" />
      <ClCompile Include="src\c\getRange.c" />
      <ClCompile Include="src\c\ripole\bt-int.c" />
  #include "pcre_private.h"
  #include "sciprint.h"
  #include "splitLine.h"
- #include "csv_strsubst.h"
 -#include "strsubst.h"
 -#if _MSC_VER
 -#include "strdup_windows.h"
 -#endif
 +#include "os_strdup.h"
  #include "csvDefault.h"
  // =============================================================================
  #if _MSC_VER
@@@ -153,7 -142,7 +152,7 @@@ csvResult* csvRead(const char *filename
      {
          int iErr = 0;
  
--        pComments = extractComments((const char**)lines, nblines, (const char*)regexpcomments, &nbComments, &iErr);
++        pComments = extractComments((const char**)lines, nblines, regexpcomments, &nbComments, &iErr);
  
          if ((iErr == CAN_NOT_COMPILE_PATTERN) || (iErr == DELIMITER_NOT_ALPHANUMERIC))
          {
  #include "mclose.h"
  #include "MALLOC.h"
  #include "core_math.h"
- #include "csv_strsubst.h"
 -#ifdef _MSC_VER
 -#include "strdup_windows.h"
 -#endif
 -#include "strsubst.h"
  #include "csvDefault.h"
  #include "utftolatin.h"
  // =============================================================================
@@@ -25,73 -25,60 +25,77 @@@ src/c/stringsstrrev.c 
  src/c/stringsCompare.c \
  src/c/isalphanum.c \
  src/c/StringConvert.c \
 +src/c/os_wcsdup.c \
 +src/c/os_wcstok.c \
  src/c/scistrtostr.c \
  src/c/stringToDouble.c \
- src/c/isascii.c
 -src/c/isnum.c \
+ src/c/stringToComplex.c \
 -src/c/complex_array.c
 -
 -STRING_FORTRAN_SOURCES =
 -
 -GATEWAY_C_SOURCES = sci_gateway/c/gw_string.c \
 -sci_gateway/c/sci_ascii.c \
 -sci_gateway/c/sci_code2str.c \
 -sci_gateway/c/sci_convstr.c \
 -sci_gateway/c/sci_emptystr.c \
 -sci_gateway/c/sci_grep.c \
 -sci_gateway/c/sci_length.c \
 -sci_gateway/c/sci_part.c \
 -sci_gateway/c/sci_str2code.c \
 -sci_gateway/c/sci_strcat.c \
 -sci_gateway/c/sci_strindex.c \
 -sci_gateway/c/sci_string.c \
 -sci_gateway/c/sci_stripblanks.c \
 -sci_gateway/c/sci_strsplit.c \
 -sci_gateway/c/sci_strsubst.c \
 -sci_gateway/c/sci_tokens.c \
 -sci_gateway/c/sci_strcmp.c \
 -sci_gateway/c/sci_isletter.c \
 -sci_gateway/c/sci_isdigit.c \
 -sci_gateway/c/sci_isalphanum.c \
 -sci_gateway/c/sci_isascii.c \
 -sci_gateway/c/sci_strchr.c \
 -sci_gateway/c/sci_strcspn.c \
 -sci_gateway/c/sci_strncpy.c \
 -sci_gateway/c/sci_strrev.c \
 -sci_gateway/c/sci_strspn.c \
 -sci_gateway/c/sci_strstr.c \
 -sci_gateway/c/sci_strtod.c \
 -sci_gateway/c/sci_strtok.c \
 -sci_gateway/c/sci_regexp.c \
 -sci_gateway/c/sci_isnum.c
 -
 -
 -
 -GATEWAY_FORTRAN_SOURCES =  sci_gateway/fortran/sci_f_string.f \
 -sci_gateway/fortran/strops.f
 -
 -libscistring_la_CPPFLAGS = -I$(srcdir)/src/c \
++src/c/complex_array.c \
++src/c/isascii.c \
++src/c/isnum.c
 +
 +GATEWAY_CPP_SOURCES = \
 +    sci_gateway/cpp/sci_stripblanks.cpp \
 +    sci_gateway/cpp/sci_grep.cpp \
 +    sci_gateway/cpp/string_gw.cpp \
 +    sci_gateway/cpp/sci_regexp.cpp \
 +    sci_gateway/cpp/sci_part.cpp \
 +    sci_gateway/cpp/sci_length.cpp \
 +    sci_gateway/cpp/sci_strindex.cpp \
 +    sci_gateway/cpp/sci_strsubst.cpp \
 +    sci_gateway/cpp/sci_ascii.cpp \
 +    sci_gateway/cpp/sci_strcat.cpp \
 +    sci_gateway/cpp/sci_string.cpp \
 +    sci_gateway/cpp/sci_convstr.cpp \
 +    sci_gateway/cpp/sci_strncpy.cpp \
 +    sci_gateway/cpp/sci_strrchr.cpp \
 +    sci_gateway/cpp/sci_strchr.cpp \
 +    sci_gateway/cpp/sci_strstr.cpp \
 +    sci_gateway/cpp/sci_strrev.cpp \
 +    sci_gateway/cpp/sci_strtod.cpp \
 +    sci_gateway/cpp/sci_tokens.cpp \
 +    sci_gateway/cpp/sci_strcmp.cpp \
 +    sci_gateway/cpp/sci_isletter.cpp \
 +    sci_gateway/cpp/sci_strcspn.cpp \
 +    sci_gateway/cpp/sci_strtok.cpp \
 +    sci_gateway/cpp/sci_strspn.cpp \
 +    sci_gateway/cpp/sci_isalphanum.cpp \
 +    sci_gateway/cpp/sci_isdigit.cpp \
 +    sci_gateway/cpp/sci_isascii.cpp \
-     sci_gateway/cpp/sci_strsplit.cpp
++    sci_gateway/cpp/sci_strsplit.cpp \
++    sci_gateway/cpp/sci_isnum.cpp 
 +
 +libscistring_la_CFLAGS= $(PCRE_CFLAGS) \
 +      -I$(srcdir)/src/c \
 +      -I$(srcdir)/includes/ \
 +      -I$(top_srcdir)/modules/operations/includes \
 +      -I$(top_srcdir)/modules/functions/includes \
 +      -I$(top_srcdir)/modules/api_scilab/includes \
 +      -I$(top_srcdir)/modules/localization/includes \
 +      -I$(top_srcdir)/modules/output_stream/includes \
 +      -I$(top_srcdir)/modules/system_env/includes
 +
 +libscistring_la_CPPFLAGS= $(PCRE_CFLAGS) \
 +      -I$(srcdir)/src/c \
 +      -I$(srcdir)/src/cpp \
        -I$(srcdir)/includes/ \
 -      -I$(top_srcdir)/modules/functions/includes/ \
 -      -I$(top_srcdir)/modules/api_scilab/includes/ \
 -      -I$(top_srcdir)/modules/localization/includes/ \
 -        -I$(top_srcdir)/modules/spreadsheet/src/c/ \
 -      -I$(top_srcdir)/modules/output_stream/includes/ \
 -      $(PCRE_CFLAGS) \
 -      $(AM_CPPFLAGS)
 +      -I$(top_srcdir)/modules/operations/includes \
 +      -I$(top_srcdir)/modules/api_scilab/includes \
 +      -I$(top_srcdir)/modules/localization/includes \
 +      -I$(top_srcdir)/modules/output_stream/includes \
 +      -I$(top_srcdir)/modules/functions_manager/includes \
 +      -I$(top_srcdir)/modules/symbol/includes \
 +      -I$(top_srcdir)/modules/ast/includes \
 +      -I$(top_srcdir)/modules/elementary_funcions/includes \
 +      -I$(top_srcdir)/modules/core/includes \
 +      -I$(top_srcdir)/modules/types/includes \
 +      -I$(top_srcdir)/modules/system_env/includes \
 +    -I$(top_srcdir)/modules/dynamic_link/includes \
 +    -I$(top_srcdir)/modules/threads/includes \
 +    -I$(top_srcdir)/modules/console/includes \
 +    $(EIGEN_CPPFLAGS)
 +
 +libscistring_algo_la_CPPFLAGS = $(libscistring_la_CPPFLAGS)
  
  if MAINTAINER_MODE
  pkglib_LTLIBRARIES = libscistring.la
@@@ -153,38 -156,42 +153,40 @@@ am__objects_1 = libscistring_algo_la-co
        libscistring_algo_la-stringsCompare.lo \
        libscistring_algo_la-isalphanum.lo \
        libscistring_algo_la-StringConvert.lo \
 +      libscistring_algo_la-os_wcsdup.lo \
 +      libscistring_algo_la-os_wcstok.lo \
        libscistring_algo_la-scistrtostr.lo \
        libscistring_algo_la-stringToDouble.lo \
-       libscistring_algo_la-isascii.lo
 -      libscistring_algo_la-isnum.lo \
+       libscistring_algo_la-stringToComplex.lo \
 -      libscistring_algo_la-complex_array.lo
 -am__objects_2 =
++      libscistring_algo_la-complex_array.lo \
++      libscistring_algo_la-isascii.lo libscistring_algo_la-isnum.lo
 +am__objects_2 = libscistring_algo_la-stripblanks.lo
  am_libscistring_algo_la_OBJECTS = $(am__objects_1) $(am__objects_2)
  libscistring_algo_la_OBJECTS = $(am_libscistring_algo_la_OBJECTS)
  @MAINTAINER_MODE_FALSE@am_libscistring_algo_la_rpath =
  @MAINTAINER_MODE_TRUE@am_libscistring_algo_la_rpath =
  libscistring_la_DEPENDENCIES = libscistring-algo.la
 -am__objects_3 = libscistring_la-gw_string.lo \
 -      libscistring_la-sci_ascii.lo libscistring_la-sci_code2str.lo \
 -      libscistring_la-sci_convstr.lo libscistring_la-sci_emptystr.lo \
 -      libscistring_la-sci_grep.lo libscistring_la-sci_length.lo \
 -      libscistring_la-sci_part.lo libscistring_la-sci_str2code.lo \
 -      libscistring_la-sci_strcat.lo libscistring_la-sci_strindex.lo \
 -      libscistring_la-sci_string.lo \
 -      libscistring_la-sci_stripblanks.lo \
 -      libscistring_la-sci_strsplit.lo \
 -      libscistring_la-sci_strsubst.lo libscistring_la-sci_tokens.lo \
 +am__objects_3 = libscistring_la-sci_stripblanks.lo \
 +      libscistring_la-sci_grep.lo libscistring_la-string_gw.lo \
 +      libscistring_la-sci_regexp.lo libscistring_la-sci_part.lo \
 +      libscistring_la-sci_length.lo libscistring_la-sci_strindex.lo \
 +      libscistring_la-sci_strsubst.lo libscistring_la-sci_ascii.lo \
 +      libscistring_la-sci_strcat.lo libscistring_la-sci_string.lo \
 +      libscistring_la-sci_convstr.lo libscistring_la-sci_strncpy.lo \
 +      libscistring_la-sci_strrchr.lo libscistring_la-sci_strchr.lo \
 +      libscistring_la-sci_strstr.lo libscistring_la-sci_strrev.lo \
 +      libscistring_la-sci_strtod.lo libscistring_la-sci_tokens.lo \
        libscistring_la-sci_strcmp.lo libscistring_la-sci_isletter.lo \
 -      libscistring_la-sci_isdigit.lo \
 +      libscistring_la-sci_strcspn.lo libscistring_la-sci_strtok.lo \
 +      libscistring_la-sci_strspn.lo \
        libscistring_la-sci_isalphanum.lo \
 -      libscistring_la-sci_isascii.lo libscistring_la-sci_strchr.lo \
 -      libscistring_la-sci_strcspn.lo libscistring_la-sci_strncpy.lo \
 -      libscistring_la-sci_strrev.lo libscistring_la-sci_strspn.lo \
 -      libscistring_la-sci_strstr.lo libscistring_la-sci_strtod.lo \
 -      libscistring_la-sci_strtok.lo libscistring_la-sci_regexp.lo \
 -      libscistring_la-sci_isnum.lo
 -am__objects_4 = sci_f_string.lo strops.lo
 -am_libscistring_la_OBJECTS = $(am__objects_3) $(am__objects_4)
 +      libscistring_la-sci_isdigit.lo libscistring_la-sci_isascii.lo \
-       libscistring_la-sci_strsplit.lo
++      libscistring_la-sci_strsplit.lo libscistring_la-sci_isnum.lo
 +am_libscistring_la_OBJECTS = $(am__objects_3)
  libscistring_la_OBJECTS = $(am_libscistring_la_OBJECTS)
 -libscistring_la_LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) \
 -      $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \
 -      $(libscistring_la_LDFLAGS) $(LDFLAGS) -o $@
 +libscistring_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
 +      $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 +      $(CXXFLAGS) $(libscistring_la_LDFLAGS) $(LDFLAGS) -o $@
  @MAINTAINER_MODE_FALSE@am_libscistring_la_rpath =
  @MAINTAINER_MODE_TRUE@am_libscistring_la_rpath = -rpath $(pkglibdir)
  DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/modules/core/includes
@@@ -508,73 -507,58 +510,77 @@@ src/c/stringsstrrev.c 
  src/c/stringsCompare.c \
  src/c/isalphanum.c \
  src/c/StringConvert.c \
 +src/c/os_wcsdup.c \
 +src/c/os_wcstok.c \
  src/c/scistrtostr.c \
  src/c/stringToDouble.c \
- src/c/isascii.c
 -src/c/isnum.c \
+ src/c/stringToComplex.c \
 -src/c/complex_array.c
 -
 -STRING_FORTRAN_SOURCES = 
 -GATEWAY_C_SOURCES = sci_gateway/c/gw_string.c \
 -sci_gateway/c/sci_ascii.c \
 -sci_gateway/c/sci_code2str.c \
 -sci_gateway/c/sci_convstr.c \
 -sci_gateway/c/sci_emptystr.c \
 -sci_gateway/c/sci_grep.c \
 -sci_gateway/c/sci_length.c \
 -sci_gateway/c/sci_part.c \
 -sci_gateway/c/sci_str2code.c \
 -sci_gateway/c/sci_strcat.c \
 -sci_gateway/c/sci_strindex.c \
 -sci_gateway/c/sci_string.c \
 -sci_gateway/c/sci_stripblanks.c \
 -sci_gateway/c/sci_strsplit.c \
 -sci_gateway/c/sci_strsubst.c \
 -sci_gateway/c/sci_tokens.c \
 -sci_gateway/c/sci_strcmp.c \
 -sci_gateway/c/sci_isletter.c \
 -sci_gateway/c/sci_isdigit.c \
 -sci_gateway/c/sci_isalphanum.c \
 -sci_gateway/c/sci_isascii.c \
 -sci_gateway/c/sci_strchr.c \
 -sci_gateway/c/sci_strcspn.c \
 -sci_gateway/c/sci_strncpy.c \
 -sci_gateway/c/sci_strrev.c \
 -sci_gateway/c/sci_strspn.c \
 -sci_gateway/c/sci_strstr.c \
 -sci_gateway/c/sci_strtod.c \
 -sci_gateway/c/sci_strtok.c \
 -sci_gateway/c/sci_regexp.c \
 -sci_gateway/c/sci_isnum.c
 -
 -GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_string.f \
 -sci_gateway/fortran/strops.f
 -
 -libscistring_la_CPPFLAGS = -I$(srcdir)/src/c \
++src/c/complex_array.c \
++src/c/isascii.c \
++src/c/isnum.c
 +
 +GATEWAY_CPP_SOURCES = \
 +    sci_gateway/cpp/sci_stripblanks.cpp \
 +    sci_gateway/cpp/sci_grep.cpp \
 +    sci_gateway/cpp/string_gw.cpp \
 +    sci_gateway/cpp/sci_regexp.cpp \
 +    sci_gateway/cpp/sci_part.cpp \
 +    sci_gateway/cpp/sci_length.cpp \
 +    sci_gateway/cpp/sci_strindex.cpp \
 +    sci_gateway/cpp/sci_strsubst.cpp \
 +    sci_gateway/cpp/sci_ascii.cpp \
 +    sci_gateway/cpp/sci_strcat.cpp \
 +    sci_gateway/cpp/sci_string.cpp \
 +    sci_gateway/cpp/sci_convstr.cpp \
 +    sci_gateway/cpp/sci_strncpy.cpp \
 +    sci_gateway/cpp/sci_strrchr.cpp \
 +    sci_gateway/cpp/sci_strchr.cpp \
 +    sci_gateway/cpp/sci_strstr.cpp \
 +    sci_gateway/cpp/sci_strrev.cpp \
 +    sci_gateway/cpp/sci_strtod.cpp \
 +    sci_gateway/cpp/sci_tokens.cpp \
 +    sci_gateway/cpp/sci_strcmp.cpp \
 +    sci_gateway/cpp/sci_isletter.cpp \
 +    sci_gateway/cpp/sci_strcspn.cpp \
 +    sci_gateway/cpp/sci_strtok.cpp \
 +    sci_gateway/cpp/sci_strspn.cpp \
 +    sci_gateway/cpp/sci_isalphanum.cpp \
 +    sci_gateway/cpp/sci_isdigit.cpp \
 +    sci_gateway/cpp/sci_isascii.cpp \
-     sci_gateway/cpp/sci_strsplit.cpp
++    sci_gateway/cpp/sci_strsplit.cpp \
++    sci_gateway/cpp/sci_isnum.cpp 
 +
 +libscistring_la_CFLAGS = $(PCRE_CFLAGS) \
 +      -I$(srcdir)/src/c \
        -I$(srcdir)/includes/ \
 -      -I$(top_srcdir)/modules/functions/includes/ \
 -      -I$(top_srcdir)/modules/api_scilab/includes/ \
 -      -I$(top_srcdir)/modules/localization/includes/ \
 -        -I$(top_srcdir)/modules/spreadsheet/src/c/ \
 -      -I$(top_srcdir)/modules/output_stream/includes/ \
 -      $(PCRE_CFLAGS) \
 -      $(AM_CPPFLAGS)
 +      -I$(top_srcdir)/modules/operations/includes \
 +      -I$(top_srcdir)/modules/functions/includes \
 +      -I$(top_srcdir)/modules/api_scilab/includes \
 +      -I$(top_srcdir)/modules/localization/includes \
 +      -I$(top_srcdir)/modules/output_stream/includes \
 +      -I$(top_srcdir)/modules/system_env/includes
 +
 +libscistring_la_CPPFLAGS = $(PCRE_CFLAGS) \
 +      -I$(srcdir)/src/c \
 +      -I$(srcdir)/src/cpp \
 +      -I$(srcdir)/includes/ \
 +      -I$(top_srcdir)/modules/operations/includes \
 +      -I$(top_srcdir)/modules/api_scilab/includes \
 +      -I$(top_srcdir)/modules/localization/includes \
 +      -I$(top_srcdir)/modules/output_stream/includes \
 +      -I$(top_srcdir)/modules/functions_manager/includes \
 +      -I$(top_srcdir)/modules/symbol/includes \
 +      -I$(top_srcdir)/modules/ast/includes \
 +      -I$(top_srcdir)/modules/elementary_funcions/includes \
 +      -I$(top_srcdir)/modules/core/includes \
 +      -I$(top_srcdir)/modules/types/includes \
 +      -I$(top_srcdir)/modules/system_env/includes \
 +    -I$(top_srcdir)/modules/dynamic_link/includes \
 +    -I$(top_srcdir)/modules/threads/includes \
 +    -I$(top_srcdir)/modules/console/includes \
 +    $(EIGEN_CPPFLAGS)
  
 +libscistring_algo_la_CPPFLAGS = $(libscistring_la_CPPFLAGS)
  @MAINTAINER_MODE_TRUE@pkglib_LTLIBRARIES = libscistring.la
  @MAINTAINER_MODE_FALSE@noinst_LTLIBRARIES = libscistring-algo.la libscistring.la
  @MAINTAINER_MODE_TRUE@noinst_LTLIBRARIES = libscistring-algo.la
@@@ -766,23 -750,25 +772,26 @@@ distclean-compile
  
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-InitializeString.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-StringConvert.Plo@am__quote@
 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-code2str.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-complex_array.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-convstr.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-cvstr.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-getfastcode.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-isalphanum.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-isascii.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-isdigit.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-isletter.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-isnum.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-men_Sutils.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-os_wcsdup.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-os_wcstok.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-partfunction.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-pcre_error.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-pcre_private.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-scistrtostr.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-setScilabCharactersCodes.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-stringToComplex.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-stringToDouble.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-stringsCompare.Plo@am__quote@
 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-stringsstrrchr.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-stringsstrrev.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-stripblanks.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscistring_algo_la-stristr.Plo@am__quote@
@@@ -998,239 -994,261 +1008,267 @@@ libscistring_algo_la-stringToDouble.lo
  @am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_algo_la-stringToDouble.Tpo $(DEPDIR)/libscistring_algo_la-stringToDouble.Plo
  @AMDEP_TRUE@@am__fastdepCC_FALSE@     source='src/c/stringToDouble.c' object='libscistring_algo_la-stringToDouble.lo' libtool=yes @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-stringToDouble.lo `test -f 'src/c/stringToDouble.c' || echo '$(srcdir)/'`src/c/stringToDouble.c
 -
 -libscistring_algo_la-isnum.lo: src/c/isnum.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_algo_la-isnum.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-isnum.Tpo -c -o libscistring_algo_la-isnum.lo `test -f 'src/c/isnum.c' || echo '$(srcdir)/'`src/c/isnum.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_algo_la-isnum.Tpo $(DEPDIR)/libscistring_algo_la-isnum.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='src/c/isnum.c' object='libscistring_algo_la-isnum.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-isnum.lo `test -f 'src/c/isnum.c' || echo '$(srcdir)/'`src/c/isnum.c
 +@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-stringToDouble.lo `test -f 'src/c/stringToDouble.c' || echo '$(srcdir)/'`src/c/stringToDouble.c
  
+ libscistring_algo_la-stringToComplex.lo: src/c/stringToComplex.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_algo_la-stringToComplex.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-stringToComplex.Tpo -c -o libscistring_algo_la-stringToComplex.lo `test -f 'src/c/stringToComplex.c' || echo '$(srcdir)/'`src/c/stringToComplex.c
++@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -MT libscistring_algo_la-stringToComplex.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-stringToComplex.Tpo -c -o libscistring_algo_la-stringToComplex.lo `test -f 'src/c/stringToComplex.c' || echo '$(srcdir)/'`src/c/stringToComplex.c
+ @am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_algo_la-stringToComplex.Tpo $(DEPDIR)/libscistring_algo_la-stringToComplex.Plo
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     source='src/c/stringToComplex.c' object='libscistring_algo_la-stringToComplex.lo' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-stringToComplex.lo `test -f 'src/c/stringToComplex.c' || echo '$(srcdir)/'`src/c/stringToComplex.c
++@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-stringToComplex.lo `test -f 'src/c/stringToComplex.c' || echo '$(srcdir)/'`src/c/stringToComplex.c
+ libscistring_algo_la-complex_array.lo: src/c/complex_array.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_algo_la-complex_array.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-complex_array.Tpo -c -o libscistring_algo_la-complex_array.lo `test -f 'src/c/complex_array.c' || echo '$(srcdir)/'`src/c/complex_array.c
++@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -MT libscistring_algo_la-complex_array.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-complex_array.Tpo -c -o libscistring_algo_la-complex_array.lo `test -f 'src/c/complex_array.c' || echo '$(srcdir)/'`src/c/complex_array.c
+ @am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_algo_la-complex_array.Tpo $(DEPDIR)/libscistring_algo_la-complex_array.Plo
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     source='src/c/complex_array.c' object='libscistring_algo_la-complex_array.lo' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-complex_array.lo `test -f 'src/c/complex_array.c' || echo '$(srcdir)/'`src/c/complex_array.c
 -
 -libscistring_la-gw_string.lo: sci_gateway/c/gw_string.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-gw_string.lo -MD -MP -MF $(DEPDIR)/libscistring_la-gw_string.Tpo -c -o libscistring_la-gw_string.lo `test -f 'sci_gateway/c/gw_string.c' || echo '$(srcdir)/'`sci_gateway/c/gw_string.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-gw_string.Tpo $(DEPDIR)/libscistring_la-gw_string.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/gw_string.c' object='libscistring_la-gw_string.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-gw_string.lo `test -f 'sci_gateway/c/gw_string.c' || echo '$(srcdir)/'`sci_gateway/c/gw_string.c
 -
 -libscistring_la-sci_ascii.lo: sci_gateway/c/sci_ascii.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_ascii.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_ascii.Tpo -c -o libscistring_la-sci_ascii.lo `test -f 'sci_gateway/c/sci_ascii.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ascii.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_ascii.Tpo $(DEPDIR)/libscistring_la-sci_ascii.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_ascii.c' object='libscistring_la-sci_ascii.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_ascii.lo `test -f 'sci_gateway/c/sci_ascii.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ascii.c
 -
 -libscistring_la-sci_code2str.lo: sci_gateway/c/sci_code2str.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_code2str.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_code2str.Tpo -c -o libscistring_la-sci_code2str.lo `test -f 'sci_gateway/c/sci_code2str.c' || echo '$(srcdir)/'`sci_gateway/c/sci_code2str.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_code2str.Tpo $(DEPDIR)/libscistring_la-sci_code2str.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_code2str.c' object='libscistring_la-sci_code2str.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_code2str.lo `test -f 'sci_gateway/c/sci_code2str.c' || echo '$(srcdir)/'`sci_gateway/c/sci_code2str.c
 -
 -libscistring_la-sci_convstr.lo: sci_gateway/c/sci_convstr.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_convstr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_convstr.Tpo -c -o libscistring_la-sci_convstr.lo `test -f 'sci_gateway/c/sci_convstr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_convstr.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_convstr.Tpo $(DEPDIR)/libscistring_la-sci_convstr.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_convstr.c' object='libscistring_la-sci_convstr.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_convstr.lo `test -f 'sci_gateway/c/sci_convstr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_convstr.c
 -
 -libscistring_la-sci_emptystr.lo: sci_gateway/c/sci_emptystr.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_emptystr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_emptystr.Tpo -c -o libscistring_la-sci_emptystr.lo `test -f 'sci_gateway/c/sci_emptystr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_emptystr.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_emptystr.Tpo $(DEPDIR)/libscistring_la-sci_emptystr.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_emptystr.c' object='libscistring_la-sci_emptystr.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_emptystr.lo `test -f 'sci_gateway/c/sci_emptystr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_emptystr.c
 -
 -libscistring_la-sci_grep.lo: sci_gateway/c/sci_grep.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_grep.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_grep.Tpo -c -o libscistring_la-sci_grep.lo `test -f 'sci_gateway/c/sci_grep.c' || echo '$(srcdir)/'`sci_gateway/c/sci_grep.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_grep.Tpo $(DEPDIR)/libscistring_la-sci_grep.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_grep.c' object='libscistring_la-sci_grep.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_grep.lo `test -f 'sci_gateway/c/sci_grep.c' || echo '$(srcdir)/'`sci_gateway/c/sci_grep.c
 -
 -libscistring_la-sci_length.lo: sci_gateway/c/sci_length.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_length.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_length.Tpo -c -o libscistring_la-sci_length.lo `test -f 'sci_gateway/c/sci_length.c' || echo '$(srcdir)/'`sci_gateway/c/sci_length.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_length.Tpo $(DEPDIR)/libscistring_la-sci_length.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_length.c' object='libscistring_la-sci_length.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_length.lo `test -f 'sci_gateway/c/sci_length.c' || echo '$(srcdir)/'`sci_gateway/c/sci_length.c
 -
 -libscistring_la-sci_part.lo: sci_gateway/c/sci_part.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_part.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_part.Tpo -c -o libscistring_la-sci_part.lo `test -f 'sci_gateway/c/sci_part.c' || echo '$(srcdir)/'`sci_gateway/c/sci_part.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_part.Tpo $(DEPDIR)/libscistring_la-sci_part.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_part.c' object='libscistring_la-sci_part.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_part.lo `test -f 'sci_gateway/c/sci_part.c' || echo '$(srcdir)/'`sci_gateway/c/sci_part.c
 -
 -libscistring_la-sci_str2code.lo: sci_gateway/c/sci_str2code.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_str2code.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_str2code.Tpo -c -o libscistring_la-sci_str2code.lo `test -f 'sci_gateway/c/sci_str2code.c' || echo '$(srcdir)/'`sci_gateway/c/sci_str2code.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_str2code.Tpo $(DEPDIR)/libscistring_la-sci_str2code.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_str2code.c' object='libscistring_la-sci_str2code.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_str2code.lo `test -f 'sci_gateway/c/sci_str2code.c' || echo '$(srcdir)/'`sci_gateway/c/sci_str2code.c
 -
 -libscistring_la-sci_strcat.lo: sci_gateway/c/sci_strcat.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strcat.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strcat.Tpo -c -o libscistring_la-sci_strcat.lo `test -f 'sci_gateway/c/sci_strcat.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strcat.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strcat.Tpo $(DEPDIR)/libscistring_la-sci_strcat.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strcat.c' object='libscistring_la-sci_strcat.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strcat.lo `test -f 'sci_gateway/c/sci_strcat.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strcat.c
 -
 -libscistring_la-sci_strindex.lo: sci_gateway/c/sci_strindex.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strindex.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strindex.Tpo -c -o libscistring_la-sci_strindex.lo `test -f 'sci_gateway/c/sci_strindex.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strindex.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strindex.Tpo $(DEPDIR)/libscistring_la-sci_strindex.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strindex.c' object='libscistring_la-sci_strindex.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strindex.lo `test -f 'sci_gateway/c/sci_strindex.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strindex.c
 -
 -libscistring_la-sci_string.lo: sci_gateway/c/sci_string.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_string.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_string.Tpo -c -o libscistring_la-sci_string.lo `test -f 'sci_gateway/c/sci_string.c' || echo '$(srcdir)/'`sci_gateway/c/sci_string.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_string.Tpo $(DEPDIR)/libscistring_la-sci_string.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_string.c' object='libscistring_la-sci_string.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_string.lo `test -f 'sci_gateway/c/sci_string.c' || echo '$(srcdir)/'`sci_gateway/c/sci_string.c
++@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-complex_array.lo `test -f 'src/c/complex_array.c' || echo '$(srcdir)/'`src/c/complex_array.c
 -libscistring_la-sci_stripblanks.lo: sci_gateway/c/sci_stripblanks.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_stripblanks.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_stripblanks.Tpo -c -o libscistring_la-sci_stripblanks.lo `test -f 'sci_gateway/c/sci_stripblanks.c' || echo '$(srcdir)/'`sci_gateway/c/sci_stripblanks.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_stripblanks.Tpo $(DEPDIR)/libscistring_la-sci_stripblanks.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_stripblanks.c' object='libscistring_la-sci_stripblanks.lo' libtool=yes @AMDEPBACKSLASH@
 +libscistring_algo_la-isascii.lo: src/c/isascii.c
 +@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -MT libscistring_algo_la-isascii.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-isascii.Tpo -c -o libscistring_algo_la-isascii.lo `test -f 'src/c/isascii.c' || echo '$(srcdir)/'`src/c/isascii.c
 +@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_algo_la-isascii.Tpo $(DEPDIR)/libscistring_algo_la-isascii.Plo
 +@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='src/c/isascii.c' object='libscistring_algo_la-isascii.lo' libtool=yes @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_stripblanks.lo `test -f 'sci_gateway/c/sci_stripblanks.c' || echo '$(srcdir)/'`sci_gateway/c/sci_stripblanks.c
 +@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-isascii.lo `test -f 'src/c/isascii.c' || echo '$(srcdir)/'`src/c/isascii.c
  
 -libscistring_la-sci_strsplit.lo: sci_gateway/c/sci_strsplit.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strsplit.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strsplit.Tpo -c -o libscistring_la-sci_strsplit.lo `test -f 'sci_gateway/c/sci_strsplit.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strsplit.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strsplit.Tpo $(DEPDIR)/libscistring_la-sci_strsplit.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strsplit.c' object='libscistring_la-sci_strsplit.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strsplit.lo `test -f 'sci_gateway/c/sci_strsplit.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strsplit.c
 -
 -libscistring_la-sci_strsubst.lo: sci_gateway/c/sci_strsubst.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strsubst.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strsubst.Tpo -c -o libscistring_la-sci_strsubst.lo `test -f 'sci_gateway/c/sci_strsubst.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strsubst.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strsubst.Tpo $(DEPDIR)/libscistring_la-sci_strsubst.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strsubst.c' object='libscistring_la-sci_strsubst.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strsubst.lo `test -f 'sci_gateway/c/sci_strsubst.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strsubst.c
 -
 -libscistring_la-sci_tokens.lo: sci_gateway/c/sci_tokens.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_tokens.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_tokens.Tpo -c -o libscistring_la-sci_tokens.lo `test -f 'sci_gateway/c/sci_tokens.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tokens.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_tokens.Tpo $(DEPDIR)/libscistring_la-sci_tokens.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_tokens.c' object='libscistring_la-sci_tokens.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_tokens.lo `test -f 'sci_gateway/c/sci_tokens.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tokens.c
 -
 -libscistring_la-sci_strcmp.lo: sci_gateway/c/sci_strcmp.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strcmp.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strcmp.Tpo -c -o libscistring_la-sci_strcmp.lo `test -f 'sci_gateway/c/sci_strcmp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strcmp.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strcmp.Tpo $(DEPDIR)/libscistring_la-sci_strcmp.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strcmp.c' object='libscistring_la-sci_strcmp.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strcmp.lo `test -f 'sci_gateway/c/sci_strcmp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strcmp.c
 -
 -libscistring_la-sci_isletter.lo: sci_gateway/c/sci_isletter.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_isletter.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isletter.Tpo -c -o libscistring_la-sci_isletter.lo `test -f 'sci_gateway/c/sci_isletter.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isletter.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_isletter.Tpo $(DEPDIR)/libscistring_la-sci_isletter.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_isletter.c' object='libscistring_la-sci_isletter.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_isletter.lo `test -f 'sci_gateway/c/sci_isletter.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isletter.c
 -
 -libscistring_la-sci_isdigit.lo: sci_gateway/c/sci_isdigit.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_isdigit.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isdigit.Tpo -c -o libscistring_la-sci_isdigit.lo `test -f 'sci_gateway/c/sci_isdigit.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isdigit.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_isdigit.Tpo $(DEPDIR)/libscistring_la-sci_isdigit.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_isdigit.c' object='libscistring_la-sci_isdigit.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_isdigit.lo `test -f 'sci_gateway/c/sci_isdigit.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isdigit.c
 -
 -libscistring_la-sci_isalphanum.lo: sci_gateway/c/sci_isalphanum.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_isalphanum.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isalphanum.Tpo -c -o libscistring_la-sci_isalphanum.lo `test -f 'sci_gateway/c/sci_isalphanum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isalphanum.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_isalphanum.Tpo $(DEPDIR)/libscistring_la-sci_isalphanum.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_isalphanum.c' object='libscistring_la-sci_isalphanum.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_isalphanum.lo `test -f 'sci_gateway/c/sci_isalphanum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isalphanum.c
 -
 -libscistring_la-sci_isascii.lo: sci_gateway/c/sci_isascii.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_isascii.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isascii.Tpo -c -o libscistring_la-sci_isascii.lo `test -f 'sci_gateway/c/sci_isascii.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isascii.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_isascii.Tpo $(DEPDIR)/libscistring_la-sci_isascii.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_isascii.c' object='libscistring_la-sci_isascii.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_isascii.lo `test -f 'sci_gateway/c/sci_isascii.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isascii.c
 -
 -libscistring_la-sci_strchr.lo: sci_gateway/c/sci_strchr.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strchr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strchr.Tpo -c -o libscistring_la-sci_strchr.lo `test -f 'sci_gateway/c/sci_strchr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strchr.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strchr.Tpo $(DEPDIR)/libscistring_la-sci_strchr.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strchr.c' object='libscistring_la-sci_strchr.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strchr.lo `test -f 'sci_gateway/c/sci_strchr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strchr.c
 -
 -libscistring_la-sci_strcspn.lo: sci_gateway/c/sci_strcspn.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strcspn.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strcspn.Tpo -c -o libscistring_la-sci_strcspn.lo `test -f 'sci_gateway/c/sci_strcspn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strcspn.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strcspn.Tpo $(DEPDIR)/libscistring_la-sci_strcspn.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strcspn.c' object='libscistring_la-sci_strcspn.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strcspn.lo `test -f 'sci_gateway/c/sci_strcspn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strcspn.c
 -
 -libscistring_la-sci_strncpy.lo: sci_gateway/c/sci_strncpy.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strncpy.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strncpy.Tpo -c -o libscistring_la-sci_strncpy.lo `test -f 'sci_gateway/c/sci_strncpy.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strncpy.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strncpy.Tpo $(DEPDIR)/libscistring_la-sci_strncpy.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strncpy.c' object='libscistring_la-sci_strncpy.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strncpy.lo `test -f 'sci_gateway/c/sci_strncpy.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strncpy.c
 -
 -libscistring_la-sci_strrev.lo: sci_gateway/c/sci_strrev.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strrev.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strrev.Tpo -c -o libscistring_la-sci_strrev.lo `test -f 'sci_gateway/c/sci_strrev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strrev.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strrev.Tpo $(DEPDIR)/libscistring_la-sci_strrev.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strrev.c' object='libscistring_la-sci_strrev.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strrev.lo `test -f 'sci_gateway/c/sci_strrev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strrev.c
 -
 -libscistring_la-sci_strspn.lo: sci_gateway/c/sci_strspn.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strspn.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strspn.Tpo -c -o libscistring_la-sci_strspn.lo `test -f 'sci_gateway/c/sci_strspn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strspn.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strspn.Tpo $(DEPDIR)/libscistring_la-sci_strspn.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strspn.c' object='libscistring_la-sci_strspn.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strspn.lo `test -f 'sci_gateway/c/sci_strspn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strspn.c
 -
 -libscistring_la-sci_strstr.lo: sci_gateway/c/sci_strstr.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strstr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strstr.Tpo -c -o libscistring_la-sci_strstr.lo `test -f 'sci_gateway/c/sci_strstr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strstr.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strstr.Tpo $(DEPDIR)/libscistring_la-sci_strstr.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strstr.c' object='libscistring_la-sci_strstr.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strstr.lo `test -f 'sci_gateway/c/sci_strstr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strstr.c
 -
 -libscistring_la-sci_strtod.lo: sci_gateway/c/sci_strtod.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strtod.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strtod.Tpo -c -o libscistring_la-sci_strtod.lo `test -f 'sci_gateway/c/sci_strtod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strtod.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strtod.Tpo $(DEPDIR)/libscistring_la-sci_strtod.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strtod.c' object='libscistring_la-sci_strtod.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strtod.lo `test -f 'sci_gateway/c/sci_strtod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strtod.c
 -
 -libscistring_la-sci_strtok.lo: sci_gateway/c/sci_strtok.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_strtok.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strtok.Tpo -c -o libscistring_la-sci_strtok.lo `test -f 'sci_gateway/c/sci_strtok.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strtok.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_strtok.Tpo $(DEPDIR)/libscistring_la-sci_strtok.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_strtok.c' object='libscistring_la-sci_strtok.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_strtok.lo `test -f 'sci_gateway/c/sci_strtok.c' || echo '$(srcdir)/'`sci_gateway/c/sci_strtok.c
 -
 -libscistring_la-sci_regexp.lo: sci_gateway/c/sci_regexp.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_regexp.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_regexp.Tpo -c -o libscistring_la-sci_regexp.lo `test -f 'sci_gateway/c/sci_regexp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_regexp.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_regexp.Tpo $(DEPDIR)/libscistring_la-sci_regexp.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_regexp.c' object='libscistring_la-sci_regexp.lo' libtool=yes @AMDEPBACKSLASH@
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_regexp.lo `test -f 'sci_gateway/c/sci_regexp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_regexp.c
 -
 -libscistring_la-sci_isnum.lo: sci_gateway/c/sci_isnum.c
 -@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscistring_la-sci_isnum.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isnum.Tpo -c -o libscistring_la-sci_isnum.lo `test -f 'sci_gateway/c/sci_isnum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isnum.c
 -@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_la-sci_isnum.Tpo $(DEPDIR)/libscistring_la-sci_isnum.Plo
 -@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sci_gateway/c/sci_isnum.c' object='libscistring_la-sci_isnum.lo' libtool=yes @AMDEPBACKSLASH@
++libscistring_algo_la-isnum.lo: src/c/isnum.c
++@am__fastdepCC_TRUE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -MT libscistring_algo_la-isnum.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-isnum.Tpo -c -o libscistring_algo_la-isnum.lo `test -f 'src/c/isnum.c' || echo '$(srcdir)/'`src/c/isnum.c
++@am__fastdepCC_TRUE@  $(am__mv) $(DEPDIR)/libscistring_algo_la-isnum.Tpo $(DEPDIR)/libscistring_algo_la-isnum.Plo
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='src/c/isnum.c' object='libscistring_algo_la-isnum.lo' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 -@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscistring_la-sci_isnum.lo `test -f 'sci_gateway/c/sci_isnum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isnum.c
 -
 -.f.o:
 -      $(F77COMPILE) -c -o $@ $<
 -
 -.f.obj:
 -      $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 -
 -.f.lo:
 -      $(LTF77COMPILE) -c -o $@ $<
 -
 -sci_f_string.lo: sci_gateway/fortran/sci_f_string.f
 -      $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_string.lo `test -f 'sci_gateway/fortran/sci_f_string.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_string.f
 -
 -strops.lo: sci_gateway/fortran/strops.f
 -      $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strops.lo `test -f 'sci_gateway/fortran/strops.f' || echo '$(srcdir)/'`sci_gateway/fortran/strops.f
++@am__fastdepCC_FALSE@ $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscistring_algo_la_CFLAGS) $(CFLAGS) -c -o libscistring_algo_la-isnum.lo `test -f 'src/c/isnum.c' || echo '$(srcdir)/'`src/c/isnum.c
++
 +.cpp.o:
 +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(CXXCOMPILE) -c -o $@ $<
 +
 +.cpp.obj:
 +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 +
 +.cpp.lo:
 +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LTCXXCOMPILE) -c -o $@ $<
 +
 +libscistring_algo_la-stripblanks.lo: src/cpp/stripblanks.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_algo_la-stripblanks.lo -MD -MP -MF $(DEPDIR)/libscistring_algo_la-stripblanks.Tpo -c -o libscistring_algo_la-stripblanks.lo `test -f 'src/cpp/stripblanks.cpp' || echo '$(srcdir)/'`src/cpp/stripblanks.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_algo_la-stripblanks.Tpo $(DEPDIR)/libscistring_algo_la-stripblanks.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/stripblanks.cpp' object='libscistring_algo_la-stripblanks.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_algo_la-stripblanks.lo `test -f 'src/cpp/stripblanks.cpp' || echo '$(srcdir)/'`src/cpp/stripblanks.cpp
 +
 +libscistring_la-sci_stripblanks.lo: sci_gateway/cpp/sci_stripblanks.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_stripblanks.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_stripblanks.Tpo -c -o libscistring_la-sci_stripblanks.lo `test -f 'sci_gateway/cpp/sci_stripblanks.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_stripblanks.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_stripblanks.Tpo $(DEPDIR)/libscistring_la-sci_stripblanks.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_stripblanks.cpp' object='libscistring_la-sci_stripblanks.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_stripblanks.lo `test -f 'sci_gateway/cpp/sci_stripblanks.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_stripblanks.cpp
 +
 +libscistring_la-sci_grep.lo: sci_gateway/cpp/sci_grep.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_grep.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_grep.Tpo -c -o libscistring_la-sci_grep.lo `test -f 'sci_gateway/cpp/sci_grep.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_grep.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_grep.Tpo $(DEPDIR)/libscistring_la-sci_grep.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_grep.cpp' object='libscistring_la-sci_grep.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_grep.lo `test -f 'sci_gateway/cpp/sci_grep.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_grep.cpp
 +
 +libscistring_la-string_gw.lo: sci_gateway/cpp/string_gw.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-string_gw.lo -MD -MP -MF $(DEPDIR)/libscistring_la-string_gw.Tpo -c -o libscistring_la-string_gw.lo `test -f 'sci_gateway/cpp/string_gw.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/string_gw.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-string_gw.Tpo $(DEPDIR)/libscistring_la-string_gw.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/string_gw.cpp' object='libscistring_la-string_gw.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-string_gw.lo `test -f 'sci_gateway/cpp/string_gw.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/string_gw.cpp
 +
 +libscistring_la-sci_regexp.lo: sci_gateway/cpp/sci_regexp.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_regexp.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_regexp.Tpo -c -o libscistring_la-sci_regexp.lo `test -f 'sci_gateway/cpp/sci_regexp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_regexp.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_regexp.Tpo $(DEPDIR)/libscistring_la-sci_regexp.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_regexp.cpp' object='libscistring_la-sci_regexp.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_regexp.lo `test -f 'sci_gateway/cpp/sci_regexp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_regexp.cpp
 +
 +libscistring_la-sci_part.lo: sci_gateway/cpp/sci_part.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_part.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_part.Tpo -c -o libscistring_la-sci_part.lo `test -f 'sci_gateway/cpp/sci_part.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_part.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_part.Tpo $(DEPDIR)/libscistring_la-sci_part.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_part.cpp' object='libscistring_la-sci_part.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_part.lo `test -f 'sci_gateway/cpp/sci_part.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_part.cpp
 +
 +libscistring_la-sci_length.lo: sci_gateway/cpp/sci_length.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_length.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_length.Tpo -c -o libscistring_la-sci_length.lo `test -f 'sci_gateway/cpp/sci_length.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_length.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_length.Tpo $(DEPDIR)/libscistring_la-sci_length.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_length.cpp' object='libscistring_la-sci_length.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_length.lo `test -f 'sci_gateway/cpp/sci_length.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_length.cpp
 +
 +libscistring_la-sci_strindex.lo: sci_gateway/cpp/sci_strindex.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strindex.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strindex.Tpo -c -o libscistring_la-sci_strindex.lo `test -f 'sci_gateway/cpp/sci_strindex.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strindex.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strindex.Tpo $(DEPDIR)/libscistring_la-sci_strindex.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strindex.cpp' object='libscistring_la-sci_strindex.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strindex.lo `test -f 'sci_gateway/cpp/sci_strindex.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strindex.cpp
 +
 +libscistring_la-sci_strsubst.lo: sci_gateway/cpp/sci_strsubst.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strsubst.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strsubst.Tpo -c -o libscistring_la-sci_strsubst.lo `test -f 'sci_gateway/cpp/sci_strsubst.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strsubst.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strsubst.Tpo $(DEPDIR)/libscistring_la-sci_strsubst.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strsubst.cpp' object='libscistring_la-sci_strsubst.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strsubst.lo `test -f 'sci_gateway/cpp/sci_strsubst.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strsubst.cpp
 +
 +libscistring_la-sci_ascii.lo: sci_gateway/cpp/sci_ascii.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_ascii.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_ascii.Tpo -c -o libscistring_la-sci_ascii.lo `test -f 'sci_gateway/cpp/sci_ascii.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_ascii.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_ascii.Tpo $(DEPDIR)/libscistring_la-sci_ascii.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_ascii.cpp' object='libscistring_la-sci_ascii.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_ascii.lo `test -f 'sci_gateway/cpp/sci_ascii.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_ascii.cpp
 +
 +libscistring_la-sci_strcat.lo: sci_gateway/cpp/sci_strcat.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strcat.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strcat.Tpo -c -o libscistring_la-sci_strcat.lo `test -f 'sci_gateway/cpp/sci_strcat.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strcat.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strcat.Tpo $(DEPDIR)/libscistring_la-sci_strcat.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strcat.cpp' object='libscistring_la-sci_strcat.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strcat.lo `test -f 'sci_gateway/cpp/sci_strcat.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strcat.cpp
 +
 +libscistring_la-sci_string.lo: sci_gateway/cpp/sci_string.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_string.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_string.Tpo -c -o libscistring_la-sci_string.lo `test -f 'sci_gateway/cpp/sci_string.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_string.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_string.Tpo $(DEPDIR)/libscistring_la-sci_string.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_string.cpp' object='libscistring_la-sci_string.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_string.lo `test -f 'sci_gateway/cpp/sci_string.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_string.cpp
 +
 +libscistring_la-sci_convstr.lo: sci_gateway/cpp/sci_convstr.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_convstr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_convstr.Tpo -c -o libscistring_la-sci_convstr.lo `test -f 'sci_gateway/cpp/sci_convstr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_convstr.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_convstr.Tpo $(DEPDIR)/libscistring_la-sci_convstr.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_convstr.cpp' object='libscistring_la-sci_convstr.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_convstr.lo `test -f 'sci_gateway/cpp/sci_convstr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_convstr.cpp
 +
 +libscistring_la-sci_strncpy.lo: sci_gateway/cpp/sci_strncpy.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strncpy.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strncpy.Tpo -c -o libscistring_la-sci_strncpy.lo `test -f 'sci_gateway/cpp/sci_strncpy.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strncpy.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strncpy.Tpo $(DEPDIR)/libscistring_la-sci_strncpy.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strncpy.cpp' object='libscistring_la-sci_strncpy.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strncpy.lo `test -f 'sci_gateway/cpp/sci_strncpy.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strncpy.cpp
 +
 +libscistring_la-sci_strrchr.lo: sci_gateway/cpp/sci_strrchr.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strrchr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strrchr.Tpo -c -o libscistring_la-sci_strrchr.lo `test -f 'sci_gateway/cpp/sci_strrchr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strrchr.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strrchr.Tpo $(DEPDIR)/libscistring_la-sci_strrchr.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strrchr.cpp' object='libscistring_la-sci_strrchr.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strrchr.lo `test -f 'sci_gateway/cpp/sci_strrchr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strrchr.cpp
 +
 +libscistring_la-sci_strchr.lo: sci_gateway/cpp/sci_strchr.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strchr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strchr.Tpo -c -o libscistring_la-sci_strchr.lo `test -f 'sci_gateway/cpp/sci_strchr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strchr.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strchr.Tpo $(DEPDIR)/libscistring_la-sci_strchr.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strchr.cpp' object='libscistring_la-sci_strchr.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strchr.lo `test -f 'sci_gateway/cpp/sci_strchr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strchr.cpp
 +
 +libscistring_la-sci_strstr.lo: sci_gateway/cpp/sci_strstr.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strstr.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strstr.Tpo -c -o libscistring_la-sci_strstr.lo `test -f 'sci_gateway/cpp/sci_strstr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strstr.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strstr.Tpo $(DEPDIR)/libscistring_la-sci_strstr.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strstr.cpp' object='libscistring_la-sci_strstr.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strstr.lo `test -f 'sci_gateway/cpp/sci_strstr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strstr.cpp
 +
 +libscistring_la-sci_strrev.lo: sci_gateway/cpp/sci_strrev.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strrev.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strrev.Tpo -c -o libscistring_la-sci_strrev.lo `test -f 'sci_gateway/cpp/sci_strrev.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strrev.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strrev.Tpo $(DEPDIR)/libscistring_la-sci_strrev.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strrev.cpp' object='libscistring_la-sci_strrev.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strrev.lo `test -f 'sci_gateway/cpp/sci_strrev.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strrev.cpp
 +
 +libscistring_la-sci_strtod.lo: sci_gateway/cpp/sci_strtod.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strtod.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strtod.Tpo -c -o libscistring_la-sci_strtod.lo `test -f 'sci_gateway/cpp/sci_strtod.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strtod.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strtod.Tpo $(DEPDIR)/libscistring_la-sci_strtod.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strtod.cpp' object='libscistring_la-sci_strtod.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strtod.lo `test -f 'sci_gateway/cpp/sci_strtod.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strtod.cpp
 +
 +libscistring_la-sci_tokens.lo: sci_gateway/cpp/sci_tokens.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_tokens.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_tokens.Tpo -c -o libscistring_la-sci_tokens.lo `test -f 'sci_gateway/cpp/sci_tokens.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_tokens.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_tokens.Tpo $(DEPDIR)/libscistring_la-sci_tokens.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_tokens.cpp' object='libscistring_la-sci_tokens.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_tokens.lo `test -f 'sci_gateway/cpp/sci_tokens.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_tokens.cpp
 +
 +libscistring_la-sci_strcmp.lo: sci_gateway/cpp/sci_strcmp.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strcmp.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strcmp.Tpo -c -o libscistring_la-sci_strcmp.lo `test -f 'sci_gateway/cpp/sci_strcmp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strcmp.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strcmp.Tpo $(DEPDIR)/libscistring_la-sci_strcmp.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strcmp.cpp' object='libscistring_la-sci_strcmp.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strcmp.lo `test -f 'sci_gateway/cpp/sci_strcmp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strcmp.cpp
 +
 +libscistring_la-sci_isletter.lo: sci_gateway/cpp/sci_isletter.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_isletter.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isletter.Tpo -c -o libscistring_la-sci_isletter.lo `test -f 'sci_gateway/cpp/sci_isletter.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isletter.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_isletter.Tpo $(DEPDIR)/libscistring_la-sci_isletter.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_isletter.cpp' object='libscistring_la-sci_isletter.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_isletter.lo `test -f 'sci_gateway/cpp/sci_isletter.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isletter.cpp
 +
 +libscistring_la-sci_strcspn.lo: sci_gateway/cpp/sci_strcspn.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strcspn.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strcspn.Tpo -c -o libscistring_la-sci_strcspn.lo `test -f 'sci_gateway/cpp/sci_strcspn.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strcspn.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strcspn.Tpo $(DEPDIR)/libscistring_la-sci_strcspn.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strcspn.cpp' object='libscistring_la-sci_strcspn.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strcspn.lo `test -f 'sci_gateway/cpp/sci_strcspn.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strcspn.cpp
 +
 +libscistring_la-sci_strtok.lo: sci_gateway/cpp/sci_strtok.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strtok.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strtok.Tpo -c -o libscistring_la-sci_strtok.lo `test -f 'sci_gateway/cpp/sci_strtok.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strtok.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strtok.Tpo $(DEPDIR)/libscistring_la-sci_strtok.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strtok.cpp' object='libscistring_la-sci_strtok.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strtok.lo `test -f 'sci_gateway/cpp/sci_strtok.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strtok.cpp
 +
 +libscistring_la-sci_strspn.lo: sci_gateway/cpp/sci_strspn.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strspn.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strspn.Tpo -c -o libscistring_la-sci_strspn.lo `test -f 'sci_gateway/cpp/sci_strspn.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strspn.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strspn.Tpo $(DEPDIR)/libscistring_la-sci_strspn.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strspn.cpp' object='libscistring_la-sci_strspn.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strspn.lo `test -f 'sci_gateway/cpp/sci_strspn.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strspn.cpp
 +
 +libscistring_la-sci_isalphanum.lo: sci_gateway/cpp/sci_isalphanum.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_isalphanum.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isalphanum.Tpo -c -o libscistring_la-sci_isalphanum.lo `test -f 'sci_gateway/cpp/sci_isalphanum.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isalphanum.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_isalphanum.Tpo $(DEPDIR)/libscistring_la-sci_isalphanum.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_isalphanum.cpp' object='libscistring_la-sci_isalphanum.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_isalphanum.lo `test -f 'sci_gateway/cpp/sci_isalphanum.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isalphanum.cpp
 +
 +libscistring_la-sci_isdigit.lo: sci_gateway/cpp/sci_isdigit.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_isdigit.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isdigit.Tpo -c -o libscistring_la-sci_isdigit.lo `test -f 'sci_gateway/cpp/sci_isdigit.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isdigit.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_isdigit.Tpo $(DEPDIR)/libscistring_la-sci_isdigit.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_isdigit.cpp' object='libscistring_la-sci_isdigit.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_isdigit.lo `test -f 'sci_gateway/cpp/sci_isdigit.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isdigit.cpp
 +
 +libscistring_la-sci_isascii.lo: sci_gateway/cpp/sci_isascii.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_isascii.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isascii.Tpo -c -o libscistring_la-sci_isascii.lo `test -f 'sci_gateway/cpp/sci_isascii.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isascii.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_isascii.Tpo $(DEPDIR)/libscistring_la-sci_isascii.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_isascii.cpp' object='libscistring_la-sci_isascii.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_isascii.lo `test -f 'sci_gateway/cpp/sci_isascii.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isascii.cpp
 +
 +libscistring_la-sci_strsplit.lo: sci_gateway/cpp/sci_strsplit.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_strsplit.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_strsplit.Tpo -c -o libscistring_la-sci_strsplit.lo `test -f 'sci_gateway/cpp/sci_strsplit.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strsplit.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_strsplit.Tpo $(DEPDIR)/libscistring_la-sci_strsplit.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_strsplit.cpp' object='libscistring_la-sci_strsplit.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_strsplit.lo `test -f 'sci_gateway/cpp/sci_strsplit.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_strsplit.cpp
 +
++libscistring_la-sci_isnum.lo: sci_gateway/cpp/sci_isnum.cpp
++@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscistring_la-sci_isnum.lo -MD -MP -MF $(DEPDIR)/libscistring_la-sci_isnum.Tpo -c -o libscistring_la-sci_isnum.lo `test -f 'sci_gateway/cpp/sci_isnum.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isnum.cpp
++@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscistring_la-sci_isnum.Tpo $(DEPDIR)/libscistring_la-sci_isnum.Plo
++@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='sci_gateway/cpp/sci_isnum.cpp' object='libscistring_la-sci_isnum.lo' libtool=yes @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscistring_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscistring_la-sci_isnum.lo `test -f 'sci_gateway/cpp/sci_isnum.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isnum.cpp
  mostlyclean-libtool:
        -rm -f *.lo
  
  #ifndef __STRINGTOCOMPLEX_H__
  #define __STRINGTOCOMPLEX_H__
  
++#include <wchar.h>
  #include "doublecomplex.h"
- #include "csv_complex.h"
+ #include "complex_array.h"
  #include "BOOL.h"
  
+ #include "dynlib_string.h"
  typedef enum
  {
      STRINGTOCOMPLEX_NO_ERROR = 0,
@@@ -36,7 -38,7 +39,12 @@@ extern "C" 
                                    BOOL bConvertByNAN,
                                    stringToComplexError *ierr);
  
-     csv_complexArray *stringsToCsvComplexArray(const char **pSTRs, int nbElements,
++    doublecomplex stringToComplexW(const wchar_t *pSTR,
++                                  const wchar_t *decimal,
++                                  BOOL bConvertByNAN,
++                                  stringToComplexError *ierr);
++
+     STRING_IMPEXP  complexArray *stringsToComplexArray(const char **pSTRs, int nbElements,
              const char *decimal,
              BOOL bConvertByNAN,
              stringToComplexError *ierr);
  
  #include "dynlib_string.h"
  #include "BOOL.h"
++#include <wchar.h>
  
  #define NanString "Nan"
++#define NanStringW L"Nan"
  #define InfString "Inf"
++#define InfStringW L"Inf"
  #define NegInfString "-Inf"
++#define NegInfStringW L"-Inf"
  #define PosInfString "+Inf"
++#define PosInfStringW L"+Inf"
  #define NegNanString "-Nan" /* no sense but used by some users */
++#define NegNanStringW L"-Nan" /* no sense but used by some users */
  #define PosNanString "+Nan" /* no sense but used by some users */
++#define PosNanStringW L"+Nan" /* no sense but used by some users */
  #define ScilabNanString "%nan"
++#define ScilabNanStringW L"%nan"
  #define ScilabInfString "%inf"
++#define ScilabInfStringW L"%inf"
  #define ScilabNegInfString "-%inf"
++#define ScilabNegInfStringW L"-%inf"
  #define ScilabPosInfString "+%inf"
++#define ScilabPosInfStringW L"+%inf"
  #define ScilabNegNanString "-%nan" /* no sense but used by some users */
++#define ScilabNegNanStringW L"-%nan" /* no sense but used by some users */
  #define ScilabPosNanString "+%nan" /* no sense but used by some users */
++#define ScilabPosNanStringW L"+%nan" /* no sense but used by some users */
  #define ScilabPiString "%pi"
++#define ScilabPiStringW L"%pi"
  #define ScilabNegPiString "-%pi"
++#define ScilabNegPiStringW L"-%pi"
  #define ScilabPosPiString "+%pi"
++#define ScilabPosPiStringW L"+%pi"
  
  #ifdef __cplusplus
  extern "C" {
@@@ -54,6 -54,6 +70,7 @@@
       * @return <ReturnValue>
       */
      STRING_IMPEXP double stringToDouble(const char *pSTR, BOOL bConvertByNAN, stringToDoubleError *ierr);
++    STRING_IMPEXP double stringToDoubleW(const wchar_t *pSTR, BOOL bConvertByNAN, stringToDoubleError *ierr);
  
  #ifdef __cplusplus
  }
index 4e76902,0000000..66b6582
mode 100644,000000..100644
--- /dev/null
@@@ -1,57 -1,0 +1,58 @@@
 +/*
 + *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 + *  Copyright (C) 2010-2010 - DIGITEO - Antoine ELIAS
 + *  Copyright (C) 2010-2011 - DIGITEO - Bruno JOFRET
 + *
 + *  This file must be used under the terms of the CeCILL.
 + *  This source file is licensed as described in the file COPYING, which
 + *  you should have received as part of this distribution.  The terms
 + *  are also available at
 + *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 + *
 + */
 +
 +#ifndef __STRING_GW_HXX__
 +#define __STRING_GW_HXX__
 +
 +#include "dynlib_string_gw.h"
 +
 +#include "cpp_gateway_prototype.hxx"
 +
 +class StringModule
 +{
 +private :
 +    StringModule() {};
 +    ~StringModule() {};
 +public :
 +    EXTERN_STRING_GW static int Load();
 +};
 +
 +CPP_GATEWAY_PROTOTYPE(sci_grep);
 +CPP_GATEWAY_PROTOTYPE(sci_stripblanks);
 +CPP_GATEWAY_PROTOTYPE(sci_regexp);
 +CPP_GATEWAY_PROTOTYPE(sci_part);
 +CPP_GATEWAY_PROTOTYPE(sci_length);
 +CPP_GATEWAY_PROTOTYPE(sci_strindex);
 +CPP_GATEWAY_PROTOTYPE(sci_strsubst);
 +CPP_GATEWAY_PROTOTYPE(sci_ascii);
 +CPP_GATEWAY_PROTOTYPE(sci_strcat);
 +CPP_GATEWAY_PROTOTYPE(sci_string);
 +CPP_GATEWAY_PROTOTYPE(sci_convstr);
 +CPP_GATEWAY_PROTOTYPE(sci_strncpy);
 +CPP_GATEWAY_PROTOTYPE(sci_strchr);
 +CPP_GATEWAY_PROTOTYPE(sci_strrchr);
 +CPP_GATEWAY_PROTOTYPE(sci_strstr);
 +CPP_GATEWAY_PROTOTYPE(sci_strrev);
 +CPP_GATEWAY_PROTOTYPE(sci_strtod);
 +CPP_GATEWAY_PROTOTYPE(sci_tokens);
 +CPP_GATEWAY_PROTOTYPE(sci_strcmp);
 +CPP_GATEWAY_PROTOTYPE(sci_isletter);
 +CPP_GATEWAY_PROTOTYPE(sci_strcspn);
 +CPP_GATEWAY_PROTOTYPE(sci_strtok);
 +CPP_GATEWAY_PROTOTYPE(sci_strspn);
 +CPP_GATEWAY_PROTOTYPE(sci_isalphanum);
 +CPP_GATEWAY_PROTOTYPE(sci_isdigit);
 +CPP_GATEWAY_PROTOTYPE(sci_isascii);
 +CPP_GATEWAY_PROTOTYPE(sci_strsplit);
++CPP_GATEWAY_PROTOTYPE(sci_isnum);
 +#endif /* !__STRING_GW_HXX__ */
@@@ -15,6 -15,6 +15,7 @@@
  #ifndef __STRSUBST_H__
  #define __STRSUBST_H__
  
++#include <wchar.h>
  #include "dynlib_string.h"
  
  /**
@@@ -25,8 -25,8 +26,8 @@@
  * @param[in] replacement_string
  * @return substituted string matrix
  */
--STRING_IMPEXP char **strsubst(char **strings_input,int strings_dim,char *string_to_search,char *replacement_string);
--STRING_IMPEXP char **strsubst_reg(char **strings_input,int strings_dim,char *string_to_search,char *replacement_string, int *ierr);
++STRING_IMPEXP char **strsubst(const char **strings_input, int strings_dim, const char *string_to_search, const char *replacement_string);
++STRING_IMPEXP char **strsubst_reg(const char **strings_input, int strings_dim, const char *string_to_search, const char *replacement_string, int *ierr);
  
  /**
  * substitute a character string by another in a character string
  * @param[out] error returned by pcre_private
  * @return substituted string
  */
--STRING_IMPEXP char *strsub(char* input_string, const char* string_to_search, const char* replacement_string);
--STRING_IMPEXP char *strsub_reg(char* input_string, const char* string_to_search, const char* replacement_string, int *ierr);
++STRING_IMPEXP char *strsub(const char* input_string, const char* string_to_search, const char* replacement_string);
++STRING_IMPEXP char *strsub_reg(const char* input_string, const char* string_to_search, const char* replacement_string, int *ierr);
 +
 +
- STRING_IMPEXP wchar_t **wcssubst(wchar_t** _pwstInput, int _iInputSize, wchar_t* _pwstSearch, wchar_t* _pwstReplace);
- STRING_IMPEXP wchar_t **wcssubst_reg(wchar_t** _pwstInput, int _iInputSize, wchar_t* _pwstSearch, wchar_t* _pwstReplace, int* _piErr);
++STRING_IMPEXP wchar_t **wcssubst(const wchar_t** _pwstInput, int _iInputSize, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace);
++STRING_IMPEXP wchar_t **wcssubst_reg(const wchar_t** _pwstInput, int _iInputSize, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace, int* _piErr);
 +
- STRING_IMPEXP wchar_t *wcssub(wchar_t* _pwstInput, wchar_t* _pwstSearch, wchar_t* _pwstReplace);
- STRING_IMPEXP wchar_t *wcssub_reg(wchar_t* _pwstInput, wchar_t* _pwstSearch, wchar_t* _pwstReplace, int* _piErr);
++STRING_IMPEXP wchar_t *wcssub(const wchar_t* _pwstInput, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace);
++STRING_IMPEXP wchar_t *wcssub_reg(const wchar_t* _pwstInput, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace, int* _piErr);
  
  #endif /* __STRSUBST_H__ */
index 0000000,0000000..e43d617
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,67 @@@
++/*
++ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
++ * Copyright (C) 2010 - 2012 - INRIA - Allan CORNET
++ * Copyright (C) 2011 - INRIA - Michael Baudin
++ *
++ * This file must be used under the terms of the CeCILL.
++ * This source file is licensed as described in the file COPYING, which
++ * you should have received as part of this distribution.  The terms
++ * are also available at
++ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
++ *
++ * This code is also published under the GPL v3 license.
++ *
++ */
++
++#include "function.hxx"
++#include "string.hxx"
++#include "list.hxx"
++#include "bool.hxx"
++#include "double.hxx"
++#include "function.hxx"
++#include "string_gw.hxx"
++
++extern "C"
++{
++#include "core_math.h"
++#include "localization.h"
++#include "Scierror.h"
++#include "isnum.h"
++#include "BOOL.h"
++}
++
++
++types::Function::ReturnValue sci_isnum(types::typed_list &in, int _iRetCount, types::typed_list &out)
++{
++    types::Bool* pOutBool   = NULL;
++    types::String* pString  = NULL;
++      BOOL *values            = NULL;
++
++    if(in.size() != 1)
++    {
++        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "isnum", 1);
++        return types::Function::Error;
++    }
++
++    if(_iRetCount != 1)
++    {
++        Scierror(78, _("%s: Wrong number of output argument(s): %d expected.\n"), "isnum", 1);
++        return types::Function::Error;
++    }
++
++      if(in[0]->isString() == false)
++      {
++              Scierror(999, _("%s: Wrong type for input argument #%d: String expected.\n"), "isnum", 1);
++              return types::Function::Error;
++      }
++
++    pString = in[0]->getAs<types::String>();
++
++    values = isNumMatrixW(const_cast<const wchar_t**>(pString->get()), pString->getRows(), pString->getCols());
++
++    pOutBool = new types::Bool(pString->getRows(), pString->getCols());
++    pOutBool->set((int*)values);
++    out.push_back(pOutBool);
++    return types::Function::OK;
++}
++// =============================================================================
index 68776d9,0000000..f45a6b3
mode 100644,000000..100644
--- /dev/null
@@@ -1,122 -1,0 +1,122 @@@
 +/*
 + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 + * Copyright (C) INRIA - Cong WU , Allan CORNET
 + * Copyright (C) DIGITEO - 2009 - Allan CORNET
 + *
 + * This file must be used under the terms of the CeCILL.
 + * This source file is licensed as described in the file COPYING, which
 + * you should have received as part of this distribution.  The terms
 + * are also available at
 + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 + *
 + */
 +/*------------------------------------------------------------------------*/
 +#include "funcmanager.hxx"
 +#include "string_gw.hxx"
 +#include "function.hxx"
 +#include "string.hxx"
 +#include "double.hxx"
 +
 +extern "C"
 +{
 +#include "strsubst.h"
 +#include "localization.h"
 +#include "Scierror.h"
 +#include "pcre_error.h"
 +#include "pcre_private.h"
 +#include "freeArrayOfString.h"
 +}
 +/*-------------------------------------------------------------------------------------*/
 +#define WCHAR_R L'r'
 +#define WCHAR_S L's'
 +/*-------------------------------------------------------------------------------------*/
 +
 +using namespace types;
 +
 +Function::ReturnValue sci_strsubst(typed_list &in, int _iRetCount, typed_list &out)
 +{
 +    bool bRegExp = false;
 +    if (in.size() < 3 || in.size() > 4)
 +    {
 +        Scierror(77, _("%s: Wrong number of input argument(s): %d to %d expected.\n"), "strsubst", 3, 4);
 +        return Function::Error;
 +    }
 +
 +    if (in.size() > 3)
 +    {
 +        if (in[3]->isString() == false && in[3]->getAs<types::String>()->getSize() != 1)
 +        {
 +            Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), "strsubst", 4);
 +            return Function::Error;
 +        }
 +
 +        if (in[3]->getAs<types::String>()->get(0)[0] == WCHAR_R)
 +        {
 +            bRegExp = true;
 +        }
 +        else if (in[3]->getAs<types::String>()->get(0)[0] == WCHAR_S)
 +        {
 +            bRegExp = false;
 +        }
 +        else
 +        {
 +            Scierror(999, _("%s: Wrong value for input argument #%d: 's' or 'r' expected.\n"), "strsubst", 4);
 +            return Function::Error;
 +        }
 +    }
 +
 +    if (in[2]->isString() == false || in[2]->getAs<types::String>()->getSize() != 1)
 +    {
 +        Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), "strsubst", 3);
 +        return Function::Error;
 +    }
 +
 +    wchar_t* pwstReplace = in[2]->getAs<types::String>()->get()[0];
 +
 +    if (in[1]->isString() == false || in[1]->getAs<types::String>()->getSize() != 1)
 +    {
 +        Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), "strsubst", 2);
 +        return Function::Error;
 +    }
 +
 +    wchar_t* pwstSearch = in[1]->getAs<types::String>()->get()[0];
 +
 +    if (in[0]->isDouble() && in[0]->getAs<Double>()->isEmpty())
 +    {
 +        out.push_back(Double::Empty());
 +        return Function::OK;
 +    }
 +
 +    if (in[0]->isString() == false)
 +    {
 +        Scierror(999, _("%s: Wrong type for input argument #%d: A string matrix expected.\n"), "strsubst", 1);
 +        return Function::Error;
 +    }
 +
 +    String* pS = in[0]->getAs<types::String>();
 +
 +    String* pOut = new String(pS->getRows(), pS->getCols());
 +    wchar_t** pwstOutput = NULL;
 +
 +    if (bRegExp)
 +    {
 +        int iErr = 0;
-         pwstOutput = wcssubst_reg(pS->get(), pS->getSize(), pwstSearch, pwstReplace, &iErr);
++        pwstOutput = wcssubst_reg(const_cast<const wchar_t**>(pS->get()), pS->getSize(), pwstSearch, pwstReplace, &iErr);
 +        if (iErr != NO_MATCH && iErr != PCRE_FINISHED_OK && iErr != PCRE_EXIT)
 +        {
 +            pcre_error("strsubst", iErr);
 +            delete pOut;
 +            return Function::Error;
 +        }
 +    }
 +    else
 +    {
-         pwstOutput = wcssubst(pS->get(), pS->getSize(), pwstSearch, pwstReplace);
++        pwstOutput = wcssubst(const_cast<const wchar_t**>(pS->get()), pS->getSize(), pwstSearch, pwstReplace);
 +    }
 +
 +    pOut->set(pwstOutput);
 +    freeArrayOfWideString(pwstOutput, pOut->getSize());
 +    out.push_back(pOut);
 +    return Function::OK;
 +}
 +/*-------------------------------------------------------------------------------------*/
index 68acce9,0000000..a87a3ba
mode 100644,000000..100644
--- /dev/null
@@@ -1,49 -1,0 +1,50 @@@
 +/*
 + *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 + *  Copyright (C) 2010-2010 - DIGITEO - Antoine ELIAS
 + *
 + *  This file must be used under the terms of the CeCILL.
 + *  This source file is licensed as described in the file COPYING, which
 + *  you should have received as part of this distribution.  The terms
 + *  are also available at
 + *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 + *
 + */
 +
 +#include "string_gw.hxx"
 +#include "context.hxx"
 +#include "function.hxx"
 +
 +#define MODULE_NAME L"string"
 +
 +int StringModule::Load()
 +{
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"grep", &sci_grep, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"stripblanks", &sci_stripblanks, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"regexp", &sci_regexp, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"part", &sci_part, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"length", &sci_length, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strindex", &sci_strindex, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strsubst", &sci_strsubst, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strsplit", &sci_strsplit, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"ascii", &sci_ascii, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strcat", &sci_strcat, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"string", &sci_string, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"convstr", &sci_convstr, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strncpy", &sci_strncpy, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strrchr", &sci_strrchr, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strchr", &sci_strchr, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strstr", &sci_strstr, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strrev", &sci_strrev, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strtod", &sci_strtod, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"tokens", &sci_tokens, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strcmp", &sci_strcmp, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"isletter", &sci_isletter, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strcspn", &sci_strcspn, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strtok", &sci_strtok, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"strspn", &sci_strspn, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"isalphanum", &sci_isalphanum, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"isdigit", &sci_isdigit, MODULE_NAME));
 +    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"isascii", &sci_isascii, MODULE_NAME));
++    symbol::Context::getInstance()->addFunction(types::Function::createFunction(L"isnum", &sci_isnum, MODULE_NAME));
 +    return 1;
 +}
index fc741e4,0000000..c9a0ec2
mode 100644,000000..100644
--- /dev/null
@@@ -1,268 -1,0 +1,269 @@@
 +<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup Label="ProjectConfigurations">
 +    <ProjectConfiguration Include="Debug|Win32">
 +      <Configuration>Debug</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Debug|x64">
 +      <Configuration>Debug</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|Win32">
 +      <Configuration>Release</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|x64">
 +      <Configuration>Release</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +  </ItemGroup>
 +  <PropertyGroup Label="Globals">
 +    <ProjectGuid>{AEC1F7B5-28F2-4C1F-A436-98D0352FD3F5}</ProjectGuid>
 +    <RootNamespace>string_gw</RootNamespace>
 +    <Keyword>Win32Proj</Keyword>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <CharacterSet>Unicode</CharacterSet>
 +    <WholeProgramOptimization>true</WholeProgramOptimization>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <CharacterSet>Unicode</CharacterSet>
 +    <WholeProgramOptimization>true</WholeProgramOptimization>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 +  <ImportGroup Label="ExtensionSettings">
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <PropertyGroup Label="UserMacros" />
 +  <PropertyGroup>
 +    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
 +  </PropertyGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <ClCompile>
 +      <Optimization>Disabled</Optimization>
 +      <AdditionalIncludeDirectories>../../includes;../../../functions_manager/includes;../../../types/includes;../../../symbol/includes;../../../ast/includes;../../../operations/includes;../../../api_scilab/includes;../../../core/includes;../../../elementary_functions/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../../libs/pcre;../../src/c;../../../windows_tools/includes;../../src/cpp;../../../system_env/includes;../../../dynamic_link/includes;../../../threads/includes;../../../console/includes;../../../../libs/Eigen/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;STRING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MinimalRebuild>true</MinimalRebuild>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 +      <PrecompiledHeader>
 +      </PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
 +    </ClCompile>
 +    <Link>
 +      <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <SubSystem>Windows</SubSystem>
 +      <TargetMachine>MachineX86</TargetMachine>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 +    <Midl>
 +      <TargetEnvironment>X64</TargetEnvironment>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Disabled</Optimization>
 +      <AdditionalIncludeDirectories>../../includes;../../../functions_manager/includes;../../../types/includes;../../../symbol/includes;../../../ast/includes;../../../operations/includes;../../../api_scilab/includes;../../../core/includes;../../../elementary_functions/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../../libs/pcre;../../src/c;../../../windows_tools/includes;../../src/cpp;../../../system_env/includes;../../../dynamic_link/includes;../../../threads/includes;../../../console/includes;../../../../libs/Eigen/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;STRING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MinimalRebuild>true</MinimalRebuild>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 +      <PrecompiledHeader>
 +      </PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +    </ClCompile>
 +    <Link>
 +      <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <SubSystem>Windows</SubSystem>
 +      <TargetMachine>MachineX64</TargetMachine>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <ClCompile>
 +      <Optimization>MaxSpeed</Optimization>
 +      <IntrinsicFunctions>true</IntrinsicFunctions>
 +      <AdditionalIncludeDirectories>../../includes;../../../functions_manager/includes;../../../types/includes;../../../symbol/includes;../../../ast/includes;../../../operations/includes;../../../api_scilab/includes;../../../core/includes;../../../elementary_functions/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../../libs/pcre;../../src/c;../../../windows_tools/includes;../../src/cpp;../../../system_env/includes;../../../dynamic_link/includes;../../../threads/includes;../../../console/includes;../../../../libs/Eigen/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;STRING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <PrecompiledHeader>
 +      </PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 +    </ClCompile>
 +    <Link>
 +      <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <SubSystem>Windows</SubSystem>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +      <TargetMachine>MachineX86</TargetMachine>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 +    <Midl>
 +      <TargetEnvironment>X64</TargetEnvironment>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>MaxSpeed</Optimization>
 +      <IntrinsicFunctions>true</IntrinsicFunctions>
 +      <AdditionalIncludeDirectories>../../includes;../../../functions_manager/includes;../../../types/includes;../../../symbol/includes;../../../ast/includes;../../../operations/includes;../../../api_scilab/includes;../../../core/includes;../../../elementary_functions/includes;../../../output_stream/includes;../../../localization/includes;../../../../libs/intl;../../../../libs/pcre;../../src/c;../../../windows_tools/includes;../../src/cpp;../../../system_env/includes;../../../dynamic_link/includes;../../../threads/includes;../../../console/includes;../../../../libs/Eigen/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;STRING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <PrecompiledHeader>
 +      </PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 +    </ClCompile>
 +    <Link>
 +      <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <SubSystem>Windows</SubSystem>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +      <TargetMachine>MachineX64</TargetMachine>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemGroup>
 +    <ClCompile Include="sci_ascii.cpp" />
 +    <ClCompile Include="sci_convstr.cpp" />
 +    <ClCompile Include="sci_grep.cpp" />
 +    <ClCompile Include="sci_isalphanum.cpp" />
 +    <ClCompile Include="sci_isascii.cpp" />
 +    <ClCompile Include="sci_isdigit.cpp" />
 +    <ClCompile Include="sci_isletter.cpp" />
++    <ClCompile Include="sci_isnum.cpp" />
 +    <ClCompile Include="sci_length.cpp" />
 +    <ClCompile Include="sci_part.cpp" />
 +    <ClCompile Include="sci_regexp.cpp" />
 +    <ClCompile Include="sci_strcat.cpp" />
 +    <ClCompile Include="sci_strchr.cpp" />
 +    <ClCompile Include="sci_strcmp.cpp" />
 +    <ClCompile Include="sci_strcspn.cpp" />
 +    <ClCompile Include="sci_strindex.cpp" />
 +    <ClCompile Include="sci_string.cpp" />
 +    <ClCompile Include="sci_stripblanks.cpp" />
 +    <ClCompile Include="sci_strncpy.cpp" />
 +    <ClCompile Include="sci_strrchr.cpp" />
 +    <ClCompile Include="sci_strrev.cpp" />
 +    <ClCompile Include="sci_strsplit.cpp" />
 +    <ClCompile Include="sci_strspn.cpp" />
 +    <ClCompile Include="sci_strstr.cpp" />
 +    <ClCompile Include="sci_strsubst.cpp" />
 +    <ClCompile Include="sci_strtod.cpp" />
 +    <ClCompile Include="sci_strtok.cpp" />
 +    <ClCompile Include="sci_tokens.cpp" />
 +    <ClCompile Include="string_gw.cpp" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClInclude Include="..\..\includes\dynlib_string_gw.h" />
 +    <ClInclude Include="..\..\includes\string_gw.hxx" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <Library Include="..\..\..\..\bin\blasplus.lib" />
 +    <Library Include="..\..\..\..\bin\lapack.lib" />
 +    <Library Include="..\..\..\..\bin\libintl.lib" />
 +    <Library Include="..\..\..\..\bin\pcre.lib" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ProjectReference Include="..\..\..\api_scilab\api_scilab.vcxproj">
 +      <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\ast\ast-tools\ast-tools.vcxproj">
 +      <Project>{1f4a0344-99ed-461b-bd53-1593788fb34d}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\ast\ast.vcxproj">
 +      <Project>{0d3fa25b-8116-44ec-a45e-260789daa3d9}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\console\src\c\console.vcxproj">
 +      <Project>{445d3b85-c9b1-498b-9c88-0a3c2390b1cc}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\core\src\c\core.vcxproj">
 +      <Project>{c6e2bc17-34d8-46e4-85f3-6293cb21adcd}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\localization\src\localization.vcxproj">
 +      <Project>{ecffeb0c-1eda-45ee-9a10-b18143852e17}</Project>
 +      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\operations\operations.vcxproj">
 +      <Project>{1bb396f7-ce61-4cfc-9c22-266b2cfb2e74}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\output_stream\src\c\output_stream.vcxproj">
 +      <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project>
 +      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\parse\parse.vcxproj">
 +      <Project>{74d43792-dbfc-47f0-adbc-4d7a20cdada2}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\symbol\symbol.vcxproj">
 +      <Project>{2c60033b-0dbd-4ca4-80d3-176c9be9ce2f}</Project>
 +      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\system_env\system_env.vcxproj">
 +      <Project>{7ca60aef-9afa-4d06-af28-613c0aa27640}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\types\types.vcxproj">
 +      <Project>{64e090da-dcb5-4f4d-93d7-e88ddec9c2ef}</Project>
 +      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\types\typesmacro\typesmacro.vcxproj">
 +      <Project>{9252a034-7f22-4cb1-a634-4577da69f2d0}</Project>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\..\windows_tools\src\c\scilab_windows\scilab_windows.vcxproj">
 +      <Project>{8028f371-6a94-4a26-8804-6e7f05f1d1aa}</Project>
 +      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
 +    </ProjectReference>
 +    <ProjectReference Include="..\..\src\c\string.vcxproj">
 +      <Project>{8d45767a-9b03-4905-97f6-d2f3f79141ea}</Project>
 +      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
 +    </ProjectReference>
 +  </ItemGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 +  <ImportGroup Label="ExtensionTargets">
 +  </ImportGroup>
 +</Project>
index 989a71f,0000000..85b467a
mode 100644,000000..100644
--- /dev/null
@@@ -1,117 -1,0 +1,120 @@@
 +<?xml version="1.0" encoding="utf-8"?>
 +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup>
 +    <Filter Include="Source Files">
 +      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 +      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 +    </Filter>
 +    <Filter Include="Header Files">
 +      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 +      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
 +    </Filter>
 +    <Filter Include="Resource Files">
 +      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 +      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
 +    </Filter>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClCompile Include="sci_ascii.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_convstr.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_grep.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_isletter.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_length.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_part.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_regexp.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strcat.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strchr.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strcmp.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strcspn.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strindex.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_string.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_stripblanks.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strncpy.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strrchr.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strrev.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strspn.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strstr.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strsubst.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strtod.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strtok.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_tokens.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="string_gw.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_isalphanum.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_isascii.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_isdigit.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="sci_strsplit.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
++    <ClCompile Include="sci_isnum.cpp">
++      <Filter>Source Files</Filter>
++    </ClCompile>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClInclude Include="..\..\includes\dynlib_string_gw.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +    <ClInclude Include="..\..\includes\string_gw.hxx">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <Library Include="..\..\..\..\bin\blasplus.lib" />
 +    <Library Include="..\..\..\..\bin\lapack.lib" />
 +    <Library Include="..\..\..\..\bin\libintl.lib" />
 +    <Library Include="..\..\..\..\bin\pcre.lib" />
 +  </ItemGroup>
 +</Project>
@@@ -36,12 -35,12 +35,41 @@@ BOOL *isNumMatrix(const char **pStrs, i
              int i = 0;
              for (i = 0; i < nbRows * nbCols; i++)
              {
-                 pResults[i] = csv_isNum(pStrs[i]);
+                 pResults[i] = isNum(pStrs[i]);
+             }
+         }
+     }
+     return pResults;
+ }
+ // =============================================================================
++BOOL isNumW(const wchar_t* pStr)
++{
++    if (pStr)
++    {
++        stringToComplexError ierr = STRINGTOCOMPLEX_NO_ERROR;
++        stringToComplexW(pStr, L".", FALSE, &ierr);
++        return (BOOL)(ierr == STRINGTOCOMPLEX_NO_ERROR);
++    }
++    return FALSE;
++}
++// =============================================================================
++BOOL *isNumMatrixW(const wchar_t** pStrs, int nbRows, int nbCols)
++{
++    BOOL *pResults = NULL;
++    if (pStrs)
++    {
++        pResults = (BOOL*)MALLOC(sizeof(BOOL) * (nbCols * nbRows));
++        if (pResults)
++        {
++            int i = 0;
++            for (i = 0; i < nbRows * nbCols; i++)
++            {
++                pResults[i] = isNumW(pStrs[i]);
 +            }
 +        }
 +    }
 +    return pResults;
 +}
 +// =============================================================================
  
  
  #define __CSV_ISNUM_H__
  
  #include "BOOL.h"
++#include <wchar.h>
++#include "dynlib_string.h"
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
-     BOOL csv_isNum(const char *pStr);
+     BOOL isNum(const char *pStr);
  
-     BOOL *csv_isNumMatrix(const char **pStrs, int nbRows, int nbCols);
 -    BOOL *isNumMatrix(const char **pStrs, int nbRows, int nbCols);
++    STRING_IMPEXP BOOL *isNumMatrix(const char **pStrs, int nbRows, int nbCols);
++
++    BOOL isNumW(const wchar_t *pStr);
++
++    STRING_IMPEXP BOOL *isNumMatrixW(const wchar_t **pStrs, int nbRows, int nbCols);
  
  #ifdef __cplusplus
  }
@@@ -334,10 -317,11 +337,12 @@@ lib /DEF:"$(ProjectDir)system_env_impor
      <ClInclude Include="..\..\includes\stricmp.h" />
      <ClInclude Include="..\..\includes\StringConvert.h" />
      <ClInclude Include="..\..\includes\stringToDouble.h" />
 -    <ClInclude Include="..\..\includes\stripblanks.h" />
 +    <ClInclude Include="..\..\includes\string_gw.hxx" />
      <ClInclude Include="..\..\includes\stristr.h" />
      <ClInclude Include="..\..\includes\strsubst.h" />
 +    <ClInclude Include="..\cpp\stripblanks.hxx" />
+     <ClInclude Include="..\..\includes\stringToComplex.h" />
+     <ClInclude Include="..\..\includes\complex_array.h" />
      <ClInclude Include="config.h" />
      <ClInclude Include="convstr.h" />
      <ClInclude Include="CreateEmptystr.h" />
  #include "stringToComplex.h"
  #include "stringToDouble.h"
  #include "MALLOC.h"
 -#ifdef  _MSC_VER
 -#include "strdup_windows.h"
 -#endif
 +#include "os_strdup.h"
++#include "os_wcsdup.h"
++#include "stricmp.h"
  #include "BOOL.h"
- #include "csv_strsubst.h"
+ #include "strsubst.h"
  /* ========================================================================== */
  #define PlusChar '+'
++#define PlusCharW L'+'
  #define LessChar '-'
++#define LessCharW L'-'
  #define ComplexCharI 'i'
++#define ComplexCharIW L'i'
  #define ComplexCharJ 'j'
++#define ComplexCharJW L'j'
  #define ComplexScilab "%i"
++#define ComplexScilabW L"%i"
  #define ComplexI "i"
++#define ComplexIW L"i"
  /* ========================================================================== */
  #ifndef _MSC_VER
  #ifndef strnicmp
  #endif
  /* ========================================================================== */
  static int ParseNumber(const char* tx);
++static int ParseNumberW(const wchar_t* tx);
  static stringToComplexError ParseComplexValue(const char *tx, BOOL bConvertByNAN, double *real, double *imag);
--static char *midstring(const char *tx, size_t pos, int nb);
++static stringToComplexError ParseComplexValueW(const wchar_t *tx, BOOL bConvertByNAN, double *real, double *imag);
++static char* midstring(const char *tx, size_t pos, int nb);
++static wchar_t* midstringW(const wchar_t *tx, size_t pos, int nb);
  static char *leftstring(const char *tx, size_t pos);
++static wchar_t* leftstringW(const wchar_t* tx, size_t pos);
  static BOOL is_unit_imaginary (const char *src, double *im);
++static BOOL is_unit_imaginaryW (const wchar_t* src, double *im);
  static double returnNAN(void);
  /* ========================================================================== */
- csv_complexArray *stringsToCsvComplexArray(const char **pSTRs, int nbElements,
+ complexArray *stringsToComplexArray(const char **pSTRs, int nbElements,
          const char *decimal,
          BOOL bConvertByNAN,
          stringToComplexError *ierr)
@@@ -163,6 -165,6 +176,76 @@@ doublecomplex stringToComplex(const cha
      return dComplexValue;
  }
  /* ========================================================================== */
++doublecomplex stringToComplexW(const wchar_t *pSTR, const wchar_t *decimal, BOOL bConvertByNAN, stringToComplexError *ierr)
++{
++    doublecomplex dComplexValue;
++    *ierr = STRINGTOCOMPLEX_ERROR;
++
++    dComplexValue.r = 0.;
++    dComplexValue.i = 0.;
++
++    if (pSTR)
++    {
++        double real = 0.;
++        double imag = 0.;
++        wchar_t *pStrTemp = wcssub(pSTR, L" ", L"");
++
++        if (pStrTemp)
++        {
++            wchar_t *pStrFormatted = wcssub(pStrTemp, decimal, L".");
++            FREE(pStrTemp);
++
++            if (pStrFormatted)
++            {
++                int lenStrFormatted = (int) wcslen(pStrFormatted);
++
++                /* case .4 replaced by 0.4 */
++                if (pStrFormatted[0] == '.')
++                {
++                    /* case .4 replaced by 0.4 */
++                    wchar_t *pstStrTemp = (wchar_t*)MALLOC(sizeof(wchar_t) * (lenStrFormatted + wcslen(L"0") + 1));
++                    wcscpy(pstStrTemp, L"0");
++                    wcscat(pstStrTemp, pStrFormatted);
++                    FREE(pStrFormatted);
++                    pStrFormatted = pstStrTemp;
++                }
++
++                if (lenStrFormatted > 1)
++                {
++                    if (((pStrFormatted[0] == '+') || (pStrFormatted[0] == '-')) &&
++                            (pStrFormatted[1] == '.'))
++                    {
++                        /* case +.4 replaced by +0.4 */
++                        wchar_t *pstStrTemp = wcssub(pStrFormatted, L"+.", L"+0.");
++                        FREE(pStrFormatted);
++
++                        /* case -.4 replaced by -0.4 */
++                        pStrFormatted = wcssub(pstStrTemp, L"-.", L"-0.");
++                        FREE(pstStrTemp);
++                    }
++                }
++
++                /* Case: "i", "+i", "-i", and with "j"  */
++                if (is_unit_imaginaryW(pStrFormatted, &imag))
++                {
++                    *ierr = STRINGTOCOMPLEX_NO_ERROR;
++                    dComplexValue.r = 0.;
++                    dComplexValue.i = imag;
++                }
++                else
++                {
++                    *ierr = ParseComplexValueW(pStrFormatted, bConvertByNAN, &real, &imag);
++                }
++                FREE(pStrFormatted);
++            }
++        }
++        dComplexValue.r = real;
++        dComplexValue.i = imag;
++    }
++    return dComplexValue;
++}
++/* ========================================================================== */
++
  static int ParseNumber(const char* tx)
  {
      int lookahead = 0;
      return lookahead;
  }
  /* ========================================================================== */
++static int ParseNumberW(const wchar_t* tx)
++{
++    int lookahead = 0;
++    int len = 0;
++
++    if (tx[len] == NULL)
++    {
++        return lookahead;
++    }
++    if (tx[len] < 0)
++    {
++        return lookahead;
++    }
++
++    if ((tx[len] == L'+') || (tx[len] == L'-'))
++    {
++        len++;
++    }
++
++    while (iswdigit(tx[len]))
++    {
++        len++;
++    }
++    lookahead = len;
++
++    if (tx[lookahead] == L'.')
++    {
++        lookahead++;
++        len = 0;
++        while (iswdigit(tx[len + lookahead]))
++        {
++            len++;
++        }
++        lookahead += len;
++    }
++
++    if ((tx[lookahead] == L'E') || (tx[lookahead] == L'e') ||
++            (tx[lookahead] == L'D') || (tx[lookahead] == L'd'))
++    {
++
++        lookahead++;
++        if ((tx[lookahead] == L'+') || (tx[lookahead] == L'-'))
++        {
++            lookahead++;
++        }
++
++        len = 0;
++        while (iswdigit(tx[len + lookahead]))
++        {
++            len++;
++        }
++
++        lookahead += len;
++    }
++    return lookahead;
++}
++/* ========================================================================== */
  static stringToComplexError ParseComplexValue(const char *tx, BOOL bConvertByNAN, double *real, double *imag)
  {
      stringToDoubleError ierrDouble = STRINGTODOUBLE_NO_ERROR;
      return ierr;
  }
  /* ========================================================================== */
++static stringToComplexError ParseComplexValueW(const wchar_t *tx, BOOL bConvertByNAN, double *real, double *imag)
++{
++    stringToDoubleError ierrDouble = STRINGTODOUBLE_NO_ERROR;
++    stringToComplexError ierr = STRINGTOCOMPLEX_NO_ERROR;
++    wchar_t *rnum_string = NULL;
++    wchar_t *inum_string = NULL;
++    size_t lnum = 0;
++    BOOL haveImagI = FALSE;
++    wchar_t *modifiedTxt = NULL;
++
++    *real = stringToDoubleW(tx, FALSE, &ierrDouble);
++    *imag = 0;
++
++    /* test on strlen(tx) > 1 to remove case 'e' */
++    if ((int)wcslen(tx) < 2)
++    {
++        if (ierrDouble == STRINGTODOUBLE_NO_ERROR)
++        {
++            ierr = (stringToComplexError) ierrDouble;
++        }
++        else
++        {
++            if (bConvertByNAN)
++            {
++                ierrDouble = STRINGTODOUBLE_NOT_A_NUMBER;
++                *real = returnNAN();
++                *imag = 0;
++            }
++            else
++            {
++                *real = 0;
++                *imag = 0;
++                ierr = (stringToComplexError) ierrDouble;
++            }
++        }
++    }
++    else if (ierrDouble != STRINGTODOUBLE_NO_ERROR)
++    {
++        modifiedTxt = wcssub(tx, ComplexScilabW, ComplexIW);
++        lnum = ParseNumberW(modifiedTxt);
++        if (lnum <= 1)
++        {
++            /* manages special cases nan + nani, ... */
++            if (wcsnicmp(modifiedTxt, NanStringW, wcslen(NanStringW)) == 0)
++            {
++                lnum = wcslen(NanStringW);
++            }
++            else if (wcsnicmp(modifiedTxt, InfStringW, wcslen(InfStringW)) == 0)
++            {
++                lnum = wcslen(InfStringW);
++            }
++            else if (wcsnicmp(modifiedTxt, NegInfStringW, wcslen(NegInfStringW)) == 0)
++            {
++                lnum = wcslen(NegInfStringW);
++            }
++            else if (wcsnicmp(modifiedTxt, PosInfStringW, wcslen(PosInfStringW)) == 0)
++            {
++                lnum = wcslen(PosInfStringW);
++            }
++            else if (wcsnicmp(modifiedTxt, NegNanStringW, wcslen(NegNanStringW)) == 0)
++            {
++                lnum = wcslen(NegNanStringW);
++            }
++            else if (wcsnicmp(modifiedTxt, PosNanStringW, wcslen(PosNanStringW)) == 0)
++            {
++                lnum = wcslen(PosNanStringW);
++            }
++        }
++        inum_string = midstringW(modifiedTxt, lnum, -1);
++
++        if ((inum_string[wcslen(inum_string) - 1] == L'i') ||
++                (inum_string[wcslen(inum_string) - 1] == L'j'))
++        {
++            inum_string[wcslen(inum_string) - 1] = 0;
++            if (inum_string[wcslen(inum_string) - 1] == L'*')
++            {
++                inum_string[wcslen(inum_string) - 1] = 0;
++            }
++
++            if (wcscmp(inum_string, L"+") == 0)
++            {
++                FREE(inum_string);
++                inum_string = os_wcsdup(L"+1");
++            }
++
++            if (wcscmp(inum_string, L"-") == 0)
++            {
++                FREE(inum_string);
++                inum_string = os_wcsdup(L"-1");
++            }
++            haveImagI = TRUE;
++        }
++        else
++        {
++            haveImagI = FALSE;
++        }
++        rnum_string = leftstringW(modifiedTxt, lnum);
++
++        if (wcscmp(inum_string, L"") == 0)
++        {
++            *imag = stringToDoubleW(rnum_string, bConvertByNAN, &ierrDouble);
++            ierr = (stringToComplexError)(ierrDouble);
++            *real = 0.;
++        }
++        else
++        {
++            double dReal = 0.;
++            double dImag = 0.;
++
++            stringToDoubleError ierrReal = STRINGTODOUBLE_NO_ERROR;
++            stringToDoubleError ierrImag = STRINGTODOUBLE_NO_ERROR;
++            dReal = stringToDoubleW(rnum_string, FALSE, &ierrReal);
++            dImag = stringToDoubleW(inum_string, FALSE, &ierrImag);
++
++            if ((ierrReal == STRINGTODOUBLE_NO_ERROR) && (ierrImag == STRINGTODOUBLE_NO_ERROR))
++            {
++                if (!haveImagI)
++                {
++                    if (bConvertByNAN)
++                    {
++                        ierr = STRINGTOCOMPLEX_NO_ERROR;
++                        *real = returnNAN();
++                        *imag = 0.;
++                    }
++                    else
++                    {
++                        ierr = STRINGTOCOMPLEX_ERROR;
++                    }
++                }
++                else
++                {
++                    ierr = STRINGTOCOMPLEX_NO_ERROR;
++                    *real = dReal;
++                    *imag = dImag;
++                }
++            }
++            else
++            {
++                if (bConvertByNAN)
++                {
++                    ierr = STRINGTOCOMPLEX_NO_ERROR;
++                    *real = returnNAN();
++                    *imag = 0.;
++                }
++                else
++                {
++                    ierr = STRINGTOCOMPLEX_ERROR;
++                }
++            }
++        }
++
++        if (rnum_string)
++        {
++            FREE(rnum_string);
++            rnum_string = NULL;
++        }
++        if (inum_string)
++        {
++            FREE(inum_string);
++            inum_string = NULL;
++        }
++        if (modifiedTxt)
++        {
++            FREE(modifiedTxt);
++            modifiedTxt = NULL;
++        }
++    }
++    return ierr;
++}
++/* ========================================================================== */
  static char *midstring(const char *tx, size_t pos, int nb)
  {
      char *returnString = NULL;
      return returnString;
  }
  /* ========================================================================== */
++static wchar_t* midstringW(const wchar_t* tx, size_t pos, int nb)
++{
++    wchar_t *returnString = NULL;
++    if (tx)
++    {
++        int lenTx = (int) wcslen(tx);
++        int posEnd = 0;
++        int newLen = 0;
++
++        if (nb < 0)
++        {
++            posEnd = lenTx;
++        }
++        else
++        {
++            posEnd = nb;
++        }
++        newLen = posEnd + 1;
++        if (newLen > 0)
++        {
++            returnString = (wchar_t*)MALLOC(sizeof(wchar_t) * newLen);
++            wcsncpy(returnString, &tx[pos], posEnd);
++            returnString[posEnd] = 0;
++        }
++    }
++    return returnString;
++}
++/* ========================================================================== */
  static char *leftstring(const char *tx, size_t pos)
  {
      char *returnString = NULL;
      if (tx)
      {
          int lenTx = (int) strlen(tx);
 -        returnString = strdup(tx);
 +        returnString = os_strdup(tx);
 +        if ((pos > lenTx) || (pos < 0))
 +        {
 +            return returnString;
 +        }
 +        else
 +        {
 +            returnString[pos] = 0;
 +        }
 +    }
 +    return returnString;
 +}
 +/* ========================================================================== */
++static wchar_t *leftstringW(const wchar_t *tx, size_t pos)
++{
++    wchar_t *returnString = NULL;
++    if (tx)
++    {
++        int lenTx = (int) wcslen(tx);
++        returnString = os_wcsdup(tx);
+         if ((pos > lenTx) || (pos < 0))
+         {
+             return returnString;
+         }
+         else
+         {
+             returnString[pos] = 0;
+         }
+     }
+     return returnString;
+ }
+ /* ========================================================================== */
  static BOOL is_unit_imaginary (const char *src, double *im)
  {
-     char *modifiedSrc = csv_strsubst(src, ComplexScilab, ComplexI);
+     char *modifiedSrc = strsub(src, ComplexScilab, ComplexI);
      char *nextChar = NULL;
      BOOL isUnitImag = FALSE;
  
      if (modifiedSrc == NULL)
      {
++        return isUnitImag;
++    }
++
++    if (modifiedSrc[0] == LessChar)
++    {
++        *im = -1.0;
++        nextChar = modifiedSrc + 1;
++    }
++    else
++    {
++        *im = +1.0;
++        if (modifiedSrc[0] == PlusChar)
++        {
++            nextChar = modifiedSrc + 1;
++        }
++        else
++        {
++            nextChar = modifiedSrc;
++        }
++    }
++
++    if (nextChar)
++    {
++        if ((nextChar[0] == ComplexCharI || nextChar[0] == ComplexCharJ) && nextChar[1] == 0)
++        {
++            isUnitImag = TRUE;
++        }
++    }
++
++    if (modifiedSrc)
++    {
++        FREE(modifiedSrc);
++        modifiedSrc = NULL;
++    }
++    return isUnitImag;
++}
++/* ========================================================================== */
++static BOOL is_unit_imaginaryW(const wchar_t *src, double *im)
++{
++    wchar_t *modifiedSrc = wcssub(src, ComplexScilabW, ComplexIW);
++    wchar_t *nextChar = NULL;
++    BOOL isUnitImag = FALSE;
++
++    if (modifiedSrc == NULL)
++    {
          return isUnitImag;
      }
  
@@@ -21,7 -21,9 +21,9 @@@
  #include "stringToDouble.h"
  #include "core_math.h"
  #include "MALLOC.h"
 -#ifdef  _MSC_VER
 -#include "strdup_windows.h"
 -#endif
 +#include "os_strdup.h"
++#include "os_wcsdup.h"
++#include "stricmp.h"
  #ifndef _MSC_VER
  #ifndef stricmp
  #define stricmp strcasecmp
@@@ -63,6 -65,6 +65,33 @@@ static char* replace_D_By_E(const char
      return pstReturn;
  }
  
++static wchar_t* replace_D_By_EW(const wchar_t* _pst)
++{
++    //find and replace d and D by E for compatibility with strtod Linux/Mac
++    wchar_t* pstReturn = os_wcsdup(_pst);
++    wchar_t* pstFind = pstReturn;
++    do
++    {
++        pstFind = wcschr(pstFind, L'D');
++        if(pstFind)
++        {
++            pstFind[0] = L'E';
++        }
++    }while(pstFind);
++
++    pstFind = pstReturn;
++    do
++    {
++        pstFind = wcschr(pstFind, L'd');
++        if(pstFind)
++        {
++            pstFind[0] = L'e';
++        }
++    }while(pstFind);
++
++    return pstReturn;
++}
++
  double stringToDouble(const char *pSTR, BOOL bConvertByNAN, stringToDoubleError *ierr)
  {
      double dValue = 0.0;
                      }
                      else
                      {
++                        *ierr = STRINGTODOUBLE_NOT_A_NUMBER;
++                        FREE(pstReplaced);
++                        return (dValue = 0.0);
++                    }
++                }
++            }
++
++            FREE(pstReplaced);
++        }
++        *ierr = STRINGTODOUBLE_NO_ERROR;
++    }
++    else
++    {
++        *ierr = STRINGTODOUBLE_MEMORY_ALLOCATION;
++    }
++    return dValue;
++}
++// =============================================================================
++double stringToDoubleW(const wchar_t *pSTR, BOOL bConvertByNAN, stringToDoubleError *ierr)
++{
++    double dValue = 0.0;
++    *ierr = STRINGTODOUBLE_ERROR;
++    if (pSTR)
++    {
++        if ((wcsicmp(pSTR, NanStringW) == 0) || (wcsicmp(pSTR, NegNanStringW) == 0) ||
++                (wcsicmp(pSTR, PosNanStringW) == 0) || (wcsicmp(pSTR, ScilabPosNanStringW) == 0) ||
++                (wcsicmp(pSTR, ScilabNanStringW) == 0) || (wcsicmp(pSTR, ScilabNegNanStringW) == 0))
++        {
++            dValue = returnNAN();
++        }
++        else if ((wcsicmp(pSTR, InfStringW) == 0) || (wcsicmp(pSTR, PosInfStringW) == 0) ||
++                 (wcsicmp(pSTR, ScilabInfStringW) == 0) || (wcsicmp(pSTR, ScilabPosInfStringW) == 0))
++        {
++            dValue = returnINF(TRUE);
++        }
++        else if ((wcsicmp(pSTR, NegInfStringW) == 0) || (wcsicmp(pSTR, ScilabNegInfStringW) == 0))
++        {
++            dValue = returnINF(FALSE);
++        }
++        else if ((wcsicmp(pSTR, ScilabPiStringW) == 0) || (wcsicmp(pSTR, ScilabPosPiStringW) == 0))
++        {
++            dValue = M_PI;
++        }
++        else if (wcsicmp(pSTR, ScilabNegPiStringW) == 0)
++        {
++            dValue = -M_PI;
++        }
++        else
++        {
++            wchar_t* pstReplaced = replace_D_By_EW(pSTR);
++            wchar_t *pEnd = NULL;
++            double v = wcstod(pstReplaced, &pEnd);
++            if ((v == 0) && (pEnd == pstReplaced))
++            {
++                if (bConvertByNAN)
++                {
++                    dValue = returnNAN();
++                }
++                else
++                {
++                    *ierr = STRINGTODOUBLE_NOT_A_NUMBER;
++                    FREE(pstReplaced);
++                    return (dValue = 0.0);
++                }
++            }
++            else
++            {
++                if (wcscmp(pEnd, L"") == 0)
++                {
++                    dValue = v;
++                }
++                else
++                {
++                    if (bConvertByNAN)
++                    {
++                        dValue = returnNAN();
++                    }
++                    else
++                    {
                          *ierr = STRINGTODOUBLE_NOT_A_NUMBER;
                          FREE(pstReplaced);
                          return (dValue = 0.0);
  #include "strsubst.h"
  #include "MALLOC.h"
  #include "pcre_private.h"
 -#ifdef _MSC_VER
 -#include "strdup_windows.h"
 -#endif
 +#include "os_strdup.h"
 +#include "os_wcsdup.h"
  #include "charEncoding.h"
  /*--------------------------------------------------------------------------*/
--char **strsubst(char **strings_input, int strings_dim, char *string_to_search, char *replacement_string)
++char **strsubst(const char **strings_input, int strings_dim, const char *string_to_search, const char *replacement_string)
  {
      char **replacedStrings = NULL;
  
      if ( (strings_input) && (string_to_search) && (replacement_string) )
      {
          int i = 0;
 -        replacedStrings = (char**)MALLOC(sizeof(char*)*strings_dim);
 +        replacedStrings = (char**)MALLOC(sizeof(char*) * strings_dim);
          for (i = 0; i < strings_dim; i++)
          {
--            char *str = strings_input[i];
++            const char *str = strings_input[i];
              replacedStrings[i] = strsub (str, string_to_search, replacement_string);
          }
      }
      return replacedStrings;
  }
  /*--------------------------------------------------------------------------*/
--char **strsubst_reg(char **strings_input, int strings_dim, char *string_to_search, char *replacement_string, int *ierr)
++char **strsubst_reg(const char **strings_input, int strings_dim, const char *string_to_search, const char *replacement_string, int *ierr)
  {
      char **replacedStrings = NULL;
  
      if ( (strings_input) && (string_to_search) && (replacement_string) )
      {
          int i = 0;
 -        replacedStrings = (char**)MALLOC(sizeof(char*)*strings_dim);
 +        replacedStrings = (char**)MALLOC(sizeof(char*) * strings_dim);
          for (i = 0; i < strings_dim; i++)
          {
--            char *str = strings_input[i];
++            const char *str = strings_input[i];
              replacedStrings[i] = strsub_reg(str, string_to_search, replacement_string, ierr);
          }
      }
      return replacedStrings;
  }
  /*-------------------------------------------------------------------------------------*/
--char *strsub(char* input_string, const char* string_to_search, const char* replacement_string)
++char *strsub(const char* input_string, const char* string_to_search, const char* replacement_string)
  {
--    char *occurrence_str = NULL, *result_str = NULL;
 -
 -
++    const char *occurrence_str = NULL;
++    char* result_str = NULL;
      char *replacedString = NULL;
      int count = 0, len = 0;
  
          }
          len = count * ((int)strlen(replacement_string) - (int)strlen(string_to_search)) + (int)strlen(input_string);
      }
 -    else len = (int)strlen(input_string);
 +    else
 +    {
 +        len = (int)strlen(input_string);
 +    }
  
--    replacedString = MALLOC (sizeof(char) * (len + 1));
 -    if (replacedString == NULL) return NULL;
++    replacedString = (char*)MALLOC (sizeof(char) * (len + 1));
 +    if (replacedString == NULL)
 +    {
 +        return NULL;
 +    }
  
      occurrence_str = input_string;
      result_str = replacedString;
  
      return replacedString;
  }/*-------------------------------------------------------------------------------------*/
--char *strsub_reg(char* input_string, const char* string_to_search, const char* replacement_string, int *ierr)
++char *strsub_reg(const char* input_string, const char* string_to_search, const char* replacement_string, int *ierr)
  {
      pcre_error_code w = PCRE_FINISHED_OK;
  
  
      if (string_to_search == NULL || replacement_string == NULL)
      {
 -        return strdup(input_string);
 +        return os_strdup(input_string);
      }
  
--    w = pcre_private(input_string, (char*)string_to_search, &Output_Start, &Output_End, NULL, NULL);
++    w = pcre_private((char*)input_string, (char*)string_to_search, &Output_Start, &Output_End, NULL, NULL);
      if (w != PCRE_FINISHED_OK)
      {
          *ierr = (int)w;
      return replacedString;
  }
  /*-------------------------------------------------------------------------------------*/
- wchar_t *wcssub_reg(wchar_t* _pwstInput, wchar_t* _pwstSearch, wchar_t* _pwstReplace, int* _piErr)
++wchar_t *wcssub_reg(const wchar_t* _pwstInput, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace, int* _piErr)
 +{
 +    pcre_error_code iPcreStatus = PCRE_FINISHED_OK;
 +    int iStart = 0;
 +    int iEnd = 0;
 +    int iLen = 0;
 +
 +    wchar_t* pwstOutput = NULL;
 +
 +    if (_pwstInput == NULL)
 +    {
 +        return NULL;
 +    }
 +
 +    if (_pwstSearch == NULL || _pwstReplace == NULL)
 +    {
 +        return os_wcsdup(_pwstInput);
 +    }
 +
-     iPcreStatus = wide_pcre_private(_pwstInput, _pwstSearch, &iStart, &iEnd, NULL, NULL);
++    iPcreStatus = wide_pcre_private((wchar_t*)_pwstInput, (wchar_t*)_pwstSearch, &iStart, &iEnd, NULL, NULL);
 +    if (iPcreStatus != PCRE_FINISHED_OK)
 +    {
 +        *_piErr = iPcreStatus;
 +        return os_wcsdup(_pwstInput);
 +    }
 +
 +    //compute new size of output string
 +    iLen += (int)wcslen(_pwstReplace) - (iEnd - iStart);
 +
 +    pwstOutput = (wchar_t*)MALLOC(sizeof(wchar_t) * (wcslen(_pwstInput) + iLen + 1));
 +    memset(pwstOutput, 0x00, sizeof(wchar_t) * (wcslen(_pwstInput) + iLen + 1));
 +
 +    //copy start of original string
 +    wcsncpy(pwstOutput, _pwstInput, iStart);
 +    //copy replace string
 +    wcscpy(pwstOutput + wcslen(pwstOutput), _pwstReplace);
 +    //copy end of original string
 +    wcscpy(pwstOutput + wcslen(pwstOutput), _pwstInput + iEnd);
 +
 +    *_piErr = iPcreStatus;
 +    return pwstOutput;
 +}
 +/*-------------------------------------------------------------------------------------*/
- wchar_t **wcssubst_reg(wchar_t** _pwstInput, int _iInputSize, wchar_t* _pwstSearch, wchar_t* _pwstReplace, int* _piErr)
++wchar_t **wcssubst_reg(const wchar_t** _pwstInput, int _iInputSize, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace, int* _piErr)
 +{
 +    wchar_t** pwstOutput = NULL;
 +
 +    if (_pwstInput != NULL && _pwstSearch != NULL && _pwstReplace != NULL)
 +    {
 +        int i = 0;
 +        pwstOutput = (wchar_t**)MALLOC(sizeof(wchar_t*) * _iInputSize);
 +        for (i = 0 ; i < _iInputSize ; i++)
 +        {
-             wchar_t* pwst = _pwstInput[i];
++            const wchar_t* pwst = _pwstInput[i];
 +            pwstOutput[i] = wcssub_reg(pwst, _pwstSearch, _pwstReplace, _piErr);
 +        }
 +    }
 +    return pwstOutput;
 +}
 +/*-------------------------------------------------------------------------------------*/
- wchar_t **wcssubst(wchar_t** _pwstInput, int _iInputSize, wchar_t* _pwstSearch, wchar_t* _pwstReplace)
++wchar_t **wcssubst(const wchar_t** _pwstInput, int _iInputSize, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace)
 +{
 +    wchar_t** pwstOutput = NULL;
 +
 +    if (_pwstInput != NULL && _pwstSearch != NULL && _pwstReplace != NULL)
 +    {
 +        int i = 0;
 +        pwstOutput = (wchar_t**)MALLOC(sizeof(wchar_t*) * _iInputSize);
 +        for (i = 0 ; i < _iInputSize ; i++)
 +        {
-             wchar_t* pwst = _pwstInput[i];
++            const wchar_t* pwst = _pwstInput[i];
 +            if (wcslen(pwst) == 0)
 +            {
 +                pwstOutput[i] = os_wcsdup(L"");
 +            }
 +            else
 +            {
 +                pwstOutput[i] = wcssub(pwst, _pwstSearch, _pwstReplace);
 +            }
 +        }
 +    }
 +    return pwstOutput;
 +}
 +/*-------------------------------------------------------------------------------------*/
- wchar_t *wcssub(wchar_t* _pwstInput, wchar_t* _pwstSearch, wchar_t* _pwstReplace)
++wchar_t *wcssub(const wchar_t* _pwstInput, const wchar_t* _pwstSearch, const wchar_t* _pwstReplace)
 +{
 +    int i               = 0;
 +    int iOccurs         = 0;
 +    size_t iReplace     = 0;
 +    size_t iSearch      = 0;
 +    size_t iOffset      = 0;
 +
 +    size_t* piStart     = NULL;
 +
-     wchar_t* pwstPos    = NULL;
-     wchar_t* pwstOutput = NULL;
++    const wchar_t* pwstPos  = NULL;
++    wchar_t* pwstOutput     = NULL;
 +
 +    if (_pwstInput == NULL)
 +    {
 +        return NULL;
 +    }
 +
 +    if (_pwstSearch == NULL || _pwstReplace == NULL)
 +    {
 +        return os_wcsdup(_pwstInput);
 +    }
 +
 +    iSearch     = wcslen(_pwstSearch);
 +    iReplace    = wcslen(_pwstReplace);
 +    piStart     = (size_t*)MALLOC(sizeof(size_t) * wcslen(_pwstInput));
 +    pwstPos     = _pwstInput;
 +
 +    while (pwstPos)
 +    {
 +        pwstPos = wcsstr(pwstPos, _pwstSearch);
 +        if (pwstPos)
 +        {
 +            piStart[iOccurs++]  = pwstPos - _pwstInput;
 +            iOffset             += iReplace - iSearch;
 +            pwstPos++;
 +        }
 +    }
 +
 +    pwstOutput = (wchar_t*)MALLOC(sizeof(wchar_t) * (wcslen(_pwstInput) + iOffset + 1));
 +    memset(pwstOutput, 0x00, sizeof(wchar_t) * (wcslen(_pwstInput) + iOffset + 1));
 +
 +    if (iOccurs == 0)
 +    {
 +        wcscpy(pwstOutput, _pwstInput);
 +    }
 +    else
 +    {
 +        for (i = 0 ; i < iOccurs ; i++)
 +        {
 +            if (i == 0)
 +            {
 +                //copy start of original string
 +                wcsncpy(pwstOutput, _pwstInput, piStart[i]);
 +            }
 +            else
 +            {
 +                //copy start of original string
 +                wcsncpy(pwstOutput + wcslen(pwstOutput), _pwstInput + piStart[i - 1] + iSearch, piStart[i] - (iSearch + piStart[i - 1]));
 +            }
 +            //copy replace string
 +            wcscpy(pwstOutput + wcslen(pwstOutput), _pwstReplace);
 +        }
 +        //copy end of original string
 +        wcscpy(pwstOutput + wcslen(pwstOutput), _pwstInput + piStart[iOccurs - 1] + iSearch);
 +    }
 +
 +    return pwstOutput;
 +}
 +/*-------------------------------------------------------------------------------------*/
@@@ -90,18 -97,55 +95,55 @@@ void UpdateBrowseVar(BOOL update
          }
          else
          {
-             // 11 =strlen("2147483647")+1 (1 for security)
-             sizeStr = (char *)MALLOC((11 + 11 + 1 + 1) * sizeof(char));
-             sprintf(sizeStr, "%dx%d", nbRows, nbCols);
-             pstAllVariableSizes[i] = os_strdup(sizeStr);
-             FREE(sizeStr);
+             pstAllVariableSizes[i] = valueToDisplay(pstAllVariableNames[i], piAllVariableTypes[i], nbRows, nbCols);
+         }
+         if (piAllVariableTypes[i] == sci_ints)
+         {
+             // Integer case
+             int iPrec       = 0;
 -            err = getNamedMatrixOfIntegerPrecision(pvApiCtx, pstAllVariableNames[i], &iPrec);
++            err = getNamedMatrixOfIntegerPrecision(NULL, pstAllVariableNames[i], &iPrec);
+             switch (iPrec)
+             {
+                 case SCI_INT8:
+                     piAllVariableIntegerTypes[i] = 8;
+                     break;
+                 case SCI_INT16:
+                     piAllVariableIntegerTypes[i] = 16;
+                     break;
+                 case SCI_INT32:
+                     piAllVariableIntegerTypes[i] = 32;
+                     break;
+ #ifdef __SCILAB_INT64__
+                 case SCI_INT64:
+                     piAllVariableIntegerTypes[i] = 64;
+                     break;
+ #endif
+                 default:
+                     piAllVariableIntegerTypes[i] = 0; // Should never occurs
+                     break;
+             }
+         }
+         else
+         {
+             piAllVariableIntegerTypes[i] = -1;
          }
  
+         if (piAllVariableTypes[i] == sci_tlist || piAllVariableTypes[i] == sci_mlist)
+         {
+             pstAllVariableListTypes[i] = getListName(pstAllVariableNames[i]);
+         }
+         else
+         {
+             pstAllVariableListTypes[i] = strdup("");
+         }
          // global / local ??
 -        pstAllVariableVisibility[i] = strdup("local");
 +        pstAllVariableVisibility[i] = os_strdup("local");
  
-         if (scilabDefaultVariablesSet.find(string(pstAllVariableNames[i])) == scilabDefaultVariablesSet.end() && piAllVariableTypes[i] != sci_c_function    /*TODO: voir si je fais sauter ou pas */
-                 && piAllVariableTypes[i] != sci_lib)
+         if (scilabDefaultVariablesSet.find(string(pstAllVariableNames[i])) == scilabDefaultVariablesSet.end() && piAllVariableTypes[i] != sci_lib)
          {
              piAllVariableFromUser[i] = TRUE;
          }
      {
          // name
          pstAllVariableNames[i] = getGlobalNamefromId(j);
-         // Bytes used
-         piAllVariableBytes[i] = getGlobalSizefromId(j);
+         // Bytes used - 8 is the number of bytes in a word
+         piAllVariableBytes[i] = getGlobalSizefromId(j) * 8;
          // type
          // Calling "API Scilab": not yet implemented for global variable
 -        //getNamedVarType(pvApiCtx, pstAllVariableNames[i], &piAllVariableTypes[i]);
 +        //getNamedVarType(NULL, pstAllVariableNames[i], &piAllVariableTypes[i]);
          // Using old stack operations...
 -        int pos = C2F(vstk).isiz + 2 + j;
 +        //int pos = C2F(vstk).isiz + 2 + j;
  
 -        piAllVariableTypes[i] = C2F(gettype) (&pos);
 +        //piAllVariableTypes[i] = C2F(gettype) (&pos);
 +        getNamedVarType(NULL, pstAllVariableNames[i], &piAllVariableTypes[i]);
  
          // Sizes of the variable
 -        getNamedVarDimension(pvApiCtx, pstAllVariableNames[i], &nbRows, &nbCols);
 +        getNamedVarDimension(NULL, pstAllVariableNames[i], &nbRows, &nbCols);
-         // 11 =strlen("2147483647")+1 (1 for security)
-         sizeStr = (char *)MALLOC((11 + 11 + 1 + 1) * sizeof(char));
-         sprintf(sizeStr, "%dx%d", nbRows, nbCols);
-         pstAllVariableSizes[i] = os_strdup(sizeStr);
-         FREE(sizeStr);
+         pstAllVariableSizes[i] = valueToDisplay(pstAllVariableNames[i], piAllVariableTypes[i], nbRows, nbCols);
  
          // global / local ??
 -        pstAllVariableVisibility[i] = strdup("global");
 +        pstAllVariableVisibility[i] = os_strdup("global");
  
+         if (piAllVariableTypes[i] == sci_tlist || piAllVariableTypes[i] == sci_mlist)
+         {
+             pstAllVariableListTypes[i] = getListName(pstAllVariableNames[i]);
+         }
+         else
+         {
 -            pstAllVariableListTypes[i] = strdup("");
++            pstAllVariableListTypes[i] = os_strdup("");
+         }
          if (scilabDefaultVariablesSet.find(string(pstAllVariableNames[i])) == scilabDefaultVariablesSet.end()
                  && piAllVariableTypes[i] != sci_c_function && piAllVariableTypes[i] != sci_lib)
          {
@@@ -236,3 -292,118 +291,118 @@@ static std::set < string > createScilab
  
      return ScilabDefaultVariables;
  }
+ static char * getListName(char * variableName)
+ {
+     SciErr sciErr;
+     int *piAddr = NULL;
+     int* piAddr1 = NULL;
+     int iRows = 0;
+     int iCols = 0;
+     char **pstType;
+     char *tmpChar;
 -    sciErr = getVarAddressFromName(pvApiCtx, variableName, &piAddr);
++    sciErr = getVarAddressFromName(NULL, variableName, &piAddr);
+     if (sciErr.iErr)
+     {
 -        return strdup("");
++        return os_strdup("");
+     }
 -    sciErr = getListItemAddress(pvApiCtx, piAddr, 1, &piAddr1);
++    sciErr = getListItemAddress(NULL, piAddr, 1, &piAddr1);
+     if (sciErr.iErr)
+     {
 -        return strdup("");
++        return os_strdup("");
+     }
 -    if (getAllocatedMatrixOfString(pvApiCtx, piAddr1, &iRows, &iCols, &pstType))
++    if (getAllocatedMatrixOfString(NULL, piAddr1, &iRows, &iCols, &pstType))
+     {
 -        return strdup("");
++        return os_strdup("");
+     }
 -    tmpChar = strdup(pstType[0]);
++    tmpChar = os_strdup(pstType[0]);
+     freeAllocatedMatrixOfString(iRows, iCols, pstType);
+     return tmpChar;
+ }
+ static char * valueToDisplay(char * variableName, int variableType, int nbRows, int nbCols) {
+     SciErr err;
+             // 4 is the dimension max to which display the content
+             if (nbRows * nbCols <= 4 && variableType == sci_matrix)
+             {
+                 // Small double value, display it
+                 double* pdblReal = (double *)malloc(((nbRows) * (nbCols)) * sizeof(double));
+                 double* pdblImg = (double *)malloc(((nbRows) * (nbCols)) * sizeof(double));
+                 BOOL isComplex = FALSE;
 -                if (isNamedVarComplex(pvApiCtx, variableName))
++                if (isNamedVarComplex(NULL, variableName))
+                 {
 -                    err = readNamedComplexMatrixOfDouble(pvApiCtx, variableName, &nbRows, &nbCols, pdblReal, pdblImg);
++                    err = readNamedComplexMatrixOfDouble(NULL, variableName, &nbRows, &nbCols, pdblReal, pdblImg);
+                     isComplex = TRUE;
+                 }
+                 else
+                 {
 -                    err = readNamedMatrixOfDouble(pvApiCtx, variableName, &nbRows, &nbCols, pdblReal);
++                    err = readNamedMatrixOfDouble(NULL, variableName, &nbRows, &nbCols, pdblReal);
+                 }
 -                return strdup(formatMatrix(nbRows, nbCols, isComplex, pdblReal, pdblImg).c_str());
++                return os_strdup(formatMatrix(nbRows, nbCols, isComplex, pdblReal, pdblImg).c_str());
+             }
+             else
+             {
+                 char *sizeStr = NULL;
+                 // 11 =strlen("2147483647")+1 (1 for security)
+                 sizeStr = (char *)MALLOC((11 + 11 + 1 + 1) * sizeof(char));
+                 sprintf(sizeStr, "%dx%d", nbRows, nbCols);
+                 return sizeStr;
+             }
+ }
+ std::string formatMatrix(int nbRows, int nbCols, BOOL isComplex, double *pdblReal, double *pdblImg)
+ {
+     int i, j ;
+ #define PRECISION_DISPLAY 3
+     if (nbRows * nbCols == 1)
+     {
+         std::ostringstream os;
+         os.precision(PRECISION_DISPLAY);
+         os << pdblReal[0]; // Convert the double to string
+         if (isComplex)
+         {
+             os << " + " << pdblImg[0] << "i";
+         }
+         return os.str();
+     }
+     std::string formated = "[";
+     for (j = 0 ; j < nbRows ; j++)
+     {
+         for (i = 0 ; i < nbCols ; i++)
+         {
+             /* Display the formated matrix ... the way the user
+              * expect */
+             std::ostringstream os;
+             os.precision(PRECISION_DISPLAY);
+             os << pdblReal[i * nbRows + j]; // Convert the double to string
+             formated += os.str();
+             if (isComplex)
+             {
+                 std::ostringstream osComplex;
+                 osComplex.precision(PRECISION_DISPLAY);
+                 osComplex << pdblImg[i * nbRows + j];
+                 formated += " + " + osComplex.str() + "i";
+             }
+             if (i + 1 != nbCols) // Not the last element of the matrix
+             {
+                 formated += ", ";
+             }
+         }
+         if (j + 1 != nbRows) // Not the last line of the matrix
+         {
+             formated += "; ";
+         }
+     }
+     return formated + "]";
+ }