f3e6ddec54fb4acd1cd1407cb0739abade2c5138
[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 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10
11 // Main Scilab initialisation file
12
13 mode(-1);  // silent execution mode
14
15 // clean database when restarted ======================================
16 predef("clear"); //unprotect all variables
17 clear  // erase all variables
18 clearglobal();
19
20 // Set stack size   ===================================================
21 function setStackSize()
22   defaultstacksize = 10000000;
23   old = stacksize()
24   params = sciargs();
25   nparam = find(params == "-mem");
26   if (nparam) then
27     ierr = execstr("newstacksize=" + params(nparam + 1), "errcatch");
28     if (ierr == 0) then
29       if old(1) <> newstacksize then
30         stacksize(newstacksize);
31       end
32     else
33       if old(1) <> defaultstacksize then
34         stacksize(defaultstacksize);
35       end
36     end
37   else
38     if old(1) <> defaultstacksize then
39       stacksize(defaultstacksize);
40     end
41   end
42 endfunction
43 setStackSize();
44 clear setStackSize;
45
46 // Special variables definition =======================================
47 oldieee=ieee()
48 ieee(2);
49 %inf = 1/0;
50 ieee(0);
51 %nan = %inf-%inf;
52 // boolean variables
53 %T = %t;
54 %F = %f;
55 %tk = (with_module("tclsci") & getscilabmode() <> "NWNI");
56
57 ieee(oldieee);
58 clear oldieee
59
60 // Default Obsolete Warning policy  ===================================
61 global %modalWarning;
62 // False -> Scilab will only display a Warning message in the console
63 //          if warnings are enabled [warning("on"/"off")].
64 // True  -> Scilab will show a blocking popup.
65 %modalWarning = %F;
66 clear %modalWarning;
67
68 // Create some configuration variables ================================
69 PWD = pwd();
70
71 // Startup message  ===================================================
72 if (sciargs() <> "-nb") & ~fromjava() & ~fromc() & getscilabmode() == "STD" then
73   write(%io(2),[" ";gettext("Startup execution:")]);
74   write(%io(2),gettext("  loading initial environment"));
75 end
76
77 if ((getscilabmode() == "NWNI" | getscilabmode() == "NW") & ~fromjava() & ~fromc() & sciargs()<>"-nb")
78    [v, opts] = getversion()
79    write(%io(2), strsubst(v, "scilab-", "Scilab ") + " (" + opts($-1) + ", " + opts($) + ")");
80    clear v opts;
81 end
82
83 // loads modules ======================================================
84 modules    = getmodules();
85
86 // Map 'load' to 'old binary files load' called %_load to be able to load Scilab libraries
87 warning("off");
88 load = %_load;
89 warning("on");
90
91 for i=1:size(modules,"*")
92   startFile = "SCI/modules/" + modules(i) + "/etc/" + modules(i) + ".start";
93   ierr=exec(startFile, 'errcatch', -1);
94   if ierr <> 0 then
95      disp(msprintf(gettext("Failed to execute %s:"),startFile));
96      disp(lasterror());
97      exit(2);
98    end
99 end
100 clear modules i load ierr startFile;
101
102 // Create some configuration variables ================================
103 home = getenv("HOME", SCI);
104 if getos() <> "Windows" then
105   if getenv("PRINTERS", "ndef") == "ndef" then
106     setenv("PRINTERS", "lp");
107   end
108 end
109 setenv("VERSION", getversion());
110
111 // ATOMS ===============================================================
112 if with_module("atoms") then
113   atomsSystemInit();
114   if sciargs() <> "-noatomsautoload" then
115     atomsAutoload();
116     clear atomsAutoload;
117   end
118   clear atomsSystemInit;
119 end
120
121
122 // Protect variable previously defined  ================================
123 predef("all");
124
125 // At startup, no interactive vertical paging by default. ==============
126 lines(0);
127
128 // load contrib menu if present ========================================
129 function loadContrib()
130   if isfile(SCI+"/contrib/loader.sce") then
131     global %toolboxes;
132     global %toolboxes_dir;
133     exec(SCI+"/contrib/loader.sce");
134   end
135 endfunction
136 loadContrib();
137 clear loadContrib;
138
139 // calling user initialization =========================================
140 if sciargs()<>"-nouserstartup" then
141
142   startupfiles = [ SCIHOME + filesep() + ".scilab"     ; .. // Home directory startup
143                    SCIHOME + filesep() + "scilab.ini" ];    //  ""      ""    startup
144
145   if SCIHOME <> pwd() then
146     startupfiles = [ startupfiles     ; ..
147                      ".scilab"        ; .. // Working directory startup
148                      "scilab.ini" ]   ;    //  ""         ""    startup
149   end
150
151   for i = 1:size(startupfiles, "*")
152     if isfile(startupfiles(i)) then
153       exec(startupfiles(i),-1);
154     end
155   end
156
157   clear i;
158   clear startupfiles;
159 end
160
161 // Menus/toolbar can now be enabled ====================================
162 if getscilabmode() == "STD" then
163   setmenu(gettext("&File"));
164   setmenu(gettext("&Edit"));
165   setmenu(gettext("&Preferences"));
166   setmenu(gettext("&Control"));
167   setmenu(gettext("&Applications"));
168   if ~with_module("scinotes") then // Desactivate Editor menu
169     unsetmenu(gettext("&Applications"), 1);
170   end
171   if ~with_module("xcos") then // Desactivate xcos menu
172     unsetmenu(gettext("&Applications"), 3);
173   end
174   if ~with_module("m2sci") then // Desactivate mfile2sci menu
175     unsetmenu(gettext("&Applications"), 5);
176   end
177   if ~with_module("atoms") then // Desactivate atoms menu
178     unsetmenu(gettext("&Applications"), 7);
179   end
180   setmenu(gettext("&?"));
181   setmenu(gettext("&Toolboxes"));
182   toolbar(-1, "on");
183 end
184 // ====================================================================
185 clear ans