* Bug 10455 fixed: helpbrowser improved
[scilab.git] / scilab / etc / scilab.start
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2007-2008 - INRIA
3 // Copyright (C) 2009-2011 - DIGITEO
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 // Copyright (C) 2016 - 2020 - Samuel GOUGEON
6 //
7 // This file is hereby licensed under the terms of the GNU GPL v2.0,
8 // pursuant to article 5.3.4 of the CeCILL v.2.1.
9 // This file was originally licensed under the terms of the CeCILL v2.1,
10 // and continues to be available under such terms.
11 // For more information, see the COPYING file which you should have received
12 // along with this program.
13
14 // Main Scilab initialisation file
15
16 mode(-1);  // silent execution mode
17
18 // clean database when restarted ======================================
19 //predef("clear"); //unprotect all variables
20 clear;  // erase all variables
21 clearglobal();
22
23 %tk = (with_module("tclsci") & getscilabmode() <> "NWNI");
24
25 // Default Obsolete Warning policy  ===================================
26 global %modalWarning;
27 // False -> Scilab will only display a Warning message in the console
28 //          if warnings are enabled [warning("on"/"off")].
29 // True  -> Scilab will show a blocking popup.
30 %modalWarning = %F;
31 clear %modalWarning;
32
33 // Add WSCI as environment variable ===================================
34 if getos()=="Windows" then
35     setenv("WSCI", WSCI)
36 else
37     setenv("WSCI", SCI)    // for code portability
38 end
39
40 // Create some configuration variables ================================
41 PWD = pwd();
42
43 // Startup message  ===================================================
44 // if (sciargs() <> "-nb") & ~fromjava() & ~fromc() & getscilabmode() == "STD" then
45 if (sciargs() <> "-nb") & getscilabmode() == "STD" then
46   printf("\n\n%s\n", gettext("Startup execution:"));
47   printf(gettext("  loading initial environment") + "\n");
48 end
49
50 //if ((getscilabmode() == "NWNI" | getscilabmode() == "NW") & ~fromjava() & ~fromc() & sciargs()<>"-nb")
51 if ((getscilabmode() == "NWNI" | getscilabmode() == "NW") & sciargs()<>"-nb")
52    [v, opts] = getversion()
53    printf(strsubst(v, "scilab-", "Scilab ") + " (" + opts($-1) + ", " + opts($) + ")\n");
54    clear v opts;
55 end
56
57 // loads modules ======================================================
58 modules    = getmodules();
59 for i=1:size(modules,"*")
60   startFile = "SCI/modules/" + modules(i) + "/etc/" + modules(i) + ".start";
61   ierr=exec(startFile, 'errcatch', -1);
62   if ierr <> 0 then
63      disp(msprintf(gettext("Failed to execute %s:"),startFile));
64      disp(lasterror());
65      exit(2);
66    end
67 end
68 clear modules i ierr startFile;
69
70 // Create some configuration variables ================================
71 //home = getenv("HOME", SCI);
72 if getos() <> "Windows" then
73   if getenv("PRINTERS", "ndef") == "ndef" then
74     setenv("PRINTERS", "lp");
75   end
76 end
77 setenv("VERSION", getversion());
78
79 // Add %chars constant ================================================
80 %chars = percentchars()
81
82 // ATOMS ===============================================================
83 if with_module("atoms") then
84   atomsSystemInit();
85   if sciargs() <> "-noatomsautoload" then
86     atomsAutoload();
87     clear atomsAutoload;
88   end
89   clear atomsSystemInit;
90 end
91
92 // Helpbrowser: ========================================================
93 // If the browser is open, restore the page left at last exit
94 helpbrowser_update("startup");
95 clear helpbrowser_update
96
97 // Protect variable previously defined  ================================
98 clear = clear          // special case: http://bugzilla.scilab.org/12198
99 predef("all");
100
101 // At startup, no interactive vertical paging by default. ==============
102 lines(0);
103
104 // load contrib menu if present ========================================
105 function loadContrib()
106   if isfile(SCI+"/contrib/loader.sce") then
107     global %toolboxes;
108     global %toolboxes_dir;
109     exec(SCI+"/contrib/loader.sce");
110   end
111 endfunction
112 loadContrib();
113 clear loadContrib;
114
115 // calling user initialization =========================================
116 if ~or(sciargs()=="-nouserstartup") then
117
118   startupfiles = [ SCIHOME + filesep() + ".scilab"     ; .. // Home directory startup
119                    SCIHOME + filesep() + "scilab.ini" ];    //  ""      ""    startup
120   for f = startupfiles'
121     if isfile(f) then
122       exec(f, -1)
123     end
124   end
125
126   // execute .scilab and scilab.start only
127   // if last exec does not change current directory to SCIHOME
128   // See bug #4150
129   usedwd = xmlGetValues("//general/body/startup", "use");
130   if usedwd=="previous"
131       workingDirectory =  xmlGetValues("//general/body/startup", "previous");
132   elseif usedwd=="default"
133       workingDirectory =  xmlGetValues("//general/body/startup", "default");
134   else
135       workingDirectory = pwd();
136   end
137   if SCIHOME <> workingDirectory then
138       startupfiles = [ workingDirectory + filesep() + ".scilab"     ; .. // Working directory startup
139                        workingDirectory + filesep() + "scilab.ini" ];    //  ""      ""    startup
140
141       for f = startupfiles'
142         if isfile(f) then
143           exec(f, -1)
144         end
145       end
146   end
147
148   clear usedwd f startupfiles workingDirectory
149 end
150
151 // Menus/toolbar can now be enabled ====================================
152 if getscilabmode() == "STD" then
153   setmenu(gettext("&File"));
154   setmenu(gettext("&Edit"));
155   setmenu(gettext("&Preferences"));
156   setmenu(gettext("&Control"));
157   setmenu(gettext("&Applications"));
158   if ~with_module("scinotes") then // Desactivate Editor menu
159     unsetmenu(gettext("&Applications"), 1);
160   end
161   if ~with_module("xcos") then // Desactivate xcos menu
162     unsetmenu(gettext("&Applications"), 3);
163   end
164   if ~with_module("m2sci") then // Desactivate mfile2sci menu
165     unsetmenu(gettext("&Applications"), 5);
166   end
167   if ~with_module("atoms") then // Desactivate atoms menu
168     unsetmenu(gettext("&Applications"), 7);
169   end
170   setmenu(gettext("&?"));
171   setmenu(gettext("&Toolboxes"));
172   toolbar(-1, "on");
173   main_menubar_cb("setFavoriteDirs");
174 end
175 // ====================================================================
176 clear ans main_menubar_cb  getPreferencesValue