872f33dc78a932ffaf697e00f95322ccb7e61f51
[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 // Copyright (C) 2012 - 2016 - Scilab Enterprises
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
93 // Protect variable previously defined  ================================
94 clear = clear          // special case: http://bugzilla.scilab.org/12198
95 predef("all");
96
97 // At startup, no interactive vertical paging by default. ==============
98 lines(0);
99
100 // load contrib menu if present ========================================
101 function loadContrib()
102   if isfile(SCI+"/contrib/loader.sce") then
103     global %toolboxes;
104     global %toolboxes_dir;
105     exec(SCI+"/contrib/loader.sce");
106   end
107 endfunction
108 loadContrib();
109 clear loadContrib;
110
111 // calling user initialization =========================================
112 if ~or(sciargs()=="-nouserstartup") then
113
114   startupfiles = [ SCIHOME + filesep() + ".scilab"     ; .. // Home directory startup
115                    SCIHOME + filesep() + "scilab.ini" ];    //  ""      ""    startup
116   for f = startupfiles'
117     if isfile(f) then
118       exec(f, -1)
119     end
120   end
121
122   // execute .scilab and scilab.start only
123   // if last exec does not change current directory to SCIHOME
124   // See bug #4150
125   usedwd = xmlGetValues("//general/body/startup", "use");
126   if usedwd=="previous"
127       workingDirectory =  xmlGetValues("//general/body/startup", "previous");
128   elseif usedwd=="default"
129       workingDirectory =  xmlGetValues("//general/body/startup", "default");
130   else
131       workingDirectory = pwd();
132   end
133   if SCIHOME <> workingDirectory then
134       startupfiles = [ workingDirectory + filesep() + ".scilab"     ; .. // Working directory startup
135                        workingDirectory + filesep() + "scilab.ini" ];    //  ""      ""    startup
136
137       for f = startupfiles'
138         if isfile(f) then
139           exec(f, -1)
140         end
141       end
142   end
143
144   clear usedwd f startupfiles workingDirectory
145 end
146
147 // Menus/toolbar can now be enabled ====================================
148 if getscilabmode() == "STD" then
149   setmenu(gettext("&File"));
150   setmenu(gettext("&Edit"));
151   setmenu(gettext("&Preferences"));
152   setmenu(gettext("&Control"));
153   setmenu(gettext("&Applications"));
154   if ~with_module("scinotes") then // Desactivate Editor menu
155     unsetmenu(gettext("&Applications"), 1);
156   end
157   if ~with_module("xcos") then // Desactivate xcos menu
158     unsetmenu(gettext("&Applications"), 3);
159   end
160   if ~with_module("m2sci") then // Desactivate mfile2sci menu
161     unsetmenu(gettext("&Applications"), 5);
162   end
163   if ~with_module("atoms") then // Desactivate atoms menu
164     unsetmenu(gettext("&Applications"), 7);
165   end
166   setmenu(gettext("&?"));
167   setmenu(gettext("&Toolboxes"));
168   toolbar(-1, "on");
169   main_menubar_cb("setFavoriteDirs");
170 end
171 // ====================================================================
172 clear ans main_menubar_cb  getPreferencesValue