* Bug #13878 fixed - tokens([]) returns []. 58/18558/3
Adeline CARNIS [Mon, 26 Sep 2016 14:44:24 +0000 (16:44 +0200)]
Change-Id: I749e712aa0e8ead374140c1533662e15a9e4910a

scilab/CHANGES.md
scilab/modules/string/sci_gateway/cpp/sci_tokens.cpp
scilab/modules/string/tests/nonreg_tests/bug_13878.dia.ref [new file with mode: 0644]
scilab/modules/string/tests/nonreg_tests/bug_13878.tst [new file with mode: 0644]

index 5f59299..250a6f7 100644 (file)
@@ -309,6 +309,7 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 Bug Fixes
 ---------
 
+<<<<<<< HEAD
 ### Bugs fixed in 6.0.0:
 * [#2919](http://bugzilla.scilab.org/show_bug.cgi?id=2919): The `fchamp` example and demo were unclear and badly rendered
 * [#4327](http://bugzilla.scilab.org/show_bug.cgi?id=4327): Overloading did not support custom types names longer than 8 characters
@@ -340,6 +341,7 @@ Bug Fixes
 * [#13597](http://bugzilla.scilab.org/show_bug.cgi?id=13597): `help format` claimed setting a number of digits instead of characters
 * [#13613](http://bugzilla.scilab.org/show_bug.cgi?id=13613): `isdef(name, 'l')` produced wrong output.
 * [#13757](http://bugzilla.scilab.org/show_bug.cgi?id=13757): The toolbox menu dit not load properly ATOMS modules not autoloaded.
+* [#13878](http://bugzilla.scilab.org/show_bug.cgi?id=13878): tokens([]) returns [].
 * [#13895](http://bugzilla.scilab.org/show_bug.cgi?id=13895): p.a.h = 1; p.b.h = 3; p(:).h  CRASH
 * [#13990](http://bugzilla.scilab.org/show_bug.cgi?id=13990): `warning` with localization enabled some memory corruption
 * [#14192](http://bugzilla.scilab.org/show_bug.cgi?id=14192): `g_margin` error-ed for double integrator.
index 6f5fe0a..4523ca0 100644 (file)
@@ -53,6 +53,12 @@ types::Function::ReturnValue sci_tokens(types::typed_list &in, int _iRetCount, t
     }
 
     // first arg
+    if (in[0]->isDouble() && in[0]->getAs<types::Double>()->isEmpty())
+    {
+        out.push_back(types::Double::Empty());
+        return types::Function::OK;
+    }
+
     if (in[0]->isString() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d: String expected.\n"), "tokens", 1);
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_13878.dia.ref b/scilab/modules/string/tests/nonreg_tests/bug_13878.dia.ref
new file mode 100644 (file)
index 0000000..570eb4b
--- /dev/null
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Adeline CARNIS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 13878 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13878
+//
+// <-- Short Description -->
+//    tokens([]) returns [].
+// =============================================================================
+assert_checkequal(tokens([]), []);
+assert_checkequal(tokens([], "a"), []);
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_13878.tst b/scilab/modules/string/tests/nonreg_tests/bug_13878.tst
new file mode 100644 (file)
index 0000000..e06cc5e
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Adeline CARNIS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 13878 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13878
+//
+// <-- Short Description -->
+//    tokens([]) returns [].
+// =============================================================================
+assert_checkequal(tokens([]), []);
+assert_checkequal(tokens([], "a"), []);