00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if !defined (_RL_PRIVATE_H_)
00025 #define _RL_PRIVATE_H_
00026
00027 #include "rlconf.h"
00028 #include "rlstdc.h"
00029 #include "posixjmp.h"
00030
00031
00032
00033
00034
00035
00036
00037 #define RL_SEARCH_ISEARCH 0x01
00038 #define RL_SEARCH_NSEARCH 0x02
00039 #define RL_SEARCH_CSEARCH 0x04
00040
00041
00042 #define SF_REVERSE 0x01
00043 #define SF_FOUND 0x02
00044 #define SF_FAILED 0x04
00045
00046 typedef struct __rl_search_context
00047 {
00048 int type;
00049 int sflags;
00050
00051 char *search_string;
00052 int search_string_index;
00053 int search_string_size;
00054
00055 char **lines;
00056 char *allocated_line;
00057 int hlen;
00058 int hindex;
00059
00060 int save_point;
00061 int save_mark;
00062 int save_line;
00063 int last_found_line;
00064 char *prev_line_found;
00065
00066 UNDO_LIST *save_undo_list;
00067
00068 int history_pos;
00069 int direction;
00070
00071 int lastc;
00072 #if defined (HANDLE_MULTIBYTE)
00073 char mb[MB_LEN_MAX];
00074 #endif
00075
00076 char *sline;
00077 int sline_len;
00078 int sline_index;
00079
00080 char *search_terminators;
00081 } _rl_search_cxt;
00082
00083
00084 #define NUM_SAWMINUS 0x01
00085 #define NUM_SAWDIGITS 0x02
00086 #define NUM_READONE 0x04
00087
00088 typedef int _rl_arg_cxt;
00089
00090
00091
00092 #define KSEQ_DISPATCHED 0x01
00093 #define KSEQ_SUBSEQ 0x02
00094 #define KSEQ_RECURSIVE 0x04
00095
00096 typedef struct __rl_keyseq_context
00097 {
00098 int flags;
00099 int subseq_arg;
00100 int subseq_retval;
00101 Keymap dmap;
00102
00103 Keymap oldmap;
00104 int okey;
00105 struct __rl_keyseq_context *ocxt;
00106 int childval;
00107 } _rl_keyseq_cxt;
00108
00109
00110
00111 typedef struct __rl_callback_generic_arg
00112 {
00113 int count;
00114 int i1, i2;
00115
00116 } _rl_callback_generic_arg;
00117
00118 typedef int _rl_callback_func_t PARAMS((_rl_callback_generic_arg *));
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133 extern int rl_complete_with_tilde_expansion;
00134 #if defined (VISIBLE_STATS)
00135 extern int rl_visible_stats;
00136 #endif
00137
00138
00139 extern int rl_line_buffer_len;
00140 extern int rl_arg_sign;
00141 extern int rl_visible_prompt_length;
00142 extern int readline_echoing_p;
00143 extern int rl_key_sequence_length;
00144 extern int rl_byte_oriented;
00145
00146 extern _rl_keyseq_cxt *_rl_kscxt;
00147
00148
00149 extern int rl_display_fixed;
00150
00151
00152 extern int rl_blink_matching_paren;
00153
00154
00155
00156
00157
00158
00159
00160
00161 extern int rl_set_retained_kills PARAMS((int));
00162
00163
00164 extern void _rl_set_screen_size PARAMS((int, int));
00165
00166
00167 extern int _rl_fix_last_undo_of_type PARAMS((int, int, int));
00168
00169
00170 extern char *_rl_savestring PARAMS((const char *));
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187 #if defined(READLINE_CALLBACKS)
00188
00189
00190 extern void readline_internal_setup PARAMS((void));
00191 extern char *readline_internal_teardown PARAMS((int));
00192 extern int readline_internal_char PARAMS((void));
00193
00194 extern _rl_keyseq_cxt *_rl_keyseq_cxt_alloc PARAMS((void));
00195 extern void _rl_keyseq_cxt_dispose PARAMS((_rl_keyseq_cxt *));
00196 extern void _rl_keyseq_chain_dispose PARAMS((void));
00197
00198 extern int _rl_dispatch_callback PARAMS((_rl_keyseq_cxt *));
00199
00200
00201 extern _rl_callback_generic_arg *_rl_callback_data_alloc PARAMS((int));
00202 extern void _rl_callback_data_dispose PARAMS((_rl_callback_generic_arg *));
00203
00204 #endif
00205
00206
00207
00208
00209 extern char _rl_find_completion_word PARAMS((int *, int *));
00210 extern void _rl_free_match_list PARAMS((char **));
00211
00212
00213 extern char *_rl_strip_prompt PARAMS((char *));
00214 extern void _rl_move_cursor_relative PARAMS((int, const char *));
00215 extern void _rl_move_vert PARAMS((int));
00216 extern void _rl_save_prompt PARAMS((void));
00217 extern void _rl_restore_prompt PARAMS((void));
00218 extern char *_rl_make_prompt_for_search PARAMS((int));
00219 extern void _rl_erase_at_end_of_line PARAMS((int));
00220 extern void _rl_clear_to_eol PARAMS((int));
00221 extern void _rl_clear_screen PARAMS((void));
00222 extern void _rl_update_final PARAMS((void));
00223 extern void _rl_redisplay_after_sigwinch PARAMS((void));
00224 extern void _rl_clean_up_for_exit PARAMS((void));
00225 extern void _rl_erase_entire_line PARAMS((void));
00226 extern int _rl_current_display_line PARAMS((void));
00227
00228
00229 extern int _rl_any_typein PARAMS((void));
00230 extern int _rl_input_available PARAMS((void));
00231 extern int _rl_input_queued PARAMS((int));
00232 extern void _rl_insert_typein PARAMS((int));
00233 extern int _rl_unget_char PARAMS((int));
00234 extern int _rl_pushed_input_available PARAMS((void));
00235
00236
00237 extern _rl_search_cxt *_rl_scxt_alloc PARAMS((int, int));
00238 extern void _rl_scxt_dispose PARAMS((_rl_search_cxt *, int));
00239
00240 extern int _rl_isearch_dispatch PARAMS((_rl_search_cxt *, int));
00241 extern int _rl_isearch_callback PARAMS((_rl_search_cxt *));
00242
00243 extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
00244
00245
00246 extern void _rl_with_macro_input PARAMS((char *));
00247 extern int _rl_next_macro_key PARAMS((void));
00248 extern void _rl_push_executing_macro PARAMS((void));
00249 extern void _rl_pop_executing_macro PARAMS((void));
00250 extern void _rl_add_macro_char PARAMS((int));
00251 extern void _rl_kill_kbd_macro PARAMS((void));
00252
00253
00254 extern int _rl_arg_overflow PARAMS((void));
00255 extern void _rl_arg_init PARAMS((void));
00256 extern int _rl_arg_getchar PARAMS((void));
00257 extern int _rl_arg_callback PARAMS((_rl_arg_cxt));
00258 extern void _rl_reset_argument PARAMS((void));
00259
00260 extern void _rl_start_using_history PARAMS((void));
00261 extern int _rl_free_saved_history_line PARAMS((void));
00262 extern void _rl_set_insert_mode PARAMS((int, int));
00263
00264
00265 extern int _rl_init_eightbit PARAMS((void));
00266
00267
00268 extern void _rl_enable_paren_matching PARAMS((int));
00269
00270
00271 extern void _rl_init_line_state PARAMS((void));
00272 extern void _rl_set_the_line PARAMS((void));
00273 extern int _rl_dispatch PARAMS((int, Keymap));
00274 extern int _rl_dispatch_subseq PARAMS((int, Keymap, int));
00275 extern void _rl_internal_char_cleanup PARAMS((void));
00276
00277
00278 extern int _rl_disable_tty_signals PARAMS((void));
00279 extern int _rl_restore_tty_signals PARAMS((void));
00280
00281
00282 extern int _rl_nsearch_callback PARAMS((_rl_search_cxt *));
00283
00284
00285 extern void _rl_get_screen_size PARAMS((int, int));
00286 extern int _rl_init_terminal_io PARAMS((const char *));
00287 #ifdef _MINIX
00288 extern void _rl_output_character_function PARAMS((int));
00289 #else
00290 extern int _rl_output_character_function PARAMS((int));
00291 #endif
00292 extern void _rl_output_some_chars PARAMS((const char *, int));
00293 extern int _rl_backspace PARAMS((int));
00294 extern void _rl_enable_meta_key PARAMS((void));
00295 extern void _rl_control_keypad PARAMS((int));
00296 extern void _rl_set_cursor PARAMS((int, int));
00297
00298
00299 extern void _rl_fix_point PARAMS((int));
00300 extern int _rl_replace_text PARAMS((const char *, int, int));
00301 extern int _rl_insert_char PARAMS((int, int));
00302 extern int _rl_overwrite_char PARAMS((int, int));
00303 extern int _rl_overwrite_rubout PARAMS((int, int));
00304 extern int _rl_rubout_char PARAMS((int, int));
00305 #if defined (HANDLE_MULTIBYTE)
00306 extern int _rl_char_search_internal PARAMS((int, int, char *, int));
00307 #else
00308 extern int _rl_char_search_internal PARAMS((int, int, int));
00309 #endif
00310 extern int _rl_set_mark_at_pos PARAMS((int));
00311
00312
00313 extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *));
00314 extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *));
00315
00316
00317 extern int _rl_abort_internal PARAMS((void));
00318 extern char *_rl_strindex PARAMS((const char *, const char *));
00319 extern int _rl_qsort_string_compare PARAMS((char **, char **));
00320 extern int (_rl_uppercase_p) PARAMS((int));
00321 extern int (_rl_lowercase_p) PARAMS((int));
00322 extern int (_rl_pure_alphabetic) PARAMS((int));
00323 extern int (_rl_digit_p) PARAMS((int));
00324 extern int (_rl_to_lower) PARAMS((int));
00325 extern int (_rl_to_upper) PARAMS((int));
00326 extern int (_rl_digit_value) PARAMS((int));
00327
00328
00329 extern void _rl_vi_initialize_line PARAMS((void));
00330 extern void _rl_vi_reset_last PARAMS((void));
00331 extern void _rl_vi_set_last PARAMS((int, int, int));
00332 extern int _rl_vi_textmod_command PARAMS((int));
00333 extern void _rl_vi_done_inserting PARAMS((void));
00334
00335
00336
00337
00338
00339
00340 extern const char *_rl_possible_control_prefixes[];
00341 extern const char *_rl_possible_meta_prefixes[];
00342
00343
00344 extern _rl_callback_func_t *_rl_callback_func;
00345 extern _rl_callback_generic_arg *_rl_callback_data;
00346
00347
00348 extern int _rl_complete_show_all;
00349 extern int _rl_complete_show_unmodified;
00350 extern int _rl_complete_mark_directories;
00351 extern int _rl_complete_mark_symlink_dirs;
00352 extern int _rl_print_completions_horizontally;
00353 extern int _rl_completion_case_fold;
00354 extern int _rl_match_hidden_files;
00355 extern int _rl_page_completions;
00356
00357
00358 extern int _rl_vis_botlin;
00359 extern int _rl_last_c_pos;
00360 extern int _rl_suppress_redisplay;
00361 extern int _rl_want_redisplay;
00362 extern char *rl_display_prompt;
00363
00364
00365 extern char *_rl_isearch_terminators;
00366
00367 extern _rl_search_cxt *_rl_iscxt;
00368
00369
00370 extern char *_rl_executing_macro;
00371
00372
00373 extern int _rl_history_preserve_point;
00374 extern int _rl_history_saved_point;
00375
00376 extern _rl_arg_cxt _rl_argcxt;
00377
00378
00379 extern int _rl_horizontal_scroll_mode;
00380 extern int _rl_mark_modified_lines;
00381 extern int _rl_bell_preference;
00382 extern int _rl_meta_flag;
00383 extern int _rl_convert_meta_chars_to_ascii;
00384 extern int _rl_output_meta_chars;
00385 extern int _rl_bind_stty_chars;
00386 extern char *_rl_comment_begin;
00387 extern unsigned char _rl_parsing_conditionalized_out;
00388 extern Keymap _rl_keymap;
00389 extern FILE *_rl_in_stream;
00390 extern FILE *_rl_out_stream;
00391 extern int _rl_last_command_was_kill;
00392 extern int _rl_eof_char;
00393 extern procenv_t readline_top_level;
00394
00395
00396 extern _rl_search_cxt *_rl_nscxt;
00397
00398
00399 extern int _rl_enable_keypad;
00400 extern int _rl_enable_meta;
00401 extern char *_rl_term_clreol;
00402 extern char *_rl_term_clrpag;
00403 extern char *_rl_term_im;
00404 extern char *_rl_term_ic;
00405 extern char *_rl_term_ei;
00406 extern char *_rl_term_DC;
00407 extern char *_rl_term_up;
00408 extern char *_rl_term_dc;
00409 extern char *_rl_term_cr;
00410 extern char *_rl_term_IC;
00411 extern char *_rl_term_forward_char;
00412 extern int _rl_screenheight;
00413 extern int _rl_screenwidth;
00414 extern int _rl_screenchars;
00415 extern int _rl_terminal_can_insert;
00416 extern int _rl_term_autowrap;
00417
00418
00419 extern int _rl_doing_an_undo;
00420 extern int _rl_undo_group_level;
00421
00422
00423 extern int _rl_vi_last_command;
00424
00425 #endif