Mercurial > octave
view liboctave/util/oct-rl-edit.h @ 27338:829d9efb7730
allow gui events to interrupt readline event processing (bug #56738)
* liboctave/util/action-container.cc: New file.
* action-container.h, action-container.cc (action_container::run):
Break out of loop if command_editor::input_interrupted is true.
* liboctave/util/module.mk: Update.
* cmd-edit.h (command_editor::input_interrupted,
command_editor::do_input_interrupted): New functions.
* cmd-edit.cc (gnu_readline::do_input_interrupted): New function.
* oct-rl-edit.h, oct-rl-edit.c (octave_rl_input_interrupted):
New function.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 13 Aug 2019 19:13:46 -0400 |
parents | 00f796120a6d |
children | 64289bf338da |
line wrap: on
line source
/* Copyright (C) 2000-2019 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 <https://www.gnu.org/licenses/>. */ #if ! defined (octave_oct_rl_edit_h) #define octave_oct_rl_edit_h 1 #include "octave-config.h" #if defined (__cplusplus) # include <cstdio> #else # include <stdio.h> #endif 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_completion_hook_fcn_ptr) (void); 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); #if defined (__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 int octave_rl_erase_empty_line (int); extern void octave_rl_clear_screen (int skip_redisplay); extern void octave_rl_resize_terminal (void); extern void octave_rl_resize_terminal (void); extern void octave_rl_set_screen_size (int ht, int wd); 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_kill_full_line (void); 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_point (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 int octave_rl_prefer_env_winsize (int); extern void octave_rl_done (int); extern int octave_rl_input_interrupted (void); 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 char * octave_rl_get_completer_word_break_characters (void); extern void octave_rl_set_completion_word_break_hook (rl_completion_hook_fcn_ptr); 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, int); 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 int octave_rl_ctrl (char); extern int octave_rl_meta (char); extern void octave_rl_recover_from_interrupt (void); #if defined (__cplusplus) } #endif #endif