Mercurial > hg > octave-lojdl
changeset 16496:d3b01ae21259
temporary fix for terminal window resizing
* input.cc (octave_base_reader::octave_gets): Call
command_editor::reset_screen_size.
* cmd-edit.h, cmd-edit.cc (command_editor::reset_screen_size,
command_editor::do_reset_screen_size,
gnu_readline::do_reset_screen_size): New functions.
* oct-rl-edit.h, oct-rl-edit.c (octave_rl_reset_screen_size):
New function.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 11 Apr 2013 12:02:44 -0400 |
parents | b98ad20e4880 |
children | 9ff3181e671c |
files | libinterp/interpfcn/input.cc liboctave/util/cmd-edit.cc liboctave/util/cmd-edit.h liboctave/util/oct-rl-edit.c liboctave/util/oct-rl-edit.h |
diffstat | 5 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/interpfcn/input.cc +++ b/libinterp/interpfcn/input.cc @@ -220,6 +220,10 @@ octave_link::pre_input_event (); octave_link::set_workspace (symbol_table::workspace_info ()); + + // FIXME -- this call should happen any time the terminal window + // size changes, not just prior to prompting for input. + command_editor::reset_screen_size (); } bool history_skip_auto_repeated_debugging_command = false;
--- a/liboctave/util/cmd-edit.cc +++ b/liboctave/util/cmd-edit.cc @@ -95,6 +95,8 @@ void do_resize_terminal (void); + void do_reset_screen_size (void); + std::string newline_chars (void); void do_restore_terminal_state (void); @@ -331,6 +333,12 @@ ::octave_rl_resize_terminal (); } +void +gnu_readline::do_reset_screen_size (void) +{ + ::octave_rl_reset_screen_size (); +} + std::string gnu_readline::newline_chars (void) { @@ -994,6 +1002,13 @@ instance->do_resize_terminal (); } +void +command_editor::reset_screen_size (void) +{ + if (instance_ok ()) + instance->do_reset_screen_size (); +} + std::string command_editor::decode_prompt_string (const std::string& s) {
--- a/liboctave/util/cmd-edit.h +++ b/liboctave/util/cmd-edit.h @@ -79,6 +79,8 @@ static void resize_terminal (void); + static void reset_screen_size (void); + static std::string decode_prompt_string (const std::string& s); static void restore_terminal_state (void); @@ -221,6 +223,8 @@ virtual void do_resize_terminal (void) { } + virtual void do_reset_screen_size (void) { } + virtual std::string do_decode_prompt_string (const std::string&); virtual std::string newline_chars (void) { return "\n"; }