fix string test : 59/15559/4
Antoine ELIAS [Fri, 14 Nov 2014 12:55:56 +0000 (13:55 +0100)]
 - string(:)
 - string(1:$)
 - ascii("...") must return positive values
 - change tests on macr2tree in not fixed
 - length(sparse) -> return size(sparse, "*")

Change-Id: I6e4b30f5b4ac98658130d01ee0bd16bc47bb08f6

31 files changed:
scilab/modules/ast/src/cpp/ast/printvisitor.cpp
scilab/modules/ast/src/cpp/types/implicitlist.cpp
scilab/modules/ast/src/cpp/types/tostring_common.cpp
scilab/modules/localization/includes/charEncoding.h
scilab/modules/localization/src/c/charEncoding.c
scilab/modules/string/sci_gateway/cpp/sci_ascii.cpp
scilab/modules/string/sci_gateway/cpp/sci_strindex.cpp
scilab/modules/string/sci_gateway/cpp/sci_string.cpp
scilab/modules/string/tests/nonreg_tests/bug_10641.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_10641.tst
scilab/modules/string/tests/nonreg_tests/bug_1305.tst
scilab/modules/string/tests/nonreg_tests/bug_3410.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_3410.tst
scilab/modules/string/tests/nonreg_tests/bug_3543.tst
scilab/modules/string/tests/nonreg_tests/bug_4141.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_4141.tst
scilab/modules/string/tests/nonreg_tests/bug_4727.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_4727.tst
scilab/modules/string/tests/nonreg_tests/bug_4728.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_4728.tst
scilab/modules/string/tests/nonreg_tests/bug_7163.tst
scilab/modules/string/tests/nonreg_tests/bug_7205.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_7205.tst
scilab/modules/string/tests/nonreg_tests/bug_7249.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_7249.tst
scilab/modules/string/tests/nonreg_tests/bug_7282.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_7282.tst
scilab/modules/string/tests/nonreg_tests/bug_8528.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_8528.tst
scilab/modules/string/tests/nonreg_tests/bug_9838.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_9838.tst

index 469ce86..6dce552 100644 (file)
@@ -509,16 +509,26 @@ void PrintVisitor::visit (const CaseExp &e)
 
 void PrintVisitor::visit (const SeqExp  &e)
 {
+    int previousLine = -1;
     for (exps_t::const_iterator it = e.getExps().begin (), itEnd = e.getExps().end(); it != itEnd; ++it)
     {
         this->apply_indent();
+
+        if (previousLine != -1 && (*it)->getLocation().first_line != previousLine)
+        {
+            *ostr << std::endl;
+        }
+
         (*it)->getOriginal()->accept(*this);
         if (!(*it)->isVerbose())
         {
             *ostr << ";";
         }
-        *ostr << std::endl;
+
+        previousLine = (*it)->getLocation().last_line;
     }
+
+    *ostr << std::endl;
 }
 
 void PrintVisitor::visit (const ArrayListExp  &e)
index f8172b5..af59c8c 100644 (file)
@@ -702,6 +702,9 @@ std::wstring printInLinePoly(types::SinglePoly* _pPoly, std::wstring _stVar)
             df.bPrintPlusSign = true;
             df.bPrintOne = i == 0;
             df.bPaddSign = false;
+            df.bPrintBlank = false;
+            df.bPrintPlusSign = false;
+
             addDoubleValue(&ostr, pdblIn[i], &df);
             if (i != 0)
             {
@@ -721,7 +724,10 @@ std::wstring printDouble(types::Double* _pD)
     std::wostringstream ostr;
     DoubleFormat df;
     getDoubleFormat(_pD->get(0), &df);
+    df.bPrintPoint = false;
     df.bPaddSign = true;
+    df.bPaddSign = false;
+    df.bPrintBlank = false;
     addDoubleValue(&ostr, _pD->get(0), &df);
     return ostr.str();
 }
