Mercurial > octave
annotate liboctave/util/cmd-edit.h @ 30564:796f54d4ddbf stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
In all .txi and .texi files except gpl.txi and gpl.texi in the
doc/liboctave and doc/interpreter directories, change the copyright
to "Octave Project Developers", the same as used for other source
files. Update copyright notices for 2022 (not done since 2019). For
gpl.txi and gpl.texi, change the copyright notice to be "Free Software
Foundation, Inc." and leave the date at 2007 only because this file
only contains the text of the GPL, not anything created by the Octave
Project Developers.
Add Paul Thomas to contributors.in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Dec 2021 18:22:40 -0500 |
parents | f6fe2dcaffaf |
children | e88a07dec498 |
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 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30152
diff
changeset
|
3 // Copyright (C) 1996-2022 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 |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
19702
diff
changeset
|
26 #if ! defined (octave_cmd_edit_h) |
2926 | 27 #define octave_cmd_edit_h 1 |
28 | |
21244
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21017
diff
changeset
|
29 #include "octave-config.h" |
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21017
diff
changeset
|
30 |
2926 | 31 #include <cstdio> |
32 | |
6913 | 33 #include <set> |
2926 | 34 #include <string> |
35 | |
4604 | 36 #include "str-vec.h" |
37 | |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
38 namespace octave |
2926 | 39 { |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
40 class |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
41 OCTAVE_API |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
42 command_editor |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
43 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
44 protected: |
2926 | 45 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
46 command_editor (void) |
27529
886df2049d81
only increment command number when complete block of code is parsed
John W. Eaton <jwe@octave.org>
parents:
27379
diff
changeset
|
47 : m_command_number (1), m_rows (24), m_cols (80), m_interrupted (false), |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
48 m_interrupt_event_loop (false), m_initial_input () |
27933
863ae57eee69
maint: Use Octave coding conventions in liboctave/
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
49 { } |
2926 | 50 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
51 public: |
3519 | 52 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
53 typedef int (*startup_hook_fcn) (void); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
54 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
55 typedef int (*pre_input_hook_fcn) (void); |
2926 | 56 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
57 typedef int (*event_hook_fcn) (void); |
2941 | 58 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
59 typedef std::string (*completion_fcn) (const std::string&, int); |
6979 | 60 |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21752
diff
changeset
|
61 typedef char * (*completion_hook_fcn) (); |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21752
diff
changeset
|
62 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
63 typedef std::string (*quoting_fcn) (const std::string&, int, char); |
6979 | 64 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
65 typedef std::string (*dequoting_fcn) (const std::string&, int); |
6979 | 66 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
67 typedef int (*char_is_quoted_fcn) (const std::string&, int); |
6979 | 68 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
69 typedef void (*user_accept_line_fcn) (const std::string&); |
2926 | 70 |
22869
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
71 // No copying! |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
72 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
73 command_editor (const command_editor&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
74 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
75 command_editor& operator = (const command_editor&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
76 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
77 virtual ~command_editor (void) = default; |
2926 | 78 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
79 static void set_name (const std::string& n); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
80 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
81 static std::string readline (const std::string& prompt); |
2926 | 82 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
83 static std::string readline (const std::string& prompt, bool& eof); |
3219 | 84 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
85 static void set_input_stream (FILE *f); |
2926 | 86 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
87 static FILE * get_input_stream (void); |
2926 | 88 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
89 static void set_output_stream (FILE *f); |
2926 | 90 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
91 static FILE * get_output_stream (void); |
2926 | 92 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
93 static void redisplay (void); |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16537
diff
changeset
|
94 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
95 static int terminal_rows (void); |
2926 | 96 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
97 static int terminal_cols (void); |
2926 | 98 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
99 static void clear_screen (bool skip_redisplay = false); |
2926 | 100 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
101 static void resize_terminal (void); |
3281 | 102 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
103 static void set_screen_size (int ht, int wd); |
19309
735bc47d18af
command_editor: provide access to rl_set_screen_size
John W. Eaton <jwe@octave.org>
parents:
19304
diff
changeset
|
104 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
105 static std::string decode_prompt_string (const std::string& s); |
2926 | 106 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
107 static void restore_terminal_state (void); |
2926 | 108 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
109 static void blink_matching_paren (bool flag); |
2926 | 110 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
111 static bool erase_empty_line (bool flag); |
19378
f7ccd02bc060
provide access to the readline variable rl_erase_empty_line
John W. Eaton <jwe@octave.org>
parents:
19309
diff
changeset
|
112 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
113 static void set_basic_word_break_characters (const std::string& s); |
3933 | 114 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
115 static void set_completer_word_break_characters (const std::string& s); |
3933 | 116 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
117 static void set_basic_quote_characters (const std::string& s); |
2926 | 118 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
119 static void set_filename_quote_characters (const std::string& s); |
6979 | 120 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
121 static void set_completer_quote_characters (const std::string& s); |
6979 | 122 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
123 static void set_completion_append_character (char c); |
2926 | 124 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
125 static void set_completion_function (completion_fcn f); |
2941 | 126 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
127 static void set_quoting_function (quoting_fcn f); |
6979 | 128 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
129 static void set_dequoting_function (dequoting_fcn f); |
6979 | 130 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
131 static void set_char_is_quoted_function (char_is_quoted_fcn f); |
6979 | 132 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
133 static void set_user_accept_line_function (user_accept_line_fcn f); |
6979 | 134 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
135 static completion_fcn get_completion_function (void); |
2926 | 136 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
137 static quoting_fcn get_quoting_function (void); |
6979 | 138 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
139 static dequoting_fcn get_dequoting_function (void); |
6979 | 140 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
141 static char_is_quoted_fcn get_char_is_quoted_function (void); |
6979 | 142 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
143 static user_accept_line_fcn get_user_accept_line_function (void); |
6979 | 144 |
30152
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
145 static string_vector |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
146 generate_filename_completions (const std::string& text); |
4604 | 147 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
148 static std::string get_line_buffer (void); |
9485
3cee58bf4acf
selectively complete filenames in some cases
John W. Eaton <jwe@octave.org>
parents:
9321
diff
changeset
|
149 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
150 static std::string get_current_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
|
151 |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21862
diff
changeset
|
152 static char get_prev_char (int); |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21862
diff
changeset
|
153 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
154 static void replace_line (const std::string& text, bool clear_undo = true); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
155 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
156 static void kill_full_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
|
157 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
158 static void insert_text (const std::string& text); |
2926 | 159 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
160 static void newline (void); |
2926 | 161 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
162 static void accept_line (void); |
6979 | 163 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
164 static bool undo (void); |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16537
diff
changeset
|
165 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
166 static void clear_undo_list (void); |
2926 | 167 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
168 static void add_startup_hook (startup_hook_fcn f); |
2926 | 169 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
170 static void remove_startup_hook (startup_hook_fcn f); |
2926 | 171 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
172 static void add_pre_input_hook (pre_input_hook_fcn f); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
173 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
174 static void remove_pre_input_hook (pre_input_hook_fcn f); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
175 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
176 static void add_event_hook (event_hook_fcn f); |
3215 | 177 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
178 static void remove_event_hook (event_hook_fcn f); |
3215 | 179 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
180 static void run_event_hooks (void); |
13924
3b654a0753b1
Implement waitfor, uiwait and uiresume.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
181 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
182 static void read_init_file (const std::string& file = ""); |
3189 | 183 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
184 static void re_read_init_file (void); |
7758
8e14a01ffe9f
input.cc (Fre_read_readline_init_file): new function
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
185 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
186 static bool filename_completion_desired (bool); |
4143 | 187 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
188 static bool filename_quoting_desired (bool); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
189 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
190 static bool prefer_env_winsize (bool); |
6979 | 191 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
192 static bool interrupt (bool = true); |
19304
ad93e9be78ee
command_editor: provide access to rl_prefer_env_winsize
John W. Eaton <jwe@octave.org>
parents:
17769
diff
changeset
|
193 |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
194 static void interrupt_event_loop (bool flag = true); |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
195 |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
196 static bool event_loop_interrupted (void); |
27338
829d9efb7730
allow gui events to interrupt readline event processing (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27158
diff
changeset
|
197 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
198 static int current_command_number (void); |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15271
diff
changeset
|
199 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
200 static void reset_current_command_number (int n); |
2926 | 201 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
202 static void increment_current_command_number (void); |
2926 | 203 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
204 static void force_default_editor (void); |
2967 | 205 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
206 static void set_initial_input (const std::string& text); |
9321
9b87aeb24ea9
avoid using readline at all when line editing suppressed or interpreter embedded
Jaroslav Hajek <highegg@gmail.com>
parents:
8920
diff
changeset
|
207 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
208 static int insert_initial_input (void); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
209 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
210 private: |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
211 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
212 static bool instance_ok (void); |
2926 | 213 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
214 static void make_command_editor (void); |
2926 | 215 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
216 static int startup_handler (void); |
2926 | 217 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
218 static int pre_input_handler (void); |
6913 | 219 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
220 static int event_handler (void); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
221 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
222 static void cleanup_instance (void) |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
223 { |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
224 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
|
225 s_instance = nullptr; |
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
226 } |
6913 | 227 |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23795
diff
changeset
|
228 static void handle_interrupt_signal (void); |
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23795
diff
changeset
|
229 |
30152
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
230 //-------- |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
231 |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
232 static command_editor *s_instance; // the real thing. |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
233 |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
234 static std::set<startup_hook_fcn> m_startup_hook_set; |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
235 static std::set<pre_input_hook_fcn> m_pre_input_hook_set; |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
236 static std::set<event_hook_fcn> m_event_hook_set; |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
237 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
238 protected: |
2926 | 239 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
240 // To use something other than the GNU readline library, derive a new |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
241 // class from command_editor, overload these functions as |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
242 // necessary, and make instance point to the new class. |
2926 | 243 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
244 virtual void do_set_name (const std::string&) { } |
2926 | 245 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
246 std::string do_readline (const std::string& prompt) |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
247 { |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
248 bool eof; |
3219 | 249 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
250 return do_readline (prompt, eof); |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
251 } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
252 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
253 virtual std::string do_readline (const std::string&, bool&) = 0; |
3219 | 254 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
255 virtual void do_set_input_stream (FILE *) = 0; |
2926 | 256 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
257 virtual FILE * do_get_input_stream (void) = 0; |
2926 | 258 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
259 virtual void do_set_output_stream (FILE *) = 0; |
2926 | 260 |
23446
cd4e1ee28716
maint: Use convention 'void * fcn ()' for functions which return pointers.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
261 virtual FILE * do_get_output_stream (void) = 0; |
2926 | 262 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
263 virtual void do_redisplay (void) { } |
2926 | 264 |
27158
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
265 virtual int do_terminal_rows (void) { return m_rows; } |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16537
diff
changeset
|
266 |
27158
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
267 virtual int do_terminal_cols (void) { return m_cols; } |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
268 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
269 virtual void do_clear_screen (bool) { } |
2926 | 270 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
271 virtual void do_resize_terminal (void) { } |
2926 | 272 |
27158
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
273 virtual void do_set_screen_size (int ht, int wd) |
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
274 { |
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
275 m_rows = ht; |
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
276 m_cols = wd; |
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
277 } |
2926 | 278 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
279 virtual std::string do_decode_prompt_string (const std::string&); |
3281 | 280 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
281 virtual std::string newline_chars (void) { return "\n"; } |
19309
735bc47d18af
command_editor: provide access to rl_set_screen_size
John W. Eaton <jwe@octave.org>
parents:
19304
diff
changeset
|
282 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
283 virtual void do_restore_terminal_state (void) { } |
2926 | 284 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
285 virtual void do_blink_matching_paren (bool) { } |
2926 | 286 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
287 virtual bool do_erase_empty_line (bool) { return false; } |
2926 | 288 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
289 virtual void do_set_basic_word_break_characters (const std::string&) { } |
2926 | 290 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
291 virtual void do_set_completer_word_break_characters (const std::string&) { } |
19378
f7ccd02bc060
provide access to the readline variable rl_erase_empty_line
John W. Eaton <jwe@octave.org>
parents:
19309
diff
changeset
|
292 |
21798
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21752
diff
changeset
|
293 virtual void do_set_completer_word_break_hook (completion_hook_fcn) { } |
12e7456f7619
Tab completion of multiple directory levels. (bug #44095)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21752
diff
changeset
|
294 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
295 virtual void do_set_basic_quote_characters (const std::string&) { } |
3933 | 296 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
297 virtual void do_set_filename_quote_characters (const std::string&) { } |
3933 | 298 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
299 virtual void do_set_completer_quote_characters (const std::string&) { } |
2926 | 300 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
301 virtual void do_set_completion_append_character (char) { } |
6979 | 302 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
303 virtual void do_set_completion_function (completion_fcn) { } |
6979 | 304 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
305 virtual void do_set_quoting_function (quoting_fcn) { } |
2926 | 306 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
307 virtual void do_set_dequoting_function (dequoting_fcn) { } |
2941 | 308 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
309 virtual void do_set_char_is_quoted_function (char_is_quoted_fcn) { } |
6979 | 310 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
311 virtual void do_set_user_accept_line_function (user_accept_line_fcn) { } |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
312 |
30152
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
313 virtual completion_fcn do_get_completion_function (void) const |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
314 { return nullptr; } |
6979 | 315 |
30152
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
316 virtual quoting_fcn do_get_quoting_function (void) const |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
317 { return nullptr; } |
6979 | 318 |
30152
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
319 virtual dequoting_fcn do_get_dequoting_function (void) const |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
320 { return nullptr; } |
6979 | 321 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
322 virtual char_is_quoted_fcn do_get_char_is_quoted_function (void) const |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23615
diff
changeset
|
323 { return nullptr; } |
2926 | 324 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
325 virtual user_accept_line_fcn do_get_user_accept_line_function (void) const |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23615
diff
changeset
|
326 { return nullptr; } |
6979 | 327 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
328 virtual string_vector |
22402
4caa7b28d183
maint: Style check C++ code in liboctave/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
329 do_generate_filename_completions (const std::string& text) = 0; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
330 |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
331 virtual std::string do_get_line_buffer (void) const = 0; |
6979 | 332 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
333 virtual std::string do_get_current_line (void) const = 0; |
6979 | 334 |
22171
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21862
diff
changeset
|
335 virtual char do_get_prev_char (int) const = 0; |
0a4c5a90f286
Allow tab completion of arrays of structures.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21862
diff
changeset
|
336 |
30152
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
337 virtual void |
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
338 do_replace_line (const std::string& text, bool clear_undo) = 0; |
4604 | 339 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
340 virtual void do_kill_full_line (void) = 0; |
9485
3cee58bf4acf
selectively complete filenames in some cases
John W. Eaton <jwe@octave.org>
parents:
9321
diff
changeset
|
341 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
342 virtual void do_insert_text (const std::string& text) = 0; |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
343 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
344 virtual void do_newline (void) = 0; |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
345 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
346 virtual void do_accept_line (void) = 0; |
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
|
347 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
348 virtual bool do_undo (void) { return false; } |
2926 | 349 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
350 virtual void do_clear_undo_list (void) { } |
2926 | 351 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
352 virtual void set_startup_hook (startup_hook_fcn) { } |
6979 | 353 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
354 virtual void restore_startup_hook (void) { } |
16539
8ea8df0747e9
make undo button and menu item work for command window
John W. Eaton <jwe@octave.org>
parents:
16537
diff
changeset
|
355 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
356 virtual void set_pre_input_hook (pre_input_hook_fcn) { } |
2926 | 357 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
358 virtual void restore_pre_input_hook (void) { } |
2926 | 359 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
360 virtual void set_event_hook (event_hook_fcn) { } |
2926 | 361 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
362 virtual void restore_event_hook (void) { } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
363 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
364 virtual void do_read_init_file (const std::string&) { } |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
365 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
366 virtual void do_re_read_init_file (void) { } |
3215 | 367 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
368 virtual bool do_filename_completion_desired (bool) { return false; } |
3215 | 369 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
370 virtual bool do_filename_quoting_desired (bool) { return false; } |
3189 | 371 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
372 virtual bool do_prefer_env_winsize (bool) { return false; } |
7758
8e14a01ffe9f
input.cc (Fre_read_readline_init_file): new function
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
373 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
374 virtual void do_interrupt (bool) { } |
4143 | 375 |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
376 virtual void do_handle_interrupt_signal (void) { } |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
377 |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
378 void do_interrupt_event_loop (bool arg) { m_interrupt_event_loop = arg; } |
27338
829d9efb7730
allow gui events to interrupt readline event processing (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27158
diff
changeset
|
379 |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
380 bool do_event_loop_interrupted (void) const |
30152
f6fe2dcaffaf
maint: use "m_" prefix for member variables in class command_editor.
Rik <rik@octave.org>
parents:
29358
diff
changeset
|
381 { return m_interrupt_event_loop; } |
24520
c5c11b07598a
refactor signal handling (bug #52757)
John W. Eaton <jwe@octave.org>
parents:
23795
diff
changeset
|
382 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
383 int do_insert_initial_input (void); |
6979 | 384 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
385 int read_octal (const std::string& s); |
19304
ad93e9be78ee
command_editor: provide access to rl_prefer_env_winsize
John W. Eaton <jwe@octave.org>
parents:
17769
diff
changeset
|
386 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
387 void error (int); |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15271
diff
changeset
|
388 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
389 void error (const std::string&); |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16539
diff
changeset
|
390 |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
391 // The current command number. |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
392 int m_command_number; |
2926 | 393 |
27158
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
394 int m_rows; |
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
395 int m_cols; |
af1015a3d558
allow terminal rows and columns to be set when not using readline
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
396 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
397 bool m_interrupted; |
2926 | 398 |
27339
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
399 bool m_interrupt_event_loop; |
64289bf338da
use separate variable for interrupting command editor event loop (bug #56738)
John W. Eaton <jwe@octave.org>
parents:
27338
diff
changeset
|
400 |
27379
3db033e86376
use m_ prefix for data members in most liboctave/util classes
John W. Eaton <jwe@octave.org>
parents:
27339
diff
changeset
|
401 std::string m_initial_input; |
21748
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
402 }; |
176536b15d68
use namespace for command_editor and command_history classes
John W. Eaton <jwe@octave.org>
parents:
21244
diff
changeset
|
403 } |
16382
389b09a914e2
allow gui to force readline to return from its idle/read loop
John W. Eaton <jwe@octave.org>
parents:
15271
diff
changeset
|
404 |
2926 | 405 #endif |