view liboctave/util/oct-rl-edit.h @ 16570:d5ae5aa80d42

preserve pending command line input when running commands from GUI actions * QTerminal.h, QTerminal.cc (QTerminal::relay_command): Delete. * file-editor-tab.cc (file_editor_tab::run_file_callback): New argument, bp_info. Save pending command line input and execute command. (file_editor_tab::run_file): Use octave_link to execute file. * main-window.h, main-window.cc (main_window::execute_command_in_terminal): Rename from main_window::handle_command_double_clicked. Post event through octave_link to execute command. (main_window::construct_octave_qt_link): Connect _octave_qt_link::execute_command_in_terminal_signal to main_window::execute_command_in_terminal. (main_window::execute_command_callback): New function. (main_window::relay_command_signal): Delete signal. Remove all uses. * octave-qt-link.h, octave-qt-link.cc (octave_qt_link::do_execute_command_in_terminal): New function. (octave_qt_link::execute_command_in_terminal_signal): New signal. * terminal-dock-widget.h, terminal-dock-widget.cc (terminal_dock_widget::relay_command_signal): Delete signal. Remove all uses. * octave-link.h (octave_link::execute_command_in_terminal, octave_link::do_execute_command_in_terminal): New functions. * cmd-edit.h, cmd-edit.cc (command_editor::pre_input_hook_set): New variable. (gnu_readline::previous_pre_input_hook, command_editor::intial_input): New member variables. (command_editor::restore_pre_input_hook, command_editor::do_get_current_line, command_editor::do_replace_line, command_editor::set_pre_input_hook, gnu_readline::do_get_current_line, gnu_readline::do_replace_line, gnu_readline::set_pre_input_hook, command_editor::set_initial_input, gnu_readline::restore_pre_input_hook, default_command_editor::do_get_current_line, default_command_editor::do_replace_line, command_editor::insert_initial_input, command_editor::pre_input_handler, command_editor::get_current_line, command_editor::replace_line, command_editor::add_pre_input_hook, command_editor::do_insert_initial_input, command_editor::set_pre_input_hook, command_editor::restore_pre_input_hook): New functions. (command_editor::readline): Handle initial input. (command_editor::interrupt): Give argument a default value. * oct-rl-edit.h, oct-rl-edit.c (octave_rl_copy_line, octave_rl_replace_line, octave_rl_set_pre_input_hook, octave_rl_get_pre_input_hook): New functions. (rl_pre_input_hook_fcn_ptr): New typedef.
author John W. Eaton <jwe@octave.org>
date Thu, 25 Apr 2013 17:57:55 -0400
parents 8ea8df0747e9
children d63878346099
line wrap: on
line source

/*

Copyright (C) 2000-2012 John W. Eaton

This file is part of Octave.

Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

Octave is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with Octave; see the file COPYING.  If not, see
<http://www.gnu.org/licenses/>.

*/

#if !defined (octave_rl_edit_h)
#define octave_rl_edit_h 1

typedef int (*rl_startup_hook_fcn_ptr) (void);

typedef int (*rl_pre_input_hook_fcn_ptr) (void);

typedef int (*rl_event_hook_fcn_ptr) (void);

typedef int (*rl_fcn_ptr) (int, int);

typedef char ** (*rl_attempted_completion_fcn_ptr) (const char *, int, int);

typedef char * (*rl_completer_fcn_ptr) (const char *, int);

typedef char * (*rl_quoting_fcn_ptr) (char *, int, char *);

typedef char * (*rl_dequoting_fcn_ptr) (char *, int);

typedef int (*rl_char_is_quoted_fcn_ptr) (char *, int);

typedef int (*rl_command_fcn_ptr) (int, int);

#ifdef __cplusplus
extern "C"
{
#endif

extern void octave_rl_redisplay (void);

extern int octave_rl_screen_height (void);

extern int octave_rl_screen_width (void);

extern void octave_rl_enable_paren_matching (int);

extern void octave_rl_init (void);

extern void octave_rl_clear_screen (int skip_redisplay);

extern void octave_rl_resize_terminal (void);

extern void octave_rl_restore_terminal_state (void);

extern char *octave_rl_copy_line (void);

extern void octave_rl_replace_line (const char *s, int clear_undo);

extern void octave_rl_insert_text (const char *);

extern int octave_rl_newline (int, int);

extern const char *octave_rl_line_buffer (void);

extern int octave_rl_do_undo (void);

extern void octave_rl_clear_undo_list (void);

extern void octave_rl_set_name (const char *);

extern char *octave_rl_readline (const char *);

extern void octave_rl_set_input_stream (FILE *);

extern FILE *octave_rl_get_input_stream (void);

extern void octave_rl_set_output_stream (FILE *);

extern FILE *octave_rl_get_output_stream (void);

extern void octave_rl_read_init_file (const char *);

extern void octave_rl_re_read_init_file (void);

extern int octave_rl_filename_completion_desired (int);

extern int octave_rl_filename_quoting_desired (int);

extern void octave_rl_done (int);

extern char *octave_rl_filename_completion_function (const char *, int);

extern void octave_rl_set_basic_word_break_characters (const char *);

extern void octave_rl_set_completer_word_break_characters (const char *);

extern void octave_rl_set_basic_quote_characters (const char *);

extern void octave_rl_set_filename_quote_characters (const char *);

extern void octave_rl_set_completer_quote_characters (const char *);

extern void octave_rl_set_completion_append_character (char);

extern void
octave_rl_set_completion_function (rl_attempted_completion_fcn_ptr);

extern void
octave_rl_set_quoting_function (rl_quoting_fcn_ptr);

extern void
octave_rl_set_dequoting_function (rl_dequoting_fcn_ptr);

extern void octave_rl_set_char_is_quoted_function (rl_char_is_quoted_fcn_ptr);

extern void octave_rl_set_startup_hook (rl_startup_hook_fcn_ptr);

extern rl_startup_hook_fcn_ptr octave_rl_get_startup_hook (void);

extern void octave_rl_set_pre_input_hook (rl_startup_hook_fcn_ptr);

extern rl_pre_input_hook_fcn_ptr octave_rl_get_pre_input_hook (void);

extern void octave_rl_set_event_hook (rl_event_hook_fcn_ptr f);

extern rl_event_hook_fcn_ptr octave_rl_get_event_hook (void);

extern char **
octave_rl_completion_matches (const char *, rl_completer_fcn_ptr);

extern char octave_rl_prompt_start_ignore (void);

extern char octave_rl_prompt_end_ignore (void);

extern void octave_rl_add_defun (const char *, rl_fcn_ptr, char);

extern void octave_rl_set_terminal_name (const char *);

extern void octave_rl_initialize (void);

extern int octave_rl_history_search_forward (int, int);

extern int octave_rl_history_search_backward (int, int);

extern char octave_rl_ctrl (char);

extern char octave_rl_meta (char);

#ifdef __cplusplus
}
#endif

#endif