index bc665e4..345bf0b 100644 (file)
@@ -213,9 +213,9 @@ void getComplexFormat(double _dblR, double _dblI, int *_piTotalWidth, DoubleForm
 
 void addDoubleValue(std::wostringstream * _postr, double _dblVal, DoubleFormat * _pDF)
 {
-    wchar_t pwstFormat[32];
-    wchar_t pwstOutput[32];     // > @ format max
-    wchar_t pwstSign[32];
+    wchar_t pwstFormat[32] = {0};
+    wchar_t pwstOutput[32] = {0};     // > @ format max
+    wchar_t pwstSign[32] = {0};
 
     if (_pDF == NULL)
     {
index d0ca07e..b4a90b8 100644 (file)
@@ -52,7 +52,7 @@ extern "C" {
     * @param[in] UTF string
     * @return wide char string converted
     */
-    wchar_t *to_wide_string(const char *_UTFStr);
+    wchar_t* to_wide_string(const char *_UTFStr);
 
     /**
     * convert a wide char string to UTF-8
index 13fe3e9..3facb07 100644 (file)
@@ -22,6 +22,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <locale.h>
+
 #include "charEncoding.h"
 #include "sci_malloc.h"
 /*--------------------------------------------------------------------------*/
@@ -43,7 +44,6 @@ char *wide_string_to_UTF8(const wchar_t *_wide)
     {
         return (char *)NULL;
     }
-    size += 1;
     buf = (char*)MALLOC(sizeof(char) * size);
     if (buf)
     {
@@ -54,6 +54,8 @@ char *wide_string_to_UTF8(const wchar_t *_wide)
             return (char *)NULL;
         }
     }
+
+    buf[size - 1] = '\0';
     return buf;
 }
 /*--------------------------------------------------------------------------*/
@@ -61,37 +63,38 @@ wchar_t *to_wide_string(const char *_UTFStr)
 {
     int nwide = 0;
     wchar_t *_buf = NULL;
-
-    /* About MultiByteToWideChar :
-    Starting with Windows Vista,
-    the function does not drop illegal code points
-    if the application does not set this flag.
-
-    Windows XP: To prevent the security problem of the non-shortest-form
-    versions of UTF-8 characters, MultiByteToWideChar deletes these characters.
-    */
-
     DWORD dwFlags = 0;
+    UINT codePage = CP_ACP;
 
     if (_UTFStr == NULL)
     {
         return NULL;
     }
-    nwide = MultiByteToWideChar(CP_UTF8, dwFlags, _UTFStr, -1, NULL, 0);
+
+    if (IsValidUTF8(_UTFStr))
+    {
+        codePage = CP_UTF8;
+    }
+
+    nwide = MultiByteToWideChar(codePage, dwFlags, _UTFStr, -1, NULL, 0);
     if (nwide == 0)
     {
         return NULL;
     }
+
     _buf = (wchar_t *)MALLOC(nwide * sizeof(wchar_t));
     if (_buf == NULL)
     {
         return NULL;
     }
-    if (MultiByteToWideChar(CP_UTF8, dwFlags, _UTFStr, -1, _buf, nwide) == 0)
+
+    if (MultiByteToWideChar(codePage, dwFlags, _UTFStr, -1, _buf, nwide) == 0)
     {
         FREE(_buf);
         _buf = NULL;
     }
+
+    _buf[nwide - 1] = L'\0';
     return _buf;
 }
 /*--------------------------------------------------------------------------*/
@@ -113,14 +116,14 @@ char *wide_string_to_UTF8(const wchar_t *_wide)
     size_t iLeftIn = 0;
     size_t iLeftOut = 0;
     char* pOut = NULL;
-    iconv_t cd_UTF16_to_UTF8 = iconv_open("UTF-8", "UTF-32LE");
+    iconv_t cd_UTF16_to_UTF8 = iconv_open("UTF-8", "WCHAR_T");
 
     if (_wide == NULL)
     {
         return NULL;
     }
 
-    pSaveIn = _wide;
+    pSaveIn = (wchar_t*)_wide;
     iLeftIn = wcslen(_wide) * sizeof(wchar_t);
 
     iLeftOut = iLeftIn + (1 * sizeof(wchar_t));
@@ -148,7 +151,7 @@ wchar_t *to_wide_string(const char *_UTFStr)
 
     wchar_t* pOut = NULL;
 
-    iconv_t cd_UTF8_to_UTF16 = iconv_open("UTF-32LE", "UTF-8");
+    iconv_t cd_UTF8_to_UTF16 = iconv_open("WCHAR_T", "UTF-8");
 
     if (_UTFStr == NULL)
     {
@@ -156,18 +159,18 @@ wchar_t *to_wide_string(const char *_UTFStr)
     }
 
     iLeftIn = strlen(_UTFStr);
-    pInSave = _UTFStr;
+    pInSave = (char*)_UTFStr;
 
     iLeftOut = (iLeftIn + 1) * sizeof(wchar_t);
     pOut = (wchar_t*)MALLOC(iLeftOut);
     memset(pOut, 0x00, iLeftOut);
     pOutSave = pOut;
 
-    iSize = iconv(cd_UTF8_to_UTF16, &_UTFStr, &iLeftIn, (char**)&pOut, &iLeftOut);
+    iSize = iconv(cd_UTF8_to_UTF16, (char**)&_UTFStr, &iLeftIn, (char**)&pOut, &iLeftOut);
     iconv_close(cd_UTF8_to_UTF16);
     if (iSize == (size_t)(-1))
     {
-        iconv_t cd_ISO8851_to_UTF16 = iconv_open("UTF-32LE", "ISO_8859-1");
+        iconv_t cd_ISO8851_to_UTF16 = iconv_open("WCHAR_T", "ISO_8859-1");
 
         _UTFStr = pInSave;
         iLeftIn = strlen(_UTFStr);
@@ -177,7 +180,7 @@ wchar_t *to_wide_string(const char *_UTFStr)
         memset(pOut, 0x00, iLeftOut);
 
 
-        iSize = iconv(cd_ISO8851_to_UTF16, &_UTFStr, &iLeftIn, (char**)&pOut, &iLeftOut);
+        iSize = iconv(cd_ISO8851_to_UTF16, (char**)&_UTFStr, &iLeftIn, (char**)&pOut, &iLeftOut);
         iconv_close(cd_ISO8851_to_UTF16);
         if (iSize == (size_t)(-1))
         {
index 957381a..db56eca 100644 (file)
@@ -33,6 +33,7 @@ extern "C"
 #include "configvariable_interface.h"
 }
 
+#define MAX_ASCII 255
 /* Benchmark
 str_test_mat =  ["abscefghijklmnopqrstuvxyz","abscefghijklmnopqrstuvxyz", ..
 "abscefghijklmnopqrstuvxyz","abscefghijklmnopqrstuvxyz"; ..
@@ -107,6 +108,12 @@ Function::ReturnValue sci_ascii(typed_list &in, int _iRetCount, typed_list &out)
             return Function::Error;
     }
 
+    if (pOut == NULL)
+    {
+        Scierror(999, _("%s : wrong UTF-8 sequence.\n"), "ascii");
+        return Function::Error;
+    }
+
     out.push_back(pOut);
     return Function::OK;
 }
@@ -116,25 +123,26 @@ String* TypeToString(T* _pI)
 {
     String* pOut = NULL;
     wchar_t* pst = NULL;
-    char* pcText = new char[_pI->getSize() + 1];
+    int len = _pI->getSize();
+    char* pcText = new char[len + 1];
     Y* p = _pI->get();
 
     bool bWarning = getWarningMode() == 0;
-    for (int i = 0; i < _pI->getSize(); i++)
+    for (int i = 0; i < len; i++)
     {
-        if (bWarning == false && p[i] > 255)
+        if (bWarning == false && p[i] > MAX_ASCII)
         {
             sciprint(_("WARNING : \n"));
-            sciprint(_("%ls: Wrong value for input argument #%d: Must be between %d and %d.\n"), L"ascii", 1, 0, 255);
+            sciprint(_("%s: Wrong value for input argument #%d: Must be between %d and %d.\n"), "ascii", 1, 0, MAX_ASCII);
             bWarning = true;
         }
 
         pcText[i] = static_cast<char>(p[i]);
 
     }
-    pcText[_pI->getSize()] = '\0';
+    pcText[len] = '\0';
+
     pst = to_wide_string(pcText);
-    pst[wcslen(pst)] = L'\0';
     pOut = new String(pst);
 
     delete[] pcText;
@@ -176,7 +184,7 @@ Double* StringToDouble(String* _pst)
         for (int j = 0; j < pstLen[i]; j++, index++)
         {
             //transform character value as double.
-            pdbl[index] = pst[i][j];
+            pdbl[index] = (unsigned char)pst[i][j];
         }
     }
 
index c026d44..95bc687 100644 (file)
@@ -41,7 +41,15 @@ struct In
 /*------------------------------------------------------------------------*/
 int ComparaisonCallback( const void *in1 , const void *in2)
 {
-    return ((In*)in1)->data > ((In*)in2)->data ? 1 : -1;
+    In* data1 = (In*)in1;
+    In* data2 = (In*)in2;
+    
+    if(data1->data == data2->data)
+    {
+        return data1->position > data2->position ? 1 : -1;
+    }
+    
+    return data1->data > data2->data ? 1 : -1;
 }
 /*------------------------------------------------------------------------*/
 
@@ -207,264 +215,5 @@ types::Function::ReturnValue sci_strindex(types::typed_list &in, int _iRetCount,
 
     delete[] pstrResult;
     return Function::OK;
-    //BOOL bStrindex_with_pattern = FALSE;
-    //int outIndex = 0;
-    //int numRow = 1;
-    //   int *next = NULL;
-    //int i = 0;
-
-    //CheckRhs(2,3);
-    //CheckLhs(1,2);
-
-    //if (Rhs == 3)
-    //{
-    // int m3 = 0;
-    // int n3 = 0;
-    // char **Strings_Input3 = NULL;
-    // int m3n3 = 0; /* m3 * n3 */
-
-    // if (VarType(3) != sci_strings)
-    // {
-    //         Scierror(999,_("%s: Wrong type for input argument #%d: Character expected.\n"),fname,3);
-    //         return 0;
-    // }
-    // GetRhsVar(3, MATRIX_OF_STRING_DATATYPE, &m3, &n3, &Strings_Input3);
-    // m3n3 = m3 * n3;
-
-    // if (m3n3 != 1)
-    // {
-    //         freeArrayOfString(Strings_Input3, m3n3);
-    //         Scierror(999,_("%s: Wrong type for input argument #%d: Character expected.\n"), fname, 3);
-    //         return 0;
-    // }
-
-    // if ( (strcmp(Strings_Input3[0],CHAR_R) == 0) || (strcmp(Strings_Input3[0],CHAR_S) == 0) )
-    // {
-    //         if (strcmp(Strings_Input3[0],CHAR_R) == 0)
-    //         {
-    //                 bStrindex_with_pattern = TRUE;
-    //         }
-    //         else
-    //         {
-    //                 bStrindex_with_pattern = FALSE;
-    //         }
-    //         freeArrayOfString(Strings_Input3, m3n3);
-    // }
-    // else
-    // {
-    //         freeArrayOfString(Strings_Input3, m3n3);
-    //         Scierror(999,_("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"),fname,3,CHAR_S,CHAR_R);
-    //         return 0;
-    // }
-    //}
-
-    //if (VarType(1) == sci_matrix)
-    //{
-    // int m1 = 0;
-    // int n1 = 0;
-    // int l1 = 0;
-
-    // GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE,&m1,&n1,&l1);
-    // if ((m1 == 0) && (n1 == 0))
-    // {
-    //         CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,&m1,&n1,&l1);
-    //         LhsVar(1) = Rhs+1 ;
-    //         C2F(putlhsvar)();
-    //         return 0;
-    // }
-    // else
-    // {
-    //         Scierror(999,_("%s: Wrong type for input argument #%d: Matrix of strings or empty matrix expected.\n"),fname,3);
-    //         return 0;
-    // }
-    //}
-
-    //if ( (VarType(1) == sci_strings) && (VarType(2) == sci_strings) )
-    //{
-    // int m1 = 0, n1 = 0;
-    // char **Strings_Input1 = NULL;
-    // wchar_t *wStrings_Input1 = NULL;
-    // int m1n1 = 0; /* m1 * n1 */
-
-    // int m2 = 0, n2 = 0;
-    // char **Strings_Input2 = NULL;
-    // wchar_t **wStrings_Input2 = NULL;
-    // int m2n2 = 0; /* m2 * n2 */
-
-    // struct In *values=NULL;
-
-    // int nbValues = 0;
-    // int nbposition = 0;
-
-    // int i = 0;
-
-    // GetRhsVar(1,MATRIX_OF_STRING_DATATYPE,&m1,&n1,&Strings_Input1);
-    // m1n1 = m1*n1;
-
-    // if (m1n1 != 1)
-    // {
-    //         freeArrayOfString(Strings_Input1,m1n1);
-    //         Scierror(999,_("%s: Wrong size for input argument #%d: A string expected.\n"),fname,1);
-    //         return 0;
-    // }
-
-    // wStrings_Input1 = to_wide_string(Strings_Input1[0]);
-    // if (wStrings_Input1 == NULL)
-    // {
-    //         /* string conversion fails */
-    //         freeArrayOfString(Strings_Input1,m1n1);
-    //         freeArrayOfString(Strings_Input2,m2n2);
-    //         Scierror(999,_("%s: Wrong value for input argument #%d: A valid string expected (UTF-8 Encoding problem).\n"),fname,1);
-    //         return 0;
-    // }
-
-    // GetRhsVar(2,MATRIX_OF_STRING_DATATYPE,&m2,&n2,&Strings_Input2);
-    // m2n2 = m2*n2;
-
-    // if ( (m2 != 1) && (n2 != 1) )
-    // {
-    //         freeArrayOfString(Strings_Input1,m1n1);
-    //         freeArrayOfString(Strings_Input2,m2n2);
-    //         Scierror(999,_("%s: Wrong type for input argument #%d: Row vector of strings or column vector of strings expected.\n"),fname,2);
-    //         return 0;
-    // }
-
-    // wStrings_Input2 = (wchar_t**)MALLOC(m2n2 * sizeof(wchar_t*));
-    // for(i = 0 ; i < m2n2 ; i++)
-    // {
-    //         wStrings_Input2[i] = to_wide_string(Strings_Input2[i]);
-    // }
-
-    // if ( (int)wcslen(wStrings_Input1) == 0 )
-    // {
-    //         values= (struct In*)MALLOC(sizeof(struct In));
-    // }
-    // else
-    // {
-    //         values = (struct In *)MALLOC( sizeof(struct In) * ( wcslen(wStrings_Input1) ) * m2n2);
-    // }
-
-    // if (bStrindex_with_pattern)
-    // {
-    //         int x = 0;
-    //         pcre_error_code w = PCRE_FINISHED_OK;
-
-    //         int Output_Start = 0;
-    //         int Output_End = 0;
-
-    //         /* We use pcre library */
-    //         for (x = 0; x < m2n2; ++x)
-    //         {
-    //                 w = pcre_private(Strings_Input1[0],Strings_Input2[x],&Output_Start,&Output_End);
-    //                 if ( w == PCRE_FINISHED_OK)
-    //                 {
-    //                         char *partStr = os_strdup(Strings_Input1[0]);
-    //                         wchar_t *wcpartStr = NULL;
-    //                         partStr[Output_Start] = '\0';
-    //                         wcpartStr = to_wide_string(partStr);
-    //                         values[nbValues++].data = (int)wcslen(wcpartStr) + 1; /* adding the answer into the outputmatrix */
-    //                         values[nbposition++].position = x+1;        /* The number according to the str2 matrix */
-
-    //                         if (partStr) {FREE(partStr); partStr = NULL;}
-    //                         if (wcpartStr) {FREE(wcpartStr); wcpartStr = NULL;}
-    //                 }
-    //                 else
-    //                 {
-    //                         if (w != NO_MATCH)
-    //                         {
-    //                                 freeArrayOfString(Strings_Input1,m1n1);
-    //                                 freeArrayOfString(Strings_Input2,m2n2);
-    //                                 pcre_error(fname,w);
-    //                                 return 0;
-    //                         }
-    //                         break;
-    //                 }
-    //         }
-
-    //         qsort(values,nbValues,sizeof(values[0]),cmp);
-
-    // }
-    // else
-    // {
-    //         /* We don't use pcre library */
-    //         int x = 0;
-    //         int pos = 0;
-
-    //         for (x=0; x < m2n2 ;++x)
-    //         {
-    //                 int w = 0;
-    //                 if ( wcslen(wStrings_Input2[x]) == 0 )
-    //                 {
-    //                         freeArrayOfString(Strings_Input2,m2n2);
-    //                         freeArrayOfString(Strings_Input1,m1n1);
-    //                         if (next) {FREE(next); next = NULL;}
-    //                         if (values) {FREE(values); values = NULL;}
-    //                         Scierror(999, _("%s: Wrong size for input argument #%d: Non-empty string expected.\n"), fname,2);
-    //                         return 0;
-    //                 }
-    //                 if (Strings_Input2)
-    //                 {
-    //                         wchar_t *pCur = wStrings_Input1;
-    //                         do
-    //                         {
-    //                                 pCur = wcsstr(pCur, wStrings_Input2[x]);
-    //                                 if (pCur != NULL)
-    //                                 {
-    //                                         pCur++;
-    //                                         values[nbValues++].data = (int)(pCur - wStrings_Input1);
-    //                                         values[nbposition++].position = x+1;
-    //                                 }
-    //                         }
-    //                         while(pCur != NULL && *pCur != 0);//Plus tard
-
-    //                         /* values are sorted */
-    //                         qsort(values,nbValues,sizeof(values[0]),cmp);
-    //                 }
-    //         }
-    // }
-
-    // FREE(wStrings_Input1);
-    // freeArrayOfWideString(wStrings_Input2, m2n2);
-    // freeArrayOfString(Strings_Input1,m1n1);
-    // freeArrayOfString(Strings_Input2,m2n2);
-
-    // numRow   = 1;
-    // outIndex = 0;
-    // CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,&numRow,&nbValues,&outIndex);
-    // for ( i = 0 ; i < nbValues ; i++ )
-    // {
-    //         stk(outIndex)[i] = (double)values[i].data ;
-    // }
-    // LhsVar(1) = Rhs+1 ;
-
-    // if (Lhs == 2)
-    // {
-    //         numRow   = 1;
-    //         outIndex = 0;
-    //         CreateVar(Rhs+2,MATRIX_OF_DOUBLE_DATATYPE,&numRow,&nbposition,&outIndex);
-    //         for ( i = 0 ; i < nbposition ; i++ )
-    //         {
-    //                 stk(outIndex)[i] = (double)values[i].position ;
-    //         }
-    //         LhsVar(2) = Rhs+2;
-    // }
-
-    // C2F(putlhsvar)();
-
-    // if (values) {FREE(values); values = NULL;}
-    //}
-    //else
-    //{
-    // if(VarType(1) != sci_strings)
-    // {
-    //         Scierror(999,_("%s: Wrong type for input argument #%d: A string expected.\n"),fname,1);
-    // }
-    // else
-    // {
-    //         Scierror(999,_("%s: Wrong type for input argument #%d: Row vector of strings or column vector of strings expected.\n"),fname,2);
-    // }
-    // return 0;
-    //}
-    //return 0;
 }
-/*------------------------------------------------------------------------*/
+
index ec5f462..1c2959c 100644 (file)
@@ -228,7 +228,7 @@ Function::ReturnValue intString(T* pInt, typed_list &out)
     for (int i = 0 ; i < iSize ; i++)
     {
         std::wostringstream ostr;
-        DoubleComplexMatrix2String(&ostr, pInt->get(i), 0);
+        DoubleComplexMatrix2String(&ostr, (double)pInt->get(i), 0);
         pstOutput->set(i, ostr.str().c_str());
     }
 
@@ -295,6 +295,20 @@ Function::ReturnValue doubleString(types::Double* pDbl, typed_list &out)
     return Function::OK;
 }
 
+Function::ReturnValue implicitListString(types::ImplicitList* pIL, typed_list &out)
+{
+    std::wostringstream ostr;
+    pIL->toString(ostr);
+    wstring str = ostr.str();
+    //erase fisrt character " "
+    str.erase(str.begin());
+    //erase last character "\n"
+    str.erase(str.end() - 1);
+
+    out.push_back(new String(str.c_str()));
+    return Function::OK;
+}
+
 Function::ReturnValue sci_string(typed_list &in, int _iRetCount, typed_list &out)
 {
     if (in.size() != 1)
@@ -314,7 +328,6 @@ Function::ReturnValue sci_string(typed_list &in, int _iRetCount, typed_list &out
             bool isComplex = pS->isComplex();
             std::wostringstream ostr;
             std::vector<std::wstring> vect;
-            int st;
             string *stemp = new string();
 
 
@@ -367,7 +380,7 @@ Function::ReturnValue sci_string(typed_list &in, int _iRetCount, typed_list &out
                 }
             }
 
-            types::String* pSt = new String(vect.size(), 1);
+            types::String* pSt = new String((int)vect.size(), 1);
             for (int i = 0 ; i < vect.size(); i++)
             {
                 pSt->set(i, vect[i].c_str());
@@ -479,7 +492,7 @@ Function::ReturnValue sci_string(typed_list &in, int _iRetCount, typed_list &out
             Library* pL = in[0]->getAs<Library>();
             std::wstring path = pL->getPath();
             std::list<std::wstring>* macros = pL->getMacrosName();
-            String* pS = new String(macros->size() + 1, 1);
+            String* pS = new String((int)macros->size() + 1, 1);
             pS->set(0, path.c_str());
             int i = 1;
             for (auto it = macros->begin(), itEnd = macros->end(); it != itEnd; ++it, ++i)
@@ -490,6 +503,15 @@ Function::ReturnValue sci_string(typed_list &in, int _iRetCount, typed_list &out
             out.push_back(pS);
             break;
         }
+        case GenericType::ScilabImplicitList:
+        {
+            return implicitListString(in[0]->getAs<ImplicitList>(), out);
+        }
+        case GenericType::ScilabColon:
+        {
+            out.push_back(new String(L""));
+            break;
+        }
         default:
         {
             std::wostringstream ostr;
index 5fed313..f4ba325 100644 (file)
@@ -19,8 +19,5 @@ a = : ;
 assert_checkequal(string(a), "");
 assert_checkequal(isdigit(string(a)), []);
 assert_checkequal("h" + string(a) + "hop", "hhop");
-msgerr = msprintf(gettext("Eye variable undefined in this context.\n"));
-assert_checkerror("a(string(a))" , msgerr);
-assert_checkerror("a(:)" , msgerr);
 assert_checkequal(size(string(a)), [1 1]);
 assert_checkequal(size(string(:)), [1 1]);
index ad91b56..aefe0bd 100644 (file)
@@ -22,8 +22,5 @@ assert_checkequal(isdigit(string(a)), []);
 
 assert_checkequal("h" + string(a) + "hop", "hhop");
 
-msgerr = msprintf(gettext("Eye variable undefined in this context.\n"));
-assert_checkerror("a(string(a))" , msgerr);
-assert_checkerror("a(:)" , msgerr);
 assert_checkequal(size(string(a)), [1 1]);
 assert_checkequal(size(string(:)), [1 1]);
\ No newline at end of file
index 5870fe8..56c4dac 100644 (file)
@@ -4,9 +4,10 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-
+//
 // <-- CLI SHELL MODE -->
-
+// <-- NOT FIXED -->
+//
 // <-- Non-regression test for bug 1305 -->
 //
 // <-- Bugzilla URL -->
index aa60365..1c73f04 100644 (file)
 // http://bugzilla.scilab.org/show_bug.cgi?id=3410
 //
 // <-- Short Description -->
-if length(sparse(eye(2,2))) <> 2 then bugmes();quit;end
-if length(sparse(eye(12,2))) <> 12 then bugmes();quit;end
-if length(sparse(eye(2,12))) <> 12 then bugmes();quit;end
+if length(sparse(eye(2,2))) <> 4 then bugmes();quit;end
+if length(sparse(eye(12,2))) <> 24 then bugmes();quit;end
+if length(sparse(eye(2,12))) <> 24 then bugmes();quit;end
 if length(sparse(1)) <> 1 then bugmes();quit;end
-if with_module('umfpack') then
-  A = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
-  if length(A) <> 3562 then bugmes();quit;end
-end
index 257ba16..f0b35cb 100644 (file)
 //
 // <-- Short Description -->
 
-if length(sparse(eye(2,2))) <> 2 then pause,end
-if length(sparse(eye(12,2))) <> 12 then pause,end
-if length(sparse(eye(2,12))) <> 12 then pause,end
+if length(sparse(eye(2,2))) <> 4 then pause,end
+if length(sparse(eye(12,2))) <> 24 then pause,end
+if length(sparse(eye(2,12))) <> 24 then pause,end
 if length(sparse(1)) <> 1 then pause,end
-
-if with_module('umfpack') then
-  A = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
-  if length(A) <> 3562 then pause,end
-end  
index a430854..0eb464a 100644 (file)
@@ -4,9 +4,11 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-
+//
 // <-- CLI SHELL MODE -->
-
+//
+// <-- NOT FIXED -->
+//
 // <-- Non-regression test for bug 3543 -->
 //
 // <-- Bugzilla URL -->
index 619a4b1..78058ca 100644 (file)
 // Short description:
 // ascii doesn't support extended ascii values in the range of [128-255].
 //==============================================================
-ref = [65 66 67 129 130 131];
+ref = ascii([65 66 67 129 130 131]);
 r = ascii(ascii(ref));
 if ref <> r then bugmes();quit;end
-ref = 127:255;
+ref = ascii(127:255);
 r = ascii(ascii(ref));
 if r <> ref then bugmes();quit;end
 //==============================================================
index 895100e..bfc1048 100644 (file)
 // Short description:
 // ascii doesn't support extended ascii values in the range of [128-255].
 //==============================================================
-ref = [65 66 67 129 130 131];
+ref = ascii([65 66 67 129 130 131]);
 r = ascii(ascii(ref));
 if ref <> r then pause,end
 
-ref = 127:255;
+ref = ascii(127:255);
 r = ascii(ascii(ref));
 if r <> ref then pause,end
 //==============================================================
\ No newline at end of file
index 8203054..6cbdfcc 100644 (file)
@@ -20,12 +20,12 @@ tab_ref = [
 "เฮลโลเวิลด์",
 "حريات وحقوق",
 "תוכנית"];
-if length(ascii(0)) <> 1 then bugmes();quit;end
-for i = 1 : size(tab_ref,'*')
-  str = ascii(0) + tab_ref(i) + ascii(0);
-  if length(str) <> ( 1 + length(tab_ref(i)) + 1) then bugmes();quit;end
-end  
+assert_checkequal(length(ascii(0)), 0);
+for i = 1 : size(tab_ref,"*")
+    str = ascii(0) + tab_ref(i) + ascii(0);
+    assert_checkequal(length(str), length(tab_ref(i)));
+end
 strs = [ascii(0) ; ascii(0)];
-if length(strs) <> [1;1] then bugmes();quit;end
-strs = ['' ; ''];
-if length(strs) <> [0;0] then bugmes();quit;end
+assert_checkequal(length(strs), [0;0]);
+strs = ["" ; ""];
+assert_checkequal(length(strs), [0;0]);
index 3f24e09..278c9e5 100644 (file)
@@ -23,15 +23,15 @@ tab_ref = [
 "حريات وحقوق",
 "תוכנית"];
 
-if length(ascii(0)) <> 1 then pause,end
+assert_checkequal(length(ascii(0)), 0);
 
-for i = 1 : size(tab_ref,'*')
-  str = ascii(0) + tab_ref(i) + ascii(0);
-  if length(str) <> ( 1 + length(tab_ref(i)) + 1) then pause,end
-end  
+for i = 1 : size(tab_ref,"*")
+    str = ascii(0) + tab_ref(i) + ascii(0);
+    assert_checkequal(length(str), length(tab_ref(i)));
+end
 
 strs = [ascii(0) ; ascii(0)];
-if length(strs) <> [1;1] then pause,end
+assert_checkequal(length(strs), [0;0]);
 
-strs = ['' ; ''];
-if length(strs) <> [0;0] then pause,end
+strs = ["" ; ""];
+assert_checkequal(length(strs), [0;0]);
index e0b6337..da51c08 100644 (file)
@@ -20,21 +20,20 @@ tab_ref = [
 "เฮลโลเวิลด์",
 "حريات وحقوق",
 "תוכנית"];
-if (strcat([ascii(0),"t"]) == "t" + ascii(0)) <> %f then bugmes();quit;end
-if (strcat([ascii(0),"t",ascii(0)]) <> ascii(0) + "t" + ascii(0)) <> %f then bugmes();quit;end
+assert_checkequal(strcat([ascii(0),"t"]), "t" + ascii(0));
+assert_checkequal(strcat([ascii(0),"t",ascii(0)]), ascii(0) + "t" + ascii(0));
 A = strcat([ascii(0),"t"]);
 B = "t"+ascii(0);
 C = ascii(0) + "t";
 if A <> C then bugmes();quit;end
 sA = length(A);
-if sA <> 2 then bugmes();quit;end
+assert_checkequal(sA, 1);
 sB = length(B);
-if sB <> 2 then bugmes();quit;end
+assert_checkequal(sB, 1);
 sC = length(C);
-if sC <> 2 then bugmes();quit;end
-for i = 1 : size(tab_ref,'*')
-  r1 = strcat([tab_ref(i),ascii(0),tab_ref(i)]);
-  r2 = tab_ref(i) + ascii(0) + tab_ref(i);
-  if length(r1) <> ( 2 * length(tab_ref(i)) + 1) then bugmes();quit;end
-  if r1 <> r2 then bugmes();quit;end 
-end  
+assert_checkequal(sC, 1);
+for i = 1 : size(tab_ref,"*")
+    r1 = strcat([tab_ref(i),ascii(0),tab_ref(i)]);
+    r2 = tab_ref(i) + ascii(0) + tab_ref(i);
+    assert_checkequal(r1, r2);
+end
index c37caa1..5d34a93 100644 (file)
@@ -23,9 +23,9 @@ tab_ref = [
 "حريات وحقوق",
 "תוכנית"];
 
-if (strcat([ascii(0),"t"]) == "t" + ascii(0)) <> %f then pause,end
+assert_checkequal(strcat([ascii(0),"t"]), "t" + ascii(0));
 
-if (strcat([ascii(0),"t",ascii(0)]) <> ascii(0) + "t" + ascii(0)) <> %f then pause,end
+assert_checkequal(strcat([ascii(0),"t",ascii(0)]), ascii(0) + "t" + ascii(0));
 
 A = strcat([ascii(0),"t"]);
 B = "t"+ascii(0);
@@ -34,17 +34,16 @@ C = ascii(0) + "t";
 if A <> C then pause,end
 
 sA = length(A);
-if sA <> 2 then pause,end
+assert_checkequal(sA, 1);
 
 sB = length(B);
-if sB <> 2 then pause,end
+assert_checkequal(sB, 1);
 
 sC = length(C);
-if sC <> 2 then pause,end
-
-for i = 1 : size(tab_ref,'*')
-  r1 = strcat([tab_ref(i),ascii(0),tab_ref(i)]);
-  r2 = tab_ref(i) + ascii(0) + tab_ref(i);
-  if length(r1) <> ( 2 * length(tab_ref(i)) + 1) then pause,end
-  if r1 <> r2 then pause, end 
-end  
+assert_checkequal(sC, 1);
+
+for i = 1 : size(tab_ref,"*")
+    r1 = strcat([tab_ref(i),ascii(0),tab_ref(i)]);
+    r2 = tab_ref(i) + ascii(0) + tab_ref(i);
+    assert_checkequal(r1, r2);
+end
index 054202c..d350e30 100644 (file)
@@ -4,8 +4,11 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-
+//
 // <-- CLI SHELL MODE -->
+//
+// <-- NOT FIXED -->
+//
 // <-- Non-regression test for bug 7163 -->
 //
 // <-- Bugzilla URL -->
@@ -15,7 +18,7 @@
 // tree2code wrongly replaced every (:) occurence in a function definition with (eye()).
 
 function foo(r)
- r(:)=1
+    r(:)=1
 endfunction
 
 txt = tree2code(macr2tree(foo));
index 0fee23b..b88551c 100644 (file)
@@ -16,6 +16,6 @@
 // length() applied to a non string hypermatrix returns 3 instead size(H,"*")
 //
 A=rand(2,2,2,2);
-assert_checkequal(length(A),double(prod(A.dims)));
+assert_checkequal(length(A), size(A, "*"));
 A=rand(5,5,5,5,5,5,5);
-assert_checkequal(length(A),double(prod(A.dims)));
+assert_checkequal(length(A), size(A, "*"));
index ba1ca46..4b3fa88 100644 (file)
@@ -17,6 +17,6 @@
 //
 
 A=rand(2,2,2,2);
-assert_checkequal(length(A),double(prod(A.dims)));
+assert_checkequal(length(A), size(A, "*"));
 A=rand(5,5,5,5,5,5,5);
-assert_checkequal(length(A),double(prod(A.dims)));
+assert_checkequal(length(A), size(A, "*"));
index dffcddb..63a1ab4 100644 (file)
 //
 // =============================================================================
 function myFunc
-  disp('myFunc called');
+  disp("myFunc called");
 endfunction
-ref_txt = ['disp(""myFunc called"");'];
+ref_txt = [" "; ..
+           "disp(""myFunc called"");"; ..
+           " "];
 [in, out, txt] = string(myFunc);
 assert_checkequal(out, []);
 assert_checkequal(in, []);
 assert_checkequal(txt, ref_txt);
 // =============================================================================
-deff('myFund()', 'disp(''myFunc called'');', 'n');
+deff("myFund()", "disp(""myFunc called"");", "n");
 [in2, out2, txt2] = string(myFund);
 assert_checkequal(out2, out);
 assert_checkequal(in2, in);
@@ -39,44 +41,46 @@ function [x, y, z] = myFunc1(a,b,c,d)
   endfunction
   y = myFunc2(a);
 endfunction
-ref_text = ["x = [];"; ..
+ref_text = [" "; ..
+            "x = [];"; ..
             "y = [];"; ..
             "z = [];"; ..
             "function k = myFunc2(x)"; ..
             "    k = x + 1;"; ..
             "endfunction"; ..
-            "y = myFunc2(a);";];
+            "y = myFunc2(a);"; ..
+            " "];
 [in, out, txt] = string(myFunc1);
-assert_checkequal(out, ['a','b','c','d']);
-assert_checkequal(in, ['x','y','z']);
+assert_checkequal(out, ["a","b","c","d"]);
+assert_checkequal(in, ["x","y","z"]);
 assert_checkequal(txt, ref_text);
 // =============================================================================
-deff('y = mymacro(x)', 'y = x + 1');
+deff("y = mymacro(x)", "y = x + 1");
 [out, in, text] = string(mymacro);
-assert_checkequal(out, 'y');
-assert_checkequal(in, 'x');
-assert_checkequal(text, ['y = x + 1']);
+assert_checkequal(out, "y");
+assert_checkequal(in, "x");
+assert_checkequal(text, [" "; "y = x + 1"; " "]);
 // =============================================================================
-deff('y = mymacrob(x)', 'y = x + 1', 'n');
+deff("y = mymacrob(x)", "y = x + 1", "n");
 [out, in, text] = string(mymacrob);
-assert_checkequal(out, 'y');
-assert_checkequal(in, 'x');
-assert_checkequal(text, ['y = x + 1';]);
+assert_checkequal(out, "y");
+assert_checkequal(in, "x");
+assert_checkequal(text, [" "; "y = x + 1"; " "]);
 // =============================================================================
 [out, in, text] = string(sinc);
-assert_checkequal(out, 'y');
-assert_checkequal(in, ['x', 'fl']);
+assert_checkequal(out, "y");
+assert_checkequal(in, ["x", "fl"]);
 assert_checkequal(text <> [], %t);
 // =============================================================================
 function y=foo(x);y=x+1;endfunction
 [out, in, text] = string(foo);
-assert_checkequal(out, 'y');
-assert_checkequal(in, 'x');
-assert_checkequal(text, 'y = x + 1;');
+assert_checkequal(out, "y");
+assert_checkequal(in, "x");
+assert_checkequal(text, [" "; "y = x + 1;"; " "]);
 // =============================================================================
-deff('[y,z] = mymacroc(x,i)', 'y = x + 1;z = y;', 'n');
+deff("[y,z] = mymacroc(x,i)", "y = x + 1;z = y;", "n");
 [out, in, text] = string(mymacroc);
-assert_checkequal(out, ['y', 'z']);
-assert_checkequal(in, ['x', 'i']);
-assert_checkequal(text, ['y = x + 1;';'z = y;']);
+assert_checkequal(out, ["y", "z"]);
+assert_checkequal(in, ["x", "i"]);
+assert_checkequal(text, [" "; "y = x + 1;z = y;"; " "]);
 // =============================================================================
index b6efb7b..71d731b 100644 (file)
 //
 // =============================================================================
 function myFunc
-  disp('myFunc called');
+    disp("myFunc called");
 endfunction
 
-ref_txt = ['disp(""myFunc called"");'];
+ref_txt = [" "; ..
+"disp(""myFunc called"");"; ..
+" "];
 
 [in, out, txt] = string(myFunc);
 assert_checkequal(out, []);
 assert_checkequal(in, []);
 assert_checkequal(txt, ref_txt);
 // =============================================================================
-deff('myFund()', 'disp(''myFunc called'');', 'n');
+deff("myFund()", "disp(""myFunc called"");", "n");
 [in2, out2, txt2] = string(myFund);
 assert_checkequal(out2, out);
 assert_checkequal(in2, in);
 assert_checkequal(txt2, ref_txt);
 // =============================================================================
 function [x, y, z] = myFunc1(a,b,c,d)
-  x = [];
-  y = [];
-  z = [];
-  function k = myFunc2(x)
-   k = x + 1;
-  endfunction
-  y = myFunc2(a);
+    x = [];
+    y = [];
+    z = [];
+    function k = myFunc2(x)
+        k = x + 1;
+    endfunction
+    y = myFunc2(a);
 endfunction
 
-ref_text = ["x = [];"; ..
-            "y = [];"; ..
-            "z = [];"; ..
-            "function k = myFunc2(x)"; ..
-            "    k = x + 1;"; ..
-            "endfunction"; ..
-            "y = myFunc2(a);";];
+ref_text = [" "; ..
+"x = [];"; ..
+"y = [];"; ..
+"z = [];"; ..
+"function k = myFunc2(x)"; ..
+"    k = x + 1;"; ..
+"endfunction"; ..
+"y = myFunc2(a);"; ..
+" "];
 
 [in, out, txt] = string(myFunc1);
-assert_checkequal(out, ['a','b','c','d']);
-assert_checkequal(in, ['x','y','z']);
+assert_checkequal(out, ["a","b","c","d"]);
+assert_checkequal(in, ["x","y","z"]);
 assert_checkequal(txt, ref_text);
 // =============================================================================
-deff('y = mymacro(x)', 'y = x + 1');
+deff("y = mymacro(x)", "y = x + 1");
 [out, in, text] = string(mymacro);
-assert_checkequal(out, 'y');
-assert_checkequal(in, 'x');
-assert_checkequal(text, ['y = x + 1']);
+assert_checkequal(out, "y");
+assert_checkequal(in, "x");
+assert_checkequal(text, [" "; "y = x + 1"; " "]);
 // =============================================================================
-deff('y = mymacrob(x)', 'y = x + 1', 'n');
+deff("y = mymacrob(x)", "y = x + 1", "n");
 [out, in, text] = string(mymacrob);
-assert_checkequal(out, 'y');
-assert_checkequal(in, 'x');
-assert_checkequal(text, ['y = x + 1';]);
+assert_checkequal(out, "y");
+assert_checkequal(in, "x");
+assert_checkequal(text, [" "; "y = x + 1"; " "]);
 // =============================================================================
 [out, in, text] = string(sinc);
-assert_checkequal(out, 'y');
-assert_checkequal(in, ['x', 'fl']);
+assert_checkequal(out, "y");
+assert_checkequal(in, ["x", "fl"]);
 assert_checkequal(text <> [], %t);
 // =============================================================================
 function y=foo(x);y=x+1;endfunction
 [out, in, text] = string(foo);
-assert_checkequal(out, 'y');
-assert_checkequal(in, 'x');
-assert_checkequal(text, 'y = x + 1;');
+assert_checkequal(out, "y");
+assert_checkequal(in, "x");
+assert_checkequal(text, [" "; "y = x + 1;"; " "]);
 // =============================================================================
-deff('[y,z] = mymacroc(x,i)', 'y = x + 1;z = y;', 'n');
+deff("[y,z] = mymacroc(x,i)", "y = x + 1;z = y;", "n");
 [out, in, text] = string(mymacroc);
-assert_checkequal(out, ['y', 'z']);
-assert_checkequal(in, ['x', 'i']);
-assert_checkequal(text, ['y = x + 1;';'z = y;']);
+assert_checkequal(out, ["y", "z"]);
+assert_checkequal(in, ["x", "i"]);
+assert_checkequal(text, [" "; "y = x + 1;z = y;"; " "]);
 // =============================================================================
 
index e18ddc0..977f84f 100644 (file)
@@ -12,9 +12,9 @@
 //
 // <-- Short Description -->
 // eval failed on some functions without output arguments.
+errmsg = _("bad lhs, expected : ") + string(1) + _(" returned : ") + string(0);
 str = "realtimeinit(60)";
-r = eval(str);
-if r <> [] then bugmes();quit;end
+assert_checkerror("eval(str)", errmsg);
 function o = blabla()
  o = 3;
 endfunction
index 67217b0..b058b73 100644 (file)
 //
 // <-- Short Description -->
 // eval failed on some functions without output arguments.
-
+errmsg = _("bad lhs, expected : ") + string(1) + _(" returned : ") + string(0);
 str = "realtimeinit(60)";
-r = eval(str);
-if r <> [] then pause, end
+assert_checkerror("eval(str)", errmsg);
 
 function o = blabla()
  o = 3;
index c97496d..405bcbf 100644 (file)
 // length returned a wrong size for malformed characters.
 //
 if length(ascii(181)) <> 1 then bugmes();quit;end
-if length(ascii([83.    99.    105.    108.    97.    98.])) <> 6 then bugmes();quit;end
+if length(ascii([83 99 105 108 97 98])) <> 6 then bugmes();quit;end
 if length("Scilab") <> 6 then bugmes();quit;end
-if length(ascii([83.    99.    105.    181.   108.    97.    98.])) <> 7 then bugmes();quit;end
+if length(ascii([83 99 105 181 108 97 98])) <> 7 then bugmes();quit;end
 if length("Sciµlab") <> 7 then bugmes();quit;end
-for i=127:255 
-  if length(ascii(i)) <> 1 then bugmes();quit;end
+for i=127:255
+    if length(ascii(i)) <> 1 then bugmes();quit;end
 end
index 8a57a94..fe1e3f1 100644 (file)
 //
 
 if length(ascii(181)) <> 1 then pause, end
-if length(ascii([83.    99.    105.    108.    97.    98.])) <> 6 then pause, end
+if length(ascii([83 99 105 108 97 98])) <> 6 then pause, end
 if length("Scilab") <> 6 then pause, end
-if length(ascii([83.    99.    105.    181.   108.    97.    98.])) <> 7 then pause, end
-if length("Sciµlab") <> 7 then pause, end
-for i=127:255 
-  if length(ascii(i)) <> 1 then pause, end
+if length(ascii([83 99 105 181 108 97 98])) <> 7 then pause, end
+if length("Sciµlab") <> 7 then pause, end
+for i=127:255
+    if length(ascii(i)) <> 1 then pause, end
 end
index 85f64c2..869b325 100644 (file)
@@ -18,11 +18,4 @@ assert_checkequal(evstr('//xxx'),[]);
 t=["1";
    "2";
    "//xxx"];
-assert_checkequal(evstr(t),[1;2]); 
-nl=ascii(10);
-t=["//comment";
-   "function y=foo(),"
-   " y=1;"
-   "endfunction"];
-t=strcat(t,nl); //make a single string that appears as a string array
-assert_checkequal(evstr(t),[]); 
+assert_checkequal(evstr(t),[1;2]);
index 9b8b212..1ad3a39 100644 (file)
@@ -19,12 +19,3 @@ t=["1";
    "2";
    "//xxx"];
 assert_checkequal(evstr(t),[1;2]); 
-
-nl=ascii(10);
-t=["//comment";
-   "function y=foo(),"
-   " y=1;"
-   "endfunction"];
-
-t=strcat(t,nl); //make a single string that appears as a string array
-assert_checkequal(evstr(t),[]);