bug #14992: removed readgateway use whereis instead 01/19101/5
Antoine ELIAS [Mon, 13 Feb 2017 15:43:00 +0000 (16:43 +0100)]
Change-Id: Id2b4488f9afcf5974ddc6cb19e2b5e46d19e0014

scilab/CHANGES.md
scilab/modules/functions/sci_gateway/cpp/sci_whereis.cpp
scilab/modules/functions/tests/nonreg_tests/bug_14992.tst [new file with mode: 0644]
scilab/modules/functions/tests/unit_tests/whereis.dia.ref [deleted file]
scilab/modules/functions/tests/unit_tests/whereis.tst

index 3b23d61..49c604d 100644 (file)
@@ -323,7 +323,6 @@ Removed Functions
 * `jconvMatrixMethod` was obsolete and is now removed. Please use `jautoTranspose` instead.
 * `fcontour` was obsolete since Scilab 4 and has been removed. Please use `contour` instead.
 * `m_circle` was obsolete since Scilab 5.2.0. It is removed. Please use `hallchart` instead.
-
 * Symbolic module functions have been removed: `addf`, `cmb_lin`, `ldivf`, `mulf`, `rdivf`, `solve`, `subf`, `trianfml`, `trisolve` and `block2exp`.
 * Functionnalities based on former Scilab stack have been removed:
   - `comp`, `errcatch`, `iserror`, `fun2string`, `getvariablesonstack`, `gstacksize`, `macr2lst`, `stacksize`, `code2str` and `str2code`.
@@ -333,6 +332,7 @@ Removed Functions
 * `comp` and its associated type `11` have been removed. All functions will have type `13`.
 * `readgateway` has been removed.
 
+
 Known issues
 ------------
 
@@ -681,3 +681,4 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#14540](http://bugzilla.scilab.org/show_bug.cgi?id=14540): Datatips did not clip outside axes bounds
 * [#14685](http://bugzilla.scilab.org/show_bug.cgi?id=14685): datavec produced an invalid index error.
 * [#14980] (http://bugzilla.scilab.org/show_bug.cgi?id=14980): The datatip display of the root locus arcs is broken.
+* [#14992] (http://bugzilla.scilab.org/show_bug.cgi?id=14992): `readgateway` has been removed, use `whereis` instead.
index 308ada6..58a5844 100644 (file)
@@ -51,8 +51,20 @@ types::Function::ReturnValue sci_whereis(types::typed_list &in, int _iRetCount,
             return types::Function::Error;
         }
 
+        std::wstring sym(pS->get()[0]);
+        types::InternalType* pIT = symbol::Context::getInstance()->get(symbol::Symbol(sym));
+        if (pIT)
+        {
+            switch (pIT->getType())
+            {
+                case types::InternalType::ScilabFunction:
+                    out.push_back(new types::String(pIT->getAs<types::Callable>()->getModule().c_str()));
+                    return types::Function::OK;
+            }
+        }
+
         std::list<std::wstring> lst;
-        int size = symbol::Context::getInstance()->getWhereIs(lst, pS->get(0));
+        int size = symbol::Context::getInstance()->getWhereIs(lst, pS->get()[0]);
         if (lst.empty())
         {
             out.push_back(types::Double::Empty());
@@ -70,7 +82,6 @@ types::Function::ReturnValue sci_whereis(types::typed_list &in, int _iRetCount,
     }
     else
     {
-        std::wstring stModule;
         switch (in[0]->getType())
         {
             case types::InternalType::ScilabFunction:
diff --git a/scilab/modules/functions/tests/nonreg_tests/bug_14992.tst b/scilab/modules/functions/tests/nonreg_tests/bug_14992.tst
new file mode 100644 (file)
index 0000000..8d249f0
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 14992 -->
+
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14992
+
+// <-- Short Description -->
+// readgateway function was removeed, use whereis instead
+
+assert_checkequal(whereis("cos"), "elementary_functions");
+assert_checkequal(whereis(cos), "elementary_functions");
+assert_checkequal(whereis("acosd"), "elementary_functionslib");
+assert_checkequal(whereis(acosd), "elementary_functionslib");
diff --git a/scilab/modules/functions/tests/unit_tests/whereis.dia.ref b/scilab/modules/functions/tests/unit_tests/whereis.dia.ref
deleted file mode 100644 (file)
index 33a2f4b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008 - INRIA
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-//whereis
-assert_checkequal(whereis("sci2exp"), "stringlib");
-assert_checkequal(whereis("aaa"), []);
-assert_checkequal(whereis("with_tk"), "corelib");
-a = corelib;
-assert_checkequal(whereis("with_tk"), ["a" ; "corelib"]);
index 189d0f2..15e78d0 100644 (file)
@@ -6,13 +6,24 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+
 //whereis
 
-assert_checkequal(whereis("sci2exp"), "stringlib");
 assert_checkequal(whereis("aaa"), []);
 
+//macros
+assert_checkequal(whereis("sci2exp"), "stringlib");
+assert_checkequal(whereis(sci2exp), "stringlib");
 assert_checkequal(whereis("with_tk"), "corelib");
+assert_checkequal(whereis(with_tk), "corelib");
+
 a = corelib;
 assert_checkequal(whereis("with_tk"), ["a" ; "corelib"]);
 
-
+//builtin
+assert_checkequal(whereis("exit"), "core");
+assert_checkequal(whereis(exit), "core");
+assert_checkequal(whereis("length"), "string");
+assert_checkequal(whereis(length), "string");