* Bug 16328 fixed: typos exists => exist
[scilab.git] / scilab / modules / helptools / macros / help.sci
index e2ef1a4..efd7068 100644 (file)
@@ -1,11 +1,14 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA - Vincent COUVERT
 //
-// 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
+// Copyright (C) 2012 - 2016 - Scilab Enterprises
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
 
 function help(varargin)
 
@@ -29,20 +32,27 @@ function help(varargin)
             end
 
             if type(key) <> 10 then
-                error(999,msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"help",1));
+                error(msprintf(_("%s: Wrong type for input argument #%d: string expected.\n"),"help",1));
             end
 
             // Search a function name
             key=stripblanks(key)
 
-            if or(part(key,1)==["(",")","[","]","{","}","%","''","""",":","*","/","\",".","<",">","&","^","|","~","+","-"]) & exists(key)==0 then
+            global %helps
+            symbols = strsplit("()[]{}%''"":*/\.<>&^|~+-")';
+            exceptions = ["%t" "%T" "%f" "%F" "%onprompt"]; // http://bugzilla.scilab.org/15356
+            if or(part(key,1)==symbols) & exists(key)==0 & and(key~=exceptions) then
+                key="symbols";
+            end
+
+            // Treat "$" apart because contrarily to the previous symbols, "$" is an existing variable in Scilab
+            if part(key,1)=="$" & (exists(key)==0 | length(key)==1) then
                 key="symbols";
             end
 
-            global %helps
             helpbrowser(%helps(:,1), key, getlanguage(), %f);
 
-            // If the function name does not exists then full-text search is done (See Java code)
+            // If the function name does not exist, then full-text search is done (See Java code)
 
         else
             error(msprintf(gettext("%s: The help browser is disabled in %s mode.\n"), "help", getscilabmode()));