Bug #14453 Fixed:strcat([]) now returns [] instead of null string 81/17981/10
Aashish Misraa [Fri, 25 Mar 2016 09:26:40 +0000 (14:26 +0530)]
Change-Id: Ic8a82af5c760eb16b47036d74c1638a20d8dec70

scilab/CHANGES
scilab/modules/string/sci_gateway/cpp/sci_strcat.cpp
scilab/modules/string/tests/unit_tests/strcat.dia.ref
scilab/modules/string/tests/unit_tests/strcat.tst

index b523257..42621c5 100644 (file)
@@ -391,6 +391,8 @@ In 6.0.0:
 
 * Bug #14446 fixed - Corrected the number of argument in the error message generated by save() on passing wrong type of argument.
 
+* Bug #14453 fixed - strcat([]) now returns [] instead of null string
+
 * Bug #14468 fixed - Scinotes was unable to export to HTML.
 
 * Bug #14476 fixed - Dotmultiplication between polynomials and imaginary numbers was always returning 0
@@ -775,4 +777,3 @@ In 6.0.0 alpha-2 and earlier:
                      exactly "pvApyCtx" when macros are used in a gateway.
 
 * Bug #14044 fixed - MALLOC.h is now renamed to sci_malloc.h.
-
index 5ed3f89..ff165ed 100644 (file)
@@ -68,11 +68,9 @@ types::Function::ReturnValue sci_strcat(types::typed_list &in, int _iRetCount, t
         }
     }
 
-    if (in[0]->isDouble() && in[0]->getAs<types::Double>()->getSize() == 0)
+    if (in[0]->isDouble() && in[0]->getAs<types::Double>()->isEmpty())
     {
-        types::String *pOut = new types::String(1, 1);
-        pOut->set(0, L"");
-        out.push_back(pOut);
+        out.push_back(types::Double::Empty());
         return types::Function::OK;
     }
     else if (in[0]->isString() == false)
index 954bdc7..d232f66 100644 (file)
@@ -26,13 +26,13 @@ if strcat(['','']) <> '' then bugmes();quit;end
 //===============================
 if strcat('','')<>'' then bugmes();quit;end
 //===============================
-if strcat([])<>'' then bugmes();quit;end
+if strcat([])<>[] then bugmes();quit;end
 //===============================
-if strcat([],'')<>'' then bugmes();quit;end
+if strcat([],'')<>[] then bugmes();quit;end
 //===============================
 if execstr('strcat([],3)','errcatch') == 0  then bugmes();quit;end
 //===============================
-if strcat([],'3') <> '' then bugmes();quit;end
+if strcat([],'3') <> [] then bugmes();quit;end
 //===============================
 if strcat(['abc','abd','aa','bxe']) <> 'abc'+'abd'+'aa'+'bxe' then bugmes();quit;end
 //===============================
index 2d333c9..2cc3261 100644 (file)
@@ -28,13 +28,13 @@ if strcat(['','']) <> '' then pause,end
 //===============================
 if strcat('','')<>'' then pause,end
 //===============================
-if strcat([])<>'' then pause,end
+if strcat([])<>[] then pause,end
 //===============================
-if strcat([],'')<>'' then pause,end
+if strcat([],'')<>[] then pause,end
 //===============================
 if execstr('strcat([],3)','errcatch') == 0  then pause,end
 //===============================
-if strcat([],'3') <> '' then pause,end
+if strcat([],'3') <> [] then pause,end
 //===============================
 if strcat(['abc','abd','aa','bxe']) <> 'abc'+'abd'+'aa'+'bxe' then pause,end
 //===============================
@@ -49,4 +49,4 @@ if ( length(NEW_TXT) <>length(NEW_TXT_A) ) then pause,end
 //===============================
 if strcat(['abc','abd','aa','bxe'],'| , |')<>'abc| , |abd| , |aa| , |bxe' then pause,end
 if length(strcat(['abc','abd','aa','bxe'],'| , |')) <> 26 then pause,end
-//===============================
\ No newline at end of file
+//===============================