Mercurial > octave
annotate liboctave/util/cmd-edit.cc @ 29358:0a5b15007766 stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 10 Feb 2021 09:52:15 -0500 |
parents | bd51beb6205e |
children | 7854d5752dd2 d13d090cb03a |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
29358
0a5b15007766
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
3 // Copyright (C) 1996-2021 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
2926 | 25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
26 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21202
diff
changeset
|
27 # include "config.h" |
2926 | 28 #endif |
29 | |
10463
bbe99b2a5ba7
undo recent gnulib-related changes
John W. Eaton <jwe@octave.org>
parents:
10447
diff
changeset
|
30 #include <cstdlib> |
bbe99b2a5ba7
undo recent gnulib-related changes
John W. Eaton <jwe@octave.org>
parents:
10447
diff
changeset
|
31 #include <cstring> |
2926 | 32 |
33 #include <string> | |
34 | |
35 #include "cmd-edit.h" | |
36 #include "cmd-hist.h" | |
5872 | 37 #include "file-ops.h" |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
38 #include "file-stat.h" |
2926 | 39 #include "lo-error.h" |
40 #include "lo-utils.h" | |
41 #include "oct-env.h" | |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7758
diff
changeset
|
42 #include "oct-mutex.h" |
3260 | 43 #include "oct-time.h" |
21910
4d723ba06b4a
provide wrappers for some unistd.h functions
John W. Eaton <jwe@octave.org>
parents:
21876
diff
changeset
|
44 #include "quit.h" |
13983
7dd7cccf0757
clean up memory allocated for singletons before exit
John W. Eaton <jwe@octave.org>
parents:
13924
diff
changeset
|
45 #include "singleton-cleanup.h" |
21944
4b2eab5d2a6a
provide wrapper for strdup
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
46 #include "strdup-wrapper.h" |
21910
4d723ba06b4a
provide wrappers for some unistd.h functions
John W. Eaton <jwe@octave.org>
parents:
21876
diff
changeset
|
47 #include "unistd-wrappers.h" |
2926 | 48 |
49 #if defined (USE_READLINE) | |
50 #include <cstdio> | |
51 | |
3519 | 52 #include "oct-rl-edit.h" |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
53 #endif |
2926 | 54 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
55 namespace octave |
2926 | 56 { |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
57 char * do_completer_word_break_hook (); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
58 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
59 command_editor *command_editor::s_instance = nullptr; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
60 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
61 std::set<command_editor::startup_hook_fcn> command_editor::startup_hook_set; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
62 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
63 std::set<command_editor::pre_input_hook_fcn> command_editor::pre_input_hook_set; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
64 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
65 std::set<command_editor::event_hook_fcn> command_editor::event_hook_set; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
66 |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
67 static mutex event_hook_lock; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
68 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
69 #if defined (USE_READLINE) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
70 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
71 class |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
72 gnu_readline : public command_editor |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
73 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
74 public: |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
75 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
76 typedef command_editor::startup_hook_fcn startup_hook_fcn; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
77 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
78 typedef command_editor::pre_input_hook_fcn pre_input_hook_fcn; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
79 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
80 typedef command_editor::event_hook_fcn event_hook_fcn; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
81 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
82 typedef command_editor::completion_fcn completion_fcn; |
2926 | 83 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
84 gnu_readline (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
85 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
86 ~gnu_readline (void) = default; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
87 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
88 void do_set_name (const std::string& n); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
89 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
90 std::string do_readline (const std::string& prompt, bool& eof); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
91 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
92 void do_set_input_stream (FILE *f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
93 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
94 FILE * do_get_input_stream (void); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
95 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
96 void do_set_output_stream (FILE *f); |
3519 | 97 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
98 FILE * do_get_output_stream (void); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
99 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
100 void do_redisplay (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
101 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
102 int do_terminal_rows (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
103 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
104 int do_terminal_cols (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
105 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
106 void do_clear_screen (bool skip_redisplay); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
107 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
108 void do_resize_terminal (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
109 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
110 void do_set_screen_size (int ht, int wd); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
111 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
112 std::string newline_chars (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
113 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
114 void do_restore_terminal_state (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
115 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
116 void do_blink_matching_paren (bool flag); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
117 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
118 bool do_erase_empty_line (bool flag); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
119 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
120 void do_set_basic_word_break_characters (const std::string& s); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
121 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
122 void do_set_completer_word_break_characters (const std::string& s); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
123 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
124 void do_set_basic_quote_characters (const std::string& s); |
2926 | 125 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
126 void do_set_filename_quote_characters (const std::string& s); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
127 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
128 void do_set_completer_quote_characters (const std::string& s); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
129 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
130 void do_set_completion_append_character (char c); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
131 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
132 void do_set_completion_function (completion_fcn f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
133 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
134 void do_set_quoting_function (quoting_fcn f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
135 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
136 void do_set_dequoting_function (dequoting_fcn f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
137 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
138 void do_set_char_is_quoted_function (char_is_quoted_fcn f); |
2941 | 139 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
140 void do_set_user_accept_line_function (user_accept_line_fcn f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
141 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
142 completion_fcn do_get_completion_function (void) const; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
143 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
144 quoting_fcn do_get_quoting_function (void) const; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
145 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
146 dequoting_fcn do_get_dequoting_function (void) const; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
147 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
148 char_is_quoted_fcn do_get_char_is_quoted_function (void) const; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
149 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
150 user_accept_line_fcn do_get_user_accept_line_function (void) const; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
151 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
152 string_vector |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
153 do_generate_filename_completions (const std::string& text); |
2926 | 154 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
155 std::string do_get_line_buffer (void) const; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
156 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
157 std::string do_get_current_line (void) const; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
158 |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
159 char do_get_prev_char (int) const; |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
160 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
161 void do_replace_line (const std::string& text, bool clear_undo); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
162 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
163 void do_kill_full_line (void); |
2926 | 164 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
165 void do_insert_text (const std::string& text); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
166 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
167 void do_newline (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
168 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
169 void do_accept_line (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
170 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
171 bool do_undo (void); |
2926 | 172 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
173 void do_clear_undo_list (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
174 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
175 void set_startup_hook (startup_hook_fcn f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
176 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
177 void restore_startup_hook (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
178 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
179 void set_pre_input_hook (pre_input_hook_fcn f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
180 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
181 void restore_pre_input_hook (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
182 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
183 void set_event_hook (event_hook_fcn f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
184 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
185 void restore_event_hook (void); |
2926 | 186 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
187 void do_restore_event_hook (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
188 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
189 void do_read_init_file (const std::string& file); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
190 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
191 void do_re_read_init_file (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
192 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
193 bool do_filename_completion_desired (bool); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
194 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
195 bool do_filename_quoting_desired (bool); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
196 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
197 bool do_prefer_env_winsize (bool); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
198 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
199 void do_interrupt (bool); |
2926 | 200 |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
201 void do_handle_interrupt_signal (void); |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
202 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
203 static int operate_and_get_next (int, int); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
204 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
205 static int history_search_backward (int, int); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
206 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
207 static int history_search_forward (int, int); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
208 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
209 private: |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
210 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
211 startup_hook_fcn previous_startup_hook; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
212 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
213 pre_input_hook_fcn previous_pre_input_hook; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
214 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
215 event_hook_fcn previous_event_hook; |
2926 | 216 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
217 completion_fcn completion_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
218 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
219 quoting_fcn quoting_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
220 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
221 dequoting_fcn dequoting_function; |
2926 | 222 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
223 char_is_quoted_fcn char_is_quoted_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
224 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
225 user_accept_line_fcn user_accept_line_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
226 |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
227 static std::string completer_quote_characters; |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
228 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
229 static char * command_generator (const char *text, int state); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
230 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
231 static char * command_quoter (char *text, int match_type, char *quote_pointer); |
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
232 static char * command_dequoter (char *text, int match_type); |
2926 | 233 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
234 static int command_char_is_quoted (char *text, int index); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
235 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
236 static int command_accept_line (int count, int key); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
237 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
238 static char ** command_completer (const char *text, int start, int end); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
239 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
240 static char * do_completer_word_break_hook (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
241 }; |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16537
diff
changeset
|
242 |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
243 std::string gnu_readline::completer_quote_characters = ""; |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
244 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
245 gnu_readline::gnu_readline () |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
246 : command_editor (), previous_startup_hook (nullptr), |
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
247 previous_pre_input_hook (nullptr), |
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
248 previous_event_hook (nullptr), completion_function (nullptr), |
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
249 quoting_function (nullptr), dequoting_function (nullptr), |
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
250 char_is_quoted_function (nullptr), user_accept_line_function (nullptr) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
251 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
252 // FIXME: need interface to rl_add_defun, rl_initialize, and |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
253 // a function to set rl_terminal_name |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
254 |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
255 std::string term = sys::env::getenv ("TERM"); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
256 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
257 octave_rl_set_terminal_name (term.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
258 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
259 octave_rl_initialize (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
260 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
261 do_blink_matching_paren (true); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
262 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
263 // Bind operate-and-get-next. |
2926 | 264 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
265 octave_rl_add_defun ("operate-and-get-next", |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
266 gnu_readline::operate_and_get_next, |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
267 octave_rl_ctrl ('O')); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
268 } |
2926 | 269 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
270 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
271 gnu_readline::do_set_name (const std::string& nm) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
272 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
273 ::octave_rl_set_name (nm.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
274 } |
2926 | 275 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
276 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
277 gnu_readline::do_readline (const std::string& prompt, bool& eof) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
278 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
279 std::string retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
280 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
281 eof = false; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
282 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
283 const char *p = prompt.c_str (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
284 |
24566
f5bcbd321ba1
don't trap the user in the readline loop (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
285 char *line = ::octave_rl_readline (p); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
286 |
24566
f5bcbd321ba1
don't trap the user in the readline loop (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
287 if (line) |
f5bcbd321ba1
don't trap the user in the readline loop (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
288 { |
f5bcbd321ba1
don't trap the user in the readline loop (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
289 retval = line; |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
290 |
24566
f5bcbd321ba1
don't trap the user in the readline loop (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
291 free (line); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
292 } |
24566
f5bcbd321ba1
don't trap the user in the readline loop (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
293 else |
f5bcbd321ba1
don't trap the user in the readline loop (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
294 eof = true; |
19309
735bc47d18af
command_editor: provide access to rl_set_screen_size
John W. Eaton <jwe@octave.org>
parents:
19304
diff
changeset
|
295 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
296 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
297 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
298 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
299 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
300 gnu_readline::do_set_input_stream (FILE *f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
301 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
302 ::octave_rl_set_input_stream (f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
303 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
304 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
305 FILE * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
306 gnu_readline::do_get_input_stream (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
307 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
308 return ::octave_rl_get_input_stream (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
309 } |
2926 | 310 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
311 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
312 gnu_readline::do_set_output_stream (FILE *f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
313 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
314 ::octave_rl_set_output_stream (f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
315 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
316 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
317 FILE * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
318 gnu_readline::do_get_output_stream (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
319 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
320 return ::octave_rl_get_output_stream (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
321 } |
2926 | 322 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
323 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
324 gnu_readline::do_redisplay (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
325 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
326 ::octave_rl_redisplay (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
327 } |
2926 | 328 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
329 // GNU readline handles SIGWINCH, so these values have a good chance |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
330 // of being correct even if the window changes size (they may be |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
331 // wrong if, for example, the luser changes the window size while the |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
332 // pager is running, and the signal is handled by the pager instead of |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
333 // us. |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
334 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
335 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
336 gnu_readline::do_terminal_rows (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
337 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
338 int sh = ::octave_rl_screen_height (); |
19378
f7ccd02bc060
provide access to the readline variable rl_erase_empty_line
John W. Eaton <jwe@octave.org>
parents:
19309
diff
changeset
|
339 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
340 return sh > 0 ? sh : 24; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
341 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
342 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
343 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
344 gnu_readline::do_terminal_cols (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
345 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
346 int sw = ::octave_rl_screen_width (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
347 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
348 return sw > 0 ? sw : 80; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
349 } |
3933 | 350 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
351 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
352 gnu_readline::do_clear_screen (bool skip_redisplay) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
353 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
354 ::octave_rl_clear_screen (skip_redisplay); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
355 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
356 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
357 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
358 gnu_readline::do_resize_terminal (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
359 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
360 ::octave_rl_resize_terminal (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
361 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
362 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
363 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
364 gnu_readline::do_set_screen_size (int ht, int wd) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
365 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
366 ::octave_rl_set_screen_size (ht, wd); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
367 } |
3933 | 368 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
369 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
370 gnu_readline::newline_chars (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
371 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
372 return "\r\n"; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
373 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
374 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
375 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
376 gnu_readline::do_restore_terminal_state (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
377 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
378 ::octave_rl_restore_terminal_state (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
379 } |
2926 | 380 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
381 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
382 gnu_readline::do_blink_matching_paren (bool flag) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
383 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
384 ::octave_rl_enable_paren_matching (flag ? 1 : 0); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
385 } |
6979 | 386 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
387 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
388 gnu_readline::do_erase_empty_line (bool flag) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
389 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
390 return ::octave_rl_erase_empty_line (flag ? 1 : 0); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
391 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
392 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
393 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
394 gnu_readline::do_set_basic_word_break_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
395 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
396 ::octave_rl_set_basic_word_break_characters (s.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
397 } |
6979 | 398 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
399 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
400 gnu_readline::do_set_completer_word_break_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
401 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
402 ::octave_rl_set_completer_word_break_characters (s.c_str ()); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
403 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
404 ::octave_rl_set_completion_word_break_hook |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
405 (gnu_readline::do_completer_word_break_hook); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
406 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
407 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
408 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
409 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
410 gnu_readline::do_set_basic_quote_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
411 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
412 ::octave_rl_set_basic_quote_characters (s.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
413 } |
2926 | 414 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
415 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
416 gnu_readline::do_set_filename_quote_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
417 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
418 ::octave_rl_set_filename_quote_characters (s.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
419 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
420 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
421 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
422 gnu_readline::do_set_completer_quote_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
423 { |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
424 completer_quote_characters = s; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
425 } |
2941 | 426 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
427 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
428 gnu_readline::do_set_completion_append_character (char c) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
429 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
430 ::octave_rl_set_completion_append_character (c); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
431 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
432 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
433 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
434 gnu_readline::do_set_completion_function (completion_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
435 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
436 completion_function = f; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
437 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
438 rl_attempted_completion_fcn_ptr fp |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
439 = (f ? gnu_readline::command_completer : nullptr); |
6979 | 440 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
441 ::octave_rl_set_completion_function (fp); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
442 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
443 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
444 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
445 gnu_readline::do_set_quoting_function (quoting_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
446 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
447 quoting_function = f; |
6979 | 448 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
449 rl_quoting_fcn_ptr fp |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
450 = (f ? gnu_readline::command_quoter : nullptr); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
451 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
452 ::octave_rl_set_quoting_function (fp); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
453 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
454 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
455 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
456 gnu_readline::do_set_dequoting_function (dequoting_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
457 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
458 dequoting_function = f; |
6979 | 459 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
460 rl_dequoting_fcn_ptr fp |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
461 = (f ? gnu_readline::command_dequoter : nullptr); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
462 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
463 ::octave_rl_set_dequoting_function (fp); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
464 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
465 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
466 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
467 gnu_readline::do_set_char_is_quoted_function (char_is_quoted_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
468 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
469 char_is_quoted_function = f; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
470 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
471 rl_char_is_quoted_fcn_ptr fp |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23696
diff
changeset
|
472 = (f ? gnu_readline::command_char_is_quoted : nullptr); |
6979 | 473 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
474 ::octave_rl_set_char_is_quoted_function (fp); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
475 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
476 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
477 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
478 gnu_readline::do_set_user_accept_line_function (user_accept_line_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
479 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
480 user_accept_line_function = f; |
2926 | 481 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
482 if (f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
483 octave_rl_add_defun ("accept-line", gnu_readline::command_accept_line, |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
484 ::octave_rl_ctrl ('M')); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
485 else |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
486 octave_rl_add_defun ("accept-line", ::octave_rl_newline, |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
487 ::octave_rl_ctrl ('M')); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
488 } |
6979 | 489 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
490 gnu_readline::completion_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
491 gnu_readline::do_get_completion_function (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
492 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
493 return completion_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
494 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
495 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
496 gnu_readline::quoting_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
497 gnu_readline::do_get_quoting_function (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
498 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
499 return quoting_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
500 } |
6979 | 501 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
502 gnu_readline::dequoting_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
503 gnu_readline::do_get_dequoting_function (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
504 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
505 return dequoting_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
506 } |
6979 | 507 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
508 gnu_readline::char_is_quoted_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
509 gnu_readline::do_get_char_is_quoted_function (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
510 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
511 return char_is_quoted_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
512 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
513 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
514 gnu_readline::user_accept_line_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
515 gnu_readline::do_get_user_accept_line_function (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
516 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
517 return user_accept_line_function; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
518 } |
6979 | 519 |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
520 // True if the last "word" of the string line (delimited by delim) is |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
521 // an existing directory. Used by do_completer_word_break_hook. |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
522 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
523 static bool |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
524 looks_like_filename (const char *line, char delim) |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
525 { |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
526 bool retval = false; |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
527 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
528 const char *s = strrchr (line, delim); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
529 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
530 if (s) |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
531 { |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
532 // Remove incomplete component. |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
533 const char *f = strrchr (line, sys::file_ops::dir_sep_char ()); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
534 |
26489
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
535 if (f && (s[1] == '~' || f != s)) |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
536 { |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
537 // For something like "A /b", f==s; don't assume a file. |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
538 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
539 std::string candidate_filename = s+1; |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
540 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
541 candidate_filename = candidate_filename.substr (0, f - s); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
542 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
543 // Handles any complete ~<username>, but doesn't expand usernames. |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
544 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
545 if (candidate_filename[0] == '~') |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
546 candidate_filename |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
547 = sys::file_ops::tilde_expand (candidate_filename); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
548 |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
549 sys::file_stat fs (candidate_filename); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
550 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
551 retval = fs.is_dir (); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
552 } |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
553 } |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
554 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
555 return retval; |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
556 } |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
557 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
558 // Decide whether to interpret partial commands like "abc/def" as a |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
559 // filename or division. Return the set of delimiters appropriate for |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
560 // the decision. |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
561 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
562 char * |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
563 gnu_readline::do_completer_word_break_hook () |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
564 { |
21944
4b2eab5d2a6a
provide wrapper for strdup
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
565 static char *dir_sep = octave_strdup_wrapper (" '\""); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
566 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
567 std::string word; |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
568 std::string line = get_line_buffer (); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
569 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
570 // For now, assume space or quote delimiter for file names. |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
571 const char *l = line.c_str (); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
572 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
573 if (looks_like_filename (l, ' ') || looks_like_filename (l, '\'') |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
574 || looks_like_filename (l, '"')) |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
575 { |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26489
diff
changeset
|
576 ::octave_rl_set_completer_quote_characters |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
26489
diff
changeset
|
577 (completer_quote_characters.c_str ()); |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
578 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
579 return dir_sep; |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
580 } |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
581 else |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
582 { |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
583 ::octave_rl_set_completer_quote_characters (""); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
584 |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
585 return octave_rl_get_completer_word_break_characters (); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
586 } |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
587 } |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21748
diff
changeset
|
588 |
4604 | 589 string_vector |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
590 gnu_readline::do_generate_filename_completions (const std::string& text) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
591 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
592 string_vector retval; |
2926 | 593 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
594 int n = 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
595 int count = 0; |
2926 | 596 |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23450
diff
changeset
|
597 char *fn = nullptr; |
3215 | 598 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
599 while (1) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
600 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
601 fn = ::octave_rl_filename_completion_function (text.c_str (), count); |
4143 | 602 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
603 if (fn) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
604 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
605 if (count == n) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
606 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
607 // Famous last words: Most large directories will not |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
608 // have more than a few hundred files, so we should not |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
609 // resize too many times even if the growth is linear... |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
610 n += 100; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
611 retval.resize (n); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
612 } |
6979 | 613 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
614 retval[count++] = fn; |
6979 | 615 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
616 free (fn); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
617 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
618 else |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
619 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
620 } |
6979 | 621 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
622 retval.resize (count); |
2926 | 623 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
624 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
625 } |
2926 | 626 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
627 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
628 gnu_readline::do_get_line_buffer (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
629 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
630 return ::octave_rl_line_buffer (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
631 } |
2926 | 632 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
633 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
634 gnu_readline::do_get_current_line (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
635 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
636 std::string retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
637 char *buf = ::octave_rl_copy_line (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
638 retval = buf; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
639 free (buf); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
640 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
641 } |
2926 | 642 |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
643 // Return the character (offset+1) to the left of the cursor, |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
644 // or '\0' if the cursor is at the start of the line. |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
645 char |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
646 gnu_readline::do_get_prev_char (int offset) const |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
647 { |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
648 const char *buf = ::octave_rl_line_buffer (); |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
649 int p = ::octave_rl_point (); |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
650 |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
651 return p > offset ? buf[p - offset - 1] : '\0'; |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
652 } |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
653 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
654 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
655 gnu_readline::do_replace_line (const std::string& text, bool clear_undo) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
656 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
657 ::octave_rl_replace_line (text.c_str (), clear_undo); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
658 } |
2926 | 659 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
660 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
661 gnu_readline::do_kill_full_line (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
662 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
663 ::octave_rl_kill_full_line (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
664 } |
2926 | 665 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
666 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
667 gnu_readline::do_insert_text (const std::string& text) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
668 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
669 ::octave_rl_insert_text (text.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
670 } |
2926 | 671 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
672 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
673 gnu_readline::do_newline (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
674 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
675 ::octave_rl_newline (1, '\n'); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
676 } |
2926 | 677 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
678 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
679 gnu_readline::do_accept_line (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
680 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
681 command_accept_line (1, '\n'); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
682 } |
2926 | 683 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
684 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
685 gnu_readline::do_undo (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
686 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
687 return ::octave_rl_do_undo (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
688 } |
2926 | 689 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
690 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
691 gnu_readline::do_clear_undo_list () |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
692 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
693 ::octave_rl_clear_undo_list (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
694 } |
2926 | 695 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
696 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
697 gnu_readline::set_startup_hook (startup_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
698 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
699 previous_startup_hook = ::octave_rl_get_startup_hook (); |
2926 | 700 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
701 if (f != previous_startup_hook) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
702 ::octave_rl_set_startup_hook (f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
703 } |
19378
f7ccd02bc060
provide access to the readline variable rl_erase_empty_line
John W. Eaton <jwe@octave.org>
parents:
19309
diff
changeset
|
704 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
705 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
706 gnu_readline::restore_startup_hook (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
707 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
708 ::octave_rl_set_startup_hook (previous_startup_hook); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
709 } |
3933 | 710 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
711 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
712 gnu_readline::set_pre_input_hook (pre_input_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
713 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
714 previous_pre_input_hook = ::octave_rl_get_pre_input_hook (); |
3933 | 715 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
716 if (f != previous_pre_input_hook) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
717 ::octave_rl_set_pre_input_hook (f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
718 } |
6979 | 719 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
720 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
721 gnu_readline::restore_pre_input_hook (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
722 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
723 ::octave_rl_set_pre_input_hook (previous_pre_input_hook); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
724 } |
6979 | 725 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
726 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
727 gnu_readline::set_event_hook (event_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
728 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
729 previous_event_hook = octave_rl_get_event_hook (); |
2941 | 730 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
731 ::octave_rl_set_event_hook (f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
732 } |
6979 | 733 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
734 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
735 gnu_readline::restore_event_hook (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
736 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
737 ::octave_rl_set_event_hook (previous_event_hook); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
738 } |
6979 | 739 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
740 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
741 gnu_readline::do_read_init_file (const std::string& file) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
742 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
743 ::octave_rl_read_init_file (file.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
744 } |
6979 | 745 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
746 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
747 gnu_readline::do_re_read_init_file (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
748 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
749 ::octave_rl_re_read_init_file (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
750 } |
6979 | 751 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
752 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
753 gnu_readline::do_filename_completion_desired (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
754 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
755 return ::octave_rl_filename_completion_desired (arg); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
756 } |
6979 | 757 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
758 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
759 gnu_readline::do_filename_quoting_desired (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
760 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
761 return ::octave_rl_filename_quoting_desired (arg); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
762 } |
6979 | 763 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
764 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
765 gnu_readline::do_prefer_env_winsize (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
766 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
767 return ::octave_rl_prefer_env_winsize (arg); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
768 } |
4604 | 769 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
770 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
771 gnu_readline::do_interrupt (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
772 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
773 ::octave_rl_done (arg); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
774 } |
4604 | 775 |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
776 void |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
777 gnu_readline::do_handle_interrupt_signal (void) |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
778 { |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
779 octave_signal_caught = 0; |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
780 octave_interrupt_state = 0; |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
781 |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
782 ::octave_rl_recover_from_interrupt (); |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
783 |
25336
389757b7b6af
eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
784 throw interrupt_exception (); |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
785 } |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
786 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
787 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
788 gnu_readline::operate_and_get_next (int /* count */, int /* c */) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
789 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
790 // Accept the current line. |
4604 | 791 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
792 command_editor::accept_line (); |
4604 | 793 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
794 // Find the current line, and find the next line to use. |
4604 | 795 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
796 int x_where = command_history::where (); |
4604 | 797 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
798 int x_length = command_history::length (); |
9485
3cee58bf4acf
selectively complete filenames in some cases
John W. Eaton <jwe@octave.org>
parents:
9321
diff
changeset
|
799 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
800 if ((command_history::is_stifled () |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
801 && (x_length >= command_history::max_input_history ())) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
802 || (x_where >= x_length - 1)) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
803 command_history::set_mark (x_where); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
804 else |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
805 command_history::set_mark (x_where + 1); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
806 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
807 command_editor::add_startup_hook (command_history::goto_mark); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
808 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
809 return 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
810 } |
2926 | 811 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
812 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
813 gnu_readline::history_search_backward (int count, int c) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
814 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
815 return octave_rl_history_search_backward (count, c); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
816 } |
2926 | 817 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
818 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
819 gnu_readline::history_search_forward (int count, int c) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
820 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
821 return octave_rl_history_search_forward (count, c); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
822 } |
2926 | 823 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
824 char * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
825 gnu_readline::command_generator (const char *text, int state) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
826 { |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23450
diff
changeset
|
827 char *retval = nullptr; |
2926 | 828 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
829 completion_fcn f = command_editor::get_completion_function (); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
830 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
831 std::string tmp = f (text, state); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
832 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
833 size_t len = tmp.length (); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
834 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
835 if (len > 0) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
836 { |
21942
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21910
diff
changeset
|
837 retval = static_cast<char *> (std::malloc (len+1)); |
3215 | 838 |
26489
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
839 if (retval) |
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
840 strcpy (retval, tmp.c_str ()); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
841 } |
3215 | 842 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
843 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
844 } |
7758
8e14a01ffe9f
input.cc (Fre_read_readline_init_file): new function
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
845 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
846 char * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
847 gnu_readline::command_quoter (char *text, int matches, char *qcp) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
848 { |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23450
diff
changeset
|
849 char *retval = nullptr; |
6979 | 850 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
851 quoting_fcn f = command_editor::get_quoting_function (); |
19304
ad93e9be78ee
command_editor: provide access to rl_prefer_env_winsize
John W. Eaton <jwe@octave.org>
parents:
19302
diff
changeset
|
852 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
853 std::string tmp = f (text, matches, *qcp); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
854 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
855 size_t len = tmp.length (); |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15467
diff
changeset
|
856 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
857 if (len > 0) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
858 { |
21942
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21910
diff
changeset
|
859 retval = static_cast<char *> (std::malloc (len+1)); |
2926 | 860 |
26489
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
861 if (retval) |
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
862 strcpy (retval, tmp.c_str ()); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
863 } |
2926 | 864 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
865 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
866 } |
3519 | 867 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
868 char * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
869 gnu_readline::command_dequoter (char *text, int quote) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
870 { |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23450
diff
changeset
|
871 char *retval = nullptr; |
3951 | 872 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
873 dequoting_fcn f = command_editor::get_dequoting_function (); |
3951 | 874 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
875 std::string tmp = f (text, quote); |
2941 | 876 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
877 size_t len = tmp.length (); |
2941 | 878 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
879 if (len > 0) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
880 { |
21942
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21910
diff
changeset
|
881 retval = static_cast<char *> (std::malloc (len+1)); |
2941 | 882 |
26489
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
883 if (retval) |
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
884 strcpy (retval, tmp.c_str ()); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
885 } |
6979 | 886 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
887 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
888 } |
6979 | 889 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
890 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
891 gnu_readline::command_char_is_quoted (char *text, int quote) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
892 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
893 char_is_quoted_fcn f = command_editor::get_char_is_quoted_function (); |
6979 | 894 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
895 return f (text, quote); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
896 } |
6979 | 897 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
898 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
899 gnu_readline::command_accept_line (int count, int key) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
900 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
901 user_accept_line_fcn f = command_editor::get_user_accept_line_function (); |
6979 | 902 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
903 if (f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
904 f (::octave_rl_line_buffer ()); |
6979 | 905 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
906 ::octave_rl_redisplay (); |
6979 | 907 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
908 return ::octave_rl_newline (count, key); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
909 } |
6979 | 910 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
911 char ** |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
912 gnu_readline::command_completer (const char *text, int, int) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
913 { |
27277
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
914 char **matches |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
915 = ::octave_rl_completion_matches (text, gnu_readline::command_generator); |
26489
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
916 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
917 return matches; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
918 } |
2941 | 919 |
2926 | 920 #endif |
921 | |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
922 class |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
923 default_command_editor : public command_editor |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
924 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
925 public: |
2926 | 926 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
927 default_command_editor (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
928 : command_editor (), input_stream (stdin), output_stream (stdout) { } |
2926 | 929 |
22869
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
930 // No copying! |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
931 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
932 default_command_editor (const default_command_editor&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
933 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
934 default_command_editor& operator = (const default_command_editor&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
935 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
936 ~default_command_editor (void) = default; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
937 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
938 std::string do_readline (const std::string& prompt, bool& eof); |
2926 | 939 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
940 void do_set_input_stream (FILE *f); |
2926 | 941 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
942 FILE * do_get_input_stream (void); |
2926 | 943 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
944 void do_set_output_stream (FILE *f); |
2926 | 945 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
946 FILE * do_get_output_stream (void); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
947 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
948 string_vector do_generate_filename_completions (const std::string& text); |
2926 | 949 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
950 std::string do_get_line_buffer (void) const; |
2926 | 951 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
952 std::string do_get_current_line (void) const; |
4604 | 953 |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
954 char do_get_prev_char (int) const; |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
955 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
956 void do_replace_line (const std::string& text, bool clear_undo); |
9485
3cee58bf4acf
selectively complete filenames in some cases
John W. Eaton <jwe@octave.org>
parents:
9321
diff
changeset
|
957 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
958 void do_kill_full_line (void); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
959 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
960 void do_insert_text (const std::string& text); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
961 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
962 void do_newline (void); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
963 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
964 void do_accept_line (void); |
19702
c048358da712
also kill pending input line when gui command window is cleared (bug #44015)
John W. Eaton <jwe@octave.org>
parents:
19697
diff
changeset
|
965 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
966 private: |
2926 | 967 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
968 FILE *input_stream; |
2926 | 969 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
970 FILE *output_stream; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
971 }; |
12153
e0e50f48df37
Explicitly disallow copying in some classes
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
11586
diff
changeset
|
972 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
973 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
974 default_command_editor::do_readline (const std::string& prompt, bool& eof) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
975 { |
21942
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21910
diff
changeset
|
976 std::fputs (prompt.c_str (), output_stream); |
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21910
diff
changeset
|
977 std::fflush (output_stream); |
12153
e0e50f48df37
Explicitly disallow copying in some classes
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
11586
diff
changeset
|
978 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
979 return octave_fgetl (input_stream, eof); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
980 } |
2926 | 981 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
982 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
983 default_command_editor::do_set_input_stream (FILE *f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
984 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
985 input_stream = f; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
986 } |
2926 | 987 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
988 FILE * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
989 default_command_editor::do_get_input_stream (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
990 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
991 return input_stream; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
992 } |
2926 | 993 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
994 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
995 default_command_editor::do_set_output_stream (FILE *f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
996 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
997 output_stream = f; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
998 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
999 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1000 FILE * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1001 default_command_editor::do_get_output_stream (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1002 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1003 return output_stream; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1004 } |
2926 | 1005 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1006 string_vector |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1007 default_command_editor::do_generate_filename_completions (const std::string&) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1008 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1009 // FIXME |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1010 return string_vector (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1011 } |
2926 | 1012 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1013 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1014 default_command_editor::do_get_line_buffer (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1015 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1016 return ""; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1017 } |
2926 | 1018 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1019 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1020 default_command_editor::do_get_current_line (void) const |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1021 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1022 // FIXME |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1023 return ""; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1024 } |
4604 | 1025 |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1026 char |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1027 default_command_editor::do_get_prev_char (int) const |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1028 { |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1029 return '\0'; |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1030 } |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1031 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1032 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1033 default_command_editor::do_replace_line (const std::string&, bool) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1034 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1035 // FIXME |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1036 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1037 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1038 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1039 default_command_editor::do_kill_full_line (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1040 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1041 // FIXME |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1042 } |
9485
3cee58bf4acf
selectively complete filenames in some cases
John W. Eaton <jwe@octave.org>
parents:
9321
diff
changeset
|
1043 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1044 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1045 default_command_editor::do_insert_text (const std::string&) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1046 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1047 // FIXME |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1048 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1049 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1050 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1051 default_command_editor::do_newline (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1052 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1053 // FIXME |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1054 } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1055 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1056 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1057 default_command_editor::do_accept_line (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1058 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1059 // FIXME |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1060 } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1061 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1062 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1063 command_editor::instance_ok (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1064 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1065 bool retval = true; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1066 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1067 if (! s_instance) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1068 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1069 make_command_editor (); |
19702
c048358da712
also kill pending input line when gui command window is cleared (bug #44015)
John W. Eaton <jwe@octave.org>
parents:
19697
diff
changeset
|
1070 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1071 if (s_instance) |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1072 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1073 s_instance->set_event_hook (event_handler); |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1074 |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1075 singleton_cleanup_list::add (cleanup_instance); |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1076 } |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1077 } |
2926 | 1078 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1079 if (! s_instance) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1080 (*current_liboctave_error_handler) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1081 ("unable to create command history object!"); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1082 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1083 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1084 } |
2926 | 1085 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1086 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1087 command_editor::make_command_editor (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1088 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1089 #if defined (USE_READLINE) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1090 s_instance = new gnu_readline (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1091 #else |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1092 s_instance = new default_command_editor (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1093 #endif |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1094 } |
6979 | 1095 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1096 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1097 command_editor::force_default_editor (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1098 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1099 delete s_instance; |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1100 s_instance = new default_command_editor (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1101 } |
13983
7dd7cccf0757
clean up memory allocated for singletons before exit
John W. Eaton <jwe@octave.org>
parents:
13924
diff
changeset
|
1102 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1103 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1104 command_editor::set_initial_input (const std::string& text) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1105 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1106 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1107 s_instance->m_initial_input = text; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1108 } |
2926 | 1109 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1110 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1111 command_editor::insert_initial_input (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1112 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1113 return instance_ok () ? s_instance->do_insert_initial_input () : 0; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1114 } |
2926 | 1115 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1116 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1117 command_editor::startup_handler (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1118 { |
26486
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1119 // Iterate over a copy of the set to avoid problems if a hook |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1120 // function attempts to remove itself from the startup_hook_set. |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1121 |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1122 std::set<startup_hook_fcn> hook_set = startup_hook_set; |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1123 |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1124 for (startup_hook_fcn f : hook_set) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1125 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1126 if (f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1127 f (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1128 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1129 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1130 return 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1131 } |
2926 | 1132 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1133 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1134 command_editor::pre_input_handler (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1135 { |
26486
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1136 // Iterate over copy of the set to avoid problems if a hook function |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1137 // attempts to remove itself from the pre_input_hook_set. |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1138 |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1139 std::set<pre_input_hook_fcn> hook_set = pre_input_hook_set; |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1140 |
d41c487e5de2
avoid possible crash while executing readline hook function (bug #55391)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
1141 for (pre_input_hook_fcn f : hook_set) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1142 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1143 if (f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1144 f (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1145 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1146 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1147 return 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1148 } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1149 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1150 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1151 command_editor::event_handler (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1152 { |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1153 if (octave_interrupt_state) |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1154 handle_interrupt_signal (); |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1155 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1156 event_hook_lock.lock (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1157 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1158 std::set<event_hook_fcn> hook_set (event_hook_set); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1159 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1160 event_hook_lock.unlock (); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1161 |
22873
2830a770405b
maint: Fix up more for loops with range operators in liboctave.
Rik <rik@octave.org>
parents:
22869
diff
changeset
|
1162 for (event_hook_fcn f : hook_set) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1163 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1164 if (f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1165 f (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1166 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1167 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1168 return 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1169 } |
6913 | 1170 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1171 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1172 command_editor::set_name (const std::string& n) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1173 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1174 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1175 s_instance->do_set_name (n); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1176 } |
6913 | 1177 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1178 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1179 command_editor::readline (const std::string& prompt) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1180 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1181 bool eof; |
6913 | 1182 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1183 return readline (prompt, eof); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1184 } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1185 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1186 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1187 command_editor::readline (const std::string& prompt, bool& eof) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1188 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1189 std::string retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1190 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1191 if (instance_ok ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1192 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1193 if (! s_instance->m_initial_input.empty ()) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1194 add_pre_input_hook (command_editor::insert_initial_input); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1195 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1196 retval = s_instance->do_readline (prompt, eof); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1197 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1198 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1199 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1200 } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1201 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1202 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1203 command_editor::set_input_stream (FILE *f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1204 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1205 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1206 s_instance->do_set_input_stream (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1207 } |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7758
diff
changeset
|
1208 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1209 FILE * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1210 command_editor::get_input_stream (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1211 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1212 return instance_ok () ? s_instance->do_get_input_stream () : nullptr; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1213 } |
6913 | 1214 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1215 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1216 command_editor::set_output_stream (FILE *f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1217 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1218 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1219 s_instance->do_set_output_stream (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1220 } |
6913 | 1221 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1222 FILE * |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1223 command_editor::get_output_stream (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1224 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1225 return instance_ok () ? s_instance->do_get_output_stream () : nullptr; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1226 } |
2926 | 1227 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1228 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1229 command_editor::redisplay (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1230 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1231 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1232 s_instance->do_redisplay (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1233 } |
3219 | 1234 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1235 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1236 command_editor::terminal_rows (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1237 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1238 return instance_ok () ? s_instance->do_terminal_rows () : -1; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1239 } |
3219 | 1240 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1241 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1242 command_editor::terminal_cols (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1243 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1244 return instance_ok () ? s_instance->do_terminal_cols () : -1; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1245 } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1246 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1247 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1248 command_editor::clear_screen (bool skip_redisplay) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1249 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1250 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1251 s_instance->do_clear_screen (skip_redisplay); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1252 } |
2926 | 1253 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1254 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1255 command_editor::resize_terminal (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1256 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1257 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1258 s_instance->do_resize_terminal (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1259 } |
2926 | 1260 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1261 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1262 command_editor::set_screen_size (int ht, int wd) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1263 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1264 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1265 s_instance->do_set_screen_size (ht, wd); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1266 } |
2926 | 1267 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1268 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1269 command_editor::decode_prompt_string (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1270 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1271 return instance_ok () ? s_instance->do_decode_prompt_string (s) : ""; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1272 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1273 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1274 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1275 command_editor::current_command_number (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1276 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1277 return instance_ok () ? s_instance->m_command_number : 0; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1278 } |
2926 | 1279 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1280 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1281 command_editor::reset_current_command_number (int n) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1282 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1283 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1284 s_instance->m_command_number = n; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1285 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1286 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1287 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1288 command_editor::increment_current_command_number (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1289 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1290 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1291 s_instance->m_command_number++; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1292 } |
2926 | 1293 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1294 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1295 command_editor::restore_terminal_state (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1296 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1297 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1298 s_instance->do_restore_terminal_state (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1299 } |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16537
diff
changeset
|
1300 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1301 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1302 command_editor::blink_matching_paren (bool flag) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1303 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1304 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1305 s_instance->do_blink_matching_paren (flag); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1306 } |
2926 | 1307 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1308 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1309 command_editor::erase_empty_line (bool flag) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1310 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1311 return instance_ok () ? s_instance->do_erase_empty_line (flag) : false; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1312 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1313 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1314 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1315 command_editor::set_basic_word_break_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1316 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1317 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1318 s_instance->do_set_basic_word_break_characters (s); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1319 } |
2926 | 1320 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1321 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1322 command_editor::set_completer_word_break_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1323 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1324 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1325 s_instance->do_set_completer_word_break_characters (s); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1326 } |
2926 | 1327 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1328 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1329 command_editor::set_basic_quote_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1330 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1331 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1332 s_instance->do_set_basic_quote_characters (s); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1333 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1334 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1335 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1336 command_editor::set_filename_quote_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1337 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1338 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1339 s_instance->do_set_filename_quote_characters (s); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1340 } |
3281 | 1341 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1342 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1343 command_editor::set_completer_quote_characters (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1344 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1345 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1346 s_instance->do_set_completer_quote_characters (s); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1347 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1348 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1349 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1350 command_editor::set_completion_append_character (char c) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1351 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1352 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1353 s_instance->do_set_completion_append_character (c); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1354 } |
19309
735bc47d18af
command_editor: provide access to rl_set_screen_size
John W. Eaton <jwe@octave.org>
parents:
19304
diff
changeset
|
1355 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1356 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1357 command_editor::set_completion_function (completion_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1358 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1359 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1360 s_instance->do_set_completion_function (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1361 } |
2926 | 1362 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1363 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1364 command_editor::set_quoting_function (quoting_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1365 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1366 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1367 s_instance->do_set_quoting_function (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1368 } |
2926 | 1369 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1370 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1371 command_editor::set_dequoting_function (dequoting_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1372 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1373 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1374 s_instance->do_set_dequoting_function (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1375 } |
2926 | 1376 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1377 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1378 command_editor::set_char_is_quoted_function (char_is_quoted_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1379 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1380 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1381 s_instance->do_set_char_is_quoted_function (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1382 } |
2967 | 1383 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1384 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1385 command_editor::set_user_accept_line_function (user_accept_line_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1386 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1387 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1388 s_instance->do_set_user_accept_line_function (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1389 } |
2926 | 1390 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1391 command_editor::completion_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1392 command_editor::get_completion_function (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1393 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1394 return instance_ok () ? s_instance->do_get_completion_function () : nullptr; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1395 } |
2926 | 1396 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1397 command_editor::quoting_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1398 command_editor::get_quoting_function (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1399 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1400 return instance_ok () ? s_instance->do_get_quoting_function () : nullptr; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1401 } |
19378
f7ccd02bc060
provide access to the readline variable rl_erase_empty_line
John W. Eaton <jwe@octave.org>
parents:
19309
diff
changeset
|
1402 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1403 command_editor::dequoting_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1404 command_editor::get_dequoting_function (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1405 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1406 return instance_ok () ? s_instance->do_get_dequoting_function () : nullptr; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1407 } |
3933 | 1408 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1409 command_editor::char_is_quoted_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1410 command_editor::get_char_is_quoted_function (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1411 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1412 return (instance_ok () |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1413 ? s_instance->do_get_char_is_quoted_function () : nullptr); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1414 } |
3933 | 1415 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1416 command_editor::user_accept_line_fcn |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1417 command_editor::get_user_accept_line_function (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1418 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1419 return (instance_ok () |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1420 ? s_instance->do_get_user_accept_line_function () : nullptr); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1421 } |
2926 | 1422 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1423 string_vector |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1424 command_editor::generate_filename_completions (const std::string& text) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1425 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1426 return (instance_ok () |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1427 ? s_instance->do_generate_filename_completions (text) |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1428 : string_vector ()); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1429 } |
6979 | 1430 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1431 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1432 command_editor::get_line_buffer (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1433 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1434 return instance_ok () ? s_instance->do_get_line_buffer () : ""; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1435 } |
6979 | 1436 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1437 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1438 command_editor::get_current_line (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1439 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1440 return instance_ok () ? s_instance->do_get_current_line () : ""; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1441 } |
2926 | 1442 |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1443 // Return the character (offset+1) to the left of the cursor, |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1444 // or '\0' if the cursor is at the start of the line. |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1445 char |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1446 command_editor::get_prev_char (int offset) |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1447 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1448 return instance_ok () ? s_instance->do_get_prev_char (offset) : '\0'; |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1449 } |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
22022
diff
changeset
|
1450 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1451 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1452 command_editor::replace_line (const std::string& text, bool clear_undo) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1453 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1454 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1455 s_instance->do_replace_line (text, clear_undo); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1456 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1457 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1458 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1459 command_editor::kill_full_line (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1460 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1461 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1462 s_instance->do_kill_full_line (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1463 } |
2941 | 1464 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1465 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1466 command_editor::insert_text (const std::string& text) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1467 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1468 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1469 s_instance->do_insert_text (text); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1470 } |
6979 | 1471 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1472 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1473 command_editor::newline (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1474 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1475 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1476 s_instance->do_newline (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1477 } |
6979 | 1478 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1479 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1480 command_editor::accept_line (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1481 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1482 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1483 s_instance->do_accept_line (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1484 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1485 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1486 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1487 command_editor::undo (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1488 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1489 return instance_ok () ? s_instance->do_undo () : false; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1490 } |
6979 | 1491 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1492 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1493 command_editor::clear_undo_list (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1494 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1495 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1496 s_instance->do_clear_undo_list (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1497 } |
6979 | 1498 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1499 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1500 command_editor::add_startup_hook (startup_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1501 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1502 if (instance_ok ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1503 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1504 startup_hook_set.insert (f); |
2926 | 1505 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1506 s_instance->set_startup_hook (startup_handler); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1507 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1508 } |
6979 | 1509 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1510 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1511 command_editor::remove_startup_hook (startup_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1512 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1513 if (instance_ok ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1514 { |
21862
5c67b16acc4a
maint: Use C++ 'auto' keyword in some instances in liboctave.
Rik <rik@octave.org>
parents:
21798
diff
changeset
|
1515 auto p = startup_hook_set.find (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1516 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1517 if (p != startup_hook_set.end ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1518 startup_hook_set.erase (p); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1519 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1520 if (startup_hook_set.empty ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1521 s_instance->restore_startup_hook (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1522 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1523 } |
6979 | 1524 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1525 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1526 command_editor::add_pre_input_hook (pre_input_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1527 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1528 if (instance_ok ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1529 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1530 pre_input_hook_set.insert (f); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1531 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1532 s_instance->set_pre_input_hook (pre_input_handler); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1533 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1534 } |
6979 | 1535 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1536 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1537 command_editor::remove_pre_input_hook (pre_input_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1538 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1539 if (instance_ok ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1540 { |
21862
5c67b16acc4a
maint: Use C++ 'auto' keyword in some instances in liboctave.
Rik <rik@octave.org>
parents:
21798
diff
changeset
|
1541 auto p = pre_input_hook_set.find (f); |
6979 | 1542 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1543 if (p != pre_input_hook_set.end ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1544 pre_input_hook_set.erase (p); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1545 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1546 if (pre_input_hook_set.empty ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1547 s_instance->restore_pre_input_hook (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1548 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1549 } |
4604 | 1550 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1551 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1552 command_editor::add_event_hook (event_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1553 { |
23057
bb7513d73673
move mutex classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22873
diff
changeset
|
1554 autolock guard (event_hook_lock); |
9485
3cee58bf4acf
selectively complete filenames in some cases
John W. Eaton <jwe@octave.org>
parents:
9321
diff
changeset
|
1555 |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1556 event_hook_set.insert (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1557 } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1558 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1559 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1560 command_editor::remove_event_hook (event_hook_fcn f) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1561 { |
23057
bb7513d73673
move mutex classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22873
diff
changeset
|
1562 autolock guard (event_hook_lock); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1563 |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1564 auto p = event_hook_set.find (f); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1565 |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1566 if (p != event_hook_set.end ()) |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1567 event_hook_set.erase (p); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1568 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1569 } |
19702
c048358da712
also kill pending input line when gui command window is cleared (bug #44015)
John W. Eaton <jwe@octave.org>
parents:
19697
diff
changeset
|
1570 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1571 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1572 command_editor::run_event_hooks (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1573 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1574 event_handler (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1575 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1576 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1577 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1578 command_editor::read_init_file (const std::string& file_arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1579 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1580 if (instance_ok ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1581 { |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1582 std::string file = sys::file_ops::tilde_expand (file_arg); |
2926 | 1583 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1584 s_instance->do_read_init_file (file); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1585 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1586 } |
2926 | 1587 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1588 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1589 command_editor::re_read_init_file (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1590 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1591 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1592 s_instance->do_re_read_init_file (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1593 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1594 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1595 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1596 command_editor::filename_completion_desired (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1597 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1598 return (instance_ok () |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1599 ? s_instance->do_filename_completion_desired (arg) : false); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1600 } |
6979 | 1601 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1602 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1603 command_editor::filename_quoting_desired (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1604 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1605 return (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1606 ? s_instance->do_filename_quoting_desired (arg) : false; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1607 } |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16537
diff
changeset
|
1608 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1609 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1610 command_editor::prefer_env_winsize (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1611 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1612 return instance_ok () ? s_instance->do_prefer_env_winsize (arg) : false; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1613 } |
2926 | 1614 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1615 bool |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1616 command_editor::interrupt (bool arg) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1617 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1618 bool retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1619 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1620 if (instance_ok ()) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1621 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1622 // Return the current interrupt state. |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1623 retval = s_instance->m_interrupted; |
6913 | 1624 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1625 s_instance->do_interrupt (arg); |
2926 | 1626 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1627 s_instance->m_interrupted = arg; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1628 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1629 else |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1630 retval = false; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1631 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1632 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1633 } |
6913 | 1634 |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
1635 void |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
1636 command_editor::interrupt_event_loop (bool arg) |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
1637 { |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
1638 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1639 s_instance->do_interrupt_event_loop (arg); |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
1640 } |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
1641 |
27338
829d9efb7730
allow gui events to interrupt readline event processing (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27277
diff
changeset
|
1642 bool |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
1643 command_editor::event_loop_interrupted (void) |
27338
829d9efb7730
allow gui events to interrupt readline event processing (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27277
diff
changeset
|
1644 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1645 return instance_ok () ? s_instance->do_event_loop_interrupted () : false; |
27338
829d9efb7730
allow gui events to interrupt readline event processing (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27277
diff
changeset
|
1646 } |
829d9efb7730
allow gui events to interrupt readline event processing (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27277
diff
changeset
|
1647 |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1648 void |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1649 command_editor::handle_interrupt_signal (void) |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1650 { |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1651 if (instance_ok ()) |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1652 s_instance->do_handle_interrupt_signal (); |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1653 } |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23824
diff
changeset
|
1654 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1655 // Return a string which will be printed as a prompt. The string may |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1656 // contain special characters which are decoded as follows: |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1657 // |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1658 // \a bell (ascii 07) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1659 // \d the date |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1660 // \e escape (ascii 033) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1661 // \h the hostname up to the first '.' |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1662 // \H the hostname |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1663 // \n CRLF |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1664 // \r CR |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1665 // \s the name of the shell (program) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1666 // \t the time |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1667 // \T the time in 12-hour hh:mm:ss format |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1668 // \@ the time in 12-hour hh:mm am/pm format |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1669 // \A the time in 24-hour hh:mm format |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1670 // \u your username |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1671 // \w the current working directory |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1672 // \W the last element of PWD |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1673 // \! the history number of this command |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1674 // \# the command number of this command |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1675 // \$ a $ or a # if you are root |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1676 // \nnn character code nnn in octal |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1677 // \\ a backslash |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1678 // \[ begin a sequence of non-printing chars |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1679 // \] end a sequence of non-printing chars |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1680 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1681 std::string |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1682 command_editor::do_decode_prompt_string (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1683 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1684 std::string retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1685 std::string tmpstr; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1686 size_t i = 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1687 size_t slen = s.length (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1688 int c; |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1689 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1690 while (i < slen) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1691 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1692 c = s[i]; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1693 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1694 i++; |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1695 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1696 if (c == '\\') |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1697 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1698 c = s[i]; |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
1699 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1700 switch (c) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1701 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1702 case '0': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1703 case '1': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1704 case '2': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1705 case '3': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1706 case '4': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1707 case '5': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1708 case '6': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1709 case '7': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1710 // Maybe convert an octal number. |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1711 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1712 int n = read_octal (s.substr (i, 3)); |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7758
diff
changeset
|
1713 |
23824
061a343089be
Miscellaneous cleanups of C++11 std::string code.
Rik <rik@octave.org>
parents:
23812
diff
changeset
|
1714 tmpstr = '\\'; |
3215 | 1715 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1716 if (n != -1) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1717 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1718 tmpstr[0] = n; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1719 i += 2; // i++ makes this += 3 later |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1720 } |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7758
diff
changeset
|
1721 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1722 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1723 } |
6913 | 1724 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1725 case 'a': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1726 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1727 tmpstr = '\a'; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1728 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1729 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1730 } |
6913 | 1731 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1732 case 'd': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1733 case 't': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1734 case 'T': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1735 case '@': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1736 case 'A': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1737 // Make the current time/date into a string. |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1738 { |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1739 sys::localtime now; |
13924
3b654a0753b1
Implement waitfor, uiwait and uiresume.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
12912
diff
changeset
|
1740 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1741 if (c == 'd') |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1742 tmpstr = now.strftime ("%a %b %d"); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1743 else if (c == 't') |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1744 tmpstr = now.strftime ("%H:%M:%S"); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1745 else if (c == 'T') |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1746 tmpstr = now.strftime ("%I:%M:%S"); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1747 else if (c == '@') |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1748 tmpstr = now.strftime ("%I:%M %p"); |
26489
8f425e6ea110
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26486
diff
changeset
|
1749 else // (c == 'A') |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1750 tmpstr = now.strftime ("%H:%M"); |
5872 | 1751 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1752 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1753 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1754 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1755 case 'e': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1756 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1757 tmpstr = '\033'; |
3189 | 1758 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1759 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1760 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1761 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1762 case 'h': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1763 { |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1764 tmpstr = sys::env::get_host_name (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1765 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1766 size_t pos = tmpstr.find ('.'); |
7758
8e14a01ffe9f
input.cc (Fre_read_readline_init_file): new function
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
1767 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1768 if (pos != std::string::npos) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1769 tmpstr.resize (pos); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1770 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1771 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1772 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1773 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1774 case 'H': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1775 { |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1776 tmpstr = sys::env::get_host_name (); |
4143 | 1777 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1778 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1779 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1780 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1781 case 'n': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1782 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1783 tmpstr = newline_chars (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1784 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1785 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1786 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1787 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1788 case 'r': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1789 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1790 tmpstr = '\r'; |
6979 | 1791 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1792 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1793 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1794 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1795 case 's': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1796 { |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1797 tmpstr = sys::env::get_program_name (); |
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1798 tmpstr = sys::env::base_pathname (tmpstr); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1799 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1800 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1801 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1802 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1803 case 'u': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1804 { |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1805 tmpstr = sys::env::get_user_name (); |
19302
37159a873c96
preserve text on Windows terminal resize (bug #41893; patch #8532)
John W. Eaton <jwe@octave.org>
parents:
17769
diff
changeset
|
1806 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1807 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1808 } |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15467
diff
changeset
|
1809 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1810 case 'w': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1811 case 'W': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1812 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1813 try |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1814 { |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1815 tmpstr = sys::env::get_current_directory (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1816 } |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1817 catch (const execution_exception&) |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1818 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1819 tmpstr = ""; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1820 } |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15467
diff
changeset
|
1821 |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1822 std::string home_dir = sys::env::get_home_directory (); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1823 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1824 if (c == 'W' && (home_dir.empty () || tmpstr != home_dir)) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1825 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1826 if (tmpstr != "/" && tmpstr != "//") |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1827 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1828 size_t pos = tmpstr.rfind ('/'); |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15467
diff
changeset
|
1829 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1830 if (pos != std::string::npos && pos != 0) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1831 tmpstr = tmpstr.substr (pos + 1); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1832 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1833 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1834 else |
23696
08036a7f3660
remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
1835 tmpstr = sys::env::polite_directory_format (tmpstr); |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15467
diff
changeset
|
1836 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1837 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1838 } |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15467
diff
changeset
|
1839 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1840 case '!': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1841 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1842 char number_buffer[32]; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1843 int num = command_history::current_number (); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1844 if (num > 0) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1845 sprintf (number_buffer, "%d", num); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1846 else |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1847 strcpy (number_buffer, "!"); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1848 tmpstr = number_buffer; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1849 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1850 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1851 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1852 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1853 case '#': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1854 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1855 char number_buffer[32]; |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1856 sprintf (number_buffer, "%d", m_command_number); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1857 tmpstr = number_buffer; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1858 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1859 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1860 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1861 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1862 case '$': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1863 { |
21910
4d723ba06b4a
provide wrappers for some unistd.h functions
John W. Eaton <jwe@octave.org>
parents:
21876
diff
changeset
|
1864 tmpstr = (octave_geteuid_wrapper () == 0 ? '#' : '$'); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1865 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1866 } |
2926 | 1867 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1868 #if defined (USE_READLINE) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1869 case '[': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1870 case ']': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1871 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1872 tmpstr.resize (1); |
2926 | 1873 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1874 tmpstr[0] = ((c == '[') |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1875 ? ::octave_rl_prompt_start_ignore () |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1876 : ::octave_rl_prompt_end_ignore ()); |
2926 | 1877 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1878 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1879 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1880 #endif |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1881 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1882 case '\\': |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1883 { |
23824
061a343089be
Miscellaneous cleanups of C++11 std::string code.
Rik <rik@octave.org>
parents:
23812
diff
changeset
|
1884 tmpstr = '\\'; |
2926 | 1885 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1886 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1887 } |
2926 | 1888 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1889 default: |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1890 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1891 tmpstr = "\\ "; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1892 tmpstr[1] = c; |
2926 | 1893 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1894 break; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1895 } |
10314
07ebe522dac2
untabify liboctave C++ sources
John W. Eaton <jwe@octave.org>
parents:
10250
diff
changeset
|
1896 } |
5442 | 1897 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1898 retval.append (tmpstr); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1899 i++; // Move past processed escape character |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1900 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1901 else |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1902 retval += c; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1903 } |
21168
26f85aa072de
maint: Replace instances of goto in liboctave where convenient.
Rik <rik@octave.org>
parents:
21136
diff
changeset
|
1904 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1905 return retval; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1906 } |
2926 | 1907 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1908 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1909 command_editor::do_insert_initial_input (void) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1910 { |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1911 std::string input = m_initial_input; |
2926 | 1912 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
1913 m_initial_input = ""; |
21168
26f85aa072de
maint: Replace instances of goto in liboctave where convenient.
Rik <rik@octave.org>
parents:
21136
diff
changeset
|
1914 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1915 do_insert_text (input); |
5442 | 1916 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1917 // Is it really right to redisplay here? |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1918 do_redisplay (); |
5442 | 1919 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1920 return 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1921 } |
2926 | 1922 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1923 // Return the octal number parsed from STRING, or -1 to indicate that |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1924 // the string contained a bad number. |
2926 | 1925 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1926 int |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1927 command_editor::read_octal (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1928 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1929 int result = 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1930 int digits = 0; |
2926 | 1931 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1932 size_t i = 0; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1933 size_t slen = s.length (); |
2926 | 1934 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1935 while (i < slen && s[i] >= '0' && s[i] < '8') |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1936 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1937 digits++; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1938 result = (result * 8) + s[i] - '0'; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1939 i++; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1940 } |
2926 | 1941 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1942 if (! digits || result > 0777 || i < slen) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1943 result = -1; |
2926 | 1944 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1945 return result; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1946 } |
2926 | 1947 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1948 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1949 command_editor::error (int err_num) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1950 { |
21942
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21910
diff
changeset
|
1951 (*current_liboctave_error_handler) ("%s", std::strerror (err_num)); |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1952 } |
2926 | 1953 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1954 void |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1955 command_editor::error (const std::string& s) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1956 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1957 (*current_liboctave_error_handler) ("%s", s.c_str ()); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21733
diff
changeset
|
1958 } |
2926 | 1959 } |