Preferences: continue to connect SciNotes
[scilab.git] / scilab / modules / scinotes / macros / editor.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
2 // Copyright (C) 2012 - Scilab Enterprises - Calixte DENIZET\r
3 //\r
4 // This file must be used under the terms of the CeCILL.\r
5 // This source file is licensed as described in the file COPYING, which\r
6 // you should have received as part of this distribution.  The terms\r
7 // are also available at\r
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
9 \r
10 // This function is designed to call the godd "editor" according the values in\r
11 // the preferences file.\r
12 // This function can take any type of arguments.\r
13 function editor(varargin)\r
14     doc = xmlRead(SCIHOME + "/XConfiguration.xml");\r
15     prefsNode = xmlXPath(doc, "//scinotes/body/scinotes-preferences");\r
16     prefsNode = prefsNode(1);\r
17     if prefsNode.attributes.scinotes == "true" then\r
18         xmlDelete(doc);\r
19         cmd = makeCommand("scinotes", varargin);\r
20         execstr(cmd);\r
21     elseif prefsNode.attributes("external-cmd") == "true" then\r
22         cmd = prefsNode.attributes.cmd;\r
23         xmlDelete(doc);\r
24         for item=varargin\r
25             cmd = cmd + " " + string(item); \r
26         end\r
27         unix_w(cmd);\r
28     else\r
29         cmd = makeCommand(prefsNode.attributes.cmd, varargin);\r
30         xmlDelete(doc);\r
31         execstr(cmd);\r
32     end\r
33 endfunction\r
34 \r
35 // Private function\r
36 // Params:\r
37 //   - name: the command name\r
38 //   - args: a list of arguments\r
39 // Return:\r
40 //   - cmd: the complete command to call with execstr\r
41 //\r
42 function cmd = makeCommand(name, args)\r
43     cmd = name + "(";\r
44     N = size(args);\r
45     if N ~= 0 then\r
46         for i=1:(N-1)\r
47             arg = string(args(i));\r
48             if type(args(i)) == 10 then\r
49                 arg = """" + arg + """";\r
50             end\r
51             cmd = cmd + arg + ","; \r
52         end\r
53 \r
54         arg = string(args(N));\r
55         if type(args(N)) == 10 then\r
56             arg = """" + arg + """";\r
57         end\r
58         cmd = cmd + arg\r
59     end\r
60     cmd = cmd + ")";\r
61 endfunction