Mercurial > hg > octave-nkf
annotate libgui/src/octave-cmd.cc @ 20815:a260a6acb70f
fix test failures introduced by a22d8a2eb0e5
* scripts/ode/private/integrate_adaptive.m: fix stepping backwards, fix
invocation of OutputFcn, fix text of some error messages
* scripts/ode/private/integrate_const.m: remove use of option OutputSave
* scripts/ode/private/integrate_n_steps.m: remove use of option OutputSave
author | Carlo de Falco <carlo.defalco@polimi.it> |
---|---|
date | Sun, 11 Oct 2015 23:09:01 +0200 |
parents | 3be09ebf2105 |
children |
rev | line source |
---|---|
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
1 /* |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
2 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
3 Copyright (C) 2014 Torsten |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
4 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
5 This file is part of Octave. |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
6 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
7 Octave is free software; you can redistribute it and/or modify it |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
8 under the terms of the GNU General Public License as published by the |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
9 Free Software Foundation; either version 3 of the License, or (at your |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
10 option) any later version. |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
11 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but WITHOUT |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
15 for more details. |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
16 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
18 along with Octave; see the file COPYING. If not, see |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
19 <http://www.gnu.org/licenses/>. |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
20 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
21 */ |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
22 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
23 // Author: Torsten <ttl@justmail.de> |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
24 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
25 #ifdef HAVE_CONFIG_H |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
26 #include <config.h> |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
27 #endif |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
28 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
29 #include "octave-cmd.h" |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
30 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
31 #include "octave-qt-link.h" |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
32 #include "cmd-edit.h" |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
33 #include "builtin-defun-decls.h" |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
34 #include "utils.h" |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
35 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
36 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
37 // --------------------------------------------------------------------- |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
38 // class octave_cmd_exec: executing a command |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
39 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
40 void |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
41 octave_cmd_exec::execute () |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
42 { |
20011
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
43 std::string pending_input = command_editor::get_current_line (); |
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
44 |
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
45 command_editor::set_initial_input (pending_input); |
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
46 command_editor::replace_line (_cmd.toStdString ()); |
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
47 command_editor::redisplay (); |
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
48 command_editor::accept_line (); |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
49 } |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
50 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
51 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
52 // --------------------------------------------------------------------- |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
53 // class octave_cmd_eval: running a file |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
54 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
55 void |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
56 octave_cmd_eval::execute () |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
57 { |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
58 QString function_name = _info.fileName (); |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
59 function_name.chop (_info.suffix ().length () + 1); |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
60 std::string file_path = _info.absoluteFilePath ().toStdString (); |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
61 |
20011
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
62 std::string pending_input = command_editor::get_current_line (); |
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
63 |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
64 if (valid_identifier (function_name.toStdString ())) |
20068
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
20011
diff
changeset
|
65 { |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
20011
diff
changeset
|
66 // valid identifier: call as function with possibility to debug |
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
67 std::string path = _info.absolutePath ().toStdString (); |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
68 if (octave_qt_link::file_in_path (file_path, path)) |
20110
26281bc8d23b
fix non functioning ctrl-c when function executed from editor (bug #44397)
Torsten <ttl@justmail.de>
parents:
20068
diff
changeset
|
69 command_editor::replace_line (function_name.toStdString ()); |
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
70 } |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
71 else |
20068
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
20011
diff
changeset
|
72 { |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
20011
diff
changeset
|
73 // no valid identifier: use Fsource (), no debug possible |
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
74 Fsource (ovl (file_path)); |
20110
26281bc8d23b
fix non functioning ctrl-c when function executed from editor (bug #44397)
Torsten <ttl@justmail.de>
parents:
20068
diff
changeset
|
75 command_editor::replace_line (""); |
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
76 } |
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
77 |
20011
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
78 command_editor::set_initial_input (pending_input); |
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
79 command_editor::redisplay (); |
c5f0df2a7291
fix error when entering dbcont in terminal while running a file from gui
Torsten <ttl@justmail.de>
parents:
19978
diff
changeset
|
80 |
20693
3be09ebf2105
do not leave debug modus when entering a command at debug prompt (bug #45737)
Torsten <ttl@justmail.de>
parents:
20110
diff
changeset
|
81 command_editor::accept_line (); |
19978
034bcac0b61c
use of C++ API for running a file (bug #42307)
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
82 } |