On 04/15/2016 01:47 PM, Yury Gribov wrote:
On 04/15/2016 02:57 PM, Pedro Alves wrote:
On 04/15/2016 12:39 PM, Yury Gribov wrote:
I've attached the script I've came up with (it properly works around
copy relocations and thus detects imported external variables). On my
system (with older gdb which only has _rl_echoing_p,
_rl_qsort_string_compare and _rl_print_completions_horizontally) it
Can you attach rl_orig.lst and rl_new.lst (and preferably a version of
the script that doesn't try to regenerate those), so that others can
easily run this on their systems without having to patch readline?
Right, attached.
I've also fixed an issue in script and added fixed patch which
additionally visualizes _rl_horizontal_scroll_mode (required by trunk gdb).
I ran this now and got:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Symbols which may be used and are missing in new libreadline:
rl_complete_with_tilde_expansion
_rl_mark_modified_lines
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I wasn't expecting to ever see a "rl_" symbol here? What was the
logic used to decide whether a symbol should be exported?
Here's the diff between your rl_orig.lst and rl_new.lst
files, showing which symbols would be hidden:
--- rl_orig.lst 2016-04-18 10:58:51.314617490 +0100
+++ rl_new.lst 2016-04-18 10:58:51.302617526 +0100
@@ -1,27 +1,18 @@
add_history
add_history_time
-alloc_history_entry
-alphabetic
append_history
__bss_start
clear_history
-completion_matches
-copy_history_entry
-crlf
current_history
-ding
_edata
emacs_ctlx_keymap
emacs_meta_keymap
emacs_standard_keymap
_end
-filename_completion_function
_fini
free_history_entry
-free_undo_list
funmap
-funmap_program_specific_entry_start
get_history_event
history_arg_extract
history_base
@@ -37,7 +28,6 @@ history_length
history_list
history_max_entries
history_no_expand_chars
-history_offset
history_quotes_inhibit_expansion
history_search
history_search_delimiter_chars
@@ -53,44 +43,23 @@ history_word_delimiters
history_write_timestamps
_init
max_input_history
-maybe_replace_line
-maybe_save_line
-maybe_unsave_line
Name
next_history
previous_history
read_history
read_history_range
readline
-readline_internal_char
-readline_internal_setup
-readline_internal_teardown
remove_history
-replace_history_data
replace_history_entry
rl_abort
-_rl_abort_internal
rl_add_defun
rl_add_funmap_entry
-_rl_add_macro_char
rl_add_undo
-_rl_adjust_point
-_rl_allow_pathname_alphabetic_chars
rl_alphabetic
rl_already_prompted
-_rl_any_typein
-_rl_arg_callback
-_rl_argcxt
-_rl_arg_dispatch
-_rl_arg_getchar
-_rl_arg_init
-_rl_arg_overflow
-rl_arg_sign
rl_arrow_keys
rl_attempted_completion_function
rl_attempted_completion_over
-_rl_audit_tty
-_rl_backspace
rl_backward
rl_backward_byte
rl_backward_char
@@ -104,7 +73,6 @@ rl_basic_word_break_characters
rl_beginning_of_history
rl_begin_undo_group
rl_beg_of_line
-_rl_bell_preference
rl_binding_keymap
rl_bind_key
rl_bind_key_if_unbound
@@ -114,15 +82,6 @@ rl_bind_keyseq
rl_bind_keyseq_if_unbound
rl_bind_keyseq_if_unbound_in_map
rl_bind_keyseq_in_map
-_rl_bind_stty_chars
-rl_blink_matching_paren
-_rl_block_sigint
-_rl_block_sigwinch
-rl_byte_oriented
-_rl_callback_data
-_rl_callback_data_alloc
-_rl_callback_data_dispose
-_rl_callback_func
rl_callback_handler_install
rl_callback_handler_remove
rl_callback_read_char
@@ -130,40 +89,23 @@ rl_call_last_kbd_macro
rl_capitalize_word
rl_catch_signals
rl_catch_sigwinch
-_rl_caught_signal
rl_change_environment
rl_character_len
rl_char_is_quoted_p
rl_char_search
-_rl_char_search_internal
-_rl_char_value
rl_cleanup_after_signal
-_rl_clean_up_for_exit
rl_clear_history
rl_clear_message
rl_clear_pending_input
-_rl_clear_screen
rl_clear_screen
rl_clear_signals
-_rl_clear_to_eol
-_rl_colored_stats
-_rl_color_ext_list
-_rl_color_indicator
-_rl_comment_begin
-_rl_compare_chars
rl_complete
rl_complete_internal
_rl_complete_mark_directories
_rl_complete_mark_symlink_dirs
rl_completer_quote_characters
rl_completer_word_break_characters
-_rl_complete_show_all
-_rl_complete_show_unmodified
-rl_complete_with_tilde_expansion
rl_completion_append_character
-_rl_completion_case_fold
-_rl_completion_case_map
-_rl_completion_columns
rl_completion_display_matches_hook
rl_completion_entry_function
rl_completion_found_quote
@@ -178,17 +120,12 @@ rl_completion_suppress_append
rl_completion_suppress_quote
rl_completion_type
rl_completion_word_break_hook
-_rl_control_keypad
-_rl_convert_meta_chars_to_ascii
rl_copy_backward_word
rl_copy_forward_word
rl_copy_keymap
rl_copy_region_to_kill
rl_copy_text
-_rl_copy_undo_entry
-_rl_copy_undo_list
rl_crlf
-_rl_current_display_line
rl_delete
rl_delete_horizontal_space
rl_delete_or_show_completions
@@ -196,24 +133,14 @@ rl_delete_text
rl_deprep_term_function
rl_deprep_terminal
rl_digit_argument
-_rl_digit_p
-_rl_digit_value
rl_ding
rl_directory_completion_hook
rl_directory_rewrite_hook
-_rl_disable_meta_key
-_rl_disable_tty_signals
rl_discard_argument
rl_discard_keymap
-_rl_dispatch
-_rl_dispatch_callback
rl_dispatching
-_rl_dispatching_keymap
-_rl_dispatch_subseq
-rl_display_fixed
rl_display_match_list
rl_display_prompt
-_rl_doing_an_undo
rl_do_lowercase_version
rl_done
rl_do_undo
@@ -221,33 +148,23 @@ rl_downcase_word
rl_dump_functions
rl_dump_macros
rl_dump_variables
-_rl_echo_control_chars
-_rl_echoctl
_rl_echoing_p
rl_echo_signal_char
rl_editing_mode
rl_emacs_editing_mode
-_rl_enable_keypad
-_rl_enable_meta
-_rl_enable_meta_key
-_rl_enable_paren_matching
rl_end
rl_end_kbd_macro
rl_end_of_history
rl_end_of_line
rl_end_undo_group
-_rl_eof_char
-_rl_erase_at_end_of_line
rl_erase_empty_line
_rl_erase_entire_line
-_rl_errmsg
rl_event_hook
rl_exchange_point_and_mark
rl_execute_next
rl_executing_key
rl_executing_keymap
rl_executing_keyseq
-_rl_executing_keyseq_size
rl_executing_macro
rl_expand_prompt
rl_explicit_arg
@@ -260,25 +177,15 @@ rl_filename_quoting_desired
rl_filename_quoting_function
rl_filename_rewrite_hook
rl_filename_stat_hook
-_rl_find_completion_word
-_rl_find_next_mbchar
-_rl_find_prev_mbchar
-_rl_fix_last_undo_of_type
-_rl_fix_point
rl_forced_update_display
rl_forward
rl_forward_byte
rl_forward_char
-_rl_forward_char_internal
rl_forward_search_history
rl_forward_word
rl_free
-_rl_free_history_entry
rl_free_keymap
rl_free_line_state
-_rl_free_match_list
-_rl_free_saved_history_line
-_rl_free_undo_list
rl_free_undo_list
rl_function_dumper
rl_function_of_keyseq
@@ -286,19 +193,15 @@ rl_funmap_names
rl_generic_bind
rl_getc
rl_getc_function
-_rl_get_char_len
rl_get_keymap
rl_get_keymap_by_name
rl_get_keymap_name
rl_get_keymap_name_from_edit_mode
rl_get_next_history
rl_get_previous_history
-_rl_get_screen_size
rl_get_screen_size
rl_get_termcap
rl_gnu_readline_p
-_rl_history_preserve_point
-_rl_history_saved_point
rl_history_search_backward
rl_history_search_forward
rl_history_substr_search_backward
@@ -307,238 +210,115 @@ _rl_horizontal_scroll_mode
rl_ignore_completion_duplicates
rl_ignore_some_completions_function
rl_inhibit_completion
-_rl_init_eightbit
rl_initialize
rl_initialize_funmap
-_rl_init_line_state
-_rl_init_terminal_io
-_rl_input_available
rl_input_available_hook
-_rl_input_queued
rl_insert
-_rl_insert_char
rl_insert_close
rl_insert_comment
rl_insert_completions
rl_insert_mode
rl_insert_text
-_rl_insert_typein
-_rl_in_stream
rl_instream
-_rl_internal_char_cleanup
-_rl_interrupt_immediately
-_rl_intr_char
rl_invoking_keyseqs
rl_invoking_keyseqs_in_map
-_rl_iscxt
-_rl_isearch_callback
-_rl_isearch_dispatch
-_rl_isearch_terminators
-_rl_is_mbchar_matched
-_rl_keymap
-_rl_keyseq_chain_dispose
-_rl_keyseq_cxt_alloc
-_rl_keyseq_cxt_dispose
-_rl_keyseq_timeout
rl_key_sequence_length
rl_kill_full_line
-_rl_kill_kbd_macro
rl_kill_line
rl_kill_region
rl_kill_text
rl_kill_word
-_rl_kscxt
-_rl_last_command_was_kill
-_rl_last_c_pos
rl_last_func
-_rl_last_v_pos
rl_library_version
rl_line_buffer
-rl_line_buffer_len
-rl_linefunc
rl_list_funmap_names
-_rl_lowercase_p
rl_macro_bind
rl_macro_dumper
rl_make_bare_keymap
rl_make_keymap
-_rl_make_prompt_for_search
rl_mark
-_rl_mark_modified_lines
-_rl_match_hidden_files
rl_maybe_replace_line
rl_maybe_save_line
rl_maybe_unsave_line
rl_menu_complete
-_rl_menu_complete_prefix_first
-rl_menu_completion_entry_function
rl_message
-_rl_meta_flag
rl_modifying
-_rl_move_cursor_relative
-_rl_move_vert
rl_named_function
rl_newline
-_rl_next_macro_key
rl_noninc_forward_search
rl_noninc_forward_search_again
rl_noninc_reverse_search
rl_noninc_reverse_search_again
-_rl_nscxt
-_rl_nsearch_callback
-_rl_null_function
rl_num_chars_to_read
rl_numeric_arg
rl_old_menu_complete
rl_on_new_line
rl_on_new_line_with_prompt
-_rl_output_character_function
-_rl_output_meta_chars
-_rl_output_some_chars
-_rl_out_stream
rl_outstream
-_rl_overwrite_char
rl_overwrite_mode
-_rl_overwrite_rubout
-_rl_page_completions
rl_parse_and_bind
-_rl_parse_colors
-_rl_parsing_conditionalized_out
rl_pending_input
rl_point
-_rl_pop_executing_macro
rl_possible_completions
-_rl_possible_control_prefixes
-_rl_possible_meta_prefixes
rl_prefer_env_winsize
rl_pre_input_hook
-_rl_prep_non_filename_text
rl_prep_term_function
rl_prep_terminal
-_rl_prev_macro_key
-_rl_print_color_indicator
_rl_print_completions_horizontally
rl_print_last_kbd_macro
rl_prompt
-_rl_pure_alphabetic
-_rl_pushed_input_available
-_rl_push_executing_macro
rl_push_macro_input
-_rl_put_indicator
_rl_qsort_string_compare
-_rl_quit_char
rl_quoted_insert
rl_read_init_file
rl_read_key
rl_readline_name
rl_readline_state
rl_readline_version
-_rl_read_mbchar
-_rl_read_mbstring
rl_redisplay
-_rl_redisplay_after_sigwinch
rl_redisplay_function
rl_refresh_line
-_rl_release_sigint
-_rl_release_sigwinch
-rl_replace_from_history
rl_replace_line
-_rl_replace_text
rl_re_read_init_file
rl_reset_after_signal
-_rl_reset_argument
-_rl_reset_completion_state
rl_reset_line_state
-_rl_reset_prompt
rl_reset_screen_size
rl_reset_terminal
rl_resize_terminal
rl_restart_output
rl_restore_prompt
rl_restore_state
-_rl_restore_tty_signals
rl_reverse_search_history
-_rl_revert_all_at_newline
-_rl_revert_all_lines
rl_revert_line
rl_rubout
-_rl_rubout_char
rl_rubout_or_delete
-_rl_saved_line_for_history
rl_save_prompt
rl_save_state
-_rl_savestring
-_rl_screenchars
-_rl_screenheight
-_rl_screenwidth
-_rl_scxt_alloc
-_rl_scxt_dispose
-_rl_search_getchar
-_rl_set_cursor
-_rl_set_insert_mode
rl_set_key
rl_set_keyboard_input_timeout
rl_set_keymap
rl_set_keymap_from_edit_mode
rl_set_mark
-_rl_set_mark_at_pos
-_rl_set_normal_color
rl_set_paren_blink_timeout
rl_set_prompt
-rl_set_retained_kills
-_rl_set_screen_size
rl_set_screen_size
rl_set_signals
-_rl_set_the_line
rl_show_char
-_rl_show_mode_in_prompt
-_rl_sigcleanarg
-_rl_sigcleanup
rl_signal_event_hook
-_rl_signal_handler
-_rl_sigwinch_resize_terminal
-_rl_skip_completed_text
rl_skip_csi_sequence
rl_sort_completion_matches
rl_special_prefixes
rl_start_kbd_macro
rl_startup_hook
-_rl_start_using_history
rl_stop_output
-_rl_strindex
-_rl_strip_prompt
rl_stuff_char
-_rl_suppress_redisplay
-_rl_susp_char
rl_tab_insert
-_rl_term_autowrap
-_rl_term_backspace
-_rl_term_clreol
-_rl_term_clrpag
-_rl_term_cr
-_rl_term_dc
-_rl_term_DC
-_rl_term_ei
-_rl_term_forward_char
-_rl_term_goto
-_rl_term_ic
-_rl_term_IC
-_rl_term_im
-_rl_terminal_can_insert
rl_terminal_name
-_rl_term_ip
-_rl_term_pc
-_rl_term_up
rl_tilde_expand
-_rl_to_lower
-_rl_top_level
-_rl_to_upper
rl_translate_keyseq
rl_transpose_chars
rl_transpose_words
-_rl_ttymsg
rl_tty_set_default_bindings
-rltty_set_default_bindings
rl_tty_status
rl_tty_unset_default_bindings
rl_unbind_command_in_map
@@ -546,20 +326,14 @@ rl_unbind_function_in_map
rl_unbind_key
rl_unbind_key_in_map
rl_undo_command
-_rl_undo_group_level
rl_undo_list
-_rl_unget_char
rl_universal_argument
rl_unix_filename_rubout
rl_unix_line_discard
rl_unix_word_rubout
rl_untranslate_keyseq
-_rl_untranslate_macro_value
rl_upcase_word
-_rl_update_final
-_rl_uppercase_p
rl_username_completion_function
-_rl_utf8locale
rl_variable_bind
rl_variable_dumper
rl_variable_value
@@ -580,8 +354,6 @@ rl_vi_complete
rl_vi_delete
rl_vi_delete_to
rl_vi_domove
-_rl_vi_domove_callback
-_rl_vi_done_inserting
rl_vi_editing_mode
rl_vi_end_word
rl_vi_eof_maybe
@@ -592,14 +364,11 @@ rl_vi_first_print
rl_vi_fword
rl_vi_fWord
rl_vi_goto_mark
-_rl_vi_initialize_line
rl_vi_insert_beg
rl_vi_insertion_mode
rl_vi_insert_mode
-_rl_vi_last_command
rl_vi_match
rl_vi_movement_mode
-_rl_vimvcxt
rl_vi_next_word
rl_vi_overstrike
rl_vi_overstrike_delete
@@ -607,34 +376,20 @@ rl_vi_prev_word
rl_vi_put
rl_vi_redo
rl_vi_replace
-_rl_vi_reset_last
rl_vi_rubout
-_rl_vis_botlin
rl_vi_search
rl_vi_search_again
-_rl_vi_set_last
rl_vi_set_mark
-rl_visible_prompt_length
-rl_visible_stats
rl_vi_start_inserting
rl_vi_subst
-_rl_vi_textmod_command
rl_vi_tilde_expand
rl_vi_undo
rl_vi_yank_arg
rl_vi_yank_to
-_rl_walphabetic
-_rl_want_redisplay
-_rl_with_macro_input
rl_yank
rl_yank_last_arg
rl_yank_nth_arg
rl_yank_pop
-sh_get_env_value
-sh_get_home_dir
-sh_set_lines_and_columns
-sh_single_quote
-sh_unset_nodelay_mode
stifle_history
tilde_additional_prefixes
tilde_additional_suffixes
@@ -643,12 +398,8 @@ tilde_expand_word
tilde_expansion_failure_hook
tilde_expansion_preexpansion_hook
unstifle_history
-username_completion_function
using_history
vi_insertion_keymap
vi_movement_keymap
where_history
write_history
-xfree
-xmalloc
-xrealloc