efd7068602932380e7b670c14eb06238d138e70b
[scilab.git] / scilab / modules / helptools / macros / help.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008 - INRIA - Vincent COUVERT
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 function help(varargin)
14
15     [lhs,rhs]=argn(0);
16
17     if rhs >= 1 then
18         key = varargin(1);
19     else
20         key = "";
21     end
22
23     if (findfiles("SCI/modules/helptools/jar","*_help.jar") <> []) then
24
25         if getscilabmode() <> "NWNI" then
26
27             // No input argument: launch help browser
28             if argn(2)==0 then
29                 global %helps
30                 helpbrowser(%helps(:,1), getlanguage());
31                 return
32             end
33
34             if type(key) <> 10 then
35                 error(msprintf(_("%s: Wrong type for input argument #%d: string expected.\n"),"help",1));
36             end
37
38             // Search a function name
39             key=stripblanks(key)
40
41             global %helps
42             symbols = strsplit("()[]{}%''"":*/\.<>&^|~+-")';
43             exceptions = ["%t" "%T" "%f" "%F" "%onprompt"]; // http://bugzilla.scilab.org/15356
44             if or(part(key,1)==symbols) & exists(key)==0 & and(key~=exceptions) then
45                 key="symbols";
46             end
47
48             // Treat "$" apart because contrarily to the previous symbols, "$" is an existing variable in Scilab
49             if part(key,1)=="$" & (exists(key)==0 | length(key)==1) then
50                 key="symbols";
51             end
52
53             helpbrowser(%helps(:,1), key, getlanguage(), %f);
54
55             // If the function name does not exist, then full-text search is done (See Java code)
56
57         else
58             error(msprintf(gettext("%s: The help browser is disabled in %s mode.\n"), "help", getscilabmode()));
59         end
60     else
61         error(msprintf(gettext("%s: help file(.jar) is not installed.\n"), "help"));
62     end
63
64 endfunction