c5fbc07cbc49241a40ca9c2c4b1634acf8d58494
[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 // Copyright (C) 2012 - 2016 - Scilab Enterprises
4 // Copyright (C) 2020 - Samuel GOUGEON
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     if findfiles("SCI/modules/helptools/jar","*_help.jar") == [] then
16         error(msprintf(gettext("%s: help file(.jar) is not installed.\n"), "help"));
17     end
18     if getscilabmode() == "NWNI" then
19         error(msprintf(gettext("%s: The help browser is disabled in %s mode.\n"), "help", getscilabmode()));
20     end
21
22     if argn(2) >= 1 then
23         key = varargin(1);
24         if type(key) <> 10 then
25             error(msprintf(_("%s: Wrong type for input argument #%d: string expected.\n"),"help",1));
26         end
27     else
28         key = "";
29     end
30
31     global %helps
32     // Retrieving the browser language and former page:
33     filename = SCIHOME + filesep() + "configuration.xml"
34     res = xmlGetValues("//Setting/Profile/HelpBrowser", ["index" "lang"], filename);
35     if key == "" then
36         key = res(1)
37     end
38     if res(2) == ""
39         lang = getlanguage()
40     else
41         lang = res(2)
42     end
43
44     key = stripblanks(key)
45
46     symbols = strsplit("()[]{}%''"":*/\.<>&^|~+-")';
47     exceptions = ["%t" "%T" "%f" "%F" "%onprompt"]; // http://bugzilla.scilab.org/15356
48     if or(part(key,1)==symbols) & exists(key)==0 & and(key~=exceptions) then
49         key = "symbols";
50     end
51
52     // Treat "$" apart because contrarily to the previous symbols, "$" is an existing variable in Scilab
53     if part(key,1)=="$" & (exists(key)==0 | length(key)==1) then
54         key = "symbols";
55     end
56     // Calling the browser
57     helpbrowser(%helps(:,1), key, lang, %f);
58     // If the key is not a xml:id, then full-text search is done (See Java code)
59
60 endfunction