aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTom Tromey2011-01-18 13:45:37 -0700
committerTom Tromey2011-01-18 13:45:37 -0700
commit29208e8237a91a28fc5ab30f020ddc65c9ec14b7 (patch)
tree541a20f0fdb5d173dadbae010db74b6682e2a26b /src
parent44ec06d43e437602f6c18ca4ea3efc87bcaf25ea (diff)
downloademacs-29208e8237a91a28fc5ab30f020ddc65c9ec14b7.tar.gz
emacs-29208e8237a91a28fc5ab30f020ddc65c9ec14b7.zip
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file. * xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration. * window.h (Vinitial_window_system, Vminibuf_scroll_window) (Vwindow_system_version): Remove declaration. * w32term.h (Vw32_enable_palette) (Vx_pixel_size_width_font_regexp): Remove declaration. * w32menu.c (Voverriding_local_map) (Voverriding_local_map_menu_flag): Remove declaration. * w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier) (Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock) (Vw32_enable_num_lock, Vw32_lwindow_modifier) (Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system) (Vw32_phantom_key_code, Vw32_recognize_altgr) (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier) (w32_use_full_screen_buffer): Remove declaration. * w32.c (Vsystem_configuration, Vw32_downcase_file_names) (Vw32_generate_fake_inodes, Vw32_get_true_file_attributes) (w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration. * termopts.h (Vtruncate_partial_width_windows, inverse_video) (no_redraw_on_reenter, visible_bell): Remove declaration. * sysdep.c (Vsystem_name): Remove declaration. * syntax.h (parse_sexp_lookup_properties): Remove declaration. * menu.h (Vmenu_updating_frame): Remove declaration. * macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove declaration. * lisp.h (Vafter_init_time, Vafter_load_alist) (Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history) (Vcompletion_regexp_list, Vcurrent_load_list) (Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error) (Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist) (Vexec_directory, Vexec_path, Vexec_suffixes) (Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures) (Vhelp_form, Vhistory_length, Vinhibit_field_text_motion) (Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay) (Vinstallation_directory, Vinvocation_directory) (Vinvocation_name, Vload_file_rep_suffixes, Vload_history) (Vload_suffixes, Vmark_even_if_inactive, Vmemory_full) (Vmessage_log_max, Vobarray, Vprint_length, Vprint_level) (Vpurify_flag, Vquit_flag, Vsaved_region_selection) (Vscalable_fonts_allowed, Vselect_active_regions) (Vshell_file_name, Vstandard_input, Vstandard_output) (Vsystem_name, Vtemporary_file_directory, Vthrow_on_input) (Vtop_level, Vtty_erase_char, Vundo_outer_limit) (Vuser_login_name, Vwindow_scroll_functions) (Vwindow_system_version, Vx_no_window_manager) (Vx_resource_class, Vx_resource_name, baud_rate) (completion_ignore_case, debug_on_next_call, gc_cons_threshold) (history_delete_duplicates, inhibit_x_resources) (last_nonmenu_event, load_in_progress, max_specpdl_size) (minibuffer_auto_raise, print_escape_newlines, scroll_margin) (use_dialog_box, use_file_dialog): Remove declaration. Include globals.h. * keymap.h (Voverriding_local_map) (Voverriding_local_map_menu_flag, meta_prefix_char): Remove declaration. * keyboard.h (Vdouble_click_time, Vfunction_key_map) (Vinput_method_function, Vkey_translation_map) (Vlucid_menu_bar_dirty_flag, Vthis_original_command) (do_mouse_tracking, extra_keyboard_modifiers) (num_nonmacro_input_events): Remove declaration. * intervals.h (Vchar_property_alias_alist) (Vdefault_text_properties, Vinhibit_point_motion_hooks) (Vtext_property_default_nonsticky): Remove declaration. * gtkutil.h (x_gtk_file_dialog_help_text) (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog) (x_gtk_whole_detached_tool_bar): Remove declaration. * frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit) (Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame) (Vtool_bar_mode, Vx_resource_class, Vx_resource_name) (focus_follows_mouse): Remove declaration. * fontset.h (Valternate_fontname_alist, Vfontset_alias_alist) (Vignore_relative_composition, Votf_script_alist) (Vuse_default_ascent, Vvertical_centering_font_regexp): Remove declaration. * font.h (Vfont_log): Remove declaration. * dosfns.h (Vdos_display_scancodes, Vdos_version) (Vdos_windows_version, dos_codepage, dos_country_code) (dos_decimal_point, dos_hyper_key, dos_keyboard_layout) (dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove declaration. * disptab.h (Vglyph_table, Vstandard_display_table): Remove declaration. * dispextern.h (Vface_remapping_alist, Vglyphless_char_display) (Vmouse_autoselect_window, Voverflow_newline_into_fringe) (Vshow_trailing_whitespace, Vtool_bar_button_margin) (Vtool_bar_style, cursor_in_echo_area, display_hourglass_p) (inverse_video, mode_line_in_non_selected_windows) (tool_bar_button_relief, tool_bar_max_label_size) (underline_minimum_offset) (unibyte_display_via_language_environment, x_stretch_cursor_p): Remove declaration. * composite.h (Vauto_composition_function) (Vcomposition_function_table): Remove declaration. * commands.h (Vexecuting_kbd_macro) (Vminibuffer_local_completion_map) (Vminibuffer_local_filename_completion_map) (Vminibuffer_local_filename_must_match_map) (Vminibuffer_local_map, Vminibuffer_local_must_match_map) (Vminibuffer_local_ns_map, Vthis_command) (Vunread_command_events, cursor_in_echo_area) (last_command_event, last_nonmenu_event, unread_command_char): Remove declaration. * coding.h (Vcoding_system_for_read, Vcoding_system_for_write) (Vdefault_file_name_coding_system) (Vdefault_process_coding_system, Vfile_name_coding_system) (Vlast_coding_system_used, Vlocale_coding_system) (Vselect_safe_coding_system_function) (Vtranslation_table_for_input, coding_system_require_warning) (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided) (eol_mnemonic_unix, inherit_process_coding_system): Remove declaration. * charset.h (Vcharset_list, Vcurrent_iso639_language): Remove declaration. * character.h (Vauto_fill_chars, Vchar_direction_table) (Vchar_script_table, Vchar_width_table, Vprintable_chars) (Vscript_representative_chars, Vtranslation_table_vector) (Vunicode_category_table): Remove declaration. * ccl.h (Vfont_ccl_encoder_alist): Remove declaration. * buffer.h (Vafter_change_functions, Vbefore_change_functions) (Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode) (inhibit_modification_hooks): Remove declaration. * xterm.c (syms_of_xterm): Update. (Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table) (Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars) (x_mouse_click_focus_ignore_position) (x_underline_at_descent_line) (x_use_underline_position_properties): Remove. * xsmfns.c (syms_of_xsmfns): Update. (Vx_session_id, Vx_session_previous_id): Remove. * xsettings.c (syms_of_xsettings): Update. (Vxft_settings, use_system_font): Remove. * xselect.c (syms_of_xselect): Update. (Vselection_converter_alist, Vx_lost_selection_functions) (Vx_sent_selection_functions, x_selection_timeout): Remove. * xfns.c (syms_of_xfns): Update. (Vgtk_version_string, Vmotif_version_string) (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape) (Vx_max_tooltip_size, Vx_mode_pointer_shape) (Vx_no_window_manager, Vx_nontext_pointer_shape) (Vx_pixel_size_width_font_regexp, Vx_pointer_shape) (Vx_sensitive_text_pointer_shape) (Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text) (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog) (x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar): Remove. * xfaces.c (syms_of_xfaces): Update. (Vface_default_stipple, Vface_font_rescale_alist) (Vface_ignored_fonts, Vface_new_frame_defaults) (Vface_remapping_alist, Vfont_list_limit) (Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove. * xdisp.c (syms_of_xdisp): Update. (Vauto_resize_tool_bars, Vblink_cursor_alist) (Vdisplay_pixels_per_inch, Vfontification_functions) (Vframe_title_format, Vglobal_mode_string) (Vglyphless_char_display, Vhourglass_delay, Vhscroll_step) (Vicon_title_format, Vinhibit_redisplay) (Vline_number_display_limit, Vline_prefix) (Vmax_mini_window_height, Vmenu_bar_update_hook) (Vmenu_updating_frame, Vmessage_log_max) (Vmouse_autoselect_window, Vnobreak_char_display) (Voverlay_arrow_position, Voverlay_arrow_string) (Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions) (Vresize_mini_windows, Vshow_trailing_whitespace) (Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style) (Vtruncate_partial_width_windows, Vvoid_text_area_pointer) (Vwindow_scroll_functions, Vwindow_size_change_functions) (Vwindow_text_change_functions, Vwrap_prefix) (auto_raise_tool_bar_buttons_p, automatic_hscrolling_p) (debug_end_pos, display_hourglass_p, emacs_scroll_step) (highlight_nonselected_windows, hscroll_margin) (inhibit_eval_during_redisplay, inhibit_free_realized_faces) (inhibit_menubar_update, inhibit_try_cursor_movement) (inhibit_try_window_id, inhibit_try_window_reusing) (line_number_display_limit_width) (make_cursor_line_fully_visible_p, message_truncate_lines) (mode_line_inverse_video, multiple_frames, overline_margin) (scroll_conservatively, scroll_margin, tool_bar_button_relief) (tool_bar_max_label_size, underline_minimum_offset) (unibyte_display_via_language_environment, x_stretch_cursor_p): Remove. * window.c (syms_of_window): Update. (Vminibuf_scroll_window, Vother_window_scroll_buffer) (Vrecenter_redisplay, Vscroll_preserve_screen_position) (Vtemp_buffer_show_function, Vwindow_configuration_change_hook) (Vwindow_point_insertion_type, auto_window_vscroll_p) (mode_line_in_non_selected_windows, next_screen_context_lines) (window_min_height, window_min_width): Remove. (scroll_margin): Remove declaration. * w32term.c (syms_of_w32term): Update. (Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise) (Vw32_recognize_altgr, Vw32_swap_mouse_buttons) (Vx_toolkit_scroll_bars, w32_num_mouse_buttons) (w32_use_visible_system_caret, x_underline_at_descent_line) (x_use_underline_position_properties): Remove. (Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers): Remove declaration. * w32select.c (syms_of_w32select): Update. (Vnext_selection_coding_system, Vselection_coding_system): Remove. * w32proc.c (syms_of_ntproc): Update. (Vw32_downcase_file_names, Vw32_generate_fake_inodes) (Vw32_get_true_file_attributes, Vw32_quote_process_args) (Vw32_start_process_inherit_error_mode) (Vw32_start_process_share_console) (Vw32_start_process_show_window, w32_pipe_read_delay): Remove. (Vsystem_name): Remove declaration. * w32font.c (syms_of_w32font): Update. (Vw32_charset_info_alist): Remove. * w32fns.c (globals_of_w32fns, syms_of_w32fns): Update. (Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist) (Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock) (Vw32_enable_palette, Vw32_lwindow_modifier) (Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system) (Vw32_pass_rwindow_to_system, Vw32_phantom_key_code) (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier) (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape) (Vx_max_tooltip_size, Vx_mode_pointer_shape) (Vx_no_window_manager, Vx_nontext_pointer_shape) (Vx_pixel_size_width_font_regexp, Vx_pointer_shape) (Vx_sensitive_text_pointer_shape) (Vx_window_horizontal_drag_shape, w32_ansi_code_page) (w32_enable_synthesized_fonts, w32_mouse_button_tolerance) (w32_mouse_move_interval) (w32_pass_extra_mouse_buttons_to_system) (w32_pass_multimedia_buttons_to_system, w32_quit_key) (w32_strict_fontnames, w32_strict_painting): Remove. (Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode) (Vw32_recognize_altgr, Vwindow_system_version) (w32_num_mouse_buttons, w32_use_visible_system_caret): Remove declaration. * w32console.c (syms_of_ntterm): Update. (w32_use_full_screen_buffer): Remove. (Vtty_defined_color_alist): Remove declaration. * w16select.c (syms_of_win16select): Update. (Vnext_selection_coding_system, Vselection_coding_system): Remove. * undo.c (syms_of_undo): Update. (Vundo_outer_limit, Vundo_outer_limit_function) (undo_inhibit_record_point, undo_limit, undo_strong_limit): Remove. * textprop.c (syms_of_textprop): Update. (Vchar_property_alias_alist, Vdefault_text_properties) (Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky): Remove. * terminal.c (syms_of_terminal): Update. (Vdelete_terminal_functions, Vring_bell_function): Remove. * term.c (syms_of_term): Update. (Vresume_tty_functions, Vsuspend_tty_functions) (no_redraw_on_reenter, system_uses_terminfo, visible_cursor): Remove. * syntax.c (syms_of_syntax): Update. (Vfind_word_boundary_function_table, multibyte_syntax_as_symbol) (open_paren_in_column_0_is_defun_start) (parse_sexp_ignore_comments, parse_sexp_lookup_properties) (words_include_escapes): Remove. * search.c (syms_of_search): Update. (Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove. * process.c (syms_of_process): Update. (Vprocess_adaptive_read_buffering, Vprocess_connection_type) (delete_exited_processes): Remove. * print.c (syms_of_print): Update. (Vfloat_output_format, Vprint_charset_text_property) (Vprint_circle, Vprint_continuous_numbering, Vprint_gensym) (Vprint_length, Vprint_level, Vprint_number_table) (Vstandard_output, print_escape_multibyte) (print_escape_newlines, print_escape_nonascii, print_quoted): Remove. * msdos.c (syms_of_msdos): Update. (Vdos_unsupported_char_glyph): Remove. (unibyte_display_via_language_environment): Remove declaration. * minibuf.c (syms_of_minibuf): Update. (Vcompletion_regexp_list, Vhistory_add_new_input) (Vhistory_length, Vminibuffer_completing_file_name) (Vminibuffer_completion_confirm) (Vminibuffer_completion_predicate, Vminibuffer_completion_table) (Vminibuffer_exit_hook, Vminibuffer_help_form) (Vminibuffer_history_position, Vminibuffer_history_variable) (Vminibuffer_prompt_properties, Vminibuffer_setup_hook) (Vread_buffer_function, Vread_expression_map) (completion_ignore_case, enable_recursive_minibuffers) (history_delete_duplicates, minibuffer_allow_text_properties) (minibuffer_auto_raise, read_buffer_completion_ignore_case): Remove. * marker.c (syms_of_marker): Update. (byte_debug_flag): Remove. * macros.c (syms_of_macros): Update. (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove. * lread.c (syms_of_lread): Update. (Vafter_load_alist, Vbyte_boolean_vars) (Vbytecomp_version_regexp, Vcurrent_load_list) (Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes) (Vload_history, Vload_path, Vload_read_function) (Vload_source_file_function, Vload_suffixes, Vobarray) (Vold_style_backquotes, Vpreloaded_file_list, Vread_circle) (Vread_symbol_positions_list, Vread_with_symbol_positions) (Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues) (force_load_messages, load_convert_to_unibyte) (load_dangerous_libraries, load_force_doc_strings) (load_in_progress): Remove. * keymap.c (syms_of_keymap): Update. (Vdefine_key_rebound_commands, Vemulation_mode_map_alists) (Vminibuffer_local_completion_map) (Vminibuffer_local_filename_completion_map) (Vminibuffer_local_filename_must_match_map) (Vminibuffer_local_map, Vminibuffer_local_must_match_map) (Vminibuffer_local_ns_map, Vminor_mode_map_alist) (Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier): Remove. * keyboard.c (syms_of_keyboard): Update. (Vauto_save_timeout, Vcommand_error_function) (Vcommand_hook_internal, Vdeactivate_mark) (Vdeferred_action_function, Vdeferred_action_list) (Vdisable_point_adjustment, Vdouble_click_time) (Vecho_keystrokes, Venable_disabled_menus_and_buttons) (Vfunction_key_map, Vglobal_disable_point_adjustment) (Vhelp_char, Vhelp_event_list, Vhelp_form) (Vinput_method_function, Vinput_method_previous_message) (Vkey_translation_map, Vlast_event_frame) (Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items) (Vminibuffer_message_timeout, Voverriding_local_map) (Voverriding_local_map_menu_flag, Vpost_command_hook) (Vpre_command_hook, Vprefix_help_command) (Vsaved_region_selection, Vselect_active_regions) (Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings) (Vthis_command, Vthis_command_keys_shift_translated) (Vthis_original_command, Vthrow_on_input, Vtimer_idle_list) (Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level) (Vtty_erase_char, Vunread_command_events) (Vunread_input_method_events, Vunread_post_input_method_events) (auto_save_interval, cannot_suspend, do_mouse_tracking) (double_click_fuzz, extra_keyboard_modifiers) (inhibit_local_menu_bar_menus, last_command_event) (last_input_event, last_nonmenu_event, menu_prompt_more_char) (menu_prompting, meta_prefix_char, num_input_keys) (num_nonmacro_input_events, polling_period, unread_command_char): Remove. * insdel.c (syms_of_insdel): Update. (Vcombine_after_change_calls, check_markers_debug_flag): Remove. * indent.c (syms_of_indent): Update. (indent_tabs_mode): Remove. * image.c (syms_of_image): Update. (Vimage_cache_eviction_delay, Vimage_types) (Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path) (cross_disabled_images): Remove. * fringe.c (syms_of_fringe): Update. (Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove. * frame.c (syms_of_frame): Update. (Vdefault_frame_alist, Vdefault_frame_scroll_bars) (Vdelete_frame_functions, Vframe_alpha_lower_limit) (Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight) (Vmouse_position_function, Vterminal_frame, Vtool_bar_mode) (Vx_resource_class, Vx_resource_name, focus_follows_mouse): Remove. * fontset.c (syms_of_fontset): Update. (Valternate_fontname_alist, Vfont_encoding_charset_alist) (Vfontset_alias_alist, Vignore_relative_composition) (Votf_script_alist, Vuse_default_ascent) (Vvertical_centering_font_regexp): Remove. * font.c (syms_of_font): Update. (Vfont_encoding_alist, Vfont_log, Vfont_slant_table) (Vfont_weight_table, Vfont_width_table): Remove. * fns.c (syms_of_fns): Update. (Vfeatures, use_dialog_box, use_file_dialog): Remove. * filelock.c (syms_of_filelock): Update. (Vtemporary_file_directory): Remove. * fileio.c (syms_of_fileio): Update. (Vafter_insert_file_functions, Vauto_save_include_big_deletions) (Vauto_save_list_file_name, Vauto_save_visited_file_name) (Vdefault_file_name_coding_system, Vfile_name_coding_system) (Vfile_name_handler_alist, Vinhibit_file_name_handlers) (Vinhibit_file_name_operation, Vset_auto_coding_function) (Vwrite_region_annotate_functions) (Vwrite_region_annotations_so_far) (Vwrite_region_post_annotation_function) (delete_by_moving_to_trash, write_region_inhibit_fsync): Remove. (Vw32_get_true_file_attributes): Remove declaration. * eval.c (syms_of_eval): Update. (Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal) (Vdebugger, Vinhibit_quit, Vmacro_declaration_function) (Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error) (debug_on_next_call, debug_on_quit, debugger_may_continue) (max_lisp_eval_depth, max_specpdl_size): Remove. * emacs.c (syms_of_emacs): Update. (Vafter_init_time, Vbefore_init_time, Vcommand_line_args) (Vdynamic_library_alist, Vemacs_copyright, Vemacs_version) (Vinstallation_directory, Vinvocation_directory) (Vinvocation_name, Vkill_emacs_hook, Vpath_separator) (Vprevious_system_messages_locale, Vprevious_system_time_locale) (Vsystem_configuration, Vsystem_configuration_options) (Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type) (inhibit_x_resources, noninteractive1): Remove. * editfns.c (syms_of_editfns): Update. (Vbuffer_access_fontified_property) (Vbuffer_access_fontify_functions, Vinhibit_field_text_motion) (Voperating_system_release, Vsystem_name, Vuser_full_name) (Vuser_login_name, Vuser_real_login_name): Remove. * dosfns.c (syms_of_dosfns): Update. (Vdos_display_scancodes, Vdos_version, Vdos_windows_version) (dos_codepage, dos_country_code, dos_decimal_point) (dos_hyper_key, dos_keyboard_layout, dos_keypad_mode) (dos_super_key, dos_timezone_offset): Remove. * doc.c (syms_of_doc): Update. (Vbuild_files, Vdoc_file_name): Remove. * dispnew.c (syms_of_display): Update. (Vglyph_table, Vinitial_window_system) (Vredisplay_preemption_period, Vstandard_display_table) (Vwindow_system_version, baud_rate, cursor_in_echo_area) (inverse_video, redisplay_dont_pause, visible_bell): Remove. * dired.c (syms_of_dired): Update. (Vcompletion_ignored_extensions): Remove. (Vw32_get_true_file_attributes): Remove declaration. * dbusbind.c (syms_of_dbusbind): Update. (Vdbus_debug, Vdbus_registered_buses) (Vdbus_registered_objects_table): Remove. * data.c (syms_of_data): Update. (Vmost_negative_fixnum, Vmost_positive_fixnum): Remove. * composite.c (syms_of_composite): Update. (Vauto_composition_function, Vauto_composition_mode) (Vcompose_chars_after_function, Vcomposition_function_table): Remove. * coding.c (syms_of_coding): Update. (Vcharset_revision_table, Vcoding_category_list) (Vcoding_system_alist, Vcoding_system_for_read) (Vcoding_system_for_write, Vcoding_system_list) (Vdefault_process_coding_system, Venable_character_translation) (Vfile_coding_system_alist, Vlast_code_conversion_error) (Vlast_coding_system_used, Vlatin_extra_code_table) (Vlocale_coding_system, Vnetwork_coding_system_alist) (Vprocess_coding_system_alist) (Vselect_safe_coding_system_function) (Vstandard_translation_table_for_decode) (Vstandard_translation_table_for_encode) (Vtranslation_table_for_input, coding_system_require_warning) (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided) (eol_mnemonic_unix, inherit_process_coding_system) (inhibit_eol_conversion, inhibit_iso_escape_detection) (inhibit_null_byte_detection): Remove. * cmds.c (syms_of_cmds): Update. (Vpost_self_insert_hook): Remove. * charset.c (syms_of_charset): Update. (Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language) (inhibit_load_charset_map): Remove. * character.c (syms_of_character): Update. (Vauto_fill_chars, Vchar_direction_table, Vchar_script_table) (Vchar_width_table, Vprintable_chars) (Vscript_representative_chars, Vtranslation_table_vector) (Vunicode_category_table): Remove. * ccl.c (syms_of_ccl): Update. (Vcode_conversion_map_vector, Vfont_ccl_encoder_alist) (Vtranslation_hash_table_vector): Remove. * category.c (syms_of_category): Update. (Vword_combining_categories, Vword_separating_categories): Remove. * callproc.c (syms_of_callproc): Update. (Vconfigure_info_directory, Vdata_directory, Vdoc_directory) (Vexec_directory, Vexec_path, Vexec_suffixes) (Vinitial_environment, Vprocess_environment) (Vshared_game_score_directory, Vshell_file_name): Remove. * callint.c (syms_of_callint): Update. (Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg) (Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove. * bytecode.c (syms_of_bytecode): Update. (Vbyte_code_meter, byte_metering_on): Remove. * buffer.c (syms_of_buffer): Update. (Vafter_change_functions, Vbefore_change_functions) (Vchange_major_mode_hook, Vfirst_change_hook) (Vinhibit_read_only, Vkill_buffer_query_functions) (Vtransient_mark_mode, inhibit_modification_hooks): Remove. * alloc.c (syms_of_alloc): Update. (Vgc_cons_percentage, Vgc_elapsed, Vmemory_full) (Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag) (cons_cells_consed, floats_consed, garbage_collection_messages) (gc_cons_threshold, gcs_done, intervals_consed) (misc_objects_consed, pure_bytes_used, string_chars_consed) (strings_consed, symbols_consed, vector_cells_consed): Remove. * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL) (DEFVAR_INT): Assume global is in `globals'. * alloc.c (globals): Define.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog479
-rw-r--r--src/alloc.c81
-rw-r--r--src/buffer.c36
-rw-r--r--src/buffer.h9
-rw-r--r--src/bytecode.c8
-rw-r--r--src/callint.c22
-rw-r--r--src/callproc.c28
-rw-r--r--src/category.c7
-rw-r--r--src/ccl.c15
-rw-r--r--src/ccl.h3
-rw-r--r--src/character.c42
-rw-r--r--src/character.h13
-rw-r--r--src/charset.c19
-rw-r--r--src/charset.h3
-rw-r--r--src/cmds.c4
-rw-r--r--src/coding.c119
-rw-r--r--src/coding.h39
-rw-r--r--src/commands.h43
-rw-r--r--src/composite.c15
-rw-r--r--src/composite.h3
-rw-r--r--src/data.c6
-rw-r--r--src/dbusbind.c15
-rw-r--r--src/dired.c5
-rw-r--r--src/dispextern.h38
-rw-r--r--src/dispnew.c75
-rw-r--r--src/disptab.h7
-rw-r--r--src/doc.c9
-rw-r--r--src/dosfns.c37
-rw-r--r--src/dosfns.h14
-rw-r--r--src/editfns.c31
-rw-r--r--src/emacs.c95
-rw-r--r--src/eval.c82
-rw-r--r--src/fileio.c81
-rw-r--r--src/filelock.c6
-rw-r--r--src/fns.c16
-rw-r--r--src/font.c16
-rw-r--r--src/font.h1
-rw-r--r--src/fontset.c22
-rw-r--r--src/fontset.h7
-rw-r--r--src/frame.c51
-rw-r--r--src/frame.h17
-rw-r--r--src/fringe.c17
-rw-r--r--src/globals.h2775
-rw-r--r--src/gtkutil.h5
-rw-r--r--src/image.c34
-rw-r--r--src/indent.c7
-rw-r--r--src/insdel.c14
-rw-r--r--src/intervals.h5
-rw-r--r--src/keyboard.c341
-rw-r--r--src/keyboard.h25
-rw-r--r--src/keymap.c57
-rw-r--r--src/keymap.h3
-rw-r--r--src/lisp.h105
-rw-r--r--src/lread.c123
-rw-r--r--src/macros.c12
-rw-r--r--src/macros.h8
-rw-r--r--src/marker.c6
-rw-r--r--src/menu.h2
-rw-r--r--src/minibuf.c112
-rw-r--r--src/msdos.c6
-rw-r--r--src/print.c76
-rw-r--r--src/process.c18
-rw-r--r--src/search.c11
-rw-r--r--src/syntax.c30
-rw-r--r--src/syntax.h2
-rw-r--r--src/sysdep.c5
-rw-r--r--src/term.c28
-rw-r--r--src/terminal.c9
-rw-r--r--src/termopts.h14
-rw-r--r--src/textprop.c13
-rw-r--r--src/undo.c25
-rw-r--r--src/w16select.c11
-rw-r--r--src/w32.c10
-rw-r--r--src/w32console.c9
-rw-r--r--src/w32fns.c183
-rw-r--r--src/w32font.c5
-rw-r--r--src/w32inevt.c17
-rw-r--r--src/w32menu.c3
-rw-r--r--src/w32proc.c59
-rw-r--r--src/w32select.c11
-rw-r--r--src/w32term.c49
-rw-r--r--src/w32term.h9
-rw-r--r--src/window.c79
-rw-r--r--src/window.h14
-rw-r--r--src/xdisp.c362
-rw-r--r--src/xfaces.c65
-rw-r--r--src/xfns.c93
-rw-r--r--src/xselect.c21
-rw-r--r--src/xsettings.c6
-rw-r--r--src/xsmfns.c13
-rw-r--r--src/xterm.c39
-rw-r--r--src/xterm.h3
92 files changed, 3871 insertions, 2697 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a589db682b1..02887713397 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,482 @@
12011-01-18 Tom Tromey <tromey@parfait>
2
3 * globals.h: New file.
4 * xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
5 * window.h (Vinitial_window_system, Vminibuf_scroll_window)
6 (Vwindow_system_version): Remove declaration.
7 * w32term.h (Vw32_enable_palette)
8 (Vx_pixel_size_width_font_regexp): Remove declaration.
9 * w32menu.c (Voverriding_local_map)
10 (Voverriding_local_map_menu_flag): Remove declaration.
11 * w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
12 (Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
13 (Vw32_enable_num_lock, Vw32_lwindow_modifier)
14 (Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
15 (Vw32_phantom_key_code, Vw32_recognize_altgr)
16 (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
17 (w32_use_full_screen_buffer): Remove declaration.
18 * w32.c (Vsystem_configuration, Vw32_downcase_file_names)
19 (Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
20 (w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
21 * termopts.h (Vtruncate_partial_width_windows, inverse_video)
22 (no_redraw_on_reenter, visible_bell): Remove declaration.
23 * sysdep.c (Vsystem_name): Remove declaration.
24 * syntax.h (parse_sexp_lookup_properties): Remove declaration.
25 * menu.h (Vmenu_updating_frame): Remove declaration.
26 * macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
27 Remove declaration.
28 * lisp.h (Vafter_init_time, Vafter_load_alist)
29 (Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
30 (Vcompletion_regexp_list, Vcurrent_load_list)
31 (Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
32 (Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
33 (Vexec_directory, Vexec_path, Vexec_suffixes)
34 (Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
35 (Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
36 (Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
37 (Vinstallation_directory, Vinvocation_directory)
38 (Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
39 (Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
40 (Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
41 (Vpurify_flag, Vquit_flag, Vsaved_region_selection)
42 (Vscalable_fonts_allowed, Vselect_active_regions)
43 (Vshell_file_name, Vstandard_input, Vstandard_output)
44 (Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
45 (Vtop_level, Vtty_erase_char, Vundo_outer_limit)
46 (Vuser_login_name, Vwindow_scroll_functions)
47 (Vwindow_system_version, Vx_no_window_manager)
48 (Vx_resource_class, Vx_resource_name, baud_rate)
49 (completion_ignore_case, debug_on_next_call, gc_cons_threshold)
50 (history_delete_duplicates, inhibit_x_resources)
51 (last_nonmenu_event, load_in_progress, max_specpdl_size)
52 (minibuffer_auto_raise, print_escape_newlines, scroll_margin)
53 (use_dialog_box, use_file_dialog): Remove declaration. Include
54 globals.h.
55 * keymap.h (Voverriding_local_map)
56 (Voverriding_local_map_menu_flag, meta_prefix_char): Remove
57 declaration.
58 * keyboard.h (Vdouble_click_time, Vfunction_key_map)
59 (Vinput_method_function, Vkey_translation_map)
60 (Vlucid_menu_bar_dirty_flag, Vthis_original_command)
61 (do_mouse_tracking, extra_keyboard_modifiers)
62 (num_nonmacro_input_events): Remove declaration.
63 * intervals.h (Vchar_property_alias_alist)
64 (Vdefault_text_properties, Vinhibit_point_motion_hooks)
65 (Vtext_property_default_nonsticky): Remove declaration.
66 * gtkutil.h (x_gtk_file_dialog_help_text)
67 (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
68 (x_gtk_whole_detached_tool_bar): Remove declaration.
69 * frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
70 (Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
71 (Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
72 (focus_follows_mouse): Remove declaration.
73 * fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
74 (Vignore_relative_composition, Votf_script_alist)
75 (Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
76 declaration.
77 * font.h (Vfont_log): Remove declaration.
78 * dosfns.h (Vdos_display_scancodes, Vdos_version)
79 (Vdos_windows_version, dos_codepage, dos_country_code)
80 (dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
81 (dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
82 declaration.
83 * disptab.h (Vglyph_table, Vstandard_display_table): Remove
84 declaration.
85 * dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
86 (Vmouse_autoselect_window, Voverflow_newline_into_fringe)
87 (Vshow_trailing_whitespace, Vtool_bar_button_margin)
88 (Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
89 (inverse_video, mode_line_in_non_selected_windows)
90 (tool_bar_button_relief, tool_bar_max_label_size)
91 (underline_minimum_offset)
92 (unibyte_display_via_language_environment, x_stretch_cursor_p):
93 Remove declaration.
94 * composite.h (Vauto_composition_function)
95 (Vcomposition_function_table): Remove declaration.
96 * commands.h (Vexecuting_kbd_macro)
97 (Vminibuffer_local_completion_map)
98 (Vminibuffer_local_filename_completion_map)
99 (Vminibuffer_local_filename_must_match_map)
100 (Vminibuffer_local_map, Vminibuffer_local_must_match_map)
101 (Vminibuffer_local_ns_map, Vthis_command)
102 (Vunread_command_events, cursor_in_echo_area)
103 (last_command_event, last_nonmenu_event, unread_command_char):
104 Remove declaration.
105 * coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
106 (Vdefault_file_name_coding_system)
107 (Vdefault_process_coding_system, Vfile_name_coding_system)
108 (Vlast_coding_system_used, Vlocale_coding_system)
109 (Vselect_safe_coding_system_function)
110 (Vtranslation_table_for_input, coding_system_require_warning)
111 (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
112 (eol_mnemonic_unix, inherit_process_coding_system): Remove
113 declaration.
114 * charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
115 declaration.
116 * character.h (Vauto_fill_chars, Vchar_direction_table)
117 (Vchar_script_table, Vchar_width_table, Vprintable_chars)
118 (Vscript_representative_chars, Vtranslation_table_vector)
119 (Vunicode_category_table): Remove declaration.
120 * ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
121 * buffer.h (Vafter_change_functions, Vbefore_change_functions)
122 (Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
123 (inhibit_modification_hooks): Remove declaration.
124 * xterm.c (syms_of_xterm): Update.
125 (Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
126 (Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
127 (x_mouse_click_focus_ignore_position)
128 (x_underline_at_descent_line)
129 (x_use_underline_position_properties): Remove.
130 * xsmfns.c (syms_of_xsmfns): Update.
131 (Vx_session_id, Vx_session_previous_id): Remove.
132 * xsettings.c (syms_of_xsettings): Update.
133 (Vxft_settings, use_system_font): Remove.
134 * xselect.c (syms_of_xselect): Update.
135 (Vselection_converter_alist, Vx_lost_selection_functions)
136 (Vx_sent_selection_functions, x_selection_timeout): Remove.
137 * xfns.c (syms_of_xfns): Update.
138 (Vgtk_version_string, Vmotif_version_string)
139 (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
140 (Vx_max_tooltip_size, Vx_mode_pointer_shape)
141 (Vx_no_window_manager, Vx_nontext_pointer_shape)
142 (Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
143 (Vx_sensitive_text_pointer_shape)
144 (Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
145 (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
146 (x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
147 Remove.
148 * xfaces.c (syms_of_xfaces): Update.
149 (Vface_default_stipple, Vface_font_rescale_alist)
150 (Vface_ignored_fonts, Vface_new_frame_defaults)
151 (Vface_remapping_alist, Vfont_list_limit)
152 (Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
153 * xdisp.c (syms_of_xdisp): Update.
154 (Vauto_resize_tool_bars, Vblink_cursor_alist)
155 (Vdisplay_pixels_per_inch, Vfontification_functions)
156 (Vframe_title_format, Vglobal_mode_string)
157 (Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
158 (Vicon_title_format, Vinhibit_redisplay)
159 (Vline_number_display_limit, Vline_prefix)
160 (Vmax_mini_window_height, Vmenu_bar_update_hook)
161 (Vmenu_updating_frame, Vmessage_log_max)
162 (Vmouse_autoselect_window, Vnobreak_char_display)
163 (Voverlay_arrow_position, Voverlay_arrow_string)
164 (Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
165 (Vresize_mini_windows, Vshow_trailing_whitespace)
166 (Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
167 (Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
168 (Vwindow_scroll_functions, Vwindow_size_change_functions)
169 (Vwindow_text_change_functions, Vwrap_prefix)
170 (auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
171 (debug_end_pos, display_hourglass_p, emacs_scroll_step)
172 (highlight_nonselected_windows, hscroll_margin)
173 (inhibit_eval_during_redisplay, inhibit_free_realized_faces)
174 (inhibit_menubar_update, inhibit_try_cursor_movement)
175 (inhibit_try_window_id, inhibit_try_window_reusing)
176 (line_number_display_limit_width)
177 (make_cursor_line_fully_visible_p, message_truncate_lines)
178 (mode_line_inverse_video, multiple_frames, overline_margin)
179 (scroll_conservatively, scroll_margin, tool_bar_button_relief)
180 (tool_bar_max_label_size, underline_minimum_offset)
181 (unibyte_display_via_language_environment, x_stretch_cursor_p):
182 Remove.
183 * window.c (syms_of_window): Update.
184 (Vminibuf_scroll_window, Vother_window_scroll_buffer)
185 (Vrecenter_redisplay, Vscroll_preserve_screen_position)
186 (Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
187 (Vwindow_point_insertion_type, auto_window_vscroll_p)
188 (mode_line_in_non_selected_windows, next_screen_context_lines)
189 (window_min_height, window_min_width): Remove.
190 (scroll_margin): Remove declaration.
191 * w32term.c (syms_of_w32term): Update.
192 (Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
193 (Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
194 (Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
195 (w32_use_visible_system_caret, x_underline_at_descent_line)
196 (x_use_underline_position_properties): Remove.
197 (Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
198 Remove declaration.
199 * w32select.c (syms_of_w32select): Update.
200 (Vnext_selection_coding_system, Vselection_coding_system): Remove.
201 * w32proc.c (syms_of_ntproc): Update.
202 (Vw32_downcase_file_names, Vw32_generate_fake_inodes)
203 (Vw32_get_true_file_attributes, Vw32_quote_process_args)
204 (Vw32_start_process_inherit_error_mode)
205 (Vw32_start_process_share_console)
206 (Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
207 (Vsystem_name): Remove declaration.
208 * w32font.c (syms_of_w32font): Update.
209 (Vw32_charset_info_alist): Remove.
210 * w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
211 (Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
212 (Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
213 (Vw32_enable_palette, Vw32_lwindow_modifier)
214 (Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
215 (Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
216 (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
217 (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
218 (Vx_max_tooltip_size, Vx_mode_pointer_shape)
219 (Vx_no_window_manager, Vx_nontext_pointer_shape)
220 (Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
221 (Vx_sensitive_text_pointer_shape)
222 (Vx_window_horizontal_drag_shape, w32_ansi_code_page)
223 (w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
224 (w32_mouse_move_interval)
225 (w32_pass_extra_mouse_buttons_to_system)
226 (w32_pass_multimedia_buttons_to_system, w32_quit_key)
227 (w32_strict_fontnames, w32_strict_painting): Remove.
228 (Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
229 (Vw32_recognize_altgr, Vwindow_system_version)
230 (w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
231 declaration.
232 * w32console.c (syms_of_ntterm): Update.
233 (w32_use_full_screen_buffer): Remove.
234 (Vtty_defined_color_alist): Remove declaration.
235 * w16select.c (syms_of_win16select): Update.
236 (Vnext_selection_coding_system, Vselection_coding_system): Remove.
237 * undo.c (syms_of_undo): Update.
238 (Vundo_outer_limit, Vundo_outer_limit_function)
239 (undo_inhibit_record_point, undo_limit, undo_strong_limit):
240 Remove.
241 * textprop.c (syms_of_textprop): Update.
242 (Vchar_property_alias_alist, Vdefault_text_properties)
243 (Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
244 Remove.
245 * terminal.c (syms_of_terminal): Update.
246 (Vdelete_terminal_functions, Vring_bell_function): Remove.
247 * term.c (syms_of_term): Update.
248 (Vresume_tty_functions, Vsuspend_tty_functions)
249 (no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
250 Remove.
251 * syntax.c (syms_of_syntax): Update.
252 (Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
253 (open_paren_in_column_0_is_defun_start)
254 (parse_sexp_ignore_comments, parse_sexp_lookup_properties)
255 (words_include_escapes): Remove.
256 * search.c (syms_of_search): Update.
257 (Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
258 * process.c (syms_of_process): Update.
259 (Vprocess_adaptive_read_buffering, Vprocess_connection_type)
260 (delete_exited_processes): Remove.
261 * print.c (syms_of_print): Update.
262 (Vfloat_output_format, Vprint_charset_text_property)
263 (Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
264 (Vprint_length, Vprint_level, Vprint_number_table)
265 (Vstandard_output, print_escape_multibyte)
266 (print_escape_newlines, print_escape_nonascii, print_quoted):
267 Remove.
268 * msdos.c (syms_of_msdos): Update.
269 (Vdos_unsupported_char_glyph): Remove.
270 (unibyte_display_via_language_environment): Remove declaration.
271 * minibuf.c (syms_of_minibuf): Update.
272 (Vcompletion_regexp_list, Vhistory_add_new_input)
273 (Vhistory_length, Vminibuffer_completing_file_name)
274 (Vminibuffer_completion_confirm)
275 (Vminibuffer_completion_predicate, Vminibuffer_completion_table)
276 (Vminibuffer_exit_hook, Vminibuffer_help_form)
277 (Vminibuffer_history_position, Vminibuffer_history_variable)
278 (Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
279 (Vread_buffer_function, Vread_expression_map)
280 (completion_ignore_case, enable_recursive_minibuffers)
281 (history_delete_duplicates, minibuffer_allow_text_properties)
282 (minibuffer_auto_raise, read_buffer_completion_ignore_case):
283 Remove.
284 * marker.c (syms_of_marker): Update.
285 (byte_debug_flag): Remove.
286 * macros.c (syms_of_macros): Update.
287 (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
288 * lread.c (syms_of_lread): Update.
289 (Vafter_load_alist, Vbyte_boolean_vars)
290 (Vbytecomp_version_regexp, Vcurrent_load_list)
291 (Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
292 (Vload_history, Vload_path, Vload_read_function)
293 (Vload_source_file_function, Vload_suffixes, Vobarray)
294 (Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
295 (Vread_symbol_positions_list, Vread_with_symbol_positions)
296 (Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
297 (force_load_messages, load_convert_to_unibyte)
298 (load_dangerous_libraries, load_force_doc_strings)
299 (load_in_progress): Remove.
300 * keymap.c (syms_of_keymap): Update.
301 (Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
302 (Vminibuffer_local_completion_map)
303 (Vminibuffer_local_filename_completion_map)
304 (Vminibuffer_local_filename_must_match_map)
305 (Vminibuffer_local_map, Vminibuffer_local_must_match_map)
306 (Vminibuffer_local_ns_map, Vminor_mode_map_alist)
307 (Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
308 Remove.
309 * keyboard.c (syms_of_keyboard): Update.
310 (Vauto_save_timeout, Vcommand_error_function)
311 (Vcommand_hook_internal, Vdeactivate_mark)
312 (Vdeferred_action_function, Vdeferred_action_list)
313 (Vdisable_point_adjustment, Vdouble_click_time)
314 (Vecho_keystrokes, Venable_disabled_menus_and_buttons)
315 (Vfunction_key_map, Vglobal_disable_point_adjustment)
316 (Vhelp_char, Vhelp_event_list, Vhelp_form)
317 (Vinput_method_function, Vinput_method_previous_message)
318 (Vkey_translation_map, Vlast_event_frame)
319 (Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
320 (Vminibuffer_message_timeout, Voverriding_local_map)
321 (Voverriding_local_map_menu_flag, Vpost_command_hook)
322 (Vpre_command_hook, Vprefix_help_command)
323 (Vsaved_region_selection, Vselect_active_regions)
324 (Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
325 (Vthis_command, Vthis_command_keys_shift_translated)
326 (Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
327 (Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
328 (Vtty_erase_char, Vunread_command_events)
329 (Vunread_input_method_events, Vunread_post_input_method_events)
330 (auto_save_interval, cannot_suspend, do_mouse_tracking)
331 (double_click_fuzz, extra_keyboard_modifiers)
332 (inhibit_local_menu_bar_menus, last_command_event)
333 (last_input_event, last_nonmenu_event, menu_prompt_more_char)
334 (menu_prompting, meta_prefix_char, num_input_keys)
335 (num_nonmacro_input_events, polling_period, unread_command_char):
336 Remove.
337 * insdel.c (syms_of_insdel): Update.
338 (Vcombine_after_change_calls, check_markers_debug_flag): Remove.
339 * indent.c (syms_of_indent): Update.
340 (indent_tabs_mode): Remove.
341 * image.c (syms_of_image): Update.
342 (Vimage_cache_eviction_delay, Vimage_types)
343 (Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
344 (cross_disabled_images): Remove.
345 * fringe.c (syms_of_fringe): Update.
346 (Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
347 * frame.c (syms_of_frame): Update.
348 (Vdefault_frame_alist, Vdefault_frame_scroll_bars)
349 (Vdelete_frame_functions, Vframe_alpha_lower_limit)
350 (Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
351 (Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
352 (Vx_resource_class, Vx_resource_name, focus_follows_mouse):
353 Remove.
354 * fontset.c (syms_of_fontset): Update.
355 (Valternate_fontname_alist, Vfont_encoding_charset_alist)
356 (Vfontset_alias_alist, Vignore_relative_composition)
357 (Votf_script_alist, Vuse_default_ascent)
358 (Vvertical_centering_font_regexp): Remove.
359 * font.c (syms_of_font): Update.
360 (Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
361 (Vfont_weight_table, Vfont_width_table): Remove.
362 * fns.c (syms_of_fns): Update.
363 (Vfeatures, use_dialog_box, use_file_dialog): Remove.
364 * filelock.c (syms_of_filelock): Update.
365 (Vtemporary_file_directory): Remove.
366 * fileio.c (syms_of_fileio): Update.
367 (Vafter_insert_file_functions, Vauto_save_include_big_deletions)
368 (Vauto_save_list_file_name, Vauto_save_visited_file_name)
369 (Vdefault_file_name_coding_system, Vfile_name_coding_system)
370 (Vfile_name_handler_alist, Vinhibit_file_name_handlers)
371 (Vinhibit_file_name_operation, Vset_auto_coding_function)
372 (Vwrite_region_annotate_functions)
373 (Vwrite_region_annotations_so_far)
374 (Vwrite_region_post_annotation_function)
375 (delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
376 (Vw32_get_true_file_attributes): Remove declaration.
377 * eval.c (syms_of_eval): Update.
378 (Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
379 (Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
380 (Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
381 (debug_on_next_call, debug_on_quit, debugger_may_continue)
382 (max_lisp_eval_depth, max_specpdl_size): Remove.
383 * emacs.c (syms_of_emacs): Update.
384 (Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
385 (Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
386 (Vinstallation_directory, Vinvocation_directory)
387 (Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
388 (Vprevious_system_messages_locale, Vprevious_system_time_locale)
389 (Vsystem_configuration, Vsystem_configuration_options)
390 (Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
391 (inhibit_x_resources, noninteractive1): Remove.
392 * editfns.c (syms_of_editfns): Update.
393 (Vbuffer_access_fontified_property)
394 (Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
395 (Voperating_system_release, Vsystem_name, Vuser_full_name)
396 (Vuser_login_name, Vuser_real_login_name): Remove.
397 * dosfns.c (syms_of_dosfns): Update.
398 (Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
399 (dos_codepage, dos_country_code, dos_decimal_point)
400 (dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
401 (dos_super_key, dos_timezone_offset): Remove.
402 * doc.c (syms_of_doc): Update.
403 (Vbuild_files, Vdoc_file_name): Remove.
404 * dispnew.c (syms_of_display): Update.
405 (Vglyph_table, Vinitial_window_system)
406 (Vredisplay_preemption_period, Vstandard_display_table)
407 (Vwindow_system_version, baud_rate, cursor_in_echo_area)
408 (inverse_video, redisplay_dont_pause, visible_bell): Remove.
409 * dired.c (syms_of_dired): Update.
410 (Vcompletion_ignored_extensions): Remove.
411 (Vw32_get_true_file_attributes): Remove declaration.
412 * dbusbind.c (syms_of_dbusbind): Update.
413 (Vdbus_debug, Vdbus_registered_buses)
414 (Vdbus_registered_objects_table): Remove.
415 * data.c (syms_of_data): Update.
416 (Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
417 * composite.c (syms_of_composite): Update.
418 (Vauto_composition_function, Vauto_composition_mode)
419 (Vcompose_chars_after_function, Vcomposition_function_table):
420 Remove.
421 * coding.c (syms_of_coding): Update.
422 (Vcharset_revision_table, Vcoding_category_list)
423 (Vcoding_system_alist, Vcoding_system_for_read)
424 (Vcoding_system_for_write, Vcoding_system_list)
425 (Vdefault_process_coding_system, Venable_character_translation)
426 (Vfile_coding_system_alist, Vlast_code_conversion_error)
427 (Vlast_coding_system_used, Vlatin_extra_code_table)
428 (Vlocale_coding_system, Vnetwork_coding_system_alist)
429 (Vprocess_coding_system_alist)
430 (Vselect_safe_coding_system_function)
431 (Vstandard_translation_table_for_decode)
432 (Vstandard_translation_table_for_encode)
433 (Vtranslation_table_for_input, coding_system_require_warning)
434 (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
435 (eol_mnemonic_unix, inherit_process_coding_system)
436 (inhibit_eol_conversion, inhibit_iso_escape_detection)
437 (inhibit_null_byte_detection): Remove.
438 * cmds.c (syms_of_cmds): Update.
439 (Vpost_self_insert_hook): Remove.
440 * charset.c (syms_of_charset): Update.
441 (Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
442 (inhibit_load_charset_map): Remove.
443 * character.c (syms_of_character): Update.
444 (Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
445 (Vchar_width_table, Vprintable_chars)
446 (Vscript_representative_chars, Vtranslation_table_vector)
447 (Vunicode_category_table): Remove.
448 * ccl.c (syms_of_ccl): Update.
449 (Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
450 (Vtranslation_hash_table_vector): Remove.
451 * category.c (syms_of_category): Update.
452 (Vword_combining_categories, Vword_separating_categories): Remove.
453 * callproc.c (syms_of_callproc): Update.
454 (Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
455 (Vexec_directory, Vexec_path, Vexec_suffixes)
456 (Vinitial_environment, Vprocess_environment)
457 (Vshared_game_score_directory, Vshell_file_name): Remove.
458 * callint.c (syms_of_callint): Update.
459 (Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
460 (Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
461 * bytecode.c (syms_of_bytecode): Update.
462 (Vbyte_code_meter, byte_metering_on): Remove.
463 * buffer.c (syms_of_buffer): Update.
464 (Vafter_change_functions, Vbefore_change_functions)
465 (Vchange_major_mode_hook, Vfirst_change_hook)
466 (Vinhibit_read_only, Vkill_buffer_query_functions)
467 (Vtransient_mark_mode, inhibit_modification_hooks): Remove.
468 * alloc.c (syms_of_alloc): Update.
469 (Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
470 (Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
471 (cons_cells_consed, floats_consed, garbage_collection_messages)
472 (gc_cons_threshold, gcs_done, intervals_consed)
473 (misc_objects_consed, pure_bytes_used, string_chars_consed)
474 (strings_consed, symbols_consed, vector_cells_consed): Remove.
475
476 * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
477 (DEFVAR_INT): Assume global is in `globals'.
478 * alloc.c (globals): Define.
479
12011-01-18 Tom Tromey <tromey@redhat.com> 4802011-01-18 Tom Tromey <tromey@redhat.com>
2 481
3 * image.c (Vimagemagick_render_type): Remove redundant 482 * image.c (Vimagemagick_render_type): Remove redundant
diff --git a/src/alloc.c b/src/alloc.c
index 59d8f887c05..796de9354a6 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -161,31 +161,17 @@ static __malloc_size_t bytes_used_when_full;
161#define GC_STRING_BYTES(S) (STRING_BYTES (S)) 161#define GC_STRING_BYTES(S) (STRING_BYTES (S))
162#define GC_STRING_CHARS(S) ((S)->size & ~ARRAY_MARK_FLAG) 162#define GC_STRING_CHARS(S) ((S)->size & ~ARRAY_MARK_FLAG)
163 163
164/* Global variables. */
165struct emacs_globals globals;
166
164/* Number of bytes of consing done since the last gc. */ 167/* Number of bytes of consing done since the last gc. */
165 168
166int consing_since_gc; 169int consing_since_gc;
167 170
168/* Count the amount of consing of various sorts of space. */
169
170EMACS_INT cons_cells_consed;
171EMACS_INT floats_consed;
172EMACS_INT vector_cells_consed;
173EMACS_INT symbols_consed;
174EMACS_INT string_chars_consed;
175EMACS_INT misc_objects_consed;
176EMACS_INT intervals_consed;
177EMACS_INT strings_consed;
178
179/* Minimum number of bytes of consing since GC before next GC. */
180
181EMACS_INT gc_cons_threshold;
182
183/* Similar minimum, computed from Vgc_cons_percentage. */ 171/* Similar minimum, computed from Vgc_cons_percentage. */
184 172
185EMACS_INT gc_relative_threshold; 173EMACS_INT gc_relative_threshold;
186 174
187static Lisp_Object Vgc_cons_percentage;
188
189/* Minimum number of bytes of consing since GC before next GC, 175/* Minimum number of bytes of consing since GC before next GC,
190 when memory is full. */ 176 when memory is full. */
191 177
@@ -201,10 +187,6 @@ int gc_in_progress;
201 187
202int abort_on_gc; 188int abort_on_gc;
203 189
204/* Nonzero means display messages at beginning and end of GC. */
205
206int garbage_collection_messages;
207
208/* Number of live and free conses etc. */ 190/* Number of live and free conses etc. */
209 191
210static int total_conses, total_markers, total_symbols, total_vector_size; 192static int total_conses, total_markers, total_symbols, total_vector_size;
@@ -225,14 +207,6 @@ static char *spare_memory[7];
225 207
226static int malloc_hysteresis; 208static int malloc_hysteresis;
227 209
228/* Non-nil means defun should do purecopy on the function definition. */
229
230Lisp_Object Vpurify_flag;
231
232/* Non-nil means we are handling a memory-full error. */
233
234Lisp_Object Vmemory_full;
235
236/* Initialize it to a nonzero value to force it into data space 210/* Initialize it to a nonzero value to force it into data space
237 (rather than bss space). That way unexec will remap it into text 211 (rather than bss space). That way unexec will remap it into text
238 space (pure), on some systems. We have not implemented the 212 space (pure), on some systems. We have not implemented the
@@ -260,10 +234,6 @@ static size_t pure_bytes_used_before_overflow;
260 && ((PNTR_COMPARISON_TYPE) (P) \ 234 && ((PNTR_COMPARISON_TYPE) (P) \
261 >= (PNTR_COMPARISON_TYPE) purebeg)) 235 >= (PNTR_COMPARISON_TYPE) purebeg))
262 236
263/* Total number of bytes allocated in pure storage. */
264
265EMACS_INT pure_bytes_used;
266
267/* Index in pure at which next pure Lisp object will be allocated.. */ 237/* Index in pure at which next pure Lisp object will be allocated.. */
268 238
269static EMACS_INT pure_bytes_used_lisp; 239static EMACS_INT pure_bytes_used_lisp;
@@ -277,10 +247,6 @@ static EMACS_INT pure_bytes_used_non_lisp;
277 247
278const char *pending_malloc_warning; 248const char *pending_malloc_warning;
279 249
280/* Pre-computed signal argument for use when memory is exhausted. */
281
282Lisp_Object Vmemory_signal_data;
283
284/* Maximum amount of C stack to save when a GC happens. */ 250/* Maximum amount of C stack to save when a GC happens. */
285 251
286#ifndef MAX_SAVE_STACK 252#ifndef MAX_SAVE_STACK
@@ -301,10 +267,7 @@ Lisp_Object Qgc_cons_threshold, Qchar_table_extra_slots;
301 267
302/* Hook run after GC has finished. */ 268/* Hook run after GC has finished. */
303 269
304Lisp_Object Vpost_gc_hook, Qpost_gc_hook; 270Lisp_Object Qpost_gc_hook;
305
306Lisp_Object Vgc_elapsed; /* accumulated elapsed time in GC */
307EMACS_INT gcs_done; /* accumulated GCs */
308 271
309static void mark_buffer (Lisp_Object); 272static void mark_buffer (Lisp_Object);
310static void mark_terminals (void); 273static void mark_terminals (void);
@@ -6210,7 +6173,7 @@ init_alloc (void)
6210void 6173void
6211syms_of_alloc (void) 6174syms_of_alloc (void)
6212{ 6175{
6213 DEFVAR_INT ("gc-cons-threshold", &gc_cons_threshold, 6176 DEFVAR_INT ("gc-cons-threshold", gc_cons_threshold,
6214 doc: /* *Number of bytes of consing between garbage collections. 6177 doc: /* *Number of bytes of consing between garbage collections.
6215Garbage collection can happen automatically once this many bytes have been 6178Garbage collection can happen automatically once this many bytes have been
6216allocated since the last garbage collection. All data types count. 6179allocated since the last garbage collection. All data types count.
@@ -6221,57 +6184,57 @@ By binding this temporarily to a large number, you can effectively
6221prevent garbage collection during a part of the program. 6184prevent garbage collection during a part of the program.
6222See also `gc-cons-percentage'. */); 6185See also `gc-cons-percentage'. */);
6223 6186
6224 DEFVAR_LISP ("gc-cons-percentage", &Vgc_cons_percentage, 6187 DEFVAR_LISP ("gc-cons-percentage", Vgc_cons_percentage,
6225 doc: /* *Portion of the heap used for allocation. 6188 doc: /* *Portion of the heap used for allocation.
6226Garbage collection can happen automatically once this portion of the heap 6189Garbage collection can happen automatically once this portion of the heap
6227has been allocated since the last garbage collection. 6190has been allocated since the last garbage collection.
6228If this portion is smaller than `gc-cons-threshold', this is ignored. */); 6191If this portion is smaller than `gc-cons-threshold', this is ignored. */);
6229 Vgc_cons_percentage = make_float (0.1); 6192 Vgc_cons_percentage = make_float (0.1);
6230 6193
6231 DEFVAR_INT ("pure-bytes-used", &pure_bytes_used, 6194 DEFVAR_INT ("pure-bytes-used", pure_bytes_used,
6232 doc: /* Number of bytes of sharable Lisp data allocated so far. */); 6195 doc: /* Number of bytes of sharable Lisp data allocated so far. */);
6233 6196
6234 DEFVAR_INT ("cons-cells-consed", &cons_cells_consed, 6197 DEFVAR_INT ("cons-cells-consed", cons_cells_consed,
6235 doc: /* Number of cons cells that have been consed so far. */); 6198 doc: /* Number of cons cells that have been consed so far. */);
6236 6199
6237 DEFVAR_INT ("floats-consed", &floats_consed, 6200 DEFVAR_INT ("floats-consed", floats_consed,
6238 doc: /* Number of floats that have been consed so far. */); 6201 doc: /* Number of floats that have been consed so far. */);
6239 6202
6240 DEFVAR_INT ("vector-cells-consed", &vector_cells_consed, 6203 DEFVAR_INT ("vector-cells-consed", vector_cells_consed,
6241 doc: /* Number of vector cells that have been consed so far. */); 6204 doc: /* Number of vector cells that have been consed so far. */);
6242 6205
6243 DEFVAR_INT ("symbols-consed", &symbols_consed, 6206 DEFVAR_INT ("symbols-consed", symbols_consed,
6244 doc: /* Number of symbols that have been consed so far. */); 6207 doc: /* Number of symbols that have been consed so far. */);
6245 6208
6246 DEFVAR_INT ("string-chars-consed", &string_chars_consed, 6209 DEFVAR_INT ("string-chars-consed", string_chars_consed,
6247 doc: /* Number of string characters that have been consed so far. */); 6210 doc: /* Number of string characters that have been consed so far. */);
6248 6211
6249 DEFVAR_INT ("misc-objects-consed", &misc_objects_consed, 6212 DEFVAR_INT ("misc-objects-consed", misc_objects_consed,
6250 doc: /* Number of miscellaneous objects that have been consed so far. */); 6213 doc: /* Number of miscellaneous objects that have been consed so far. */);
6251 6214
6252 DEFVAR_INT ("intervals-consed", &intervals_consed, 6215 DEFVAR_INT ("intervals-consed", intervals_consed,
6253 doc: /* Number of intervals that have been consed so far. */); 6216 doc: /* Number of intervals that have been consed so far. */);
6254 6217
6255 DEFVAR_INT ("strings-consed", &strings_consed, 6218 DEFVAR_INT ("strings-consed", strings_consed,
6256 doc: /* Number of strings that have been consed so far. */); 6219 doc: /* Number of strings that have been consed so far. */);
6257 6220
6258 DEFVAR_LISP ("purify-flag", &Vpurify_flag, 6221 DEFVAR_LISP ("purify-flag", Vpurify_flag,
6259 doc: /* Non-nil means loading Lisp code in order to dump an executable. 6222 doc: /* Non-nil means loading Lisp code in order to dump an executable.
6260This means that certain objects should be allocated in shared (pure) space. 6223This means that certain objects should be allocated in shared (pure) space.
6261It can also be set to a hash-table, in which case this table is used to 6224It can also be set to a hash-table, in which case this table is used to
6262do hash-consing of the objects allocated to pure space. */); 6225do hash-consing of the objects allocated to pure space. */);
6263 6226
6264 DEFVAR_BOOL ("garbage-collection-messages", &garbage_collection_messages, 6227 DEFVAR_BOOL ("garbage-collection-messages", garbage_collection_messages,
6265 doc: /* Non-nil means display messages at start and end of garbage collection. */); 6228 doc: /* Non-nil means display messages at start and end of garbage collection. */);
6266 garbage_collection_messages = 0; 6229 garbage_collection_messages = 0;
6267 6230
6268 DEFVAR_LISP ("post-gc-hook", &Vpost_gc_hook, 6231 DEFVAR_LISP ("post-gc-hook", Vpost_gc_hook,
6269 doc: /* Hook run after garbage collection has finished. */); 6232 doc: /* Hook run after garbage collection has finished. */);
6270 Vpost_gc_hook = Qnil; 6233 Vpost_gc_hook = Qnil;
6271 Qpost_gc_hook = intern_c_string ("post-gc-hook"); 6234 Qpost_gc_hook = intern_c_string ("post-gc-hook");
6272 staticpro (&Qpost_gc_hook); 6235 staticpro (&Qpost_gc_hook);
6273 6236
6274 DEFVAR_LISP ("memory-signal-data", &Vmemory_signal_data, 6237 DEFVAR_LISP ("memory-signal-data", Vmemory_signal_data,
6275 doc: /* Precomputed `signal' argument for memory-full error. */); 6238 doc: /* Precomputed `signal' argument for memory-full error. */);
6276 /* We build this in advance because if we wait until we need it, we might 6239 /* We build this in advance because if we wait until we need it, we might
6277 not be able to allocate the memory to hold it. */ 6240 not be able to allocate the memory to hold it. */
@@ -6279,7 +6242,7 @@ do hash-consing of the objects allocated to pure space. */);
6279 = pure_cons (Qerror, 6242 = pure_cons (Qerror,
6280 pure_cons (make_pure_c_string ("Memory exhausted--use M-x save-some-buffers then exit and restart Emacs"), Qnil)); 6243 pure_cons (make_pure_c_string ("Memory exhausted--use M-x save-some-buffers then exit and restart Emacs"), Qnil));
6281 6244
6282 DEFVAR_LISP ("memory-full", &Vmemory_full, 6245 DEFVAR_LISP ("memory-full", Vmemory_full,
6283 doc: /* Non-nil means Emacs cannot get much more Lisp memory. */); 6246 doc: /* Non-nil means Emacs cannot get much more Lisp memory. */);
6284 Vmemory_full = Qnil; 6247 Vmemory_full = Qnil;
6285 6248
@@ -6289,10 +6252,10 @@ do hash-consing of the objects allocated to pure space. */);
6289 staticpro (&Qchar_table_extra_slots); 6252 staticpro (&Qchar_table_extra_slots);
6290 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots"); 6253 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
6291 6254
6292 DEFVAR_LISP ("gc-elapsed", &Vgc_elapsed, 6255 DEFVAR_LISP ("gc-elapsed", Vgc_elapsed,
6293 doc: /* Accumulated time elapsed in garbage collections. 6256 doc: /* Accumulated time elapsed in garbage collections.
6294The time is in seconds as a floating point value. */); 6257The time is in seconds as a floating point value. */);
6295 DEFVAR_INT ("gcs-done", &gcs_done, 6258 DEFVAR_INT ("gcs-done", gcs_done,
6296 doc: /* Accumulated number of garbage collections done. */); 6259 doc: /* Accumulated number of garbage collections done. */);
6297 6260
6298 defsubr (&Scons); 6261 defsubr (&Scons);
diff --git a/src/buffer.c b/src/buffer.c
index 36e842e84b0..d6c7f6db068 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -113,36 +113,16 @@ static void reset_buffer_local_variables (struct buffer *b, int permanent_too);
113 to prevent lossage due to user rplac'ing this alist or its elements. */ 113 to prevent lossage due to user rplac'ing this alist or its elements. */
114Lisp_Object Vbuffer_alist; 114Lisp_Object Vbuffer_alist;
115 115
116/* Functions to call before and after each text change. */
117Lisp_Object Vbefore_change_functions;
118Lisp_Object Vafter_change_functions;
119
120Lisp_Object Vtransient_mark_mode;
121
122/* t means ignore all read-only text properties.
123 A list means ignore such a property if its value is a member of the list.
124 Any non-nil value means ignore buffer-read-only. */
125Lisp_Object Vinhibit_read_only;
126
127/* List of functions to call that can query about killing a buffer.
128 If any of these functions returns nil, we don't kill it. */
129Lisp_Object Vkill_buffer_query_functions;
130Lisp_Object Qkill_buffer_query_functions; 116Lisp_Object Qkill_buffer_query_functions;
131 117
132/* Hook run before changing a major mode. */ 118/* Hook run before changing a major mode. */
133Lisp_Object Vchange_major_mode_hook, Qchange_major_mode_hook; 119Lisp_Object Qchange_major_mode_hook;
134
135/* List of functions to call before changing an unmodified buffer. */
136Lisp_Object Vfirst_change_hook;
137 120
138Lisp_Object Qfirst_change_hook; 121Lisp_Object Qfirst_change_hook;
139Lisp_Object Qbefore_change_functions; 122Lisp_Object Qbefore_change_functions;
140Lisp_Object Qafter_change_functions; 123Lisp_Object Qafter_change_functions;
141Lisp_Object Qucs_set_table_for_input; 124Lisp_Object Qucs_set_table_for_input;
142 125
143/* If nonzero, all modification hooks are suppressed. */
144int inhibit_modification_hooks;
145
146Lisp_Object Qfundamental_mode, Qmode_class, Qpermanent_local; 126Lisp_Object Qfundamental_mode, Qmode_class, Qpermanent_local;
147Lisp_Object Qpermanent_local_hook; 127Lisp_Object Qpermanent_local_hook;
148 128
@@ -5943,7 +5923,7 @@ between 0.0 and 1.0, inclusive. */);
5943 "Don't ask."); 5923 "Don't ask.");
5944*/ 5924*/
5945 5925
5946 DEFVAR_LISP ("before-change-functions", &Vbefore_change_functions, 5926 DEFVAR_LISP ("before-change-functions", Vbefore_change_functions,
5947 doc: /* List of functions to call before each text change. 5927 doc: /* List of functions to call before each text change.
5948Two arguments are passed to each function: the positions of 5928Two arguments are passed to each function: the positions of
5949the beginning and end of the range of old text to be changed. 5929the beginning and end of the range of old text to be changed.
@@ -5959,7 +5939,7 @@ the variable's value remains nil. That prevents the error
5959from happening repeatedly and making Emacs nonfunctional. */); 5939from happening repeatedly and making Emacs nonfunctional. */);
5960 Vbefore_change_functions = Qnil; 5940 Vbefore_change_functions = Qnil;
5961 5941
5962 DEFVAR_LISP ("after-change-functions", &Vafter_change_functions, 5942 DEFVAR_LISP ("after-change-functions", Vafter_change_functions,
5963 doc: /* List of functions to call after each text change. 5943 doc: /* List of functions to call after each text change.
5964Three arguments are passed to each function: the positions of 5944Three arguments are passed to each function: the positions of
5965the beginning and end of the range of changed text, 5945the beginning and end of the range of changed text,
@@ -5977,7 +5957,7 @@ the variable's value remains nil. That prevents the error
5977from happening repeatedly and making Emacs nonfunctional. */); 5957from happening repeatedly and making Emacs nonfunctional. */);
5978 Vafter_change_functions = Qnil; 5958 Vafter_change_functions = Qnil;
5979 5959
5980 DEFVAR_LISP ("first-change-hook", &Vfirst_change_hook, 5960 DEFVAR_LISP ("first-change-hook", Vfirst_change_hook,
5981 doc: /* A list of functions to call before changing a buffer which is unmodified. 5961 doc: /* A list of functions to call before changing a buffer which is unmodified.
5982The functions are run using the `run-hooks' function. */); 5962The functions are run using the `run-hooks' function. */);
5983 Vfirst_change_hook = Qnil; 5963 Vfirst_change_hook = Qnil;
@@ -6092,7 +6072,7 @@ The function `set-window-buffer' updates this variable
6092to the value obtained by calling `current-time'. 6072to the value obtained by calling `current-time'.
6093If the buffer has never been shown in a window, the value is nil. */); 6073If the buffer has never been shown in a window, the value is nil. */);
6094 6074
6095 DEFVAR_LISP ("transient-mark-mode", &Vtransient_mark_mode, 6075 DEFVAR_LISP ("transient-mark-mode", Vtransient_mark_mode,
6096 doc: /* Non-nil if Transient Mark mode is enabled. 6076 doc: /* Non-nil if Transient Mark mode is enabled.
6097See the command `transient-mark-mode' for a description of this minor mode. 6077See the command `transient-mark-mode' for a description of this minor mode.
6098 6078
@@ -6113,7 +6093,7 @@ Lisp programs may give this variable certain special values:
6113 `transient-mark-mode' is set to OLDVAL. */); 6093 `transient-mark-mode' is set to OLDVAL. */);
6114 Vtransient_mark_mode = Qnil; 6094 Vtransient_mark_mode = Qnil;
6115 6095
6116 DEFVAR_LISP ("inhibit-read-only", &Vinhibit_read_only, 6096 DEFVAR_LISP ("inhibit-read-only", Vinhibit_read_only,
6117 doc: /* *Non-nil means disregard read-only status of buffers or characters. 6097 doc: /* *Non-nil means disregard read-only status of buffers or characters.
6118If the value is t, disregard `buffer-read-only' and all `read-only' 6098If the value is t, disregard `buffer-read-only' and all `read-only'
6119text properties. If the value is a list, disregard `buffer-read-only' 6099text properties. If the value is a list, disregard `buffer-read-only'
@@ -6156,13 +6136,13 @@ If t, displays a cursor related to the usual cursor type
6156You can also specify the cursor type as in the `cursor-type' variable. 6136You can also specify the cursor type as in the `cursor-type' variable.
6157Use Custom to set this variable and update the display." */); 6137Use Custom to set this variable and update the display." */);
6158 6138
6159 DEFVAR_LISP ("kill-buffer-query-functions", &Vkill_buffer_query_functions, 6139 DEFVAR_LISP ("kill-buffer-query-functions", Vkill_buffer_query_functions,
6160 doc: /* List of functions called with no args to query before killing a buffer. 6140 doc: /* List of functions called with no args to query before killing a buffer.
6161The buffer being killed will be current while the functions are running. 6141The buffer being killed will be current while the functions are running.
6162If any of them returns nil, the buffer is not killed. */); 6142If any of them returns nil, the buffer is not killed. */);
6163 Vkill_buffer_query_functions = Qnil; 6143 Vkill_buffer_query_functions = Qnil;
6164 6144
6165 DEFVAR_LISP ("change-major-mode-hook", &Vchange_major_mode_hook, 6145 DEFVAR_LISP ("change-major-mode-hook", Vchange_major_mode_hook,
6166 doc: /* Normal hook run before changing the major mode of a buffer. 6146 doc: /* Normal hook run before changing the major mode of a buffer.
6167The function `kill-all-local-variables' runs this before doing anything else. */); 6147The function `kill-all-local-variables' runs this before doing anything else. */);
6168 Vchange_major_mode_hook = Qnil; 6148 Vchange_major_mode_hook = Qnil;
diff --git a/src/buffer.h b/src/buffer.h
index 570d7f1a64e..945e838fc3a 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -901,19 +901,10 @@ EXFUN (Fnext_overlay_change, 1);
901EXFUN (Fdelete_overlay, 1); 901EXFUN (Fdelete_overlay, 1);
902EXFUN (Fbuffer_local_value, 2); 902EXFUN (Fbuffer_local_value, 2);
903 903
904/* Functions to call before and after each text change. */
905extern Lisp_Object Vbefore_change_functions;
906extern Lisp_Object Vafter_change_functions;
907extern Lisp_Object Vfirst_change_hook;
908extern Lisp_Object Qbefore_change_functions; 904extern Lisp_Object Qbefore_change_functions;
909extern Lisp_Object Qafter_change_functions; 905extern Lisp_Object Qafter_change_functions;
910extern Lisp_Object Qfirst_change_hook; 906extern Lisp_Object Qfirst_change_hook;
911 907
912/* If nonzero, all modification hooks are suppressed. */
913extern int inhibit_modification_hooks;
914
915extern Lisp_Object Vdeactivate_mark;
916extern Lisp_Object Vtransient_mark_mode;
917 908
918/* Overlays */ 909/* Overlays */
919 910
diff --git a/src/bytecode.c b/src/bytecode.c
index cd6f4a93143..664bac851cb 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -58,9 +58,7 @@ by Hallvard:
58 58
59#ifdef BYTE_CODE_METER 59#ifdef BYTE_CODE_METER
60 60
61Lisp_Object Vbyte_code_meter, Qbyte_code_meter; 61Lisp_Object Qbyte_code_meter;
62int byte_metering_on;
63
64#define METER_2(code1, code2) \ 62#define METER_2(code1, code2) \
65 XFASTINT (XVECTOR (XVECTOR (Vbyte_code_meter)->contents[(code1)]) \ 63 XFASTINT (XVECTOR (XVECTOR (Vbyte_code_meter)->contents[(code1)]) \
66 ->contents[(code2)]) 64 ->contents[(code2)])
@@ -1686,7 +1684,7 @@ syms_of_bytecode (void)
1686 1684
1687#ifdef BYTE_CODE_METER 1685#ifdef BYTE_CODE_METER
1688 1686
1689 DEFVAR_LISP ("byte-code-meter", &Vbyte_code_meter, 1687 DEFVAR_LISP ("byte-code-meter", Vbyte_code_meter,
1690 doc: /* A vector of vectors which holds a histogram of byte-code usage. 1688 doc: /* A vector of vectors which holds a histogram of byte-code usage.
1691\(aref (aref byte-code-meter 0) CODE) indicates how many times the byte 1689\(aref (aref byte-code-meter 0) CODE) indicates how many times the byte
1692opcode CODE has been executed. 1690opcode CODE has been executed.
@@ -1694,7 +1692,7 @@ opcode CODE has been executed.
1694indicates how many times the byte opcodes CODE1 and CODE2 have been 1692indicates how many times the byte opcodes CODE1 and CODE2 have been
1695executed in succession. */); 1693executed in succession. */);
1696 1694
1697 DEFVAR_BOOL ("byte-metering-on", &byte_metering_on, 1695 DEFVAR_BOOL ("byte-metering-on", byte_metering_on,
1698 doc: /* If non-nil, keep profiling information on byte code usage. 1696 doc: /* If non-nil, keep profiling information on byte code usage.
1699The variable byte-code-meter indicates how often each byte opcode is used. 1697The variable byte-code-meter indicates how often each byte opcode is used.
1700If a symbol has a property named `byte-code-meter' whose value is an 1698If a symbol has a property named `byte-code-meter' whose value is an
diff --git a/src/callint.c b/src/callint.c
index 338e8665e7d..4ac1acd4abc 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -29,20 +29,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
29#include "window.h" 29#include "window.h"
30#include "keymap.h" 30#include "keymap.h"
31 31
32Lisp_Object Vcurrent_prefix_arg, Qminus, Qplus; 32Lisp_Object Qminus, Qplus;
33Lisp_Object Qcall_interactively; 33Lisp_Object Qcall_interactively;
34Lisp_Object Vcommand_history; 34Lisp_Object Qcommand_debug_status;
35
36Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
37Lisp_Object Qenable_recursive_minibuffers; 35Lisp_Object Qenable_recursive_minibuffers;
38 36
39/* Non-nil means treat the mark as active
40 even if mark_active is 0. */
41Lisp_Object Vmark_even_if_inactive;
42
43Lisp_Object Qhandle_shift_selection; 37Lisp_Object Qhandle_shift_selection;
44 38
45Lisp_Object Vmouse_leave_buffer_hook, Qmouse_leave_buffer_hook; 39Lisp_Object Qmouse_leave_buffer_hook;
46 40
47Lisp_Object Qlist, Qlet, Qletx, Qsave_excursion, Qprogn, Qif, Qwhen; 41Lisp_Object Qlist, Qlet, Qletx, Qsave_excursion, Qprogn, Qif, Qwhen;
48static Lisp_Object preserved_fns; 42static Lisp_Object preserved_fns;
@@ -940,7 +934,7 @@ normally commands can get this prefix argument with (interactive "P"). */);
940 doc: /* The value of the prefix argument for the previous editing command. 934 doc: /* The value of the prefix argument for the previous editing command.
941See `prefix-arg' for the meaning of the value. */); 935See `prefix-arg' for the meaning of the value. */);
942 936
943 DEFVAR_LISP ("current-prefix-arg", &Vcurrent_prefix_arg, 937 DEFVAR_LISP ("current-prefix-arg", Vcurrent_prefix_arg,
944 doc: /* The value of the prefix argument for this editing command. 938 doc: /* The value of the prefix argument for this editing command.
945It may be a number, or the symbol `-' for just a minus sign as arg, 939It may be a number, or the symbol `-' for just a minus sign as arg,
946or a list whose car is a number for just one or more C-u's 940or a list whose car is a number for just one or more C-u's
@@ -948,7 +942,7 @@ or nil if no argument has been specified.
948This is what `(interactive \"P\")' returns. */); 942This is what `(interactive \"P\")' returns. */);
949 Vcurrent_prefix_arg = Qnil; 943 Vcurrent_prefix_arg = Qnil;
950 944
951 DEFVAR_LISP ("command-history", &Vcommand_history, 945 DEFVAR_LISP ("command-history", Vcommand_history,
952 doc: /* List of recent commands that read arguments from terminal. 946 doc: /* List of recent commands that read arguments from terminal.
953Each command is represented as a form to evaluate. 947Each command is represented as a form to evaluate.
954 948
@@ -956,13 +950,13 @@ Maximum length of the history list is determined by the value
956of `history-length', which see. */); 950of `history-length', which see. */);
957 Vcommand_history = Qnil; 951 Vcommand_history = Qnil;
958 952
959 DEFVAR_LISP ("command-debug-status", &Vcommand_debug_status, 953 DEFVAR_LISP ("command-debug-status", Vcommand_debug_status,
960 doc: /* Debugging status of current interactive command. 954 doc: /* Debugging status of current interactive command.
961Bound each time `call-interactively' is called; 955Bound each time `call-interactively' is called;
962may be set by the debugger as a reminder for itself. */); 956may be set by the debugger as a reminder for itself. */);
963 Vcommand_debug_status = Qnil; 957 Vcommand_debug_status = Qnil;
964 958
965 DEFVAR_LISP ("mark-even-if-inactive", &Vmark_even_if_inactive, 959 DEFVAR_LISP ("mark-even-if-inactive", Vmark_even_if_inactive,
966 doc: /* *Non-nil means you can use the mark even when inactive. 960 doc: /* *Non-nil means you can use the mark even when inactive.
967This option makes a difference in Transient Mark mode. 961This option makes a difference in Transient Mark mode.
968When the option is non-nil, deactivation of the mark 962When the option is non-nil, deactivation of the mark
@@ -970,7 +964,7 @@ turns off region highlighting, but commands that use the mark
970behave as if the mark were still active. */); 964behave as if the mark were still active. */);
971 Vmark_even_if_inactive = Qt; 965 Vmark_even_if_inactive = Qt;
972 966
973 DEFVAR_LISP ("mouse-leave-buffer-hook", &Vmouse_leave_buffer_hook, 967 DEFVAR_LISP ("mouse-leave-buffer-hook", Vmouse_leave_buffer_hook,
974 doc: /* Hook to run when about to switch windows with a mouse command. 968 doc: /* Hook to run when about to switch windows with a mouse command.
975Its purpose is to give temporary modes such as Isearch mode 969Its purpose is to give temporary modes such as Isearch mode
976a way to turn themselves off when a mouse command switches windows. */); 970a way to turn themselves off when a mouse command switches windows. */);
diff --git a/src/callproc.c b/src/callproc.c
index 2648462e18b..4c17cecdced 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -72,17 +72,9 @@ extern char **environ;
72#endif 72#endif
73#endif 73#endif
74 74
75Lisp_Object Vexec_path, Vexec_directory, Vexec_suffixes;
76Lisp_Object Vdata_directory, Vdoc_directory;
77Lisp_Object Vconfigure_info_directory, Vshared_game_score_directory;
78
79/* Pattern used by call-process-region to make temp files. */ 75/* Pattern used by call-process-region to make temp files. */
80static Lisp_Object Vtemp_file_name_pattern; 76static Lisp_Object Vtemp_file_name_pattern;
81 77
82Lisp_Object Vshell_file_name;
83
84Lisp_Object Vprocess_environment, Vinitial_environment;
85
86#ifdef DOS_NT 78#ifdef DOS_NT
87Lisp_Object Qbuffer_file_type; 79Lisp_Object Qbuffer_file_type;
88#endif /* DOS_NT */ 80#endif /* DOS_NT */
@@ -1526,41 +1518,41 @@ syms_of_callproc (void)
1526#endif 1518#endif
1527 staticpro (&Vtemp_file_name_pattern); 1519 staticpro (&Vtemp_file_name_pattern);
1528 1520
1529 DEFVAR_LISP ("shell-file-name", &Vshell_file_name, 1521 DEFVAR_LISP ("shell-file-name", Vshell_file_name,
1530 doc: /* *File name to load inferior shells from. 1522 doc: /* *File name to load inferior shells from.
1531Initialized from the SHELL environment variable, or to a system-dependent 1523Initialized from the SHELL environment variable, or to a system-dependent
1532default if SHELL is not set. */); 1524default if SHELL is not set. */);
1533 1525
1534 DEFVAR_LISP ("exec-path", &Vexec_path, 1526 DEFVAR_LISP ("exec-path", Vexec_path,
1535 doc: /* *List of directories to search programs to run in subprocesses. 1527 doc: /* *List of directories to search programs to run in subprocesses.
1536Each element is a string (directory name) or nil (try default directory). */); 1528Each element is a string (directory name) or nil (try default directory). */);
1537 1529
1538 DEFVAR_LISP ("exec-suffixes", &Vexec_suffixes, 1530 DEFVAR_LISP ("exec-suffixes", Vexec_suffixes,
1539 doc: /* *List of suffixes to try to find executable file names. 1531 doc: /* *List of suffixes to try to find executable file names.
1540Each element is a string. */); 1532Each element is a string. */);
1541 Vexec_suffixes = Qnil; 1533 Vexec_suffixes = Qnil;
1542 1534
1543 DEFVAR_LISP ("exec-directory", &Vexec_directory, 1535 DEFVAR_LISP ("exec-directory", Vexec_directory,
1544 doc: /* Directory for executables for Emacs to invoke. 1536 doc: /* Directory for executables for Emacs to invoke.
1545More generally, this includes any architecture-dependent files 1537More generally, this includes any architecture-dependent files
1546that are built and installed from the Emacs distribution. */); 1538that are built and installed from the Emacs distribution. */);
1547 1539
1548 DEFVAR_LISP ("data-directory", &Vdata_directory, 1540 DEFVAR_LISP ("data-directory", Vdata_directory,
1549 doc: /* Directory of machine-independent files that come with GNU Emacs. 1541 doc: /* Directory of machine-independent files that come with GNU Emacs.
1550These are files intended for Emacs to use while it runs. */); 1542These are files intended for Emacs to use while it runs. */);
1551 1543
1552 DEFVAR_LISP ("doc-directory", &Vdoc_directory, 1544 DEFVAR_LISP ("doc-directory", Vdoc_directory,
1553 doc: /* Directory containing the DOC file that comes with GNU Emacs. 1545 doc: /* Directory containing the DOC file that comes with GNU Emacs.
1554This is usually the same as `data-directory'. */); 1546This is usually the same as `data-directory'. */);
1555 1547
1556 DEFVAR_LISP ("configure-info-directory", &Vconfigure_info_directory, 1548 DEFVAR_LISP ("configure-info-directory", Vconfigure_info_directory,
1557 doc: /* For internal use by the build procedure only. 1549 doc: /* For internal use by the build procedure only.
1558This is the name of the directory in which the build procedure installed 1550This is the name of the directory in which the build procedure installed
1559Emacs's info files; the default value for `Info-default-directory-list' 1551Emacs's info files; the default value for `Info-default-directory-list'
1560includes this. */); 1552includes this. */);
1561 Vconfigure_info_directory = build_string (PATH_INFO); 1553 Vconfigure_info_directory = build_string (PATH_INFO);
1562 1554
1563 DEFVAR_LISP ("shared-game-score-directory", &Vshared_game_score_directory, 1555 DEFVAR_LISP ("shared-game-score-directory", Vshared_game_score_directory,
1564 doc: /* Directory of score files for games which come with GNU Emacs. 1556 doc: /* Directory of score files for games which come with GNU Emacs.
1565If this variable is nil, then Emacs is unable to use a shared directory. */); 1557If this variable is nil, then Emacs is unable to use a shared directory. */);
1566#ifdef DOS_NT 1558#ifdef DOS_NT
@@ -1569,13 +1561,13 @@ If this variable is nil, then Emacs is unable to use a shared directory. */);
1569 Vshared_game_score_directory = build_string (PATH_GAME); 1561 Vshared_game_score_directory = build_string (PATH_GAME);
1570#endif 1562#endif
1571 1563
1572 DEFVAR_LISP ("initial-environment", &Vinitial_environment, 1564 DEFVAR_LISP ("initial-environment", Vinitial_environment,
1573 doc: /* List of environment variables inherited from the parent process. 1565 doc: /* List of environment variables inherited from the parent process.
1574Each element should be a string of the form ENVVARNAME=VALUE. 1566Each element should be a string of the form ENVVARNAME=VALUE.
1575The elements must normally be decoded (using `locale-coding-system') for use. */); 1567The elements must normally be decoded (using `locale-coding-system') for use. */);
1576 Vinitial_environment = Qnil; 1568 Vinitial_environment = Qnil;
1577 1569
1578 DEFVAR_LISP ("process-environment", &Vprocess_environment, 1570 DEFVAR_LISP ("process-environment", Vprocess_environment,
1579 doc: /* List of overridden environment variables for subprocesses to inherit. 1571 doc: /* List of overridden environment variables for subprocesses to inherit.
1580Each element should be a string of the form ENVVARNAME=VALUE. 1572Each element should be a string of the form ENVVARNAME=VALUE.
1581 1573
diff --git a/src/category.c b/src/category.c
index b8de8eb216b..b412b4652e4 100644
--- a/src/category.c
+++ b/src/category.c
@@ -50,9 +50,6 @@ static int category_table_version;
50 50
51Lisp_Object Qcategory_table, Qcategoryp, Qcategorysetp, Qcategory_table_p; 51Lisp_Object Qcategory_table, Qcategoryp, Qcategorysetp, Qcategory_table_p;
52 52
53/* Variables to determine word boundary. */
54Lisp_Object Vword_combining_categories, Vword_separating_categories;
55
56/* Temporary internal variable used in macro CHAR_HAS_CATEGORY. */ 53/* Temporary internal variable used in macro CHAR_HAS_CATEGORY. */
57Lisp_Object _temp_category_set; 54Lisp_Object _temp_category_set;
58 55
@@ -481,7 +478,7 @@ syms_of_category (void)
481 Qcategory_table_p = intern_c_string ("category-table-p"); 478 Qcategory_table_p = intern_c_string ("category-table-p");
482 staticpro (&Qcategory_table_p); 479 staticpro (&Qcategory_table_p);
483 480
484 DEFVAR_LISP ("word-combining-categories", &Vword_combining_categories, 481 DEFVAR_LISP ("word-combining-categories", Vword_combining_categories,
485 doc: /* List of pair (cons) of categories to determine word boundary. 482 doc: /* List of pair (cons) of categories to determine word boundary.
486 483
487Emacs treats a sequence of word constituent characters as a single 484Emacs treats a sequence of word constituent characters as a single
@@ -519,7 +516,7 @@ the element `(?H . ?K) should be in this list. */);
519 516
520 Vword_combining_categories = Qnil; 517 Vword_combining_categories = Qnil;
521 518
522 DEFVAR_LISP ("word-separating-categories", &Vword_separating_categories, 519 DEFVAR_LISP ("word-separating-categories", Vword_separating_categories,
523 doc: /* List of pair (cons) of categories to determine word boundary. 520 doc: /* List of pair (cons) of categories to determine word boundary.
524See the documentation of the variable `word-combining-categories'. */); 521See the documentation of the variable `word-combining-categories'. */);
525 522
diff --git a/src/ccl.c b/src/ccl.c
index cb097f6ee98..2e8b9b5618e 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -37,12 +37,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
37 37
38Lisp_Object Qccl, Qcclp; 38Lisp_Object Qccl, Qcclp;
39 39
40/* This contains all code conversion map available to CCL. */
41Lisp_Object Vcode_conversion_map_vector;
42
43/* Alist of fontname patterns vs corresponding CCL program. */
44Lisp_Object Vfont_ccl_encoder_alist;
45
46/* This symbol is a property which associates with ccl program vector. 40/* This symbol is a property which associates with ccl program vector.
47 Ex: (get 'ccl-big5-encoder 'ccl-program) returns ccl program vector. */ 41 Ex: (get 'ccl-big5-encoder 'ccl-program) returns ccl program vector. */
48Lisp_Object Qccl_program; 42Lisp_Object Qccl_program;
@@ -65,9 +59,6 @@ Lisp_Object Qccl_program_idx;
65 was once used. */ 59 was once used. */
66Lisp_Object Vccl_program_table; 60Lisp_Object Vccl_program_table;
67 61
68/* Vector of registered hash tables for translation. */
69Lisp_Object Vtranslation_hash_table_vector;
70
71/* Return a hash table of id number ID. */ 62/* Return a hash table of id number ID. */
72#define GET_HASH_TABLE(id) \ 63#define GET_HASH_TABLE(id) \
73 (XHASH_TABLE (XCDR(XVECTOR(Vtranslation_hash_table_vector)->contents[(id)]))) 64 (XHASH_TABLE (XCDR(XVECTOR(Vtranslation_hash_table_vector)->contents[(id)])))
@@ -2321,11 +2312,11 @@ syms_of_ccl (void)
2321 Qcode_conversion_map_id = intern_c_string ("code-conversion-map-id"); 2312 Qcode_conversion_map_id = intern_c_string ("code-conversion-map-id");
2322 staticpro (&Qcode_conversion_map_id); 2313 staticpro (&Qcode_conversion_map_id);
2323 2314
2324 DEFVAR_LISP ("code-conversion-map-vector", &Vcode_conversion_map_vector, 2315 DEFVAR_LISP ("code-conversion-map-vector", Vcode_conversion_map_vector,
2325 doc: /* Vector of code conversion maps. */); 2316 doc: /* Vector of code conversion maps. */);
2326 Vcode_conversion_map_vector = Fmake_vector (make_number (16), Qnil); 2317 Vcode_conversion_map_vector = Fmake_vector (make_number (16), Qnil);
2327 2318
2328 DEFVAR_LISP ("font-ccl-encoder-alist", &Vfont_ccl_encoder_alist, 2319 DEFVAR_LISP ("font-ccl-encoder-alist", Vfont_ccl_encoder_alist,
2329 doc: /* Alist of fontname patterns vs corresponding CCL program. 2320 doc: /* Alist of fontname patterns vs corresponding CCL program.
2330Each element looks like (REGEXP . CCL-CODE), 2321Each element looks like (REGEXP . CCL-CODE),
2331 where CCL-CODE is a compiled CCL program. 2322 where CCL-CODE is a compiled CCL program.
@@ -2338,7 +2329,7 @@ The code point in the font is set in CCL registers R1 and R2
2338 If the font is single-byte font, the register R2 is not used. */); 2329 If the font is single-byte font, the register R2 is not used. */);
2339 Vfont_ccl_encoder_alist = Qnil; 2330 Vfont_ccl_encoder_alist = Qnil;
2340 2331
2341 DEFVAR_LISP ("translation-hash-table-vector", &Vtranslation_hash_table_vector, 2332 DEFVAR_LISP ("translation-hash-table-vector", Vtranslation_hash_table_vector,
2342 doc: /* Vector containing all translation hash tables ever defined. 2333 doc: /* Vector containing all translation hash tables ever defined.
2343Comprises pairs (SYMBOL . TABLE) where SYMBOL and TABLE were set up by calls 2334Comprises pairs (SYMBOL . TABLE) where SYMBOL and TABLE were set up by calls
2344to `define-translation-hash-table'. The vector is indexed by the table id 2335to `define-translation-hash-table'. The vector is indexed by the table id
diff --git a/src/ccl.h b/src/ccl.h
index 8f2608fd5aa..8c1f5e5cbd7 100644
--- a/src/ccl.h
+++ b/src/ccl.h
@@ -92,9 +92,6 @@ struct ccl_spec {
92 92
93#define CODING_SPEC_CCL_PROGRAM(coding) ((coding)->spec.ccl.ccl) 93#define CODING_SPEC_CCL_PROGRAM(coding) ((coding)->spec.ccl.ccl)
94 94
95/* Alist of fontname patterns vs corresponding CCL program. */
96extern Lisp_Object Vfont_ccl_encoder_alist;
97
98/* Setup fields of the structure pointed by CCL appropriately for the 95/* Setup fields of the structure pointed by CCL appropriately for the
99 execution of ccl program CCL_PROG (symbol or vector). */ 96 execution of ccl program CCL_PROG (symbol or vector). */
100extern int setup_ccl_program (struct ccl_program *, Lisp_Object); 97extern int setup_ccl_program (struct ccl_program *, Lisp_Object);
diff --git a/src/character.c b/src/character.c
index c9088a3a258..43eb9c7613f 100644
--- a/src/character.c
+++ b/src/character.c
@@ -50,43 +50,17 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
50 50
51Lisp_Object Qcharacterp; 51Lisp_Object Qcharacterp;
52 52
53/* Vector of translation table ever defined.
54 ID of a translation table is used to index this vector. */
55Lisp_Object Vtranslation_table_vector;
56
57/* A char-table for characters which may invoke auto-filling. */
58Lisp_Object Vauto_fill_chars;
59
60Lisp_Object Qauto_fill_chars; 53Lisp_Object Qauto_fill_chars;
61 54
62/* Char-table of information about which character to unify to which 55/* Char-table of information about which character to unify to which
63 Unicode character. Mainly used by the macro MAYBE_UNIFY_CHAR. */ 56 Unicode character. Mainly used by the macro MAYBE_UNIFY_CHAR. */
64Lisp_Object Vchar_unify_table; 57Lisp_Object Vchar_unify_table;
65 58
66/* A char-table. An element is non-nil iff the corresponding
67 character has a printable glyph. */
68Lisp_Object Vprintable_chars;
69
70/* A char-table. An elemnent is a column-width of the corresponding
71 character. */
72Lisp_Object Vchar_width_table;
73
74/* A char-table. An element is a symbol indicating the direction
75 property of corresponding character. */
76Lisp_Object Vchar_direction_table;
77
78/* Variable used locally in the macro FETCH_MULTIBYTE_CHAR. */ 59/* Variable used locally in the macro FETCH_MULTIBYTE_CHAR. */
79unsigned char *_fetch_multibyte_char_p; 60unsigned char *_fetch_multibyte_char_p;
80 61
81/* Char table of scripts. */
82Lisp_Object Vchar_script_table;
83
84/* Alist of scripts vs representative characters. */
85Lisp_Object Vscript_representative_chars;
86
87static Lisp_Object Qchar_script_table; 62static Lisp_Object Qchar_script_table;
88 63
89Lisp_Object Vunicode_category_table;
90 64
91 65
92/* If character code C has modifier masks, reflect them to the 66/* If character code C has modifier masks, reflect them to the
@@ -1071,14 +1045,14 @@ syms_of_character (void)
1071 defsubr (&Schar_resolve_modifiers); 1045 defsubr (&Schar_resolve_modifiers);
1072 defsubr (&Sget_byte); 1046 defsubr (&Sget_byte);
1073 1047
1074 DEFVAR_LISP ("translation-table-vector", &Vtranslation_table_vector, 1048 DEFVAR_LISP ("translation-table-vector", Vtranslation_table_vector,
1075 doc: /* 1049 doc: /*
1076Vector recording all translation tables ever defined. 1050Vector recording all translation tables ever defined.
1077Each element is a pair (SYMBOL . TABLE) relating the table to the 1051Each element is a pair (SYMBOL . TABLE) relating the table to the
1078symbol naming it. The ID of a translation table is an index into this vector. */); 1052symbol naming it. The ID of a translation table is an index into this vector. */);
1079 Vtranslation_table_vector = Fmake_vector (make_number (16), Qnil); 1053 Vtranslation_table_vector = Fmake_vector (make_number (16), Qnil);
1080 1054
1081 DEFVAR_LISP ("auto-fill-chars", &Vauto_fill_chars, 1055 DEFVAR_LISP ("auto-fill-chars", Vauto_fill_chars,
1082 doc: /* 1056 doc: /*
1083A char-table for characters which invoke auto-filling. 1057A char-table for characters which invoke auto-filling.
1084Such characters have value t in this table. */); 1058Such characters have value t in this table. */);
@@ -1086,7 +1060,7 @@ Such characters have value t in this table. */);
1086 CHAR_TABLE_SET (Vauto_fill_chars, ' ', Qt); 1060 CHAR_TABLE_SET (Vauto_fill_chars, ' ', Qt);
1087 CHAR_TABLE_SET (Vauto_fill_chars, '\n', Qt); 1061 CHAR_TABLE_SET (Vauto_fill_chars, '\n', Qt);
1088 1062
1089 DEFVAR_LISP ("char-width-table", &Vchar_width_table, 1063 DEFVAR_LISP ("char-width-table", Vchar_width_table,
1090 doc: /* 1064 doc: /*
1091A char-table for width (columns) of each character. */); 1065A char-table for width (columns) of each character. */);
1092 Vchar_width_table = Fmake_char_table (Qnil, make_number (1)); 1066 Vchar_width_table = Fmake_char_table (Qnil, make_number (1));
@@ -1094,11 +1068,11 @@ A char-table for width (columns) of each character. */);
1094 char_table_set_range (Vchar_width_table, MAX_5_BYTE_CHAR + 1, MAX_CHAR, 1068 char_table_set_range (Vchar_width_table, MAX_5_BYTE_CHAR + 1, MAX_CHAR,
1095 make_number (4)); 1069 make_number (4));
1096 1070
1097 DEFVAR_LISP ("char-direction-table", &Vchar_direction_table, 1071 DEFVAR_LISP ("char-direction-table", Vchar_direction_table,
1098 doc: /* A char-table for direction of each character. */); 1072 doc: /* A char-table for direction of each character. */);
1099 Vchar_direction_table = Fmake_char_table (Qnil, make_number (1)); 1073 Vchar_direction_table = Fmake_char_table (Qnil, make_number (1));
1100 1074
1101 DEFVAR_LISP ("printable-chars", &Vprintable_chars, 1075 DEFVAR_LISP ("printable-chars", Vprintable_chars,
1102 doc: /* A char-table for each printable character. */); 1076 doc: /* A char-table for each printable character. */);
1103 Vprintable_chars = Fmake_char_table (Qnil, Qnil); 1077 Vprintable_chars = Fmake_char_table (Qnil, Qnil);
1104 Fset_char_table_range (Vprintable_chars, 1078 Fset_char_table_range (Vprintable_chars,
@@ -1107,7 +1081,7 @@ A char-table for width (columns) of each character. */);
1107 Fcons (make_number (160), 1081 Fcons (make_number (160),
1108 make_number (MAX_5_BYTE_CHAR)), Qt); 1082 make_number (MAX_5_BYTE_CHAR)), Qt);
1109 1083
1110 DEFVAR_LISP ("char-script-table", &Vchar_script_table, 1084 DEFVAR_LISP ("char-script-table", Vchar_script_table,
1111 doc: /* Char table of script symbols. 1085 doc: /* Char table of script symbols.
1112It has one extra slot whose value is a list of script symbols. */); 1086It has one extra slot whose value is a list of script symbols. */);
1113 1087
@@ -1119,7 +1093,7 @@ It has one extra slot whose value is a list of script symbols. */);
1119 Fput (Qchar_script_table, Qchar_table_extra_slots, make_number (1)); 1093 Fput (Qchar_script_table, Qchar_table_extra_slots, make_number (1));
1120 Vchar_script_table = Fmake_char_table (Qchar_script_table, Qnil); 1094 Vchar_script_table = Fmake_char_table (Qchar_script_table, Qnil);
1121 1095
1122 DEFVAR_LISP ("script-representative-chars", &Vscript_representative_chars, 1096 DEFVAR_LISP ("script-representative-chars", Vscript_representative_chars,
1123 doc: /* Alist of scripts vs the representative characters. 1097 doc: /* Alist of scripts vs the representative characters.
1124Each element is a cons (SCRIPT . CHARS). 1098Each element is a cons (SCRIPT . CHARS).
1125SCRIPT is a symbol representing a script or a subgroup of a script. 1099SCRIPT is a symbol representing a script or a subgroup of a script.
@@ -1129,7 +1103,7 @@ If it is a vector, one of the characters in the vector is necessary.
1129This variable is used to find a font for a specific script. */); 1103This variable is used to find a font for a specific script. */);
1130 Vscript_representative_chars = Qnil; 1104 Vscript_representative_chars = Qnil;
1131 1105
1132 DEFVAR_LISP ("unicode-category-table", &Vunicode_category_table, 1106 DEFVAR_LISP ("unicode-category-table", Vunicode_category_table,
1133 doc: /* Char table of Unicode's "General Category". 1107 doc: /* Char table of Unicode's "General Category".
1134All Unicode characters have one of the following values (symbol): 1108All Unicode characters have one of the following values (symbol):
1135 Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po, 1109 Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po,
diff --git a/src/character.h b/src/character.h
index 4edeb7471fb..259aebbb8a8 100644
--- a/src/character.h
+++ b/src/character.h
@@ -618,27 +618,14 @@ extern EMACS_INT c_string_width (const unsigned char *, EMACS_INT, int,
618extern EMACS_INT lisp_string_width (Lisp_Object, int, 618extern EMACS_INT lisp_string_width (Lisp_Object, int,
619 EMACS_INT *, EMACS_INT *); 619 EMACS_INT *, EMACS_INT *);
620 620
621extern Lisp_Object Vprintable_chars;
622
623extern Lisp_Object Qcharacterp, Qauto_fill_chars; 621extern Lisp_Object Qcharacterp, Qauto_fill_chars;
624extern Lisp_Object Vtranslation_table_vector;
625extern Lisp_Object Vchar_width_table;
626extern Lisp_Object Vchar_direction_table;
627extern Lisp_Object Vchar_unify_table; 622extern Lisp_Object Vchar_unify_table;
628extern Lisp_Object Vunicode_category_table;
629
630extern Lisp_Object string_escape_byte8 (Lisp_Object); 623extern Lisp_Object string_escape_byte8 (Lisp_Object);
631 624
632/* Return a translation table of id number ID. */ 625/* Return a translation table of id number ID. */
633#define GET_TRANSLATION_TABLE(id) \ 626#define GET_TRANSLATION_TABLE(id) \
634 (XCDR(XVECTOR(Vtranslation_table_vector)->contents[(id)])) 627 (XCDR(XVECTOR(Vtranslation_table_vector)->contents[(id)]))
635 628
636/* A char-table for characters which may invoke auto-filling. */
637extern Lisp_Object Vauto_fill_chars;
638
639extern Lisp_Object Vchar_script_table;
640extern Lisp_Object Vscript_representative_chars;
641
642#define DEFSYM(sym, name) \ 629#define DEFSYM(sym, name) \
643 do { (sym) = intern_c_string ((name)); staticpro (&(sym)); } while (0) 630 do { (sym) = intern_c_string ((name)); staticpro (&(sym)); } while (0)
644 631
diff --git a/src/charset.c b/src/charset.c
index ede6bebe9d6..c37c33cd9fb 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -54,10 +54,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
54 54
55*/ 55*/
56 56
57/* List of all charsets. This variable is used only from Emacs
58 Lisp. */
59Lisp_Object Vcharset_list;
60
61/* Hash table that contains attributes of each charset. Keys are 57/* Hash table that contains attributes of each charset. Keys are
62 charset symbols, and values are vectors of charset attributes. */ 58 charset symbols, and values are vectors of charset attributes. */
63Lisp_Object Vcharset_hash_table; 59Lisp_Object Vcharset_hash_table;
@@ -120,13 +116,6 @@ int emacs_mule_charset[256];
120 CHARS, and FINAL-CHAR) to Emacs' charset. */ 116 CHARS, and FINAL-CHAR) to Emacs' charset. */
121int iso_charset_table[ISO_MAX_DIMENSION][ISO_MAX_CHARS][ISO_MAX_FINAL]; 117int iso_charset_table[ISO_MAX_DIMENSION][ISO_MAX_CHARS][ISO_MAX_FINAL];
122 118
123Lisp_Object Vcharset_map_path;
124
125/* If nonzero, don't load charset maps. */
126int inhibit_load_charset_map;
127
128Lisp_Object Vcurrent_iso639_language;
129
130#define CODE_POINT_TO_INDEX(charset, code) \ 119#define CODE_POINT_TO_INDEX(charset, code) \
131 ((charset)->code_linear_p \ 120 ((charset)->code_linear_p \
132 ? (code) - (charset)->min_code \ 121 ? (code) - (charset)->min_code \
@@ -2404,19 +2393,19 @@ syms_of_charset (void)
2404 defsubr (&Scharset_id_internal); 2393 defsubr (&Scharset_id_internal);
2405 defsubr (&Ssort_charsets); 2394 defsubr (&Ssort_charsets);
2406 2395
2407 DEFVAR_LISP ("charset-map-path", &Vcharset_map_path, 2396 DEFVAR_LISP ("charset-map-path", Vcharset_map_path,
2408 doc: /* *List of directories to search for charset map files. */); 2397 doc: /* *List of directories to search for charset map files. */);
2409 Vcharset_map_path = Qnil; 2398 Vcharset_map_path = Qnil;
2410 2399
2411 DEFVAR_BOOL ("inhibit-load-charset-map", &inhibit_load_charset_map, 2400 DEFVAR_BOOL ("inhibit-load-charset-map", inhibit_load_charset_map,
2412 doc: /* Inhibit loading of charset maps. Used when dumping Emacs. */); 2401 doc: /* Inhibit loading of charset maps. Used when dumping Emacs. */);
2413 inhibit_load_charset_map = 0; 2402 inhibit_load_charset_map = 0;
2414 2403
2415 DEFVAR_LISP ("charset-list", &Vcharset_list, 2404 DEFVAR_LISP ("charset-list", Vcharset_list,
2416 doc: /* List of all charsets ever defined. */); 2405 doc: /* List of all charsets ever defined. */);
2417 Vcharset_list = Qnil; 2406 Vcharset_list = Qnil;
2418 2407
2419 DEFVAR_LISP ("current-iso639-language", &Vcurrent_iso639_language, 2408 DEFVAR_LISP ("current-iso639-language", Vcurrent_iso639_language,
2420 doc: /* ISO639 language mnemonic symbol for the current language environment. 2409 doc: /* ISO639 language mnemonic symbol for the current language environment.
2421If the current language environment is for multiple languages (e.g. "Latin-1"), 2410If the current language environment is for multiple languages (e.g. "Latin-1"),
2422the value may be a list of mnemonics. */); 2411the value may be a list of mnemonics. */);
diff --git a/src/charset.h b/src/charset.h
index f35945aab0a..6ecd13a2af3 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -251,14 +251,11 @@ extern Lisp_Object Vcharset_non_preferred_head;
251/* Incremented everytime we change the priority of charsets. */ 251/* Incremented everytime we change the priority of charsets. */
252extern unsigned short charset_ordered_list_tick; 252extern unsigned short charset_ordered_list_tick;
253 253
254extern Lisp_Object Vcharset_list;
255extern Lisp_Object Viso_2022_charset_list; 254extern Lisp_Object Viso_2022_charset_list;
256extern Lisp_Object Vemacs_mule_charset_list; 255extern Lisp_Object Vemacs_mule_charset_list;
257 256
258extern int emacs_mule_charset[256]; 257extern int emacs_mule_charset[256];
259 258
260extern Lisp_Object Vcurrent_iso639_language;
261
262/* Macros to access information about charset. */ 259/* Macros to access information about charset. */
263 260
264/* Return the attribute vector of charset whose symbol is SYMBOL. */ 261/* Return the attribute vector of charset whose symbol is SYMBOL. */
diff --git a/src/cmds.c b/src/cmds.c
index 3782e393231..8483d65d739 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -320,7 +320,7 @@ After insertion, the value of `auto-fill-function' is called if the
320 A value of 2 means this did things that call for an undo boundary. */ 320 A value of 2 means this did things that call for an undo boundary. */
321 321
322static Lisp_Object Qexpand_abbrev; 322static Lisp_Object Qexpand_abbrev;
323static Lisp_Object Qpost_self_insert_hook, Vpost_self_insert_hook; 323static Lisp_Object Qpost_self_insert_hook;
324 324
325static int 325static int
326internal_self_insert (int c, EMACS_INT n) 326internal_self_insert (int c, EMACS_INT n)
@@ -523,7 +523,7 @@ syms_of_cmds (void)
523 Qpost_self_insert_hook = intern_c_string ("post-self-insert-hook"); 523 Qpost_self_insert_hook = intern_c_string ("post-self-insert-hook");
524 staticpro (&Qpost_self_insert_hook); 524 staticpro (&Qpost_self_insert_hook);
525 525
526 DEFVAR_LISP ("post-self-insert-hook", &Vpost_self_insert_hook, 526 DEFVAR_LISP ("post-self-insert-hook", Vpost_self_insert_hook,
527 doc: /* Hook run at the end of `self-insert-command'. 527 doc: /* Hook run at the end of `self-insert-command'.
528This is run after inserting the character. */); 528This is run after inserting the character. */);
529 Vpost_self_insert_hook = Qnil; 529 Vpost_self_insert_hook = Qnil;
diff --git a/src/coding.c b/src/coding.c
index 06f3fe58df1..4d47b28cf33 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -327,16 +327,6 @@ Lisp_Object Qinterrupted, Qinsufficient_memory;
327 symbol as a coding system. */ 327 symbol as a coding system. */
328static Lisp_Object Qcoding_system_define_form; 328static Lisp_Object Qcoding_system_define_form;
329 329
330int coding_system_require_warning;
331
332Lisp_Object Vselect_safe_coding_system_function;
333
334/* Mnemonic string for each format of end-of-line. */
335Lisp_Object eol_mnemonic_unix, eol_mnemonic_dos, eol_mnemonic_mac;
336/* Mnemonic string to indicate format of end-of-line is not yet
337 decided. */
338Lisp_Object eol_mnemonic_undecided;
339
340/* Format of end-of-line decided by system. This is Qunix on 330/* Format of end-of-line decided by system. This is Qunix on
341 Unix and Mac, Qdos on DOS/Windows. 331 Unix and Mac, Qdos on DOS/Windows.
342 This has an effect only for external encoding (i.e. for output to 332 This has an effect only for external encoding (i.e. for output to
@@ -345,8 +335,6 @@ static Lisp_Object system_eol_type;
345 335
346#ifdef emacs 336#ifdef emacs
347 337
348Lisp_Object Vcoding_system_list, Vcoding_system_alist;
349
350Lisp_Object Qcoding_system_p, Qcoding_system_error; 338Lisp_Object Qcoding_system_p, Qcoding_system_error;
351 339
352/* Coding system emacs-mule and raw-text are for converting only 340/* Coding system emacs-mule and raw-text are for converting only
@@ -356,64 +344,17 @@ Lisp_Object Qutf_8_emacs;
356 344
357/* Coding-systems are handed between Emacs Lisp programs and C internal 345/* Coding-systems are handed between Emacs Lisp programs and C internal
358 routines by the following three variables. */ 346 routines by the following three variables. */
359/* Coding-system for reading files and receiving data from process. */
360Lisp_Object Vcoding_system_for_read;
361/* Coding-system for writing files and sending data to process. */
362Lisp_Object Vcoding_system_for_write;
363/* Coding-system actually used in the latest I/O. */
364Lisp_Object Vlast_coding_system_used;
365/* Set to non-nil when an error is detected while code conversion. */
366Lisp_Object Vlast_code_conversion_error;
367/* A vector of length 256 which contains information about special
368 Latin codes (especially for dealing with Microsoft codes). */
369Lisp_Object Vlatin_extra_code_table;
370
371/* Flag to inhibit code conversion of end-of-line format. */
372int inhibit_eol_conversion;
373
374/* Flag to inhibit ISO2022 escape sequence detection. */
375int inhibit_iso_escape_detection;
376
377/* Flag to inhibit detection of binary files through null bytes. */
378int inhibit_null_byte_detection;
379
380/* Flag to make buffer-file-coding-system inherit from process-coding. */
381int inherit_process_coding_system;
382
383/* Coding system to be used to encode text for terminal display when 347/* Coding system to be used to encode text for terminal display when
384 terminal coding system is nil. */ 348 terminal coding system is nil. */
385struct coding_system safe_terminal_coding; 349struct coding_system safe_terminal_coding;
386 350
387Lisp_Object Vfile_coding_system_alist;
388Lisp_Object Vprocess_coding_system_alist;
389Lisp_Object Vnetwork_coding_system_alist;
390
391Lisp_Object Vlocale_coding_system;
392
393#endif /* emacs */ 351#endif /* emacs */
394 352
395/* Flag to tell if we look up translation table on character code
396 conversion. */
397Lisp_Object Venable_character_translation;
398/* Standard translation table to look up on decoding (reading). */
399Lisp_Object Vstandard_translation_table_for_decode;
400/* Standard translation table to look up on encoding (writing). */
401Lisp_Object Vstandard_translation_table_for_encode;
402
403Lisp_Object Qtranslation_table; 353Lisp_Object Qtranslation_table;
404Lisp_Object Qtranslation_table_id; 354Lisp_Object Qtranslation_table_id;
405Lisp_Object Qtranslation_table_for_decode; 355Lisp_Object Qtranslation_table_for_decode;
406Lisp_Object Qtranslation_table_for_encode; 356Lisp_Object Qtranslation_table_for_encode;
407 357
408/* Alist of charsets vs revision number. */
409static Lisp_Object Vcharset_revision_table;
410
411/* Default coding systems used for process I/O. */
412Lisp_Object Vdefault_process_coding_system;
413
414/* Char table for translating Quail and self-inserting input. */
415Lisp_Object Vtranslation_table_for_input;
416
417/* Two special coding systems. */ 358/* Two special coding systems. */
418Lisp_Object Vsjis_coding_system; 359Lisp_Object Vsjis_coding_system;
419Lisp_Object Vbig5_coding_system; 360Lisp_Object Vbig5_coding_system;
@@ -681,10 +622,6 @@ enum coding_category
681 | CATEGORY_MASK_UTF_8_NOSIG \ 622 | CATEGORY_MASK_UTF_8_NOSIG \
682 | CATEGORY_MASK_UTF_8_SIG) 623 | CATEGORY_MASK_UTF_8_SIG)
683 624
684/* List of symbols `coding-category-xxx' ordered by priority. This
685 variable is exposed to Emacs Lisp. */
686static Lisp_Object Vcoding_category_list;
687
688/* Table of coding categories (Lisp symbols). This variable is for 625/* Table of coding categories (Lisp symbols). This variable is for
689 internal use only. */ 626 internal use only. */
690static Lisp_Object Vcoding_category_table; 627static Lisp_Object Vcoding_category_table;
@@ -10525,7 +10462,7 @@ syms_of_coding (void)
10525 defsubr (&Scoding_system_eol_type); 10462 defsubr (&Scoding_system_eol_type);
10526 defsubr (&Scoding_system_priority_list); 10463 defsubr (&Scoding_system_priority_list);
10527 10464
10528 DEFVAR_LISP ("coding-system-list", &Vcoding_system_list, 10465 DEFVAR_LISP ("coding-system-list", Vcoding_system_list,
10529 doc: /* List of coding systems. 10466 doc: /* List of coding systems.
10530 10467
10531Do not alter the value of this variable manually. This variable should be 10468Do not alter the value of this variable manually. This variable should be
@@ -10533,7 +10470,7 @@ updated by the functions `define-coding-system' and
10533`define-coding-system-alias'. */); 10470`define-coding-system-alias'. */);
10534 Vcoding_system_list = Qnil; 10471 Vcoding_system_list = Qnil;
10535 10472
10536 DEFVAR_LISP ("coding-system-alist", &Vcoding_system_alist, 10473 DEFVAR_LISP ("coding-system-alist", Vcoding_system_alist,
10537 doc: /* Alist of coding system names. 10474 doc: /* Alist of coding system names.
10538Each element is one element list of coding system name. 10475Each element is one element list of coding system name.
10539This variable is given to `completing-read' as COLLECTION argument. 10476This variable is given to `completing-read' as COLLECTION argument.
@@ -10543,7 +10480,7 @@ updated by the functions `make-coding-system' and
10543`define-coding-system-alias'. */); 10480`define-coding-system-alias'. */);
10544 Vcoding_system_alist = Qnil; 10481 Vcoding_system_alist = Qnil;
10545 10482
10546 DEFVAR_LISP ("coding-category-list", &Vcoding_category_list, 10483 DEFVAR_LISP ("coding-category-list", Vcoding_category_list,
10547 doc: /* List of coding-categories (symbols) ordered by priority. 10484 doc: /* List of coding-categories (symbols) ordered by priority.
10548 10485
10549On detecting a coding system, Emacs tries code detection algorithms 10486On detecting a coding system, Emacs tries code detection algorithms
@@ -10562,7 +10499,7 @@ Don't modify this variable directly, but use `set-coding-system-priority'. */);
10562 Vcoding_category_list); 10499 Vcoding_category_list);
10563 } 10500 }
10564 10501
10565 DEFVAR_LISP ("coding-system-for-read", &Vcoding_system_for_read, 10502 DEFVAR_LISP ("coding-system-for-read", Vcoding_system_for_read,
10566 doc: /* Specify the coding system for read operations. 10503 doc: /* Specify the coding system for read operations.
10567It is useful to bind this variable with `let', but do not set it globally. 10504It is useful to bind this variable with `let', but do not set it globally.
10568If the value is a coding system, it is used for decoding on read operation. 10505If the value is a coding system, it is used for decoding on read operation.
@@ -10571,7 +10508,7 @@ There are three such tables: `file-coding-system-alist',
10571`process-coding-system-alist', and `network-coding-system-alist'. */); 10508`process-coding-system-alist', and `network-coding-system-alist'. */);
10572 Vcoding_system_for_read = Qnil; 10509 Vcoding_system_for_read = Qnil;
10573 10510
10574 DEFVAR_LISP ("coding-system-for-write", &Vcoding_system_for_write, 10511 DEFVAR_LISP ("coding-system-for-write", Vcoding_system_for_write,
10575 doc: /* Specify the coding system for write operations. 10512 doc: /* Specify the coding system for write operations.
10576Programs bind this variable with `let', but you should not set it globally. 10513Programs bind this variable with `let', but you should not set it globally.
10577If the value is a coding system, it is used for encoding of output, 10514If the value is a coding system, it is used for encoding of output,
@@ -10585,12 +10522,12 @@ For output to files, if the above procedure does not specify a coding system,
10585the value of `buffer-file-coding-system' is used. */); 10522the value of `buffer-file-coding-system' is used. */);
10586 Vcoding_system_for_write = Qnil; 10523 Vcoding_system_for_write = Qnil;
10587 10524
10588 DEFVAR_LISP ("last-coding-system-used", &Vlast_coding_system_used, 10525 DEFVAR_LISP ("last-coding-system-used", Vlast_coding_system_used,
10589 doc: /* 10526 doc: /*
10590Coding system used in the latest file or process I/O. */); 10527Coding system used in the latest file or process I/O. */);
10591 Vlast_coding_system_used = Qnil; 10528 Vlast_coding_system_used = Qnil;
10592 10529
10593 DEFVAR_LISP ("last-code-conversion-error", &Vlast_code_conversion_error, 10530 DEFVAR_LISP ("last-code-conversion-error", Vlast_code_conversion_error,
10594 doc: /* 10531 doc: /*
10595Error status of the last code conversion. 10532Error status of the last code conversion.
10596 10533
@@ -10607,21 +10544,21 @@ explicitly set this variable to nil before performing code
10607conversion. */); 10544conversion. */);
10608 Vlast_code_conversion_error = Qnil; 10545 Vlast_code_conversion_error = Qnil;
10609 10546
10610 DEFVAR_BOOL ("inhibit-eol-conversion", &inhibit_eol_conversion, 10547 DEFVAR_BOOL ("inhibit-eol-conversion", inhibit_eol_conversion,
10611 doc: /* 10548 doc: /*
10612*Non-nil means always inhibit code conversion of end-of-line format. 10549*Non-nil means always inhibit code conversion of end-of-line format.
10613See info node `Coding Systems' and info node `Text and Binary' concerning 10550See info node `Coding Systems' and info node `Text and Binary' concerning
10614such conversion. */); 10551such conversion. */);
10615 inhibit_eol_conversion = 0; 10552 inhibit_eol_conversion = 0;
10616 10553
10617 DEFVAR_BOOL ("inherit-process-coding-system", &inherit_process_coding_system, 10554 DEFVAR_BOOL ("inherit-process-coding-system", inherit_process_coding_system,
10618 doc: /* 10555 doc: /*
10619Non-nil means process buffer inherits coding system of process output. 10556Non-nil means process buffer inherits coding system of process output.
10620Bind it to t if the process output is to be treated as if it were a file 10557Bind it to t if the process output is to be treated as if it were a file
10621read from some filesystem. */); 10558read from some filesystem. */);
10622 inherit_process_coding_system = 0; 10559 inherit_process_coding_system = 0;
10623 10560
10624 DEFVAR_LISP ("file-coding-system-alist", &Vfile_coding_system_alist, 10561 DEFVAR_LISP ("file-coding-system-alist", Vfile_coding_system_alist,
10625 doc: /* 10562 doc: /*
10626Alist to decide a coding system to use for a file I/O operation. 10563Alist to decide a coding system to use for a file I/O operation.
10627The format is ((PATTERN . VAL) ...), 10564The format is ((PATTERN . VAL) ...),
@@ -10642,7 +10579,7 @@ See also the function `find-operation-coding-system'
10642and the variable `auto-coding-alist'. */); 10579and the variable `auto-coding-alist'. */);
10643 Vfile_coding_system_alist = Qnil; 10580 Vfile_coding_system_alist = Qnil;
10644 10581
10645 DEFVAR_LISP ("process-coding-system-alist", &Vprocess_coding_system_alist, 10582 DEFVAR_LISP ("process-coding-system-alist", Vprocess_coding_system_alist,
10646 doc: /* 10583 doc: /*
10647Alist to decide a coding system to use for a process I/O operation. 10584Alist to decide a coding system to use for a process I/O operation.
10648The format is ((PATTERN . VAL) ...), 10585The format is ((PATTERN . VAL) ...),
@@ -10658,7 +10595,7 @@ or a cons of coding systems which are used as above.
10658See also the function `find-operation-coding-system'. */); 10595See also the function `find-operation-coding-system'. */);
10659 Vprocess_coding_system_alist = Qnil; 10596 Vprocess_coding_system_alist = Qnil;
10660 10597
10661 DEFVAR_LISP ("network-coding-system-alist", &Vnetwork_coding_system_alist, 10598 DEFVAR_LISP ("network-coding-system-alist", Vnetwork_coding_system_alist,
10662 doc: /* 10599 doc: /*
10663Alist to decide a coding system to use for a network I/O operation. 10600Alist to decide a coding system to use for a network I/O operation.
10664The format is ((PATTERN . VAL) ...), 10601The format is ((PATTERN . VAL) ...),
@@ -10675,48 +10612,48 @@ or a cons of coding systems which are used as above.
10675See also the function `find-operation-coding-system'. */); 10612See also the function `find-operation-coding-system'. */);
10676 Vnetwork_coding_system_alist = Qnil; 10613 Vnetwork_coding_system_alist = Qnil;
10677 10614
10678 DEFVAR_LISP ("locale-coding-system", &Vlocale_coding_system, 10615 DEFVAR_LISP ("locale-coding-system", Vlocale_coding_system,
10679 doc: /* Coding system to use with system messages. 10616 doc: /* Coding system to use with system messages.
10680Also used for decoding keyboard input on X Window system. */); 10617Also used for decoding keyboard input on X Window system. */);
10681 Vlocale_coding_system = Qnil; 10618 Vlocale_coding_system = Qnil;
10682 10619
10683 /* The eol mnemonics are reset in startup.el system-dependently. */ 10620 /* The eol mnemonics are reset in startup.el system-dependently. */
10684 DEFVAR_LISP ("eol-mnemonic-unix", &eol_mnemonic_unix, 10621 DEFVAR_LISP ("eol-mnemonic-unix", eol_mnemonic_unix,
10685 doc: /* 10622 doc: /*
10686*String displayed in mode line for UNIX-like (LF) end-of-line format. */); 10623*String displayed in mode line for UNIX-like (LF) end-of-line format. */);
10687 eol_mnemonic_unix = make_pure_c_string (":"); 10624 eol_mnemonic_unix = make_pure_c_string (":");
10688 10625
10689 DEFVAR_LISP ("eol-mnemonic-dos", &eol_mnemonic_dos, 10626 DEFVAR_LISP ("eol-mnemonic-dos", eol_mnemonic_dos,
10690 doc: /* 10627 doc: /*
10691*String displayed in mode line for DOS-like (CRLF) end-of-line format. */); 10628*String displayed in mode line for DOS-like (CRLF) end-of-line format. */);
10692 eol_mnemonic_dos = make_pure_c_string ("\\"); 10629 eol_mnemonic_dos = make_pure_c_string ("\\");
10693 10630
10694 DEFVAR_LISP ("eol-mnemonic-mac", &eol_mnemonic_mac, 10631 DEFVAR_LISP ("eol-mnemonic-mac", eol_mnemonic_mac,
10695 doc: /* 10632 doc: /*
10696*String displayed in mode line for MAC-like (CR) end-of-line format. */); 10633*String displayed in mode line for MAC-like (CR) end-of-line format. */);
10697 eol_mnemonic_mac = make_pure_c_string ("/"); 10634 eol_mnemonic_mac = make_pure_c_string ("/");
10698 10635
10699 DEFVAR_LISP ("eol-mnemonic-undecided", &eol_mnemonic_undecided, 10636 DEFVAR_LISP ("eol-mnemonic-undecided", eol_mnemonic_undecided,
10700 doc: /* 10637 doc: /*
10701*String displayed in mode line when end-of-line format is not yet determined. */); 10638*String displayed in mode line when end-of-line format is not yet determined. */);
10702 eol_mnemonic_undecided = make_pure_c_string (":"); 10639 eol_mnemonic_undecided = make_pure_c_string (":");
10703 10640
10704 DEFVAR_LISP ("enable-character-translation", &Venable_character_translation, 10641 DEFVAR_LISP ("enable-character-translation", Venable_character_translation,
10705 doc: /* 10642 doc: /*
10706*Non-nil enables character translation while encoding and decoding. */); 10643*Non-nil enables character translation while encoding and decoding. */);
10707 Venable_character_translation = Qt; 10644 Venable_character_translation = Qt;
10708 10645
10709 DEFVAR_LISP ("standard-translation-table-for-decode", 10646 DEFVAR_LISP ("standard-translation-table-for-decode",
10710 &Vstandard_translation_table_for_decode, 10647 Vstandard_translation_table_for_decode,
10711 doc: /* Table for translating characters while decoding. */); 10648 doc: /* Table for translating characters while decoding. */);
10712 Vstandard_translation_table_for_decode = Qnil; 10649 Vstandard_translation_table_for_decode = Qnil;
10713 10650
10714 DEFVAR_LISP ("standard-translation-table-for-encode", 10651 DEFVAR_LISP ("standard-translation-table-for-encode",
10715 &Vstandard_translation_table_for_encode, 10652 Vstandard_translation_table_for_encode,
10716 doc: /* Table for translating characters while encoding. */); 10653 doc: /* Table for translating characters while encoding. */);
10717 Vstandard_translation_table_for_encode = Qnil; 10654 Vstandard_translation_table_for_encode = Qnil;
10718 10655
10719 DEFVAR_LISP ("charset-revision-table", &Vcharset_revision_table, 10656 DEFVAR_LISP ("charset-revision-table", Vcharset_revision_table,
10720 doc: /* Alist of charsets vs revision numbers. 10657 doc: /* Alist of charsets vs revision numbers.
10721While encoding, if a charset (car part of an element) is found, 10658While encoding, if a charset (car part of an element) is found,
10722designate it with the escape sequence identifying revision (cdr part 10659designate it with the escape sequence identifying revision (cdr part
@@ -10724,13 +10661,13 @@ of the element). */);
10724 Vcharset_revision_table = Qnil; 10661 Vcharset_revision_table = Qnil;
10725 10662
10726 DEFVAR_LISP ("default-process-coding-system", 10663 DEFVAR_LISP ("default-process-coding-system",
10727 &Vdefault_process_coding_system, 10664 Vdefault_process_coding_system,
10728 doc: /* Cons of coding systems used for process I/O by default. 10665 doc: /* Cons of coding systems used for process I/O by default.
10729The car part is used for decoding a process output, 10666The car part is used for decoding a process output,
10730the cdr part is used for encoding a text to be sent to a process. */); 10667the cdr part is used for encoding a text to be sent to a process. */);
10731 Vdefault_process_coding_system = Qnil; 10668 Vdefault_process_coding_system = Qnil;
10732 10669
10733 DEFVAR_LISP ("latin-extra-code-table", &Vlatin_extra_code_table, 10670 DEFVAR_LISP ("latin-extra-code-table", Vlatin_extra_code_table,
10734 doc: /* 10671 doc: /*
10735Table of extra Latin codes in the range 128..159 (inclusive). 10672Table of extra Latin codes in the range 128..159 (inclusive).
10736This is a vector of length 256. 10673This is a vector of length 256.
@@ -10743,7 +10680,7 @@ Only 128th through 159th elements have a meaning. */);
10743 Vlatin_extra_code_table = Fmake_vector (make_number (256), Qnil); 10680 Vlatin_extra_code_table = Fmake_vector (make_number (256), Qnil);
10744 10681
10745 DEFVAR_LISP ("select-safe-coding-system-function", 10682 DEFVAR_LISP ("select-safe-coding-system-function",
10746 &Vselect_safe_coding_system_function, 10683 Vselect_safe_coding_system_function,
10747 doc: /* 10684 doc: /*
10748Function to call to select safe coding system for encoding a text. 10685Function to call to select safe coding system for encoding a text.
10749 10686
@@ -10757,7 +10694,7 @@ The default value is `select-safe-coding-system' (which see). */);
10757 Vselect_safe_coding_system_function = Qnil; 10694 Vselect_safe_coding_system_function = Qnil;
10758 10695
10759 DEFVAR_BOOL ("coding-system-require-warning", 10696 DEFVAR_BOOL ("coding-system-require-warning",
10760 &coding_system_require_warning, 10697 coding_system_require_warning,
10761 doc: /* Internal use only. 10698 doc: /* Internal use only.
10762If non-nil, on writing a file, `select-safe-coding-system-function' is 10699If non-nil, on writing a file, `select-safe-coding-system-function' is
10763called even if `coding-system-for-write' is non-nil. The command 10700called even if `coding-system-for-write' is non-nil. The command
@@ -10766,7 +10703,7 @@ called even if `coding-system-for-write' is non-nil. The command
10766 10703
10767 10704
10768 DEFVAR_BOOL ("inhibit-iso-escape-detection", 10705 DEFVAR_BOOL ("inhibit-iso-escape-detection",
10769 &inhibit_iso_escape_detection, 10706 inhibit_iso_escape_detection,
10770 doc: /* 10707 doc: /*
10771If non-nil, Emacs ignores ISO-2022 escape sequences during code detection. 10708If non-nil, Emacs ignores ISO-2022 escape sequences during code detection.
10772 10709
@@ -10794,7 +10731,7 @@ escape sequence (e.g `latin-1') on reading by \\[universal-coding-system-argumen
10794 inhibit_iso_escape_detection = 0; 10731 inhibit_iso_escape_detection = 0;
10795 10732
10796 DEFVAR_BOOL ("inhibit-null-byte-detection", 10733 DEFVAR_BOOL ("inhibit-null-byte-detection",
10797 &inhibit_null_byte_detection, 10734 inhibit_null_byte_detection,
10798 doc: /* If non-nil, Emacs ignores null bytes on code detection. 10735 doc: /* If non-nil, Emacs ignores null bytes on code detection.
10799By default, Emacs treats it as binary data, and does not attempt to 10736By default, Emacs treats it as binary data, and does not attempt to
10800decode it. The effect is as if you specified `no-conversion' for 10737decode it. The effect is as if you specified `no-conversion' for
@@ -10806,7 +10743,7 @@ from GNU Find and GNU Grep. Emacs will then ignore the null bytes and
10806decode text as usual. */); 10743decode text as usual. */);
10807 inhibit_null_byte_detection = 0; 10744 inhibit_null_byte_detection = 0;
10808 10745
10809 DEFVAR_LISP ("translation-table-for-input", &Vtranslation_table_for_input, 10746 DEFVAR_LISP ("translation-table-for-input", Vtranslation_table_for_input,
10810 doc: /* Char table for translating self-inserting characters. 10747 doc: /* Char table for translating self-inserting characters.
10811This is applied to the result of input methods, not their input. 10748This is applied to the result of input methods, not their input.
10812See also `keyboard-translate-table'. 10749See also `keyboard-translate-table'.
diff --git a/src/coding.h b/src/coding.h
index e424ab72fa4..ac53d3b164a 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -769,11 +769,6 @@ extern Lisp_Object Qunix, Qdos, Qmac;
769extern Lisp_Object Qtranslation_table; 769extern Lisp_Object Qtranslation_table;
770extern Lisp_Object Qtranslation_table_id; 770extern Lisp_Object Qtranslation_table_id;
771 771
772/* Mnemonic strings to indicate each type of end-of-line. */
773extern Lisp_Object eol_mnemonic_unix, eol_mnemonic_dos, eol_mnemonic_mac;
774/* Mnemonic string to indicate type of end-of-line is not yet decided. */
775extern Lisp_Object eol_mnemonic_undecided;
776
777#ifdef emacs 772#ifdef emacs
778extern Lisp_Object Qfile_coding_system; 773extern Lisp_Object Qfile_coding_system;
779extern Lisp_Object Qcall_process, Qcall_process_region; 774extern Lisp_Object Qcall_process, Qcall_process_region;
@@ -782,44 +777,10 @@ extern Lisp_Object Qwrite_region;
782 777
783extern char *emacs_strerror (int); 778extern char *emacs_strerror (int);
784 779
785/* Coding-system for reading files and receiving data from process. */
786extern Lisp_Object Vcoding_system_for_read;
787/* Coding-system for writing files and sending data to process. */
788extern Lisp_Object Vcoding_system_for_write;
789/* Coding-system actually used in the latest I/O. */
790extern Lisp_Object Vlast_coding_system_used;
791/* Coding-system to use with system messages (e.g. strerror). */
792extern Lisp_Object Vlocale_coding_system;
793
794/* If non-zero, process buffer inherits the coding system used to decode
795 the subprocess output. */
796extern int inherit_process_coding_system;
797
798/* Coding system to be used to encode text for terminal display when 780/* Coding system to be used to encode text for terminal display when
799 terminal coding system is nil. */ 781 terminal coding system is nil. */
800extern struct coding_system safe_terminal_coding; 782extern struct coding_system safe_terminal_coding;
801 783
802/* Default coding systems used for process I/O. */
803extern Lisp_Object Vdefault_process_coding_system;
804
805/* Char table for translating Quail and self-inserting input. */
806extern Lisp_Object Vtranslation_table_for_input;
807
808/* Function to call to force a user to force select a propert coding
809 system. */
810extern Lisp_Object Vselect_safe_coding_system_function;
811
812/* If nonzero, on writing a file, Vselect_safe_coding_system_function
813 is called even if Vcoding_system_for_write is non-nil. */
814extern int coding_system_require_warning;
815
816/* Coding system for file names, or nil if none. */
817extern Lisp_Object Vfile_name_coding_system;
818
819/* Coding system for file names used only when
820 Vfile_name_coding_system is nil. */
821extern Lisp_Object Vdefault_file_name_coding_system;
822
823#endif 784#endif
824 785
825/* Error signaled when there's a problem with detecting coding system */ 786/* Error signaled when there's a problem with detecting coding system */
diff --git a/src/commands.h b/src/commands.h
index 154e5cb4978..25c309eab0a 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -28,42 +28,6 @@ extern Lisp_Object global_map;
28extern Lisp_Object meta_map; 28extern Lisp_Object meta_map;
29extern Lisp_Object control_x_map; 29extern Lisp_Object control_x_map;
30 30
31extern Lisp_Object Vminibuffer_local_map;
32
33extern Lisp_Object Vminibuffer_local_ns_map;
34
35/* keymap used for minibuffers when doing completion */
36extern Lisp_Object Vminibuffer_local_completion_map;
37
38/* keymap used for minibuffers when doing completion in filenames*/
39extern Lisp_Object Vminibuffer_local_filename_completion_map;
40
41/* keymap used for minibuffers when doing completion and require a match */
42extern Lisp_Object Vminibuffer_local_must_match_map;
43
44/* keymap used for minibuffers when doing completion in filenames
45 and require a match */
46extern Lisp_Object Vminibuffer_local_filename_must_match_map;
47
48/* Last input event read as a command. */
49extern Lisp_Object last_command_event;
50
51/* Last input event read as a command, not counting menus
52 reached by the mouse. */
53extern Lisp_Object last_nonmenu_event;
54
55/* List of command events to be re-read, or Qnil. */
56extern Lisp_Object Vunread_command_events;
57
58/* Command char event to be re-read, or -1 if none.
59 Setting this is obsolete, but some things should still check it. */
60extern EMACS_INT unread_command_char;
61
62/* The command being executed by the command loop.
63 Commands may set this, and the value set will be copied into
64 current_kboard->Vlast_command instead of the actual command. */
65extern Lisp_Object Vthis_command;
66
67/* If not Qnil, this is a switch-frame event which we decided to put 31/* If not Qnil, this is a switch-frame event which we decided to put
68 off until the end of a key sequence. This should be read as the 32 off until the end of a key sequence. This should be read as the
69 next command input, after any Vunread_command_events. 33 next command input, after any Vunread_command_events.
@@ -85,8 +49,6 @@ extern Lisp_Object last_point_position_window;
85/* Nonzero means ^G can quit instantly */ 49/* Nonzero means ^G can quit instantly */
86extern int immediate_quit; 50extern int immediate_quit;
87 51
88extern Lisp_Object Vexecuting_kbd_macro;
89
90/* Nonzero if input is coming from the keyboard */ 52/* Nonzero if input is coming from the keyboard */
91 53
92#define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive) 54#define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive)
@@ -95,8 +57,3 @@ extern Lisp_Object Vexecuting_kbd_macro;
95 57
96extern int update_mode_lines; 58extern int update_mode_lines;
97 59
98/* Nonzero means reading single-character input with prompt
99 so put cursor on minibuffer after the prompt. */
100
101extern int cursor_in_echo_area;
102
diff --git a/src/composite.c b/src/composite.c
index 92bedcc5f2b..d0b56d2ec49 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -153,15 +153,8 @@ int n_compositions;
153 COMPOSITION-ID. */ 153 COMPOSITION-ID. */
154Lisp_Object composition_hash_table; 154Lisp_Object composition_hash_table;
155 155
156/* Function to call to adjust composition. */
157Lisp_Object Vcompose_chars_after_function;
158
159Lisp_Object Qauto_composed; 156Lisp_Object Qauto_composed;
160Lisp_Object Vauto_composition_mode;
161Lisp_Object Vauto_composition_function;
162Lisp_Object Qauto_composition_function; 157Lisp_Object Qauto_composition_function;
163Lisp_Object Vcomposition_function_table;
164
165/* Maximum number of characters to look back for 158/* Maximum number of characters to look back for
166 auto-compositions. */ 159 auto-compositions. */
167#define MAX_AUTO_COMPOSITION_LOOKBACK 3 160#define MAX_AUTO_COMPOSITION_LOOKBACK 3
@@ -1964,7 +1957,7 @@ syms_of_composite (void)
1964 Vtext_property_default_nonsticky 1957 Vtext_property_default_nonsticky
1965 = Fcons (Fcons (Qcomposition, Qt), Vtext_property_default_nonsticky); 1958 = Fcons (Fcons (Qcomposition, Qt), Vtext_property_default_nonsticky);
1966 1959
1967 DEFVAR_LISP ("compose-chars-after-function", &Vcompose_chars_after_function, 1960 DEFVAR_LISP ("compose-chars-after-function", Vcompose_chars_after_function,
1968 doc: /* Function to adjust composition of buffer text. 1961 doc: /* Function to adjust composition of buffer text.
1969 1962
1970This function is called with three arguments: FROM, TO, and OBJECT. 1963This function is called with three arguments: FROM, TO, and OBJECT.
@@ -1984,12 +1977,12 @@ The default value is the function `compose-chars-after'. */);
1984 Qauto_composition_function = intern_c_string ("auto-composition-function"); 1977 Qauto_composition_function = intern_c_string ("auto-composition-function");
1985 staticpro (&Qauto_composition_function); 1978 staticpro (&Qauto_composition_function);
1986 1979
1987 DEFVAR_LISP ("auto-composition-mode", &Vauto_composition_mode, 1980 DEFVAR_LISP ("auto-composition-mode", Vauto_composition_mode,
1988 doc: /* Non-nil if Auto-Composition mode is enabled. 1981 doc: /* Non-nil if Auto-Composition mode is enabled.
1989Use the command `auto-composition-mode' to change this variable. */); 1982Use the command `auto-composition-mode' to change this variable. */);
1990 Vauto_composition_mode = Qt; 1983 Vauto_composition_mode = Qt;
1991 1984
1992 DEFVAR_LISP ("auto-composition-function", &Vauto_composition_function, 1985 DEFVAR_LISP ("auto-composition-function", Vauto_composition_function,
1993 doc: /* Function to call to compose characters automatically. 1986 doc: /* Function to call to compose characters automatically.
1994This function is called from the display routine with four arguments: 1987This function is called from the display routine with four arguments:
1995FROM, TO, WINDOW, and STRING. 1988FROM, TO, WINDOW, and STRING.
@@ -2002,7 +1995,7 @@ string. In this case, the function must compose characters in the
2002string. */); 1995string. */);
2003 Vauto_composition_function = Qnil; 1996 Vauto_composition_function = Qnil;
2004 1997
2005 DEFVAR_LISP ("composition-function-table", &Vcomposition_function_table, 1998 DEFVAR_LISP ("composition-function-table", Vcomposition_function_table,
2006 doc: /* Char-table of functions for automatic character composition. 1999 doc: /* Char-table of functions for automatic character composition.
2007For each character that has to be composed automatically with 2000For each character that has to be composed automatically with
2008preceding and/or following characters, this char-table contains 2001preceding and/or following characters, this char-table contains
diff --git a/src/composite.h b/src/composite.h
index f36b55214c8..1ccdba58c0f 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -208,10 +208,7 @@ extern int n_compositions;
208extern Lisp_Object Qcomposition; 208extern Lisp_Object Qcomposition;
209extern Lisp_Object composition_hash_table; 209extern Lisp_Object composition_hash_table;
210extern Lisp_Object Qauto_composed; 210extern Lisp_Object Qauto_composed;
211extern Lisp_Object Vauto_composition_function;
212extern Lisp_Object Qauto_composition_function; 211extern Lisp_Object Qauto_composition_function;
213extern Lisp_Object Vcomposition_function_table;
214
215extern int get_composition_id (EMACS_INT, EMACS_INT, EMACS_INT, 212extern int get_composition_id (EMACS_INT, EMACS_INT, EMACS_INT,
216 Lisp_Object, Lisp_Object); 213 Lisp_Object, Lisp_Object);
217extern int find_composition (EMACS_INT, EMACS_INT, EMACS_INT *, EMACS_INT *, 214extern int find_composition (EMACS_INT, EMACS_INT, EMACS_INT *, EMACS_INT *,
diff --git a/src/data.c b/src/data.c
index 0a2d4b855de..8f5011ff672 100644
--- a/src/data.c
+++ b/src/data.c
@@ -94,8 +94,6 @@ Lisp_Object Qinteractive_form;
94 94
95static void swap_in_symval_forwarding (struct Lisp_Symbol *, struct Lisp_Buffer_Local_Value *); 95static void swap_in_symval_forwarding (struct Lisp_Symbol *, struct Lisp_Buffer_Local_Value *);
96 96
97Lisp_Object Vmost_positive_fixnum, Vmost_negative_fixnum;
98
99 97
100void 98void
101circular_list_error (Lisp_Object list) 99circular_list_error (Lisp_Object list)
@@ -3300,12 +3298,12 @@ syms_of_data (void)
3300 3298
3301 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function; 3299 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function;
3302 3300
3303 DEFVAR_LISP ("most-positive-fixnum", &Vmost_positive_fixnum, 3301 DEFVAR_LISP ("most-positive-fixnum", Vmost_positive_fixnum,
3304 doc: /* The largest value that is representable in a Lisp integer. */); 3302 doc: /* The largest value that is representable in a Lisp integer. */);
3305 Vmost_positive_fixnum = make_number (MOST_POSITIVE_FIXNUM); 3303 Vmost_positive_fixnum = make_number (MOST_POSITIVE_FIXNUM);
3306 XSYMBOL (intern_c_string ("most-positive-fixnum"))->constant = 1; 3304 XSYMBOL (intern_c_string ("most-positive-fixnum"))->constant = 1;
3307 3305
3308 DEFVAR_LISP ("most-negative-fixnum", &Vmost_negative_fixnum, 3306 DEFVAR_LISP ("most-negative-fixnum", Vmost_negative_fixnum,
3309 doc: /* The smallest value that is representable in a Lisp integer. */); 3307 doc: /* The smallest value that is representable in a Lisp integer. */);
3310 Vmost_negative_fixnum = make_number (MOST_NEGATIVE_FIXNUM); 3308 Vmost_negative_fixnum = make_number (MOST_NEGATIVE_FIXNUM);
3311 XSYMBOL (intern_c_string ("most-negative-fixnum"))->constant = 1; 3309 XSYMBOL (intern_c_string ("most-negative-fixnum"))->constant = 1;
diff --git a/src/dbusbind.c b/src/dbusbind.c
index ba82ee3ec61..b9af2ab344d 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -75,15 +75,6 @@ Lisp_Object QCdbus_type_unix_fd;
75Lisp_Object QCdbus_type_array, QCdbus_type_variant; 75Lisp_Object QCdbus_type_array, QCdbus_type_variant;
76Lisp_Object QCdbus_type_struct, QCdbus_type_dict_entry; 76Lisp_Object QCdbus_type_struct, QCdbus_type_dict_entry;
77 77
78/* Registered buses. */
79Lisp_Object Vdbus_registered_buses;
80
81/* Hash table which keeps function definitions. */
82Lisp_Object Vdbus_registered_objects_table;
83
84/* Whether to debug D-Bus. */
85Lisp_Object Vdbus_debug;
86
87/* Whether we are reading a D-Bus event. */ 78/* Whether we are reading a D-Bus event. */
88int xd_in_read_queued_messages = 0; 79int xd_in_read_queued_messages = 0;
89 80
@@ -2301,12 +2292,12 @@ syms_of_dbusbind (void)
2301 staticpro (&QCdbus_type_dict_entry); 2292 staticpro (&QCdbus_type_dict_entry);
2302 2293
2303 DEFVAR_LISP ("dbus-registered-buses", 2294 DEFVAR_LISP ("dbus-registered-buses",
2304 &Vdbus_registered_buses, 2295 Vdbus_registered_buses,
2305 doc: /* List of D-Bus buses we are polling for messages. */); 2296 doc: /* List of D-Bus buses we are polling for messages. */);
2306 Vdbus_registered_buses = Qnil; 2297 Vdbus_registered_buses = Qnil;
2307 2298
2308 DEFVAR_LISP ("dbus-registered-objects-table", 2299 DEFVAR_LISP ("dbus-registered-objects-table",
2309 &Vdbus_registered_objects_table, 2300 Vdbus_registered_objects_table,
2310 doc: /* Hash table of registered functions for D-Bus. 2301 doc: /* Hash table of registered functions for D-Bus.
2311 2302
2312There are two different uses of the hash table: for accessing 2303There are two different uses of the hash table: for accessing
@@ -2343,7 +2334,7 @@ be called when the D-Bus reply message arrives. */);
2343 Vdbus_registered_objects_table = Fmake_hash_table (2, args); 2334 Vdbus_registered_objects_table = Fmake_hash_table (2, args);
2344 } 2335 }
2345 2336
2346 DEFVAR_LISP ("dbus-debug", &Vdbus_debug, 2337 DEFVAR_LISP ("dbus-debug", Vdbus_debug,
2347 doc: /* If non-nil, debug messages of D-Bus bindings are raised. */); 2338 doc: /* If non-nil, debug messages of D-Bus bindings are raised. */);
2348#ifdef DBUS_DEBUG 2339#ifdef DBUS_DEBUG
2349 Vdbus_debug = Qt; 2340 Vdbus_debug = Qt;
diff --git a/src/dired.c b/src/dired.c
index 7fe2cbf3014..19859be3f1f 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -93,9 +93,6 @@ extern void filemodestring (struct stat *, char *);
93#define lstat stat 93#define lstat stat
94#endif 94#endif
95 95
96extern Lisp_Object Vw32_get_true_file_attributes;
97
98Lisp_Object Vcompletion_ignored_extensions;
99Lisp_Object Qdirectory_files; 96Lisp_Object Qdirectory_files;
100Lisp_Object Qdirectory_files_and_attributes; 97Lisp_Object Qdirectory_files_and_attributes;
101Lisp_Object Qfile_name_completion; 98Lisp_Object Qfile_name_completion;
@@ -1095,7 +1092,7 @@ syms_of_dired (void)
1095 defsubr (&Sfile_attributes); 1092 defsubr (&Sfile_attributes);
1096 defsubr (&Sfile_attributes_lessp); 1093 defsubr (&Sfile_attributes_lessp);
1097 1094
1098 DEFVAR_LISP ("completion-ignored-extensions", &Vcompletion_ignored_extensions, 1095 DEFVAR_LISP ("completion-ignored-extensions", Vcompletion_ignored_extensions,
1099 doc: /* Completion ignores file names ending in any string in this list. 1096 doc: /* Completion ignores file names ending in any string in this list.
1100It does not ignore them if all possible completions end in one of 1097It does not ignore them if all possible completions end in one of
1101these strings or when displaying a list of completions. 1098these strings or when displaying a list of completions.
diff --git a/src/dispextern.h b/src/dispextern.h
index f4f1164b696..81888944093 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1145,12 +1145,6 @@ extern struct window *updated_window;
1145extern struct glyph_row *updated_row; 1145extern struct glyph_row *updated_row;
1146extern int updated_area; 1146extern int updated_area;
1147 1147
1148/* Non-zero means reading single-character input with prompt so put
1149 cursor on mini-buffer after the prompt. Positive means at end of
1150 text in echo area; negative means at beginning of line. */
1151
1152extern int cursor_in_echo_area;
1153
1154/* Non-zero means last display completed. Zero means it was 1148/* Non-zero means last display completed. Zero means it was
1155 preempted. */ 1149 preempted. */
1156 1150
@@ -2914,23 +2908,8 @@ enum tool_bar_item_image
2914 TOOL_BAR_IMAGE_DISABLED_DESELECTED 2908 TOOL_BAR_IMAGE_DISABLED_DESELECTED
2915}; 2909};
2916 2910
2917/* Margin around tool-bar buttons in pixels. */
2918
2919extern Lisp_Object Vtool_bar_button_margin;
2920
2921/* Tool bar style */
2922
2923extern Lisp_Object Vtool_bar_style;
2924
2925/* Maximum number of characters a label can have to be shown. */
2926
2927extern EMACS_INT tool_bar_max_label_size;
2928#define DEFAULT_TOOL_BAR_LABEL_SIZE 14 2911#define DEFAULT_TOOL_BAR_LABEL_SIZE 14
2929 2912
2930/* Thickness of relief to draw around tool-bar buttons. */
2931
2932extern EMACS_INT tool_bar_button_relief;
2933
2934/* Default values of the above variables. */ 2913/* Default values of the above variables. */
2935 2914
2936#define DEFAULT_TOOL_BAR_BUTTON_MARGIN 4 2915#define DEFAULT_TOOL_BAR_BUTTON_MARGIN 4
@@ -3020,8 +2999,6 @@ int in_display_vector_p (struct it *);
3020int frame_mode_line_height (struct frame *); 2999int frame_mode_line_height (struct frame *);
3021void highlight_trailing_whitespace (struct frame *, struct glyph_row *); 3000void highlight_trailing_whitespace (struct frame *, struct glyph_row *);
3022extern Lisp_Object Qtool_bar; 3001extern Lisp_Object Qtool_bar;
3023extern Lisp_Object Vshow_trailing_whitespace;
3024extern int mode_line_in_non_selected_windows;
3025extern int redisplaying_p; 3002extern int redisplaying_p;
3026extern int help_echo_showing_p; 3003extern int help_echo_showing_p;
3027extern int current_mode_line_height, current_header_line_height; 3004extern int current_mode_line_height, current_header_line_height;
@@ -3030,11 +3007,6 @@ extern Lisp_Object help_echo_object, previous_help_echo_string;
3030extern EMACS_INT help_echo_pos; 3007extern EMACS_INT help_echo_pos;
3031extern struct frame *last_mouse_frame; 3008extern struct frame *last_mouse_frame;
3032extern int last_tool_bar_item; 3009extern int last_tool_bar_item;
3033extern Lisp_Object Vmouse_autoselect_window;
3034extern int unibyte_display_via_language_environment;
3035extern EMACS_INT underline_minimum_offset;
3036extern Lisp_Object Vglyphless_char_display;
3037
3038extern void reseat_at_previous_visible_line_start (struct it *); 3010extern void reseat_at_previous_visible_line_start (struct it *);
3039extern Lisp_Object lookup_glyphless_char_display (int, struct it *); 3011extern Lisp_Object lookup_glyphless_char_display (int, struct it *);
3040extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object, 3012extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object,
@@ -3054,7 +3026,6 @@ extern void x_write_glyphs (struct glyph *, int);
3054extern void x_insert_glyphs (struct glyph *, int len); 3026extern void x_insert_glyphs (struct glyph *, int len);
3055extern void x_clear_end_of_line (int); 3027extern void x_clear_end_of_line (int);
3056 3028
3057extern int x_stretch_cursor_p;
3058extern struct cursor_pos output_cursor; 3029extern struct cursor_pos output_cursor;
3059 3030
3060extern void x_fix_overlapping_area (struct window *, struct glyph_row *, 3031extern void x_fix_overlapping_area (struct window *, struct glyph_row *,
@@ -3105,9 +3076,6 @@ extern void tty_draw_row_with_mouse_face (struct window *, struct glyph_row *,
3105#define TRY_WINDOW_CHECK_MARGINS (1 << 0) 3076#define TRY_WINDOW_CHECK_MARGINS (1 << 0)
3106#define TRY_WINDOW_IGNORE_FONTS_CHANGE (1 << 1) 3077#define TRY_WINDOW_IGNORE_FONTS_CHANGE (1 << 1)
3107 3078
3108/* Defined in fringe.c */
3109
3110extern Lisp_Object Voverflow_newline_into_fringe;
3111int lookup_fringe_bitmap (Lisp_Object); 3079int lookup_fringe_bitmap (Lisp_Object);
3112void draw_fringe_bitmap (struct window *, struct glyph_row *, int); 3080void draw_fringe_bitmap (struct window *, struct glyph_row *, int);
3113void draw_row_fringe_bitmaps (struct window *, struct glyph_row *); 3081void draw_row_fringe_bitmaps (struct window *, struct glyph_row *);
@@ -3213,8 +3181,6 @@ extern Lisp_Object Qforeground_color, Qbackground_color;
3213extern Lisp_Object Qframe_set_background_mode; 3181extern Lisp_Object Qframe_set_background_mode;
3214extern char unspecified_fg[], unspecified_bg[]; 3182extern char unspecified_fg[], unspecified_bg[];
3215 3183
3216extern Lisp_Object Vface_remapping_alist;
3217
3218/* Defined in xfns.c */ 3184/* Defined in xfns.c */
3219 3185
3220#ifdef HAVE_X_WINDOWS 3186#ifdef HAVE_X_WINDOWS
@@ -3235,7 +3201,6 @@ EXFUN (Fx_hide_tip, 0);
3235extern void start_hourglass (void); 3201extern void start_hourglass (void);
3236extern void cancel_hourglass (void); 3202extern void cancel_hourglass (void);
3237extern int hourglass_started (void); 3203extern int hourglass_started (void);
3238extern int display_hourglass_p;
3239extern int hourglass_shown_p; 3204extern int hourglass_shown_p;
3240struct atimer; /* Defined in atimer.h. */ 3205struct atimer; /* Defined in atimer.h. */
3241/* If non-null, an asynchronous timer that, when it expires, displays 3206/* If non-null, an asynchronous timer that, when it expires, displays
@@ -3271,9 +3236,6 @@ extern void hide_hourglass (void);
3271 3236
3272int popup_activated (void); 3237int popup_activated (void);
3273 3238
3274/* Defined in dispnew.c */
3275
3276extern int inverse_video;
3277extern Lisp_Object buffer_posn_from_coords (struct window *, 3239extern Lisp_Object buffer_posn_from_coords (struct window *,
3278 int *, int *, 3240 int *, int *,
3279 struct display_pos *, 3241 struct display_pos *,
diff --git a/src/dispnew.c b/src/dispnew.c
index 83ffd6a5774..061058b1465 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -170,12 +170,6 @@ static void adjust_frame_glyphs_for_window_redisplay (struct frame *);
170static void adjust_frame_glyphs_for_frame_redisplay (struct frame *); 170static void adjust_frame_glyphs_for_frame_redisplay (struct frame *);
171 171
172 172
173/* Non-zero means don't pause redisplay for pending input. (This is
174 for debugging and for a future implementation of EDT-like
175 scrolling. */
176
177int redisplay_dont_pause;
178
179/* Define PERIODIC_PREEMPTION_CHECKING to 1, if micro-second timers 173/* Define PERIODIC_PREEMPTION_CHECKING to 1, if micro-second timers
180 are supported, so we can check for input during redisplay at 174 are supported, so we can check for input during redisplay at
181 regular intervals. */ 175 regular intervals. */
@@ -187,10 +181,6 @@ int redisplay_dont_pause;
187 181
188#if PERIODIC_PREEMPTION_CHECKING 182#if PERIODIC_PREEMPTION_CHECKING
189 183
190/* If a number (float), check for user input every N seconds. */
191
192Lisp_Object Vredisplay_preemption_period;
193
194/* Redisplay preemption timers. */ 184/* Redisplay preemption timers. */
195 185
196static EMACS_TIME preemption_period; 186static EMACS_TIME preemption_period;
@@ -207,49 +197,6 @@ int frame_garbaged;
207 197
208int display_completed; 198int display_completed;
209 199
210/* Lisp variable visible-bell; enables use of screen-flash instead of
211 audible bell. */
212
213int visible_bell;
214
215/* Invert the color of the whole frame, at a low level. */
216
217int inverse_video;
218
219/* Line speed of the terminal. */
220
221EMACS_INT baud_rate;
222
223/* Either nil or a symbol naming the window system under which Emacs
224 creates the first frame. */
225
226Lisp_Object Vinitial_window_system;
227
228/* Version number of X windows: 10, 11 or nil. */
229
230Lisp_Object Vwindow_system_version;
231
232/* Vector of glyph definitions. Indexed by glyph number, the contents
233 are a string which is how to output the glyph.
234
235 If Vglyph_table is nil, a glyph is output by using its low 8 bits
236 as a character code.
237
238 This is an obsolete feature that is no longer used. The variable
239 is retained for compatibility. */
240
241Lisp_Object Vglyph_table;
242
243/* Display table to use for vectors that don't specify their own. */
244
245Lisp_Object Vstandard_display_table;
246
247/* Nonzero means reading single-character input with prompt so put
248 cursor on mini-buffer after the prompt. Positive means at end of
249 text in echo area; negative means at beginning of line. */
250
251int cursor_in_echo_area;
252
253Lisp_Object Qdisplay_table, Qredisplay_dont_pause; 200Lisp_Object Qdisplay_table, Qredisplay_dont_pause;
254 201
255 202
@@ -6556,27 +6503,27 @@ syms_of_display (void)
6556 Qredisplay_dont_pause = intern_c_string ("redisplay-dont-pause"); 6503 Qredisplay_dont_pause = intern_c_string ("redisplay-dont-pause");
6557 staticpro (&Qredisplay_dont_pause); 6504 staticpro (&Qredisplay_dont_pause);
6558 6505
6559 DEFVAR_INT ("baud-rate", &baud_rate, 6506 DEFVAR_INT ("baud-rate", baud_rate,
6560 doc: /* *The output baud rate of the terminal. 6507 doc: /* *The output baud rate of the terminal.
6561On most systems, changing this value will affect the amount of padding 6508On most systems, changing this value will affect the amount of padding
6562and the other strategic decisions made during redisplay. */); 6509and the other strategic decisions made during redisplay. */);
6563 6510
6564 DEFVAR_BOOL ("inverse-video", &inverse_video, 6511 DEFVAR_BOOL ("inverse-video", inverse_video,
6565 doc: /* *Non-nil means invert the entire frame display. 6512 doc: /* *Non-nil means invert the entire frame display.
6566This means everything is in inverse video which otherwise would not be. */); 6513This means everything is in inverse video which otherwise would not be. */);
6567 6514
6568 DEFVAR_BOOL ("visible-bell", &visible_bell, 6515 DEFVAR_BOOL ("visible-bell", visible_bell,
6569 doc: /* *Non-nil means try to flash the frame to represent a bell. 6516 doc: /* *Non-nil means try to flash the frame to represent a bell.
6570 6517
6571See also `ring-bell-function'. */); 6518See also `ring-bell-function'. */);
6572 6519
6573 DEFVAR_BOOL ("no-redraw-on-reenter", &no_redraw_on_reenter, 6520 DEFVAR_BOOL ("no-redraw-on-reenter", no_redraw_on_reenter,
6574 doc: /* *Non-nil means no need to redraw entire frame after suspending. 6521 doc: /* *Non-nil means no need to redraw entire frame after suspending.
6575A non-nil value is useful if the terminal can automatically preserve 6522A non-nil value is useful if the terminal can automatically preserve
6576Emacs's frame display when you reenter Emacs. 6523Emacs's frame display when you reenter Emacs.
6577It is up to you to set this variable if your terminal can do that. */); 6524It is up to you to set this variable if your terminal can do that. */);
6578 6525
6579 DEFVAR_LISP ("initial-window-system", &Vinitial_window_system, 6526 DEFVAR_LISP ("initial-window-system", Vinitial_window_system,
6580 doc: /* Name of the window system that Emacs uses for the first frame. 6527 doc: /* Name of the window system that Emacs uses for the first frame.
6581The value is a symbol: 6528The value is a symbol:
6582 nil for a termcap frame (a character-only terminal), 6529 nil for a termcap frame (a character-only terminal),
@@ -6602,14 +6549,14 @@ Use of this variable as a boolean is deprecated. Instead,
6602use `display-graphic-p' or any of the other `display-*-p' 6549use `display-graphic-p' or any of the other `display-*-p'
6603predicates which report frame's specific UI-related capabilities. */); 6550predicates which report frame's specific UI-related capabilities. */);
6604 6551
6605 DEFVAR_LISP ("window-system-version", &Vwindow_system_version, 6552 DEFVAR_LISP ("window-system-version", Vwindow_system_version,
6606 doc: /* The version number of the window system in use. 6553 doc: /* The version number of the window system in use.
6607For X windows, this is 11. */); 6554For X windows, this is 11. */);
6608 6555
6609 DEFVAR_BOOL ("cursor-in-echo-area", &cursor_in_echo_area, 6556 DEFVAR_BOOL ("cursor-in-echo-area", cursor_in_echo_area,
6610 doc: /* Non-nil means put cursor in minibuffer, at end of any message there. */); 6557 doc: /* Non-nil means put cursor in minibuffer, at end of any message there. */);
6611 6558
6612 DEFVAR_LISP ("glyph-table", &Vglyph_table, 6559 DEFVAR_LISP ("glyph-table", Vglyph_table,
6613 doc: /* Table defining how to output a glyph code to the frame. 6560 doc: /* Table defining how to output a glyph code to the frame.
6614If not nil, this is a vector indexed by glyph code to define the glyph. 6561If not nil, this is a vector indexed by glyph code to define the glyph.
6615Each element can be: 6562Each element can be:
@@ -6620,17 +6567,17 @@ Each element can be:
6620 while outputting it. */); 6567 while outputting it. */);
6621 Vglyph_table = Qnil; 6568 Vglyph_table = Qnil;
6622 6569
6623 DEFVAR_LISP ("standard-display-table", &Vstandard_display_table, 6570 DEFVAR_LISP ("standard-display-table", Vstandard_display_table,
6624 doc: /* Display table to use for buffers that specify none. 6571 doc: /* Display table to use for buffers that specify none.
6625See `buffer-display-table' for more information. */); 6572See `buffer-display-table' for more information. */);
6626 Vstandard_display_table = Qnil; 6573 Vstandard_display_table = Qnil;
6627 6574
6628 DEFVAR_BOOL ("redisplay-dont-pause", &redisplay_dont_pause, 6575 DEFVAR_BOOL ("redisplay-dont-pause", redisplay_dont_pause,
6629 doc: /* *Non-nil means update isn't paused when input is detected. */); 6576 doc: /* *Non-nil means update isn't paused when input is detected. */);
6630 redisplay_dont_pause = 0; 6577 redisplay_dont_pause = 0;
6631 6578
6632#if PERIODIC_PREEMPTION_CHECKING 6579#if PERIODIC_PREEMPTION_CHECKING
6633 DEFVAR_LISP ("redisplay-preemption-period", &Vredisplay_preemption_period, 6580 DEFVAR_LISP ("redisplay-preemption-period", Vredisplay_preemption_period,
6634 doc: /* *The period in seconds between checking for input during redisplay. 6581 doc: /* *The period in seconds between checking for input during redisplay.
6635If input is detected, redisplay is pre-empted, and the input is processed. 6582If input is detected, redisplay is pre-empted, and the input is processed.
6636If nil, never pre-empt redisplay. */); 6583If nil, never pre-empt redisplay. */);
diff --git a/src/disptab.h b/src/disptab.h
index 14e406a7425..f013e7e428c 100644
--- a/src/disptab.h
+++ b/src/disptab.h
@@ -49,16 +49,9 @@ extern struct Lisp_Char_Table *window_display_table (struct window *);
49/* Defined in indent.c. */ 49/* Defined in indent.c. */
50extern struct Lisp_Char_Table *buffer_display_table (void); 50extern struct Lisp_Char_Table *buffer_display_table (void);
51 51
52/* Display table to use for vectors that don't specify their own. */
53extern Lisp_Object Vstandard_display_table;
54
55/* This is the `purpose' slot of a display table. */ 52/* This is the `purpose' slot of a display table. */
56extern Lisp_Object Qdisplay_table; 53extern Lisp_Object Qdisplay_table;
57 54
58/* Vector of GLYPH definitions. Indexed by GLYPH number,
59 the contents are a string which is how to output the GLYPH. */
60extern Lisp_Object Vglyph_table;
61
62/* Return the current length of the GLYPH table, 55/* Return the current length of the GLYPH table,
63 or 0 if the table isn't currently valid. */ 56 or 0 if the table isn't currently valid. */
64#define GLYPH_TABLE_LENGTH \ 57#define GLYPH_TABLE_LENGTH \
diff --git a/src/doc.c b/src/doc.c
index 38deed1bbf4..900deded25c 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -35,13 +35,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
35#include "keymap.h" 35#include "keymap.h"
36#include "buildobj.h" 36#include "buildobj.h"
37 37
38Lisp_Object Vdoc_file_name;
39
40Lisp_Object Qfunction_documentation; 38Lisp_Object Qfunction_documentation;
41 39
42/* A list of files used to build this Emacs binary. */
43static Lisp_Object Vbuild_files;
44
45/* Buffer used for reading from documentation file. */ 40/* Buffer used for reading from documentation file. */
46static char *get_doc_string_buffer; 41static char *get_doc_string_buffer;
47static int get_doc_string_buffer_size; 42static int get_doc_string_buffer_size;
@@ -930,11 +925,11 @@ syms_of_doc (void)
930 Qfunction_documentation = intern_c_string ("function-documentation"); 925 Qfunction_documentation = intern_c_string ("function-documentation");
931 staticpro (&Qfunction_documentation); 926 staticpro (&Qfunction_documentation);
932 927
933 DEFVAR_LISP ("internal-doc-file-name", &Vdoc_file_name, 928 DEFVAR_LISP ("internal-doc-file-name", Vdoc_file_name,
934 doc: /* Name of file containing documentation strings of built-in symbols. */); 929 doc: /* Name of file containing documentation strings of built-in symbols. */);
935 Vdoc_file_name = Qnil; 930 Vdoc_file_name = Qnil;
936 931
937 DEFVAR_LISP ("build-files", &Vbuild_files, 932 DEFVAR_LISP ("build-files", Vbuild_files,
938 doc: /* A list of files used to build this Emacs binary. */); 933 doc: /* A list of files used to build this Emacs binary. */);
939 Vbuild_files = Qnil; 934 Vbuild_files = Qnil;
940 935
diff --git a/src/dosfns.c b/src/dosfns.c
index 1724e7d1de6..82c3b6bad4d 100644
--- a/src/dosfns.c
+++ b/src/dosfns.c
@@ -227,12 +227,6 @@ Return nil if startup screen is not available. */)
227 return Qt; 227 return Qt;
228} 228}
229 229
230/* country info */
231EMACS_INT dos_country_code;
232EMACS_INT dos_codepage;
233EMACS_INT dos_timezone_offset;
234EMACS_INT dos_decimal_point;
235EMACS_INT dos_keyboard_layout;
236unsigned char dos_country_info[DOS_COUNTRY_INFO]; 230unsigned char dos_country_info[DOS_COUNTRY_INFO];
237static unsigned char usa_country_info[DOS_COUNTRY_INFO] = { 231static unsigned char usa_country_info[DOS_COUNTRY_INFO] = {
238 0, 0, /* date format */ 232 0, 0, /* date format */
@@ -249,17 +243,8 @@ static unsigned char usa_country_info[DOS_COUNTRY_INFO] = {
249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* reserved */ 243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* reserved */
250}; 244};
251 245
252EMACS_INT dos_hyper_key;
253EMACS_INT dos_super_key;
254EMACS_INT dos_keypad_mode;
255
256Lisp_Object Vdos_version;
257Lisp_Object Vdos_display_scancodes;
258
259#ifndef HAVE_X_WINDOWS 246#ifndef HAVE_X_WINDOWS
260static unsigned dos_windows_version; 247static unsigned dos_windows_version;
261Lisp_Object Vdos_windows_version;
262
263char parent_vm_title[50]; /* Ralf Brown says 30 is enough */ 248char parent_vm_title[50]; /* Ralf Brown says 30 is enough */
264int w95_set_virtual_machine_title (const char *); 249int w95_set_virtual_machine_title (const char *);
265 250
@@ -697,11 +682,11 @@ syms_of_dosfns (void)
697 defsubr (&Smsdos_mouse_p); 682 defsubr (&Smsdos_mouse_p);
698#endif 683#endif
699 684
700 DEFVAR_INT ("dos-country-code", &dos_country_code, 685 DEFVAR_INT ("dos-country-code", dos_country_code,
701 doc: /* The country code returned by Dos when Emacs was started. 686 doc: /* The country code returned by Dos when Emacs was started.
702Usually this is the international telephone prefix. */); 687Usually this is the international telephone prefix. */);
703 688
704 DEFVAR_INT ("dos-codepage", &dos_codepage, 689 DEFVAR_INT ("dos-codepage", dos_codepage,
705 doc: /* The codepage active when Emacs was started. 690 doc: /* The codepage active when Emacs was started.
706The following are known: 691The following are known:
707 437 United States 692 437 United States
@@ -713,19 +698,19 @@ The following are known:
713 863 Canada (French) 698 863 Canada (French)
714 865 Norway/Denmark */); 699 865 Norway/Denmark */);
715 700
716 DEFVAR_INT ("dos-timezone-offset", &dos_timezone_offset, 701 DEFVAR_INT ("dos-timezone-offset", dos_timezone_offset,
717 doc: /* The current timezone offset to UTC in minutes. 702 doc: /* The current timezone offset to UTC in minutes.
718Implicitly modified when the TZ variable is changed. */); 703Implicitly modified when the TZ variable is changed. */);
719 704
720 DEFVAR_LISP ("dos-version", &Vdos_version, 705 DEFVAR_LISP ("dos-version", Vdos_version,
721 doc: /* The (MAJOR . MINOR) Dos version (subject to modification with setver). */); 706 doc: /* The (MAJOR . MINOR) Dos version (subject to modification with setver). */);
722 707
723#ifndef HAVE_X_WINDOWS 708#ifndef HAVE_X_WINDOWS
724 DEFVAR_LISP ("dos-windows-version", &Vdos_windows_version, 709 DEFVAR_LISP ("dos-windows-version", Vdos_windows_version,
725 doc: /* The (MAJOR . MINOR) Windows version for DOS session on MS-Windows. */); 710 doc: /* The (MAJOR . MINOR) Windows version for DOS session on MS-Windows. */);
726#endif 711#endif
727 712
728 DEFVAR_LISP ("dos-display-scancodes", &Vdos_display_scancodes, 713 DEFVAR_LISP ("dos-display-scancodes", Vdos_display_scancodes,
729 doc: /* *Controls whether DOS raw keyboard events are displayed as you type. 714 doc: /* *Controls whether DOS raw keyboard events are displayed as you type.
730When non-nil, the keyboard scan-codes are displayed at the bottom right 715When non-nil, the keyboard scan-codes are displayed at the bottom right
731corner of the display (typically at the end of the mode line). 716corner of the display (typically at the end of the mode line).
@@ -733,17 +718,17 @@ The output format is: scan code:char code*modifiers. */);
733 718
734 Vdos_display_scancodes = Qnil; 719 Vdos_display_scancodes = Qnil;
735 720
736 DEFVAR_INT ("dos-hyper-key", &dos_hyper_key, 721 DEFVAR_INT ("dos-hyper-key", dos_hyper_key,
737 doc: /* *If set to 1, use right ALT key as hyper key. 722 doc: /* *If set to 1, use right ALT key as hyper key.
738If set to 2, use right CTRL key as hyper key. */); 723If set to 2, use right CTRL key as hyper key. */);
739 dos_hyper_key = 0; 724 dos_hyper_key = 0;
740 725
741 DEFVAR_INT ("dos-super-key", &dos_super_key, 726 DEFVAR_INT ("dos-super-key", dos_super_key,
742 doc: /* *If set to 1, use right ALT key as super key. 727 doc: /* *If set to 1, use right ALT key as super key.
743If set to 2, use right CTRL key as super key. */); 728If set to 2, use right CTRL key as super key. */);
744 dos_super_key = 0; 729 dos_super_key = 0;
745 730
746 DEFVAR_INT ("dos-keypad-mode", &dos_keypad_mode, 731 DEFVAR_INT ("dos-keypad-mode", dos_keypad_mode,
747 doc: /* *Controls what key code is returned by a key in the numeric keypad. 732 doc: /* *Controls what key code is returned by a key in the numeric keypad.
748The `numlock ON' action is only taken if no modifier keys are pressed. 733The `numlock ON' action is only taken if no modifier keys are pressed.
749The value is an integer constructed by adding the following bits together: 734The value is an integer constructed by adding the following bits together:
@@ -767,12 +752,12 @@ The value is an integer constructed by adding the following bits together:
767 0x200 ALT-0..ALT-9 in top-row produces shifted codes. */); 752 0x200 ALT-0..ALT-9 in top-row produces shifted codes. */);
768 dos_keypad_mode = 0x75; 753 dos_keypad_mode = 0x75;
769 754
770 DEFVAR_INT ("dos-keyboard-layout", &dos_keyboard_layout, 755 DEFVAR_INT ("dos-keyboard-layout", dos_keyboard_layout,
771 doc: /* Contains the country code for the current keyboard layout. 756 doc: /* Contains the country code for the current keyboard layout.
772Use msdos-set-keyboard to select another keyboard layout. */); 757Use msdos-set-keyboard to select another keyboard layout. */);
773 dos_keyboard_layout = 1; /* US */ 758 dos_keyboard_layout = 1; /* US */
774 759
775 DEFVAR_INT ("dos-decimal-point", &dos_decimal_point, 760 DEFVAR_INT ("dos-decimal-point", dos_decimal_point,
776 doc: /* The character to produce when kp-decimal key is pressed. 761 doc: /* The character to produce when kp-decimal key is pressed.
777If non-zero, this variable contains the character to be returned when the 762If non-zero, this variable contains the character to be returned when the
778decimal point key in the numeric keypad is pressed when Num Lock is on. 763decimal point key in the numeric keypad is pressed when Num Lock is on.
diff --git a/src/dosfns.h b/src/dosfns.h
index 839b67184e2..dec6c91b767 100644
--- a/src/dosfns.h
+++ b/src/dosfns.h
@@ -20,24 +20,10 @@ GNU General Public License for more details.
20You should have received a copy of the GNU General Public License 20You should have received a copy of the GNU General Public License
21along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ 21along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
22 22
23extern EMACS_INT dos_hyper_key;
24extern EMACS_INT dos_super_key;
25extern EMACS_INT dos_decimal_point;
26extern EMACS_INT dos_keypad_mode;
27
28extern EMACS_INT dos_keyboard_layout;
29extern EMACS_INT dos_country_code;
30extern EMACS_INT dos_codepage;
31extern EMACS_INT dos_timezone_offset;
32
33#define DOS_COUNTRY_INFO 34 /* no of bytes returned by dos int 38h */ 23#define DOS_COUNTRY_INFO 34 /* no of bytes returned by dos int 38h */
34extern unsigned char dos_country_info[DOS_COUNTRY_INFO]; 24extern unsigned char dos_country_info[DOS_COUNTRY_INFO];
35 25
36extern Lisp_Object Vdos_version;
37extern Lisp_Object Vdos_windows_version;
38#ifndef HAVE_X_WINDOWS 26#ifndef HAVE_X_WINDOWS
39extern Lisp_Object Vdos_display_scancodes;
40
41extern int msdos_stdcolor_idx (const char *); 27extern int msdos_stdcolor_idx (const char *);
42extern Lisp_Object msdos_stdcolor_name (int); 28extern Lisp_Object msdos_stdcolor_name (int);
43extern void x_set_title (struct frame *, Lisp_Object); 29extern void x_set_title (struct frame *, Lisp_Object);
diff --git a/src/editfns.c b/src/editfns.c
index e7da96265bf..0c4bf4f0d7e 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -108,24 +108,9 @@ static Lisp_Object subst_char_in_region_unwind_1 (Lisp_Object);
108static void transpose_markers (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT, 108static void transpose_markers (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT,
109 EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT); 109 EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT);
110 110
111Lisp_Object Vbuffer_access_fontify_functions;
112Lisp_Object Qbuffer_access_fontify_functions; 111Lisp_Object Qbuffer_access_fontify_functions;
113Lisp_Object Vbuffer_access_fontified_property;
114
115Lisp_Object Fuser_full_name (Lisp_Object); 112Lisp_Object Fuser_full_name (Lisp_Object);
116 113
117/* Non-nil means don't stop at field boundary in text motion commands. */
118
119Lisp_Object Vinhibit_field_text_motion;
120
121/* Some static data, and a function to initialize it for each run */
122
123Lisp_Object Vsystem_name;
124Lisp_Object Vuser_real_login_name; /* login name of current user ID */
125Lisp_Object Vuser_full_name; /* full name of current user */
126Lisp_Object Vuser_login_name; /* user name from LOGNAME or USER */
127Lisp_Object Voperating_system_release; /* Operating System Release */
128
129/* Symbol for the text property used to mark fields. */ 114/* Symbol for the text property used to mark fields. */
130 115
131Lisp_Object Qfield; 116Lisp_Object Qfield;
@@ -4555,12 +4540,12 @@ syms_of_editfns (void)
4555 = intern_c_string ("buffer-access-fontify-functions"); 4540 = intern_c_string ("buffer-access-fontify-functions");
4556 staticpro (&Qbuffer_access_fontify_functions); 4541 staticpro (&Qbuffer_access_fontify_functions);
4557 4542
4558 DEFVAR_LISP ("inhibit-field-text-motion", &Vinhibit_field_text_motion, 4543 DEFVAR_LISP ("inhibit-field-text-motion", Vinhibit_field_text_motion,
4559 doc: /* Non-nil means text motion commands don't notice fields. */); 4544 doc: /* Non-nil means text motion commands don't notice fields. */);
4560 Vinhibit_field_text_motion = Qnil; 4545 Vinhibit_field_text_motion = Qnil;
4561 4546
4562 DEFVAR_LISP ("buffer-access-fontify-functions", 4547 DEFVAR_LISP ("buffer-access-fontify-functions",
4563 &Vbuffer_access_fontify_functions, 4548 Vbuffer_access_fontify_functions,
4564 doc: /* List of functions called by `buffer-substring' to fontify if necessary. 4549 doc: /* List of functions called by `buffer-substring' to fontify if necessary.
4565Each function is called with two arguments which specify the range 4550Each function is called with two arguments which specify the range
4566of the buffer being accessed. */); 4551of the buffer being accessed. */);
@@ -4578,25 +4563,25 @@ of the buffer being accessed. */);
4578 } 4563 }
4579 4564
4580 DEFVAR_LISP ("buffer-access-fontified-property", 4565 DEFVAR_LISP ("buffer-access-fontified-property",
4581 &Vbuffer_access_fontified_property, 4566 Vbuffer_access_fontified_property,
4582 doc: /* Property which (if non-nil) indicates text has been fontified. 4567 doc: /* Property which (if non-nil) indicates text has been fontified.
4583`buffer-substring' need not call the `buffer-access-fontify-functions' 4568`buffer-substring' need not call the `buffer-access-fontify-functions'
4584functions if all the text being accessed has this property. */); 4569functions if all the text being accessed has this property. */);
4585 Vbuffer_access_fontified_property = Qnil; 4570 Vbuffer_access_fontified_property = Qnil;
4586 4571
4587 DEFVAR_LISP ("system-name", &Vsystem_name, 4572 DEFVAR_LISP ("system-name", Vsystem_name,
4588 doc: /* The host name of the machine Emacs is running on. */); 4573 doc: /* The host name of the machine Emacs is running on. */);
4589 4574
4590 DEFVAR_LISP ("user-full-name", &Vuser_full_name, 4575 DEFVAR_LISP ("user-full-name", Vuser_full_name,
4591 doc: /* The full name of the user logged in. */); 4576 doc: /* The full name of the user logged in. */);
4592 4577
4593 DEFVAR_LISP ("user-login-name", &Vuser_login_name, 4578 DEFVAR_LISP ("user-login-name", Vuser_login_name,
4594 doc: /* The user's name, taken from environment variables if possible. */); 4579 doc: /* The user's name, taken from environment variables if possible. */);
4595 4580
4596 DEFVAR_LISP ("user-real-login-name", &Vuser_real_login_name, 4581 DEFVAR_LISP ("user-real-login-name", Vuser_real_login_name,
4597 doc: /* The user's name, based upon the real uid only. */); 4582 doc: /* The user's name, based upon the real uid only. */);
4598 4583
4599 DEFVAR_LISP ("operating-system-release", &Voperating_system_release, 4584 DEFVAR_LISP ("operating-system-release", Voperating_system_release,
4600 doc: /* The release of the operating system Emacs is running on. */); 4585 doc: /* The release of the operating system Emacs is running on. */);
4601 4586
4602 defsubr (&Spropertize); 4587 defsubr (&Spropertize);
diff --git a/src/emacs.c b/src/emacs.c
index dca7245f986..304f87ea90e 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -119,32 +119,9 @@ EMACS_INT gdb_array_mark_flag EXTERNALLY_VISIBLE = ARRAY_MARK_FLAG;
119 least one symbol with that type, and then xbacktrace could fail. */ 119 least one symbol with that type, and then xbacktrace could fail. */
120enum pvec_type gdb_pvec_type EXTERNALLY_VISIBLE = PVEC_TYPE_MASK; 120enum pvec_type gdb_pvec_type EXTERNALLY_VISIBLE = PVEC_TYPE_MASK;
121 121
122/* Command line args from shell, as list of strings. */
123Lisp_Object Vcommand_line_args;
124
125/* The name under which Emacs was invoked, with any leading directory
126 names discarded. */
127Lisp_Object Vinvocation_name;
128
129/* The directory name from which Emacs was invoked. */
130Lisp_Object Vinvocation_directory;
131
132/* The directory name in which to find subdirs such as lisp and etc.
133 nil means get them only from PATH_LOADSEARCH. */
134Lisp_Object Vinstallation_directory;
135
136/* The values of `current-time' before and after Emacs initialization. */
137Lisp_Object Vbefore_init_time, Vafter_init_time;
138
139/* Hook run by `kill-emacs' before it does really anything. */
140Lisp_Object Vkill_emacs_hook;
141
142/* Empty lisp strings. To avoid having to build any others. */ 122/* Empty lisp strings. To avoid having to build any others. */
143Lisp_Object empty_unibyte_string, empty_multibyte_string; 123Lisp_Object empty_unibyte_string, empty_multibyte_string;
144 124
145/* Search path separator. */
146Lisp_Object Vpath_separator;
147
148/* Set nonzero after Emacs has started up the first time. 125/* Set nonzero after Emacs has started up the first time.
149 Prevents reinitialization of the Lisp world and keymaps 126 Prevents reinitialization of the Lisp world and keymaps
150 on subsequent starts. */ 127 on subsequent starts. */
@@ -163,33 +140,10 @@ extern int malloc_set_state (void*);
163int malloc_using_checking; 140int malloc_using_checking;
164#endif 141#endif
165 142
166/* Variable whose value is symbol giving operating system type. */
167Lisp_Object Vsystem_type;
168
169/* Variable whose value is string giving configuration built for. */
170Lisp_Object Vsystem_configuration;
171
172/* Variable whose value is string giving configuration options,
173 for use when reporting bugs. */
174Lisp_Object Vsystem_configuration_options;
175
176Lisp_Object Qfile_name_handler_alist; 143Lisp_Object Qfile_name_handler_alist;
177 144
178Lisp_Object Qrisky_local_variable; 145Lisp_Object Qrisky_local_variable;
179 146
180/* Current and previous system locales for messages and time. */
181Lisp_Object Vsystem_messages_locale;
182Lisp_Object Vprevious_system_messages_locale;
183Lisp_Object Vsystem_time_locale;
184Lisp_Object Vprevious_system_time_locale;
185
186/* Copyright and version info. The version number may be updated by
187 Lisp code. */
188Lisp_Object Vemacs_copyright, Vemacs_version;
189
190/* Alist of external libraries and files implementing them. */
191Lisp_Object Vdynamic_library_alist;
192
193/* If non-zero, emacs should not attempt to use a window-specific code, 147/* If non-zero, emacs should not attempt to use a window-specific code,
194 but instead should use the virtual terminal under which it was started. */ 148 but instead should use the virtual terminal under which it was started. */
195int inhibit_window_system; 149int inhibit_window_system;
@@ -221,15 +175,6 @@ static unsigned long heap_bss_diff;
221 175
222int noninteractive; 176int noninteractive;
223 177
224/* Value of Lisp variable `noninteractive'.
225 Normally same as C variable `noninteractive'
226 but nothing terrible happens if user sets this one. */
227
228int noninteractive1;
229
230/* Nonzero means Emacs was run in --quick mode. */
231int inhibit_x_resources;
232
233/* Nonzero means remove site-lisp directories from load-path. */ 178/* Nonzero means remove site-lisp directories from load-path. */
234int no_site_lisp; 179int no_site_lisp;
235 180
@@ -2420,11 +2365,11 @@ syms_of_emacs (void)
2420 defsubr (&Sdaemonp); 2365 defsubr (&Sdaemonp);
2421 defsubr (&Sdaemon_initialized); 2366 defsubr (&Sdaemon_initialized);
2422 2367
2423 DEFVAR_LISP ("command-line-args", &Vcommand_line_args, 2368 DEFVAR_LISP ("command-line-args", Vcommand_line_args,
2424 doc: /* Args passed by shell to Emacs, as a list of strings. 2369 doc: /* Args passed by shell to Emacs, as a list of strings.
2425Many arguments are deleted from the list as they are processed. */); 2370Many arguments are deleted from the list as they are processed. */);
2426 2371
2427 DEFVAR_LISP ("system-type", &Vsystem_type, 2372 DEFVAR_LISP ("system-type", Vsystem_type,
2428 doc: /* The value is a symbol indicating the type of operating system you are using. 2373 doc: /* The value is a symbol indicating the type of operating system you are using.
2429Special values: 2374Special values:
2430 `gnu' compiled for a GNU Hurd system. 2375 `gnu' compiled for a GNU Hurd system.
@@ -2439,20 +2384,20 @@ hpux, irix, usg-unix-v) indicates some sort of Unix system. */);
2439 Vsystem_type = intern_c_string (SYSTEM_TYPE); 2384 Vsystem_type = intern_c_string (SYSTEM_TYPE);
2440 /* Above values are from SYSTEM_TYPE in src/s/*.h. */ 2385 /* Above values are from SYSTEM_TYPE in src/s/*.h. */
2441 2386
2442 DEFVAR_LISP ("system-configuration", &Vsystem_configuration, 2387 DEFVAR_LISP ("system-configuration", Vsystem_configuration,
2443 doc: /* Value is string indicating configuration Emacs was built for. 2388 doc: /* Value is string indicating configuration Emacs was built for.
2444On MS-Windows, the value reflects the OS flavor and version on which 2389On MS-Windows, the value reflects the OS flavor and version on which
2445Emacs is running. */); 2390Emacs is running. */);
2446 Vsystem_configuration = build_string (EMACS_CONFIGURATION); 2391 Vsystem_configuration = build_string (EMACS_CONFIGURATION);
2447 2392
2448 DEFVAR_LISP ("system-configuration-options", &Vsystem_configuration_options, 2393 DEFVAR_LISP ("system-configuration-options", Vsystem_configuration_options,
2449 doc: /* String containing the configuration options Emacs was built with. */); 2394 doc: /* String containing the configuration options Emacs was built with. */);
2450 Vsystem_configuration_options = build_string (EMACS_CONFIG_OPTIONS); 2395 Vsystem_configuration_options = build_string (EMACS_CONFIG_OPTIONS);
2451 2396
2452 DEFVAR_BOOL ("noninteractive", &noninteractive1, 2397 DEFVAR_BOOL ("noninteractive", noninteractive1,
2453 doc: /* Non-nil means Emacs is running without interactive terminal. */); 2398 doc: /* Non-nil means Emacs is running without interactive terminal. */);
2454 2399
2455 DEFVAR_LISP ("kill-emacs-hook", &Vkill_emacs_hook, 2400 DEFVAR_LISP ("kill-emacs-hook", Vkill_emacs_hook,
2456 doc: /* Hook to be run when `kill-emacs' is called. 2401 doc: /* Hook to be run when `kill-emacs' is called.
2457Since `kill-emacs' may be invoked when the terminal is disconnected (or 2402Since `kill-emacs' may be invoked when the terminal is disconnected (or
2458in other similar situations), functions placed on this hook should not 2403in other similar situations), functions placed on this hook should not
@@ -2463,7 +2408,7 @@ Before Emacs 24.1, the hook was not run in batch mode, i.e., if
2463`noninteractive' was non-nil. */); 2408`noninteractive' was non-nil. */);
2464 Vkill_emacs_hook = Qnil; 2409 Vkill_emacs_hook = Qnil;
2465 2410
2466 DEFVAR_LISP ("path-separator", &Vpath_separator, 2411 DEFVAR_LISP ("path-separator", Vpath_separator,
2467 doc: /* String containing the character that separates directories in 2412 doc: /* String containing the character that separates directories in
2468search paths, such as PATH and other similar environment variables. */); 2413search paths, such as PATH and other similar environment variables. */);
2469 { 2414 {
@@ -2471,60 +2416,60 @@ search paths, such as PATH and other similar environment variables. */);
2471 Vpath_separator = make_string (&c, 1); 2416 Vpath_separator = make_string (&c, 1);
2472 } 2417 }
2473 2418
2474 DEFVAR_LISP ("invocation-name", &Vinvocation_name, 2419 DEFVAR_LISP ("invocation-name", Vinvocation_name,
2475 doc: /* The program name that was used to run Emacs. 2420 doc: /* The program name that was used to run Emacs.
2476Any directory names are omitted. */); 2421Any directory names are omitted. */);
2477 2422
2478 DEFVAR_LISP ("invocation-directory", &Vinvocation_directory, 2423 DEFVAR_LISP ("invocation-directory", Vinvocation_directory,
2479 doc: /* The directory in which the Emacs executable was found, to run it. 2424 doc: /* The directory in which the Emacs executable was found, to run it.
2480The value is nil if that directory's name is not known. */); 2425The value is nil if that directory's name is not known. */);
2481 2426
2482 DEFVAR_LISP ("installation-directory", &Vinstallation_directory, 2427 DEFVAR_LISP ("installation-directory", Vinstallation_directory,
2483 doc: /* A directory within which to look for the `lib-src' and `etc' directories. 2428 doc: /* A directory within which to look for the `lib-src' and `etc' directories.
2484This is non-nil when we can't find those directories in their standard 2429This is non-nil when we can't find those directories in their standard
2485installed locations, but we can find them near where the Emacs executable 2430installed locations, but we can find them near where the Emacs executable
2486was found. */); 2431was found. */);
2487 Vinstallation_directory = Qnil; 2432 Vinstallation_directory = Qnil;
2488 2433
2489 DEFVAR_LISP ("system-messages-locale", &Vsystem_messages_locale, 2434 DEFVAR_LISP ("system-messages-locale", Vsystem_messages_locale,
2490 doc: /* System locale for messages. */); 2435 doc: /* System locale for messages. */);
2491 Vsystem_messages_locale = Qnil; 2436 Vsystem_messages_locale = Qnil;
2492 2437
2493 DEFVAR_LISP ("previous-system-messages-locale", 2438 DEFVAR_LISP ("previous-system-messages-locale",
2494 &Vprevious_system_messages_locale, 2439 Vprevious_system_messages_locale,
2495 doc: /* Most recently used system locale for messages. */); 2440 doc: /* Most recently used system locale for messages. */);
2496 Vprevious_system_messages_locale = Qnil; 2441 Vprevious_system_messages_locale = Qnil;
2497 2442
2498 DEFVAR_LISP ("system-time-locale", &Vsystem_time_locale, 2443 DEFVAR_LISP ("system-time-locale", Vsystem_time_locale,
2499 doc: /* System locale for time. */); 2444 doc: /* System locale for time. */);
2500 Vsystem_time_locale = Qnil; 2445 Vsystem_time_locale = Qnil;
2501 2446
2502 DEFVAR_LISP ("previous-system-time-locale", &Vprevious_system_time_locale, 2447 DEFVAR_LISP ("previous-system-time-locale", Vprevious_system_time_locale,
2503 doc: /* Most recently used system locale for time. */); 2448 doc: /* Most recently used system locale for time. */);
2504 Vprevious_system_time_locale = Qnil; 2449 Vprevious_system_time_locale = Qnil;
2505 2450
2506 DEFVAR_LISP ("before-init-time", &Vbefore_init_time, 2451 DEFVAR_LISP ("before-init-time", Vbefore_init_time,
2507 doc: /* Value of `current-time' before Emacs begins initialization. */); 2452 doc: /* Value of `current-time' before Emacs begins initialization. */);
2508 Vbefore_init_time = Qnil; 2453 Vbefore_init_time = Qnil;
2509 2454
2510 DEFVAR_LISP ("after-init-time", &Vafter_init_time, 2455 DEFVAR_LISP ("after-init-time", Vafter_init_time,
2511 doc: /* Value of `current-time' after loading the init files. 2456 doc: /* Value of `current-time' after loading the init files.
2512This is nil during initialization. */); 2457This is nil during initialization. */);
2513 Vafter_init_time = Qnil; 2458 Vafter_init_time = Qnil;
2514 2459
2515 DEFVAR_BOOL ("inhibit-x-resources", &inhibit_x_resources, 2460 DEFVAR_BOOL ("inhibit-x-resources", inhibit_x_resources,
2516 doc: /* If non-nil, X resources, Windows Registry settings, and NS defaults are not used. */); 2461 doc: /* If non-nil, X resources, Windows Registry settings, and NS defaults are not used. */);
2517 inhibit_x_resources = 0; 2462 inhibit_x_resources = 0;
2518 2463
2519 DEFVAR_LISP ("emacs-copyright", &Vemacs_copyright, 2464 DEFVAR_LISP ("emacs-copyright", Vemacs_copyright,
2520 doc: /* Short copyright string for this version of Emacs. */); 2465 doc: /* Short copyright string for this version of Emacs. */);
2521 Vemacs_copyright = build_string (emacs_copyright); 2466 Vemacs_copyright = build_string (emacs_copyright);
2522 2467
2523 DEFVAR_LISP ("emacs-version", &Vemacs_version, 2468 DEFVAR_LISP ("emacs-version", Vemacs_version,
2524 doc: /* Version numbers of this version of Emacs. */); 2469 doc: /* Version numbers of this version of Emacs. */);
2525 Vemacs_version = build_string (emacs_version); 2470 Vemacs_version = build_string (emacs_version);
2526 2471
2527 DEFVAR_LISP ("dynamic-library-alist", &Vdynamic_library_alist, 2472 DEFVAR_LISP ("dynamic-library-alist", Vdynamic_library_alist,
2528 doc: /* Alist of dynamic libraries vs external files implementing them. 2473 doc: /* Alist of dynamic libraries vs external files implementing them.
2529Each element is a list (LIBRARY FILE...), where the car is a symbol 2474Each element is a list (LIBRARY FILE...), where the car is a symbol
2530representing a supported external library, and the rest are strings giving 2475representing a supported external library, and the rest are strings giving
diff --git a/src/eval.c b/src/eval.c
index 709a54fc2ec..c2d64d6ba3b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -58,7 +58,7 @@ int gcpro_level;
58#endif 58#endif
59 59
60Lisp_Object Qautoload, Qmacro, Qexit, Qinteractive, Qcommandp, Qdefun; 60Lisp_Object Qautoload, Qmacro, Qexit, Qinteractive, Qcommandp, Qdefun;
61Lisp_Object Qinhibit_quit, Vinhibit_quit, Vquit_flag; 61Lisp_Object Qinhibit_quit;
62Lisp_Object Qand_rest, Qand_optional; 62Lisp_Object Qand_rest, Qand_optional;
63Lisp_Object Qdebug_on_error; 63Lisp_Object Qdebug_on_error;
64Lisp_Object Qdeclare; 64Lisp_Object Qdeclare;
@@ -89,56 +89,10 @@ struct specbinding *specpdl;
89 89
90struct specbinding *specpdl_ptr; 90struct specbinding *specpdl_ptr;
91 91
92/* Maximum size allowed for specpdl allocation */
93
94EMACS_INT max_specpdl_size;
95
96/* Depth in Lisp evaluations and function calls. */ 92/* Depth in Lisp evaluations and function calls. */
97 93
98EMACS_INT lisp_eval_depth; 94EMACS_INT lisp_eval_depth;
99 95
100/* Maximum allowed depth in Lisp evaluations and function calls. */
101
102EMACS_INT max_lisp_eval_depth;
103
104/* Nonzero means enter debugger before next function call */
105
106int debug_on_next_call;
107
108/* Non-zero means debugger may continue. This is zero when the
109 debugger is called during redisplay, where it might not be safe to
110 continue the interrupted redisplay. */
111
112int debugger_may_continue;
113
114/* List of conditions (non-nil atom means all) which cause a backtrace
115 if an error is handled by the command loop's error handler. */
116
117Lisp_Object Vstack_trace_on_error;
118
119/* List of conditions (non-nil atom means all) which enter the debugger
120 if an error is handled by the command loop's error handler. */
121
122Lisp_Object Vdebug_on_error;
123
124/* List of conditions and regexps specifying error messages which
125 do not enter the debugger even if Vdebug_on_error says they should. */
126
127Lisp_Object Vdebug_ignored_errors;
128
129/* Non-nil means call the debugger even if the error will be handled. */
130
131Lisp_Object Vdebug_on_signal;
132
133/* Hook for edebug to use. */
134
135Lisp_Object Vsignal_hook_function;
136
137/* Nonzero means enter debugger if a quit signal
138 is handled by the command loop's error handler. */
139
140int debug_on_quit;
141
142/* The value of num_nonmacro_input_events as of the last time we 96/* The value of num_nonmacro_input_events as of the last time we
143 started to enter the debugger. If we decide to enter the debugger 97 started to enter the debugger. If we decide to enter the debugger
144 again when this is still equal to num_nonmacro_input_events, then we 98 again when this is still equal to num_nonmacro_input_events, then we
@@ -148,8 +102,6 @@ int debug_on_quit;
148 102
149int when_entered_debugger; 103int when_entered_debugger;
150 104
151Lisp_Object Vdebugger;
152
153/* The function from which the last `signal' was called. Set in 105/* The function from which the last `signal' was called. Set in
154 Fsignal. */ 106 Fsignal. */
155 107
@@ -161,10 +113,6 @@ Lisp_Object Vsignaling_function;
161 113
162int handling_signal; 114int handling_signal;
163 115
164/* Function to process declarations in defmacro forms. */
165
166Lisp_Object Vmacro_declaration_function;
167
168static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*); 116static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*);
169static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN; 117static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN;
170static int interactive_p (int); 118static int interactive_p (int);
@@ -3505,7 +3453,7 @@ mark_backtrace (void)
3505void 3453void
3506syms_of_eval (void) 3454syms_of_eval (void)
3507{ 3455{
3508 DEFVAR_INT ("max-specpdl-size", &max_specpdl_size, 3456 DEFVAR_INT ("max-specpdl-size", max_specpdl_size,
3509 doc: /* *Limit on number of Lisp variable bindings and `unwind-protect's. 3457 doc: /* *Limit on number of Lisp variable bindings and `unwind-protect's.
3510If Lisp code tries to increase the total number past this amount, 3458If Lisp code tries to increase the total number past this amount,
3511an error is signaled. 3459an error is signaled.
@@ -3513,7 +3461,7 @@ You can safely use a value considerably larger than the default value,
3513if that proves inconveniently small. However, if you increase it too far, 3461if that proves inconveniently small. However, if you increase it too far,
3514Emacs could run out of memory trying to make the stack bigger. */); 3462Emacs could run out of memory trying to make the stack bigger. */);
3515 3463
3516 DEFVAR_INT ("max-lisp-eval-depth", &max_lisp_eval_depth, 3464 DEFVAR_INT ("max-lisp-eval-depth", max_lisp_eval_depth,
3517 doc: /* *Limit on depth in `eval', `apply' and `funcall' before error. 3465 doc: /* *Limit on depth in `eval', `apply' and `funcall' before error.
3518 3466
3519This limit serves to catch infinite recursions for you before they cause 3467This limit serves to catch infinite recursions for you before they cause
@@ -3522,7 +3470,7 @@ You can safely make it considerably larger than its default value,
3522if that proves inconveniently small. However, if you increase it too far, 3470if that proves inconveniently small. However, if you increase it too far,
3523Emacs could overflow the real C stack, and crash. */); 3471Emacs could overflow the real C stack, and crash. */);
3524 3472
3525 DEFVAR_LISP ("quit-flag", &Vquit_flag, 3473 DEFVAR_LISP ("quit-flag", Vquit_flag,
3526 doc: /* Non-nil causes `eval' to abort, unless `inhibit-quit' is non-nil. 3474 doc: /* Non-nil causes `eval' to abort, unless `inhibit-quit' is non-nil.
3527If the value is t, that means do an ordinary quit. 3475If the value is t, that means do an ordinary quit.
3528If the value equals `throw-on-input', that means quit by throwing 3476If the value equals `throw-on-input', that means quit by throwing
@@ -3531,7 +3479,7 @@ Typing C-g sets `quit-flag' to t, regardless of `inhibit-quit',
3531but `inhibit-quit' non-nil prevents anything from taking notice of that. */); 3479but `inhibit-quit' non-nil prevents anything from taking notice of that. */);
3532 Vquit_flag = Qnil; 3480 Vquit_flag = Qnil;
3533 3481
3534 DEFVAR_LISP ("inhibit-quit", &Vinhibit_quit, 3482 DEFVAR_LISP ("inhibit-quit", Vinhibit_quit,
3535 doc: /* Non-nil inhibits C-g quitting from happening immediately. 3483 doc: /* Non-nil inhibits C-g quitting from happening immediately.
3536Note that `quit-flag' will still be set by typing C-g, 3484Note that `quit-flag' will still be set by typing C-g,
3537so a quit will be signaled as soon as `inhibit-quit' is nil. 3485so a quit will be signaled as soon as `inhibit-quit' is nil.
@@ -3577,7 +3525,7 @@ before making `inhibit-quit' nil. */);
3577 Qdebug = intern_c_string ("debug"); 3525 Qdebug = intern_c_string ("debug");
3578 staticpro (&Qdebug); 3526 staticpro (&Qdebug);
3579 3527
3580 DEFVAR_LISP ("stack-trace-on-error", &Vstack_trace_on_error, 3528 DEFVAR_LISP ("stack-trace-on-error", Vstack_trace_on_error,
3581 doc: /* *Non-nil means errors display a backtrace buffer. 3529 doc: /* *Non-nil means errors display a backtrace buffer.
3582More precisely, this happens for any error that is handled 3530More precisely, this happens for any error that is handled
3583by the editor command loop. 3531by the editor command loop.
@@ -3585,7 +3533,7 @@ If the value is a list, an error only means to display a backtrace
3585if one of its condition symbols appears in the list. */); 3533if one of its condition symbols appears in the list. */);
3586 Vstack_trace_on_error = Qnil; 3534 Vstack_trace_on_error = Qnil;
3587 3535
3588 DEFVAR_LISP ("debug-on-error", &Vdebug_on_error, 3536 DEFVAR_LISP ("debug-on-error", Vdebug_on_error,
3589 doc: /* *Non-nil means enter debugger if an error is signaled. 3537 doc: /* *Non-nil means enter debugger if an error is signaled.
3590Does not apply to errors handled by `condition-case' or those 3538Does not apply to errors handled by `condition-case' or those
3591matched by `debug-ignored-errors'. 3539matched by `debug-ignored-errors'.
@@ -3597,7 +3545,7 @@ The command `toggle-debug-on-error' toggles this.
3597See also the variable `debug-on-quit'. */); 3545See also the variable `debug-on-quit'. */);
3598 Vdebug_on_error = Qnil; 3546 Vdebug_on_error = Qnil;
3599 3547
3600 DEFVAR_LISP ("debug-ignored-errors", &Vdebug_ignored_errors, 3548 DEFVAR_LISP ("debug-ignored-errors", Vdebug_ignored_errors,
3601 doc: /* *List of errors for which the debugger should not be called. 3549 doc: /* *List of errors for which the debugger should not be called.
3602Each element may be a condition-name or a regexp that matches error messages. 3550Each element may be a condition-name or a regexp that matches error messages.
3603If any element applies to a given error, that error skips the debugger 3551If any element applies to a given error, that error skips the debugger
@@ -3606,21 +3554,21 @@ This overrides the variable `debug-on-error'.
3606It does not apply to errors handled by `condition-case'. */); 3554It does not apply to errors handled by `condition-case'. */);
3607 Vdebug_ignored_errors = Qnil; 3555 Vdebug_ignored_errors = Qnil;
3608 3556
3609 DEFVAR_BOOL ("debug-on-quit", &debug_on_quit, 3557 DEFVAR_BOOL ("debug-on-quit", debug_on_quit,
3610 doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example). 3558 doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
3611Does not apply if quit is handled by a `condition-case'. */); 3559Does not apply if quit is handled by a `condition-case'. */);
3612 debug_on_quit = 0; 3560 debug_on_quit = 0;
3613 3561
3614 DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call, 3562 DEFVAR_BOOL ("debug-on-next-call", debug_on_next_call,
3615 doc: /* Non-nil means enter debugger before next `eval', `apply' or `funcall'. */); 3563 doc: /* Non-nil means enter debugger before next `eval', `apply' or `funcall'. */);
3616 3564
3617 DEFVAR_BOOL ("debugger-may-continue", &debugger_may_continue, 3565 DEFVAR_BOOL ("debugger-may-continue", debugger_may_continue,
3618 doc: /* Non-nil means debugger may continue execution. 3566 doc: /* Non-nil means debugger may continue execution.
3619This is nil when the debugger is called under circumstances where it 3567This is nil when the debugger is called under circumstances where it
3620might not be safe to continue. */); 3568might not be safe to continue. */);
3621 debugger_may_continue = 1; 3569 debugger_may_continue = 1;
3622 3570
3623 DEFVAR_LISP ("debugger", &Vdebugger, 3571 DEFVAR_LISP ("debugger", Vdebugger,
3624 doc: /* Function to call to invoke debugger. 3572 doc: /* Function to call to invoke debugger.
3625If due to frame exit, args are `exit' and the value being returned; 3573If due to frame exit, args are `exit' and the value being returned;
3626 this function's value will be returned instead of that. 3574 this function's value will be returned instead of that.
@@ -3629,19 +3577,19 @@ If due to `apply' or `funcall' entry, one arg, `lambda'.
3629If due to `eval' entry, one arg, t. */); 3577If due to `eval' entry, one arg, t. */);
3630 Vdebugger = Qnil; 3578 Vdebugger = Qnil;
3631 3579
3632 DEFVAR_LISP ("signal-hook-function", &Vsignal_hook_function, 3580 DEFVAR_LISP ("signal-hook-function", Vsignal_hook_function,
3633 doc: /* If non-nil, this is a function for `signal' to call. 3581 doc: /* If non-nil, this is a function for `signal' to call.
3634It receives the same arguments that `signal' was given. 3582It receives the same arguments that `signal' was given.
3635The Edebug package uses this to regain control. */); 3583The Edebug package uses this to regain control. */);
3636 Vsignal_hook_function = Qnil; 3584 Vsignal_hook_function = Qnil;
3637 3585
3638 DEFVAR_LISP ("debug-on-signal", &Vdebug_on_signal, 3586 DEFVAR_LISP ("debug-on-signal", Vdebug_on_signal,
3639 doc: /* *Non-nil means call the debugger regardless of condition handlers. 3587 doc: /* *Non-nil means call the debugger regardless of condition handlers.
3640Note that `debug-on-error', `debug-on-quit' and friends 3588Note that `debug-on-error', `debug-on-quit' and friends
3641still determine whether to handle the particular condition. */); 3589still determine whether to handle the particular condition. */);
3642 Vdebug_on_signal = Qnil; 3590 Vdebug_on_signal = Qnil;
3643 3591
3644 DEFVAR_LISP ("macro-declaration-function", &Vmacro_declaration_function, 3592 DEFVAR_LISP ("macro-declaration-function", Vmacro_declaration_function,
3645 doc: /* Function to process declarations in a macro definition. 3593 doc: /* Function to process declarations in a macro definition.
3646The function will be called with two args MACRO and DECL. 3594The function will be called with two args MACRO and DECL.
3647MACRO is the name of the macro being defined. 3595MACRO is the name of the macro being defined.
diff --git a/src/fileio.c b/src/fileio.c
index 737eeaddaec..b12f92b7b8a 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -122,17 +122,6 @@ int auto_save_error_occurred;
122 auto saving and recovering a file. */ 122 auto saving and recovering a file. */
123Lisp_Object Qauto_save_coding; 123Lisp_Object Qauto_save_coding;
124 124
125/* Coding system for file names, or nil if none. */
126Lisp_Object Vfile_name_coding_system;
127
128/* Coding system for file names used only when
129 Vfile_name_coding_system is nil. */
130Lisp_Object Vdefault_file_name_coding_system;
131
132/* Alist of elements (REGEXP . HANDLER) for file names
133 whose I/O is done with a special handler. */
134Lisp_Object Vfile_name_handler_alist;
135
136/* Property name of a file name handler, 125/* Property name of a file name handler,
137 which gives a list of operations it handles.. */ 126 which gives a list of operations it handles.. */
138Lisp_Object Qoperations; 127Lisp_Object Qoperations;
@@ -140,47 +129,18 @@ Lisp_Object Qoperations;
140/* Lisp functions for translating file formats */ 129/* Lisp functions for translating file formats */
141Lisp_Object Qformat_decode, Qformat_annotate_function; 130Lisp_Object Qformat_decode, Qformat_annotate_function;
142 131
143/* Function to be called to decide a coding system of a reading file. */
144Lisp_Object Vset_auto_coding_function;
145
146/* Functions to be called to process text properties in inserted file. */
147Lisp_Object Vafter_insert_file_functions;
148
149/* Lisp function for setting buffer-file-coding-system and the 132/* Lisp function for setting buffer-file-coding-system and the
150 multibyteness of the current buffer after inserting a file. */ 133 multibyteness of the current buffer after inserting a file. */
151Lisp_Object Qafter_insert_file_set_coding; 134Lisp_Object Qafter_insert_file_set_coding;
152 135
153/* Functions to be called to create text property annotations for file. */
154Lisp_Object Vwrite_region_annotate_functions;
155Lisp_Object Qwrite_region_annotate_functions; 136Lisp_Object Qwrite_region_annotate_functions;
156Lisp_Object Vwrite_region_post_annotation_function;
157
158/* During build_annotations, each time an annotation function is called,
159 this holds the annotations made by the previous functions. */
160Lisp_Object Vwrite_region_annotations_so_far;
161
162/* Each time an annotation function changes the buffer, the new buffer 137/* Each time an annotation function changes the buffer, the new buffer
163 is added here. */ 138 is added here. */
164Lisp_Object Vwrite_region_annotation_buffers; 139Lisp_Object Vwrite_region_annotation_buffers;
165 140
166/* File name in which we write a list of all our auto save files. */
167Lisp_Object Vauto_save_list_file_name;
168
169/* Whether or not files are auto-saved into themselves. */
170Lisp_Object Vauto_save_visited_file_name;
171
172/* Whether or not to continue auto-saving after a large deletion. */
173Lisp_Object Vauto_save_include_big_deletions;
174
175#ifdef HAVE_FSYNC 141#ifdef HAVE_FSYNC
176/* Nonzero means skip the call to fsync in Fwrite-region. */
177int write_region_inhibit_fsync;
178#endif 142#endif
179 143
180/* Non-zero means call move-file-to-trash in Fdelete_file or
181 Fdelete_directory_internal. */
182int delete_by_moving_to_trash;
183
184Lisp_Object Qdelete_by_moving_to_trash; 144Lisp_Object Qdelete_by_moving_to_trash;
185 145
186/* Lisp function for moving files to trash. */ 146/* Lisp function for moving files to trash. */
@@ -193,19 +153,8 @@ Lisp_Object Qcopy_directory;
193Lisp_Object Qdelete_directory; 153Lisp_Object Qdelete_directory;
194 154
195#ifdef WINDOWSNT 155#ifdef WINDOWSNT
196extern Lisp_Object Vw32_get_true_file_attributes;
197#endif 156#endif
198 157
199/* These variables describe handlers that have "already" had a chance
200 to handle the current operation.
201
202 Vinhibit_file_name_handlers is a list of file name handlers.
203 Vinhibit_file_name_operation is the operation being handled.
204 If we try to handle that operation, we ignore those handlers. */
205
206static Lisp_Object Vinhibit_file_name_handlers;
207static Lisp_Object Vinhibit_file_name_operation;
208
209Lisp_Object Qfile_error, Qfile_already_exists, Qfile_date_error; 158Lisp_Object Qfile_error, Qfile_already_exists, Qfile_date_error;
210Lisp_Object Qexcl; 159Lisp_Object Qexcl;
211Lisp_Object Qfile_name_history; 160Lisp_Object Qfile_name_history;
@@ -5638,13 +5587,13 @@ syms_of_fileio (void)
5638 staticpro (&Qfind_buffer_file_type); 5587 staticpro (&Qfind_buffer_file_type);
5639#endif /* DOS_NT */ 5588#endif /* DOS_NT */
5640 5589
5641 DEFVAR_LISP ("file-name-coding-system", &Vfile_name_coding_system, 5590 DEFVAR_LISP ("file-name-coding-system", Vfile_name_coding_system,
5642 doc: /* *Coding system for encoding file names. 5591 doc: /* *Coding system for encoding file names.
5643If it is nil, `default-file-name-coding-system' (which see) is used. */); 5592If it is nil, `default-file-name-coding-system' (which see) is used. */);
5644 Vfile_name_coding_system = Qnil; 5593 Vfile_name_coding_system = Qnil;
5645 5594
5646 DEFVAR_LISP ("default-file-name-coding-system", 5595 DEFVAR_LISP ("default-file-name-coding-system",
5647 &Vdefault_file_name_coding_system, 5596 Vdefault_file_name_coding_system,
5648 doc: /* Default coding system for encoding file names. 5597 doc: /* Default coding system for encoding file names.
5649This variable is used only when `file-name-coding-system' is nil. 5598This variable is used only when `file-name-coding-system' is nil.
5650 5599
@@ -5679,7 +5628,7 @@ of file names regardless of the current language environment. */);
5679 Fput (Qfile_date_error, Qerror_message, 5628 Fput (Qfile_date_error, Qerror_message,
5680 make_pure_c_string ("Cannot set file date")); 5629 make_pure_c_string ("Cannot set file date"));
5681 5630
5682 DEFVAR_LISP ("file-name-handler-alist", &Vfile_name_handler_alist, 5631 DEFVAR_LISP ("file-name-handler-alist", Vfile_name_handler_alist,
5683 doc: /* *Alist of elements (REGEXP . HANDLER) for file names handled specially. 5632 doc: /* *Alist of elements (REGEXP . HANDLER) for file names handled specially.
5684If a file name matches REGEXP, then all I/O on that file is done by calling 5633If a file name matches REGEXP, then all I/O on that file is done by calling
5685HANDLER. 5634HANDLER.
@@ -5695,7 +5644,7 @@ for its argument. */);
5695 Vfile_name_handler_alist = Qnil; 5644 Vfile_name_handler_alist = Qnil;
5696 5645
5697 DEFVAR_LISP ("set-auto-coding-function", 5646 DEFVAR_LISP ("set-auto-coding-function",
5698 &Vset_auto_coding_function, 5647 Vset_auto_coding_function,
5699 doc: /* If non-nil, a function to call to decide a coding system of file. 5648 doc: /* If non-nil, a function to call to decide a coding system of file.
5700Two arguments are passed to this function: the file name 5649Two arguments are passed to this function: the file name
5701and the length of a file contents following the point. 5650and the length of a file contents following the point.
@@ -5707,7 +5656,7 @@ specified in the heading lines with the format:
5707or local variable spec of the tailing lines with `coding:' tag. */); 5656or local variable spec of the tailing lines with `coding:' tag. */);
5708 Vset_auto_coding_function = Qnil; 5657 Vset_auto_coding_function = Qnil;
5709 5658
5710 DEFVAR_LISP ("after-insert-file-functions", &Vafter_insert_file_functions, 5659 DEFVAR_LISP ("after-insert-file-functions", Vafter_insert_file_functions,
5711 doc: /* A list of functions to be called at the end of `insert-file-contents'. 5660 doc: /* A list of functions to be called at the end of `insert-file-contents'.
5712Each is passed one argument, the number of characters inserted, 5661Each is passed one argument, the number of characters inserted,
5713with point at the start of the inserted text. Each function 5662with point at the start of the inserted text. Each function
@@ -5717,7 +5666,7 @@ If `insert-file-contents' is intercepted by a handler from
5717functions in `after-insert-file-functions' if appropriate. */); 5666functions in `after-insert-file-functions' if appropriate. */);
5718 Vafter_insert_file_functions = Qnil; 5667 Vafter_insert_file_functions = Qnil;
5719 5668
5720 DEFVAR_LISP ("write-region-annotate-functions", &Vwrite_region_annotate_functions, 5669 DEFVAR_LISP ("write-region-annotate-functions", Vwrite_region_annotate_functions,
5721 doc: /* A list of functions to be called at the start of `write-region'. 5670 doc: /* A list of functions to be called at the start of `write-region'.
5722Each is passed two arguments, START and END as for `write-region'. 5671Each is passed two arguments, START and END as for `write-region'.
5723These are usually two numbers but not always; see the documentation 5672These are usually two numbers but not always; see the documentation
@@ -5746,7 +5695,7 @@ buffer current. */);
5746 = intern_c_string ("write-region-annotate-functions"); 5695 = intern_c_string ("write-region-annotate-functions");
5747 5696
5748 DEFVAR_LISP ("write-region-post-annotation-function", 5697 DEFVAR_LISP ("write-region-post-annotation-function",
5749 &Vwrite_region_post_annotation_function, 5698 Vwrite_region_post_annotation_function,
5750 doc: /* Function to call after `write-region' completes. 5699 doc: /* Function to call after `write-region' completes.
5751The function is called with no arguments. If one or more of the 5700The function is called with no arguments. If one or more of the
5752annotation functions in `write-region-annotate-functions' changed the 5701annotation functions in `write-region-annotate-functions' changed the
@@ -5757,34 +5706,34 @@ buffer. The relevant buffer is current during each function call. */);
5757 staticpro (&Vwrite_region_annotation_buffers); 5706 staticpro (&Vwrite_region_annotation_buffers);
5758 5707
5759 DEFVAR_LISP ("write-region-annotations-so-far", 5708 DEFVAR_LISP ("write-region-annotations-so-far",
5760 &Vwrite_region_annotations_so_far, 5709 Vwrite_region_annotations_so_far,
5761 doc: /* When an annotation function is called, this holds the previous annotations. 5710 doc: /* When an annotation function is called, this holds the previous annotations.
5762These are the annotations made by other annotation functions 5711These are the annotations made by other annotation functions
5763that were already called. See also `write-region-annotate-functions'. */); 5712that were already called. See also `write-region-annotate-functions'. */);
5764 Vwrite_region_annotations_so_far = Qnil; 5713 Vwrite_region_annotations_so_far = Qnil;
5765 5714
5766 DEFVAR_LISP ("inhibit-file-name-handlers", &Vinhibit_file_name_handlers, 5715 DEFVAR_LISP ("inhibit-file-name-handlers", Vinhibit_file_name_handlers,
5767 doc: /* A list of file name handlers that temporarily should not be used. 5716 doc: /* A list of file name handlers that temporarily should not be used.
5768This applies only to the operation `inhibit-file-name-operation'. */); 5717This applies only to the operation `inhibit-file-name-operation'. */);
5769 Vinhibit_file_name_handlers = Qnil; 5718 Vinhibit_file_name_handlers = Qnil;
5770 5719
5771 DEFVAR_LISP ("inhibit-file-name-operation", &Vinhibit_file_name_operation, 5720 DEFVAR_LISP ("inhibit-file-name-operation", Vinhibit_file_name_operation,
5772 doc: /* The operation for which `inhibit-file-name-handlers' is applicable. */); 5721 doc: /* The operation for which `inhibit-file-name-handlers' is applicable. */);
5773 Vinhibit_file_name_operation = Qnil; 5722 Vinhibit_file_name_operation = Qnil;
5774 5723
5775 DEFVAR_LISP ("auto-save-list-file-name", &Vauto_save_list_file_name, 5724 DEFVAR_LISP ("auto-save-list-file-name", Vauto_save_list_file_name,
5776 doc: /* File name in which we write a list of all auto save file names. 5725 doc: /* File name in which we write a list of all auto save file names.
5777This variable is initialized automatically from `auto-save-list-file-prefix' 5726This variable is initialized automatically from `auto-save-list-file-prefix'
5778shortly after Emacs reads your `.emacs' file, if you have not yet given it 5727shortly after Emacs reads your `.emacs' file, if you have not yet given it
5779a non-nil value. */); 5728a non-nil value. */);
5780 Vauto_save_list_file_name = Qnil; 5729 Vauto_save_list_file_name = Qnil;
5781 5730
5782 DEFVAR_LISP ("auto-save-visited-file-name", &Vauto_save_visited_file_name, 5731 DEFVAR_LISP ("auto-save-visited-file-name", Vauto_save_visited_file_name,
5783 doc: /* Non-nil says auto-save a buffer in the file it is visiting, when practical. 5732 doc: /* Non-nil says auto-save a buffer in the file it is visiting, when practical.
5784Normally auto-save files are written under other names. */); 5733Normally auto-save files are written under other names. */);
5785 Vauto_save_visited_file_name = Qnil; 5734 Vauto_save_visited_file_name = Qnil;
5786 5735
5787 DEFVAR_LISP ("auto-save-include-big-deletions", &Vauto_save_include_big_deletions, 5736 DEFVAR_LISP ("auto-save-include-big-deletions", Vauto_save_include_big_deletions,
5788 doc: /* If non-nil, auto-save even if a large part of the text is deleted. 5737 doc: /* If non-nil, auto-save even if a large part of the text is deleted.
5789If nil, deleting a substantial portion of the text disables auto-save 5738If nil, deleting a substantial portion of the text disables auto-save
5790in the buffer; this is the default behavior, because the auto-save 5739in the buffer; this is the default behavior, because the auto-save
@@ -5792,14 +5741,14 @@ file is usually more useful if it contains the deleted text. */);
5792 Vauto_save_include_big_deletions = Qnil; 5741 Vauto_save_include_big_deletions = Qnil;
5793 5742
5794#ifdef HAVE_FSYNC 5743#ifdef HAVE_FSYNC
5795 DEFVAR_BOOL ("write-region-inhibit-fsync", &write_region_inhibit_fsync, 5744 DEFVAR_BOOL ("write-region-inhibit-fsync", write_region_inhibit_fsync,
5796 doc: /* *Non-nil means don't call fsync in `write-region'. 5745 doc: /* *Non-nil means don't call fsync in `write-region'.
5797This variable affects calls to `write-region' as well as save commands. 5746This variable affects calls to `write-region' as well as save commands.
5798A non-nil value may result in data loss! */); 5747A non-nil value may result in data loss! */);
5799 write_region_inhibit_fsync = 0; 5748 write_region_inhibit_fsync = 0;
5800#endif 5749#endif
5801 5750
5802 DEFVAR_BOOL ("delete-by-moving-to-trash", &delete_by_moving_to_trash, 5751 DEFVAR_BOOL ("delete-by-moving-to-trash", delete_by_moving_to_trash,
5803 doc: /* Specifies whether to use the system's trash can. 5752 doc: /* Specifies whether to use the system's trash can.
5804When non-nil, certain file deletion commands use the function 5753When non-nil, certain file deletion commands use the function
5805`move-file-to-trash' instead of deleting files outright. 5754`move-file-to-trash' instead of deleting files outright.
diff --git a/src/filelock.c b/src/filelock.c
index 6ef3a4973d5..bae6f58f024 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -46,10 +46,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
46#include "coding.h" 46#include "coding.h"
47#include "systime.h" 47#include "systime.h"
48 48
49/* The directory for writing temporary files. */
50
51Lisp_Object Vtemporary_file_directory;
52
53#ifdef CLASH_DETECTION 49#ifdef CLASH_DETECTION
54 50
55#ifdef HAVE_UTMP_H 51#ifdef HAVE_UTMP_H
@@ -732,7 +728,7 @@ init_filelock (void)
732void 728void
733syms_of_filelock (void) 729syms_of_filelock (void)
734{ 730{
735 DEFVAR_LISP ("temporary-file-directory", &Vtemporary_file_directory, 731 DEFVAR_LISP ("temporary-file-directory", Vtemporary_file_directory,
736 doc: /* The directory for writing temporary files. */); 732 doc: /* The directory for writing temporary files. */);
737 Vtemporary_file_directory = Qnil; 733 Vtemporary_file_directory = Qnil;
738 734
diff --git a/src/fns.c b/src/fns.c
index 17c65d7f050..236e498bea5 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -51,14 +51,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
51#define NULL ((POINTER_TYPE *)0) 51#define NULL ((POINTER_TYPE *)0)
52#endif 52#endif
53 53
54/* Nonzero enables use of dialog boxes for questions
55 asked by mouse commands. */
56int use_dialog_box;
57
58/* Nonzero enables use of a file dialog for file name
59 questions asked by mouse commands. */
60int use_file_dialog;
61
62Lisp_Object Qstring_lessp, Qprovide, Qrequire; 54Lisp_Object Qstring_lessp, Qprovide, Qrequire;
63Lisp_Object Qyes_or_no_p_history; 55Lisp_Object Qyes_or_no_p_history;
64Lisp_Object Qcursor_in_echo_area; 56Lisp_Object Qcursor_in_echo_area;
@@ -2558,7 +2550,7 @@ advisable. */)
2558 return ret; 2550 return ret;
2559} 2551}
2560 2552
2561Lisp_Object Vfeatures, Qsubfeatures; 2553Lisp_Object Qsubfeatures;
2562 2554
2563DEFUN ("featurep", Ffeaturep, Sfeaturep, 1, 2, 0, 2555DEFUN ("featurep", Ffeaturep, Sfeaturep, 1, 2, 0,
2564 doc: /* Return t if FEATURE is present in this Emacs. 2556 doc: /* Return t if FEATURE is present in this Emacs.
@@ -4836,7 +4828,7 @@ syms_of_fns (void)
4836 4828
4837 Fset (Qyes_or_no_p_history, Qnil); 4829 Fset (Qyes_or_no_p_history, Qnil);
4838 4830
4839 DEFVAR_LISP ("features", &Vfeatures, 4831 DEFVAR_LISP ("features", Vfeatures,
4840 doc: /* A list of symbols which are the features of the executing Emacs. 4832 doc: /* A list of symbols which are the features of the executing Emacs.
4841Used by `featurep' and `require', and altered by `provide'. */); 4833Used by `featurep' and `require', and altered by `provide'. */);
4842 Vfeatures = Fcons (intern_c_string ("emacs"), Qnil); 4834 Vfeatures = Fcons (intern_c_string ("emacs"), Qnil);
@@ -4854,7 +4846,7 @@ Used by `featurep' and `require', and altered by `provide'. */);
4854 staticpro (&Qpaper); 4846 staticpro (&Qpaper);
4855#endif /* HAVE_LANGINFO_CODESET */ 4847#endif /* HAVE_LANGINFO_CODESET */
4856 4848
4857 DEFVAR_BOOL ("use-dialog-box", &use_dialog_box, 4849 DEFVAR_BOOL ("use-dialog-box", use_dialog_box,
4858 doc: /* *Non-nil means mouse commands use dialog boxes to ask questions. 4850 doc: /* *Non-nil means mouse commands use dialog boxes to ask questions.
4859This applies to `y-or-n-p' and `yes-or-no-p' questions asked by commands 4851This applies to `y-or-n-p' and `yes-or-no-p' questions asked by commands
4860invoked by mouse clicks and mouse menu items. 4852invoked by mouse clicks and mouse menu items.
@@ -4863,7 +4855,7 @@ On some platforms, file selection dialogs are also enabled if this is
4863non-nil. */); 4855non-nil. */);
4864 use_dialog_box = 1; 4856 use_dialog_box = 1;
4865 4857
4866 DEFVAR_BOOL ("use-file-dialog", &use_file_dialog, 4858 DEFVAR_BOOL ("use-file-dialog", use_file_dialog,
4867 doc: /* *Non-nil means mouse commands use a file dialog to ask for files. 4859 doc: /* *Non-nil means mouse commands use a file dialog to ask for files.
4868This applies to commands from menus and tool bar buttons even when 4860This applies to commands from menus and tool bar buttons even when
4869they are initiated from the keyboard. If `use-dialog-box' is nil, 4861they are initiated from the keyboard. If `use-dialog-box' is nil,
diff --git a/src/font.c b/src/font.c
index 6ab349e763d..fa8e18f0100 100644
--- a/src/font.c
+++ b/src/font.c
@@ -63,8 +63,6 @@ static Lisp_Object QCf;
63 font_driver *)->list when a specified font is not found. */ 63 font_driver *)->list when a specified font is not found. */
64static Lisp_Object null_vector; 64static Lisp_Object null_vector;
65 65
66static Lisp_Object Vfont_weight_table, Vfont_slant_table, Vfont_width_table;
67
68/* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */ 66/* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */
69static Lisp_Object font_style_table; 67static Lisp_Object font_style_table;
70 68
@@ -137,8 +135,6 @@ Lisp_Object Qja, Qko;
137 135
138Lisp_Object QCuser_spec; 136Lisp_Object QCuser_spec;
139 137
140Lisp_Object Vfont_encoding_alist;
141
142/* Alist of font registry symbol and the corresponding charsets 138/* Alist of font registry symbol and the corresponding charsets
143 information. The information is retrieved from 139 information. The information is retrieved from
144 Vfont_encoding_alist on demand. 140 Vfont_encoding_alist on demand.
@@ -4976,8 +4972,6 @@ build_style_table (const struct table_entry *entry, int nelement)
4976 return table; 4972 return table;
4977} 4973}
4978 4974
4979Lisp_Object Vfont_log;
4980
4981/* The deferred font-log data of the form [ACTION ARG RESULT]. 4975/* The deferred font-log data of the form [ACTION ARG RESULT].
4982 If ACTION is not nil, that is added to the log when font_add_log is 4976 If ACTION is not nil, that is added to the log when font_add_log is
4983 called next time. At that time, ACTION is set back to nil. */ 4977 called next time. At that time, ACTION is set back to nil. */
@@ -5183,7 +5177,7 @@ syms_of_font (void)
5183 defsubr (&Sfont_info); 5177 defsubr (&Sfont_info);
5184#endif 5178#endif
5185 5179
5186 DEFVAR_LISP ("font-encoding-alist", &Vfont_encoding_alist, 5180 DEFVAR_LISP ("font-encoding-alist", Vfont_encoding_alist,
5187 doc: /* 5181 doc: /*
5188Alist of fontname patterns vs the corresponding encoding and repertory info. 5182Alist of fontname patterns vs the corresponding encoding and repertory info.
5189Each element looks like (REGEXP . (ENCODING . REPERTORY)), 5183Each element looks like (REGEXP . (ENCODING . REPERTORY)),
@@ -5210,7 +5204,7 @@ gets the repertory information by an opened font and ENCODING. */);
5210 table used by the font display code. So we make them read-only, 5204 table used by the font display code. So we make them read-only,
5211 to avoid this confusing situation. */ 5205 to avoid this confusing situation. */
5212 5206
5213 DEFVAR_LISP_NOPRO ("font-weight-table", &Vfont_weight_table, 5207 DEFVAR_LISP_NOPRO ("font-weight-table", Vfont_weight_table,
5214 doc: /* Vector of valid font weight values. 5208 doc: /* Vector of valid font weight values.
5215Each element has the form: 5209Each element has the form:
5216 [NUMERIC-VALUE SYMBOLIC-NAME ALIAS-NAME ...] 5210 [NUMERIC-VALUE SYMBOLIC-NAME ALIAS-NAME ...]
@@ -5218,13 +5212,13 @@ NUMERIC-VALUE is an integer, and SYMBOLIC-NAME and ALIAS-NAME are symbols. */);
5218 Vfont_weight_table = BUILD_STYLE_TABLE (weight_table); 5212 Vfont_weight_table = BUILD_STYLE_TABLE (weight_table);
5219 XSYMBOL (intern_c_string ("font-weight-table"))->constant = 1; 5213 XSYMBOL (intern_c_string ("font-weight-table"))->constant = 1;
5220 5214
5221 DEFVAR_LISP_NOPRO ("font-slant-table", &Vfont_slant_table, 5215 DEFVAR_LISP_NOPRO ("font-slant-table", Vfont_slant_table,
5222 doc: /* Vector of font slant symbols vs the corresponding numeric values. 5216 doc: /* Vector of font slant symbols vs the corresponding numeric values.
5223See `font-weight-table' for the format of the vector. */); 5217See `font-weight-table' for the format of the vector. */);
5224 Vfont_slant_table = BUILD_STYLE_TABLE (slant_table); 5218 Vfont_slant_table = BUILD_STYLE_TABLE (slant_table);
5225 XSYMBOL (intern_c_string ("font-slant-table"))->constant = 1; 5219 XSYMBOL (intern_c_string ("font-slant-table"))->constant = 1;
5226 5220
5227 DEFVAR_LISP_NOPRO ("font-width-table", &Vfont_width_table, 5221 DEFVAR_LISP_NOPRO ("font-width-table", Vfont_width_table,
5228 doc: /* Alist of font width symbols vs the corresponding numeric values. 5222 doc: /* Alist of font width symbols vs the corresponding numeric values.
5229See `font-weight-table' for the format of the vector. */); 5223See `font-weight-table' for the format of the vector. */);
5230 Vfont_width_table = BUILD_STYLE_TABLE (width_table); 5224 Vfont_width_table = BUILD_STYLE_TABLE (width_table);
@@ -5236,7 +5230,7 @@ See `font-weight-table' for the format of the vector. */);
5236 ASET (font_style_table, 1, Vfont_slant_table); 5230 ASET (font_style_table, 1, Vfont_slant_table);
5237 ASET (font_style_table, 2, Vfont_width_table); 5231 ASET (font_style_table, 2, Vfont_width_table);
5238 5232
5239 DEFVAR_LISP ("font-log", &Vfont_log, doc: /* 5233 DEFVAR_LISP ("font-log", Vfont_log, doc: /*
5240*Logging list of font related actions and results. 5234*Logging list of font related actions and results.
5241The value t means to suppress the logging. 5235The value t means to suppress the logging.
5242The initial value is set to nil if the environment variable 5236The initial value is set to nil if the environment variable
diff --git a/src/font.h b/src/font.h
index 55435f94899..3a8cecf6b5e 100644
--- a/src/font.h
+++ b/src/font.h
@@ -849,7 +849,6 @@ extern void syms_of_nsfont (void);
849 849
850extern Lisp_Object QCfoundry; 850extern Lisp_Object QCfoundry;
851 851
852extern Lisp_Object Vfont_log;
853extern void font_add_log (const char *, Lisp_Object, Lisp_Object); 852extern void font_add_log (const char *, Lisp_Object, Lisp_Object);
854extern void font_deferred_log (const char *, Lisp_Object, Lisp_Object); 853extern void font_deferred_log (const char *, Lisp_Object, Lisp_Object);
855 854
diff --git a/src/fontset.c b/src/fontset.c
index 8d58f4cee9a..be8ff1bd0eb 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -191,14 +191,6 @@ static int next_fontset_id;
191 font for each character. */ 191 font for each character. */
192static Lisp_Object Vdefault_fontset; 192static Lisp_Object Vdefault_fontset;
193 193
194Lisp_Object Vfont_encoding_charset_alist;
195Lisp_Object Vuse_default_ascent;
196Lisp_Object Vignore_relative_composition;
197Lisp_Object Valternate_fontname_alist;
198Lisp_Object Vfontset_alias_alist;
199Lisp_Object Vvertical_centering_font_regexp;
200Lisp_Object Votf_script_alist;
201
202/* Check if any window system is used now. */ 194/* Check if any window system is used now. */
203void (*check_window_system_func) (void); 195void (*check_window_system_func) (void);
204 196
@@ -2199,7 +2191,7 @@ syms_of_fontset (void)
2199 auto_fontset_alist = Qnil; 2191 auto_fontset_alist = Qnil;
2200 staticpro (&auto_fontset_alist); 2192 staticpro (&auto_fontset_alist);
2201 2193
2202 DEFVAR_LISP ("font-encoding-charset-alist", &Vfont_encoding_charset_alist, 2194 DEFVAR_LISP ("font-encoding-charset-alist", Vfont_encoding_charset_alist,
2203 doc: /* 2195 doc: /*
2204Alist of charsets vs the charsets to determine the preferred font encoding. 2196Alist of charsets vs the charsets to determine the preferred font encoding.
2205Each element looks like (CHARSET . ENCODING-CHARSET), 2197Each element looks like (CHARSET . ENCODING-CHARSET),
@@ -2210,7 +2202,7 @@ When a text has a property `charset' and the value is CHARSET, a font
2210whose encoding corresponds to ENCODING-CHARSET is preferred. */); 2202whose encoding corresponds to ENCODING-CHARSET is preferred. */);
2211 Vfont_encoding_charset_alist = Qnil; 2203 Vfont_encoding_charset_alist = Qnil;
2212 2204
2213 DEFVAR_LISP ("use-default-ascent", &Vuse_default_ascent, 2205 DEFVAR_LISP ("use-default-ascent", Vuse_default_ascent,
2214 doc: /* 2206 doc: /*
2215Char table of characters whose ascent values should be ignored. 2207Char table of characters whose ascent values should be ignored.
2216If an entry for a character is non-nil, the ascent value of the glyph 2208If an entry for a character is non-nil, the ascent value of the glyph
@@ -2220,7 +2212,7 @@ This affects how a composite character which contains
2220such a character is displayed on screen. */); 2212such a character is displayed on screen. */);
2221 Vuse_default_ascent = Qnil; 2213 Vuse_default_ascent = Qnil;
2222 2214
2223 DEFVAR_LISP ("ignore-relative-composition", &Vignore_relative_composition, 2215 DEFVAR_LISP ("ignore-relative-composition", Vignore_relative_composition,
2224 doc: /* 2216 doc: /*
2225Char table of characters which are not composed relatively. 2217Char table of characters which are not composed relatively.
2226If an entry for a character is non-nil, a composition sequence 2218If an entry for a character is non-nil, a composition sequence
@@ -2229,26 +2221,26 @@ the glyph of that character is put without considering
2229an ascent and descent value of a previous character. */); 2221an ascent and descent value of a previous character. */);
2230 Vignore_relative_composition = Qnil; 2222 Vignore_relative_composition = Qnil;
2231 2223
2232 DEFVAR_LISP ("alternate-fontname-alist", &Valternate_fontname_alist, 2224 DEFVAR_LISP ("alternate-fontname-alist", Valternate_fontname_alist,
2233 doc: /* Alist of fontname vs list of the alternate fontnames. 2225 doc: /* Alist of fontname vs list of the alternate fontnames.
2234When a specified font name is not found, the corresponding 2226When a specified font name is not found, the corresponding
2235alternate fontnames (if any) are tried instead. */); 2227alternate fontnames (if any) are tried instead. */);
2236 Valternate_fontname_alist = Qnil; 2228 Valternate_fontname_alist = Qnil;
2237 2229
2238 DEFVAR_LISP ("fontset-alias-alist", &Vfontset_alias_alist, 2230 DEFVAR_LISP ("fontset-alias-alist", Vfontset_alias_alist,
2239 doc: /* Alist of fontset names vs the aliases. */); 2231 doc: /* Alist of fontset names vs the aliases. */);
2240 Vfontset_alias_alist = Fcons (Fcons (FONTSET_NAME (Vdefault_fontset), 2232 Vfontset_alias_alist = Fcons (Fcons (FONTSET_NAME (Vdefault_fontset),
2241 make_pure_c_string ("fontset-default")), 2233 make_pure_c_string ("fontset-default")),
2242 Qnil); 2234 Qnil);
2243 2235
2244 DEFVAR_LISP ("vertical-centering-font-regexp", 2236 DEFVAR_LISP ("vertical-centering-font-regexp",
2245 &Vvertical_centering_font_regexp, 2237 Vvertical_centering_font_regexp,
2246 doc: /* *Regexp matching font names that require vertical centering on display. 2238 doc: /* *Regexp matching font names that require vertical centering on display.
2247When a character is displayed with such fonts, the character is displayed 2239When a character is displayed with such fonts, the character is displayed
2248at the vertical center of lines. */); 2240at the vertical center of lines. */);
2249 Vvertical_centering_font_regexp = Qnil; 2241 Vvertical_centering_font_regexp = Qnil;
2250 2242
2251 DEFVAR_LISP ("otf-script-alist", &Votf_script_alist, 2243 DEFVAR_LISP ("otf-script-alist", Votf_script_alist,
2252 doc: /* Alist of OpenType script tags vs the corresponding script names. */); 2244 doc: /* Alist of OpenType script tags vs the corresponding script names. */);
2253 Votf_script_alist = Qnil; 2245 Votf_script_alist = Qnil;
2254 2246
diff --git a/src/fontset.h b/src/fontset.h
index 15c81aa1850..0c52ce34c10 100644
--- a/src/fontset.h
+++ b/src/fontset.h
@@ -45,13 +45,6 @@ EXFUN (Fquery_fontset, 2);
45extern Lisp_Object list_fontsets (struct frame *, Lisp_Object, int); 45extern Lisp_Object list_fontsets (struct frame *, Lisp_Object, int);
46 46
47extern Lisp_Object Qlatin; 47extern Lisp_Object Qlatin;
48extern Lisp_Object Vuse_default_ascent;
49extern Lisp_Object Vignore_relative_composition;
50extern Lisp_Object Valternate_fontname_alist;
51extern Lisp_Object Vfontset_alias_alist;
52extern Lisp_Object Vvertical_centering_font_regexp;
53extern Lisp_Object Votf_script_alist;
54
55extern Lisp_Object fontset_name (int); 48extern Lisp_Object fontset_name (int);
56extern Lisp_Object fontset_ascii (int); 49extern Lisp_Object fontset_ascii (int);
57 50
diff --git a/src/frame.c b/src/frame.c
index ac15dedf716..89f58ba6a68 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -55,24 +55,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
55#endif 55#endif
56 56
57 57
58/* If we shall make pointer invisible when typing or not. */
59Lisp_Object Vmake_pointer_invisible;
60
61#ifdef HAVE_WINDOW_SYSTEM 58#ifdef HAVE_WINDOW_SYSTEM
62 59
63/* The name we're using in resource queries. Most often "emacs". */
64
65Lisp_Object Vx_resource_name;
66
67/* The application class we're using in resource queries.
68 Normally "Emacs". */
69
70Lisp_Object Vx_resource_class;
71
72/* Lower limit value of the frame opacity (alpha transparency). */
73
74Lisp_Object Vframe_alpha_lower_limit;
75
76#endif 60#endif
77 61
78#ifdef HAVE_NS 62#ifdef HAVE_NS
@@ -122,7 +106,6 @@ Lisp_Object Qtitle, Qname;
122Lisp_Object Qexplicit_name; 106Lisp_Object Qexplicit_name;
123Lisp_Object Qunsplittable; 107Lisp_Object Qunsplittable;
124Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position; 108Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position;
125Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
126Lisp_Object Qleft_fringe, Qright_fringe; 109Lisp_Object Qleft_fringe, Qright_fringe;
127Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list; 110Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
128Lisp_Object Qtty_color_mode; 111Lisp_Object Qtty_color_mode;
@@ -135,14 +118,8 @@ Lisp_Object Qalpha;
135 118
136Lisp_Object Qface_set_after_frame_default; 119Lisp_Object Qface_set_after_frame_default;
137 120
138Lisp_Object Vterminal_frame; 121static Lisp_Object Qdelete_frame_functions;
139Lisp_Object Vdefault_frame_alist;
140Lisp_Object Vdefault_frame_scroll_bars;
141Lisp_Object Vmouse_position_function;
142Lisp_Object Vmouse_highlight;
143static Lisp_Object Vdelete_frame_functions, Qdelete_frame_functions;
144 122
145int focus_follows_mouse;
146 123
147static void 124static void
148set_menu_bar_lines_1 (Lisp_Object window, int n) 125set_menu_bar_lines_1 (Lisp_Object window, int n)
@@ -4464,7 +4441,7 @@ syms_of_frame (void)
4464 } 4441 }
4465 4442
4466#ifdef HAVE_WINDOW_SYSTEM 4443#ifdef HAVE_WINDOW_SYSTEM
4467 DEFVAR_LISP ("x-resource-name", &Vx_resource_name, 4444 DEFVAR_LISP ("x-resource-name", Vx_resource_name,
4468 doc: /* The name Emacs uses to look up X resources. 4445 doc: /* The name Emacs uses to look up X resources.
4469`x-get-resource' uses this as the first component of the instance name 4446`x-get-resource' uses this as the first component of the instance name
4470when requesting resource values. 4447when requesting resource values.
@@ -4476,7 +4453,7 @@ It may be useful to bind this variable locally around a call
4476to `x-get-resource'. See also the variable `x-resource-class'. */); 4453to `x-get-resource'. See also the variable `x-resource-class'. */);
4477 Vx_resource_name = Qnil; 4454 Vx_resource_name = Qnil;
4478 4455
4479 DEFVAR_LISP ("x-resource-class", &Vx_resource_class, 4456 DEFVAR_LISP ("x-resource-class", Vx_resource_class,
4480 doc: /* The class Emacs uses to look up X resources. 4457 doc: /* The class Emacs uses to look up X resources.
4481`x-get-resource' uses this as the first component of the instance class 4458`x-get-resource' uses this as the first component of the instance class
4482when requesting resource values. 4459when requesting resource values.
@@ -4488,7 +4465,7 @@ but binding this variable locally around a call to `x-get-resource'
4488is a reasonable practice. See also the variable `x-resource-name'. */); 4465is a reasonable practice. See also the variable `x-resource-name'. */);
4489 Vx_resource_class = build_string (EMACS_CLASS); 4466 Vx_resource_class = build_string (EMACS_CLASS);
4490 4467
4491 DEFVAR_LISP ("frame-alpha-lower-limit", &Vframe_alpha_lower_limit, 4468 DEFVAR_LISP ("frame-alpha-lower-limit", Vframe_alpha_lower_limit,
4492 doc: /* The lower limit of the frame opacity (alpha transparency). 4469 doc: /* The lower limit of the frame opacity (alpha transparency).
4493The value should range from 0 (invisible) to 100 (completely opaque). 4470The value should range from 0 (invisible) to 100 (completely opaque).
4494You can also use a floating number between 0.0 and 1.0. 4471You can also use a floating number between 0.0 and 1.0.
@@ -4496,7 +4473,7 @@ The default is 20. */);
4496 Vframe_alpha_lower_limit = make_number (20); 4473 Vframe_alpha_lower_limit = make_number (20);
4497#endif 4474#endif
4498 4475
4499 DEFVAR_LISP ("default-frame-alist", &Vdefault_frame_alist, 4476 DEFVAR_LISP ("default-frame-alist", Vdefault_frame_alist,
4500 doc: /* Alist of default values for frame creation. 4477 doc: /* Alist of default values for frame creation.
4501These may be set in your init file, like this: 4478These may be set in your init file, like this:
4502 (setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1))) 4479 (setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1)))
@@ -4511,7 +4488,7 @@ The `menu-bar-lines' element of the list controls whether new frames
4511Setting this variable does not affect existing frames, only new ones. */); 4488Setting this variable does not affect existing frames, only new ones. */);
4512 Vdefault_frame_alist = Qnil; 4489 Vdefault_frame_alist = Qnil;
4513 4490
4514 DEFVAR_LISP ("default-frame-scroll-bars", &Vdefault_frame_scroll_bars, 4491 DEFVAR_LISP ("default-frame-scroll-bars", Vdefault_frame_scroll_bars,
4515 doc: /* Default position of scroll bars on this window-system. */); 4492 doc: /* Default position of scroll bars on this window-system. */);
4516#ifdef HAVE_WINDOW_SYSTEM 4493#ifdef HAVE_WINDOW_SYSTEM
4517#if defined(HAVE_NTGUI) || defined(NS_IMPL_COCOA) || (defined(USE_GTK) && defined(USE_TOOLKIT_SCROLL_BARS)) 4494#if defined(HAVE_NTGUI) || defined(NS_IMPL_COCOA) || (defined(USE_GTK) && defined(USE_TOOLKIT_SCROLL_BARS))
@@ -4525,10 +4502,10 @@ Setting this variable does not affect existing frames, only new ones. */);
4525 Vdefault_frame_scroll_bars = Qnil; 4502 Vdefault_frame_scroll_bars = Qnil;
4526#endif 4503#endif
4527 4504
4528 DEFVAR_LISP ("terminal-frame", &Vterminal_frame, 4505 DEFVAR_LISP ("terminal-frame", Vterminal_frame,
4529 doc: /* The initial frame-object, which represents Emacs's stdout. */); 4506 doc: /* The initial frame-object, which represents Emacs's stdout. */);
4530 4507
4531 DEFVAR_LISP ("mouse-position-function", &Vmouse_position_function, 4508 DEFVAR_LISP ("mouse-position-function", Vmouse_position_function,
4532 doc: /* If non-nil, function to transform normal value of `mouse-position'. 4509 doc: /* If non-nil, function to transform normal value of `mouse-position'.
4533`mouse-position' calls this function, passing its usual return value as 4510`mouse-position' calls this function, passing its usual return value as
4534argument, and returns whatever this function returns. 4511argument, and returns whatever this function returns.
@@ -4536,7 +4513,7 @@ This abnormal hook exists for the benefit of packages like `xt-mouse.el'
4536which need to do mouse handling at the Lisp level. */); 4513which need to do mouse handling at the Lisp level. */);
4537 Vmouse_position_function = Qnil; 4514 Vmouse_position_function = Qnil;
4538 4515
4539 DEFVAR_LISP ("mouse-highlight", &Vmouse_highlight, 4516 DEFVAR_LISP ("mouse-highlight", Vmouse_highlight,
4540 doc: /* If non-nil, clickable text is highlighted when mouse is over it. 4517 doc: /* If non-nil, clickable text is highlighted when mouse is over it.
4541If the value is an integer, highlighting is only shown after moving the 4518If the value is an integer, highlighting is only shown after moving the
4542mouse, while keyboard input turns off the highlight even when the mouse 4519mouse, while keyboard input turns off the highlight even when the mouse
@@ -4544,12 +4521,12 @@ is over the clickable text. However, the mouse shape still indicates
4544when the mouse is over clickable text. */); 4521when the mouse is over clickable text. */);
4545 Vmouse_highlight = Qt; 4522 Vmouse_highlight = Qt;
4546 4523
4547 DEFVAR_LISP ("make-pointer-invisible", &Vmake_pointer_invisible, 4524 DEFVAR_LISP ("make-pointer-invisible", Vmake_pointer_invisible,
4548 doc: /* If non-nil, make pointer invisible while typing. 4525 doc: /* If non-nil, make pointer invisible while typing.
4549The pointer becomes visible again when the mouse is moved. */); 4526The pointer becomes visible again when the mouse is moved. */);
4550 Vmake_pointer_invisible = Qt; 4527 Vmake_pointer_invisible = Qt;
4551 4528
4552 DEFVAR_LISP ("delete-frame-functions", &Vdelete_frame_functions, 4529 DEFVAR_LISP ("delete-frame-functions", Vdelete_frame_functions,
4553 doc: /* Functions to be run before deleting a frame. 4530 doc: /* Functions to be run before deleting a frame.
4554The functions are run with one arg, the frame to be deleted. 4531The functions are run with one arg, the frame to be deleted.
4555See `delete-frame'. 4532See `delete-frame'.
@@ -4562,7 +4539,7 @@ recursively). */);
4562 Qdelete_frame_functions = intern_c_string ("delete-frame-functions"); 4539 Qdelete_frame_functions = intern_c_string ("delete-frame-functions");
4563 staticpro (&Qdelete_frame_functions); 4540 staticpro (&Qdelete_frame_functions);
4564 4541
4565 DEFVAR_LISP ("menu-bar-mode", &Vmenu_bar_mode, 4542 DEFVAR_LISP ("menu-bar-mode", Vmenu_bar_mode,
4566 doc: /* Non-nil if Menu-Bar mode is enabled. 4543 doc: /* Non-nil if Menu-Bar mode is enabled.
4567See the command `menu-bar-mode' for a description of this minor mode. 4544See the command `menu-bar-mode' for a description of this minor mode.
4568Setting this variable directly does not take effect; 4545Setting this variable directly does not take effect;
@@ -4570,7 +4547,7 @@ either customize it (see the info node `Easy Customization')
4570or call the function `menu-bar-mode'. */); 4547or call the function `menu-bar-mode'. */);
4571 Vmenu_bar_mode = Qt; 4548 Vmenu_bar_mode = Qt;
4572 4549
4573 DEFVAR_LISP ("tool-bar-mode", &Vtool_bar_mode, 4550 DEFVAR_LISP ("tool-bar-mode", Vtool_bar_mode,
4574 doc: /* Non-nil if Tool-Bar mode is enabled. 4551 doc: /* Non-nil if Tool-Bar mode is enabled.
4575See the command `tool-bar-mode' for a description of this minor mode. 4552See the command `tool-bar-mode' for a description of this minor mode.
4576Setting this variable directly does not take effect; 4553Setting this variable directly does not take effect;
@@ -4597,7 +4574,7 @@ displayed.
4597 4574
4598This variable is local to the current terminal and cannot be buffer-local. */); 4575This variable is local to the current terminal and cannot be buffer-local. */);
4599 4576
4600 DEFVAR_BOOL ("focus-follows-mouse", &focus_follows_mouse, 4577 DEFVAR_BOOL ("focus-follows-mouse", focus_follows_mouse,
4601 doc: /* Non-nil if window system changes focus when you move the mouse. 4578 doc: /* Non-nil if window system changes focus when you move the mouse.
4602You should set this variable to tell Emacs how your window manager 4579You should set this variable to tell Emacs how your window manager
4603handles focus, since there is no way in general for Emacs to find out 4580handles focus, since there is no way in general for Emacs to find out
diff --git a/src/frame.h b/src/frame.h
index dfd30ab8140..be9e9a1c6a7 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -37,11 +37,6 @@ extern int frame_garbaged;
37 37
38extern int message_buf_print; 38extern int message_buf_print;
39 39
40/* Nonzero means window system changes focus when moving the
41 mouse. */
42
43extern int focus_follows_mouse;
44
45 40
46/* The structure representing a frame. */ 41/* The structure representing a frame. */
47 42
@@ -862,11 +857,6 @@ extern void frame_make_pointer_visible (void);
862extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object); 857extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object);
863 858
864extern Lisp_Object Vframe_list; 859extern Lisp_Object Vframe_list;
865extern Lisp_Object Vdefault_frame_alist;
866
867extern Lisp_Object Vterminal_frame;
868
869extern Lisp_Object Vmouse_highlight;
870 860
871/* The currently selected frame. */ 861/* The currently selected frame. */
872 862
@@ -1108,12 +1098,6 @@ extern void x_wm_set_icon_position (struct frame *, int, int);
1108 1098
1109extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int); 1099extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int);
1110 1100
1111/* These are in frame.c */
1112
1113extern Lisp_Object Vx_resource_name;
1114extern Lisp_Object Vx_resource_class;
1115extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
1116
1117 1101
1118extern Lisp_Object Qface_set_after_frame_default; 1102extern Lisp_Object Qface_set_after_frame_default;
1119 1103
@@ -1145,7 +1129,6 @@ extern Lisp_Object x_icon_type (struct frame *);
1145 1129
1146extern int x_figure_window_size (struct frame *, Lisp_Object, int); 1130extern int x_figure_window_size (struct frame *, Lisp_Object, int);
1147 1131
1148extern Lisp_Object Vframe_alpha_lower_limit;
1149extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object); 1132extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object);
1150 1133
1151extern void validate_x_resource_name (void); 1134extern void validate_x_resource_name (void);
diff --git a/src/fringe.c b/src/fringe.c
index 2b5148e3675..af965d6f185 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -32,19 +32,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
32 32
33#ifdef HAVE_WINDOW_SYSTEM 33#ifdef HAVE_WINDOW_SYSTEM
34 34
35/* Non-nil means that newline may flow into the right fringe. */
36
37Lisp_Object Voverflow_newline_into_fringe;
38
39/* List of known fringe bitmap symbols.
40
41 The fringe bitmap number is stored in the `fringe' property on
42 those symbols. Names for the built-in bitmaps are installed by
43 loading fringe.el.
44 */
45
46Lisp_Object Vfringe_bitmaps;
47
48/* Fringe bitmaps are represented in three different ways: 35/* Fringe bitmaps are represented in three different ways:
49 36
50 Logical bitmaps are used internally to denote things like 37 Logical bitmaps are used internally to denote things like
@@ -1756,7 +1743,7 @@ syms_of_fringe (void)
1756 defsubr (&Sfringe_bitmaps_at_pos); 1743 defsubr (&Sfringe_bitmaps_at_pos);
1757 defsubr (&Sset_fringe_bitmap_face); 1744 defsubr (&Sset_fringe_bitmap_face);
1758 1745
1759 DEFVAR_LISP ("overflow-newline-into-fringe", &Voverflow_newline_into_fringe, 1746 DEFVAR_LISP ("overflow-newline-into-fringe", Voverflow_newline_into_fringe,
1760 doc: /* *Non-nil means that newline may flow into the right fringe. 1747 doc: /* *Non-nil means that newline may flow into the right fringe.
1761This means that display lines which are exactly as wide as the window 1748This means that display lines which are exactly as wide as the window
1762(not counting the final newline) will only occupy one screen line, by 1749(not counting the final newline) will only occupy one screen line, by
@@ -1765,7 +1752,7 @@ is at the final newline, the cursor is shown in the right fringe.
1765If nil, also continue lines which are exactly as wide as the window. */); 1752If nil, also continue lines which are exactly as wide as the window. */);
1766 Voverflow_newline_into_fringe = Qt; 1753 Voverflow_newline_into_fringe = Qt;
1767 1754
1768 DEFVAR_LISP ("fringe-bitmaps", &Vfringe_bitmaps, 1755 DEFVAR_LISP ("fringe-bitmaps", Vfringe_bitmaps,
1769 doc: /* List of fringe bitmap symbols. */); 1756 doc: /* List of fringe bitmap symbols. */);
1770 Vfringe_bitmaps = Qnil; 1757 Vfringe_bitmaps = Qnil;
1771} 1758}
diff --git a/src/globals.h b/src/globals.h
new file mode 100644
index 00000000000..b4aceb4a1e4
--- /dev/null
+++ b/src/globals.h
@@ -0,0 +1,2775 @@
1/* Declare all global lisp variables.
2
3 Copyright (C) 2011 Free Software Foundation, Inc.
4
5 This file is part of GNU Emacs.
6
7 GNU Emacs is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20struct emacs_globals
21{
22
23 /* Count the amount of consing of various sorts of space. */
24 EMACS_INT f_cons_cells_consed;
25
26 EMACS_INT f_floats_consed;
27
28 EMACS_INT f_vector_cells_consed;
29
30 EMACS_INT f_symbols_consed;
31
32 EMACS_INT f_string_chars_consed;
33
34 EMACS_INT f_misc_objects_consed;
35
36 EMACS_INT f_intervals_consed;
37
38 EMACS_INT f_strings_consed;
39
40 /* Minimum number of bytes of consing since GC before next GC. */
41 EMACS_INT f_gc_cons_threshold;
42
43 Lisp_Object f_Vgc_cons_percentage;
44
45 /* Nonzero means display messages at beginning and end of GC. */
46 int f_garbage_collection_messages;
47
48 /* Non-nil means defun should do purecopy on the function definition. */
49 Lisp_Object f_Vpurify_flag;
50
51 /* Non-nil means we are handling a memory-full error. */
52 Lisp_Object f_Vmemory_full;
53
54 /* Total number of bytes allocated in pure storage. */
55 EMACS_INT f_pure_bytes_used;
56
57 /* Pre-computed signal argument for use when memory is exhausted. */
58 Lisp_Object f_Vmemory_signal_data;
59
60 Lisp_Object f_Vpost_gc_hook;
61
62 Lisp_Object f_Vgc_elapsed;
63
64 EMACS_INT f_gcs_done;
65
66 /* Functions to call before and after each text change. */
67 Lisp_Object f_Vbefore_change_functions;
68
69 Lisp_Object f_Vafter_change_functions;
70
71 Lisp_Object f_Vtransient_mark_mode;
72
73 /* t means ignore all read-only text properties.
74 A list means ignore such a property if its value is a member of the list.
75 Any non-nil value means ignore buffer-read-only. */
76 Lisp_Object f_Vinhibit_read_only;
77
78 /* List of functions to call that can query about killing a buffer.
79 If any of these functions returns nil, we don't kill it. */
80 Lisp_Object f_Vkill_buffer_query_functions;
81
82 Lisp_Object f_Vchange_major_mode_hook;
83
84 /* List of functions to call before changing an unmodified buffer. */
85 Lisp_Object f_Vfirst_change_hook;
86
87 /* If nonzero, all modification hooks are suppressed. */
88 int f_inhibit_modification_hooks;
89
90 Lisp_Object f_Vbyte_code_meter;
91
92 int f_byte_metering_on;
93
94 Lisp_Object f_Vcurrent_prefix_arg;
95
96 Lisp_Object f_Vcommand_history;
97
98 Lisp_Object f_Vcommand_debug_status;
99
100 /* Non-nil means treat the mark as active
101 even if mark_active is 0. */
102 Lisp_Object f_Vmark_even_if_inactive;
103
104 Lisp_Object f_Vmouse_leave_buffer_hook;
105
106 Lisp_Object f_Vexec_path;
107 Lisp_Object f_Vexec_directory;
108 Lisp_Object f_Vexec_suffixes;
109
110 Lisp_Object f_Vdata_directory;
111 Lisp_Object f_Vdoc_directory;
112
113 Lisp_Object f_Vconfigure_info_directory;
114 Lisp_Object f_Vshared_game_score_directory;
115
116 Lisp_Object f_Vshell_file_name;
117
118 Lisp_Object f_Vprocess_environment;
119 Lisp_Object f_Vinitial_environment;
120
121 /* Variables to determine word boundary. */
122 Lisp_Object f_Vword_combining_categories;
123 Lisp_Object f_Vword_separating_categories;
124
125 /* This contains all code conversion map available to CCL. */
126 Lisp_Object f_Vcode_conversion_map_vector;
127
128 /* Alist of fontname patterns vs corresponding CCL program. */
129 Lisp_Object f_Vfont_ccl_encoder_alist;
130
131 /* Vector of registered hash tables for translation. */
132 Lisp_Object f_Vtranslation_hash_table_vector;
133
134 /* Vector of translation table ever defined.
135 ID of a translation table is used to index this vector. */
136 Lisp_Object f_Vtranslation_table_vector;
137
138 /* A char-table for characters which may invoke auto-filling. */
139 Lisp_Object f_Vauto_fill_chars;
140
141 /* A char-table. An element is non-nil iff the corresponding
142 character has a printable glyph. */
143 Lisp_Object f_Vprintable_chars;
144
145 /* A char-table. An elemnent is a column-width of the corresponding
146 character. */
147 Lisp_Object f_Vchar_width_table;
148
149 /* A char-table. An element is a symbol indicating the direction
150 property of corresponding character. */
151 Lisp_Object f_Vchar_direction_table;
152
153 /* Char table of scripts. */
154 Lisp_Object f_Vchar_script_table;
155
156 /* Alist of scripts vs representative characters. */
157 Lisp_Object f_Vscript_representative_chars;
158
159 Lisp_Object f_Vunicode_category_table;
160
161 /* List of all charsets. This variable is used only from Emacs
162 Lisp. */
163 Lisp_Object f_Vcharset_list;
164
165 Lisp_Object f_Vcharset_map_path;
166
167 /* If nonzero, don't load charset maps. */
168 int f_inhibit_load_charset_map;
169
170 Lisp_Object f_Vcurrent_iso639_language;
171
172 Lisp_Object f_Vpost_self_insert_hook;
173
174 int f_coding_system_require_warning;
175
176 Lisp_Object f_Vselect_safe_coding_system_function;
177
178 /* Mnemonic string for each format of end-of-line. */
179 Lisp_Object f_eol_mnemonic_unix;
180 Lisp_Object f_eol_mnemonic_dos;
181 Lisp_Object f_eol_mnemonic_mac;
182
183 /* Mnemonic string to indicate format of end-of-line is not yet
184 decided. */
185 Lisp_Object f_eol_mnemonic_undecided;
186
187 Lisp_Object f_Vcoding_system_list;
188 Lisp_Object f_Vcoding_system_alist;
189
190 /* Coding-system for reading files and receiving data from process. */
191 Lisp_Object f_Vcoding_system_for_read;
192
193 /* Coding-system for writing files and sending data to process. */
194 Lisp_Object f_Vcoding_system_for_write;
195
196 /* Coding-system actually used in the latest I/O. */
197 Lisp_Object f_Vlast_coding_system_used;
198
199 /* Set to non-nil when an error is detected while code conversion. */
200 Lisp_Object f_Vlast_code_conversion_error;
201
202 /* A vector of length 256 which contains information about special
203 Latin codes (especially for dealing with Microsoft codes). */
204 Lisp_Object f_Vlatin_extra_code_table;
205
206 /* Flag to inhibit code conversion of end-of-line format. */
207 int f_inhibit_eol_conversion;
208
209 /* Flag to inhibit ISO2022 escape sequence detection. */
210 int f_inhibit_iso_escape_detection;
211
212 /* Flag to inhibit detection of binary files through null bytes. */
213 int f_inhibit_null_byte_detection;
214
215 /* Flag to make buffer-file-coding-system inherit from process-coding. */
216 int f_inherit_process_coding_system;
217
218 Lisp_Object f_Vfile_coding_system_alist;
219
220 Lisp_Object f_Vprocess_coding_system_alist;
221
222 Lisp_Object f_Vnetwork_coding_system_alist;
223
224 Lisp_Object f_Vlocale_coding_system;
225
226 /* Flag to tell if we look up translation table on character code
227 conversion. */
228 Lisp_Object f_Venable_character_translation;
229
230 /* Standard translation table to look up on decoding (reading). */
231 Lisp_Object f_Vstandard_translation_table_for_decode;
232
233 /* Standard translation table to look up on encoding (writing). */
234 Lisp_Object f_Vstandard_translation_table_for_encode;
235
236 /* Alist of charsets vs revision number. */
237 Lisp_Object f_Vcharset_revision_table;
238
239 /* Default coding systems used for process I/O. */
240 Lisp_Object f_Vdefault_process_coding_system;
241
242 /* Char table for translating Quail and self-inserting input. */
243 Lisp_Object f_Vtranslation_table_for_input;
244
245 /* List of symbols `coding-category-xxx' ordered by priority. This
246 variable is exposed to Emacs Lisp. */
247 Lisp_Object f_Vcoding_category_list;
248
249 /* Function to call to adjust composition. */
250 Lisp_Object f_Vcompose_chars_after_function;
251
252 Lisp_Object f_Vauto_composition_mode;
253
254 Lisp_Object f_Vauto_composition_function;
255
256 Lisp_Object f_Vcomposition_function_table;
257
258 Lisp_Object f_Vmost_positive_fixnum;
259 Lisp_Object f_Vmost_negative_fixnum;
260
261 /* Registered buses. */
262 Lisp_Object f_Vdbus_registered_buses;
263
264 /* Hash table which keeps function definitions. */
265 Lisp_Object f_Vdbus_registered_objects_table;
266
267 /* Whether to debug D-Bus. */
268 Lisp_Object f_Vdbus_debug;
269
270 Lisp_Object f_Vcompletion_ignored_extensions;
271
272 /* Non-zero means don't pause redisplay for pending input. (This is
273 for debugging and for a future implementation of EDT-like
274 scrolling. */
275 int f_redisplay_dont_pause;
276
277 /* If a number (float), check for user input every N seconds. */
278 Lisp_Object f_Vredisplay_preemption_period;
279
280 /* Lisp variable visible-bell; enables use of screen-flash instead of
281 audible bell. */
282 int f_visible_bell;
283
284 /* Invert the color of the whole frame, at a low level. */
285 int f_inverse_video;
286
287 /* Line speed of the terminal. */
288 EMACS_INT f_baud_rate;
289
290 /* Either nil or a symbol naming the window system under which Emacs
291 creates the first frame. */
292 Lisp_Object f_Vinitial_window_system;
293
294 /* Version number of X windows: 10, 11 or nil. */
295 Lisp_Object f_Vwindow_system_version;
296
297 /* Vector of glyph definitions. Indexed by glyph number, the contents
298 are a string which is how to output the glyph.
299
300 If Vglyph_table is nil, a glyph is output by using its low 8 bits
301 as a character code.
302
303 This is an obsolete feature that is no longer used. The variable
304 is retained for compatibility. */
305 Lisp_Object f_Vglyph_table;
306
307 /* Display table to use for vectors that don't specify their own. */
308 Lisp_Object f_Vstandard_display_table;
309
310 /* Nonzero means reading single-character input with prompt so put
311 cursor on mini-buffer after the prompt. Positive means at end of
312 text in echo area; negative means at beginning of line. */
313 int f_cursor_in_echo_area;
314
315 Lisp_Object f_Vdoc_file_name;
316
317 /* A list of files used to build this Emacs binary. */
318 Lisp_Object f_Vbuild_files;
319
320 /* country info */
321 EMACS_INT f_dos_country_code;
322
323 EMACS_INT f_dos_codepage;
324
325 EMACS_INT f_dos_timezone_offset;
326
327 EMACS_INT f_dos_decimal_point;
328
329 EMACS_INT f_dos_keyboard_layout;
330
331 EMACS_INT f_dos_hyper_key;
332
333 EMACS_INT f_dos_super_key;
334
335 EMACS_INT f_dos_keypad_mode;
336
337 Lisp_Object f_Vdos_version;
338
339 Lisp_Object f_Vdos_display_scancodes;
340
341 Lisp_Object f_Vdos_windows_version;
342
343 Lisp_Object f_Vbuffer_access_fontify_functions;
344
345 Lisp_Object f_Vbuffer_access_fontified_property;
346
347 /* Non-nil means don't stop at field boundary in text motion commands. */
348 Lisp_Object f_Vinhibit_field_text_motion;
349
350 /* Some static data, and a function to initialize it for each run */
351 Lisp_Object f_Vsystem_name;
352
353 Lisp_Object f_Vuser_real_login_name;
354
355 Lisp_Object f_Vuser_full_name;
356
357 Lisp_Object f_Vuser_login_name;
358
359 Lisp_Object f_Voperating_system_release;
360
361 /* Command line args from shell, as list of strings. */
362 Lisp_Object f_Vcommand_line_args;
363
364 /* The name under which Emacs was invoked, with any leading directory
365 names discarded. */
366 Lisp_Object f_Vinvocation_name;
367
368 /* The directory name from which Emacs was invoked. */
369 Lisp_Object f_Vinvocation_directory;
370
371 /* The directory name in which to find subdirs such as lisp and etc.
372 nil means get them only from PATH_LOADSEARCH. */
373 Lisp_Object f_Vinstallation_directory;
374
375 /* The values of `current-time' before and after Emacs initialization. */
376 Lisp_Object f_Vbefore_init_time;
377 Lisp_Object f_Vafter_init_time;
378
379 /* Hook run by `kill-emacs' before it does really anything. */
380 Lisp_Object f_Vkill_emacs_hook;
381
382 /* Search path separator. */
383 Lisp_Object f_Vpath_separator;
384
385 /* Variable whose value is symbol giving operating system type. */
386 Lisp_Object f_Vsystem_type;
387
388 /* Variable whose value is string giving configuration built for. */
389 Lisp_Object f_Vsystem_configuration;
390
391 /* Variable whose value is string giving configuration options,
392 for use when reporting bugs. */
393 Lisp_Object f_Vsystem_configuration_options;
394
395 /* Current and previous system locales for messages and time. */
396 Lisp_Object f_Vsystem_messages_locale;
397
398 Lisp_Object f_Vprevious_system_messages_locale;
399
400 Lisp_Object f_Vsystem_time_locale;
401
402 Lisp_Object f_Vprevious_system_time_locale;
403
404 /* Copyright and version info. The version number may be updated by
405 Lisp code. */
406 Lisp_Object f_Vemacs_copyright;
407 Lisp_Object f_Vemacs_version;
408
409 /* Alist of external libraries and files implementing them. */
410 Lisp_Object f_Vdynamic_library_alist;
411
412 /* Value of Lisp variable `noninteractive'.
413 Normally same as C variable `noninteractive'
414 but nothing terrible happens if user sets this one. */
415 int f_noninteractive1;
416
417 /* Nonzero means Emacs was run in --quick mode. */
418 int f_inhibit_x_resources;
419
420 Lisp_Object f_Vinhibit_quit;
421 Lisp_Object f_Vquit_flag;
422
423 /* Maximum size allowed for specpdl allocation */
424 EMACS_INT f_max_specpdl_size;
425
426 /* Maximum allowed depth in Lisp evaluations and function calls. */
427 EMACS_INT f_max_lisp_eval_depth;
428
429 /* Nonzero means enter debugger before next function call */
430 int f_debug_on_next_call;
431
432 /* Non-zero means debugger may continue. This is zero when the
433 debugger is called during redisplay, where it might not be safe to
434 continue the interrupted redisplay. */
435 int f_debugger_may_continue;
436
437 /* List of conditions (non-nil atom means all) which cause a backtrace
438 if an error is handled by the command loop's error handler. */
439 Lisp_Object f_Vstack_trace_on_error;
440
441 /* List of conditions (non-nil atom means all) which enter the debugger
442 if an error is handled by the command loop's error handler. */
443 Lisp_Object f_Vdebug_on_error;
444
445 /* List of conditions and regexps specifying error messages which
446 do not enter the debugger even if Vdebug_on_error says they should. */
447 Lisp_Object f_Vdebug_ignored_errors;
448
449 /* Non-nil means call the debugger even if the error will be handled. */
450 Lisp_Object f_Vdebug_on_signal;
451
452 /* Hook for edebug to use. */
453 Lisp_Object f_Vsignal_hook_function;
454
455 /* Nonzero means enter debugger if a quit signal
456 is handled by the command loop's error handler. */
457 int f_debug_on_quit;
458
459 Lisp_Object f_Vdebugger;
460
461 /* Function to process declarations in defmacro forms. */
462 Lisp_Object f_Vmacro_declaration_function;
463
464 /* Coding system for file names, or nil if none. */
465 Lisp_Object f_Vfile_name_coding_system;
466
467 /* Coding system for file names used only when
468 Vfile_name_coding_system is nil. */
469 Lisp_Object f_Vdefault_file_name_coding_system;
470
471 /* Alist of elements (REGEXP . HANDLER) for file names
472 whose I/O is done with a special handler. */
473 Lisp_Object f_Vfile_name_handler_alist;
474
475 /* Function to be called to decide a coding system of a reading file. */
476 Lisp_Object f_Vset_auto_coding_function;
477
478 /* Functions to be called to process text properties in inserted file. */
479 Lisp_Object f_Vafter_insert_file_functions;
480
481 /* Functions to be called to create text property annotations for file. */
482 Lisp_Object f_Vwrite_region_annotate_functions;
483
484 Lisp_Object f_Vwrite_region_post_annotation_function;
485
486 /* During build_annotations, each time an annotation function is called,
487 this holds the annotations made by the previous functions. */
488 Lisp_Object f_Vwrite_region_annotations_so_far;
489
490 /* File name in which we write a list of all our auto save files. */
491 Lisp_Object f_Vauto_save_list_file_name;
492
493 /* Whether or not files are auto-saved into themselves. */
494 Lisp_Object f_Vauto_save_visited_file_name;
495
496 /* Whether or not to continue auto-saving after a large deletion. */
497 Lisp_Object f_Vauto_save_include_big_deletions;
498
499 /* Nonzero means skip the call to fsync in Fwrite-region. */
500 int f_write_region_inhibit_fsync;
501
502 /* Non-zero means call move-file-to-trash in Fdelete_file or
503 Fdelete_directory_internal. */
504 int f_delete_by_moving_to_trash;
505
506 /* These variables describe handlers that have "already" had a chance
507 to handle the current operation.
508
509 Vinhibit_file_name_handlers is a list of file name handlers.
510 Vinhibit_file_name_operation is the operation being handled.
511 If we try to handle that operation, we ignore those handlers. */
512 Lisp_Object f_Vinhibit_file_name_handlers;
513
514 Lisp_Object f_Vinhibit_file_name_operation;
515
516 /* The directory for writing temporary files. */
517 Lisp_Object f_Vtemporary_file_directory;
518
519 /* Nonzero enables use of dialog boxes for questions
520 asked by mouse commands. */
521 int f_use_dialog_box;
522
523 /* Nonzero enables use of a file dialog for file name
524 questions asked by mouse commands. */
525 int f_use_file_dialog;
526
527 Lisp_Object f_Vfeatures;
528
529 Lisp_Object f_Vfont_weight_table;
530 Lisp_Object f_Vfont_slant_table;
531 Lisp_Object f_Vfont_width_table;
532
533 Lisp_Object f_Vfont_encoding_alist;
534
535 Lisp_Object f_Vfont_log;
536
537 Lisp_Object f_Vfont_encoding_charset_alist;
538
539 Lisp_Object f_Vuse_default_ascent;
540
541 Lisp_Object f_Vignore_relative_composition;
542
543 Lisp_Object f_Valternate_fontname_alist;
544
545 Lisp_Object f_Vfontset_alias_alist;
546
547 Lisp_Object f_Vvertical_centering_font_regexp;
548
549 Lisp_Object f_Votf_script_alist;
550
551 /* If we shall make pointer invisible when typing or not. */
552 Lisp_Object f_Vmake_pointer_invisible;
553
554 /* The name we're using in resource queries. Most often "emacs". */
555 Lisp_Object f_Vx_resource_name;
556
557 /* The application class we're using in resource queries.
558 Normally "Emacs". */
559 Lisp_Object f_Vx_resource_class;
560
561 /* Lower limit value of the frame opacity (alpha transparency). */
562 Lisp_Object f_Vframe_alpha_lower_limit;
563
564 Lisp_Object f_Vmenu_bar_mode;
565 Lisp_Object f_Vtool_bar_mode;
566
567 Lisp_Object f_Vterminal_frame;
568
569 Lisp_Object f_Vdefault_frame_alist;
570
571 Lisp_Object f_Vdefault_frame_scroll_bars;
572
573 Lisp_Object f_Vmouse_position_function;
574
575 Lisp_Object f_Vmouse_highlight;
576
577 Lisp_Object f_Vdelete_frame_functions;
578
579 int f_focus_follows_mouse;
580
581 /* Non-nil means that newline may flow into the right fringe. */
582 Lisp_Object f_Voverflow_newline_into_fringe;
583
584 /* List of known fringe bitmap symbols.
585
586 The fringe bitmap number is stored in the `fringe' property on
587 those symbols. Names for the built-in bitmaps are installed by
588 loading fringe.el.
589 */
590 Lisp_Object f_Vfringe_bitmaps;
591
592 /* Search path for bitmap files. */
593 Lisp_Object f_Vx_bitmap_file_path;
594
595 /* A list of symbols, one for each supported image type. */
596 Lisp_Object f_Vimage_types;
597
598 /* Time in seconds after which images should be removed from the cache
599 if not displayed. */
600 Lisp_Object f_Vimage_cache_eviction_delay;
601
602 Lisp_Object f_Vmax_image_size;
603
604 /* Non-zero means draw a cross on images having `:conversion
605 disabled'. */
606 int f_cross_disabled_images;
607
608 Lisp_Object f_Vimagemagick_render_type;
609
610 /* Indentation can insert tabs if this is non-zero;
611 otherwise always uses spaces. */
612 int f_indent_tabs_mode;
613
614 /* Non-nil means don't call the after-change-functions right away,
615 just record an element in combine_after_change_list. */
616 Lisp_Object f_Vcombine_after_change_calls;
617
618 /* Check all markers in the current buffer, looking for something invalid. */
619 int f_check_markers_debug_flag;
620
621 /* Non-nil if the present key sequence was obtained by shift translation. */
622 Lisp_Object f_Vthis_command_keys_shift_translated;
623
624 /* If non-nil, the function that implements the display of help.
625 It's called with one argument, the help string to display. */
626 Lisp_Object f_Vshow_help_function;
627
628 /* Nonzero means do menu prompting. */
629 int f_menu_prompting;
630
631 /* Character to see next line of menu prompt. */
632 Lisp_Object f_menu_prompt_more_char;
633
634 /* Nonzero means disregard local maps for the menu bar. */
635 int f_inhibit_local_menu_bar_menus;
636
637 /* The user's hook function for outputting an error message. */
638 Lisp_Object f_Vcommand_error_function;
639
640 /* The user's ERASE setting. */
641 Lisp_Object f_Vtty_erase_char;
642
643 /* Character to recognize as the help char. */
644 Lisp_Object f_Vhelp_char;
645
646 /* List of other event types to recognize as meaning "help". */
647 Lisp_Object f_Vhelp_event_list;
648
649 /* Form to execute when help char is typed. */
650 Lisp_Object f_Vhelp_form;
651
652 /* Command to run when the help character follows a prefix key. */
653 Lisp_Object f_Vprefix_help_command;
654
655 /* List of items that should move to the end of the menu bar. */
656 Lisp_Object f_Vmenu_bar_final_items;
657
658 /* Expression to evaluate for the tool bar separator image.
659 This is used for build_desired_tool_bar_string only. For GTK, we
660 use GTK tool bar seperators. */
661 Lisp_Object f_Vtool_bar_separator_image_expression;
662
663 /* Non-nil means show the equivalent key-binding for
664 any M-x command that has one.
665 The value can be a length of time to show the message for.
666 If the value is non-nil and not a number, we wait 2 seconds. */
667 Lisp_Object f_Vsuggest_key_bindings;
668
669 /* How long to display an echo-area message when the minibuffer is active.
670 If the value is not a number, such messages don't time out. */
671 Lisp_Object f_Vminibuffer_message_timeout;
672
673 /* If non-nil, this is a map that overrides all other local maps. */
674 Lisp_Object f_Voverriding_local_map;
675
676 /* If non-nil, Voverriding_local_map applies to the menu bar. */
677 Lisp_Object f_Voverriding_local_map_menu_flag;
678
679 /* Keymap that defines special misc events that should
680 be processed immediately at a low level. */
681 Lisp_Object f_Vspecial_event_map;
682
683 /* Total number of times command_loop has read a key sequence. */
684 EMACS_INT f_num_input_keys;
685
686 /* Last input event read as a command. */
687 Lisp_Object f_last_command_event;
688
689 /* Last input character read as a command, not counting menus
690 reached by the mouse. */
691 Lisp_Object f_last_nonmenu_event;
692
693 /* Last input event read for any purpose. */
694 Lisp_Object f_last_input_event;
695
696 /* If not Qnil, a list of objects to be read as subsequent command input. */
697 Lisp_Object f_Vunread_command_events;
698
699 /* If not Qnil, a list of objects to be read as subsequent command input
700 including input method processing. */
701 Lisp_Object f_Vunread_input_method_events;
702
703 /* If not Qnil, a list of objects to be read as subsequent command input
704 but NOT including input method processing. */
705 Lisp_Object f_Vunread_post_input_method_events;
706
707 /* If not -1, an event to be read as subsequent command input. */
708 EMACS_INT f_unread_command_char;
709
710 /* A mask of extra modifier bits to put into every keyboard char. */
711 EMACS_INT f_extra_keyboard_modifiers;
712
713 /* Char to use as prefix when a meta character is typed in.
714 This is bound on entry to minibuffer in case ESC is changed there. */
715 Lisp_Object f_meta_prefix_char;
716
717 /* Number of idle seconds before an auto-save and garbage collection. */
718 Lisp_Object f_Vauto_save_timeout;
719
720 /* Total number of times read_char has returned, outside of macros. */
721 EMACS_INT f_num_nonmacro_input_events;
722
723 /* Auto-save automatically when this many characters have been typed
724 since the last time. */
725 EMACS_INT f_auto_save_interval;
726
727 /* The command being executed by the command loop.
728 Commands may set this, and the value set will be copied into
729 current_kboard->Vlast_command instead of the actual command. */
730 Lisp_Object f_Vthis_command;
731
732 /* If the lookup of the command returns a binding, the original
733 command is stored in this-original-command. It is nil otherwise. */
734 Lisp_Object f_Vthis_original_command;
735
736 /* A user-visible version of the above, intended to allow users to
737 figure out where the last event came from, if the event doesn't
738 carry that information itself (i.e. if it was a character). */
739 Lisp_Object f_Vlast_event_frame;
740
741 /* If non-nil, active regions automatically become the window selection. */
742 Lisp_Object f_Vselect_active_regions;
743
744 /* The text in the active region prior to modifying the buffer.
745 Used by the `select-active-regions' feature. */
746 Lisp_Object f_Vsaved_region_selection;
747
748 /* Echo unfinished commands after this many seconds of pause. */
749 Lisp_Object f_Vecho_keystrokes;
750
751 /* Form to evaluate (if non-nil) when Emacs is started. */
752 Lisp_Object f_Vtop_level;
753
754 /* If non-nil, this implements the current input method. */
755 Lisp_Object f_Vinput_method_function;
756
757 /* When we call Vinput_method_function,
758 this holds the echo area message that was just erased. */
759 Lisp_Object f_Vinput_method_previous_message;
760
761 /* Non-nil means deactivate the mark at end of this command. */
762 Lisp_Object f_Vdeactivate_mark;
763
764 /* Menu bar specified in Lucid Emacs fashion. */
765 Lisp_Object f_Vlucid_menu_bar_dirty_flag;
766
767 Lisp_Object f_Vpre_command_hook;
768
769 Lisp_Object f_Vpost_command_hook;
770
771 Lisp_Object f_Vcommand_hook_internal;
772
773 /* Parent keymap of terminal-local function-key-map instances. */
774 Lisp_Object f_Vfunction_key_map;
775
776 /* Keymap of key translations that can override keymaps. */
777 Lisp_Object f_Vkey_translation_map;
778
779 /* List of deferred actions to be performed at a later time.
780 The precise format isn't relevant here; we just check whether it is nil. */
781 Lisp_Object f_Vdeferred_action_list;
782
783 /* Function to call to handle deferred actions, when there are any. */
784 Lisp_Object f_Vdeferred_action_function;
785
786 /* If this flag is non-nil, we check mouse_moved to see when the
787 mouse moves, and motion events will appear in the input stream.
788 Otherwise, mouse motion is ignored. */
789 Lisp_Object f_do_mouse_tracking;
790
791 /* List of absolute timers. Appears in order of next scheduled event. */
792 Lisp_Object f_Vtimer_list;
793
794 /* List of idle time timers. Appears in order of next scheduled event. */
795 Lisp_Object f_Vtimer_idle_list;
796
797 /* After a command is executed, if point is moved into a region that
798 has specific properties (e.g. composition, display), we adjust
799 point to the boundary of the region. But, if a command sets this
800 variable to non-nil, we suppress this point adjustment. This
801 variable is set to nil before reading a command. */
802 Lisp_Object f_Vdisable_point_adjustment;
803
804 /* If non-nil, always disable point adjustment. */
805 Lisp_Object f_Vglobal_disable_point_adjustment;
806
807 /* If non-nil, events produced by disabled menu items and tool-bar
808 buttons are not ignored. Help functions bind this to allow help on
809 those items and buttons. */
810 Lisp_Object f_Venable_disabled_menus_and_buttons;
811
812 /* Nonzero means don't try to suspend even if the operating system seems
813 to support it. */
814 int f_cannot_suspend;
815
816 /* Number of seconds between polling for input. This is a Lisp
817 variable that can be bound. */
818 EMACS_INT f_polling_period;
819
820 /* subprocesses */
821 Lisp_Object f_Vthrow_on_input;
822
823 /* The maximum time between clicks to make a double-click, or Qnil to
824 disable double-click detection, or Qt for no time limit. */
825 Lisp_Object f_Vdouble_click_time;
826
827 /* Maximum number of pixels the mouse may be moved between clicks
828 to make a double-click. */
829 EMACS_INT f_double_click_fuzz;
830
831 /* was MinibufLocalMap */
832 Lisp_Object f_Vminibuffer_local_map;
833
834 /* was MinibufLocalNSMap */
835 Lisp_Object f_Vminibuffer_local_ns_map;
836
837 /* was MinibufLocalCompletionMap */
838 Lisp_Object f_Vminibuffer_local_completion_map;
839
840 /* keymap used for minibuffers when doing completion in filenames */
841 Lisp_Object f_Vminibuffer_local_filename_completion_map;
842
843 /* keymap used for minibuffers when doing completion in filenames
844 with require-match*/
845 Lisp_Object f_Vminibuffer_local_filename_must_match_map;
846
847 /* was MinibufLocalMustMatchMap */
848 Lisp_Object f_Vminibuffer_local_must_match_map;
849
850 /* Alist of minor mode variables and keymaps. */
851 Lisp_Object f_Vminor_mode_map_alist;
852
853 /* Alist of major-mode-specific overrides for
854 minor mode variables and keymaps. */
855 Lisp_Object f_Vminor_mode_overriding_map_alist;
856
857 /* List of emulation mode keymap alists. */
858 Lisp_Object f_Vemulation_mode_map_alists;
859
860 /* A list of all commands given new bindings since a certain time
861 when nil was stored here.
862 This is used to speed up recomputation of menu key equivalents
863 when Emacs starts up. t means don't record anything here. */
864 Lisp_Object f_Vdefine_key_rebound_commands;
865
866 Lisp_Object f_Vwhere_is_preferred_modifier;
867
868 Lisp_Object f_Vvalues;
869 Lisp_Object f_Vstandard_input;
870 Lisp_Object f_Vafter_load_alist;
871
872 Lisp_Object f_Veval_buffer_list;
873
874 /* non-zero if inside `load' */
875 int f_load_in_progress;
876
877 /* Directory in which the sources were found. */
878 Lisp_Object f_Vsource_directory;
879
880 /* Search path and suffixes for files to be loaded. */
881 Lisp_Object f_Vload_path;
882 Lisp_Object f_Vload_suffixes;
883 Lisp_Object f_Vload_file_rep_suffixes;
884
885 /* File name of user's init file. */
886 Lisp_Object f_Vuser_init_file;
887
888 /* This is the user-visible association list that maps features to
889 lists of defs in their load files. */
890 Lisp_Object f_Vload_history;
891
892 /* This is used to build the load history. */
893 Lisp_Object f_Vcurrent_load_list;
894
895 /* List of files that were preloaded. */
896 Lisp_Object f_Vpreloaded_file_list;
897
898 /* Name of file actually being read by `load'. */
899 Lisp_Object f_Vload_file_name;
900
901 /* Function to use for reading, in `load' and friends. */
902 Lisp_Object f_Vload_read_function;
903
904 /* Non-nil means read recursive structures using #n= and #n# syntax. */
905 Lisp_Object f_Vread_circle;
906
907 /* Nonzero means load should forcibly load all dynamic doc strings. */
908 int f_load_force_doc_strings;
909
910 /* Nonzero means read should convert strings to unibyte. */
911 int f_load_convert_to_unibyte;
912
913 /* Function to use for loading an Emacs Lisp source file (not
914 compiled) instead of readevalloop. */
915 Lisp_Object f_Vload_source_file_function;
916
917 /* List of all DEFVAR_BOOL variables. Used by the byte optimizer. */
918 Lisp_Object f_Vbyte_boolean_vars;
919
920 /* Whether or not to add a `read-positions' property to symbols
921 read. */
922 Lisp_Object f_Vread_with_symbol_positions;
923
924 /* List of (SYMBOL . POSITION) accumulated so far. */
925 Lisp_Object f_Vread_symbol_positions_list;
926
927 Lisp_Object f_Vold_style_backquotes;
928
929 /* Non-zero means load dangerous compiled Lisp files. */
930 int f_load_dangerous_libraries;
931
932 /* Non-zero means force printing messages when loading Lisp files. */
933 int f_force_load_messages;
934
935 /* A regular expression used to detect files compiled with Emacs. */
936 Lisp_Object f_Vbytecomp_version_regexp;
937
938 Lisp_Object f_Vobarray;
939
940 /* Kbd macro currently being executed (a string or vector). */
941 Lisp_Object f_Vexecuting_kbd_macro;
942
943 /* Index of next character to fetch from that macro. */
944 EMACS_INT f_executing_kbd_macro_index;
945
946 /* Nonzero means enable debugging checks on byte/char correspondences. */
947 int f_byte_debug_flag;
948
949 Lisp_Object f_Vhistory_length;
950
951 /* No duplicates in history. */
952 int f_history_delete_duplicates;
953
954 /* Non-nil means add new input to history. */
955 Lisp_Object f_Vhistory_add_new_input;
956
957 /* Nonzero means let functions called when within a minibuffer
958 invoke recursive minibuffers (to read arguments, or whatever) */
959 int f_enable_recursive_minibuffers;
960
961 /* Nonzero means don't ignore text properties
962 in Fread_from_minibuffer. */
963 int f_minibuffer_allow_text_properties;
964
965 /* help-form is bound to this while in the minibuffer. */
966 Lisp_Object f_Vminibuffer_help_form;
967
968 /* Variable which is the history list to add minibuffer values to. */
969 Lisp_Object f_Vminibuffer_history_variable;
970
971 /* Current position in the history list (adjusted by M-n and M-p). */
972 Lisp_Object f_Vminibuffer_history_position;
973
974 /* Text properties that are added to minibuffer prompts.
975 These are in addition to the basic `field' property, and stickiness
976 properties. */
977 Lisp_Object f_Vminibuffer_prompt_properties;
978
979 Lisp_Object f_Vminibuffer_setup_hook;
980
981 Lisp_Object f_Vminibuffer_exit_hook;
982
983 /* Function to call to read a buffer name. */
984 Lisp_Object f_Vread_buffer_function;
985
986 /* Nonzero means completion ignores case. */
987 int f_completion_ignore_case;
988
989 int f_read_buffer_completion_ignore_case;
990
991 /* List of regexps that should restrict possible completions. */
992 Lisp_Object f_Vcompletion_regexp_list;
993
994 /* Nonzero means raise the minibuffer frame when the minibuffer
995 is entered. */
996 int f_minibuffer_auto_raise;
997
998 /* Keymap for reading expressions. */
999 Lisp_Object f_Vread_expression_map;
1000
1001 Lisp_Object f_Vminibuffer_completion_table;
1002
1003 Lisp_Object f_Vminibuffer_completion_predicate;
1004
1005 Lisp_Object f_Vminibuffer_completion_confirm;
1006
1007 Lisp_Object f_Vminibuffer_completing_file_name;
1008
1009 Lisp_Object f_Vdos_unsupported_char_glyph;
1010
1011 Lisp_Object f_Vstandard_output;
1012
1013 Lisp_Object f_Vfloat_output_format;
1014
1015 /* Maximum length of list to print in full; noninteger means
1016 effectively infinity */
1017 Lisp_Object f_Vprint_length;
1018
1019 /* Maximum depth of list to print in full; noninteger means
1020 effectively infinity. */
1021 Lisp_Object f_Vprint_level;
1022
1023 /* Nonzero means print newlines in strings as \n. */
1024 int f_print_escape_newlines;
1025
1026 /* Nonzero means to print single-byte non-ascii characters in strings as
1027 octal escapes. */
1028 int f_print_escape_nonascii;
1029
1030 /* Nonzero means to print multibyte characters in strings as hex escapes. */
1031 int f_print_escape_multibyte;
1032
1033 /* Nonzero means print (quote foo) forms as 'foo, etc. */
1034 int f_print_quoted;
1035
1036 /* Non-nil means print #: before uninterned symbols. */
1037 Lisp_Object f_Vprint_gensym;
1038
1039 /* Non-nil means print recursive structures using #n= and #n# syntax. */
1040 Lisp_Object f_Vprint_circle;
1041
1042 /* Non-nil means keep continuous number for #n= and #n# syntax
1043 between several print functions. */
1044 Lisp_Object f_Vprint_continuous_numbering;
1045
1046 Lisp_Object f_Vprint_number_table;
1047
1048 /* A flag to control printing of `charset' text property.
1049 The default value is Qdefault. */
1050 Lisp_Object f_Vprint_charset_text_property;
1051
1052 /* Nonzero means delete a process right away if it exits. */
1053 int f_delete_exited_processes;
1054
1055 /* t means use pty, nil means use a pipe,
1056 maybe other values to come. */
1057 Lisp_Object f_Vprocess_connection_type;
1058
1059 /* Non-nil means to delay reading process output to improve buffering.
1060 A value of t means that delay is reset after each send, any other
1061 non-nil value does not reset the delay. A value of nil disables
1062 adaptive read buffering completely. */
1063 Lisp_Object f_Vprocess_adaptive_read_buffering;
1064
1065 Lisp_Object f_Vsearch_spaces_regexp;
1066
1067 /* If non-nil, the match data will not be changed during call to
1068 searching or matching functions. This variable is for internal use
1069 only. */
1070 Lisp_Object f_Vinhibit_changing_match_data;
1071
1072 int f_words_include_escapes;
1073
1074 int f_parse_sexp_lookup_properties;
1075
1076 /* Nonzero means `scan-sexps' treat all multibyte characters as symbol. */
1077 int f_multibyte_syntax_as_symbol;
1078
1079 /* Non-zero means an open parenthesis in column 0 is always considered
1080 to be the start of a defun. Zero means an open parenthesis in
1081 column 0 has no special meaning. */
1082 int f_open_paren_in_column_0_is_defun_start;
1083
1084 int f_parse_sexp_ignore_comments;
1085
1086 /* Char-table of functions that find the next or previous word
1087 boundary. */
1088 Lisp_Object f_Vfind_word_boundary_function_table;
1089
1090 /* If true, use "vs", otherwise use "ve" to make the cursor visible. */
1091 int f_visible_cursor;
1092
1093 /* Functions to call after suspending a tty. */
1094 Lisp_Object f_Vsuspend_tty_functions;
1095
1096 /* Functions to call after resuming a tty. */
1097 Lisp_Object f_Vresume_tty_functions;
1098
1099 /* Nonzero means no need to redraw the entire frame on resuming a
1100 suspended Emacs. This is useful on terminals with multiple
1101 pages, where one page is used for Emacs and another for all
1102 else. */
1103 int f_no_redraw_on_reenter;
1104
1105 /* Provided for lisp packages. */
1106 int f_system_uses_terminfo;
1107
1108 /* Function to use to ring the bell. */
1109 Lisp_Object f_Vring_bell_function;
1110
1111 Lisp_Object f_Vdelete_terminal_functions;
1112
1113 Lisp_Object f_Vinhibit_point_motion_hooks;
1114
1115 Lisp_Object f_Vdefault_text_properties;
1116
1117 Lisp_Object f_Vchar_property_alias_alist;
1118
1119 Lisp_Object f_Vtext_property_default_nonsticky;
1120
1121 /* Limits controlling how much undo information to keep. */
1122 EMACS_INT f_undo_limit;
1123
1124 EMACS_INT f_undo_strong_limit;
1125
1126 Lisp_Object f_Vundo_outer_limit;
1127
1128 /* Function to call when undo_outer_limit is exceeded. */
1129 Lisp_Object f_Vundo_outer_limit_function;
1130
1131 /* Nonzero means do not record point in record_point. */
1132 int f_undo_inhibit_record_point;
1133
1134 /* Coding system for communicating with other Windows programs via the
1135 clipboard. */
1136 Lisp_Object f_Vselection_coding_system;
1137
1138 /* Coding system for the next communicating with other Windows programs. */
1139 Lisp_Object f_Vnext_selection_coding_system;
1140
1141 /* Determine whether to make frame dimensions match the screen buffer,
1142 or the current window size. The former is desirable when running
1143 over telnet, while the latter is more useful when working directly at
1144 the console with a large scroll-back buffer. */
1145 int f_w32_use_full_screen_buffer;
1146
1147 /* The colormap for converting color names to RGB values */
1148 Lisp_Object f_Vw32_color_map;
1149
1150 /* Non nil if alt key presses are passed on to Windows. */
1151 Lisp_Object f_Vw32_pass_alt_to_system;
1152
1153 /* Non nil if alt key is translated to meta_modifier, nil if it is translated
1154 to alt_modifier. */
1155 Lisp_Object f_Vw32_alt_is_meta;
1156
1157 /* If non-zero, the windows virtual key code for an alternative quit key. */
1158 int f_w32_quit_key;
1159
1160 /* Non nil if left window key events are passed on to Windows (this only
1161 affects whether "tapping" the key opens the Start menu). */
1162 Lisp_Object f_Vw32_pass_lwindow_to_system;
1163
1164 /* Non nil if right window key events are passed on to Windows (this
1165 only affects whether "tapping" the key opens the Start menu). */
1166 Lisp_Object f_Vw32_pass_rwindow_to_system;
1167
1168 /* Virtual key code used to generate "phantom" key presses in order
1169 to stop system from acting on Windows key events. */
1170 Lisp_Object f_Vw32_phantom_key_code;
1171
1172 /* Modifier associated with the left "Windows" key, or nil to act as a
1173 normal key. */
1174 Lisp_Object f_Vw32_lwindow_modifier;
1175
1176 /* Modifier associated with the right "Windows" key, or nil to act as a
1177 normal key. */
1178 Lisp_Object f_Vw32_rwindow_modifier;
1179
1180 /* Modifier associated with the "Apps" key, or nil to act as a normal
1181 key. */
1182 Lisp_Object f_Vw32_apps_modifier;
1183
1184 /* Value is nil if Num Lock acts as a function key. */
1185 Lisp_Object f_Vw32_enable_num_lock;
1186
1187 /* Value is nil if Caps Lock acts as a function key. */
1188 Lisp_Object f_Vw32_enable_caps_lock;
1189
1190 /* Modifier associated with Scroll Lock, or nil to act as a normal key. */
1191 Lisp_Object f_Vw32_scroll_lock_modifier;
1192
1193 /* Switch to control whether we inhibit requests for synthesized bold
1194 and italic versions of fonts. */
1195 int f_w32_enable_synthesized_fonts;
1196
1197 /* Enable palette management. */
1198 Lisp_Object f_Vw32_enable_palette;
1199
1200 /* Control how close left/right button down events must be to
1201 be converted to a middle button down event. */
1202 int f_w32_mouse_button_tolerance;
1203
1204 /* Minimum interval between mouse movement (and scroll bar drag)
1205 events that are passed on to the event loop. */
1206 int f_w32_mouse_move_interval;
1207
1208 /* Flag to indicate if XBUTTON events should be passed on to Windows. */
1209 int f_w32_pass_extra_mouse_buttons_to_system;
1210
1211 /* Flag to indicate if media keys should be passed on to Windows. */
1212 int f_w32_pass_multimedia_buttons_to_system;
1213
1214 /* Non nil if no window manager is in use. */
1215 Lisp_Object f_Vx_no_window_manager;
1216
1217 /* The background and shape of the mouse pointer, and shape when not
1218 over text or in the modeline. */
1219 Lisp_Object f_Vx_pointer_shape;
1220 Lisp_Object f_Vx_nontext_pointer_shape;
1221 Lisp_Object f_Vx_mode_pointer_shape;
1222
1223 /* TODO: Mouse cursor customization. */
1224 Lisp_Object f_Vx_hourglass_pointer_shape;
1225 Lisp_Object f_Vx_window_horizontal_drag_shape;
1226
1227 /* The shape when over mouse-sensitive text. */
1228 Lisp_Object f_Vx_sensitive_text_pointer_shape;
1229
1230 /* Color of chars displayed in cursor box. */
1231 Lisp_Object f_Vx_cursor_fore_pixel;
1232
1233 /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
1234 Lisp_Object f_Vx_pixel_size_width_font_regexp;
1235
1236 /* Alist of bdf fonts and the files that define them. */
1237 Lisp_Object f_Vw32_bdf_filename_alist;
1238
1239 /* A flag to control whether fonts are matched strictly or not. */
1240 int f_w32_strict_fontnames;
1241
1242 /* A flag to control whether we should only repaint if GetUpdateRect
1243 indicates there is an update region. */
1244 int f_w32_strict_painting;
1245
1246 /* The ANSI codepage. */
1247 int f_w32_ansi_code_page;
1248
1249 /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
1250 Lisp_Object f_Vx_max_tooltip_size;
1251
1252 /* Associative list linking character set strings to Windows codepages. */
1253 Lisp_Object f_Vw32_charset_info_alist;
1254
1255 /* Control whether spawnve quotes arguments as necessary to ensure
1256 correct parsing by child process. Because not all uses of spawnve
1257 are careful about constructing argv arrays, we make this behavior
1258 conditional (off by default). */
1259 Lisp_Object f_Vw32_quote_process_args;
1260
1261 /* Control whether create_child causes the process' window to be
1262 hidden. The default is nil. */
1263 Lisp_Object f_Vw32_start_process_show_window;
1264
1265 /* Control whether create_child causes the process to inherit Emacs'
1266 console window, or be given a new one of its own. The default is
1267 nil, to allow multiple DOS programs to run on Win95. Having separate
1268 consoles also allows Emacs to cleanly terminate process groups. */
1269 Lisp_Object f_Vw32_start_process_share_console;
1270
1271 /* Control whether create_child cause the process to inherit Emacs'
1272 error mode setting. The default is t, to minimize the possibility of
1273 subprocesses blocking when accessing unmounted drives. */
1274 Lisp_Object f_Vw32_start_process_inherit_error_mode;
1275
1276 /* Time to sleep before reading from a subprocess output pipe - this
1277 avoids the inefficiency of frequently reading small amounts of data.
1278 This is primarily necessary for handling DOS processes on Windows 95,
1279 but is useful for W32 processes on both Windows 95 and NT as well. */
1280 int f_w32_pipe_read_delay;
1281
1282 /* Control conversion of upper case file names to lower case.
1283 nil means no, t means yes. */
1284 Lisp_Object f_Vw32_downcase_file_names;
1285
1286 /* Control whether stat() attempts to generate fake but hopefully
1287 "accurate" inode values, by hashing the absolute truenames of files.
1288 This should detect aliasing between long and short names, but still
1289 allows the possibility of hash collisions. */
1290 Lisp_Object f_Vw32_generate_fake_inodes;
1291
1292 /* Control whether stat() attempts to determine file type and link count
1293 exactly, at the expense of slower operation. Since true hard links
1294 are supported on NTFS volumes, this is only relevant on NT. */
1295 Lisp_Object f_Vw32_get_true_file_attributes;
1296
1297 /* Coding system for communicating with other programs via the
1298 clipboard. */
1299
1300 /* Coding system for the next communication with other programs. */
1301
1302 /* Non-nil means Emacs uses toolkit scroll bars. */
1303 Lisp_Object f_Vx_toolkit_scroll_bars;
1304
1305 /* Non-zero means make use of UNDERLINE_POSITION font properties. */
1306 int f_x_use_underline_position_properties;
1307
1308 /* Non-zero means to draw the underline at the same place as the descent line. */
1309 int f_x_underline_at_descent_line;
1310
1311 int f_w32_use_visible_system_caret;
1312
1313 int f_w32_num_mouse_buttons;
1314
1315 Lisp_Object f_Vw32_swap_mouse_buttons;
1316
1317 /* Control whether x_raise_frame also sets input focus. */
1318 Lisp_Object f_Vw32_grab_focus_on_raise;
1319
1320 /* Control whether Caps Lock affects non-ascii characters. */
1321 Lisp_Object f_Vw32_capslock_is_shiftlock;
1322
1323 /* Control whether right-alt and left-ctrl should be recognized as AltGr. */
1324 Lisp_Object f_Vw32_recognize_altgr;
1325
1326 /* Non-nil means it is the window for C-M-v to scroll
1327 when the mini-buffer is selected. */
1328 Lisp_Object f_Vminibuf_scroll_window;
1329
1330 /* Non-nil means this is the buffer whose window C-M-v should scroll. */
1331 Lisp_Object f_Vother_window_scroll_buffer;
1332
1333 /* Non-nil means it's function to call to display temp buffers. */
1334 Lisp_Object f_Vtemp_buffer_show_function;
1335
1336 /* Non-zero means line and page scrolling on tall lines (with images)
1337 does partial scrolling by modifying window-vscroll. */
1338 int f_auto_window_vscroll_p;
1339
1340 /* Non-zero means to use mode-line-inactive face in all windows but the
1341 selected-window and the minibuffer-scroll-window when the
1342 minibuffer is active. */
1343 int f_mode_line_in_non_selected_windows;
1344
1345 /* If a window gets smaller than either of these, it is removed. */
1346 EMACS_INT f_window_min_height;
1347
1348 EMACS_INT f_window_min_width;
1349
1350 /* Number of lines of continuity in scrolling by screenfuls. */
1351 EMACS_INT f_next_screen_context_lines;
1352
1353 Lisp_Object f_Vwindow_configuration_change_hook;
1354
1355 /* Non-nil means scroll commands try to put point
1356 at the same screen height as previously. */
1357 Lisp_Object f_Vscroll_preserve_screen_position;
1358
1359 /* Non-nil means that text is inserted before window's markers. */
1360 Lisp_Object f_Vwindow_point_insertion_type;
1361
1362 /* If non-nil, then the `recenter' command with a nil argument
1363 the entire frame to be redrawn; the special value `tty' causes the
1364 frame to be redrawn only if it is a tty frame. */
1365 Lisp_Object f_Vrecenter_redisplay;
1366
1367 Lisp_Object f_Vwindow_scroll_functions;
1368
1369 Lisp_Object f_Vwindow_text_change_functions;
1370
1371 Lisp_Object f_Vredisplay_end_trigger_functions;
1372
1373 /* Functions called to fontify regions of text. */
1374 Lisp_Object f_Vfontification_functions;
1375
1376 /* Non-nil means automatically select any window when the mouse
1377 cursor moves into it. */
1378 Lisp_Object f_Vmouse_autoselect_window;
1379
1380 Lisp_Object f_Vwrap_prefix;
1381
1382 Lisp_Object f_Vline_prefix;
1383
1384 /* Non-zero means draw tool bar buttons raised when the mouse moves
1385 over them. */
1386 int f_auto_raise_tool_bar_buttons_p;
1387
1388 /* Non-zero means to reposition window if cursor line is only partially visible. */
1389 int f_make_cursor_line_fully_visible_p;
1390
1391 /* Margin below tool bar in pixels. 0 or nil means no margin.
1392 If value is `internal-border-width' or `border-width',
1393 the corresponding frame parameter is used. */
1394 Lisp_Object f_Vtool_bar_border;
1395
1396 /* Margin around tool bar buttons in pixels. */
1397 Lisp_Object f_Vtool_bar_button_margin;
1398
1399 /* Thickness of shadow to draw around tool bar buttons. */
1400 EMACS_INT f_tool_bar_button_relief;
1401
1402 /* Non-nil means automatically resize tool-bars so that all tool-bar
1403 items are visible, and no blank lines remain.
1404
1405 If value is `grow-only', only make tool-bar bigger. */
1406 Lisp_Object f_Vauto_resize_tool_bars;
1407
1408 /* Type of tool bar. Can be symbols image, text, both or both-hroiz. */
1409 Lisp_Object f_Vtool_bar_style;
1410
1411 /* Maximum number of characters a label can have to be shown. */
1412 EMACS_INT f_tool_bar_max_label_size;
1413
1414 /* Non-zero means draw block and hollow cursor as wide as the glyph
1415 under it. For example, if a block cursor is over a tab, it will be
1416 drawn as wide as that tab on the display. */
1417 int f_x_stretch_cursor_p;
1418
1419 Lisp_Object f_Vinhibit_redisplay;
1420
1421 /* Non-zero means Lisp evaluation during redisplay is inhibited. */
1422 int f_inhibit_eval_during_redisplay;
1423
1424 /* Symbols used in text property values. */
1425 Lisp_Object f_Vdisplay_pixels_per_inch;
1426
1427 /* Non-nil means highlight trailing whitespace. */
1428 Lisp_Object f_Vshow_trailing_whitespace;
1429
1430 /* Non-nil means escape non-break space and hyphens. */
1431 Lisp_Object f_Vnobreak_char_display;
1432
1433 /* Non-nil means show the text cursor in void text areas
1434 i.e. in blank areas after eol and eob. This used to be
1435 the default in 21.3. */
1436 Lisp_Object f_Vvoid_text_area_pointer;
1437
1438 /* Nonzero means truncate lines in all windows less wide than the
1439 frame. */
1440 Lisp_Object f_Vtruncate_partial_width_windows;
1441
1442 /* A flag to control how to display unibyte 8-bit character. */
1443 int f_unibyte_display_via_language_environment;
1444
1445 /* Nonzero means we have more than one non-mini-buffer-only frame.
1446 Not guaranteed to be accurate except while parsing
1447 frame-title-format. */
1448 int f_multiple_frames;
1449
1450 Lisp_Object f_Vglobal_mode_string;
1451
1452 /* List of variables (symbols) which hold markers for overlay arrows.
1453 The symbols on this list are examined during redisplay to determine
1454 where to display overlay arrows. */
1455 Lisp_Object f_Voverlay_arrow_variable_list;
1456
1457 /* Marker for where to display an arrow on top of the buffer text. */
1458 Lisp_Object f_Voverlay_arrow_position;
1459
1460 /* String to display for the arrow. Only used on terminal frames. */
1461 Lisp_Object f_Voverlay_arrow_string;
1462
1463 /* Like mode-line-format, but for the title bar on a visible frame. */
1464 Lisp_Object f_Vframe_title_format;
1465
1466 /* Like mode-line-format, but for the title bar on an iconified frame. */
1467 Lisp_Object f_Vicon_title_format;
1468
1469 /* List of functions to call when a window's size changes. These
1470 functions get one arg, a frame on which one or more windows' sizes
1471 have changed. */
1472 Lisp_Object f_Vwindow_size_change_functions;
1473
1474 Lisp_Object f_Vmenu_bar_update_hook;
1475
1476 /* Nonzero means highlight the region even in nonselected windows. */
1477 int f_highlight_nonselected_windows;
1478
1479 /* If cursor motion alone moves point off frame, try scrolling this
1480 many lines up or down if that will bring it back. */
1481 EMACS_INT f_emacs_scroll_step;
1482
1483 /* Nonzero means scroll just far enough to bring point back on the
1484 screen, when appropriate. */
1485 EMACS_INT f_scroll_conservatively;
1486
1487 /* Recenter the window whenever point gets within this many lines of
1488 the top or bottom of the window. This value is translated into a
1489 pixel value by multiplying it with FRAME_LINE_HEIGHT, which means
1490 that there is really a fixed pixel height scroll margin. */
1491 EMACS_INT f_scroll_margin;
1492
1493 /* Zero means display the mode-line/header-line/menu-bar in the default face
1494 (this slightly odd definition is for compatibility with previous versions
1495 of emacs), non-zero means display them using their respective faces.
1496
1497 This variable is deprecated. */
1498 int f_mode_line_inverse_video;
1499
1500 /* Maximum buffer size for which to display line numbers. */
1501 Lisp_Object f_Vline_number_display_limit;
1502
1503 /* Line width to consider when repositioning for line number display. */
1504 EMACS_INT f_line_number_display_limit_width;
1505
1506 /* Number of lines to keep in the message log buffer. t means
1507 infinite. nil means don't log at all. */
1508 Lisp_Object f_Vmessage_log_max;
1509
1510 int f_inhibit_menubar_update;
1511
1512 /* When evaluating expressions from menu bar items (enable conditions,
1513 for instance), this is the frame they are being processed for. */
1514 Lisp_Object f_Vmenu_updating_frame;
1515
1516 /* Maximum height for resizing mini-windows. Either a float
1517 specifying a fraction of the available height, or an integer
1518 specifying a number of lines. */
1519 Lisp_Object f_Vmax_mini_window_height;
1520
1521 /* Non-zero means messages should be displayed with truncated
1522 lines instead of being continued. */
1523 int f_message_truncate_lines;
1524
1525 /* How to blink the default frame cursor off. */
1526 Lisp_Object f_Vblink_cursor_alist;
1527
1528 /* Variables to turn off display optimizations from Lisp. */
1529 int f_inhibit_try_window_id;
1530 int f_inhibit_try_window_reusing;
1531
1532 int f_inhibit_try_cursor_movement;
1533
1534 /* Non-zero means automatically scroll windows horizontally to make
1535 point visible. */
1536 int f_automatic_hscrolling_p;
1537
1538 /* How close to the margin can point get before the window is scrolled
1539 horizontally. */
1540 EMACS_INT f_hscroll_margin;
1541
1542 /* How much to scroll horizontally when point is inside the above margin. */
1543 Lisp_Object f_Vhscroll_step;
1544
1545 /* The variable `resize-mini-windows'. If nil, don't resize
1546 mini-windows. If t, always resize them to fit the text they
1547 display. If `grow-only', let mini-windows grow only until they
1548 become empty. */
1549 Lisp_Object f_Vresize_mini_windows;
1550
1551 /* Space between overline and text. */
1552 EMACS_INT f_overline_margin;
1553
1554 /* Require underline to be at least this many screen pixels below baseline
1555 This to avoid underline "merging" with the base of letters at small
1556 font sizes, particularly when x_use_underline_position_properties is on. */
1557 EMACS_INT f_underline_minimum_offset;
1558
1559 /* Non-zero means don't free realized faces. Bound while freeing
1560 realized faces is dangerous because glyph matrices might still
1561 reference them. */
1562 int f_inhibit_free_realized_faces;
1563
1564 /* Non-zero means we're allowed to display a hourglass pointer. */
1565 int f_display_hourglass_p;
1566
1567 /* Number of seconds to wait before displaying an hourglass cursor. */
1568 Lisp_Object f_Vhourglass_delay;
1569
1570 /* Char-table to control the display of glyphless characters. */
1571 Lisp_Object f_Vglyphless_char_display;
1572
1573 EMACS_INT f_debug_end_pos;
1574
1575 /* Default stipple pattern used on monochrome displays. This stipple
1576 pattern is used on monochrome displays instead of shades of gray
1577 for a face background color. See `set-face-stipple' for possible
1578 values for this variable. */
1579 Lisp_Object f_Vface_default_stipple;
1580
1581 Lisp_Object f_Vscalable_fonts_allowed;
1582
1583 /* List of regular expressions that matches names of fonts to ignore. */
1584 Lisp_Object f_Vface_ignored_fonts;
1585
1586 /* Alist of font name patterns vs the rescaling factor. */
1587 Lisp_Object f_Vface_font_rescale_alist;
1588
1589 /* Maximum number of fonts to consider in font_list. If not an
1590 integer > 0, DEFAULT_FONT_LIST_LIMIT is used instead. */
1591 Lisp_Object f_Vfont_list_limit;
1592
1593 /* Alist of global face definitions. Each element is of the form
1594 (FACE . LFACE) where FACE is a symbol naming a face and LFACE
1595 is a Lisp vector of face attributes. These faces are used
1596 to initialize faces for new frames. */
1597 Lisp_Object f_Vface_new_frame_defaults;
1598
1599 /* Alist of face remappings. Each element is of the form:
1600 (FACE REPLACEMENT...) which causes display of the face FACE to use
1601 REPLACEMENT... instead. REPLACEMENT... is interpreted the same way
1602 the value of a `face' text property is: it may be (1) A face name,
1603 (2) A list of face names, (3) A property-list of face attribute/value
1604 pairs, or (4) A list of face names intermixed with lists containing
1605 face attribute/value pairs.
1606
1607 Multiple entries in REPLACEMENT... are merged together to form the final
1608 result, with faces or attributes earlier in the list taking precedence
1609 over those that are later.
1610
1611 Face-name remapping cycles are suppressed; recursive references use
1612 the underlying face instead of the remapped face. */
1613 Lisp_Object f_Vface_remapping_alist;
1614
1615 /* An alist of defined terminal colors and their RGB values. */
1616 Lisp_Object f_Vtty_defined_color_alist;
1617
1618 /* LessTif/Motif version info. */
1619 Lisp_Object f_Vmotif_version_string;
1620
1621 /* GTK+ version info */
1622 Lisp_Object f_Vgtk_version_string;
1623
1624 /* Non-zero means prompt with the old GTK file selection dialog. */
1625 int f_x_gtk_use_old_file_dialog;
1626
1627 /* If non-zero, by default show hidden files in the GTK file chooser. */
1628 int f_x_gtk_show_hidden_files;
1629
1630 /* If non-zero, don't show additional help text in the GTK file chooser. */
1631 int f_x_gtk_file_dialog_help_text;
1632
1633 /* If non-zero, don't collapse to tool bar when it is detached. */
1634 int f_x_gtk_whole_detached_tool_bar;
1635
1636 /* If non-zero, use Gtk+ tooltips. */
1637 int f_x_gtk_use_system_tooltips;
1638
1639 /* The background and shape of the mouse pointer, and shape when not
1640 over text or in the modeline. */
1641
1642 /* The shape when over mouse-sensitive text. */
1643
1644 /* If non-nil, the pointer shape to indicate that windows can be
1645 dragged horizontally. */
1646
1647 /* Color of chars displayed in cursor box. */
1648
1649 /* Non nil if no window manager is in use. */
1650
1651 /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
1652
1653 /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
1654
1655 Lisp_Object f_Vx_lost_selection_functions;
1656
1657 Lisp_Object f_Vx_sent_selection_functions;
1658
1659 /* This is an alist whose CARs are selection-types (whose names are the same
1660 as the names of X Atoms) and whose CDRs are the names of Lisp functions to
1661 call to convert the given Emacs selection value to a string representing
1662 the given selection type. This is for Lisp-level extension of the emacs
1663 selection handling. */
1664 Lisp_Object f_Vselection_converter_alist;
1665
1666 /* If the selection owner takes too long to reply to a selection request,
1667 we give up on it. This is in milliseconds (0 = no timeout.) */
1668 EMACS_INT f_x_selection_timeout;
1669
1670 int f_use_system_font;
1671
1672 Lisp_Object f_Vxft_settings;
1673
1674 /* The client session id for this session as a lisp object. */
1675 Lisp_Object f_Vx_session_id;
1676
1677 /* The id we had the previous session. This is only available if we
1678 have been started by the session manager with SMID_OPT. */
1679 Lisp_Object f_Vx_session_previous_id;
1680
1681 /* Non-nil means Emacs uses toolkit scroll bars. */
1682
1683 /* Non-zero means make use of UNDERLINE_POSITION font properties. */
1684
1685 /* Non-zero means to draw the underline at the same place as the descent line. */
1686
1687 /* Non-zero means to not move point as a result of clicking on a
1688 frame to focus it (when focus-follows-mouse is nil). */
1689 int f_x_mouse_click_focus_ignore_position;
1690
1691 /* The keysyms to use for the various modifiers. */
1692 Lisp_Object f_Vx_alt_keysym;
1693 Lisp_Object f_Vx_hyper_keysym;
1694 Lisp_Object f_Vx_meta_keysym;
1695 Lisp_Object f_Vx_super_keysym;
1696
1697 Lisp_Object f_Vx_keysym_table;
1698};
1699
1700extern struct emacs_globals globals;
1701
1702#define Vafter_change_functions \
1703 globals.f_Vafter_change_functions
1704#define Vafter_init_time \
1705 globals.f_Vafter_init_time
1706#define Vafter_insert_file_functions \
1707 globals.f_Vafter_insert_file_functions
1708#define Vafter_load_alist \
1709 globals.f_Vafter_load_alist
1710#define Valternate_fontname_alist \
1711 globals.f_Valternate_fontname_alist
1712#define Vauto_composition_function \
1713 globals.f_Vauto_composition_function
1714#define Vauto_composition_mode \
1715 globals.f_Vauto_composition_mode
1716#define Vauto_fill_chars \
1717 globals.f_Vauto_fill_chars
1718#define Vauto_resize_tool_bars \
1719 globals.f_Vauto_resize_tool_bars
1720#define Vauto_save_include_big_deletions \
1721 globals.f_Vauto_save_include_big_deletions
1722#define Vauto_save_list_file_name \
1723 globals.f_Vauto_save_list_file_name
1724#define Vauto_save_timeout \
1725 globals.f_Vauto_save_timeout
1726#define Vauto_save_visited_file_name \
1727 globals.f_Vauto_save_visited_file_name
1728#define Vbefore_change_functions \
1729 globals.f_Vbefore_change_functions
1730#define Vbefore_init_time \
1731 globals.f_Vbefore_init_time
1732#define Vblink_cursor_alist \
1733 globals.f_Vblink_cursor_alist
1734#define Vbuffer_access_fontified_property \
1735 globals.f_Vbuffer_access_fontified_property
1736#define Vbuffer_access_fontify_functions \
1737 globals.f_Vbuffer_access_fontify_functions
1738#define Vbuild_files \
1739 globals.f_Vbuild_files
1740#define Vbyte_boolean_vars \
1741 globals.f_Vbyte_boolean_vars
1742#define Vbyte_code_meter \
1743 globals.f_Vbyte_code_meter
1744#define Vbytecomp_version_regexp \
1745 globals.f_Vbytecomp_version_regexp
1746#define Vchange_major_mode_hook \
1747 globals.f_Vchange_major_mode_hook
1748#define Vchar_direction_table \
1749 globals.f_Vchar_direction_table
1750#define Vchar_property_alias_alist \
1751 globals.f_Vchar_property_alias_alist
1752#define Vchar_script_table \
1753 globals.f_Vchar_script_table
1754#define Vchar_width_table \
1755 globals.f_Vchar_width_table
1756#define Vcharset_list \
1757 globals.f_Vcharset_list
1758#define Vcharset_map_path \
1759 globals.f_Vcharset_map_path
1760#define Vcharset_revision_table \
1761 globals.f_Vcharset_revision_table
1762#define Vcode_conversion_map_vector \
1763 globals.f_Vcode_conversion_map_vector
1764#define Vcoding_category_list \
1765 globals.f_Vcoding_category_list
1766#define Vcoding_system_alist \
1767 globals.f_Vcoding_system_alist
1768#define Vcoding_system_for_read \
1769 globals.f_Vcoding_system_for_read
1770#define Vcoding_system_for_write \
1771 globals.f_Vcoding_system_for_write
1772#define Vcoding_system_list \
1773 globals.f_Vcoding_system_list
1774#define Vcombine_after_change_calls \
1775 globals.f_Vcombine_after_change_calls
1776#define Vcommand_debug_status \
1777 globals.f_Vcommand_debug_status
1778#define Vcommand_error_function \
1779 globals.f_Vcommand_error_function
1780#define Vcommand_history \
1781 globals.f_Vcommand_history
1782#define Vcommand_hook_internal \
1783 globals.f_Vcommand_hook_internal
1784#define Vcommand_line_args \
1785 globals.f_Vcommand_line_args
1786#define Vcompletion_ignored_extensions \
1787 globals.f_Vcompletion_ignored_extensions
1788#define Vcompletion_regexp_list \
1789 globals.f_Vcompletion_regexp_list
1790#define Vcompose_chars_after_function \
1791 globals.f_Vcompose_chars_after_function
1792#define Vcomposition_function_table \
1793 globals.f_Vcomposition_function_table
1794#define Vconfigure_info_directory \
1795 globals.f_Vconfigure_info_directory
1796#define Vcurrent_iso639_language \
1797 globals.f_Vcurrent_iso639_language
1798#define Vcurrent_load_list \
1799 globals.f_Vcurrent_load_list
1800#define Vcurrent_prefix_arg \
1801 globals.f_Vcurrent_prefix_arg
1802#define Vdata_directory \
1803 globals.f_Vdata_directory
1804#define Vdbus_debug \
1805 globals.f_Vdbus_debug
1806#define Vdbus_registered_buses \
1807 globals.f_Vdbus_registered_buses
1808#define Vdbus_registered_objects_table \
1809 globals.f_Vdbus_registered_objects_table
1810#define Vdeactivate_mark \
1811 globals.f_Vdeactivate_mark
1812#define Vdebug_ignored_errors \
1813 globals.f_Vdebug_ignored_errors
1814#define Vdebug_on_error \
1815 globals.f_Vdebug_on_error
1816#define Vdebug_on_signal \
1817 globals.f_Vdebug_on_signal
1818#define Vdebugger \
1819 globals.f_Vdebugger
1820#define Vdefault_file_name_coding_system \
1821 globals.f_Vdefault_file_name_coding_system
1822#define Vdefault_frame_alist \
1823 globals.f_Vdefault_frame_alist
1824#define Vdefault_frame_scroll_bars \
1825 globals.f_Vdefault_frame_scroll_bars
1826#define Vdefault_process_coding_system \
1827 globals.f_Vdefault_process_coding_system
1828#define Vdefault_text_properties \
1829 globals.f_Vdefault_text_properties
1830#define Vdeferred_action_function \
1831 globals.f_Vdeferred_action_function
1832#define Vdeferred_action_list \
1833 globals.f_Vdeferred_action_list
1834#define Vdefine_key_rebound_commands \
1835 globals.f_Vdefine_key_rebound_commands
1836#define Vdelete_frame_functions \
1837 globals.f_Vdelete_frame_functions
1838#define Vdelete_terminal_functions \
1839 globals.f_Vdelete_terminal_functions
1840#define Vdisable_point_adjustment \
1841 globals.f_Vdisable_point_adjustment
1842#define Vdisplay_pixels_per_inch \
1843 globals.f_Vdisplay_pixels_per_inch
1844#define Vdoc_directory \
1845 globals.f_Vdoc_directory
1846#define Vdoc_file_name \
1847 globals.f_Vdoc_file_name
1848#define Vdos_display_scancodes \
1849 globals.f_Vdos_display_scancodes
1850#define Vdos_unsupported_char_glyph \
1851 globals.f_Vdos_unsupported_char_glyph
1852#define Vdos_version \
1853 globals.f_Vdos_version
1854#define Vdos_windows_version \
1855 globals.f_Vdos_windows_version
1856#define Vdouble_click_time \
1857 globals.f_Vdouble_click_time
1858#define Vdynamic_library_alist \
1859 globals.f_Vdynamic_library_alist
1860#define Vecho_keystrokes \
1861 globals.f_Vecho_keystrokes
1862#define Vemacs_copyright \
1863 globals.f_Vemacs_copyright
1864#define Vemacs_version \
1865 globals.f_Vemacs_version
1866#define Vemulation_mode_map_alists \
1867 globals.f_Vemulation_mode_map_alists
1868#define Venable_character_translation \
1869 globals.f_Venable_character_translation
1870#define Venable_disabled_menus_and_buttons \
1871 globals.f_Venable_disabled_menus_and_buttons
1872#define Veval_buffer_list \
1873 globals.f_Veval_buffer_list
1874#define Vexec_directory \
1875 globals.f_Vexec_directory
1876#define Vexec_path \
1877 globals.f_Vexec_path
1878#define Vexec_suffixes \
1879 globals.f_Vexec_suffixes
1880#define Vexecuting_kbd_macro \
1881 globals.f_Vexecuting_kbd_macro
1882#define Vface_default_stipple \
1883 globals.f_Vface_default_stipple
1884#define Vface_font_rescale_alist \
1885 globals.f_Vface_font_rescale_alist
1886#define Vface_ignored_fonts \
1887 globals.f_Vface_ignored_fonts
1888#define Vface_new_frame_defaults \
1889 globals.f_Vface_new_frame_defaults
1890#define Vface_remapping_alist \
1891 globals.f_Vface_remapping_alist
1892#define Vfeatures \
1893 globals.f_Vfeatures
1894#define Vfile_coding_system_alist \
1895 globals.f_Vfile_coding_system_alist
1896#define Vfile_name_coding_system \
1897 globals.f_Vfile_name_coding_system
1898#define Vfile_name_handler_alist \
1899 globals.f_Vfile_name_handler_alist
1900#define Vfind_word_boundary_function_table \
1901 globals.f_Vfind_word_boundary_function_table
1902#define Vfirst_change_hook \
1903 globals.f_Vfirst_change_hook
1904#define Vfloat_output_format \
1905 globals.f_Vfloat_output_format
1906#define Vfont_ccl_encoder_alist \
1907 globals.f_Vfont_ccl_encoder_alist
1908#define Vfont_encoding_alist \
1909 globals.f_Vfont_encoding_alist
1910#define Vfont_encoding_charset_alist \
1911 globals.f_Vfont_encoding_charset_alist
1912#define Vfont_list_limit \
1913 globals.f_Vfont_list_limit
1914#define Vfont_log \
1915 globals.f_Vfont_log
1916#define Vfont_slant_table \
1917 globals.f_Vfont_slant_table
1918#define Vfont_weight_table \
1919 globals.f_Vfont_weight_table
1920#define Vfont_width_table \
1921 globals.f_Vfont_width_table
1922#define Vfontification_functions \
1923 globals.f_Vfontification_functions
1924#define Vfontset_alias_alist \
1925 globals.f_Vfontset_alias_alist
1926#define Vframe_alpha_lower_limit \
1927 globals.f_Vframe_alpha_lower_limit
1928#define Vframe_title_format \
1929 globals.f_Vframe_title_format
1930#define Vfringe_bitmaps \
1931 globals.f_Vfringe_bitmaps
1932#define Vfunction_key_map \
1933 globals.f_Vfunction_key_map
1934#define Vgc_cons_percentage \
1935 globals.f_Vgc_cons_percentage
1936#define Vgc_elapsed \
1937 globals.f_Vgc_elapsed
1938#define Vglobal_disable_point_adjustment \
1939 globals.f_Vglobal_disable_point_adjustment
1940#define Vglobal_mode_string \
1941 globals.f_Vglobal_mode_string
1942#define Vglyph_table \
1943 globals.f_Vglyph_table
1944#define Vglyphless_char_display \
1945 globals.f_Vglyphless_char_display
1946#define Vgtk_version_string \
1947 globals.f_Vgtk_version_string
1948#define Vhelp_char \
1949 globals.f_Vhelp_char
1950#define Vhelp_event_list \
1951 globals.f_Vhelp_event_list
1952#define Vhelp_form \
1953 globals.f_Vhelp_form
1954#define Vhistory_add_new_input \
1955 globals.f_Vhistory_add_new_input
1956#define Vhistory_length \
1957 globals.f_Vhistory_length
1958#define Vhourglass_delay \
1959 globals.f_Vhourglass_delay
1960#define Vhscroll_step \
1961 globals.f_Vhscroll_step
1962#define Vicon_title_format \
1963 globals.f_Vicon_title_format
1964#define Vignore_relative_composition \
1965 globals.f_Vignore_relative_composition
1966#define Vimage_cache_eviction_delay \
1967 globals.f_Vimage_cache_eviction_delay
1968#define Vimage_types \
1969 globals.f_Vimage_types
1970#define Vimagemagick_render_type \
1971 globals.f_Vimagemagick_render_type
1972#define Vinhibit_changing_match_data \
1973 globals.f_Vinhibit_changing_match_data
1974#define Vinhibit_field_text_motion \
1975 globals.f_Vinhibit_field_text_motion
1976#define Vinhibit_file_name_handlers \
1977 globals.f_Vinhibit_file_name_handlers
1978#define Vinhibit_file_name_operation \
1979 globals.f_Vinhibit_file_name_operation
1980#define Vinhibit_point_motion_hooks \
1981 globals.f_Vinhibit_point_motion_hooks
1982#define Vinhibit_quit \
1983 globals.f_Vinhibit_quit
1984#define Vinhibit_read_only \
1985 globals.f_Vinhibit_read_only
1986#define Vinhibit_redisplay \
1987 globals.f_Vinhibit_redisplay
1988#define Vinitial_environment \
1989 globals.f_Vinitial_environment
1990#define Vinitial_window_system \
1991 globals.f_Vinitial_window_system
1992#define Vinput_method_function \
1993 globals.f_Vinput_method_function
1994#define Vinput_method_previous_message \
1995 globals.f_Vinput_method_previous_message
1996#define Vinstallation_directory \
1997 globals.f_Vinstallation_directory
1998#define Vinvocation_directory \
1999 globals.f_Vinvocation_directory
2000#define Vinvocation_name \
2001 globals.f_Vinvocation_name
2002#define Vkey_translation_map \
2003 globals.f_Vkey_translation_map
2004#define Vkill_buffer_query_functions \
2005 globals.f_Vkill_buffer_query_functions
2006#define Vkill_emacs_hook \
2007 globals.f_Vkill_emacs_hook
2008#define Vlast_code_conversion_error \
2009 globals.f_Vlast_code_conversion_error
2010#define Vlast_coding_system_used \
2011 globals.f_Vlast_coding_system_used
2012#define Vlast_event_frame \
2013 globals.f_Vlast_event_frame
2014#define Vlatin_extra_code_table \
2015 globals.f_Vlatin_extra_code_table
2016#define Vline_number_display_limit \
2017 globals.f_Vline_number_display_limit
2018#define Vline_prefix \
2019 globals.f_Vline_prefix
2020#define Vload_file_name \
2021 globals.f_Vload_file_name
2022#define Vload_file_rep_suffixes \
2023 globals.f_Vload_file_rep_suffixes
2024#define Vload_history \
2025 globals.f_Vload_history
2026#define Vload_path \
2027 globals.f_Vload_path
2028#define Vload_read_function \
2029 globals.f_Vload_read_function
2030#define Vload_source_file_function \
2031 globals.f_Vload_source_file_function
2032#define Vload_suffixes \
2033 globals.f_Vload_suffixes
2034#define Vlocale_coding_system \
2035 globals.f_Vlocale_coding_system
2036#define Vlucid_menu_bar_dirty_flag \
2037 globals.f_Vlucid_menu_bar_dirty_flag
2038#define Vmacro_declaration_function \
2039 globals.f_Vmacro_declaration_function
2040#define Vmake_pointer_invisible \
2041 globals.f_Vmake_pointer_invisible
2042#define Vmark_even_if_inactive \
2043 globals.f_Vmark_even_if_inactive
2044#define Vmax_image_size \
2045 globals.f_Vmax_image_size
2046#define Vmax_mini_window_height \
2047 globals.f_Vmax_mini_window_height
2048#define Vmemory_full \
2049 globals.f_Vmemory_full
2050#define Vmemory_signal_data \
2051 globals.f_Vmemory_signal_data
2052#define Vmenu_bar_final_items \
2053 globals.f_Vmenu_bar_final_items
2054#define Vmenu_bar_mode \
2055 globals.f_Vmenu_bar_mode
2056#define Vmenu_bar_update_hook \
2057 globals.f_Vmenu_bar_update_hook
2058#define Vmenu_updating_frame \
2059 globals.f_Vmenu_updating_frame
2060#define Vmessage_log_max \
2061 globals.f_Vmessage_log_max
2062#define Vminibuf_scroll_window \
2063 globals.f_Vminibuf_scroll_window
2064#define Vminibuffer_completing_file_name \
2065 globals.f_Vminibuffer_completing_file_name
2066#define Vminibuffer_completion_confirm \
2067 globals.f_Vminibuffer_completion_confirm
2068#define Vminibuffer_completion_predicate \
2069 globals.f_Vminibuffer_completion_predicate
2070#define Vminibuffer_completion_table \
2071 globals.f_Vminibuffer_completion_table
2072#define Vminibuffer_exit_hook \
2073 globals.f_Vminibuffer_exit_hook
2074#define Vminibuffer_help_form \
2075 globals.f_Vminibuffer_help_form
2076#define Vminibuffer_history_position \
2077 globals.f_Vminibuffer_history_position
2078#define Vminibuffer_history_variable \
2079 globals.f_Vminibuffer_history_variable
2080#define Vminibuffer_local_completion_map \
2081 globals.f_Vminibuffer_local_completion_map
2082#define Vminibuffer_local_filename_completion_map \
2083 globals.f_Vminibuffer_local_filename_completion_map
2084#define Vminibuffer_local_filename_must_match_map \
2085 globals.f_Vminibuffer_local_filename_must_match_map
2086#define Vminibuffer_local_map \
2087 globals.f_Vminibuffer_local_map
2088#define Vminibuffer_local_must_match_map \
2089 globals.f_Vminibuffer_local_must_match_map
2090#define Vminibuffer_local_ns_map \
2091 globals.f_Vminibuffer_local_ns_map
2092#define Vminibuffer_message_timeout \
2093 globals.f_Vminibuffer_message_timeout
2094#define Vminibuffer_prompt_properties \
2095 globals.f_Vminibuffer_prompt_properties
2096#define Vminibuffer_setup_hook \
2097 globals.f_Vminibuffer_setup_hook
2098#define Vminor_mode_map_alist \
2099 globals.f_Vminor_mode_map_alist
2100#define Vminor_mode_overriding_map_alist \
2101 globals.f_Vminor_mode_overriding_map_alist
2102#define Vmost_negative_fixnum \
2103 globals.f_Vmost_negative_fixnum
2104#define Vmost_positive_fixnum \
2105 globals.f_Vmost_positive_fixnum
2106#define Vmotif_version_string \
2107 globals.f_Vmotif_version_string
2108#define Vmouse_autoselect_window \
2109 globals.f_Vmouse_autoselect_window
2110#define Vmouse_highlight \
2111 globals.f_Vmouse_highlight
2112#define Vmouse_leave_buffer_hook \
2113 globals.f_Vmouse_leave_buffer_hook
2114#define Vmouse_position_function \
2115 globals.f_Vmouse_position_function
2116#define Vnetwork_coding_system_alist \
2117 globals.f_Vnetwork_coding_system_alist
2118#define Vnext_selection_coding_system \
2119 globals.f_Vnext_selection_coding_system
2120#define Vnobreak_char_display \
2121 globals.f_Vnobreak_char_display
2122#define Vobarray \
2123 globals.f_Vobarray
2124#define Vold_style_backquotes \
2125 globals.f_Vold_style_backquotes
2126#define Voperating_system_release \
2127 globals.f_Voperating_system_release
2128#define Votf_script_alist \
2129 globals.f_Votf_script_alist
2130#define Vother_window_scroll_buffer \
2131 globals.f_Vother_window_scroll_buffer
2132#define Voverflow_newline_into_fringe \
2133 globals.f_Voverflow_newline_into_fringe
2134#define Voverlay_arrow_position \
2135 globals.f_Voverlay_arrow_position
2136#define Voverlay_arrow_string \
2137 globals.f_Voverlay_arrow_string
2138#define Voverlay_arrow_variable_list \
2139 globals.f_Voverlay_arrow_variable_list
2140#define Voverriding_local_map \
2141 globals.f_Voverriding_local_map
2142#define Voverriding_local_map_menu_flag \
2143 globals.f_Voverriding_local_map_menu_flag
2144#define Vpath_separator \
2145 globals.f_Vpath_separator
2146#define Vpost_command_hook \
2147 globals.f_Vpost_command_hook
2148#define Vpost_gc_hook \
2149 globals.f_Vpost_gc_hook
2150#define Vpost_self_insert_hook \
2151 globals.f_Vpost_self_insert_hook
2152#define Vpre_command_hook \
2153 globals.f_Vpre_command_hook
2154#define Vprefix_help_command \
2155 globals.f_Vprefix_help_command
2156#define Vpreloaded_file_list \
2157 globals.f_Vpreloaded_file_list
2158#define Vprevious_system_messages_locale \
2159 globals.f_Vprevious_system_messages_locale
2160#define Vprevious_system_time_locale \
2161 globals.f_Vprevious_system_time_locale
2162#define Vprint_charset_text_property \
2163 globals.f_Vprint_charset_text_property
2164#define Vprint_circle \
2165 globals.f_Vprint_circle
2166#define Vprint_continuous_numbering \
2167 globals.f_Vprint_continuous_numbering
2168#define Vprint_gensym \
2169 globals.f_Vprint_gensym
2170#define Vprint_length \
2171 globals.f_Vprint_length
2172#define Vprint_level \
2173 globals.f_Vprint_level
2174#define Vprint_number_table \
2175 globals.f_Vprint_number_table
2176#define Vprintable_chars \
2177 globals.f_Vprintable_chars
2178#define Vprocess_adaptive_read_buffering \
2179 globals.f_Vprocess_adaptive_read_buffering
2180#define Vprocess_coding_system_alist \
2181 globals.f_Vprocess_coding_system_alist
2182#define Vprocess_connection_type \
2183 globals.f_Vprocess_connection_type
2184#define Vprocess_environment \
2185 globals.f_Vprocess_environment
2186#define Vpurify_flag \
2187 globals.f_Vpurify_flag
2188#define Vquit_flag \
2189 globals.f_Vquit_flag
2190#define Vread_buffer_function \
2191 globals.f_Vread_buffer_function
2192#define Vread_circle \
2193 globals.f_Vread_circle
2194#define Vread_expression_map \
2195 globals.f_Vread_expression_map
2196#define Vread_symbol_positions_list \
2197 globals.f_Vread_symbol_positions_list
2198#define Vread_with_symbol_positions \
2199 globals.f_Vread_with_symbol_positions
2200#define Vrecenter_redisplay \
2201 globals.f_Vrecenter_redisplay
2202#define Vredisplay_end_trigger_functions \
2203 globals.f_Vredisplay_end_trigger_functions
2204#define Vredisplay_preemption_period \
2205 globals.f_Vredisplay_preemption_period
2206#define Vresize_mini_windows \
2207 globals.f_Vresize_mini_windows
2208#define Vresume_tty_functions \
2209 globals.f_Vresume_tty_functions
2210#define Vring_bell_function \
2211 globals.f_Vring_bell_function
2212#define Vsaved_region_selection \
2213 globals.f_Vsaved_region_selection
2214#define Vscalable_fonts_allowed \
2215 globals.f_Vscalable_fonts_allowed
2216#define Vscript_representative_chars \
2217 globals.f_Vscript_representative_chars
2218#define Vscroll_preserve_screen_position \
2219 globals.f_Vscroll_preserve_screen_position
2220#define Vsearch_spaces_regexp \
2221 globals.f_Vsearch_spaces_regexp
2222#define Vselect_active_regions \
2223 globals.f_Vselect_active_regions
2224#define Vselect_safe_coding_system_function \
2225 globals.f_Vselect_safe_coding_system_function
2226#define Vselection_coding_system \
2227 globals.f_Vselection_coding_system
2228#define Vselection_converter_alist \
2229 globals.f_Vselection_converter_alist
2230#define Vset_auto_coding_function \
2231 globals.f_Vset_auto_coding_function
2232#define Vshared_game_score_directory \
2233 globals.f_Vshared_game_score_directory
2234#define Vshell_file_name \
2235 globals.f_Vshell_file_name
2236#define Vshow_help_function \
2237 globals.f_Vshow_help_function
2238#define Vshow_trailing_whitespace \
2239 globals.f_Vshow_trailing_whitespace
2240#define Vsignal_hook_function \
2241 globals.f_Vsignal_hook_function
2242#define Vsource_directory \
2243 globals.f_Vsource_directory
2244#define Vspecial_event_map \
2245 globals.f_Vspecial_event_map
2246#define Vstack_trace_on_error \
2247 globals.f_Vstack_trace_on_error
2248#define Vstandard_display_table \
2249 globals.f_Vstandard_display_table
2250#define Vstandard_input \
2251 globals.f_Vstandard_input
2252#define Vstandard_output \
2253 globals.f_Vstandard_output
2254#define Vstandard_translation_table_for_decode \
2255 globals.f_Vstandard_translation_table_for_decode
2256#define Vstandard_translation_table_for_encode \
2257 globals.f_Vstandard_translation_table_for_encode
2258#define Vsuggest_key_bindings \
2259 globals.f_Vsuggest_key_bindings
2260#define Vsuspend_tty_functions \
2261 globals.f_Vsuspend_tty_functions
2262#define Vsystem_configuration \
2263 globals.f_Vsystem_configuration
2264#define Vsystem_configuration_options \
2265 globals.f_Vsystem_configuration_options
2266#define Vsystem_messages_locale \
2267 globals.f_Vsystem_messages_locale
2268#define Vsystem_name \
2269 globals.f_Vsystem_name
2270#define Vsystem_time_locale \
2271 globals.f_Vsystem_time_locale
2272#define Vsystem_type \
2273 globals.f_Vsystem_type
2274#define Vtemp_buffer_show_function \
2275 globals.f_Vtemp_buffer_show_function
2276#define Vtemporary_file_directory \
2277 globals.f_Vtemporary_file_directory
2278#define Vterminal_frame \
2279 globals.f_Vterminal_frame
2280#define Vtext_property_default_nonsticky \
2281 globals.f_Vtext_property_default_nonsticky
2282#define Vthis_command \
2283 globals.f_Vthis_command
2284#define Vthis_command_keys_shift_translated \
2285 globals.f_Vthis_command_keys_shift_translated
2286#define Vthis_original_command \
2287 globals.f_Vthis_original_command
2288#define Vthrow_on_input \
2289 globals.f_Vthrow_on_input
2290#define Vtimer_idle_list \
2291 globals.f_Vtimer_idle_list
2292#define Vtimer_list \
2293 globals.f_Vtimer_list
2294#define Vtool_bar_border \
2295 globals.f_Vtool_bar_border
2296#define Vtool_bar_button_margin \
2297 globals.f_Vtool_bar_button_margin
2298#define Vtool_bar_mode \
2299 globals.f_Vtool_bar_mode
2300#define Vtool_bar_separator_image_expression \
2301 globals.f_Vtool_bar_separator_image_expression
2302#define Vtool_bar_style \
2303 globals.f_Vtool_bar_style
2304#define Vtop_level \
2305 globals.f_Vtop_level
2306#define Vtransient_mark_mode \
2307 globals.f_Vtransient_mark_mode
2308#define Vtranslation_hash_table_vector \
2309 globals.f_Vtranslation_hash_table_vector
2310#define Vtranslation_table_for_input \
2311 globals.f_Vtranslation_table_for_input
2312#define Vtranslation_table_vector \
2313 globals.f_Vtranslation_table_vector
2314#define Vtruncate_partial_width_windows \
2315 globals.f_Vtruncate_partial_width_windows
2316#define Vtty_defined_color_alist \
2317 globals.f_Vtty_defined_color_alist
2318#define Vtty_erase_char \
2319 globals.f_Vtty_erase_char
2320#define Vundo_outer_limit \
2321 globals.f_Vundo_outer_limit
2322#define Vundo_outer_limit_function \
2323 globals.f_Vundo_outer_limit_function
2324#define Vunicode_category_table \
2325 globals.f_Vunicode_category_table
2326#define Vunread_command_events \
2327 globals.f_Vunread_command_events
2328#define Vunread_input_method_events \
2329 globals.f_Vunread_input_method_events
2330#define Vunread_post_input_method_events \
2331 globals.f_Vunread_post_input_method_events
2332#define Vuse_default_ascent \
2333 globals.f_Vuse_default_ascent
2334#define Vuser_full_name \
2335 globals.f_Vuser_full_name
2336#define Vuser_init_file \
2337 globals.f_Vuser_init_file
2338#define Vuser_login_name \
2339 globals.f_Vuser_login_name
2340#define Vuser_real_login_name \
2341 globals.f_Vuser_real_login_name
2342#define Vvalues \
2343 globals.f_Vvalues
2344#define Vvertical_centering_font_regexp \
2345 globals.f_Vvertical_centering_font_regexp
2346#define Vvoid_text_area_pointer \
2347 globals.f_Vvoid_text_area_pointer
2348#define Vw32_alt_is_meta \
2349 globals.f_Vw32_alt_is_meta
2350#define Vw32_apps_modifier \
2351 globals.f_Vw32_apps_modifier
2352#define Vw32_bdf_filename_alist \
2353 globals.f_Vw32_bdf_filename_alist
2354#define Vw32_capslock_is_shiftlock \
2355 globals.f_Vw32_capslock_is_shiftlock
2356#define Vw32_charset_info_alist \
2357 globals.f_Vw32_charset_info_alist
2358#define Vw32_color_map \
2359 globals.f_Vw32_color_map
2360#define Vw32_downcase_file_names \
2361 globals.f_Vw32_downcase_file_names
2362#define Vw32_enable_caps_lock \
2363 globals.f_Vw32_enable_caps_lock
2364#define Vw32_enable_num_lock \
2365 globals.f_Vw32_enable_num_lock
2366#define Vw32_enable_palette \
2367 globals.f_Vw32_enable_palette
2368#define Vw32_generate_fake_inodes \
2369 globals.f_Vw32_generate_fake_inodes
2370#define Vw32_get_true_file_attributes \
2371 globals.f_Vw32_get_true_file_attributes
2372#define Vw32_grab_focus_on_raise \
2373 globals.f_Vw32_grab_focus_on_raise
2374#define Vw32_lwindow_modifier \
2375 globals.f_Vw32_lwindow_modifier
2376#define Vw32_pass_alt_to_system \
2377 globals.f_Vw32_pass_alt_to_system
2378#define Vw32_pass_lwindow_to_system \
2379 globals.f_Vw32_pass_lwindow_to_system
2380#define Vw32_pass_rwindow_to_system \
2381 globals.f_Vw32_pass_rwindow_to_system
2382#define Vw32_phantom_key_code \
2383 globals.f_Vw32_phantom_key_code
2384#define Vw32_quote_process_args \
2385 globals.f_Vw32_quote_process_args
2386#define Vw32_recognize_altgr \
2387 globals.f_Vw32_recognize_altgr
2388#define Vw32_rwindow_modifier \
2389 globals.f_Vw32_rwindow_modifier
2390#define Vw32_scroll_lock_modifier \
2391 globals.f_Vw32_scroll_lock_modifier
2392#define Vw32_start_process_inherit_error_mode \
2393 globals.f_Vw32_start_process_inherit_error_mode
2394#define Vw32_start_process_share_console \
2395 globals.f_Vw32_start_process_share_console
2396#define Vw32_start_process_show_window \
2397 globals.f_Vw32_start_process_show_window
2398#define Vw32_swap_mouse_buttons \
2399 globals.f_Vw32_swap_mouse_buttons
2400#define Vwhere_is_preferred_modifier \
2401 globals.f_Vwhere_is_preferred_modifier
2402#define Vwindow_configuration_change_hook \
2403 globals.f_Vwindow_configuration_change_hook
2404#define Vwindow_point_insertion_type \
2405 globals.f_Vwindow_point_insertion_type
2406#define Vwindow_scroll_functions \
2407 globals.f_Vwindow_scroll_functions
2408#define Vwindow_size_change_functions \
2409 globals.f_Vwindow_size_change_functions
2410#define Vwindow_system_version \
2411 globals.f_Vwindow_system_version
2412#define Vwindow_text_change_functions \
2413 globals.f_Vwindow_text_change_functions
2414#define Vword_combining_categories \
2415 globals.f_Vword_combining_categories
2416#define Vword_separating_categories \
2417 globals.f_Vword_separating_categories
2418#define Vwrap_prefix \
2419 globals.f_Vwrap_prefix
2420#define Vwrite_region_annotate_functions \
2421 globals.f_Vwrite_region_annotate_functions
2422#define Vwrite_region_annotations_so_far \
2423 globals.f_Vwrite_region_annotations_so_far
2424#define Vwrite_region_post_annotation_function \
2425 globals.f_Vwrite_region_post_annotation_function
2426#define Vx_alt_keysym \
2427 globals.f_Vx_alt_keysym
2428#define Vx_bitmap_file_path \
2429 globals.f_Vx_bitmap_file_path
2430#define Vx_cursor_fore_pixel \
2431 globals.f_Vx_cursor_fore_pixel
2432#define Vx_hourglass_pointer_shape \
2433 globals.f_Vx_hourglass_pointer_shape
2434#define Vx_hyper_keysym \
2435 globals.f_Vx_hyper_keysym
2436#define Vx_keysym_table \
2437 globals.f_Vx_keysym_table
2438#define Vx_lost_selection_functions \
2439 globals.f_Vx_lost_selection_functions
2440#define Vx_max_tooltip_size \
2441 globals.f_Vx_max_tooltip_size
2442#define Vx_meta_keysym \
2443 globals.f_Vx_meta_keysym
2444#define Vx_mode_pointer_shape \
2445 globals.f_Vx_mode_pointer_shape
2446#define Vx_no_window_manager \
2447 globals.f_Vx_no_window_manager
2448#define Vx_nontext_pointer_shape \
2449 globals.f_Vx_nontext_pointer_shape
2450#define Vx_pixel_size_width_font_regexp \
2451 globals.f_Vx_pixel_size_width_font_regexp
2452#define Vx_pointer_shape \
2453 globals.f_Vx_pointer_shape
2454#define Vx_resource_class \
2455 globals.f_Vx_resource_class
2456#define Vx_resource_name \
2457 globals.f_Vx_resource_name
2458#define Vx_sensitive_text_pointer_shape \
2459 globals.f_Vx_sensitive_text_pointer_shape
2460#define Vx_sent_selection_functions \
2461 globals.f_Vx_sent_selection_functions
2462#define Vx_session_id \
2463 globals.f_Vx_session_id
2464#define Vx_session_previous_id \
2465 globals.f_Vx_session_previous_id
2466#define Vx_super_keysym \
2467 globals.f_Vx_super_keysym
2468#define Vx_toolkit_scroll_bars \
2469 globals.f_Vx_toolkit_scroll_bars
2470#define Vx_window_horizontal_drag_shape \
2471 globals.f_Vx_window_horizontal_drag_shape
2472#define Vxft_settings \
2473 globals.f_Vxft_settings
2474#define auto_raise_tool_bar_buttons_p \
2475 globals.f_auto_raise_tool_bar_buttons_p
2476#define auto_save_interval \
2477 globals.f_auto_save_interval
2478#define auto_window_vscroll_p \
2479 globals.f_auto_window_vscroll_p
2480#define automatic_hscrolling_p \
2481 globals.f_automatic_hscrolling_p
2482#define baud_rate \
2483 globals.f_baud_rate
2484#define byte_debug_flag \
2485 globals.f_byte_debug_flag
2486#define byte_metering_on \
2487 globals.f_byte_metering_on
2488#define cannot_suspend \
2489 globals.f_cannot_suspend
2490#define check_markers_debug_flag \
2491 globals.f_check_markers_debug_flag
2492#define coding_system_require_warning \
2493 globals.f_coding_system_require_warning
2494#define completion_ignore_case \
2495 globals.f_completion_ignore_case
2496#define cons_cells_consed \
2497 globals.f_cons_cells_consed
2498#define cross_disabled_images \
2499 globals.f_cross_disabled_images
2500#define cursor_in_echo_area \
2501 globals.f_cursor_in_echo_area
2502#define debug_end_pos \
2503 globals.f_debug_end_pos
2504#define debug_on_next_call \
2505 globals.f_debug_on_next_call
2506#define debug_on_quit \
2507 globals.f_debug_on_quit
2508#define debugger_may_continue \
2509 globals.f_debugger_may_continue
2510#define delete_by_moving_to_trash \
2511 globals.f_delete_by_moving_to_trash
2512#define delete_exited_processes \
2513 globals.f_delete_exited_processes
2514#define display_hourglass_p \
2515 globals.f_display_hourglass_p
2516#define do_mouse_tracking \
2517 globals.f_do_mouse_tracking
2518#define dos_codepage \
2519 globals.f_dos_codepage
2520#define dos_country_code \
2521 globals.f_dos_country_code
2522#define dos_decimal_point \
2523 globals.f_dos_decimal_point
2524#define dos_hyper_key \
2525 globals.f_dos_hyper_key
2526#define dos_keyboard_layout \
2527 globals.f_dos_keyboard_layout
2528#define dos_keypad_mode \
2529 globals.f_dos_keypad_mode
2530#define dos_super_key \
2531 globals.f_dos_super_key
2532#define dos_timezone_offset \
2533 globals.f_dos_timezone_offset
2534#define double_click_fuzz \
2535 globals.f_double_click_fuzz
2536#define emacs_scroll_step \
2537 globals.f_emacs_scroll_step
2538#define enable_recursive_minibuffers \
2539 globals.f_enable_recursive_minibuffers
2540#define eol_mnemonic_dos \
2541 globals.f_eol_mnemonic_dos
2542#define eol_mnemonic_mac \
2543 globals.f_eol_mnemonic_mac
2544#define eol_mnemonic_undecided \
2545 globals.f_eol_mnemonic_undecided
2546#define eol_mnemonic_unix \
2547 globals.f_eol_mnemonic_unix
2548#define executing_kbd_macro_index \
2549 globals.f_executing_kbd_macro_index
2550#define extra_keyboard_modifiers \
2551 globals.f_extra_keyboard_modifiers
2552#define floats_consed \
2553 globals.f_floats_consed
2554#define focus_follows_mouse \
2555 globals.f_focus_follows_mouse
2556#define force_load_messages \
2557 globals.f_force_load_messages
2558#define garbage_collection_messages \
2559 globals.f_garbage_collection_messages
2560#define gc_cons_threshold \
2561 globals.f_gc_cons_threshold
2562#define gcs_done \
2563 globals.f_gcs_done
2564#define highlight_nonselected_windows \
2565 globals.f_highlight_nonselected_windows
2566#define history_delete_duplicates \
2567 globals.f_history_delete_duplicates
2568#define hscroll_margin \
2569 globals.f_hscroll_margin
2570#define indent_tabs_mode \
2571 globals.f_indent_tabs_mode
2572#define inherit_process_coding_system \
2573 globals.f_inherit_process_coding_system
2574#define inhibit_eol_conversion \
2575 globals.f_inhibit_eol_conversion
2576#define inhibit_eval_during_redisplay \
2577 globals.f_inhibit_eval_during_redisplay
2578#define inhibit_free_realized_faces \
2579 globals.f_inhibit_free_realized_faces
2580#define inhibit_iso_escape_detection \
2581 globals.f_inhibit_iso_escape_detection
2582#define inhibit_load_charset_map \
2583 globals.f_inhibit_load_charset_map
2584#define inhibit_local_menu_bar_menus \
2585 globals.f_inhibit_local_menu_bar_menus
2586#define inhibit_menubar_update \
2587 globals.f_inhibit_menubar_update
2588#define inhibit_modification_hooks \
2589 globals.f_inhibit_modification_hooks
2590#define inhibit_null_byte_detection \
2591 globals.f_inhibit_null_byte_detection
2592#define inhibit_try_cursor_movement \
2593 globals.f_inhibit_try_cursor_movement
2594#define inhibit_try_window_id \
2595 globals.f_inhibit_try_window_id
2596#define inhibit_try_window_reusing \
2597 globals.f_inhibit_try_window_reusing
2598#define inhibit_x_resources \
2599 globals.f_inhibit_x_resources
2600#define intervals_consed \
2601 globals.f_intervals_consed
2602#define inverse_video \
2603 globals.f_inverse_video
2604#define last_command_event \
2605 globals.f_last_command_event
2606#define last_input_event \
2607 globals.f_last_input_event
2608#define last_nonmenu_event \
2609 globals.f_last_nonmenu_event
2610#define line_number_display_limit_width \
2611 globals.f_line_number_display_limit_width
2612#define load_convert_to_unibyte \
2613 globals.f_load_convert_to_unibyte
2614#define load_dangerous_libraries \
2615 globals.f_load_dangerous_libraries
2616#define load_force_doc_strings \
2617 globals.f_load_force_doc_strings
2618#define load_in_progress \
2619 globals.f_load_in_progress
2620#define make_cursor_line_fully_visible_p \
2621 globals.f_make_cursor_line_fully_visible_p
2622#define max_lisp_eval_depth \
2623 globals.f_max_lisp_eval_depth
2624#define max_specpdl_size \
2625 globals.f_max_specpdl_size
2626#define menu_prompt_more_char \
2627 globals.f_menu_prompt_more_char
2628#define menu_prompting \
2629 globals.f_menu_prompting
2630#define message_truncate_lines \
2631 globals.f_message_truncate_lines
2632#define meta_prefix_char \
2633 globals.f_meta_prefix_char
2634#define minibuffer_allow_text_properties \
2635 globals.f_minibuffer_allow_text_properties
2636#define minibuffer_auto_raise \
2637 globals.f_minibuffer_auto_raise
2638#define misc_objects_consed \
2639 globals.f_misc_objects_consed
2640#define mode_line_in_non_selected_windows \
2641 globals.f_mode_line_in_non_selected_windows
2642#define mode_line_inverse_video \
2643 globals.f_mode_line_inverse_video
2644#define multibyte_syntax_as_symbol \
2645 globals.f_multibyte_syntax_as_symbol
2646#define multiple_frames \
2647 globals.f_multiple_frames
2648#define next_screen_context_lines \
2649 globals.f_next_screen_context_lines
2650#define no_redraw_on_reenter \
2651 globals.f_no_redraw_on_reenter
2652#define noninteractive1 \
2653 globals.f_noninteractive1
2654#define num_input_keys \
2655 globals.f_num_input_keys
2656#define num_nonmacro_input_events \
2657 globals.f_num_nonmacro_input_events
2658#define open_paren_in_column_0_is_defun_start \
2659 globals.f_open_paren_in_column_0_is_defun_start
2660#define overline_margin \
2661 globals.f_overline_margin
2662#define parse_sexp_ignore_comments \
2663 globals.f_parse_sexp_ignore_comments
2664#define parse_sexp_lookup_properties \
2665 globals.f_parse_sexp_lookup_properties
2666#define polling_period \
2667 globals.f_polling_period
2668#define print_escape_multibyte \
2669 globals.f_print_escape_multibyte
2670#define print_escape_newlines \
2671 globals.f_print_escape_newlines
2672#define print_escape_nonascii \
2673 globals.f_print_escape_nonascii
2674#define print_quoted \
2675 globals.f_print_quoted
2676#define pure_bytes_used \
2677 globals.f_pure_bytes_used
2678#define read_buffer_completion_ignore_case \
2679 globals.f_read_buffer_completion_ignore_case
2680#define redisplay_dont_pause \
2681 globals.f_redisplay_dont_pause
2682#define scroll_conservatively \
2683 globals.f_scroll_conservatively
2684#define scroll_margin \
2685 globals.f_scroll_margin
2686#define string_chars_consed \
2687 globals.f_string_chars_consed
2688#define strings_consed \
2689 globals.f_strings_consed
2690#define symbols_consed \
2691 globals.f_symbols_consed
2692#define system_uses_terminfo \
2693 globals.f_system_uses_terminfo
2694#define tool_bar_button_relief \
2695 globals.f_tool_bar_button_relief
2696#define tool_bar_max_label_size \
2697 globals.f_tool_bar_max_label_size
2698#define underline_minimum_offset \
2699 globals.f_underline_minimum_offset
2700#define undo_inhibit_record_point \
2701 globals.f_undo_inhibit_record_point
2702#define undo_limit \
2703 globals.f_undo_limit
2704#define undo_strong_limit \
2705 globals.f_undo_strong_limit
2706#define unibyte_display_via_language_environment \
2707 globals.f_unibyte_display_via_language_environment
2708#define unread_command_char \
2709 globals.f_unread_command_char
2710#define use_dialog_box \
2711 globals.f_use_dialog_box
2712#define use_file_dialog \
2713 globals.f_use_file_dialog
2714#define use_system_font \
2715 globals.f_use_system_font
2716#define vector_cells_consed \
2717 globals.f_vector_cells_consed
2718#define visible_bell \
2719 globals.f_visible_bell
2720#define visible_cursor \
2721 globals.f_visible_cursor
2722#define w32_ansi_code_page \
2723 globals.f_w32_ansi_code_page
2724#define w32_enable_synthesized_fonts \
2725 globals.f_w32_enable_synthesized_fonts
2726#define w32_mouse_button_tolerance \
2727 globals.f_w32_mouse_button_tolerance
2728#define w32_mouse_move_interval \
2729 globals.f_w32_mouse_move_interval
2730#define w32_num_mouse_buttons \
2731 globals.f_w32_num_mouse_buttons
2732#define w32_pass_extra_mouse_buttons_to_system \
2733 globals.f_w32_pass_extra_mouse_buttons_to_system
2734#define w32_pass_multimedia_buttons_to_system \
2735 globals.f_w32_pass_multimedia_buttons_to_system
2736#define w32_pipe_read_delay \
2737 globals.f_w32_pipe_read_delay
2738#define w32_quit_key \
2739 globals.f_w32_quit_key
2740#define w32_strict_fontnames \
2741 globals.f_w32_strict_fontnames
2742#define w32_strict_painting \
2743 globals.f_w32_strict_painting
2744#define w32_use_full_screen_buffer \
2745 globals.f_w32_use_full_screen_buffer
2746#define w32_use_visible_system_caret \
2747 globals.f_w32_use_visible_system_caret
2748#define window_min_height \
2749 globals.f_window_min_height
2750#define window_min_width \
2751 globals.f_window_min_width
2752#define words_include_escapes \
2753 globals.f_words_include_escapes
2754#define write_region_inhibit_fsync \
2755 globals.f_write_region_inhibit_fsync
2756#define x_gtk_file_dialog_help_text \
2757 globals.f_x_gtk_file_dialog_help_text
2758#define x_gtk_show_hidden_files \
2759 globals.f_x_gtk_show_hidden_files
2760#define x_gtk_use_old_file_dialog \
2761 globals.f_x_gtk_use_old_file_dialog
2762#define x_gtk_use_system_tooltips \
2763 globals.f_x_gtk_use_system_tooltips
2764#define x_gtk_whole_detached_tool_bar \
2765 globals.f_x_gtk_whole_detached_tool_bar
2766#define x_mouse_click_focus_ignore_position \
2767 globals.f_x_mouse_click_focus_ignore_position
2768#define x_selection_timeout \
2769 globals.f_x_selection_timeout
2770#define x_stretch_cursor_p \
2771 globals.f_x_stretch_cursor_p
2772#define x_underline_at_descent_line \
2773 globals.f_x_underline_at_descent_line
2774#define x_use_underline_position_properties \
2775 globals.f_x_use_underline_position_properties
diff --git a/src/gtkutil.h b/src/gtkutil.h
index 1bc3a1e77ea..78df4fe7863 100644
--- a/src/gtkutil.h
+++ b/src/gtkutil.h
@@ -182,11 +182,6 @@ extern void xg_initialize (void);
182 to indicate that the callback should do nothing. */ 182 to indicate that the callback should do nothing. */
183extern int xg_ignore_gtk_scrollbar; 183extern int xg_ignore_gtk_scrollbar;
184 184
185extern int x_gtk_use_old_file_dialog;
186extern int x_gtk_show_hidden_files;
187extern int x_gtk_file_dialog_help_text;
188extern int x_gtk_whole_detached_tool_bar;
189
190#endif /* USE_GTK */ 185#endif /* USE_GTK */
191#endif /* GTKUTIL_H */ 186#endif /* GTKUTIL_H */
192 187
diff --git a/src/image.c b/src/image.c
index 53cbcd2071e..8f438e26015 100644
--- a/src/image.c
+++ b/src/image.c
@@ -124,10 +124,6 @@ typedef struct ns_bitmap_record Bitmap_Record;
124#endif /* HAVE_NS */ 124#endif /* HAVE_NS */
125 125
126 126
127/* Search path for bitmap files. */
128
129Lisp_Object Vx_bitmap_file_path;
130
131/* The symbol `postscript' identifying images of this type. */ 127/* The symbol `postscript' identifying images of this type. */
132 128
133Lisp_Object Qpostscript; 129Lisp_Object Qpostscript;
@@ -565,10 +561,6 @@ x_create_bitmap_mask (struct frame *f, int id)
565 561
566static struct image_type *image_types; 562static struct image_type *image_types;
567 563
568/* A list of symbols, one for each supported image type. */
569
570Lisp_Object Vimage_types;
571
572/* Cache for delayed-loading image types. */ 564/* Cache for delayed-loading image types. */
573 565
574static Lisp_Object Vimage_type_cache; 566static Lisp_Object Vimage_type_cache;
@@ -587,11 +579,6 @@ Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask, QCgeometry, QCcrop, Q
587 579
588Lisp_Object Qlaplace, Qemboss, Qedge_detection, Qheuristic; 580Lisp_Object Qlaplace, Qemboss, Qedge_detection, Qheuristic;
589 581
590/* Time in seconds after which images should be removed from the cache
591 if not displayed. */
592
593Lisp_Object Vimage_cache_eviction_delay;
594
595/* Function prototypes. */ 582/* Function prototypes. */
596 583
597static Lisp_Object define_image_type (struct image_type *type, int loaded); 584static Lisp_Object define_image_type (struct image_type *type, int loaded);
@@ -1003,8 +990,6 @@ static void free_image (struct frame *f, struct image *img);
1003static int check_image_size (struct frame *f, int width, int height); 990static int check_image_size (struct frame *f, int width, int height);
1004 991
1005#define MAX_IMAGE_SIZE 6.0 992#define MAX_IMAGE_SIZE 6.0
1006Lisp_Object Vmax_image_size;
1007
1008/* Allocate and return a new image structure for image specification 993/* Allocate and return a new image structure for image specification
1009 SPEC. SPEC has a hash value of HASH. */ 994 SPEC. SPEC has a hash value of HASH. */
1010 995
@@ -4407,11 +4392,6 @@ static void x_detect_edges (struct frame *, struct image *, int[9], int);
4407static void XPutPixel (XImagePtr , int, int, COLORREF); 4392static void XPutPixel (XImagePtr , int, int, COLORREF);
4408#endif /* HAVE_NTGUI */ 4393#endif /* HAVE_NTGUI */
4409 4394
4410/* Non-zero means draw a cross on images having `:conversion
4411 disabled'. */
4412
4413int cross_disabled_images;
4414
4415/* Edge detection matrices for different edge-detection 4395/* Edge detection matrices for different edge-detection
4416 strategies. */ 4396 strategies. */
4417 4397
@@ -7384,8 +7364,6 @@ gif_load (struct frame *f, struct image *img)
7384/* The symbol `imagemagick' identifying images of this type. */ 7364/* The symbol `imagemagick' identifying images of this type. */
7385 7365
7386Lisp_Object Qimagemagick; 7366Lisp_Object Qimagemagick;
7387Lisp_Object Vimagemagick_render_type;
7388
7389/* Indices of image specification fields in imagemagick_format, below. */ 7367/* Indices of image specification fields in imagemagick_format, below. */
7390 7368
7391enum imagemagick_keyword_index 7369enum imagemagick_keyword_index
@@ -8710,13 +8688,13 @@ syms_of_image (void)
8710 8688
8711 /* Must be defined now becase we're going to update it below, while 8689 /* Must be defined now becase we're going to update it below, while
8712 defining the supported image types. */ 8690 defining the supported image types. */
8713 DEFVAR_LISP ("image-types", &Vimage_types, 8691 DEFVAR_LISP ("image-types", Vimage_types,
8714 doc: /* List of potentially supported image types. 8692 doc: /* List of potentially supported image types.
8715Each element of the list is a symbol for an image type, like 'jpeg or 'png. 8693Each element of the list is a symbol for an image type, like 'jpeg or 'png.
8716To check whether it is really supported, use `image-type-available-p'. */); 8694To check whether it is really supported, use `image-type-available-p'. */);
8717 Vimage_types = Qnil; 8695 Vimage_types = Qnil;
8718 8696
8719 DEFVAR_LISP ("max-image-size", &Vmax_image_size, 8697 DEFVAR_LISP ("max-image-size", Vmax_image_size,
8720 doc: /* Maximum size of images. 8698 doc: /* Maximum size of images.
8721Emacs will not load an image into memory if its pixel width or 8699Emacs will not load an image into memory if its pixel width or
8722pixel height exceeds this limit. 8700pixel height exceeds this limit.
@@ -8875,17 +8853,17 @@ non-numeric, there is no explicit limit on the size of images. */);
8875 defsubr (&Slookup_image); 8853 defsubr (&Slookup_image);
8876#endif 8854#endif
8877 8855
8878 DEFVAR_BOOL ("cross-disabled-images", &cross_disabled_images, 8856 DEFVAR_BOOL ("cross-disabled-images", cross_disabled_images,
8879 doc: /* Non-nil means always draw a cross over disabled images. 8857 doc: /* Non-nil means always draw a cross over disabled images.
8880Disabled images are those having a `:conversion disabled' property. 8858Disabled images are those having a `:conversion disabled' property.
8881A cross is always drawn on black & white displays. */); 8859A cross is always drawn on black & white displays. */);
8882 cross_disabled_images = 0; 8860 cross_disabled_images = 0;
8883 8861
8884 DEFVAR_LISP ("x-bitmap-file-path", &Vx_bitmap_file_path, 8862 DEFVAR_LISP ("x-bitmap-file-path", Vx_bitmap_file_path,
8885 doc: /* List of directories to search for window system bitmap files. */); 8863 doc: /* List of directories to search for window system bitmap files. */);
8886 Vx_bitmap_file_path = decode_env_path ((char *) 0, PATH_BITMAPS); 8864 Vx_bitmap_file_path = decode_env_path ((char *) 0, PATH_BITMAPS);
8887 8865
8888 DEFVAR_LISP ("image-cache-eviction-delay", &Vimage_cache_eviction_delay, 8866 DEFVAR_LISP ("image-cache-eviction-delay", Vimage_cache_eviction_delay,
8889 doc: /* Maximum time after which images are removed from the cache. 8867 doc: /* Maximum time after which images are removed from the cache.
8890When an image has not been displayed this many seconds, Emacs 8868When an image has not been displayed this many seconds, Emacs
8891automatically removes it from the image cache. If the cache contains 8869automatically removes it from the image cache. If the cache contains
@@ -8895,7 +8873,7 @@ The value can also be nil, meaning the cache is never cleared.
8895The function `clear-image-cache' disregards this variable. */); 8873The function `clear-image-cache' disregards this variable. */);
8896 Vimage_cache_eviction_delay = make_number (300); 8874 Vimage_cache_eviction_delay = make_number (300);
8897#ifdef HAVE_IMAGEMAGICK 8875#ifdef HAVE_IMAGEMAGICK
8898 DEFVAR_LISP ("imagemagick-render-type", &Vimagemagick_render_type, 8876 DEFVAR_LISP ("imagemagick-render-type", Vimagemagick_render_type,
8899 doc: /* Choose between ImageMagick render methods. */); 8877 doc: /* Choose between ImageMagick render methods. */);
8900#endif 8878#endif
8901 8879
diff --git a/src/indent.c b/src/indent.c
index 93c2b5237d3..6f0554ee247 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -38,11 +38,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
38#include "dispextern.h" 38#include "dispextern.h"
39#include "region-cache.h" 39#include "region-cache.h"
40 40
41/* Indentation can insert tabs if this is non-zero;
42 otherwise always uses spaces. */
43
44static int indent_tabs_mode;
45
46#define CR 015 41#define CR 015
47 42
48/* These three values memorize the current column to avoid recalculation. */ 43/* These three values memorize the current column to avoid recalculation. */
@@ -2159,7 +2154,7 @@ whether or not it is currently displayed in some window. */)
2159void 2154void
2160syms_of_indent (void) 2155syms_of_indent (void)
2161{ 2156{
2162 DEFVAR_BOOL ("indent-tabs-mode", &indent_tabs_mode, 2157 DEFVAR_BOOL ("indent-tabs-mode", indent_tabs_mode,
2163 doc: /* *Indentation can insert tabs if this is non-nil. */); 2158 doc: /* *Indentation can insert tabs if this is non-nil. */);
2164 indent_tabs_mode = 1; 2159 indent_tabs_mode = 1;
2165 2160
diff --git a/src/insdel.c b/src/insdel.c
index 70f51646b0d..5b53348aee4 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -53,10 +53,6 @@ static void adjust_point (EMACS_INT nchars, EMACS_INT nbytes);
53 53
54Lisp_Object Fcombine_after_change_execute (void); 54Lisp_Object Fcombine_after_change_execute (void);
55 55
56/* Non-nil means don't call the after-change-functions right away,
57 just record an element in combine_after_change_list. */
58Lisp_Object Vcombine_after_change_calls;
59
60/* List of elements of the form (BEG-UNCHANGED END-UNCHANGED CHANGE-AMOUNT) 56/* List of elements of the form (BEG-UNCHANGED END-UNCHANGED CHANGE-AMOUNT)
61 describing changes which happened while combine_after_change_calls 57 describing changes which happened while combine_after_change_calls
62 was nonzero. We use this to decide how to call them 58 was nonzero. We use this to decide how to call them
@@ -74,10 +70,6 @@ Lisp_Object combine_after_change_buffer;
74 70
75Lisp_Object Qinhibit_modification_hooks; 71Lisp_Object Qinhibit_modification_hooks;
76 72
77/* Check all markers in the current buffer, looking for something invalid. */
78
79static int check_markers_debug_flag;
80
81#define CHECK_MARKERS() \ 73#define CHECK_MARKERS() \
82 if (check_markers_debug_flag) \ 74 if (check_markers_debug_flag) \
83 check_markers (); \ 75 check_markers (); \
@@ -2374,14 +2366,14 @@ syms_of_insdel (void)
2374 combine_after_change_list = Qnil; 2366 combine_after_change_list = Qnil;
2375 combine_after_change_buffer = Qnil; 2367 combine_after_change_buffer = Qnil;
2376 2368
2377 DEFVAR_BOOL ("check-markers-debug-flag", &check_markers_debug_flag, 2369 DEFVAR_BOOL ("check-markers-debug-flag", check_markers_debug_flag,
2378 doc: /* Non-nil means enable debugging checks for invalid marker positions. */); 2370 doc: /* Non-nil means enable debugging checks for invalid marker positions. */);
2379 check_markers_debug_flag = 0; 2371 check_markers_debug_flag = 0;
2380 DEFVAR_LISP ("combine-after-change-calls", &Vcombine_after_change_calls, 2372 DEFVAR_LISP ("combine-after-change-calls", Vcombine_after_change_calls,
2381 doc: /* Used internally by the `combine-after-change-calls' macro. */); 2373 doc: /* Used internally by the `combine-after-change-calls' macro. */);
2382 Vcombine_after_change_calls = Qnil; 2374 Vcombine_after_change_calls = Qnil;
2383 2375
2384 DEFVAR_BOOL ("inhibit-modification-hooks", &inhibit_modification_hooks, 2376 DEFVAR_BOOL ("inhibit-modification-hooks", inhibit_modification_hooks,
2385 doc: /* Non-nil means don't run any of the hooks that respond to buffer changes. 2377 doc: /* Non-nil means don't run any of the hooks that respond to buffer changes.
2386This affects `before-change-functions' and `after-change-functions', 2378This affects `before-change-functions' and `after-change-functions',
2387as well as hooks attached to text properties and overlays. */); 2379as well as hooks attached to text properties and overlays. */);
diff --git a/src/intervals.h b/src/intervals.h
index 14efe74f420..bf292cac39e 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -304,11 +304,6 @@ extern Lisp_Object Qkeymap;
304extern Lisp_Object Qforeground, Qbackground, Qfont, Qunderline, Qstipple; 304extern Lisp_Object Qforeground, Qbackground, Qfont, Qunderline, Qstipple;
305extern Lisp_Object Qinvisible, Qintangible, Qread_only; 305extern Lisp_Object Qinvisible, Qintangible, Qread_only;
306 306
307extern Lisp_Object Vinhibit_point_motion_hooks;
308extern Lisp_Object Vdefault_text_properties;
309extern Lisp_Object Vchar_property_alias_alist;
310extern Lisp_Object Vtext_property_default_nonsticky;
311
312/* Sticky properties */ 307/* Sticky properties */
313extern Lisp_Object Qfront_sticky, Qrear_nonsticky; 308extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
314 309
diff --git a/src/keyboard.c b/src/keyboard.c
index a2ba83cdb67..1d09c084f81 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -125,9 +125,6 @@ int this_command_key_count_reset;
125Lisp_Object raw_keybuf; 125Lisp_Object raw_keybuf;
126int raw_keybuf_count; 126int raw_keybuf_count;
127 127
128/* Non-nil if the present key sequence was obtained by shift translation. */
129Lisp_Object Vthis_command_keys_shift_translated;
130
131#define GROW_RAW_KEYBUF \ 128#define GROW_RAW_KEYBUF \
132 if (raw_keybuf_count == XVECTOR (raw_keybuf)->size) \ 129 if (raw_keybuf_count == XVECTOR (raw_keybuf)->size) \
133 raw_keybuf = larger_vector (raw_keybuf, raw_keybuf_count * 2, Qnil) \ 130 raw_keybuf = larger_vector (raw_keybuf, raw_keybuf_count * 2, Qnil) \
@@ -141,19 +138,6 @@ int this_single_command_key_start;
141static int before_command_key_count; 138static int before_command_key_count;
142static int before_command_echo_length; 139static int before_command_echo_length;
143 140
144/* If non-nil, the function that implements the display of help.
145 It's called with one argument, the help string to display. */
146
147Lisp_Object Vshow_help_function;
148
149/* Nonzero means do menu prompting. */
150
151static int menu_prompting;
152
153/* Character to see next line of menu prompt. */
154
155static Lisp_Object menu_prompt_more_char;
156
157/* For longjmp to where kbd input is being done. */ 141/* For longjmp to where kbd input is being done. */
158 142
159static jmp_buf getcjmp; 143static jmp_buf getcjmp;
@@ -182,49 +166,9 @@ struct kboard *echo_kboard;
182 166
183Lisp_Object echo_message_buffer; 167Lisp_Object echo_message_buffer;
184 168
185/* Nonzero means disregard local maps for the menu bar. */
186static int inhibit_local_menu_bar_menus;
187
188/* Nonzero means C-g should cause immediate error-signal. */ 169/* Nonzero means C-g should cause immediate error-signal. */
189int immediate_quit; 170int immediate_quit;
190 171
191/* The user's hook function for outputting an error message. */
192Lisp_Object Vcommand_error_function;
193
194/* The user's ERASE setting. */
195Lisp_Object Vtty_erase_char;
196
197/* Character to recognize as the help char. */
198Lisp_Object Vhelp_char;
199
200/* List of other event types to recognize as meaning "help". */
201Lisp_Object Vhelp_event_list;
202
203/* Form to execute when help char is typed. */
204Lisp_Object Vhelp_form;
205
206/* Command to run when the help character follows a prefix key. */
207Lisp_Object Vprefix_help_command;
208
209/* List of items that should move to the end of the menu bar. */
210Lisp_Object Vmenu_bar_final_items;
211
212/* Expression to evaluate for the tool bar separator image.
213 This is used for build_desired_tool_bar_string only. For GTK, we
214 use GTK tool bar seperators. */
215
216Lisp_Object Vtool_bar_separator_image_expression;
217
218/* Non-nil means show the equivalent key-binding for
219 any M-x command that has one.
220 The value can be a length of time to show the message for.
221 If the value is non-nil and not a number, we wait 2 seconds. */
222Lisp_Object Vsuggest_key_bindings;
223
224/* How long to display an echo-area message when the minibuffer is active.
225 If the value is not a number, such messages don't time out. */
226Lisp_Object Vminibuffer_message_timeout;
227
228/* Character that causes a quit. Normally C-g. 172/* Character that causes a quit. Normally C-g.
229 173
230 If we are running on an ordinary terminal, this must be an ordinary 174 If we are running on an ordinary terminal, this must be an ordinary
@@ -243,46 +187,9 @@ Lisp_Object Vminibuffer_message_timeout;
243 ASCII character. */ 187 ASCII character. */
244int quit_char; 188int quit_char;
245 189
246/* If non-nil, this is a map that overrides all other local maps. */
247Lisp_Object Voverriding_local_map;
248
249/* If non-nil, Voverriding_local_map applies to the menu bar. */
250Lisp_Object Voverriding_local_map_menu_flag;
251
252/* Keymap that defines special misc events that should
253 be processed immediately at a low level. */
254Lisp_Object Vspecial_event_map;
255
256/* Current depth in recursive edits. */ 190/* Current depth in recursive edits. */
257int command_loop_level; 191int command_loop_level;
258 192
259/* Total number of times command_loop has read a key sequence. */
260EMACS_INT num_input_keys;
261
262/* Last input event read as a command. */
263Lisp_Object last_command_event;
264
265/* Last input character read as a command, not counting menus
266 reached by the mouse. */
267Lisp_Object last_nonmenu_event;
268
269/* Last input event read for any purpose. */
270Lisp_Object last_input_event;
271
272/* If not Qnil, a list of objects to be read as subsequent command input. */
273Lisp_Object Vunread_command_events;
274
275/* If not Qnil, a list of objects to be read as subsequent command input
276 including input method processing. */
277Lisp_Object Vunread_input_method_events;
278
279/* If not Qnil, a list of objects to be read as subsequent command input
280 but NOT including input method processing. */
281Lisp_Object Vunread_post_input_method_events;
282
283/* If not -1, an event to be read as subsequent command input. */
284EMACS_INT unread_command_char;
285
286/* If not Qnil, this is a switch-frame event which we decided to put 193/* If not Qnil, this is a switch-frame event which we decided to put
287 off until the end of a key sequence. This should be read as the 194 off until the end of a key sequence. This should be read as the
288 next command input, after any unread_command_events. 195 next command input, after any unread_command_events.
@@ -292,47 +199,19 @@ EMACS_INT unread_command_char;
292 events until a non-ASCII event is acceptable as input. */ 199 events until a non-ASCII event is acceptable as input. */
293Lisp_Object unread_switch_frame; 200Lisp_Object unread_switch_frame;
294 201
295/* A mask of extra modifier bits to put into every keyboard char. */
296EMACS_INT extra_keyboard_modifiers;
297
298/* Char to use as prefix when a meta character is typed in.
299 This is bound on entry to minibuffer in case ESC is changed there. */
300
301Lisp_Object meta_prefix_char;
302
303/* Last size recorded for a current buffer which is not a minibuffer. */ 202/* Last size recorded for a current buffer which is not a minibuffer. */
304static EMACS_INT last_non_minibuf_size; 203static EMACS_INT last_non_minibuf_size;
305 204
306/* Number of idle seconds before an auto-save and garbage collection. */
307static Lisp_Object Vauto_save_timeout;
308
309/* Total number of times read_char has returned. */ 205/* Total number of times read_char has returned. */
310int num_input_events; 206int num_input_events;
311 207
312/* Total number of times read_char has returned, outside of macros. */
313EMACS_INT num_nonmacro_input_events;
314
315/* Auto-save automatically when this many characters have been typed
316 since the last time. */
317
318static EMACS_INT auto_save_interval;
319
320/* Value of num_nonmacro_input_events as of last auto save. */ 208/* Value of num_nonmacro_input_events as of last auto save. */
321 209
322int last_auto_save; 210int last_auto_save;
323 211
324/* The command being executed by the command loop.
325 Commands may set this, and the value set will be copied into
326 current_kboard->Vlast_command instead of the actual command. */
327Lisp_Object Vthis_command;
328
329/* This is like Vthis_command, except that commands never set it. */ 212/* This is like Vthis_command, except that commands never set it. */
330Lisp_Object real_this_command; 213Lisp_Object real_this_command;
331 214
332/* If the lookup of the command returns a binding, the original
333 command is stored in this-original-command. It is nil otherwise. */
334Lisp_Object Vthis_original_command;
335
336/* The value of point when the last command was started. */ 215/* The value of point when the last command was started. */
337EMACS_INT last_point_position; 216EMACS_INT last_point_position;
338 217
@@ -349,22 +228,10 @@ Lisp_Object last_point_position_window;
349 generated by the next character. */ 228 generated by the next character. */
350Lisp_Object internal_last_event_frame; 229Lisp_Object internal_last_event_frame;
351 230
352/* A user-visible version of the above, intended to allow users to
353 figure out where the last event came from, if the event doesn't
354 carry that information itself (i.e. if it was a character). */
355Lisp_Object Vlast_event_frame;
356
357/* The timestamp of the last input event we received from the X server. 231/* The timestamp of the last input event we received from the X server.
358 X Windows wants this for selection ownership. */ 232 X Windows wants this for selection ownership. */
359unsigned long last_event_timestamp; 233unsigned long last_event_timestamp;
360 234
361/* If non-nil, active regions automatically become the window selection. */
362Lisp_Object Vselect_active_regions;
363
364/* The text in the active region prior to modifying the buffer.
365 Used by the `select-active-regions' feature. */
366Lisp_Object Vsaved_region_selection;
367
368Lisp_Object Qx_set_selection, QPRIMARY, Qhandle_switch_frame; 235Lisp_Object Qx_set_selection, QPRIMARY, Qhandle_switch_frame;
369 236
370Lisp_Object Qself_insert_command; 237Lisp_Object Qself_insert_command;
@@ -377,48 +244,19 @@ Lisp_Object Qtimer_event_handler;
377 key sequence that it reads. */ 244 key sequence that it reads. */
378Lisp_Object read_key_sequence_cmd; 245Lisp_Object read_key_sequence_cmd;
379 246
380/* Echo unfinished commands after this many seconds of pause. */
381Lisp_Object Vecho_keystrokes;
382
383/* Form to evaluate (if non-nil) when Emacs is started. */
384Lisp_Object Vtop_level;
385
386/* If non-nil, this implements the current input method. */
387Lisp_Object Vinput_method_function;
388Lisp_Object Qinput_method_function; 247Lisp_Object Qinput_method_function;
389 248
390/* When we call Vinput_method_function,
391 this holds the echo area message that was just erased. */
392Lisp_Object Vinput_method_previous_message;
393
394/* Non-nil means deactivate the mark at end of this command. */
395Lisp_Object Vdeactivate_mark;
396Lisp_Object Qdeactivate_mark; 249Lisp_Object Qdeactivate_mark;
397 250
398/* Menu bar specified in Lucid Emacs fashion. */
399
400Lisp_Object Vlucid_menu_bar_dirty_flag;
401Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook; 251Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
402 252
403Lisp_Object Qecho_area_clear_hook; 253Lisp_Object Qecho_area_clear_hook;
404 254
405/* Hooks to run before and after each command. */ 255/* Hooks to run before and after each command. */
406Lisp_Object Qpre_command_hook, Vpre_command_hook; 256Lisp_Object Qpre_command_hook;
407Lisp_Object Qpost_command_hook, Vpost_command_hook; 257Lisp_Object Qpost_command_hook;
408Lisp_Object Qcommand_hook_internal, Vcommand_hook_internal; 258Lisp_Object Qcommand_hook_internal;
409
410/* Parent keymap of terminal-local function-key-map instances. */
411Lisp_Object Vfunction_key_map;
412 259
413/* Keymap of key translations that can override keymaps. */
414Lisp_Object Vkey_translation_map;
415
416/* List of deferred actions to be performed at a later time.
417 The precise format isn't relevant here; we just check whether it is nil. */
418Lisp_Object Vdeferred_action_list;
419
420/* Function to call to handle deferred actions, when there are any. */
421Lisp_Object Vdeferred_action_function;
422Lisp_Object Qdeferred_action_function; 260Lisp_Object Qdeferred_action_function;
423 261
424Lisp_Object Qinput_method_exit_on_first_char; 262Lisp_Object Qinput_method_exit_on_first_char;
@@ -454,11 +292,6 @@ static struct input_event * volatile kbd_store_ptr;
454 dequeuing functions? Such a flag could be screwed up by interrupts 292 dequeuing functions? Such a flag could be screwed up by interrupts
455 at inopportune times. */ 293 at inopportune times. */
456 294
457/* If this flag is non-nil, we check mouse_moved to see when the
458 mouse moves, and motion events will appear in the input stream.
459 Otherwise, mouse motion is ignored. */
460Lisp_Object do_mouse_tracking;
461
462/* Symbols to head events. */ 295/* Symbols to head events. */
463Lisp_Object Qmouse_movement; 296Lisp_Object Qmouse_movement;
464Lisp_Object Qscroll_bar_movement; 297Lisp_Object Qscroll_bar_movement;
@@ -526,12 +359,6 @@ static int echo_length (void);
526 359
527Lisp_Object Qpolling_period; 360Lisp_Object Qpolling_period;
528 361
529/* List of absolute timers. Appears in order of next scheduled event. */
530Lisp_Object Vtimer_list;
531
532/* List of idle time timers. Appears in order of next scheduled event. */
533Lisp_Object Vtimer_idle_list;
534
535/* Incremented whenever a timer is run. */ 362/* Incremented whenever a timer is run. */
536int timers_run; 363int timers_run;
537 364
@@ -565,18 +392,6 @@ int interrupts_deferred;
565#define POLL_FOR_INPUT 392#define POLL_FOR_INPUT
566#endif 393#endif
567 394
568/* After a command is executed, if point is moved into a region that
569 has specific properties (e.g. composition, display), we adjust
570 point to the boundary of the region. But, if a command sets this
571 variable to non-nil, we suppress this point adjustment. This
572 variable is set to nil before reading a command. */
573
574Lisp_Object Vdisable_point_adjustment;
575
576/* If non-nil, always disable point adjustment. */
577
578Lisp_Object Vglobal_disable_point_adjustment;
579
580/* The time when Emacs started being idle. */ 395/* The time when Emacs started being idle. */
581 396
582static EMACS_TIME timer_idleness_start_time; 397static EMACS_TIME timer_idleness_start_time;
@@ -586,11 +401,6 @@ static EMACS_TIME timer_idleness_start_time;
586 401
587static EMACS_TIME timer_last_idleness_start_time; 402static EMACS_TIME timer_last_idleness_start_time;
588 403
589/* If non-nil, events produced by disabled menu items and tool-bar
590 buttons are not ignored. Help functions bind this to allow help on
591 those items and buttons. */
592Lisp_Object Venable_disabled_menus_and_buttons;
593
594 404
595/* Global variable declarations. */ 405/* Global variable declarations. */
596 406
@@ -637,10 +447,6 @@ static SIGTYPE handle_user_signal (int);
637static char *find_user_signal_name (int); 447static char *find_user_signal_name (int);
638static int store_user_signal_events (void); 448static int store_user_signal_events (void);
639 449
640/* Nonzero means don't try to suspend even if the operating system seems
641 to support it. */
642static int cannot_suspend;
643
644 450
645/* Add C to the echo string, if echoing is going on. 451/* Add C to the echo string, if echoing is going on.
646 C can be a character, which is printed prettily ("M-C-x" and all that 452 C can be a character, which is printed prettily ("M-C-x" and all that
@@ -2046,11 +1852,6 @@ safe_run_hooks (Lisp_Object hook)
2046} 1852}
2047 1853
2048 1854
2049/* Number of seconds between polling for input. This is a Lisp
2050 variable that can be bound. */
2051
2052EMACS_INT polling_period;
2053
2054/* Nonzero means polling for input is temporarily suppressed. */ 1855/* Nonzero means polling for input is temporarily suppressed. */
2055 1856
2056int poll_suppress_count; 1857int poll_suppress_count;
@@ -3611,11 +3412,7 @@ kbd_buffer_nr_stored (void)
3611 : ((kbd_buffer + KBD_BUFFER_SIZE) - kbd_fetch_ptr 3412 : ((kbd_buffer + KBD_BUFFER_SIZE) - kbd_fetch_ptr
3612 + (kbd_store_ptr - kbd_buffer))); 3413 + (kbd_store_ptr - kbd_buffer)));
3613} 3414}
3614#endif /* subprocesses */ 3415#endif /* Store an event obtained at interrupt level into kbd_buffer, fifo */
3615
3616Lisp_Object Vthrow_on_input;
3617
3618/* Store an event obtained at interrupt level into kbd_buffer, fifo */
3619 3416
3620void 3417void
3621kbd_buffer_store_event (register struct input_event *event) 3418kbd_buffer_store_event (register struct input_event *event)
@@ -5232,16 +5029,6 @@ static int last_mouse_x;
5232static int last_mouse_y; 5029static int last_mouse_y;
5233static unsigned long button_down_time; 5030static unsigned long button_down_time;
5234 5031
5235/* The maximum time between clicks to make a double-click, or Qnil to
5236 disable double-click detection, or Qt for no time limit. */
5237
5238Lisp_Object Vdouble_click_time;
5239
5240/* Maximum number of pixels the mouse may be moved between clicks
5241 to make a double-click. */
5242
5243EMACS_INT double_click_fuzz;
5244
5245/* The number of clicks in this multiple-click. */ 5032/* The number of clicks in this multiple-click. */
5246 5033
5247int double_click_count; 5034int double_click_count;
@@ -11888,19 +11675,19 @@ syms_of_keyboard (void)
11888 defsubr (&Sposn_at_point); 11675 defsubr (&Sposn_at_point);
11889 defsubr (&Sposn_at_x_y); 11676 defsubr (&Sposn_at_x_y);
11890 11677
11891 DEFVAR_LISP ("last-command-event", &last_command_event, 11678 DEFVAR_LISP ("last-command-event", last_command_event,
11892 doc: /* Last input event that was part of a command. */); 11679 doc: /* Last input event that was part of a command. */);
11893 11680
11894 DEFVAR_LISP ("last-nonmenu-event", &last_nonmenu_event, 11681 DEFVAR_LISP ("last-nonmenu-event", last_nonmenu_event,
11895 doc: /* Last input event in a command, except for mouse menu events. 11682 doc: /* Last input event in a command, except for mouse menu events.
11896Mouse menus give back keys that don't look like mouse events; 11683Mouse menus give back keys that don't look like mouse events;
11897this variable holds the actual mouse event that led to the menu, 11684this variable holds the actual mouse event that led to the menu,
11898so that you can determine whether the command was run by mouse or not. */); 11685so that you can determine whether the command was run by mouse or not. */);
11899 11686
11900 DEFVAR_LISP ("last-input-event", &last_input_event, 11687 DEFVAR_LISP ("last-input-event", last_input_event,
11901 doc: /* Last input event. */); 11688 doc: /* Last input event. */);
11902 11689
11903 DEFVAR_LISP ("unread-command-events", &Vunread_command_events, 11690 DEFVAR_LISP ("unread-command-events", Vunread_command_events,
11904 doc: /* List of events to be read as the command input. 11691 doc: /* List of events to be read as the command input.
11905These events are processed first, before actual keyboard input. 11692These events are processed first, before actual keyboard input.
11906Events read from this list are not normally added to `this-command-keys', 11693Events read from this list are not normally added to `this-command-keys',
@@ -11908,16 +11695,16 @@ as they will already have been added once as they were read for the first time.
11908An element of the form (t . EVENT) forces EVENT to be added to that list. */); 11695An element of the form (t . EVENT) forces EVENT to be added to that list. */);
11909 Vunread_command_events = Qnil; 11696 Vunread_command_events = Qnil;
11910 11697
11911 DEFVAR_INT ("unread-command-char", &unread_command_char, 11698 DEFVAR_INT ("unread-command-char", unread_command_char,
11912 doc: /* If not -1, an object to be read as next command input event. */); 11699 doc: /* If not -1, an object to be read as next command input event. */);
11913 11700
11914 DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events, 11701 DEFVAR_LISP ("unread-post-input-method-events", Vunread_post_input_method_events,
11915 doc: /* List of events to be processed as input by input methods. 11702 doc: /* List of events to be processed as input by input methods.
11916These events are processed before `unread-command-events' 11703These events are processed before `unread-command-events'
11917and actual keyboard input, but are not given to `input-method-function'. */); 11704and actual keyboard input, but are not given to `input-method-function'. */);
11918 Vunread_post_input_method_events = Qnil; 11705 Vunread_post_input_method_events = Qnil;
11919 11706
11920 DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events, 11707 DEFVAR_LISP ("unread-input-method-events", Vunread_input_method_events,
11921 doc: /* List of events to be processed as input by input methods. 11708 doc: /* List of events to be processed as input by input methods.
11922These events are processed after `unread-command-events', but 11709These events are processed after `unread-command-events', but
11923before actual keyboard input. 11710before actual keyboard input.
@@ -11925,7 +11712,7 @@ If there's an active input method, the events are given to
11925`input-method-function'. */); 11712`input-method-function'. */);
11926 Vunread_input_method_events = Qnil; 11713 Vunread_input_method_events = Qnil;
11927 11714
11928 DEFVAR_LISP ("meta-prefix-char", &meta_prefix_char, 11715 DEFVAR_LISP ("meta-prefix-char", meta_prefix_char,
11929 doc: /* Meta-prefix character code. 11716 doc: /* Meta-prefix character code.
11930Meta-foo as command input turns into this character followed by foo. */); 11717Meta-foo as command input turns into this character followed by foo. */);
11931 XSETINT (meta_prefix_char, 033); 11718 XSETINT (meta_prefix_char, 033);
@@ -11955,59 +11742,59 @@ See Info node `(elisp)Multiple Terminals'. */);
11955The last command executed that was not bound to an input event. 11742The last command executed that was not bound to an input event.
11956This is the command `repeat' will try to repeat. */); 11743This is the command `repeat' will try to repeat. */);
11957 11744
11958 DEFVAR_LISP ("this-command", &Vthis_command, 11745 DEFVAR_LISP ("this-command", Vthis_command,
11959 doc: /* The command now being executed. 11746 doc: /* The command now being executed.
11960The command can set this variable; whatever is put here 11747The command can set this variable; whatever is put here
11961will be in `last-command' during the following command. */); 11748will be in `last-command' during the following command. */);
11962 Vthis_command = Qnil; 11749 Vthis_command = Qnil;
11963 11750
11964 DEFVAR_LISP ("this-command-keys-shift-translated", 11751 DEFVAR_LISP ("this-command-keys-shift-translated",
11965 &Vthis_command_keys_shift_translated, 11752 Vthis_command_keys_shift_translated,
11966 doc: /* Non-nil if the key sequence activating this command was shift-translated. 11753 doc: /* Non-nil if the key sequence activating this command was shift-translated.
11967Shift-translation occurs when there is no binding for the key sequence 11754Shift-translation occurs when there is no binding for the key sequence
11968as entered, but a binding was found by changing an upper-case letter 11755as entered, but a binding was found by changing an upper-case letter
11969to lower-case, or a shifted function key to an unshifted one. */); 11756to lower-case, or a shifted function key to an unshifted one. */);
11970 Vthis_command_keys_shift_translated = Qnil; 11757 Vthis_command_keys_shift_translated = Qnil;
11971 11758
11972 DEFVAR_LISP ("this-original-command", &Vthis_original_command, 11759 DEFVAR_LISP ("this-original-command", Vthis_original_command,
11973 doc: /* The command bound to the current key sequence before remapping. 11760 doc: /* The command bound to the current key sequence before remapping.
11974It equals `this-command' if the original command was not remapped through 11761It equals `this-command' if the original command was not remapped through
11975any of the active keymaps. Otherwise, the value of `this-command' is the 11762any of the active keymaps. Otherwise, the value of `this-command' is the
11976result of looking up the original command in the active keymaps. */); 11763result of looking up the original command in the active keymaps. */);
11977 Vthis_original_command = Qnil; 11764 Vthis_original_command = Qnil;
11978 11765
11979 DEFVAR_INT ("auto-save-interval", &auto_save_interval, 11766 DEFVAR_INT ("auto-save-interval", auto_save_interval,
11980 doc: /* *Number of input events between auto-saves. 11767 doc: /* *Number of input events between auto-saves.
11981Zero means disable autosaving due to number of characters typed. */); 11768Zero means disable autosaving due to number of characters typed. */);
11982 auto_save_interval = 300; 11769 auto_save_interval = 300;
11983 11770
11984 DEFVAR_LISP ("auto-save-timeout", &Vauto_save_timeout, 11771 DEFVAR_LISP ("auto-save-timeout", Vauto_save_timeout,
11985 doc: /* *Number of seconds idle time before auto-save. 11772 doc: /* *Number of seconds idle time before auto-save.
11986Zero or nil means disable auto-saving due to idleness. 11773Zero or nil means disable auto-saving due to idleness.
11987After auto-saving due to this many seconds of idle time, 11774After auto-saving due to this many seconds of idle time,
11988Emacs also does a garbage collection if that seems to be warranted. */); 11775Emacs also does a garbage collection if that seems to be warranted. */);
11989 XSETFASTINT (Vauto_save_timeout, 30); 11776 XSETFASTINT (Vauto_save_timeout, 30);
11990 11777
11991 DEFVAR_LISP ("echo-keystrokes", &Vecho_keystrokes, 11778 DEFVAR_LISP ("echo-keystrokes", Vecho_keystrokes,
11992 doc: /* *Nonzero means echo unfinished commands after this many seconds of pause. 11779 doc: /* *Nonzero means echo unfinished commands after this many seconds of pause.
11993The value may be integer or floating point. */); 11780The value may be integer or floating point. */);
11994 Vecho_keystrokes = make_number (1); 11781 Vecho_keystrokes = make_number (1);
11995 11782
11996 DEFVAR_INT ("polling-period", &polling_period, 11783 DEFVAR_INT ("polling-period", polling_period,
11997 doc: /* *Interval between polling for input during Lisp execution. 11784 doc: /* *Interval between polling for input during Lisp execution.
11998The reason for polling is to make C-g work to stop a running program. 11785The reason for polling is to make C-g work to stop a running program.
11999Polling is needed only when using X windows and SIGIO does not work. 11786Polling is needed only when using X windows and SIGIO does not work.
12000Polling is automatically disabled in all other cases. */); 11787Polling is automatically disabled in all other cases. */);
12001 polling_period = 2; 11788 polling_period = 2;
12002 11789
12003 DEFVAR_LISP ("double-click-time", &Vdouble_click_time, 11790 DEFVAR_LISP ("double-click-time", Vdouble_click_time,
12004 doc: /* *Maximum time between mouse clicks to make a double-click. 11791 doc: /* *Maximum time between mouse clicks to make a double-click.
12005Measured in milliseconds. The value nil means disable double-click 11792Measured in milliseconds. The value nil means disable double-click
12006recognition; t means double-clicks have no time limit and are detected 11793recognition; t means double-clicks have no time limit and are detected
12007by position only. */); 11794by position only. */);
12008 Vdouble_click_time = make_number (500); 11795 Vdouble_click_time = make_number (500);
12009 11796
12010 DEFVAR_INT ("double-click-fuzz", &double_click_fuzz, 11797 DEFVAR_INT ("double-click-fuzz", double_click_fuzz,
12011 doc: /* *Maximum mouse movement between clicks to make a double-click. 11798 doc: /* *Maximum mouse movement between clicks to make a double-click.
12012On window-system frames, value is the number of pixels the mouse may have 11799On window-system frames, value is the number of pixels the mouse may have
12013moved horizontally or vertically between two clicks to make a double-click. 11800moved horizontally or vertically between two clicks to make a double-click.
@@ -12018,54 +11805,54 @@ This variable is also the threshold for motion of the mouse
12018to count as a drag. */); 11805to count as a drag. */);
12019 double_click_fuzz = 3; 11806 double_click_fuzz = 3;
12020 11807
12021 DEFVAR_BOOL ("inhibit-local-menu-bar-menus", &inhibit_local_menu_bar_menus, 11808 DEFVAR_BOOL ("inhibit-local-menu-bar-menus", inhibit_local_menu_bar_menus,
12022 doc: /* *Non-nil means inhibit local map menu bar menus. */); 11809 doc: /* *Non-nil means inhibit local map menu bar menus. */);
12023 inhibit_local_menu_bar_menus = 0; 11810 inhibit_local_menu_bar_menus = 0;
12024 11811
12025 DEFVAR_INT ("num-input-keys", &num_input_keys, 11812 DEFVAR_INT ("num-input-keys", num_input_keys,
12026 doc: /* Number of complete key sequences read as input so far. 11813 doc: /* Number of complete key sequences read as input so far.
12027This includes key sequences read from keyboard macros. 11814This includes key sequences read from keyboard macros.
12028The number is effectively the number of interactive command invocations. */); 11815The number is effectively the number of interactive command invocations. */);
12029 num_input_keys = 0; 11816 num_input_keys = 0;
12030 11817
12031 DEFVAR_INT ("num-nonmacro-input-events", &num_nonmacro_input_events, 11818 DEFVAR_INT ("num-nonmacro-input-events", num_nonmacro_input_events,
12032 doc: /* Number of input events read from the keyboard so far. 11819 doc: /* Number of input events read from the keyboard so far.
12033This does not include events generated by keyboard macros. */); 11820This does not include events generated by keyboard macros. */);
12034 num_nonmacro_input_events = 0; 11821 num_nonmacro_input_events = 0;
12035 11822
12036 DEFVAR_LISP ("last-event-frame", &Vlast_event_frame, 11823 DEFVAR_LISP ("last-event-frame", Vlast_event_frame,
12037 doc: /* The frame in which the most recently read event occurred. 11824 doc: /* The frame in which the most recently read event occurred.
12038If the last event came from a keyboard macro, this is set to `macro'. */); 11825If the last event came from a keyboard macro, this is set to `macro'. */);
12039 Vlast_event_frame = Qnil; 11826 Vlast_event_frame = Qnil;
12040 11827
12041 /* This variable is set up in sysdep.c. */ 11828 /* This variable is set up in sysdep.c. */
12042 DEFVAR_LISP ("tty-erase-char", &Vtty_erase_char, 11829 DEFVAR_LISP ("tty-erase-char", Vtty_erase_char,
12043 doc: /* The ERASE character as set by the user with stty. */); 11830 doc: /* The ERASE character as set by the user with stty. */);
12044 11831
12045 DEFVAR_LISP ("help-char", &Vhelp_char, 11832 DEFVAR_LISP ("help-char", Vhelp_char,
12046 doc: /* Character to recognize as meaning Help. 11833 doc: /* Character to recognize as meaning Help.
12047When it is read, do `(eval help-form)', and display result if it's a string. 11834When it is read, do `(eval help-form)', and display result if it's a string.
12048If the value of `help-form' is nil, this char can be read normally. */); 11835If the value of `help-form' is nil, this char can be read normally. */);
12049 XSETINT (Vhelp_char, Ctl ('H')); 11836 XSETINT (Vhelp_char, Ctl ('H'));
12050 11837
12051 DEFVAR_LISP ("help-event-list", &Vhelp_event_list, 11838 DEFVAR_LISP ("help-event-list", Vhelp_event_list,
12052 doc: /* List of input events to recognize as meaning Help. 11839 doc: /* List of input events to recognize as meaning Help.
12053These work just like the value of `help-char' (see that). */); 11840These work just like the value of `help-char' (see that). */);
12054 Vhelp_event_list = Qnil; 11841 Vhelp_event_list = Qnil;
12055 11842
12056 DEFVAR_LISP ("help-form", &Vhelp_form, 11843 DEFVAR_LISP ("help-form", Vhelp_form,
12057 doc: /* Form to execute when character `help-char' is read. 11844 doc: /* Form to execute when character `help-char' is read.
12058If the form returns a string, that string is displayed. 11845If the form returns a string, that string is displayed.
12059If `help-form' is nil, the help char is not recognized. */); 11846If `help-form' is nil, the help char is not recognized. */);
12060 Vhelp_form = Qnil; 11847 Vhelp_form = Qnil;
12061 11848
12062 DEFVAR_LISP ("prefix-help-command", &Vprefix_help_command, 11849 DEFVAR_LISP ("prefix-help-command", Vprefix_help_command,
12063 doc: /* Command to run when `help-char' character follows a prefix key. 11850 doc: /* Command to run when `help-char' character follows a prefix key.
12064This command is used only when there is no actual binding 11851This command is used only when there is no actual binding
12065for that character after that prefix key. */); 11852for that character after that prefix key. */);
12066 Vprefix_help_command = Qnil; 11853 Vprefix_help_command = Qnil;
12067 11854
12068 DEFVAR_LISP ("top-level", &Vtop_level, 11855 DEFVAR_LISP ("top-level", Vtop_level,
12069 doc: /* Form to evaluate when Emacs starts up. 11856 doc: /* Form to evaluate when Emacs starts up.
12070Useful to set before you dump a modified Emacs. */); 11857Useful to set before you dump a modified Emacs. */);
12071 Vtop_level = Qnil; 11858 Vtop_level = Qnil;
@@ -12086,12 +11873,12 @@ output. See also `translation-table-for-input'.
12086This variable has a separate binding for each terminal. 11873This variable has a separate binding for each terminal.
12087See Info node `(elisp)Multiple Terminals'. */); 11874See Info node `(elisp)Multiple Terminals'. */);
12088 11875
12089 DEFVAR_BOOL ("cannot-suspend", &cannot_suspend, 11876 DEFVAR_BOOL ("cannot-suspend", cannot_suspend,
12090 doc: /* Non-nil means to always spawn a subshell instead of suspending. 11877 doc: /* Non-nil means to always spawn a subshell instead of suspending.
12091\(Even if the operating system has support for stopping a process.\) */); 11878\(Even if the operating system has support for stopping a process.\) */);
12092 cannot_suspend = 0; 11879 cannot_suspend = 0;
12093 11880
12094 DEFVAR_BOOL ("menu-prompting", &menu_prompting, 11881 DEFVAR_BOOL ("menu-prompting", menu_prompting,
12095 doc: /* Non-nil means prompt with menus when appropriate. 11882 doc: /* Non-nil means prompt with menus when appropriate.
12096This is done when reading from a keymap that has a prompt string, 11883This is done when reading from a keymap that has a prompt string,
12097for elements that have prompt strings. 11884for elements that have prompt strings.
@@ -12101,12 +11888,12 @@ time and the previous event was a mouse click prefix key.
12101Otherwise, menu prompting uses the echo area. */); 11888Otherwise, menu prompting uses the echo area. */);
12102 menu_prompting = 1; 11889 menu_prompting = 1;
12103 11890
12104 DEFVAR_LISP ("menu-prompt-more-char", &menu_prompt_more_char, 11891 DEFVAR_LISP ("menu-prompt-more-char", menu_prompt_more_char,
12105 doc: /* Character to see next line of menu prompt. 11892 doc: /* Character to see next line of menu prompt.
12106Type this character while in a menu prompt to rotate around the lines of it. */); 11893Type this character while in a menu prompt to rotate around the lines of it. */);
12107 XSETINT (menu_prompt_more_char, ' '); 11894 XSETINT (menu_prompt_more_char, ' ');
12108 11895
12109 DEFVAR_INT ("extra-keyboard-modifiers", &extra_keyboard_modifiers, 11896 DEFVAR_INT ("extra-keyboard-modifiers", extra_keyboard_modifiers,
12110 doc: /* A mask of additional modifier keys to use with every keyboard character. 11897 doc: /* A mask of additional modifier keys to use with every keyboard character.
12111Emacs applies the modifiers of the character stored here to each keyboard 11898Emacs applies the modifiers of the character stored here to each keyboard
12112character it reads. For example, after evaluating the expression 11899character it reads. For example, after evaluating the expression
@@ -12119,7 +11906,7 @@ with no modifiers; thus, setting `extra-keyboard-modifiers' to zero
12119cancels any modification. */); 11906cancels any modification. */);
12120 extra_keyboard_modifiers = 0; 11907 extra_keyboard_modifiers = 0;
12121 11908
12122 DEFVAR_LISP ("deactivate-mark", &Vdeactivate_mark, 11909 DEFVAR_LISP ("deactivate-mark", Vdeactivate_mark,
12123 doc: /* If an editing command sets this to t, deactivate the mark afterward. 11910 doc: /* If an editing command sets this to t, deactivate the mark afterward.
12124The command loop sets this to nil before each command, 11911The command loop sets this to nil before each command,
12125and tests the value when the command returns. 11912and tests the value when the command returns.
@@ -12128,18 +11915,18 @@ Buffer modification stores t in this variable. */);
12128 Qdeactivate_mark = intern_c_string ("deactivate-mark"); 11915 Qdeactivate_mark = intern_c_string ("deactivate-mark");
12129 staticpro (&Qdeactivate_mark); 11916 staticpro (&Qdeactivate_mark);
12130 11917
12131 DEFVAR_LISP ("command-hook-internal", &Vcommand_hook_internal, 11918 DEFVAR_LISP ("command-hook-internal", Vcommand_hook_internal,
12132 doc: /* Temporary storage of `pre-command-hook' or `post-command-hook'. */); 11919 doc: /* Temporary storage of `pre-command-hook' or `post-command-hook'. */);
12133 Vcommand_hook_internal = Qnil; 11920 Vcommand_hook_internal = Qnil;
12134 11921
12135 DEFVAR_LISP ("pre-command-hook", &Vpre_command_hook, 11922 DEFVAR_LISP ("pre-command-hook", Vpre_command_hook,
12136 doc: /* Normal hook run before each command is executed. 11923 doc: /* Normal hook run before each command is executed.
12137If an unhandled error happens in running this hook, 11924If an unhandled error happens in running this hook,
12138the hook value is set to nil, since otherwise the error 11925the hook value is set to nil, since otherwise the error
12139might happen repeatedly and make Emacs nonfunctional. */); 11926might happen repeatedly and make Emacs nonfunctional. */);
12140 Vpre_command_hook = Qnil; 11927 Vpre_command_hook = Qnil;
12141 11928
12142 DEFVAR_LISP ("post-command-hook", &Vpost_command_hook, 11929 DEFVAR_LISP ("post-command-hook", Vpost_command_hook,
12143 doc: /* Normal hook run after each command is executed. 11930 doc: /* Normal hook run after each command is executed.
12144If an unhandled error happens in running this hook, 11931If an unhandled error happens in running this hook,
12145the hook value is set to nil, since otherwise the error 11932the hook value is set to nil, since otherwise the error
@@ -12154,16 +11941,16 @@ might happen repeatedly and make Emacs nonfunctional. */);
12154 staticpro (&Qecho_area_clear_hook); 11941 staticpro (&Qecho_area_clear_hook);
12155 Fset (Qecho_area_clear_hook, Qnil); 11942 Fset (Qecho_area_clear_hook, Qnil);
12156 11943
12157 DEFVAR_LISP ("lucid-menu-bar-dirty-flag", &Vlucid_menu_bar_dirty_flag, 11944 DEFVAR_LISP ("lucid-menu-bar-dirty-flag", Vlucid_menu_bar_dirty_flag,
12158 doc: /* Non-nil means menu bar, specified Lucid style, needs to be recomputed. */); 11945 doc: /* Non-nil means menu bar, specified Lucid style, needs to be recomputed. */);
12159 Vlucid_menu_bar_dirty_flag = Qnil; 11946 Vlucid_menu_bar_dirty_flag = Qnil;
12160 11947
12161 DEFVAR_LISP ("menu-bar-final-items", &Vmenu_bar_final_items, 11948 DEFVAR_LISP ("menu-bar-final-items", Vmenu_bar_final_items,
12162 doc: /* List of menu bar items to move to the end of the menu bar. 11949 doc: /* List of menu bar items to move to the end of the menu bar.
12163The elements of the list are event types that may have menu bar bindings. */); 11950The elements of the list are event types that may have menu bar bindings. */);
12164 Vmenu_bar_final_items = Qnil; 11951 Vmenu_bar_final_items = Qnil;
12165 11952
12166 DEFVAR_LISP ("tool-bar-separator-image-expression", &Vtool_bar_separator_image_expression, 11953 DEFVAR_LISP ("tool-bar-separator-image-expression", Vtool_bar_separator_image_expression,
12167 doc: /* Expression evaluating to the image spec for a tool-bar separator. 11954 doc: /* Expression evaluating to the image spec for a tool-bar separator.
12168This is used internally by graphical displays that do not render 11955This is used internally by graphical displays that do not render
12169tool-bar separators natively. Otherwise it is unused (e.g. on GTK). */); 11956tool-bar separators natively. Otherwise it is unused (e.g. on GTK). */);
@@ -12183,23 +11970,23 @@ set up a different keymap for reading the next command.
12183terminal device. 11970terminal device.
12184See Info node `(elisp)Multiple Terminals'. */); 11971See Info node `(elisp)Multiple Terminals'. */);
12185 11972
12186 DEFVAR_LISP ("overriding-local-map", &Voverriding_local_map, 11973 DEFVAR_LISP ("overriding-local-map", Voverriding_local_map,
12187 doc: /* Keymap that overrides all other local keymaps. 11974 doc: /* Keymap that overrides all other local keymaps.
12188If this variable is non-nil, it is used as a keymap--replacing the 11975If this variable is non-nil, it is used as a keymap--replacing the
12189buffer's local map, the minor mode keymaps, and char property keymaps. */); 11976buffer's local map, the minor mode keymaps, and char property keymaps. */);
12190 Voverriding_local_map = Qnil; 11977 Voverriding_local_map = Qnil;
12191 11978
12192 DEFVAR_LISP ("overriding-local-map-menu-flag", &Voverriding_local_map_menu_flag, 11979 DEFVAR_LISP ("overriding-local-map-menu-flag", Voverriding_local_map_menu_flag,
12193 doc: /* Non-nil means `overriding-local-map' applies to the menu bar. 11980 doc: /* Non-nil means `overriding-local-map' applies to the menu bar.
12194Otherwise, the menu bar continues to reflect the buffer's local map 11981Otherwise, the menu bar continues to reflect the buffer's local map
12195and the minor mode maps regardless of `overriding-local-map'. */); 11982and the minor mode maps regardless of `overriding-local-map'. */);
12196 Voverriding_local_map_menu_flag = Qnil; 11983 Voverriding_local_map_menu_flag = Qnil;
12197 11984
12198 DEFVAR_LISP ("special-event-map", &Vspecial_event_map, 11985 DEFVAR_LISP ("special-event-map", Vspecial_event_map,
12199 doc: /* Keymap defining bindings for special events to execute at low level. */); 11986 doc: /* Keymap defining bindings for special events to execute at low level. */);
12200 Vspecial_event_map = Fcons (intern_c_string ("keymap"), Qnil); 11987 Vspecial_event_map = Fcons (intern_c_string ("keymap"), Qnil);
12201 11988
12202 DEFVAR_LISP ("track-mouse", &do_mouse_tracking, 11989 DEFVAR_LISP ("track-mouse", do_mouse_tracking,
12203 doc: /* *Non-nil means generate motion events for mouse motion. */); 11990 doc: /* *Non-nil means generate motion events for mouse motion. */);
12204 11991
12205 DEFVAR_KBOARD ("system-key-alist", Vsystem_key_alist, 11992 DEFVAR_KBOARD ("system-key-alist", Vsystem_key_alist,
@@ -12259,7 +12046,7 @@ themselves looked up in `input-decode-map'.
12259 12046
12260This variable is keyboard-local. */); 12047This variable is keyboard-local. */);
12261 12048
12262 DEFVAR_LISP ("function-key-map", &Vfunction_key_map, 12049 DEFVAR_LISP ("function-key-map", Vfunction_key_map,
12263 doc: /* The parent keymap of all `local-function-key-map' instances. 12050 doc: /* The parent keymap of all `local-function-key-map' instances.
12264Function key definitions that apply to all terminal devices should go 12051Function key definitions that apply to all terminal devices should go
12265here. If a mapping is defined in both the current 12052here. If a mapping is defined in both the current
@@ -12267,39 +12054,39 @@ here. If a mapping is defined in both the current
12267definition will take precendence. */); 12054definition will take precendence. */);
12268 Vfunction_key_map = Fmake_sparse_keymap (Qnil); 12055 Vfunction_key_map = Fmake_sparse_keymap (Qnil);
12269 12056
12270 DEFVAR_LISP ("key-translation-map", &Vkey_translation_map, 12057 DEFVAR_LISP ("key-translation-map", Vkey_translation_map,
12271 doc: /* Keymap of key translations that can override keymaps. 12058 doc: /* Keymap of key translations that can override keymaps.
12272This keymap works like `function-key-map', but comes after that, 12059This keymap works like `function-key-map', but comes after that,
12273and its non-prefix bindings override ordinary bindings. 12060and its non-prefix bindings override ordinary bindings.
12274Another difference is that it is global rather than keyboard-local. */); 12061Another difference is that it is global rather than keyboard-local. */);
12275 Vkey_translation_map = Fmake_sparse_keymap (Qnil); 12062 Vkey_translation_map = Fmake_sparse_keymap (Qnil);
12276 12063
12277 DEFVAR_LISP ("deferred-action-list", &Vdeferred_action_list, 12064 DEFVAR_LISP ("deferred-action-list", Vdeferred_action_list,
12278 doc: /* List of deferred actions to be performed at a later time. 12065 doc: /* List of deferred actions to be performed at a later time.
12279The precise format isn't relevant here; we just check whether it is nil. */); 12066The precise format isn't relevant here; we just check whether it is nil. */);
12280 Vdeferred_action_list = Qnil; 12067 Vdeferred_action_list = Qnil;
12281 12068
12282 DEFVAR_LISP ("deferred-action-function", &Vdeferred_action_function, 12069 DEFVAR_LISP ("deferred-action-function", Vdeferred_action_function,
12283 doc: /* Function to call to handle deferred actions, after each command. 12070 doc: /* Function to call to handle deferred actions, after each command.
12284This function is called with no arguments after each command 12071This function is called with no arguments after each command
12285whenever `deferred-action-list' is non-nil. */); 12072whenever `deferred-action-list' is non-nil. */);
12286 Vdeferred_action_function = Qnil; 12073 Vdeferred_action_function = Qnil;
12287 12074
12288 DEFVAR_LISP ("suggest-key-bindings", &Vsuggest_key_bindings, 12075 DEFVAR_LISP ("suggest-key-bindings", Vsuggest_key_bindings,
12289 doc: /* *Non-nil means show the equivalent key-binding when M-x command has one. 12076 doc: /* *Non-nil means show the equivalent key-binding when M-x command has one.
12290The value can be a length of time to show the message for. 12077The value can be a length of time to show the message for.
12291If the value is non-nil and not a number, we wait 2 seconds. */); 12078If the value is non-nil and not a number, we wait 2 seconds. */);
12292 Vsuggest_key_bindings = Qt; 12079 Vsuggest_key_bindings = Qt;
12293 12080
12294 DEFVAR_LISP ("timer-list", &Vtimer_list, 12081 DEFVAR_LISP ("timer-list", Vtimer_list,
12295 doc: /* List of active absolute time timers in order of increasing time. */); 12082 doc: /* List of active absolute time timers in order of increasing time. */);
12296 Vtimer_list = Qnil; 12083 Vtimer_list = Qnil;
12297 12084
12298 DEFVAR_LISP ("timer-idle-list", &Vtimer_idle_list, 12085 DEFVAR_LISP ("timer-idle-list", Vtimer_idle_list,
12299 doc: /* List of active idle-time timers in order of increasing time. */); 12086 doc: /* List of active idle-time timers in order of increasing time. */);
12300 Vtimer_idle_list = Qnil; 12087 Vtimer_idle_list = Qnil;
12301 12088
12302 DEFVAR_LISP ("input-method-function", &Vinput_method_function, 12089 DEFVAR_LISP ("input-method-function", Vinput_method_function,
12303 doc: /* If non-nil, the function that implements the current input method. 12090 doc: /* If non-nil, the function that implements the current input method.
12304It's called with one argument, a printing character that was just read. 12091It's called with one argument, a printing character that was just read.
12305\(That means a character with code 040...0176.) 12092\(That means a character with code 040...0176.)
@@ -12321,18 +12108,18 @@ for guidance on what to do. */);
12321 Vinput_method_function = Qnil; 12108 Vinput_method_function = Qnil;
12322 12109
12323 DEFVAR_LISP ("input-method-previous-message", 12110 DEFVAR_LISP ("input-method-previous-message",
12324 &Vinput_method_previous_message, 12111 Vinput_method_previous_message,
12325 doc: /* When `input-method-function' is called, hold the previous echo area message. 12112 doc: /* When `input-method-function' is called, hold the previous echo area message.
12326This variable exists because `read-event' clears the echo area 12113This variable exists because `read-event' clears the echo area
12327before running the input method. It is nil if there was no message. */); 12114before running the input method. It is nil if there was no message. */);
12328 Vinput_method_previous_message = Qnil; 12115 Vinput_method_previous_message = Qnil;
12329 12116
12330 DEFVAR_LISP ("show-help-function", &Vshow_help_function, 12117 DEFVAR_LISP ("show-help-function", Vshow_help_function,
12331 doc: /* If non-nil, the function that implements the display of help. 12118 doc: /* If non-nil, the function that implements the display of help.
12332It's called with one argument, the help string to display. */); 12119It's called with one argument, the help string to display. */);
12333 Vshow_help_function = Qnil; 12120 Vshow_help_function = Qnil;
12334 12121
12335 DEFVAR_LISP ("disable-point-adjustment", &Vdisable_point_adjustment, 12122 DEFVAR_LISP ("disable-point-adjustment", Vdisable_point_adjustment,
12336 doc: /* If non-nil, suppress point adjustment after executing a command. 12123 doc: /* If non-nil, suppress point adjustment after executing a command.
12337 12124
12338After a command is executed, if point is moved into a region that has 12125After a command is executed, if point is moved into a region that has
@@ -12345,7 +12132,7 @@ just after executing the command. */);
12345 Vdisable_point_adjustment = Qnil; 12132 Vdisable_point_adjustment = Qnil;
12346 12133
12347 DEFVAR_LISP ("global-disable-point-adjustment", 12134 DEFVAR_LISP ("global-disable-point-adjustment",
12348 &Vglobal_disable_point_adjustment, 12135 Vglobal_disable_point_adjustment,
12349 doc: /* *If non-nil, always suppress point adjustment. 12136 doc: /* *If non-nil, always suppress point adjustment.
12350 12137
12351The default value is nil, in which case, point adjustment are 12138The default value is nil, in which case, point adjustment are
@@ -12353,18 +12140,18 @@ suppressed only after special commands that set
12353`disable-point-adjustment' (which see) to non-nil. */); 12140`disable-point-adjustment' (which see) to non-nil. */);
12354 Vglobal_disable_point_adjustment = Qnil; 12141 Vglobal_disable_point_adjustment = Qnil;
12355 12142
12356 DEFVAR_LISP ("minibuffer-message-timeout", &Vminibuffer_message_timeout, 12143 DEFVAR_LISP ("minibuffer-message-timeout", Vminibuffer_message_timeout,
12357 doc: /* *How long to display an echo-area message when the minibuffer is active. 12144 doc: /* *How long to display an echo-area message when the minibuffer is active.
12358If the value is not a number, such messages don't time out. */); 12145If the value is not a number, such messages don't time out. */);
12359 Vminibuffer_message_timeout = make_number (2); 12146 Vminibuffer_message_timeout = make_number (2);
12360 12147
12361 DEFVAR_LISP ("throw-on-input", &Vthrow_on_input, 12148 DEFVAR_LISP ("throw-on-input", Vthrow_on_input,
12362 doc: /* If non-nil, any keyboard input throws to this symbol. 12149 doc: /* If non-nil, any keyboard input throws to this symbol.
12363The value of that variable is passed to `quit-flag' and later causes a 12150The value of that variable is passed to `quit-flag' and later causes a
12364peculiar kind of quitting. */); 12151peculiar kind of quitting. */);
12365 Vthrow_on_input = Qnil; 12152 Vthrow_on_input = Qnil;
12366 12153
12367 DEFVAR_LISP ("command-error-function", &Vcommand_error_function, 12154 DEFVAR_LISP ("command-error-function", Vcommand_error_function,
12368 doc: /* If non-nil, function to output error messages. 12155 doc: /* If non-nil, function to output error messages.
12369The arguments are the error data, a list of the form 12156The arguments are the error data, a list of the form
12370 (SIGNALED-CONDITIONS . SIGNAL-DATA) 12157 (SIGNALED-CONDITIONS . SIGNAL-DATA)
@@ -12374,7 +12161,7 @@ and the Lisp function within which the error was signaled. */);
12374 Vcommand_error_function = Qnil; 12161 Vcommand_error_function = Qnil;
12375 12162
12376 DEFVAR_LISP ("enable-disabled-menus-and-buttons", 12163 DEFVAR_LISP ("enable-disabled-menus-and-buttons",
12377 &Venable_disabled_menus_and_buttons, 12164 Venable_disabled_menus_and_buttons,
12378 doc: /* If non-nil, don't ignore events produced by disabled menu items and tool-bar. 12165 doc: /* If non-nil, don't ignore events produced by disabled menu items and tool-bar.
12379 12166
12380Help functions bind this to allow help on disabled menu items 12167Help functions bind this to allow help on disabled menu items
@@ -12382,7 +12169,7 @@ and tool-bar buttons. */);
12382 Venable_disabled_menus_and_buttons = Qnil; 12169 Venable_disabled_menus_and_buttons = Qnil;
12383 12170
12384 DEFVAR_LISP ("select-active-regions", 12171 DEFVAR_LISP ("select-active-regions",
12385 &Vselect_active_regions, 12172 Vselect_active_regions,
12386 doc: /* If non-nil, an active region automatically sets the primary selection. 12173 doc: /* If non-nil, an active region automatically sets the primary selection.
12387If the value is `only', only temporarily active regions (usually made 12174If the value is `only', only temporarily active regions (usually made
12388by mouse-dragging or shift-selection) set the window selection. 12175by mouse-dragging or shift-selection) set the window selection.
@@ -12391,7 +12178,7 @@ This takes effect only when Transient Mark mode is enabled. */);
12391 Vselect_active_regions = Qt; 12178 Vselect_active_regions = Qt;
12392 12179
12393 DEFVAR_LISP ("saved-region-selection", 12180 DEFVAR_LISP ("saved-region-selection",
12394 &Vsaved_region_selection, 12181 Vsaved_region_selection,
12395 doc: /* Contents of active region prior to buffer modification. 12182 doc: /* Contents of active region prior to buffer modification.
12396If `select-active-regions' is non-nil, Emacs sets this to the 12183If `select-active-regions' is non-nil, Emacs sets this to the
12397text in the region before modifying the buffer. The next 12184text in the region before modifying the buffer. The next
diff --git a/src/keyboard.h b/src/keyboard.h
index 4594c7a27fe..4ca10c8495a 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -191,9 +191,6 @@ extern int single_kboard;
191/* Total number of times read_char has returned. */ 191/* Total number of times read_char has returned. */
192extern int num_input_events; 192extern int num_input_events;
193 193
194/* Total number of times read_char has returned, outside of macros. */
195extern EMACS_INT num_nonmacro_input_events;
196
197/* Nonzero means polling for input is temporarily suppressed. */ 194/* Nonzero means polling for input is temporarily suppressed. */
198extern int poll_suppress_count; 195extern int poll_suppress_count;
199 196
@@ -211,9 +208,6 @@ extern int this_command_key_count;
211 generated by the next character. */ 208 generated by the next character. */
212extern Lisp_Object internal_last_event_frame; 209extern Lisp_Object internal_last_event_frame;
213 210
214/* Menu items. */
215
216extern Lisp_Object Vlucid_menu_bar_dirty_flag;
217extern Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook; 211extern Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
218 212
219/* This holds a Lisp vector that holds the properties of a single 213/* This holds a Lisp vector that holds the properties of a single
@@ -404,8 +398,6 @@ typedef struct _widget_value
404#define POSN_INBUFFER_P(posn) (NILP (POSN_STRING (posn))) 398#define POSN_INBUFFER_P(posn) (NILP (POSN_STRING (posn)))
405#define POSN_BUFFER_POSN(posn) (Fnth (make_number (5), (posn))) 399#define POSN_BUFFER_POSN(posn) (Fnth (make_number (5), (posn)))
406 400
407extern Lisp_Object do_mouse_tracking;
408
409/* Some of the event heads. */ 401/* Some of the event heads. */
410extern Lisp_Object Qswitch_frame; 402extern Lisp_Object Qswitch_frame;
411 403
@@ -438,8 +430,6 @@ extern EMACS_TIME *input_available_clear_time;
438 430
439extern int ignore_mouse_drag_p; 431extern int ignore_mouse_drag_p;
440 432
441extern Lisp_Object Vdouble_click_time;
442
443/* The primary selection. */ 433/* The primary selection. */
444extern Lisp_Object QPRIMARY; 434extern Lisp_Object QPRIMARY;
445 435
@@ -453,28 +443,13 @@ extern Lisp_Object read_char (int, int, Lisp_Object *, Lisp_Object,
453extern int parse_solitary_modifier (Lisp_Object symbol); 443extern int parse_solitary_modifier (Lisp_Object symbol);
454 444
455 445
456/* Parent keymap of terminal-local function-key-map instances. */
457extern Lisp_Object Vfunction_key_map;
458
459/* Keymap of key translations that can override keymaps. */
460extern Lisp_Object Vkey_translation_map;
461
462/* This is like Vthis_command, except that commands never set it. */ 446/* This is like Vthis_command, except that commands never set it. */
463extern Lisp_Object real_this_command; 447extern Lisp_Object real_this_command;
464 448
465/* If the lookup of the command returns a binding, the original
466 command is stored in this-original-command. It is nil otherwise. */
467extern Lisp_Object Vthis_original_command;
468
469/* Non-nil disable property on a command means 449/* Non-nil disable property on a command means
470 do not execute it; call disabled-command-function's value instead. */ 450 do not execute it; call disabled-command-function's value instead. */
471extern Lisp_Object QCbutton, QCtoggle, QCradio, QClabel; 451extern Lisp_Object QCbutton, QCtoggle, QCradio, QClabel;
472 452
473/* A mask of extra modifier bits to put into every keyboard char. */
474extern EMACS_INT extra_keyboard_modifiers;
475
476/* If non-nil, this implements the current input method. */
477extern Lisp_Object Vinput_method_function;
478extern Lisp_Object Qinput_method_function; 453extern Lisp_Object Qinput_method_function;
479 454
480/* An event header symbol HEAD may have a property named 455/* An event header symbol HEAD may have a property named
diff --git a/src/keymap.c b/src/keymap.c
index e37b0f18e64..56b27036d35 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -51,49 +51,16 @@ Lisp_Object meta_map; /* The keymap used for globally bound
51Lisp_Object control_x_map; /* The keymap used for globally bound 51Lisp_Object control_x_map; /* The keymap used for globally bound
52 C-x-prefixed default commands */ 52 C-x-prefixed default commands */
53 53
54/* was MinibufLocalMap */
55Lisp_Object Vminibuffer_local_map;
56 /* The keymap used by the minibuf for local 54 /* The keymap used by the minibuf for local
57 bindings when spaces are allowed in the 55 bindings when spaces are allowed in the
58 minibuf */ 56 minibuf */
59 57
60/* was MinibufLocalNSMap */
61Lisp_Object Vminibuffer_local_ns_map;
62 /* The keymap used by the minibuf for local 58 /* The keymap used by the minibuf for local
63 bindings when spaces are not encouraged 59 bindings when spaces are not encouraged
64 in the minibuf */ 60 in the minibuf */
65 61
66/* keymap used for minibuffers when doing completion */ 62/* keymap used for minibuffers when doing completion */
67/* was MinibufLocalCompletionMap */
68Lisp_Object Vminibuffer_local_completion_map;
69
70/* keymap used for minibuffers when doing completion in filenames */
71Lisp_Object Vminibuffer_local_filename_completion_map;
72
73/* keymap used for minibuffers when doing completion in filenames
74 with require-match*/
75Lisp_Object Vminibuffer_local_filename_must_match_map;
76
77/* keymap used for minibuffers when doing completion and require a match */ 63/* keymap used for minibuffers when doing completion and require a match */
78/* was MinibufLocalMustMatchMap */
79Lisp_Object Vminibuffer_local_must_match_map;
80
81/* Alist of minor mode variables and keymaps. */
82Lisp_Object Vminor_mode_map_alist;
83
84/* Alist of major-mode-specific overrides for
85 minor mode variables and keymaps. */
86Lisp_Object Vminor_mode_overriding_map_alist;
87
88/* List of emulation mode keymap alists. */
89Lisp_Object Vemulation_mode_map_alists;
90
91/* A list of all commands given new bindings since a certain time
92 when nil was stored here.
93 This is used to speed up recomputation of menu key equivalents
94 when Emacs starts up. t means don't record anything here. */
95Lisp_Object Vdefine_key_rebound_commands;
96
97Lisp_Object Qkeymapp, Qkeymap, Qnon_ascii, Qmenu_item, Qremap; 64Lisp_Object Qkeymapp, Qkeymap, Qnon_ascii, Qmenu_item, Qremap;
98Lisp_Object QCadvertised_binding; 65Lisp_Object QCadvertised_binding;
99 66
@@ -2710,8 +2677,6 @@ where_is_internal (Lisp_Object definition, Lisp_Object keymaps,
2710 return data.sequences; 2677 return data.sequences;
2711} 2678}
2712 2679
2713static Lisp_Object Vwhere_is_preferred_modifier;
2714
2715/* This function can GC if Flookup_key autoloads any keymaps. */ 2680/* This function can GC if Flookup_key autoloads any keymaps. */
2716 2681
2717DEFUN ("where-is-internal", Fwhere_is_internal, Swhere_is_internal, 1, 5, 0, 2682DEFUN ("where-is-internal", Fwhere_is_internal, Swhere_is_internal, 1, 5, 0,
@@ -3857,48 +3822,48 @@ syms_of_keymap (void)
3857 Qnil))))); 3822 Qnil)))));
3858 staticpro (&exclude_keys); 3823 staticpro (&exclude_keys);
3859 3824
3860 DEFVAR_LISP ("define-key-rebound-commands", &Vdefine_key_rebound_commands, 3825 DEFVAR_LISP ("define-key-rebound-commands", Vdefine_key_rebound_commands,
3861 doc: /* List of commands given new key bindings recently. 3826 doc: /* List of commands given new key bindings recently.
3862This is used for internal purposes during Emacs startup; 3827This is used for internal purposes during Emacs startup;
3863don't alter it yourself. */); 3828don't alter it yourself. */);
3864 Vdefine_key_rebound_commands = Qt; 3829 Vdefine_key_rebound_commands = Qt;
3865 3830
3866 DEFVAR_LISP ("minibuffer-local-map", &Vminibuffer_local_map, 3831 DEFVAR_LISP ("minibuffer-local-map", Vminibuffer_local_map,
3867 doc: /* Default keymap to use when reading from the minibuffer. */); 3832 doc: /* Default keymap to use when reading from the minibuffer. */);
3868 Vminibuffer_local_map = Fmake_sparse_keymap (Qnil); 3833 Vminibuffer_local_map = Fmake_sparse_keymap (Qnil);
3869 3834
3870 DEFVAR_LISP ("minibuffer-local-ns-map", &Vminibuffer_local_ns_map, 3835 DEFVAR_LISP ("minibuffer-local-ns-map", Vminibuffer_local_ns_map,
3871 doc: /* Local keymap for the minibuffer when spaces are not allowed. */); 3836 doc: /* Local keymap for the minibuffer when spaces are not allowed. */);
3872 Vminibuffer_local_ns_map = Fmake_sparse_keymap (Qnil); 3837 Vminibuffer_local_ns_map = Fmake_sparse_keymap (Qnil);
3873 Fset_keymap_parent (Vminibuffer_local_ns_map, Vminibuffer_local_map); 3838 Fset_keymap_parent (Vminibuffer_local_ns_map, Vminibuffer_local_map);
3874 3839
3875 DEFVAR_LISP ("minibuffer-local-completion-map", &Vminibuffer_local_completion_map, 3840 DEFVAR_LISP ("minibuffer-local-completion-map", Vminibuffer_local_completion_map,
3876 doc: /* Local keymap for minibuffer input with completion. */); 3841 doc: /* Local keymap for minibuffer input with completion. */);
3877 Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil); 3842 Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil);
3878 Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map); 3843 Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map);
3879 3844
3880 DEFVAR_LISP ("minibuffer-local-filename-completion-map", 3845 DEFVAR_LISP ("minibuffer-local-filename-completion-map",
3881 &Vminibuffer_local_filename_completion_map, 3846 Vminibuffer_local_filename_completion_map,
3882 doc: /* Local keymap for minibuffer input with completion for filenames. */); 3847 doc: /* Local keymap for minibuffer input with completion for filenames. */);
3883 Vminibuffer_local_filename_completion_map = Fmake_sparse_keymap (Qnil); 3848 Vminibuffer_local_filename_completion_map = Fmake_sparse_keymap (Qnil);
3884 Fset_keymap_parent (Vminibuffer_local_filename_completion_map, 3849 Fset_keymap_parent (Vminibuffer_local_filename_completion_map,
3885 Vminibuffer_local_completion_map); 3850 Vminibuffer_local_completion_map);
3886 3851
3887 3852
3888 DEFVAR_LISP ("minibuffer-local-must-match-map", &Vminibuffer_local_must_match_map, 3853 DEFVAR_LISP ("minibuffer-local-must-match-map", Vminibuffer_local_must_match_map,
3889 doc: /* Local keymap for minibuffer input with completion, for exact match. */); 3854 doc: /* Local keymap for minibuffer input with completion, for exact match. */);
3890 Vminibuffer_local_must_match_map = Fmake_sparse_keymap (Qnil); 3855 Vminibuffer_local_must_match_map = Fmake_sparse_keymap (Qnil);
3891 Fset_keymap_parent (Vminibuffer_local_must_match_map, 3856 Fset_keymap_parent (Vminibuffer_local_must_match_map,
3892 Vminibuffer_local_completion_map); 3857 Vminibuffer_local_completion_map);
3893 3858
3894 DEFVAR_LISP ("minibuffer-local-filename-must-match-map", 3859 DEFVAR_LISP ("minibuffer-local-filename-must-match-map",
3895 &Vminibuffer_local_filename_must_match_map, 3860 Vminibuffer_local_filename_must_match_map,
3896 doc: /* Local keymap for minibuffer input with completion for filenames with exact match. */); 3861 doc: /* Local keymap for minibuffer input with completion for filenames with exact match. */);
3897 Vminibuffer_local_filename_must_match_map = Fmake_sparse_keymap (Qnil); 3862 Vminibuffer_local_filename_must_match_map = Fmake_sparse_keymap (Qnil);
3898 Fset_keymap_parent (Vminibuffer_local_filename_must_match_map, 3863 Fset_keymap_parent (Vminibuffer_local_filename_must_match_map,
3899 Vminibuffer_local_must_match_map); 3864 Vminibuffer_local_must_match_map);
3900 3865
3901 DEFVAR_LISP ("minor-mode-map-alist", &Vminor_mode_map_alist, 3866 DEFVAR_LISP ("minor-mode-map-alist", Vminor_mode_map_alist,
3902 doc: /* Alist of keymaps to use for minor modes. 3867 doc: /* Alist of keymaps to use for minor modes.
3903Each element looks like (VARIABLE . KEYMAP); KEYMAP is used to read 3868Each element looks like (VARIABLE . KEYMAP); KEYMAP is used to read
3904key sequences and look up bindings if VARIABLE's value is non-nil. 3869key sequences and look up bindings if VARIABLE's value is non-nil.
@@ -3906,14 +3871,14 @@ If two active keymaps bind the same key, the keymap appearing earlier
3906in the list takes precedence. */); 3871in the list takes precedence. */);
3907 Vminor_mode_map_alist = Qnil; 3872 Vminor_mode_map_alist = Qnil;
3908 3873
3909 DEFVAR_LISP ("minor-mode-overriding-map-alist", &Vminor_mode_overriding_map_alist, 3874 DEFVAR_LISP ("minor-mode-overriding-map-alist", Vminor_mode_overriding_map_alist,
3910 doc: /* Alist of keymaps to use for minor modes, in current major mode. 3875 doc: /* Alist of keymaps to use for minor modes, in current major mode.
3911This variable is an alist just like `minor-mode-map-alist', and it is 3876This variable is an alist just like `minor-mode-map-alist', and it is
3912used the same way (and before `minor-mode-map-alist'); however, 3877used the same way (and before `minor-mode-map-alist'); however,
3913it is provided for major modes to bind locally. */); 3878it is provided for major modes to bind locally. */);
3914 Vminor_mode_overriding_map_alist = Qnil; 3879 Vminor_mode_overriding_map_alist = Qnil;
3915 3880
3916 DEFVAR_LISP ("emulation-mode-map-alists", &Vemulation_mode_map_alists, 3881 DEFVAR_LISP ("emulation-mode-map-alists", Vemulation_mode_map_alists,
3917 doc: /* List of keymap alists to use for emulations modes. 3882 doc: /* List of keymap alists to use for emulations modes.
3918It is intended for modes or packages using multiple minor-mode keymaps. 3883It is intended for modes or packages using multiple minor-mode keymaps.
3919Each element is a keymap alist just like `minor-mode-map-alist', or a 3884Each element is a keymap alist just like `minor-mode-map-alist', or a
@@ -3922,7 +3887,7 @@ the same way. The "active" keymaps in each alist are used before
3922`minor-mode-map-alist' and `minor-mode-overriding-map-alist'. */); 3887`minor-mode-map-alist' and `minor-mode-overriding-map-alist'. */);
3923 Vemulation_mode_map_alists = Qnil; 3888 Vemulation_mode_map_alists = Qnil;
3924 3889
3925 DEFVAR_LISP ("where-is-preferred-modifier", &Vwhere_is_preferred_modifier, 3890 DEFVAR_LISP ("where-is-preferred-modifier", Vwhere_is_preferred_modifier,
3926 doc: /* Preferred modifier to use for `where-is'. 3891 doc: /* Preferred modifier to use for `where-is'.
3927When a single binding is requested, `where-is' will return one that 3892When a single binding is requested, `where-is' will return one that
3928uses this modifier if possible. If nil, or if no such binding exists, 3893uses this modifier if possible. If nil, or if no such binding exists,
diff --git a/src/keymap.h b/src/keymap.h
index 931da76e555..accec22c09b 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -24,9 +24,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24extern Lisp_Object Qkeymap, Qmenu_bar; 24extern Lisp_Object Qkeymap, Qmenu_bar;
25extern Lisp_Object Qremap; 25extern Lisp_Object Qremap;
26extern Lisp_Object Qmenu_item; 26extern Lisp_Object Qmenu_item;
27extern Lisp_Object meta_prefix_char;
28extern Lisp_Object Voverriding_local_map;
29extern Lisp_Object Voverriding_local_map_menu_flag;
30extern Lisp_Object current_global_map; 27extern Lisp_Object current_global_map;
31EXFUN (Fmake_sparse_keymap, 1); 28EXFUN (Fmake_sparse_keymap, 1);
32EXFUN (Fkeymap_prompt, 1); 29EXFUN (Fkeymap_prompt, 1);
diff --git a/src/lisp.h b/src/lisp.h
index 58d8678c146..726b7671f4a 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1843,27 +1843,41 @@ extern void defvar_int (struct Lisp_Intfwd *, const char *, EMACS_INT *);
1843extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int); 1843extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int);
1844 1844
1845/* Macros we use to define forwarded Lisp variables. 1845/* Macros we use to define forwarded Lisp variables.
1846 These are used in the syms_of_FILENAME functions. */ 1846 These are used in the syms_of_FILENAME functions.
1847
1848 An ordinary (not in buffer_defaults, per-buffer, or per-keyboard)
1849 lisp variable is actually a field in `struct emacs_globals'. The
1850 field's name begins with "f_", which is a convention enforced by
1851 these macros. Each such global has a corresponding #define in
1852 globals.h; the plain name should be used in the code.
1853
1854 E.g., the global "cons_cells_consed" is declared as "int
1855 f_cons_cells_consed" in globals.h, but there is a define:
1856
1857 #define cons_cells_consed globals.f_cons_cells_consed
1858
1859 All C code uses the `cons_cells_consed' name. This is all done
1860 this way to support indirection for multi-threaded Emacs. */
1847 1861
1848#define DEFVAR_LISP(lname, vname, doc) \ 1862#define DEFVAR_LISP(lname, vname, doc) \
1849 do { \ 1863 do { \
1850 static struct Lisp_Objfwd o_fwd; \ 1864 static struct Lisp_Objfwd o_fwd; \
1851 defvar_lisp (&o_fwd, lname, vname); \ 1865 defvar_lisp (&o_fwd, lname, &globals.f_ ## vname); \
1852 } while (0) 1866 } while (0)
1853#define DEFVAR_LISP_NOPRO(lname, vname, doc) \ 1867#define DEFVAR_LISP_NOPRO(lname, vname, doc) \
1854 do { \ 1868 do { \
1855 static struct Lisp_Objfwd o_fwd; \ 1869 static struct Lisp_Objfwd o_fwd; \
1856 defvar_lisp_nopro (&o_fwd, lname, vname); \ 1870 defvar_lisp_nopro (&o_fwd, lname, &globals.f_ ## vname); \
1857 } while (0) 1871 } while (0)
1858#define DEFVAR_BOOL(lname, vname, doc) \ 1872#define DEFVAR_BOOL(lname, vname, doc) \
1859 do { \ 1873 do { \
1860 static struct Lisp_Boolfwd b_fwd; \ 1874 static struct Lisp_Boolfwd b_fwd; \
1861 defvar_bool (&b_fwd, lname, vname); \ 1875 defvar_bool (&b_fwd, lname, &globals.f_ ## vname); \
1862 } while (0) 1876 } while (0)
1863#define DEFVAR_INT(lname, vname, doc) \ 1877#define DEFVAR_INT(lname, vname, doc) \
1864 do { \ 1878 do { \
1865 static struct Lisp_Intfwd i_fwd; \ 1879 static struct Lisp_Intfwd i_fwd; \
1866 defvar_int (&i_fwd, lname, vname); \ 1880 defvar_int (&i_fwd, lname, &globals.f_ ## vname); \
1867 } while (0) 1881 } while (0)
1868 1882
1869#define DEFVAR_BUFFER_DEFAULTS(lname, vname, doc) \ 1883#define DEFVAR_BUFFER_DEFAULTS(lname, vname, doc) \
@@ -1916,8 +1930,6 @@ extern struct specbinding *specpdl;
1916extern struct specbinding *specpdl_ptr; 1930extern struct specbinding *specpdl_ptr;
1917extern EMACS_INT specpdl_size; 1931extern EMACS_INT specpdl_size;
1918 1932
1919extern EMACS_INT max_specpdl_size;
1920
1921#define SPECPDL_INDEX() ((int) (specpdl_ptr - specpdl)) 1933#define SPECPDL_INDEX() ((int) (specpdl_ptr - specpdl))
1922 1934
1923/* Everything needed to describe an active condition case. */ 1935/* Everything needed to describe an active condition case. */
@@ -2081,10 +2093,6 @@ extern Lisp_Object Vascii_canon_table, Vascii_eqv_table;
2081 2093
2082extern int consing_since_gc; 2094extern int consing_since_gc;
2083 2095
2084/* Thresholds for doing another gc. */
2085
2086extern EMACS_INT gc_cons_threshold;
2087
2088extern EMACS_INT gc_relative_threshold; 2096extern EMACS_INT gc_relative_threshold;
2089 2097
2090extern EMACS_INT memory_full_cons_threshold; 2098extern EMACS_INT memory_full_cons_threshold;
@@ -2439,14 +2447,11 @@ extern void syms_of_syntax (void);
2439 2447
2440/* Defined in fns.c */ 2448/* Defined in fns.c */
2441extern Lisp_Object QCrehash_size, QCrehash_threshold; 2449extern Lisp_Object QCrehash_size, QCrehash_threshold;
2442extern int use_dialog_box;
2443extern int use_file_dialog;
2444extern int next_almost_prime (int); 2450extern int next_almost_prime (int);
2445extern Lisp_Object larger_vector (Lisp_Object, int, Lisp_Object); 2451extern Lisp_Object larger_vector (Lisp_Object, int, Lisp_Object);
2446extern void sweep_weak_hash_tables (void); 2452extern void sweep_weak_hash_tables (void);
2447extern Lisp_Object Qcursor_in_echo_area; 2453extern Lisp_Object Qcursor_in_echo_area;
2448extern Lisp_Object Qstring_lessp; 2454extern Lisp_Object Qstring_lessp;
2449extern Lisp_Object Vfeatures;
2450extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq, Qeql; 2455extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq, Qeql;
2451unsigned sxhash (Lisp_Object, int); 2456unsigned sxhash (Lisp_Object, int);
2452Lisp_Object make_hash_table (Lisp_Object, Lisp_Object, Lisp_Object, 2457Lisp_Object make_hash_table (Lisp_Object, Lisp_Object, Lisp_Object,
@@ -2593,8 +2598,6 @@ extern void syms_of_insdel (void);
2593 2598
2594/* Defined in dispnew.c */ 2599/* Defined in dispnew.c */
2595extern Lisp_Object selected_frame; 2600extern Lisp_Object selected_frame;
2596extern Lisp_Object Vwindow_system_version;
2597extern EMACS_INT baud_rate;
2598EXFUN (Fding, 1); 2601EXFUN (Fding, 1);
2599EXFUN (Fredraw_frame, 1); 2602EXFUN (Fredraw_frame, 1);
2600EXFUN (Fsleep_for, 2); 2603EXFUN (Fsleep_for, 2);
@@ -2609,24 +2612,21 @@ extern Lisp_Object Qinhibit_redisplay, Qdisplay;
2609extern Lisp_Object Qinhibit_eval_during_redisplay; 2612extern Lisp_Object Qinhibit_eval_during_redisplay;
2610extern Lisp_Object Qmessage_truncate_lines; 2613extern Lisp_Object Qmessage_truncate_lines;
2611extern Lisp_Object Qmenu_bar_update_hook; 2614extern Lisp_Object Qmenu_bar_update_hook;
2612extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions; 2615extern Lisp_Object Qwindow_scroll_functions;
2613extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; 2616extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
2614extern Lisp_Object Qimage, Qtext, Qboth, Qboth_horiz, Qtext_image_horiz; 2617extern Lisp_Object Qimage, Qtext, Qboth, Qboth_horiz, Qtext_image_horiz;
2615extern Lisp_Object Qspace, Qcenter, QCalign_to; 2618extern Lisp_Object Qspace, Qcenter, QCalign_to;
2616extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow; 2619extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow;
2617extern Lisp_Object Qleft_margin, Qright_margin; 2620extern Lisp_Object Qleft_margin, Qright_margin;
2618extern Lisp_Object Qglyphless_char; 2621extern Lisp_Object Qglyphless_char;
2619extern Lisp_Object Vmessage_log_max;
2620extern Lisp_Object QCdata, QCfile; 2622extern Lisp_Object QCdata, QCfile;
2621extern Lisp_Object QCmap; 2623extern Lisp_Object QCmap;
2622extern Lisp_Object Qrisky_local_variable; 2624extern Lisp_Object Qrisky_local_variable;
2623extern Lisp_Object Vinhibit_redisplay;
2624extern struct frame *last_glyphless_glyph_frame; 2625extern struct frame *last_glyphless_glyph_frame;
2625extern unsigned last_glyphless_glyph_face_id; 2626extern unsigned last_glyphless_glyph_face_id;
2626extern int last_glyphless_glyph_merged_face_id; 2627extern int last_glyphless_glyph_merged_face_id;
2627extern int message_enable_multibyte; 2628extern int message_enable_multibyte;
2628extern int noninteractive_need_newline; 2629extern int noninteractive_need_newline;
2629extern EMACS_INT scroll_margin;
2630extern Lisp_Object echo_area_buffer[2]; 2630extern Lisp_Object echo_area_buffer[2];
2631extern void add_to_log (const char *, Lisp_Object, Lisp_Object); 2631extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
2632extern void check_message_stack (void); 2632extern void check_message_stack (void);
@@ -2683,8 +2683,6 @@ extern int survives_gc_p (Lisp_Object);
2683extern void mark_object (Lisp_Object); 2683extern void mark_object (Lisp_Object);
2684extern void refill_memory_reserve (void); 2684extern void refill_memory_reserve (void);
2685extern const char *pending_malloc_warning; 2685extern const char *pending_malloc_warning;
2686extern Lisp_Object Vpurify_flag;
2687extern Lisp_Object Vmemory_full;
2688extern Lisp_Object *stack_base; 2686extern Lisp_Object *stack_base;
2689EXFUN (Fcons, 2); 2687EXFUN (Fcons, 2);
2690extern Lisp_Object list1 (Lisp_Object); 2688extern Lisp_Object list1 (Lisp_Object);
@@ -2772,7 +2770,6 @@ extern void syms_of_chartab (void);
2772 2770
2773/* Defined in print.c */ 2771/* Defined in print.c */
2774extern Lisp_Object Vprin1_to_string_buffer; 2772extern Lisp_Object Vprin1_to_string_buffer;
2775extern Lisp_Object Vprint_level, Vprint_length;
2776extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE; 2773extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
2777extern void safe_debug_print (Lisp_Object) EXTERNALLY_VISIBLE; 2774extern void safe_debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
2778EXFUN (Fprin1, 2); 2775EXFUN (Fprin1, 2);
@@ -2781,10 +2778,10 @@ EXFUN (Fprinc, 2);
2781EXFUN (Fterpri, 1); 2778EXFUN (Fterpri, 1);
2782EXFUN (Fprint, 2); 2779EXFUN (Fprint, 2);
2783EXFUN (Ferror_message_string, 1); 2780EXFUN (Ferror_message_string, 1);
2784extern Lisp_Object Vstandard_output, Qstandard_output; 2781extern Lisp_Object Qstandard_output;
2785extern Lisp_Object Qexternal_debugging_output; 2782extern Lisp_Object Qexternal_debugging_output;
2786extern void temp_output_buffer_setup (const char *); 2783extern void temp_output_buffer_setup (const char *);
2787extern int print_level, print_escape_newlines; 2784extern int print_level;
2788extern Lisp_Object Qprint_escape_newlines; 2785extern Lisp_Object Qprint_escape_newlines;
2789extern void write_string (const char *, int); 2786extern void write_string (const char *, int);
2790extern void print_error_message (Lisp_Object, Lisp_Object, const char *, 2787extern void print_error_message (Lisp_Object, Lisp_Object, const char *,
@@ -2798,12 +2795,9 @@ extern void syms_of_print (void);
2798/* Defined in doprnt.c */ 2795/* Defined in doprnt.c */
2799extern EMACS_INT doprnt (char *, int, const char *, const char *, va_list); 2796extern EMACS_INT doprnt (char *, int, const char *, const char *, va_list);
2800 2797
2801/* Defined in lread.c */
2802extern Lisp_Object Vafter_load_alist;
2803extern Lisp_Object Qvariable_documentation, Qstandard_input; 2798extern Lisp_Object Qvariable_documentation, Qstandard_input;
2804extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; 2799extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
2805extern Lisp_Object Vobarray, initial_obarray, Vstandard_input; 2800extern Lisp_Object initial_obarray;
2806extern int load_in_progress;
2807EXFUN (Fread, 1); 2801EXFUN (Fread, 1);
2808EXFUN (Fread_from_string, 3); 2802EXFUN (Fread_from_string, 3);
2809EXFUN (Fintern, 2); 2803EXFUN (Fintern, 2);
@@ -2822,8 +2816,6 @@ extern Lisp_Object oblookup (Lisp_Object, const char *, EMACS_INT, EMACS_INT);
2822 do { \ 2816 do { \
2823 if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list); \ 2817 if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list); \
2824 } while (0) 2818 } while (0)
2825extern Lisp_Object Vcurrent_load_list;
2826extern Lisp_Object Vload_history, Vload_suffixes, Vload_file_rep_suffixes;
2827extern int openp (Lisp_Object, Lisp_Object, Lisp_Object, 2819extern int openp (Lisp_Object, Lisp_Object, Lisp_Object,
2828 Lisp_Object *, Lisp_Object); 2820 Lisp_Object *, Lisp_Object);
2829extern int isfloat_string (const char *, int); 2821extern int isfloat_string (const char *, int);
@@ -2837,13 +2829,10 @@ extern void syms_of_lread (void);
2837 2829
2838/* Defined in eval.c */ 2830/* Defined in eval.c */
2839extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro; 2831extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro;
2840extern Lisp_Object Vinhibit_quit, Qinhibit_quit, Vquit_flag; 2832extern Lisp_Object Qinhibit_quit;
2841extern Lisp_Object Vautoload_queue; 2833extern Lisp_Object Vautoload_queue;
2842extern Lisp_Object Vdebug_on_error;
2843extern Lisp_Object Vsignaling_function; 2834extern Lisp_Object Vsignaling_function;
2844extern int handling_signal; 2835extern int handling_signal;
2845extern int debug_on_next_call;
2846
2847/* To run a normal hook, use the appropriate function from the list below. 2836/* To run a normal hook, use the appropriate function from the list below.
2848 The calling convention: 2837 The calling convention:
2849 2838
@@ -2902,12 +2891,7 @@ extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object);
2902extern void init_eval (void); 2891extern void init_eval (void);
2903extern void syms_of_eval (void); 2892extern void syms_of_eval (void);
2904 2893
2905/* Defined in editfns.c */
2906extern Lisp_Object last_nonmenu_event;
2907extern Lisp_Object Qfield; 2894extern Lisp_Object Qfield;
2908extern Lisp_Object Vinhibit_field_text_motion;
2909extern Lisp_Object Vsystem_name;
2910extern Lisp_Object Vuser_login_name;
2911EXFUN (Fcurrent_message, 0); 2895EXFUN (Fcurrent_message, 0);
2912EXFUN (Fgoto_char, 1); 2896EXFUN (Fgoto_char, 1);
2913EXFUN (Fpoint_max_marker, 0); 2897EXFUN (Fpoint_max_marker, 0);
@@ -2963,7 +2947,7 @@ extern void fix_start_end_in_overlays (EMACS_INT, EMACS_INT);
2963extern void report_overlay_modification (Lisp_Object, Lisp_Object, int, 2947extern void report_overlay_modification (Lisp_Object, Lisp_Object, int,
2964 Lisp_Object, Lisp_Object, Lisp_Object); 2948 Lisp_Object, Lisp_Object, Lisp_Object);
2965extern int overlay_touches_p (EMACS_INT); 2949extern int overlay_touches_p (EMACS_INT);
2966extern Lisp_Object Vbuffer_alist, Vinhibit_read_only; 2950extern Lisp_Object Vbuffer_alist;
2967EXFUN (Fget_buffer, 1); 2951EXFUN (Fget_buffer, 1);
2968EXFUN (Fget_buffer_create, 1); 2952EXFUN (Fget_buffer_create, 1);
2969EXFUN (Fgenerate_new_buffer_name, 2); 2953EXFUN (Fgenerate_new_buffer_name, 2);
@@ -3016,7 +3000,6 @@ extern Lisp_Object Qfile_error;
3016extern Lisp_Object Qfile_exists_p; 3000extern Lisp_Object Qfile_exists_p;
3017extern Lisp_Object Qfile_directory_p; 3001extern Lisp_Object Qfile_directory_p;
3018extern Lisp_Object Qinsert_file_contents; 3002extern Lisp_Object Qinsert_file_contents;
3019extern Lisp_Object Vauto_save_list_file_name;
3020EXFUN (Ffind_file_name_handler, 2); 3003EXFUN (Ffind_file_name_handler, 2);
3021EXFUN (Ffile_name_as_directory, 1); 3004EXFUN (Ffile_name_as_directory, 1);
3022EXFUN (Fexpand_file_name, 2); 3005EXFUN (Fexpand_file_name, 2);
@@ -3076,13 +3059,8 @@ extern void clear_regexp_cache (void);
3076/* Defined in minibuf.c */ 3059/* Defined in minibuf.c */
3077 3060
3078extern Lisp_Object Qcompletion_ignore_case; 3061extern Lisp_Object Qcompletion_ignore_case;
3079extern Lisp_Object Vcompletion_regexp_list;
3080extern Lisp_Object Vhistory_length;
3081extern Lisp_Object Vminibuffer_list; 3062extern Lisp_Object Vminibuffer_list;
3082extern Lisp_Object last_minibuf_string; 3063extern Lisp_Object last_minibuf_string;
3083extern int completion_ignore_case;
3084extern int history_delete_duplicates;
3085extern int minibuffer_auto_raise;
3086extern void choose_minibuf_frame (void); 3064extern void choose_minibuf_frame (void);
3087EXFUN (Fcompleting_read, 8); 3065EXFUN (Fcompleting_read, 8);
3088EXFUN (Fread_from_minibuffer, 7); 3066EXFUN (Fread_from_minibuffer, 7);
@@ -3098,10 +3076,8 @@ extern void syms_of_minibuf (void);
3098 3076
3099/* Defined in callint.c */ 3077/* Defined in callint.c */
3100 3078
3101extern Lisp_Object Qminus, Qplus, Vcurrent_prefix_arg; 3079extern Lisp_Object Qminus, Qplus;
3102extern Lisp_Object Qwhen; 3080extern Lisp_Object Qwhen;
3103extern Lisp_Object Vcommand_history;
3104extern Lisp_Object Vmark_even_if_inactive;
3105extern Lisp_Object Qcall_interactively, Qmouse_leave_buffer_hook; 3081extern Lisp_Object Qcall_interactively, Qmouse_leave_buffer_hook;
3106EXFUN (Fprefix_numeric_value, 1); 3082EXFUN (Fprefix_numeric_value, 1);
3107extern void syms_of_callint (void); 3083extern void syms_of_callint (void);
@@ -3134,10 +3110,6 @@ extern Lisp_Object Qdisabled, QCfilter;
3134extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle; 3110extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle;
3135extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll; 3111extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll;
3136extern Lisp_Object Qtop, Qratio; 3112extern Lisp_Object Qtop, Qratio;
3137extern Lisp_Object Vsaved_region_selection;
3138extern Lisp_Object Vselect_active_regions;
3139extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level;
3140extern Lisp_Object Vthrow_on_input;
3141extern int input_pending; 3113extern int input_pending;
3142EXFUN (Fdiscard_input, 0); 3114EXFUN (Fdiscard_input, 0);
3143EXFUN (Frecursive_edit, 0); 3115EXFUN (Frecursive_edit, 0);
@@ -3177,8 +3149,6 @@ extern void syms_of_indent (void);
3177 3149
3178/* Defined in frame.c */ 3150/* Defined in frame.c */
3179#ifdef HAVE_WINDOW_SYSTEM 3151#ifdef HAVE_WINDOW_SYSTEM
3180extern Lisp_Object Vx_resource_name;
3181extern Lisp_Object Vx_resource_class;
3182#endif /* HAVE_WINDOW_SYSTEM */ 3152#endif /* HAVE_WINDOW_SYSTEM */
3183extern Lisp_Object Qonly; 3153extern Lisp_Object Qonly;
3184extern Lisp_Object Qvisible; 3154extern Lisp_Object Qvisible;
@@ -3211,12 +3181,8 @@ extern int initial_argc;
3211extern int display_arg; 3181extern int display_arg;
3212#endif 3182#endif
3213extern Lisp_Object decode_env_path (const char *, const char *); 3183extern Lisp_Object decode_env_path (const char *, const char *);
3214extern Lisp_Object Vinvocation_name, Vinvocation_directory;
3215extern Lisp_Object Vbefore_init_time, Vafter_init_time;
3216extern Lisp_Object Vinstallation_directory;
3217extern Lisp_Object empty_unibyte_string, empty_multibyte_string; 3184extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
3218extern Lisp_Object Qfile_name_handler_alist; 3185extern Lisp_Object Qfile_name_handler_alist;
3219extern Lisp_Object Vdynamic_library_alist;
3220extern void (*fatal_error_signal_hook) (void); 3186extern void (*fatal_error_signal_hook) (void);
3221EXFUN (Fkill_emacs, 1) NO_RETURN; 3187EXFUN (Fkill_emacs, 1) NO_RETURN;
3222#if HAVE_SETLOCALE 3188#if HAVE_SETLOCALE
@@ -3233,9 +3199,6 @@ void shut_down_emacs (int, int, Lisp_Object);
3233/* Nonzero means don't do interactive redisplay and don't change tty modes. */ 3199/* Nonzero means don't do interactive redisplay and don't change tty modes. */
3234extern int noninteractive; 3200extern int noninteractive;
3235 3201
3236/* Nonzero means don't load X resources or Windows Registry settings. */
3237extern int inhibit_x_resources;
3238
3239/* Nonzero means remove site-lisp directories from load-path. */ 3202/* Nonzero means remove site-lisp directories from load-path. */
3240extern int no_site_lisp; 3203extern int no_site_lisp;
3241 3204
@@ -3271,11 +3234,6 @@ extern void init_process (void);
3271extern void syms_of_process (void); 3234extern void syms_of_process (void);
3272extern void setup_process_coding_systems (Lisp_Object); 3235extern void setup_process_coding_systems (Lisp_Object);
3273 3236
3274/* Defined in callproc.c */
3275extern Lisp_Object Vexec_path, Vexec_suffixes,
3276 Vexec_directory, Vdata_directory;
3277extern Lisp_Object Vdoc_directory;
3278extern Lisp_Object Vshell_file_name;
3279EXFUN (Fcall_process, MANY); 3237EXFUN (Fcall_process, MANY);
3280extern int child_setup (int, int, int, char **, int, Lisp_Object); 3238extern int child_setup (int, int, int, char **, int, Lisp_Object);
3281extern void init_callproc_1 (void); 3239extern void init_callproc_1 (void);
@@ -3285,7 +3243,6 @@ extern void syms_of_callproc (void);
3285 3243
3286/* Defined in doc.c */ 3244/* Defined in doc.c */
3287extern Lisp_Object Qfunction_documentation; 3245extern Lisp_Object Qfunction_documentation;
3288extern Lisp_Object Vdoc_file_name;
3289EXFUN (Fsubstitute_command_keys, 1); 3246EXFUN (Fsubstitute_command_keys, 1);
3290EXFUN (Fdocumentation_property, 3); 3247EXFUN (Fdocumentation_property, 3);
3291extern Lisp_Object read_doc_string (Lisp_Object); 3248extern Lisp_Object read_doc_string (Lisp_Object);
@@ -3322,8 +3279,6 @@ extern void record_property_change (EMACS_INT, EMACS_INT,
3322 Lisp_Object, Lisp_Object, 3279 Lisp_Object, Lisp_Object,
3323 Lisp_Object); 3280 Lisp_Object);
3324extern void syms_of_undo (void); 3281extern void syms_of_undo (void);
3325extern Lisp_Object Vundo_outer_limit;
3326
3327/* Defined in textprop.c */ 3282/* Defined in textprop.c */
3328extern Lisp_Object Qfont, Qmouse_face; 3283extern Lisp_Object Qfont, Qmouse_face;
3329extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks; 3284extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
@@ -3389,8 +3344,6 @@ extern void *memmove (void *, void *, size_t);
3389extern int memcmp (void *, void *, size_t); 3344extern int memcmp (void *, void *, size_t);
3390#endif 3345#endif
3391 3346
3392/* Defined in filelock.c */
3393extern Lisp_Object Vtemporary_file_directory;
3394EXFUN (Funlock_buffer, 0); 3347EXFUN (Funlock_buffer, 0);
3395extern void unlock_all_files (void); 3348extern void unlock_all_files (void);
3396extern void lock_file (Lisp_Object); 3349extern void lock_file (Lisp_Object);
@@ -3438,7 +3391,6 @@ extern void syms_of_fontset (void);
3438 3391
3439/* Defined in xfns.c, w32fns.c, or macfns.c */ 3392/* Defined in xfns.c, w32fns.c, or macfns.c */
3440extern Lisp_Object Qfont_param; 3393extern Lisp_Object Qfont_param;
3441extern Lisp_Object Vx_no_window_manager;
3442EXFUN (Fxw_display_color_p, 1); 3394EXFUN (Fxw_display_color_p, 1);
3443EXFUN (Fx_focus_frame, 1); 3395EXFUN (Fx_focus_frame, 1);
3444#endif 3396#endif
@@ -3452,10 +3404,7 @@ extern Lisp_Object Qnormal;
3452extern Lisp_Object QCfamily, QCweight, QCslant; 3404extern Lisp_Object QCfamily, QCweight, QCslant;
3453extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground; 3405extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground;
3454extern Lisp_Object Vface_alternative_font_family_alist; 3406extern Lisp_Object Vface_alternative_font_family_alist;
3455extern Lisp_Object Vface_font_rescale_alist;
3456extern Lisp_Object Vface_ignored_fonts;
3457extern Lisp_Object Vface_alternative_font_registry_alist; 3407extern Lisp_Object Vface_alternative_font_registry_alist;
3458extern Lisp_Object Vscalable_fonts_allowed;
3459EXFUN (Fclear_face_cache, 1); 3408EXFUN (Fclear_face_cache, 1);
3460EXFUN (Fx_load_color_file, 1); 3409EXFUN (Fx_load_color_file, 1);
3461extern void syms_of_xfaces (void); 3410extern void syms_of_xfaces (void);
@@ -3680,4 +3629,6 @@ extern Lisp_Object safe_alloca_unwind (Lisp_Object);
3680 } while (0) 3629 } while (0)
3681 3630
3682 3631
3632#include "globals.h"
3633
3683#endif /* EMACS_LISP_H */ 3634#endif /* EMACS_LISP_H */
diff --git a/src/lread.c b/src/lread.c
index 4c73cc36dcf..60a2778dbbc 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -70,11 +70,11 @@ Lisp_Object Qrehash_size;
70Lisp_Object Qrehash_threshold; 70Lisp_Object Qrehash_threshold;
71 71
72Lisp_Object Qread_char, Qget_file_char, Qstandard_input, Qcurrent_load_list; 72Lisp_Object Qread_char, Qget_file_char, Qstandard_input, Qcurrent_load_list;
73Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist; 73Lisp_Object Qvariable_documentation;
74Lisp_Object Qascii_character, Qload, Qload_file_name; 74Lisp_Object Qascii_character, Qload, Qload_file_name;
75Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; 75Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
76Lisp_Object Qinhibit_file_name_operation; 76Lisp_Object Qinhibit_file_name_operation;
77Lisp_Object Qeval_buffer_list, Veval_buffer_list; 77Lisp_Object Qeval_buffer_list;
78Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */ 78Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */
79 79
80/* Used instead of Qget_file_char while loading *.elc files compiled 80/* Used instead of Qget_file_char while loading *.elc files compiled
@@ -83,69 +83,19 @@ static Lisp_Object Qget_emacs_mule_file_char;
83 83
84static Lisp_Object Qload_force_doc_strings; 84static Lisp_Object Qload_force_doc_strings;
85 85
86/* non-zero if inside `load' */
87int load_in_progress;
88static Lisp_Object Qload_in_progress; 86static Lisp_Object Qload_in_progress;
89 87
90/* Directory in which the sources were found. */
91Lisp_Object Vsource_directory;
92
93/* Search path and suffixes for files to be loaded. */
94Lisp_Object Vload_path, Vload_suffixes, Vload_file_rep_suffixes;
95
96/* File name of user's init file. */
97Lisp_Object Vuser_init_file;
98
99/* This is the user-visible association list that maps features to
100 lists of defs in their load files. */
101Lisp_Object Vload_history;
102
103/* This is used to build the load history. */
104Lisp_Object Vcurrent_load_list;
105
106/* List of files that were preloaded. */
107Lisp_Object Vpreloaded_file_list;
108
109/* Name of file actually being read by `load'. */
110Lisp_Object Vload_file_name;
111
112/* Function to use for reading, in `load' and friends. */
113Lisp_Object Vload_read_function;
114
115/* Non-nil means read recursive structures using #n= and #n# syntax. */
116Lisp_Object Vread_circle;
117
118/* The association list of objects read with the #n=object form. 88/* The association list of objects read with the #n=object form.
119 Each member of the list has the form (n . object), and is used to 89 Each member of the list has the form (n . object), and is used to
120 look up the object for the corresponding #n# construct. 90 look up the object for the corresponding #n# construct.
121 It must be set to nil before all top-level calls to read0. */ 91 It must be set to nil before all top-level calls to read0. */
122Lisp_Object read_objects; 92Lisp_Object read_objects;
123 93
124/* Nonzero means load should forcibly load all dynamic doc strings. */
125static int load_force_doc_strings;
126
127/* Nonzero means read should convert strings to unibyte. */
128static int load_convert_to_unibyte;
129
130/* Nonzero means READCHAR should read bytes one by one (not character) 94/* Nonzero means READCHAR should read bytes one by one (not character)
131 when READCHARFUN is Qget_file_char or Qget_emacs_mule_file_char. 95 when READCHARFUN is Qget_file_char or Qget_emacs_mule_file_char.
132 This is set to 1 by read1 temporarily while handling #@NUMBER. */ 96 This is set to 1 by read1 temporarily while handling #@NUMBER. */
133static int load_each_byte; 97static int load_each_byte;
134 98
135/* Function to use for loading an Emacs Lisp source file (not
136 compiled) instead of readevalloop. */
137Lisp_Object Vload_source_file_function;
138
139/* List of all DEFVAR_BOOL variables. Used by the byte optimizer. */
140Lisp_Object Vbyte_boolean_vars;
141
142/* Whether or not to add a `read-positions' property to symbols
143 read. */
144Lisp_Object Vread_with_symbol_positions;
145
146/* List of (SYMBOL . POSITION) accumulated so far. */
147Lisp_Object Vread_symbol_positions_list;
148
149/* List of descriptors now open for Fload. */ 99/* List of descriptors now open for Fload. */
150static Lisp_Object load_descriptor_list; 100static Lisp_Object load_descriptor_list;
151 101
@@ -189,25 +139,13 @@ static file_offset prev_saved_doc_string_position;
189 Fread initializes this to zero, so we need not specbind it 139 Fread initializes this to zero, so we need not specbind it
190 or worry about what happens to it when there is an error. */ 140 or worry about what happens to it when there is an error. */
191static int new_backquote_flag; 141static int new_backquote_flag;
192static Lisp_Object Vold_style_backquotes, Qold_style_backquotes; 142static Lisp_Object Qold_style_backquotes;
193 143
194/* A list of file names for files being loaded in Fload. Used to 144/* A list of file names for files being loaded in Fload. Used to
195 check for recursive loads. */ 145 check for recursive loads. */
196 146
197static Lisp_Object Vloads_in_progress; 147static Lisp_Object Vloads_in_progress;
198 148
199/* Non-zero means load dangerous compiled Lisp files. */
200
201int load_dangerous_libraries;
202
203/* Non-zero means force printing messages when loading Lisp files. */
204
205int force_load_messages;
206
207/* A regular expression used to detect files compiled with Emacs. */
208
209static Lisp_Object Vbytecomp_version_regexp;
210
211static int read_emacs_mule_char (int, int (*) (int, Lisp_Object), 149static int read_emacs_mule_char (int, int (*) (int, Lisp_Object),
212 Lisp_Object); 150 Lisp_Object);
213 151
@@ -3500,7 +3438,6 @@ read_list (int flag, register Lisp_Object readcharfun)
3500 } 3438 }
3501} 3439}
3502 3440
3503Lisp_Object Vobarray;
3504Lisp_Object initial_obarray; 3441Lisp_Object initial_obarray;
3505 3442
3506/* oblookup stores the bucket number here, for the sake of Funintern. */ 3443/* oblookup stores the bucket number here, for the sake of Funintern. */
@@ -4182,22 +4119,22 @@ syms_of_lread (void)
4182 defsubr (&Smapatoms); 4119 defsubr (&Smapatoms);
4183 defsubr (&Slocate_file_internal); 4120 defsubr (&Slocate_file_internal);
4184 4121
4185 DEFVAR_LISP ("obarray", &Vobarray, 4122 DEFVAR_LISP ("obarray", Vobarray,
4186 doc: /* Symbol table for use by `intern' and `read'. 4123 doc: /* Symbol table for use by `intern' and `read'.
4187It is a vector whose length ought to be prime for best results. 4124It is a vector whose length ought to be prime for best results.
4188The vector's contents don't make sense if examined from Lisp programs; 4125The vector's contents don't make sense if examined from Lisp programs;
4189to find all the symbols in an obarray, use `mapatoms'. */); 4126to find all the symbols in an obarray, use `mapatoms'. */);
4190 4127
4191 DEFVAR_LISP ("values", &Vvalues, 4128 DEFVAR_LISP ("values", Vvalues,
4192 doc: /* List of values of all expressions which were read, evaluated and printed. 4129 doc: /* List of values of all expressions which were read, evaluated and printed.
4193Order is reverse chronological. */); 4130Order is reverse chronological. */);
4194 4131
4195 DEFVAR_LISP ("standard-input", &Vstandard_input, 4132 DEFVAR_LISP ("standard-input", Vstandard_input,
4196 doc: /* Stream for read to get input from. 4133 doc: /* Stream for read to get input from.
4197See documentation of `read' for possible values. */); 4134See documentation of `read' for possible values. */);
4198 Vstandard_input = Qt; 4135 Vstandard_input = Qt;
4199 4136
4200 DEFVAR_LISP ("read-with-symbol-positions", &Vread_with_symbol_positions, 4137 DEFVAR_LISP ("read-with-symbol-positions", Vread_with_symbol_positions,
4201 doc: /* If non-nil, add position of read symbols to `read-symbol-positions-list'. 4138 doc: /* If non-nil, add position of read symbols to `read-symbol-positions-list'.
4202 4139
4203If this variable is a buffer, then only forms read from that buffer 4140If this variable is a buffer, then only forms read from that buffer
@@ -4211,7 +4148,7 @@ The positions are relative to the last call to `read' or
4211the toplevel; bind it instead. */); 4148the toplevel; bind it instead. */);
4212 Vread_with_symbol_positions = Qnil; 4149 Vread_with_symbol_positions = Qnil;
4213 4150
4214 DEFVAR_LISP ("read-symbol-positions-list", &Vread_symbol_positions_list, 4151 DEFVAR_LISP ("read-symbol-positions-list", Vread_symbol_positions_list,
4215 doc: /* A list mapping read symbols to their positions. 4152 doc: /* A list mapping read symbols to their positions.
4216This variable is modified during calls to `read' or 4153This variable is modified during calls to `read' or
4217`read-from-string', but only when `read-with-symbol-positions' is 4154`read-from-string', but only when `read-with-symbol-positions' is
@@ -4226,24 +4163,24 @@ read multiple times. The list is in the same order as the symbols
4226were read in. */); 4163were read in. */);
4227 Vread_symbol_positions_list = Qnil; 4164 Vread_symbol_positions_list = Qnil;
4228 4165
4229 DEFVAR_LISP ("read-circle", &Vread_circle, 4166 DEFVAR_LISP ("read-circle", Vread_circle,
4230 doc: /* Non-nil means read recursive structures using #N= and #N# syntax. */); 4167 doc: /* Non-nil means read recursive structures using #N= and #N# syntax. */);
4231 Vread_circle = Qt; 4168 Vread_circle = Qt;
4232 4169
4233 DEFVAR_LISP ("load-path", &Vload_path, 4170 DEFVAR_LISP ("load-path", Vload_path,
4234 doc: /* *List of directories to search for files to load. 4171 doc: /* *List of directories to search for files to load.
4235Each element is a string (directory name) or nil (try default directory). 4172Each element is a string (directory name) or nil (try default directory).
4236Initialized based on EMACSLOADPATH environment variable, if any, 4173Initialized based on EMACSLOADPATH environment variable, if any,
4237otherwise to default specified by file `epaths.h' when Emacs was built. */); 4174otherwise to default specified by file `epaths.h' when Emacs was built. */);
4238 4175
4239 DEFVAR_LISP ("load-suffixes", &Vload_suffixes, 4176 DEFVAR_LISP ("load-suffixes", Vload_suffixes,
4240 doc: /* List of suffixes for (compiled or source) Emacs Lisp files. 4177 doc: /* List of suffixes for (compiled or source) Emacs Lisp files.
4241This list should not include the empty string. 4178This list should not include the empty string.
4242`load' and related functions try to append these suffixes, in order, 4179`load' and related functions try to append these suffixes, in order,
4243to the specified file name if a Lisp suffix is allowed or required. */); 4180to the specified file name if a Lisp suffix is allowed or required. */);
4244 Vload_suffixes = Fcons (make_pure_c_string (".elc"), 4181 Vload_suffixes = Fcons (make_pure_c_string (".elc"),
4245 Fcons (make_pure_c_string (".el"), Qnil)); 4182 Fcons (make_pure_c_string (".el"), Qnil));
4246 DEFVAR_LISP ("load-file-rep-suffixes", &Vload_file_rep_suffixes, 4183 DEFVAR_LISP ("load-file-rep-suffixes", Vload_file_rep_suffixes,
4247 doc: /* List of suffixes that indicate representations of \ 4184 doc: /* List of suffixes that indicate representations of \
4248the same file. 4185the same file.
4249This list should normally start with the empty string. 4186This list should normally start with the empty string.
@@ -4258,12 +4195,12 @@ the loading functions recognize as compression suffixes, you should
4258customize `jka-compr-load-suffixes' rather than the present variable. */); 4195customize `jka-compr-load-suffixes' rather than the present variable. */);
4259 Vload_file_rep_suffixes = Fcons (empty_unibyte_string, Qnil); 4196 Vload_file_rep_suffixes = Fcons (empty_unibyte_string, Qnil);
4260 4197
4261 DEFVAR_BOOL ("load-in-progress", &load_in_progress, 4198 DEFVAR_BOOL ("load-in-progress", load_in_progress,
4262 doc: /* Non-nil if inside of `load'. */); 4199 doc: /* Non-nil if inside of `load'. */);
4263 Qload_in_progress = intern_c_string ("load-in-progress"); 4200 Qload_in_progress = intern_c_string ("load-in-progress");
4264 staticpro (&Qload_in_progress); 4201 staticpro (&Qload_in_progress);
4265 4202
4266 DEFVAR_LISP ("after-load-alist", &Vafter_load_alist, 4203 DEFVAR_LISP ("after-load-alist", Vafter_load_alist,
4267 doc: /* An alist of expressions to be evalled when particular files are loaded. 4204 doc: /* An alist of expressions to be evalled when particular files are loaded.
4268Each element looks like (REGEXP-OR-FEATURE FORMS...). 4205Each element looks like (REGEXP-OR-FEATURE FORMS...).
4269 4206
@@ -4278,7 +4215,7 @@ An error in FORMS does not undo the load, but does prevent execution of
4278the rest of the FORMS. */); 4215the rest of the FORMS. */);
4279 Vafter_load_alist = Qnil; 4216 Vafter_load_alist = Qnil;
4280 4217
4281 DEFVAR_LISP ("load-history", &Vload_history, 4218 DEFVAR_LISP ("load-history", Vload_history,
4282 doc: /* Alist mapping loaded file names to symbols and features. 4219 doc: /* Alist mapping loaded file names to symbols and features.
4283Each alist element should be a list (FILE-NAME ENTRIES...), where 4220Each alist element should be a list (FILE-NAME ENTRIES...), where
4284FILE-NAME is the name of a file that has been loaded into Emacs. 4221FILE-NAME is the name of a file that has been loaded into Emacs.
@@ -4298,11 +4235,11 @@ During preloading, the file name recorded is relative to the main Lisp
4298directory. These file names are converted to absolute at startup. */); 4235directory. These file names are converted to absolute at startup. */);
4299 Vload_history = Qnil; 4236 Vload_history = Qnil;
4300 4237
4301 DEFVAR_LISP ("load-file-name", &Vload_file_name, 4238 DEFVAR_LISP ("load-file-name", Vload_file_name,
4302 doc: /* Full name of file being loaded by `load'. */); 4239 doc: /* Full name of file being loaded by `load'. */);
4303 Vload_file_name = Qnil; 4240 Vload_file_name = Qnil;
4304 4241
4305 DEFVAR_LISP ("user-init-file", &Vuser_init_file, 4242 DEFVAR_LISP ("user-init-file", Vuser_init_file,
4306 doc: /* File name, including directory, of user's initialization file. 4243 doc: /* File name, including directory, of user's initialization file.
4307If the file loaded had extension `.elc', and the corresponding source file 4244If the file loaded had extension `.elc', and the corresponding source file
4308exists, this variable contains the name of source file, suitable for use 4245exists, this variable contains the name of source file, suitable for use
@@ -4311,16 +4248,16 @@ While Emacs loads and evaluates the init file, value is the real name
4311of the file, regardless of whether or not it has the `.elc' extension. */); 4248of the file, regardless of whether or not it has the `.elc' extension. */);
4312 Vuser_init_file = Qnil; 4249 Vuser_init_file = Qnil;
4313 4250
4314 DEFVAR_LISP ("current-load-list", &Vcurrent_load_list, 4251 DEFVAR_LISP ("current-load-list", Vcurrent_load_list,
4315 doc: /* Used for internal purposes by `load'. */); 4252 doc: /* Used for internal purposes by `load'. */);
4316 Vcurrent_load_list = Qnil; 4253 Vcurrent_load_list = Qnil;
4317 4254
4318 DEFVAR_LISP ("load-read-function", &Vload_read_function, 4255 DEFVAR_LISP ("load-read-function", Vload_read_function,
4319 doc: /* Function used by `load' and `eval-region' for reading expressions. 4256 doc: /* Function used by `load' and `eval-region' for reading expressions.
4320The default is nil, which means use the function `read'. */); 4257The default is nil, which means use the function `read'. */);
4321 Vload_read_function = Qnil; 4258 Vload_read_function = Qnil;
4322 4259
4323 DEFVAR_LISP ("load-source-file-function", &Vload_source_file_function, 4260 DEFVAR_LISP ("load-source-file-function", Vload_source_file_function,
4324 doc: /* Function called in `load' for loading an Emacs Lisp source file. 4261 doc: /* Function called in `load' for loading an Emacs Lisp source file.
4325This function is for doing code conversion before reading the source file. 4262This function is for doing code conversion before reading the source file.
4326If nil, loading is done without any code conversion. 4263If nil, loading is done without any code conversion.
@@ -4329,45 +4266,45 @@ Arguments are FULLNAME, FILE, NOERROR, NOMESSAGE, where
4329See `load' for the meaning of the remaining arguments. */); 4266See `load' for the meaning of the remaining arguments. */);
4330 Vload_source_file_function = Qnil; 4267 Vload_source_file_function = Qnil;
4331 4268
4332 DEFVAR_BOOL ("load-force-doc-strings", &load_force_doc_strings, 4269 DEFVAR_BOOL ("load-force-doc-strings", load_force_doc_strings,
4333 doc: /* Non-nil means `load' should force-load all dynamic doc strings. 4270 doc: /* Non-nil means `load' should force-load all dynamic doc strings.
4334This is useful when the file being loaded is a temporary copy. */); 4271This is useful when the file being loaded is a temporary copy. */);
4335 load_force_doc_strings = 0; 4272 load_force_doc_strings = 0;
4336 4273
4337 DEFVAR_BOOL ("load-convert-to-unibyte", &load_convert_to_unibyte, 4274 DEFVAR_BOOL ("load-convert-to-unibyte", load_convert_to_unibyte,
4338 doc: /* Non-nil means `read' converts strings to unibyte whenever possible. 4275 doc: /* Non-nil means `read' converts strings to unibyte whenever possible.
4339This is normally bound by `load' and `eval-buffer' to control `read', 4276This is normally bound by `load' and `eval-buffer' to control `read',
4340and is not meant for users to change. */); 4277and is not meant for users to change. */);
4341 load_convert_to_unibyte = 0; 4278 load_convert_to_unibyte = 0;
4342 4279
4343 DEFVAR_LISP ("source-directory", &Vsource_directory, 4280 DEFVAR_LISP ("source-directory", Vsource_directory,
4344 doc: /* Directory in which Emacs sources were found when Emacs was built. 4281 doc: /* Directory in which Emacs sources were found when Emacs was built.
4345You cannot count on them to still be there! */); 4282You cannot count on them to still be there! */);
4346 Vsource_directory 4283 Vsource_directory
4347 = Fexpand_file_name (build_string ("../"), 4284 = Fexpand_file_name (build_string ("../"),
4348 Fcar (decode_env_path (0, PATH_DUMPLOADSEARCH))); 4285 Fcar (decode_env_path (0, PATH_DUMPLOADSEARCH)));
4349 4286
4350 DEFVAR_LISP ("preloaded-file-list", &Vpreloaded_file_list, 4287 DEFVAR_LISP ("preloaded-file-list", Vpreloaded_file_list,
4351 doc: /* List of files that were preloaded (when dumping Emacs). */); 4288 doc: /* List of files that were preloaded (when dumping Emacs). */);
4352 Vpreloaded_file_list = Qnil; 4289 Vpreloaded_file_list = Qnil;
4353 4290
4354 DEFVAR_LISP ("byte-boolean-vars", &Vbyte_boolean_vars, 4291 DEFVAR_LISP ("byte-boolean-vars", Vbyte_boolean_vars,
4355 doc: /* List of all DEFVAR_BOOL variables, used by the byte code optimizer. */); 4292 doc: /* List of all DEFVAR_BOOL variables, used by the byte code optimizer. */);
4356 Vbyte_boolean_vars = Qnil; 4293 Vbyte_boolean_vars = Qnil;
4357 4294
4358 DEFVAR_BOOL ("load-dangerous-libraries", &load_dangerous_libraries, 4295 DEFVAR_BOOL ("load-dangerous-libraries", load_dangerous_libraries,
4359 doc: /* Non-nil means load dangerous compiled Lisp files. 4296 doc: /* Non-nil means load dangerous compiled Lisp files.
4360Some versions of XEmacs use different byte codes than Emacs. These 4297Some versions of XEmacs use different byte codes than Emacs. These
4361incompatible byte codes can make Emacs crash when it tries to execute 4298incompatible byte codes can make Emacs crash when it tries to execute
4362them. */); 4299them. */);
4363 load_dangerous_libraries = 0; 4300 load_dangerous_libraries = 0;
4364 4301
4365 DEFVAR_BOOL ("force-load-messages", &force_load_messages, 4302 DEFVAR_BOOL ("force-load-messages", force_load_messages,
4366 doc: /* Non-nil means force printing messages when loading Lisp files. 4303 doc: /* Non-nil means force printing messages when loading Lisp files.
4367This overrides the value of the NOMESSAGE argument to `load'. */); 4304This overrides the value of the NOMESSAGE argument to `load'. */);
4368 force_load_messages = 0; 4305 force_load_messages = 0;
4369 4306
4370 DEFVAR_LISP ("bytecomp-version-regexp", &Vbytecomp_version_regexp, 4307 DEFVAR_LISP ("bytecomp-version-regexp", Vbytecomp_version_regexp,
4371 doc: /* Regular expression matching safe to load compiled Lisp files. 4308 doc: /* Regular expression matching safe to load compiled Lisp files.
4372When Emacs loads a compiled Lisp file, it reads the first 512 bytes 4309When Emacs loads a compiled Lisp file, it reads the first 512 bytes
4373from the file, and matches them against this regular expression. 4310from the file, and matches them against this regular expression.
@@ -4376,11 +4313,11 @@ to load. See also `load-dangerous-libraries'. */);
4376 Vbytecomp_version_regexp 4313 Vbytecomp_version_regexp
4377 = make_pure_c_string ("^;;;.\\(in Emacs version\\|bytecomp version FSF\\)"); 4314 = make_pure_c_string ("^;;;.\\(in Emacs version\\|bytecomp version FSF\\)");
4378 4315
4379 DEFVAR_LISP ("eval-buffer-list", &Veval_buffer_list, 4316 DEFVAR_LISP ("eval-buffer-list", Veval_buffer_list,
4380 doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'. */); 4317 doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'. */);
4381 Veval_buffer_list = Qnil; 4318 Veval_buffer_list = Qnil;
4382 4319
4383 DEFVAR_LISP ("old-style-backquotes", &Vold_style_backquotes, 4320 DEFVAR_LISP ("old-style-backquotes", Vold_style_backquotes,
4384 doc: /* Set to non-nil when `read' encounters an old-style backquote. */); 4321 doc: /* Set to non-nil when `read' encounters an old-style backquote. */);
4385 Vold_style_backquotes = Qnil; 4322 Vold_style_backquotes = Qnil;
4386 Qold_style_backquotes = intern_c_string ("old-style-backquotes"); 4323 Qold_style_backquotes = intern_c_string ("old-style-backquotes");
diff --git a/src/macros.c b/src/macros.c
index c8e4a6bb421..35ff5552466 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -29,14 +29,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
29 29
30Lisp_Object Qexecute_kbd_macro, Qkbd_macro_termination_hook; 30Lisp_Object Qexecute_kbd_macro, Qkbd_macro_termination_hook;
31 31
32/* Kbd macro currently being executed (a string or vector). */
33
34Lisp_Object Vexecuting_kbd_macro;
35
36/* Index of next character to fetch from that macro. */
37
38EMACS_INT executing_kbd_macro_index;
39
40/* Number of successful iterations so far 32/* Number of successful iterations so far
41 for innermost keyboard macro. 33 for innermost keyboard macro.
42 This is not bound at each level, 34 This is not bound at each level,
@@ -384,11 +376,11 @@ syms_of_macros (void)
384The value is the symbol `append' while appending to the definition of 376The value is the symbol `append' while appending to the definition of
385an existing macro. */); 377an existing macro. */);
386 378
387 DEFVAR_LISP ("executing-kbd-macro", &Vexecuting_kbd_macro, 379 DEFVAR_LISP ("executing-kbd-macro", Vexecuting_kbd_macro,
388 doc: /* Currently executing keyboard macro (string or vector). 380 doc: /* Currently executing keyboard macro (string or vector).
389This is nil when not executing a keyboard macro. */); 381This is nil when not executing a keyboard macro. */);
390 382
391 DEFVAR_INT ("executing-kbd-macro-index", &executing_kbd_macro_index, 383 DEFVAR_INT ("executing-kbd-macro-index", executing_kbd_macro_index,
392 doc: /* Index in currently executing keyboard macro; undefined if none executing. */); 384 doc: /* Index in currently executing keyboard macro; undefined if none executing. */);
393 385
394 DEFVAR_KBOARD ("last-kbd-macro", Vlast_kbd_macro, 386 DEFVAR_KBOARD ("last-kbd-macro", Vlast_kbd_macro,
diff --git a/src/macros.h b/src/macros.h
index aa8c1375070..5fd66db6011 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -18,14 +18,6 @@ You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ 18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19 19
20 20
21/* Kbd macro currently being executed (a string or vector). */
22
23extern Lisp_Object Vexecuting_kbd_macro;
24
25/* Index of next character to fetch from that macro. */
26
27extern EMACS_INT executing_kbd_macro_index;
28
29/* Number of successful iterations so far 21/* Number of successful iterations so far
30 for innermost keyboard macro. 22 for innermost keyboard macro.
31 This is not bound at each level, 23 This is not bound at each level,
diff --git a/src/marker.c b/src/marker.c
index f22b874fc8d..76e645eb9e3 100644
--- a/src/marker.c
+++ b/src/marker.c
@@ -34,10 +34,6 @@ static int cached_modiff;
34 34
35static void byte_char_debug_check (struct buffer *, EMACS_INT, EMACS_INT); 35static void byte_char_debug_check (struct buffer *, EMACS_INT, EMACS_INT);
36 36
37/* Nonzero means enable debugging checks on byte/char correspondences. */
38
39static int byte_debug_flag;
40
41void 37void
42clear_charpos_cache (struct buffer *b) 38clear_charpos_cache (struct buffer *b)
43{ 39{
@@ -897,7 +893,7 @@ syms_of_marker (void)
897 defsubr (&Sset_marker_insertion_type); 893 defsubr (&Sset_marker_insertion_type);
898 defsubr (&Sbuffer_has_markers_at); 894 defsubr (&Sbuffer_has_markers_at);
899 895
900 DEFVAR_BOOL ("byte-debug-flag", &byte_debug_flag, 896 DEFVAR_BOOL ("byte-debug-flag", byte_debug_flag,
901 doc: /* Non-nil enables debugging checks in byte/char position conversions. */); 897 doc: /* Non-nil enables debugging checks in byte/char position conversions. */);
902 byte_debug_flag = 0; 898 byte_debug_flag = 0;
903} 899}
diff --git a/src/menu.h b/src/menu.h
index 866214e7356..23c758e8003 100644
--- a/src/menu.h
+++ b/src/menu.h
@@ -19,8 +19,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19#ifndef MENU_H 19#ifndef MENU_H
20#define MENU_H 20#define MENU_H
21 21
22extern Lisp_Object Vmenu_updating_frame;
23
24extern void x_set_menu_bar_lines (struct frame *f, 22extern void x_set_menu_bar_lines (struct frame *f,
25 Lisp_Object value, 23 Lisp_Object value,
26 Lisp_Object oldval); 24 Lisp_Object oldval);
diff --git a/src/minibuf.c b/src/minibuf.c
index 7ae6e419262..34854cfa420 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -54,83 +54,25 @@ int minibuf_level;
54 54
55/* The maximum length of a minibuffer history. */ 55/* The maximum length of a minibuffer history. */
56 56
57Lisp_Object Qhistory_length, Vhistory_length; 57Lisp_Object Qhistory_length;
58
59/* No duplicates in history. */
60
61int history_delete_duplicates;
62
63/* Non-nil means add new input to history. */
64
65Lisp_Object Vhistory_add_new_input;
66 58
67/* Fread_minibuffer leaves the input here as a string. */ 59/* Fread_minibuffer leaves the input here as a string. */
68 60
69Lisp_Object last_minibuf_string; 61Lisp_Object last_minibuf_string;
70 62
71/* Nonzero means let functions called when within a minibuffer
72 invoke recursive minibuffers (to read arguments, or whatever) */
73
74int enable_recursive_minibuffers;
75
76/* Nonzero means don't ignore text properties
77 in Fread_from_minibuffer. */
78
79int minibuffer_allow_text_properties;
80
81/* help-form is bound to this while in the minibuffer. */
82
83Lisp_Object Vminibuffer_help_form;
84
85/* Variable which is the history list to add minibuffer values to. */
86
87Lisp_Object Vminibuffer_history_variable;
88
89/* Current position in the history list (adjusted by M-n and M-p). */
90
91Lisp_Object Vminibuffer_history_position;
92
93/* Text properties that are added to minibuffer prompts.
94 These are in addition to the basic `field' property, and stickiness
95 properties. */
96
97Lisp_Object Vminibuffer_prompt_properties;
98
99Lisp_Object Qminibuffer_history, Qbuffer_name_history; 63Lisp_Object Qminibuffer_history, Qbuffer_name_history;
100 64
101Lisp_Object Qread_file_name_internal; 65Lisp_Object Qread_file_name_internal;
102 66
103/* Normal hooks for entry to and exit from minibuffer. */ 67/* Normal hooks for entry to and exit from minibuffer. */
104 68
105Lisp_Object Qminibuffer_setup_hook, Vminibuffer_setup_hook; 69Lisp_Object Qminibuffer_setup_hook;
106Lisp_Object Qminibuffer_exit_hook, Vminibuffer_exit_hook; 70Lisp_Object Qminibuffer_exit_hook;
107 71
108/* Function to call to read a buffer name. */
109Lisp_Object Vread_buffer_function;
110
111/* Nonzero means completion ignores case. */
112
113int completion_ignore_case;
114Lisp_Object Qcompletion_ignore_case; 72Lisp_Object Qcompletion_ignore_case;
115int read_buffer_completion_ignore_case; 73Lisp_Object Qminibuffer_completion_table;
116 74Lisp_Object Qminibuffer_completion_predicate;
117/* List of regexps that should restrict possible completions. */ 75Lisp_Object Qminibuffer_completion_confirm;
118
119Lisp_Object Vcompletion_regexp_list;
120
121/* Nonzero means raise the minibuffer frame when the minibuffer
122 is entered. */
123
124int minibuffer_auto_raise;
125
126/* Keymap for reading expressions. */
127Lisp_Object Vread_expression_map;
128
129Lisp_Object Vminibuffer_completion_table, Qminibuffer_completion_table;
130Lisp_Object Vminibuffer_completion_predicate, Qminibuffer_completion_predicate;
131Lisp_Object Vminibuffer_completion_confirm, Qminibuffer_completion_confirm;
132Lisp_Object Vminibuffer_completing_file_name;
133
134Lisp_Object Quser_variable_p; 76Lisp_Object Quser_variable_p;
135 77
136Lisp_Object Qminibuffer_default; 78Lisp_Object Qminibuffer_default;
@@ -2077,45 +2019,45 @@ syms_of_minibuf (void)
2077 Qread_expression_history = intern_c_string ("read-expression-history"); 2019 Qread_expression_history = intern_c_string ("read-expression-history");
2078 staticpro (&Qread_expression_history); 2020 staticpro (&Qread_expression_history);
2079 2021
2080 DEFVAR_LISP ("read-buffer-function", &Vread_buffer_function, 2022 DEFVAR_LISP ("read-buffer-function", Vread_buffer_function,
2081 doc: /* If this is non-nil, `read-buffer' does its work by calling this function. 2023 doc: /* If this is non-nil, `read-buffer' does its work by calling this function.
2082The function is called with the arguments passed to `read-buffer'. */); 2024The function is called with the arguments passed to `read-buffer'. */);
2083 Vread_buffer_function = Qnil; 2025 Vread_buffer_function = Qnil;
2084 2026
2085 DEFVAR_BOOL ("read-buffer-completion-ignore-case", 2027 DEFVAR_BOOL ("read-buffer-completion-ignore-case",
2086 &read_buffer_completion_ignore_case, 2028 read_buffer_completion_ignore_case,
2087 doc: /* *Non-nil means completion ignores case when reading a buffer name. */); 2029 doc: /* *Non-nil means completion ignores case when reading a buffer name. */);
2088 read_buffer_completion_ignore_case = 0; 2030 read_buffer_completion_ignore_case = 0;
2089 2031
2090 DEFVAR_LISP ("minibuffer-setup-hook", &Vminibuffer_setup_hook, 2032 DEFVAR_LISP ("minibuffer-setup-hook", Vminibuffer_setup_hook,
2091 doc: /* Normal hook run just after entry to minibuffer. */); 2033 doc: /* Normal hook run just after entry to minibuffer. */);
2092 Vminibuffer_setup_hook = Qnil; 2034 Vminibuffer_setup_hook = Qnil;
2093 2035
2094 DEFVAR_LISP ("minibuffer-exit-hook", &Vminibuffer_exit_hook, 2036 DEFVAR_LISP ("minibuffer-exit-hook", Vminibuffer_exit_hook,
2095 doc: /* Normal hook run just after exit from minibuffer. */); 2037 doc: /* Normal hook run just after exit from minibuffer. */);
2096 Vminibuffer_exit_hook = Qnil; 2038 Vminibuffer_exit_hook = Qnil;
2097 2039
2098 DEFVAR_LISP ("history-length", &Vhistory_length, 2040 DEFVAR_LISP ("history-length", Vhistory_length,
2099 doc: /* *Maximum length for history lists before truncation takes place. 2041 doc: /* *Maximum length for history lists before truncation takes place.
2100A number means that length; t means infinite. Truncation takes place 2042A number means that length; t means infinite. Truncation takes place
2101just after a new element is inserted. Setting the `history-length' 2043just after a new element is inserted. Setting the `history-length'
2102property of a history variable overrides this default. */); 2044property of a history variable overrides this default. */);
2103 XSETFASTINT (Vhistory_length, 30); 2045 XSETFASTINT (Vhistory_length, 30);
2104 2046
2105 DEFVAR_BOOL ("history-delete-duplicates", &history_delete_duplicates, 2047 DEFVAR_BOOL ("history-delete-duplicates", history_delete_duplicates,
2106 doc: /* *Non-nil means to delete duplicates in history. 2048 doc: /* *Non-nil means to delete duplicates in history.
2107If set to t when adding a new history element, all previous identical 2049If set to t when adding a new history element, all previous identical
2108elements are deleted from the history list. */); 2050elements are deleted from the history list. */);
2109 history_delete_duplicates = 0; 2051 history_delete_duplicates = 0;
2110 2052
2111 DEFVAR_LISP ("history-add-new-input", &Vhistory_add_new_input, 2053 DEFVAR_LISP ("history-add-new-input", Vhistory_add_new_input,
2112 doc: /* *Non-nil means to add new elements in history. 2054 doc: /* *Non-nil means to add new elements in history.
2113If set to nil, minibuffer reading functions don't add new elements to the 2055If set to nil, minibuffer reading functions don't add new elements to the
2114history list, so it is possible to do this afterwards by calling 2056history list, so it is possible to do this afterwards by calling
2115`add-to-history' explicitly. */); 2057`add-to-history' explicitly. */);
2116 Vhistory_add_new_input = Qt; 2058 Vhistory_add_new_input = Qt;
2117 2059
2118 DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case, 2060 DEFVAR_BOOL ("completion-ignore-case", completion_ignore_case,
2119 doc: /* Non-nil means don't consider case significant in completion. 2061 doc: /* Non-nil means don't consider case significant in completion.
2120For file-name completion, `read-file-name-completion-ignore-case' 2062For file-name completion, `read-file-name-completion-ignore-case'
2121controls the behavior, rather than this variable. 2063controls the behavior, rather than this variable.
@@ -2123,12 +2065,12 @@ For buffer name completion, `read-buffer-completion-ignore-case'
2123controls the behavior, rather than this variable. */); 2065controls the behavior, rather than this variable. */);
2124 completion_ignore_case = 0; 2066 completion_ignore_case = 0;
2125 2067
2126 DEFVAR_BOOL ("enable-recursive-minibuffers", &enable_recursive_minibuffers, 2068 DEFVAR_BOOL ("enable-recursive-minibuffers", enable_recursive_minibuffers,
2127 doc: /* *Non-nil means to allow minibuffer commands while in the minibuffer. 2069 doc: /* *Non-nil means to allow minibuffer commands while in the minibuffer.
2128This variable makes a difference whenever the minibuffer window is active. */); 2070This variable makes a difference whenever the minibuffer window is active. */);
2129 enable_recursive_minibuffers = 0; 2071 enable_recursive_minibuffers = 0;
2130 2072
2131 DEFVAR_LISP ("minibuffer-completion-table", &Vminibuffer_completion_table, 2073 DEFVAR_LISP ("minibuffer-completion-table", Vminibuffer_completion_table,
2132 doc: /* Alist or obarray used for completion in the minibuffer. 2074 doc: /* Alist or obarray used for completion in the minibuffer.
2133This becomes the ALIST argument to `try-completion' and `all-completions'. 2075This becomes the ALIST argument to `try-completion' and `all-completions'.
2134The value can also be a list of strings or a hash table. 2076The value can also be a list of strings or a hash table.
@@ -2143,11 +2085,11 @@ CODE can be nil, t or `lambda':
2143 lambda -- return t if STRING is a valid completion as it stands. */); 2085 lambda -- return t if STRING is a valid completion as it stands. */);
2144 Vminibuffer_completion_table = Qnil; 2086 Vminibuffer_completion_table = Qnil;
2145 2087
2146 DEFVAR_LISP ("minibuffer-completion-predicate", &Vminibuffer_completion_predicate, 2088 DEFVAR_LISP ("minibuffer-completion-predicate", Vminibuffer_completion_predicate,
2147 doc: /* Within call to `completing-read', this holds the PREDICATE argument. */); 2089 doc: /* Within call to `completing-read', this holds the PREDICATE argument. */);
2148 Vminibuffer_completion_predicate = Qnil; 2090 Vminibuffer_completion_predicate = Qnil;
2149 2091
2150 DEFVAR_LISP ("minibuffer-completion-confirm", &Vminibuffer_completion_confirm, 2092 DEFVAR_LISP ("minibuffer-completion-confirm", Vminibuffer_completion_confirm,
2151 doc: /* Whether to demand confirmation of completion before exiting minibuffer. 2093 doc: /* Whether to demand confirmation of completion before exiting minibuffer.
2152If nil, confirmation is not required. 2094If nil, confirmation is not required.
2153If the value is `confirm', the user may exit with an input that is not 2095If the value is `confirm', the user may exit with an input that is not
@@ -2159,15 +2101,15 @@ If the value is `confirm-after-completion', the user may exit with an
2159 Vminibuffer_completion_confirm = Qnil; 2101 Vminibuffer_completion_confirm = Qnil;
2160 2102
2161 DEFVAR_LISP ("minibuffer-completing-file-name", 2103 DEFVAR_LISP ("minibuffer-completing-file-name",
2162 &Vminibuffer_completing_file_name, 2104 Vminibuffer_completing_file_name,
2163 doc: /* Non-nil means completing file names. */); 2105 doc: /* Non-nil means completing file names. */);
2164 Vminibuffer_completing_file_name = Qnil; 2106 Vminibuffer_completing_file_name = Qnil;
2165 2107
2166 DEFVAR_LISP ("minibuffer-help-form", &Vminibuffer_help_form, 2108 DEFVAR_LISP ("minibuffer-help-form", Vminibuffer_help_form,
2167 doc: /* Value that `help-form' takes on inside the minibuffer. */); 2109 doc: /* Value that `help-form' takes on inside the minibuffer. */);
2168 Vminibuffer_help_form = Qnil; 2110 Vminibuffer_help_form = Qnil;
2169 2111
2170 DEFVAR_LISP ("minibuffer-history-variable", &Vminibuffer_history_variable, 2112 DEFVAR_LISP ("minibuffer-history-variable", Vminibuffer_history_variable,
2171 doc: /* History list symbol to add minibuffer values to. 2113 doc: /* History list symbol to add minibuffer values to.
2172Each string of minibuffer input, as it appears on exit from the minibuffer, 2114Each string of minibuffer input, as it appears on exit from the minibuffer,
2173is added with 2115is added with
@@ -2175,16 +2117,16 @@ is added with
2175 (cons STRING (symbol-value minibuffer-history-variable))) */); 2117 (cons STRING (symbol-value minibuffer-history-variable))) */);
2176 XSETFASTINT (Vminibuffer_history_variable, 0); 2118 XSETFASTINT (Vminibuffer_history_variable, 0);
2177 2119
2178 DEFVAR_LISP ("minibuffer-history-position", &Vminibuffer_history_position, 2120 DEFVAR_LISP ("minibuffer-history-position", Vminibuffer_history_position,
2179 doc: /* Current position of redoing in the history list. */); 2121 doc: /* Current position of redoing in the history list. */);
2180 Vminibuffer_history_position = Qnil; 2122 Vminibuffer_history_position = Qnil;
2181 2123
2182 DEFVAR_BOOL ("minibuffer-auto-raise", &minibuffer_auto_raise, 2124 DEFVAR_BOOL ("minibuffer-auto-raise", minibuffer_auto_raise,
2183 doc: /* *Non-nil means entering the minibuffer raises the minibuffer's frame. 2125 doc: /* *Non-nil means entering the minibuffer raises the minibuffer's frame.
2184Some uses of the echo area also raise that frame (since they use it too). */); 2126Some uses of the echo area also raise that frame (since they use it too). */);
2185 minibuffer_auto_raise = 0; 2127 minibuffer_auto_raise = 0;
2186 2128
2187 DEFVAR_LISP ("completion-regexp-list", &Vcompletion_regexp_list, 2129 DEFVAR_LISP ("completion-regexp-list", Vcompletion_regexp_list,
2188 doc: /* List of regexps that should restrict possible completions. 2130 doc: /* List of regexps that should restrict possible completions.
2189The basic completion functions only consider a completion acceptable 2131The basic completion functions only consider a completion acceptable
2190if it matches all regular expressions in this list, with 2132if it matches all regular expressions in this list, with
@@ -2194,14 +2136,14 @@ functions. */);
2194 Vcompletion_regexp_list = Qnil; 2136 Vcompletion_regexp_list = Qnil;
2195 2137
2196 DEFVAR_BOOL ("minibuffer-allow-text-properties", 2138 DEFVAR_BOOL ("minibuffer-allow-text-properties",
2197 &minibuffer_allow_text_properties, 2139 minibuffer_allow_text_properties,
2198 doc: /* Non-nil means `read-from-minibuffer' should not discard text properties. 2140 doc: /* Non-nil means `read-from-minibuffer' should not discard text properties.
2199This also affects `read-string', but it does not affect `read-minibuffer', 2141This also affects `read-string', but it does not affect `read-minibuffer',
2200`read-no-blanks-input', or any of the functions that do minibuffer input 2142`read-no-blanks-input', or any of the functions that do minibuffer input
2201with completion; they always discard text properties. */); 2143with completion; they always discard text properties. */);
2202 minibuffer_allow_text_properties = 0; 2144 minibuffer_allow_text_properties = 0;
2203 2145
2204 DEFVAR_LISP ("minibuffer-prompt-properties", &Vminibuffer_prompt_properties, 2146 DEFVAR_LISP ("minibuffer-prompt-properties", Vminibuffer_prompt_properties,
2205 doc: /* Text properties that are added to minibuffer prompts. 2147 doc: /* Text properties that are added to minibuffer prompts.
2206These are in addition to the basic `field' property, and stickiness 2148These are in addition to the basic `field' property, and stickiness
2207properties. */); 2149properties. */);
@@ -2210,7 +2152,7 @@ properties. */);
2210 Vminibuffer_prompt_properties 2152 Vminibuffer_prompt_properties
2211 = Fcons (intern_c_string ("read-only"), Fcons (Qt, Qnil)); 2153 = Fcons (intern_c_string ("read-only"), Fcons (Qt, Qnil));
2212 2154
2213 DEFVAR_LISP ("read-expression-map", &Vread_expression_map, 2155 DEFVAR_LISP ("read-expression-map", Vread_expression_map,
2214 doc: /* Minibuffer keymap used for reading Lisp expressions. */); 2156 doc: /* Minibuffer keymap used for reading Lisp expressions. */);
2215 Vread_expression_map = Qnil; 2157 Vread_expression_map = Qnil;
2216 2158
diff --git a/src/msdos.c b/src/msdos.c
index 4bd933527b2..75cc7605f3c 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -404,9 +404,6 @@ static unsigned long screen_old_address = 0;
404/* Segment and offset of the virtual screen. If 0, DOS/V is NOT loaded. */ 404/* Segment and offset of the virtual screen. If 0, DOS/V is NOT loaded. */
405static unsigned short screen_virtual_segment = 0; 405static unsigned short screen_virtual_segment = 0;
406static unsigned short screen_virtual_offset = 0; 406static unsigned short screen_virtual_offset = 0;
407/* A flag to control how to display unibyte 8-bit characters. */
408extern int unibyte_display_via_language_environment;
409
410extern Lisp_Object Qcursor_type; 407extern Lisp_Object Qcursor_type;
411extern Lisp_Object Qbar, Qhbar; 408extern Lisp_Object Qbar, Qhbar;
412 409
@@ -846,7 +843,6 @@ IT_set_face (int face)
846 accomodate the screen attribute byte. */ 843 accomodate the screen attribute byte. */
847#define MAX_SCREEN_BUF 160*2 844#define MAX_SCREEN_BUF 160*2
848 845
849Lisp_Object Vdos_unsupported_char_glyph;
850extern unsigned char *encode_terminal_code (struct glyph *, int, 846extern unsigned char *encode_terminal_code (struct glyph *, int,
851 struct coding_system *); 847 struct coding_system *);
852static void 848static void
@@ -4226,7 +4222,7 @@ syms_of_msdos (void)
4226 Qreverse = intern_c_string ("reverse"); 4222 Qreverse = intern_c_string ("reverse");
4227 staticpro (&Qreverse); 4223 staticpro (&Qreverse);
4228 4224
4229 DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph, 4225 DEFVAR_LISP ("dos-unsupported-char-glyph", Vdos_unsupported_char_glyph,
4230 doc: /* *Glyph to display instead of chars not supported by current codepage. 4226 doc: /* *Glyph to display instead of chars not supported by current codepage.
4231This variable is used only by MS-DOS terminals. */); 4227This variable is used only by MS-DOS terminals. */);
4232 Vdos_unsupported_char_glyph = make_number ('\177'); 4228 Vdos_unsupported_char_glyph = make_number ('\177');
diff --git a/src/print.c b/src/print.c
index bb9dd7102aa..3afbd223a47 100644
--- a/src/print.c
+++ b/src/print.c
@@ -37,13 +37,13 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
37#include "termhooks.h" /* For struct terminal. */ 37#include "termhooks.h" /* For struct terminal. */
38#include "font.h" 38#include "font.h"
39 39
40Lisp_Object Vstandard_output, Qstandard_output; 40Lisp_Object Qstandard_output;
41 41
42Lisp_Object Qtemp_buffer_setup_hook; 42Lisp_Object Qtemp_buffer_setup_hook;
43 43
44/* These are used to print like we read. */ 44/* These are used to print like we read. */
45 45
46Lisp_Object Vfloat_output_format, Qfloat_output_format; 46Lisp_Object Qfloat_output_format;
47 47
48#include <math.h> 48#include <math.h>
49 49
@@ -78,49 +78,9 @@ EMACS_INT print_buffer_pos;
78/* Bytes stored in print_buffer. */ 78/* Bytes stored in print_buffer. */
79EMACS_INT print_buffer_pos_byte; 79EMACS_INT print_buffer_pos_byte;
80 80
81/* Maximum length of list to print in full; noninteger means
82 effectively infinity */
83
84Lisp_Object Vprint_length;
85
86/* Maximum depth of list to print in full; noninteger means
87 effectively infinity. */
88
89Lisp_Object Vprint_level;
90
91/* Nonzero means print newlines in strings as \n. */
92
93int print_escape_newlines;
94
95/* Nonzero means to print single-byte non-ascii characters in strings as
96 octal escapes. */
97
98int print_escape_nonascii;
99
100/* Nonzero means to print multibyte characters in strings as hex escapes. */
101
102int print_escape_multibyte;
103
104Lisp_Object Qprint_escape_newlines; 81Lisp_Object Qprint_escape_newlines;
105Lisp_Object Qprint_escape_multibyte, Qprint_escape_nonascii; 82Lisp_Object Qprint_escape_multibyte, Qprint_escape_nonascii;
106 83
107/* Nonzero means print (quote foo) forms as 'foo, etc. */
108
109int print_quoted;
110
111/* Non-nil means print #: before uninterned symbols. */
112
113Lisp_Object Vprint_gensym;
114
115/* Non-nil means print recursive structures using #n= and #n# syntax. */
116
117Lisp_Object Vprint_circle;
118
119/* Non-nil means keep continuous number for #n= and #n# syntax
120 between several print functions. */
121
122Lisp_Object Vprint_continuous_numbering;
123
124/* Vprint_number_table is a table, that keeps objects that are going to 84/* Vprint_number_table is a table, that keeps objects that are going to
125 be printed, to allow use of #n= and #n# to express sharing. 85 be printed, to allow use of #n= and #n# to express sharing.
126 For any given object, the table can give the following values: 86 For any given object, the table can give the following values:
@@ -130,8 +90,6 @@ Lisp_Object Vprint_continuous_numbering;
130 print_number_index holds the largest N already used. 90 print_number_index holds the largest N already used.
131 N has to be striclty larger than 0 since we need to distinguish -N. */ 91 N has to be striclty larger than 0 since we need to distinguish -N. */
132int print_number_index; 92int print_number_index;
133Lisp_Object Vprint_number_table;
134
135void print_interval (INTERVAL interval, Lisp_Object printcharfun); 93void print_interval (INTERVAL interval, Lisp_Object printcharfun);
136 94
137/* GDB resets this to zero on W32 to disable OutputDebugString calls. */ 95/* GDB resets this to zero on W32 to disable OutputDebugString calls. */
@@ -1336,10 +1294,6 @@ print_preprocess_string (INTERVAL interval, Lisp_Object arg)
1336 print_preprocess (interval->plist); 1294 print_preprocess (interval->plist);
1337} 1295}
1338 1296
1339/* A flag to control printing of `charset' text property.
1340 The default value is Qdefault. */
1341Lisp_Object Vprint_charset_text_property;
1342
1343static void print_check_string_charset_prop (INTERVAL interval, Lisp_Object string); 1297static void print_check_string_charset_prop (INTERVAL interval, Lisp_Object string);
1344 1298
1345#define PRINT_STRING_NON_CHARSET_FOUND 1 1299#define PRINT_STRING_NON_CHARSET_FOUND 1
@@ -2207,7 +2161,7 @@ syms_of_print (void)
2207 Qtemp_buffer_setup_hook = intern_c_string ("temp-buffer-setup-hook"); 2161 Qtemp_buffer_setup_hook = intern_c_string ("temp-buffer-setup-hook");
2208 staticpro (&Qtemp_buffer_setup_hook); 2162 staticpro (&Qtemp_buffer_setup_hook);
2209 2163
2210 DEFVAR_LISP ("standard-output", &Vstandard_output, 2164 DEFVAR_LISP ("standard-output", Vstandard_output,
2211 doc: /* Output stream `print' uses by default for outputting a character. 2165 doc: /* Output stream `print' uses by default for outputting a character.
2212This may be any function of one argument. 2166This may be any function of one argument.
2213It may also be a buffer (output is inserted before point) 2167It may also be a buffer (output is inserted before point)
@@ -2217,7 +2171,7 @@ or the symbol t (output appears in the echo area). */);
2217 Qstandard_output = intern_c_string ("standard-output"); 2171 Qstandard_output = intern_c_string ("standard-output");
2218 staticpro (&Qstandard_output); 2172 staticpro (&Qstandard_output);
2219 2173
2220 DEFVAR_LISP ("float-output-format", &Vfloat_output_format, 2174 DEFVAR_LISP ("float-output-format", Vfloat_output_format,
2221 doc: /* The format descriptor string used to print floats. 2175 doc: /* The format descriptor string used to print floats.
2222This is a %-spec like those accepted by `printf' in C, 2176This is a %-spec like those accepted by `printf' in C,
2223but with some restrictions. It must start with the two characters `%.'. 2177but with some restrictions. It must start with the two characters `%.'.
@@ -2237,22 +2191,22 @@ that represents the number without losing information. */);
2237 Qfloat_output_format = intern_c_string ("float-output-format"); 2191 Qfloat_output_format = intern_c_string ("float-output-format");
2238 staticpro (&Qfloat_output_format); 2192 staticpro (&Qfloat_output_format);
2239 2193
2240 DEFVAR_LISP ("print-length", &Vprint_length, 2194 DEFVAR_LISP ("print-length", Vprint_length,
2241 doc: /* Maximum length of list to print before abbreviating. 2195 doc: /* Maximum length of list to print before abbreviating.
2242A value of nil means no limit. See also `eval-expression-print-length'. */); 2196A value of nil means no limit. See also `eval-expression-print-length'. */);
2243 Vprint_length = Qnil; 2197 Vprint_length = Qnil;
2244 2198
2245 DEFVAR_LISP ("print-level", &Vprint_level, 2199 DEFVAR_LISP ("print-level", Vprint_level,
2246 doc: /* Maximum depth of list nesting to print before abbreviating. 2200 doc: /* Maximum depth of list nesting to print before abbreviating.
2247A value of nil means no limit. See also `eval-expression-print-level'. */); 2201A value of nil means no limit. See also `eval-expression-print-level'. */);
2248 Vprint_level = Qnil; 2202 Vprint_level = Qnil;
2249 2203
2250 DEFVAR_BOOL ("print-escape-newlines", &print_escape_newlines, 2204 DEFVAR_BOOL ("print-escape-newlines", print_escape_newlines,
2251 doc: /* Non-nil means print newlines in strings as `\\n'. 2205 doc: /* Non-nil means print newlines in strings as `\\n'.
2252Also print formfeeds as `\\f'. */); 2206Also print formfeeds as `\\f'. */);
2253 print_escape_newlines = 0; 2207 print_escape_newlines = 0;
2254 2208
2255 DEFVAR_BOOL ("print-escape-nonascii", &print_escape_nonascii, 2209 DEFVAR_BOOL ("print-escape-nonascii", print_escape_nonascii,
2256 doc: /* Non-nil means print unibyte non-ASCII chars in strings as \\OOO. 2210 doc: /* Non-nil means print unibyte non-ASCII chars in strings as \\OOO.
2257\(OOO is the octal representation of the character code.) 2211\(OOO is the octal representation of the character code.)
2258Only single-byte characters are affected, and only in `prin1'. 2212Only single-byte characters are affected, and only in `prin1'.
@@ -2260,18 +2214,18 @@ When the output goes in a multibyte buffer, this feature is
2260enabled regardless of the value of the variable. */); 2214enabled regardless of the value of the variable. */);
2261 print_escape_nonascii = 0; 2215 print_escape_nonascii = 0;
2262 2216
2263 DEFVAR_BOOL ("print-escape-multibyte", &print_escape_multibyte, 2217 DEFVAR_BOOL ("print-escape-multibyte", print_escape_multibyte,
2264 doc: /* Non-nil means print multibyte characters in strings as \\xXXXX. 2218 doc: /* Non-nil means print multibyte characters in strings as \\xXXXX.
2265\(XXXX is the hex representation of the character code.) 2219\(XXXX is the hex representation of the character code.)
2266This affects only `prin1'. */); 2220This affects only `prin1'. */);
2267 print_escape_multibyte = 0; 2221 print_escape_multibyte = 0;
2268 2222
2269 DEFVAR_BOOL ("print-quoted", &print_quoted, 2223 DEFVAR_BOOL ("print-quoted", print_quoted,
2270 doc: /* Non-nil means print quoted forms with reader syntax. 2224 doc: /* Non-nil means print quoted forms with reader syntax.
2271I.e., (quote foo) prints as 'foo, (function foo) as #'foo. */); 2225I.e., (quote foo) prints as 'foo, (function foo) as #'foo. */);
2272 print_quoted = 0; 2226 print_quoted = 0;
2273 2227
2274 DEFVAR_LISP ("print-gensym", &Vprint_gensym, 2228 DEFVAR_LISP ("print-gensym", Vprint_gensym,
2275 doc: /* Non-nil means print uninterned symbols so they will read as uninterned. 2229 doc: /* Non-nil means print uninterned symbols so they will read as uninterned.
2276I.e., the value of (make-symbol \"foobar\") prints as #:foobar. 2230I.e., the value of (make-symbol \"foobar\") prints as #:foobar.
2277When the uninterned symbol appears within a recursive data structure, 2231When the uninterned symbol appears within a recursive data structure,
@@ -2280,7 +2234,7 @@ constructs as needed, so that multiple references to the same symbol are
2280shared once again when the text is read back. */); 2234shared once again when the text is read back. */);
2281 Vprint_gensym = Qnil; 2235 Vprint_gensym = Qnil;
2282 2236
2283 DEFVAR_LISP ("print-circle", &Vprint_circle, 2237 DEFVAR_LISP ("print-circle", Vprint_circle,
2284 doc: /* *Non-nil means print recursive structures using #N= and #N# syntax. 2238 doc: /* *Non-nil means print recursive structures using #N= and #N# syntax.
2285If nil, printing proceeds recursively and may lead to 2239If nil, printing proceeds recursively and may lead to
2286`max-lisp-eval-depth' being exceeded or an error may occur: 2240`max-lisp-eval-depth' being exceeded or an error may occur:
@@ -2292,14 +2246,14 @@ representation) and `#N#' in place of each subsequent occurrence,
2292where N is a positive decimal integer. */); 2246where N is a positive decimal integer. */);
2293 Vprint_circle = Qnil; 2247 Vprint_circle = Qnil;
2294 2248
2295 DEFVAR_LISP ("print-continuous-numbering", &Vprint_continuous_numbering, 2249 DEFVAR_LISP ("print-continuous-numbering", Vprint_continuous_numbering,
2296 doc: /* *Non-nil means number continuously across print calls. 2250 doc: /* *Non-nil means number continuously across print calls.
2297This affects the numbers printed for #N= labels and #M# references. 2251This affects the numbers printed for #N= labels and #M# references.
2298See also `print-circle', `print-gensym', and `print-number-table'. 2252See also `print-circle', `print-gensym', and `print-number-table'.
2299This variable should not be set with `setq'; bind it with a `let' instead. */); 2253This variable should not be set with `setq'; bind it with a `let' instead. */);
2300 Vprint_continuous_numbering = Qnil; 2254 Vprint_continuous_numbering = Qnil;
2301 2255
2302 DEFVAR_LISP ("print-number-table", &Vprint_number_table, 2256 DEFVAR_LISP ("print-number-table", Vprint_number_table,
2303 doc: /* A vector used internally to produce `#N=' labels and `#N#' references. 2257 doc: /* A vector used internally to produce `#N=' labels and `#N#' references.
2304The Lisp printer uses this vector to detect Lisp objects referenced more 2258The Lisp printer uses this vector to detect Lisp objects referenced more
2305than once. 2259than once.
@@ -2312,7 +2266,7 @@ the printing done so far has not found any shared structure or objects
2312that need to be recorded in the table. */); 2266that need to be recorded in the table. */);
2313 Vprint_number_table = Qnil; 2267 Vprint_number_table = Qnil;
2314 2268
2315 DEFVAR_LISP ("print-charset-text-property", &Vprint_charset_text_property, 2269 DEFVAR_LISP ("print-charset-text-property", Vprint_charset_text_property,
2316 doc: /* A flag to control printing of `charset' text property on printing a string. 2270 doc: /* A flag to control printing of `charset' text property on printing a string.
2317The value must be nil, t, or `default'. 2271The value must be nil, t, or `default'.
2318 2272
diff --git a/src/process.c b/src/process.c
index 0c8d0cab6d0..80d149347a5 100644
--- a/src/process.c
+++ b/src/process.c
@@ -121,9 +121,6 @@ Lisp_Object QCname, QCtype;
121 121
122static int kbd_is_on_hold; 122static int kbd_is_on_hold;
123 123
124/* Nonzero means delete a process right away if it exits. */
125static int delete_exited_processes;
126
127/* Nonzero means don't run process sentinels. This is used 124/* Nonzero means don't run process sentinels. This is used
128 when exiting. */ 125 when exiting. */
129int inhibit_sentinels; 126int inhibit_sentinels;
@@ -175,10 +172,6 @@ extern void serial_configure (struct Lisp_Process *p, Lisp_Object contact);
175extern int h_errno; 172extern int h_errno;
176#endif 173#endif
177 174
178/* t means use pty, nil means use a pipe,
179 maybe other values to come. */
180static Lisp_Object Vprocess_connection_type;
181
182/* These next two vars are non-static since sysdep.c uses them in the 175/* These next two vars are non-static since sysdep.c uses them in the
183 emulation of `select'. */ 176 emulation of `select'. */
184/* Number of events of change of status of a process. */ 177/* Number of events of change of status of a process. */
@@ -247,11 +240,6 @@ static int process_output_delay_count;
247 240
248static int process_output_skip; 241static int process_output_skip;
249 242
250/* Non-nil means to delay reading process output to improve buffering.
251 A value of t means that delay is reset after each send, any other
252 non-nil value does not reset the delay. A value of nil disables
253 adaptive read buffering completely. */
254static Lisp_Object Vprocess_adaptive_read_buffering;
255#else 243#else
256#define process_output_delay_count 0 244#define process_output_delay_count 0
257#endif 245#endif
@@ -7642,14 +7630,14 @@ syms_of_process (void)
7642 Qargs = intern_c_string ("args"); 7630 Qargs = intern_c_string ("args");
7643 staticpro (&Qargs); 7631 staticpro (&Qargs);
7644 7632
7645 DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes, 7633 DEFVAR_BOOL ("delete-exited-processes", delete_exited_processes,
7646 doc: /* *Non-nil means delete processes immediately when they exit. 7634 doc: /* *Non-nil means delete processes immediately when they exit.
7647A value of nil means don't delete them until `list-processes' is run. */); 7635A value of nil means don't delete them until `list-processes' is run. */);
7648 7636
7649 delete_exited_processes = 1; 7637 delete_exited_processes = 1;
7650 7638
7651#ifdef subprocesses 7639#ifdef subprocesses
7652 DEFVAR_LISP ("process-connection-type", &Vprocess_connection_type, 7640 DEFVAR_LISP ("process-connection-type", Vprocess_connection_type,
7653 doc: /* Control type of device used to communicate with subprocesses. 7641 doc: /* Control type of device used to communicate with subprocesses.
7654Values are nil to use a pipe, or t or `pty' to use a pty. 7642Values are nil to use a pipe, or t or `pty' to use a pty.
7655The value has no effect if the system has no ptys or if all ptys are busy: 7643The value has no effect if the system has no ptys or if all ptys are busy:
@@ -7658,7 +7646,7 @@ The value takes effect when `start-process' is called. */);
7658 Vprocess_connection_type = Qt; 7646 Vprocess_connection_type = Qt;
7659 7647
7660#ifdef ADAPTIVE_READ_BUFFERING 7648#ifdef ADAPTIVE_READ_BUFFERING
7661 DEFVAR_LISP ("process-adaptive-read-buffering", &Vprocess_adaptive_read_buffering, 7649 DEFVAR_LISP ("process-adaptive-read-buffering", Vprocess_adaptive_read_buffering,
7662 doc: /* If non-nil, improve receive buffering by delaying after short reads. 7650 doc: /* If non-nil, improve receive buffering by delaying after short reads.
7663On some systems, when Emacs reads the output from a subprocess, the output data 7651On some systems, when Emacs reads the output from a subprocess, the output data
7664is read in very small blocks, potentially resulting in very poor performance. 7652is read in very small blocks, potentially resulting in very poor performance.
diff --git a/src/search.c b/src/search.c
index ff2b116d7fd..c7e6f15a876 100644
--- a/src/search.c
+++ b/src/search.c
@@ -91,13 +91,6 @@ Lisp_Object Qinvalid_regexp;
91/* Error condition used for failing searches */ 91/* Error condition used for failing searches */
92Lisp_Object Qsearch_failed; 92Lisp_Object Qsearch_failed;
93 93
94Lisp_Object Vsearch_spaces_regexp;
95
96/* If non-nil, the match data will not be changed during call to
97 searching or matching functions. This variable is for internal use
98 only. */
99Lisp_Object Vinhibit_changing_match_data;
100
101static void set_search_regs (EMACS_INT, EMACS_INT); 94static void set_search_regs (EMACS_INT, EMACS_INT);
102static void save_search_regs (void); 95static void save_search_regs (void);
103static EMACS_INT simple_search (EMACS_INT, unsigned char *, EMACS_INT, 96static EMACS_INT simple_search (EMACS_INT, unsigned char *, EMACS_INT,
@@ -3224,7 +3217,7 @@ syms_of_search (void)
3224 saved_last_thing_searched = Qnil; 3217 saved_last_thing_searched = Qnil;
3225 staticpro (&saved_last_thing_searched); 3218 staticpro (&saved_last_thing_searched);
3226 3219
3227 DEFVAR_LISP ("search-spaces-regexp", &Vsearch_spaces_regexp, 3220 DEFVAR_LISP ("search-spaces-regexp", Vsearch_spaces_regexp,
3228 doc: /* Regexp to substitute for bunches of spaces in regexp search. 3221 doc: /* Regexp to substitute for bunches of spaces in regexp search.
3229Some commands use this for user-specified regexps. 3222Some commands use this for user-specified regexps.
3230Spaces that occur inside character classes or repetition operators 3223Spaces that occur inside character classes or repetition operators
@@ -3232,7 +3225,7 @@ or other such regexp constructs are not replaced with this.
3232A value of nil (which is the normal value) means treat spaces literally. */); 3225A value of nil (which is the normal value) means treat spaces literally. */);
3233 Vsearch_spaces_regexp = Qnil; 3226 Vsearch_spaces_regexp = Qnil;
3234 3227
3235 DEFVAR_LISP ("inhibit-changing-match-data", &Vinhibit_changing_match_data, 3228 DEFVAR_LISP ("inhibit-changing-match-data", Vinhibit_changing_match_data,
3236 doc: /* Internal use only. 3229 doc: /* Internal use only.
3237If non-nil, the primitive searching and matching functions 3230If non-nil, the primitive searching and matching functions
3238such as `looking-at', `string-match', `re-search-forward', etc., 3231such as `looking-at', `string-match', `re-search-forward', etc.,
diff --git a/src/syntax.c b/src/syntax.c
index d8749a18eea..1071a150c51 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -98,23 +98,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
98 98
99Lisp_Object Qsyntax_table_p, Qsyntax_table, Qscan_error; 99Lisp_Object Qsyntax_table_p, Qsyntax_table, Qscan_error;
100 100
101int words_include_escapes;
102int parse_sexp_lookup_properties;
103
104/* Nonzero means `scan-sexps' treat all multibyte characters as symbol. */
105int multibyte_syntax_as_symbol;
106
107/* Used as a temporary in SYNTAX_ENTRY and other macros in syntax.h, 101/* Used as a temporary in SYNTAX_ENTRY and other macros in syntax.h,
108 if not compiled with GCC. No need to mark it, since it is used 102 if not compiled with GCC. No need to mark it, since it is used
109 only very temporarily. */ 103 only very temporarily. */
110Lisp_Object syntax_temp; 104Lisp_Object syntax_temp;
111 105
112/* Non-zero means an open parenthesis in column 0 is always considered
113 to be the start of a defun. Zero means an open parenthesis in
114 column 0 has no special meaning. */
115
116int open_paren_in_column_0_is_defun_start;
117
118/* This is the internal form of the parse state used in parse-partial-sexp. */ 106/* This is the internal form of the parse state used in parse-partial-sexp. */
119 107
120struct lisp_parse_state 108struct lisp_parse_state
@@ -1220,12 +1208,6 @@ DEFUN ("internal-describe-syntax-value", Finternal_describe_syntax_value,
1220 return syntax; 1208 return syntax;
1221} 1209}
1222 1210
1223int parse_sexp_ignore_comments;
1224
1225/* Char-table of functions that find the next or previous word
1226 boundary. */
1227Lisp_Object Vfind_word_boundary_function_table;
1228
1229/* Return the position across COUNT words from FROM. 1211/* Return the position across COUNT words from FROM.
1230 If that many words cannot be found before the end of the buffer, return 0. 1212 If that many words cannot be found before the end of the buffer, return 0.
1231 COUNT negative means scan backward and stop at word beginning. */ 1213 COUNT negative means scan backward and stop at word beginning. */
@@ -3482,31 +3464,31 @@ syms_of_syntax (void)
3482 Fput (Qscan_error, Qerror_message, 3464 Fput (Qscan_error, Qerror_message,
3483 make_pure_c_string ("Scan error")); 3465 make_pure_c_string ("Scan error"));
3484 3466
3485 DEFVAR_BOOL ("parse-sexp-ignore-comments", &parse_sexp_ignore_comments, 3467 DEFVAR_BOOL ("parse-sexp-ignore-comments", parse_sexp_ignore_comments,
3486 doc: /* Non-nil means `forward-sexp', etc., should treat comments as whitespace. */); 3468 doc: /* Non-nil means `forward-sexp', etc., should treat comments as whitespace. */);
3487 3469
3488 DEFVAR_BOOL ("parse-sexp-lookup-properties", &parse_sexp_lookup_properties, 3470 DEFVAR_BOOL ("parse-sexp-lookup-properties", parse_sexp_lookup_properties,
3489 doc: /* Non-nil means `forward-sexp', etc., obey `syntax-table' property. 3471 doc: /* Non-nil means `forward-sexp', etc., obey `syntax-table' property.
3490Otherwise, that text property is simply ignored. 3472Otherwise, that text property is simply ignored.
3491See the info node `(elisp)Syntax Properties' for a description of the 3473See the info node `(elisp)Syntax Properties' for a description of the
3492`syntax-table' property. */); 3474`syntax-table' property. */);
3493 3475
3494 words_include_escapes = 0; 3476 words_include_escapes = 0;
3495 DEFVAR_BOOL ("words-include-escapes", &words_include_escapes, 3477 DEFVAR_BOOL ("words-include-escapes", words_include_escapes,
3496 doc: /* Non-nil means `forward-word', etc., should treat escape chars part of words. */); 3478 doc: /* Non-nil means `forward-word', etc., should treat escape chars part of words. */);
3497 3479
3498 DEFVAR_BOOL ("multibyte-syntax-as-symbol", &multibyte_syntax_as_symbol, 3480 DEFVAR_BOOL ("multibyte-syntax-as-symbol", multibyte_syntax_as_symbol,
3499 doc: /* Non-nil means `scan-sexps' treats all multibyte characters as symbol. */); 3481 doc: /* Non-nil means `scan-sexps' treats all multibyte characters as symbol. */);
3500 multibyte_syntax_as_symbol = 0; 3482 multibyte_syntax_as_symbol = 0;
3501 3483
3502 DEFVAR_BOOL ("open-paren-in-column-0-is-defun-start", 3484 DEFVAR_BOOL ("open-paren-in-column-0-is-defun-start",
3503 &open_paren_in_column_0_is_defun_start, 3485 open_paren_in_column_0_is_defun_start,
3504 doc: /* *Non-nil means an open paren in column 0 denotes the start of a defun. */); 3486 doc: /* *Non-nil means an open paren in column 0 denotes the start of a defun. */);
3505 open_paren_in_column_0_is_defun_start = 1; 3487 open_paren_in_column_0_is_defun_start = 1;
3506 3488
3507 3489
3508 DEFVAR_LISP ("find-word-boundary-function-table", 3490 DEFVAR_LISP ("find-word-boundary-function-table",
3509 &Vfind_word_boundary_function_table, 3491 Vfind_word_boundary_function_table,
3510 doc: /* 3492 doc: /*
3511Char table of functions to search for the word boundary. 3493Char table of functions to search for the word boundary.
3512Each function is called with two arguments; POS and LIMIT. 3494Each function is called with two arguments; POS and LIMIT.
diff --git a/src/syntax.h b/src/syntax.h
index 87a33402834..18f62803bdd 100644
--- a/src/syntax.h
+++ b/src/syntax.h
@@ -298,7 +298,5 @@ struct gl_state_s
298}; 298};
299 299
300extern struct gl_state_s gl_state; 300extern struct gl_state_s gl_state;
301extern int parse_sexp_lookup_properties;
302
303extern EMACS_INT scan_words (EMACS_INT, EMACS_INT); 301extern EMACS_INT scan_words (EMACS_INT, EMACS_INT);
304 302
diff --git a/src/sysdep.c b/src/sysdep.c
index 0b1b3704566..972f3c9acc3 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1305,11 +1305,6 @@ setup_pty (int fd)
1305} 1305}
1306#endif /* HAVE_PTYS */ 1306#endif /* HAVE_PTYS */
1307 1307
1308/* init_system_name sets up the string for the Lisp function
1309 system-name to return. */
1310
1311extern Lisp_Object Vsystem_name;
1312
1313#ifdef HAVE_SOCKETS 1308#ifdef HAVE_SOCKETS
1314#include <sys/socket.h> 1309#include <sys/socket.h>
1315#include <netdb.h> 1310#include <netdb.h>
diff --git a/src/term.c b/src/term.c
index ce3b26d21df..63548304a75 100644
--- a/src/term.c
+++ b/src/term.c
@@ -121,27 +121,11 @@ static void vfatal (const char *str, va_list ap) NO_RETURN;
121 121
122#define OUTPUT1_IF(tty, a) do { if (a) emacs_tputs ((tty), a, 1, cmputc); } while (0) 122#define OUTPUT1_IF(tty, a) do { if (a) emacs_tputs ((tty), a, 1, cmputc); } while (0)
123 123
124/* If true, use "vs", otherwise use "ve" to make the cursor visible. */
125
126static int visible_cursor;
127
128/* Display space properties */ 124/* Display space properties */
129 125
130/* Functions to call after suspending a tty. */
131Lisp_Object Vsuspend_tty_functions;
132
133/* Functions to call after resuming a tty. */
134Lisp_Object Vresume_tty_functions;
135
136/* Chain of all tty device parameters. */ 126/* Chain of all tty device parameters. */
137struct tty_display_info *tty_list; 127struct tty_display_info *tty_list;
138 128
139/* Nonzero means no need to redraw the entire frame on resuming a
140 suspended Emacs. This is useful on terminals with multiple
141 pages, where one page is used for Emacs and another for all
142 else. */
143int no_redraw_on_reenter;
144
145/* Meaning of bits in no_color_video. Each bit set means that the 129/* Meaning of bits in no_color_video. Each bit set means that the
146 corresponding attribute cannot be combined with colors. */ 130 corresponding attribute cannot be combined with colors. */
147 131
@@ -172,10 +156,6 @@ int max_frame_lines;
172 should not open a frame on stdout. */ 156 should not open a frame on stdout. */
173static int no_controlling_tty; 157static int no_controlling_tty;
174 158
175/* Provided for lisp packages. */
176
177static int system_uses_terminfo;
178
179 159
180 160
181#ifdef HAVE_GPM 161#ifdef HAVE_GPM
@@ -3770,7 +3750,7 @@ mark_ttys (void)
3770void 3750void
3771syms_of_term (void) 3751syms_of_term (void)
3772{ 3752{
3773 DEFVAR_BOOL ("system-uses-terminfo", &system_uses_terminfo, 3753 DEFVAR_BOOL ("system-uses-terminfo", system_uses_terminfo,
3774 doc: /* Non-nil means the system uses terminfo rather than termcap. 3754 doc: /* Non-nil means the system uses terminfo rather than termcap.
3775This variable can be used by terminal emulator packages. */); 3755This variable can be used by terminal emulator packages. */);
3776#ifdef TERMINFO 3756#ifdef TERMINFO
@@ -3779,20 +3759,20 @@ This variable can be used by terminal emulator packages. */);
3779 system_uses_terminfo = 0; 3759 system_uses_terminfo = 0;
3780#endif 3760#endif
3781 3761
3782 DEFVAR_LISP ("suspend-tty-functions", &Vsuspend_tty_functions, 3762 DEFVAR_LISP ("suspend-tty-functions", Vsuspend_tty_functions,
3783 doc: /* Functions to be run after suspending a tty. 3763 doc: /* Functions to be run after suspending a tty.
3784The functions are run with one argument, the terminal object to be suspended. 3764The functions are run with one argument, the terminal object to be suspended.
3785See `suspend-tty'. */); 3765See `suspend-tty'. */);
3786 Vsuspend_tty_functions = Qnil; 3766 Vsuspend_tty_functions = Qnil;
3787 3767
3788 3768
3789 DEFVAR_LISP ("resume-tty-functions", &Vresume_tty_functions, 3769 DEFVAR_LISP ("resume-tty-functions", Vresume_tty_functions,
3790 doc: /* Functions to be run after resuming a tty. 3770 doc: /* Functions to be run after resuming a tty.
3791The functions are run with one argument, the terminal object that was revived. 3771The functions are run with one argument, the terminal object that was revived.
3792See `resume-tty'. */); 3772See `resume-tty'. */);
3793 Vresume_tty_functions = Qnil; 3773 Vresume_tty_functions = Qnil;
3794 3774
3795 DEFVAR_BOOL ("visible-cursor", &visible_cursor, 3775 DEFVAR_BOOL ("visible-cursor", visible_cursor,
3796 doc: /* Non-nil means to make the cursor very visible. 3776 doc: /* Non-nil means to make the cursor very visible.
3797This only has an effect when running in a text terminal. 3777This only has an effect when running in a text terminal.
3798What means \"very visible\" is up to your terminal. It may make the cursor 3778What means \"very visible\" is up to your terminal. It may make the cursor
diff --git a/src/terminal.c b/src/terminal.c
index f6390f3fa5f..220f54d71a8 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -37,9 +37,6 @@ static int next_terminal_id;
37/* The initial terminal device, created by initial_term_init. */ 37/* The initial terminal device, created by initial_term_init. */
38struct terminal *initial_terminal; 38struct terminal *initial_terminal;
39 39
40/* Function to use to ring the bell. */
41Lisp_Object Vring_bell_function;
42
43static void delete_initial_terminal (struct terminal *); 40static void delete_initial_terminal (struct terminal *);
44 41
45 42
@@ -291,8 +288,6 @@ delete_terminal (struct terminal *terminal)
291 288
292Lisp_Object Qrun_hook_with_args; 289Lisp_Object Qrun_hook_with_args;
293static Lisp_Object Qdelete_terminal_functions; 290static Lisp_Object Qdelete_terminal_functions;
294static Lisp_Object Vdelete_terminal_functions;
295
296DEFUN ("delete-terminal", Fdelete_terminal, Sdelete_terminal, 0, 2, 0, 291DEFUN ("delete-terminal", Fdelete_terminal, Sdelete_terminal, 0, 2, 0,
297 doc: /* Delete TERMINAL by deleting all frames on it and closing the terminal. 292 doc: /* Delete TERMINAL by deleting all frames on it and closing the terminal.
298TERMINAL may be a terminal object, a frame, or nil (meaning the 293TERMINAL may be a terminal object, a frame, or nil (meaning the
@@ -530,12 +525,12 @@ void
530syms_of_terminal (void) 525syms_of_terminal (void)
531{ 526{
532 527
533 DEFVAR_LISP ("ring-bell-function", &Vring_bell_function, 528 DEFVAR_LISP ("ring-bell-function", Vring_bell_function,
534 doc: /* Non-nil means call this function to ring the bell. 529 doc: /* Non-nil means call this function to ring the bell.
535The function should accept no arguments. */); 530The function should accept no arguments. */);
536 Vring_bell_function = Qnil; 531 Vring_bell_function = Qnil;
537 532
538 DEFVAR_LISP ("delete-terminal-functions", &Vdelete_terminal_functions, 533 DEFVAR_LISP ("delete-terminal-functions", Vdelete_terminal_functions,
539 doc: /* Special hook run when a terminal is deleted. 534 doc: /* Special hook run when a terminal is deleted.
540Each function is called with argument, the terminal. 535Each function is called with argument, the terminal.
541This may be called just before actually deleting the terminal, 536This may be called just before actually deleting the terminal,
diff --git a/src/termopts.h b/src/termopts.h
index eecd9481410..9be4a1eb7c3 100644
--- a/src/termopts.h
+++ b/src/termopts.h
@@ -18,12 +18,6 @@ You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ 18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19 19
20 20
21/* Nonzero means flash the screen instead of ringing the bell. */
22extern int visible_bell;
23
24/* Nonzero means invert white and black for the entire screen. */
25extern int inverse_video;
26
27/* Nonzero means use ^S/^Q as cretinous flow control. */ 21/* Nonzero means use ^S/^Q as cretinous flow control. */
28extern int flow_control; 22extern int flow_control;
29 23
@@ -36,11 +30,3 @@ extern int interrupts_deferred;
36/* Terminal has meta key */ 30/* Terminal has meta key */
37extern int meta_key; 31extern int meta_key;
38 32
39/* Defined in xdisp.c */
40extern Lisp_Object Vtruncate_partial_width_windows;
41
42/* Nonzero means no need to redraw the entire frame on resuming a suspended
43 Emacs. This is useful on terminals with multiple pages, where one page is
44 used for Emacs and another for all else. */
45extern int no_redraw_on_reenter;
46
diff --git a/src/textprop.c b/src/textprop.c
index a2794264d90..ffdebb53620 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -68,11 +68,6 @@ Lisp_Object Qfront_sticky, Qrear_nonsticky;
68 traversing plists. */ 68 traversing plists. */
69#define PLIST_ELT_P(o1, o2) (CONSP (o1) && ((o2)=XCDR (o1), CONSP (o2))) 69#define PLIST_ELT_P(o1, o2) (CONSP (o1) && ((o2)=XCDR (o1), CONSP (o2)))
70 70
71Lisp_Object Vinhibit_point_motion_hooks;
72Lisp_Object Vdefault_text_properties;
73Lisp_Object Vchar_property_alias_alist;
74Lisp_Object Vtext_property_default_nonsticky;
75
76/* verify_interval_modification saves insertion hooks here 71/* verify_interval_modification saves insertion hooks here
77 to be run later by report_interval_modification. */ 72 to be run later by report_interval_modification. */
78Lisp_Object interval_insert_behind_hooks; 73Lisp_Object interval_insert_behind_hooks;
@@ -2234,13 +2229,13 @@ report_interval_modification (Lisp_Object start, Lisp_Object end)
2234void 2229void
2235syms_of_textprop (void) 2230syms_of_textprop (void)
2236{ 2231{
2237 DEFVAR_LISP ("default-text-properties", &Vdefault_text_properties, 2232 DEFVAR_LISP ("default-text-properties", Vdefault_text_properties,
2238 doc: /* Property-list used as default values. 2233 doc: /* Property-list used as default values.
2239The value of a property in this list is seen as the value for every 2234The value of a property in this list is seen as the value for every
2240character that does not have its own value for that property. */); 2235character that does not have its own value for that property. */);
2241 Vdefault_text_properties = Qnil; 2236 Vdefault_text_properties = Qnil;
2242 2237
2243 DEFVAR_LISP ("char-property-alias-alist", &Vchar_property_alias_alist, 2238 DEFVAR_LISP ("char-property-alias-alist", Vchar_property_alias_alist,
2244 doc: /* Alist of alternative properties for properties without a value. 2239 doc: /* Alist of alternative properties for properties without a value.
2245Each element should look like (PROPERTY ALTERNATIVE1 ALTERNATIVE2...). 2240Each element should look like (PROPERTY ALTERNATIVE1 ALTERNATIVE2...).
2246If a piece of text has no direct value for a particular property, then 2241If a piece of text has no direct value for a particular property, then
@@ -2249,13 +2244,13 @@ the first non-nil value from the associated alternative properties is
2249returned. */); 2244returned. */);
2250 Vchar_property_alias_alist = Qnil; 2245 Vchar_property_alias_alist = Qnil;
2251 2246
2252 DEFVAR_LISP ("inhibit-point-motion-hooks", &Vinhibit_point_motion_hooks, 2247 DEFVAR_LISP ("inhibit-point-motion-hooks", Vinhibit_point_motion_hooks,
2253 doc: /* If non-nil, don't run `point-left' and `point-entered' text properties. 2248 doc: /* If non-nil, don't run `point-left' and `point-entered' text properties.
2254This also inhibits the use of the `intangible' text property. */); 2249This also inhibits the use of the `intangible' text property. */);
2255 Vinhibit_point_motion_hooks = Qnil; 2250 Vinhibit_point_motion_hooks = Qnil;
2256 2251
2257 DEFVAR_LISP ("text-property-default-nonsticky", 2252 DEFVAR_LISP ("text-property-default-nonsticky",
2258 &Vtext_property_default_nonsticky, 2253 Vtext_property_default_nonsticky,
2259 doc: /* Alist of properties vs the corresponding non-stickinesses. 2254 doc: /* Alist of properties vs the corresponding non-stickinesses.
2260Each element has the form (PROPERTY . NONSTICKINESS). 2255Each element has the form (PROPERTY . NONSTICKINESS).
2261 2256
diff --git a/src/undo.c b/src/undo.c
index c6d2747f270..599cd82db9b 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -25,17 +25,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
25#include "commands.h" 25#include "commands.h"
26#include "window.h" 26#include "window.h"
27 27
28/* Limits controlling how much undo information to keep. */
29
30EMACS_INT undo_limit;
31EMACS_INT undo_strong_limit;
32
33Lisp_Object Vundo_outer_limit;
34
35/* Function to call when undo_outer_limit is exceeded. */
36
37Lisp_Object Vundo_outer_limit_function;
38
39/* Last buffer for which undo information was recorded. */ 28/* Last buffer for which undo information was recorded. */
40/* BEWARE: This is not traced by the GC, so never dereference it! */ 29/* BEWARE: This is not traced by the GC, so never dereference it! */
41struct buffer *last_undo_buffer; 30struct buffer *last_undo_buffer;
@@ -57,10 +46,6 @@ Lisp_Object Qapply;
57 an undo-boundary. */ 46 an undo-boundary. */
58Lisp_Object pending_boundary; 47Lisp_Object pending_boundary;
59 48
60/* Nonzero means do not record point in record_point. */
61
62int undo_inhibit_record_point;
63
64/* Record point as it was at beginning of this command (if necessary) 49/* Record point as it was at beginning of this command (if necessary)
65 and prepare the undo info for recording a change. 50 and prepare the undo info for recording a change.
66 PT is the position of point that will naturally occur as a result of the 51 PT is the position of point that will naturally occur as a result of the
@@ -673,7 +658,7 @@ syms_of_undo (void)
673 defsubr (&Sprimitive_undo); 658 defsubr (&Sprimitive_undo);
674 defsubr (&Sundo_boundary); 659 defsubr (&Sundo_boundary);
675 660
676 DEFVAR_INT ("undo-limit", &undo_limit, 661 DEFVAR_INT ("undo-limit", undo_limit,
677 doc: /* Keep no more undo information once it exceeds this size. 662 doc: /* Keep no more undo information once it exceeds this size.
678This limit is applied when garbage collection happens. 663This limit is applied when garbage collection happens.
679When a previous command increases the total undo list size past this 664When a previous command increases the total undo list size past this
@@ -683,7 +668,7 @@ The size is counted as the number of bytes occupied,
683which includes both saved text and other data. */); 668which includes both saved text and other data. */);
684 undo_limit = 80000; 669 undo_limit = 80000;
685 670
686 DEFVAR_INT ("undo-strong-limit", &undo_strong_limit, 671 DEFVAR_INT ("undo-strong-limit", undo_strong_limit,
687 doc: /* Don't keep more than this much size of undo information. 672 doc: /* Don't keep more than this much size of undo information.
688This limit is applied when garbage collection happens. 673This limit is applied when garbage collection happens.
689When a previous command increases the total undo list size past this 674When a previous command increases the total undo list size past this
@@ -695,7 +680,7 @@ The size is counted as the number of bytes occupied,
695which includes both saved text and other data. */); 680which includes both saved text and other data. */);
696 undo_strong_limit = 120000; 681 undo_strong_limit = 120000;
697 682
698 DEFVAR_LISP ("undo-outer-limit", &Vundo_outer_limit, 683 DEFVAR_LISP ("undo-outer-limit", Vundo_outer_limit,
699 doc: /* Outer limit on size of undo information for one command. 684 doc: /* Outer limit on size of undo information for one command.
700At garbage collection time, if the current command has produced 685At garbage collection time, if the current command has produced
701more than this much undo information, it discards the info and displays 686more than this much undo information, it discards the info and displays
@@ -712,7 +697,7 @@ The text above describes the behavior of the function
712that variable usually specifies. */); 697that variable usually specifies. */);
713 Vundo_outer_limit = make_number (12000000); 698 Vundo_outer_limit = make_number (12000000);
714 699
715 DEFVAR_LISP ("undo-outer-limit-function", &Vundo_outer_limit_function, 700 DEFVAR_LISP ("undo-outer-limit-function", Vundo_outer_limit_function,
716 doc: /* Function to call when an undo list exceeds `undo-outer-limit'. 701 doc: /* Function to call when an undo list exceeds `undo-outer-limit'.
717This function is called with one argument, the current undo list size 702This function is called with one argument, the current undo list size
718for the most recent command (since the last undo boundary). 703for the most recent command (since the last undo boundary).
@@ -723,7 +708,7 @@ Garbage collection is inhibited around the call to this function,
723so it must make sure not to do a lot of consing. */); 708so it must make sure not to do a lot of consing. */);
724 Vundo_outer_limit_function = Qnil; 709 Vundo_outer_limit_function = Qnil;
725 710
726 DEFVAR_BOOL ("undo-inhibit-record-point", &undo_inhibit_record_point, 711 DEFVAR_BOOL ("undo-inhibit-record-point", undo_inhibit_record_point,
727 doc: /* Non-nil means do not record `point' in `buffer-undo-list'. */); 712 doc: /* Non-nil means do not record `point' in `buffer-undo-list'. */);
728 undo_inhibit_record_point = 0; 713 undo_inhibit_record_point = 0;
729} 714}
diff --git a/src/w16select.c b/src/w16select.c
index 0b39af01574..34ca75c409e 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -69,13 +69,6 @@ unsigned clipboard_compact (unsigned);
69 69
70Lisp_Object QCLIPBOARD, QPRIMARY; 70Lisp_Object QCLIPBOARD, QPRIMARY;
71 71
72/* Coding system for communicating with other Windows programs via the
73 clipboard. */
74static Lisp_Object Vselection_coding_system;
75
76/* Coding system for the next communicating with other Windows programs. */
77static Lisp_Object Vnext_selection_coding_system;
78
79/* The segment address and the size of the buffer in low 72/* The segment address and the size of the buffer in low
80 memory used to move data between us and WinOldAp module. */ 73 memory used to move data between us and WinOldAp module. */
81static struct { 74static struct {
@@ -693,7 +686,7 @@ syms_of_win16select (void)
693 defsubr (&Sw16_get_clipboard_data); 686 defsubr (&Sw16_get_clipboard_data);
694 defsubr (&Sx_selection_exists_p); 687 defsubr (&Sx_selection_exists_p);
695 688
696 DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system, 689 DEFVAR_LISP ("selection-coding-system", Vselection_coding_system,
697 doc: /* Coding system for communicating with other programs. 690 doc: /* Coding system for communicating with other programs.
698 691
699For MS-Windows and MS-DOS: 692For MS-Windows and MS-DOS:
@@ -725,7 +718,7 @@ to control which data-type to request for receiving text.
725The default value is nil. */); 718The default value is nil. */);
726 Vselection_coding_system = intern ("iso-latin-1-dos"); 719 Vselection_coding_system = intern ("iso-latin-1-dos");
727 720
728 DEFVAR_LISP ("next-selection-coding-system", &Vnext_selection_coding_system, 721 DEFVAR_LISP ("next-selection-coding-system", Vnext_selection_coding_system,
729 doc: /* Coding system for the next communication with other programs. 722 doc: /* Coding system for the next communication with other programs.
730Usually, `selection-coding-system' is used for communicating with 723Usually, `selection-coding-system' is used for communicating with
731other programs (X Windows clients or MS Windows programs). But, if this 724other programs (X Windows clients or MS Windows programs). But, if this
diff --git a/src/w32.c b/src/w32.c
index 98715d53a32..b10f9ec9db4 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -148,14 +148,9 @@ typedef HRESULT (WINAPI * ShGetFolderPath_fn)
148void globals_of_w32 (void); 148void globals_of_w32 (void);
149static DWORD get_rid (PSID); 149static DWORD get_rid (PSID);
150 150
151extern Lisp_Object Vw32_downcase_file_names;
152extern Lisp_Object Vw32_generate_fake_inodes;
153extern Lisp_Object Vw32_get_true_file_attributes;
154/* Defined in process.c for its own purpose. */ 151/* Defined in process.c for its own purpose. */
155extern Lisp_Object Qlocal; 152extern Lisp_Object Qlocal;
156 153
157extern int w32_num_mouse_buttons;
158
159 154
160/* Initialization states. 155/* Initialization states.
161 156
@@ -1514,8 +1509,6 @@ w32_get_resource (char *key, LPDWORD lpdwtype)
1514} 1509}
1515 1510
1516char *get_emacs_configuration (void); 1511char *get_emacs_configuration (void);
1517extern Lisp_Object Vsystem_configuration;
1518
1519void 1512void
1520init_environment (char ** argv) 1513init_environment (char ** argv)
1521{ 1514{
@@ -5184,9 +5177,6 @@ sys_pipe (int * phandles)
5184 return rc; 5177 return rc;
5185} 5178}
5186 5179
5187/* From ntproc.c */
5188extern int w32_pipe_read_delay;
5189
5190/* Function to do blocking read of one byte, needed to implement 5180/* Function to do blocking read of one byte, needed to implement
5191 select. It is only allowed on sockets and pipes. */ 5181 select. It is only allowed on sockets and pipes. */
5192int 5182int
diff --git a/src/w32console.c b/src/w32console.c
index 3e8ced62892..faa6cbcc443 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -72,13 +72,6 @@ static DWORD prev_console_mode;
72static CONSOLE_CURSOR_INFO prev_console_cursor; 72static CONSOLE_CURSOR_INFO prev_console_cursor;
73#endif 73#endif
74 74
75extern Lisp_Object Vtty_defined_color_alist;
76
77/* Determine whether to make frame dimensions match the screen buffer,
78 or the current window size. The former is desirable when running
79 over telnet, while the latter is more useful when working directly at
80 the console with a large scroll-back buffer. */
81int w32_use_full_screen_buffer;
82HANDLE keyboard_handle; 75HANDLE keyboard_handle;
83 76
84 77
@@ -747,7 +740,7 @@ void
747syms_of_ntterm (void) 740syms_of_ntterm (void)
748{ 741{
749 DEFVAR_BOOL ("w32-use-full-screen-buffer", 742 DEFVAR_BOOL ("w32-use-full-screen-buffer",
750 &w32_use_full_screen_buffer, 743 w32_use_full_screen_buffer,
751 doc: /* Non-nil means make terminal frames use the full screen buffer dimensions. 744 doc: /* Non-nil means make terminal frames use the full screen buffer dimensions.
752This is desirable when running Emacs over telnet. 745This is desirable when running Emacs over telnet.
753A value of nil means use the current console window dimensions; this 746A value of nil means use the current console window dimensions; this
diff --git a/src/w32fns.c b/src/w32fns.c
index e1081d2e912..f70f4d6ace5 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -84,117 +84,21 @@ extern int quit_char;
84 84
85extern const char *const lispy_function_keys[]; 85extern const char *const lispy_function_keys[];
86 86
87/* The colormap for converting color names to RGB values */
88Lisp_Object Vw32_color_map;
89
90/* Non nil if alt key presses are passed on to Windows. */
91Lisp_Object Vw32_pass_alt_to_system;
92
93/* Non nil if alt key is translated to meta_modifier, nil if it is translated
94 to alt_modifier. */
95Lisp_Object Vw32_alt_is_meta;
96
97/* If non-zero, the windows virtual key code for an alternative quit key. */
98int w32_quit_key;
99
100/* Non nil if left window key events are passed on to Windows (this only
101 affects whether "tapping" the key opens the Start menu). */
102Lisp_Object Vw32_pass_lwindow_to_system;
103
104/* Non nil if right window key events are passed on to Windows (this
105 only affects whether "tapping" the key opens the Start menu). */
106Lisp_Object Vw32_pass_rwindow_to_system;
107
108/* Virtual key code used to generate "phantom" key presses in order
109 to stop system from acting on Windows key events. */
110Lisp_Object Vw32_phantom_key_code;
111
112/* Modifier associated with the left "Windows" key, or nil to act as a
113 normal key. */
114Lisp_Object Vw32_lwindow_modifier;
115
116/* Modifier associated with the right "Windows" key, or nil to act as a
117 normal key. */
118Lisp_Object Vw32_rwindow_modifier;
119
120/* Modifier associated with the "Apps" key, or nil to act as a normal
121 key. */
122Lisp_Object Vw32_apps_modifier;
123
124/* Value is nil if Num Lock acts as a function key. */
125Lisp_Object Vw32_enable_num_lock;
126
127/* Value is nil if Caps Lock acts as a function key. */
128Lisp_Object Vw32_enable_caps_lock;
129
130/* Modifier associated with Scroll Lock, or nil to act as a normal key. */
131Lisp_Object Vw32_scroll_lock_modifier;
132
133/* Switch to control whether we inhibit requests for synthesized bold
134 and italic versions of fonts. */
135int w32_enable_synthesized_fonts;
136
137/* Enable palette management. */
138Lisp_Object Vw32_enable_palette;
139
140/* Control how close left/right button down events must be to
141 be converted to a middle button down event. */
142int w32_mouse_button_tolerance;
143
144/* Minimum interval between mouse movement (and scroll bar drag)
145 events that are passed on to the event loop. */
146int w32_mouse_move_interval;
147
148/* Flag to indicate if XBUTTON events should be passed on to Windows. */
149static int w32_pass_extra_mouse_buttons_to_system;
150
151/* Flag to indicate if media keys should be passed on to Windows. */
152static int w32_pass_multimedia_buttons_to_system;
153
154/* Non nil if no window manager is in use. */
155Lisp_Object Vx_no_window_manager;
156
157/* If non-zero, a w32 timer that, when it expires, displays an 87/* If non-zero, a w32 timer that, when it expires, displays an
158 hourglass cursor on all frames. */ 88 hourglass cursor on all frames. */
159static unsigned hourglass_timer = 0; 89static unsigned hourglass_timer = 0;
160static HWND hourglass_hwnd = NULL; 90static HWND hourglass_hwnd = NULL;
161 91
162#if 0 /* TODO: Mouse cursor customization. */ 92#if 0 #endif
163/* The background and shape of the mouse pointer, and shape when not
164 over text or in the modeline. */
165Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
166Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape;
167
168/* The shape when over mouse-sensitive text. */
169
170Lisp_Object Vx_sensitive_text_pointer_shape;
171#endif
172 93
173#ifndef IDC_HAND 94#ifndef IDC_HAND
174#define IDC_HAND MAKEINTRESOURCE(32649) 95#define IDC_HAND MAKEINTRESOURCE(32649)
175#endif 96#endif
176 97
177/* Color of chars displayed in cursor box. */
178Lisp_Object Vx_cursor_fore_pixel;
179
180/* Nonzero if using Windows. */ 98/* Nonzero if using Windows. */
181 99
182static int w32_in_use; 100static int w32_in_use;
183 101
184/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
185
186Lisp_Object Vx_pixel_size_width_font_regexp;
187
188/* Alist of bdf fonts and the files that define them. */
189Lisp_Object Vw32_bdf_filename_alist;
190
191/* A flag to control whether fonts are matched strictly or not. */
192static int w32_strict_fontnames;
193
194/* A flag to control whether we should only repaint if GetUpdateRect
195 indicates there is an update region. */
196static int w32_strict_painting;
197
198Lisp_Object Qnone; 102Lisp_Object Qnone;
199Lisp_Object Qsuppress_icon; 103Lisp_Object Qsuppress_icon;
200Lisp_Object Qundefined_color; 104Lisp_Object Qundefined_color;
@@ -209,9 +113,6 @@ Lisp_Object Qcontrol;
209Lisp_Object Qshift; 113Lisp_Object Qshift;
210 114
211 115
212/* The ANSI codepage. */
213int w32_ansi_code_page;
214
215/* Prefix for system colors. */ 116/* Prefix for system colors. */
216#define SYSTEM_COLOR_PREFIX "System" 117#define SYSTEM_COLOR_PREFIX "System"
217#define SYSTEM_COLOR_PREFIX_LEN (sizeof (SYSTEM_COLOR_PREFIX) - 1) 118#define SYSTEM_COLOR_PREFIX_LEN (sizeof (SYSTEM_COLOR_PREFIX) - 1)
@@ -288,14 +189,6 @@ unsigned int msh_mousewheel = 0;
288#define MENU_FREE_DELAY 1000 189#define MENU_FREE_DELAY 1000
289static unsigned menu_free_timer = 0; 190static unsigned menu_free_timer = 0;
290 191
291/* In dispnew.c */
292
293extern Lisp_Object Vwindow_system_version;
294
295/* The below are defined in frame.c. */
296
297extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
298extern Lisp_Object Vwindow_system_version;
299extern Lisp_Object Qtooltip; 192extern Lisp_Object Qtooltip;
300 193
301#ifdef GLYPH_DEBUG 194#ifdef GLYPH_DEBUG
@@ -303,17 +196,11 @@ int image_cache_refcount, dpyinfo_refcount;
303#endif 196#endif
304 197
305 198
306/* From w32term.c. */
307extern int w32_num_mouse_buttons;
308extern Lisp_Object Vw32_recognize_altgr;
309
310extern HWND w32_system_caret_hwnd; 199extern HWND w32_system_caret_hwnd;
311 200
312extern int w32_system_caret_height; 201extern int w32_system_caret_height;
313extern int w32_system_caret_x; 202extern int w32_system_caret_x;
314extern int w32_system_caret_y; 203extern int w32_system_caret_y;
315extern int w32_use_visible_system_caret;
316
317static HWND w32_visible_system_caret_hwnd; 204static HWND w32_visible_system_caret_hwnd;
318 205
319/* From w32menu.c */ 206/* From w32menu.c */
@@ -5138,8 +5025,6 @@ no value of TYPE (always string in the MS Windows case). */)
5138 cursor. Duplicated from xdisp.c, but cannot use the version there 5025 cursor. Duplicated from xdisp.c, but cannot use the version there
5139 due to lack of atimers on w32. */ 5026 due to lack of atimers on w32. */
5140#define DEFAULT_HOURGLASS_DELAY 1 5027#define DEFAULT_HOURGLASS_DELAY 1
5141extern Lisp_Object Vhourglass_delay;
5142
5143/* Return non-zero if houglass timer has been started or hourglass is shown. */ 5028/* Return non-zero if houglass timer has been started or hourglass is shown. */
5144/* PENDING: if W32 can use atimers (atimer.[hc]) then the common impl in 5029/* PENDING: if W32 can use atimers (atimer.[hc]) then the common impl in
5145 xdisp.c could be used. */ 5030 xdisp.c could be used. */
@@ -5271,10 +5156,6 @@ Window tip_window;
5271 5156
5272Lisp_Object last_show_tip_args; 5157Lisp_Object last_show_tip_args;
5273 5158
5274/* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
5275
5276Lisp_Object Vx_max_tooltip_size;
5277
5278 5159
5279static Lisp_Object 5160static Lisp_Object
5280unwind_create_tip_frame (Lisp_Object frame) 5161unwind_create_tip_frame (Lisp_Object frame)
@@ -6931,28 +6812,28 @@ syms_of_w32fns (void)
6931 staticpro (&w32_grabbed_keys); 6812 staticpro (&w32_grabbed_keys);
6932 w32_grabbed_keys = Qnil; 6813 w32_grabbed_keys = Qnil;
6933 6814
6934 DEFVAR_LISP ("w32-color-map", &Vw32_color_map, 6815 DEFVAR_LISP ("w32-color-map", Vw32_color_map,
6935 doc: /* An array of color name mappings for Windows. */); 6816 doc: /* An array of color name mappings for Windows. */);
6936 Vw32_color_map = Qnil; 6817 Vw32_color_map = Qnil;
6937 6818
6938 DEFVAR_LISP ("w32-pass-alt-to-system", &Vw32_pass_alt_to_system, 6819 DEFVAR_LISP ("w32-pass-alt-to-system", Vw32_pass_alt_to_system,
6939 doc: /* Non-nil if Alt key presses are passed on to Windows. 6820 doc: /* Non-nil if Alt key presses are passed on to Windows.
6940When non-nil, for example, Alt pressed and released and then space will 6821When non-nil, for example, Alt pressed and released and then space will
6941open the System menu. When nil, Emacs processes the Alt key events, and 6822open the System menu. When nil, Emacs processes the Alt key events, and
6942then silently swallows them. */); 6823then silently swallows them. */);
6943 Vw32_pass_alt_to_system = Qnil; 6824 Vw32_pass_alt_to_system = Qnil;
6944 6825
6945 DEFVAR_LISP ("w32-alt-is-meta", &Vw32_alt_is_meta, 6826 DEFVAR_LISP ("w32-alt-is-meta", Vw32_alt_is_meta,
6946 doc: /* Non-nil if the Alt key is to be considered the same as the META key. 6827 doc: /* Non-nil if the Alt key is to be considered the same as the META key.
6947When nil, Emacs will translate the Alt key to the ALT modifier, not to META. */); 6828When nil, Emacs will translate the Alt key to the ALT modifier, not to META. */);
6948 Vw32_alt_is_meta = Qt; 6829 Vw32_alt_is_meta = Qt;
6949 6830
6950 DEFVAR_INT ("w32-quit-key", &w32_quit_key, 6831 DEFVAR_INT ("w32-quit-key", w32_quit_key,
6951 doc: /* If non-zero, the virtual key code for an alternative quit key. */); 6832 doc: /* If non-zero, the virtual key code for an alternative quit key. */);
6952 w32_quit_key = 0; 6833 w32_quit_key = 0;
6953 6834
6954 DEFVAR_LISP ("w32-pass-lwindow-to-system", 6835 DEFVAR_LISP ("w32-pass-lwindow-to-system",
6955 &Vw32_pass_lwindow_to_system, 6836 Vw32_pass_lwindow_to_system,
6956 doc: /* If non-nil, the left \"Windows\" key is passed on to Windows. 6837 doc: /* If non-nil, the left \"Windows\" key is passed on to Windows.
6957 6838
6958When non-nil, the Start menu is opened by tapping the key. 6839When non-nil, the Start menu is opened by tapping the key.
@@ -6967,7 +6848,7 @@ the doc string of `w32-phantom-key-code'. */);
6967 Vw32_pass_lwindow_to_system = Qt; 6848 Vw32_pass_lwindow_to_system = Qt;
6968 6849
6969 DEFVAR_LISP ("w32-pass-rwindow-to-system", 6850 DEFVAR_LISP ("w32-pass-rwindow-to-system",
6970 &Vw32_pass_rwindow_to_system, 6851 Vw32_pass_rwindow_to_system,
6971 doc: /* If non-nil, the right \"Windows\" key is passed on to Windows. 6852 doc: /* If non-nil, the right \"Windows\" key is passed on to Windows.
6972 6853
6973When non-nil, the Start menu is opened by tapping the key. 6854When non-nil, the Start menu is opened by tapping the key.
@@ -6982,7 +6863,7 @@ the doc string of `w32-phantom-key-code'. */);
6982 Vw32_pass_rwindow_to_system = Qt; 6863 Vw32_pass_rwindow_to_system = Qt;
6983 6864
6984 DEFVAR_LISP ("w32-phantom-key-code", 6865 DEFVAR_LISP ("w32-phantom-key-code",
6985 &Vw32_phantom_key_code, 6866 Vw32_phantom_key_code,
6986 doc: /* Virtual key code used to generate \"phantom\" key presses. 6867 doc: /* Virtual key code used to generate \"phantom\" key presses.
6987Value is a number between 0 and 255. 6868Value is a number between 0 and 255.
6988 6869
@@ -6994,19 +6875,19 @@ acting on \"Windows\" key events when `w32-pass-lwindow-to-system' or
6994 XSETINT (Vw32_phantom_key_code, 255); 6875 XSETINT (Vw32_phantom_key_code, 255);
6995 6876
6996 DEFVAR_LISP ("w32-enable-num-lock", 6877 DEFVAR_LISP ("w32-enable-num-lock",
6997 &Vw32_enable_num_lock, 6878 Vw32_enable_num_lock,
6998 doc: /* If non-nil, the Num Lock key acts normally. 6879 doc: /* If non-nil, the Num Lock key acts normally.
6999Set to nil to handle Num Lock as the `kp-numlock' key. */); 6880Set to nil to handle Num Lock as the `kp-numlock' key. */);
7000 Vw32_enable_num_lock = Qt; 6881 Vw32_enable_num_lock = Qt;
7001 6882
7002 DEFVAR_LISP ("w32-enable-caps-lock", 6883 DEFVAR_LISP ("w32-enable-caps-lock",
7003 &Vw32_enable_caps_lock, 6884 Vw32_enable_caps_lock,
7004 doc: /* If non-nil, the Caps Lock key acts normally. 6885 doc: /* If non-nil, the Caps Lock key acts normally.
7005Set to nil to handle Caps Lock as the `capslock' key. */); 6886Set to nil to handle Caps Lock as the `capslock' key. */);
7006 Vw32_enable_caps_lock = Qt; 6887 Vw32_enable_caps_lock = Qt;
7007 6888
7008 DEFVAR_LISP ("w32-scroll-lock-modifier", 6889 DEFVAR_LISP ("w32-scroll-lock-modifier",
7009 &Vw32_scroll_lock_modifier, 6890 Vw32_scroll_lock_modifier,
7010 doc: /* Modifier to use for the Scroll Lock ON state. 6891 doc: /* Modifier to use for the Scroll Lock ON state.
7011The value can be hyper, super, meta, alt, control or shift for the 6892The value can be hyper, super, meta, alt, control or shift for the
7012respective modifier, or nil to handle Scroll Lock as the `scroll' key. 6893respective modifier, or nil to handle Scroll Lock as the `scroll' key.
@@ -7014,7 +6895,7 @@ Any other value will cause the Scroll Lock key to be ignored. */);
7014 Vw32_scroll_lock_modifier = Qnil; 6895 Vw32_scroll_lock_modifier = Qnil;
7015 6896
7016 DEFVAR_LISP ("w32-lwindow-modifier", 6897 DEFVAR_LISP ("w32-lwindow-modifier",
7017 &Vw32_lwindow_modifier, 6898 Vw32_lwindow_modifier,
7018 doc: /* Modifier to use for the left \"Windows\" key. 6899 doc: /* Modifier to use for the left \"Windows\" key.
7019The value can be hyper, super, meta, alt, control or shift for the 6900The value can be hyper, super, meta, alt, control or shift for the
7020respective modifier, or nil to appear as the `lwindow' key. 6901respective modifier, or nil to appear as the `lwindow' key.
@@ -7022,7 +6903,7 @@ Any other value will cause the key to be ignored. */);
7022 Vw32_lwindow_modifier = Qnil; 6903 Vw32_lwindow_modifier = Qnil;
7023 6904
7024 DEFVAR_LISP ("w32-rwindow-modifier", 6905 DEFVAR_LISP ("w32-rwindow-modifier",
7025 &Vw32_rwindow_modifier, 6906 Vw32_rwindow_modifier,
7026 doc: /* Modifier to use for the right \"Windows\" key. 6907 doc: /* Modifier to use for the right \"Windows\" key.
7027The value can be hyper, super, meta, alt, control or shift for the 6908The value can be hyper, super, meta, alt, control or shift for the
7028respective modifier, or nil to appear as the `rwindow' key. 6909respective modifier, or nil to appear as the `rwindow' key.
@@ -7030,23 +6911,23 @@ Any other value will cause the key to be ignored. */);
7030 Vw32_rwindow_modifier = Qnil; 6911 Vw32_rwindow_modifier = Qnil;
7031 6912
7032 DEFVAR_LISP ("w32-apps-modifier", 6913 DEFVAR_LISP ("w32-apps-modifier",
7033 &Vw32_apps_modifier, 6914 Vw32_apps_modifier,
7034 doc: /* Modifier to use for the \"Apps\" key. 6915 doc: /* Modifier to use for the \"Apps\" key.
7035The value can be hyper, super, meta, alt, control or shift for the 6916The value can be hyper, super, meta, alt, control or shift for the
7036respective modifier, or nil to appear as the `apps' key. 6917respective modifier, or nil to appear as the `apps' key.
7037Any other value will cause the key to be ignored. */); 6918Any other value will cause the key to be ignored. */);
7038 Vw32_apps_modifier = Qnil; 6919 Vw32_apps_modifier = Qnil;
7039 6920
7040 DEFVAR_BOOL ("w32-enable-synthesized-fonts", &w32_enable_synthesized_fonts, 6921 DEFVAR_BOOL ("w32-enable-synthesized-fonts", w32_enable_synthesized_fonts,
7041 doc: /* Non-nil enables selection of artificially italicized and bold fonts. */); 6922 doc: /* Non-nil enables selection of artificially italicized and bold fonts. */);
7042 w32_enable_synthesized_fonts = 0; 6923 w32_enable_synthesized_fonts = 0;
7043 6924
7044 DEFVAR_LISP ("w32-enable-palette", &Vw32_enable_palette, 6925 DEFVAR_LISP ("w32-enable-palette", Vw32_enable_palette,
7045 doc: /* Non-nil enables Windows palette management to map colors exactly. */); 6926 doc: /* Non-nil enables Windows palette management to map colors exactly. */);
7046 Vw32_enable_palette = Qt; 6927 Vw32_enable_palette = Qt;
7047 6928
7048 DEFVAR_INT ("w32-mouse-button-tolerance", 6929 DEFVAR_INT ("w32-mouse-button-tolerance",
7049 &w32_mouse_button_tolerance, 6930 w32_mouse_button_tolerance,
7050 doc: /* Analogue of double click interval for faking middle mouse events. 6931 doc: /* Analogue of double click interval for faking middle mouse events.
7051The value is the minimum time in milliseconds that must elapse between 6932The value is the minimum time in milliseconds that must elapse between
7052left and right button down events before they are considered distinct events. 6933left and right button down events before they are considered distinct events.
@@ -7055,7 +6936,7 @@ button down event is generated instead. */);
7055 w32_mouse_button_tolerance = GetDoubleClickTime () / 2; 6936 w32_mouse_button_tolerance = GetDoubleClickTime () / 2;
7056 6937
7057 DEFVAR_INT ("w32-mouse-move-interval", 6938 DEFVAR_INT ("w32-mouse-move-interval",
7058 &w32_mouse_move_interval, 6939 w32_mouse_move_interval,
7059 doc: /* Minimum interval between mouse move events. 6940 doc: /* Minimum interval between mouse move events.
7060The value is the minimum time in milliseconds that must elapse between 6941The value is the minimum time in milliseconds that must elapse between
7061successive mouse move (or scroll bar drag) events before they are 6942successive mouse move (or scroll bar drag) events before they are
@@ -7063,7 +6944,7 @@ reported as lisp events. */);
7063 w32_mouse_move_interval = 0; 6944 w32_mouse_move_interval = 0;
7064 6945
7065 DEFVAR_BOOL ("w32-pass-extra-mouse-buttons-to-system", 6946 DEFVAR_BOOL ("w32-pass-extra-mouse-buttons-to-system",
7066 &w32_pass_extra_mouse_buttons_to_system, 6947 w32_pass_extra_mouse_buttons_to_system,
7067 doc: /* If non-nil, the fourth and fifth mouse buttons are passed to Windows. 6948 doc: /* If non-nil, the fourth and fifth mouse buttons are passed to Windows.
7068Recent versions of Windows support mice with up to five buttons. 6949Recent versions of Windows support mice with up to five buttons.
7069Since most applications don't support these extra buttons, most mouse 6950Since most applications don't support these extra buttons, most mouse
@@ -7073,7 +6954,7 @@ system to handle them. */);
7073 w32_pass_extra_mouse_buttons_to_system = 0; 6954 w32_pass_extra_mouse_buttons_to_system = 0;
7074 6955
7075 DEFVAR_BOOL ("w32-pass-multimedia-buttons-to-system", 6956 DEFVAR_BOOL ("w32-pass-multimedia-buttons-to-system",
7076 &w32_pass_multimedia_buttons_to_system, 6957 w32_pass_multimedia_buttons_to_system,
7077 doc: /* If non-nil, media buttons are passed to Windows. 6958 doc: /* If non-nil, media buttons are passed to Windows.
7078Some modern keyboards contain buttons for controlling media players, web 6959Some modern keyboards contain buttons for controlling media players, web
7079browsers and other applications. Generally these buttons are handled on a 6960browsers and other applications. Generally these buttons are handled on a
@@ -7096,7 +6977,7 @@ bass-down, bass-boost, bass-up, treble-down, treble-up */);
7096 w32_pass_multimedia_buttons_to_system = 1; 6977 w32_pass_multimedia_buttons_to_system = 1;
7097 6978
7098#if 0 /* TODO: Mouse cursor customization. */ 6979#if 0 /* TODO: Mouse cursor customization. */
7099 DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape, 6980 DEFVAR_LISP ("x-pointer-shape", Vx_pointer_shape,
7100 doc: /* The shape of the pointer when over text. 6981 doc: /* The shape of the pointer when over text.
7101Changing the value does not affect existing frames 6982Changing the value does not affect existing frames
7102unless you set the mouse color. */); 6983unless you set the mouse color. */);
@@ -7106,37 +6987,37 @@ unless you set the mouse color. */);
7106 6987
7107 Vx_mode_pointer_shape = Qnil; 6988 Vx_mode_pointer_shape = Qnil;
7108 6989
7109 DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape, 6990 DEFVAR_LISP ("x-hourglass-pointer-shape", Vx_hourglass_pointer_shape,
7110 doc: /* The shape of the pointer when Emacs is busy. 6991 doc: /* The shape of the pointer when Emacs is busy.
7111This variable takes effect when you create a new frame 6992This variable takes effect when you create a new frame
7112or when you set the mouse color. */); 6993or when you set the mouse color. */);
7113 Vx_hourglass_pointer_shape = Qnil; 6994 Vx_hourglass_pointer_shape = Qnil;
7114 6995
7115 DEFVAR_LISP ("x-sensitive-text-pointer-shape", 6996 DEFVAR_LISP ("x-sensitive-text-pointer-shape",
7116 &Vx_sensitive_text_pointer_shape, 6997 Vx_sensitive_text_pointer_shape,
7117 doc: /* The shape of the pointer when over mouse-sensitive text. 6998 doc: /* The shape of the pointer when over mouse-sensitive text.
7118This variable takes effect when you create a new frame 6999This variable takes effect when you create a new frame
7119or when you set the mouse color. */); 7000or when you set the mouse color. */);
7120 Vx_sensitive_text_pointer_shape = Qnil; 7001 Vx_sensitive_text_pointer_shape = Qnil;
7121 7002
7122 DEFVAR_LISP ("x-window-horizontal-drag-cursor", 7003 DEFVAR_LISP ("x-window-horizontal-drag-cursor",
7123 &Vx_window_horizontal_drag_shape, 7004 Vx_window_horizontal_drag_shape,
7124 doc: /* Pointer shape to use for indicating a window can be dragged horizontally. 7005 doc: /* Pointer shape to use for indicating a window can be dragged horizontally.
7125This variable takes effect when you create a new frame 7006This variable takes effect when you create a new frame
7126or when you set the mouse color. */); 7007or when you set the mouse color. */);
7127 Vx_window_horizontal_drag_shape = Qnil; 7008 Vx_window_horizontal_drag_shape = Qnil;
7128#endif 7009#endif
7129 7010
7130 DEFVAR_LISP ("x-cursor-fore-pixel", &Vx_cursor_fore_pixel, 7011 DEFVAR_LISP ("x-cursor-fore-pixel", Vx_cursor_fore_pixel,
7131 doc: /* A string indicating the foreground color of the cursor box. */); 7012 doc: /* A string indicating the foreground color of the cursor box. */);
7132 Vx_cursor_fore_pixel = Qnil; 7013 Vx_cursor_fore_pixel = Qnil;
7133 7014
7134 DEFVAR_LISP ("x-max-tooltip-size", &Vx_max_tooltip_size, 7015 DEFVAR_LISP ("x-max-tooltip-size", Vx_max_tooltip_size,
7135 doc: /* Maximum size for tooltips. 7016 doc: /* Maximum size for tooltips.
7136Value is a pair (COLUMNS . ROWS). Text larger than this is clipped. */); 7017Value is a pair (COLUMNS . ROWS). Text larger than this is clipped. */);
7137 Vx_max_tooltip_size = Fcons (make_number (80), make_number (40)); 7018 Vx_max_tooltip_size = Fcons (make_number (80), make_number (40));
7138 7019
7139 DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager, 7020 DEFVAR_LISP ("x-no-window-manager", Vx_no_window_manager,
7140 doc: /* Non-nil if no window manager is in use. 7021 doc: /* Non-nil if no window manager is in use.
7141Emacs doesn't try to figure this out; this is always nil 7022Emacs doesn't try to figure this out; this is always nil
7142unless you set it to something else. */); 7023unless you set it to something else. */);
@@ -7145,7 +7026,7 @@ unless you set it to something else. */);
7145 Vx_no_window_manager = Qnil; 7026 Vx_no_window_manager = Qnil;
7146 7027
7147 DEFVAR_LISP ("x-pixel-size-width-font-regexp", 7028 DEFVAR_LISP ("x-pixel-size-width-font-regexp",
7148 &Vx_pixel_size_width_font_regexp, 7029 Vx_pixel_size_width_font_regexp,
7149 doc: /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. 7030 doc: /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.
7150 7031
7151Since Emacs gets width of a font matching with this regexp from 7032Since Emacs gets width of a font matching with this regexp from
@@ -7155,12 +7036,12 @@ Chinese, Japanese, and Korean. */);
7155 Vx_pixel_size_width_font_regexp = Qnil; 7036 Vx_pixel_size_width_font_regexp = Qnil;
7156 7037
7157 DEFVAR_LISP ("w32-bdf-filename-alist", 7038 DEFVAR_LISP ("w32-bdf-filename-alist",
7158 &Vw32_bdf_filename_alist, 7039 Vw32_bdf_filename_alist,
7159 doc: /* List of bdf fonts and their corresponding filenames. */); 7040 doc: /* List of bdf fonts and their corresponding filenames. */);
7160 Vw32_bdf_filename_alist = Qnil; 7041 Vw32_bdf_filename_alist = Qnil;
7161 7042
7162 DEFVAR_BOOL ("w32-strict-fontnames", 7043 DEFVAR_BOOL ("w32-strict-fontnames",
7163 &w32_strict_fontnames, 7044 w32_strict_fontnames,
7164 doc: /* Non-nil means only use fonts that are exact matches for those requested. 7045 doc: /* Non-nil means only use fonts that are exact matches for those requested.
7165Default is nil, which allows old fontnames that are not XLFD compliant, 7046Default is nil, which allows old fontnames that are not XLFD compliant,
7166and allows third-party CJK display to work by specifying false charset 7047and allows third-party CJK display to work by specifying false charset
@@ -7170,7 +7051,7 @@ fontsets are automatically created. */);
7170 w32_strict_fontnames = 0; 7051 w32_strict_fontnames = 0;
7171 7052
7172 DEFVAR_BOOL ("w32-strict-painting", 7053 DEFVAR_BOOL ("w32-strict-painting",
7173 &w32_strict_painting, 7054 w32_strict_painting,
7174 doc: /* Non-nil means use strict rules for repainting frames. 7055 doc: /* Non-nil means use strict rules for repainting frames.
7175Set this to nil to get the old behavior for repainting; this should 7056Set this to nil to get the old behavior for repainting; this should
7176only be necessary if the default setting causes problems. */); 7057only be necessary if the default setting causes problems. */);
@@ -7279,7 +7160,7 @@ globals_of_w32fns (void)
7279 GetProcAddress (imm32_lib, "ImmSetCompositionWindow"); 7160 GetProcAddress (imm32_lib, "ImmSetCompositionWindow");
7280 } 7161 }
7281 DEFVAR_INT ("w32-ansi-code-page", 7162 DEFVAR_INT ("w32-ansi-code-page",
7282 &w32_ansi_code_page, 7163 w32_ansi_code_page,
7283 doc: /* The ANSI code page used by the system. */); 7164 doc: /* The ANSI code page used by the system. */);
7284 w32_ansi_code_page = GetACP (); 7165 w32_ansi_code_page = GetACP ();
7285 7166
diff --git a/src/w32font.c b/src/w32font.c
index 46add9094f8..4af80eabaca 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -100,9 +100,6 @@ static Lisp_Object Qw32_charset_arabic, Qw32_charset_greek;
100static Lisp_Object Qw32_charset_hebrew, Qw32_charset_vietnamese; 100static Lisp_Object Qw32_charset_hebrew, Qw32_charset_vietnamese;
101static Lisp_Object Qw32_charset_thai, Qw32_charset_johab, Qw32_charset_mac; 101static Lisp_Object Qw32_charset_thai, Qw32_charset_johab, Qw32_charset_mac;
102 102
103/* Associative list linking character set strings to Windows codepages. */
104static Lisp_Object Vw32_charset_info_alist;
105
106/* Font spacing symbols - defined in font.c. */ 103/* Font spacing symbols - defined in font.c. */
107extern Lisp_Object Qc, Qp, Qm; 104extern Lisp_Object Qc, Qp, Qm;
108 105
@@ -2535,7 +2532,7 @@ syms_of_w32font (void)
2535 2532
2536 /* W32 font encodings. */ 2533 /* W32 font encodings. */
2537 DEFVAR_LISP ("w32-charset-info-alist", 2534 DEFVAR_LISP ("w32-charset-info-alist",
2538 &Vw32_charset_info_alist, 2535 Vw32_charset_info_alist,
2539 doc: /* Alist linking Emacs character sets to Windows fonts and codepages. 2536 doc: /* Alist linking Emacs character sets to Windows fonts and codepages.
2540Each entry should be of the form: 2537Each entry should be of the form:
2541 2538
diff --git a/src/w32inevt.c b/src/w32inevt.c
index 0b4bc558045..cb98cbcb2bd 100644
--- a/src/w32inevt.c
+++ b/src/w32inevt.c
@@ -51,25 +51,8 @@ static DWORD movement_time;
51/* from keyboard.c */ 51/* from keyboard.c */
52extern void reinvoke_input_signal (void); 52extern void reinvoke_input_signal (void);
53 53
54/* from w32console.c */
55extern int w32_use_full_screen_buffer;
56
57/* from w32fns.c */
58extern Lisp_Object Vw32_alt_is_meta;
59extern unsigned int map_keypad_keys (unsigned int, unsigned int); 54extern unsigned int map_keypad_keys (unsigned int, unsigned int);
60 55
61/* from w32term */
62extern Lisp_Object Vw32_capslock_is_shiftlock;
63extern Lisp_Object Vw32_enable_caps_lock;
64extern Lisp_Object Vw32_enable_num_lock;
65extern Lisp_Object Vw32_recognize_altgr;
66extern Lisp_Object Vw32_pass_lwindow_to_system;
67extern Lisp_Object Vw32_pass_rwindow_to_system;
68extern Lisp_Object Vw32_phantom_key_code;
69extern Lisp_Object Vw32_lwindow_modifier;
70extern Lisp_Object Vw32_rwindow_modifier;
71extern Lisp_Object Vw32_apps_modifier;
72extern Lisp_Object Vw32_scroll_lock_modifier;
73extern unsigned int w32_key_to_modifier (int key); 56extern unsigned int w32_key_to_modifier (int key);
74 57
75/* Event queue */ 58/* Event queue */
diff --git a/src/w32menu.c b/src/w32menu.c
index 26938ff065e..7f883e3de84 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -89,9 +89,6 @@ extern Lisp_Object Qmenu_bar;
89 89
90extern Lisp_Object QCtoggle, QCradio; 90extern Lisp_Object QCtoggle, QCradio;
91 91
92extern Lisp_Object Voverriding_local_map;
93extern Lisp_Object Voverriding_local_map_menu_flag;
94
95extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; 92extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
96 93
97extern Lisp_Object Qmenu_bar_update_hook; 94extern Lisp_Object Qmenu_bar_update_hook;
diff --git a/src/w32proc.c b/src/w32proc.c
index d209a216ed9..c490dee6909 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -68,47 +68,6 @@ extern BOOL WINAPI IsValidLocale (LCID, DWORD);
68 + ((DWORD)(var) - (section)->VirtualAddress) \ 68 + ((DWORD)(var) - (section)->VirtualAddress) \
69 + (filedata).file_base)) 69 + (filedata).file_base))
70 70
71/* Control whether spawnve quotes arguments as necessary to ensure
72 correct parsing by child process. Because not all uses of spawnve
73 are careful about constructing argv arrays, we make this behavior
74 conditional (off by default). */
75Lisp_Object Vw32_quote_process_args;
76
77/* Control whether create_child causes the process' window to be
78 hidden. The default is nil. */
79Lisp_Object Vw32_start_process_show_window;
80
81/* Control whether create_child causes the process to inherit Emacs'
82 console window, or be given a new one of its own. The default is
83 nil, to allow multiple DOS programs to run on Win95. Having separate
84 consoles also allows Emacs to cleanly terminate process groups. */
85Lisp_Object Vw32_start_process_share_console;
86
87/* Control whether create_child cause the process to inherit Emacs'
88 error mode setting. The default is t, to minimize the possibility of
89 subprocesses blocking when accessing unmounted drives. */
90Lisp_Object Vw32_start_process_inherit_error_mode;
91
92/* Time to sleep before reading from a subprocess output pipe - this
93 avoids the inefficiency of frequently reading small amounts of data.
94 This is primarily necessary for handling DOS processes on Windows 95,
95 but is useful for W32 processes on both Windows 95 and NT as well. */
96int w32_pipe_read_delay;
97
98/* Control conversion of upper case file names to lower case.
99 nil means no, t means yes. */
100Lisp_Object Vw32_downcase_file_names;
101
102/* Control whether stat() attempts to generate fake but hopefully
103 "accurate" inode values, by hashing the absolute truenames of files.
104 This should detect aliasing between long and short names, but still
105 allows the possibility of hash collisions. */
106Lisp_Object Vw32_generate_fake_inodes;
107
108/* Control whether stat() attempts to determine file type and link count
109 exactly, at the expense of slower operation. Since true hard links
110 are supported on NTFS volumes, this is only relevant on NT. */
111Lisp_Object Vw32_get_true_file_attributes;
112extern Lisp_Object Qlocal; 71extern Lisp_Object Qlocal;
113 72
114Lisp_Object Qhigh, Qlow; 73Lisp_Object Qhigh, Qlow;
@@ -1707,8 +1666,6 @@ extern HANDLE winsock_lib;
1707extern BOOL term_winsock (void); 1666extern BOOL term_winsock (void);
1708extern BOOL init_winsock (int load_now); 1667extern BOOL init_winsock (int load_now);
1709 1668
1710extern Lisp_Object Vsystem_name;
1711
1712DEFUN ("w32-has-winsock", Fw32_has_winsock, Sw32_has_winsock, 0, 1, 0, 1669DEFUN ("w32-has-winsock", Fw32_has_winsock, Sw32_has_winsock, 0, 1, 0,
1713 doc: /* Test for presence of the Windows socket library `winsock'. 1670 doc: /* Test for presence of the Windows socket library `winsock'.
1714Returns non-nil if winsock support is present, nil otherwise. 1671Returns non-nil if winsock support is present, nil otherwise.
@@ -2284,7 +2241,7 @@ syms_of_ntproc (void)
2284 defsubr (&Sw32_get_keyboard_layout); 2241 defsubr (&Sw32_get_keyboard_layout);
2285 defsubr (&Sw32_set_keyboard_layout); 2242 defsubr (&Sw32_set_keyboard_layout);
2286 2243
2287 DEFVAR_LISP ("w32-quote-process-args", &Vw32_quote_process_args, 2244 DEFVAR_LISP ("w32-quote-process-args", Vw32_quote_process_args,
2288 doc: /* Non-nil enables quoting of process arguments to ensure correct parsing. 2245 doc: /* Non-nil enables quoting of process arguments to ensure correct parsing.
2289Because Windows does not directly pass argv arrays to child processes, 2246Because Windows does not directly pass argv arrays to child processes,
2290programs have to reconstruct the argv array by parsing the command 2247programs have to reconstruct the argv array by parsing the command
@@ -2297,14 +2254,14 @@ will be chosen based on the type of the program. */);
2297 Vw32_quote_process_args = Qt; 2254 Vw32_quote_process_args = Qt;
2298 2255
2299 DEFVAR_LISP ("w32-start-process-show-window", 2256 DEFVAR_LISP ("w32-start-process-show-window",
2300 &Vw32_start_process_show_window, 2257 Vw32_start_process_show_window,
2301 doc: /* When nil, new child processes hide their windows. 2258 doc: /* When nil, new child processes hide their windows.
2302When non-nil, they show their window in the method of their choice. 2259When non-nil, they show their window in the method of their choice.
2303This variable doesn't affect GUI applications, which will never be hidden. */); 2260This variable doesn't affect GUI applications, which will never be hidden. */);
2304 Vw32_start_process_show_window = Qnil; 2261 Vw32_start_process_show_window = Qnil;
2305 2262
2306 DEFVAR_LISP ("w32-start-process-share-console", 2263 DEFVAR_LISP ("w32-start-process-share-console",
2307 &Vw32_start_process_share_console, 2264 Vw32_start_process_share_console,
2308 doc: /* When nil, new child processes are given a new console. 2265 doc: /* When nil, new child processes are given a new console.
2309When non-nil, they share the Emacs console; this has the limitation of 2266When non-nil, they share the Emacs console; this has the limitation of
2310allowing only one DOS subprocess to run at a time (whether started directly 2267allowing only one DOS subprocess to run at a time (whether started directly
@@ -2314,13 +2271,13 @@ otherwise respond to interrupts from Emacs. */);
2314 Vw32_start_process_share_console = Qnil; 2271 Vw32_start_process_share_console = Qnil;
2315 2272
2316 DEFVAR_LISP ("w32-start-process-inherit-error-mode", 2273 DEFVAR_LISP ("w32-start-process-inherit-error-mode",
2317 &Vw32_start_process_inherit_error_mode, 2274 Vw32_start_process_inherit_error_mode,
2318 doc: /* When nil, new child processes revert to the default error mode. 2275 doc: /* When nil, new child processes revert to the default error mode.
2319When non-nil, they inherit their error mode setting from Emacs, which stops 2276When non-nil, they inherit their error mode setting from Emacs, which stops
2320them blocking when trying to access unmounted drives etc. */); 2277them blocking when trying to access unmounted drives etc. */);
2321 Vw32_start_process_inherit_error_mode = Qt; 2278 Vw32_start_process_inherit_error_mode = Qt;
2322 2279
2323 DEFVAR_INT ("w32-pipe-read-delay", &w32_pipe_read_delay, 2280 DEFVAR_INT ("w32-pipe-read-delay", w32_pipe_read_delay,
2324 doc: /* Forced delay before reading subprocess output. 2281 doc: /* Forced delay before reading subprocess output.
2325This is done to improve the buffering of subprocess output, by 2282This is done to improve the buffering of subprocess output, by
2326avoiding the inefficiency of frequently reading small amounts of data. 2283avoiding the inefficiency of frequently reading small amounts of data.
@@ -2331,7 +2288,7 @@ of time slices to wait (effectively boosting the priority of the child
2331process temporarily). A value of zero disables waiting entirely. */); 2288process temporarily). A value of zero disables waiting entirely. */);
2332 w32_pipe_read_delay = 50; 2289 w32_pipe_read_delay = 50;
2333 2290
2334 DEFVAR_LISP ("w32-downcase-file-names", &Vw32_downcase_file_names, 2291 DEFVAR_LISP ("w32-downcase-file-names", Vw32_downcase_file_names,
2335 doc: /* Non-nil means convert all-upper case file names to lower case. 2292 doc: /* Non-nil means convert all-upper case file names to lower case.
2336This applies when performing completions and file name expansion. 2293This applies when performing completions and file name expansion.
2337Note that the value of this setting also affects remote file names, 2294Note that the value of this setting also affects remote file names,
@@ -2340,7 +2297,7 @@ filesystems via ange-ftp. */);
2340 Vw32_downcase_file_names = Qnil; 2297 Vw32_downcase_file_names = Qnil;
2341 2298
2342#if 0 2299#if 0
2343 DEFVAR_LISP ("w32-generate-fake-inodes", &Vw32_generate_fake_inodes, 2300 DEFVAR_LISP ("w32-generate-fake-inodes", Vw32_generate_fake_inodes,
2344 doc: /* Non-nil means attempt to fake realistic inode values. 2301 doc: /* Non-nil means attempt to fake realistic inode values.
2345This works by hashing the truename of files, and should detect 2302This works by hashing the truename of files, and should detect
2346aliasing between long and short (8.3 DOS) names, but can have 2303aliasing between long and short (8.3 DOS) names, but can have
@@ -2349,7 +2306,7 @@ the truename of a file can be slow. */);
2349 Vw32_generate_fake_inodes = Qnil; 2306 Vw32_generate_fake_inodes = Qnil;
2350#endif 2307#endif
2351 2308
2352 DEFVAR_LISP ("w32-get-true-file-attributes", &Vw32_get_true_file_attributes, 2309 DEFVAR_LISP ("w32-get-true-file-attributes", Vw32_get_true_file_attributes,
2353 doc: /* Non-nil means determine accurate file attributes in `file-attributes'. 2310 doc: /* Non-nil means determine accurate file attributes in `file-attributes'.
2354This option controls whether to issue additional system calls to determine 2311This option controls whether to issue additional system calls to determine
2355accurate link counts, file type, and ownership information. It is more 2312accurate link counts, file type, and ownership information. It is more
diff --git a/src/w32select.c b/src/w32select.c
index 369f49ebbeb..c323e34fa57 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -111,13 +111,6 @@ static void setup_windows_coding_system (Lisp_Object coding_system,
111 PRIMARY and SECONDARY. */ 111 PRIMARY and SECONDARY. */
112Lisp_Object QCLIPBOARD; 112Lisp_Object QCLIPBOARD;
113 113
114/* Coding system for communicating with other programs via the
115 clipboard. */
116static Lisp_Object Vselection_coding_system;
117
118/* Coding system for the next communication with other programs. */
119static Lisp_Object Vnext_selection_coding_system;
120
121/* Internal pseudo-constants, initialized in globals_of_w32select() 114/* Internal pseudo-constants, initialized in globals_of_w32select()
122 based on current system parameters. */ 115 based on current system parameters. */
123static LCID DEFAULT_LCID; 116static LCID DEFAULT_LCID;
@@ -1068,7 +1061,7 @@ syms_of_w32select (void)
1068 defsubr (&Sw32_get_clipboard_data); 1061 defsubr (&Sw32_get_clipboard_data);
1069 defsubr (&Sx_selection_exists_p); 1062 defsubr (&Sx_selection_exists_p);
1070 1063
1071 DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system, 1064 DEFVAR_LISP ("selection-coding-system", Vselection_coding_system,
1072 doc: /* Coding system for communicating with other programs. 1065 doc: /* Coding system for communicating with other programs.
1073 1066
1074For MS-Windows and MS-DOS: 1067For MS-Windows and MS-DOS:
@@ -1102,7 +1095,7 @@ The default value is nil. */);
1102 below. */ 1095 below. */
1103 Vselection_coding_system = Qnil; 1096 Vselection_coding_system = Qnil;
1104 1097
1105 DEFVAR_LISP ("next-selection-coding-system", &Vnext_selection_coding_system, 1098 DEFVAR_LISP ("next-selection-coding-system", Vnext_selection_coding_system,
1106 doc: /* Coding system for the next communication with other programs. 1099 doc: /* Coding system for the next communication with other programs.
1107Usually, `selection-coding-system' is used for communicating with 1100Usually, `selection-coding-system' is used for communicating with
1108other programs (X Windows clients or MS Windows programs). But, if this 1101other programs (X Windows clients or MS Windows programs). But, if this
diff --git a/src/w32term.c b/src/w32term.c
index 3cf4a0e9657..dfe844f8827 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -65,10 +65,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
65static int max_fringe_bmp = 0; 65static int max_fringe_bmp = 0;
66static HBITMAP *fringe_bmp = 0; 66static HBITMAP *fringe_bmp = 0;
67 67
68/* Non-nil means Emacs uses toolkit scroll bars. */
69
70Lisp_Object Vx_toolkit_scroll_bars;
71
72/* Temporary variables for w32_read_socket. */ 68/* Temporary variables for w32_read_socket. */
73 69
74static int last_mousemove_x = 0; 70static int last_mousemove_x = 0;
@@ -87,13 +83,6 @@ static int any_help_event_p;
87/* Last window where we saw the mouse. Used by mouse-autoselect-window. */ 83/* Last window where we saw the mouse. Used by mouse-autoselect-window. */
88static Lisp_Object last_window; 84static Lisp_Object last_window;
89 85
90/* Non-zero means make use of UNDERLINE_POSITION font properties. */
91int x_use_underline_position_properties;
92
93/* Non-zero means to draw the underline at the same place as the descent line. */
94
95int x_underline_at_descent_line;
96
97extern unsigned int msh_mousewheel; 86extern unsigned int msh_mousewheel;
98 87
99extern void free_frame_menubar (struct frame *); 88extern void free_frame_menubar (struct frame *);
@@ -166,8 +155,6 @@ HWND w32_system_caret_hwnd;
166int w32_system_caret_height; 155int w32_system_caret_height;
167int w32_system_caret_x; 156int w32_system_caret_x;
168int w32_system_caret_y; 157int w32_system_caret_y;
169int w32_use_visible_system_caret;
170
171DWORD dwWindowsThreadId = 0; 158DWORD dwWindowsThreadId = 0;
172HANDLE hWindowsThread = NULL; 159HANDLE hWindowsThread = NULL;
173DWORD dwMainThreadId = 0; 160DWORD dwMainThreadId = 0;
@@ -186,19 +173,6 @@ static RECT last_mouse_glyph;
186static FRAME_PTR last_mouse_glyph_frame; 173static FRAME_PTR last_mouse_glyph_frame;
187static Lisp_Object last_mouse_press_frame; 174static Lisp_Object last_mouse_press_frame;
188 175
189int w32_num_mouse_buttons;
190
191Lisp_Object Vw32_swap_mouse_buttons;
192
193/* Control whether x_raise_frame also sets input focus. */
194Lisp_Object Vw32_grab_focus_on_raise;
195
196/* Control whether Caps Lock affects non-ascii characters. */
197Lisp_Object Vw32_capslock_is_shiftlock;
198
199/* Control whether right-alt and left-ctrl should be recognized as AltGr. */
200Lisp_Object Vw32_recognize_altgr;
201
202/* The scroll bar in which the last motion event occurred. 176/* The scroll bar in which the last motion event occurred.
203 177
204 If the last motion event occurred in a scroll bar, we set this 178 If the last motion event occurred in a scroll bar, we set this
@@ -226,11 +200,6 @@ static int volatile input_signal_count;
226static int input_signal_count; 200static int input_signal_count;
227#endif 201#endif
228 202
229extern Lisp_Object Vcommand_line_args, Vsystem_name;
230
231/* A mask of extra modifier bits to put into every keyboard char. */
232extern EMACS_INT extra_keyboard_modifiers;
233
234/* Keyboard code page - may be changed by language-change events. */ 203/* Keyboard code page - may be changed by language-change events. */
235static int keyboard_codepage; 204static int keyboard_codepage;
236 205
@@ -6383,18 +6352,18 @@ syms_of_w32term (void)
6383 DEFSYM (Qvendor_specific_keysyms, "vendor-specific-keysyms"); 6352 DEFSYM (Qvendor_specific_keysyms, "vendor-specific-keysyms");
6384 6353
6385 DEFVAR_INT ("w32-num-mouse-buttons", 6354 DEFVAR_INT ("w32-num-mouse-buttons",
6386 &w32_num_mouse_buttons, 6355 w32_num_mouse_buttons,
6387 doc: /* Number of physical mouse buttons. */); 6356 doc: /* Number of physical mouse buttons. */);
6388 w32_num_mouse_buttons = 2; 6357 w32_num_mouse_buttons = 2;
6389 6358
6390 DEFVAR_LISP ("w32-swap-mouse-buttons", 6359 DEFVAR_LISP ("w32-swap-mouse-buttons",
6391 &Vw32_swap_mouse_buttons, 6360 Vw32_swap_mouse_buttons,
6392 doc: /* Swap the mapping of middle and right mouse buttons. 6361 doc: /* Swap the mapping of middle and right mouse buttons.
6393When nil, middle button is mouse-2 and right button is mouse-3. */); 6362When nil, middle button is mouse-2 and right button is mouse-3. */);
6394 Vw32_swap_mouse_buttons = Qnil; 6363 Vw32_swap_mouse_buttons = Qnil;
6395 6364
6396 DEFVAR_LISP ("w32-grab-focus-on-raise", 6365 DEFVAR_LISP ("w32-grab-focus-on-raise",
6397 &Vw32_grab_focus_on_raise, 6366 Vw32_grab_focus_on_raise,
6398 doc: /* Raised frame grabs input focus. 6367 doc: /* Raised frame grabs input focus.
6399When t, `raise-frame' grabs input focus as well. This fits well 6368When t, `raise-frame' grabs input focus as well. This fits well
6400with the normal Windows click-to-focus policy, but might not be 6369with the normal Windows click-to-focus policy, but might not be
@@ -6402,20 +6371,20 @@ desirable when using a point-to-focus policy. */);
6402 Vw32_grab_focus_on_raise = Qt; 6371 Vw32_grab_focus_on_raise = Qt;
6403 6372
6404 DEFVAR_LISP ("w32-capslock-is-shiftlock", 6373 DEFVAR_LISP ("w32-capslock-is-shiftlock",
6405 &Vw32_capslock_is_shiftlock, 6374 Vw32_capslock_is_shiftlock,
6406 doc: /* Apply CapsLock state to non character input keys. 6375 doc: /* Apply CapsLock state to non character input keys.
6407When nil, CapsLock only affects normal character input keys. */); 6376When nil, CapsLock only affects normal character input keys. */);
6408 Vw32_capslock_is_shiftlock = Qnil; 6377 Vw32_capslock_is_shiftlock = Qnil;
6409 6378
6410 DEFVAR_LISP ("w32-recognize-altgr", 6379 DEFVAR_LISP ("w32-recognize-altgr",
6411 &Vw32_recognize_altgr, 6380 Vw32_recognize_altgr,
6412 doc: /* Recognize right-alt and left-ctrl as AltGr. 6381 doc: /* Recognize right-alt and left-ctrl as AltGr.
6413When nil, the right-alt and left-ctrl key combination is 6382When nil, the right-alt and left-ctrl key combination is
6414interpreted normally. */); 6383interpreted normally. */);
6415 Vw32_recognize_altgr = Qt; 6384 Vw32_recognize_altgr = Qt;
6416 6385
6417 DEFVAR_BOOL ("w32-use-visible-system-caret", 6386 DEFVAR_BOOL ("w32-use-visible-system-caret",
6418 &w32_use_visible_system_caret, 6387 w32_use_visible_system_caret,
6419 doc: /* Flag to make the system caret visible. 6388 doc: /* Flag to make the system caret visible.
6420When this is non-nil, Emacs will indicate the position of point by 6389When this is non-nil, Emacs will indicate the position of point by
6421using the system caret instead of drawing its own cursor. Some screen 6390using the system caret instead of drawing its own cursor. Some screen
@@ -6432,7 +6401,7 @@ the cursor have no effect. */);
6432 /* We don't yet support this, but defining this here avoids whining 6401 /* We don't yet support this, but defining this here avoids whining
6433 from cus-start.el and other places, like "M-x set-variable". */ 6402 from cus-start.el and other places, like "M-x set-variable". */
6434 DEFVAR_BOOL ("x-use-underline-position-properties", 6403 DEFVAR_BOOL ("x-use-underline-position-properties",
6435 &x_use_underline_position_properties, 6404 x_use_underline_position_properties,
6436 doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties. 6405 doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
6437A value of nil means ignore them. If you encounter fonts with bogus 6406A value of nil means ignore them. If you encounter fonts with bogus
6438UNDERLINE_POSITION font properties, for example 7x13 on XFree prior 6407UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
@@ -6442,14 +6411,14 @@ sizes. */);
6442 x_use_underline_position_properties = 0; 6411 x_use_underline_position_properties = 0;
6443 6412
6444 DEFVAR_BOOL ("x-underline-at-descent-line", 6413 DEFVAR_BOOL ("x-underline-at-descent-line",
6445 &x_underline_at_descent_line, 6414 x_underline_at_descent_line,
6446 doc: /* *Non-nil means to draw the underline at the same place as the descent line. 6415 doc: /* *Non-nil means to draw the underline at the same place as the descent line.
6447A value of nil means to draw the underline according to the value of the 6416A value of nil means to draw the underline according to the value of the
6448variable `x-use-underline-position-properties', which is usually at the 6417variable `x-use-underline-position-properties', which is usually at the
6449baseline level. The default value is nil. */); 6418baseline level. The default value is nil. */);
6450 x_underline_at_descent_line = 0; 6419 x_underline_at_descent_line = 0;
6451 6420
6452 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, 6421 DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars,
6453 doc: /* Which toolkit scroll bars Emacs uses, if any. 6422 doc: /* Which toolkit scroll bars Emacs uses, if any.
6454A value of nil means Emacs doesn't use toolkit scroll bars. 6423A value of nil means Emacs doesn't use toolkit scroll bars.
6455With the X Window system, the value is a symbol describing the 6424With the X Window system, the value is a symbol describing the
diff --git a/src/w32term.h b/src/w32term.h
index e6b29b41031..0731957cbd9 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -61,12 +61,6 @@ struct w32_bitmap_record
61 int height, width, depth; 61 int height, width, depth;
62}; 62};
63 63
64/* Palette book-keeping stuff for mapping requested colors into the
65 system palette. Keep a ref-counted list of requested colors and
66 regenerate the app palette whenever the requested list changes. */
67
68extern Lisp_Object Vw32_enable_palette;
69
70struct w32_palette_entry { 64struct w32_palette_entry {
71 struct w32_palette_entry * next; 65 struct w32_palette_entry * next;
72 PALETTEENTRY entry; 66 PALETTEENTRY entry;
@@ -194,9 +188,6 @@ extern struct w32_display_info one_w32_display_info;
194 FONT-LIST-CACHE records previous values returned by x-list-fonts. */ 188 FONT-LIST-CACHE records previous values returned by x-list-fonts. */
195extern Lisp_Object w32_display_name_list; 189extern Lisp_Object w32_display_name_list;
196 190
197/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
198extern Lisp_Object Vx_pixel_size_width_font_regexp;
199
200extern struct frame *x_window_to_frame (struct w32_display_info *, HWND); 191extern struct frame *x_window_to_frame (struct w32_display_info *, HWND);
201 192
202struct w32_display_info *x_display_info_for_name (Lisp_Object); 193struct w32_display_info *x_display_info_for_name (Lisp_Object);
diff --git a/src/window.c b/src/window.c
index 69dc8c7c68e..1dd824eeb6f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -114,42 +114,10 @@ Lisp_Object minibuf_window;
114 114
115Lisp_Object minibuf_selected_window; 115Lisp_Object minibuf_selected_window;
116 116
117/* Non-nil means it is the window for C-M-v to scroll
118 when the mini-buffer is selected. */
119
120Lisp_Object Vminibuf_scroll_window;
121
122/* Non-nil means this is the buffer whose window C-M-v should scroll. */
123
124Lisp_Object Vother_window_scroll_buffer;
125
126/* Non-nil means it's function to call to display temp buffers. */
127
128Lisp_Object Vtemp_buffer_show_function;
129
130/* Non-zero means line and page scrolling on tall lines (with images)
131 does partial scrolling by modifying window-vscroll. */
132
133int auto_window_vscroll_p;
134
135/* Non-zero means to use mode-line-inactive face in all windows but the
136 selected-window and the minibuffer-scroll-window when the
137 minibuffer is active. */
138int mode_line_in_non_selected_windows;
139
140/* If a window gets smaller than either of these, it is removed. */
141
142EMACS_INT window_min_height;
143EMACS_INT window_min_width;
144
145/* Hook run at end of temp_output_buffer_show. */ 117/* Hook run at end of temp_output_buffer_show. */
146 118
147Lisp_Object Qtemp_buffer_show_hook; 119Lisp_Object Qtemp_buffer_show_hook;
148 120
149/* Number of lines of continuity in scrolling by screenfuls. */
150
151EMACS_INT next_screen_context_lines;
152
153/* Incremented for each window created. */ 121/* Incremented for each window created. */
154 122
155static int sequence_number; 123static int sequence_number;
@@ -166,17 +134,6 @@ static int inhibit_point_swap;
166/* Hook to run when window config changes. */ 134/* Hook to run when window config changes. */
167 135
168static Lisp_Object Qwindow_configuration_change_hook; 136static Lisp_Object Qwindow_configuration_change_hook;
169static Lisp_Object Vwindow_configuration_change_hook;
170
171/* Non-nil means scroll commands try to put point
172 at the same screen height as previously. */
173
174Lisp_Object Vscroll_preserve_screen_position;
175
176/* Non-nil means that text is inserted before window's markers. */
177
178Lisp_Object Vwindow_point_insertion_type;
179
180/* Incremented by 1 whenever a window is deleted. */ 137/* Incremented by 1 whenever a window is deleted. */
181 138
182int window_deletion_count; 139int window_deletion_count;
@@ -194,17 +151,7 @@ static int window_scroll_preserve_vpos;
194#if 0 /* This isn't used anywhere. */ 151#if 0 /* This isn't used anywhere. */
195/* Nonzero means we can split a frame even if it is "unsplittable". */ 152/* Nonzero means we can split a frame even if it is "unsplittable". */
196static int inhibit_frame_unsplittable; 153static int inhibit_frame_unsplittable;
197#endif /* 0 */ 154#endif extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
198
199extern EMACS_INT scroll_margin;
200
201extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
202
203/* If non-nil, then the `recenter' command with a nil argument
204 the entire frame to be redrawn; the special value `tty' causes the
205 frame to be redrawn only if it is a tty frame. */
206
207static Lisp_Object Vrecenter_redisplay;
208 155
209 156
210DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0, 157DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0,
@@ -7101,7 +7048,7 @@ syms_of_window (void)
7101 7048
7102 inhibit_point_swap = 0; 7049 inhibit_point_swap = 0;
7103 7050
7104 DEFVAR_LISP ("temp-buffer-show-function", &Vtemp_buffer_show_function, 7051 DEFVAR_LISP ("temp-buffer-show-function", Vtemp_buffer_show_function,
7105 doc: /* Non-nil means call as function to display a help buffer. 7052 doc: /* Non-nil means call as function to display a help buffer.
7106The function is called with one argument, the buffer to be displayed. 7053The function is called with one argument, the buffer to be displayed.
7107Used by `with-output-to-temp-buffer'. 7054Used by `with-output-to-temp-buffer'.
@@ -7109,29 +7056,29 @@ If this function is used, then it must do the entire job of showing
7109the buffer; `temp-buffer-show-hook' is not run unless this function runs it. */); 7056the buffer; `temp-buffer-show-hook' is not run unless this function runs it. */);
7110 Vtemp_buffer_show_function = Qnil; 7057 Vtemp_buffer_show_function = Qnil;
7111 7058
7112 DEFVAR_LISP ("minibuffer-scroll-window", &Vminibuf_scroll_window, 7059 DEFVAR_LISP ("minibuffer-scroll-window", Vminibuf_scroll_window,
7113 doc: /* Non-nil means it is the window that C-M-v in minibuffer should scroll. */); 7060 doc: /* Non-nil means it is the window that C-M-v in minibuffer should scroll. */);
7114 Vminibuf_scroll_window = Qnil; 7061 Vminibuf_scroll_window = Qnil;
7115 7062
7116 DEFVAR_BOOL ("mode-line-in-non-selected-windows", &mode_line_in_non_selected_windows, 7063 DEFVAR_BOOL ("mode-line-in-non-selected-windows", mode_line_in_non_selected_windows,
7117 doc: /* Non-nil means to use `mode-line-inactive' face in non-selected windows. 7064 doc: /* Non-nil means to use `mode-line-inactive' face in non-selected windows.
7118If the minibuffer is active, the `minibuffer-scroll-window' mode line 7065If the minibuffer is active, the `minibuffer-scroll-window' mode line
7119is displayed in the `mode-line' face. */); 7066is displayed in the `mode-line' face. */);
7120 mode_line_in_non_selected_windows = 1; 7067 mode_line_in_non_selected_windows = 1;
7121 7068
7122 DEFVAR_LISP ("other-window-scroll-buffer", &Vother_window_scroll_buffer, 7069 DEFVAR_LISP ("other-window-scroll-buffer", Vother_window_scroll_buffer,
7123 doc: /* If non-nil, this is a buffer and \\[scroll-other-window] should scroll its window. */); 7070 doc: /* If non-nil, this is a buffer and \\[scroll-other-window] should scroll its window. */);
7124 Vother_window_scroll_buffer = Qnil; 7071 Vother_window_scroll_buffer = Qnil;
7125 7072
7126 DEFVAR_BOOL ("auto-window-vscroll", &auto_window_vscroll_p, 7073 DEFVAR_BOOL ("auto-window-vscroll", auto_window_vscroll_p,
7127 doc: /* *Non-nil means to automatically adjust `window-vscroll' to view tall lines. */); 7074 doc: /* *Non-nil means to automatically adjust `window-vscroll' to view tall lines. */);
7128 auto_window_vscroll_p = 1; 7075 auto_window_vscroll_p = 1;
7129 7076
7130 DEFVAR_INT ("next-screen-context-lines", &next_screen_context_lines, 7077 DEFVAR_INT ("next-screen-context-lines", next_screen_context_lines,
7131 doc: /* *Number of lines of continuity when scrolling by screenfuls. */); 7078 doc: /* *Number of lines of continuity when scrolling by screenfuls. */);
7132 next_screen_context_lines = 2; 7079 next_screen_context_lines = 2;
7133 7080
7134 DEFVAR_INT ("window-min-height", &window_min_height, 7081 DEFVAR_INT ("window-min-height", window_min_height,
7135 doc: /* Allow deleting windows less than this tall. 7082 doc: /* Allow deleting windows less than this tall.
7136The value is measured in line units. If a window wants a modeline it 7083The value is measured in line units. If a window wants a modeline it
7137is counted as one line. 7084is counted as one line.
@@ -7140,7 +7087,7 @@ Emacs honors settings of this variable when enlarging or shrinking
7140windows vertically. A value less than 1 is invalid. */); 7087windows vertically. A value less than 1 is invalid. */);
7141 window_min_height = 4; 7088 window_min_height = 4;
7142 7089
7143 DEFVAR_INT ("window-min-width", &window_min_width, 7090 DEFVAR_INT ("window-min-width", window_min_width,
7144 doc: /* Allow deleting windows less than this wide. 7091 doc: /* Allow deleting windows less than this wide.
7145The value is measured in characters and includes any fringes or 7092The value is measured in characters and includes any fringes or
7146the scrollbar. 7093the scrollbar.
@@ -7150,7 +7097,7 @@ windows horizontally. A value less than 2 is invalid. */);
7150 window_min_width = 10; 7097 window_min_width = 10;
7151 7098
7152 DEFVAR_LISP ("scroll-preserve-screen-position", 7099 DEFVAR_LISP ("scroll-preserve-screen-position",
7153 &Vscroll_preserve_screen_position, 7100 Vscroll_preserve_screen_position,
7154 doc: /* *Controls if scroll commands move point to keep its screen position unchanged. 7101 doc: /* *Controls if scroll commands move point to keep its screen position unchanged.
7155A value of nil means point does not keep its screen position except 7102A value of nil means point does not keep its screen position except
7156at the scroll margin or window boundary respectively. 7103at the scroll margin or window boundary respectively.
@@ -7162,19 +7109,19 @@ Scroll commands should have the `scroll-command' property
7162on their symbols to be controlled by this variable. */); 7109on their symbols to be controlled by this variable. */);
7163 Vscroll_preserve_screen_position = Qnil; 7110 Vscroll_preserve_screen_position = Qnil;
7164 7111
7165 DEFVAR_LISP ("window-point-insertion-type", &Vwindow_point_insertion_type, 7112 DEFVAR_LISP ("window-point-insertion-type", Vwindow_point_insertion_type,
7166 doc: /* Type of marker to use for `window-point'. */); 7113 doc: /* Type of marker to use for `window-point'. */);
7167 Vwindow_point_insertion_type = Qnil; 7114 Vwindow_point_insertion_type = Qnil;
7168 7115
7169 DEFVAR_LISP ("window-configuration-change-hook", 7116 DEFVAR_LISP ("window-configuration-change-hook",
7170 &Vwindow_configuration_change_hook, 7117 Vwindow_configuration_change_hook,
7171 doc: /* Functions to call when window configuration changes. 7118 doc: /* Functions to call when window configuration changes.
7172The buffer-local part is run once per window, with the relevant window 7119The buffer-local part is run once per window, with the relevant window
7173selected; while the global part is run only once for the modified frame, 7120selected; while the global part is run only once for the modified frame,
7174with the relevant frame selected. */); 7121with the relevant frame selected. */);
7175 Vwindow_configuration_change_hook = Qnil; 7122 Vwindow_configuration_change_hook = Qnil;
7176 7123
7177 DEFVAR_LISP ("recenter-redisplay", &Vrecenter_redisplay, 7124 DEFVAR_LISP ("recenter-redisplay", Vrecenter_redisplay,
7178 doc: /* If non-nil, then the `recenter' command with a nil argument 7125 doc: /* If non-nil, then the `recenter' command with a nil argument
7179will redraw the entire frame; the special value `tty' causes the 7126will redraw the entire frame; the special value `tty' causes the
7180frame to be redrawn only if it is a tty frame. */); 7127frame to be redrawn only if it is a tty frame. */);
diff --git a/src/window.h b/src/window.h
index 620c1b3392e..48e8562377d 100644
--- a/src/window.h
+++ b/src/window.h
@@ -753,20 +753,6 @@ extern Lisp_Object minibuf_window;
753 753
754extern Lisp_Object minibuf_selected_window; 754extern Lisp_Object minibuf_selected_window;
755 755
756/* Non-nil => window to for C-M-v to scroll when the minibuffer is
757 selected. */
758
759extern Lisp_Object Vminibuf_scroll_window;
760
761/* Nil or a symbol naming the window system under which emacs is
762 running ('x is the only current possibility) */
763
764extern Lisp_Object Vinitial_window_system;
765
766/* Version number of X windows: 10, 11 or nil. */
767
768extern Lisp_Object Vwindow_system_version;
769
770/* Window that the mouse is over (nil if no mouse support). */ 756/* Window that the mouse is over (nil if no mouse support). */
771 757
772extern Lisp_Object Vmouse_window; 758extern Lisp_Object Vmouse_window;
diff --git a/src/xdisp.c b/src/xdisp.c
index 6be74937483..384e49abe05 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -319,9 +319,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
319#define INFINITY 10000000 319#define INFINITY 10000000
320 320
321Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; 321Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
322Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions; 322Lisp_Object Qwindow_scroll_functions;
323Lisp_Object Qwindow_text_change_functions, Vwindow_text_change_functions; 323Lisp_Object Qwindow_text_change_functions;
324Lisp_Object Qredisplay_end_trigger_functions, Vredisplay_end_trigger_functions; 324Lisp_Object Qredisplay_end_trigger_functions;
325Lisp_Object Qinhibit_point_motion_hooks; 325Lisp_Object Qinhibit_point_motion_hooks;
326Lisp_Object QCeval, QCfile, QCdata, QCpropertize; 326Lisp_Object QCeval, QCfile, QCdata, QCpropertize;
327Lisp_Object Qfontified; 327Lisp_Object Qfontified;
@@ -339,77 +339,19 @@ Lisp_Object Qarrow, Qhand, Qtext;
339/* Holds the list (error). */ 339/* Holds the list (error). */
340Lisp_Object list_of_error; 340Lisp_Object list_of_error;
341 341
342/* Functions called to fontify regions of text. */
343
344Lisp_Object Vfontification_functions;
345Lisp_Object Qfontification_functions; 342Lisp_Object Qfontification_functions;
346 343
347/* Non-nil means automatically select any window when the mouse 344Lisp_Object Qwrap_prefix;
348 cursor moves into it. */ 345Lisp_Object Qline_prefix;
349Lisp_Object Vmouse_autoselect_window;
350
351Lisp_Object Vwrap_prefix, Qwrap_prefix;
352Lisp_Object Vline_prefix, Qline_prefix;
353
354/* Non-zero means draw tool bar buttons raised when the mouse moves
355 over them. */
356
357int auto_raise_tool_bar_buttons_p;
358
359/* Non-zero means to reposition window if cursor line is only partially visible. */
360
361int make_cursor_line_fully_visible_p;
362
363/* Margin below tool bar in pixels. 0 or nil means no margin.
364 If value is `internal-border-width' or `border-width',
365 the corresponding frame parameter is used. */
366
367Lisp_Object Vtool_bar_border;
368
369/* Margin around tool bar buttons in pixels. */
370
371Lisp_Object Vtool_bar_button_margin;
372
373/* Thickness of shadow to draw around tool bar buttons. */
374
375EMACS_INT tool_bar_button_relief;
376
377/* Non-nil means automatically resize tool-bars so that all tool-bar
378 items are visible, and no blank lines remain.
379
380 If value is `grow-only', only make tool-bar bigger. */
381
382Lisp_Object Vauto_resize_tool_bars;
383
384/* Type of tool bar. Can be symbols image, text, both or both-hroiz. */
385
386Lisp_Object Vtool_bar_style;
387
388/* Maximum number of characters a label can have to be shown. */
389
390EMACS_INT tool_bar_max_label_size;
391
392/* Non-zero means draw block and hollow cursor as wide as the glyph
393 under it. For example, if a block cursor is over a tab, it will be
394 drawn as wide as that tab on the display. */
395
396int x_stretch_cursor_p;
397 346
398/* Non-nil means don't actually do any redisplay. */ 347/* Non-nil means don't actually do any redisplay. */
399 348
400Lisp_Object Vinhibit_redisplay, Qinhibit_redisplay; 349Lisp_Object Qinhibit_redisplay;
401
402/* Non-zero means Lisp evaluation during redisplay is inhibited. */
403
404int inhibit_eval_during_redisplay;
405 350
406/* Names of text properties relevant for redisplay. */ 351/* Names of text properties relevant for redisplay. */
407 352
408Lisp_Object Qdisplay; 353Lisp_Object Qdisplay;
409 354
410/* Symbols used in text property values. */
411
412Lisp_Object Vdisplay_pixels_per_inch;
413Lisp_Object Qspace, QCalign_to, QCrelative_width, QCrelative_height; 355Lisp_Object Qspace, QCalign_to, QCrelative_width, QCrelative_height;
414Lisp_Object Qleft_margin, Qright_margin, Qspace_width, Qraise; 356Lisp_Object Qleft_margin, Qright_margin, Qspace_width, Qraise;
415Lisp_Object Qslice; 357Lisp_Object Qslice;
@@ -417,14 +359,6 @@ Lisp_Object Qcenter;
417Lisp_Object Qmargin, Qpointer; 359Lisp_Object Qmargin, Qpointer;
418Lisp_Object Qline_height; 360Lisp_Object Qline_height;
419 361
420/* Non-nil means highlight trailing whitespace. */
421
422Lisp_Object Vshow_trailing_whitespace;
423
424/* Non-nil means escape non-break space and hyphens. */
425
426Lisp_Object Vnobreak_char_display;
427
428#ifdef HAVE_WINDOW_SYSTEM 362#ifdef HAVE_WINDOW_SYSTEM
429 363
430/* Test if overflow newline into fringe. Called with iterator IT 364/* Test if overflow newline into fringe. Called with iterator IT
@@ -449,12 +383,6 @@ Lisp_Object Vnobreak_char_display;
449#define IT_DISPLAYING_WHITESPACE(it) \ 383#define IT_DISPLAYING_WHITESPACE(it) \
450 (it->what == IT_CHARACTER && (it->c == ' ' || it->c == '\t')) 384 (it->what == IT_CHARACTER && (it->c == ' ' || it->c == '\t'))
451 385
452/* Non-nil means show the text cursor in void text areas
453 i.e. in blank areas after eol and eob. This used to be
454 the default in 21.3. */
455
456Lisp_Object Vvoid_text_area_pointer;
457
458/* Name of the face used to highlight trailing whitespace. */ 386/* Name of the face used to highlight trailing whitespace. */
459 387
460Lisp_Object Qtrailing_whitespace; 388Lisp_Object Qtrailing_whitespace;
@@ -522,37 +450,6 @@ static int this_line_start_x;
522 450
523static struct buffer *this_line_buffer; 451static struct buffer *this_line_buffer;
524 452
525/* Nonzero means truncate lines in all windows less wide than the
526 frame. */
527
528Lisp_Object Vtruncate_partial_width_windows;
529
530/* A flag to control how to display unibyte 8-bit character. */
531
532int unibyte_display_via_language_environment;
533
534/* Nonzero means we have more than one non-mini-buffer-only frame.
535 Not guaranteed to be accurate except while parsing
536 frame-title-format. */
537
538int multiple_frames;
539
540Lisp_Object Vglobal_mode_string;
541
542
543/* List of variables (symbols) which hold markers for overlay arrows.
544 The symbols on this list are examined during redisplay to determine
545 where to display overlay arrows. */
546
547Lisp_Object Voverlay_arrow_variable_list;
548
549/* Marker for where to display an arrow on top of the buffer text. */
550
551Lisp_Object Voverlay_arrow_position;
552
553/* String to display for the arrow. Only used on terminal frames. */
554
555Lisp_Object Voverlay_arrow_string;
556 453
557/* Values of those variables at last redisplay are stored as 454/* Values of those variables at last redisplay are stored as
558 properties on `overlay-arrow-position' symbol. However, if 455 properties on `overlay-arrow-position' symbol. However, if
@@ -566,47 +463,12 @@ Lisp_Object Qlast_arrow_position, Qlast_arrow_string;
566 463
567Lisp_Object Qoverlay_arrow_string, Qoverlay_arrow_bitmap; 464Lisp_Object Qoverlay_arrow_string, Qoverlay_arrow_bitmap;
568 465
569/* Like mode-line-format, but for the title bar on a visible frame. */ 466Lisp_Object Qmenu_bar_update_hook;
570
571Lisp_Object Vframe_title_format;
572
573/* Like mode-line-format, but for the title bar on an iconified frame. */
574
575Lisp_Object Vicon_title_format;
576
577/* List of functions to call when a window's size changes. These
578 functions get one arg, a frame on which one or more windows' sizes
579 have changed. */
580
581static Lisp_Object Vwindow_size_change_functions;
582
583Lisp_Object Qmenu_bar_update_hook, Vmenu_bar_update_hook;
584 467
585/* Nonzero if an overlay arrow has been displayed in this window. */ 468/* Nonzero if an overlay arrow has been displayed in this window. */
586 469
587static int overlay_arrow_seen; 470static int overlay_arrow_seen;
588 471
589/* Nonzero means highlight the region even in nonselected windows. */
590
591int highlight_nonselected_windows;
592
593/* If cursor motion alone moves point off frame, try scrolling this
594 many lines up or down if that will bring it back. */
595
596static EMACS_INT emacs_scroll_step;
597
598/* Nonzero means scroll just far enough to bring point back on the
599 screen, when appropriate. */
600
601static EMACS_INT scroll_conservatively;
602
603/* Recenter the window whenever point gets within this many lines of
604 the top or bottom of the window. This value is translated into a
605 pixel value by multiplying it with FRAME_LINE_HEIGHT, which means
606 that there is really a fixed pixel height scroll margin. */
607
608EMACS_INT scroll_margin;
609
610/* Number of windows showing the buffer of the selected window (or 472/* Number of windows showing the buffer of the selected window (or
611 another buffer with the same base buffer). keyboard.c refers to 473 another buffer with the same base buffer). keyboard.c refers to
612 this. */ 474 this. */
@@ -617,14 +479,6 @@ int buffer_shared;
617 479
618static Lisp_Object default_invis_vector[3]; 480static Lisp_Object default_invis_vector[3];
619 481
620/* Zero means display the mode-line/header-line/menu-bar in the default face
621 (this slightly odd definition is for compatibility with previous versions
622 of emacs), non-zero means display them using their respective faces.
623
624 This variable is deprecated. */
625
626int mode_line_inverse_video;
627
628/* Prompt to display in front of the mini-buffer contents. */ 482/* Prompt to display in front of the mini-buffer contents. */
629 483
630Lisp_Object minibuf_prompt; 484Lisp_Object minibuf_prompt;
@@ -670,19 +524,6 @@ int cursor_type_changed;
670 524
671int line_number_displayed; 525int line_number_displayed;
672 526
673/* Maximum buffer size for which to display line numbers. */
674
675Lisp_Object Vline_number_display_limit;
676
677/* Line width to consider when repositioning for line number display. */
678
679static EMACS_INT line_number_display_limit_width;
680
681/* Number of lines to keep in the message log buffer. t means
682 infinite. nil means don't log at all. */
683
684Lisp_Object Vmessage_log_max;
685
686/* The name of the *Messages* buffer, a string. */ 527/* The name of the *Messages* buffer, a string. */
687 528
688static Lisp_Object Vmessages_buffer_name; 529static Lisp_Object Vmessages_buffer_name;
@@ -713,23 +554,6 @@ int message_buf_print;
713/* The symbol `inhibit-menubar-update' and its DEFVAR_BOOL variable. */ 554/* The symbol `inhibit-menubar-update' and its DEFVAR_BOOL variable. */
714 555
715Lisp_Object Qinhibit_menubar_update; 556Lisp_Object Qinhibit_menubar_update;
716int inhibit_menubar_update;
717
718/* When evaluating expressions from menu bar items (enable conditions,
719 for instance), this is the frame they are being processed for. */
720
721Lisp_Object Vmenu_updating_frame;
722
723/* Maximum height for resizing mini-windows. Either a float
724 specifying a fraction of the available height, or an integer
725 specifying a number of lines. */
726
727Lisp_Object Vmax_mini_window_height;
728
729/* Non-zero means messages should be displayed with truncated
730 lines instead of being continued. */
731
732int message_truncate_lines;
733Lisp_Object Qmessage_truncate_lines; 557Lisp_Object Qmessage_truncate_lines;
734 558
735/* Set to 1 in clear_message to make redisplay_internal aware 559/* Set to 1 in clear_message to make redisplay_internal aware
@@ -737,9 +561,6 @@ Lisp_Object Qmessage_truncate_lines;
737 561
738static int message_cleared_p; 562static int message_cleared_p;
739 563
740/* How to blink the default frame cursor off. */
741Lisp_Object Vblink_cursor_alist;
742
743/* A scratch glyph row with contents used for generating truncation 564/* A scratch glyph row with contents used for generating truncation
744 glyphs. Also used in direct_output_for_insert. */ 565 glyphs. Also used in direct_output_for_insert. */
745 566
@@ -771,11 +592,6 @@ int current_mode_line_height, current_header_line_height;
771 592
772#if GLYPH_DEBUG 593#if GLYPH_DEBUG
773 594
774/* Variables to turn off display optimizations from Lisp. */
775
776int inhibit_try_window_id, inhibit_try_window_reusing;
777int inhibit_try_cursor_movement;
778
779/* Non-zero means print traces of redisplay if compiled with 595/* Non-zero means print traces of redisplay if compiled with
780 GLYPH_DEBUG != 0. */ 596 GLYPH_DEBUG != 0. */
781 597
@@ -792,40 +608,12 @@ int trace_move;
792#define TRACE_MOVE(x) (void) 0 608#define TRACE_MOVE(x) (void) 0
793#endif 609#endif
794 610
795/* Non-zero means automatically scroll windows horizontally to make
796 point visible. */
797
798int automatic_hscrolling_p;
799Lisp_Object Qauto_hscroll_mode; 611Lisp_Object Qauto_hscroll_mode;
800 612
801/* How close to the margin can point get before the window is scrolled
802 horizontally. */
803EMACS_INT hscroll_margin;
804
805/* How much to scroll horizontally when point is inside the above margin. */
806Lisp_Object Vhscroll_step;
807
808/* The variable `resize-mini-windows'. If nil, don't resize
809 mini-windows. If t, always resize them to fit the text they
810 display. If `grow-only', let mini-windows grow only until they
811 become empty. */
812
813Lisp_Object Vresize_mini_windows;
814
815/* Buffer being redisplayed -- for redisplay_window_error. */ 613/* Buffer being redisplayed -- for redisplay_window_error. */
816 614
817struct buffer *displayed_buffer; 615struct buffer *displayed_buffer;
818 616
819/* Space between overline and text. */
820
821EMACS_INT overline_margin;
822
823/* Require underline to be at least this many screen pixels below baseline
824 This to avoid underline "merging" with the base of letters at small
825 font sizes, particularly when x_use_underline_position_properties is on. */
826
827EMACS_INT underline_minimum_offset;
828
829/* Value returned from text property handlers (see below). */ 617/* Value returned from text property handlers (see below). */
830 618
831enum prop_handled 619enum prop_handled
@@ -925,11 +713,6 @@ static struct glyph_slice null_glyph_slice = { 0, 0, 0, 0 };
925 713
926int redisplaying_p; 714int redisplaying_p;
927 715
928/* Non-zero means don't free realized faces. Bound while freeing
929 realized faces is dangerous because glyph matrices might still
930 reference them. */
931
932int inhibit_free_realized_faces;
933Lisp_Object Qinhibit_free_realized_faces; 716Lisp_Object Qinhibit_free_realized_faces;
934 717
935/* If a string, XTread_socket generates an event to display that string. 718/* If a string, XTread_socket generates an event to display that string.
@@ -946,9 +729,6 @@ Lisp_Object previous_help_echo_string;
946 729
947/* Platform-independent portion of hourglass implementation. */ 730/* Platform-independent portion of hourglass implementation. */
948 731
949/* Non-zero means we're allowed to display a hourglass pointer. */
950int display_hourglass_p;
951
952/* Non-zero means an hourglass cursor is currently shown. */ 732/* Non-zero means an hourglass cursor is currently shown. */
953int hourglass_shown_p; 733int hourglass_shown_p;
954 734
@@ -956,15 +736,9 @@ int hourglass_shown_p;
956 an hourglass cursor on all frames. */ 736 an hourglass cursor on all frames. */
957struct atimer *hourglass_atimer; 737struct atimer *hourglass_atimer;
958 738
959/* Number of seconds to wait before displaying an hourglass cursor. */
960Lisp_Object Vhourglass_delay;
961
962/* Name of the face used to display glyphless characters. */ 739/* Name of the face used to display glyphless characters. */
963Lisp_Object Qglyphless_char; 740Lisp_Object Qglyphless_char;
964 741
965/* Char-table to control the display of glyphless characters. */
966Lisp_Object Vglyphless_char_display;
967
968/* Symbol for the purpose of Vglyphless_char_display. */ 742/* Symbol for the purpose of Vglyphless_char_display. */
969Lisp_Object Qglyphless_char_display; 743Lisp_Object Qglyphless_char_display;
970 744
@@ -11228,7 +11002,7 @@ EMACS_INT debug_delta, debug_delta_bytes;
11228/* Values of window_end_pos and window_end_vpos at the end of 11002/* Values of window_end_pos and window_end_vpos at the end of
11229 try_window_id. */ 11003 try_window_id. */
11230 11004
11231EMACS_INT debug_end_pos, debug_end_vpos; 11005EMACS_INT debug_end_vpos;
11232 11006
11233/* Append a string to W->desired_matrix->method. FMT is a printf 11007/* Append a string to W->desired_matrix->method. FMT is a printf
11234 format string. A1...A9 are a supplement for a variable-length 11008 format string. A1...A9 are a supplement for a variable-length
@@ -26635,19 +26409,19 @@ syms_of_xdisp (void)
26635 staticpro (&Qleft_to_right); 26409 staticpro (&Qleft_to_right);
26636 26410
26637#ifdef HAVE_WINDOW_SYSTEM 26411#ifdef HAVE_WINDOW_SYSTEM
26638 DEFVAR_BOOL ("x-stretch-cursor", &x_stretch_cursor_p, 26412 DEFVAR_BOOL ("x-stretch-cursor", x_stretch_cursor_p,
26639 doc: /* *Non-nil means draw block cursor as wide as the glyph under it. 26413 doc: /* *Non-nil means draw block cursor as wide as the glyph under it.
26640For example, if a block cursor is over a tab, it will be drawn as 26414For example, if a block cursor is over a tab, it will be drawn as
26641wide as that tab on the display. */); 26415wide as that tab on the display. */);
26642 x_stretch_cursor_p = 0; 26416 x_stretch_cursor_p = 0;
26643#endif 26417#endif
26644 26418
26645 DEFVAR_LISP ("show-trailing-whitespace", &Vshow_trailing_whitespace, 26419 DEFVAR_LISP ("show-trailing-whitespace", Vshow_trailing_whitespace,
26646 doc: /* *Non-nil means highlight trailing whitespace. 26420 doc: /* *Non-nil means highlight trailing whitespace.
26647The face used for trailing whitespace is `trailing-whitespace'. */); 26421The face used for trailing whitespace is `trailing-whitespace'. */);
26648 Vshow_trailing_whitespace = Qnil; 26422 Vshow_trailing_whitespace = Qnil;
26649 26423
26650 DEFVAR_LISP ("nobreak-char-display", &Vnobreak_char_display, 26424 DEFVAR_LISP ("nobreak-char-display", Vnobreak_char_display,
26651 doc: /* *Control highlighting of nobreak space and soft hyphen. 26425 doc: /* *Control highlighting of nobreak space and soft hyphen.
26652A value of t means highlight the character itself (for nobreak space, 26426A value of t means highlight the character itself (for nobreak space,
26653use face `nobreak-space'). 26427use face `nobreak-space').
@@ -26656,47 +26430,47 @@ Other values mean display the escape glyph followed by an ordinary
26656space or ordinary hyphen. */); 26430space or ordinary hyphen. */);
26657 Vnobreak_char_display = Qt; 26431 Vnobreak_char_display = Qt;
26658 26432
26659 DEFVAR_LISP ("void-text-area-pointer", &Vvoid_text_area_pointer, 26433 DEFVAR_LISP ("void-text-area-pointer", Vvoid_text_area_pointer,
26660 doc: /* *The pointer shape to show in void text areas. 26434 doc: /* *The pointer shape to show in void text areas.
26661A value of nil means to show the text pointer. Other options are `arrow', 26435A value of nil means to show the text pointer. Other options are `arrow',
26662`text', `hand', `vdrag', `hdrag', `modeline', and `hourglass'. */); 26436`text', `hand', `vdrag', `hdrag', `modeline', and `hourglass'. */);
26663 Vvoid_text_area_pointer = Qarrow; 26437 Vvoid_text_area_pointer = Qarrow;
26664 26438
26665 DEFVAR_LISP ("inhibit-redisplay", &Vinhibit_redisplay, 26439 DEFVAR_LISP ("inhibit-redisplay", Vinhibit_redisplay,
26666 doc: /* Non-nil means don't actually do any redisplay. 26440 doc: /* Non-nil means don't actually do any redisplay.
26667This is used for internal purposes. */); 26441This is used for internal purposes. */);
26668 Vinhibit_redisplay = Qnil; 26442 Vinhibit_redisplay = Qnil;
26669 26443
26670 DEFVAR_LISP ("global-mode-string", &Vglobal_mode_string, 26444 DEFVAR_LISP ("global-mode-string", Vglobal_mode_string,
26671 doc: /* String (or mode line construct) included (normally) in `mode-line-format'. */); 26445 doc: /* String (or mode line construct) included (normally) in `mode-line-format'. */);
26672 Vglobal_mode_string = Qnil; 26446 Vglobal_mode_string = Qnil;
26673 26447
26674 DEFVAR_LISP ("overlay-arrow-position", &Voverlay_arrow_position, 26448 DEFVAR_LISP ("overlay-arrow-position", Voverlay_arrow_position,
26675 doc: /* Marker for where to display an arrow on top of the buffer text. 26449 doc: /* Marker for where to display an arrow on top of the buffer text.
26676This must be the beginning of a line in order to work. 26450This must be the beginning of a line in order to work.
26677See also `overlay-arrow-string'. */); 26451See also `overlay-arrow-string'. */);
26678 Voverlay_arrow_position = Qnil; 26452 Voverlay_arrow_position = Qnil;
26679 26453
26680 DEFVAR_LISP ("overlay-arrow-string", &Voverlay_arrow_string, 26454 DEFVAR_LISP ("overlay-arrow-string", Voverlay_arrow_string,
26681 doc: /* String to display as an arrow in non-window frames. 26455 doc: /* String to display as an arrow in non-window frames.
26682See also `overlay-arrow-position'. */); 26456See also `overlay-arrow-position'. */);
26683 Voverlay_arrow_string = make_pure_c_string ("=>"); 26457 Voverlay_arrow_string = make_pure_c_string ("=>");
26684 26458
26685 DEFVAR_LISP ("overlay-arrow-variable-list", &Voverlay_arrow_variable_list, 26459 DEFVAR_LISP ("overlay-arrow-variable-list", Voverlay_arrow_variable_list,
26686 doc: /* List of variables (symbols) which hold markers for overlay arrows. 26460 doc: /* List of variables (symbols) which hold markers for overlay arrows.
26687The symbols on this list are examined during redisplay to determine 26461The symbols on this list are examined during redisplay to determine
26688where to display overlay arrows. */); 26462where to display overlay arrows. */);
26689 Voverlay_arrow_variable_list 26463 Voverlay_arrow_variable_list
26690 = Fcons (intern_c_string ("overlay-arrow-position"), Qnil); 26464 = Fcons (intern_c_string ("overlay-arrow-position"), Qnil);
26691 26465
26692 DEFVAR_INT ("scroll-step", &emacs_scroll_step, 26466 DEFVAR_INT ("scroll-step", emacs_scroll_step,
26693 doc: /* *The number of lines to try scrolling a window by when point moves out. 26467 doc: /* *The number of lines to try scrolling a window by when point moves out.
26694If that fails to bring point back on frame, point is centered instead. 26468If that fails to bring point back on frame, point is centered instead.
26695If this is zero, point is always centered after it moves off frame. 26469If this is zero, point is always centered after it moves off frame.
26696If you want scrolling to always be a line at a time, you should set 26470If you want scrolling to always be a line at a time, you should set
26697`scroll-conservatively' to a large value rather than set this to 1. */); 26471`scroll-conservatively' to a large value rather than set this to 1. */);
26698 26472
26699 DEFVAR_INT ("scroll-conservatively", &scroll_conservatively, 26473 DEFVAR_INT ("scroll-conservatively", scroll_conservatively,
26700 doc: /* *Scroll up to this many lines, to bring point back on screen. 26474 doc: /* *Scroll up to this many lines, to bring point back on screen.
26701If point moves off-screen, redisplay will scroll by up to 26475If point moves off-screen, redisplay will scroll by up to
26702`scroll-conservatively' lines in order to bring point just barely 26476`scroll-conservatively' lines in order to bring point just barely
@@ -26706,23 +26480,23 @@ recenters point as usual.
26706A value of zero means always recenter point if it moves off screen. */); 26480A value of zero means always recenter point if it moves off screen. */);
26707 scroll_conservatively = 0; 26481 scroll_conservatively = 0;
26708 26482
26709 DEFVAR_INT ("scroll-margin", &scroll_margin, 26483 DEFVAR_INT ("scroll-margin", scroll_margin,
26710 doc: /* *Number of lines of margin at the top and bottom of a window. 26484 doc: /* *Number of lines of margin at the top and bottom of a window.
26711Recenter the window whenever point gets within this many lines 26485Recenter the window whenever point gets within this many lines
26712of the top or bottom of the window. */); 26486of the top or bottom of the window. */);
26713 scroll_margin = 0; 26487 scroll_margin = 0;
26714 26488
26715 DEFVAR_LISP ("display-pixels-per-inch", &Vdisplay_pixels_per_inch, 26489 DEFVAR_LISP ("display-pixels-per-inch", Vdisplay_pixels_per_inch,
26716 doc: /* Pixels per inch value for non-window system displays. 26490 doc: /* Pixels per inch value for non-window system displays.
26717Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */); 26491Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */);
26718 Vdisplay_pixels_per_inch = make_float (72.0); 26492 Vdisplay_pixels_per_inch = make_float (72.0);
26719 26493
26720#if GLYPH_DEBUG 26494#if GLYPH_DEBUG
26721 DEFVAR_INT ("debug-end-pos", &debug_end_pos, doc: /* Don't ask. */); 26495 DEFVAR_INT ("debug-end-pos", debug_end_pos, doc: /* Don't ask. */);
26722#endif 26496#endif
26723 26497
26724 DEFVAR_LISP ("truncate-partial-width-windows", 26498 DEFVAR_LISP ("truncate-partial-width-windows",
26725 &Vtruncate_partial_width_windows, 26499 Vtruncate_partial_width_windows,
26726 doc: /* Non-nil means truncate lines in windows narrower than the frame. 26500 doc: /* Non-nil means truncate lines in windows narrower than the frame.
26727For an integer value, truncate lines in each window narrower than the 26501For an integer value, truncate lines in each window narrower than the
26728full frame width, provided the window width is less than that integer; 26502full frame width, provided the window width is less than that integer;
@@ -26736,36 +26510,36 @@ A value of nil means to respect the value of `truncate-lines'.
26736If `word-wrap' is enabled, you might want to reduce this. */); 26510If `word-wrap' is enabled, you might want to reduce this. */);
26737 Vtruncate_partial_width_windows = make_number (50); 26511 Vtruncate_partial_width_windows = make_number (50);
26738 26512
26739 DEFVAR_BOOL ("mode-line-inverse-video", &mode_line_inverse_video, 26513 DEFVAR_BOOL ("mode-line-inverse-video", mode_line_inverse_video,
26740 doc: /* When nil, display the mode-line/header-line/menu-bar in the default face. 26514 doc: /* When nil, display the mode-line/header-line/menu-bar in the default face.
26741Any other value means to use the appropriate face, `mode-line', 26515Any other value means to use the appropriate face, `mode-line',
26742`header-line', or `menu' respectively. */); 26516`header-line', or `menu' respectively. */);
26743 mode_line_inverse_video = 1; 26517 mode_line_inverse_video = 1;
26744 26518
26745 DEFVAR_LISP ("line-number-display-limit", &Vline_number_display_limit, 26519 DEFVAR_LISP ("line-number-display-limit", Vline_number_display_limit,
26746 doc: /* *Maximum buffer size for which line number should be displayed. 26520 doc: /* *Maximum buffer size for which line number should be displayed.
26747If the buffer is bigger than this, the line number does not appear 26521If the buffer is bigger than this, the line number does not appear
26748in the mode line. A value of nil means no limit. */); 26522in the mode line. A value of nil means no limit. */);
26749 Vline_number_display_limit = Qnil; 26523 Vline_number_display_limit = Qnil;
26750 26524
26751 DEFVAR_INT ("line-number-display-limit-width", 26525 DEFVAR_INT ("line-number-display-limit-width",
26752 &line_number_display_limit_width, 26526 line_number_display_limit_width,
26753 doc: /* *Maximum line width (in characters) for line number display. 26527 doc: /* *Maximum line width (in characters) for line number display.
26754If the average length of the lines near point is bigger than this, then the 26528If the average length of the lines near point is bigger than this, then the
26755line number may be omitted from the mode line. */); 26529line number may be omitted from the mode line. */);
26756 line_number_display_limit_width = 200; 26530 line_number_display_limit_width = 200;
26757 26531
26758 DEFVAR_BOOL ("highlight-nonselected-windows", &highlight_nonselected_windows, 26532 DEFVAR_BOOL ("highlight-nonselected-windows", highlight_nonselected_windows,
26759 doc: /* *Non-nil means highlight region even in nonselected windows. */); 26533 doc: /* *Non-nil means highlight region even in nonselected windows. */);
26760 highlight_nonselected_windows = 0; 26534 highlight_nonselected_windows = 0;
26761 26535
26762 DEFVAR_BOOL ("multiple-frames", &multiple_frames, 26536 DEFVAR_BOOL ("multiple-frames", multiple_frames,
26763 doc: /* Non-nil if more than one frame is visible on this display. 26537 doc: /* Non-nil if more than one frame is visible on this display.
26764Minibuffer-only frames don't count, but iconified frames do. 26538Minibuffer-only frames don't count, but iconified frames do.
26765This variable is not guaranteed to be accurate except while processing 26539This variable is not guaranteed to be accurate except while processing
26766`frame-title-format' and `icon-title-format'. */); 26540`frame-title-format' and `icon-title-format'. */);
26767 26541
26768 DEFVAR_LISP ("frame-title-format", &Vframe_title_format, 26542 DEFVAR_LISP ("frame-title-format", Vframe_title_format,
26769 doc: /* Template for displaying the title bar of visible frames. 26543 doc: /* Template for displaying the title bar of visible frames.
26770\(Assuming the window manager supports this feature.) 26544\(Assuming the window manager supports this feature.)
26771 26545
@@ -26773,7 +26547,7 @@ This variable has the same structure as `mode-line-format', except that
26773the %c and %l constructs are ignored. It is used only on frames for 26547the %c and %l constructs are ignored. It is used only on frames for
26774which no explicit name has been set \(see `modify-frame-parameters'). */); 26548which no explicit name has been set \(see `modify-frame-parameters'). */);
26775 26549
26776 DEFVAR_LISP ("icon-title-format", &Vicon_title_format, 26550 DEFVAR_LISP ("icon-title-format", Vicon_title_format,
26777 doc: /* Template for displaying the title bar of an iconified frame. 26551 doc: /* Template for displaying the title bar of an iconified frame.
26778\(Assuming the window manager supports this feature.) 26552\(Assuming the window manager supports this feature.)
26779This variable has the same structure as `mode-line-format' (which see), 26553This variable has the same structure as `mode-line-format' (which see),
@@ -26790,13 +26564,13 @@ and is used only on frames for which no explicit name has been set
26790 Qnil)))), 26564 Qnil)))),
26791 Qnil))); 26565 Qnil)));
26792 26566
26793 DEFVAR_LISP ("message-log-max", &Vmessage_log_max, 26567 DEFVAR_LISP ("message-log-max", Vmessage_log_max,
26794 doc: /* Maximum number of lines to keep in the message log buffer. 26568 doc: /* Maximum number of lines to keep in the message log buffer.
26795If nil, disable message logging. If t, log messages but don't truncate 26569If nil, disable message logging. If t, log messages but don't truncate
26796the buffer when it becomes large. */); 26570the buffer when it becomes large. */);
26797 Vmessage_log_max = make_number (100); 26571 Vmessage_log_max = make_number (100);
26798 26572
26799 DEFVAR_LISP ("window-size-change-functions", &Vwindow_size_change_functions, 26573 DEFVAR_LISP ("window-size-change-functions", Vwindow_size_change_functions,
26800 doc: /* Functions called before redisplay, if window sizes have changed. 26574 doc: /* Functions called before redisplay, if window sizes have changed.
26801The value should be a list of functions that take one argument. 26575The value should be a list of functions that take one argument.
26802Just before redisplay, for each frame, if any of its windows have changed 26576Just before redisplay, for each frame, if any of its windows have changed
@@ -26804,7 +26578,7 @@ size since the last redisplay, or have been split or deleted,
26804all the functions in the list are called, with the frame as argument. */); 26578all the functions in the list are called, with the frame as argument. */);
26805 Vwindow_size_change_functions = Qnil; 26579 Vwindow_size_change_functions = Qnil;
26806 26580
26807 DEFVAR_LISP ("window-scroll-functions", &Vwindow_scroll_functions, 26581 DEFVAR_LISP ("window-scroll-functions", Vwindow_scroll_functions,
26808 doc: /* List of functions to call before redisplaying a window with scrolling. 26582 doc: /* List of functions to call before redisplaying a window with scrolling.
26809Each function is called with two arguments, the window and its new 26583Each function is called with two arguments, the window and its new
26810display-start position. Note that these functions are also called by 26584display-start position. Note that these functions are also called by
@@ -26813,17 +26587,17 @@ valid when these functions are called. */);
26813 Vwindow_scroll_functions = Qnil; 26587 Vwindow_scroll_functions = Qnil;
26814 26588
26815 DEFVAR_LISP ("window-text-change-functions", 26589 DEFVAR_LISP ("window-text-change-functions",
26816 &Vwindow_text_change_functions, 26590 Vwindow_text_change_functions,
26817 doc: /* Functions to call in redisplay when text in the window might change. */); 26591 doc: /* Functions to call in redisplay when text in the window might change. */);
26818 Vwindow_text_change_functions = Qnil; 26592 Vwindow_text_change_functions = Qnil;
26819 26593
26820 DEFVAR_LISP ("redisplay-end-trigger-functions", &Vredisplay_end_trigger_functions, 26594 DEFVAR_LISP ("redisplay-end-trigger-functions", Vredisplay_end_trigger_functions,
26821 doc: /* Functions called when redisplay of a window reaches the end trigger. 26595 doc: /* Functions called when redisplay of a window reaches the end trigger.
26822Each function is called with two arguments, the window and the end trigger value. 26596Each function is called with two arguments, the window and the end trigger value.
26823See `set-window-redisplay-end-trigger'. */); 26597See `set-window-redisplay-end-trigger'. */);
26824 Vredisplay_end_trigger_functions = Qnil; 26598 Vredisplay_end_trigger_functions = Qnil;
26825 26599
26826 DEFVAR_LISP ("mouse-autoselect-window", &Vmouse_autoselect_window, 26600 DEFVAR_LISP ("mouse-autoselect-window", Vmouse_autoselect_window,
26827 doc: /* *Non-nil means autoselect window with mouse pointer. 26601 doc: /* *Non-nil means autoselect window with mouse pointer.
26828If nil, do not autoselect windows. 26602If nil, do not autoselect windows.
26829A positive number means delay autoselection by that many seconds: a 26603A positive number means delay autoselection by that many seconds: a
@@ -26843,7 +26617,7 @@ When customizing this variable make sure that the actual value of
26843`focus-follows-mouse' matches the behavior of your window manager. */); 26617`focus-follows-mouse' matches the behavior of your window manager. */);
26844 Vmouse_autoselect_window = Qnil; 26618 Vmouse_autoselect_window = Qnil;
26845 26619
26846 DEFVAR_LISP ("auto-resize-tool-bars", &Vauto_resize_tool_bars, 26620 DEFVAR_LISP ("auto-resize-tool-bars", Vauto_resize_tool_bars,
26847 doc: /* *Non-nil means automatically resize tool-bars. 26621 doc: /* *Non-nil means automatically resize tool-bars.
26848This dynamically changes the tool-bar's height to the minimum height 26622This dynamically changes the tool-bar's height to the minimum height
26849that is needed to make all tool-bar items visible. 26623that is needed to make all tool-bar items visible.
@@ -26851,15 +26625,15 @@ If value is `grow-only', the tool-bar's height is only increased
26851automatically; to decrease the tool-bar height, use \\[recenter]. */); 26625automatically; to decrease the tool-bar height, use \\[recenter]. */);
26852 Vauto_resize_tool_bars = Qt; 26626 Vauto_resize_tool_bars = Qt;
26853 26627
26854 DEFVAR_BOOL ("auto-raise-tool-bar-buttons", &auto_raise_tool_bar_buttons_p, 26628 DEFVAR_BOOL ("auto-raise-tool-bar-buttons", auto_raise_tool_bar_buttons_p,
26855 doc: /* *Non-nil means raise tool-bar buttons when the mouse moves over them. */); 26629 doc: /* *Non-nil means raise tool-bar buttons when the mouse moves over them. */);
26856 auto_raise_tool_bar_buttons_p = 1; 26630 auto_raise_tool_bar_buttons_p = 1;
26857 26631
26858 DEFVAR_BOOL ("make-cursor-line-fully-visible", &make_cursor_line_fully_visible_p, 26632 DEFVAR_BOOL ("make-cursor-line-fully-visible", make_cursor_line_fully_visible_p,
26859 doc: /* *Non-nil means to scroll (recenter) cursor line if it is not fully visible. */); 26633 doc: /* *Non-nil means to scroll (recenter) cursor line if it is not fully visible. */);
26860 make_cursor_line_fully_visible_p = 1; 26634 make_cursor_line_fully_visible_p = 1;
26861 26635
26862 DEFVAR_LISP ("tool-bar-border", &Vtool_bar_border, 26636 DEFVAR_LISP ("tool-bar-border", Vtool_bar_border,
26863 doc: /* *Border below tool-bar in pixels. 26637 doc: /* *Border below tool-bar in pixels.
26864If an integer, use it as the height of the border. 26638If an integer, use it as the height of the border.
26865If it is one of `internal-border-width' or `border-width', use the 26639If it is one of `internal-border-width' or `border-width', use the
@@ -26867,7 +26641,7 @@ value of the corresponding frame parameter.
26867Otherwise, no border is added below the tool-bar. */); 26641Otherwise, no border is added below the tool-bar. */);
26868 Vtool_bar_border = Qinternal_border_width; 26642 Vtool_bar_border = Qinternal_border_width;
26869 26643
26870 DEFVAR_LISP ("tool-bar-button-margin", &Vtool_bar_button_margin, 26644 DEFVAR_LISP ("tool-bar-button-margin", Vtool_bar_button_margin,
26871 doc: /* *Margin around tool-bar buttons in pixels. 26645 doc: /* *Margin around tool-bar buttons in pixels.
26872If an integer, use that for both horizontal and vertical margins. 26646If an integer, use that for both horizontal and vertical margins.
26873Otherwise, value should be a pair of integers `(HORZ . VERT)' with 26647Otherwise, value should be a pair of integers `(HORZ . VERT)' with
@@ -26875,11 +26649,11 @@ HORZ specifying the horizontal margin, and VERT specifying the
26875vertical margin. */); 26649vertical margin. */);
26876 Vtool_bar_button_margin = make_number (DEFAULT_TOOL_BAR_BUTTON_MARGIN); 26650 Vtool_bar_button_margin = make_number (DEFAULT_TOOL_BAR_BUTTON_MARGIN);
26877 26651
26878 DEFVAR_INT ("tool-bar-button-relief", &tool_bar_button_relief, 26652 DEFVAR_INT ("tool-bar-button-relief", tool_bar_button_relief,
26879 doc: /* *Relief thickness of tool-bar buttons. */); 26653 doc: /* *Relief thickness of tool-bar buttons. */);
26880 tool_bar_button_relief = DEFAULT_TOOL_BAR_BUTTON_RELIEF; 26654 tool_bar_button_relief = DEFAULT_TOOL_BAR_BUTTON_RELIEF;
26881 26655
26882 DEFVAR_LISP ("tool-bar-style", &Vtool_bar_style, 26656 DEFVAR_LISP ("tool-bar-style", Vtool_bar_style,
26883 doc: /* Tool bar style to use. 26657 doc: /* Tool bar style to use.
26884It can be one of 26658It can be one of
26885 image - show images only 26659 image - show images only
@@ -26890,13 +26664,13 @@ It can be one of
26890 any other - use system default or image if no system default. */); 26664 any other - use system default or image if no system default. */);
26891 Vtool_bar_style = Qnil; 26665 Vtool_bar_style = Qnil;
26892 26666
26893 DEFVAR_INT ("tool-bar-max-label-size", &tool_bar_max_label_size, 26667 DEFVAR_INT ("tool-bar-max-label-size", tool_bar_max_label_size,
26894 doc: /* *Maximum number of characters a label can have to be shown. 26668 doc: /* *Maximum number of characters a label can have to be shown.
26895The tool bar style must also show labels for this to have any effect, see 26669The tool bar style must also show labels for this to have any effect, see
26896`tool-bar-style'. */); 26670`tool-bar-style'. */);
26897 tool_bar_max_label_size = DEFAULT_TOOL_BAR_LABEL_SIZE; 26671 tool_bar_max_label_size = DEFAULT_TOOL_BAR_LABEL_SIZE;
26898 26672
26899 DEFVAR_LISP ("fontification-functions", &Vfontification_functions, 26673 DEFVAR_LISP ("fontification-functions", Vfontification_functions,
26900 doc: /* List of functions to call to fontify regions of text. 26674 doc: /* List of functions to call to fontify regions of text.
26901Each function is called with one argument POS. Functions must 26675Each function is called with one argument POS. Functions must
26902fontify a region starting at POS in the current buffer, and give 26676fontify a region starting at POS in the current buffer, and give
@@ -26905,7 +26679,7 @@ fontified regions the property `fontified'. */);
26905 Fmake_variable_buffer_local (Qfontification_functions); 26679 Fmake_variable_buffer_local (Qfontification_functions);
26906 26680
26907 DEFVAR_BOOL ("unibyte-display-via-language-environment", 26681 DEFVAR_BOOL ("unibyte-display-via-language-environment",
26908 &unibyte_display_via_language_environment, 26682 unibyte_display_via_language_environment,
26909 doc: /* *Non-nil means display unibyte text according to language environment. 26683 doc: /* *Non-nil means display unibyte text according to language environment.
26910Specifically, this means that raw bytes in the range 160-255 decimal 26684Specifically, this means that raw bytes in the range 160-255 decimal
26911are displayed by converting them to the equivalent multibyte characters 26685are displayed by converting them to the equivalent multibyte characters
@@ -26916,13 +26690,13 @@ Note that this variable affects only how these bytes are displayed,
26916but does not change the fact they are interpreted as raw bytes. */); 26690but does not change the fact they are interpreted as raw bytes. */);
26917 unibyte_display_via_language_environment = 0; 26691 unibyte_display_via_language_environment = 0;
26918 26692
26919 DEFVAR_LISP ("max-mini-window-height", &Vmax_mini_window_height, 26693 DEFVAR_LISP ("max-mini-window-height", Vmax_mini_window_height,
26920 doc: /* *Maximum height for resizing mini-windows. 26694 doc: /* *Maximum height for resizing mini-windows.
26921If a float, it specifies a fraction of the mini-window frame's height. 26695If a float, it specifies a fraction of the mini-window frame's height.
26922If an integer, it specifies a number of lines. */); 26696If an integer, it specifies a number of lines. */);
26923 Vmax_mini_window_height = make_float (0.25); 26697 Vmax_mini_window_height = make_float (0.25);
26924 26698
26925 DEFVAR_LISP ("resize-mini-windows", &Vresize_mini_windows, 26699 DEFVAR_LISP ("resize-mini-windows", Vresize_mini_windows,
26926 doc: /* *How to resize mini-windows. 26700 doc: /* *How to resize mini-windows.
26927A value of nil means don't automatically resize mini-windows. 26701A value of nil means don't automatically resize mini-windows.
26928A value of t means resize them to fit the text displayed in them. 26702A value of t means resize them to fit the text displayed in them.
@@ -26931,7 +26705,7 @@ only, until their display becomes empty, at which point the windows
26931go back to their normal size. */); 26705go back to their normal size. */);
26932 Vresize_mini_windows = Qgrow_only; 26706 Vresize_mini_windows = Qgrow_only;
26933 26707
26934 DEFVAR_LISP ("blink-cursor-alist", &Vblink_cursor_alist, 26708 DEFVAR_LISP ("blink-cursor-alist", Vblink_cursor_alist,
26935 doc: /* Alist specifying how to blink the cursor off. 26709 doc: /* Alist specifying how to blink the cursor off.
26936Each element has the form (ON-STATE . OFF-STATE). Whenever the 26710Each element has the form (ON-STATE . OFF-STATE). Whenever the
26937`cursor-type' frame-parameter or variable equals ON-STATE, 26711`cursor-type' frame-parameter or variable equals ON-STATE,
@@ -26943,7 +26717,7 @@ If a frame's ON-STATE has no entry in this list,
26943the frame's other specifications determine how to blink the cursor off. */); 26717the frame's other specifications determine how to blink the cursor off. */);
26944 Vblink_cursor_alist = Qnil; 26718 Vblink_cursor_alist = Qnil;
26945 26719
26946 DEFVAR_BOOL ("auto-hscroll-mode", &automatic_hscrolling_p, 26720 DEFVAR_BOOL ("auto-hscroll-mode", automatic_hscrolling_p,
26947 doc: /* Allow or disallow automatic horizontal scrolling of windows. 26721 doc: /* Allow or disallow automatic horizontal scrolling of windows.
26948If non-nil, windows are automatically scrolled horizontally to make 26722If non-nil, windows are automatically scrolled horizontally to make
26949point visible. */); 26723point visible. */);
@@ -26951,12 +26725,12 @@ point visible. */);
26951 Qauto_hscroll_mode = intern_c_string ("auto-hscroll-mode"); 26725 Qauto_hscroll_mode = intern_c_string ("auto-hscroll-mode");
26952 staticpro (&Qauto_hscroll_mode); 26726 staticpro (&Qauto_hscroll_mode);
26953 26727
26954 DEFVAR_INT ("hscroll-margin", &hscroll_margin, 26728 DEFVAR_INT ("hscroll-margin", hscroll_margin,
26955 doc: /* *How many columns away from the window edge point is allowed to get 26729 doc: /* *How many columns away from the window edge point is allowed to get
26956before automatic hscrolling will horizontally scroll the window. */); 26730before automatic hscrolling will horizontally scroll the window. */);
26957 hscroll_margin = 5; 26731 hscroll_margin = 5;
26958 26732
26959 DEFVAR_LISP ("hscroll-step", &Vhscroll_step, 26733 DEFVAR_LISP ("hscroll-step", Vhscroll_step,
26960 doc: /* *How many columns to scroll the window when point gets too close to the edge. 26734 doc: /* *How many columns to scroll the window when point gets too close to the edge.
26961When point is less than `hscroll-margin' columns from the window 26735When point is less than `hscroll-margin' columns from the window
26962edge, automatic hscrolling will scroll the window by the amount of columns 26736edge, automatic hscrolling will scroll the window by the amount of columns
@@ -26974,28 +26748,28 @@ Note that the lower bound for automatic hscrolling specified by `scroll-left'
26974and `scroll-right' overrides this variable's effect. */); 26748and `scroll-right' overrides this variable's effect. */);
26975 Vhscroll_step = make_number (0); 26749 Vhscroll_step = make_number (0);
26976 26750
26977 DEFVAR_BOOL ("message-truncate-lines", &message_truncate_lines, 26751 DEFVAR_BOOL ("message-truncate-lines", message_truncate_lines,
26978 doc: /* If non-nil, messages are truncated instead of resizing the echo area. 26752 doc: /* If non-nil, messages are truncated instead of resizing the echo area.
26979Bind this around calls to `message' to let it take effect. */); 26753Bind this around calls to `message' to let it take effect. */);
26980 message_truncate_lines = 0; 26754 message_truncate_lines = 0;
26981 26755
26982 DEFVAR_LISP ("menu-bar-update-hook", &Vmenu_bar_update_hook, 26756 DEFVAR_LISP ("menu-bar-update-hook", Vmenu_bar_update_hook,
26983 doc: /* Normal hook run to update the menu bar definitions. 26757 doc: /* Normal hook run to update the menu bar definitions.
26984Redisplay runs this hook before it redisplays the menu bar. 26758Redisplay runs this hook before it redisplays the menu bar.
26985This is used to update submenus such as Buffers, 26759This is used to update submenus such as Buffers,
26986whose contents depend on various data. */); 26760whose contents depend on various data. */);
26987 Vmenu_bar_update_hook = Qnil; 26761 Vmenu_bar_update_hook = Qnil;
26988 26762
26989 DEFVAR_LISP ("menu-updating-frame", &Vmenu_updating_frame, 26763 DEFVAR_LISP ("menu-updating-frame", Vmenu_updating_frame,
26990 doc: /* Frame for which we are updating a menu. 26764 doc: /* Frame for which we are updating a menu.
26991The enable predicate for a menu binding should check this variable. */); 26765The enable predicate for a menu binding should check this variable. */);
26992 Vmenu_updating_frame = Qnil; 26766 Vmenu_updating_frame = Qnil;
26993 26767
26994 DEFVAR_BOOL ("inhibit-menubar-update", &inhibit_menubar_update, 26768 DEFVAR_BOOL ("inhibit-menubar-update", inhibit_menubar_update,
26995 doc: /* Non-nil means don't update menu bars. Internal use only. */); 26769 doc: /* Non-nil means don't update menu bars. Internal use only. */);
26996 inhibit_menubar_update = 0; 26770 inhibit_menubar_update = 0;
26997 26771
26998 DEFVAR_LISP ("wrap-prefix", &Vwrap_prefix, 26772 DEFVAR_LISP ("wrap-prefix", Vwrap_prefix,
26999 doc: /* Prefix prepended to all continuation lines at display time. 26773 doc: /* Prefix prepended to all continuation lines at display time.
27000The value may be a string, an image, or a stretch-glyph; it is 26774The value may be a string, an image, or a stretch-glyph; it is
27001interpreted in the same way as the value of a `display' text property. 26775interpreted in the same way as the value of a `display' text property.
@@ -27009,7 +26783,7 @@ To add a prefix to non-continuation lines, use `line-prefix'. */);
27009 Qwrap_prefix = intern_c_string ("wrap-prefix"); 26783 Qwrap_prefix = intern_c_string ("wrap-prefix");
27010 Fmake_variable_buffer_local (Qwrap_prefix); 26784 Fmake_variable_buffer_local (Qwrap_prefix);
27011 26785
27012 DEFVAR_LISP ("line-prefix", &Vline_prefix, 26786 DEFVAR_LISP ("line-prefix", Vline_prefix,
27013 doc: /* Prefix prepended to all non-continuation lines at display time. 26787 doc: /* Prefix prepended to all non-continuation lines at display time.
27014The value may be a string, an image, or a stretch-glyph; it is 26788The value may be a string, an image, or a stretch-glyph; it is
27015interpreted in the same way as the value of a `display' text property. 26789interpreted in the same way as the value of a `display' text property.
@@ -27023,36 +26797,36 @@ To add a prefix to continuation lines, use `wrap-prefix'. */);
27023 Qline_prefix = intern_c_string ("line-prefix"); 26797 Qline_prefix = intern_c_string ("line-prefix");
27024 Fmake_variable_buffer_local (Qline_prefix); 26798 Fmake_variable_buffer_local (Qline_prefix);
27025 26799
27026 DEFVAR_BOOL ("inhibit-eval-during-redisplay", &inhibit_eval_during_redisplay, 26800 DEFVAR_BOOL ("inhibit-eval-during-redisplay", inhibit_eval_during_redisplay,
27027 doc: /* Non-nil means don't eval Lisp during redisplay. */); 26801 doc: /* Non-nil means don't eval Lisp during redisplay. */);
27028 inhibit_eval_during_redisplay = 0; 26802 inhibit_eval_during_redisplay = 0;
27029 26803
27030 DEFVAR_BOOL ("inhibit-free-realized-faces", &inhibit_free_realized_faces, 26804 DEFVAR_BOOL ("inhibit-free-realized-faces", inhibit_free_realized_faces,
27031 doc: /* Non-nil means don't free realized faces. Internal use only. */); 26805 doc: /* Non-nil means don't free realized faces. Internal use only. */);
27032 inhibit_free_realized_faces = 0; 26806 inhibit_free_realized_faces = 0;
27033 26807
27034#if GLYPH_DEBUG 26808#if GLYPH_DEBUG
27035 DEFVAR_BOOL ("inhibit-try-window-id", &inhibit_try_window_id, 26809 DEFVAR_BOOL ("inhibit-try-window-id", inhibit_try_window_id,
27036 doc: /* Inhibit try_window_id display optimization. */); 26810 doc: /* Inhibit try_window_id display optimization. */);
27037 inhibit_try_window_id = 0; 26811 inhibit_try_window_id = 0;
27038 26812
27039 DEFVAR_BOOL ("inhibit-try-window-reusing", &inhibit_try_window_reusing, 26813 DEFVAR_BOOL ("inhibit-try-window-reusing", inhibit_try_window_reusing,
27040 doc: /* Inhibit try_window_reusing display optimization. */); 26814 doc: /* Inhibit try_window_reusing display optimization. */);
27041 inhibit_try_window_reusing = 0; 26815 inhibit_try_window_reusing = 0;
27042 26816
27043 DEFVAR_BOOL ("inhibit-try-cursor-movement", &inhibit_try_cursor_movement, 26817 DEFVAR_BOOL ("inhibit-try-cursor-movement", inhibit_try_cursor_movement,
27044 doc: /* Inhibit try_cursor_movement display optimization. */); 26818 doc: /* Inhibit try_cursor_movement display optimization. */);
27045 inhibit_try_cursor_movement = 0; 26819 inhibit_try_cursor_movement = 0;
27046#endif /* GLYPH_DEBUG */ 26820#endif /* GLYPH_DEBUG */
27047 26821
27048 DEFVAR_INT ("overline-margin", &overline_margin, 26822 DEFVAR_INT ("overline-margin", overline_margin,
27049 doc: /* *Space between overline and text, in pixels. 26823 doc: /* *Space between overline and text, in pixels.
27050The default value is 2: the height of the overline (1 pixel) plus 1 pixel 26824The default value is 2: the height of the overline (1 pixel) plus 1 pixel
27051margin to the caracter height. */); 26825margin to the caracter height. */);
27052 overline_margin = 2; 26826 overline_margin = 2;
27053 26827
27054 DEFVAR_INT ("underline-minimum-offset", 26828 DEFVAR_INT ("underline-minimum-offset",
27055 &underline_minimum_offset, 26829 underline_minimum_offset,
27056 doc: /* Minimum distance between baseline and underline. 26830 doc: /* Minimum distance between baseline and underline.
27057This can improve legibility of underlined text at small font sizes, 26831This can improve legibility of underlined text at small font sizes,
27058particularly when using variable `x-use-underline-position-properties' 26832particularly when using variable `x-use-underline-position-properties'
@@ -27060,13 +26834,13 @@ with fonts that specify an UNDERLINE_POSITION relatively close to the
27060baseline. The default value is 1. */); 26834baseline. The default value is 1. */);
27061 underline_minimum_offset = 1; 26835 underline_minimum_offset = 1;
27062 26836
27063 DEFVAR_BOOL ("display-hourglass", &display_hourglass_p, 26837 DEFVAR_BOOL ("display-hourglass", display_hourglass_p,
27064 doc: /* Non-nil means show an hourglass pointer, when Emacs is busy. 26838 doc: /* Non-nil means show an hourglass pointer, when Emacs is busy.
27065This feature only works when on a window system that can change 26839This feature only works when on a window system that can change
27066cursor shapes. */); 26840cursor shapes. */);
27067 display_hourglass_p = 1; 26841 display_hourglass_p = 1;
27068 26842
27069 DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay, 26843 DEFVAR_LISP ("hourglass-delay", Vhourglass_delay,
27070 doc: /* *Seconds to wait before displaying an hourglass pointer when Emacs is busy. */); 26844 doc: /* *Seconds to wait before displaying an hourglass pointer when Emacs is busy. */);
27071 Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY); 26845 Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
27072 26846
@@ -27086,7 +26860,7 @@ cursor shapes. */);
27086 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots"); 26860 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
27087 Fput (Qglyphless_char_display, Qchar_table_extra_slots, make_number (1)); 26861 Fput (Qglyphless_char_display, Qchar_table_extra_slots, make_number (1));
27088 26862
27089 DEFVAR_LISP ("glyphless-char-display", &Vglyphless_char_display, 26863 DEFVAR_LISP ("glyphless-char-display", Vglyphless_char_display,
27090 doc: /* Char-table to control displaying of glyphless characters. 26864 doc: /* Char-table to control displaying of glyphless characters.
27091Each element, if non-nil, is an ASCII acronym string (displayed in a box) 26865Each element, if non-nil, is an ASCII acronym string (displayed in a box)
27092or one of these symbols: 26866or one of these symbols:
diff --git a/src/xfaces.c b/src/xfaces.c
index 9d3c5927d6c..cdb398ef102 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -355,13 +355,6 @@ Lisp_Object Qmode_line_inactive, Qvertical_border;
355 355
356Lisp_Object Qface_alias; 356Lisp_Object Qface_alias;
357 357
358/* Default stipple pattern used on monochrome displays. This stipple
359 pattern is used on monochrome displays instead of shades of gray
360 for a face background color. See `set-face-stipple' for possible
361 values for this variable. */
362
363Lisp_Object Vface_default_stipple;
364
365/* Alist of alternative font families. Each element is of the form 358/* Alist of alternative font families. Each element is of the form
366 (FAMILY FAMILY1 FAMILY2 ...). If fonts of FAMILY can't be loaded, 359 (FAMILY FAMILY1 FAMILY2 ...). If fonts of FAMILY can't be loaded,
367 try FAMILY1, then FAMILY2, ... */ 360 try FAMILY1, then FAMILY2, ... */
@@ -380,20 +373,8 @@ Lisp_Object Vface_alternative_font_registry_alist;
380 font may be scaled if its name matches a regular expression in the 373 font may be scaled if its name matches a regular expression in the
381 list. */ 374 list. */
382 375
383Lisp_Object Vscalable_fonts_allowed, Qscalable_fonts_allowed; 376Lisp_Object Qscalable_fonts_allowed;
384
385/* List of regular expressions that matches names of fonts to ignore. */
386
387Lisp_Object Vface_ignored_fonts;
388 377
389/* Alist of font name patterns vs the rescaling factor. */
390
391Lisp_Object Vface_font_rescale_alist;
392
393/* Maximum number of fonts to consider in font_list. If not an
394 integer > 0, DEFAULT_FONT_LIST_LIMIT is used instead. */
395
396Lisp_Object Vfont_list_limit;
397#define DEFAULT_FONT_LIST_LIMIT 100 378#define DEFAULT_FONT_LIST_LIMIT 100
398 379
399/* The symbols `foreground-color' and `background-color' which can be 380/* The symbols `foreground-color' and `background-color' which can be
@@ -414,30 +395,6 @@ Lisp_Object Qface_no_inherit;
414 395
415Lisp_Object Qbitmap_spec_p; 396Lisp_Object Qbitmap_spec_p;
416 397
417/* Alist of global face definitions. Each element is of the form
418 (FACE . LFACE) where FACE is a symbol naming a face and LFACE
419 is a Lisp vector of face attributes. These faces are used
420 to initialize faces for new frames. */
421
422Lisp_Object Vface_new_frame_defaults;
423
424/* Alist of face remappings. Each element is of the form:
425 (FACE REPLACEMENT...) which causes display of the face FACE to use
426 REPLACEMENT... instead. REPLACEMENT... is interpreted the same way
427 the value of a `face' text property is: it may be (1) A face name,
428 (2) A list of face names, (3) A property-list of face attribute/value
429 pairs, or (4) A list of face names intermixed with lists containing
430 face attribute/value pairs.
431
432 Multiple entries in REPLACEMENT... are merged together to form the final
433 result, with faces or attributes earlier in the list taking precedence
434 over those that are later.
435
436 Face-name remapping cycles are suppressed; recursive references use
437 the underlying face instead of the remapped face. */
438
439Lisp_Object Vface_remapping_alist;
440
441/* The next ID to assign to Lisp faces. */ 398/* The next ID to assign to Lisp faces. */
442 399
443static int next_lface_id; 400static int next_lface_id;
@@ -455,10 +412,6 @@ Lisp_Object Qtty_color_desc, Qtty_color_by_index, Qtty_color_standard_values;
455 412
456Lisp_Object Qtty_color_alist; 413Lisp_Object Qtty_color_alist;
457 414
458/* An alist of defined terminal colors and their RGB values. */
459
460Lisp_Object Vtty_defined_color_alist;
461
462/* Counter for calls to clear_face_cache. If this counter reaches 415/* Counter for calls to clear_face_cache. If this counter reaches
463 CLEAR_FONT_TABLE_COUNT, and a frame has more than 416 CLEAR_FONT_TABLE_COUNT, and a frame has more than
464 CLEAR_FONT_TABLE_NFONTS load, unused fonts are freed. */ 417 CLEAR_FONT_TABLE_NFONTS load, unused fonts are freed. */
@@ -6715,29 +6668,29 @@ syms_of_xfaces (void)
6715 defsubr (&Sdump_colors); 6668 defsubr (&Sdump_colors);
6716#endif 6669#endif
6717 6670
6718 DEFVAR_LISP ("font-list-limit", &Vfont_list_limit, 6671 DEFVAR_LISP ("font-list-limit", Vfont_list_limit,
6719 doc: /* *Limit for font matching. 6672 doc: /* *Limit for font matching.
6720If an integer > 0, font matching functions won't load more than 6673If an integer > 0, font matching functions won't load more than
6721that number of fonts when searching for a matching font. */); 6674that number of fonts when searching for a matching font. */);
6722 Vfont_list_limit = make_number (DEFAULT_FONT_LIST_LIMIT); 6675 Vfont_list_limit = make_number (DEFAULT_FONT_LIST_LIMIT);
6723 6676
6724 DEFVAR_LISP ("face-new-frame-defaults", &Vface_new_frame_defaults, 6677 DEFVAR_LISP ("face-new-frame-defaults", Vface_new_frame_defaults,
6725 doc: /* List of global face definitions (for internal use only.) */); 6678 doc: /* List of global face definitions (for internal use only.) */);
6726 Vface_new_frame_defaults = Qnil; 6679 Vface_new_frame_defaults = Qnil;
6727 6680
6728 DEFVAR_LISP ("face-default-stipple", &Vface_default_stipple, 6681 DEFVAR_LISP ("face-default-stipple", Vface_default_stipple,
6729 doc: /* *Default stipple pattern used on monochrome displays. 6682 doc: /* *Default stipple pattern used on monochrome displays.
6730This stipple pattern is used on monochrome displays 6683This stipple pattern is used on monochrome displays
6731instead of shades of gray for a face background color. 6684instead of shades of gray for a face background color.
6732See `set-face-stipple' for possible values for this variable. */); 6685See `set-face-stipple' for possible values for this variable. */);
6733 Vface_default_stipple = make_pure_c_string ("gray3"); 6686 Vface_default_stipple = make_pure_c_string ("gray3");
6734 6687
6735 DEFVAR_LISP ("tty-defined-color-alist", &Vtty_defined_color_alist, 6688 DEFVAR_LISP ("tty-defined-color-alist", Vtty_defined_color_alist,
6736 doc: /* An alist of defined terminal colors and their RGB values. 6689 doc: /* An alist of defined terminal colors and their RGB values.
6737See the docstring of `tty-color-alist' for the details. */); 6690See the docstring of `tty-color-alist' for the details. */);
6738 Vtty_defined_color_alist = Qnil; 6691 Vtty_defined_color_alist = Qnil;
6739 6692
6740 DEFVAR_LISP ("scalable-fonts-allowed", &Vscalable_fonts_allowed, 6693 DEFVAR_LISP ("scalable-fonts-allowed", Vscalable_fonts_allowed,
6741 doc: /* Allowed scalable fonts. 6694 doc: /* Allowed scalable fonts.
6742A value of nil means don't allow any scalable fonts. 6695A value of nil means don't allow any scalable fonts.
6743A value of t means allow any scalable font. 6696A value of t means allow any scalable font.
@@ -6747,13 +6700,13 @@ Note that if value is nil, a scalable font might still be used, if no
6747other font of the appropriate family and registry is available. */); 6700other font of the appropriate family and registry is available. */);
6748 Vscalable_fonts_allowed = Qnil; 6701 Vscalable_fonts_allowed = Qnil;
6749 6702
6750 DEFVAR_LISP ("face-ignored-fonts", &Vface_ignored_fonts, 6703 DEFVAR_LISP ("face-ignored-fonts", Vface_ignored_fonts,
6751 doc: /* List of ignored fonts. 6704 doc: /* List of ignored fonts.
6752Each element is a regular expression that matches names of fonts to 6705Each element is a regular expression that matches names of fonts to
6753ignore. */); 6706ignore. */);
6754 Vface_ignored_fonts = Qnil; 6707 Vface_ignored_fonts = Qnil;
6755 6708
6756 DEFVAR_LISP ("face-remapping-alist", &Vface_remapping_alist, 6709 DEFVAR_LISP ("face-remapping-alist", Vface_remapping_alist,
6757 doc: /* Alist of face remappings. 6710 doc: /* Alist of face remappings.
6758Each element is of the form: 6711Each element is of the form:
6759 6712
@@ -6794,7 +6747,7 @@ buffer contents change, you may need to call `redraw-display' after
6794changing this variable for it to take effect. */); 6747changing this variable for it to take effect. */);
6795 Vface_remapping_alist = Qnil; 6748 Vface_remapping_alist = Qnil;
6796 6749
6797 DEFVAR_LISP ("face-font-rescale-alist", &Vface_font_rescale_alist, 6750 DEFVAR_LISP ("face-font-rescale-alist", Vface_font_rescale_alist,
6798 doc: /* Alist of fonts vs the rescaling factors. 6751 doc: /* Alist of fonts vs the rescaling factors.
6799Each element is a cons (FONT-PATTERN . RESCALE-RATIO), where 6752Each element is a cons (FONT-PATTERN . RESCALE-RATIO), where
6800FONT-PATTERN is a font-spec or a regular expression matching a font name, and 6753FONT-PATTERN is a font-spec or a regular expression matching a font name, and
diff --git a/src/xfns.c b/src/xfns.c
index 70b72faebea..d79c3a9d8e2 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -119,20 +119,12 @@ extern double atof ();
119 119
120#ifdef USE_MOTIF 120#ifdef USE_MOTIF
121 121
122/* LessTif/Motif version info. */
123
124static Lisp_Object Vmotif_version_string;
125
126#endif /* USE_MOTIF */ 122#endif /* USE_MOTIF */
127 123
128#endif /* USE_X_TOOLKIT */ 124#endif /* USE_X_TOOLKIT */
129 125
130#ifdef USE_GTK 126#ifdef USE_GTK
131 127
132/* GTK+ version info */
133
134static Lisp_Object Vgtk_version_string;
135
136#endif /* USE_GTK */ 128#endif /* USE_GTK */
137 129
138#define MAXREQUEST(dpy) (XMaxRequestSize (dpy)) 130#define MAXREQUEST(dpy) (XMaxRequestSize (dpy))
@@ -145,57 +137,10 @@ int gray_bitmap_width = gray_width;
145int gray_bitmap_height = gray_height; 137int gray_bitmap_height = gray_height;
146char *gray_bitmap_bits = gray_bits; 138char *gray_bitmap_bits = gray_bits;
147 139
148/* Non-zero means prompt with the old GTK file selection dialog. */
149
150int x_gtk_use_old_file_dialog;
151
152/* If non-zero, by default show hidden files in the GTK file chooser. */
153
154int x_gtk_show_hidden_files;
155
156/* If non-zero, don't show additional help text in the GTK file chooser. */
157
158int x_gtk_file_dialog_help_text;
159
160/* If non-zero, don't collapse to tool bar when it is detached. */
161
162int x_gtk_whole_detached_tool_bar;
163
164/* If non-zero, use Gtk+ tooltips. */
165
166static int x_gtk_use_system_tooltips;
167
168/* The background and shape of the mouse pointer, and shape when not
169 over text or in the modeline. */
170
171Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
172Lisp_Object Vx_hourglass_pointer_shape;
173
174/* The shape when over mouse-sensitive text. */
175
176Lisp_Object Vx_sensitive_text_pointer_shape;
177
178/* If non-nil, the pointer shape to indicate that windows can be
179 dragged horizontally. */
180
181Lisp_Object Vx_window_horizontal_drag_shape;
182
183/* Color of chars displayed in cursor box. */
184
185Lisp_Object Vx_cursor_fore_pixel;
186
187/* Nonzero if using X. */ 140/* Nonzero if using X. */
188 141
189static int x_in_use; 142static int x_in_use;
190 143
191/* Non nil if no window manager is in use. */
192
193Lisp_Object Vx_no_window_manager;
194
195/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
196
197Lisp_Object Vx_pixel_size_width_font_regexp;
198
199Lisp_Object Qnone; 144Lisp_Object Qnone;
200Lisp_Object Qsuppress_icon; 145Lisp_Object Qsuppress_icon;
201Lisp_Object Qundefined_color; 146Lisp_Object Qundefined_color;
@@ -4602,10 +4547,6 @@ Window tip_window;
4602 4547
4603Lisp_Object last_show_tip_args; 4548Lisp_Object last_show_tip_args;
4604 4549
4605/* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
4606
4607Lisp_Object Vx_max_tooltip_size;
4608
4609 4550
4610static Lisp_Object 4551static Lisp_Object
4611unwind_create_tip_frame (Lisp_Object frame) 4552unwind_create_tip_frame (Lisp_Object frame)
@@ -5912,28 +5853,28 @@ syms_of_xfns (void)
5912 Fput (Qundefined_color, Qerror_message, 5853 Fput (Qundefined_color, Qerror_message,
5913 make_pure_c_string ("Undefined color")); 5854 make_pure_c_string ("Undefined color"));
5914 5855
5915 DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape, 5856 DEFVAR_LISP ("x-pointer-shape", Vx_pointer_shape,
5916 doc: /* The shape of the pointer when over text. 5857 doc: /* The shape of the pointer when over text.
5917Changing the value does not affect existing frames 5858Changing the value does not affect existing frames
5918unless you set the mouse color. */); 5859unless you set the mouse color. */);
5919 Vx_pointer_shape = Qnil; 5860 Vx_pointer_shape = Qnil;
5920 5861
5921#if 0 /* This doesn't really do anything. */ 5862#if 0 /* This doesn't really do anything. */
5922 DEFVAR_LISP ("x-nontext-pointer-shape", &Vx_nontext_pointer_shape, 5863 DEFVAR_LISP ("x-nontext-pointer-shape", Vx_nontext_pointer_shape,
5923 doc: /* The shape of the pointer when not over text. 5864 doc: /* The shape of the pointer when not over text.
5924This variable takes effect when you create a new frame 5865This variable takes effect when you create a new frame
5925or when you set the mouse color. */); 5866or when you set the mouse color. */);
5926#endif 5867#endif
5927 Vx_nontext_pointer_shape = Qnil; 5868 Vx_nontext_pointer_shape = Qnil;
5928 5869
5929 DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape, 5870 DEFVAR_LISP ("x-hourglass-pointer-shape", Vx_hourglass_pointer_shape,
5930 doc: /* The shape of the pointer when Emacs is busy. 5871 doc: /* The shape of the pointer when Emacs is busy.
5931This variable takes effect when you create a new frame 5872This variable takes effect when you create a new frame
5932or when you set the mouse color. */); 5873or when you set the mouse color. */);
5933 Vx_hourglass_pointer_shape = Qnil; 5874 Vx_hourglass_pointer_shape = Qnil;
5934 5875
5935#if 0 /* This doesn't really do anything. */ 5876#if 0 /* This doesn't really do anything. */
5936 DEFVAR_LISP ("x-mode-pointer-shape", &Vx_mode_pointer_shape, 5877 DEFVAR_LISP ("x-mode-pointer-shape", Vx_mode_pointer_shape,
5937 doc: /* The shape of the pointer when over the mode line. 5878 doc: /* The shape of the pointer when over the mode line.
5938This variable takes effect when you create a new frame 5879This variable takes effect when you create a new frame
5939or when you set the mouse color. */); 5880or when you set the mouse color. */);
@@ -5941,29 +5882,29 @@ or when you set the mouse color. */);
5941 Vx_mode_pointer_shape = Qnil; 5882 Vx_mode_pointer_shape = Qnil;
5942 5883
5943 DEFVAR_LISP ("x-sensitive-text-pointer-shape", 5884 DEFVAR_LISP ("x-sensitive-text-pointer-shape",
5944 &Vx_sensitive_text_pointer_shape, 5885 Vx_sensitive_text_pointer_shape,
5945 doc: /* The shape of the pointer when over mouse-sensitive text. 5886 doc: /* The shape of the pointer when over mouse-sensitive text.
5946This variable takes effect when you create a new frame 5887This variable takes effect when you create a new frame
5947or when you set the mouse color. */); 5888or when you set the mouse color. */);
5948 Vx_sensitive_text_pointer_shape = Qnil; 5889 Vx_sensitive_text_pointer_shape = Qnil;
5949 5890
5950 DEFVAR_LISP ("x-window-horizontal-drag-cursor", 5891 DEFVAR_LISP ("x-window-horizontal-drag-cursor",
5951 &Vx_window_horizontal_drag_shape, 5892 Vx_window_horizontal_drag_shape,
5952 doc: /* Pointer shape to use for indicating a window can be dragged horizontally. 5893 doc: /* Pointer shape to use for indicating a window can be dragged horizontally.
5953This variable takes effect when you create a new frame 5894This variable takes effect when you create a new frame
5954or when you set the mouse color. */); 5895or when you set the mouse color. */);
5955 Vx_window_horizontal_drag_shape = Qnil; 5896 Vx_window_horizontal_drag_shape = Qnil;
5956 5897
5957 DEFVAR_LISP ("x-cursor-fore-pixel", &Vx_cursor_fore_pixel, 5898 DEFVAR_LISP ("x-cursor-fore-pixel", Vx_cursor_fore_pixel,
5958 doc: /* A string indicating the foreground color of the cursor box. */); 5899 doc: /* A string indicating the foreground color of the cursor box. */);
5959 Vx_cursor_fore_pixel = Qnil; 5900 Vx_cursor_fore_pixel = Qnil;
5960 5901
5961 DEFVAR_LISP ("x-max-tooltip-size", &Vx_max_tooltip_size, 5902 DEFVAR_LISP ("x-max-tooltip-size", Vx_max_tooltip_size,
5962 doc: /* Maximum size for tooltips. 5903 doc: /* Maximum size for tooltips.
5963Value is a pair (COLUMNS . ROWS). Text larger than this is clipped. */); 5904Value is a pair (COLUMNS . ROWS). Text larger than this is clipped. */);
5964 Vx_max_tooltip_size = Fcons (make_number (80), make_number (40)); 5905 Vx_max_tooltip_size = Fcons (make_number (80), make_number (40));
5965 5906
5966 DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager, 5907 DEFVAR_LISP ("x-no-window-manager", Vx_no_window_manager,
5967 doc: /* Non-nil if no X window manager is in use. 5908 doc: /* Non-nil if no X window manager is in use.
5968Emacs doesn't try to figure this out; this is always nil 5909Emacs doesn't try to figure this out; this is always nil
5969unless you set it to something else. */); 5910unless you set it to something else. */);
@@ -5972,7 +5913,7 @@ unless you set it to something else. */);
5972 Vx_no_window_manager = Qnil; 5913 Vx_no_window_manager = Qnil;
5973 5914
5974 DEFVAR_LISP ("x-pixel-size-width-font-regexp", 5915 DEFVAR_LISP ("x-pixel-size-width-font-regexp",
5975 &Vx_pixel_size_width_font_regexp, 5916 Vx_pixel_size_width_font_regexp,
5976 doc: /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. 5917 doc: /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.
5977 5918
5978Since Emacs gets width of a font matching with this regexp from 5919Since Emacs gets width of a font matching with this regexp from
@@ -5982,32 +5923,32 @@ Chinese, Japanese, and Korean. */);
5982 Vx_pixel_size_width_font_regexp = Qnil; 5923 Vx_pixel_size_width_font_regexp = Qnil;
5983 5924
5984/* This is not ifdef:ed, so other builds than GTK can customize it. */ 5925/* This is not ifdef:ed, so other builds than GTK can customize it. */
5985 DEFVAR_BOOL ("x-gtk-use-old-file-dialog", &x_gtk_use_old_file_dialog, 5926 DEFVAR_BOOL ("x-gtk-use-old-file-dialog", x_gtk_use_old_file_dialog,
5986 doc: /* *Non-nil means prompt with the old GTK file selection dialog. 5927 doc: /* *Non-nil means prompt with the old GTK file selection dialog.
5987If nil or if the file selection dialog is not available, the new GTK file 5928If nil or if the file selection dialog is not available, the new GTK file
5988chooser is used instead. To turn off all file dialogs set the 5929chooser is used instead. To turn off all file dialogs set the
5989variable `use-file-dialog'. */); 5930variable `use-file-dialog'. */);
5990 x_gtk_use_old_file_dialog = 0; 5931 x_gtk_use_old_file_dialog = 0;
5991 5932
5992 DEFVAR_BOOL ("x-gtk-show-hidden-files", &x_gtk_show_hidden_files, 5933 DEFVAR_BOOL ("x-gtk-show-hidden-files", x_gtk_show_hidden_files,
5993 doc: /* *If non-nil, the GTK file chooser will by default show hidden files. 5934 doc: /* *If non-nil, the GTK file chooser will by default show hidden files.
5994Note that this is just the default, there is a toggle button on the file 5935Note that this is just the default, there is a toggle button on the file
5995chooser to show or not show hidden files on a case by case basis. */); 5936chooser to show or not show hidden files on a case by case basis. */);
5996 x_gtk_show_hidden_files = 0; 5937 x_gtk_show_hidden_files = 0;
5997 5938
5998 DEFVAR_BOOL ("x-gtk-file-dialog-help-text", &x_gtk_file_dialog_help_text, 5939 DEFVAR_BOOL ("x-gtk-file-dialog-help-text", x_gtk_file_dialog_help_text,
5999 doc: /* *If non-nil, the GTK file chooser will show additional help text. 5940 doc: /* *If non-nil, the GTK file chooser will show additional help text.
6000If more space for files in the file chooser dialog is wanted, set this to nil 5941If more space for files in the file chooser dialog is wanted, set this to nil
6001to turn the additional text off. */); 5942to turn the additional text off. */);
6002 x_gtk_file_dialog_help_text = 1; 5943 x_gtk_file_dialog_help_text = 1;
6003 5944
6004 DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", &x_gtk_whole_detached_tool_bar, 5945 DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", x_gtk_whole_detached_tool_bar,
6005 doc: /* *If non-nil, a detached tool bar is shown in full. 5946 doc: /* *If non-nil, a detached tool bar is shown in full.
6006The default is to just show an arrow and pressing on that arrow shows 5947The default is to just show an arrow and pressing on that arrow shows
6007the tool bar buttons. */); 5948the tool bar buttons. */);
6008 x_gtk_whole_detached_tool_bar = 0; 5949 x_gtk_whole_detached_tool_bar = 0;
6009 5950
6010 DEFVAR_BOOL ("x-gtk-use-system-tooltips", &x_gtk_use_system_tooltips, 5951 DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips,
6011 doc: /* *If non-nil with a Gtk+ built Emacs, the Gtk+ toolip is used. 5952 doc: /* *If non-nil with a Gtk+ built Emacs, the Gtk+ toolip is used.
6012Otherwise use Emacs own tooltip implementation. 5953Otherwise use Emacs own tooltip implementation.
6013When using Gtk+ tooltips, the tooltip face is not used. */); 5954When using Gtk+ tooltips, the tooltip face is not used. */);
@@ -6020,7 +5961,7 @@ When using Gtk+ tooltips, the tooltip face is not used. */);
6020#ifdef USE_MOTIF 5961#ifdef USE_MOTIF
6021 Fprovide (intern_c_string ("motif"), Qnil); 5962 Fprovide (intern_c_string ("motif"), Qnil);
6022 5963
6023 DEFVAR_LISP ("motif-version-string", &Vmotif_version_string, 5964 DEFVAR_LISP ("motif-version-string", Vmotif_version_string,
6024 doc: /* Version info for LessTif/Motif. */); 5965 doc: /* Version info for LessTif/Motif. */);
6025 Vmotif_version_string = build_string (XmVERSION_STRING); 5966 Vmotif_version_string = build_string (XmVERSION_STRING);
6026#endif /* USE_MOTIF */ 5967#endif /* USE_MOTIF */
@@ -6035,7 +5976,7 @@ When using Gtk+ tooltips, the tooltip face is not used. */);
6035 Fprovide (intern_c_string ("gtk"), Qnil); 5976 Fprovide (intern_c_string ("gtk"), Qnil);
6036 Fprovide (intern_c_string ("move-toolbar"), Qnil); 5977 Fprovide (intern_c_string ("move-toolbar"), Qnil);
6037 5978
6038 DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string, 5979 DEFVAR_LISP ("gtk-version-string", Vgtk_version_string,
6039 doc: /* Version info for GTK+. */); 5980 doc: /* Version info for GTK+. */);
6040 { 5981 {
6041 char gtk_version[40]; 5982 char gtk_version[40];
diff --git a/src/xselect.c b/src/xselect.c
index da562609b9c..aec216db13e 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -111,8 +111,6 @@ Lisp_Object QUTF8_STRING; /* This is a type of selection. */
111 111
112Lisp_Object Qcompound_text_with_extensions; 112Lisp_Object Qcompound_text_with_extensions;
113 113
114static Lisp_Object Vx_lost_selection_functions;
115static Lisp_Object Vx_sent_selection_functions;
116static Lisp_Object Qforeign_selection; 114static Lisp_Object Qforeign_selection;
117 115
118/* If this is a smaller number than the max-request-size of the display, 116/* If this is a smaller number than the max-request-size of the display,
@@ -143,17 +141,6 @@ extern unsigned long last_event_timestamp;
143 selection-values. */ 141 selection-values. */
144static Lisp_Object Vselection_alist; 142static Lisp_Object Vselection_alist;
145 143
146/* This is an alist whose CARs are selection-types (whose names are the same
147 as the names of X Atoms) and whose CDRs are the names of Lisp functions to
148 call to convert the given Emacs selection value to a string representing
149 the given selection type. This is for Lisp-level extension of the emacs
150 selection handling. */
151static Lisp_Object Vselection_converter_alist;
152
153/* If the selection owner takes too long to reply to a selection request,
154 we give up on it. This is in milliseconds (0 = no timeout.) */
155static EMACS_INT x_selection_timeout;
156
157 144
158 145
159/* Define a queue to save up SELECTION_REQUEST_EVENT events for later 146/* Define a queue to save up SELECTION_REQUEST_EVENT events for later
@@ -2646,7 +2633,7 @@ syms_of_xselect (void)
2646 Vselection_alist = Qnil; 2633 Vselection_alist = Qnil;
2647 staticpro (&Vselection_alist); 2634 staticpro (&Vselection_alist);
2648 2635
2649 DEFVAR_LISP ("selection-converter-alist", &Vselection_converter_alist, 2636 DEFVAR_LISP ("selection-converter-alist", Vselection_converter_alist,
2650 doc: /* An alist associating X Windows selection-types with functions. 2637 doc: /* An alist associating X Windows selection-types with functions.
2651These functions are called to convert the selection, with three args: 2638These functions are called to convert the selection, with three args:
2652the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD'); 2639the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');
@@ -2661,7 +2648,7 @@ means that a side-effect was executed,
2661and there is no meaningful selection value. */); 2648and there is no meaningful selection value. */);
2662 Vselection_converter_alist = Qnil; 2649 Vselection_converter_alist = Qnil;
2663 2650
2664 DEFVAR_LISP ("x-lost-selection-functions", &Vx_lost_selection_functions, 2651 DEFVAR_LISP ("x-lost-selection-functions", Vx_lost_selection_functions,
2665 doc: /* A list of functions to be called when Emacs loses an X selection. 2652 doc: /* A list of functions to be called when Emacs loses an X selection.
2666\(This happens when some other X client makes its own selection 2653\(This happens when some other X client makes its own selection
2667or when a Lisp program explicitly clears the selection.) 2654or when a Lisp program explicitly clears the selection.)
@@ -2669,7 +2656,7 @@ The functions are called with one argument, the selection type
2669\(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'). */); 2656\(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'). */);
2670 Vx_lost_selection_functions = Qnil; 2657 Vx_lost_selection_functions = Qnil;
2671 2658
2672 DEFVAR_LISP ("x-sent-selection-functions", &Vx_sent_selection_functions, 2659 DEFVAR_LISP ("x-sent-selection-functions", Vx_sent_selection_functions,
2673 doc: /* A list of functions to be called when Emacs answers a selection request. 2660 doc: /* A list of functions to be called when Emacs answers a selection request.
2674The functions are called with four arguments: 2661The functions are called with four arguments:
2675 - the selection name (typically `PRIMARY', `SECONDARY', or `CLIPBOARD'); 2662 - the selection name (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');
@@ -2683,7 +2670,7 @@ This hook doesn't let you change the behavior of Emacs's selection replies,
2683it merely informs you that they have happened. */); 2670it merely informs you that they have happened. */);
2684 Vx_sent_selection_functions = Qnil; 2671 Vx_sent_selection_functions = Qnil;
2685 2672
2686 DEFVAR_INT ("x-selection-timeout", &x_selection_timeout, 2673 DEFVAR_INT ("x-selection-timeout", x_selection_timeout,
2687 doc: /* Number of milliseconds to wait for a selection reply. 2674 doc: /* Number of milliseconds to wait for a selection reply.
2688If the selection owner doesn't reply in this time, we give up. 2675If the selection owner doesn't reply in this time, we give up.
2689A value of 0 means wait as long as necessary. This is initialized from the 2676A value of 0 means wait as long as necessary. This is initialized from the
diff --git a/src/xsettings.c b/src/xsettings.c
index dbb3a8701ed..68b572b70f1 100644
--- a/src/xsettings.c
+++ b/src/xsettings.c
@@ -44,8 +44,6 @@ static char *current_font;
44static struct x_display_info *first_dpyinfo; 44static struct x_display_info *first_dpyinfo;
45static Lisp_Object Qmonospace_font_name, Qfont_name, Qfont_render, 45static Lisp_Object Qmonospace_font_name, Qfont_name, Qfont_render,
46 Qtool_bar_style; 46 Qtool_bar_style;
47static int use_system_font;
48static Lisp_Object Vxft_settings;
49static Lisp_Object current_tool_bar_style; 47static Lisp_Object current_tool_bar_style;
50 48
51#ifdef HAVE_GCONF 49#ifdef HAVE_GCONF
@@ -751,14 +749,14 @@ syms_of_xsettings (void)
751 defsubr (&Sfont_get_system_font); 749 defsubr (&Sfont_get_system_font);
752 defsubr (&Sfont_get_system_normal_font); 750 defsubr (&Sfont_get_system_normal_font);
753 751
754 DEFVAR_BOOL ("font-use-system-font", &use_system_font, 752 DEFVAR_BOOL ("font-use-system-font", use_system_font,
755 doc: /* *Non-nil means to apply the system defined font dynamically. 753 doc: /* *Non-nil means to apply the system defined font dynamically.
756When this is non-nil and the system defined fixed width font changes, we 754When this is non-nil and the system defined fixed width font changes, we
757update frames dynamically. 755update frames dynamically.
758If this variable is nil, Emacs ignores system font changes. */); 756If this variable is nil, Emacs ignores system font changes. */);
759 use_system_font = 0; 757 use_system_font = 0;
760 758
761 DEFVAR_LISP ("xft-settings", &Vxft_settings, 759 DEFVAR_LISP ("xft-settings", Vxft_settings,
762 doc: /* Font settings applied to Xft. */); 760 doc: /* Font settings applied to Xft. */);
763 Vxft_settings = make_string ("", 0); 761 Vxft_settings = make_string ("", 0);
764 762
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 515d0e28a86..57a95607fa0 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -66,15 +66,6 @@ static char *client_id;
66 66
67static char *emacs_program; 67static char *emacs_program;
68 68
69/* The client session id for this session as a lisp object. */
70
71Lisp_Object Vx_session_id;
72
73/* The id we had the previous session. This is only available if we
74 have been started by the session manager with SMID_OPT. */
75
76Lisp_Object Vx_session_previous_id;
77
78/* The option we tell the session manager to start Emacs with when 69/* The option we tell the session manager to start Emacs with when
79 restarting Emacs. The client_id is appended. */ 70 restarting Emacs. The client_id is appended. */
80 71
@@ -558,7 +549,7 @@ Do not call this function yourself. */)
558void 549void
559syms_of_xsmfns (void) 550syms_of_xsmfns (void)
560{ 551{
561 DEFVAR_LISP ("x-session-id", &Vx_session_id, 552 DEFVAR_LISP ("x-session-id", Vx_session_id,
562 doc: /* The session id Emacs got from the session manager for this session. 553 doc: /* The session id Emacs got from the session manager for this session.
563Changing the value does not change the session id used by Emacs. 554Changing the value does not change the session id used by Emacs.
564The value is nil if no session manager is running. 555The value is nil if no session manager is running.
@@ -566,7 +557,7 @@ See also `x-session-previous-id', `emacs-save-session-functions',
566`emacs-session-save' and `emacs-session-restore'." */); 557`emacs-session-save' and `emacs-session-restore'." */);
567 Vx_session_id = Qnil; 558 Vx_session_id = Qnil;
568 559
569 DEFVAR_LISP ("x-session-previous-id", &Vx_session_previous_id, 560 DEFVAR_LISP ("x-session-previous-id", Vx_session_previous_id,
570 doc: /* The previous session id Emacs got from session manager. 561 doc: /* The previous session id Emacs got from session manager.
571If Emacs is running on a window system that has a session manager, the 562If Emacs is running on a window system that has a session manager, the
572session manager gives Emacs a session id. It is feasible for Emacs Lisp 563session manager gives Emacs a session id. It is feasible for Emacs Lisp
diff --git a/src/xterm.c b/src/xterm.c
index 2c04e9fa848..9f5c8569b96 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -147,10 +147,6 @@ int use_xim = 0; /* configure --without-xim */
147 147
148 148
149 149
150/* Non-nil means Emacs uses toolkit scroll bars. */
151
152Lisp_Object Vx_toolkit_scroll_bars;
153
154/* Non-zero means that a HELP_EVENT has been generated since Emacs 150/* Non-zero means that a HELP_EVENT has been generated since Emacs
155 start. */ 151 start. */
156 152
@@ -159,14 +155,6 @@ static int any_help_event_p;
159/* Last window where we saw the mouse. Used by mouse-autoselect-window. */ 155/* Last window where we saw the mouse. Used by mouse-autoselect-window. */
160static Lisp_Object last_window; 156static Lisp_Object last_window;
161 157
162/* Non-zero means make use of UNDERLINE_POSITION font properties. */
163
164int x_use_underline_position_properties;
165
166/* Non-zero means to draw the underline at the same place as the descent line. */
167
168int x_underline_at_descent_line;
169
170/* This is a chain of structures for all the X displays currently in 158/* This is a chain of structures for all the X displays currently in
171 use. */ 159 use. */
172 160
@@ -207,11 +195,6 @@ static String Xt_default_resources[] = {0};
207 195
208static int toolkit_scroll_bar_interaction; 196static int toolkit_scroll_bar_interaction;
209 197
210/* Non-zero means to not move point as a result of clicking on a
211 frame to focus it (when focus-follows-mouse is nil). */
212
213int x_mouse_click_focus_ignore_position;
214
215/* Non-zero timeout value means ignore next mouse click if it arrives 198/* Non-zero timeout value means ignore next mouse click if it arrives
216 before that timeout elapses (i.e. as part of the same sequence of 199 before that timeout elapses (i.e. as part of the same sequence of
217 events resulting from clicking on a frame to select it). */ 200 events resulting from clicking on a frame to select it). */
@@ -282,10 +265,6 @@ static int input_signal_count;
282 265
283static int x_noop_count; 266static int x_noop_count;
284 267
285/* The keysyms to use for the various modifiers. */
286
287Lisp_Object Vx_alt_keysym, Vx_hyper_keysym, Vx_meta_keysym, Vx_super_keysym;
288Lisp_Object Vx_keysym_table;
289static Lisp_Object Qalt, Qhyper, Qmeta, Qsuper, Qmodifier_value; 268static Lisp_Object Qalt, Qhyper, Qmeta, Qsuper, Qmodifier_value;
290 269
291static Lisp_Object Qvendor_specific_keysyms; 270static Lisp_Object Qvendor_specific_keysyms;
@@ -10773,7 +10752,7 @@ syms_of_xterm (void)
10773#endif 10752#endif
10774 10753
10775 DEFVAR_BOOL ("x-use-underline-position-properties", 10754 DEFVAR_BOOL ("x-use-underline-position-properties",
10776 &x_use_underline_position_properties, 10755 x_use_underline_position_properties,
10777 doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties. 10756 doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
10778A value of nil means ignore them. If you encounter fonts with bogus 10757A value of nil means ignore them. If you encounter fonts with bogus
10779UNDERLINE_POSITION font properties, for example 7x13 on XFree prior 10758UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
@@ -10783,7 +10762,7 @@ sizes. */);
10783 x_use_underline_position_properties = 1; 10762 x_use_underline_position_properties = 1;
10784 10763
10785 DEFVAR_BOOL ("x-underline-at-descent-line", 10764 DEFVAR_BOOL ("x-underline-at-descent-line",
10786 &x_underline_at_descent_line, 10765 x_underline_at_descent_line,
10787 doc: /* *Non-nil means to draw the underline at the same place as the descent line. 10766 doc: /* *Non-nil means to draw the underline at the same place as the descent line.
10788A value of nil means to draw the underline according to the value of the 10767A value of nil means to draw the underline according to the value of the
10789variable `x-use-underline-position-properties', which is usually at the 10768variable `x-use-underline-position-properties', which is usually at the
@@ -10791,7 +10770,7 @@ baseline level. The default value is nil. */);
10791 x_underline_at_descent_line = 0; 10770 x_underline_at_descent_line = 0;
10792 10771
10793 DEFVAR_BOOL ("x-mouse-click-focus-ignore-position", 10772 DEFVAR_BOOL ("x-mouse-click-focus-ignore-position",
10794 &x_mouse_click_focus_ignore_position, 10773 x_mouse_click_focus_ignore_position,
10795 doc: /* Non-nil means that a mouse click to focus a frame does not move point. 10774 doc: /* Non-nil means that a mouse click to focus a frame does not move point.
10796This variable is only used when the window manager requires that you 10775This variable is only used when the window manager requires that you
10797click on a frame to select it (give it focus). In that case, a value 10776click on a frame to select it (give it focus). In that case, a value
@@ -10800,7 +10779,7 @@ reflect the mouse click position, while a non-nil value means that the
10800selected window or cursor position is preserved. */); 10779selected window or cursor position is preserved. */);
10801 x_mouse_click_focus_ignore_position = 0; 10780 x_mouse_click_focus_ignore_position = 0;
10802 10781
10803 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, 10782 DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars,
10804 doc: /* Which toolkit scroll bars Emacs uses, if any. 10783 doc: /* Which toolkit scroll bars Emacs uses, if any.
10805A value of nil means Emacs doesn't use toolkit scroll bars. 10784A value of nil means Emacs doesn't use toolkit scroll bars.
10806With the X Window system, the value is a symbol describing the 10785With the X Window system, the value is a symbol describing the
@@ -10833,35 +10812,35 @@ With MS Windows, the value is t. */);
10833 Qsuper = intern_c_string ("super"); 10812 Qsuper = intern_c_string ("super");
10834 Fput (Qsuper, Qmodifier_value, make_number (super_modifier)); 10813 Fput (Qsuper, Qmodifier_value, make_number (super_modifier));
10835 10814
10836 DEFVAR_LISP ("x-alt-keysym", &Vx_alt_keysym, 10815 DEFVAR_LISP ("x-alt-keysym", Vx_alt_keysym,
10837 doc: /* Which keys Emacs uses for the alt modifier. 10816 doc: /* Which keys Emacs uses for the alt modifier.
10838This should be one of the symbols `alt', `hyper', `meta', `super'. 10817This should be one of the symbols `alt', `hyper', `meta', `super'.
10839For example, `alt' means use the Alt_L and Alt_R keysyms. The default 10818For example, `alt' means use the Alt_L and Alt_R keysyms. The default
10840is nil, which is the same as `alt'. */); 10819is nil, which is the same as `alt'. */);
10841 Vx_alt_keysym = Qnil; 10820 Vx_alt_keysym = Qnil;
10842 10821
10843 DEFVAR_LISP ("x-hyper-keysym", &Vx_hyper_keysym, 10822 DEFVAR_LISP ("x-hyper-keysym", Vx_hyper_keysym,
10844 doc: /* Which keys Emacs uses for the hyper modifier. 10823 doc: /* Which keys Emacs uses for the hyper modifier.
10845This should be one of the symbols `alt', `hyper', `meta', `super'. 10824This should be one of the symbols `alt', `hyper', `meta', `super'.
10846For example, `hyper' means use the Hyper_L and Hyper_R keysyms. The 10825For example, `hyper' means use the Hyper_L and Hyper_R keysyms. The
10847default is nil, which is the same as `hyper'. */); 10826default is nil, which is the same as `hyper'. */);
10848 Vx_hyper_keysym = Qnil; 10827 Vx_hyper_keysym = Qnil;
10849 10828
10850 DEFVAR_LISP ("x-meta-keysym", &Vx_meta_keysym, 10829 DEFVAR_LISP ("x-meta-keysym", Vx_meta_keysym,
10851 doc: /* Which keys Emacs uses for the meta modifier. 10830 doc: /* Which keys Emacs uses for the meta modifier.
10852This should be one of the symbols `alt', `hyper', `meta', `super'. 10831This should be one of the symbols `alt', `hyper', `meta', `super'.
10853For example, `meta' means use the Meta_L and Meta_R keysyms. The 10832For example, `meta' means use the Meta_L and Meta_R keysyms. The
10854default is nil, which is the same as `meta'. */); 10833default is nil, which is the same as `meta'. */);
10855 Vx_meta_keysym = Qnil; 10834 Vx_meta_keysym = Qnil;
10856 10835
10857 DEFVAR_LISP ("x-super-keysym", &Vx_super_keysym, 10836 DEFVAR_LISP ("x-super-keysym", Vx_super_keysym,
10858 doc: /* Which keys Emacs uses for the super modifier. 10837 doc: /* Which keys Emacs uses for the super modifier.
10859This should be one of the symbols `alt', `hyper', `meta', `super'. 10838This should be one of the symbols `alt', `hyper', `meta', `super'.
10860For example, `super' means use the Super_L and Super_R keysyms. The 10839For example, `super' means use the Super_L and Super_R keysyms. The
10861default is nil, which is the same as `super'. */); 10840default is nil, which is the same as `super'. */);
10862 Vx_super_keysym = Qnil; 10841 Vx_super_keysym = Qnil;
10863 10842
10864 DEFVAR_LISP ("x-keysym-table", &Vx_keysym_table, 10843 DEFVAR_LISP ("x-keysym-table", Vx_keysym_table,
10865 doc: /* Hash table of character codes indexed by X keysym codes. */); 10844 doc: /* Hash table of character codes indexed by X keysym codes. */);
10866 Vx_keysym_table = make_hash_table (Qeql, make_number (900), 10845 Vx_keysym_table = make_hash_table (Qeql, make_number (900),
10867 make_float (DEFAULT_REHASH_SIZE), 10846 make_float (DEFAULT_REHASH_SIZE),
diff --git a/src/xterm.h b/src/xterm.h
index 4399d300834..8c5b50ef60d 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -388,9 +388,6 @@ extern struct x_display_info *x_display_list;
388 FONT-LIST-CACHE records previous values returned by x-list-fonts. */ 388 FONT-LIST-CACHE records previous values returned by x-list-fonts. */
389extern Lisp_Object x_display_name_list; 389extern Lisp_Object x_display_name_list;
390 390
391/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
392extern Lisp_Object Vx_pixel_size_width_font_regexp;
393
394extern struct x_display_info *x_display_info_for_display (Display *); 391extern struct x_display_info *x_display_info_for_display (Display *);
395extern struct x_display_info *x_display_info_for_name (Lisp_Object); 392extern struct x_display_info *x_display_info_for_name (Lisp_Object);
396extern void x_set_frame_alpha (struct frame *); 393extern void x_set_frame_alpha (struct frame *);