changeset 112364:42e22c4f06b7

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.
author Tom Tromey <tromey@redhat.com>
date Tue, 18 Jan 2011 13:45:37 -0700
parents 6a0c66185ba1
children 8fd096a52b28
files src/ChangeLog src/alloc.c src/buffer.c src/buffer.h src/bytecode.c src/callint.c src/callproc.c src/category.c src/ccl.c src/ccl.h src/character.c src/character.h src/charset.c src/charset.h src/cmds.c src/coding.c src/coding.h src/commands.h src/composite.c src/composite.h src/data.c src/dbusbind.c src/dired.c src/dispextern.h src/dispnew.c src/disptab.h src/doc.c src/dosfns.c src/dosfns.h src/editfns.c src/emacs.c src/eval.c src/fileio.c src/filelock.c src/fns.c src/font.c src/font.h src/fontset.c src/fontset.h src/frame.c src/frame.h src/fringe.c src/globals.h src/gtkutil.h src/image.c src/indent.c src/insdel.c src/intervals.h src/keyboard.c src/keyboard.h src/keymap.c src/keymap.h src/lisp.h src/lread.c src/macros.c src/macros.h src/marker.c src/menu.h src/minibuf.c src/msdos.c src/print.c src/process.c src/search.c src/syntax.c src/syntax.h src/sysdep.c src/term.c src/terminal.c src/termopts.h src/textprop.c src/undo.c src/w16select.c src/w32.c src/w32console.c src/w32fns.c src/w32font.c src/w32inevt.c src/w32menu.c src/w32proc.c src/w32select.c src/w32term.c src/w32term.h src/window.c src/window.h src/xdisp.c src/xfaces.c src/xfns.c src/xselect.c src/xsettings.c src/xsmfns.c src/xterm.c src/xterm.h
diffstat 92 files changed, 3875 insertions(+), 2701 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/ChangeLog	Tue Jan 18 13:45:37 2011 -0700
@@ -1,3 +1,482 @@
+2011-01-18  Tom Tromey  <tromey@parfait>
+
+	* 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.
+
 2011-01-18  Tom Tromey  <tromey@redhat.com>
 
 	* image.c (Vimagemagick_render_type): Remove redundant
--- a/src/alloc.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/alloc.c	Tue Jan 18 13:45:37 2011 -0700
@@ -161,31 +161,17 @@
 #define GC_STRING_BYTES(S)	(STRING_BYTES (S))
 #define GC_STRING_CHARS(S)	((S)->size & ~ARRAY_MARK_FLAG)
 
+/* Global variables.  */
+struct emacs_globals globals;
+
 /* Number of bytes of consing done since the last gc.  */
 
 int consing_since_gc;
 
-/* Count the amount of consing of various sorts of space.  */
-
-EMACS_INT cons_cells_consed;
-EMACS_INT floats_consed;
-EMACS_INT vector_cells_consed;
-EMACS_INT symbols_consed;
-EMACS_INT string_chars_consed;
-EMACS_INT misc_objects_consed;
-EMACS_INT intervals_consed;
-EMACS_INT strings_consed;
-
-/* Minimum number of bytes of consing since GC before next GC. */
-
-EMACS_INT gc_cons_threshold;
-
 /* Similar minimum, computed from Vgc_cons_percentage.  */
 
 EMACS_INT gc_relative_threshold;
 
-static Lisp_Object Vgc_cons_percentage;
-
 /* Minimum number of bytes of consing since GC before next GC,
    when memory is full.  */
 
@@ -201,10 +187,6 @@
 
 int abort_on_gc;
 
-/* Nonzero means display messages at beginning and end of GC.  */
-
-int garbage_collection_messages;
-
 /* Number of live and free conses etc.  */
 
 static int total_conses, total_markers, total_symbols, total_vector_size;
@@ -225,14 +207,6 @@
 
 static int malloc_hysteresis;
 
-/* Non-nil means defun should do purecopy on the function definition.  */
-
-Lisp_Object Vpurify_flag;
-
-/* Non-nil means we are handling a memory-full error.  */
-
-Lisp_Object Vmemory_full;
-
 /* Initialize it to a nonzero value to force it into data space
    (rather than bss space).  That way unexec will remap it into text
    space (pure), on some systems.  We have not implemented the
@@ -260,10 +234,6 @@
       && ((PNTR_COMPARISON_TYPE) (P)				\
 	  >= (PNTR_COMPARISON_TYPE) purebeg))
 
-/* Total number of bytes allocated in pure storage. */
-
-EMACS_INT pure_bytes_used;
-
 /* Index in pure at which next pure Lisp object will be allocated.. */
 
 static EMACS_INT pure_bytes_used_lisp;
@@ -277,10 +247,6 @@
 
 const char *pending_malloc_warning;
 
-/* Pre-computed signal argument for use when memory is exhausted.  */
-
-Lisp_Object Vmemory_signal_data;
-
 /* Maximum amount of C stack to save when a GC happens.  */
 
 #ifndef MAX_SAVE_STACK
@@ -301,10 +267,7 @@
 
 /* Hook run after GC has finished.  */
 
-Lisp_Object Vpost_gc_hook, Qpost_gc_hook;
-
-Lisp_Object Vgc_elapsed;	/* accumulated elapsed time in GC  */
-EMACS_INT gcs_done;		/* accumulated GCs  */
+Lisp_Object Qpost_gc_hook;
 
 static void mark_buffer (Lisp_Object);
 static void mark_terminals (void);
@@ -6210,7 +6173,7 @@
 void
 syms_of_alloc (void)
 {
-  DEFVAR_INT ("gc-cons-threshold", &gc_cons_threshold,
+  DEFVAR_INT ("gc-cons-threshold", gc_cons_threshold,
 	      doc: /* *Number of bytes of consing between garbage collections.
 Garbage collection can happen automatically once this many bytes have been
 allocated since the last garbage collection.  All data types count.
@@ -6221,57 +6184,57 @@
 prevent garbage collection during a part of the program.
 See also `gc-cons-percentage'.  */);
 
-  DEFVAR_LISP ("gc-cons-percentage", &Vgc_cons_percentage,
+  DEFVAR_LISP ("gc-cons-percentage", Vgc_cons_percentage,
 	       doc: /* *Portion of the heap used for allocation.
 Garbage collection can happen automatically once this portion of the heap
 has been allocated since the last garbage collection.
 If this portion is smaller than `gc-cons-threshold', this is ignored.  */);
   Vgc_cons_percentage = make_float (0.1);
 
-  DEFVAR_INT ("pure-bytes-used", &pure_bytes_used,
+  DEFVAR_INT ("pure-bytes-used", pure_bytes_used,
 	      doc: /* Number of bytes of sharable Lisp data allocated so far.  */);
 
-  DEFVAR_INT ("cons-cells-consed", &cons_cells_consed,
+  DEFVAR_INT ("cons-cells-consed", cons_cells_consed,
 	      doc: /* Number of cons cells that have been consed so far.  */);
 
-  DEFVAR_INT ("floats-consed", &floats_consed,
+  DEFVAR_INT ("floats-consed", floats_consed,
 	      doc: /* Number of floats that have been consed so far.  */);
 
-  DEFVAR_INT ("vector-cells-consed", &vector_cells_consed,
+  DEFVAR_INT ("vector-cells-consed", vector_cells_consed,
 	      doc: /* Number of vector cells that have been consed so far.  */);
 
-  DEFVAR_INT ("symbols-consed", &symbols_consed,
+  DEFVAR_INT ("symbols-consed", symbols_consed,
 	      doc: /* Number of symbols that have been consed so far.  */);
 
-  DEFVAR_INT ("string-chars-consed", &string_chars_consed,
+  DEFVAR_INT ("string-chars-consed", string_chars_consed,
 	      doc: /* Number of string characters that have been consed so far.  */);
 
-  DEFVAR_INT ("misc-objects-consed", &misc_objects_consed,
+  DEFVAR_INT ("misc-objects-consed", misc_objects_consed,
 	      doc: /* Number of miscellaneous objects that have been consed so far.  */);
 
-  DEFVAR_INT ("intervals-consed", &intervals_consed,
+  DEFVAR_INT ("intervals-consed", intervals_consed,
 	      doc: /* Number of intervals that have been consed so far.  */);
 
-  DEFVAR_INT ("strings-consed", &strings_consed,
+  DEFVAR_INT ("strings-consed", strings_consed,
 	      doc: /* Number of strings that have been consed so far.  */);
 
-  DEFVAR_LISP ("purify-flag", &Vpurify_flag,
+  DEFVAR_LISP ("purify-flag", Vpurify_flag,
 	       doc: /* Non-nil means loading Lisp code in order to dump an executable.
 This means that certain objects should be allocated in shared (pure) space.
 It can also be set to a hash-table, in which case this table is used to
 do hash-consing of the objects allocated to pure space.  */);
 
-  DEFVAR_BOOL ("garbage-collection-messages", &garbage_collection_messages,
+  DEFVAR_BOOL ("garbage-collection-messages", garbage_collection_messages,
 	       doc: /* Non-nil means display messages at start and end of garbage collection.  */);
   garbage_collection_messages = 0;
 
-  DEFVAR_LISP ("post-gc-hook", &Vpost_gc_hook,
+  DEFVAR_LISP ("post-gc-hook", Vpost_gc_hook,
 	       doc: /* Hook run after garbage collection has finished.  */);
   Vpost_gc_hook = Qnil;
   Qpost_gc_hook = intern_c_string ("post-gc-hook");
   staticpro (&Qpost_gc_hook);
 
-  DEFVAR_LISP ("memory-signal-data", &Vmemory_signal_data,
+  DEFVAR_LISP ("memory-signal-data", Vmemory_signal_data,
 	       doc: /* Precomputed `signal' argument for memory-full error.  */);
   /* We build this in advance because if we wait until we need it, we might
      not be able to allocate the memory to hold it.  */
@@ -6279,7 +6242,7 @@
     = pure_cons (Qerror,
 		 pure_cons (make_pure_c_string ("Memory exhausted--use M-x save-some-buffers then exit and restart Emacs"), Qnil));
 
-  DEFVAR_LISP ("memory-full", &Vmemory_full,
+  DEFVAR_LISP ("memory-full", Vmemory_full,
 	       doc: /* Non-nil means Emacs cannot get much more Lisp memory.  */);
   Vmemory_full = Qnil;
 
@@ -6289,10 +6252,10 @@
   staticpro (&Qchar_table_extra_slots);
   Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
 
-  DEFVAR_LISP ("gc-elapsed", &Vgc_elapsed,
+  DEFVAR_LISP ("gc-elapsed", Vgc_elapsed,
 	       doc: /* Accumulated time elapsed in garbage collections.
 The time is in seconds as a floating point value.  */);
-  DEFVAR_INT ("gcs-done", &gcs_done,
+  DEFVAR_INT ("gcs-done", gcs_done,
 	      doc: /* Accumulated number of garbage collections done.  */);
 
   defsubr (&Scons);
--- a/src/buffer.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/buffer.c	Tue Jan 18 13:45:37 2011 -0700
@@ -113,36 +113,16 @@
  to prevent lossage due to user rplac'ing this alist or its elements.  */
 Lisp_Object Vbuffer_alist;
 
-/* Functions to call before and after each text change. */
-Lisp_Object Vbefore_change_functions;
-Lisp_Object Vafter_change_functions;
-
-Lisp_Object Vtransient_mark_mode;
-
-/* t means ignore all read-only text properties.
-   A list means ignore such a property if its value is a member of the list.
-   Any non-nil value means ignore buffer-read-only.  */
-Lisp_Object Vinhibit_read_only;
-
-/* List of functions to call that can query about killing a buffer.
-   If any of these functions returns nil, we don't kill it.  */
-Lisp_Object Vkill_buffer_query_functions;
 Lisp_Object Qkill_buffer_query_functions;
 
 /* Hook run before changing a major mode.  */
-Lisp_Object Vchange_major_mode_hook, Qchange_major_mode_hook;
-
-/* List of functions to call before changing an unmodified buffer.  */
-Lisp_Object Vfirst_change_hook;
+Lisp_Object Qchange_major_mode_hook;
 
 Lisp_Object Qfirst_change_hook;
 Lisp_Object Qbefore_change_functions;
 Lisp_Object Qafter_change_functions;
 Lisp_Object Qucs_set_table_for_input;
 
-/* If nonzero, all modification hooks are suppressed.  */
-int inhibit_modification_hooks;
-
 Lisp_Object Qfundamental_mode, Qmode_class, Qpermanent_local;
 Lisp_Object Qpermanent_local_hook;
 
@@ -5943,7 +5923,7 @@
     "Don't ask.");
 */
 
-  DEFVAR_LISP ("before-change-functions", &Vbefore_change_functions,
+  DEFVAR_LISP ("before-change-functions", Vbefore_change_functions,
 	       doc: /* List of functions to call before each text change.
 Two arguments are passed to each function: the positions of
 the beginning and end of the range of old text to be changed.
@@ -5959,7 +5939,7 @@
 from happening repeatedly and making Emacs nonfunctional.  */);
   Vbefore_change_functions = Qnil;
 
-  DEFVAR_LISP ("after-change-functions", &Vafter_change_functions,
+  DEFVAR_LISP ("after-change-functions", Vafter_change_functions,
 	       doc: /* List of functions to call after each text change.
 Three arguments are passed to each function: the positions of
 the beginning and end of the range of changed text,
@@ -5977,7 +5957,7 @@
 from happening repeatedly and making Emacs nonfunctional.  */);
   Vafter_change_functions = Qnil;
 
-  DEFVAR_LISP ("first-change-hook", &Vfirst_change_hook,
+  DEFVAR_LISP ("first-change-hook", Vfirst_change_hook,
 	       doc: /* A list of functions to call before changing a buffer which is unmodified.
 The functions are run using the `run-hooks' function.  */);
   Vfirst_change_hook = Qnil;
@@ -6092,7 +6072,7 @@
 to the value obtained by calling `current-time'.
 If the buffer has never been shown in a window, the value is nil.  */);
 
-  DEFVAR_LISP ("transient-mark-mode", &Vtransient_mark_mode,
+  DEFVAR_LISP ("transient-mark-mode", Vtransient_mark_mode,
 	       doc: /*  Non-nil if Transient Mark mode is enabled.
 See the command `transient-mark-mode' for a description of this minor mode.
 
@@ -6113,7 +6093,7 @@
   `transient-mark-mode' is set to OLDVAL.  */);
   Vtransient_mark_mode = Qnil;
 
-  DEFVAR_LISP ("inhibit-read-only", &Vinhibit_read_only,
+  DEFVAR_LISP ("inhibit-read-only", Vinhibit_read_only,
 	       doc: /* *Non-nil means disregard read-only status of buffers or characters.
 If the value is t, disregard `buffer-read-only' and all `read-only'
 text properties.  If the value is a list, disregard `buffer-read-only'
@@ -6156,13 +6136,13 @@
 You can also specify the cursor type as in the `cursor-type' variable.
 Use Custom to set this variable and update the display."  */);
 
-  DEFVAR_LISP ("kill-buffer-query-functions", &Vkill_buffer_query_functions,
+  DEFVAR_LISP ("kill-buffer-query-functions", Vkill_buffer_query_functions,
 	       doc: /* List of functions called with no args to query before killing a buffer.
 The buffer being killed will be current while the functions are running.
 If any of them returns nil, the buffer is not killed.  */);
   Vkill_buffer_query_functions = Qnil;
 
-  DEFVAR_LISP ("change-major-mode-hook", &Vchange_major_mode_hook,
+  DEFVAR_LISP ("change-major-mode-hook", Vchange_major_mode_hook,
 	       doc: /* Normal hook run before changing the major mode of a buffer.
 The function `kill-all-local-variables' runs this before doing anything else.  */);
   Vchange_major_mode_hook = Qnil;
--- a/src/buffer.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/buffer.h	Tue Jan 18 13:45:37 2011 -0700
@@ -901,19 +901,10 @@
 EXFUN (Fdelete_overlay, 1);
 EXFUN (Fbuffer_local_value, 2);
 
-/* Functions to call before and after each text change.  */
-extern Lisp_Object Vbefore_change_functions;
-extern Lisp_Object Vafter_change_functions;
-extern Lisp_Object Vfirst_change_hook;
 extern Lisp_Object Qbefore_change_functions;
 extern Lisp_Object Qafter_change_functions;
 extern Lisp_Object Qfirst_change_hook;
 
-/* If nonzero, all modification hooks are suppressed.  */
-extern int inhibit_modification_hooks;
-
-extern Lisp_Object Vdeactivate_mark;
-extern Lisp_Object Vtransient_mark_mode;
 
 /* Overlays */
 
--- a/src/bytecode.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/bytecode.c	Tue Jan 18 13:45:37 2011 -0700
@@ -58,9 +58,7 @@
 
 #ifdef BYTE_CODE_METER
 
-Lisp_Object Vbyte_code_meter, Qbyte_code_meter;
-int byte_metering_on;
-
+Lisp_Object Qbyte_code_meter;
 #define METER_2(code1, code2) \
   XFASTINT (XVECTOR (XVECTOR (Vbyte_code_meter)->contents[(code1)]) \
 	    ->contents[(code2)])
@@ -1686,7 +1684,7 @@
 
 #ifdef BYTE_CODE_METER
 
-  DEFVAR_LISP ("byte-code-meter", &Vbyte_code_meter,
+  DEFVAR_LISP ("byte-code-meter", Vbyte_code_meter,
 	       doc: /* A vector of vectors which holds a histogram of byte-code usage.
 \(aref (aref byte-code-meter 0) CODE) indicates how many times the byte
 opcode CODE has been executed.
@@ -1694,7 +1692,7 @@
 indicates how many times the byte opcodes CODE1 and CODE2 have been
 executed in succession.  */);
 
-  DEFVAR_BOOL ("byte-metering-on", &byte_metering_on,
+  DEFVAR_BOOL ("byte-metering-on", byte_metering_on,
 	       doc: /* If non-nil, keep profiling information on byte code usage.
 The variable byte-code-meter indicates how often each byte opcode is used.
 If a symbol has a property named `byte-code-meter' whose value is an
--- a/src/callint.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/callint.c	Tue Jan 18 13:45:37 2011 -0700
@@ -29,20 +29,14 @@
 #include "window.h"
 #include "keymap.h"
 
-Lisp_Object Vcurrent_prefix_arg, Qminus, Qplus;
+Lisp_Object Qminus, Qplus;
 Lisp_Object Qcall_interactively;
-Lisp_Object Vcommand_history;
-
-Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
+Lisp_Object Qcommand_debug_status;
 Lisp_Object Qenable_recursive_minibuffers;
 
-/* Non-nil means treat the mark as active
-   even if mark_active is 0.  */
-Lisp_Object Vmark_even_if_inactive;
-
 Lisp_Object Qhandle_shift_selection;
 
-Lisp_Object Vmouse_leave_buffer_hook, Qmouse_leave_buffer_hook;
+Lisp_Object Qmouse_leave_buffer_hook;
 
 Lisp_Object Qlist, Qlet, Qletx, Qsave_excursion, Qprogn, Qif, Qwhen;
 static Lisp_Object preserved_fns;
@@ -940,7 +934,7 @@
 		 doc: /* The value of the prefix argument for the previous editing command.
 See `prefix-arg' for the meaning of the value.  */);
 
-  DEFVAR_LISP ("current-prefix-arg", &Vcurrent_prefix_arg,
+  DEFVAR_LISP ("current-prefix-arg", Vcurrent_prefix_arg,
 	       doc: /* The value of the prefix argument for this editing command.
 It may be a number, or the symbol `-' for just a minus sign as arg,
 or a list whose car is a number for just one or more C-u's
@@ -948,7 +942,7 @@
 This is what `(interactive \"P\")' returns.  */);
   Vcurrent_prefix_arg = Qnil;
 
-  DEFVAR_LISP ("command-history", &Vcommand_history,
+  DEFVAR_LISP ("command-history", Vcommand_history,
 	       doc: /* List of recent commands that read arguments from terminal.
 Each command is represented as a form to evaluate.
 
@@ -956,13 +950,13 @@
 of `history-length', which see.  */);
   Vcommand_history = Qnil;
 
-  DEFVAR_LISP ("command-debug-status", &Vcommand_debug_status,
+  DEFVAR_LISP ("command-debug-status", Vcommand_debug_status,
 	       doc: /* Debugging status of current interactive command.
 Bound each time `call-interactively' is called;
 may be set by the debugger as a reminder for itself.  */);
   Vcommand_debug_status = Qnil;
 
-  DEFVAR_LISP ("mark-even-if-inactive", &Vmark_even_if_inactive,
+  DEFVAR_LISP ("mark-even-if-inactive", Vmark_even_if_inactive,
 	       doc: /* *Non-nil means you can use the mark even when inactive.
 This option makes a difference in Transient Mark mode.
 When the option is non-nil, deactivation of the mark
@@ -970,7 +964,7 @@
 behave as if the mark were still active.  */);
   Vmark_even_if_inactive = Qt;
 
-  DEFVAR_LISP ("mouse-leave-buffer-hook", &Vmouse_leave_buffer_hook,
+  DEFVAR_LISP ("mouse-leave-buffer-hook", Vmouse_leave_buffer_hook,
 	       doc: /* Hook to run when about to switch windows with a mouse command.
 Its purpose is to give temporary modes such as Isearch mode
 a way to turn themselves off when a mouse command switches windows.  */);
--- a/src/callproc.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/callproc.c	Tue Jan 18 13:45:37 2011 -0700
@@ -72,17 +72,9 @@
 #endif
 #endif
 
-Lisp_Object Vexec_path, Vexec_directory, Vexec_suffixes;
-Lisp_Object Vdata_directory, Vdoc_directory;
-Lisp_Object Vconfigure_info_directory, Vshared_game_score_directory;
-
 /* Pattern used by call-process-region to make temp files.  */
 static Lisp_Object Vtemp_file_name_pattern;
 
-Lisp_Object Vshell_file_name;
-
-Lisp_Object Vprocess_environment, Vinitial_environment;
-
 #ifdef DOS_NT
 Lisp_Object Qbuffer_file_type;
 #endif /* DOS_NT */
@@ -1526,41 +1518,41 @@
 #endif
   staticpro (&Vtemp_file_name_pattern);
 
-  DEFVAR_LISP ("shell-file-name", &Vshell_file_name,
+  DEFVAR_LISP ("shell-file-name", Vshell_file_name,
 	       doc: /* *File name to load inferior shells from.
 Initialized from the SHELL environment variable, or to a system-dependent
 default if SHELL is not set.  */);
 
-  DEFVAR_LISP ("exec-path", &Vexec_path,
+  DEFVAR_LISP ("exec-path", Vexec_path,
 	       doc: /* *List of directories to search programs to run in subprocesses.
 Each element is a string (directory name) or nil (try default directory).  */);
 
-  DEFVAR_LISP ("exec-suffixes", &Vexec_suffixes,
+  DEFVAR_LISP ("exec-suffixes", Vexec_suffixes,
 	       doc: /* *List of suffixes to try to find executable file names.
 Each element is a string.  */);
   Vexec_suffixes = Qnil;
 
-  DEFVAR_LISP ("exec-directory", &Vexec_directory,
+  DEFVAR_LISP ("exec-directory", Vexec_directory,
 	       doc: /* Directory for executables for Emacs to invoke.
 More generally, this includes any architecture-dependent files
 that are built and installed from the Emacs distribution.  */);
 
-  DEFVAR_LISP ("data-directory", &Vdata_directory,
+  DEFVAR_LISP ("data-directory", Vdata_directory,
 	       doc: /* Directory of machine-independent files that come with GNU Emacs.
 These are files intended for Emacs to use while it runs.  */);
 
-  DEFVAR_LISP ("doc-directory", &Vdoc_directory,
+  DEFVAR_LISP ("doc-directory", Vdoc_directory,
 	       doc: /* Directory containing the DOC file that comes with GNU Emacs.
 This is usually the same as `data-directory'.  */);
 
-  DEFVAR_LISP ("configure-info-directory", &Vconfigure_info_directory,
+  DEFVAR_LISP ("configure-info-directory", Vconfigure_info_directory,
 	       doc: /* For internal use by the build procedure only.
 This is the name of the directory in which the build procedure installed
 Emacs's info files; the default value for `Info-default-directory-list'
 includes this.  */);
   Vconfigure_info_directory = build_string (PATH_INFO);
 
-  DEFVAR_LISP ("shared-game-score-directory", &Vshared_game_score_directory,
+  DEFVAR_LISP ("shared-game-score-directory", Vshared_game_score_directory,
 	       doc: /* Directory of score files for games which come with GNU Emacs.
 If this variable is nil, then Emacs is unable to use a shared directory.  */);
 #ifdef DOS_NT
@@ -1569,13 +1561,13 @@
   Vshared_game_score_directory = build_string (PATH_GAME);
 #endif
 
-  DEFVAR_LISP ("initial-environment", &Vinitial_environment,
+  DEFVAR_LISP ("initial-environment", Vinitial_environment,
 	       doc: /* List of environment variables inherited from the parent process.
 Each element should be a string of the form ENVVARNAME=VALUE.
 The elements must normally be decoded (using `locale-coding-system') for use.  */);
   Vinitial_environment = Qnil;
 
-  DEFVAR_LISP ("process-environment", &Vprocess_environment,
+  DEFVAR_LISP ("process-environment", Vprocess_environment,
 	       doc: /* List of overridden environment variables for subprocesses to inherit.
 Each element should be a string of the form ENVVARNAME=VALUE.
 
--- a/src/category.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/category.c	Tue Jan 18 13:45:37 2011 -0700
@@ -50,9 +50,6 @@
 
 Lisp_Object Qcategory_table, Qcategoryp, Qcategorysetp, Qcategory_table_p;
 
-/* Variables to determine word boundary.  */
-Lisp_Object Vword_combining_categories, Vword_separating_categories;
-
 /* Temporary internal variable used in macro CHAR_HAS_CATEGORY.  */
 Lisp_Object _temp_category_set;
 
@@ -481,7 +478,7 @@
   Qcategory_table_p = intern_c_string ("category-table-p");
   staticpro (&Qcategory_table_p);
 
-  DEFVAR_LISP ("word-combining-categories", &Vword_combining_categories,
+  DEFVAR_LISP ("word-combining-categories", Vword_combining_categories,
 	       doc: /* List of pair (cons) of categories to determine word boundary.
 
 Emacs treats a sequence of word constituent characters as a single
@@ -519,7 +516,7 @@
 
   Vword_combining_categories = Qnil;
 
-  DEFVAR_LISP ("word-separating-categories", &Vword_separating_categories,
+  DEFVAR_LISP ("word-separating-categories", Vword_separating_categories,
 	       doc: /* List of pair (cons) of categories to determine word boundary.
 See the documentation of the variable `word-combining-categories'.  */);
 
--- a/src/ccl.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/ccl.c	Tue Jan 18 13:45:37 2011 -0700
@@ -37,12 +37,6 @@
 
 Lisp_Object Qccl, Qcclp;
 
-/* This contains all code conversion map available to CCL.  */
-Lisp_Object Vcode_conversion_map_vector;
-
-/* Alist of fontname patterns vs corresponding CCL program.  */
-Lisp_Object Vfont_ccl_encoder_alist;
-
 /* This symbol is a property which associates with ccl program vector.
    Ex: (get 'ccl-big5-encoder 'ccl-program) returns ccl program vector.  */
 Lisp_Object Qccl_program;
@@ -65,9 +59,6 @@
    was once used.  */
 Lisp_Object Vccl_program_table;
 
-/* Vector of registered hash tables for translation.  */
-Lisp_Object Vtranslation_hash_table_vector;
-
 /* Return a hash table of id number ID.  */
 #define GET_HASH_TABLE(id) \
   (XHASH_TABLE (XCDR(XVECTOR(Vtranslation_hash_table_vector)->contents[(id)])))
@@ -2321,11 +2312,11 @@
   Qcode_conversion_map_id = intern_c_string ("code-conversion-map-id");
   staticpro (&Qcode_conversion_map_id);
 
-  DEFVAR_LISP ("code-conversion-map-vector", &Vcode_conversion_map_vector,
+  DEFVAR_LISP ("code-conversion-map-vector", Vcode_conversion_map_vector,
 	       doc: /* Vector of code conversion maps.  */);
   Vcode_conversion_map_vector = Fmake_vector (make_number (16), Qnil);
 
-  DEFVAR_LISP ("font-ccl-encoder-alist", &Vfont_ccl_encoder_alist,
+  DEFVAR_LISP ("font-ccl-encoder-alist", Vfont_ccl_encoder_alist,
 	       doc: /* Alist of fontname patterns vs corresponding CCL program.
 Each element looks like (REGEXP . CCL-CODE),
  where CCL-CODE is a compiled CCL program.
@@ -2338,7 +2329,7 @@
  If the font is single-byte font, the register R2 is not used.  */);
   Vfont_ccl_encoder_alist = Qnil;
 
-  DEFVAR_LISP ("translation-hash-table-vector", &Vtranslation_hash_table_vector,
+  DEFVAR_LISP ("translation-hash-table-vector", Vtranslation_hash_table_vector,
     doc: /* Vector containing all translation hash tables ever defined.
 Comprises pairs (SYMBOL . TABLE) where SYMBOL and TABLE were set up by calls
 to `define-translation-hash-table'.  The vector is indexed by the table id
--- a/src/ccl.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/ccl.h	Tue Jan 18 13:45:37 2011 -0700
@@ -92,9 +92,6 @@
 
 #define CODING_SPEC_CCL_PROGRAM(coding) ((coding)->spec.ccl.ccl)
 
-/* Alist of fontname patterns vs corresponding CCL program.  */
-extern Lisp_Object Vfont_ccl_encoder_alist;
-
 /* Setup fields of the structure pointed by CCL appropriately for the
    execution of ccl program CCL_PROG (symbol or vector).  */
 extern int setup_ccl_program (struct ccl_program *, Lisp_Object);
--- a/src/character.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/character.c	Tue Jan 18 13:45:37 2011 -0700
@@ -50,43 +50,17 @@
 
 Lisp_Object Qcharacterp;
 
-/* Vector of translation table ever defined.
-   ID of a translation table is used to index this vector.  */
-Lisp_Object Vtranslation_table_vector;
-
-/* A char-table for characters which may invoke auto-filling.  */
-Lisp_Object Vauto_fill_chars;
-
 Lisp_Object Qauto_fill_chars;
 
 /* Char-table of information about which character to unify to which
    Unicode character.  Mainly used by the macro MAYBE_UNIFY_CHAR.  */
 Lisp_Object Vchar_unify_table;
 
-/* A char-table.  An element is non-nil iff the corresponding
-   character has a printable glyph.  */
-Lisp_Object Vprintable_chars;
-
-/* A char-table.  An elemnent is a column-width of the corresponding
-   character.  */
-Lisp_Object Vchar_width_table;
-
-/* A char-table.  An element is a symbol indicating the direction
-   property of corresponding character.  */
-Lisp_Object Vchar_direction_table;
-
 /* Variable used locally in the macro FETCH_MULTIBYTE_CHAR.  */
 unsigned char *_fetch_multibyte_char_p;
 
-/* Char table of scripts.  */
-Lisp_Object Vchar_script_table;
-
-/* Alist of scripts vs representative characters.  */
-Lisp_Object Vscript_representative_chars;
-
 static Lisp_Object Qchar_script_table;
 
-Lisp_Object Vunicode_category_table;
 
 
 /* If character code C has modifier masks, reflect them to the
@@ -1071,14 +1045,14 @@
   defsubr (&Schar_resolve_modifiers);
   defsubr (&Sget_byte);
 
-  DEFVAR_LISP ("translation-table-vector",  &Vtranslation_table_vector,
+  DEFVAR_LISP ("translation-table-vector",  Vtranslation_table_vector,
 	       doc: /*
 Vector recording all translation tables ever defined.
 Each element is a pair (SYMBOL . TABLE) relating the table to the
 symbol naming it.  The ID of a translation table is an index into this vector.  */);
   Vtranslation_table_vector = Fmake_vector (make_number (16), Qnil);
 
-  DEFVAR_LISP ("auto-fill-chars", &Vauto_fill_chars,
+  DEFVAR_LISP ("auto-fill-chars", Vauto_fill_chars,
 	       doc: /*
 A char-table for characters which invoke auto-filling.
 Such characters have value t in this table.  */);
@@ -1086,7 +1060,7 @@
   CHAR_TABLE_SET (Vauto_fill_chars, ' ', Qt);
   CHAR_TABLE_SET (Vauto_fill_chars, '\n', Qt);
 
-  DEFVAR_LISP ("char-width-table", &Vchar_width_table,
+  DEFVAR_LISP ("char-width-table", Vchar_width_table,
 	       doc: /*
 A char-table for width (columns) of each character.  */);
   Vchar_width_table = Fmake_char_table (Qnil, make_number (1));
@@ -1094,11 +1068,11 @@
   char_table_set_range (Vchar_width_table, MAX_5_BYTE_CHAR + 1, MAX_CHAR,
 			make_number (4));
 
-  DEFVAR_LISP ("char-direction-table", &Vchar_direction_table,
+  DEFVAR_LISP ("char-direction-table", Vchar_direction_table,
 	       doc: /* A char-table for direction of each character.  */);
   Vchar_direction_table = Fmake_char_table (Qnil, make_number (1));
 
-  DEFVAR_LISP ("printable-chars", &Vprintable_chars,
+  DEFVAR_LISP ("printable-chars", Vprintable_chars,
 	       doc: /* A char-table for each printable character.  */);
   Vprintable_chars = Fmake_char_table (Qnil, Qnil);
   Fset_char_table_range (Vprintable_chars,
@@ -1107,7 +1081,7 @@
 			 Fcons (make_number (160),
 				make_number (MAX_5_BYTE_CHAR)), Qt);
 
-  DEFVAR_LISP ("char-script-table", &Vchar_script_table,
+  DEFVAR_LISP ("char-script-table", Vchar_script_table,
 	       doc: /* Char table of script symbols.
 It has one extra slot whose value is a list of script symbols.  */);
 
@@ -1119,7 +1093,7 @@
   Fput (Qchar_script_table, Qchar_table_extra_slots, make_number (1));
   Vchar_script_table = Fmake_char_table (Qchar_script_table, Qnil);
 
-  DEFVAR_LISP ("script-representative-chars", &Vscript_representative_chars,
+  DEFVAR_LISP ("script-representative-chars", Vscript_representative_chars,
 	       doc: /* Alist of scripts vs the representative characters.
 Each element is a cons (SCRIPT . CHARS).
 SCRIPT is a symbol representing a script or a subgroup of a script.
@@ -1129,7 +1103,7 @@
 This variable is used to find a font for a specific script.  */);
   Vscript_representative_chars = Qnil;
 
-  DEFVAR_LISP ("unicode-category-table", &Vunicode_category_table,
+  DEFVAR_LISP ("unicode-category-table", Vunicode_category_table,
 	       doc: /* Char table of Unicode's "General Category".
 All Unicode characters have one of the following values (symbol):
   Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po,
--- a/src/character.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/character.h	Tue Jan 18 13:45:37 2011 -0700
@@ -618,27 +618,14 @@
 extern EMACS_INT lisp_string_width (Lisp_Object, int,
 				    EMACS_INT *, EMACS_INT *);
 
-extern Lisp_Object Vprintable_chars;
-
 extern Lisp_Object Qcharacterp, Qauto_fill_chars;
-extern Lisp_Object Vtranslation_table_vector;
-extern Lisp_Object Vchar_width_table;
-extern Lisp_Object Vchar_direction_table;
 extern Lisp_Object Vchar_unify_table;
-extern Lisp_Object Vunicode_category_table;
-
 extern Lisp_Object string_escape_byte8 (Lisp_Object);
 
 /* Return a translation table of id number ID.  */
 #define GET_TRANSLATION_TABLE(id) \
   (XCDR(XVECTOR(Vtranslation_table_vector)->contents[(id)]))
 
-/* A char-table for characters which may invoke auto-filling.  */
-extern Lisp_Object Vauto_fill_chars;
-
-extern Lisp_Object Vchar_script_table;
-extern Lisp_Object Vscript_representative_chars;
-
 #define DEFSYM(sym, name)	\
   do { (sym) = intern_c_string ((name)); staticpro (&(sym)); } while (0)
 
--- a/src/charset.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/charset.c	Tue Jan 18 13:45:37 2011 -0700
@@ -54,10 +54,6 @@
 
 */
 
-/* List of all charsets.  This variable is used only from Emacs
-   Lisp.  */
-Lisp_Object Vcharset_list;
-
 /* Hash table that contains attributes of each charset.  Keys are
    charset symbols, and values are vectors of charset attributes.  */
 Lisp_Object Vcharset_hash_table;
@@ -120,13 +116,6 @@
    CHARS, and FINAL-CHAR) to Emacs' charset.  */
 int iso_charset_table[ISO_MAX_DIMENSION][ISO_MAX_CHARS][ISO_MAX_FINAL];
 
-Lisp_Object Vcharset_map_path;
-
-/* If nonzero, don't load charset maps.  */
-int inhibit_load_charset_map;
-
-Lisp_Object Vcurrent_iso639_language;
-
 #define CODE_POINT_TO_INDEX(charset, code)				\
   ((charset)->code_linear_p						\
    ? (code) - (charset)->min_code					\
@@ -2404,19 +2393,19 @@
   defsubr (&Scharset_id_internal);
   defsubr (&Ssort_charsets);
 
-  DEFVAR_LISP ("charset-map-path", &Vcharset_map_path,
+  DEFVAR_LISP ("charset-map-path", Vcharset_map_path,
 	       doc: /* *List of directories to search for charset map files.  */);
   Vcharset_map_path = Qnil;
 
-  DEFVAR_BOOL ("inhibit-load-charset-map", &inhibit_load_charset_map,
+  DEFVAR_BOOL ("inhibit-load-charset-map", inhibit_load_charset_map,
 	       doc: /* Inhibit loading of charset maps.  Used when dumping Emacs.  */);
   inhibit_load_charset_map = 0;
 
-  DEFVAR_LISP ("charset-list", &Vcharset_list,
+  DEFVAR_LISP ("charset-list", Vcharset_list,
 	       doc: /* List of all charsets ever defined.  */);
   Vcharset_list = Qnil;
 
-  DEFVAR_LISP ("current-iso639-language", &Vcurrent_iso639_language,
+  DEFVAR_LISP ("current-iso639-language", Vcurrent_iso639_language,
 	       doc: /* ISO639 language mnemonic symbol for the current language environment.
 If the current language environment is for multiple languages (e.g. "Latin-1"),
 the value may be a list of mnemonics.  */);
--- a/src/charset.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/charset.h	Tue Jan 18 13:45:37 2011 -0700
@@ -251,14 +251,11 @@
 /* Incremented everytime we change the priority of charsets.  */
 extern unsigned short charset_ordered_list_tick;
 
-extern Lisp_Object Vcharset_list;
 extern Lisp_Object Viso_2022_charset_list;
 extern Lisp_Object Vemacs_mule_charset_list;
 
 extern int emacs_mule_charset[256];
 
-extern Lisp_Object Vcurrent_iso639_language;
-
 /* Macros to access information about charset.  */
 
 /* Return the attribute vector of charset whose symbol is SYMBOL.  */
--- a/src/cmds.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/cmds.c	Tue Jan 18 13:45:37 2011 -0700
@@ -320,7 +320,7 @@
    A value of 2 means this did things that call for an undo boundary.  */
 
 static Lisp_Object Qexpand_abbrev;
-static Lisp_Object Qpost_self_insert_hook, Vpost_self_insert_hook;
+static Lisp_Object Qpost_self_insert_hook;
 
 static int
 internal_self_insert (int c, EMACS_INT n)
@@ -523,7 +523,7 @@
   Qpost_self_insert_hook = intern_c_string ("post-self-insert-hook");
   staticpro (&Qpost_self_insert_hook);
 
-  DEFVAR_LISP ("post-self-insert-hook", &Vpost_self_insert_hook,
+  DEFVAR_LISP ("post-self-insert-hook", Vpost_self_insert_hook,
 	       doc: /* Hook run at the end of `self-insert-command'.
 This is run after inserting the character.  */);
   Vpost_self_insert_hook = Qnil;
--- a/src/coding.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/coding.c	Tue Jan 18 13:45:37 2011 -0700
@@ -327,16 +327,6 @@
    symbol as a coding system.  */
 static Lisp_Object Qcoding_system_define_form;
 
-int coding_system_require_warning;
-
-Lisp_Object Vselect_safe_coding_system_function;
-
-/* Mnemonic string for each format of end-of-line.  */
-Lisp_Object eol_mnemonic_unix, eol_mnemonic_dos, eol_mnemonic_mac;
-/* Mnemonic string to indicate format of end-of-line is not yet
-   decided.  */
-Lisp_Object eol_mnemonic_undecided;
-
 /* Format of end-of-line decided by system.  This is Qunix on
    Unix and Mac, Qdos on DOS/Windows.
    This has an effect only for external encoding (i.e. for output to
@@ -345,8 +335,6 @@
 
 #ifdef emacs
 
-Lisp_Object Vcoding_system_list, Vcoding_system_alist;
-
 Lisp_Object Qcoding_system_p, Qcoding_system_error;
 
 /* Coding system emacs-mule and raw-text are for converting only
@@ -356,64 +344,17 @@
 
 /* Coding-systems are handed between Emacs Lisp programs and C internal
    routines by the following three variables.  */
-/* Coding-system for reading files and receiving data from process.  */
-Lisp_Object Vcoding_system_for_read;
-/* Coding-system for writing files and sending data to process.  */
-Lisp_Object Vcoding_system_for_write;
-/* Coding-system actually used in the latest I/O.  */
-Lisp_Object Vlast_coding_system_used;
-/* Set to non-nil when an error is detected while code conversion.  */
-Lisp_Object Vlast_code_conversion_error;
-/* A vector of length 256 which contains information about special
-   Latin codes (especially for dealing with Microsoft codes).  */
-Lisp_Object Vlatin_extra_code_table;
-
-/* Flag to inhibit code conversion of end-of-line format.  */
-int inhibit_eol_conversion;
-
-/* Flag to inhibit ISO2022 escape sequence detection.  */
-int inhibit_iso_escape_detection;
-
-/* Flag to inhibit detection of binary files through null bytes.  */
-int inhibit_null_byte_detection;
-
-/* Flag to make buffer-file-coding-system inherit from process-coding.  */
-int inherit_process_coding_system;
-
 /* Coding system to be used to encode text for terminal display when
    terminal coding system is nil.  */
 struct coding_system safe_terminal_coding;
 
-Lisp_Object Vfile_coding_system_alist;
-Lisp_Object Vprocess_coding_system_alist;
-Lisp_Object Vnetwork_coding_system_alist;
-
-Lisp_Object Vlocale_coding_system;
-
 #endif /* emacs */
 
-/* Flag to tell if we look up translation table on character code
-   conversion.  */
-Lisp_Object Venable_character_translation;
-/* Standard translation table to look up on decoding (reading).  */
-Lisp_Object Vstandard_translation_table_for_decode;
-/* Standard translation table to look up on encoding (writing).  */
-Lisp_Object Vstandard_translation_table_for_encode;
-
 Lisp_Object Qtranslation_table;
 Lisp_Object Qtranslation_table_id;
 Lisp_Object Qtranslation_table_for_decode;
 Lisp_Object Qtranslation_table_for_encode;
 
-/* Alist of charsets vs revision number.  */
-static Lisp_Object Vcharset_revision_table;
-
-/* Default coding systems used for process I/O.  */
-Lisp_Object Vdefault_process_coding_system;
-
-/* Char table for translating Quail and self-inserting input.  */
-Lisp_Object Vtranslation_table_for_input;
-
 /* Two special coding systems.  */
 Lisp_Object Vsjis_coding_system;
 Lisp_Object Vbig5_coding_system;
@@ -681,10 +622,6 @@
    | CATEGORY_MASK_UTF_8_NOSIG	\
    | CATEGORY_MASK_UTF_8_SIG)
 
-/* List of symbols `coding-category-xxx' ordered by priority.  This
-   variable is exposed to Emacs Lisp.  */
-static Lisp_Object Vcoding_category_list;
-
 /* Table of coding categories (Lisp symbols).  This variable is for
    internal use only.  */
 static Lisp_Object Vcoding_category_table;
@@ -10525,7 +10462,7 @@
   defsubr (&Scoding_system_eol_type);
   defsubr (&Scoding_system_priority_list);
 
-  DEFVAR_LISP ("coding-system-list", &Vcoding_system_list,
+  DEFVAR_LISP ("coding-system-list", Vcoding_system_list,
 	       doc: /* List of coding systems.
 
 Do not alter the value of this variable manually.  This variable should be
@@ -10533,7 +10470,7 @@
 `define-coding-system-alias'.  */);
   Vcoding_system_list = Qnil;
 
-  DEFVAR_LISP ("coding-system-alist", &Vcoding_system_alist,
+  DEFVAR_LISP ("coding-system-alist", Vcoding_system_alist,
 	       doc: /* Alist of coding system names.
 Each element is one element list of coding system name.
 This variable is given to `completing-read' as COLLECTION argument.
@@ -10543,7 +10480,7 @@
 `define-coding-system-alias'.  */);
   Vcoding_system_alist = Qnil;
 
-  DEFVAR_LISP ("coding-category-list", &Vcoding_category_list,
+  DEFVAR_LISP ("coding-category-list", Vcoding_category_list,
 	       doc: /* List of coding-categories (symbols) ordered by priority.
 
 On detecting a coding system, Emacs tries code detection algorithms
@@ -10562,7 +10499,7 @@
 		 Vcoding_category_list);
   }
 
-  DEFVAR_LISP ("coding-system-for-read", &Vcoding_system_for_read,
+  DEFVAR_LISP ("coding-system-for-read", Vcoding_system_for_read,
 	       doc: /* Specify the coding system for read operations.
 It is useful to bind this variable with `let', but do not set it globally.
 If the value is a coding system, it is used for decoding on read operation.
@@ -10571,7 +10508,7 @@
 `process-coding-system-alist', and `network-coding-system-alist'.  */);
   Vcoding_system_for_read = Qnil;
 
-  DEFVAR_LISP ("coding-system-for-write", &Vcoding_system_for_write,
+  DEFVAR_LISP ("coding-system-for-write", Vcoding_system_for_write,
 	       doc: /* Specify the coding system for write operations.
 Programs bind this variable with `let', but you should not set it globally.
 If the value is a coding system, it is used for encoding of output,
@@ -10585,12 +10522,12 @@
 the value of `buffer-file-coding-system' is used.  */);
   Vcoding_system_for_write = Qnil;
 
-  DEFVAR_LISP ("last-coding-system-used", &Vlast_coding_system_used,
+  DEFVAR_LISP ("last-coding-system-used", Vlast_coding_system_used,
 	       doc: /*
 Coding system used in the latest file or process I/O.  */);
   Vlast_coding_system_used = Qnil;
 
-  DEFVAR_LISP ("last-code-conversion-error", &Vlast_code_conversion_error,
+  DEFVAR_LISP ("last-code-conversion-error", Vlast_code_conversion_error,
 	       doc: /*
 Error status of the last code conversion.
 
@@ -10607,21 +10544,21 @@
 conversion.  */);
   Vlast_code_conversion_error = Qnil;
 
-  DEFVAR_BOOL ("inhibit-eol-conversion", &inhibit_eol_conversion,
+  DEFVAR_BOOL ("inhibit-eol-conversion", inhibit_eol_conversion,
 	       doc: /*
 *Non-nil means always inhibit code conversion of end-of-line format.
 See info node `Coding Systems' and info node `Text and Binary' concerning
 such conversion.  */);
   inhibit_eol_conversion = 0;
 
-  DEFVAR_BOOL ("inherit-process-coding-system", &inherit_process_coding_system,
+  DEFVAR_BOOL ("inherit-process-coding-system", inherit_process_coding_system,
 	       doc: /*
 Non-nil means process buffer inherits coding system of process output.
 Bind it to t if the process output is to be treated as if it were a file
 read from some filesystem.  */);
   inherit_process_coding_system = 0;
 
-  DEFVAR_LISP ("file-coding-system-alist", &Vfile_coding_system_alist,
+  DEFVAR_LISP ("file-coding-system-alist", Vfile_coding_system_alist,
 	       doc: /*
 Alist to decide a coding system to use for a file I/O operation.
 The format is ((PATTERN . VAL) ...),
@@ -10642,7 +10579,7 @@
 and the variable `auto-coding-alist'.  */);
   Vfile_coding_system_alist = Qnil;
 
-  DEFVAR_LISP ("process-coding-system-alist", &Vprocess_coding_system_alist,
+  DEFVAR_LISP ("process-coding-system-alist", Vprocess_coding_system_alist,
 	       doc: /*
 Alist to decide a coding system to use for a process I/O operation.
 The format is ((PATTERN . VAL) ...),
@@ -10658,7 +10595,7 @@
 See also the function `find-operation-coding-system'.  */);
   Vprocess_coding_system_alist = Qnil;
 
-  DEFVAR_LISP ("network-coding-system-alist", &Vnetwork_coding_system_alist,
+  DEFVAR_LISP ("network-coding-system-alist", Vnetwork_coding_system_alist,
 	       doc: /*
 Alist to decide a coding system to use for a network I/O operation.
 The format is ((PATTERN . VAL) ...),
@@ -10675,48 +10612,48 @@
 See also the function `find-operation-coding-system'.  */);
   Vnetwork_coding_system_alist = Qnil;
 
-  DEFVAR_LISP ("locale-coding-system", &Vlocale_coding_system,
+  DEFVAR_LISP ("locale-coding-system", Vlocale_coding_system,
 	       doc: /* Coding system to use with system messages.
 Also used for decoding keyboard input on X Window system.  */);
   Vlocale_coding_system = Qnil;
 
   /* The eol mnemonics are reset in startup.el system-dependently.  */
-  DEFVAR_LISP ("eol-mnemonic-unix", &eol_mnemonic_unix,
+  DEFVAR_LISP ("eol-mnemonic-unix", eol_mnemonic_unix,
 	       doc: /*
 *String displayed in mode line for UNIX-like (LF) end-of-line format.  */);
   eol_mnemonic_unix = make_pure_c_string (":");
 
-  DEFVAR_LISP ("eol-mnemonic-dos", &eol_mnemonic_dos,
+  DEFVAR_LISP ("eol-mnemonic-dos", eol_mnemonic_dos,
 	       doc: /*
 *String displayed in mode line for DOS-like (CRLF) end-of-line format.  */);
   eol_mnemonic_dos = make_pure_c_string ("\\");
 
-  DEFVAR_LISP ("eol-mnemonic-mac", &eol_mnemonic_mac,
+  DEFVAR_LISP ("eol-mnemonic-mac", eol_mnemonic_mac,
 	       doc: /*
 *String displayed in mode line for MAC-like (CR) end-of-line format.  */);
   eol_mnemonic_mac = make_pure_c_string ("/");
 
-  DEFVAR_LISP ("eol-mnemonic-undecided", &eol_mnemonic_undecided,
+  DEFVAR_LISP ("eol-mnemonic-undecided", eol_mnemonic_undecided,
 	       doc: /*
 *String displayed in mode line when end-of-line format is not yet determined.  */);
   eol_mnemonic_undecided = make_pure_c_string (":");
 
-  DEFVAR_LISP ("enable-character-translation", &Venable_character_translation,
+  DEFVAR_LISP ("enable-character-translation", Venable_character_translation,
 	       doc: /*
 *Non-nil enables character translation while encoding and decoding.  */);
   Venable_character_translation = Qt;
 
   DEFVAR_LISP ("standard-translation-table-for-decode",
-	       &Vstandard_translation_table_for_decode,
+	       Vstandard_translation_table_for_decode,
 	       doc: /* Table for translating characters while decoding.  */);
   Vstandard_translation_table_for_decode = Qnil;
 
   DEFVAR_LISP ("standard-translation-table-for-encode",
-	       &Vstandard_translation_table_for_encode,
+	       Vstandard_translation_table_for_encode,
 	       doc: /* Table for translating characters while encoding.  */);
   Vstandard_translation_table_for_encode = Qnil;
 
-  DEFVAR_LISP ("charset-revision-table", &Vcharset_revision_table,
+  DEFVAR_LISP ("charset-revision-table", Vcharset_revision_table,
 	       doc: /* Alist of charsets vs revision numbers.
 While encoding, if a charset (car part of an element) is found,
 designate it with the escape sequence identifying revision (cdr part
@@ -10724,13 +10661,13 @@
   Vcharset_revision_table = Qnil;
 
   DEFVAR_LISP ("default-process-coding-system",
-	       &Vdefault_process_coding_system,
+	       Vdefault_process_coding_system,
 	       doc: /* Cons of coding systems used for process I/O by default.
 The car part is used for decoding a process output,
 the cdr part is used for encoding a text to be sent to a process.  */);
   Vdefault_process_coding_system = Qnil;
 
-  DEFVAR_LISP ("latin-extra-code-table", &Vlatin_extra_code_table,
+  DEFVAR_LISP ("latin-extra-code-table", Vlatin_extra_code_table,
 	       doc: /*
 Table of extra Latin codes in the range 128..159 (inclusive).
 This is a vector of length 256.
@@ -10743,7 +10680,7 @@
   Vlatin_extra_code_table = Fmake_vector (make_number (256), Qnil);
 
   DEFVAR_LISP ("select-safe-coding-system-function",
-	       &Vselect_safe_coding_system_function,
+	       Vselect_safe_coding_system_function,
 	       doc: /*
 Function to call to select safe coding system for encoding a text.
 
@@ -10757,7 +10694,7 @@
   Vselect_safe_coding_system_function = Qnil;
 
   DEFVAR_BOOL ("coding-system-require-warning",
-	       &coding_system_require_warning,
+	       coding_system_require_warning,
 	       doc: /* Internal use only.
 If non-nil, on writing a file, `select-safe-coding-system-function' is
 called even if `coding-system-for-write' is non-nil.  The command
@@ -10766,7 +10703,7 @@
 
 
   DEFVAR_BOOL ("inhibit-iso-escape-detection",
-	       &inhibit_iso_escape_detection,
+	       inhibit_iso_escape_detection,
 	       doc: /*
 If non-nil, Emacs ignores ISO-2022 escape sequences during code detection.
 
@@ -10794,7 +10731,7 @@
   inhibit_iso_escape_detection = 0;
 
   DEFVAR_BOOL ("inhibit-null-byte-detection",
-	       &inhibit_null_byte_detection,
+	       inhibit_null_byte_detection,
 	       doc: /* If non-nil, Emacs ignores null bytes on code detection.
 By default, Emacs treats it as binary data, and does not attempt to
 decode it.  The effect is as if you specified `no-conversion' for
@@ -10806,7 +10743,7 @@
 decode text as usual.  */);
   inhibit_null_byte_detection = 0;
 
-  DEFVAR_LISP ("translation-table-for-input", &Vtranslation_table_for_input,
+  DEFVAR_LISP ("translation-table-for-input", Vtranslation_table_for_input,
 	       doc: /* Char table for translating self-inserting characters.
 This is applied to the result of input methods, not their input.
 See also `keyboard-translate-table'.
--- a/src/coding.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/coding.h	Tue Jan 18 13:45:37 2011 -0700
@@ -769,11 +769,6 @@
 extern Lisp_Object Qtranslation_table;
 extern Lisp_Object Qtranslation_table_id;
 
-/* Mnemonic strings to indicate each type of end-of-line.  */
-extern Lisp_Object eol_mnemonic_unix, eol_mnemonic_dos, eol_mnemonic_mac;
-/* Mnemonic string to indicate type of end-of-line is not yet decided.  */
-extern Lisp_Object eol_mnemonic_undecided;
-
 #ifdef emacs
 extern Lisp_Object Qfile_coding_system;
 extern Lisp_Object Qcall_process, Qcall_process_region;
@@ -782,44 +777,10 @@
 
 extern char *emacs_strerror (int);
 
-/* Coding-system for reading files and receiving data from process.  */
-extern Lisp_Object Vcoding_system_for_read;
-/* Coding-system for writing files and sending data to process.  */
-extern Lisp_Object Vcoding_system_for_write;
-/* Coding-system actually used in the latest I/O.  */
-extern Lisp_Object Vlast_coding_system_used;
-/* Coding-system to use with system messages (e.g. strerror).  */
-extern Lisp_Object Vlocale_coding_system;
-
-/* If non-zero, process buffer inherits the coding system used to decode
-   the subprocess output.  */
-extern int inherit_process_coding_system;
-
 /* Coding system to be used to encode text for terminal display when
    terminal coding system is nil.  */
 extern struct coding_system safe_terminal_coding;
 
-/* Default coding systems used for process I/O.  */
-extern Lisp_Object Vdefault_process_coding_system;
-
-/* Char table for translating Quail and self-inserting input.  */
-extern Lisp_Object Vtranslation_table_for_input;
-
-/* Function to call to force a user to force select a propert coding
-   system.  */
-extern Lisp_Object Vselect_safe_coding_system_function;
-
-/* If nonzero, on writing a file, Vselect_safe_coding_system_function
-   is called even if Vcoding_system_for_write is non-nil.  */
-extern int coding_system_require_warning;
-
-/* Coding system for file names, or nil if none.  */
-extern Lisp_Object Vfile_name_coding_system;
-
-/* Coding system for file names used only when
-   Vfile_name_coding_system is nil.  */
-extern Lisp_Object Vdefault_file_name_coding_system;
-
 #endif
 
 /* Error signaled when there's a problem with detecting coding system */
--- a/src/commands.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/commands.h	Tue Jan 18 13:45:37 2011 -0700
@@ -28,42 +28,6 @@
 extern Lisp_Object meta_map;
 extern Lisp_Object control_x_map;
 
-extern Lisp_Object Vminibuffer_local_map;
-
-extern Lisp_Object Vminibuffer_local_ns_map;
-
-/* keymap used for minibuffers when doing completion */
-extern Lisp_Object Vminibuffer_local_completion_map;
-
-/* keymap used for minibuffers when doing completion in filenames*/
-extern Lisp_Object Vminibuffer_local_filename_completion_map;
-
-/* keymap used for minibuffers when doing completion and require a match */
-extern Lisp_Object Vminibuffer_local_must_match_map;
-
-/* keymap used for minibuffers when doing completion in filenames
-   and require a match */
-extern Lisp_Object Vminibuffer_local_filename_must_match_map;
-
-/* Last input event read as a command.  */
-extern Lisp_Object last_command_event;
-
-/* Last input event read as a command, not counting menus
-   reached by the mouse.  */
-extern Lisp_Object last_nonmenu_event;
-
-/* List of command events to be re-read, or Qnil.  */
-extern Lisp_Object Vunread_command_events;
-
-/* Command char event to be re-read, or -1 if none.
-   Setting this is obsolete, but some things should still check it.  */
-extern EMACS_INT unread_command_char;
-
-/* The command being executed by the command loop.
-   Commands may set this, and the value set will be copied into
-   current_kboard->Vlast_command instead of the actual command.  */
-extern Lisp_Object Vthis_command;
-
 /* If not Qnil, this is a switch-frame event which we decided to put
    off until the end of a key sequence.  This should be read as the
    next command input, after any Vunread_command_events.
@@ -85,8 +49,6 @@
 /* Nonzero means ^G can quit instantly */
 extern int immediate_quit;
 
-extern Lisp_Object Vexecuting_kbd_macro;
-
 /* Nonzero if input is coming from the keyboard */
 
 #define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive)
@@ -95,8 +57,3 @@
 
 extern int update_mode_lines;
 
-/* Nonzero means reading single-character input with prompt
-   so put cursor on minibuffer after the prompt.  */
-
-extern int cursor_in_echo_area;
-
--- a/src/composite.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/composite.c	Tue Jan 18 13:45:37 2011 -0700
@@ -153,15 +153,8 @@
    COMPOSITION-ID.  */
 Lisp_Object composition_hash_table;
 
-/* Function to call to adjust composition.  */
-Lisp_Object Vcompose_chars_after_function;
-
 Lisp_Object Qauto_composed;
-Lisp_Object Vauto_composition_mode;
-Lisp_Object Vauto_composition_function;
 Lisp_Object Qauto_composition_function;
-Lisp_Object Vcomposition_function_table;
-
 /* Maximum number of characters to look back for
    auto-compositions.  */
 #define MAX_AUTO_COMPOSITION_LOOKBACK 3
@@ -1964,7 +1957,7 @@
   Vtext_property_default_nonsticky
     = Fcons (Fcons (Qcomposition, Qt), Vtext_property_default_nonsticky);
 
-  DEFVAR_LISP ("compose-chars-after-function", &Vcompose_chars_after_function,
+  DEFVAR_LISP ("compose-chars-after-function", Vcompose_chars_after_function,
 	       doc: /* Function to adjust composition of buffer text.
 
 This function is called with three arguments: FROM, TO, and OBJECT.
@@ -1984,12 +1977,12 @@
   Qauto_composition_function = intern_c_string ("auto-composition-function");
   staticpro (&Qauto_composition_function);
 
-  DEFVAR_LISP ("auto-composition-mode", &Vauto_composition_mode,
+  DEFVAR_LISP ("auto-composition-mode", Vauto_composition_mode,
 	       doc: /* Non-nil if Auto-Composition mode is enabled.
 Use the command `auto-composition-mode' to change this variable. */);
   Vauto_composition_mode = Qt;
 
-  DEFVAR_LISP ("auto-composition-function", &Vauto_composition_function,
+  DEFVAR_LISP ("auto-composition-function", Vauto_composition_function,
 	       doc: /* Function to call to compose characters automatically.
 This function is called from the display routine with four arguments:
 FROM, TO, WINDOW, and STRING.
@@ -2002,7 +1995,7 @@
 string.  */);
   Vauto_composition_function = Qnil;
 
-  DEFVAR_LISP ("composition-function-table", &Vcomposition_function_table,
+  DEFVAR_LISP ("composition-function-table", Vcomposition_function_table,
 	       doc: /* Char-table of functions for automatic character composition.
 For each character that has to be composed automatically with
 preceding and/or following characters, this char-table contains
--- a/src/composite.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/composite.h	Tue Jan 18 13:45:37 2011 -0700
@@ -208,10 +208,7 @@
 extern Lisp_Object Qcomposition;
 extern Lisp_Object composition_hash_table;
 extern Lisp_Object Qauto_composed;
-extern Lisp_Object Vauto_composition_function;
 extern Lisp_Object Qauto_composition_function;
-extern Lisp_Object Vcomposition_function_table;
-
 extern int get_composition_id (EMACS_INT, EMACS_INT, EMACS_INT,
 			       Lisp_Object, Lisp_Object);
 extern int find_composition (EMACS_INT, EMACS_INT, EMACS_INT *, EMACS_INT *,
--- a/src/data.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/data.c	Tue Jan 18 13:45:37 2011 -0700
@@ -94,8 +94,6 @@
 
 static void swap_in_symval_forwarding (struct Lisp_Symbol *, struct Lisp_Buffer_Local_Value *);
 
-Lisp_Object Vmost_positive_fixnum, Vmost_negative_fixnum;
-
 
 void
 circular_list_error (Lisp_Object list)
@@ -3300,12 +3298,12 @@
 
   XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function;
 
-  DEFVAR_LISP ("most-positive-fixnum", &Vmost_positive_fixnum,
+  DEFVAR_LISP ("most-positive-fixnum", Vmost_positive_fixnum,
 	       doc: /* The largest value that is representable in a Lisp integer.  */);
   Vmost_positive_fixnum = make_number (MOST_POSITIVE_FIXNUM);
   XSYMBOL (intern_c_string ("most-positive-fixnum"))->constant = 1;
 
-  DEFVAR_LISP ("most-negative-fixnum", &Vmost_negative_fixnum,
+  DEFVAR_LISP ("most-negative-fixnum", Vmost_negative_fixnum,
 	       doc: /* The smallest value that is representable in a Lisp integer.  */);
   Vmost_negative_fixnum = make_number (MOST_NEGATIVE_FIXNUM);
   XSYMBOL (intern_c_string ("most-negative-fixnum"))->constant = 1;
--- a/src/dbusbind.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/dbusbind.c	Tue Jan 18 13:45:37 2011 -0700
@@ -75,15 +75,6 @@
 Lisp_Object QCdbus_type_array, QCdbus_type_variant;
 Lisp_Object QCdbus_type_struct, QCdbus_type_dict_entry;
 
-/* Registered buses.  */
-Lisp_Object Vdbus_registered_buses;
-
-/* Hash table which keeps function definitions.  */
-Lisp_Object Vdbus_registered_objects_table;
-
-/* Whether to debug D-Bus.  */
-Lisp_Object Vdbus_debug;
-
 /* Whether we are reading a D-Bus event.  */
 int xd_in_read_queued_messages = 0;
 
@@ -2301,12 +2292,12 @@
   staticpro (&QCdbus_type_dict_entry);
 
   DEFVAR_LISP ("dbus-registered-buses",
-	       &Vdbus_registered_buses,
+	       Vdbus_registered_buses,
     doc: /* List of D-Bus buses we are polling for messages.  */);
   Vdbus_registered_buses = Qnil;
 
   DEFVAR_LISP ("dbus-registered-objects-table",
-	       &Vdbus_registered_objects_table,
+	       Vdbus_registered_objects_table,
     doc: /* Hash table of registered functions for D-Bus.
 
 There are two different uses of the hash table: for accessing
@@ -2343,7 +2334,7 @@
     Vdbus_registered_objects_table = Fmake_hash_table (2, args);
   }
 
-  DEFVAR_LISP ("dbus-debug", &Vdbus_debug,
+  DEFVAR_LISP ("dbus-debug", Vdbus_debug,
     doc: /* If non-nil, debug messages of D-Bus bindings are raised.  */);
 #ifdef DBUS_DEBUG
   Vdbus_debug = Qt;
--- a/src/dired.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/dired.c	Tue Jan 18 13:45:37 2011 -0700
@@ -93,9 +93,6 @@
 #define lstat stat
 #endif
 
-extern Lisp_Object Vw32_get_true_file_attributes;
-
-Lisp_Object Vcompletion_ignored_extensions;
 Lisp_Object Qdirectory_files;
 Lisp_Object Qdirectory_files_and_attributes;
 Lisp_Object Qfile_name_completion;
@@ -1095,7 +1092,7 @@
   defsubr (&Sfile_attributes);
   defsubr (&Sfile_attributes_lessp);
 
-  DEFVAR_LISP ("completion-ignored-extensions", &Vcompletion_ignored_extensions,
+  DEFVAR_LISP ("completion-ignored-extensions", Vcompletion_ignored_extensions,
 	       doc: /* Completion ignores file names ending in any string in this list.
 It does not ignore them if all possible completions end in one of
 these strings or when displaying a list of completions.
--- a/src/dispextern.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/dispextern.h	Tue Jan 18 13:45:37 2011 -0700
@@ -1145,12 +1145,6 @@
 extern struct glyph_row *updated_row;
 extern int updated_area;
 
-/* Non-zero means reading single-character input with prompt so put
-   cursor on mini-buffer after the prompt.  Positive means at end of
-   text in echo area; negative means at beginning of line.  */
-
-extern int cursor_in_echo_area;
-
 /* Non-zero means last display completed.  Zero means it was
    preempted.  */
 
@@ -2914,23 +2908,8 @@
   TOOL_BAR_IMAGE_DISABLED_DESELECTED
 };
 
-/* Margin around tool-bar buttons in pixels.  */
-
-extern Lisp_Object Vtool_bar_button_margin;
-
-/* Tool bar style */
-
-extern Lisp_Object Vtool_bar_style;
-
-/* Maximum number of characters a label can have to be shown.  */
-
-extern EMACS_INT tool_bar_max_label_size;
 #define DEFAULT_TOOL_BAR_LABEL_SIZE 14
 
-/* Thickness of relief to draw around tool-bar buttons.  */
-
-extern EMACS_INT tool_bar_button_relief;
-
 /* Default values of the above variables.  */
 
 #define DEFAULT_TOOL_BAR_BUTTON_MARGIN 4
@@ -3020,8 +2999,6 @@
 int frame_mode_line_height (struct frame *);
 void highlight_trailing_whitespace (struct frame *, struct glyph_row *);
 extern Lisp_Object Qtool_bar;
-extern Lisp_Object Vshow_trailing_whitespace;
-extern int mode_line_in_non_selected_windows;
 extern int redisplaying_p;
 extern int help_echo_showing_p;
 extern int current_mode_line_height, current_header_line_height;
@@ -3030,11 +3007,6 @@
 extern EMACS_INT help_echo_pos;
 extern struct frame *last_mouse_frame;
 extern int last_tool_bar_item;
-extern Lisp_Object Vmouse_autoselect_window;
-extern int unibyte_display_via_language_environment;
-extern EMACS_INT underline_minimum_offset;
-extern Lisp_Object Vglyphless_char_display;
-
 extern void reseat_at_previous_visible_line_start (struct it *);
 extern Lisp_Object lookup_glyphless_char_display (int, struct it *);
 extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object,
@@ -3054,7 +3026,6 @@
 extern void x_insert_glyphs (struct glyph *, int len);
 extern void x_clear_end_of_line (int);
 
-extern int x_stretch_cursor_p;
 extern struct cursor_pos output_cursor;
 
 extern void x_fix_overlapping_area (struct window *, struct glyph_row *,
@@ -3105,9 +3076,6 @@
 #define TRY_WINDOW_CHECK_MARGINS	(1 << 0)
 #define TRY_WINDOW_IGNORE_FONTS_CHANGE	(1 << 1)
 
-/* Defined in fringe.c */
-
-extern Lisp_Object Voverflow_newline_into_fringe;
 int lookup_fringe_bitmap (Lisp_Object);
 void draw_fringe_bitmap (struct window *, struct glyph_row *, int);
 void draw_row_fringe_bitmaps (struct window *, struct glyph_row *);
@@ -3213,8 +3181,6 @@
 extern Lisp_Object Qframe_set_background_mode;
 extern char unspecified_fg[], unspecified_bg[];
 
-extern Lisp_Object Vface_remapping_alist;
-
 /* Defined in xfns.c  */
 
 #ifdef HAVE_X_WINDOWS
@@ -3235,7 +3201,6 @@
 extern void start_hourglass (void);
 extern void cancel_hourglass (void);
 extern int hourglass_started (void);
-extern int display_hourglass_p;
 extern int hourglass_shown_p;
 struct atimer;			/* Defined in atimer.h.  */
 /* If non-null, an asynchronous timer that, when it expires, displays
@@ -3271,9 +3236,6 @@
 
 int popup_activated (void);
 
-/* Defined in dispnew.c  */
-
-extern int inverse_video;
 extern Lisp_Object buffer_posn_from_coords (struct window *,
                                             int *, int *,
                                             struct display_pos *,
--- a/src/dispnew.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/dispnew.c	Tue Jan 18 13:45:37 2011 -0700
@@ -170,12 +170,6 @@
 static void adjust_frame_glyphs_for_frame_redisplay (struct frame *);
 
 
-/* Non-zero means don't pause redisplay for pending input.  (This is
-   for debugging and for a future implementation of EDT-like
-   scrolling.  */
-
-int redisplay_dont_pause;
-
 /* Define PERIODIC_PREEMPTION_CHECKING to 1, if micro-second timers
    are supported, so we can check for input during redisplay at
    regular intervals.  */
@@ -187,10 +181,6 @@
 
 #if PERIODIC_PREEMPTION_CHECKING
 
-/* If a number (float), check for user input every N seconds.  */
-
-Lisp_Object Vredisplay_preemption_period;
-
 /* Redisplay preemption timers.  */
 
 static EMACS_TIME preemption_period;
@@ -207,49 +197,6 @@
 
 int display_completed;
 
-/* Lisp variable visible-bell; enables use of screen-flash instead of
-   audible bell.  */
-
-int visible_bell;
-
-/* Invert the color of the whole frame, at a low level.  */
-
-int inverse_video;
-
-/* Line speed of the terminal.  */
-
-EMACS_INT baud_rate;
-
-/* Either nil or a symbol naming the window system under which Emacs
-   creates the first frame.  */
-
-Lisp_Object Vinitial_window_system;
-
-/* Version number of X windows: 10, 11 or nil.  */
-
-Lisp_Object Vwindow_system_version;
-
-/* Vector of glyph definitions.  Indexed by glyph number, the contents
-   are a string which is how to output the glyph.
-
-   If Vglyph_table is nil, a glyph is output by using its low 8 bits
-   as a character code.
-
-   This is an obsolete feature that is no longer used.  The variable
-   is retained for compatibility.  */
-
-Lisp_Object Vglyph_table;
-
-/* Display table to use for vectors that don't specify their own.  */
-
-Lisp_Object Vstandard_display_table;
-
-/* Nonzero means reading single-character input with prompt so put
-   cursor on mini-buffer after the prompt.  Positive means at end of
-   text in echo area; negative means at beginning of line.  */
-
-int cursor_in_echo_area;
-
 Lisp_Object Qdisplay_table, Qredisplay_dont_pause;
 
 
@@ -6556,27 +6503,27 @@
   Qredisplay_dont_pause = intern_c_string ("redisplay-dont-pause");
   staticpro (&Qredisplay_dont_pause);
 
-  DEFVAR_INT ("baud-rate", &baud_rate,
+  DEFVAR_INT ("baud-rate", baud_rate,
 	      doc: /* *The output baud rate of the terminal.
 On most systems, changing this value will affect the amount of padding
 and the other strategic decisions made during redisplay.  */);
 
-  DEFVAR_BOOL ("inverse-video", &inverse_video,
+  DEFVAR_BOOL ("inverse-video", inverse_video,
 	       doc: /* *Non-nil means invert the entire frame display.
 This means everything is in inverse video which otherwise would not be.  */);
 
-  DEFVAR_BOOL ("visible-bell", &visible_bell,
+  DEFVAR_BOOL ("visible-bell", visible_bell,
 	       doc: /* *Non-nil means try to flash the frame to represent a bell.
 
 See also `ring-bell-function'.  */);
 
-  DEFVAR_BOOL ("no-redraw-on-reenter", &no_redraw_on_reenter,
+  DEFVAR_BOOL ("no-redraw-on-reenter", no_redraw_on_reenter,
 	       doc: /* *Non-nil means no need to redraw entire frame after suspending.
 A non-nil value is useful if the terminal can automatically preserve
 Emacs's frame display when you reenter Emacs.
 It is up to you to set this variable if your terminal can do that.  */);
 
-  DEFVAR_LISP ("initial-window-system", &Vinitial_window_system,
+  DEFVAR_LISP ("initial-window-system", Vinitial_window_system,
 	       doc: /* Name of the window system that Emacs uses for the first frame.
 The value is a symbol:
  nil for a termcap frame (a character-only terminal),
@@ -6602,14 +6549,14 @@
 use `display-graphic-p' or any of the other `display-*-p'
 predicates which report frame's specific UI-related capabilities.  */);
 
-  DEFVAR_LISP ("window-system-version", &Vwindow_system_version,
+  DEFVAR_LISP ("window-system-version", Vwindow_system_version,
 	       doc: /* The version number of the window system in use.
 For X windows, this is 11.  */);
 
-  DEFVAR_BOOL ("cursor-in-echo-area", &cursor_in_echo_area,
+  DEFVAR_BOOL ("cursor-in-echo-area", cursor_in_echo_area,
 	       doc: /* Non-nil means put cursor in minibuffer, at end of any message there.  */);
 
-  DEFVAR_LISP ("glyph-table", &Vglyph_table,
+  DEFVAR_LISP ("glyph-table", Vglyph_table,
 	       doc: /* Table defining how to output a glyph code to the frame.
 If not nil, this is a vector indexed by glyph code to define the glyph.
 Each element can be:
@@ -6620,17 +6567,17 @@
     while outputting it.  */);
   Vglyph_table = Qnil;
 
-  DEFVAR_LISP ("standard-display-table", &Vstandard_display_table,
+  DEFVAR_LISP ("standard-display-table", Vstandard_display_table,
 	       doc: /* Display table to use for buffers that specify none.
 See `buffer-display-table' for more information.  */);
   Vstandard_display_table = Qnil;
 
-  DEFVAR_BOOL ("redisplay-dont-pause", &redisplay_dont_pause,
+  DEFVAR_BOOL ("redisplay-dont-pause", redisplay_dont_pause,
 	       doc: /* *Non-nil means update isn't paused when input is detected.  */);
   redisplay_dont_pause = 0;
 
 #if PERIODIC_PREEMPTION_CHECKING
-  DEFVAR_LISP ("redisplay-preemption-period", &Vredisplay_preemption_period,
+  DEFVAR_LISP ("redisplay-preemption-period", Vredisplay_preemption_period,
 	       doc: /* *The period in seconds between checking for input during redisplay.
 If input is detected, redisplay is pre-empted, and the input is processed.
 If nil, never pre-empt redisplay.  */);
--- a/src/disptab.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/disptab.h	Tue Jan 18 13:45:37 2011 -0700
@@ -49,16 +49,9 @@
 /* Defined in indent.c.  */
 extern struct Lisp_Char_Table *buffer_display_table (void);
 
-/* Display table to use for vectors that don't specify their own.  */
-extern Lisp_Object Vstandard_display_table;
-
 /* This is the `purpose' slot of a display table.  */
 extern Lisp_Object Qdisplay_table;
 
-/* Vector of GLYPH definitions.  Indexed by GLYPH number,
-   the contents are a string which is how to output the GLYPH.  */
-extern Lisp_Object Vglyph_table;
-
 /* Return the current length of the GLYPH table,
    or 0 if the table isn't currently valid.  */
 #define GLYPH_TABLE_LENGTH  \
--- a/src/doc.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/doc.c	Tue Jan 18 13:45:37 2011 -0700
@@ -35,13 +35,8 @@
 #include "keymap.h"
 #include "buildobj.h"
 
-Lisp_Object Vdoc_file_name;
-
 Lisp_Object Qfunction_documentation;
 
-/* A list of files used to build this Emacs binary.  */
-static Lisp_Object Vbuild_files;
-
 /* Buffer used for reading from documentation file.  */
 static char *get_doc_string_buffer;
 static int get_doc_string_buffer_size;
@@ -930,11 +925,11 @@
   Qfunction_documentation = intern_c_string ("function-documentation");
   staticpro (&Qfunction_documentation);
 
-  DEFVAR_LISP ("internal-doc-file-name", &Vdoc_file_name,
+  DEFVAR_LISP ("internal-doc-file-name", Vdoc_file_name,
 	       doc: /* Name of file containing documentation strings of built-in symbols.  */);
   Vdoc_file_name = Qnil;
 
-  DEFVAR_LISP ("build-files", &Vbuild_files,
+  DEFVAR_LISP ("build-files", Vbuild_files,
                doc: /* A list of files used to build this Emacs binary.  */);
   Vbuild_files = Qnil;
 
--- a/src/dosfns.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/dosfns.c	Tue Jan 18 13:45:37 2011 -0700
@@ -227,12 +227,6 @@
   return Qt;
 }
 
-/* country info */
-EMACS_INT dos_country_code;
-EMACS_INT dos_codepage;
-EMACS_INT dos_timezone_offset;
-EMACS_INT dos_decimal_point;
-EMACS_INT dos_keyboard_layout;
 unsigned char dos_country_info[DOS_COUNTRY_INFO];
 static unsigned char usa_country_info[DOS_COUNTRY_INFO] = {
   0, 0,				/* date format */
@@ -249,17 +243,8 @@
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0	/* reserved */
 };
 
-EMACS_INT dos_hyper_key;
-EMACS_INT dos_super_key;
-EMACS_INT dos_keypad_mode;
-
-Lisp_Object Vdos_version;
-Lisp_Object Vdos_display_scancodes;
-
 #ifndef HAVE_X_WINDOWS
 static unsigned dos_windows_version;
-Lisp_Object Vdos_windows_version;
-
 char parent_vm_title[50];	/* Ralf Brown says 30 is enough */
 int w95_set_virtual_machine_title (const char *);
 
@@ -697,11 +682,11 @@
   defsubr (&Smsdos_mouse_p);
 #endif
 
-  DEFVAR_INT ("dos-country-code", &dos_country_code,
+  DEFVAR_INT ("dos-country-code", dos_country_code,
 	      doc: /* The country code returned by Dos when Emacs was started.
 Usually this is the international telephone prefix.  */);
 
-  DEFVAR_INT ("dos-codepage", &dos_codepage,
+  DEFVAR_INT ("dos-codepage", dos_codepage,
 	      doc: /* The codepage active when Emacs was started.
 The following are known:
 	437	United States
@@ -713,19 +698,19 @@
 	863	Canada (French)
 	865	Norway/Denmark  */);
 
-  DEFVAR_INT ("dos-timezone-offset", &dos_timezone_offset,
+  DEFVAR_INT ("dos-timezone-offset", dos_timezone_offset,
 	      doc: /* The current timezone offset to UTC in minutes.
 Implicitly modified when the TZ variable is changed.  */);
 
-  DEFVAR_LISP ("dos-version", &Vdos_version,
+  DEFVAR_LISP ("dos-version", Vdos_version,
 	       doc: /* The (MAJOR . MINOR) Dos version (subject to modification with setver).  */);
 
 #ifndef HAVE_X_WINDOWS
-  DEFVAR_LISP ("dos-windows-version", &Vdos_windows_version,
+  DEFVAR_LISP ("dos-windows-version", Vdos_windows_version,
 	       doc: /* The (MAJOR . MINOR) Windows version for DOS session on MS-Windows.  */);
 #endif
 
-  DEFVAR_LISP ("dos-display-scancodes", &Vdos_display_scancodes,
+  DEFVAR_LISP ("dos-display-scancodes", Vdos_display_scancodes,
 	       doc: /* *Controls whether DOS raw keyboard events are displayed as you type.
 When non-nil, the keyboard scan-codes are displayed at the bottom right
 corner of the display (typically at the end of the mode line).
@@ -733,17 +718,17 @@
 
   Vdos_display_scancodes = Qnil;
 
-  DEFVAR_INT ("dos-hyper-key", &dos_hyper_key,
+  DEFVAR_INT ("dos-hyper-key", dos_hyper_key,
 	      doc: /* *If set to 1, use right ALT key as hyper key.
 If set to 2, use right CTRL key as hyper key.  */);
   dos_hyper_key = 0;
 
-  DEFVAR_INT ("dos-super-key", &dos_super_key,
+  DEFVAR_INT ("dos-super-key", dos_super_key,
 	      doc: /* *If set to 1, use right ALT key as super key.
 If set to 2, use right CTRL key as super key.  */);
   dos_super_key = 0;
 
-  DEFVAR_INT ("dos-keypad-mode", &dos_keypad_mode,
+  DEFVAR_INT ("dos-keypad-mode", dos_keypad_mode,
 	      doc: /* *Controls what key code is returned by a key in the numeric keypad.
 The `numlock ON' action is only taken if no modifier keys are pressed.
 The value is an integer constructed by adding the following bits together:
@@ -767,12 +752,12 @@
   0x200	ALT-0..ALT-9 in top-row produces shifted codes.  */);
   dos_keypad_mode = 0x75;
 
-  DEFVAR_INT ("dos-keyboard-layout", &dos_keyboard_layout,
+  DEFVAR_INT ("dos-keyboard-layout", dos_keyboard_layout,
 	      doc: /* Contains the country code for the current keyboard layout.
 Use msdos-set-keyboard to select another keyboard layout.  */);
   dos_keyboard_layout = 1;	/* US */
 
-  DEFVAR_INT ("dos-decimal-point", &dos_decimal_point,
+  DEFVAR_INT ("dos-decimal-point", dos_decimal_point,
 	      doc: /* The character to produce when kp-decimal key is pressed.
 If non-zero, this variable contains the character to be returned when the
 decimal point key in the numeric keypad is pressed when Num Lock is on.
--- a/src/dosfns.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/dosfns.h	Tue Jan 18 13:45:37 2011 -0700
@@ -20,24 +20,10 @@
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
-extern EMACS_INT dos_hyper_key;
-extern EMACS_INT dos_super_key;
-extern EMACS_INT dos_decimal_point;
-extern EMACS_INT dos_keypad_mode;
-
-extern EMACS_INT dos_keyboard_layout;
-extern EMACS_INT dos_country_code;
-extern EMACS_INT dos_codepage;
-extern EMACS_INT dos_timezone_offset;
-
 #define DOS_COUNTRY_INFO 34	/* no of bytes returned by dos int 38h */
 extern unsigned char dos_country_info[DOS_COUNTRY_INFO];
 
-extern Lisp_Object Vdos_version;
-extern Lisp_Object Vdos_windows_version;
 #ifndef HAVE_X_WINDOWS
-extern Lisp_Object Vdos_display_scancodes;
-
 extern int         msdos_stdcolor_idx  (const char *);
 extern Lisp_Object msdos_stdcolor_name (int);
 extern void        x_set_title (struct frame *, Lisp_Object);
--- a/src/editfns.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/editfns.c	Tue Jan 18 13:45:37 2011 -0700
@@ -108,24 +108,9 @@
 static void transpose_markers (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT,
 			       EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT);
 
-Lisp_Object Vbuffer_access_fontify_functions;
 Lisp_Object Qbuffer_access_fontify_functions;
-Lisp_Object Vbuffer_access_fontified_property;
-
 Lisp_Object Fuser_full_name (Lisp_Object);
 
-/* Non-nil means don't stop at field boundary in text motion commands.  */
-
-Lisp_Object Vinhibit_field_text_motion;
-
-/* Some static data, and a function to initialize it for each run */
-
-Lisp_Object Vsystem_name;
-Lisp_Object Vuser_real_login_name;	/* login name of current user ID */
-Lisp_Object Vuser_full_name;		/* full name of current user */
-Lisp_Object Vuser_login_name;		/* user name from LOGNAME or USER */
-Lisp_Object Voperating_system_release;  /* Operating System Release */
-
 /* Symbol for the text property used to mark fields.  */
 
 Lisp_Object Qfield;
@@ -4555,12 +4540,12 @@
     = intern_c_string ("buffer-access-fontify-functions");
   staticpro (&Qbuffer_access_fontify_functions);
 
-  DEFVAR_LISP ("inhibit-field-text-motion", &Vinhibit_field_text_motion,
+  DEFVAR_LISP ("inhibit-field-text-motion", Vinhibit_field_text_motion,
 	       doc: /* Non-nil means text motion commands don't notice fields.  */);
   Vinhibit_field_text_motion = Qnil;
 
   DEFVAR_LISP ("buffer-access-fontify-functions",
-	       &Vbuffer_access_fontify_functions,
+	       Vbuffer_access_fontify_functions,
 	       doc: /* List of functions called by `buffer-substring' to fontify if necessary.
 Each function is called with two arguments which specify the range
 of the buffer being accessed.  */);
@@ -4578,25 +4563,25 @@
   }
 
   DEFVAR_LISP ("buffer-access-fontified-property",
-	       &Vbuffer_access_fontified_property,
+	       Vbuffer_access_fontified_property,
 	       doc: /* Property which (if non-nil) indicates text has been fontified.
 `buffer-substring' need not call the `buffer-access-fontify-functions'
 functions if all the text being accessed has this property.  */);
   Vbuffer_access_fontified_property = Qnil;
 
-  DEFVAR_LISP ("system-name", &Vsystem_name,
+  DEFVAR_LISP ("system-name", Vsystem_name,
 	       doc: /* The host name of the machine Emacs is running on.  */);
 
-  DEFVAR_LISP ("user-full-name", &Vuser_full_name,
+  DEFVAR_LISP ("user-full-name", Vuser_full_name,
 	       doc: /* The full name of the user logged in.  */);
 
-  DEFVAR_LISP ("user-login-name", &Vuser_login_name,
+  DEFVAR_LISP ("user-login-name", Vuser_login_name,
 	       doc: /* The user's name, taken from environment variables if possible.  */);
 
-  DEFVAR_LISP ("user-real-login-name", &Vuser_real_login_name,
+  DEFVAR_LISP ("user-real-login-name", Vuser_real_login_name,
 	       doc: /* The user's name, based upon the real uid only.  */);
 
-  DEFVAR_LISP ("operating-system-release", &Voperating_system_release,
+  DEFVAR_LISP ("operating-system-release", Voperating_system_release,
 	       doc: /* The release of the operating system Emacs is running on.  */);
 
   defsubr (&Spropertize);
--- a/src/emacs.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/emacs.c	Tue Jan 18 13:45:37 2011 -0700
@@ -119,32 +119,9 @@
    least one symbol with that type, and then xbacktrace could fail.  */
 enum pvec_type gdb_pvec_type EXTERNALLY_VISIBLE = PVEC_TYPE_MASK;
 
-/* Command line args from shell, as list of strings.  */
-Lisp_Object Vcommand_line_args;
-
-/* The name under which Emacs was invoked, with any leading directory
-   names discarded.  */
-Lisp_Object Vinvocation_name;
-
-/* The directory name from which Emacs was invoked.  */
-Lisp_Object Vinvocation_directory;
-
-/* The directory name in which to find subdirs such as lisp and etc.
-   nil means get them only from PATH_LOADSEARCH.  */
-Lisp_Object Vinstallation_directory;
-
-/* The values of `current-time' before and after Emacs initialization.  */
-Lisp_Object Vbefore_init_time, Vafter_init_time;
-
-/* Hook run by `kill-emacs' before it does really anything.  */
-Lisp_Object Vkill_emacs_hook;
-
 /* Empty lisp strings.  To avoid having to build any others.  */
 Lisp_Object empty_unibyte_string, empty_multibyte_string;
 
-/* Search path separator.  */
-Lisp_Object Vpath_separator;
-
 /* Set nonzero after Emacs has started up the first time.
   Prevents reinitialization of the Lisp world and keymaps
   on subsequent starts.  */
@@ -163,33 +140,10 @@
 int malloc_using_checking;
 #endif
 
-/* Variable whose value is symbol giving operating system type.  */
-Lisp_Object Vsystem_type;
-
-/* Variable whose value is string giving configuration built for.  */
-Lisp_Object Vsystem_configuration;
-
-/* Variable whose value is string giving configuration options,
-   for use when reporting bugs.  */
-Lisp_Object Vsystem_configuration_options;
-
 Lisp_Object Qfile_name_handler_alist;
 
 Lisp_Object Qrisky_local_variable;
 
-/* Current and previous system locales for messages and time.  */
-Lisp_Object Vsystem_messages_locale;
-Lisp_Object Vprevious_system_messages_locale;
-Lisp_Object Vsystem_time_locale;
-Lisp_Object Vprevious_system_time_locale;
-
-/* Copyright and version info.  The version number may be updated by
-   Lisp code.  */
-Lisp_Object Vemacs_copyright, Vemacs_version;
-
-/* Alist of external libraries and files implementing them.  */
-Lisp_Object Vdynamic_library_alist;
-
 /* If non-zero, emacs should not attempt to use a window-specific code,
    but instead should use the virtual terminal under which it was started.  */
 int inhibit_window_system;
@@ -221,15 +175,6 @@
 
 int noninteractive;
 
-/* Value of Lisp variable `noninteractive'.
-   Normally same as C variable `noninteractive'
-   but nothing terrible happens if user sets this one.  */
-
-int noninteractive1;
-
-/* Nonzero means Emacs was run in --quick mode.  */
-int inhibit_x_resources;
-
 /* Nonzero means remove site-lisp directories from load-path.  */
 int no_site_lisp;
 
@@ -2420,11 +2365,11 @@
   defsubr (&Sdaemonp);
   defsubr (&Sdaemon_initialized);
 
-  DEFVAR_LISP ("command-line-args", &Vcommand_line_args,
+  DEFVAR_LISP ("command-line-args", Vcommand_line_args,
 	       doc: /* Args passed by shell to Emacs, as a list of strings.
 Many arguments are deleted from the list as they are processed.  */);
 
-  DEFVAR_LISP ("system-type", &Vsystem_type,
+  DEFVAR_LISP ("system-type", Vsystem_type,
 	       doc: /* The value is a symbol indicating the type of operating system you are using.
 Special values:
   `gnu'          compiled for a GNU Hurd system.
@@ -2439,20 +2384,20 @@
   Vsystem_type = intern_c_string (SYSTEM_TYPE);
   /* Above values are from SYSTEM_TYPE in src/s/*.h.  */
 
-  DEFVAR_LISP ("system-configuration", &Vsystem_configuration,
+  DEFVAR_LISP ("system-configuration", Vsystem_configuration,
 	       doc: /* Value is string indicating configuration Emacs was built for.
 On MS-Windows, the value reflects the OS flavor and version on which
 Emacs is running.  */);
   Vsystem_configuration = build_string (EMACS_CONFIGURATION);
 
-  DEFVAR_LISP ("system-configuration-options", &Vsystem_configuration_options,
+  DEFVAR_LISP ("system-configuration-options", Vsystem_configuration_options,
 	       doc: /* String containing the configuration options Emacs was built with.  */);
   Vsystem_configuration_options = build_string (EMACS_CONFIG_OPTIONS);
 
-  DEFVAR_BOOL ("noninteractive", &noninteractive1,
+  DEFVAR_BOOL ("noninteractive", noninteractive1,
 	       doc: /* Non-nil means Emacs is running without interactive terminal.  */);
 
-  DEFVAR_LISP ("kill-emacs-hook", &Vkill_emacs_hook,
+  DEFVAR_LISP ("kill-emacs-hook", Vkill_emacs_hook,
 	       doc: /* Hook to be run when `kill-emacs' is called.
 Since `kill-emacs' may be invoked when the terminal is disconnected (or
 in other similar situations), functions placed on this hook should not
@@ -2463,7 +2408,7 @@
 `noninteractive' was non-nil.  */);
   Vkill_emacs_hook = Qnil;
 
-  DEFVAR_LISP ("path-separator", &Vpath_separator,
+  DEFVAR_LISP ("path-separator", Vpath_separator,
 	       doc: /* String containing the character that separates directories in
 search paths, such as PATH and other similar environment variables.  */);
   {
@@ -2471,60 +2416,60 @@
     Vpath_separator = make_string (&c, 1);
   }
 
-  DEFVAR_LISP ("invocation-name", &Vinvocation_name,
+  DEFVAR_LISP ("invocation-name", Vinvocation_name,
 	       doc: /* The program name that was used to run Emacs.
 Any directory names are omitted.  */);
 
-  DEFVAR_LISP ("invocation-directory", &Vinvocation_directory,
+  DEFVAR_LISP ("invocation-directory", Vinvocation_directory,
 	       doc: /* The directory in which the Emacs executable was found, to run it.
 The value is nil if that directory's name is not known.  */);
 
-  DEFVAR_LISP ("installation-directory", &Vinstallation_directory,
+  DEFVAR_LISP ("installation-directory", Vinstallation_directory,
 	       doc: /* A directory within which to look for the `lib-src' and `etc' directories.
 This is non-nil when we can't find those directories in their standard
 installed locations, but we can find them near where the Emacs executable
 was found.  */);
   Vinstallation_directory = Qnil;
 
-  DEFVAR_LISP ("system-messages-locale", &Vsystem_messages_locale,
+  DEFVAR_LISP ("system-messages-locale", Vsystem_messages_locale,
 	       doc: /* System locale for messages.  */);
   Vsystem_messages_locale = Qnil;
 
   DEFVAR_LISP ("previous-system-messages-locale",
-	       &Vprevious_system_messages_locale,
+	       Vprevious_system_messages_locale,
 	       doc: /* Most recently used system locale for messages.  */);
   Vprevious_system_messages_locale = Qnil;
 
-  DEFVAR_LISP ("system-time-locale", &Vsystem_time_locale,
+  DEFVAR_LISP ("system-time-locale", Vsystem_time_locale,
 	       doc: /* System locale for time.  */);
   Vsystem_time_locale = Qnil;
 
-  DEFVAR_LISP ("previous-system-time-locale", &Vprevious_system_time_locale,
+  DEFVAR_LISP ("previous-system-time-locale", Vprevious_system_time_locale,
 	       doc: /* Most recently used system locale for time.  */);
   Vprevious_system_time_locale = Qnil;
 
-  DEFVAR_LISP ("before-init-time", &Vbefore_init_time,
+  DEFVAR_LISP ("before-init-time", Vbefore_init_time,
 	       doc: /* Value of `current-time' before Emacs begins initialization.  */);
   Vbefore_init_time = Qnil;
 
-  DEFVAR_LISP ("after-init-time", &Vafter_init_time,
+  DEFVAR_LISP ("after-init-time", Vafter_init_time,
 	       doc: /* Value of `current-time' after loading the init files.
 This is nil during initialization.  */);
   Vafter_init_time = Qnil;
 
-  DEFVAR_BOOL ("inhibit-x-resources", &inhibit_x_resources,
+  DEFVAR_BOOL ("inhibit-x-resources", inhibit_x_resources,
 	       doc: /* If non-nil, X resources, Windows Registry settings, and NS defaults are not used.  */);
   inhibit_x_resources = 0;
 
-  DEFVAR_LISP ("emacs-copyright", &Vemacs_copyright,
+  DEFVAR_LISP ("emacs-copyright", Vemacs_copyright,
 	       doc: /* Short copyright string for this version of Emacs.  */);
   Vemacs_copyright = build_string (emacs_copyright);
 
-  DEFVAR_LISP ("emacs-version", &Vemacs_version,
+  DEFVAR_LISP ("emacs-version", Vemacs_version,
 	       doc: /* Version numbers of this version of Emacs.  */);
   Vemacs_version = build_string (emacs_version);
 
-  DEFVAR_LISP ("dynamic-library-alist", &Vdynamic_library_alist,
+  DEFVAR_LISP ("dynamic-library-alist", Vdynamic_library_alist,
     doc: /* Alist of dynamic libraries vs external files implementing them.
 Each element is a list (LIBRARY FILE...), where the car is a symbol
 representing a supported external library, and the rest are strings giving
--- a/src/eval.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/eval.c	Tue Jan 18 13:45:37 2011 -0700
@@ -58,7 +58,7 @@
 #endif
 
 Lisp_Object Qautoload, Qmacro, Qexit, Qinteractive, Qcommandp, Qdefun;
-Lisp_Object Qinhibit_quit, Vinhibit_quit, Vquit_flag;
+Lisp_Object Qinhibit_quit;
 Lisp_Object Qand_rest, Qand_optional;
 Lisp_Object Qdebug_on_error;
 Lisp_Object Qdeclare;
@@ -89,56 +89,10 @@
 
 struct specbinding *specpdl_ptr;
 
-/* Maximum size allowed for specpdl allocation */
-
-EMACS_INT max_specpdl_size;
-
 /* Depth in Lisp evaluations and function calls.  */
 
 EMACS_INT lisp_eval_depth;
 
-/* Maximum allowed depth in Lisp evaluations and function calls.  */
-
-EMACS_INT max_lisp_eval_depth;
-
-/* Nonzero means enter debugger before next function call */
-
-int debug_on_next_call;
-
-/* Non-zero means debugger may continue.  This is zero when the
-   debugger is called during redisplay, where it might not be safe to
-   continue the interrupted redisplay. */
-
-int debugger_may_continue;
-
-/* List of conditions (non-nil atom means all) which cause a backtrace
-   if an error is handled by the command loop's error handler.  */
-
-Lisp_Object Vstack_trace_on_error;
-
-/* List of conditions (non-nil atom means all) which enter the debugger
-   if an error is handled by the command loop's error handler.  */
-
-Lisp_Object Vdebug_on_error;
-
-/* List of conditions and regexps specifying error messages which
-   do not enter the debugger even if Vdebug_on_error says they should.  */
-
-Lisp_Object Vdebug_ignored_errors;
-
-/* Non-nil means call the debugger even if the error will be handled.  */
-
-Lisp_Object Vdebug_on_signal;
-
-/* Hook for edebug to use.  */
-
-Lisp_Object Vsignal_hook_function;
-
-/* Nonzero means enter debugger if a quit signal
-   is handled by the command loop's error handler. */
-
-int debug_on_quit;
-
 /* The value of num_nonmacro_input_events as of the last time we
    started to enter the debugger.  If we decide to enter the debugger
    again when this is still equal to num_nonmacro_input_events, then we
@@ -148,8 +102,6 @@
 
 int when_entered_debugger;
 
-Lisp_Object Vdebugger;
-
 /* The function from which the last `signal' was called.  Set in
    Fsignal.  */
 
@@ -161,10 +113,6 @@
 
 int handling_signal;
 
-/* Function to process declarations in defmacro forms.  */
-
-Lisp_Object Vmacro_declaration_function;
-
 static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*);
 static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN;
 static int interactive_p (int);
@@ -3505,7 +3453,7 @@
 void
 syms_of_eval (void)
 {
-  DEFVAR_INT ("max-specpdl-size", &max_specpdl_size,
+  DEFVAR_INT ("max-specpdl-size", max_specpdl_size,
 	      doc: /* *Limit on number of Lisp variable bindings and `unwind-protect's.
 If Lisp code tries to increase the total number past this amount,
 an error is signaled.
@@ -3513,7 +3461,7 @@
 if that proves inconveniently small.  However, if you increase it too far,
 Emacs could run out of memory trying to make the stack bigger.  */);
 
-  DEFVAR_INT ("max-lisp-eval-depth", &max_lisp_eval_depth,
+  DEFVAR_INT ("max-lisp-eval-depth", max_lisp_eval_depth,
 	      doc: /* *Limit on depth in `eval', `apply' and `funcall' before error.
 
 This limit serves to catch infinite recursions for you before they cause
@@ -3522,7 +3470,7 @@
 if that proves inconveniently small.  However, if you increase it too far,
 Emacs could overflow the real C stack, and crash.  */);
 
-  DEFVAR_LISP ("quit-flag", &Vquit_flag,
+  DEFVAR_LISP ("quit-flag", Vquit_flag,
 	       doc: /* Non-nil causes `eval' to abort, unless `inhibit-quit' is non-nil.
 If the value is t, that means do an ordinary quit.
 If the value equals `throw-on-input', that means quit by throwing
@@ -3531,7 +3479,7 @@
 but `inhibit-quit' non-nil prevents anything from taking notice of that.  */);
   Vquit_flag = Qnil;
 
-  DEFVAR_LISP ("inhibit-quit", &Vinhibit_quit,
+  DEFVAR_LISP ("inhibit-quit", Vinhibit_quit,
 	       doc: /* Non-nil inhibits C-g quitting from happening immediately.
 Note that `quit-flag' will still be set by typing C-g,
 so a quit will be signaled as soon as `inhibit-quit' is nil.
@@ -3577,7 +3525,7 @@
   Qdebug = intern_c_string ("debug");
   staticpro (&Qdebug);
 
-  DEFVAR_LISP ("stack-trace-on-error", &Vstack_trace_on_error,
+  DEFVAR_LISP ("stack-trace-on-error", Vstack_trace_on_error,
 	       doc: /* *Non-nil means errors display a backtrace buffer.
 More precisely, this happens for any error that is handled
 by the editor command loop.
@@ -3585,7 +3533,7 @@
 if one of its condition symbols appears in the list.  */);
   Vstack_trace_on_error = Qnil;
 
-  DEFVAR_LISP ("debug-on-error", &Vdebug_on_error,
+  DEFVAR_LISP ("debug-on-error", Vdebug_on_error,
 	       doc: /* *Non-nil means enter debugger if an error is signaled.
 Does not apply to errors handled by `condition-case' or those
 matched by `debug-ignored-errors'.
@@ -3597,7 +3545,7 @@
 See also the variable `debug-on-quit'.  */);
   Vdebug_on_error = Qnil;
 
-  DEFVAR_LISP ("debug-ignored-errors", &Vdebug_ignored_errors,
+  DEFVAR_LISP ("debug-ignored-errors", Vdebug_ignored_errors,
     doc: /* *List of errors for which the debugger should not be called.
 Each element may be a condition-name or a regexp that matches error messages.
 If any element applies to a given error, that error skips the debugger
@@ -3606,21 +3554,21 @@
 It does not apply to errors handled by `condition-case'.  */);
   Vdebug_ignored_errors = Qnil;
 
-  DEFVAR_BOOL ("debug-on-quit", &debug_on_quit,
+  DEFVAR_BOOL ("debug-on-quit", debug_on_quit,
     doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
 Does not apply if quit is handled by a `condition-case'.  */);
   debug_on_quit = 0;
 
-  DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call,
+  DEFVAR_BOOL ("debug-on-next-call", debug_on_next_call,
 	       doc: /* Non-nil means enter debugger before next `eval', `apply' or `funcall'.  */);
 
-  DEFVAR_BOOL ("debugger-may-continue", &debugger_may_continue,
+  DEFVAR_BOOL ("debugger-may-continue", debugger_may_continue,
 	       doc: /* Non-nil means debugger may continue execution.
 This is nil when the debugger is called under circumstances where it
 might not be safe to continue.  */);
   debugger_may_continue = 1;
 
-  DEFVAR_LISP ("debugger", &Vdebugger,
+  DEFVAR_LISP ("debugger", Vdebugger,
 	       doc: /* Function to call to invoke debugger.
 If due to frame exit, args are `exit' and the value being returned;
  this function's value will be returned instead of that.
@@ -3629,19 +3577,19 @@
 If due to `eval' entry, one arg, t.  */);
   Vdebugger = Qnil;
 
-  DEFVAR_LISP ("signal-hook-function", &Vsignal_hook_function,
+  DEFVAR_LISP ("signal-hook-function", Vsignal_hook_function,
 	       doc: /* If non-nil, this is a function for `signal' to call.
 It receives the same arguments that `signal' was given.
 The Edebug package uses this to regain control.  */);
   Vsignal_hook_function = Qnil;
 
-  DEFVAR_LISP ("debug-on-signal", &Vdebug_on_signal,
+  DEFVAR_LISP ("debug-on-signal", Vdebug_on_signal,
 	       doc: /* *Non-nil means call the debugger regardless of condition handlers.
 Note that `debug-on-error', `debug-on-quit' and friends
 still determine whether to handle the particular condition.  */);
   Vdebug_on_signal = Qnil;
 
-  DEFVAR_LISP ("macro-declaration-function", &Vmacro_declaration_function,
+  DEFVAR_LISP ("macro-declaration-function", Vmacro_declaration_function,
 	       doc: /* Function to process declarations in a macro definition.
 The function will be called with two args MACRO and DECL.
 MACRO is the name of the macro being defined.
--- a/src/fileio.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/fileio.c	Tue Jan 18 13:45:37 2011 -0700
@@ -122,17 +122,6 @@
    auto saving and recovering a file.  */
 Lisp_Object Qauto_save_coding;
 
-/* Coding system for file names, or nil if none.  */
-Lisp_Object Vfile_name_coding_system;
-
-/* Coding system for file names used only when
-   Vfile_name_coding_system is nil.  */
-Lisp_Object Vdefault_file_name_coding_system;
-
-/* Alist of elements (REGEXP . HANDLER) for file names
-   whose I/O is done with a special handler.  */
-Lisp_Object Vfile_name_handler_alist;
-
 /* Property name of a file name handler,
    which gives a list of operations it handles..  */
 Lisp_Object Qoperations;
@@ -140,47 +129,18 @@
 /* Lisp functions for translating file formats */
 Lisp_Object Qformat_decode, Qformat_annotate_function;
 
-/* Function to be called to decide a coding system of a reading file.  */
-Lisp_Object Vset_auto_coding_function;
-
-/* Functions to be called to process text properties in inserted file.  */
-Lisp_Object Vafter_insert_file_functions;
-
 /* Lisp function for setting buffer-file-coding-system and the
    multibyteness of the current buffer after inserting a file.  */
 Lisp_Object Qafter_insert_file_set_coding;
 
-/* Functions to be called to create text property annotations for file.  */
-Lisp_Object Vwrite_region_annotate_functions;
 Lisp_Object Qwrite_region_annotate_functions;
-Lisp_Object Vwrite_region_post_annotation_function;
-
-/* During build_annotations, each time an annotation function is called,
-   this holds the annotations made by the previous functions.  */
-Lisp_Object Vwrite_region_annotations_so_far;
-
 /* Each time an annotation function changes the buffer, the new buffer
    is added here.  */
 Lisp_Object Vwrite_region_annotation_buffers;
 
-/* File name in which we write a list of all our auto save files.  */
-Lisp_Object Vauto_save_list_file_name;
-
-/* Whether or not files are auto-saved into themselves.  */
-Lisp_Object Vauto_save_visited_file_name;
-
-/* Whether or not to continue auto-saving after a large deletion.  */
-Lisp_Object Vauto_save_include_big_deletions;
-
 #ifdef HAVE_FSYNC
-/* Nonzero means skip the call to fsync in Fwrite-region.  */
-int write_region_inhibit_fsync;
 #endif
 
-/* Non-zero means call move-file-to-trash in Fdelete_file or
-   Fdelete_directory_internal.  */
-int delete_by_moving_to_trash;
-
 Lisp_Object Qdelete_by_moving_to_trash;
 
 /* Lisp function for moving files to trash.  */
@@ -193,19 +153,8 @@
 Lisp_Object Qdelete_directory;
 
 #ifdef WINDOWSNT
-extern Lisp_Object Vw32_get_true_file_attributes;
 #endif
 
-/* These variables describe handlers that have "already" had a chance
-   to handle the current operation.
-
-   Vinhibit_file_name_handlers is a list of file name handlers.
-   Vinhibit_file_name_operation is the operation being handled.
-   If we try to handle that operation, we ignore those handlers.  */
-
-static Lisp_Object Vinhibit_file_name_handlers;
-static Lisp_Object Vinhibit_file_name_operation;
-
 Lisp_Object Qfile_error, Qfile_already_exists, Qfile_date_error;
 Lisp_Object Qexcl;
 Lisp_Object Qfile_name_history;
@@ -5638,13 +5587,13 @@
   staticpro (&Qfind_buffer_file_type);
 #endif /* DOS_NT */
 
-  DEFVAR_LISP ("file-name-coding-system", &Vfile_name_coding_system,
+  DEFVAR_LISP ("file-name-coding-system", Vfile_name_coding_system,
 	       doc: /* *Coding system for encoding file names.
 If it is nil, `default-file-name-coding-system' (which see) is used.  */);
   Vfile_name_coding_system = Qnil;
 
   DEFVAR_LISP ("default-file-name-coding-system",
-	       &Vdefault_file_name_coding_system,
+	       Vdefault_file_name_coding_system,
 	       doc: /* Default coding system for encoding file names.
 This variable is used only when `file-name-coding-system' is nil.
 
@@ -5679,7 +5628,7 @@
   Fput (Qfile_date_error, Qerror_message,
 	make_pure_c_string ("Cannot set file date"));
 
-  DEFVAR_LISP ("file-name-handler-alist", &Vfile_name_handler_alist,
+  DEFVAR_LISP ("file-name-handler-alist", Vfile_name_handler_alist,
 	       doc: /* *Alist of elements (REGEXP . HANDLER) for file names handled specially.
 If a file name matches REGEXP, then all I/O on that file is done by calling
 HANDLER.
@@ -5695,7 +5644,7 @@
   Vfile_name_handler_alist = Qnil;
 
   DEFVAR_LISP ("set-auto-coding-function",
-	       &Vset_auto_coding_function,
+	       Vset_auto_coding_function,
 	       doc: /* If non-nil, a function to call to decide a coding system of file.
 Two arguments are passed to this function: the file name
 and the length of a file contents following the point.
@@ -5707,7 +5656,7 @@
 or local variable spec of the tailing lines with `coding:' tag.  */);
   Vset_auto_coding_function = Qnil;
 
-  DEFVAR_LISP ("after-insert-file-functions", &Vafter_insert_file_functions,
+  DEFVAR_LISP ("after-insert-file-functions", Vafter_insert_file_functions,
 	       doc: /* A list of functions to be called at the end of `insert-file-contents'.
 Each is passed one argument, the number of characters inserted,
 with point at the start of the inserted text.  Each function
@@ -5717,7 +5666,7 @@
 functions in `after-insert-file-functions' if appropriate.  */);
   Vafter_insert_file_functions = Qnil;
 
-  DEFVAR_LISP ("write-region-annotate-functions", &Vwrite_region_annotate_functions,
+  DEFVAR_LISP ("write-region-annotate-functions", Vwrite_region_annotate_functions,
 	       doc: /* A list of functions to be called at the start of `write-region'.
 Each is passed two arguments, START and END as for `write-region'.
 These are usually two numbers but not always; see the documentation
@@ -5746,7 +5695,7 @@
     = intern_c_string ("write-region-annotate-functions");
 
   DEFVAR_LISP ("write-region-post-annotation-function",
-	       &Vwrite_region_post_annotation_function,
+	       Vwrite_region_post_annotation_function,
 	       doc: /* Function to call after `write-region' completes.
 The function is called with no arguments.  If one or more of the
 annotation functions in `write-region-annotate-functions' changed the
@@ -5757,34 +5706,34 @@
   staticpro (&Vwrite_region_annotation_buffers);
 
   DEFVAR_LISP ("write-region-annotations-so-far",
-	       &Vwrite_region_annotations_so_far,
+	       Vwrite_region_annotations_so_far,
 	       doc: /* When an annotation function is called, this holds the previous annotations.
 These are the annotations made by other annotation functions
 that were already called.  See also `write-region-annotate-functions'.  */);
   Vwrite_region_annotations_so_far = Qnil;
 
-  DEFVAR_LISP ("inhibit-file-name-handlers", &Vinhibit_file_name_handlers,
+  DEFVAR_LISP ("inhibit-file-name-handlers", Vinhibit_file_name_handlers,
 	       doc: /* A list of file name handlers that temporarily should not be used.
 This applies only to the operation `inhibit-file-name-operation'.  */);
   Vinhibit_file_name_handlers = Qnil;
 
-  DEFVAR_LISP ("inhibit-file-name-operation", &Vinhibit_file_name_operation,
+  DEFVAR_LISP ("inhibit-file-name-operation", Vinhibit_file_name_operation,
 	       doc: /* The operation for which `inhibit-file-name-handlers' is applicable.  */);
   Vinhibit_file_name_operation = Qnil;
 
-  DEFVAR_LISP ("auto-save-list-file-name", &Vauto_save_list_file_name,
+  DEFVAR_LISP ("auto-save-list-file-name", Vauto_save_list_file_name,
 	       doc: /* File name in which we write a list of all auto save file names.
 This variable is initialized automatically from `auto-save-list-file-prefix'
 shortly after Emacs reads your `.emacs' file, if you have not yet given it
 a non-nil value.  */);
   Vauto_save_list_file_name = Qnil;
 
-  DEFVAR_LISP ("auto-save-visited-file-name", &Vauto_save_visited_file_name,
+  DEFVAR_LISP ("auto-save-visited-file-name", Vauto_save_visited_file_name,
 	       doc: /* Non-nil says auto-save a buffer in the file it is visiting, when practical.
 Normally auto-save files are written under other names.  */);
   Vauto_save_visited_file_name = Qnil;
 
-  DEFVAR_LISP ("auto-save-include-big-deletions", &Vauto_save_include_big_deletions,
+  DEFVAR_LISP ("auto-save-include-big-deletions", Vauto_save_include_big_deletions,
 	       doc: /* If non-nil, auto-save even if a large part of the text is deleted.
 If nil, deleting a substantial portion of the text disables auto-save
 in the buffer; this is the default behavior, because the auto-save
@@ -5792,14 +5741,14 @@
   Vauto_save_include_big_deletions = Qnil;
 
 #ifdef HAVE_FSYNC
-  DEFVAR_BOOL ("write-region-inhibit-fsync", &write_region_inhibit_fsync,
+  DEFVAR_BOOL ("write-region-inhibit-fsync", write_region_inhibit_fsync,
 	       doc: /* *Non-nil means don't call fsync in `write-region'.
 This variable affects calls to `write-region' as well as save commands.
 A non-nil value may result in data loss!  */);
   write_region_inhibit_fsync = 0;
 #endif
 
-  DEFVAR_BOOL ("delete-by-moving-to-trash", &delete_by_moving_to_trash,
+  DEFVAR_BOOL ("delete-by-moving-to-trash", delete_by_moving_to_trash,
                doc: /* Specifies whether to use the system's trash can.
 When non-nil, certain file deletion commands use the function
 `move-file-to-trash' instead of deleting files outright.
--- a/src/filelock.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/filelock.c	Tue Jan 18 13:45:37 2011 -0700
@@ -46,10 +46,6 @@
 #include "coding.h"
 #include "systime.h"
 
-/* The directory for writing temporary files.  */
-
-Lisp_Object Vtemporary_file_directory;
-
 #ifdef CLASH_DETECTION
 
 #ifdef HAVE_UTMP_H
@@ -732,7 +728,7 @@
 void
 syms_of_filelock (void)
 {
-  DEFVAR_LISP ("temporary-file-directory", &Vtemporary_file_directory,
+  DEFVAR_LISP ("temporary-file-directory", Vtemporary_file_directory,
 	       doc: /* The directory for writing temporary files.  */);
   Vtemporary_file_directory = Qnil;
 
--- a/src/fns.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/fns.c	Tue Jan 18 13:45:37 2011 -0700
@@ -51,14 +51,6 @@
 #define NULL ((POINTER_TYPE *)0)
 #endif
 
-/* Nonzero enables use of dialog boxes for questions
-   asked by mouse commands.  */
-int use_dialog_box;
-
-/* Nonzero enables use of a file dialog for file name
-   questions asked by mouse commands.  */
-int use_file_dialog;
-
 Lisp_Object Qstring_lessp, Qprovide, Qrequire;
 Lisp_Object Qyes_or_no_p_history;
 Lisp_Object Qcursor_in_echo_area;
@@ -2558,7 +2550,7 @@
   return ret;
 }
 
-Lisp_Object Vfeatures, Qsubfeatures;
+Lisp_Object Qsubfeatures;
 
 DEFUN ("featurep", Ffeaturep, Sfeaturep, 1, 2, 0,
        doc: /* Return t if FEATURE is present in this Emacs.
@@ -4836,7 +4828,7 @@
 
   Fset (Qyes_or_no_p_history, Qnil);
 
-  DEFVAR_LISP ("features", &Vfeatures,
+  DEFVAR_LISP ("features", Vfeatures,
     doc: /* A list of symbols which are the features of the executing Emacs.
 Used by `featurep' and `require', and altered by `provide'.  */);
   Vfeatures = Fcons (intern_c_string ("emacs"), Qnil);
@@ -4854,7 +4846,7 @@
   staticpro (&Qpaper);
 #endif	/* HAVE_LANGINFO_CODESET */
 
-  DEFVAR_BOOL ("use-dialog-box", &use_dialog_box,
+  DEFVAR_BOOL ("use-dialog-box", use_dialog_box,
     doc: /* *Non-nil means mouse commands use dialog boxes to ask questions.
 This applies to `y-or-n-p' and `yes-or-no-p' questions asked by commands
 invoked by mouse clicks and mouse menu items.
@@ -4863,7 +4855,7 @@
 non-nil.  */);
   use_dialog_box = 1;
 
-  DEFVAR_BOOL ("use-file-dialog", &use_file_dialog,
+  DEFVAR_BOOL ("use-file-dialog", use_file_dialog,
     doc: /* *Non-nil means mouse commands use a file dialog to ask for files.
 This applies to commands from menus and tool bar buttons even when
 they are initiated from the keyboard.  If `use-dialog-box' is nil,
--- a/src/font.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/font.c	Tue Jan 18 13:45:37 2011 -0700
@@ -63,8 +63,6 @@
    font_driver *)->list when a specified font is not found. */
 static Lisp_Object null_vector;
 
-static Lisp_Object Vfont_weight_table, Vfont_slant_table, Vfont_width_table;
-
 /* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */
 static Lisp_Object font_style_table;
 
@@ -137,8 +135,6 @@
 
 Lisp_Object QCuser_spec;
 
-Lisp_Object Vfont_encoding_alist;
-
 /* Alist of font registry symbol and the corresponding charsets
    information.  The information is retrieved from
    Vfont_encoding_alist on demand.
@@ -4976,8 +4972,6 @@
   return table;
 }
 
-Lisp_Object Vfont_log;
-
 /* The deferred font-log data of the form [ACTION ARG RESULT].
    If ACTION is not nil, that is added to the log when font_add_log is
    called next time.  At that time, ACTION is set back to nil.  */
@@ -5183,7 +5177,7 @@
   defsubr (&Sfont_info);
 #endif
 
-  DEFVAR_LISP ("font-encoding-alist", &Vfont_encoding_alist,
+  DEFVAR_LISP ("font-encoding-alist", Vfont_encoding_alist,
 	       doc: /*
 Alist of fontname patterns vs the corresponding encoding and repertory info.
 Each element looks like (REGEXP . (ENCODING . REPERTORY)),
@@ -5210,7 +5204,7 @@
      table used by the font display code.  So we make them read-only,
      to avoid this confusing situation.  */
 
-  DEFVAR_LISP_NOPRO ("font-weight-table", &Vfont_weight_table,
+  DEFVAR_LISP_NOPRO ("font-weight-table", Vfont_weight_table,
 	       doc: /*  Vector of valid font weight values.
 Each element has the form:
     [NUMERIC-VALUE SYMBOLIC-NAME ALIAS-NAME ...]
@@ -5218,13 +5212,13 @@
   Vfont_weight_table = BUILD_STYLE_TABLE (weight_table);
   XSYMBOL (intern_c_string ("font-weight-table"))->constant = 1;
 
-  DEFVAR_LISP_NOPRO ("font-slant-table", &Vfont_slant_table,
+  DEFVAR_LISP_NOPRO ("font-slant-table", Vfont_slant_table,
 	       doc: /*  Vector of font slant symbols vs the corresponding numeric values.
 See `font-weight-table' for the format of the vector. */);
   Vfont_slant_table = BUILD_STYLE_TABLE (slant_table);
   XSYMBOL (intern_c_string ("font-slant-table"))->constant = 1;
 
-  DEFVAR_LISP_NOPRO ("font-width-table", &Vfont_width_table,
+  DEFVAR_LISP_NOPRO ("font-width-table", Vfont_width_table,
 	       doc: /*  Alist of font width symbols vs the corresponding numeric values.
 See `font-weight-table' for the format of the vector. */);
   Vfont_width_table = BUILD_STYLE_TABLE (width_table);
@@ -5236,7 +5230,7 @@
   ASET (font_style_table, 1, Vfont_slant_table);
   ASET (font_style_table, 2, Vfont_width_table);
 
-  DEFVAR_LISP ("font-log", &Vfont_log, doc: /*
+  DEFVAR_LISP ("font-log", Vfont_log, doc: /*
 *Logging list of font related actions and results.
 The value t means to suppress the logging.
 The initial value is set to nil if the environment variable
--- a/src/font.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/font.h	Tue Jan 18 13:45:37 2011 -0700
@@ -849,7 +849,6 @@
 
 extern Lisp_Object QCfoundry;
 
-extern Lisp_Object Vfont_log;
 extern void font_add_log (const char *, Lisp_Object, Lisp_Object);
 extern void font_deferred_log (const char *, Lisp_Object, Lisp_Object);
 
--- a/src/fontset.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/fontset.c	Tue Jan 18 13:45:37 2011 -0700
@@ -191,14 +191,6 @@
    font for each character.  */
 static Lisp_Object Vdefault_fontset;
 
-Lisp_Object Vfont_encoding_charset_alist;
-Lisp_Object Vuse_default_ascent;
-Lisp_Object Vignore_relative_composition;
-Lisp_Object Valternate_fontname_alist;
-Lisp_Object Vfontset_alias_alist;
-Lisp_Object Vvertical_centering_font_regexp;
-Lisp_Object Votf_script_alist;
-
 /* Check if any window system is used now.  */
 void (*check_window_system_func) (void);
 
@@ -2199,7 +2191,7 @@
   auto_fontset_alist = Qnil;
   staticpro (&auto_fontset_alist);
 
-  DEFVAR_LISP ("font-encoding-charset-alist", &Vfont_encoding_charset_alist,
+  DEFVAR_LISP ("font-encoding-charset-alist", Vfont_encoding_charset_alist,
 	       doc: /*
 Alist of charsets vs the charsets to determine the preferred font encoding.
 Each element looks like (CHARSET . ENCODING-CHARSET),
@@ -2210,7 +2202,7 @@
 whose encoding corresponds to ENCODING-CHARSET is preferred.  */);
   Vfont_encoding_charset_alist = Qnil;
 
-  DEFVAR_LISP ("use-default-ascent", &Vuse_default_ascent,
+  DEFVAR_LISP ("use-default-ascent", Vuse_default_ascent,
 	       doc: /*
 Char table of characters whose ascent values should be ignored.
 If an entry for a character is non-nil, the ascent value of the glyph
@@ -2220,7 +2212,7 @@
 such a character is displayed on screen.  */);
   Vuse_default_ascent = Qnil;
 
-  DEFVAR_LISP ("ignore-relative-composition", &Vignore_relative_composition,
+  DEFVAR_LISP ("ignore-relative-composition", Vignore_relative_composition,
 	       doc: /*
 Char table of characters which are not composed relatively.
 If an entry for a character is non-nil, a composition sequence
@@ -2229,26 +2221,26 @@
 an ascent and descent value of a previous character.  */);
   Vignore_relative_composition = Qnil;
 
-  DEFVAR_LISP ("alternate-fontname-alist", &Valternate_fontname_alist,
+  DEFVAR_LISP ("alternate-fontname-alist", Valternate_fontname_alist,
 	       doc: /* Alist of fontname vs list of the alternate fontnames.
 When a specified font name is not found, the corresponding
 alternate fontnames (if any) are tried instead.  */);
   Valternate_fontname_alist = Qnil;
 
-  DEFVAR_LISP ("fontset-alias-alist", &Vfontset_alias_alist,
+  DEFVAR_LISP ("fontset-alias-alist", Vfontset_alias_alist,
 	       doc: /* Alist of fontset names vs the aliases.  */);
   Vfontset_alias_alist = Fcons (Fcons (FONTSET_NAME (Vdefault_fontset),
 				       make_pure_c_string ("fontset-default")),
 				Qnil);
 
   DEFVAR_LISP ("vertical-centering-font-regexp",
-	       &Vvertical_centering_font_regexp,
+	       Vvertical_centering_font_regexp,
 	       doc: /* *Regexp matching font names that require vertical centering on display.
 When a character is displayed with such fonts, the character is displayed
 at the vertical center of lines.  */);
   Vvertical_centering_font_regexp = Qnil;
 
-  DEFVAR_LISP ("otf-script-alist", &Votf_script_alist,
+  DEFVAR_LISP ("otf-script-alist", Votf_script_alist,
 	       doc: /* Alist of OpenType script tags vs the corresponding script names.  */);
   Votf_script_alist = Qnil;
 
--- a/src/fontset.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/fontset.h	Tue Jan 18 13:45:37 2011 -0700
@@ -45,13 +45,6 @@
 extern Lisp_Object list_fontsets (struct frame *, Lisp_Object, int);
 
 extern Lisp_Object Qlatin;
-extern Lisp_Object Vuse_default_ascent;
-extern Lisp_Object Vignore_relative_composition;
-extern Lisp_Object Valternate_fontname_alist;
-extern Lisp_Object Vfontset_alias_alist;
-extern Lisp_Object Vvertical_centering_font_regexp;
-extern Lisp_Object Votf_script_alist;
-
 extern Lisp_Object fontset_name (int);
 extern Lisp_Object fontset_ascii (int);
 
--- a/src/frame.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/frame.c	Tue Jan 18 13:45:37 2011 -0700
@@ -55,24 +55,8 @@
 #endif
 
 
-/* If we shall make pointer invisible when typing or not.  */
-Lisp_Object Vmake_pointer_invisible;
-
 #ifdef HAVE_WINDOW_SYSTEM
 
-/* The name we're using in resource queries.  Most often "emacs".  */
-
-Lisp_Object Vx_resource_name;
-
-/* The application class we're using in resource queries.
-   Normally "Emacs".  */
-
-Lisp_Object Vx_resource_class;
-
-/* Lower limit value of the frame opacity (alpha transparency).  */
-
-Lisp_Object Vframe_alpha_lower_limit;
-
 #endif
 
 #ifdef HAVE_NS
@@ -122,7 +106,6 @@
 Lisp_Object Qexplicit_name;
 Lisp_Object Qunsplittable;
 Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position;
-Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
 Lisp_Object Qleft_fringe, Qright_fringe;
 Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
 Lisp_Object Qtty_color_mode;
@@ -135,14 +118,8 @@
 
 Lisp_Object Qface_set_after_frame_default;
 
-Lisp_Object Vterminal_frame;
-Lisp_Object Vdefault_frame_alist;
-Lisp_Object Vdefault_frame_scroll_bars;
-Lisp_Object Vmouse_position_function;
-Lisp_Object Vmouse_highlight;
-static Lisp_Object Vdelete_frame_functions, Qdelete_frame_functions;
-
-int focus_follows_mouse;
+static Lisp_Object Qdelete_frame_functions;
+
 
 static void
 set_menu_bar_lines_1 (Lisp_Object window, int n)
@@ -4464,7 +4441,7 @@
   }
 
 #ifdef HAVE_WINDOW_SYSTEM
-  DEFVAR_LISP ("x-resource-name", &Vx_resource_name,
+  DEFVAR_LISP ("x-resource-name", Vx_resource_name,
     doc: /* The name Emacs uses to look up X resources.
 `x-get-resource' uses this as the first component of the instance name
 when requesting resource values.
@@ -4476,7 +4453,7 @@
 to `x-get-resource'.  See also the variable `x-resource-class'.  */);
   Vx_resource_name = Qnil;
 
-  DEFVAR_LISP ("x-resource-class", &Vx_resource_class,
+  DEFVAR_LISP ("x-resource-class", Vx_resource_class,
     doc: /* The class Emacs uses to look up X resources.
 `x-get-resource' uses this as the first component of the instance class
 when requesting resource values.
@@ -4488,7 +4465,7 @@
 is a reasonable practice.  See also the variable `x-resource-name'.  */);
   Vx_resource_class = build_string (EMACS_CLASS);
 
-  DEFVAR_LISP ("frame-alpha-lower-limit", &Vframe_alpha_lower_limit,
+  DEFVAR_LISP ("frame-alpha-lower-limit", Vframe_alpha_lower_limit,
     doc: /* The lower limit of the frame opacity (alpha transparency).
 The value should range from 0 (invisible) to 100 (completely opaque).
 You can also use a floating number between 0.0 and 1.0.
@@ -4496,7 +4473,7 @@
   Vframe_alpha_lower_limit = make_number (20);
 #endif
 
-  DEFVAR_LISP ("default-frame-alist", &Vdefault_frame_alist,
+  DEFVAR_LISP ("default-frame-alist", Vdefault_frame_alist,
 	       doc: /* Alist of default values for frame creation.
 These may be set in your init file, like this:
   (setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1)))
@@ -4511,7 +4488,7 @@
 Setting this variable does not affect existing frames, only new ones.  */);
   Vdefault_frame_alist = Qnil;
 
-  DEFVAR_LISP ("default-frame-scroll-bars", &Vdefault_frame_scroll_bars,
+  DEFVAR_LISP ("default-frame-scroll-bars", Vdefault_frame_scroll_bars,
 	       doc: /* Default position of scroll bars on this window-system.  */);
 #ifdef HAVE_WINDOW_SYSTEM
 #if defined(HAVE_NTGUI) || defined(NS_IMPL_COCOA) || (defined(USE_GTK) && defined(USE_TOOLKIT_SCROLL_BARS))
@@ -4525,10 +4502,10 @@
   Vdefault_frame_scroll_bars = Qnil;
 #endif
 
-  DEFVAR_LISP ("terminal-frame", &Vterminal_frame,
+  DEFVAR_LISP ("terminal-frame", Vterminal_frame,
                doc: /* The initial frame-object, which represents Emacs's stdout.  */);
 
-  DEFVAR_LISP ("mouse-position-function", &Vmouse_position_function,
+  DEFVAR_LISP ("mouse-position-function", Vmouse_position_function,
 	       doc: /* If non-nil, function to transform normal value of `mouse-position'.
 `mouse-position' calls this function, passing its usual return value as
 argument, and returns whatever this function returns.
@@ -4536,7 +4513,7 @@
 which need to do mouse handling at the Lisp level.  */);
   Vmouse_position_function = Qnil;
 
-  DEFVAR_LISP ("mouse-highlight", &Vmouse_highlight,
+  DEFVAR_LISP ("mouse-highlight", Vmouse_highlight,
 	       doc: /* If non-nil, clickable text is highlighted when mouse is over it.
 If the value is an integer, highlighting is only shown after moving the
 mouse, while keyboard input turns off the highlight even when the mouse
@@ -4544,12 +4521,12 @@
 when the mouse is over clickable text.  */);
   Vmouse_highlight = Qt;
 
-  DEFVAR_LISP ("make-pointer-invisible", &Vmake_pointer_invisible,
+  DEFVAR_LISP ("make-pointer-invisible", Vmake_pointer_invisible,
                doc: /* If non-nil, make pointer invisible while typing.
 The pointer becomes visible again when the mouse is moved.  */);
   Vmake_pointer_invisible = Qt;
 
-  DEFVAR_LISP ("delete-frame-functions", &Vdelete_frame_functions,
+  DEFVAR_LISP ("delete-frame-functions", Vdelete_frame_functions,
 	       doc: /* Functions to be run before deleting a frame.
 The functions are run with one arg, the frame to be deleted.
 See `delete-frame'.
@@ -4562,7 +4539,7 @@
   Qdelete_frame_functions = intern_c_string ("delete-frame-functions");
   staticpro (&Qdelete_frame_functions);
 
-  DEFVAR_LISP ("menu-bar-mode", &Vmenu_bar_mode,
+  DEFVAR_LISP ("menu-bar-mode", Vmenu_bar_mode,
                doc: /* Non-nil if Menu-Bar mode is enabled.
 See the command `menu-bar-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
@@ -4570,7 +4547,7 @@
 or call the function `menu-bar-mode'.  */);
   Vmenu_bar_mode = Qt;
 
-  DEFVAR_LISP ("tool-bar-mode", &Vtool_bar_mode,
+  DEFVAR_LISP ("tool-bar-mode", Vtool_bar_mode,
                doc: /* Non-nil if Tool-Bar mode is enabled.
 See the command `tool-bar-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
@@ -4597,7 +4574,7 @@
 
 This variable is local to the current terminal and cannot be buffer-local.  */);
 
-  DEFVAR_BOOL ("focus-follows-mouse", &focus_follows_mouse,
+  DEFVAR_BOOL ("focus-follows-mouse", focus_follows_mouse,
 	       doc: /* Non-nil if window system changes focus when you move the mouse.
 You should set this variable to tell Emacs how your window manager
 handles focus, since there is no way in general for Emacs to find out
--- a/src/frame.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/frame.h	Tue Jan 18 13:45:37 2011 -0700
@@ -37,11 +37,6 @@
 
 extern int message_buf_print;
 
-/* Nonzero means window system changes focus when moving the
-   mouse.  */
-
-extern int focus_follows_mouse;
-
 
 /* The structure representing a frame.  */
 
@@ -862,11 +857,6 @@
 extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object);
 
 extern Lisp_Object Vframe_list;
-extern Lisp_Object Vdefault_frame_alist;
-
-extern Lisp_Object Vterminal_frame;
-
-extern Lisp_Object Vmouse_highlight;
 
 /* The currently selected frame.  */
 
@@ -1108,12 +1098,6 @@
 
 extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int);
 
-/* These are in frame.c  */
-
-extern Lisp_Object Vx_resource_name;
-extern Lisp_Object Vx_resource_class;
-extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
-
 
 extern Lisp_Object Qface_set_after_frame_default;
 
@@ -1145,7 +1129,6 @@
 
 extern int x_figure_window_size (struct frame *, Lisp_Object, int);
 
-extern Lisp_Object Vframe_alpha_lower_limit;
 extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object);
 
 extern void validate_x_resource_name (void);
--- a/src/fringe.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/fringe.c	Tue Jan 18 13:45:37 2011 -0700
@@ -32,19 +32,6 @@
 
 #ifdef HAVE_WINDOW_SYSTEM
 
-/* Non-nil means that newline may flow into the right fringe.  */
-
-Lisp_Object Voverflow_newline_into_fringe;
-
-/* List of known fringe bitmap symbols.
-
-   The fringe bitmap number is stored in the `fringe' property on
-   those symbols.  Names for the built-in bitmaps are installed by
-   loading fringe.el.
- */
-
-Lisp_Object Vfringe_bitmaps;
-
 /* Fringe bitmaps are represented in three different ways:
 
    Logical bitmaps are used internally to denote things like
@@ -1756,7 +1743,7 @@
   defsubr (&Sfringe_bitmaps_at_pos);
   defsubr (&Sset_fringe_bitmap_face);
 
-  DEFVAR_LISP ("overflow-newline-into-fringe", &Voverflow_newline_into_fringe,
+  DEFVAR_LISP ("overflow-newline-into-fringe", Voverflow_newline_into_fringe,
     doc: /* *Non-nil means that newline may flow into the right fringe.
 This means that display lines which are exactly as wide as the window
 (not counting the final newline) will only occupy one screen line, by
@@ -1765,7 +1752,7 @@
 If nil, also continue lines which are exactly as wide as the window.  */);
   Voverflow_newline_into_fringe = Qt;
 
-  DEFVAR_LISP ("fringe-bitmaps", &Vfringe_bitmaps,
+  DEFVAR_LISP ("fringe-bitmaps", Vfringe_bitmaps,
     doc: /* List of fringe bitmap symbols.  */);
   Vfringe_bitmaps = Qnil;
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/globals.h	Tue Jan 18 13:45:37 2011 -0700
@@ -0,0 +1,2775 @@
+/* Declare all global lisp variables.
+
+   Copyright (C) 2011  Free Software Foundation, Inc.
+
+   This file is part of GNU Emacs.
+
+   GNU Emacs is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   GNU Emacs is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
+
+struct emacs_globals
+{
+
+  /* Count the amount of consing of various sorts of space.  */
+  EMACS_INT f_cons_cells_consed;
+
+  EMACS_INT f_floats_consed;
+
+  EMACS_INT f_vector_cells_consed;
+
+  EMACS_INT f_symbols_consed;
+
+  EMACS_INT f_string_chars_consed;
+
+  EMACS_INT f_misc_objects_consed;
+
+  EMACS_INT f_intervals_consed;
+
+  EMACS_INT f_strings_consed;
+
+  /* Minimum number of bytes of consing since GC before next GC. */
+  EMACS_INT f_gc_cons_threshold;
+
+  Lisp_Object f_Vgc_cons_percentage;
+
+  /* Nonzero means display messages at beginning and end of GC.  */
+  int f_garbage_collection_messages;
+
+  /* Non-nil means defun should do purecopy on the function definition.  */
+  Lisp_Object f_Vpurify_flag;
+
+  /* Non-nil means we are handling a memory-full error.  */
+  Lisp_Object f_Vmemory_full;
+
+  /* Total number of bytes allocated in pure storage. */
+  EMACS_INT f_pure_bytes_used;
+
+  /* Pre-computed signal argument for use when memory is exhausted.  */
+  Lisp_Object f_Vmemory_signal_data;
+
+  Lisp_Object f_Vpost_gc_hook;
+
+  Lisp_Object f_Vgc_elapsed;
+
+  EMACS_INT f_gcs_done;
+
+  /* Functions to call before and after each text change. */
+  Lisp_Object f_Vbefore_change_functions;
+
+  Lisp_Object f_Vafter_change_functions;
+
+  Lisp_Object f_Vtransient_mark_mode;
+
+  /* t means ignore all read-only text properties.
+     A list means ignore such a property if its value is a member of the list.
+     Any non-nil value means ignore buffer-read-only.  */
+  Lisp_Object f_Vinhibit_read_only;
+
+  /* List of functions to call that can query about killing a buffer.
+     If any of these functions returns nil, we don't kill it.  */
+  Lisp_Object f_Vkill_buffer_query_functions;
+
+  Lisp_Object f_Vchange_major_mode_hook;
+
+  /* List of functions to call before changing an unmodified buffer.  */
+  Lisp_Object f_Vfirst_change_hook;
+
+  /* If nonzero, all modification hooks are suppressed.  */
+  int f_inhibit_modification_hooks;
+
+  Lisp_Object f_Vbyte_code_meter;
+
+  int f_byte_metering_on;
+
+  Lisp_Object f_Vcurrent_prefix_arg;
+
+  Lisp_Object f_Vcommand_history;
+
+  Lisp_Object f_Vcommand_debug_status;
+
+  /* Non-nil means treat the mark as active
+     even if mark_active is 0.  */
+  Lisp_Object f_Vmark_even_if_inactive;
+
+  Lisp_Object f_Vmouse_leave_buffer_hook;
+
+  Lisp_Object f_Vexec_path;
+  Lisp_Object f_Vexec_directory;
+  Lisp_Object f_Vexec_suffixes;
+
+  Lisp_Object f_Vdata_directory;
+  Lisp_Object f_Vdoc_directory;
+
+  Lisp_Object f_Vconfigure_info_directory;
+  Lisp_Object f_Vshared_game_score_directory;
+
+  Lisp_Object f_Vshell_file_name;
+
+  Lisp_Object f_Vprocess_environment;
+  Lisp_Object f_Vinitial_environment;
+
+  /* Variables to determine word boundary.  */
+  Lisp_Object f_Vword_combining_categories;
+  Lisp_Object f_Vword_separating_categories;
+
+  /* This contains all code conversion map available to CCL.  */
+  Lisp_Object f_Vcode_conversion_map_vector;
+
+  /* Alist of fontname patterns vs corresponding CCL program.  */
+  Lisp_Object f_Vfont_ccl_encoder_alist;
+
+  /* Vector of registered hash tables for translation.  */
+  Lisp_Object f_Vtranslation_hash_table_vector;
+
+  /* Vector of translation table ever defined.
+     ID of a translation table is used to index this vector.  */
+  Lisp_Object f_Vtranslation_table_vector;
+
+  /* A char-table for characters which may invoke auto-filling.  */
+  Lisp_Object f_Vauto_fill_chars;
+
+  /* A char-table.  An element is non-nil iff the corresponding
+     character has a printable glyph.  */
+  Lisp_Object f_Vprintable_chars;
+
+  /* A char-table.  An elemnent is a column-width of the corresponding
+     character.  */
+  Lisp_Object f_Vchar_width_table;
+
+  /* A char-table.  An element is a symbol indicating the direction
+     property of corresponding character.  */
+  Lisp_Object f_Vchar_direction_table;
+
+  /* Char table of scripts.  */
+  Lisp_Object f_Vchar_script_table;
+
+  /* Alist of scripts vs representative characters.  */
+  Lisp_Object f_Vscript_representative_chars;
+
+  Lisp_Object f_Vunicode_category_table;
+
+  /* List of all charsets.  This variable is used only from Emacs
+     Lisp.  */
+  Lisp_Object f_Vcharset_list;
+
+  Lisp_Object f_Vcharset_map_path;
+
+  /* If nonzero, don't load charset maps.  */
+  int f_inhibit_load_charset_map;
+
+  Lisp_Object f_Vcurrent_iso639_language;
+
+  Lisp_Object f_Vpost_self_insert_hook;
+
+  int f_coding_system_require_warning;
+
+  Lisp_Object f_Vselect_safe_coding_system_function;
+
+  /* Mnemonic string for each format of end-of-line.  */
+  Lisp_Object f_eol_mnemonic_unix;
+  Lisp_Object f_eol_mnemonic_dos;
+  Lisp_Object f_eol_mnemonic_mac;
+
+  /* Mnemonic string to indicate format of end-of-line is not yet
+     decided.  */
+  Lisp_Object f_eol_mnemonic_undecided;
+
+  Lisp_Object f_Vcoding_system_list;
+  Lisp_Object f_Vcoding_system_alist;
+
+  /* Coding-system for reading files and receiving data from process.  */
+  Lisp_Object f_Vcoding_system_for_read;
+
+  /* Coding-system for writing files and sending data to process.  */
+  Lisp_Object f_Vcoding_system_for_write;
+
+  /* Coding-system actually used in the latest I/O.  */
+  Lisp_Object f_Vlast_coding_system_used;
+
+  /* Set to non-nil when an error is detected while code conversion.  */
+  Lisp_Object f_Vlast_code_conversion_error;
+
+  /* A vector of length 256 which contains information about special
+     Latin codes (especially for dealing with Microsoft codes).  */
+  Lisp_Object f_Vlatin_extra_code_table;
+
+  /* Flag to inhibit code conversion of end-of-line format.  */
+  int f_inhibit_eol_conversion;
+
+  /* Flag to inhibit ISO2022 escape sequence detection.  */
+  int f_inhibit_iso_escape_detection;
+
+  /* Flag to inhibit detection of binary files through null bytes.  */
+  int f_inhibit_null_byte_detection;
+
+  /* Flag to make buffer-file-coding-system inherit from process-coding.  */
+  int f_inherit_process_coding_system;
+
+  Lisp_Object f_Vfile_coding_system_alist;
+
+  Lisp_Object f_Vprocess_coding_system_alist;
+
+  Lisp_Object f_Vnetwork_coding_system_alist;
+
+  Lisp_Object f_Vlocale_coding_system;
+
+  /* Flag to tell if we look up translation table on character code
+     conversion.  */
+  Lisp_Object f_Venable_character_translation;
+
+  /* Standard translation table to look up on decoding (reading).  */
+  Lisp_Object f_Vstandard_translation_table_for_decode;
+
+  /* Standard translation table to look up on encoding (writing).  */
+  Lisp_Object f_Vstandard_translation_table_for_encode;
+
+  /* Alist of charsets vs revision number.  */
+  Lisp_Object f_Vcharset_revision_table;
+
+  /* Default coding systems used for process I/O.  */
+  Lisp_Object f_Vdefault_process_coding_system;
+
+  /* Char table for translating Quail and self-inserting input.  */
+  Lisp_Object f_Vtranslation_table_for_input;
+
+  /* List of symbols `coding-category-xxx' ordered by priority.  This
+     variable is exposed to Emacs Lisp.  */
+  Lisp_Object f_Vcoding_category_list;
+
+  /* Function to call to adjust composition.  */
+  Lisp_Object f_Vcompose_chars_after_function;
+
+  Lisp_Object f_Vauto_composition_mode;
+
+  Lisp_Object f_Vauto_composition_function;
+
+  Lisp_Object f_Vcomposition_function_table;
+
+  Lisp_Object f_Vmost_positive_fixnum;
+  Lisp_Object f_Vmost_negative_fixnum;
+
+  /* Registered buses.  */
+  Lisp_Object f_Vdbus_registered_buses;
+
+  /* Hash table which keeps function definitions.  */
+  Lisp_Object f_Vdbus_registered_objects_table;
+
+  /* Whether to debug D-Bus.  */
+  Lisp_Object f_Vdbus_debug;
+
+  Lisp_Object f_Vcompletion_ignored_extensions;
+
+  /* Non-zero means don't pause redisplay for pending input.  (This is
+     for debugging and for a future implementation of EDT-like
+     scrolling.  */
+  int f_redisplay_dont_pause;
+
+  /* If a number (float), check for user input every N seconds.  */
+  Lisp_Object f_Vredisplay_preemption_period;
+
+  /* Lisp variable visible-bell; enables use of screen-flash instead of
+     audible bell.  */
+  int f_visible_bell;
+
+  /* Invert the color of the whole frame, at a low level.  */
+  int f_inverse_video;
+
+  /* Line speed of the terminal.  */
+  EMACS_INT f_baud_rate;
+
+  /* Either nil or a symbol naming the window system under which Emacs
+     creates the first frame.  */
+  Lisp_Object f_Vinitial_window_system;
+
+  /* Version number of X windows: 10, 11 or nil.  */
+  Lisp_Object f_Vwindow_system_version;
+
+  /* Vector of glyph definitions.  Indexed by glyph number, the contents
+     are a string which is how to output the glyph.
+
+     If Vglyph_table is nil, a glyph is output by using its low 8 bits
+     as a character code.
+
+     This is an obsolete feature that is no longer used.  The variable
+     is retained for compatibility.  */
+  Lisp_Object f_Vglyph_table;
+
+  /* Display table to use for vectors that don't specify their own.  */
+  Lisp_Object f_Vstandard_display_table;
+
+  /* Nonzero means reading single-character input with prompt so put
+     cursor on mini-buffer after the prompt.  Positive means at end of
+     text in echo area; negative means at beginning of line.  */
+  int f_cursor_in_echo_area;
+
+  Lisp_Object f_Vdoc_file_name;
+
+  /* A list of files used to build this Emacs binary.  */
+  Lisp_Object f_Vbuild_files;
+
+  /* country info */
+  EMACS_INT f_dos_country_code;
+
+  EMACS_INT f_dos_codepage;
+
+  EMACS_INT f_dos_timezone_offset;
+
+  EMACS_INT f_dos_decimal_point;
+
+  EMACS_INT f_dos_keyboard_layout;
+
+  EMACS_INT f_dos_hyper_key;
+
+  EMACS_INT f_dos_super_key;
+
+  EMACS_INT f_dos_keypad_mode;
+
+  Lisp_Object f_Vdos_version;
+
+  Lisp_Object f_Vdos_display_scancodes;
+
+  Lisp_Object f_Vdos_windows_version;
+
+  Lisp_Object f_Vbuffer_access_fontify_functions;
+
+  Lisp_Object f_Vbuffer_access_fontified_property;
+
+  /* Non-nil means don't stop at field boundary in text motion commands.  */
+  Lisp_Object f_Vinhibit_field_text_motion;
+
+  /* Some static data, and a function to initialize it for each run */
+  Lisp_Object f_Vsystem_name;
+
+  Lisp_Object f_Vuser_real_login_name;
+
+  Lisp_Object f_Vuser_full_name;
+
+  Lisp_Object f_Vuser_login_name;
+
+  Lisp_Object f_Voperating_system_release;
+
+  /* Command line args from shell, as list of strings.  */
+  Lisp_Object f_Vcommand_line_args;
+
+  /* The name under which Emacs was invoked, with any leading directory
+     names discarded.  */
+  Lisp_Object f_Vinvocation_name;
+
+  /* The directory name from which Emacs was invoked.  */
+  Lisp_Object f_Vinvocation_directory;
+
+  /* The directory name in which to find subdirs such as lisp and etc.
+     nil means get them only from PATH_LOADSEARCH.  */
+  Lisp_Object f_Vinstallation_directory;
+
+  /* The values of `current-time' before and after Emacs initialization.  */
+  Lisp_Object f_Vbefore_init_time;
+  Lisp_Object f_Vafter_init_time;
+
+  /* Hook run by `kill-emacs' before it does really anything.  */
+  Lisp_Object f_Vkill_emacs_hook;
+
+  /* Search path separator.  */
+  Lisp_Object f_Vpath_separator;
+
+  /* Variable whose value is symbol giving operating system type.  */
+  Lisp_Object f_Vsystem_type;
+
+  /* Variable whose value is string giving configuration built for.  */
+  Lisp_Object f_Vsystem_configuration;
+
+  /* Variable whose value is string giving configuration options,
+     for use when reporting bugs.  */
+  Lisp_Object f_Vsystem_configuration_options;
+
+  /* Current and previous system locales for messages and time.  */
+  Lisp_Object f_Vsystem_messages_locale;
+
+  Lisp_Object f_Vprevious_system_messages_locale;
+
+  Lisp_Object f_Vsystem_time_locale;
+
+  Lisp_Object f_Vprevious_system_time_locale;
+
+  /* Copyright and version info.  The version number may be updated by
+     Lisp code.  */
+  Lisp_Object f_Vemacs_copyright;
+  Lisp_Object f_Vemacs_version;
+
+  /* Alist of external libraries and files implementing them.  */
+  Lisp_Object f_Vdynamic_library_alist;
+
+  /* Value of Lisp variable `noninteractive'.
+     Normally same as C variable `noninteractive'
+     but nothing terrible happens if user sets this one.  */
+  int f_noninteractive1;
+
+  /* Nonzero means Emacs was run in --quick mode.  */
+  int f_inhibit_x_resources;
+
+  Lisp_Object f_Vinhibit_quit;
+  Lisp_Object f_Vquit_flag;
+
+  /* Maximum size allowed for specpdl allocation */
+  EMACS_INT f_max_specpdl_size;
+
+  /* Maximum allowed depth in Lisp evaluations and function calls.  */
+  EMACS_INT f_max_lisp_eval_depth;
+
+  /* Nonzero means enter debugger before next function call */
+  int f_debug_on_next_call;
+
+  /* Non-zero means debugger may continue.  This is zero when the
+     debugger is called during redisplay, where it might not be safe to
+     continue the interrupted redisplay. */
+  int f_debugger_may_continue;
+
+  /* List of conditions (non-nil atom means all) which cause a backtrace
+     if an error is handled by the command loop's error handler.  */
+  Lisp_Object f_Vstack_trace_on_error;
+
+  /* List of conditions (non-nil atom means all) which enter the debugger
+     if an error is handled by the command loop's error handler.  */
+  Lisp_Object f_Vdebug_on_error;
+
+  /* List of conditions and regexps specifying error messages which
+     do not enter the debugger even if Vdebug_on_error says they should.  */
+  Lisp_Object f_Vdebug_ignored_errors;
+
+  /* Non-nil means call the debugger even if the error will be handled.  */
+  Lisp_Object f_Vdebug_on_signal;
+
+  /* Hook for edebug to use.  */
+  Lisp_Object f_Vsignal_hook_function;
+
+  /* Nonzero means enter debugger if a quit signal
+     is handled by the command loop's error handler. */
+  int f_debug_on_quit;
+
+  Lisp_Object f_Vdebugger;
+
+  /* Function to process declarations in defmacro forms.  */
+  Lisp_Object f_Vmacro_declaration_function;
+
+  /* Coding system for file names, or nil if none.  */
+  Lisp_Object f_Vfile_name_coding_system;
+
+  /* Coding system for file names used only when
+     Vfile_name_coding_system is nil.  */
+  Lisp_Object f_Vdefault_file_name_coding_system;
+
+  /* Alist of elements (REGEXP . HANDLER) for file names
+     whose I/O is done with a special handler.  */
+  Lisp_Object f_Vfile_name_handler_alist;
+
+  /* Function to be called to decide a coding system of a reading file.  */
+  Lisp_Object f_Vset_auto_coding_function;
+
+  /* Functions to be called to process text properties in inserted file.  */
+  Lisp_Object f_Vafter_insert_file_functions;
+
+  /* Functions to be called to create text property annotations for file.  */
+  Lisp_Object f_Vwrite_region_annotate_functions;
+
+  Lisp_Object f_Vwrite_region_post_annotation_function;
+
+  /* During build_annotations, each time an annotation function is called,
+     this holds the annotations made by the previous functions.  */
+  Lisp_Object f_Vwrite_region_annotations_so_far;
+
+  /* File name in which we write a list of all our auto save files.  */
+  Lisp_Object f_Vauto_save_list_file_name;
+
+  /* Whether or not files are auto-saved into themselves.  */
+  Lisp_Object f_Vauto_save_visited_file_name;
+
+  /* Whether or not to continue auto-saving after a large deletion.  */
+  Lisp_Object f_Vauto_save_include_big_deletions;
+
+  /* Nonzero means skip the call to fsync in Fwrite-region.  */
+  int f_write_region_inhibit_fsync;
+
+  /* Non-zero means call move-file-to-trash in Fdelete_file or
+     Fdelete_directory_internal.  */
+  int f_delete_by_moving_to_trash;
+
+  /* These variables describe handlers that have "already" had a chance
+     to handle the current operation.
+
+     Vinhibit_file_name_handlers is a list of file name handlers.
+     Vinhibit_file_name_operation is the operation being handled.
+     If we try to handle that operation, we ignore those handlers.  */
+  Lisp_Object f_Vinhibit_file_name_handlers;
+
+  Lisp_Object f_Vinhibit_file_name_operation;
+
+  /* The directory for writing temporary files.  */
+  Lisp_Object f_Vtemporary_file_directory;
+
+  /* Nonzero enables use of dialog boxes for questions
+     asked by mouse commands.  */
+  int f_use_dialog_box;
+
+  /* Nonzero enables use of a file dialog for file name
+     questions asked by mouse commands.  */
+  int f_use_file_dialog;
+
+  Lisp_Object f_Vfeatures;
+
+  Lisp_Object f_Vfont_weight_table;
+  Lisp_Object f_Vfont_slant_table;
+  Lisp_Object f_Vfont_width_table;
+
+  Lisp_Object f_Vfont_encoding_alist;
+
+  Lisp_Object f_Vfont_log;
+
+  Lisp_Object f_Vfont_encoding_charset_alist;
+
+  Lisp_Object f_Vuse_default_ascent;
+
+  Lisp_Object f_Vignore_relative_composition;
+
+  Lisp_Object f_Valternate_fontname_alist;
+
+  Lisp_Object f_Vfontset_alias_alist;
+
+  Lisp_Object f_Vvertical_centering_font_regexp;
+
+  Lisp_Object f_Votf_script_alist;
+
+  /* If we shall make pointer invisible when typing or not.  */
+  Lisp_Object f_Vmake_pointer_invisible;
+
+  /* The name we're using in resource queries.  Most often "emacs".  */
+  Lisp_Object f_Vx_resource_name;
+
+  /* The application class we're using in resource queries.
+     Normally "Emacs".  */
+  Lisp_Object f_Vx_resource_class;
+
+  /* Lower limit value of the frame opacity (alpha transparency).  */
+  Lisp_Object f_Vframe_alpha_lower_limit;
+
+  Lisp_Object f_Vmenu_bar_mode;
+  Lisp_Object f_Vtool_bar_mode;
+
+  Lisp_Object f_Vterminal_frame;
+
+  Lisp_Object f_Vdefault_frame_alist;
+
+  Lisp_Object f_Vdefault_frame_scroll_bars;
+
+  Lisp_Object f_Vmouse_position_function;
+
+  Lisp_Object f_Vmouse_highlight;
+
+  Lisp_Object f_Vdelete_frame_functions;
+
+  int f_focus_follows_mouse;
+
+  /* Non-nil means that newline may flow into the right fringe.  */
+  Lisp_Object f_Voverflow_newline_into_fringe;
+
+  /* List of known fringe bitmap symbols.
+
+     The fringe bitmap number is stored in the `fringe' property on
+     those symbols.  Names for the built-in bitmaps are installed by
+     loading fringe.el.
+  */
+  Lisp_Object f_Vfringe_bitmaps;
+
+  /* Search path for bitmap files.  */
+  Lisp_Object f_Vx_bitmap_file_path;
+
+  /* A list of symbols, one for each supported image type.  */
+  Lisp_Object f_Vimage_types;
+
+  /* Time in seconds after which images should be removed from the cache
+     if not displayed.  */
+  Lisp_Object f_Vimage_cache_eviction_delay;
+
+  Lisp_Object f_Vmax_image_size;
+
+  /* Non-zero means draw a cross on images having `:conversion
+     disabled'.  */
+  int f_cross_disabled_images;
+
+  Lisp_Object f_Vimagemagick_render_type;
+
+  /* Indentation can insert tabs if this is non-zero;
+     otherwise always uses spaces.  */
+  int f_indent_tabs_mode;
+
+  /* Non-nil means don't call the after-change-functions right away,
+     just record an element in combine_after_change_list.  */
+  Lisp_Object f_Vcombine_after_change_calls;
+
+  /* Check all markers in the current buffer, looking for something invalid.  */
+  int f_check_markers_debug_flag;
+
+  /* Non-nil if the present key sequence was obtained by shift translation.  */
+  Lisp_Object f_Vthis_command_keys_shift_translated;
+
+  /* If non-nil, the function that implements the display of help.
+     It's called with one argument, the help string to display.  */
+  Lisp_Object f_Vshow_help_function;
+
+  /* Nonzero means do menu prompting.  */
+  int f_menu_prompting;
+
+  /* Character to see next line of menu prompt.  */
+  Lisp_Object f_menu_prompt_more_char;
+
+  /* Nonzero means disregard local maps for the menu bar.  */
+  int f_inhibit_local_menu_bar_menus;
+
+  /* The user's hook function for outputting an error message.  */
+  Lisp_Object f_Vcommand_error_function;
+
+  /* The user's ERASE setting.  */
+  Lisp_Object f_Vtty_erase_char;
+
+  /* Character to recognize as the help char.  */
+  Lisp_Object f_Vhelp_char;
+
+  /* List of other event types to recognize as meaning "help".  */
+  Lisp_Object f_Vhelp_event_list;
+
+  /* Form to execute when help char is typed.  */
+  Lisp_Object f_Vhelp_form;
+
+  /* Command to run when the help character follows a prefix key.  */
+  Lisp_Object f_Vprefix_help_command;
+
+  /* List of items that should move to the end of the menu bar.  */
+  Lisp_Object f_Vmenu_bar_final_items;
+
+  /* Expression to evaluate for the tool bar separator image.
+     This is used for build_desired_tool_bar_string only.  For GTK, we
+     use GTK tool bar seperators.  */
+  Lisp_Object f_Vtool_bar_separator_image_expression;
+
+  /* Non-nil means show the equivalent key-binding for
+     any M-x command that has one.
+     The value can be a length of time to show the message for.
+     If the value is non-nil and not a number, we wait 2 seconds.  */
+  Lisp_Object f_Vsuggest_key_bindings;
+
+  /* How long to display an echo-area message when the minibuffer is active.
+     If the value is not a number, such messages don't time out.  */
+  Lisp_Object f_Vminibuffer_message_timeout;
+
+  /* If non-nil, this is a map that overrides all other local maps.  */
+  Lisp_Object f_Voverriding_local_map;
+
+  /* If non-nil, Voverriding_local_map applies to the menu bar.  */
+  Lisp_Object f_Voverriding_local_map_menu_flag;
+
+  /* Keymap that defines special misc events that should
+     be processed immediately at a low level.  */
+  Lisp_Object f_Vspecial_event_map;
+
+  /* Total number of times command_loop has read a key sequence.  */
+  EMACS_INT f_num_input_keys;
+
+  /* Last input event read as a command.  */
+  Lisp_Object f_last_command_event;
+
+  /* Last input character read as a command, not counting menus
+     reached by the mouse.  */
+  Lisp_Object f_last_nonmenu_event;
+
+  /* Last input event read for any purpose.  */
+  Lisp_Object f_last_input_event;
+
+  /* If not Qnil, a list of objects to be read as subsequent command input.  */
+  Lisp_Object f_Vunread_command_events;
+
+  /* If not Qnil, a list of objects to be read as subsequent command input
+     including input method processing.  */
+  Lisp_Object f_Vunread_input_method_events;
+
+  /* If not Qnil, a list of objects to be read as subsequent command input
+     but NOT including input method processing.  */
+  Lisp_Object f_Vunread_post_input_method_events;
+
+  /* If not -1, an event to be read as subsequent command input.  */
+  EMACS_INT f_unread_command_char;
+
+  /* A mask of extra modifier bits to put into every keyboard char.  */
+  EMACS_INT f_extra_keyboard_modifiers;
+
+  /* Char to use as prefix when a meta character is typed in.
+     This is bound on entry to minibuffer in case ESC is changed there.  */
+  Lisp_Object f_meta_prefix_char;
+
+  /* Number of idle seconds before an auto-save and garbage collection.  */
+  Lisp_Object f_Vauto_save_timeout;
+
+  /* Total number of times read_char has returned, outside of macros.  */
+  EMACS_INT f_num_nonmacro_input_events;
+
+  /* Auto-save automatically when this many characters have been typed
+     since the last time.  */
+  EMACS_INT f_auto_save_interval;
+
+  /* The command being executed by the command loop.
+     Commands may set this, and the value set will be copied into
+     current_kboard->Vlast_command instead of the actual command.  */
+  Lisp_Object f_Vthis_command;
+
+  /* If the lookup of the command returns a binding, the original
+     command is stored in this-original-command.  It is nil otherwise.  */
+  Lisp_Object f_Vthis_original_command;
+
+  /* A user-visible version of the above, intended to allow users to
+     figure out where the last event came from, if the event doesn't
+     carry that information itself (i.e. if it was a character).  */
+  Lisp_Object f_Vlast_event_frame;
+
+  /* If non-nil, active regions automatically become the window selection.  */
+  Lisp_Object f_Vselect_active_regions;
+
+  /* The text in the active region prior to modifying the buffer.
+     Used by the `select-active-regions' feature.  */
+  Lisp_Object f_Vsaved_region_selection;
+
+  /* Echo unfinished commands after this many seconds of pause.  */
+  Lisp_Object f_Vecho_keystrokes;
+
+  /* Form to evaluate (if non-nil) when Emacs is started.  */
+  Lisp_Object f_Vtop_level;
+
+  /* If non-nil, this implements the current input method.  */
+  Lisp_Object f_Vinput_method_function;
+
+  /* When we call Vinput_method_function,
+     this holds the echo area message that was just erased.  */
+  Lisp_Object f_Vinput_method_previous_message;
+
+  /* Non-nil means deactivate the mark at end of this command.  */
+  Lisp_Object f_Vdeactivate_mark;
+
+  /* Menu bar specified in Lucid Emacs fashion.  */
+  Lisp_Object f_Vlucid_menu_bar_dirty_flag;
+
+  Lisp_Object f_Vpre_command_hook;
+
+  Lisp_Object f_Vpost_command_hook;
+
+  Lisp_Object f_Vcommand_hook_internal;
+
+  /* Parent keymap of terminal-local function-key-map instances.  */
+  Lisp_Object f_Vfunction_key_map;
+
+  /* Keymap of key translations that can override keymaps.  */
+  Lisp_Object f_Vkey_translation_map;
+
+  /* List of deferred actions to be performed at a later time.
+     The precise format isn't relevant here; we just check whether it is nil.  */
+  Lisp_Object f_Vdeferred_action_list;
+
+  /* Function to call to handle deferred actions, when there are any.  */
+  Lisp_Object f_Vdeferred_action_function;
+
+  /* If this flag is non-nil, we check mouse_moved to see when the
+     mouse moves, and motion events will appear in the input stream.
+     Otherwise, mouse motion is ignored.  */
+  Lisp_Object f_do_mouse_tracking;
+
+  /* List of absolute timers.  Appears in order of next scheduled event.  */
+  Lisp_Object f_Vtimer_list;
+
+  /* List of idle time timers.  Appears in order of next scheduled event.  */
+  Lisp_Object f_Vtimer_idle_list;
+
+  /* After a command is executed, if point is moved into a region that
+     has specific properties (e.g. composition, display), we adjust
+     point to the boundary of the region.  But, if a command sets this
+     variable to non-nil, we suppress this point adjustment.  This
+     variable is set to nil before reading a command.  */
+  Lisp_Object f_Vdisable_point_adjustment;
+
+  /* If non-nil, always disable point adjustment.  */
+  Lisp_Object f_Vglobal_disable_point_adjustment;
+
+  /* If non-nil, events produced by disabled menu items and tool-bar
+     buttons are not ignored.  Help functions bind this to allow help on
+     those items and buttons.  */
+  Lisp_Object f_Venable_disabled_menus_and_buttons;
+
+  /* Nonzero means don't try to suspend even if the operating system seems
+     to support it.  */
+  int f_cannot_suspend;
+
+  /* Number of seconds between polling for input.  This is a Lisp
+     variable that can be bound.  */
+  EMACS_INT f_polling_period;
+
+  /* subprocesses */
+  Lisp_Object f_Vthrow_on_input;
+
+  /* The maximum time between clicks to make a double-click, or Qnil to
+     disable double-click detection, or Qt for no time limit.  */
+  Lisp_Object f_Vdouble_click_time;
+
+  /* Maximum number of pixels the mouse may be moved between clicks
+     to make a double-click.  */
+  EMACS_INT f_double_click_fuzz;
+
+  /* was MinibufLocalMap */
+  Lisp_Object f_Vminibuffer_local_map;
+
+  /* was MinibufLocalNSMap */
+  Lisp_Object f_Vminibuffer_local_ns_map;
+
+  /* was MinibufLocalCompletionMap */
+  Lisp_Object f_Vminibuffer_local_completion_map;
+
+  /* keymap used for minibuffers when doing completion in filenames */
+  Lisp_Object f_Vminibuffer_local_filename_completion_map;
+
+  /* keymap used for minibuffers when doing completion in filenames
+     with require-match*/
+  Lisp_Object f_Vminibuffer_local_filename_must_match_map;
+
+  /* was MinibufLocalMustMatchMap */
+  Lisp_Object f_Vminibuffer_local_must_match_map;
+
+  /* Alist of minor mode variables and keymaps.  */
+  Lisp_Object f_Vminor_mode_map_alist;
+
+  /* Alist of major-mode-specific overrides for
+     minor mode variables and keymaps.  */
+  Lisp_Object f_Vminor_mode_overriding_map_alist;
+
+  /* List of emulation mode keymap alists.  */
+  Lisp_Object f_Vemulation_mode_map_alists;
+
+  /* A list of all commands given new bindings since a certain time
+     when nil was stored here.
+     This is used to speed up recomputation of menu key equivalents
+     when Emacs starts up.   t means don't record anything here.  */
+  Lisp_Object f_Vdefine_key_rebound_commands;
+
+  Lisp_Object f_Vwhere_is_preferred_modifier;
+
+  Lisp_Object f_Vvalues;
+  Lisp_Object f_Vstandard_input;
+  Lisp_Object f_Vafter_load_alist;
+
+  Lisp_Object f_Veval_buffer_list;
+
+  /* non-zero if inside `load' */
+  int f_load_in_progress;
+
+  /* Directory in which the sources were found.  */
+  Lisp_Object f_Vsource_directory;
+
+  /* Search path and suffixes for files to be loaded. */
+  Lisp_Object f_Vload_path;
+  Lisp_Object f_Vload_suffixes;
+  Lisp_Object f_Vload_file_rep_suffixes;
+
+  /* File name of user's init file.  */
+  Lisp_Object f_Vuser_init_file;
+
+  /* This is the user-visible association list that maps features to
+     lists of defs in their load files. */
+  Lisp_Object f_Vload_history;
+
+  /* This is used to build the load history. */
+  Lisp_Object f_Vcurrent_load_list;
+
+  /* List of files that were preloaded.  */
+  Lisp_Object f_Vpreloaded_file_list;
+
+  /* Name of file actually being read by `load'.  */
+  Lisp_Object f_Vload_file_name;
+
+  /* Function to use for reading, in `load' and friends.  */
+  Lisp_Object f_Vload_read_function;
+
+  /* Non-nil means read recursive structures using #n= and #n# syntax.  */
+  Lisp_Object f_Vread_circle;
+
+  /* Nonzero means load should forcibly load all dynamic doc strings.  */
+  int f_load_force_doc_strings;
+
+  /* Nonzero means read should convert strings to unibyte.  */
+  int f_load_convert_to_unibyte;
+
+  /* Function to use for loading an Emacs Lisp source file (not
+     compiled) instead of readevalloop.  */
+  Lisp_Object f_Vload_source_file_function;
+
+  /* List of all DEFVAR_BOOL variables.  Used by the byte optimizer.  */
+  Lisp_Object f_Vbyte_boolean_vars;
+
+  /* Whether or not to add a `read-positions' property to symbols
+     read. */
+  Lisp_Object f_Vread_with_symbol_positions;
+
+  /* List of (SYMBOL . POSITION) accumulated so far. */
+  Lisp_Object f_Vread_symbol_positions_list;
+
+  Lisp_Object f_Vold_style_backquotes;
+
+  /* Non-zero means load dangerous compiled Lisp files.  */
+  int f_load_dangerous_libraries;
+
+  /* Non-zero means force printing messages when loading Lisp files.  */
+  int f_force_load_messages;
+
+  /* A regular expression used to detect files compiled with Emacs.  */
+  Lisp_Object f_Vbytecomp_version_regexp;
+
+  Lisp_Object f_Vobarray;
+
+  /* Kbd macro currently being executed (a string or vector).  */
+  Lisp_Object f_Vexecuting_kbd_macro;
+
+  /* Index of next character to fetch from that macro.  */
+  EMACS_INT f_executing_kbd_macro_index;
+
+  /* Nonzero means enable debugging checks on byte/char correspondences.  */
+  int f_byte_debug_flag;
+
+  Lisp_Object f_Vhistory_length;
+
+  /* No duplicates in history.  */
+  int f_history_delete_duplicates;
+
+  /* Non-nil means add new input to history.  */
+  Lisp_Object f_Vhistory_add_new_input;
+
+  /* Nonzero means let functions called when within a minibuffer
+     invoke recursive minibuffers (to read arguments, or whatever) */
+  int f_enable_recursive_minibuffers;
+
+  /* Nonzero means don't ignore text properties
+     in Fread_from_minibuffer.  */
+  int f_minibuffer_allow_text_properties;
+
+  /* help-form is bound to this while in the minibuffer.  */
+  Lisp_Object f_Vminibuffer_help_form;
+
+  /* Variable which is the history list to add minibuffer values to.  */
+  Lisp_Object f_Vminibuffer_history_variable;
+
+  /* Current position in the history list (adjusted by M-n and M-p).  */
+  Lisp_Object f_Vminibuffer_history_position;
+
+  /* Text properties that are added to minibuffer prompts.
+     These are in addition to the basic `field' property, and stickiness
+     properties.  */
+  Lisp_Object f_Vminibuffer_prompt_properties;
+
+  Lisp_Object f_Vminibuffer_setup_hook;
+
+  Lisp_Object f_Vminibuffer_exit_hook;
+
+  /* Function to call to read a buffer name.  */
+  Lisp_Object f_Vread_buffer_function;
+
+  /* Nonzero means completion ignores case.  */
+  int f_completion_ignore_case;
+
+  int f_read_buffer_completion_ignore_case;
+
+  /* List of regexps that should restrict possible completions.  */
+  Lisp_Object f_Vcompletion_regexp_list;
+
+  /* Nonzero means raise the minibuffer frame when the minibuffer
+     is entered.  */
+  int f_minibuffer_auto_raise;
+
+  /* Keymap for reading expressions.  */
+  Lisp_Object f_Vread_expression_map;
+
+  Lisp_Object f_Vminibuffer_completion_table;
+
+  Lisp_Object f_Vminibuffer_completion_predicate;
+
+  Lisp_Object f_Vminibuffer_completion_confirm;
+
+  Lisp_Object f_Vminibuffer_completing_file_name;
+
+  Lisp_Object f_Vdos_unsupported_char_glyph;
+
+  Lisp_Object f_Vstandard_output;
+
+  Lisp_Object f_Vfloat_output_format;
+
+  /* Maximum length of list to print in full; noninteger means
+     effectively infinity */
+  Lisp_Object f_Vprint_length;
+
+  /* Maximum depth of list to print in full; noninteger means
+     effectively infinity.  */
+  Lisp_Object f_Vprint_level;
+
+  /* Nonzero means print newlines in strings as \n.  */
+  int f_print_escape_newlines;
+
+  /* Nonzero means to print single-byte non-ascii characters in strings as
+     octal escapes.  */
+  int f_print_escape_nonascii;
+
+  /* Nonzero means to print multibyte characters in strings as hex escapes.  */
+  int f_print_escape_multibyte;
+
+  /* Nonzero means print (quote foo) forms as 'foo, etc.  */
+  int f_print_quoted;
+
+  /* Non-nil means print #: before uninterned symbols.  */
+  Lisp_Object f_Vprint_gensym;
+
+  /* Non-nil means print recursive structures using #n= and #n# syntax.  */
+  Lisp_Object f_Vprint_circle;
+
+  /* Non-nil means keep continuous number for #n= and #n# syntax
+     between several print functions.  */
+  Lisp_Object f_Vprint_continuous_numbering;
+
+  Lisp_Object f_Vprint_number_table;
+
+  /* A flag to control printing of `charset' text property.
+     The default value is Qdefault. */
+  Lisp_Object f_Vprint_charset_text_property;
+
+  /* Nonzero means delete a process right away if it exits.  */
+  int f_delete_exited_processes;
+
+  /* t means use pty, nil means use a pipe,
+     maybe other values to come.  */
+  Lisp_Object f_Vprocess_connection_type;
+
+  /* Non-nil means to delay reading process output to improve buffering.
+     A value of t means that delay is reset after each send, any other
+     non-nil value does not reset the delay.  A value of nil disables
+     adaptive read buffering completely.  */
+  Lisp_Object f_Vprocess_adaptive_read_buffering;
+
+  Lisp_Object f_Vsearch_spaces_regexp;
+
+  /* If non-nil, the match data will not be changed during call to
+     searching or matching functions.  This variable is for internal use
+     only.  */
+  Lisp_Object f_Vinhibit_changing_match_data;
+
+  int f_words_include_escapes;
+
+  int f_parse_sexp_lookup_properties;
+
+  /* Nonzero means `scan-sexps' treat all multibyte characters as symbol.  */
+  int f_multibyte_syntax_as_symbol;
+
+  /* Non-zero means an open parenthesis in column 0 is always considered
+     to be the start of a defun.  Zero means an open parenthesis in
+     column 0 has no special meaning.  */
+  int f_open_paren_in_column_0_is_defun_start;
+
+  int f_parse_sexp_ignore_comments;
+
+  /* Char-table of functions that find the next or previous word
+     boundary.  */
+  Lisp_Object f_Vfind_word_boundary_function_table;
+
+  /* If true, use "vs", otherwise use "ve" to make the cursor visible.  */
+  int f_visible_cursor;
+
+  /* Functions to call after suspending a tty. */
+  Lisp_Object f_Vsuspend_tty_functions;
+
+  /* Functions to call after resuming a tty. */
+  Lisp_Object f_Vresume_tty_functions;
+
+  /* Nonzero means no need to redraw the entire frame on resuming a
+     suspended Emacs.  This is useful on terminals with multiple
+     pages, where one page is used for Emacs and another for all
+     else. */
+  int f_no_redraw_on_reenter;
+
+  /* Provided for lisp packages.  */
+  int f_system_uses_terminfo;
+
+  /* Function to use to ring the bell.  */
+  Lisp_Object f_Vring_bell_function;
+
+  Lisp_Object f_Vdelete_terminal_functions;
+
+  Lisp_Object f_Vinhibit_point_motion_hooks;
+
+  Lisp_Object f_Vdefault_text_properties;
+
+  Lisp_Object f_Vchar_property_alias_alist;
+
+  Lisp_Object f_Vtext_property_default_nonsticky;
+
+  /* Limits controlling how much undo information to keep.  */
+  EMACS_INT f_undo_limit;
+
+  EMACS_INT f_undo_strong_limit;
+
+  Lisp_Object f_Vundo_outer_limit;
+
+  /* Function to call when undo_outer_limit is exceeded.  */
+  Lisp_Object f_Vundo_outer_limit_function;
+
+  /* Nonzero means do not record point in record_point.  */
+  int f_undo_inhibit_record_point;
+
+  /* Coding system for communicating with other Windows programs via the
+     clipboard.  */
+  Lisp_Object f_Vselection_coding_system;
+
+  /* Coding system for the next communicating with other Windows programs.  */
+  Lisp_Object f_Vnext_selection_coding_system;
+
+  /* Determine whether to make frame dimensions match the screen buffer,
+     or the current window size.  The former is desirable when running
+     over telnet, while the latter is more useful when working directly at
+     the console with a large scroll-back buffer.  */
+  int f_w32_use_full_screen_buffer;
+
+  /* The colormap for converting color names to RGB values */
+  Lisp_Object f_Vw32_color_map;
+
+  /* Non nil if alt key presses are passed on to Windows.  */
+  Lisp_Object f_Vw32_pass_alt_to_system;
+
+  /* Non nil if alt key is translated to meta_modifier, nil if it is translated
+     to alt_modifier.  */
+  Lisp_Object f_Vw32_alt_is_meta;
+
+  /* If non-zero, the windows virtual key code for an alternative quit key. */
+  int f_w32_quit_key;
+
+  /* Non nil if left window key events are passed on to Windows (this only
+     affects whether "tapping" the key opens the Start menu).  */
+  Lisp_Object f_Vw32_pass_lwindow_to_system;
+
+  /* Non nil if right window key events are passed on to Windows (this
+     only affects whether "tapping" the key opens the Start menu).  */
+  Lisp_Object f_Vw32_pass_rwindow_to_system;
+
+  /* Virtual key code used to generate "phantom" key presses in order
+     to stop system from acting on Windows key events.  */
+  Lisp_Object f_Vw32_phantom_key_code;
+
+  /* Modifier associated with the left "Windows" key, or nil to act as a
+     normal key.  */
+  Lisp_Object f_Vw32_lwindow_modifier;
+
+  /* Modifier associated with the right "Windows" key, or nil to act as a
+     normal key.  */
+  Lisp_Object f_Vw32_rwindow_modifier;
+
+  /* Modifier associated with the "Apps" key, or nil to act as a normal
+     key.  */
+  Lisp_Object f_Vw32_apps_modifier;
+
+  /* Value is nil if Num Lock acts as a function key.  */
+  Lisp_Object f_Vw32_enable_num_lock;
+
+  /* Value is nil if Caps Lock acts as a function key.  */
+  Lisp_Object f_Vw32_enable_caps_lock;
+
+  /* Modifier associated with Scroll Lock, or nil to act as a normal key.  */
+  Lisp_Object f_Vw32_scroll_lock_modifier;
+
+  /* Switch to control whether we inhibit requests for synthesized bold
+     and italic versions of fonts.  */
+  int f_w32_enable_synthesized_fonts;
+
+  /* Enable palette management. */
+  Lisp_Object f_Vw32_enable_palette;
+
+  /* Control how close left/right button down events must be to
+     be converted to a middle button down event. */
+  int f_w32_mouse_button_tolerance;
+
+  /* Minimum interval between mouse movement (and scroll bar drag)
+     events that are passed on to the event loop. */
+  int f_w32_mouse_move_interval;
+
+  /* Flag to indicate if XBUTTON events should be passed on to Windows.  */
+  int f_w32_pass_extra_mouse_buttons_to_system;
+
+  /* Flag to indicate if media keys should be passed on to Windows.  */
+  int f_w32_pass_multimedia_buttons_to_system;
+
+  /* Non nil if no window manager is in use.  */
+  Lisp_Object f_Vx_no_window_manager;
+
+  /* The background and shape of the mouse pointer, and shape when not
+     over text or in the modeline.  */
+  Lisp_Object f_Vx_pointer_shape;
+  Lisp_Object f_Vx_nontext_pointer_shape;
+  Lisp_Object f_Vx_mode_pointer_shape;
+
+  /* TODO: Mouse cursor customization.  */
+  Lisp_Object f_Vx_hourglass_pointer_shape;
+  Lisp_Object f_Vx_window_horizontal_drag_shape;
+
+  /* The shape when over mouse-sensitive text.  */
+  Lisp_Object f_Vx_sensitive_text_pointer_shape;
+
+  /* Color of chars displayed in cursor box.  */
+  Lisp_Object f_Vx_cursor_fore_pixel;
+
+  /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.  */
+  Lisp_Object f_Vx_pixel_size_width_font_regexp;
+
+  /* Alist of bdf fonts and the files that define them.  */
+  Lisp_Object f_Vw32_bdf_filename_alist;
+
+  /* A flag to control whether fonts are matched strictly or not.  */
+  int f_w32_strict_fontnames;
+
+  /* A flag to control whether we should only repaint if GetUpdateRect
+     indicates there is an update region.  */
+  int f_w32_strict_painting;
+
+  /* The ANSI codepage.  */
+  int f_w32_ansi_code_page;
+
+  /* Maximum size for tooltips; a cons (COLUMNS . ROWS).  */
+  Lisp_Object f_Vx_max_tooltip_size;
+
+  /* Associative list linking character set strings to Windows codepages. */
+  Lisp_Object f_Vw32_charset_info_alist;
+
+  /* Control whether spawnve quotes arguments as necessary to ensure
+     correct parsing by child process.  Because not all uses of spawnve
+     are careful about constructing argv arrays, we make this behavior
+     conditional (off by default). */
+  Lisp_Object f_Vw32_quote_process_args;
+
+  /* Control whether create_child causes the process' window to be
+     hidden.  The default is nil. */
+  Lisp_Object f_Vw32_start_process_show_window;
+
+  /* Control whether create_child causes the process to inherit Emacs'
+     console window, or be given a new one of its own.  The default is
+     nil, to allow multiple DOS programs to run on Win95.  Having separate
+     consoles also allows Emacs to cleanly terminate process groups.  */
+  Lisp_Object f_Vw32_start_process_share_console;
+
+  /* Control whether create_child cause the process to inherit Emacs'
+     error mode setting.  The default is t, to minimize the possibility of
+     subprocesses blocking when accessing unmounted drives.  */
+  Lisp_Object f_Vw32_start_process_inherit_error_mode;
+
+  /* Time to sleep before reading from a subprocess output pipe - this
+     avoids the inefficiency of frequently reading small amounts of data.
+     This is primarily necessary for handling DOS processes on Windows 95,
+     but is useful for W32 processes on both Windows 95 and NT as well.  */
+  int f_w32_pipe_read_delay;
+
+  /* Control conversion of upper case file names to lower case.
+     nil means no, t means yes. */
+  Lisp_Object f_Vw32_downcase_file_names;
+
+  /* Control whether stat() attempts to generate fake but hopefully
+     "accurate" inode values, by hashing the absolute truenames of files.
+     This should detect aliasing between long and short names, but still
+     allows the possibility of hash collisions.  */
+  Lisp_Object f_Vw32_generate_fake_inodes;
+
+  /* Control whether stat() attempts to determine file type and link count
+     exactly, at the expense of slower operation.  Since true hard links
+     are supported on NTFS volumes, this is only relevant on NT.  */
+  Lisp_Object f_Vw32_get_true_file_attributes;
+
+  /* Coding system for communicating with other programs via the
+     clipboard.  */
+
+  /* Coding system for the next communication with other programs.  */
+
+  /* Non-nil means Emacs uses toolkit scroll bars.  */
+  Lisp_Object f_Vx_toolkit_scroll_bars;
+
+  /* Non-zero means make use of UNDERLINE_POSITION font properties.  */
+  int f_x_use_underline_position_properties;
+
+  /* Non-zero means to draw the underline at the same place as the descent line.  */
+  int f_x_underline_at_descent_line;
+
+  int f_w32_use_visible_system_caret;
+
+  int f_w32_num_mouse_buttons;
+
+  Lisp_Object f_Vw32_swap_mouse_buttons;
+
+  /* Control whether x_raise_frame also sets input focus.  */
+  Lisp_Object f_Vw32_grab_focus_on_raise;
+
+  /* Control whether Caps Lock affects non-ascii characters.  */
+  Lisp_Object f_Vw32_capslock_is_shiftlock;
+
+  /* Control whether right-alt and left-ctrl should be recognized as AltGr.  */
+  Lisp_Object f_Vw32_recognize_altgr;
+
+  /* Non-nil means it is the window for C-M-v to scroll
+     when the mini-buffer is selected.  */
+  Lisp_Object f_Vminibuf_scroll_window;
+
+  /* Non-nil means this is the buffer whose window C-M-v should scroll.  */
+  Lisp_Object f_Vother_window_scroll_buffer;
+
+  /* Non-nil means it's function to call to display temp buffers.  */
+  Lisp_Object f_Vtemp_buffer_show_function;
+
+  /* Non-zero means line and page scrolling on tall lines (with images)
+     does partial scrolling by modifying window-vscroll.  */
+  int f_auto_window_vscroll_p;
+
+  /* Non-zero means to use mode-line-inactive face in all windows but the
+     selected-window and the minibuffer-scroll-window when the
+     minibuffer is active.  */
+  int f_mode_line_in_non_selected_windows;
+
+  /* If a window gets smaller than either of these, it is removed. */
+  EMACS_INT f_window_min_height;
+
+  EMACS_INT f_window_min_width;
+
+  /* Number of lines of continuity in scrolling by screenfuls.  */
+  EMACS_INT f_next_screen_context_lines;
+
+  Lisp_Object f_Vwindow_configuration_change_hook;
+
+  /* Non-nil means scroll commands try to put point
+     at the same screen height as previously.  */
+  Lisp_Object f_Vscroll_preserve_screen_position;
+
+  /* Non-nil means that text is inserted before window's markers.  */
+  Lisp_Object f_Vwindow_point_insertion_type;
+
+  /* If non-nil, then the `recenter' command with a nil argument
+     the entire frame to be redrawn; the special value `tty' causes the
+     frame to be redrawn only if it is a tty frame.  */
+  Lisp_Object f_Vrecenter_redisplay;
+
+  Lisp_Object f_Vwindow_scroll_functions;
+
+  Lisp_Object f_Vwindow_text_change_functions;
+
+  Lisp_Object f_Vredisplay_end_trigger_functions;
+
+  /* Functions called to fontify regions of text.  */
+  Lisp_Object f_Vfontification_functions;
+
+  /* Non-nil means automatically select any window when the mouse
+     cursor moves into it.  */
+  Lisp_Object f_Vmouse_autoselect_window;
+
+  Lisp_Object f_Vwrap_prefix;
+
+  Lisp_Object f_Vline_prefix;
+
+  /* Non-zero means draw tool bar buttons raised when the mouse moves
+     over them.  */
+  int f_auto_raise_tool_bar_buttons_p;
+
+  /* Non-zero means to reposition window if cursor line is only partially visible.  */
+  int f_make_cursor_line_fully_visible_p;
+
+  /* Margin below tool bar in pixels.  0 or nil means no margin.
+     If value is `internal-border-width' or `border-width',
+     the corresponding frame parameter is used.  */
+  Lisp_Object f_Vtool_bar_border;
+
+  /* Margin around tool bar buttons in pixels.  */
+  Lisp_Object f_Vtool_bar_button_margin;
+
+  /* Thickness of shadow to draw around tool bar buttons.  */
+  EMACS_INT f_tool_bar_button_relief;
+
+  /* Non-nil means automatically resize tool-bars so that all tool-bar
+     items are visible, and no blank lines remain.
+
+     If value is `grow-only', only make tool-bar bigger.  */
+  Lisp_Object f_Vauto_resize_tool_bars;
+
+  /* Type of tool bar.  Can be symbols image, text, both or both-hroiz.  */
+  Lisp_Object f_Vtool_bar_style;
+
+  /* Maximum number of characters a label can have to be shown.  */
+  EMACS_INT f_tool_bar_max_label_size;
+
+  /* Non-zero means draw block and hollow cursor as wide as the glyph
+     under it.  For example, if a block cursor is over a tab, it will be
+     drawn as wide as that tab on the display.  */
+  int f_x_stretch_cursor_p;
+
+  Lisp_Object f_Vinhibit_redisplay;
+
+  /* Non-zero means Lisp evaluation during redisplay is inhibited.  */
+  int f_inhibit_eval_during_redisplay;
+
+  /* Symbols used in text property values.  */
+  Lisp_Object f_Vdisplay_pixels_per_inch;
+
+  /* Non-nil means highlight trailing whitespace.  */
+  Lisp_Object f_Vshow_trailing_whitespace;
+
+  /* Non-nil means escape non-break space and hyphens.  */
+  Lisp_Object f_Vnobreak_char_display;
+
+  /* Non-nil means show the text cursor in void text areas
+     i.e. in blank areas after eol and eob.  This used to be
+     the default in 21.3.  */
+  Lisp_Object f_Vvoid_text_area_pointer;
+
+  /* Nonzero means truncate lines in all windows less wide than the
+     frame.  */
+  Lisp_Object f_Vtruncate_partial_width_windows;
+
+  /* A flag to control how to display unibyte 8-bit character.  */
+  int f_unibyte_display_via_language_environment;
+
+  /* Nonzero means we have more than one non-mini-buffer-only frame.
+     Not guaranteed to be accurate except while parsing
+     frame-title-format.  */
+  int f_multiple_frames;
+
+  Lisp_Object f_Vglobal_mode_string;
+
+  /* List of variables (symbols) which hold markers for overlay arrows.
+     The symbols on this list are examined during redisplay to determine
+     where to display overlay arrows.  */
+  Lisp_Object f_Voverlay_arrow_variable_list;
+
+  /* Marker for where to display an arrow on top of the buffer text.  */
+  Lisp_Object f_Voverlay_arrow_position;
+
+  /* String to display for the arrow.  Only used on terminal frames.  */
+  Lisp_Object f_Voverlay_arrow_string;
+
+  /* Like mode-line-format, but for the title bar on a visible frame.  */
+  Lisp_Object f_Vframe_title_format;
+
+  /* Like mode-line-format, but for the title bar on an iconified frame.  */
+  Lisp_Object f_Vicon_title_format;
+
+  /* List of functions to call when a window's size changes.  These
+     functions get one arg, a frame on which one or more windows' sizes
+     have changed.  */
+  Lisp_Object f_Vwindow_size_change_functions;
+
+  Lisp_Object f_Vmenu_bar_update_hook;
+
+  /* Nonzero means highlight the region even in nonselected windows.  */
+  int f_highlight_nonselected_windows;
+
+  /* If cursor motion alone moves point off frame, try scrolling this
+     many lines up or down if that will bring it back.  */
+  EMACS_INT f_emacs_scroll_step;
+
+  /* Nonzero means scroll just far enough to bring point back on the
+     screen, when appropriate.  */
+  EMACS_INT f_scroll_conservatively;
+
+  /* Recenter the window whenever point gets within this many lines of
+     the top or bottom of the window.  This value is translated into a
+     pixel value by multiplying it with FRAME_LINE_HEIGHT, which means
+     that there is really a fixed pixel height scroll margin.  */
+  EMACS_INT f_scroll_margin;
+
+  /* Zero means display the mode-line/header-line/menu-bar in the default face
+     (this slightly odd definition is for compatibility with previous versions
+     of emacs), non-zero means display them using their respective faces.
+
+     This variable is deprecated.  */
+  int f_mode_line_inverse_video;
+
+  /* Maximum buffer size for which to display line numbers.  */
+  Lisp_Object f_Vline_number_display_limit;
+
+  /* Line width to consider when repositioning for line number display.  */
+  EMACS_INT f_line_number_display_limit_width;
+
+  /* Number of lines to keep in the message log buffer.  t means
+     infinite.  nil means don't log at all.  */
+  Lisp_Object f_Vmessage_log_max;
+
+  int f_inhibit_menubar_update;
+
+  /* When evaluating expressions from menu bar items (enable conditions,
+     for instance), this is the frame they are being processed for.  */
+  Lisp_Object f_Vmenu_updating_frame;
+
+  /* Maximum height for resizing mini-windows.  Either a float
+     specifying a fraction of the available height, or an integer
+     specifying a number of lines.  */
+  Lisp_Object f_Vmax_mini_window_height;
+
+  /* Non-zero means messages should be displayed with truncated
+     lines instead of being continued.  */
+  int f_message_truncate_lines;
+
+  /* How to blink the default frame cursor off.  */
+  Lisp_Object f_Vblink_cursor_alist;
+
+  /* Variables to turn off display optimizations from Lisp.  */
+  int f_inhibit_try_window_id;
+  int f_inhibit_try_window_reusing;
+
+  int f_inhibit_try_cursor_movement;
+
+  /* Non-zero means automatically scroll windows horizontally to make
+     point visible.  */
+  int f_automatic_hscrolling_p;
+
+  /* How close to the margin can point get before the window is scrolled
+     horizontally.  */
+  EMACS_INT f_hscroll_margin;
+
+  /* How much to scroll horizontally when point is inside the above margin.  */
+  Lisp_Object f_Vhscroll_step;
+
+  /* The variable `resize-mini-windows'.  If nil, don't resize
+     mini-windows.  If t, always resize them to fit the text they
+     display.  If `grow-only', let mini-windows grow only until they
+     become empty.  */
+  Lisp_Object f_Vresize_mini_windows;
+
+  /* Space between overline and text. */
+  EMACS_INT f_overline_margin;
+
+  /* Require underline to be at least this many screen pixels below baseline
+     This to avoid underline "merging" with the base of letters at small
+     font sizes, particularly when x_use_underline_position_properties is on. */
+  EMACS_INT f_underline_minimum_offset;
+
+  /* Non-zero means don't free realized faces.  Bound while freeing
+     realized faces is dangerous because glyph matrices might still
+     reference them.  */
+  int f_inhibit_free_realized_faces;
+
+  /* Non-zero means we're allowed to display a hourglass pointer.  */
+  int f_display_hourglass_p;
+
+  /* Number of seconds to wait before displaying an hourglass cursor.  */
+  Lisp_Object f_Vhourglass_delay;
+
+  /* Char-table to control the display of glyphless characters.  */
+  Lisp_Object f_Vglyphless_char_display;
+
+  EMACS_INT f_debug_end_pos;
+
+  /* Default stipple pattern used on monochrome displays.  This stipple
+     pattern is used on monochrome displays instead of shades of gray
+     for a face background color.  See `set-face-stipple' for possible
+     values for this variable.  */
+  Lisp_Object f_Vface_default_stipple;
+
+  Lisp_Object f_Vscalable_fonts_allowed;
+
+  /* List of regular expressions that matches names of fonts to ignore. */
+  Lisp_Object f_Vface_ignored_fonts;
+
+  /* Alist of font name patterns vs the rescaling factor.  */
+  Lisp_Object f_Vface_font_rescale_alist;
+
+  /* Maximum number of fonts to consider in font_list.  If not an
+     integer > 0, DEFAULT_FONT_LIST_LIMIT is used instead.  */
+  Lisp_Object f_Vfont_list_limit;
+
+  /* Alist of global face definitions.  Each element is of the form
+     (FACE . LFACE) where FACE is a symbol naming a face and LFACE
+     is a Lisp vector of face attributes.  These faces are used
+     to initialize faces for new frames.  */
+  Lisp_Object f_Vface_new_frame_defaults;
+
+  /* Alist of face remappings.  Each element is of the form:
+     (FACE REPLACEMENT...) which causes display of the face FACE to use
+     REPLACEMENT... instead.  REPLACEMENT... is interpreted the same way
+     the value of a `face' text property is: it may be (1) A face name,
+     (2) A list of face names, (3) A property-list of face attribute/value
+     pairs, or (4) A list of face names intermixed with lists containing
+     face attribute/value pairs.
+
+     Multiple entries in REPLACEMENT... are merged together to form the final
+     result, with faces or attributes earlier in the list taking precedence
+     over those that are later.
+
+     Face-name remapping cycles are suppressed; recursive references use
+     the underlying face instead of the remapped face.  */
+  Lisp_Object f_Vface_remapping_alist;
+
+  /* An alist of defined terminal colors and their RGB values.  */
+  Lisp_Object f_Vtty_defined_color_alist;
+
+  /* LessTif/Motif version info.  */
+  Lisp_Object f_Vmotif_version_string;
+
+  /* GTK+ version info */
+  Lisp_Object f_Vgtk_version_string;
+
+  /* Non-zero means prompt with the old GTK file selection dialog.  */
+  int f_x_gtk_use_old_file_dialog;
+
+  /* If non-zero, by default show hidden files in the GTK file chooser.  */
+  int f_x_gtk_show_hidden_files;
+
+  /* If non-zero, don't show additional help text in the GTK file chooser.  */
+  int f_x_gtk_file_dialog_help_text;
+
+  /* If non-zero, don't collapse to tool bar when it is detached.  */
+  int f_x_gtk_whole_detached_tool_bar;
+
+  /* If non-zero, use Gtk+ tooltips.  */
+  int f_x_gtk_use_system_tooltips;
+
+  /* The background and shape of the mouse pointer, and shape when not
+     over text or in the modeline.  */
+
+  /* The shape when over mouse-sensitive text.  */
+
+  /* If non-nil, the pointer shape to indicate that windows can be
+     dragged horizontally.  */
+
+  /* Color of chars displayed in cursor box.  */
+
+  /* Non nil if no window manager is in use.  */
+
+  /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.  */
+
+  /* Maximum size for tooltips; a cons (COLUMNS . ROWS).  */
+
+  Lisp_Object f_Vx_lost_selection_functions;
+
+  Lisp_Object f_Vx_sent_selection_functions;
+
+  /* This is an alist whose CARs are selection-types (whose names are the same
+     as the names of X Atoms) and whose CDRs are the names of Lisp functions to
+     call to convert the given Emacs selection value to a string representing
+     the given selection type.  This is for Lisp-level extension of the emacs
+     selection handling.  */
+  Lisp_Object f_Vselection_converter_alist;
+
+  /* If the selection owner takes too long to reply to a selection request,
+     we give up on it.  This is in milliseconds (0 = no timeout.)  */
+  EMACS_INT f_x_selection_timeout;
+
+  int f_use_system_font;
+
+  Lisp_Object f_Vxft_settings;
+
+  /* The client session id for this session as a lisp object.  */
+  Lisp_Object f_Vx_session_id;
+
+  /* The id we had the previous session.  This is only available if we
+     have been started by the session manager with SMID_OPT.  */
+  Lisp_Object f_Vx_session_previous_id;
+
+  /* Non-nil means Emacs uses toolkit scroll bars.  */
+
+  /* Non-zero means make use of UNDERLINE_POSITION font properties.  */
+
+  /* Non-zero means to draw the underline at the same place as the descent line.  */
+
+  /* Non-zero means to not move point as a result of clicking on a
+     frame to focus it (when focus-follows-mouse is nil).  */
+  int f_x_mouse_click_focus_ignore_position;
+
+  /* The keysyms to use for the various modifiers.  */
+  Lisp_Object f_Vx_alt_keysym;
+  Lisp_Object f_Vx_hyper_keysym;
+  Lisp_Object f_Vx_meta_keysym;
+  Lisp_Object f_Vx_super_keysym;
+
+  Lisp_Object f_Vx_keysym_table;
+};
+
+extern struct emacs_globals globals;
+
+#define Vafter_change_functions \
+    globals.f_Vafter_change_functions
+#define Vafter_init_time \
+    globals.f_Vafter_init_time
+#define Vafter_insert_file_functions \
+    globals.f_Vafter_insert_file_functions
+#define Vafter_load_alist \
+    globals.f_Vafter_load_alist
+#define Valternate_fontname_alist \
+    globals.f_Valternate_fontname_alist
+#define Vauto_composition_function \
+    globals.f_Vauto_composition_function
+#define Vauto_composition_mode \
+    globals.f_Vauto_composition_mode
+#define Vauto_fill_chars \
+    globals.f_Vauto_fill_chars
+#define Vauto_resize_tool_bars \
+    globals.f_Vauto_resize_tool_bars
+#define Vauto_save_include_big_deletions \
+    globals.f_Vauto_save_include_big_deletions
+#define Vauto_save_list_file_name \
+    globals.f_Vauto_save_list_file_name
+#define Vauto_save_timeout \
+    globals.f_Vauto_save_timeout
+#define Vauto_save_visited_file_name \
+    globals.f_Vauto_save_visited_file_name
+#define Vbefore_change_functions \
+    globals.f_Vbefore_change_functions
+#define Vbefore_init_time \
+    globals.f_Vbefore_init_time
+#define Vblink_cursor_alist \
+    globals.f_Vblink_cursor_alist
+#define Vbuffer_access_fontified_property \
+    globals.f_Vbuffer_access_fontified_property
+#define Vbuffer_access_fontify_functions \
+    globals.f_Vbuffer_access_fontify_functions
+#define Vbuild_files \
+    globals.f_Vbuild_files
+#define Vbyte_boolean_vars \
+    globals.f_Vbyte_boolean_vars
+#define Vbyte_code_meter \
+    globals.f_Vbyte_code_meter
+#define Vbytecomp_version_regexp \
+    globals.f_Vbytecomp_version_regexp
+#define Vchange_major_mode_hook \
+    globals.f_Vchange_major_mode_hook
+#define Vchar_direction_table \
+    globals.f_Vchar_direction_table
+#define Vchar_property_alias_alist \
+    globals.f_Vchar_property_alias_alist
+#define Vchar_script_table \
+    globals.f_Vchar_script_table
+#define Vchar_width_table \
+    globals.f_Vchar_width_table
+#define Vcharset_list \
+    globals.f_Vcharset_list
+#define Vcharset_map_path \
+    globals.f_Vcharset_map_path
+#define Vcharset_revision_table \
+    globals.f_Vcharset_revision_table
+#define Vcode_conversion_map_vector \
+    globals.f_Vcode_conversion_map_vector
+#define Vcoding_category_list \
+    globals.f_Vcoding_category_list
+#define Vcoding_system_alist \
+    globals.f_Vcoding_system_alist
+#define Vcoding_system_for_read \
+    globals.f_Vcoding_system_for_read
+#define Vcoding_system_for_write \
+    globals.f_Vcoding_system_for_write
+#define Vcoding_system_list \
+    globals.f_Vcoding_system_list
+#define Vcombine_after_change_calls \
+    globals.f_Vcombine_after_change_calls
+#define Vcommand_debug_status \
+    globals.f_Vcommand_debug_status
+#define Vcommand_error_function \
+    globals.f_Vcommand_error_function
+#define Vcommand_history \
+    globals.f_Vcommand_history
+#define Vcommand_hook_internal \
+    globals.f_Vcommand_hook_internal
+#define Vcommand_line_args \
+    globals.f_Vcommand_line_args
+#define Vcompletion_ignored_extensions \
+    globals.f_Vcompletion_ignored_extensions
+#define Vcompletion_regexp_list \
+    globals.f_Vcompletion_regexp_list
+#define Vcompose_chars_after_function \
+    globals.f_Vcompose_chars_after_function
+#define Vcomposition_function_table \
+    globals.f_Vcomposition_function_table
+#define Vconfigure_info_directory \
+    globals.f_Vconfigure_info_directory
+#define Vcurrent_iso639_language \
+    globals.f_Vcurrent_iso639_language
+#define Vcurrent_load_list \
+    globals.f_Vcurrent_load_list
+#define Vcurrent_prefix_arg \
+    globals.f_Vcurrent_prefix_arg
+#define Vdata_directory \
+    globals.f_Vdata_directory
+#define Vdbus_debug \
+    globals.f_Vdbus_debug
+#define Vdbus_registered_buses \
+    globals.f_Vdbus_registered_buses
+#define Vdbus_registered_objects_table \
+    globals.f_Vdbus_registered_objects_table
+#define Vdeactivate_mark \
+    globals.f_Vdeactivate_mark
+#define Vdebug_ignored_errors \
+    globals.f_Vdebug_ignored_errors
+#define Vdebug_on_error \
+    globals.f_Vdebug_on_error
+#define Vdebug_on_signal \
+    globals.f_Vdebug_on_signal
+#define Vdebugger \
+    globals.f_Vdebugger
+#define Vdefault_file_name_coding_system \
+    globals.f_Vdefault_file_name_coding_system
+#define Vdefault_frame_alist \
+    globals.f_Vdefault_frame_alist
+#define Vdefault_frame_scroll_bars \
+    globals.f_Vdefault_frame_scroll_bars
+#define Vdefault_process_coding_system \
+    globals.f_Vdefault_process_coding_system
+#define Vdefault_text_properties \
+    globals.f_Vdefault_text_properties
+#define Vdeferred_action_function \
+    globals.f_Vdeferred_action_function
+#define Vdeferred_action_list \
+    globals.f_Vdeferred_action_list
+#define Vdefine_key_rebound_commands \
+    globals.f_Vdefine_key_rebound_commands
+#define Vdelete_frame_functions \
+    globals.f_Vdelete_frame_functions
+#define Vdelete_terminal_functions \
+    globals.f_Vdelete_terminal_functions
+#define Vdisable_point_adjustment \
+    globals.f_Vdisable_point_adjustment
+#define Vdisplay_pixels_per_inch \
+    globals.f_Vdisplay_pixels_per_inch
+#define Vdoc_directory \
+    globals.f_Vdoc_directory
+#define Vdoc_file_name \
+    globals.f_Vdoc_file_name
+#define Vdos_display_scancodes \
+    globals.f_Vdos_display_scancodes
+#define Vdos_unsupported_char_glyph \
+    globals.f_Vdos_unsupported_char_glyph
+#define Vdos_version \
+    globals.f_Vdos_version
+#define Vdos_windows_version \
+    globals.f_Vdos_windows_version
+#define Vdouble_click_time \
+    globals.f_Vdouble_click_time
+#define Vdynamic_library_alist \
+    globals.f_Vdynamic_library_alist
+#define Vecho_keystrokes \
+    globals.f_Vecho_keystrokes
+#define Vemacs_copyright \
+    globals.f_Vemacs_copyright
+#define Vemacs_version \
+    globals.f_Vemacs_version
+#define Vemulation_mode_map_alists \
+    globals.f_Vemulation_mode_map_alists
+#define Venable_character_translation \
+    globals.f_Venable_character_translation
+#define Venable_disabled_menus_and_buttons \
+    globals.f_Venable_disabled_menus_and_buttons
+#define Veval_buffer_list \
+    globals.f_Veval_buffer_list
+#define Vexec_directory \
+    globals.f_Vexec_directory
+#define Vexec_path \
+    globals.f_Vexec_path
+#define Vexec_suffixes \
+    globals.f_Vexec_suffixes
+#define Vexecuting_kbd_macro \
+    globals.f_Vexecuting_kbd_macro
+#define Vface_default_stipple \
+    globals.f_Vface_default_stipple
+#define Vface_font_rescale_alist \
+    globals.f_Vface_font_rescale_alist
+#define Vface_ignored_fonts \
+    globals.f_Vface_ignored_fonts
+#define Vface_new_frame_defaults \
+    globals.f_Vface_new_frame_defaults
+#define Vface_remapping_alist \
+    globals.f_Vface_remapping_alist
+#define Vfeatures \
+    globals.f_Vfeatures
+#define Vfile_coding_system_alist \
+    globals.f_Vfile_coding_system_alist
+#define Vfile_name_coding_system \
+    globals.f_Vfile_name_coding_system
+#define Vfile_name_handler_alist \
+    globals.f_Vfile_name_handler_alist
+#define Vfind_word_boundary_function_table \
+    globals.f_Vfind_word_boundary_function_table
+#define Vfirst_change_hook \
+    globals.f_Vfirst_change_hook
+#define Vfloat_output_format \
+    globals.f_Vfloat_output_format
+#define Vfont_ccl_encoder_alist \
+    globals.f_Vfont_ccl_encoder_alist
+#define Vfont_encoding_alist \
+    globals.f_Vfont_encoding_alist
+#define Vfont_encoding_charset_alist \
+    globals.f_Vfont_encoding_charset_alist
+#define Vfont_list_limit \
+    globals.f_Vfont_list_limit
+#define Vfont_log \
+    globals.f_Vfont_log
+#define Vfont_slant_table \
+    globals.f_Vfont_slant_table
+#define Vfont_weight_table \
+    globals.f_Vfont_weight_table
+#define Vfont_width_table \
+    globals.f_Vfont_width_table
+#define Vfontification_functions \
+    globals.f_Vfontification_functions
+#define Vfontset_alias_alist \
+    globals.f_Vfontset_alias_alist
+#define Vframe_alpha_lower_limit \
+    globals.f_Vframe_alpha_lower_limit
+#define Vframe_title_format \
+    globals.f_Vframe_title_format
+#define Vfringe_bitmaps \
+    globals.f_Vfringe_bitmaps
+#define Vfunction_key_map \
+    globals.f_Vfunction_key_map
+#define Vgc_cons_percentage \
+    globals.f_Vgc_cons_percentage
+#define Vgc_elapsed \
+    globals.f_Vgc_elapsed
+#define Vglobal_disable_point_adjustment \
+    globals.f_Vglobal_disable_point_adjustment
+#define Vglobal_mode_string \
+    globals.f_Vglobal_mode_string
+#define Vglyph_table \
+    globals.f_Vglyph_table
+#define Vglyphless_char_display \
+    globals.f_Vglyphless_char_display
+#define Vgtk_version_string \
+    globals.f_Vgtk_version_string
+#define Vhelp_char \
+    globals.f_Vhelp_char
+#define Vhelp_event_list \
+    globals.f_Vhelp_event_list
+#define Vhelp_form \
+    globals.f_Vhelp_form
+#define Vhistory_add_new_input \
+    globals.f_Vhistory_add_new_input
+#define Vhistory_length \
+    globals.f_Vhistory_length
+#define Vhourglass_delay \
+    globals.f_Vhourglass_delay
+#define Vhscroll_step \
+    globals.f_Vhscroll_step
+#define Vicon_title_format \
+    globals.f_Vicon_title_format
+#define Vignore_relative_composition \
+    globals.f_Vignore_relative_composition
+#define Vimage_cache_eviction_delay \
+    globals.f_Vimage_cache_eviction_delay
+#define Vimage_types \
+    globals.f_Vimage_types
+#define Vimagemagick_render_type \
+    globals.f_Vimagemagick_render_type
+#define Vinhibit_changing_match_data \
+    globals.f_Vinhibit_changing_match_data
+#define Vinhibit_field_text_motion \
+    globals.f_Vinhibit_field_text_motion
+#define Vinhibit_file_name_handlers \
+    globals.f_Vinhibit_file_name_handlers
+#define Vinhibit_file_name_operation \
+    globals.f_Vinhibit_file_name_operation
+#define Vinhibit_point_motion_hooks \
+    globals.f_Vinhibit_point_motion_hooks
+#define Vinhibit_quit \
+    globals.f_Vinhibit_quit
+#define Vinhibit_read_only \
+    globals.f_Vinhibit_read_only
+#define Vinhibit_redisplay \
+    globals.f_Vinhibit_redisplay
+#define Vinitial_environment \
+    globals.f_Vinitial_environment
+#define Vinitial_window_system \
+    globals.f_Vinitial_window_system
+#define Vinput_method_function \
+    globals.f_Vinput_method_function
+#define Vinput_method_previous_message \
+    globals.f_Vinput_method_previous_message
+#define Vinstallation_directory \
+    globals.f_Vinstallation_directory
+#define Vinvocation_directory \
+    globals.f_Vinvocation_directory
+#define Vinvocation_name \
+    globals.f_Vinvocation_name
+#define Vkey_translation_map \
+    globals.f_Vkey_translation_map
+#define Vkill_buffer_query_functions \
+    globals.f_Vkill_buffer_query_functions
+#define Vkill_emacs_hook \
+    globals.f_Vkill_emacs_hook
+#define Vlast_code_conversion_error \
+    globals.f_Vlast_code_conversion_error
+#define Vlast_coding_system_used \
+    globals.f_Vlast_coding_system_used
+#define Vlast_event_frame \
+    globals.f_Vlast_event_frame
+#define Vlatin_extra_code_table \
+    globals.f_Vlatin_extra_code_table
+#define Vline_number_display_limit \
+    globals.f_Vline_number_display_limit
+#define Vline_prefix \
+    globals.f_Vline_prefix
+#define Vload_file_name \
+    globals.f_Vload_file_name
+#define Vload_file_rep_suffixes \
+    globals.f_Vload_file_rep_suffixes
+#define Vload_history \
+    globals.f_Vload_history
+#define Vload_path \
+    globals.f_Vload_path
+#define Vload_read_function \
+    globals.f_Vload_read_function
+#define Vload_source_file_function \
+    globals.f_Vload_source_file_function
+#define Vload_suffixes \
+    globals.f_Vload_suffixes
+#define Vlocale_coding_system \
+    globals.f_Vlocale_coding_system
+#define Vlucid_menu_bar_dirty_flag \
+    globals.f_Vlucid_menu_bar_dirty_flag
+#define Vmacro_declaration_function \
+    globals.f_Vmacro_declaration_function
+#define Vmake_pointer_invisible \
+    globals.f_Vmake_pointer_invisible
+#define Vmark_even_if_inactive \
+    globals.f_Vmark_even_if_inactive
+#define Vmax_image_size \
+    globals.f_Vmax_image_size
+#define Vmax_mini_window_height \
+    globals.f_Vmax_mini_window_height
+#define Vmemory_full \
+    globals.f_Vmemory_full
+#define Vmemory_signal_data \
+    globals.f_Vmemory_signal_data
+#define Vmenu_bar_final_items \
+    globals.f_Vmenu_bar_final_items
+#define Vmenu_bar_mode \
+    globals.f_Vmenu_bar_mode
+#define Vmenu_bar_update_hook \
+    globals.f_Vmenu_bar_update_hook
+#define Vmenu_updating_frame \
+    globals.f_Vmenu_updating_frame
+#define Vmessage_log_max \
+    globals.f_Vmessage_log_max
+#define Vminibuf_scroll_window \
+    globals.f_Vminibuf_scroll_window
+#define Vminibuffer_completing_file_name \
+    globals.f_Vminibuffer_completing_file_name
+#define Vminibuffer_completion_confirm \
+    globals.f_Vminibuffer_completion_confirm
+#define Vminibuffer_completion_predicate \
+    globals.f_Vminibuffer_completion_predicate
+#define Vminibuffer_completion_table \
+    globals.f_Vminibuffer_completion_table
+#define Vminibuffer_exit_hook \
+    globals.f_Vminibuffer_exit_hook
+#define Vminibuffer_help_form \
+    globals.f_Vminibuffer_help_form
+#define Vminibuffer_history_position \
+    globals.f_Vminibuffer_history_position
+#define Vminibuffer_history_variable \
+    globals.f_Vminibuffer_history_variable
+#define Vminibuffer_local_completion_map \
+    globals.f_Vminibuffer_local_completion_map
+#define Vminibuffer_local_filename_completion_map \
+    globals.f_Vminibuffer_local_filename_completion_map
+#define Vminibuffer_local_filename_must_match_map \
+    globals.f_Vminibuffer_local_filename_must_match_map
+#define Vminibuffer_local_map \
+    globals.f_Vminibuffer_local_map
+#define Vminibuffer_local_must_match_map \
+    globals.f_Vminibuffer_local_must_match_map
+#define Vminibuffer_local_ns_map \
+    globals.f_Vminibuffer_local_ns_map
+#define Vminibuffer_message_timeout \
+    globals.f_Vminibuffer_message_timeout
+#define Vminibuffer_prompt_properties \
+    globals.f_Vminibuffer_prompt_properties
+#define Vminibuffer_setup_hook \
+    globals.f_Vminibuffer_setup_hook
+#define Vminor_mode_map_alist \
+    globals.f_Vminor_mode_map_alist
+#define Vminor_mode_overriding_map_alist \
+    globals.f_Vminor_mode_overriding_map_alist
+#define Vmost_negative_fixnum \
+    globals.f_Vmost_negative_fixnum
+#define Vmost_positive_fixnum \
+    globals.f_Vmost_positive_fixnum
+#define Vmotif_version_string \
+    globals.f_Vmotif_version_string
+#define Vmouse_autoselect_window \
+    globals.f_Vmouse_autoselect_window
+#define Vmouse_highlight \
+    globals.f_Vmouse_highlight
+#define Vmouse_leave_buffer_hook \
+    globals.f_Vmouse_leave_buffer_hook
+#define Vmouse_position_function \
+    globals.f_Vmouse_position_function
+#define Vnetwork_coding_system_alist \
+    globals.f_Vnetwork_coding_system_alist
+#define Vnext_selection_coding_system \
+    globals.f_Vnext_selection_coding_system
+#define Vnobreak_char_display \
+    globals.f_Vnobreak_char_display
+#define Vobarray \
+    globals.f_Vobarray
+#define Vold_style_backquotes \
+    globals.f_Vold_style_backquotes
+#define Voperating_system_release \
+    globals.f_Voperating_system_release
+#define Votf_script_alist \
+    globals.f_Votf_script_alist
+#define Vother_window_scroll_buffer \
+    globals.f_Vother_window_scroll_buffer
+#define Voverflow_newline_into_fringe \
+    globals.f_Voverflow_newline_into_fringe
+#define Voverlay_arrow_position \
+    globals.f_Voverlay_arrow_position
+#define Voverlay_arrow_string \
+    globals.f_Voverlay_arrow_string
+#define Voverlay_arrow_variable_list \
+    globals.f_Voverlay_arrow_variable_list
+#define Voverriding_local_map \
+    globals.f_Voverriding_local_map
+#define Voverriding_local_map_menu_flag \
+    globals.f_Voverriding_local_map_menu_flag
+#define Vpath_separator \
+    globals.f_Vpath_separator
+#define Vpost_command_hook \
+    globals.f_Vpost_command_hook
+#define Vpost_gc_hook \
+    globals.f_Vpost_gc_hook
+#define Vpost_self_insert_hook \
+    globals.f_Vpost_self_insert_hook
+#define Vpre_command_hook \
+    globals.f_Vpre_command_hook
+#define Vprefix_help_command \
+    globals.f_Vprefix_help_command
+#define Vpreloaded_file_list \
+    globals.f_Vpreloaded_file_list
+#define Vprevious_system_messages_locale \
+    globals.f_Vprevious_system_messages_locale
+#define Vprevious_system_time_locale \
+    globals.f_Vprevious_system_time_locale
+#define Vprint_charset_text_property \
+    globals.f_Vprint_charset_text_property
+#define Vprint_circle \
+    globals.f_Vprint_circle
+#define Vprint_continuous_numbering \
+    globals.f_Vprint_continuous_numbering
+#define Vprint_gensym \
+    globals.f_Vprint_gensym
+#define Vprint_length \
+    globals.f_Vprint_length
+#define Vprint_level \
+    globals.f_Vprint_level
+#define Vprint_number_table \
+    globals.f_Vprint_number_table
+#define Vprintable_chars \
+    globals.f_Vprintable_chars
+#define Vprocess_adaptive_read_buffering \
+    globals.f_Vprocess_adaptive_read_buffering
+#define Vprocess_coding_system_alist \
+    globals.f_Vprocess_coding_system_alist
+#define Vprocess_connection_type \
+    globals.f_Vprocess_connection_type
+#define Vprocess_environment \
+    globals.f_Vprocess_environment
+#define Vpurify_flag \
+    globals.f_Vpurify_flag
+#define Vquit_flag \
+    globals.f_Vquit_flag
+#define Vread_buffer_function \
+    globals.f_Vread_buffer_function
+#define Vread_circle \
+    globals.f_Vread_circle
+#define Vread_expression_map \
+    globals.f_Vread_expression_map
+#define Vread_symbol_positions_list \
+    globals.f_Vread_symbol_positions_list
+#define Vread_with_symbol_positions \
+    globals.f_Vread_with_symbol_positions
+#define Vrecenter_redisplay \
+    globals.f_Vrecenter_redisplay
+#define Vredisplay_end_trigger_functions \
+    globals.f_Vredisplay_end_trigger_functions
+#define Vredisplay_preemption_period \
+    globals.f_Vredisplay_preemption_period
+#define Vresize_mini_windows \
+    globals.f_Vresize_mini_windows
+#define Vresume_tty_functions \
+    globals.f_Vresume_tty_functions
+#define Vring_bell_function \
+    globals.f_Vring_bell_function
+#define Vsaved_region_selection \
+    globals.f_Vsaved_region_selection
+#define Vscalable_fonts_allowed \
+    globals.f_Vscalable_fonts_allowed
+#define Vscript_representative_chars \
+    globals.f_Vscript_representative_chars
+#define Vscroll_preserve_screen_position \
+    globals.f_Vscroll_preserve_screen_position
+#define Vsearch_spaces_regexp \
+    globals.f_Vsearch_spaces_regexp
+#define Vselect_active_regions \
+    globals.f_Vselect_active_regions
+#define Vselect_safe_coding_system_function \
+    globals.f_Vselect_safe_coding_system_function
+#define Vselection_coding_system \
+    globals.f_Vselection_coding_system
+#define Vselection_converter_alist \
+    globals.f_Vselection_converter_alist
+#define Vset_auto_coding_function \
+    globals.f_Vset_auto_coding_function
+#define Vshared_game_score_directory \
+    globals.f_Vshared_game_score_directory
+#define Vshell_file_name \
+    globals.f_Vshell_file_name
+#define Vshow_help_function \
+    globals.f_Vshow_help_function
+#define Vshow_trailing_whitespace \
+    globals.f_Vshow_trailing_whitespace
+#define Vsignal_hook_function \
+    globals.f_Vsignal_hook_function
+#define Vsource_directory \
+    globals.f_Vsource_directory
+#define Vspecial_event_map \
+    globals.f_Vspecial_event_map
+#define Vstack_trace_on_error \
+    globals.f_Vstack_trace_on_error
+#define Vstandard_display_table \
+    globals.f_Vstandard_display_table
+#define Vstandard_input \
+    globals.f_Vstandard_input
+#define Vstandard_output \
+    globals.f_Vstandard_output
+#define Vstandard_translation_table_for_decode \
+    globals.f_Vstandard_translation_table_for_decode
+#define Vstandard_translation_table_for_encode \
+    globals.f_Vstandard_translation_table_for_encode
+#define Vsuggest_key_bindings \
+    globals.f_Vsuggest_key_bindings
+#define Vsuspend_tty_functions \
+    globals.f_Vsuspend_tty_functions
+#define Vsystem_configuration \
+    globals.f_Vsystem_configuration
+#define Vsystem_configuration_options \
+    globals.f_Vsystem_configuration_options
+#define Vsystem_messages_locale \
+    globals.f_Vsystem_messages_locale
+#define Vsystem_name \
+    globals.f_Vsystem_name
+#define Vsystem_time_locale \
+    globals.f_Vsystem_time_locale
+#define Vsystem_type \
+    globals.f_Vsystem_type
+#define Vtemp_buffer_show_function \
+    globals.f_Vtemp_buffer_show_function
+#define Vtemporary_file_directory \
+    globals.f_Vtemporary_file_directory
+#define Vterminal_frame \
+    globals.f_Vterminal_frame
+#define Vtext_property_default_nonsticky \
+    globals.f_Vtext_property_default_nonsticky
+#define Vthis_command \
+    globals.f_Vthis_command
+#define Vthis_command_keys_shift_translated \
+    globals.f_Vthis_command_keys_shift_translated
+#define Vthis_original_command \
+    globals.f_Vthis_original_command
+#define Vthrow_on_input \
+    globals.f_Vthrow_on_input
+#define Vtimer_idle_list \
+    globals.f_Vtimer_idle_list
+#define Vtimer_list \
+    globals.f_Vtimer_list
+#define Vtool_bar_border \
+    globals.f_Vtool_bar_border
+#define Vtool_bar_button_margin \
+    globals.f_Vtool_bar_button_margin
+#define Vtool_bar_mode \
+    globals.f_Vtool_bar_mode
+#define Vtool_bar_separator_image_expression \
+    globals.f_Vtool_bar_separator_image_expression
+#define Vtool_bar_style \
+    globals.f_Vtool_bar_style
+#define Vtop_level \
+    globals.f_Vtop_level
+#define Vtransient_mark_mode \
+    globals.f_Vtransient_mark_mode
+#define Vtranslation_hash_table_vector \
+    globals.f_Vtranslation_hash_table_vector
+#define Vtranslation_table_for_input \
+    globals.f_Vtranslation_table_for_input
+#define Vtranslation_table_vector \
+    globals.f_Vtranslation_table_vector
+#define Vtruncate_partial_width_windows \
+    globals.f_Vtruncate_partial_width_windows
+#define Vtty_defined_color_alist \
+    globals.f_Vtty_defined_color_alist
+#define Vtty_erase_char \
+    globals.f_Vtty_erase_char
+#define Vundo_outer_limit \
+    globals.f_Vundo_outer_limit
+#define Vundo_outer_limit_function \
+    globals.f_Vundo_outer_limit_function
+#define Vunicode_category_table \
+    globals.f_Vunicode_category_table
+#define Vunread_command_events \
+    globals.f_Vunread_command_events
+#define Vunread_input_method_events \
+    globals.f_Vunread_input_method_events
+#define Vunread_post_input_method_events \
+    globals.f_Vunread_post_input_method_events
+#define Vuse_default_ascent \
+    globals.f_Vuse_default_ascent
+#define Vuser_full_name \
+    globals.f_Vuser_full_name
+#define Vuser_init_file \
+    globals.f_Vuser_init_file
+#define Vuser_login_name \
+    globals.f_Vuser_login_name
+#define Vuser_real_login_name \
+    globals.f_Vuser_real_login_name
+#define Vvalues \
+    globals.f_Vvalues
+#define Vvertical_centering_font_regexp \
+    globals.f_Vvertical_centering_font_regexp
+#define Vvoid_text_area_pointer \
+    globals.f_Vvoid_text_area_pointer
+#define Vw32_alt_is_meta \
+    globals.f_Vw32_alt_is_meta
+#define Vw32_apps_modifier \
+    globals.f_Vw32_apps_modifier
+#define Vw32_bdf_filename_alist \
+    globals.f_Vw32_bdf_filename_alist
+#define Vw32_capslock_is_shiftlock \
+    globals.f_Vw32_capslock_is_shiftlock
+#define Vw32_charset_info_alist \
+    globals.f_Vw32_charset_info_alist
+#define Vw32_color_map \
+    globals.f_Vw32_color_map
+#define Vw32_downcase_file_names \
+    globals.f_Vw32_downcase_file_names
+#define Vw32_enable_caps_lock \
+    globals.f_Vw32_enable_caps_lock
+#define Vw32_enable_num_lock \
+    globals.f_Vw32_enable_num_lock
+#define Vw32_enable_palette \
+    globals.f_Vw32_enable_palette
+#define Vw32_generate_fake_inodes \
+    globals.f_Vw32_generate_fake_inodes
+#define Vw32_get_true_file_attributes \
+    globals.f_Vw32_get_true_file_attributes
+#define Vw32_grab_focus_on_raise \
+    globals.f_Vw32_grab_focus_on_raise
+#define Vw32_lwindow_modifier \
+    globals.f_Vw32_lwindow_modifier
+#define Vw32_pass_alt_to_system \
+    globals.f_Vw32_pass_alt_to_system
+#define Vw32_pass_lwindow_to_system \
+    globals.f_Vw32_pass_lwindow_to_system
+#define Vw32_pass_rwindow_to_system \
+    globals.f_Vw32_pass_rwindow_to_system
+#define Vw32_phantom_key_code \
+    globals.f_Vw32_phantom_key_code
+#define Vw32_quote_process_args \
+    globals.f_Vw32_quote_process_args
+#define Vw32_recognize_altgr \
+    globals.f_Vw32_recognize_altgr
+#define Vw32_rwindow_modifier \
+    globals.f_Vw32_rwindow_modifier
+#define Vw32_scroll_lock_modifier \
+    globals.f_Vw32_scroll_lock_modifier
+#define Vw32_start_process_inherit_error_mode \
+    globals.f_Vw32_start_process_inherit_error_mode
+#define Vw32_start_process_share_console \
+    globals.f_Vw32_start_process_share_console
+#define Vw32_start_process_show_window \
+    globals.f_Vw32_start_process_show_window
+#define Vw32_swap_mouse_buttons \
+    globals.f_Vw32_swap_mouse_buttons
+#define Vwhere_is_preferred_modifier \
+    globals.f_Vwhere_is_preferred_modifier
+#define Vwindow_configuration_change_hook \
+    globals.f_Vwindow_configuration_change_hook
+#define Vwindow_point_insertion_type \
+    globals.f_Vwindow_point_insertion_type
+#define Vwindow_scroll_functions \
+    globals.f_Vwindow_scroll_functions
+#define Vwindow_size_change_functions \
+    globals.f_Vwindow_size_change_functions
+#define Vwindow_system_version \
+    globals.f_Vwindow_system_version
+#define Vwindow_text_change_functions \
+    globals.f_Vwindow_text_change_functions
+#define Vword_combining_categories \
+    globals.f_Vword_combining_categories
+#define Vword_separating_categories \
+    globals.f_Vword_separating_categories
+#define Vwrap_prefix \
+    globals.f_Vwrap_prefix
+#define Vwrite_region_annotate_functions \
+    globals.f_Vwrite_region_annotate_functions
+#define Vwrite_region_annotations_so_far \
+    globals.f_Vwrite_region_annotations_so_far
+#define Vwrite_region_post_annotation_function \
+    globals.f_Vwrite_region_post_annotation_function
+#define Vx_alt_keysym \
+    globals.f_Vx_alt_keysym
+#define Vx_bitmap_file_path \
+    globals.f_Vx_bitmap_file_path
+#define Vx_cursor_fore_pixel \
+    globals.f_Vx_cursor_fore_pixel
+#define Vx_hourglass_pointer_shape \
+    globals.f_Vx_hourglass_pointer_shape
+#define Vx_hyper_keysym \
+    globals.f_Vx_hyper_keysym
+#define Vx_keysym_table \
+    globals.f_Vx_keysym_table
+#define Vx_lost_selection_functions \
+    globals.f_Vx_lost_selection_functions
+#define Vx_max_tooltip_size \
+    globals.f_Vx_max_tooltip_size
+#define Vx_meta_keysym \
+    globals.f_Vx_meta_keysym
+#define Vx_mode_pointer_shape \
+    globals.f_Vx_mode_pointer_shape
+#define Vx_no_window_manager \
+    globals.f_Vx_no_window_manager
+#define Vx_nontext_pointer_shape \
+    globals.f_Vx_nontext_pointer_shape
+#define Vx_pixel_size_width_font_regexp \
+    globals.f_Vx_pixel_size_width_font_regexp
+#define Vx_pointer_shape \
+    globals.f_Vx_pointer_shape
+#define Vx_resource_class \
+    globals.f_Vx_resource_class
+#define Vx_resource_name \
+    globals.f_Vx_resource_name
+#define Vx_sensitive_text_pointer_shape \
+    globals.f_Vx_sensitive_text_pointer_shape
+#define Vx_sent_selection_functions \
+    globals.f_Vx_sent_selection_functions
+#define Vx_session_id \
+    globals.f_Vx_session_id
+#define Vx_session_previous_id \
+    globals.f_Vx_session_previous_id
+#define Vx_super_keysym \
+    globals.f_Vx_super_keysym
+#define Vx_toolkit_scroll_bars \
+    globals.f_Vx_toolkit_scroll_bars
+#define Vx_window_horizontal_drag_shape \
+    globals.f_Vx_window_horizontal_drag_shape
+#define Vxft_settings \
+    globals.f_Vxft_settings
+#define auto_raise_tool_bar_buttons_p \
+    globals.f_auto_raise_tool_bar_buttons_p
+#define auto_save_interval \
+    globals.f_auto_save_interval
+#define auto_window_vscroll_p \
+    globals.f_auto_window_vscroll_p
+#define automatic_hscrolling_p \
+    globals.f_automatic_hscrolling_p
+#define baud_rate \
+    globals.f_baud_rate
+#define byte_debug_flag \
+    globals.f_byte_debug_flag
+#define byte_metering_on \
+    globals.f_byte_metering_on
+#define cannot_suspend \
+    globals.f_cannot_suspend
+#define check_markers_debug_flag \
+    globals.f_check_markers_debug_flag
+#define coding_system_require_warning \
+    globals.f_coding_system_require_warning
+#define completion_ignore_case \
+    globals.f_completion_ignore_case
+#define cons_cells_consed \
+    globals.f_cons_cells_consed
+#define cross_disabled_images \
+    globals.f_cross_disabled_images
+#define cursor_in_echo_area \
+    globals.f_cursor_in_echo_area
+#define debug_end_pos \
+    globals.f_debug_end_pos
+#define debug_on_next_call \
+    globals.f_debug_on_next_call
+#define debug_on_quit \
+    globals.f_debug_on_quit
+#define debugger_may_continue \
+    globals.f_debugger_may_continue
+#define delete_by_moving_to_trash \
+    globals.f_delete_by_moving_to_trash
+#define delete_exited_processes \
+    globals.f_delete_exited_processes
+#define display_hourglass_p \
+    globals.f_display_hourglass_p
+#define do_mouse_tracking \
+    globals.f_do_mouse_tracking
+#define dos_codepage \
+    globals.f_dos_codepage
+#define dos_country_code \
+    globals.f_dos_country_code
+#define dos_decimal_point \
+    globals.f_dos_decimal_point
+#define dos_hyper_key \
+    globals.f_dos_hyper_key
+#define dos_keyboard_layout \
+    globals.f_dos_keyboard_layout
+#define dos_keypad_mode \
+    globals.f_dos_keypad_mode
+#define dos_super_key \
+    globals.f_dos_super_key
+#define dos_timezone_offset \
+    globals.f_dos_timezone_offset
+#define double_click_fuzz \
+    globals.f_double_click_fuzz
+#define emacs_scroll_step \
+    globals.f_emacs_scroll_step
+#define enable_recursive_minibuffers \
+    globals.f_enable_recursive_minibuffers
+#define eol_mnemonic_dos \
+    globals.f_eol_mnemonic_dos
+#define eol_mnemonic_mac \
+    globals.f_eol_mnemonic_mac
+#define eol_mnemonic_undecided \
+    globals.f_eol_mnemonic_undecided
+#define eol_mnemonic_unix \
+    globals.f_eol_mnemonic_unix
+#define executing_kbd_macro_index \
+    globals.f_executing_kbd_macro_index
+#define extra_keyboard_modifiers \
+    globals.f_extra_keyboard_modifiers
+#define floats_consed \
+    globals.f_floats_consed
+#define focus_follows_mouse \
+    globals.f_focus_follows_mouse
+#define force_load_messages \
+    globals.f_force_load_messages
+#define garbage_collection_messages \
+    globals.f_garbage_collection_messages
+#define gc_cons_threshold \
+    globals.f_gc_cons_threshold
+#define gcs_done \
+    globals.f_gcs_done
+#define highlight_nonselected_windows \
+    globals.f_highlight_nonselected_windows
+#define history_delete_duplicates \
+    globals.f_history_delete_duplicates
+#define hscroll_margin \
+    globals.f_hscroll_margin
+#define indent_tabs_mode \
+    globals.f_indent_tabs_mode
+#define inherit_process_coding_system \
+    globals.f_inherit_process_coding_system
+#define inhibit_eol_conversion \
+    globals.f_inhibit_eol_conversion
+#define inhibit_eval_during_redisplay \
+    globals.f_inhibit_eval_during_redisplay
+#define inhibit_free_realized_faces \
+    globals.f_inhibit_free_realized_faces
+#define inhibit_iso_escape_detection \
+    globals.f_inhibit_iso_escape_detection
+#define inhibit_load_charset_map \
+    globals.f_inhibit_load_charset_map
+#define inhibit_local_menu_bar_menus \
+    globals.f_inhibit_local_menu_bar_menus
+#define inhibit_menubar_update \
+    globals.f_inhibit_menubar_update
+#define inhibit_modification_hooks \
+    globals.f_inhibit_modification_hooks
+#define inhibit_null_byte_detection \
+    globals.f_inhibit_null_byte_detection
+#define inhibit_try_cursor_movement \
+    globals.f_inhibit_try_cursor_movement
+#define inhibit_try_window_id \
+    globals.f_inhibit_try_window_id
+#define inhibit_try_window_reusing \
+    globals.f_inhibit_try_window_reusing
+#define inhibit_x_resources \
+    globals.f_inhibit_x_resources
+#define intervals_consed \
+    globals.f_intervals_consed
+#define inverse_video \
+    globals.f_inverse_video
+#define last_command_event \
+    globals.f_last_command_event
+#define last_input_event \
+    globals.f_last_input_event
+#define last_nonmenu_event \
+    globals.f_last_nonmenu_event
+#define line_number_display_limit_width \
+    globals.f_line_number_display_limit_width
+#define load_convert_to_unibyte \
+    globals.f_load_convert_to_unibyte
+#define load_dangerous_libraries \
+    globals.f_load_dangerous_libraries
+#define load_force_doc_strings \
+    globals.f_load_force_doc_strings
+#define load_in_progress \
+    globals.f_load_in_progress
+#define make_cursor_line_fully_visible_p \
+    globals.f_make_cursor_line_fully_visible_p
+#define max_lisp_eval_depth \
+    globals.f_max_lisp_eval_depth
+#define max_specpdl_size \
+    globals.f_max_specpdl_size
+#define menu_prompt_more_char \
+    globals.f_menu_prompt_more_char
+#define menu_prompting \
+    globals.f_menu_prompting
+#define message_truncate_lines \
+    globals.f_message_truncate_lines
+#define meta_prefix_char \
+    globals.f_meta_prefix_char
+#define minibuffer_allow_text_properties \
+    globals.f_minibuffer_allow_text_properties
+#define minibuffer_auto_raise \
+    globals.f_minibuffer_auto_raise
+#define misc_objects_consed \
+    globals.f_misc_objects_consed
+#define mode_line_in_non_selected_windows \
+    globals.f_mode_line_in_non_selected_windows
+#define mode_line_inverse_video \
+    globals.f_mode_line_inverse_video
+#define multibyte_syntax_as_symbol \
+    globals.f_multibyte_syntax_as_symbol
+#define multiple_frames \
+    globals.f_multiple_frames
+#define next_screen_context_lines \
+    globals.f_next_screen_context_lines
+#define no_redraw_on_reenter \
+    globals.f_no_redraw_on_reenter
+#define noninteractive1 \
+    globals.f_noninteractive1
+#define num_input_keys \
+    globals.f_num_input_keys
+#define num_nonmacro_input_events \
+    globals.f_num_nonmacro_input_events
+#define open_paren_in_column_0_is_defun_start \
+    globals.f_open_paren_in_column_0_is_defun_start
+#define overline_margin \
+    globals.f_overline_margin
+#define parse_sexp_ignore_comments \
+    globals.f_parse_sexp_ignore_comments
+#define parse_sexp_lookup_properties \
+    globals.f_parse_sexp_lookup_properties
+#define polling_period \
+    globals.f_polling_period
+#define print_escape_multibyte \
+    globals.f_print_escape_multibyte
+#define print_escape_newlines \
+    globals.f_print_escape_newlines
+#define print_escape_nonascii \
+    globals.f_print_escape_nonascii
+#define print_quoted \
+    globals.f_print_quoted
+#define pure_bytes_used \
+    globals.f_pure_bytes_used
+#define read_buffer_completion_ignore_case \
+    globals.f_read_buffer_completion_ignore_case
+#define redisplay_dont_pause \
+    globals.f_redisplay_dont_pause
+#define scroll_conservatively \
+    globals.f_scroll_conservatively
+#define scroll_margin \
+    globals.f_scroll_margin
+#define string_chars_consed \
+    globals.f_string_chars_consed
+#define strings_consed \
+    globals.f_strings_consed
+#define symbols_consed \
+    globals.f_symbols_consed
+#define system_uses_terminfo \
+    globals.f_system_uses_terminfo
+#define tool_bar_button_relief \
+    globals.f_tool_bar_button_relief
+#define tool_bar_max_label_size \
+    globals.f_tool_bar_max_label_size
+#define underline_minimum_offset \
+    globals.f_underline_minimum_offset
+#define undo_inhibit_record_point \
+    globals.f_undo_inhibit_record_point
+#define undo_limit \
+    globals.f_undo_limit
+#define undo_strong_limit \
+    globals.f_undo_strong_limit
+#define unibyte_display_via_language_environment \
+    globals.f_unibyte_display_via_language_environment
+#define unread_command_char \
+    globals.f_unread_command_char
+#define use_dialog_box \
+    globals.f_use_dialog_box
+#define use_file_dialog \
+    globals.f_use_file_dialog
+#define use_system_font \
+    globals.f_use_system_font
+#define vector_cells_consed \
+    globals.f_vector_cells_consed
+#define visible_bell \
+    globals.f_visible_bell
+#define visible_cursor \
+    globals.f_visible_cursor
+#define w32_ansi_code_page \
+    globals.f_w32_ansi_code_page
+#define w32_enable_synthesized_fonts \
+    globals.f_w32_enable_synthesized_fonts
+#define w32_mouse_button_tolerance \
+    globals.f_w32_mouse_button_tolerance
+#define w32_mouse_move_interval \
+    globals.f_w32_mouse_move_interval
+#define w32_num_mouse_buttons \
+    globals.f_w32_num_mouse_buttons
+#define w32_pass_extra_mouse_buttons_to_system \
+    globals.f_w32_pass_extra_mouse_buttons_to_system
+#define w32_pass_multimedia_buttons_to_system \
+    globals.f_w32_pass_multimedia_buttons_to_system
+#define w32_pipe_read_delay \
+    globals.f_w32_pipe_read_delay
+#define w32_quit_key \
+    globals.f_w32_quit_key
+#define w32_strict_fontnames \
+    globals.f_w32_strict_fontnames
+#define w32_strict_painting \
+    globals.f_w32_strict_painting
+#define w32_use_full_screen_buffer \
+    globals.f_w32_use_full_screen_buffer
+#define w32_use_visible_system_caret \
+    globals.f_w32_use_visible_system_caret
+#define window_min_height \
+    globals.f_window_min_height
+#define window_min_width \
+    globals.f_window_min_width
+#define words_include_escapes \
+    globals.f_words_include_escapes
+#define write_region_inhibit_fsync \
+    globals.f_write_region_inhibit_fsync
+#define x_gtk_file_dialog_help_text \
+    globals.f_x_gtk_file_dialog_help_text
+#define x_gtk_show_hidden_files \
+    globals.f_x_gtk_show_hidden_files
+#define x_gtk_use_old_file_dialog \
+    globals.f_x_gtk_use_old_file_dialog
+#define x_gtk_use_system_tooltips \
+    globals.f_x_gtk_use_system_tooltips
+#define x_gtk_whole_detached_tool_bar \
+    globals.f_x_gtk_whole_detached_tool_bar
+#define x_mouse_click_focus_ignore_position \
+    globals.f_x_mouse_click_focus_ignore_position
+#define x_selection_timeout \
+    globals.f_x_selection_timeout
+#define x_stretch_cursor_p \
+    globals.f_x_stretch_cursor_p
+#define x_underline_at_descent_line \
+    globals.f_x_underline_at_descent_line
+#define x_use_underline_position_properties \
+    globals.f_x_use_underline_position_properties
--- a/src/gtkutil.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/gtkutil.h	Tue Jan 18 13:45:37 2011 -0700
@@ -182,11 +182,6 @@
    to indicate that the callback should do nothing.  */
 extern int xg_ignore_gtk_scrollbar;
 
-extern int x_gtk_use_old_file_dialog;
-extern int x_gtk_show_hidden_files;
-extern int x_gtk_file_dialog_help_text;
-extern int x_gtk_whole_detached_tool_bar;
-
 #endif /* USE_GTK */
 #endif /* GTKUTIL_H */
 
--- a/src/image.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/image.c	Tue Jan 18 13:45:37 2011 -0700
@@ -124,10 +124,6 @@
 #endif /* HAVE_NS */
 
 
-/* Search path for bitmap files.  */
-
-Lisp_Object Vx_bitmap_file_path;
-
 /* The symbol `postscript' identifying images of this type.  */
 
 Lisp_Object Qpostscript;
@@ -565,10 +561,6 @@
 
 static struct image_type *image_types;
 
-/* A list of symbols, one for each supported image type.  */
-
-Lisp_Object Vimage_types;
-
 /* Cache for delayed-loading image types.  */
 
 static Lisp_Object Vimage_type_cache;
@@ -587,11 +579,6 @@
 
 Lisp_Object Qlaplace, Qemboss, Qedge_detection, Qheuristic;
 
-/* Time in seconds after which images should be removed from the cache
-   if not displayed.  */
-
-Lisp_Object Vimage_cache_eviction_delay;
-
 /* Function prototypes.  */
 
 static Lisp_Object define_image_type (struct image_type *type, int loaded);
@@ -1003,8 +990,6 @@
 static int check_image_size (struct frame *f, int width, int height);
 
 #define MAX_IMAGE_SIZE 6.0
-Lisp_Object Vmax_image_size;
-
 /* Allocate and return a new image structure for image specification
    SPEC.  SPEC has a hash value of HASH.  */
 
@@ -4407,11 +4392,6 @@
 static void XPutPixel (XImagePtr , int, int, COLORREF);
 #endif /* HAVE_NTGUI */
 
-/* Non-zero means draw a cross on images having `:conversion
-   disabled'.  */
-
-int cross_disabled_images;
-
 /* Edge detection matrices for different edge-detection
    strategies.  */
 
@@ -7384,8 +7364,6 @@
 /* The symbol `imagemagick' identifying images of this type.  */
 
 Lisp_Object Qimagemagick;
-Lisp_Object Vimagemagick_render_type;
-
 /* Indices of image specification fields in imagemagick_format, below.  */
 
 enum imagemagick_keyword_index
@@ -8710,13 +8688,13 @@
 
   /* Must be defined now becase we're going to update it below, while
      defining the supported image types.  */
-  DEFVAR_LISP ("image-types", &Vimage_types,
+  DEFVAR_LISP ("image-types", Vimage_types,
     doc: /* List of potentially supported image types.
 Each element of the list is a symbol for an image type, like 'jpeg or 'png.
 To check whether it is really supported, use `image-type-available-p'.  */);
   Vimage_types = Qnil;
 
-  DEFVAR_LISP ("max-image-size", &Vmax_image_size,
+  DEFVAR_LISP ("max-image-size", Vmax_image_size,
     doc: /* Maximum size of images.
 Emacs will not load an image into memory if its pixel width or
 pixel height exceeds this limit.
@@ -8875,17 +8853,17 @@
   defsubr (&Slookup_image);
 #endif
 
-  DEFVAR_BOOL ("cross-disabled-images", &cross_disabled_images,
+  DEFVAR_BOOL ("cross-disabled-images", cross_disabled_images,
     doc: /* Non-nil means always draw a cross over disabled images.
 Disabled images are those having a `:conversion disabled' property.
 A cross is always drawn on black & white displays.  */);
   cross_disabled_images = 0;
 
-  DEFVAR_LISP ("x-bitmap-file-path", &Vx_bitmap_file_path,
+  DEFVAR_LISP ("x-bitmap-file-path", Vx_bitmap_file_path,
     doc: /* List of directories to search for window system bitmap files.  */);
   Vx_bitmap_file_path = decode_env_path ((char *) 0, PATH_BITMAPS);
 
-  DEFVAR_LISP ("image-cache-eviction-delay", &Vimage_cache_eviction_delay,
+  DEFVAR_LISP ("image-cache-eviction-delay", Vimage_cache_eviction_delay,
     doc: /* Maximum time after which images are removed from the cache.
 When an image has not been displayed this many seconds, Emacs
 automatically removes it from the image cache.  If the cache contains
@@ -8895,7 +8873,7 @@
 The function `clear-image-cache' disregards this variable.  */);
   Vimage_cache_eviction_delay = make_number (300);
 #ifdef HAVE_IMAGEMAGICK
-  DEFVAR_LISP ("imagemagick-render-type", &Vimagemagick_render_type,
+  DEFVAR_LISP ("imagemagick-render-type", Vimagemagick_render_type,
                doc: /* Choose between ImageMagick render methods.  */);
 #endif
 
--- a/src/indent.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/indent.c	Tue Jan 18 13:45:37 2011 -0700
@@ -38,11 +38,6 @@
 #include "dispextern.h"
 #include "region-cache.h"
 
-/* Indentation can insert tabs if this is non-zero;
-   otherwise always uses spaces.  */
-
-static int indent_tabs_mode;
-
 #define CR 015
 
 /* These three values memorize the current column to avoid recalculation.  */
@@ -2159,7 +2154,7 @@
 void
 syms_of_indent (void)
 {
-  DEFVAR_BOOL ("indent-tabs-mode", &indent_tabs_mode,
+  DEFVAR_BOOL ("indent-tabs-mode", indent_tabs_mode,
 	       doc: /* *Indentation can insert tabs if this is non-nil.  */);
   indent_tabs_mode = 1;
 
--- a/src/insdel.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/insdel.c	Tue Jan 18 13:45:37 2011 -0700
@@ -53,10 +53,6 @@
 
 Lisp_Object Fcombine_after_change_execute (void);
 
-/* Non-nil means don't call the after-change-functions right away,
-   just record an element in combine_after_change_list.  */
-Lisp_Object Vcombine_after_change_calls;
-
 /* List of elements of the form (BEG-UNCHANGED END-UNCHANGED CHANGE-AMOUNT)
    describing changes which happened while combine_after_change_calls
    was nonzero.  We use this to decide how to call them
@@ -74,10 +70,6 @@
 
 Lisp_Object Qinhibit_modification_hooks;
 
-/* Check all markers in the current buffer, looking for something invalid.  */
-
-static int check_markers_debug_flag;
-
 #define CHECK_MARKERS()				\
   if (check_markers_debug_flag)			\
     check_markers ();				\
@@ -2374,14 +2366,14 @@
   combine_after_change_list = Qnil;
   combine_after_change_buffer = Qnil;
 
-  DEFVAR_BOOL ("check-markers-debug-flag", &check_markers_debug_flag,
+  DEFVAR_BOOL ("check-markers-debug-flag", check_markers_debug_flag,
 	       doc: /* Non-nil means enable debugging checks for invalid marker positions.  */);
   check_markers_debug_flag = 0;
-  DEFVAR_LISP ("combine-after-change-calls", &Vcombine_after_change_calls,
+  DEFVAR_LISP ("combine-after-change-calls", Vcombine_after_change_calls,
 	       doc: /* Used internally by the `combine-after-change-calls' macro.  */);
   Vcombine_after_change_calls = Qnil;
 
-  DEFVAR_BOOL ("inhibit-modification-hooks", &inhibit_modification_hooks,
+  DEFVAR_BOOL ("inhibit-modification-hooks", inhibit_modification_hooks,
 	       doc: /* Non-nil means don't run any of the hooks that respond to buffer changes.
 This affects `before-change-functions' and `after-change-functions',
 as well as hooks attached to text properties and overlays.  */);
--- a/src/intervals.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/intervals.h	Tue Jan 18 13:45:37 2011 -0700
@@ -304,11 +304,6 @@
 extern Lisp_Object Qforeground, Qbackground, Qfont, Qunderline, Qstipple;
 extern Lisp_Object Qinvisible, Qintangible, Qread_only;
 
-extern Lisp_Object Vinhibit_point_motion_hooks;
-extern Lisp_Object Vdefault_text_properties;
-extern Lisp_Object Vchar_property_alias_alist;
-extern Lisp_Object Vtext_property_default_nonsticky;
-
 /* Sticky properties */
 extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
 
--- a/src/keyboard.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/keyboard.c	Tue Jan 18 13:45:37 2011 -0700
@@ -125,9 +125,6 @@
 Lisp_Object raw_keybuf;
 int raw_keybuf_count;
 
-/* Non-nil if the present key sequence was obtained by shift translation.  */
-Lisp_Object Vthis_command_keys_shift_translated;
-
 #define GROW_RAW_KEYBUF							\
  if (raw_keybuf_count == XVECTOR (raw_keybuf)->size)			\
    raw_keybuf = larger_vector (raw_keybuf, raw_keybuf_count * 2, Qnil)  \
@@ -141,19 +138,6 @@
 static int before_command_key_count;
 static int before_command_echo_length;
 
-/* If non-nil, the function that implements the display of help.
-   It's called with one argument, the help string to display.  */
-
-Lisp_Object Vshow_help_function;
-
-/* Nonzero means do menu prompting.  */
-
-static int menu_prompting;
-
-/* Character to see next line of menu prompt.  */
-
-static Lisp_Object menu_prompt_more_char;
-
 /* For longjmp to where kbd input is being done.  */
 
 static jmp_buf getcjmp;
@@ -182,49 +166,9 @@
 
 Lisp_Object echo_message_buffer;
 
-/* Nonzero means disregard local maps for the menu bar.  */
-static int inhibit_local_menu_bar_menus;
-
 /* Nonzero means C-g should cause immediate error-signal.  */
 int immediate_quit;
 
-/* The user's hook function for outputting an error message.  */
-Lisp_Object Vcommand_error_function;
-
-/* The user's ERASE setting.  */
-Lisp_Object Vtty_erase_char;
-
-/* Character to recognize as the help char.  */
-Lisp_Object Vhelp_char;
-
-/* List of other event types to recognize as meaning "help".  */
-Lisp_Object Vhelp_event_list;
-
-/* Form to execute when help char is typed.  */
-Lisp_Object Vhelp_form;
-
-/* Command to run when the help character follows a prefix key.  */
-Lisp_Object Vprefix_help_command;
-
-/* List of items that should move to the end of the menu bar.  */
-Lisp_Object Vmenu_bar_final_items;
-
-/* Expression to evaluate for the tool bar separator image.
-   This is used for build_desired_tool_bar_string only.  For GTK, we
-   use GTK tool bar seperators.  */
-
-Lisp_Object Vtool_bar_separator_image_expression;
-
-/* Non-nil means show the equivalent key-binding for
-   any M-x command that has one.
-   The value can be a length of time to show the message for.
-   If the value is non-nil and not a number, we wait 2 seconds.  */
-Lisp_Object Vsuggest_key_bindings;
-
-/* How long to display an echo-area message when the minibuffer is active.
-   If the value is not a number, such messages don't time out.  */
-Lisp_Object Vminibuffer_message_timeout;
-
 /* Character that causes a quit.  Normally C-g.
 
    If we are running on an ordinary terminal, this must be an ordinary
@@ -243,46 +187,9 @@
    ASCII character.  */
 int quit_char;
 
-/* If non-nil, this is a map that overrides all other local maps.  */
-Lisp_Object Voverriding_local_map;
-
-/* If non-nil, Voverriding_local_map applies to the menu bar.  */
-Lisp_Object Voverriding_local_map_menu_flag;
-
-/* Keymap that defines special misc events that should
-   be processed immediately at a low level.  */
-Lisp_Object Vspecial_event_map;
-
 /* Current depth in recursive edits.  */
 int command_loop_level;
 
-/* Total number of times command_loop has read a key sequence.  */
-EMACS_INT num_input_keys;
-
-/* Last input event read as a command.  */
-Lisp_Object last_command_event;
-
-/* Last input character read as a command, not counting menus
-   reached by the mouse.  */
-Lisp_Object last_nonmenu_event;
-
-/* Last input event read for any purpose.  */
-Lisp_Object last_input_event;
-
-/* If not Qnil, a list of objects to be read as subsequent command input.  */
-Lisp_Object Vunread_command_events;
-
-/* If not Qnil, a list of objects to be read as subsequent command input
-   including input method processing.  */
-Lisp_Object Vunread_input_method_events;
-
-/* If not Qnil, a list of objects to be read as subsequent command input
-   but NOT including input method processing.  */
-Lisp_Object Vunread_post_input_method_events;
-
-/* If not -1, an event to be read as subsequent command input.  */
-EMACS_INT unread_command_char;
-
 /* If not Qnil, this is a switch-frame event which we decided to put
    off until the end of a key sequence.  This should be read as the
    next command input, after any unread_command_events.
@@ -292,47 +199,19 @@
    events until a non-ASCII event is acceptable as input.  */
 Lisp_Object unread_switch_frame;
 
-/* A mask of extra modifier bits to put into every keyboard char.  */
-EMACS_INT extra_keyboard_modifiers;
-
-/* Char to use as prefix when a meta character is typed in.
-   This is bound on entry to minibuffer in case ESC is changed there.  */
-
-Lisp_Object meta_prefix_char;
-
 /* Last size recorded for a current buffer which is not a minibuffer.  */
 static EMACS_INT last_non_minibuf_size;
 
-/* Number of idle seconds before an auto-save and garbage collection.  */
-static Lisp_Object Vauto_save_timeout;
-
 /* Total number of times read_char has returned.  */
 int num_input_events;
 
-/* Total number of times read_char has returned, outside of macros.  */
-EMACS_INT num_nonmacro_input_events;
-
-/* Auto-save automatically when this many characters have been typed
-   since the last time.  */
-
-static EMACS_INT auto_save_interval;
-
 /* Value of num_nonmacro_input_events as of last auto save.  */
 
 int last_auto_save;
 
-/* The command being executed by the command loop.
-   Commands may set this, and the value set will be copied into
-   current_kboard->Vlast_command instead of the actual command.  */
-Lisp_Object Vthis_command;
-
 /* This is like Vthis_command, except that commands never set it.  */
 Lisp_Object real_this_command;
 
-/* If the lookup of the command returns a binding, the original
-   command is stored in this-original-command.  It is nil otherwise.  */
-Lisp_Object Vthis_original_command;
-
 /* The value of point when the last command was started.  */
 EMACS_INT last_point_position;
 
@@ -349,22 +228,10 @@
    generated by the next character.  */
 Lisp_Object internal_last_event_frame;
 
-/* A user-visible version of the above, intended to allow users to
-   figure out where the last event came from, if the event doesn't
-   carry that information itself (i.e. if it was a character).  */
-Lisp_Object Vlast_event_frame;
-
 /* The timestamp of the last input event we received from the X server.
    X Windows wants this for selection ownership.  */
 unsigned long last_event_timestamp;
 
-/* If non-nil, active regions automatically become the window selection.  */
-Lisp_Object Vselect_active_regions;
-
-/* The text in the active region prior to modifying the buffer.
-   Used by the `select-active-regions' feature.  */
-Lisp_Object Vsaved_region_selection;
-
 Lisp_Object Qx_set_selection, QPRIMARY, Qhandle_switch_frame;
 
 Lisp_Object Qself_insert_command;
@@ -377,48 +244,19 @@
    key sequence that it reads.  */
 Lisp_Object read_key_sequence_cmd;
 
-/* Echo unfinished commands after this many seconds of pause.  */
-Lisp_Object Vecho_keystrokes;
-
-/* Form to evaluate (if non-nil) when Emacs is started.  */
-Lisp_Object Vtop_level;
-
-/* If non-nil, this implements the current input method.  */
-Lisp_Object Vinput_method_function;
 Lisp_Object Qinput_method_function;
 
-/* When we call Vinput_method_function,
-   this holds the echo area message that was just erased.  */
-Lisp_Object Vinput_method_previous_message;
-
-/* Non-nil means deactivate the mark at end of this command.  */
-Lisp_Object Vdeactivate_mark;
 Lisp_Object Qdeactivate_mark;
 
-/* Menu bar specified in Lucid Emacs fashion.  */
-
-Lisp_Object Vlucid_menu_bar_dirty_flag;
 Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
 
 Lisp_Object Qecho_area_clear_hook;
 
 /* Hooks to run before and after each command.  */
-Lisp_Object Qpre_command_hook, Vpre_command_hook;
-Lisp_Object Qpost_command_hook, Vpost_command_hook;
-Lisp_Object Qcommand_hook_internal, Vcommand_hook_internal;
-
-/* Parent keymap of terminal-local function-key-map instances.  */
-Lisp_Object Vfunction_key_map;
-
-/* Keymap of key translations that can override keymaps.  */
-Lisp_Object Vkey_translation_map;
-
-/* List of deferred actions to be performed at a later time.
-   The precise format isn't relevant here; we just check whether it is nil.  */
-Lisp_Object Vdeferred_action_list;
-
-/* Function to call to handle deferred actions, when there are any.  */
-Lisp_Object Vdeferred_action_function;
+Lisp_Object Qpre_command_hook;
+Lisp_Object Qpost_command_hook;
+Lisp_Object Qcommand_hook_internal;
+
 Lisp_Object Qdeferred_action_function;
 
 Lisp_Object Qinput_method_exit_on_first_char;
@@ -454,11 +292,6 @@
    dequeuing functions?  Such a flag could be screwed up by interrupts
    at inopportune times.  */
 
-/* If this flag is non-nil, we check mouse_moved to see when the
-   mouse moves, and motion events will appear in the input stream.
-   Otherwise, mouse motion is ignored.  */
-Lisp_Object do_mouse_tracking;
-
 /* Symbols to head events.  */
 Lisp_Object Qmouse_movement;
 Lisp_Object Qscroll_bar_movement;
@@ -526,12 +359,6 @@
 
 Lisp_Object Qpolling_period;
 
-/* List of absolute timers.  Appears in order of next scheduled event.  */
-Lisp_Object Vtimer_list;
-
-/* List of idle time timers.  Appears in order of next scheduled event.  */
-Lisp_Object Vtimer_idle_list;
-
 /* Incremented whenever a timer is run.  */
 int timers_run;
 
@@ -565,18 +392,6 @@
 #define POLL_FOR_INPUT
 #endif
 
-/* After a command is executed, if point is moved into a region that
-   has specific properties (e.g. composition, display), we adjust
-   point to the boundary of the region.  But, if a command sets this
-   variable to non-nil, we suppress this point adjustment.  This
-   variable is set to nil before reading a command.  */
-
-Lisp_Object Vdisable_point_adjustment;
-
-/* If non-nil, always disable point adjustment.  */
-
-Lisp_Object Vglobal_disable_point_adjustment;
-
 /* The time when Emacs started being idle.  */
 
 static EMACS_TIME timer_idleness_start_time;
@@ -586,11 +401,6 @@
 
 static EMACS_TIME timer_last_idleness_start_time;
 
-/* If non-nil, events produced by disabled menu items and tool-bar
-   buttons are not ignored.  Help functions bind this to allow help on
-   those items and buttons.  */
-Lisp_Object Venable_disabled_menus_and_buttons;
-
 
 /* Global variable declarations.  */
 
@@ -637,10 +447,6 @@
 static char *find_user_signal_name (int);
 static int store_user_signal_events (void);
 
-/* Nonzero means don't try to suspend even if the operating system seems
-   to support it.  */
-static int cannot_suspend;
-
 
 /* Add C to the echo string, if echoing is going on.
    C can be a character, which is printed prettily ("M-C-x" and all that
@@ -2046,11 +1852,6 @@
 }
 
 
-/* Number of seconds between polling for input.  This is a Lisp
-   variable that can be bound.  */
-
-EMACS_INT polling_period;
-
 /* Nonzero means polling for input is temporarily suppressed.  */
 
 int poll_suppress_count;
@@ -3611,11 +3412,7 @@
        : ((kbd_buffer + KBD_BUFFER_SIZE) - kbd_fetch_ptr
           + (kbd_store_ptr - kbd_buffer)));
 }
-#endif	/* subprocesses */
-
-Lisp_Object Vthrow_on_input;
-
-/* Store an event obtained at interrupt level into kbd_buffer, fifo */
+#endif	/* Store an event obtained at interrupt level into kbd_buffer, fifo */
 
 void
 kbd_buffer_store_event (register struct input_event *event)
@@ -5232,16 +5029,6 @@
 static int last_mouse_y;
 static unsigned long button_down_time;
 
-/* The maximum time between clicks to make a double-click, or Qnil to
-   disable double-click detection, or Qt for no time limit.  */
-
-Lisp_Object Vdouble_click_time;
-
-/* Maximum number of pixels the mouse may be moved between clicks
-   to make a double-click.  */
-
-EMACS_INT double_click_fuzz;
-
 /* The number of clicks in this multiple-click. */
 
 int double_click_count;
@@ -11888,19 +11675,19 @@
   defsubr (&Sposn_at_point);
   defsubr (&Sposn_at_x_y);
 
-  DEFVAR_LISP ("last-command-event", &last_command_event,
+  DEFVAR_LISP ("last-command-event", last_command_event,
 		     doc: /* Last input event that was part of a command.  */);
 
-  DEFVAR_LISP ("last-nonmenu-event", &last_nonmenu_event,
+  DEFVAR_LISP ("last-nonmenu-event", last_nonmenu_event,
 	       doc: /* Last input event in a command, except for mouse menu events.
 Mouse menus give back keys that don't look like mouse events;
 this variable holds the actual mouse event that led to the menu,
 so that you can determine whether the command was run by mouse or not.  */);
 
-  DEFVAR_LISP ("last-input-event", &last_input_event,
+  DEFVAR_LISP ("last-input-event", last_input_event,
 	       doc: /* Last input event.  */);
 
-  DEFVAR_LISP ("unread-command-events", &Vunread_command_events,
+  DEFVAR_LISP ("unread-command-events", Vunread_command_events,
 	       doc: /* List of events to be read as the command input.
 These events are processed first, before actual keyboard input.
 Events read from this list are not normally added to `this-command-keys',
@@ -11908,16 +11695,16 @@
 An element of the form (t . EVENT) forces EVENT to be added to that list.  */);
   Vunread_command_events = Qnil;
 
-  DEFVAR_INT ("unread-command-char", &unread_command_char,
+  DEFVAR_INT ("unread-command-char", unread_command_char,
 	      doc: /* If not -1, an object to be read as next command input event.  */);
 
-  DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events,
+  DEFVAR_LISP ("unread-post-input-method-events", Vunread_post_input_method_events,
 	       doc: /* List of events to be processed as input by input methods.
 These events are processed before `unread-command-events'
 and actual keyboard input, but are not given to `input-method-function'.  */);
   Vunread_post_input_method_events = Qnil;
 
-  DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events,
+  DEFVAR_LISP ("unread-input-method-events", Vunread_input_method_events,
 	       doc: /* List of events to be processed as input by input methods.
 These events are processed after `unread-command-events', but
 before actual keyboard input.
@@ -11925,7 +11712,7 @@
 `input-method-function'.  */);
   Vunread_input_method_events = Qnil;
 
-  DEFVAR_LISP ("meta-prefix-char", &meta_prefix_char,
+  DEFVAR_LISP ("meta-prefix-char", meta_prefix_char,
 	       doc: /* Meta-prefix character code.
 Meta-foo as command input turns into this character followed by foo.  */);
   XSETINT (meta_prefix_char, 033);
@@ -11955,59 +11742,59 @@
 The last command executed that was not bound to an input event.
 This is the command `repeat' will try to repeat.  */);
 
-  DEFVAR_LISP ("this-command", &Vthis_command,
+  DEFVAR_LISP ("this-command", Vthis_command,
 	       doc: /* The command now being executed.
 The command can set this variable; whatever is put here
 will be in `last-command' during the following command.  */);
   Vthis_command = Qnil;
 
   DEFVAR_LISP ("this-command-keys-shift-translated",
-	       &Vthis_command_keys_shift_translated,
+	       Vthis_command_keys_shift_translated,
 	       doc: /* Non-nil if the key sequence activating this command was shift-translated.
 Shift-translation occurs when there is no binding for the key sequence
 as entered, but a binding was found by changing an upper-case letter
 to lower-case, or a shifted function key to an unshifted one.  */);
   Vthis_command_keys_shift_translated = Qnil;
 
-  DEFVAR_LISP ("this-original-command", &Vthis_original_command,
+  DEFVAR_LISP ("this-original-command", Vthis_original_command,
 	       doc: /* The command bound to the current key sequence before remapping.
 It equals `this-command' if the original command was not remapped through
 any of the active keymaps.  Otherwise, the value of `this-command' is the
 result of looking up the original command in the active keymaps.  */);
   Vthis_original_command = Qnil;
 
-  DEFVAR_INT ("auto-save-interval", &auto_save_interval,
+  DEFVAR_INT ("auto-save-interval", auto_save_interval,
 	      doc: /* *Number of input events between auto-saves.
 Zero means disable autosaving due to number of characters typed.  */);
   auto_save_interval = 300;
 
-  DEFVAR_LISP ("auto-save-timeout", &Vauto_save_timeout,
+  DEFVAR_LISP ("auto-save-timeout", Vauto_save_timeout,
 	       doc: /* *Number of seconds idle time before auto-save.
 Zero or nil means disable auto-saving due to idleness.
 After auto-saving due to this many seconds of idle time,
 Emacs also does a garbage collection if that seems to be warranted.  */);
   XSETFASTINT (Vauto_save_timeout, 30);
 
-  DEFVAR_LISP ("echo-keystrokes", &Vecho_keystrokes,
+  DEFVAR_LISP ("echo-keystrokes", Vecho_keystrokes,
 	       doc: /* *Nonzero means echo unfinished commands after this many seconds of pause.
 The value may be integer or floating point.  */);
   Vecho_keystrokes = make_number (1);
 
-  DEFVAR_INT ("polling-period", &polling_period,
+  DEFVAR_INT ("polling-period", polling_period,
 	      doc: /* *Interval between polling for input during Lisp execution.
 The reason for polling is to make C-g work to stop a running program.
 Polling is needed only when using X windows and SIGIO does not work.
 Polling is automatically disabled in all other cases.  */);
   polling_period = 2;
 
-  DEFVAR_LISP ("double-click-time", &Vdouble_click_time,
+  DEFVAR_LISP ("double-click-time", Vdouble_click_time,
 	       doc: /* *Maximum time between mouse clicks to make a double-click.
 Measured in milliseconds.  The value nil means disable double-click
 recognition; t means double-clicks have no time limit and are detected
 by position only.  */);
   Vdouble_click_time = make_number (500);
 
-  DEFVAR_INT ("double-click-fuzz", &double_click_fuzz,
+  DEFVAR_INT ("double-click-fuzz", double_click_fuzz,
 	      doc: /* *Maximum mouse movement between clicks to make a double-click.
 On window-system frames, value is the number of pixels the mouse may have
 moved horizontally or vertically between two clicks to make a double-click.
@@ -12018,54 +11805,54 @@
 to count as a drag.  */);
   double_click_fuzz = 3;
 
-  DEFVAR_BOOL ("inhibit-local-menu-bar-menus", &inhibit_local_menu_bar_menus,
+  DEFVAR_BOOL ("inhibit-local-menu-bar-menus", inhibit_local_menu_bar_menus,
 	       doc: /* *Non-nil means inhibit local map menu bar menus.  */);
   inhibit_local_menu_bar_menus = 0;
 
-  DEFVAR_INT ("num-input-keys", &num_input_keys,
+  DEFVAR_INT ("num-input-keys", num_input_keys,
 	      doc: /* Number of complete key sequences read as input so far.
 This includes key sequences read from keyboard macros.
 The number is effectively the number of interactive command invocations.  */);
   num_input_keys = 0;
 
-  DEFVAR_INT ("num-nonmacro-input-events", &num_nonmacro_input_events,
+  DEFVAR_INT ("num-nonmacro-input-events", num_nonmacro_input_events,
 	      doc: /* Number of input events read from the keyboard so far.
 This does not include events generated by keyboard macros.  */);
   num_nonmacro_input_events = 0;
 
-  DEFVAR_LISP ("last-event-frame", &Vlast_event_frame,
+  DEFVAR_LISP ("last-event-frame", Vlast_event_frame,
 	       doc: /* The frame in which the most recently read event occurred.
 If the last event came from a keyboard macro, this is set to `macro'.  */);
   Vlast_event_frame = Qnil;
 
   /* This variable is set up in sysdep.c.  */
-  DEFVAR_LISP ("tty-erase-char", &Vtty_erase_char,
+  DEFVAR_LISP ("tty-erase-char", Vtty_erase_char,
 	       doc: /* The ERASE character as set by the user with stty.  */);
 
-  DEFVAR_LISP ("help-char", &Vhelp_char,
+  DEFVAR_LISP ("help-char", Vhelp_char,
 	       doc: /* Character to recognize as meaning Help.
 When it is read, do `(eval help-form)', and display result if it's a string.
 If the value of `help-form' is nil, this char can be read normally.  */);
   XSETINT (Vhelp_char, Ctl ('H'));
 
-  DEFVAR_LISP ("help-event-list", &Vhelp_event_list,
+  DEFVAR_LISP ("help-event-list", Vhelp_event_list,
 	       doc: /* List of input events to recognize as meaning Help.
 These work just like the value of `help-char' (see that).  */);
   Vhelp_event_list = Qnil;
 
-  DEFVAR_LISP ("help-form", &Vhelp_form,
+  DEFVAR_LISP ("help-form", Vhelp_form,
 	       doc: /* Form to execute when character `help-char' is read.
 If the form returns a string, that string is displayed.
 If `help-form' is nil, the help char is not recognized.  */);
   Vhelp_form = Qnil;
 
-  DEFVAR_LISP ("prefix-help-command", &Vprefix_help_command,
+  DEFVAR_LISP ("prefix-help-command", Vprefix_help_command,
 	       doc: /* Command to run when `help-char' character follows a prefix key.
 This command is used only when there is no actual binding
 for that character after that prefix key.  */);
   Vprefix_help_command = Qnil;
 
-  DEFVAR_LISP ("top-level", &Vtop_level,
+  DEFVAR_LISP ("top-level", Vtop_level,
 	       doc: /* Form to evaluate when Emacs starts up.
 Useful to set before you dump a modified Emacs.  */);
   Vtop_level = Qnil;
@@ -12086,12 +11873,12 @@
 This variable has a separate binding for each terminal.
 See Info node `(elisp)Multiple Terminals'.  */);
 
-  DEFVAR_BOOL ("cannot-suspend", &cannot_suspend,
+  DEFVAR_BOOL ("cannot-suspend", cannot_suspend,
 	       doc: /* Non-nil means to always spawn a subshell instead of suspending.
 \(Even if the operating system has support for stopping a process.\)  */);
   cannot_suspend = 0;
 
-  DEFVAR_BOOL ("menu-prompting", &menu_prompting,
+  DEFVAR_BOOL ("menu-prompting", menu_prompting,
 	       doc: /* Non-nil means prompt with menus when appropriate.
 This is done when reading from a keymap that has a prompt string,
 for elements that have prompt strings.
@@ -12101,12 +11888,12 @@
 Otherwise, menu prompting uses the echo area.  */);
   menu_prompting = 1;
 
-  DEFVAR_LISP ("menu-prompt-more-char", &menu_prompt_more_char,
+  DEFVAR_LISP ("menu-prompt-more-char", menu_prompt_more_char,
 	       doc: /* Character to see next line of menu prompt.
 Type this character while in a menu prompt to rotate around the lines of it.  */);
   XSETINT (menu_prompt_more_char, ' ');
 
-  DEFVAR_INT ("extra-keyboard-modifiers", &extra_keyboard_modifiers,
+  DEFVAR_INT ("extra-keyboard-modifiers", extra_keyboard_modifiers,
 	      doc: /* A mask of additional modifier keys to use with every keyboard character.
 Emacs applies the modifiers of the character stored here to each keyboard
 character it reads.  For example, after evaluating the expression
@@ -12119,7 +11906,7 @@
 cancels any modification.  */);
   extra_keyboard_modifiers = 0;
 
-  DEFVAR_LISP ("deactivate-mark", &Vdeactivate_mark,
+  DEFVAR_LISP ("deactivate-mark", Vdeactivate_mark,
 	       doc: /* If an editing command sets this to t, deactivate the mark afterward.
 The command loop sets this to nil before each command,
 and tests the value when the command returns.
@@ -12128,18 +11915,18 @@
   Qdeactivate_mark = intern_c_string ("deactivate-mark");
   staticpro (&Qdeactivate_mark);
 
-  DEFVAR_LISP ("command-hook-internal", &Vcommand_hook_internal,
+  DEFVAR_LISP ("command-hook-internal", Vcommand_hook_internal,
 	       doc: /* Temporary storage of `pre-command-hook' or `post-command-hook'.  */);
   Vcommand_hook_internal = Qnil;
 
-  DEFVAR_LISP ("pre-command-hook", &Vpre_command_hook,
+  DEFVAR_LISP ("pre-command-hook", Vpre_command_hook,
 	       doc: /* Normal hook run before each command is executed.
 If an unhandled error happens in running this hook,
 the hook value is set to nil, since otherwise the error
 might happen repeatedly and make Emacs nonfunctional.  */);
   Vpre_command_hook = Qnil;
 
-  DEFVAR_LISP ("post-command-hook", &Vpost_command_hook,
+  DEFVAR_LISP ("post-command-hook", Vpost_command_hook,
 	       doc: /* Normal hook run after each command is executed.
 If an unhandled error happens in running this hook,
 the hook value is set to nil, since otherwise the error
@@ -12154,16 +11941,16 @@
   staticpro (&Qecho_area_clear_hook);
   Fset (Qecho_area_clear_hook, Qnil);
 
-  DEFVAR_LISP ("lucid-menu-bar-dirty-flag", &Vlucid_menu_bar_dirty_flag,
+  DEFVAR_LISP ("lucid-menu-bar-dirty-flag", Vlucid_menu_bar_dirty_flag,
 	       doc: /* Non-nil means menu bar, specified Lucid style, needs to be recomputed.  */);
   Vlucid_menu_bar_dirty_flag = Qnil;
 
-  DEFVAR_LISP ("menu-bar-final-items", &Vmenu_bar_final_items,
+  DEFVAR_LISP ("menu-bar-final-items", Vmenu_bar_final_items,
 	       doc: /* List of menu bar items to move to the end of the menu bar.
 The elements of the list are event types that may have menu bar bindings.  */);
   Vmenu_bar_final_items = Qnil;
 
-  DEFVAR_LISP ("tool-bar-separator-image-expression", &Vtool_bar_separator_image_expression,
+  DEFVAR_LISP ("tool-bar-separator-image-expression", Vtool_bar_separator_image_expression,
     doc: /* Expression evaluating to the image spec for a tool-bar separator.
 This is used internally by graphical displays that do not render
 tool-bar separators natively.  Otherwise it is unused (e.g. on GTK).  */);
@@ -12183,23 +11970,23 @@
 terminal device.
 See Info node `(elisp)Multiple Terminals'.  */);
 
-  DEFVAR_LISP ("overriding-local-map", &Voverriding_local_map,
+  DEFVAR_LISP ("overriding-local-map", Voverriding_local_map,
 	       doc: /* Keymap that overrides all other local keymaps.
 If this variable is non-nil, it is used as a keymap--replacing the
 buffer's local map, the minor mode keymaps, and char property keymaps.  */);
   Voverriding_local_map = Qnil;
 
-  DEFVAR_LISP ("overriding-local-map-menu-flag", &Voverriding_local_map_menu_flag,
+  DEFVAR_LISP ("overriding-local-map-menu-flag", Voverriding_local_map_menu_flag,
 	       doc: /* Non-nil means `overriding-local-map' applies to the menu bar.
 Otherwise, the menu bar continues to reflect the buffer's local map
 and the minor mode maps regardless of `overriding-local-map'.  */);
   Voverriding_local_map_menu_flag = Qnil;
 
-  DEFVAR_LISP ("special-event-map", &Vspecial_event_map,
+  DEFVAR_LISP ("special-event-map", Vspecial_event_map,
 	       doc: /* Keymap defining bindings for special events to execute at low level.  */);
   Vspecial_event_map = Fcons (intern_c_string ("keymap"), Qnil);
 
-  DEFVAR_LISP ("track-mouse", &do_mouse_tracking,
+  DEFVAR_LISP ("track-mouse", do_mouse_tracking,
 	       doc: /* *Non-nil means generate motion events for mouse motion.  */);
 
   DEFVAR_KBOARD ("system-key-alist", Vsystem_key_alist,
@@ -12259,7 +12046,7 @@
 
 This variable is keyboard-local.  */);
 
-  DEFVAR_LISP ("function-key-map", &Vfunction_key_map,
+  DEFVAR_LISP ("function-key-map", Vfunction_key_map,
                doc: /* The parent keymap of all `local-function-key-map' instances.
 Function key definitions that apply to all terminal devices should go
 here.  If a mapping is defined in both the current
@@ -12267,39 +12054,39 @@
 definition will take precendence.  */);
   Vfunction_key_map = Fmake_sparse_keymap (Qnil);
 
-  DEFVAR_LISP ("key-translation-map", &Vkey_translation_map,
+  DEFVAR_LISP ("key-translation-map", Vkey_translation_map,
                doc: /* Keymap of key translations that can override keymaps.
 This keymap works like `function-key-map', but comes after that,
 and its non-prefix bindings override ordinary bindings.
 Another difference is that it is global rather than keyboard-local.  */);
   Vkey_translation_map = Fmake_sparse_keymap (Qnil);
 
-  DEFVAR_LISP ("deferred-action-list", &Vdeferred_action_list,
+  DEFVAR_LISP ("deferred-action-list", Vdeferred_action_list,
 	       doc: /* List of deferred actions to be performed at a later time.
 The precise format isn't relevant here; we just check whether it is nil.  */);
   Vdeferred_action_list = Qnil;
 
-  DEFVAR_LISP ("deferred-action-function", &Vdeferred_action_function,
+  DEFVAR_LISP ("deferred-action-function", Vdeferred_action_function,
 	       doc: /* Function to call to handle deferred actions, after each command.
 This function is called with no arguments after each command
 whenever `deferred-action-list' is non-nil.  */);
   Vdeferred_action_function = Qnil;
 
-  DEFVAR_LISP ("suggest-key-bindings", &Vsuggest_key_bindings,
+  DEFVAR_LISP ("suggest-key-bindings", Vsuggest_key_bindings,
 	       doc: /* *Non-nil means show the equivalent key-binding when M-x command has one.
 The value can be a length of time to show the message for.
 If the value is non-nil and not a number, we wait 2 seconds.  */);
   Vsuggest_key_bindings = Qt;
 
-  DEFVAR_LISP ("timer-list", &Vtimer_list,
+  DEFVAR_LISP ("timer-list", Vtimer_list,
 	       doc: /* List of active absolute time timers in order of increasing time.  */);
   Vtimer_list = Qnil;
 
-  DEFVAR_LISP ("timer-idle-list", &Vtimer_idle_list,
+  DEFVAR_LISP ("timer-idle-list", Vtimer_idle_list,
 	       doc: /* List of active idle-time timers in order of increasing time.  */);
   Vtimer_idle_list = Qnil;
 
-  DEFVAR_LISP ("input-method-function", &Vinput_method_function,
+  DEFVAR_LISP ("input-method-function", Vinput_method_function,
 	       doc: /* If non-nil, the function that implements the current input method.
 It's called with one argument, a printing character that was just read.
 \(That means a character with code 040...0176.)
@@ -12321,18 +12108,18 @@
   Vinput_method_function = Qnil;
 
   DEFVAR_LISP ("input-method-previous-message",
-	       &Vinput_method_previous_message,
+	       Vinput_method_previous_message,
 	       doc: /* When `input-method-function' is called, hold the previous echo area message.
 This variable exists because `read-event' clears the echo area
 before running the input method.  It is nil if there was no message.  */);
   Vinput_method_previous_message = Qnil;
 
-  DEFVAR_LISP ("show-help-function", &Vshow_help_function,
+  DEFVAR_LISP ("show-help-function", Vshow_help_function,
 	       doc: /* If non-nil, the function that implements the display of help.
 It's called with one argument, the help string to display.  */);
   Vshow_help_function = Qnil;
 
-  DEFVAR_LISP ("disable-point-adjustment", &Vdisable_point_adjustment,
+  DEFVAR_LISP ("disable-point-adjustment", Vdisable_point_adjustment,
 	       doc: /* If non-nil, suppress point adjustment after executing a command.
 
 After a command is executed, if point is moved into a region that has
@@ -12345,7 +12132,7 @@
   Vdisable_point_adjustment = Qnil;
 
   DEFVAR_LISP ("global-disable-point-adjustment",
-	       &Vglobal_disable_point_adjustment,
+	       Vglobal_disable_point_adjustment,
 	       doc: /* *If non-nil, always suppress point adjustment.
 
 The default value is nil, in which case, point adjustment are
@@ -12353,18 +12140,18 @@
 `disable-point-adjustment' (which see) to non-nil.  */);
   Vglobal_disable_point_adjustment = Qnil;
 
-  DEFVAR_LISP ("minibuffer-message-timeout", &Vminibuffer_message_timeout,
+  DEFVAR_LISP ("minibuffer-message-timeout", Vminibuffer_message_timeout,
 	       doc: /* *How long to display an echo-area message when the minibuffer is active.
 If the value is not a number, such messages don't time out.  */);
   Vminibuffer_message_timeout = make_number (2);
 
-  DEFVAR_LISP ("throw-on-input", &Vthrow_on_input,
+  DEFVAR_LISP ("throw-on-input", Vthrow_on_input,
 	       doc: /* If non-nil, any keyboard input throws to this symbol.
 The value of that variable is passed to `quit-flag' and later causes a
 peculiar kind of quitting.  */);
   Vthrow_on_input = Qnil;
 
-  DEFVAR_LISP ("command-error-function", &Vcommand_error_function,
+  DEFVAR_LISP ("command-error-function", Vcommand_error_function,
 	       doc: /* If non-nil, function to output error messages.
 The arguments are the error data, a list of the form
  (SIGNALED-CONDITIONS . SIGNAL-DATA)
@@ -12374,7 +12161,7 @@
   Vcommand_error_function = Qnil;
 
   DEFVAR_LISP ("enable-disabled-menus-and-buttons",
-	       &Venable_disabled_menus_and_buttons,
+	       Venable_disabled_menus_and_buttons,
 	       doc: /* If non-nil, don't ignore events produced by disabled menu items and tool-bar.
 
 Help functions bind this to allow help on disabled menu items
@@ -12382,7 +12169,7 @@
   Venable_disabled_menus_and_buttons = Qnil;
 
   DEFVAR_LISP ("select-active-regions",
-	       &Vselect_active_regions,
+	       Vselect_active_regions,
 	       doc: /* If non-nil, an active region automatically sets the primary selection.
 If the value is `only', only temporarily active regions (usually made
 by mouse-dragging or shift-selection) set the window selection.
@@ -12391,7 +12178,7 @@
   Vselect_active_regions = Qt;
 
   DEFVAR_LISP ("saved-region-selection",
-	       &Vsaved_region_selection,
+	       Vsaved_region_selection,
 	       doc: /* Contents of active region prior to buffer modification.
 If `select-active-regions' is non-nil, Emacs sets this to the
 text in the region before modifying the buffer.  The next
--- a/src/keyboard.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/keyboard.h	Tue Jan 18 13:45:37 2011 -0700
@@ -191,9 +191,6 @@
 /* Total number of times read_char has returned.  */
 extern int num_input_events;
 
-/* Total number of times read_char has returned, outside of macros.  */
-extern EMACS_INT num_nonmacro_input_events;
-
 /* Nonzero means polling for input is temporarily suppressed.  */
 extern int poll_suppress_count;
 
@@ -211,9 +208,6 @@
    generated by the next character.  */
 extern Lisp_Object internal_last_event_frame;
 
-/* Menu items.  */
-
-extern Lisp_Object Vlucid_menu_bar_dirty_flag;
 extern Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
 
 /* This holds a Lisp vector that holds the properties of a single
@@ -404,8 +398,6 @@
 #define POSN_INBUFFER_P(posn) (NILP (POSN_STRING (posn)))
 #define POSN_BUFFER_POSN(posn) (Fnth (make_number (5), (posn)))
 
-extern Lisp_Object do_mouse_tracking;
-
 /* Some of the event heads.  */
 extern Lisp_Object Qswitch_frame;
 
@@ -438,8 +430,6 @@
 
 extern int ignore_mouse_drag_p;
 
-extern Lisp_Object Vdouble_click_time;
-
 /* The primary selection.  */
 extern Lisp_Object QPRIMARY;
 
@@ -453,28 +443,13 @@
 extern int parse_solitary_modifier (Lisp_Object symbol);
 
 
-/* Parent keymap of terminal-local function-key-map instances.  */
-extern Lisp_Object Vfunction_key_map;
-
-/* Keymap of key translations that can override keymaps.  */
-extern Lisp_Object Vkey_translation_map;
-
 /* This is like Vthis_command, except that commands never set it.  */
 extern Lisp_Object real_this_command;
 
-/* If the lookup of the command returns a binding, the original
-   command is stored in this-original-command.  It is nil otherwise.  */
-extern Lisp_Object Vthis_original_command;
-
 /* Non-nil disable property on a command means
    do not execute it; call disabled-command-function's value instead.  */
 extern Lisp_Object QCbutton, QCtoggle, QCradio, QClabel;
 
-/* A mask of extra modifier bits to put into every keyboard char.  */
-extern EMACS_INT extra_keyboard_modifiers;
-
-/* If non-nil, this implements the current input method.  */
-extern Lisp_Object Vinput_method_function;
 extern Lisp_Object Qinput_method_function;
 
 /* An event header symbol HEAD may have a property named
--- a/src/keymap.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/keymap.c	Tue Jan 18 13:45:37 2011 -0700
@@ -51,49 +51,16 @@
 Lisp_Object control_x_map;	/* The keymap used for globally bound
 				   C-x-prefixed default commands */
 
-/* was MinibufLocalMap */
-Lisp_Object Vminibuffer_local_map;
 				/* The keymap used by the minibuf for local
 				   bindings when spaces are allowed in the
 				   minibuf */
 
-/* was MinibufLocalNSMap */
-Lisp_Object Vminibuffer_local_ns_map;
 				/* The keymap used by the minibuf for local
 				   bindings when spaces are not encouraged
 				   in the minibuf */
 
 /* keymap used for minibuffers when doing completion */
-/* was MinibufLocalCompletionMap */
-Lisp_Object Vminibuffer_local_completion_map;
-
-/* keymap used for minibuffers when doing completion in filenames */
-Lisp_Object Vminibuffer_local_filename_completion_map;
-
-/* keymap used for minibuffers when doing completion in filenames
-   with require-match*/
-Lisp_Object Vminibuffer_local_filename_must_match_map;
-
 /* keymap used for minibuffers when doing completion and require a match */
-/* was MinibufLocalMustMatchMap */
-Lisp_Object Vminibuffer_local_must_match_map;
-
-/* Alist of minor mode variables and keymaps.  */
-Lisp_Object Vminor_mode_map_alist;
-
-/* Alist of major-mode-specific overrides for
-   minor mode variables and keymaps.  */
-Lisp_Object Vminor_mode_overriding_map_alist;
-
-/* List of emulation mode keymap alists.  */
-Lisp_Object Vemulation_mode_map_alists;
-
-/* A list of all commands given new bindings since a certain time
-   when nil was stored here.
-   This is used to speed up recomputation of menu key equivalents
-   when Emacs starts up.   t means don't record anything here.  */
-Lisp_Object Vdefine_key_rebound_commands;
-
 Lisp_Object Qkeymapp, Qkeymap, Qnon_ascii, Qmenu_item, Qremap;
 Lisp_Object QCadvertised_binding;
 
@@ -2710,8 +2677,6 @@
     return data.sequences;
 }
 
-static Lisp_Object Vwhere_is_preferred_modifier;
-
 /* This function can GC if Flookup_key autoloads any keymaps.  */
 
 DEFUN ("where-is-internal", Fwhere_is_internal, Swhere_is_internal, 1, 5, 0,
@@ -3857,48 +3822,48 @@
 					 Qnil)))));
   staticpro (&exclude_keys);
 
-  DEFVAR_LISP ("define-key-rebound-commands", &Vdefine_key_rebound_commands,
+  DEFVAR_LISP ("define-key-rebound-commands", Vdefine_key_rebound_commands,
 	       doc: /* List of commands given new key bindings recently.
 This is used for internal purposes during Emacs startup;
 don't alter it yourself.  */);
   Vdefine_key_rebound_commands = Qt;
 
-  DEFVAR_LISP ("minibuffer-local-map", &Vminibuffer_local_map,
+  DEFVAR_LISP ("minibuffer-local-map", Vminibuffer_local_map,
 	       doc: /* Default keymap to use when reading from the minibuffer.  */);
   Vminibuffer_local_map = Fmake_sparse_keymap (Qnil);
 
-  DEFVAR_LISP ("minibuffer-local-ns-map", &Vminibuffer_local_ns_map,
+  DEFVAR_LISP ("minibuffer-local-ns-map", Vminibuffer_local_ns_map,
 	       doc: /* Local keymap for the minibuffer when spaces are not allowed.  */);
   Vminibuffer_local_ns_map = Fmake_sparse_keymap (Qnil);
   Fset_keymap_parent (Vminibuffer_local_ns_map, Vminibuffer_local_map);
 
-  DEFVAR_LISP ("minibuffer-local-completion-map", &Vminibuffer_local_completion_map,
+  DEFVAR_LISP ("minibuffer-local-completion-map", Vminibuffer_local_completion_map,
 	       doc: /* Local keymap for minibuffer input with completion.  */);
   Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil);
   Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map);
 
   DEFVAR_LISP ("minibuffer-local-filename-completion-map",
-	       &Vminibuffer_local_filename_completion_map,
+	       Vminibuffer_local_filename_completion_map,
 	       doc: /* Local keymap for minibuffer input with completion for filenames.  */);
   Vminibuffer_local_filename_completion_map = Fmake_sparse_keymap (Qnil);
   Fset_keymap_parent (Vminibuffer_local_filename_completion_map,
 		      Vminibuffer_local_completion_map);
 
 
-  DEFVAR_LISP ("minibuffer-local-must-match-map", &Vminibuffer_local_must_match_map,
+  DEFVAR_LISP ("minibuffer-local-must-match-map", Vminibuffer_local_must_match_map,
 	       doc: /* Local keymap for minibuffer input with completion, for exact match.  */);
   Vminibuffer_local_must_match_map = Fmake_sparse_keymap (Qnil);
   Fset_keymap_parent (Vminibuffer_local_must_match_map,
 		      Vminibuffer_local_completion_map);
 
   DEFVAR_LISP ("minibuffer-local-filename-must-match-map",
-	       &Vminibuffer_local_filename_must_match_map,
+	       Vminibuffer_local_filename_must_match_map,
 	       doc: /* Local keymap for minibuffer input with completion for filenames with exact match.  */);
   Vminibuffer_local_filename_must_match_map = Fmake_sparse_keymap (Qnil);
   Fset_keymap_parent (Vminibuffer_local_filename_must_match_map,
 		      Vminibuffer_local_must_match_map);
 
-  DEFVAR_LISP ("minor-mode-map-alist", &Vminor_mode_map_alist,
+  DEFVAR_LISP ("minor-mode-map-alist", Vminor_mode_map_alist,
 	       doc: /* Alist of keymaps to use for minor modes.
 Each element looks like (VARIABLE . KEYMAP); KEYMAP is used to read
 key sequences and look up bindings if VARIABLE's value is non-nil.
@@ -3906,14 +3871,14 @@
 in the list takes precedence.  */);
   Vminor_mode_map_alist = Qnil;
 
-  DEFVAR_LISP ("minor-mode-overriding-map-alist", &Vminor_mode_overriding_map_alist,
+  DEFVAR_LISP ("minor-mode-overriding-map-alist", Vminor_mode_overriding_map_alist,
 	       doc: /* Alist of keymaps to use for minor modes, in current major mode.
 This variable is an alist just like `minor-mode-map-alist', and it is
 used the same way (and before `minor-mode-map-alist'); however,
 it is provided for major modes to bind locally.  */);
   Vminor_mode_overriding_map_alist = Qnil;
 
-  DEFVAR_LISP ("emulation-mode-map-alists", &Vemulation_mode_map_alists,
+  DEFVAR_LISP ("emulation-mode-map-alists", Vemulation_mode_map_alists,
 	       doc: /* List of keymap alists to use for emulations modes.
 It is intended for modes or packages using multiple minor-mode keymaps.
 Each element is a keymap alist just like `minor-mode-map-alist', or a
@@ -3922,7 +3887,7 @@
 `minor-mode-map-alist' and `minor-mode-overriding-map-alist'.  */);
   Vemulation_mode_map_alists = Qnil;
 
-  DEFVAR_LISP ("where-is-preferred-modifier", &Vwhere_is_preferred_modifier,
+  DEFVAR_LISP ("where-is-preferred-modifier", Vwhere_is_preferred_modifier,
 	       doc: /* Preferred modifier to use for `where-is'.
 When a single binding is requested, `where-is' will return one that
 uses this modifier if possible.  If nil, or if no such binding exists,
--- a/src/keymap.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/keymap.h	Tue Jan 18 13:45:37 2011 -0700
@@ -24,9 +24,6 @@
 extern Lisp_Object Qkeymap, Qmenu_bar;
 extern Lisp_Object Qremap;
 extern Lisp_Object Qmenu_item;
-extern Lisp_Object meta_prefix_char;
-extern Lisp_Object Voverriding_local_map;
-extern Lisp_Object Voverriding_local_map_menu_flag;
 extern Lisp_Object current_global_map;
 EXFUN (Fmake_sparse_keymap, 1);
 EXFUN (Fkeymap_prompt, 1);
--- a/src/lisp.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/lisp.h	Tue Jan 18 13:45:37 2011 -0700
@@ -1843,27 +1843,41 @@
 extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int);
 
 /* Macros we use to define forwarded Lisp variables.
-   These are used in the syms_of_FILENAME functions.  */
+   These are used in the syms_of_FILENAME functions.
+   
+   An ordinary (not in buffer_defaults, per-buffer, or per-keyboard)
+   lisp variable is actually a field in `struct emacs_globals'.  The
+   field's name begins with "f_", which is a convention enforced by
+   these macros.  Each such global has a corresponding #define in
+   globals.h; the plain name should be used in the code.
+
+   E.g., the global "cons_cells_consed" is declared as "int
+   f_cons_cells_consed" in globals.h, but there is a define:
+
+      #define cons_cells_consed globals.f_cons_cells_consed
+
+   All C code uses the `cons_cells_consed' name.  This is all done
+   this way to support indirection for multi-threaded Emacs.  */
 
 #define DEFVAR_LISP(lname, vname, doc)		\
   do {						\
     static struct Lisp_Objfwd o_fwd;		\
-    defvar_lisp (&o_fwd, lname, vname);		\
+    defvar_lisp (&o_fwd, lname, &globals.f_ ## vname);		\
   } while (0)
 #define DEFVAR_LISP_NOPRO(lname, vname, doc)	\
   do {						\
     static struct Lisp_Objfwd o_fwd;		\
-    defvar_lisp_nopro (&o_fwd, lname, vname);	\
+    defvar_lisp_nopro (&o_fwd, lname, &globals.f_ ## vname);	\
   } while (0)
 #define DEFVAR_BOOL(lname, vname, doc)		\
   do {						\
     static struct Lisp_Boolfwd b_fwd;		\
-    defvar_bool (&b_fwd, lname, vname);		\
+    defvar_bool (&b_fwd, lname, &globals.f_ ## vname);		\
   } while (0)
 #define DEFVAR_INT(lname, vname, doc)		\
   do {						\
     static struct Lisp_Intfwd i_fwd;		\
-    defvar_int (&i_fwd, lname, vname);		\
+    defvar_int (&i_fwd, lname, &globals.f_ ## vname);		\
   } while (0)
 
 #define DEFVAR_BUFFER_DEFAULTS(lname, vname, doc)		\
@@ -1916,8 +1930,6 @@
 extern struct specbinding *specpdl_ptr;
 extern EMACS_INT specpdl_size;
 
-extern EMACS_INT max_specpdl_size;
-
 #define SPECPDL_INDEX()	((int) (specpdl_ptr - specpdl))
 
 /* Everything needed to describe an active condition case.  */
@@ -2081,10 +2093,6 @@
 
 extern int consing_since_gc;
 
-/* Thresholds for doing another gc.  */
-
-extern EMACS_INT gc_cons_threshold;
-
 extern EMACS_INT gc_relative_threshold;
 
 extern EMACS_INT memory_full_cons_threshold;
@@ -2439,14 +2447,11 @@
 
 /* Defined in fns.c */
 extern Lisp_Object QCrehash_size, QCrehash_threshold;
-extern int use_dialog_box;
-extern int use_file_dialog;
 extern int next_almost_prime (int);
 extern Lisp_Object larger_vector (Lisp_Object, int, Lisp_Object);
 extern void sweep_weak_hash_tables (void);
 extern Lisp_Object Qcursor_in_echo_area;
 extern Lisp_Object Qstring_lessp;
-extern Lisp_Object Vfeatures;
 extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq, Qeql;
 unsigned sxhash (Lisp_Object, int);
 Lisp_Object make_hash_table (Lisp_Object, Lisp_Object, Lisp_Object,
@@ -2593,8 +2598,6 @@
 
 /* Defined in dispnew.c */
 extern Lisp_Object selected_frame;
-extern Lisp_Object Vwindow_system_version;
-extern EMACS_INT baud_rate;
 EXFUN (Fding, 1);
 EXFUN (Fredraw_frame, 1);
 EXFUN (Fsleep_for, 2);
@@ -2609,24 +2612,21 @@
 extern Lisp_Object Qinhibit_eval_during_redisplay;
 extern Lisp_Object Qmessage_truncate_lines;
 extern Lisp_Object Qmenu_bar_update_hook;
-extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
+extern Lisp_Object Qwindow_scroll_functions;
 extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
 extern Lisp_Object Qimage, Qtext, Qboth, Qboth_horiz, Qtext_image_horiz;
 extern Lisp_Object Qspace, Qcenter, QCalign_to;
 extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow;
 extern Lisp_Object Qleft_margin, Qright_margin;
 extern Lisp_Object Qglyphless_char;
-extern Lisp_Object Vmessage_log_max;
 extern Lisp_Object QCdata, QCfile;
 extern Lisp_Object QCmap;
 extern Lisp_Object Qrisky_local_variable;
-extern Lisp_Object Vinhibit_redisplay;
 extern struct frame *last_glyphless_glyph_frame;
 extern unsigned last_glyphless_glyph_face_id;
 extern int last_glyphless_glyph_merged_face_id;
 extern int message_enable_multibyte;
 extern int noninteractive_need_newline;
-extern EMACS_INT scroll_margin;
 extern Lisp_Object echo_area_buffer[2];
 extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
 extern void check_message_stack (void);
@@ -2683,8 +2683,6 @@
 extern void mark_object (Lisp_Object);
 extern void refill_memory_reserve (void);
 extern const char *pending_malloc_warning;
-extern Lisp_Object Vpurify_flag;
-extern Lisp_Object Vmemory_full;
 extern Lisp_Object *stack_base;
 EXFUN (Fcons, 2);
 extern Lisp_Object list1 (Lisp_Object);
@@ -2772,7 +2770,6 @@
 
 /* Defined in print.c */
 extern Lisp_Object Vprin1_to_string_buffer;
-extern Lisp_Object Vprint_level, Vprint_length;
 extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
 extern void safe_debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
 EXFUN (Fprin1, 2);
@@ -2781,10 +2778,10 @@
 EXFUN (Fterpri, 1);
 EXFUN (Fprint, 2);
 EXFUN (Ferror_message_string, 1);
-extern Lisp_Object Vstandard_output, Qstandard_output;
+extern Lisp_Object Qstandard_output;
 extern Lisp_Object Qexternal_debugging_output;
 extern void temp_output_buffer_setup (const char *);
-extern int print_level, print_escape_newlines;
+extern int print_level;
 extern Lisp_Object Qprint_escape_newlines;
 extern void write_string (const char *, int);
 extern void print_error_message (Lisp_Object, Lisp_Object, const char *,
@@ -2798,12 +2795,9 @@
 /* Defined in doprnt.c */
 extern EMACS_INT doprnt (char *, int, const char *, const char *, va_list);
 
-/* Defined in lread.c */
-extern Lisp_Object Vafter_load_alist;
 extern Lisp_Object Qvariable_documentation, Qstandard_input;
 extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
-extern Lisp_Object Vobarray, initial_obarray, Vstandard_input;
-extern int load_in_progress;
+extern Lisp_Object initial_obarray;
 EXFUN (Fread, 1);
 EXFUN (Fread_from_string, 3);
 EXFUN (Fintern, 2);
@@ -2822,8 +2816,6 @@
   do {									\
     if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list); \
   } while (0)
-extern Lisp_Object Vcurrent_load_list;
-extern Lisp_Object Vload_history, Vload_suffixes, Vload_file_rep_suffixes;
 extern int openp (Lisp_Object, Lisp_Object, Lisp_Object,
                   Lisp_Object *, Lisp_Object);
 extern int isfloat_string (const char *, int);
@@ -2837,13 +2829,10 @@
 
 /* Defined in eval.c */
 extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro;
-extern Lisp_Object Vinhibit_quit, Qinhibit_quit, Vquit_flag;
+extern Lisp_Object Qinhibit_quit;
 extern Lisp_Object Vautoload_queue;
-extern Lisp_Object Vdebug_on_error;
 extern Lisp_Object Vsignaling_function;
 extern int handling_signal;
-extern int debug_on_next_call;
-
 /* To run a normal hook, use the appropriate function from the list below.
    The calling convention:
 
@@ -2902,12 +2891,7 @@
 extern void init_eval (void);
 extern void syms_of_eval (void);
 
-/* Defined in editfns.c */
-extern Lisp_Object last_nonmenu_event;
 extern Lisp_Object Qfield;
-extern Lisp_Object Vinhibit_field_text_motion;
-extern Lisp_Object Vsystem_name;
-extern Lisp_Object Vuser_login_name;
 EXFUN (Fcurrent_message, 0);
 EXFUN (Fgoto_char, 1);
 EXFUN (Fpoint_max_marker, 0);
@@ -2963,7 +2947,7 @@
 extern void report_overlay_modification (Lisp_Object, Lisp_Object, int,
                                          Lisp_Object, Lisp_Object, Lisp_Object);
 extern int overlay_touches_p (EMACS_INT);
-extern Lisp_Object Vbuffer_alist, Vinhibit_read_only;
+extern Lisp_Object Vbuffer_alist;
 EXFUN (Fget_buffer, 1);
 EXFUN (Fget_buffer_create, 1);
 EXFUN (Fgenerate_new_buffer_name, 2);
@@ -3016,7 +3000,6 @@
 extern Lisp_Object Qfile_exists_p;
 extern Lisp_Object Qfile_directory_p;
 extern Lisp_Object Qinsert_file_contents;
-extern Lisp_Object Vauto_save_list_file_name;
 EXFUN (Ffind_file_name_handler, 2);
 EXFUN (Ffile_name_as_directory, 1);
 EXFUN (Fexpand_file_name, 2);
@@ -3076,13 +3059,8 @@
 /* Defined in minibuf.c */
 
 extern Lisp_Object Qcompletion_ignore_case;
-extern Lisp_Object Vcompletion_regexp_list;
-extern Lisp_Object Vhistory_length;
 extern Lisp_Object Vminibuffer_list;
 extern Lisp_Object last_minibuf_string;
-extern int completion_ignore_case;
-extern int history_delete_duplicates;
-extern int minibuffer_auto_raise;
 extern void choose_minibuf_frame (void);
 EXFUN (Fcompleting_read, 8);
 EXFUN (Fread_from_minibuffer, 7);
@@ -3098,10 +3076,8 @@
 
 /* Defined in callint.c */
 
-extern Lisp_Object Qminus, Qplus, Vcurrent_prefix_arg;
+extern Lisp_Object Qminus, Qplus;
 extern Lisp_Object Qwhen;
-extern Lisp_Object Vcommand_history;
-extern Lisp_Object Vmark_even_if_inactive;
 extern Lisp_Object Qcall_interactively, Qmouse_leave_buffer_hook;
 EXFUN (Fprefix_numeric_value, 1);
 extern void syms_of_callint (void);
@@ -3134,10 +3110,6 @@
 extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle;
 extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll;
 extern Lisp_Object Qtop, Qratio;
-extern Lisp_Object Vsaved_region_selection;
-extern Lisp_Object Vselect_active_regions;
-extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level;
-extern Lisp_Object Vthrow_on_input;
 extern int input_pending;
 EXFUN (Fdiscard_input, 0);
 EXFUN (Frecursive_edit, 0);
@@ -3177,8 +3149,6 @@
 
 /* Defined in frame.c */
 #ifdef HAVE_WINDOW_SYSTEM
-extern Lisp_Object Vx_resource_name;
-extern Lisp_Object Vx_resource_class;
 #endif /* HAVE_WINDOW_SYSTEM */
 extern Lisp_Object Qonly;
 extern Lisp_Object Qvisible;
@@ -3211,12 +3181,8 @@
 extern int display_arg;
 #endif
 extern Lisp_Object decode_env_path (const char *, const char *);
-extern Lisp_Object Vinvocation_name, Vinvocation_directory;
-extern Lisp_Object Vbefore_init_time, Vafter_init_time;
-extern Lisp_Object Vinstallation_directory;
 extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
 extern Lisp_Object Qfile_name_handler_alist;
-extern Lisp_Object Vdynamic_library_alist;
 extern void (*fatal_error_signal_hook) (void);
 EXFUN (Fkill_emacs, 1) NO_RETURN;
 #if HAVE_SETLOCALE
@@ -3233,9 +3199,6 @@
 /* Nonzero means don't do interactive redisplay and don't change tty modes.  */
 extern int noninteractive;
 
-/* Nonzero means don't load X resources or Windows Registry settings.  */
-extern int inhibit_x_resources;
-
 /* Nonzero means remove site-lisp directories from load-path.  */
 extern int no_site_lisp;
 
@@ -3271,11 +3234,6 @@
 extern void syms_of_process (void);
 extern void setup_process_coding_systems (Lisp_Object);
 
-/* Defined in callproc.c */
-extern Lisp_Object Vexec_path, Vexec_suffixes,
-                   Vexec_directory, Vdata_directory;
-extern Lisp_Object Vdoc_directory;
-extern Lisp_Object Vshell_file_name;
 EXFUN (Fcall_process, MANY);
 extern int child_setup (int, int, int, char **, int, Lisp_Object);
 extern void init_callproc_1 (void);
@@ -3285,7 +3243,6 @@
 
 /* Defined in doc.c */
 extern Lisp_Object Qfunction_documentation;
-extern Lisp_Object Vdoc_file_name;
 EXFUN (Fsubstitute_command_keys, 1);
 EXFUN (Fdocumentation_property, 3);
 extern Lisp_Object read_doc_string (Lisp_Object);
@@ -3322,8 +3279,6 @@
 				    Lisp_Object, Lisp_Object,
                                     Lisp_Object);
 extern void syms_of_undo (void);
-extern Lisp_Object Vundo_outer_limit;
-
 /* Defined in textprop.c */
 extern Lisp_Object Qfont, Qmouse_face;
 extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
@@ -3389,8 +3344,6 @@
 extern int memcmp (void *, void *, size_t);
 #endif
 
-/* Defined in filelock.c */
-extern Lisp_Object Vtemporary_file_directory;
 EXFUN (Funlock_buffer, 0);
 extern void unlock_all_files (void);
 extern void lock_file (Lisp_Object);
@@ -3438,7 +3391,6 @@
 
 /* Defined in xfns.c, w32fns.c, or macfns.c */
 extern Lisp_Object Qfont_param;
-extern Lisp_Object Vx_no_window_manager;
 EXFUN (Fxw_display_color_p, 1);
 EXFUN (Fx_focus_frame, 1);
 #endif
@@ -3452,10 +3404,7 @@
 extern Lisp_Object QCfamily, QCweight, QCslant;
 extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground;
 extern Lisp_Object Vface_alternative_font_family_alist;
-extern Lisp_Object Vface_font_rescale_alist;
-extern Lisp_Object Vface_ignored_fonts;
 extern Lisp_Object Vface_alternative_font_registry_alist;
-extern Lisp_Object Vscalable_fonts_allowed;
 EXFUN (Fclear_face_cache, 1);
 EXFUN (Fx_load_color_file, 1);
 extern void syms_of_xfaces (void);
@@ -3680,4 +3629,6 @@
   } while (0)
 
 
+#include "globals.h"
+
 #endif /* EMACS_LISP_H */
--- a/src/lread.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/lread.c	Tue Jan 18 13:45:37 2011 -0700
@@ -70,11 +70,11 @@
 Lisp_Object Qrehash_threshold;
 
 Lisp_Object Qread_char, Qget_file_char, Qstandard_input, Qcurrent_load_list;
-Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist;
+Lisp_Object Qvariable_documentation;
 Lisp_Object Qascii_character, Qload, Qload_file_name;
 Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
 Lisp_Object Qinhibit_file_name_operation;
-Lisp_Object Qeval_buffer_list, Veval_buffer_list;
+Lisp_Object Qeval_buffer_list;
 Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */
 
 /* Used instead of Qget_file_char while loading *.elc files compiled
@@ -83,69 +83,19 @@
 
 static Lisp_Object Qload_force_doc_strings;
 
-/* non-zero if inside `load' */
-int load_in_progress;
 static Lisp_Object Qload_in_progress;
 
-/* Directory in which the sources were found.  */
-Lisp_Object Vsource_directory;
-
-/* Search path and suffixes for files to be loaded. */
-Lisp_Object Vload_path, Vload_suffixes, Vload_file_rep_suffixes;
-
-/* File name of user's init file.  */
-Lisp_Object Vuser_init_file;
-
-/* This is the user-visible association list that maps features to
-   lists of defs in their load files. */
-Lisp_Object Vload_history;
-
-/* This is used to build the load history. */
-Lisp_Object Vcurrent_load_list;
-
-/* List of files that were preloaded.  */
-Lisp_Object Vpreloaded_file_list;
-
-/* Name of file actually being read by `load'.  */
-Lisp_Object Vload_file_name;
-
-/* Function to use for reading, in `load' and friends.  */
-Lisp_Object Vload_read_function;
-
-/* Non-nil means read recursive structures using #n= and #n# syntax.  */
-Lisp_Object Vread_circle;
-
 /* The association list of objects read with the #n=object form.
    Each member of the list has the form (n . object), and is used to
    look up the object for the corresponding #n# construct.
    It must be set to nil before all top-level calls to read0.  */
 Lisp_Object read_objects;
 
-/* Nonzero means load should forcibly load all dynamic doc strings.  */
-static int load_force_doc_strings;
-
-/* Nonzero means read should convert strings to unibyte.  */
-static int load_convert_to_unibyte;
-
 /* Nonzero means READCHAR should read bytes one by one (not character)
    when READCHARFUN is Qget_file_char or Qget_emacs_mule_file_char.
    This is set to 1 by read1 temporarily while handling #@NUMBER.  */
 static int load_each_byte;
 
-/* Function to use for loading an Emacs Lisp source file (not
-   compiled) instead of readevalloop.  */
-Lisp_Object Vload_source_file_function;
-
-/* List of all DEFVAR_BOOL variables.  Used by the byte optimizer.  */
-Lisp_Object Vbyte_boolean_vars;
-
-/* Whether or not to add a `read-positions' property to symbols
-   read. */
-Lisp_Object Vread_with_symbol_positions;
-
-/* List of (SYMBOL . POSITION) accumulated so far. */
-Lisp_Object Vread_symbol_positions_list;
-
 /* List of descriptors now open for Fload.  */
 static Lisp_Object load_descriptor_list;
 
@@ -189,25 +139,13 @@
    Fread initializes this to zero, so we need not specbind it
    or worry about what happens to it when there is an error.  */
 static int new_backquote_flag;
-static Lisp_Object Vold_style_backquotes, Qold_style_backquotes;
+static Lisp_Object Qold_style_backquotes;
 
 /* A list of file names for files being loaded in Fload.  Used to
    check for recursive loads.  */
 
 static Lisp_Object Vloads_in_progress;
 
-/* Non-zero means load dangerous compiled Lisp files.  */
-
-int load_dangerous_libraries;
-
-/* Non-zero means force printing messages when loading Lisp files.  */
-
-int force_load_messages;
-
-/* A regular expression used to detect files compiled with Emacs.  */
-
-static Lisp_Object Vbytecomp_version_regexp;
-
 static int read_emacs_mule_char (int, int (*) (int, Lisp_Object),
                                  Lisp_Object);
 
@@ -3500,7 +3438,6 @@
     }
 }
 
-Lisp_Object Vobarray;
 Lisp_Object initial_obarray;
 
 /* oblookup stores the bucket number here, for the sake of Funintern.  */
@@ -4182,22 +4119,22 @@
   defsubr (&Smapatoms);
   defsubr (&Slocate_file_internal);
 
-  DEFVAR_LISP ("obarray", &Vobarray,
+  DEFVAR_LISP ("obarray", Vobarray,
 	       doc: /* Symbol table for use by `intern' and `read'.
 It is a vector whose length ought to be prime for best results.
 The vector's contents don't make sense if examined from Lisp programs;
 to find all the symbols in an obarray, use `mapatoms'.  */);
 
-  DEFVAR_LISP ("values", &Vvalues,
+  DEFVAR_LISP ("values", Vvalues,
 	       doc: /* List of values of all expressions which were read, evaluated and printed.
 Order is reverse chronological.  */);
 
-  DEFVAR_LISP ("standard-input", &Vstandard_input,
+  DEFVAR_LISP ("standard-input", Vstandard_input,
 	       doc: /* Stream for read to get input from.
 See documentation of `read' for possible values.  */);
   Vstandard_input = Qt;
 
-  DEFVAR_LISP ("read-with-symbol-positions", &Vread_with_symbol_positions,
+  DEFVAR_LISP ("read-with-symbol-positions", Vread_with_symbol_positions,
 	       doc: /* If non-nil, add position of read symbols to `read-symbol-positions-list'.
 
 If this variable is a buffer, then only forms read from that buffer
@@ -4211,7 +4148,7 @@
 the toplevel; bind it instead. */);
   Vread_with_symbol_positions = Qnil;
 
-  DEFVAR_LISP ("read-symbol-positions-list", &Vread_symbol_positions_list,
+  DEFVAR_LISP ("read-symbol-positions-list", Vread_symbol_positions_list,
 	       doc: /* A list mapping read symbols to their positions.
 This variable is modified during calls to `read' or
 `read-from-string', but only when `read-with-symbol-positions' is
@@ -4226,24 +4163,24 @@
 were read in. */);
   Vread_symbol_positions_list = Qnil;
 
-  DEFVAR_LISP ("read-circle", &Vread_circle,
+  DEFVAR_LISP ("read-circle", Vread_circle,
 	       doc: /* Non-nil means read recursive structures using #N= and #N# syntax.  */);
   Vread_circle = Qt;
 
-  DEFVAR_LISP ("load-path", &Vload_path,
+  DEFVAR_LISP ("load-path", Vload_path,
 	       doc: /* *List of directories to search for files to load.
 Each element is a string (directory name) or nil (try default directory).
 Initialized based on EMACSLOADPATH environment variable, if any,
 otherwise to default specified by file `epaths.h' when Emacs was built.  */);
 
-  DEFVAR_LISP ("load-suffixes", &Vload_suffixes,
+  DEFVAR_LISP ("load-suffixes", Vload_suffixes,
 	       doc: /* List of suffixes for (compiled or source) Emacs Lisp files.
 This list should not include the empty string.
 `load' and related functions try to append these suffixes, in order,
 to the specified file name if a Lisp suffix is allowed or required.  */);
   Vload_suffixes = Fcons (make_pure_c_string (".elc"),
 			  Fcons (make_pure_c_string (".el"), Qnil));
-  DEFVAR_LISP ("load-file-rep-suffixes", &Vload_file_rep_suffixes,
+  DEFVAR_LISP ("load-file-rep-suffixes", Vload_file_rep_suffixes,
 	       doc: /* List of suffixes that indicate representations of \
 the same file.
 This list should normally start with the empty string.
@@ -4258,12 +4195,12 @@
 customize `jka-compr-load-suffixes' rather than the present variable.  */);
   Vload_file_rep_suffixes = Fcons (empty_unibyte_string, Qnil);
 
-  DEFVAR_BOOL ("load-in-progress", &load_in_progress,
+  DEFVAR_BOOL ("load-in-progress", load_in_progress,
 	       doc: /* Non-nil if inside of `load'.  */);
   Qload_in_progress = intern_c_string ("load-in-progress");
   staticpro (&Qload_in_progress);
 
-  DEFVAR_LISP ("after-load-alist", &Vafter_load_alist,
+  DEFVAR_LISP ("after-load-alist", Vafter_load_alist,
 	       doc: /* An alist of expressions to be evalled when particular files are loaded.
 Each element looks like (REGEXP-OR-FEATURE FORMS...).
 
@@ -4278,7 +4215,7 @@
 the rest of the FORMS.  */);
   Vafter_load_alist = Qnil;
 
-  DEFVAR_LISP ("load-history", &Vload_history,
+  DEFVAR_LISP ("load-history", Vload_history,
 	       doc: /* Alist mapping loaded file names to symbols and features.
 Each alist element should be a list (FILE-NAME ENTRIES...), where
 FILE-NAME is the name of a file that has been loaded into Emacs.
@@ -4298,11 +4235,11 @@
 directory.  These file names are converted to absolute at startup.  */);
   Vload_history = Qnil;
 
-  DEFVAR_LISP ("load-file-name", &Vload_file_name,
+  DEFVAR_LISP ("load-file-name", Vload_file_name,
 	       doc: /* Full name of file being loaded by `load'.  */);
   Vload_file_name = Qnil;
 
-  DEFVAR_LISP ("user-init-file", &Vuser_init_file,
+  DEFVAR_LISP ("user-init-file", Vuser_init_file,
 	       doc: /* File name, including directory, of user's initialization file.
 If the file loaded had extension `.elc', and the corresponding source file
 exists, this variable contains the name of source file, suitable for use
@@ -4311,16 +4248,16 @@
 of the file, regardless of whether or not it has the `.elc' extension.  */);
   Vuser_init_file = Qnil;
 
-  DEFVAR_LISP ("current-load-list", &Vcurrent_load_list,
+  DEFVAR_LISP ("current-load-list", Vcurrent_load_list,
 	       doc: /* Used for internal purposes by `load'.  */);
   Vcurrent_load_list = Qnil;
 
-  DEFVAR_LISP ("load-read-function", &Vload_read_function,
+  DEFVAR_LISP ("load-read-function", Vload_read_function,
 	       doc: /* Function used by `load' and `eval-region' for reading expressions.
 The default is nil, which means use the function `read'.  */);
   Vload_read_function = Qnil;
 
-  DEFVAR_LISP ("load-source-file-function", &Vload_source_file_function,
+  DEFVAR_LISP ("load-source-file-function", Vload_source_file_function,
 	       doc: /* Function called in `load' for loading an Emacs Lisp source file.
 This function is for doing code conversion before reading the source file.
 If nil, loading is done without any code conversion.
@@ -4329,45 +4266,45 @@
 See `load' for the meaning of the remaining arguments.  */);
   Vload_source_file_function = Qnil;
 
-  DEFVAR_BOOL ("load-force-doc-strings", &load_force_doc_strings,
+  DEFVAR_BOOL ("load-force-doc-strings", load_force_doc_strings,
 	       doc: /* Non-nil means `load' should force-load all dynamic doc strings.
 This is useful when the file being loaded is a temporary copy.  */);
   load_force_doc_strings = 0;
 
-  DEFVAR_BOOL ("load-convert-to-unibyte", &load_convert_to_unibyte,
+  DEFVAR_BOOL ("load-convert-to-unibyte", load_convert_to_unibyte,
 	       doc: /* Non-nil means `read' converts strings to unibyte whenever possible.
 This is normally bound by `load' and `eval-buffer' to control `read',
 and is not meant for users to change.  */);
   load_convert_to_unibyte = 0;
 
-  DEFVAR_LISP ("source-directory", &Vsource_directory,
+  DEFVAR_LISP ("source-directory", Vsource_directory,
 	       doc: /* Directory in which Emacs sources were found when Emacs was built.
 You cannot count on them to still be there!  */);
   Vsource_directory
     = Fexpand_file_name (build_string ("../"),
 			 Fcar (decode_env_path (0, PATH_DUMPLOADSEARCH)));
 
-  DEFVAR_LISP ("preloaded-file-list", &Vpreloaded_file_list,
+  DEFVAR_LISP ("preloaded-file-list", Vpreloaded_file_list,
 	       doc: /* List of files that were preloaded (when dumping Emacs).  */);
   Vpreloaded_file_list = Qnil;
 
-  DEFVAR_LISP ("byte-boolean-vars", &Vbyte_boolean_vars,
+  DEFVAR_LISP ("byte-boolean-vars", Vbyte_boolean_vars,
 	       doc: /* List of all DEFVAR_BOOL variables, used by the byte code optimizer.  */);
   Vbyte_boolean_vars = Qnil;
 
-  DEFVAR_BOOL ("load-dangerous-libraries", &load_dangerous_libraries,
+  DEFVAR_BOOL ("load-dangerous-libraries", load_dangerous_libraries,
 	       doc: /* Non-nil means load dangerous compiled Lisp files.
 Some versions of XEmacs use different byte codes than Emacs.  These
 incompatible byte codes can make Emacs crash when it tries to execute
 them.  */);
   load_dangerous_libraries = 0;
 
-  DEFVAR_BOOL ("force-load-messages", &force_load_messages,
+  DEFVAR_BOOL ("force-load-messages", force_load_messages,
 	       doc: /* Non-nil means force printing messages when loading Lisp files.
 This overrides the value of the NOMESSAGE argument to `load'.  */);
   force_load_messages = 0;
 
-  DEFVAR_LISP ("bytecomp-version-regexp", &Vbytecomp_version_regexp,
+  DEFVAR_LISP ("bytecomp-version-regexp", Vbytecomp_version_regexp,
 	       doc: /* Regular expression matching safe to load compiled Lisp files.
 When Emacs loads a compiled Lisp file, it reads the first 512 bytes
 from the file, and matches them against this regular expression.
@@ -4376,11 +4313,11 @@
   Vbytecomp_version_regexp
     = make_pure_c_string ("^;;;.\\(in Emacs version\\|bytecomp version FSF\\)");
 
-  DEFVAR_LISP ("eval-buffer-list", &Veval_buffer_list,
+  DEFVAR_LISP ("eval-buffer-list", Veval_buffer_list,
 	       doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'.  */);
   Veval_buffer_list = Qnil;
 
-  DEFVAR_LISP ("old-style-backquotes", &Vold_style_backquotes,
+  DEFVAR_LISP ("old-style-backquotes", Vold_style_backquotes,
 	       doc: /* Set to non-nil when `read' encounters an old-style backquote.  */);
   Vold_style_backquotes = Qnil;
   Qold_style_backquotes = intern_c_string ("old-style-backquotes");
--- a/src/macros.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/macros.c	Tue Jan 18 13:45:37 2011 -0700
@@ -29,14 +29,6 @@
 
 Lisp_Object Qexecute_kbd_macro, Qkbd_macro_termination_hook;
 
-/* Kbd macro currently being executed (a string or vector).  */
-
-Lisp_Object Vexecuting_kbd_macro;
-
-/* Index of next character to fetch from that macro.  */
-
-EMACS_INT executing_kbd_macro_index;
-
 /* Number of successful iterations so far
    for innermost keyboard macro.
    This is not bound at each level,
@@ -384,11 +376,11 @@
 The value is the symbol `append' while appending to the definition of
 an existing macro.  */);
 
-  DEFVAR_LISP ("executing-kbd-macro", &Vexecuting_kbd_macro,
+  DEFVAR_LISP ("executing-kbd-macro", Vexecuting_kbd_macro,
 	       doc: /* Currently executing keyboard macro (string or vector).
 This is nil when not executing a keyboard macro.  */);
 
-  DEFVAR_INT ("executing-kbd-macro-index", &executing_kbd_macro_index,
+  DEFVAR_INT ("executing-kbd-macro-index", executing_kbd_macro_index,
 	      doc: /* Index in currently executing keyboard macro; undefined if none executing.  */);
 
   DEFVAR_KBOARD ("last-kbd-macro", Vlast_kbd_macro,
--- a/src/macros.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/macros.h	Tue Jan 18 13:45:37 2011 -0700
@@ -18,14 +18,6 @@
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-/* Kbd macro currently being executed (a string or vector).  */
-
-extern Lisp_Object Vexecuting_kbd_macro;
-
-/* Index of next character to fetch from that macro.  */
-
-extern EMACS_INT executing_kbd_macro_index;
-
 /* Number of successful iterations so far
    for innermost keyboard macro.
    This is not bound at each level,
--- a/src/marker.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/marker.c	Tue Jan 18 13:45:37 2011 -0700
@@ -34,10 +34,6 @@
 
 static void byte_char_debug_check (struct buffer *, EMACS_INT, EMACS_INT);
 
-/* Nonzero means enable debugging checks on byte/char correspondences.  */
-
-static int byte_debug_flag;
-
 void
 clear_charpos_cache (struct buffer *b)
 {
@@ -897,7 +893,7 @@
   defsubr (&Sset_marker_insertion_type);
   defsubr (&Sbuffer_has_markers_at);
 
-  DEFVAR_BOOL ("byte-debug-flag", &byte_debug_flag,
+  DEFVAR_BOOL ("byte-debug-flag", byte_debug_flag,
 	       doc: /* Non-nil enables debugging checks in byte/char position conversions.  */);
   byte_debug_flag = 0;
 }
--- a/src/menu.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/menu.h	Tue Jan 18 13:45:37 2011 -0700
@@ -19,8 +19,6 @@
 #ifndef MENU_H
 #define MENU_H
 
-extern Lisp_Object Vmenu_updating_frame;
-
 extern void x_set_menu_bar_lines (struct frame *f,
                                   Lisp_Object value,
                                   Lisp_Object oldval);
--- a/src/minibuf.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/minibuf.c	Tue Jan 18 13:45:37 2011 -0700
@@ -54,83 +54,25 @@
 
 /* The maximum length of a minibuffer history.  */
 
-Lisp_Object Qhistory_length, Vhistory_length;
-
-/* No duplicates in history.  */
-
-int history_delete_duplicates;
-
-/* Non-nil means add new input to history.  */
-
-Lisp_Object Vhistory_add_new_input;
+Lisp_Object Qhistory_length;
 
 /* Fread_minibuffer leaves the input here as a string. */
 
 Lisp_Object last_minibuf_string;
 
-/* Nonzero means let functions called when within a minibuffer
-   invoke recursive minibuffers (to read arguments, or whatever) */
-
-int enable_recursive_minibuffers;
-
-/* Nonzero means don't ignore text properties
-   in Fread_from_minibuffer.  */
-
-int minibuffer_allow_text_properties;
-
-/* help-form is bound to this while in the minibuffer.  */
-
-Lisp_Object Vminibuffer_help_form;
-
-/* Variable which is the history list to add minibuffer values to.  */
-
-Lisp_Object Vminibuffer_history_variable;
-
-/* Current position in the history list (adjusted by M-n and M-p).  */
-
-Lisp_Object Vminibuffer_history_position;
-
-/* Text properties that are added to minibuffer prompts.
-   These are in addition to the basic `field' property, and stickiness
-   properties.  */
-
-Lisp_Object Vminibuffer_prompt_properties;
-
 Lisp_Object Qminibuffer_history, Qbuffer_name_history;
 
 Lisp_Object Qread_file_name_internal;
 
 /* Normal hooks for entry to and exit from minibuffer.  */
 
-Lisp_Object Qminibuffer_setup_hook, Vminibuffer_setup_hook;
-Lisp_Object Qminibuffer_exit_hook, Vminibuffer_exit_hook;
-
-/* Function to call to read a buffer name.  */
-Lisp_Object Vread_buffer_function;
-
-/* Nonzero means completion ignores case.  */
-
-int completion_ignore_case;
-Lisp_Object Qcompletion_ignore_case;
-int read_buffer_completion_ignore_case;
-
-/* List of regexps that should restrict possible completions.  */
+Lisp_Object Qminibuffer_setup_hook;
+Lisp_Object Qminibuffer_exit_hook;
 
-Lisp_Object Vcompletion_regexp_list;
-
-/* Nonzero means raise the minibuffer frame when the minibuffer
-   is entered.  */
-
-int minibuffer_auto_raise;
-
-/* Keymap for reading expressions.  */
-Lisp_Object Vread_expression_map;
-
-Lisp_Object Vminibuffer_completion_table, Qminibuffer_completion_table;
-Lisp_Object Vminibuffer_completion_predicate, Qminibuffer_completion_predicate;
-Lisp_Object Vminibuffer_completion_confirm, Qminibuffer_completion_confirm;
-Lisp_Object Vminibuffer_completing_file_name;
-
+Lisp_Object Qcompletion_ignore_case;
+Lisp_Object Qminibuffer_completion_table;
+Lisp_Object Qminibuffer_completion_predicate;
+Lisp_Object Qminibuffer_completion_confirm;
 Lisp_Object Quser_variable_p;
 
 Lisp_Object Qminibuffer_default;
@@ -2077,45 +2019,45 @@
   Qread_expression_history = intern_c_string ("read-expression-history");
   staticpro (&Qread_expression_history);
 
-  DEFVAR_LISP ("read-buffer-function", &Vread_buffer_function,
+  DEFVAR_LISP ("read-buffer-function", Vread_buffer_function,
 	       doc: /* If this is non-nil, `read-buffer' does its work by calling this function.
 The function is called with the arguments passed to `read-buffer'.  */);
   Vread_buffer_function = Qnil;
 
   DEFVAR_BOOL ("read-buffer-completion-ignore-case",
-	       &read_buffer_completion_ignore_case,
+	       read_buffer_completion_ignore_case,
 	       doc: /* *Non-nil means completion ignores case when reading a buffer name.  */);
   read_buffer_completion_ignore_case = 0;
 
-  DEFVAR_LISP ("minibuffer-setup-hook", &Vminibuffer_setup_hook,
+  DEFVAR_LISP ("minibuffer-setup-hook", Vminibuffer_setup_hook,
 	       doc: /* Normal hook run just after entry to minibuffer.  */);
   Vminibuffer_setup_hook = Qnil;
 
-  DEFVAR_LISP ("minibuffer-exit-hook", &Vminibuffer_exit_hook,
+  DEFVAR_LISP ("minibuffer-exit-hook", Vminibuffer_exit_hook,
 	       doc: /* Normal hook run just after exit from minibuffer.  */);
   Vminibuffer_exit_hook = Qnil;
 
-  DEFVAR_LISP ("history-length", &Vhistory_length,
+  DEFVAR_LISP ("history-length", Vhistory_length,
 	       doc: /* *Maximum length for history lists before truncation takes place.
 A number means that length; t means infinite.  Truncation takes place
 just after a new element is inserted.  Setting the `history-length'
 property of a history variable overrides this default.  */);
   XSETFASTINT (Vhistory_length, 30);
 
-  DEFVAR_BOOL ("history-delete-duplicates", &history_delete_duplicates,
+  DEFVAR_BOOL ("history-delete-duplicates", history_delete_duplicates,
 	       doc: /* *Non-nil means to delete duplicates in history.
 If set to t when adding a new history element, all previous identical
 elements are deleted from the history list.  */);
   history_delete_duplicates = 0;
 
-  DEFVAR_LISP ("history-add-new-input", &Vhistory_add_new_input,
+  DEFVAR_LISP ("history-add-new-input", Vhistory_add_new_input,
 	       doc: /* *Non-nil means to add new elements in history.
 If set to nil, minibuffer reading functions don't add new elements to the
 history list, so it is possible to do this afterwards by calling
 `add-to-history' explicitly.  */);
   Vhistory_add_new_input = Qt;
 
-  DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case,
+  DEFVAR_BOOL ("completion-ignore-case", completion_ignore_case,
 	       doc: /* Non-nil means don't consider case significant in completion.
 For file-name completion, `read-file-name-completion-ignore-case'
 controls the behavior, rather than this variable.
@@ -2123,12 +2065,12 @@
 controls the behavior, rather than this variable.  */);
   completion_ignore_case = 0;
 
-  DEFVAR_BOOL ("enable-recursive-minibuffers", &enable_recursive_minibuffers,
+  DEFVAR_BOOL ("enable-recursive-minibuffers", enable_recursive_minibuffers,
 	       doc: /* *Non-nil means to allow minibuffer commands while in the minibuffer.
 This variable makes a difference whenever the minibuffer window is active. */);
   enable_recursive_minibuffers = 0;
 
-  DEFVAR_LISP ("minibuffer-completion-table", &Vminibuffer_completion_table,
+  DEFVAR_LISP ("minibuffer-completion-table", Vminibuffer_completion_table,
 	       doc: /* Alist or obarray used for completion in the minibuffer.
 This becomes the ALIST argument to `try-completion' and `all-completions'.
 The value can also be a list of strings or a hash table.
@@ -2143,11 +2085,11 @@
   lambda -- return t if STRING is a valid completion as it stands.  */);
   Vminibuffer_completion_table = Qnil;
 
-  DEFVAR_LISP ("minibuffer-completion-predicate", &Vminibuffer_completion_predicate,
+  DEFVAR_LISP ("minibuffer-completion-predicate", Vminibuffer_completion_predicate,
 	       doc: /* Within call to `completing-read', this holds the PREDICATE argument.  */);
   Vminibuffer_completion_predicate = Qnil;
 
-  DEFVAR_LISP ("minibuffer-completion-confirm", &Vminibuffer_completion_confirm,
+  DEFVAR_LISP ("minibuffer-completion-confirm", Vminibuffer_completion_confirm,
 	       doc: /* Whether to demand confirmation of completion before exiting minibuffer.
 If nil, confirmation is not required.
 If the value is `confirm', the user may exit with an input that is not
@@ -2159,15 +2101,15 @@
   Vminibuffer_completion_confirm = Qnil;
 
   DEFVAR_LISP ("minibuffer-completing-file-name",
-	       &Vminibuffer_completing_file_name,
+	       Vminibuffer_completing_file_name,
 	       doc: /* Non-nil means completing file names.  */);
   Vminibuffer_completing_file_name = Qnil;
 
-  DEFVAR_LISP ("minibuffer-help-form", &Vminibuffer_help_form,
+  DEFVAR_LISP ("minibuffer-help-form", Vminibuffer_help_form,
 	       doc: /* Value that `help-form' takes on inside the minibuffer.  */);
   Vminibuffer_help_form = Qnil;
 
-  DEFVAR_LISP ("minibuffer-history-variable", &Vminibuffer_history_variable,
+  DEFVAR_LISP ("minibuffer-history-variable", Vminibuffer_history_variable,
 	       doc: /* History list symbol to add minibuffer values to.
 Each string of minibuffer input, as it appears on exit from the minibuffer,
 is added with
@@ -2175,16 +2117,16 @@
   (cons STRING (symbol-value minibuffer-history-variable)))  */);
   XSETFASTINT (Vminibuffer_history_variable, 0);
 
-  DEFVAR_LISP ("minibuffer-history-position", &Vminibuffer_history_position,
+  DEFVAR_LISP ("minibuffer-history-position", Vminibuffer_history_position,
 	       doc: /* Current position of redoing in the history list.  */);
   Vminibuffer_history_position = Qnil;
 
-  DEFVAR_BOOL ("minibuffer-auto-raise", &minibuffer_auto_raise,
+  DEFVAR_BOOL ("minibuffer-auto-raise", minibuffer_auto_raise,
 	       doc: /* *Non-nil means entering the minibuffer raises the minibuffer's frame.
 Some uses of the echo area also raise that frame (since they use it too).  */);
   minibuffer_auto_raise = 0;
 
-  DEFVAR_LISP ("completion-regexp-list", &Vcompletion_regexp_list,
+  DEFVAR_LISP ("completion-regexp-list", Vcompletion_regexp_list,
 	       doc: /* List of regexps that should restrict possible completions.
 The basic completion functions only consider a completion acceptable
 if it matches all regular expressions in this list, with
@@ -2194,14 +2136,14 @@
   Vcompletion_regexp_list = Qnil;
 
   DEFVAR_BOOL ("minibuffer-allow-text-properties",
-	       &minibuffer_allow_text_properties,
+	       minibuffer_allow_text_properties,
 	       doc: /* Non-nil means `read-from-minibuffer' should not discard text properties.
 This also affects `read-string', but it does not affect `read-minibuffer',
 `read-no-blanks-input', or any of the functions that do minibuffer input
 with completion; they always discard text properties.  */);
   minibuffer_allow_text_properties = 0;
 
-  DEFVAR_LISP ("minibuffer-prompt-properties", &Vminibuffer_prompt_properties,
+  DEFVAR_LISP ("minibuffer-prompt-properties", Vminibuffer_prompt_properties,
 	       doc: /* Text properties that are added to minibuffer prompts.
 These are in addition to the basic `field' property, and stickiness
 properties.  */);
@@ -2210,7 +2152,7 @@
   Vminibuffer_prompt_properties
     = Fcons (intern_c_string ("read-only"), Fcons (Qt, Qnil));
 
-  DEFVAR_LISP ("read-expression-map", &Vread_expression_map,
+  DEFVAR_LISP ("read-expression-map", Vread_expression_map,
 	       doc: /* Minibuffer keymap used for reading Lisp expressions.  */);
   Vread_expression_map = Qnil;
 
--- a/src/msdos.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/msdos.c	Tue Jan 18 13:45:37 2011 -0700
@@ -404,9 +404,6 @@
 /* Segment and offset of the virtual screen.  If 0, DOS/V is NOT loaded.  */
 static unsigned short screen_virtual_segment = 0;
 static unsigned short screen_virtual_offset = 0;
-/* A flag to control how to display unibyte 8-bit characters.  */
-extern int unibyte_display_via_language_environment;
-
 extern Lisp_Object Qcursor_type;
 extern Lisp_Object Qbar, Qhbar;
 
@@ -846,7 +843,6 @@
    accomodate the screen attribute byte.  */
 #define MAX_SCREEN_BUF 160*2
 
-Lisp_Object Vdos_unsupported_char_glyph;
 extern unsigned char *encode_terminal_code (struct glyph *, int,
 					    struct coding_system *);
 static void
@@ -4226,7 +4222,7 @@
   Qreverse = intern_c_string ("reverse");
   staticpro (&Qreverse);
 
-  DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph,
+  DEFVAR_LISP ("dos-unsupported-char-glyph", Vdos_unsupported_char_glyph,
 	       doc: /* *Glyph to display instead of chars not supported by current codepage.
 This variable is used only by MS-DOS terminals.  */);
   Vdos_unsupported_char_glyph = make_number ('\177');
--- a/src/print.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/print.c	Tue Jan 18 13:45:37 2011 -0700
@@ -37,13 +37,13 @@
 #include "termhooks.h"		/* For struct terminal.  */
 #include "font.h"
 
-Lisp_Object Vstandard_output, Qstandard_output;
+Lisp_Object Qstandard_output;
 
 Lisp_Object Qtemp_buffer_setup_hook;
 
 /* These are used to print like we read.  */
 
-Lisp_Object Vfloat_output_format, Qfloat_output_format;
+Lisp_Object Qfloat_output_format;
 
 #include <math.h>
 
@@ -78,49 +78,9 @@
 /* Bytes stored in print_buffer.  */
 EMACS_INT print_buffer_pos_byte;
 
-/* Maximum length of list to print in full; noninteger means
-   effectively infinity */
-
-Lisp_Object Vprint_length;
-
-/* Maximum depth of list to print in full; noninteger means
-   effectively infinity.  */
-
-Lisp_Object Vprint_level;
-
-/* Nonzero means print newlines in strings as \n.  */
-
-int print_escape_newlines;
-
-/* Nonzero means to print single-byte non-ascii characters in strings as
-   octal escapes.  */
-
-int print_escape_nonascii;
-
-/* Nonzero means to print multibyte characters in strings as hex escapes.  */
-
-int print_escape_multibyte;
-
 Lisp_Object Qprint_escape_newlines;
 Lisp_Object Qprint_escape_multibyte, Qprint_escape_nonascii;
 
-/* Nonzero means print (quote foo) forms as 'foo, etc.  */
-
-int print_quoted;
-
-/* Non-nil means print #: before uninterned symbols.  */
-
-Lisp_Object Vprint_gensym;
-
-/* Non-nil means print recursive structures using #n= and #n# syntax.  */
-
-Lisp_Object Vprint_circle;
-
-/* Non-nil means keep continuous number for #n= and #n# syntax
-   between several print functions.  */
-
-Lisp_Object Vprint_continuous_numbering;
-
 /* Vprint_number_table is a table, that keeps objects that are going to
    be printed, to allow use of #n= and #n# to express sharing.
    For any given object, the table can give the following values:
@@ -130,8 +90,6 @@
    print_number_index holds the largest N already used.
    N has to be striclty larger than 0 since we need to distinguish -N.  */
 int print_number_index;
-Lisp_Object Vprint_number_table;
-
 void print_interval (INTERVAL interval, Lisp_Object printcharfun);
 
 /* GDB resets this to zero on W32 to disable OutputDebugString calls.  */
@@ -1336,10 +1294,6 @@
   print_preprocess (interval->plist);
 }
 
-/* A flag to control printing of `charset' text property.
-   The default value is Qdefault. */
-Lisp_Object Vprint_charset_text_property;
-
 static void print_check_string_charset_prop (INTERVAL interval, Lisp_Object string);
 
 #define PRINT_STRING_NON_CHARSET_FOUND 1
@@ -2207,7 +2161,7 @@
   Qtemp_buffer_setup_hook = intern_c_string ("temp-buffer-setup-hook");
   staticpro (&Qtemp_buffer_setup_hook);
 
-  DEFVAR_LISP ("standard-output", &Vstandard_output,
+  DEFVAR_LISP ("standard-output", Vstandard_output,
 	       doc: /* Output stream `print' uses by default for outputting a character.
 This may be any function of one argument.
 It may also be a buffer (output is inserted before point)
@@ -2217,7 +2171,7 @@
   Qstandard_output = intern_c_string ("standard-output");
   staticpro (&Qstandard_output);
 
-  DEFVAR_LISP ("float-output-format", &Vfloat_output_format,
+  DEFVAR_LISP ("float-output-format", Vfloat_output_format,
 	       doc: /* The format descriptor string used to print floats.
 This is a %-spec like those accepted by `printf' in C,
 but with some restrictions.  It must start with the two characters `%.'.
@@ -2237,22 +2191,22 @@
   Qfloat_output_format = intern_c_string ("float-output-format");
   staticpro (&Qfloat_output_format);
 
-  DEFVAR_LISP ("print-length", &Vprint_length,
+  DEFVAR_LISP ("print-length", Vprint_length,
 	       doc: /* Maximum length of list to print before abbreviating.
 A value of nil means no limit.  See also `eval-expression-print-length'.  */);
   Vprint_length = Qnil;
 
-  DEFVAR_LISP ("print-level", &Vprint_level,
+  DEFVAR_LISP ("print-level", Vprint_level,
 	       doc: /* Maximum depth of list nesting to print before abbreviating.
 A value of nil means no limit.  See also `eval-expression-print-level'.  */);
   Vprint_level = Qnil;
 
-  DEFVAR_BOOL ("print-escape-newlines", &print_escape_newlines,
+  DEFVAR_BOOL ("print-escape-newlines", print_escape_newlines,
 	       doc: /* Non-nil means print newlines in strings as `\\n'.
 Also print formfeeds as `\\f'.  */);
   print_escape_newlines = 0;
 
-  DEFVAR_BOOL ("print-escape-nonascii", &print_escape_nonascii,
+  DEFVAR_BOOL ("print-escape-nonascii", print_escape_nonascii,
 	       doc: /* Non-nil means print unibyte non-ASCII chars in strings as \\OOO.
 \(OOO is the octal representation of the character code.)
 Only single-byte characters are affected, and only in `prin1'.
@@ -2260,18 +2214,18 @@
 enabled regardless of the value of the variable.  */);
   print_escape_nonascii = 0;
 
-  DEFVAR_BOOL ("print-escape-multibyte", &print_escape_multibyte,
+  DEFVAR_BOOL ("print-escape-multibyte", print_escape_multibyte,
 	       doc: /* Non-nil means print multibyte characters in strings as \\xXXXX.
 \(XXXX is the hex representation of the character code.)
 This affects only `prin1'.  */);
   print_escape_multibyte = 0;
 
-  DEFVAR_BOOL ("print-quoted", &print_quoted,
+  DEFVAR_BOOL ("print-quoted", print_quoted,
 	       doc: /* Non-nil means print quoted forms with reader syntax.
 I.e., (quote foo) prints as 'foo, (function foo) as #'foo.  */);
   print_quoted = 0;
 
-  DEFVAR_LISP ("print-gensym", &Vprint_gensym,
+  DEFVAR_LISP ("print-gensym", Vprint_gensym,
 	       doc: /* Non-nil means print uninterned symbols so they will read as uninterned.
 I.e., the value of (make-symbol \"foobar\") prints as #:foobar.
 When the uninterned symbol appears within a recursive data structure,
@@ -2280,7 +2234,7 @@
 shared once again when the text is read back.  */);
   Vprint_gensym = Qnil;
 
-  DEFVAR_LISP ("print-circle", &Vprint_circle,
+  DEFVAR_LISP ("print-circle", Vprint_circle,
 	       doc: /* *Non-nil means print recursive structures using #N= and #N# syntax.
 If nil, printing proceeds recursively and may lead to
 `max-lisp-eval-depth' being exceeded or an error may occur:
@@ -2292,14 +2246,14 @@
 where N is a positive decimal integer.  */);
   Vprint_circle = Qnil;
 
-  DEFVAR_LISP ("print-continuous-numbering", &Vprint_continuous_numbering,
+  DEFVAR_LISP ("print-continuous-numbering", Vprint_continuous_numbering,
 	       doc: /* *Non-nil means number continuously across print calls.
 This affects the numbers printed for #N= labels and #M# references.
 See also `print-circle', `print-gensym', and `print-number-table'.
 This variable should not be set with `setq'; bind it with a `let' instead.  */);
   Vprint_continuous_numbering = Qnil;
 
-  DEFVAR_LISP ("print-number-table", &Vprint_number_table,
+  DEFVAR_LISP ("print-number-table", Vprint_number_table,
 	       doc: /* A vector used internally to produce `#N=' labels and `#N#' references.
 The Lisp printer uses this vector to detect Lisp objects referenced more
 than once.
@@ -2312,7 +2266,7 @@
 that need to be recorded in the table.  */);
   Vprint_number_table = Qnil;
 
-  DEFVAR_LISP ("print-charset-text-property", &Vprint_charset_text_property,
+  DEFVAR_LISP ("print-charset-text-property", Vprint_charset_text_property,
 	       doc: /* A flag to control printing of `charset' text property on printing a string.
 The value must be nil, t, or `default'.
 
--- a/src/process.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/process.c	Tue Jan 18 13:45:37 2011 -0700
@@ -121,9 +121,6 @@
 
 static int kbd_is_on_hold;
 
-/* Nonzero means delete a process right away if it exits.  */
-static int delete_exited_processes;
-
 /* Nonzero means don't run process sentinels.  This is used
    when exiting.  */
 int inhibit_sentinels;
@@ -175,10 +172,6 @@
 extern int h_errno;
 #endif
 
-/* t means use pty, nil means use a pipe,
-   maybe other values to come.  */
-static Lisp_Object Vprocess_connection_type;
-
 /* These next two vars are non-static since sysdep.c uses them in the
    emulation of `select'.  */
 /* Number of events of change of status of a process.  */
@@ -247,11 +240,6 @@
 
 static int process_output_skip;
 
-/* Non-nil means to delay reading process output to improve buffering.
-   A value of t means that delay is reset after each send, any other
-   non-nil value does not reset the delay.  A value of nil disables
-   adaptive read buffering completely.  */
-static Lisp_Object Vprocess_adaptive_read_buffering;
 #else
 #define process_output_delay_count 0
 #endif
@@ -7642,14 +7630,14 @@
   Qargs = intern_c_string ("args");
   staticpro (&Qargs);
 
-  DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,
+  DEFVAR_BOOL ("delete-exited-processes", delete_exited_processes,
 	       doc: /* *Non-nil means delete processes immediately when they exit.
 A value of nil means don't delete them until `list-processes' is run.  */);
 
   delete_exited_processes = 1;
 
 #ifdef subprocesses
-  DEFVAR_LISP ("process-connection-type", &Vprocess_connection_type,
+  DEFVAR_LISP ("process-connection-type", Vprocess_connection_type,
 	       doc: /* Control type of device used to communicate with subprocesses.
 Values are nil to use a pipe, or t or `pty' to use a pty.
 The value has no effect if the system has no ptys or if all ptys are busy:
@@ -7658,7 +7646,7 @@
   Vprocess_connection_type = Qt;
 
 #ifdef ADAPTIVE_READ_BUFFERING
-  DEFVAR_LISP ("process-adaptive-read-buffering", &Vprocess_adaptive_read_buffering,
+  DEFVAR_LISP ("process-adaptive-read-buffering", Vprocess_adaptive_read_buffering,
 	       doc: /* If non-nil, improve receive buffering by delaying after short reads.
 On some systems, when Emacs reads the output from a subprocess, the output data
 is read in very small blocks, potentially resulting in very poor performance.
--- a/src/search.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/search.c	Tue Jan 18 13:45:37 2011 -0700
@@ -91,13 +91,6 @@
 /* Error condition used for failing searches */
 Lisp_Object Qsearch_failed;
 
-Lisp_Object Vsearch_spaces_regexp;
-
-/* If non-nil, the match data will not be changed during call to
-   searching or matching functions.  This variable is for internal use
-   only.  */
-Lisp_Object Vinhibit_changing_match_data;
-
 static void set_search_regs (EMACS_INT, EMACS_INT);
 static void save_search_regs (void);
 static EMACS_INT simple_search (EMACS_INT, unsigned char *, EMACS_INT,
@@ -3224,7 +3217,7 @@
   saved_last_thing_searched = Qnil;
   staticpro (&saved_last_thing_searched);
 
-  DEFVAR_LISP ("search-spaces-regexp", &Vsearch_spaces_regexp,
+  DEFVAR_LISP ("search-spaces-regexp", Vsearch_spaces_regexp,
       doc: /* Regexp to substitute for bunches of spaces in regexp search.
 Some commands use this for user-specified regexps.
 Spaces that occur inside character classes or repetition operators
@@ -3232,7 +3225,7 @@
 A value of nil (which is the normal value) means treat spaces literally.  */);
   Vsearch_spaces_regexp = Qnil;
 
-  DEFVAR_LISP ("inhibit-changing-match-data", &Vinhibit_changing_match_data,
+  DEFVAR_LISP ("inhibit-changing-match-data", Vinhibit_changing_match_data,
       doc: /* Internal use only.
 If non-nil, the primitive searching and matching functions
 such as `looking-at', `string-match', `re-search-forward', etc.,
--- a/src/syntax.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/syntax.c	Tue Jan 18 13:45:37 2011 -0700
@@ -98,23 +98,11 @@
 
 Lisp_Object Qsyntax_table_p, Qsyntax_table, Qscan_error;
 
-int words_include_escapes;
-int parse_sexp_lookup_properties;
-
-/* Nonzero means `scan-sexps' treat all multibyte characters as symbol.  */
-int multibyte_syntax_as_symbol;
-
 /* Used as a temporary in SYNTAX_ENTRY and other macros in syntax.h,
    if not compiled with GCC.  No need to mark it, since it is used
    only very temporarily.  */
 Lisp_Object syntax_temp;
 
-/* Non-zero means an open parenthesis in column 0 is always considered
-   to be the start of a defun.  Zero means an open parenthesis in
-   column 0 has no special meaning.  */
-
-int open_paren_in_column_0_is_defun_start;
-
 /* This is the internal form of the parse state used in parse-partial-sexp.  */
 
 struct lisp_parse_state
@@ -1220,12 +1208,6 @@
   return syntax;
 }
 
-int parse_sexp_ignore_comments;
-
-/* Char-table of functions that find the next or previous word
-   boundary.  */
-Lisp_Object Vfind_word_boundary_function_table;
-
 /* Return the position across COUNT words from FROM.
    If that many words cannot be found before the end of the buffer, return 0.
    COUNT negative means scan backward and stop at word beginning.  */
@@ -3482,31 +3464,31 @@
   Fput (Qscan_error, Qerror_message,
 	make_pure_c_string ("Scan error"));
 
-  DEFVAR_BOOL ("parse-sexp-ignore-comments", &parse_sexp_ignore_comments,
+  DEFVAR_BOOL ("parse-sexp-ignore-comments", parse_sexp_ignore_comments,
 	       doc: /* Non-nil means `forward-sexp', etc., should treat comments as whitespace.  */);
 
-  DEFVAR_BOOL ("parse-sexp-lookup-properties", &parse_sexp_lookup_properties,
+  DEFVAR_BOOL ("parse-sexp-lookup-properties", parse_sexp_lookup_properties,
 	       doc: /* Non-nil means `forward-sexp', etc., obey `syntax-table' property.
 Otherwise, that text property is simply ignored.
 See the info node `(elisp)Syntax Properties' for a description of the
 `syntax-table' property.  */);
 
   words_include_escapes = 0;
-  DEFVAR_BOOL ("words-include-escapes", &words_include_escapes,
+  DEFVAR_BOOL ("words-include-escapes", words_include_escapes,
 	       doc: /* Non-nil means `forward-word', etc., should treat escape chars part of words.  */);
 
-  DEFVAR_BOOL ("multibyte-syntax-as-symbol", &multibyte_syntax_as_symbol,
+  DEFVAR_BOOL ("multibyte-syntax-as-symbol", multibyte_syntax_as_symbol,
 	       doc: /* Non-nil means `scan-sexps' treats all multibyte characters as symbol.  */);
   multibyte_syntax_as_symbol = 0;
 
   DEFVAR_BOOL ("open-paren-in-column-0-is-defun-start",
-	       &open_paren_in_column_0_is_defun_start,
+	       open_paren_in_column_0_is_defun_start,
 	       doc: /* *Non-nil means an open paren in column 0 denotes the start of a defun.  */);
   open_paren_in_column_0_is_defun_start = 1;
 
 
   DEFVAR_LISP ("find-word-boundary-function-table",
-	       &Vfind_word_boundary_function_table,
+	       Vfind_word_boundary_function_table,
 	       doc: /*
 Char table of functions to search for the word boundary.
 Each function is called with two arguments; POS and LIMIT.
--- a/src/syntax.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/syntax.h	Tue Jan 18 13:45:37 2011 -0700
@@ -298,7 +298,5 @@
 };
 
 extern struct gl_state_s gl_state;
-extern int parse_sexp_lookup_properties;
-
 extern EMACS_INT scan_words (EMACS_INT, EMACS_INT);
 
--- a/src/sysdep.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/sysdep.c	Tue Jan 18 13:45:37 2011 -0700
@@ -1305,11 +1305,6 @@
 }
 #endif /* HAVE_PTYS */
 
-/* init_system_name sets up the string for the Lisp function
-   system-name to return. */
-
-extern Lisp_Object Vsystem_name;
-
 #ifdef HAVE_SOCKETS
 #include <sys/socket.h>
 #include <netdb.h>
--- a/src/term.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/term.c	Tue Jan 18 13:45:37 2011 -0700
@@ -121,27 +121,11 @@
 
 #define OUTPUT1_IF(tty, a) do { if (a) emacs_tputs ((tty), a, 1, cmputc); } while (0)
 
-/* If true, use "vs", otherwise use "ve" to make the cursor visible.  */
-
-static int visible_cursor;
-
 /* Display space properties */
 
-/* Functions to call after suspending a tty. */
-Lisp_Object Vsuspend_tty_functions;
-
-/* Functions to call after resuming a tty. */
-Lisp_Object Vresume_tty_functions;
-
 /* Chain of all tty device parameters. */
 struct tty_display_info *tty_list;
 
-/* Nonzero means no need to redraw the entire frame on resuming a
-   suspended Emacs.  This is useful on terminals with multiple
-   pages, where one page is used for Emacs and another for all
-   else. */
-int no_redraw_on_reenter;
-
 /* Meaning of bits in no_color_video.  Each bit set means that the
    corresponding attribute cannot be combined with colors.  */
 
@@ -172,10 +156,6 @@
    should not open a frame on stdout. */
 static int no_controlling_tty;
 
-/* Provided for lisp packages.  */
-
-static int system_uses_terminfo;
-
 
 
 #ifdef HAVE_GPM
@@ -3770,7 +3750,7 @@
 void
 syms_of_term (void)
 {
-  DEFVAR_BOOL ("system-uses-terminfo", &system_uses_terminfo,
+  DEFVAR_BOOL ("system-uses-terminfo", system_uses_terminfo,
     doc: /* Non-nil means the system uses terminfo rather than termcap.
 This variable can be used by terminal emulator packages.  */);
 #ifdef TERMINFO
@@ -3779,20 +3759,20 @@
   system_uses_terminfo = 0;
 #endif
 
-  DEFVAR_LISP ("suspend-tty-functions", &Vsuspend_tty_functions,
+  DEFVAR_LISP ("suspend-tty-functions", Vsuspend_tty_functions,
     doc: /* Functions to be run after suspending a tty.
 The functions are run with one argument, the terminal object to be suspended.
 See `suspend-tty'.  */);
   Vsuspend_tty_functions = Qnil;
 
 
-  DEFVAR_LISP ("resume-tty-functions", &Vresume_tty_functions,
+  DEFVAR_LISP ("resume-tty-functions", Vresume_tty_functions,
     doc: /* Functions to be run after resuming a tty.
 The functions are run with one argument, the terminal object that was revived.
 See `resume-tty'.  */);
   Vresume_tty_functions = Qnil;
 
-  DEFVAR_BOOL ("visible-cursor", &visible_cursor,
+  DEFVAR_BOOL ("visible-cursor", visible_cursor,
 	       doc: /* Non-nil means to make the cursor very visible.
 This only has an effect when running in a text terminal.
 What means \"very visible\" is up to your terminal.  It may make the cursor
--- a/src/terminal.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/terminal.c	Tue Jan 18 13:45:37 2011 -0700
@@ -37,9 +37,6 @@
 /* The initial terminal device, created by initial_term_init. */
 struct terminal *initial_terminal;
 
-/* Function to use to ring the bell.  */
-Lisp_Object Vring_bell_function;
-
 static void delete_initial_terminal (struct terminal *);
 
 
@@ -291,8 +288,6 @@
 
 Lisp_Object Qrun_hook_with_args;
 static Lisp_Object Qdelete_terminal_functions;
-static Lisp_Object Vdelete_terminal_functions;
-
 DEFUN ("delete-terminal", Fdelete_terminal, Sdelete_terminal, 0, 2, 0,
        doc: /* Delete TERMINAL by deleting all frames on it and closing the terminal.
 TERMINAL may be a terminal object, a frame, or nil (meaning the
@@ -530,12 +525,12 @@
 syms_of_terminal (void)
 {
 
-  DEFVAR_LISP ("ring-bell-function", &Vring_bell_function,
+  DEFVAR_LISP ("ring-bell-function", Vring_bell_function,
     doc: /* Non-nil means call this function to ring the bell.
 The function should accept no arguments.  */);
   Vring_bell_function = Qnil;
 
-  DEFVAR_LISP ("delete-terminal-functions", &Vdelete_terminal_functions,
+  DEFVAR_LISP ("delete-terminal-functions", Vdelete_terminal_functions,
     doc: /* Special hook run when a terminal is deleted.
 Each function is called with argument, the terminal.
 This may be called just before actually deleting the terminal,
--- a/src/termopts.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/termopts.h	Tue Jan 18 13:45:37 2011 -0700
@@ -18,12 +18,6 @@
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-/* Nonzero means flash the screen instead of ringing the bell.  */
-extern int visible_bell;
-
-/* Nonzero means invert white and black for the entire screen.  */
-extern int inverse_video;
-
 /* Nonzero means use ^S/^Q as cretinous flow control.  */
 extern int flow_control;
 
@@ -36,11 +30,3 @@
 /* Terminal has meta key */
 extern int meta_key;
 
-/* Defined in xdisp.c */
-extern Lisp_Object Vtruncate_partial_width_windows;
-
-/* Nonzero means no need to redraw the entire frame on resuming a suspended
-   Emacs.  This is useful on terminals with multiple pages, where one page is
-   used for Emacs and another for all else. */
-extern int no_redraw_on_reenter;
-
--- a/src/textprop.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/textprop.c	Tue Jan 18 13:45:37 2011 -0700
@@ -68,11 +68,6 @@
    traversing plists.  */
 #define PLIST_ELT_P(o1, o2) (CONSP (o1) && ((o2)=XCDR (o1), CONSP (o2)))
 
-Lisp_Object Vinhibit_point_motion_hooks;
-Lisp_Object Vdefault_text_properties;
-Lisp_Object Vchar_property_alias_alist;
-Lisp_Object Vtext_property_default_nonsticky;
-
 /* verify_interval_modification saves insertion hooks here
    to be run later by report_interval_modification.  */
 Lisp_Object interval_insert_behind_hooks;
@@ -2234,13 +2229,13 @@
 void
 syms_of_textprop (void)
 {
-  DEFVAR_LISP ("default-text-properties", &Vdefault_text_properties,
+  DEFVAR_LISP ("default-text-properties", Vdefault_text_properties,
 	       doc: /* Property-list used as default values.
 The value of a property in this list is seen as the value for every
 character that does not have its own value for that property.  */);
   Vdefault_text_properties = Qnil;
 
-  DEFVAR_LISP ("char-property-alias-alist", &Vchar_property_alias_alist,
+  DEFVAR_LISP ("char-property-alias-alist", Vchar_property_alias_alist,
 	       doc: /* Alist of alternative properties for properties without a value.
 Each element should look like (PROPERTY ALTERNATIVE1 ALTERNATIVE2...).
 If a piece of text has no direct value for a particular property, then
@@ -2249,13 +2244,13 @@
 returned. */);
   Vchar_property_alias_alist = Qnil;
 
-  DEFVAR_LISP ("inhibit-point-motion-hooks", &Vinhibit_point_motion_hooks,
+  DEFVAR_LISP ("inhibit-point-motion-hooks", Vinhibit_point_motion_hooks,
 	       doc: /* If non-nil, don't run `point-left' and `point-entered' text properties.
 This also inhibits the use of the `intangible' text property.  */);
   Vinhibit_point_motion_hooks = Qnil;
 
   DEFVAR_LISP ("text-property-default-nonsticky",
-	       &Vtext_property_default_nonsticky,
+	       Vtext_property_default_nonsticky,
 	       doc: /* Alist of properties vs the corresponding non-stickinesses.
 Each element has the form (PROPERTY . NONSTICKINESS).
 
--- a/src/undo.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/undo.c	Tue Jan 18 13:45:37 2011 -0700
@@ -25,17 +25,6 @@
 #include "commands.h"
 #include "window.h"
 
-/* Limits controlling how much undo information to keep.  */
-
-EMACS_INT undo_limit;
-EMACS_INT undo_strong_limit;
-
-Lisp_Object Vundo_outer_limit;
-
-/* Function to call when undo_outer_limit is exceeded.  */
-
-Lisp_Object Vundo_outer_limit_function;
-
 /* Last buffer for which undo information was recorded.  */
 /* BEWARE: This is not traced by the GC, so never dereference it!  */
 struct buffer *last_undo_buffer;
@@ -57,10 +46,6 @@
    an undo-boundary.  */
 Lisp_Object pending_boundary;
 
-/* Nonzero means do not record point in record_point.  */
-
-int undo_inhibit_record_point;
-
 /* Record point as it was at beginning of this command (if necessary)
    and prepare the undo info for recording a change.
    PT is the position of point that will naturally occur as a result of the
@@ -673,7 +658,7 @@
   defsubr (&Sprimitive_undo);
   defsubr (&Sundo_boundary);
 
-  DEFVAR_INT ("undo-limit", &undo_limit,
+  DEFVAR_INT ("undo-limit", undo_limit,
 	      doc: /* Keep no more undo information once it exceeds this size.
 This limit is applied when garbage collection happens.
 When a previous command increases the total undo list size past this
@@ -683,7 +668,7 @@
 which includes both saved text and other data.  */);
   undo_limit = 80000;
 
-  DEFVAR_INT ("undo-strong-limit", &undo_strong_limit,
+  DEFVAR_INT ("undo-strong-limit", undo_strong_limit,
 	      doc: /* Don't keep more than this much size of undo information.
 This limit is applied when garbage collection happens.
 When a previous command increases the total undo list size past this
@@ -695,7 +680,7 @@
 which includes both saved text and other data.  */);
   undo_strong_limit = 120000;
 
-  DEFVAR_LISP ("undo-outer-limit", &Vundo_outer_limit,
+  DEFVAR_LISP ("undo-outer-limit", Vundo_outer_limit,
 	      doc: /* Outer limit on size of undo information for one command.
 At garbage collection time, if the current command has produced
 more than this much undo information, it discards the info and displays
@@ -712,7 +697,7 @@
 that variable usually specifies.  */);
   Vundo_outer_limit = make_number (12000000);
 
-  DEFVAR_LISP ("undo-outer-limit-function", &Vundo_outer_limit_function,
+  DEFVAR_LISP ("undo-outer-limit-function", Vundo_outer_limit_function,
 	       doc: /* Function to call when an undo list exceeds `undo-outer-limit'.
 This function is called with one argument, the current undo list size
 for the most recent command (since the last undo boundary).
@@ -723,7 +708,7 @@
 so it must make sure not to do a lot of consing.  */);
   Vundo_outer_limit_function = Qnil;
 
-  DEFVAR_BOOL ("undo-inhibit-record-point", &undo_inhibit_record_point,
+  DEFVAR_BOOL ("undo-inhibit-record-point", undo_inhibit_record_point,
 	       doc: /* Non-nil means do not record `point' in `buffer-undo-list'.  */);
   undo_inhibit_record_point = 0;
 }
--- a/src/w16select.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w16select.c	Tue Jan 18 13:45:37 2011 -0700
@@ -69,13 +69,6 @@
 
 Lisp_Object QCLIPBOARD, QPRIMARY;
 
-/* Coding system for communicating with other Windows programs via the
-   clipboard.  */
-static Lisp_Object Vselection_coding_system;
-
-/* Coding system for the next communicating with other Windows programs.  */
-static Lisp_Object Vnext_selection_coding_system;
-
 /* The segment address and the size of the buffer in low
    memory used to move data between us and WinOldAp module.  */
 static struct {
@@ -693,7 +686,7 @@
   defsubr (&Sw16_get_clipboard_data);
   defsubr (&Sx_selection_exists_p);
 
-  DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system,
+  DEFVAR_LISP ("selection-coding-system", Vselection_coding_system,
 	       doc: /* Coding system for communicating with other programs.
 
 For MS-Windows and MS-DOS:
@@ -725,7 +718,7 @@
 The default value is nil.  */);
   Vselection_coding_system = intern ("iso-latin-1-dos");
 
-  DEFVAR_LISP ("next-selection-coding-system", &Vnext_selection_coding_system,
+  DEFVAR_LISP ("next-selection-coding-system", Vnext_selection_coding_system,
 	       doc: /* Coding system for the next communication with other programs.
 Usually, `selection-coding-system' is used for communicating with
 other programs (X Windows clients or MS Windows programs).  But, if this
--- a/src/w32.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32.c	Tue Jan 18 13:45:37 2011 -0700
@@ -148,14 +148,9 @@
 void globals_of_w32 (void);
 static DWORD get_rid (PSID);
 
-extern Lisp_Object Vw32_downcase_file_names;
-extern Lisp_Object Vw32_generate_fake_inodes;
-extern Lisp_Object Vw32_get_true_file_attributes;
 /* Defined in process.c for its own purpose.  */
 extern Lisp_Object Qlocal;
 
-extern int w32_num_mouse_buttons;
-
 
 /* Initialization states.
 
@@ -1514,8 +1509,6 @@
 }
 
 char *get_emacs_configuration (void);
-extern Lisp_Object Vsystem_configuration;
-
 void
 init_environment (char ** argv)
 {
@@ -5184,9 +5177,6 @@
   return rc;
 }
 
-/* From ntproc.c */
-extern int w32_pipe_read_delay;
-
 /* Function to do blocking read of one byte, needed to implement
    select.  It is only allowed on sockets and pipes. */
 int
--- a/src/w32console.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32console.c	Tue Jan 18 13:45:37 2011 -0700
@@ -72,13 +72,6 @@
 static CONSOLE_CURSOR_INFO prev_console_cursor;
 #endif
 
-extern Lisp_Object Vtty_defined_color_alist;
-
-/* Determine whether to make frame dimensions match the screen buffer,
-   or the current window size.  The former is desirable when running
-   over telnet, while the latter is more useful when working directly at
-   the console with a large scroll-back buffer.  */
-int w32_use_full_screen_buffer;
 HANDLE  keyboard_handle;
 
 
@@ -747,7 +740,7 @@
 syms_of_ntterm (void)
 {
   DEFVAR_BOOL ("w32-use-full-screen-buffer",
-               &w32_use_full_screen_buffer,
+               w32_use_full_screen_buffer,
 	       doc: /* Non-nil means make terminal frames use the full screen buffer dimensions.
 This is desirable when running Emacs over telnet.
 A value of nil means use the current console window dimensions; this
--- a/src/w32fns.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32fns.c	Tue Jan 18 13:45:37 2011 -0700
@@ -84,117 +84,21 @@
 
 extern const char *const lispy_function_keys[];
 
-/* The colormap for converting color names to RGB values */
-Lisp_Object Vw32_color_map;
-
-/* Non nil if alt key presses are passed on to Windows.  */
-Lisp_Object Vw32_pass_alt_to_system;
-
-/* Non nil if alt key is translated to meta_modifier, nil if it is translated
-   to alt_modifier.  */
-Lisp_Object Vw32_alt_is_meta;
-
-/* If non-zero, the windows virtual key code for an alternative quit key. */
-int w32_quit_key;
-
-/* Non nil if left window key events are passed on to Windows (this only
-   affects whether "tapping" the key opens the Start menu).  */
-Lisp_Object Vw32_pass_lwindow_to_system;
-
-/* Non nil if right window key events are passed on to Windows (this
-   only affects whether "tapping" the key opens the Start menu).  */
-Lisp_Object Vw32_pass_rwindow_to_system;
-
-/* Virtual key code used to generate "phantom" key presses in order
-   to stop system from acting on Windows key events.  */
-Lisp_Object Vw32_phantom_key_code;
-
-/* Modifier associated with the left "Windows" key, or nil to act as a
-   normal key.  */
-Lisp_Object Vw32_lwindow_modifier;
-
-/* Modifier associated with the right "Windows" key, or nil to act as a
-   normal key.  */
-Lisp_Object Vw32_rwindow_modifier;
-
-/* Modifier associated with the "Apps" key, or nil to act as a normal
-   key.  */
-Lisp_Object Vw32_apps_modifier;
-
-/* Value is nil if Num Lock acts as a function key.  */
-Lisp_Object Vw32_enable_num_lock;
-
-/* Value is nil if Caps Lock acts as a function key.  */
-Lisp_Object Vw32_enable_caps_lock;
-
-/* Modifier associated with Scroll Lock, or nil to act as a normal key.  */
-Lisp_Object Vw32_scroll_lock_modifier;
-
-/* Switch to control whether we inhibit requests for synthesized bold
-   and italic versions of fonts.  */
-int w32_enable_synthesized_fonts;
-
-/* Enable palette management. */
-Lisp_Object Vw32_enable_palette;
-
-/* Control how close left/right button down events must be to
-   be converted to a middle button down event. */
-int w32_mouse_button_tolerance;
-
-/* Minimum interval between mouse movement (and scroll bar drag)
-   events that are passed on to the event loop. */
-int w32_mouse_move_interval;
-
-/* Flag to indicate if XBUTTON events should be passed on to Windows.  */
-static int w32_pass_extra_mouse_buttons_to_system;
-
-/* Flag to indicate if media keys should be passed on to Windows.  */
-static int w32_pass_multimedia_buttons_to_system;
-
-/* Non nil if no window manager is in use.  */
-Lisp_Object Vx_no_window_manager;
-
 /* If non-zero, a w32 timer that, when it expires, displays an
    hourglass cursor on all frames.  */
 static unsigned hourglass_timer = 0;
 static HWND hourglass_hwnd = NULL;
 
-#if 0 /* TODO: Mouse cursor customization.  */
-/* The background and shape of the mouse pointer, and shape when not
-   over text or in the modeline.  */
-Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
-Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape;
-
-/* The shape when over mouse-sensitive text.  */
-
-Lisp_Object Vx_sensitive_text_pointer_shape;
-#endif
+#if 0 #endif
 
 #ifndef IDC_HAND
 #define IDC_HAND MAKEINTRESOURCE(32649)
 #endif
 
-/* Color of chars displayed in cursor box.  */
-Lisp_Object Vx_cursor_fore_pixel;
-
 /* Nonzero if using Windows.  */
 
 static int w32_in_use;
 
-/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.  */
-
-Lisp_Object Vx_pixel_size_width_font_regexp;
-
-/* Alist of bdf fonts and the files that define them.  */
-Lisp_Object Vw32_bdf_filename_alist;
-
-/* A flag to control whether fonts are matched strictly or not.  */
-static int w32_strict_fontnames;
-
-/* A flag to control whether we should only repaint if GetUpdateRect
-   indicates there is an update region.  */
-static int w32_strict_painting;
-
 Lisp_Object Qnone;
 Lisp_Object Qsuppress_icon;
 Lisp_Object Qundefined_color;
@@ -209,9 +113,6 @@
 Lisp_Object Qshift;
 
 
-/* The ANSI codepage.  */
-int w32_ansi_code_page;
-
 /* Prefix for system colors.  */
 #define SYSTEM_COLOR_PREFIX "System"
 #define SYSTEM_COLOR_PREFIX_LEN (sizeof (SYSTEM_COLOR_PREFIX) - 1)
@@ -288,14 +189,6 @@
 #define MENU_FREE_DELAY 1000
 static unsigned menu_free_timer = 0;
 
-/* In dispnew.c */
-
-extern Lisp_Object Vwindow_system_version;
-
-/* The below are defined in frame.c.  */
-
-extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
-extern Lisp_Object Vwindow_system_version;
 extern Lisp_Object Qtooltip;
 
 #ifdef GLYPH_DEBUG
@@ -303,17 +196,11 @@
 #endif
 
 
-/* From w32term.c. */
-extern int w32_num_mouse_buttons;
-extern Lisp_Object Vw32_recognize_altgr;
-
 extern HWND w32_system_caret_hwnd;
 
 extern int w32_system_caret_height;
 extern int w32_system_caret_x;
 extern int w32_system_caret_y;
-extern int w32_use_visible_system_caret;
-
 static HWND w32_visible_system_caret_hwnd;
 
 /* From w32menu.c  */
@@ -5138,8 +5025,6 @@
    cursor.  Duplicated from xdisp.c, but cannot use the version there
    due to lack of atimers on w32.  */
 #define DEFAULT_HOURGLASS_DELAY 1
-extern Lisp_Object Vhourglass_delay;
-
 /* Return non-zero if houglass timer has been started or hourglass is shown.  */
 /* PENDING: if W32 can use atimers (atimer.[hc]) then the common impl in
    	    xdisp.c could be used. */
@@ -5271,10 +5156,6 @@
 
 Lisp_Object last_show_tip_args;
 
-/* Maximum size for tooltips; a cons (COLUMNS . ROWS).  */
-
-Lisp_Object Vx_max_tooltip_size;
-
 
 static Lisp_Object
 unwind_create_tip_frame (Lisp_Object frame)
@@ -6931,28 +6812,28 @@
   staticpro (&w32_grabbed_keys);
   w32_grabbed_keys = Qnil;
 
-  DEFVAR_LISP ("w32-color-map", &Vw32_color_map,
+  DEFVAR_LISP ("w32-color-map", Vw32_color_map,
 	       doc: /* An array of color name mappings for Windows.  */);
   Vw32_color_map = Qnil;
 
-  DEFVAR_LISP ("w32-pass-alt-to-system", &Vw32_pass_alt_to_system,
+  DEFVAR_LISP ("w32-pass-alt-to-system", Vw32_pass_alt_to_system,
 	       doc: /* Non-nil if Alt key presses are passed on to Windows.
 When non-nil, for example, Alt pressed and released and then space will
 open the System menu.  When nil, Emacs processes the Alt key events, and
 then silently swallows them.  */);
   Vw32_pass_alt_to_system = Qnil;
 
-  DEFVAR_LISP ("w32-alt-is-meta", &Vw32_alt_is_meta,
+  DEFVAR_LISP ("w32-alt-is-meta", Vw32_alt_is_meta,
 	       doc: /* Non-nil if the Alt key is to be considered the same as the META key.
 When nil, Emacs will translate the Alt key to the ALT modifier, not to META.  */);
   Vw32_alt_is_meta = Qt;
 
-  DEFVAR_INT ("w32-quit-key", &w32_quit_key,
+  DEFVAR_INT ("w32-quit-key", w32_quit_key,
 	       doc: /* If non-zero, the virtual key code for an alternative quit key.  */);
   w32_quit_key = 0;
 
   DEFVAR_LISP ("w32-pass-lwindow-to-system",
-	       &Vw32_pass_lwindow_to_system,
+	       Vw32_pass_lwindow_to_system,
 	       doc: /* If non-nil, the left \"Windows\" key is passed on to Windows.
 
 When non-nil, the Start menu is opened by tapping the key.
@@ -6967,7 +6848,7 @@
   Vw32_pass_lwindow_to_system = Qt;
 
   DEFVAR_LISP ("w32-pass-rwindow-to-system",
-	       &Vw32_pass_rwindow_to_system,
+	       Vw32_pass_rwindow_to_system,
 	       doc: /* If non-nil, the right \"Windows\" key is passed on to Windows.
 
 When non-nil, the Start menu is opened by tapping the key.
@@ -6982,7 +6863,7 @@
   Vw32_pass_rwindow_to_system = Qt;
 
   DEFVAR_LISP ("w32-phantom-key-code",
-	       &Vw32_phantom_key_code,
+	       Vw32_phantom_key_code,
 	       doc: /* Virtual key code used to generate \"phantom\" key presses.
 Value is a number between 0 and 255.
 
@@ -6994,19 +6875,19 @@
   XSETINT (Vw32_phantom_key_code, 255);
 
   DEFVAR_LISP ("w32-enable-num-lock",
-	       &Vw32_enable_num_lock,
+	       Vw32_enable_num_lock,
 	       doc: /* If non-nil, the Num Lock key acts normally.
 Set to nil to handle Num Lock as the `kp-numlock' key.  */);
   Vw32_enable_num_lock = Qt;
 
   DEFVAR_LISP ("w32-enable-caps-lock",
-	       &Vw32_enable_caps_lock,
+	       Vw32_enable_caps_lock,
 	       doc: /* If non-nil, the Caps Lock key acts normally.
 Set to nil to handle Caps Lock as the `capslock' key.  */);
   Vw32_enable_caps_lock = Qt;
 
   DEFVAR_LISP ("w32-scroll-lock-modifier",
-	       &Vw32_scroll_lock_modifier,
+	       Vw32_scroll_lock_modifier,
 	       doc: /* Modifier to use for the Scroll Lock ON state.
 The value can be hyper, super, meta, alt, control or shift for the
 respective modifier, or nil to handle Scroll Lock as the `scroll' key.
@@ -7014,7 +6895,7 @@
   Vw32_scroll_lock_modifier = Qnil;
 
   DEFVAR_LISP ("w32-lwindow-modifier",
-	       &Vw32_lwindow_modifier,
+	       Vw32_lwindow_modifier,
 	       doc: /* Modifier to use for the left \"Windows\" key.
 The value can be hyper, super, meta, alt, control or shift for the
 respective modifier, or nil to appear as the `lwindow' key.
@@ -7022,7 +6903,7 @@
   Vw32_lwindow_modifier = Qnil;
 
   DEFVAR_LISP ("w32-rwindow-modifier",
-	       &Vw32_rwindow_modifier,
+	       Vw32_rwindow_modifier,
 	       doc: /* Modifier to use for the right \"Windows\" key.
 The value can be hyper, super, meta, alt, control or shift for the
 respective modifier, or nil to appear as the `rwindow' key.
@@ -7030,23 +6911,23 @@
   Vw32_rwindow_modifier = Qnil;
 
   DEFVAR_LISP ("w32-apps-modifier",
-	       &Vw32_apps_modifier,
+	       Vw32_apps_modifier,
 	       doc: /* Modifier to use for the \"Apps\" key.
 The value can be hyper, super, meta, alt, control or shift for the
 respective modifier, or nil to appear as the `apps' key.
 Any other value will cause the key to be ignored.  */);
   Vw32_apps_modifier = Qnil;
 
-  DEFVAR_BOOL ("w32-enable-synthesized-fonts", &w32_enable_synthesized_fonts,
+  DEFVAR_BOOL ("w32-enable-synthesized-fonts", w32_enable_synthesized_fonts,
 	       doc: /* Non-nil enables selection of artificially italicized and bold fonts.  */);
   w32_enable_synthesized_fonts = 0;
 
-  DEFVAR_LISP ("w32-enable-palette", &Vw32_enable_palette,
+  DEFVAR_LISP ("w32-enable-palette", Vw32_enable_palette,
 	       doc: /* Non-nil enables Windows palette management to map colors exactly.  */);
   Vw32_enable_palette = Qt;
 
   DEFVAR_INT ("w32-mouse-button-tolerance",
-	      &w32_mouse_button_tolerance,
+	      w32_mouse_button_tolerance,
 	      doc: /* Analogue of double click interval for faking middle mouse events.
 The value is the minimum time in milliseconds that must elapse between
 left and right button down events before they are considered distinct events.
@@ -7055,7 +6936,7 @@
   w32_mouse_button_tolerance = GetDoubleClickTime () / 2;
 
   DEFVAR_INT ("w32-mouse-move-interval",
-	      &w32_mouse_move_interval,
+	      w32_mouse_move_interval,
 	      doc: /* Minimum interval between mouse move events.
 The value is the minimum time in milliseconds that must elapse between
 successive mouse move (or scroll bar drag) events before they are
@@ -7063,7 +6944,7 @@
   w32_mouse_move_interval = 0;
 
   DEFVAR_BOOL ("w32-pass-extra-mouse-buttons-to-system",
-	       &w32_pass_extra_mouse_buttons_to_system,
+	       w32_pass_extra_mouse_buttons_to_system,
 	       doc: /* If non-nil, the fourth and fifth mouse buttons are passed to Windows.
 Recent versions of Windows support mice with up to five buttons.
 Since most applications don't support these extra buttons, most mouse
@@ -7073,7 +6954,7 @@
   w32_pass_extra_mouse_buttons_to_system = 0;
 
   DEFVAR_BOOL ("w32-pass-multimedia-buttons-to-system",
-               &w32_pass_multimedia_buttons_to_system,
+               w32_pass_multimedia_buttons_to_system,
                doc: /* If non-nil, media buttons are passed to Windows.
 Some modern keyboards contain buttons for controlling media players, web
 browsers and other applications.  Generally these buttons are handled on a
@@ -7096,7 +6977,7 @@
   w32_pass_multimedia_buttons_to_system = 1;
 
 #if 0 /* TODO: Mouse cursor customization.  */
-  DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape,
+  DEFVAR_LISP ("x-pointer-shape", Vx_pointer_shape,
 	       doc: /* The shape of the pointer when over text.
 Changing the value does not affect existing frames
 unless you set the mouse color.  */);
@@ -7106,37 +6987,37 @@
 
   Vx_mode_pointer_shape = Qnil;
 
-  DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape,
+  DEFVAR_LISP ("x-hourglass-pointer-shape", Vx_hourglass_pointer_shape,
 	       doc: /* The shape of the pointer when Emacs is busy.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
   Vx_hourglass_pointer_shape = Qnil;
 
   DEFVAR_LISP ("x-sensitive-text-pointer-shape",
-	       &Vx_sensitive_text_pointer_shape,
+	       Vx_sensitive_text_pointer_shape,
 	       doc: /* The shape of the pointer when over mouse-sensitive text.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
   Vx_sensitive_text_pointer_shape = Qnil;
 
   DEFVAR_LISP ("x-window-horizontal-drag-cursor",
-	       &Vx_window_horizontal_drag_shape,
+	       Vx_window_horizontal_drag_shape,
 	       doc: /* Pointer shape to use for indicating a window can be dragged horizontally.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
   Vx_window_horizontal_drag_shape = Qnil;
 #endif
 
-  DEFVAR_LISP ("x-cursor-fore-pixel", &Vx_cursor_fore_pixel,
+  DEFVAR_LISP ("x-cursor-fore-pixel", Vx_cursor_fore_pixel,
 	       doc: /* A string indicating the foreground color of the cursor box.  */);
   Vx_cursor_fore_pixel = Qnil;
 
-  DEFVAR_LISP ("x-max-tooltip-size", &Vx_max_tooltip_size,
+  DEFVAR_LISP ("x-max-tooltip-size", Vx_max_tooltip_size,
 	       doc: /* Maximum size for tooltips.
 Value is a pair (COLUMNS . ROWS).  Text larger than this is clipped.  */);
   Vx_max_tooltip_size = Fcons (make_number (80), make_number (40));
 
-  DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager,
+  DEFVAR_LISP ("x-no-window-manager", Vx_no_window_manager,
 	       doc: /* Non-nil if no window manager is in use.
 Emacs doesn't try to figure this out; this is always nil
 unless you set it to something else.  */);
@@ -7145,7 +7026,7 @@
   Vx_no_window_manager = Qnil;
 
   DEFVAR_LISP ("x-pixel-size-width-font-regexp",
-	       &Vx_pixel_size_width_font_regexp,
+	       Vx_pixel_size_width_font_regexp,
 	       doc: /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.
 
 Since Emacs gets width of a font matching with this regexp from
@@ -7155,12 +7036,12 @@
   Vx_pixel_size_width_font_regexp = Qnil;
 
   DEFVAR_LISP ("w32-bdf-filename-alist",
-               &Vw32_bdf_filename_alist,
+               Vw32_bdf_filename_alist,
                doc: /* List of bdf fonts and their corresponding filenames.  */);
   Vw32_bdf_filename_alist = Qnil;
 
   DEFVAR_BOOL ("w32-strict-fontnames",
-               &w32_strict_fontnames,
+               w32_strict_fontnames,
 	       doc: /* Non-nil means only use fonts that are exact matches for those requested.
 Default is nil, which allows old fontnames that are not XLFD compliant,
 and allows third-party CJK display to work by specifying false charset
@@ -7170,7 +7051,7 @@
   w32_strict_fontnames = 0;
 
   DEFVAR_BOOL ("w32-strict-painting",
-               &w32_strict_painting,
+               w32_strict_painting,
 	       doc: /* Non-nil means use strict rules for repainting frames.
 Set this to nil to get the old behavior for repainting; this should
 only be necessary if the default setting causes problems.  */);
@@ -7279,7 +7160,7 @@
       GetProcAddress (imm32_lib, "ImmSetCompositionWindow");
   }
   DEFVAR_INT ("w32-ansi-code-page",
-	      &w32_ansi_code_page,
+	      w32_ansi_code_page,
 	      doc: /* The ANSI code page used by the system.  */);
   w32_ansi_code_page = GetACP ();
 
--- a/src/w32font.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32font.c	Tue Jan 18 13:45:37 2011 -0700
@@ -100,9 +100,6 @@
 static Lisp_Object Qw32_charset_hebrew, Qw32_charset_vietnamese;
 static Lisp_Object Qw32_charset_thai, Qw32_charset_johab, Qw32_charset_mac;
 
-/* Associative list linking character set strings to Windows codepages. */
-static Lisp_Object Vw32_charset_info_alist;
-
 /* Font spacing symbols - defined in font.c.  */
 extern Lisp_Object Qc, Qp, Qm;
 
@@ -2535,7 +2532,7 @@
 
   /* W32 font encodings.  */
   DEFVAR_LISP ("w32-charset-info-alist",
-               &Vw32_charset_info_alist,
+               Vw32_charset_info_alist,
                doc: /* Alist linking Emacs character sets to Windows fonts and codepages.
 Each entry should be of the form:
 
--- a/src/w32inevt.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32inevt.c	Tue Jan 18 13:45:37 2011 -0700
@@ -51,25 +51,8 @@
 /* from keyboard.c */
 extern void reinvoke_input_signal (void);
 
-/* from w32console.c */
-extern int w32_use_full_screen_buffer;
-
-/* from w32fns.c */
-extern Lisp_Object Vw32_alt_is_meta;
 extern unsigned int map_keypad_keys (unsigned int, unsigned int);
 
-/* from w32term */
-extern Lisp_Object Vw32_capslock_is_shiftlock;
-extern Lisp_Object Vw32_enable_caps_lock;
-extern Lisp_Object Vw32_enable_num_lock;
-extern Lisp_Object Vw32_recognize_altgr;
-extern Lisp_Object Vw32_pass_lwindow_to_system;
-extern Lisp_Object Vw32_pass_rwindow_to_system;
-extern Lisp_Object Vw32_phantom_key_code;
-extern Lisp_Object Vw32_lwindow_modifier;
-extern Lisp_Object Vw32_rwindow_modifier;
-extern Lisp_Object Vw32_apps_modifier;
-extern Lisp_Object Vw32_scroll_lock_modifier;
 extern unsigned int w32_key_to_modifier (int key);
 
 /* Event queue */
--- a/src/w32menu.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32menu.c	Tue Jan 18 13:45:37 2011 -0700
@@ -89,9 +89,6 @@
 
 extern Lisp_Object QCtoggle, QCradio;
 
-extern Lisp_Object Voverriding_local_map;
-extern Lisp_Object Voverriding_local_map_menu_flag;
-
 extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
 
 extern Lisp_Object Qmenu_bar_update_hook;
--- a/src/w32proc.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32proc.c	Tue Jan 18 13:45:37 2011 -0700
@@ -68,47 +68,6 @@
 	    + ((DWORD)(var) - (section)->VirtualAddress)		\
 	    + (filedata).file_base))
 
-/* Control whether spawnve quotes arguments as necessary to ensure
-   correct parsing by child process.  Because not all uses of spawnve
-   are careful about constructing argv arrays, we make this behavior
-   conditional (off by default). */
-Lisp_Object Vw32_quote_process_args;
-
-/* Control whether create_child causes the process' window to be
-   hidden.  The default is nil. */
-Lisp_Object Vw32_start_process_show_window;
-
-/* Control whether create_child causes the process to inherit Emacs'
-   console window, or be given a new one of its own.  The default is
-   nil, to allow multiple DOS programs to run on Win95.  Having separate
-   consoles also allows Emacs to cleanly terminate process groups.  */
-Lisp_Object Vw32_start_process_share_console;
-
-/* Control whether create_child cause the process to inherit Emacs'
-   error mode setting.  The default is t, to minimize the possibility of
-   subprocesses blocking when accessing unmounted drives.  */
-Lisp_Object Vw32_start_process_inherit_error_mode;
-
-/* Time to sleep before reading from a subprocess output pipe - this
-   avoids the inefficiency of frequently reading small amounts of data.
-   This is primarily necessary for handling DOS processes on Windows 95,
-   but is useful for W32 processes on both Windows 95 and NT as well.  */
-int w32_pipe_read_delay;
-
-/* Control conversion of upper case file names to lower case.
-   nil means no, t means yes. */
-Lisp_Object Vw32_downcase_file_names;
-
-/* Control whether stat() attempts to generate fake but hopefully
-   "accurate" inode values, by hashing the absolute truenames of files.
-   This should detect aliasing between long and short names, but still
-   allows the possibility of hash collisions.  */
-Lisp_Object Vw32_generate_fake_inodes;
-
-/* Control whether stat() attempts to determine file type and link count
-   exactly, at the expense of slower operation.  Since true hard links
-   are supported on NTFS volumes, this is only relevant on NT.  */
-Lisp_Object Vw32_get_true_file_attributes;
 extern Lisp_Object Qlocal;
 
 Lisp_Object Qhigh, Qlow;
@@ -1707,8 +1666,6 @@
 extern BOOL term_winsock (void);
 extern BOOL init_winsock (int load_now);
 
-extern Lisp_Object Vsystem_name;
-
 DEFUN ("w32-has-winsock", Fw32_has_winsock, Sw32_has_winsock, 0, 1, 0,
        doc: /* Test for presence of the Windows socket library `winsock'.
 Returns non-nil if winsock support is present, nil otherwise.
@@ -2284,7 +2241,7 @@
   defsubr (&Sw32_get_keyboard_layout);
   defsubr (&Sw32_set_keyboard_layout);
 
-  DEFVAR_LISP ("w32-quote-process-args", &Vw32_quote_process_args,
+  DEFVAR_LISP ("w32-quote-process-args", Vw32_quote_process_args,
 	       doc: /* Non-nil enables quoting of process arguments to ensure correct parsing.
 Because Windows does not directly pass argv arrays to child processes,
 programs have to reconstruct the argv array by parsing the command
@@ -2297,14 +2254,14 @@
   Vw32_quote_process_args = Qt;
 
   DEFVAR_LISP ("w32-start-process-show-window",
-	       &Vw32_start_process_show_window,
+	       Vw32_start_process_show_window,
 	       doc: /* When nil, new child processes hide their windows.
 When non-nil, they show their window in the method of their choice.
 This variable doesn't affect GUI applications, which will never be hidden.  */);
   Vw32_start_process_show_window = Qnil;
 
   DEFVAR_LISP ("w32-start-process-share-console",
-	       &Vw32_start_process_share_console,
+	       Vw32_start_process_share_console,
 	       doc: /* When nil, new child processes are given a new console.
 When non-nil, they share the Emacs console; this has the limitation of
 allowing only one DOS subprocess to run at a time (whether started directly
@@ -2314,13 +2271,13 @@
   Vw32_start_process_share_console = Qnil;
 
   DEFVAR_LISP ("w32-start-process-inherit-error-mode",
-	       &Vw32_start_process_inherit_error_mode,
+	       Vw32_start_process_inherit_error_mode,
 	       doc: /* When nil, new child processes revert to the default error mode.
 When non-nil, they inherit their error mode setting from Emacs, which stops
 them blocking when trying to access unmounted drives etc.  */);
   Vw32_start_process_inherit_error_mode = Qt;
 
-  DEFVAR_INT ("w32-pipe-read-delay", &w32_pipe_read_delay,
+  DEFVAR_INT ("w32-pipe-read-delay", w32_pipe_read_delay,
 	      doc: /* Forced delay before reading subprocess output.
 This is done to improve the buffering of subprocess output, by
 avoiding the inefficiency of frequently reading small amounts of data.
@@ -2331,7 +2288,7 @@
 process temporarily).  A value of zero disables waiting entirely.  */);
   w32_pipe_read_delay = 50;
 
-  DEFVAR_LISP ("w32-downcase-file-names", &Vw32_downcase_file_names,
+  DEFVAR_LISP ("w32-downcase-file-names", Vw32_downcase_file_names,
 	       doc: /* Non-nil means convert all-upper case file names to lower case.
 This applies when performing completions and file name expansion.
 Note that the value of this setting also affects remote file names,
@@ -2340,7 +2297,7 @@
   Vw32_downcase_file_names = Qnil;
 
 #if 0
-  DEFVAR_LISP ("w32-generate-fake-inodes", &Vw32_generate_fake_inodes,
+  DEFVAR_LISP ("w32-generate-fake-inodes", Vw32_generate_fake_inodes,
 	       doc: /* Non-nil means attempt to fake realistic inode values.
 This works by hashing the truename of files, and should detect
 aliasing between long and short (8.3 DOS) names, but can have
@@ -2349,7 +2306,7 @@
   Vw32_generate_fake_inodes = Qnil;
 #endif
 
-  DEFVAR_LISP ("w32-get-true-file-attributes", &Vw32_get_true_file_attributes,
+  DEFVAR_LISP ("w32-get-true-file-attributes", Vw32_get_true_file_attributes,
 	       doc: /* Non-nil means determine accurate file attributes in `file-attributes'.
 This option controls whether to issue additional system calls to determine
 accurate link counts, file type, and ownership information.  It is more
--- a/src/w32select.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32select.c	Tue Jan 18 13:45:37 2011 -0700
@@ -111,13 +111,6 @@
    PRIMARY and SECONDARY.  */
 Lisp_Object QCLIPBOARD;
 
-/* Coding system for communicating with other programs via the
-   clipboard.  */
-static Lisp_Object Vselection_coding_system;
-
-/* Coding system for the next communication with other programs.  */
-static Lisp_Object Vnext_selection_coding_system;
-
 /* Internal pseudo-constants, initialized in globals_of_w32select()
    based on current system parameters. */
 static LCID DEFAULT_LCID;
@@ -1068,7 +1061,7 @@
   defsubr (&Sw32_get_clipboard_data);
   defsubr (&Sx_selection_exists_p);
 
-  DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system,
+  DEFVAR_LISP ("selection-coding-system", Vselection_coding_system,
 	       doc: /* Coding system for communicating with other programs.
 
 For MS-Windows and MS-DOS:
@@ -1102,7 +1095,7 @@
      below. */
   Vselection_coding_system = Qnil;
 
-  DEFVAR_LISP ("next-selection-coding-system", &Vnext_selection_coding_system,
+  DEFVAR_LISP ("next-selection-coding-system", Vnext_selection_coding_system,
 	       doc: /* Coding system for the next communication with other programs.
 Usually, `selection-coding-system' is used for communicating with
 other programs (X Windows clients or MS Windows programs).  But, if this
--- a/src/w32term.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32term.c	Tue Jan 18 13:45:37 2011 -0700
@@ -65,10 +65,6 @@
 static int max_fringe_bmp = 0;
 static HBITMAP *fringe_bmp = 0;
 
-/* Non-nil means Emacs uses toolkit scroll bars.  */
-
-Lisp_Object Vx_toolkit_scroll_bars;
-
 /* Temporary variables for w32_read_socket.  */
 
 static int last_mousemove_x = 0;
@@ -87,13 +83,6 @@
 /* Last window where we saw the mouse.  Used by mouse-autoselect-window.  */
 static Lisp_Object last_window;
 
-/* Non-zero means make use of UNDERLINE_POSITION font properties.  */
-int x_use_underline_position_properties;
-
-/* Non-zero means to draw the underline at the same place as the descent line.  */
-
-int x_underline_at_descent_line;
-
 extern unsigned int msh_mousewheel;
 
 extern void free_frame_menubar (struct frame *);
@@ -166,8 +155,6 @@
 int w32_system_caret_height;
 int w32_system_caret_x;
 int w32_system_caret_y;
-int w32_use_visible_system_caret;
-
 DWORD dwWindowsThreadId = 0;
 HANDLE hWindowsThread = NULL;
 DWORD dwMainThreadId = 0;
@@ -186,19 +173,6 @@
 static FRAME_PTR last_mouse_glyph_frame;
 static Lisp_Object last_mouse_press_frame;
 
-int w32_num_mouse_buttons;
-
-Lisp_Object Vw32_swap_mouse_buttons;
-
-/* Control whether x_raise_frame also sets input focus.  */
-Lisp_Object Vw32_grab_focus_on_raise;
-
-/* Control whether Caps Lock affects non-ascii characters.  */
-Lisp_Object Vw32_capslock_is_shiftlock;
-
-/* Control whether right-alt and left-ctrl should be recognized as AltGr.  */
-Lisp_Object Vw32_recognize_altgr;
-
 /* The scroll bar in which the last motion event occurred.
 
    If the last motion event occurred in a scroll bar, we set this
@@ -226,11 +200,6 @@
 static int input_signal_count;
 #endif
 
-extern Lisp_Object Vcommand_line_args, Vsystem_name;
-
-/* A mask of extra modifier bits to put into every keyboard char.  */
-extern EMACS_INT extra_keyboard_modifiers;
-
 /* Keyboard code page - may be changed by language-change events.  */
 static int keyboard_codepage;
 
@@ -6383,18 +6352,18 @@
   DEFSYM (Qvendor_specific_keysyms, "vendor-specific-keysyms");
 
   DEFVAR_INT ("w32-num-mouse-buttons",
-	      &w32_num_mouse_buttons,
+	      w32_num_mouse_buttons,
 	      doc: /* Number of physical mouse buttons.  */);
   w32_num_mouse_buttons = 2;
 
   DEFVAR_LISP ("w32-swap-mouse-buttons",
-	      &Vw32_swap_mouse_buttons,
+	      Vw32_swap_mouse_buttons,
 	       doc: /* Swap the mapping of middle and right mouse buttons.
 When nil, middle button is mouse-2 and right button is mouse-3.  */);
   Vw32_swap_mouse_buttons = Qnil;
 
   DEFVAR_LISP ("w32-grab-focus-on-raise",
-	       &Vw32_grab_focus_on_raise,
+	       Vw32_grab_focus_on_raise,
 	       doc: /* Raised frame grabs input focus.
 When t, `raise-frame' grabs input focus as well.  This fits well
 with the normal Windows click-to-focus policy, but might not be
@@ -6402,20 +6371,20 @@
   Vw32_grab_focus_on_raise = Qt;
 
   DEFVAR_LISP ("w32-capslock-is-shiftlock",
-	       &Vw32_capslock_is_shiftlock,
+	       Vw32_capslock_is_shiftlock,
 	       doc: /* Apply CapsLock state to non character input keys.
 When nil, CapsLock only affects normal character input keys.  */);
   Vw32_capslock_is_shiftlock = Qnil;
 
   DEFVAR_LISP ("w32-recognize-altgr",
-	       &Vw32_recognize_altgr,
+	       Vw32_recognize_altgr,
 	       doc: /* Recognize right-alt and left-ctrl as AltGr.
 When nil, the right-alt and left-ctrl key combination is
 interpreted normally.  */);
   Vw32_recognize_altgr = Qt;
 
   DEFVAR_BOOL ("w32-use-visible-system-caret",
-	       &w32_use_visible_system_caret,
+	       w32_use_visible_system_caret,
 	       doc: /* Flag to make the system caret visible.
 When this is non-nil, Emacs will indicate the position of point by
 using the system caret instead of drawing its own cursor.  Some screen
@@ -6432,7 +6401,7 @@
   /* We don't yet support this, but defining this here avoids whining
      from cus-start.el and other places, like "M-x set-variable".  */
   DEFVAR_BOOL ("x-use-underline-position-properties",
-	       &x_use_underline_position_properties,
+	       x_use_underline_position_properties,
      doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
 A value of nil means ignore them.  If you encounter fonts with bogus
 UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
@@ -6442,14 +6411,14 @@
   x_use_underline_position_properties = 0;
 
   DEFVAR_BOOL ("x-underline-at-descent-line",
-	       &x_underline_at_descent_line,
+	       x_underline_at_descent_line,
      doc: /* *Non-nil means to draw the underline at the same place as the descent line.
 A value of nil means to draw the underline according to the value of the
 variable `x-use-underline-position-properties', which is usually at the
 baseline level.  The default value is nil.  */);
   x_underline_at_descent_line = 0;
 
-  DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
+  DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars,
 	       doc: /* Which toolkit scroll bars Emacs uses, if any.
 A value of nil means Emacs doesn't use toolkit scroll bars.
 With the X Window system, the value is a symbol describing the
--- a/src/w32term.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/w32term.h	Tue Jan 18 13:45:37 2011 -0700
@@ -61,12 +61,6 @@
   int height, width, depth;
 };
 
-/* Palette book-keeping stuff for mapping requested colors into the
-   system palette.  Keep a ref-counted list of requested colors and
-   regenerate the app palette whenever the requested list changes. */
-
-extern Lisp_Object Vw32_enable_palette;
-
 struct w32_palette_entry {
   struct w32_palette_entry * next;
   PALETTEENTRY entry;
@@ -194,9 +188,6 @@
    FONT-LIST-CACHE records previous values returned by x-list-fonts.  */
 extern Lisp_Object w32_display_name_list;
 
-/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.  */
-extern Lisp_Object Vx_pixel_size_width_font_regexp;
-
 extern struct frame *x_window_to_frame (struct w32_display_info *, HWND);
 
 struct w32_display_info *x_display_info_for_name (Lisp_Object);
--- a/src/window.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/window.c	Tue Jan 18 13:45:37 2011 -0700
@@ -114,42 +114,10 @@
 
 Lisp_Object minibuf_selected_window;
 
-/* Non-nil means it is the window for C-M-v to scroll
-   when the mini-buffer is selected.  */
-
-Lisp_Object Vminibuf_scroll_window;
-
-/* Non-nil means this is the buffer whose window C-M-v should scroll.  */
-
-Lisp_Object Vother_window_scroll_buffer;
-
-/* Non-nil means it's function to call to display temp buffers.  */
-
-Lisp_Object Vtemp_buffer_show_function;
-
-/* Non-zero means line and page scrolling on tall lines (with images)
-   does partial scrolling by modifying window-vscroll.  */
-
-int auto_window_vscroll_p;
-
-/* Non-zero means to use mode-line-inactive face in all windows but the
-   selected-window and the minibuffer-scroll-window when the
-   minibuffer is active.  */
-int mode_line_in_non_selected_windows;
-
-/* If a window gets smaller than either of these, it is removed. */
-
-EMACS_INT window_min_height;
-EMACS_INT window_min_width;
-
 /* Hook run at end of temp_output_buffer_show.  */
 
 Lisp_Object Qtemp_buffer_show_hook;
 
-/* Number of lines of continuity in scrolling by screenfuls.  */
-
-EMACS_INT next_screen_context_lines;
-
 /* Incremented for each window created.  */
 
 static int sequence_number;
@@ -166,17 +134,6 @@
 /* Hook to run when window config changes.  */
 
 static Lisp_Object Qwindow_configuration_change_hook;
-static Lisp_Object Vwindow_configuration_change_hook;
-
-/* Non-nil means scroll commands try to put point
-   at the same screen height as previously.  */
-
-Lisp_Object Vscroll_preserve_screen_position;
-
-/* Non-nil means that text is inserted before window's markers.  */
-
-Lisp_Object Vwindow_point_insertion_type;
-
 /* Incremented by 1 whenever a window is deleted.  */
 
 int window_deletion_count;
@@ -194,17 +151,7 @@
 #if 0 /* This isn't used anywhere.  */
 /* Nonzero means we can split a frame even if it is "unsplittable".  */
 static int inhibit_frame_unsplittable;
-#endif /* 0 */
-
-extern EMACS_INT scroll_margin;
-
-extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
-
-/* If non-nil, then the `recenter' command with a nil argument
-   the entire frame to be redrawn; the special value `tty' causes the
-   frame to be redrawn only if it is a tty frame.  */
-
-static Lisp_Object Vrecenter_redisplay;
+#endif extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
 
 
 DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0,
@@ -7101,7 +7048,7 @@
 
   inhibit_point_swap = 0;
 
-  DEFVAR_LISP ("temp-buffer-show-function", &Vtemp_buffer_show_function,
+  DEFVAR_LISP ("temp-buffer-show-function", Vtemp_buffer_show_function,
 	       doc: /* Non-nil means call as function to display a help buffer.
 The function is called with one argument, the buffer to be displayed.
 Used by `with-output-to-temp-buffer'.
@@ -7109,29 +7056,29 @@
 the buffer; `temp-buffer-show-hook' is not run unless this function runs it.  */);
   Vtemp_buffer_show_function = Qnil;
 
-  DEFVAR_LISP ("minibuffer-scroll-window", &Vminibuf_scroll_window,
+  DEFVAR_LISP ("minibuffer-scroll-window", Vminibuf_scroll_window,
 	       doc: /* Non-nil means it is the window that C-M-v in minibuffer should scroll.  */);
   Vminibuf_scroll_window = Qnil;
 
-  DEFVAR_BOOL ("mode-line-in-non-selected-windows", &mode_line_in_non_selected_windows,
+  DEFVAR_BOOL ("mode-line-in-non-selected-windows", mode_line_in_non_selected_windows,
 	       doc: /* Non-nil means to use `mode-line-inactive' face in non-selected windows.
 If the minibuffer is active, the `minibuffer-scroll-window' mode line
 is displayed in the `mode-line' face.  */);
   mode_line_in_non_selected_windows = 1;
 
-  DEFVAR_LISP ("other-window-scroll-buffer", &Vother_window_scroll_buffer,
+  DEFVAR_LISP ("other-window-scroll-buffer", Vother_window_scroll_buffer,
 	       doc: /* If non-nil, this is a buffer and \\[scroll-other-window] should scroll its window.  */);
   Vother_window_scroll_buffer = Qnil;
 
-  DEFVAR_BOOL ("auto-window-vscroll", &auto_window_vscroll_p,
+  DEFVAR_BOOL ("auto-window-vscroll", auto_window_vscroll_p,
 	       doc: /* *Non-nil means to automatically adjust `window-vscroll' to view tall lines.  */);
   auto_window_vscroll_p = 1;
 
-  DEFVAR_INT ("next-screen-context-lines", &next_screen_context_lines,
+  DEFVAR_INT ("next-screen-context-lines", next_screen_context_lines,
 	      doc: /* *Number of lines of continuity when scrolling by screenfuls.  */);
   next_screen_context_lines = 2;
 
-  DEFVAR_INT ("window-min-height", &window_min_height,
+  DEFVAR_INT ("window-min-height", window_min_height,
 	      doc: /* Allow deleting windows less than this tall.
 The value is measured in line units.  If a window wants a modeline it
 is counted as one line.
@@ -7140,7 +7087,7 @@
 windows vertically.  A value less than 1 is invalid.  */);
   window_min_height = 4;
 
-  DEFVAR_INT ("window-min-width", &window_min_width,
+  DEFVAR_INT ("window-min-width", window_min_width,
 	      doc: /* Allow deleting windows less than this wide.
 The value is measured in characters and includes any fringes or
 the scrollbar.
@@ -7150,7 +7097,7 @@
   window_min_width = 10;
 
   DEFVAR_LISP ("scroll-preserve-screen-position",
-	       &Vscroll_preserve_screen_position,
+	       Vscroll_preserve_screen_position,
 	       doc: /* *Controls if scroll commands move point to keep its screen position unchanged.
 A value of nil means point does not keep its screen position except
 at the scroll margin or window boundary respectively.
@@ -7162,19 +7109,19 @@
 on their symbols to be controlled by this variable.  */);
   Vscroll_preserve_screen_position = Qnil;
 
-  DEFVAR_LISP ("window-point-insertion-type", &Vwindow_point_insertion_type,
+  DEFVAR_LISP ("window-point-insertion-type", Vwindow_point_insertion_type,
 	       doc: /* Type of marker to use for `window-point'.  */);
   Vwindow_point_insertion_type = Qnil;
 
   DEFVAR_LISP ("window-configuration-change-hook",
-	       &Vwindow_configuration_change_hook,
+	       Vwindow_configuration_change_hook,
 	       doc: /* Functions to call when window configuration changes.
 The buffer-local part is run once per window, with the relevant window
 selected; while the global part is run only once for the modified frame,
 with the relevant frame selected.  */);
   Vwindow_configuration_change_hook = Qnil;
 
-  DEFVAR_LISP ("recenter-redisplay", &Vrecenter_redisplay,
+  DEFVAR_LISP ("recenter-redisplay", Vrecenter_redisplay,
 	       doc: /* If non-nil, then the `recenter' command with a nil argument
 will redraw the entire frame; the special value `tty' causes the
 frame to be redrawn only if it is a tty frame.  */);
--- a/src/window.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/window.h	Tue Jan 18 13:45:37 2011 -0700
@@ -753,20 +753,6 @@
 
 extern Lisp_Object minibuf_selected_window;
 
-/* Non-nil => window to for C-M-v to scroll when the minibuffer is
-   selected.  */
-
-extern Lisp_Object Vminibuf_scroll_window;
-
-/* Nil or a symbol naming the window system under which emacs is
-   running ('x is the only current possibility) */
-
-extern Lisp_Object Vinitial_window_system;
-
-/* Version number of X windows: 10, 11 or nil.  */
-
-extern Lisp_Object Vwindow_system_version;
-
 /* Window that the mouse is over (nil if no mouse support).  */
 
 extern Lisp_Object Vmouse_window;
--- a/src/xdisp.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xdisp.c	Tue Jan 18 13:45:37 2011 -0700
@@ -319,9 +319,9 @@
 #define INFINITY 10000000
 
 Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
-Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
-Lisp_Object Qwindow_text_change_functions, Vwindow_text_change_functions;
-Lisp_Object Qredisplay_end_trigger_functions, Vredisplay_end_trigger_functions;
+Lisp_Object Qwindow_scroll_functions;
+Lisp_Object Qwindow_text_change_functions;
+Lisp_Object Qredisplay_end_trigger_functions;
 Lisp_Object Qinhibit_point_motion_hooks;
 Lisp_Object QCeval, QCfile, QCdata, QCpropertize;
 Lisp_Object Qfontified;
@@ -339,77 +339,19 @@
 /* Holds the list (error).  */
 Lisp_Object list_of_error;
 
-/* Functions called to fontify regions of text.  */
-
-Lisp_Object Vfontification_functions;
 Lisp_Object Qfontification_functions;
 
-/* Non-nil means automatically select any window when the mouse
-   cursor moves into it.  */
-Lisp_Object Vmouse_autoselect_window;
-
-Lisp_Object Vwrap_prefix, Qwrap_prefix;
-Lisp_Object Vline_prefix, Qline_prefix;
-
-/* Non-zero means draw tool bar buttons raised when the mouse moves
-   over them.  */
-
-int auto_raise_tool_bar_buttons_p;
-
-/* Non-zero means to reposition window if cursor line is only partially visible.  */
-
-int make_cursor_line_fully_visible_p;
-
-/* Margin below tool bar in pixels.  0 or nil means no margin.
-   If value is `internal-border-width' or `border-width',
-   the corresponding frame parameter is used.  */
-
-Lisp_Object Vtool_bar_border;
-
-/* Margin around tool bar buttons in pixels.  */
-
-Lisp_Object Vtool_bar_button_margin;
-
-/* Thickness of shadow to draw around tool bar buttons.  */
-
-EMACS_INT tool_bar_button_relief;
-
-/* Non-nil means automatically resize tool-bars so that all tool-bar
-   items are visible, and no blank lines remain.
-
-   If value is `grow-only', only make tool-bar bigger.  */
-
-Lisp_Object Vauto_resize_tool_bars;
-
-/* Type of tool bar.  Can be symbols image, text, both or both-hroiz.  */
-
-Lisp_Object Vtool_bar_style;
-
-/* Maximum number of characters a label can have to be shown.  */
-
-EMACS_INT tool_bar_max_label_size;
-
-/* Non-zero means draw block and hollow cursor as wide as the glyph
-   under it.  For example, if a block cursor is over a tab, it will be
-   drawn as wide as that tab on the display.  */
-
-int x_stretch_cursor_p;
+Lisp_Object Qwrap_prefix;
+Lisp_Object Qline_prefix;
 
 /* Non-nil means don't actually do any redisplay.  */
 
-Lisp_Object Vinhibit_redisplay, Qinhibit_redisplay;
-
-/* Non-zero means Lisp evaluation during redisplay is inhibited.  */
-
-int inhibit_eval_during_redisplay;
+Lisp_Object Qinhibit_redisplay;
 
 /* Names of text properties relevant for redisplay.  */
 
 Lisp_Object Qdisplay;
 
-/* Symbols used in text property values.  */
-
-Lisp_Object Vdisplay_pixels_per_inch;
 Lisp_Object Qspace, QCalign_to, QCrelative_width, QCrelative_height;
 Lisp_Object Qleft_margin, Qright_margin, Qspace_width, Qraise;
 Lisp_Object Qslice;
@@ -417,14 +359,6 @@
 Lisp_Object Qmargin, Qpointer;
 Lisp_Object Qline_height;
 
-/* Non-nil means highlight trailing whitespace.  */
-
-Lisp_Object Vshow_trailing_whitespace;
-
-/* Non-nil means escape non-break space and hyphens.  */
-
-Lisp_Object Vnobreak_char_display;
-
 #ifdef HAVE_WINDOW_SYSTEM
 
 /* Test if overflow newline into fringe.  Called with iterator IT
@@ -449,12 +383,6 @@
 #define IT_DISPLAYING_WHITESPACE(it)				\
   (it->what == IT_CHARACTER && (it->c == ' ' || it->c == '\t'))
 
-/* Non-nil means show the text cursor in void text areas
-   i.e. in blank areas after eol and eob.  This used to be
-   the default in 21.3.  */
-
-Lisp_Object Vvoid_text_area_pointer;
-
 /* Name of the face used to highlight trailing whitespace.  */
 
 Lisp_Object Qtrailing_whitespace;
@@ -522,37 +450,6 @@
 
 static struct buffer *this_line_buffer;
 
-/* Nonzero means truncate lines in all windows less wide than the
-   frame.  */
-
-Lisp_Object Vtruncate_partial_width_windows;
-
-/* A flag to control how to display unibyte 8-bit character.  */
-
-int unibyte_display_via_language_environment;
-
-/* Nonzero means we have more than one non-mini-buffer-only frame.
-   Not guaranteed to be accurate except while parsing
-   frame-title-format.  */
-
-int multiple_frames;
-
-Lisp_Object Vglobal_mode_string;
-
-
-/* List of variables (symbols) which hold markers for overlay arrows.
-   The symbols on this list are examined during redisplay to determine
-   where to display overlay arrows.  */
-
-Lisp_Object Voverlay_arrow_variable_list;
-
-/* Marker for where to display an arrow on top of the buffer text.  */
-
-Lisp_Object Voverlay_arrow_position;
-
-/* String to display for the arrow.  Only used on terminal frames.  */
-
-Lisp_Object Voverlay_arrow_string;
 
 /* Values of those variables at last redisplay are stored as
    properties on `overlay-arrow-position' symbol.  However, if
@@ -566,47 +463,12 @@
 
 Lisp_Object Qoverlay_arrow_string, Qoverlay_arrow_bitmap;
 
-/* Like mode-line-format, but for the title bar on a visible frame.  */
-
-Lisp_Object Vframe_title_format;
-
-/* Like mode-line-format, but for the title bar on an iconified frame.  */
-
-Lisp_Object Vicon_title_format;
-
-/* List of functions to call when a window's size changes.  These
-   functions get one arg, a frame on which one or more windows' sizes
-   have changed.  */
-
-static Lisp_Object Vwindow_size_change_functions;
-
-Lisp_Object Qmenu_bar_update_hook, Vmenu_bar_update_hook;
+Lisp_Object Qmenu_bar_update_hook;
 
 /* Nonzero if an overlay arrow has been displayed in this window.  */
 
 static int overlay_arrow_seen;
 
-/* Nonzero means highlight the region even in nonselected windows.  */
-
-int highlight_nonselected_windows;
-
-/* If cursor motion alone moves point off frame, try scrolling this
-   many lines up or down if that will bring it back.  */
-
-static EMACS_INT emacs_scroll_step;
-
-/* Nonzero means scroll just far enough to bring point back on the
-   screen, when appropriate.  */
-
-static EMACS_INT scroll_conservatively;
-
-/* Recenter the window whenever point gets within this many lines of
-   the top or bottom of the window.  This value is translated into a
-   pixel value by multiplying it with FRAME_LINE_HEIGHT, which means
-   that there is really a fixed pixel height scroll margin.  */
-
-EMACS_INT scroll_margin;
-
 /* Number of windows showing the buffer of the selected window (or
    another buffer with the same base buffer).  keyboard.c refers to
    this.  */
@@ -617,14 +479,6 @@
 
 static Lisp_Object default_invis_vector[3];
 
-/* Zero means display the mode-line/header-line/menu-bar in the default face
-   (this slightly odd definition is for compatibility with previous versions
-   of emacs), non-zero means display them using their respective faces.
-
-   This variable is deprecated.  */
-
-int mode_line_inverse_video;
-
 /* Prompt to display in front of the mini-buffer contents.  */
 
 Lisp_Object minibuf_prompt;
@@ -670,19 +524,6 @@
 
 int line_number_displayed;
 
-/* Maximum buffer size for which to display line numbers.  */
-
-Lisp_Object Vline_number_display_limit;
-
-/* Line width to consider when repositioning for line number display.  */
-
-static EMACS_INT line_number_display_limit_width;
-
-/* Number of lines to keep in the message log buffer.  t means
-   infinite.  nil means don't log at all.  */
-
-Lisp_Object Vmessage_log_max;
-
 /* The name of the *Messages* buffer, a string.  */
 
 static Lisp_Object Vmessages_buffer_name;
@@ -713,23 +554,6 @@
 /* The symbol `inhibit-menubar-update' and its DEFVAR_BOOL variable.  */
 
 Lisp_Object Qinhibit_menubar_update;
-int inhibit_menubar_update;
-
-/* When evaluating expressions from menu bar items (enable conditions,
-   for instance), this is the frame they are being processed for.  */
-
-Lisp_Object Vmenu_updating_frame;
-
-/* Maximum height for resizing mini-windows.  Either a float
-   specifying a fraction of the available height, or an integer
-   specifying a number of lines.  */
-
-Lisp_Object Vmax_mini_window_height;
-
-/* Non-zero means messages should be displayed with truncated
-   lines instead of being continued.  */
-
-int message_truncate_lines;
 Lisp_Object Qmessage_truncate_lines;
 
 /* Set to 1 in clear_message to make redisplay_internal aware
@@ -737,9 +561,6 @@
 
 static int message_cleared_p;
 
-/* How to blink the default frame cursor off.  */
-Lisp_Object Vblink_cursor_alist;
-
 /* A scratch glyph row with contents used for generating truncation
    glyphs.  Also used in direct_output_for_insert.  */
 
@@ -771,11 +592,6 @@
 
 #if GLYPH_DEBUG
 
-/* Variables to turn off display optimizations from Lisp.  */
-
-int inhibit_try_window_id, inhibit_try_window_reusing;
-int inhibit_try_cursor_movement;
-
 /* Non-zero means print traces of redisplay if compiled with
    GLYPH_DEBUG != 0.  */
 
@@ -792,40 +608,12 @@
 #define TRACE_MOVE(x)	(void) 0
 #endif
 
-/* Non-zero means automatically scroll windows horizontally to make
-   point visible.  */
-
-int automatic_hscrolling_p;
 Lisp_Object Qauto_hscroll_mode;
 
-/* How close to the margin can point get before the window is scrolled
-   horizontally.  */
-EMACS_INT hscroll_margin;
-
-/* How much to scroll horizontally when point is inside the above margin.  */
-Lisp_Object Vhscroll_step;
-
-/* The variable `resize-mini-windows'.  If nil, don't resize
-   mini-windows.  If t, always resize them to fit the text they
-   display.  If `grow-only', let mini-windows grow only until they
-   become empty.  */
-
-Lisp_Object Vresize_mini_windows;
-
 /* Buffer being redisplayed -- for redisplay_window_error.  */
 
 struct buffer *displayed_buffer;
 
-/* Space between overline and text. */
-
-EMACS_INT overline_margin;
-
-/* Require underline to be at least this many screen pixels below baseline
-   This to avoid underline "merging" with the base of letters at small
-   font sizes, particularly when x_use_underline_position_properties is on. */
-
-EMACS_INT underline_minimum_offset;
-
 /* Value returned from text property handlers (see below).  */
 
 enum prop_handled
@@ -925,11 +713,6 @@
 
 int redisplaying_p;
 
-/* Non-zero means don't free realized faces.  Bound while freeing
-   realized faces is dangerous because glyph matrices might still
-   reference them.  */
-
-int inhibit_free_realized_faces;
 Lisp_Object Qinhibit_free_realized_faces;
 
 /* If a string, XTread_socket generates an event to display that string.
@@ -946,9 +729,6 @@
 
 /* Platform-independent portion of hourglass implementation. */
 
-/* Non-zero means we're allowed to display a hourglass pointer.  */
-int display_hourglass_p;
-
 /* Non-zero means an hourglass cursor is currently shown.  */
 int hourglass_shown_p;
 
@@ -956,15 +736,9 @@
    an hourglass cursor on all frames.  */
 struct atimer *hourglass_atimer;
 
-/* Number of seconds to wait before displaying an hourglass cursor.  */
-Lisp_Object Vhourglass_delay;
-
 /* Name of the face used to display glyphless characters.  */
 Lisp_Object Qglyphless_char;
 
-/* Char-table to control the display of glyphless characters.  */
-Lisp_Object Vglyphless_char_display;
-
 /* Symbol for the purpose of Vglyphless_char_display.  */
 Lisp_Object Qglyphless_char_display;
 
@@ -11228,7 +11002,7 @@
 /* Values of window_end_pos and window_end_vpos at the end of
    try_window_id.  */
 
-EMACS_INT debug_end_pos, debug_end_vpos;
+EMACS_INT debug_end_vpos;
 
 /* Append a string to W->desired_matrix->method.  FMT is a printf
    format string.  A1...A9 are a supplement for a variable-length
@@ -26635,19 +26409,19 @@
   staticpro (&Qleft_to_right);
 
 #ifdef HAVE_WINDOW_SYSTEM
-  DEFVAR_BOOL ("x-stretch-cursor", &x_stretch_cursor_p,
+  DEFVAR_BOOL ("x-stretch-cursor", x_stretch_cursor_p,
     doc: /* *Non-nil means draw block cursor as wide as the glyph under it.
 For example, if a block cursor is over a tab, it will be drawn as
 wide as that tab on the display.  */);
   x_stretch_cursor_p = 0;
 #endif
 
-  DEFVAR_LISP ("show-trailing-whitespace", &Vshow_trailing_whitespace,
+  DEFVAR_LISP ("show-trailing-whitespace", Vshow_trailing_whitespace,
     doc: /* *Non-nil means highlight trailing whitespace.
 The face used for trailing whitespace is `trailing-whitespace'.  */);
   Vshow_trailing_whitespace = Qnil;
 
-  DEFVAR_LISP ("nobreak-char-display", &Vnobreak_char_display,
+  DEFVAR_LISP ("nobreak-char-display", Vnobreak_char_display,
     doc: /* *Control highlighting of nobreak space and soft hyphen.
 A value of t means highlight the character itself (for nobreak space,
 use face `nobreak-space').
@@ -26656,47 +26430,47 @@
 space or ordinary hyphen.  */);
   Vnobreak_char_display = Qt;
 
-  DEFVAR_LISP ("void-text-area-pointer", &Vvoid_text_area_pointer,
+  DEFVAR_LISP ("void-text-area-pointer", Vvoid_text_area_pointer,
     doc: /* *The pointer shape to show in void text areas.
 A value of nil means to show the text pointer.  Other options are `arrow',
 `text', `hand', `vdrag', `hdrag', `modeline', and `hourglass'.  */);
   Vvoid_text_area_pointer = Qarrow;
 
-  DEFVAR_LISP ("inhibit-redisplay", &Vinhibit_redisplay,
+  DEFVAR_LISP ("inhibit-redisplay", Vinhibit_redisplay,
     doc: /* Non-nil means don't actually do any redisplay.
 This is used for internal purposes.  */);
   Vinhibit_redisplay = Qnil;
 
-  DEFVAR_LISP ("global-mode-string", &Vglobal_mode_string,
+  DEFVAR_LISP ("global-mode-string", Vglobal_mode_string,
     doc: /* String (or mode line construct) included (normally) in `mode-line-format'.  */);
   Vglobal_mode_string = Qnil;
 
-  DEFVAR_LISP ("overlay-arrow-position", &Voverlay_arrow_position,
+  DEFVAR_LISP ("overlay-arrow-position", Voverlay_arrow_position,
     doc: /* Marker for where to display an arrow on top of the buffer text.
 This must be the beginning of a line in order to work.
 See also `overlay-arrow-string'.  */);
   Voverlay_arrow_position = Qnil;
 
-  DEFVAR_LISP ("overlay-arrow-string", &Voverlay_arrow_string,
+  DEFVAR_LISP ("overlay-arrow-string", Voverlay_arrow_string,
     doc: /* String to display as an arrow in non-window frames.
 See also `overlay-arrow-position'.  */);
   Voverlay_arrow_string = make_pure_c_string ("=>");
 
-  DEFVAR_LISP ("overlay-arrow-variable-list", &Voverlay_arrow_variable_list,
+  DEFVAR_LISP ("overlay-arrow-variable-list", Voverlay_arrow_variable_list,
     doc: /* List of variables (symbols) which hold markers for overlay arrows.
 The symbols on this list are examined during redisplay to determine
 where to display overlay arrows.  */);
   Voverlay_arrow_variable_list
     = Fcons (intern_c_string ("overlay-arrow-position"), Qnil);
 
-  DEFVAR_INT ("scroll-step", &emacs_scroll_step,
+  DEFVAR_INT ("scroll-step", emacs_scroll_step,
     doc: /* *The number of lines to try scrolling a window by when point moves out.
 If that fails to bring point back on frame, point is centered instead.
 If this is zero, point is always centered after it moves off frame.
 If you want scrolling to always be a line at a time, you should set
 `scroll-conservatively' to a large value rather than set this to 1.  */);
 
-  DEFVAR_INT ("scroll-conservatively", &scroll_conservatively,
+  DEFVAR_INT ("scroll-conservatively", scroll_conservatively,
     doc: /* *Scroll up to this many lines, to bring point back on screen.
 If point moves off-screen, redisplay will scroll by up to
 `scroll-conservatively' lines in order to bring point just barely
@@ -26706,23 +26480,23 @@
 A value of zero means always recenter point if it moves off screen.  */);
   scroll_conservatively = 0;
 
-  DEFVAR_INT ("scroll-margin", &scroll_margin,
+  DEFVAR_INT ("scroll-margin", scroll_margin,
     doc: /* *Number of lines of margin at the top and bottom of a window.
 Recenter the window whenever point gets within this many lines
 of the top or bottom of the window.  */);
   scroll_margin = 0;
 
-  DEFVAR_LISP ("display-pixels-per-inch",  &Vdisplay_pixels_per_inch,
+  DEFVAR_LISP ("display-pixels-per-inch",  Vdisplay_pixels_per_inch,
     doc: /* Pixels per inch value for non-window system displays.
 Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI).  */);
   Vdisplay_pixels_per_inch = make_float (72.0);
 
 #if GLYPH_DEBUG
-  DEFVAR_INT ("debug-end-pos", &debug_end_pos, doc: /* Don't ask.  */);
+  DEFVAR_INT ("debug-end-pos", debug_end_pos, doc: /* Don't ask.  */);
 #endif
 
   DEFVAR_LISP ("truncate-partial-width-windows",
-	       &Vtruncate_partial_width_windows,
+	       Vtruncate_partial_width_windows,
     doc: /* Non-nil means truncate lines in windows narrower than the frame.
 For an integer value, truncate lines in each window narrower than the
 full frame width, provided the window width is less than that integer;
@@ -26736,36 +26510,36 @@
 If `word-wrap' is enabled, you might want to reduce this.  */);
   Vtruncate_partial_width_windows = make_number (50);
 
-  DEFVAR_BOOL ("mode-line-inverse-video", &mode_line_inverse_video,
+  DEFVAR_BOOL ("mode-line-inverse-video", mode_line_inverse_video,
     doc: /* When nil, display the mode-line/header-line/menu-bar in the default face.
 Any other value means to use the appropriate face, `mode-line',
 `header-line', or `menu' respectively.  */);
   mode_line_inverse_video = 1;
 
-  DEFVAR_LISP ("line-number-display-limit", &Vline_number_display_limit,
+  DEFVAR_LISP ("line-number-display-limit", Vline_number_display_limit,
     doc: /* *Maximum buffer size for which line number should be displayed.
 If the buffer is bigger than this, the line number does not appear
 in the mode line.  A value of nil means no limit.  */);
   Vline_number_display_limit = Qnil;
 
   DEFVAR_INT ("line-number-display-limit-width",
-	      &line_number_display_limit_width,
+	      line_number_display_limit_width,
     doc: /* *Maximum line width (in characters) for line number display.
 If the average length of the lines near point is bigger than this, then the
 line number may be omitted from the mode line.  */);
   line_number_display_limit_width = 200;
 
-  DEFVAR_BOOL ("highlight-nonselected-windows", &highlight_nonselected_windows,
+  DEFVAR_BOOL ("highlight-nonselected-windows", highlight_nonselected_windows,
     doc: /* *Non-nil means highlight region even in nonselected windows.  */);
   highlight_nonselected_windows = 0;
 
-  DEFVAR_BOOL ("multiple-frames", &multiple_frames,
+  DEFVAR_BOOL ("multiple-frames", multiple_frames,
     doc: /* Non-nil if more than one frame is visible on this display.
 Minibuffer-only frames don't count, but iconified frames do.
 This variable is not guaranteed to be accurate except while processing
 `frame-title-format' and `icon-title-format'.  */);
 
-  DEFVAR_LISP ("frame-title-format", &Vframe_title_format,
+  DEFVAR_LISP ("frame-title-format", Vframe_title_format,
     doc: /* Template for displaying the title bar of visible frames.
 \(Assuming the window manager supports this feature.)
 
@@ -26773,7 +26547,7 @@
 the %c and %l constructs are ignored.  It is used only on frames for
 which no explicit name has been set \(see `modify-frame-parameters').  */);
 
-  DEFVAR_LISP ("icon-title-format", &Vicon_title_format,
+  DEFVAR_LISP ("icon-title-format", Vicon_title_format,
     doc: /* Template for displaying the title bar of an iconified frame.
 \(Assuming the window manager supports this feature.)
 This variable has the same structure as `mode-line-format' (which see),
@@ -26790,13 +26564,13 @@
 										   Qnil)))),
 				       Qnil)));
 
-  DEFVAR_LISP ("message-log-max", &Vmessage_log_max,
+  DEFVAR_LISP ("message-log-max", Vmessage_log_max,
     doc: /* Maximum number of lines to keep in the message log buffer.
 If nil, disable message logging.  If t, log messages but don't truncate
 the buffer when it becomes large.  */);
   Vmessage_log_max = make_number (100);
 
-  DEFVAR_LISP ("window-size-change-functions", &Vwindow_size_change_functions,
+  DEFVAR_LISP ("window-size-change-functions", Vwindow_size_change_functions,
     doc: /* Functions called before redisplay, if window sizes have changed.
 The value should be a list of functions that take one argument.
 Just before redisplay, for each frame, if any of its windows have changed
@@ -26804,7 +26578,7 @@
 all the functions in the list are called, with the frame as argument.  */);
   Vwindow_size_change_functions = Qnil;
 
-  DEFVAR_LISP ("window-scroll-functions", &Vwindow_scroll_functions,
+  DEFVAR_LISP ("window-scroll-functions", Vwindow_scroll_functions,
     doc: /* List of functions to call before redisplaying a window with scrolling.
 Each function is called with two arguments, the window and its new
 display-start position.  Note that these functions are also called by
@@ -26813,17 +26587,17 @@
   Vwindow_scroll_functions = Qnil;
 
   DEFVAR_LISP ("window-text-change-functions",
-	       &Vwindow_text_change_functions,
+	       Vwindow_text_change_functions,
     doc: /* Functions to call in redisplay when text in the window might change.  */);
   Vwindow_text_change_functions = Qnil;
 
-  DEFVAR_LISP ("redisplay-end-trigger-functions", &Vredisplay_end_trigger_functions,
+  DEFVAR_LISP ("redisplay-end-trigger-functions", Vredisplay_end_trigger_functions,
     doc: /* Functions called when redisplay of a window reaches the end trigger.
 Each function is called with two arguments, the window and the end trigger value.
 See `set-window-redisplay-end-trigger'.  */);
   Vredisplay_end_trigger_functions = Qnil;
 
-  DEFVAR_LISP ("mouse-autoselect-window", &Vmouse_autoselect_window,
+  DEFVAR_LISP ("mouse-autoselect-window", Vmouse_autoselect_window,
      doc: /* *Non-nil means autoselect window with mouse pointer.
 If nil, do not autoselect windows.
 A positive number means delay autoselection by that many seconds: a
@@ -26843,7 +26617,7 @@
 `focus-follows-mouse' matches the behavior of your window manager.  */);
   Vmouse_autoselect_window = Qnil;
 
-  DEFVAR_LISP ("auto-resize-tool-bars", &Vauto_resize_tool_bars,
+  DEFVAR_LISP ("auto-resize-tool-bars", Vauto_resize_tool_bars,
     doc: /* *Non-nil means automatically resize tool-bars.
 This dynamically changes the tool-bar's height to the minimum height
 that is needed to make all tool-bar items visible.
@@ -26851,15 +26625,15 @@
 automatically; to decrease the tool-bar height, use \\[recenter].  */);
   Vauto_resize_tool_bars = Qt;
 
-  DEFVAR_BOOL ("auto-raise-tool-bar-buttons", &auto_raise_tool_bar_buttons_p,
+  DEFVAR_BOOL ("auto-raise-tool-bar-buttons", auto_raise_tool_bar_buttons_p,
     doc: /* *Non-nil means raise tool-bar buttons when the mouse moves over them.  */);
   auto_raise_tool_bar_buttons_p = 1;
 
-  DEFVAR_BOOL ("make-cursor-line-fully-visible", &make_cursor_line_fully_visible_p,
+  DEFVAR_BOOL ("make-cursor-line-fully-visible", make_cursor_line_fully_visible_p,
     doc: /* *Non-nil means to scroll (recenter) cursor line if it is not fully visible.  */);
   make_cursor_line_fully_visible_p = 1;
 
-  DEFVAR_LISP ("tool-bar-border", &Vtool_bar_border,
+  DEFVAR_LISP ("tool-bar-border", Vtool_bar_border,
     doc: /* *Border below tool-bar in pixels.
 If an integer, use it as the height of the border.
 If it is one of `internal-border-width' or `border-width', use the
@@ -26867,7 +26641,7 @@
 Otherwise, no border is added below the tool-bar.  */);
   Vtool_bar_border = Qinternal_border_width;
 
-  DEFVAR_LISP ("tool-bar-button-margin", &Vtool_bar_button_margin,
+  DEFVAR_LISP ("tool-bar-button-margin", Vtool_bar_button_margin,
     doc: /* *Margin around tool-bar buttons in pixels.
 If an integer, use that for both horizontal and vertical margins.
 Otherwise, value should be a pair of integers `(HORZ . VERT)' with
@@ -26875,11 +26649,11 @@
 vertical margin.  */);
   Vtool_bar_button_margin = make_number (DEFAULT_TOOL_BAR_BUTTON_MARGIN);
 
-  DEFVAR_INT ("tool-bar-button-relief", &tool_bar_button_relief,
+  DEFVAR_INT ("tool-bar-button-relief", tool_bar_button_relief,
     doc: /* *Relief thickness of tool-bar buttons.  */);
   tool_bar_button_relief = DEFAULT_TOOL_BAR_BUTTON_RELIEF;
 
-  DEFVAR_LISP ("tool-bar-style", &Vtool_bar_style,
+  DEFVAR_LISP ("tool-bar-style", Vtool_bar_style,
     doc: /* Tool bar style to use.
 It can be one of
  image            - show images only
@@ -26890,13 +26664,13 @@
  any other        - use system default or image if no system default.  */);
   Vtool_bar_style = Qnil;
 
-  DEFVAR_INT ("tool-bar-max-label-size", &tool_bar_max_label_size,
+  DEFVAR_INT ("tool-bar-max-label-size", tool_bar_max_label_size,
     doc: /* *Maximum number of characters a label can have to be shown.
 The tool bar style must also show labels for this to have any effect, see
 `tool-bar-style'.  */);
   tool_bar_max_label_size = DEFAULT_TOOL_BAR_LABEL_SIZE;
 
-  DEFVAR_LISP ("fontification-functions", &Vfontification_functions,
+  DEFVAR_LISP ("fontification-functions", Vfontification_functions,
     doc: /* List of functions to call to fontify regions of text.
 Each function is called with one argument POS.  Functions must
 fontify a region starting at POS in the current buffer, and give
@@ -26905,7 +26679,7 @@
   Fmake_variable_buffer_local (Qfontification_functions);
 
   DEFVAR_BOOL ("unibyte-display-via-language-environment",
-               &unibyte_display_via_language_environment,
+               unibyte_display_via_language_environment,
     doc: /* *Non-nil means display unibyte text according to language environment.
 Specifically, this means that raw bytes in the range 160-255 decimal
 are displayed by converting them to the equivalent multibyte characters
@@ -26916,13 +26690,13 @@
 but does not change the fact they are interpreted as raw bytes.  */);
   unibyte_display_via_language_environment = 0;
 
-  DEFVAR_LISP ("max-mini-window-height", &Vmax_mini_window_height,
+  DEFVAR_LISP ("max-mini-window-height", Vmax_mini_window_height,
     doc: /* *Maximum height for resizing mini-windows.
 If a float, it specifies a fraction of the mini-window frame's height.
 If an integer, it specifies a number of lines.  */);
   Vmax_mini_window_height = make_float (0.25);
 
-  DEFVAR_LISP ("resize-mini-windows", &Vresize_mini_windows,
+  DEFVAR_LISP ("resize-mini-windows", Vresize_mini_windows,
     doc: /* *How to resize mini-windows.
 A value of nil means don't automatically resize mini-windows.
 A value of t means resize them to fit the text displayed in them.
@@ -26931,7 +26705,7 @@
 go back to their normal size.  */);
   Vresize_mini_windows = Qgrow_only;
 
-  DEFVAR_LISP ("blink-cursor-alist", &Vblink_cursor_alist,
+  DEFVAR_LISP ("blink-cursor-alist", Vblink_cursor_alist,
     doc: /* Alist specifying how to blink the cursor off.
 Each element has the form (ON-STATE . OFF-STATE).  Whenever the
 `cursor-type' frame-parameter or variable equals ON-STATE,
@@ -26943,7 +26717,7 @@
 the frame's other specifications determine how to blink the cursor off.  */);
   Vblink_cursor_alist = Qnil;
 
-  DEFVAR_BOOL ("auto-hscroll-mode", &automatic_hscrolling_p,
+  DEFVAR_BOOL ("auto-hscroll-mode", automatic_hscrolling_p,
     doc: /* Allow or disallow automatic horizontal scrolling of windows.
 If non-nil, windows are automatically scrolled horizontally to make
 point visible.  */);
@@ -26951,12 +26725,12 @@
   Qauto_hscroll_mode = intern_c_string ("auto-hscroll-mode");
   staticpro (&Qauto_hscroll_mode);
 
-  DEFVAR_INT ("hscroll-margin", &hscroll_margin,
+  DEFVAR_INT ("hscroll-margin", hscroll_margin,
     doc: /* *How many columns away from the window edge point is allowed to get
 before automatic hscrolling will horizontally scroll the window.  */);
   hscroll_margin = 5;
 
-  DEFVAR_LISP ("hscroll-step", &Vhscroll_step,
+  DEFVAR_LISP ("hscroll-step", Vhscroll_step,
     doc: /* *How many columns to scroll the window when point gets too close to the edge.
 When point is less than `hscroll-margin' columns from the window
 edge, automatic hscrolling will scroll the window by the amount of columns
@@ -26974,28 +26748,28 @@
 and `scroll-right' overrides this variable's effect.  */);
   Vhscroll_step = make_number (0);
 
-  DEFVAR_BOOL ("message-truncate-lines", &message_truncate_lines,
+  DEFVAR_BOOL ("message-truncate-lines", message_truncate_lines,
     doc: /* If non-nil, messages are truncated instead of resizing the echo area.
 Bind this around calls to `message' to let it take effect.  */);
   message_truncate_lines = 0;
 
-  DEFVAR_LISP ("menu-bar-update-hook",  &Vmenu_bar_update_hook,
+  DEFVAR_LISP ("menu-bar-update-hook",  Vmenu_bar_update_hook,
     doc: /* Normal hook run to update the menu bar definitions.
 Redisplay runs this hook before it redisplays the menu bar.
 This is used to update submenus such as Buffers,
 whose contents depend on various data.  */);
   Vmenu_bar_update_hook = Qnil;
 
-  DEFVAR_LISP ("menu-updating-frame", &Vmenu_updating_frame,
+  DEFVAR_LISP ("menu-updating-frame", Vmenu_updating_frame,
 	       doc: /* Frame for which we are updating a menu.
 The enable predicate for a menu binding should check this variable.  */);
   Vmenu_updating_frame = Qnil;
 
-  DEFVAR_BOOL ("inhibit-menubar-update", &inhibit_menubar_update,
+  DEFVAR_BOOL ("inhibit-menubar-update", inhibit_menubar_update,
     doc: /* Non-nil means don't update menu bars.  Internal use only.  */);
   inhibit_menubar_update = 0;
 
-  DEFVAR_LISP ("wrap-prefix", &Vwrap_prefix,
+  DEFVAR_LISP ("wrap-prefix", Vwrap_prefix,
     doc: /* Prefix prepended to all continuation lines at display time.
 The value may be a string, an image, or a stretch-glyph; it is
 interpreted in the same way as the value of a `display' text property.
@@ -27009,7 +26783,7 @@
   Qwrap_prefix = intern_c_string ("wrap-prefix");
   Fmake_variable_buffer_local (Qwrap_prefix);
 
-  DEFVAR_LISP ("line-prefix", &Vline_prefix,
+  DEFVAR_LISP ("line-prefix", Vline_prefix,
     doc: /* Prefix prepended to all non-continuation lines at display time.
 The value may be a string, an image, or a stretch-glyph; it is
 interpreted in the same way as the value of a `display' text property.
@@ -27023,36 +26797,36 @@
   Qline_prefix = intern_c_string ("line-prefix");
   Fmake_variable_buffer_local (Qline_prefix);
 
-  DEFVAR_BOOL ("inhibit-eval-during-redisplay", &inhibit_eval_during_redisplay,
+  DEFVAR_BOOL ("inhibit-eval-during-redisplay", inhibit_eval_during_redisplay,
     doc: /* Non-nil means don't eval Lisp during redisplay.  */);
   inhibit_eval_during_redisplay = 0;
 
-  DEFVAR_BOOL ("inhibit-free-realized-faces", &inhibit_free_realized_faces,
+  DEFVAR_BOOL ("inhibit-free-realized-faces", inhibit_free_realized_faces,
     doc: /* Non-nil means don't free realized faces.  Internal use only.  */);
   inhibit_free_realized_faces = 0;
 
 #if GLYPH_DEBUG
-  DEFVAR_BOOL ("inhibit-try-window-id", &inhibit_try_window_id,
+  DEFVAR_BOOL ("inhibit-try-window-id", inhibit_try_window_id,
 	       doc: /* Inhibit try_window_id display optimization.  */);
   inhibit_try_window_id = 0;
 
-  DEFVAR_BOOL ("inhibit-try-window-reusing", &inhibit_try_window_reusing,
+  DEFVAR_BOOL ("inhibit-try-window-reusing", inhibit_try_window_reusing,
 	       doc: /* Inhibit try_window_reusing display optimization.  */);
   inhibit_try_window_reusing = 0;
 
-  DEFVAR_BOOL ("inhibit-try-cursor-movement", &inhibit_try_cursor_movement,
+  DEFVAR_BOOL ("inhibit-try-cursor-movement", inhibit_try_cursor_movement,
 	       doc: /* Inhibit try_cursor_movement display optimization.  */);
   inhibit_try_cursor_movement = 0;
 #endif /* GLYPH_DEBUG */
 
-  DEFVAR_INT ("overline-margin", &overline_margin,
+  DEFVAR_INT ("overline-margin", overline_margin,
 	       doc: /* *Space between overline and text, in pixels.
 The default value is 2: the height of the overline (1 pixel) plus 1 pixel
 margin to the caracter height.  */);
   overline_margin = 2;
 
   DEFVAR_INT ("underline-minimum-offset",
-	       &underline_minimum_offset,
+	       underline_minimum_offset,
      doc: /* Minimum distance between baseline and underline.
 This can improve legibility of underlined text at small font sizes,
 particularly when using variable `x-use-underline-position-properties'
@@ -27060,13 +26834,13 @@
 baseline.  The default value is 1.  */);
   underline_minimum_offset = 1;
 
-  DEFVAR_BOOL ("display-hourglass", &display_hourglass_p,
+  DEFVAR_BOOL ("display-hourglass", display_hourglass_p,
 	       doc: /* Non-nil means show an hourglass pointer, when Emacs is busy.
 This feature only works when on a window system that can change
 cursor shapes.  */);
   display_hourglass_p = 1;
 
-  DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay,
+  DEFVAR_LISP ("hourglass-delay", Vhourglass_delay,
 	       doc: /* *Seconds to wait before displaying an hourglass pointer when Emacs is busy.  */);
   Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
 
@@ -27086,7 +26860,7 @@
   Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
   Fput (Qglyphless_char_display, Qchar_table_extra_slots, make_number (1));
 
-  DEFVAR_LISP ("glyphless-char-display", &Vglyphless_char_display,
+  DEFVAR_LISP ("glyphless-char-display", Vglyphless_char_display,
 	       doc: /* Char-table to control displaying of glyphless characters.
 Each element, if non-nil, is an ASCII acronym string (displayed in a box)
 or one of these symbols:
--- a/src/xfaces.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xfaces.c	Tue Jan 18 13:45:37 2011 -0700
@@ -355,13 +355,6 @@
 
 Lisp_Object Qface_alias;
 
-/* Default stipple pattern used on monochrome displays.  This stipple
-   pattern is used on monochrome displays instead of shades of gray
-   for a face background color.  See `set-face-stipple' for possible
-   values for this variable.  */
-
-Lisp_Object Vface_default_stipple;
-
 /* Alist of alternative font families.  Each element is of the form
    (FAMILY FAMILY1 FAMILY2 ...).  If fonts of FAMILY can't be loaded,
    try FAMILY1, then FAMILY2, ...  */
@@ -380,20 +373,8 @@
    font may be scaled if its name matches a regular expression in the
    list.  */
 
-Lisp_Object Vscalable_fonts_allowed, Qscalable_fonts_allowed;
-
-/* List of regular expressions that matches names of fonts to ignore. */
-
-Lisp_Object Vface_ignored_fonts;
-
-/* Alist of font name patterns vs the rescaling factor.  */
-
-Lisp_Object Vface_font_rescale_alist;
-
-/* Maximum number of fonts to consider in font_list.  If not an
-   integer > 0, DEFAULT_FONT_LIST_LIMIT is used instead.  */
-
-Lisp_Object Vfont_list_limit;
+Lisp_Object Qscalable_fonts_allowed;
+
 #define DEFAULT_FONT_LIST_LIMIT 100
 
 /* The symbols `foreground-color' and `background-color' which can be
@@ -414,30 +395,6 @@
 
 Lisp_Object Qbitmap_spec_p;
 
-/* Alist of global face definitions.  Each element is of the form
-   (FACE . LFACE) where FACE is a symbol naming a face and LFACE
-   is a Lisp vector of face attributes.  These faces are used
-   to initialize faces for new frames.  */
-
-Lisp_Object Vface_new_frame_defaults;
-
-/* Alist of face remappings.  Each element is of the form:
-   (FACE REPLACEMENT...) which causes display of the face FACE to use
-   REPLACEMENT... instead.  REPLACEMENT... is interpreted the same way
-   the value of a `face' text property is: it may be (1) A face name,
-   (2) A list of face names, (3) A property-list of face attribute/value
-   pairs, or (4) A list of face names intermixed with lists containing
-   face attribute/value pairs.
-
-   Multiple entries in REPLACEMENT... are merged together to form the final
-   result, with faces or attributes earlier in the list taking precedence
-   over those that are later.
-
-   Face-name remapping cycles are suppressed; recursive references use
-   the underlying face instead of the remapped face.  */
-
-Lisp_Object Vface_remapping_alist;
-
 /* The next ID to assign to Lisp faces.  */
 
 static int next_lface_id;
@@ -455,10 +412,6 @@
 
 Lisp_Object Qtty_color_alist;
 
-/* An alist of defined terminal colors and their RGB values.  */
-
-Lisp_Object Vtty_defined_color_alist;
-
 /* Counter for calls to clear_face_cache.  If this counter reaches
    CLEAR_FONT_TABLE_COUNT, and a frame has more than
    CLEAR_FONT_TABLE_NFONTS load, unused fonts are freed.  */
@@ -6715,29 +6668,29 @@
   defsubr (&Sdump_colors);
 #endif
 
-  DEFVAR_LISP ("font-list-limit", &Vfont_list_limit,
+  DEFVAR_LISP ("font-list-limit", Vfont_list_limit,
 	       doc: /* *Limit for font matching.
 If an integer > 0, font matching functions won't load more than
 that number of fonts when searching for a matching font.  */);
   Vfont_list_limit = make_number (DEFAULT_FONT_LIST_LIMIT);
 
-  DEFVAR_LISP ("face-new-frame-defaults", &Vface_new_frame_defaults,
+  DEFVAR_LISP ("face-new-frame-defaults", Vface_new_frame_defaults,
     doc: /* List of global face definitions (for internal use only.)  */);
   Vface_new_frame_defaults = Qnil;
 
-  DEFVAR_LISP ("face-default-stipple", &Vface_default_stipple,
+  DEFVAR_LISP ("face-default-stipple", Vface_default_stipple,
     doc: /* *Default stipple pattern used on monochrome displays.
 This stipple pattern is used on monochrome displays
 instead of shades of gray for a face background color.
 See `set-face-stipple' for possible values for this variable.  */);
   Vface_default_stipple = make_pure_c_string ("gray3");
 
-  DEFVAR_LISP ("tty-defined-color-alist", &Vtty_defined_color_alist,
+  DEFVAR_LISP ("tty-defined-color-alist", Vtty_defined_color_alist,
    doc: /* An alist of defined terminal colors and their RGB values.
 See the docstring of `tty-color-alist' for the details.  */);
   Vtty_defined_color_alist = Qnil;
 
-  DEFVAR_LISP ("scalable-fonts-allowed", &Vscalable_fonts_allowed,
+  DEFVAR_LISP ("scalable-fonts-allowed", Vscalable_fonts_allowed,
 	       doc: /* Allowed scalable fonts.
 A value of nil means don't allow any scalable fonts.
 A value of t means allow any scalable font.
@@ -6747,13 +6700,13 @@
 other font of the appropriate family and registry is available.  */);
   Vscalable_fonts_allowed = Qnil;
 
-  DEFVAR_LISP ("face-ignored-fonts", &Vface_ignored_fonts,
+  DEFVAR_LISP ("face-ignored-fonts", Vface_ignored_fonts,
 	       doc: /* List of ignored fonts.
 Each element is a regular expression that matches names of fonts to
 ignore.  */);
   Vface_ignored_fonts = Qnil;
 
-  DEFVAR_LISP ("face-remapping-alist", &Vface_remapping_alist,
+  DEFVAR_LISP ("face-remapping-alist", Vface_remapping_alist,
 	       doc: /* Alist of face remappings.
 Each element is of the form:
 
@@ -6794,7 +6747,7 @@
 changing this variable for it to take effect.  */);
   Vface_remapping_alist = Qnil;
 
-  DEFVAR_LISP ("face-font-rescale-alist", &Vface_font_rescale_alist,
+  DEFVAR_LISP ("face-font-rescale-alist", Vface_font_rescale_alist,
 	       doc: /* Alist of fonts vs the rescaling factors.
 Each element is a cons (FONT-PATTERN . RESCALE-RATIO), where
 FONT-PATTERN is a font-spec or a regular expression matching a font name, and
--- a/src/xfns.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xfns.c	Tue Jan 18 13:45:37 2011 -0700
@@ -119,20 +119,12 @@
 
 #ifdef USE_MOTIF
 
-/* LessTif/Motif version info.  */
-
-static Lisp_Object Vmotif_version_string;
-
 #endif /* USE_MOTIF */
 
 #endif /* USE_X_TOOLKIT */
 
 #ifdef USE_GTK
 
-/* GTK+ version info */
-
-static Lisp_Object Vgtk_version_string;
-
 #endif /* USE_GTK */
 
 #define MAXREQUEST(dpy) (XMaxRequestSize (dpy))
@@ -145,57 +137,10 @@
 int gray_bitmap_height = gray_height;
 char *gray_bitmap_bits = gray_bits;
 
-/* Non-zero means prompt with the old GTK file selection dialog.  */
-
-int x_gtk_use_old_file_dialog;
-
-/* If non-zero, by default show hidden files in the GTK file chooser.  */
-
-int x_gtk_show_hidden_files;
-
-/* If non-zero, don't show additional help text in the GTK file chooser.  */
-
-int x_gtk_file_dialog_help_text;
-
-/* If non-zero, don't collapse to tool bar when it is detached.  */
-
-int x_gtk_whole_detached_tool_bar;
-
-/* If non-zero, use Gtk+ tooltips.  */
-
-static int x_gtk_use_system_tooltips;
-
-/* The background and shape of the mouse pointer, and shape when not
-   over text or in the modeline.  */
-
-Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
-Lisp_Object Vx_hourglass_pointer_shape;
-
-/* The shape when over mouse-sensitive text.  */
-
-Lisp_Object Vx_sensitive_text_pointer_shape;
-
-/* If non-nil, the pointer shape to indicate that windows can be
-   dragged horizontally.  */
-
-Lisp_Object Vx_window_horizontal_drag_shape;
-
-/* Color of chars displayed in cursor box.  */
-
-Lisp_Object Vx_cursor_fore_pixel;
-
 /* Nonzero if using X.  */
 
 static int x_in_use;
 
-/* Non nil if no window manager is in use.  */
-
-Lisp_Object Vx_no_window_manager;
-
-/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.  */
-
-Lisp_Object Vx_pixel_size_width_font_regexp;
-
 Lisp_Object Qnone;
 Lisp_Object Qsuppress_icon;
 Lisp_Object Qundefined_color;
@@ -4602,10 +4547,6 @@
 
 Lisp_Object last_show_tip_args;
 
-/* Maximum size for tooltips; a cons (COLUMNS . ROWS).  */
-
-Lisp_Object Vx_max_tooltip_size;
-
 
 static Lisp_Object
 unwind_create_tip_frame (Lisp_Object frame)
@@ -5912,28 +5853,28 @@
   Fput (Qundefined_color, Qerror_message,
 	make_pure_c_string ("Undefined color"));
 
-  DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape,
+  DEFVAR_LISP ("x-pointer-shape", Vx_pointer_shape,
     doc: /* The shape of the pointer when over text.
 Changing the value does not affect existing frames
 unless you set the mouse color.  */);
   Vx_pointer_shape = Qnil;
 
 #if 0 /* This doesn't really do anything.  */
-  DEFVAR_LISP ("x-nontext-pointer-shape", &Vx_nontext_pointer_shape,
+  DEFVAR_LISP ("x-nontext-pointer-shape", Vx_nontext_pointer_shape,
     doc: /* The shape of the pointer when not over text.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
 #endif
   Vx_nontext_pointer_shape = Qnil;
 
-  DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape,
+  DEFVAR_LISP ("x-hourglass-pointer-shape", Vx_hourglass_pointer_shape,
     doc: /* The shape of the pointer when Emacs is busy.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
   Vx_hourglass_pointer_shape = Qnil;
 
 #if 0 /* This doesn't really do anything.  */
-  DEFVAR_LISP ("x-mode-pointer-shape", &Vx_mode_pointer_shape,
+  DEFVAR_LISP ("x-mode-pointer-shape", Vx_mode_pointer_shape,
     doc: /* The shape of the pointer when over the mode line.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
@@ -5941,29 +5882,29 @@
   Vx_mode_pointer_shape = Qnil;
 
   DEFVAR_LISP ("x-sensitive-text-pointer-shape",
-	      &Vx_sensitive_text_pointer_shape,
+	      Vx_sensitive_text_pointer_shape,
 	       doc: /* The shape of the pointer when over mouse-sensitive text.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
   Vx_sensitive_text_pointer_shape = Qnil;
 
   DEFVAR_LISP ("x-window-horizontal-drag-cursor",
-	      &Vx_window_horizontal_drag_shape,
+	      Vx_window_horizontal_drag_shape,
   doc: /* Pointer shape to use for indicating a window can be dragged horizontally.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
   Vx_window_horizontal_drag_shape = Qnil;
 
-  DEFVAR_LISP ("x-cursor-fore-pixel", &Vx_cursor_fore_pixel,
+  DEFVAR_LISP ("x-cursor-fore-pixel", Vx_cursor_fore_pixel,
     doc: /* A string indicating the foreground color of the cursor box.  */);
   Vx_cursor_fore_pixel = Qnil;
 
-  DEFVAR_LISP ("x-max-tooltip-size", &Vx_max_tooltip_size,
+  DEFVAR_LISP ("x-max-tooltip-size", Vx_max_tooltip_size,
     doc: /* Maximum size for tooltips.
 Value is a pair (COLUMNS . ROWS).  Text larger than this is clipped.  */);
   Vx_max_tooltip_size = Fcons (make_number (80), make_number (40));
 
-  DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager,
+  DEFVAR_LISP ("x-no-window-manager", Vx_no_window_manager,
     doc: /* Non-nil if no X window manager is in use.
 Emacs doesn't try to figure this out; this is always nil
 unless you set it to something else.  */);
@@ -5972,7 +5913,7 @@
   Vx_no_window_manager = Qnil;
 
   DEFVAR_LISP ("x-pixel-size-width-font-regexp",
-	       &Vx_pixel_size_width_font_regexp,
+	       Vx_pixel_size_width_font_regexp,
     doc: /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.
 
 Since Emacs gets width of a font matching with this regexp from
@@ -5982,32 +5923,32 @@
   Vx_pixel_size_width_font_regexp = Qnil;
 
 /* This is not ifdef:ed, so other builds than GTK can customize it.  */
-  DEFVAR_BOOL ("x-gtk-use-old-file-dialog", &x_gtk_use_old_file_dialog,
+  DEFVAR_BOOL ("x-gtk-use-old-file-dialog", x_gtk_use_old_file_dialog,
     doc: /* *Non-nil means prompt with the old GTK file selection dialog.
 If nil or if the file selection dialog is not available, the new GTK file
 chooser is used instead.  To turn off all file dialogs set the
 variable `use-file-dialog'.  */);
   x_gtk_use_old_file_dialog = 0;
 
-  DEFVAR_BOOL ("x-gtk-show-hidden-files", &x_gtk_show_hidden_files,
+  DEFVAR_BOOL ("x-gtk-show-hidden-files", x_gtk_show_hidden_files,
     doc: /* *If non-nil, the GTK file chooser will by default show hidden files.
 Note that this is just the default, there is a toggle button on the file
 chooser to show or not show hidden files on a case by case basis.  */);
   x_gtk_show_hidden_files = 0;
 
-  DEFVAR_BOOL ("x-gtk-file-dialog-help-text", &x_gtk_file_dialog_help_text,
+  DEFVAR_BOOL ("x-gtk-file-dialog-help-text", x_gtk_file_dialog_help_text,
     doc: /* *If non-nil, the GTK file chooser will show additional help text.
 If more space for files in the file chooser dialog is wanted, set this to nil
 to turn the additional text off.  */);
   x_gtk_file_dialog_help_text = 1;
 
-  DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", &x_gtk_whole_detached_tool_bar,
+  DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", x_gtk_whole_detached_tool_bar,
     doc: /* *If non-nil, a detached tool bar is shown in full.
 The default is to just show an arrow and pressing on that arrow shows
 the tool bar buttons.  */);
   x_gtk_whole_detached_tool_bar = 0;
 
-  DEFVAR_BOOL ("x-gtk-use-system-tooltips", &x_gtk_use_system_tooltips,
+  DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips,
     doc: /* *If non-nil with a Gtk+ built Emacs, the Gtk+ toolip is used.
 Otherwise use Emacs own tooltip implementation.
 When using Gtk+ tooltips, the tooltip face is not used.  */);
@@ -6020,7 +5961,7 @@
 #ifdef USE_MOTIF
   Fprovide (intern_c_string ("motif"), Qnil);
 
-  DEFVAR_LISP ("motif-version-string", &Vmotif_version_string,
+  DEFVAR_LISP ("motif-version-string", Vmotif_version_string,
 	       doc: /* Version info for LessTif/Motif.  */);
   Vmotif_version_string = build_string (XmVERSION_STRING);
 #endif /* USE_MOTIF */
@@ -6035,7 +5976,7 @@
   Fprovide (intern_c_string ("gtk"), Qnil);
   Fprovide (intern_c_string ("move-toolbar"), Qnil);
 
-  DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string,
+  DEFVAR_LISP ("gtk-version-string", Vgtk_version_string,
                doc: /* Version info for GTK+.  */);
   {
     char gtk_version[40];
--- a/src/xselect.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xselect.c	Tue Jan 18 13:45:37 2011 -0700
@@ -111,8 +111,6 @@
 
 Lisp_Object Qcompound_text_with_extensions;
 
-static Lisp_Object Vx_lost_selection_functions;
-static Lisp_Object Vx_sent_selection_functions;
 static Lisp_Object Qforeign_selection;
 
 /* If this is a smaller number than the max-request-size of the display,
@@ -143,17 +141,6 @@
     selection-values.  */
 static Lisp_Object Vselection_alist;
 
-/* This is an alist whose CARs are selection-types (whose names are the same
-   as the names of X Atoms) and whose CDRs are the names of Lisp functions to
-   call to convert the given Emacs selection value to a string representing
-   the given selection type.  This is for Lisp-level extension of the emacs
-   selection handling.  */
-static Lisp_Object Vselection_converter_alist;
-
-/* If the selection owner takes too long to reply to a selection request,
-   we give up on it.  This is in milliseconds (0 = no timeout.)  */
-static EMACS_INT x_selection_timeout;
-
 
 
 /* Define a queue to save up SELECTION_REQUEST_EVENT events for later
@@ -2646,7 +2633,7 @@
   Vselection_alist = Qnil;
   staticpro (&Vselection_alist);
 
-  DEFVAR_LISP ("selection-converter-alist", &Vselection_converter_alist,
+  DEFVAR_LISP ("selection-converter-alist", Vselection_converter_alist,
 	       doc: /* An alist associating X Windows selection-types with functions.
 These functions are called to convert the selection, with three args:
 the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');
@@ -2661,7 +2648,7 @@
 and there is no meaningful selection value.  */);
   Vselection_converter_alist = Qnil;
 
-  DEFVAR_LISP ("x-lost-selection-functions", &Vx_lost_selection_functions,
+  DEFVAR_LISP ("x-lost-selection-functions", Vx_lost_selection_functions,
 	       doc: /* A list of functions to be called when Emacs loses an X selection.
 \(This happens when some other X client makes its own selection
 or when a Lisp program explicitly clears the selection.)
@@ -2669,7 +2656,7 @@
 \(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').  */);
   Vx_lost_selection_functions = Qnil;
 
-  DEFVAR_LISP ("x-sent-selection-functions", &Vx_sent_selection_functions,
+  DEFVAR_LISP ("x-sent-selection-functions", Vx_sent_selection_functions,
 	       doc: /* A list of functions to be called when Emacs answers a selection request.
 The functions are called with four arguments:
   - the selection name (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');
@@ -2683,7 +2670,7 @@
 it merely informs you that they have happened.  */);
   Vx_sent_selection_functions = Qnil;
 
-  DEFVAR_INT ("x-selection-timeout", &x_selection_timeout,
+  DEFVAR_INT ("x-selection-timeout", x_selection_timeout,
 	      doc: /* Number of milliseconds to wait for a selection reply.
 If the selection owner doesn't reply in this time, we give up.
 A value of 0 means wait as long as necessary.  This is initialized from the
--- a/src/xsettings.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xsettings.c	Tue Jan 18 13:45:37 2011 -0700
@@ -44,8 +44,6 @@
 static struct x_display_info *first_dpyinfo;
 static Lisp_Object Qmonospace_font_name, Qfont_name, Qfont_render,
   Qtool_bar_style;
-static int use_system_font;
-static Lisp_Object Vxft_settings;
 static Lisp_Object current_tool_bar_style;
 
 #ifdef HAVE_GCONF
@@ -751,14 +749,14 @@
   defsubr (&Sfont_get_system_font);
   defsubr (&Sfont_get_system_normal_font);
 
-  DEFVAR_BOOL ("font-use-system-font", &use_system_font,
+  DEFVAR_BOOL ("font-use-system-font", use_system_font,
     doc: /* *Non-nil means to apply the system defined font dynamically.
 When this is non-nil and the system defined fixed width font changes, we
 update frames dynamically.
 If this variable is nil, Emacs ignores system font changes.  */);
   use_system_font = 0;
 
-  DEFVAR_LISP ("xft-settings", &Vxft_settings,
+  DEFVAR_LISP ("xft-settings", Vxft_settings,
                doc: /* Font settings applied to Xft.  */);
   Vxft_settings = make_string ("", 0);
 
--- a/src/xsmfns.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xsmfns.c	Tue Jan 18 13:45:37 2011 -0700
@@ -66,15 +66,6 @@
 
 static char *emacs_program;
 
-/* The client session id for this session as a lisp object.  */
-
-Lisp_Object Vx_session_id;
-
-/* The id we had the previous session.  This is only available if we
-   have been started by the session manager with SMID_OPT.  */
-
-Lisp_Object Vx_session_previous_id;
-
 /* The option we tell the session manager to start Emacs with when
    restarting Emacs.  The client_id is appended.  */
 
@@ -558,7 +549,7 @@
 void
 syms_of_xsmfns (void)
 {
-  DEFVAR_LISP ("x-session-id", &Vx_session_id,
+  DEFVAR_LISP ("x-session-id", Vx_session_id,
     doc: /* The session id Emacs got from the session manager for this session.
 Changing the value does not change the session id used by Emacs.
 The value is nil if no session manager is running.
@@ -566,7 +557,7 @@
 `emacs-session-save' and `emacs-session-restore'." */);
   Vx_session_id = Qnil;
 
-  DEFVAR_LISP ("x-session-previous-id", &Vx_session_previous_id,
+  DEFVAR_LISP ("x-session-previous-id", Vx_session_previous_id,
     doc: /* The previous session id Emacs got from session manager.
 If Emacs is running on a window system that has a session manager, the
 session manager gives Emacs a session id.  It is feasible for Emacs Lisp
--- a/src/xterm.c	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xterm.c	Tue Jan 18 13:45:37 2011 -0700
@@ -147,10 +147,6 @@
 
 
 
-/* Non-nil means Emacs uses toolkit scroll bars.  */
-
-Lisp_Object Vx_toolkit_scroll_bars;
-
 /* Non-zero means that a HELP_EVENT has been generated since Emacs
    start.  */
 
@@ -159,14 +155,6 @@
 /* Last window where we saw the mouse.  Used by mouse-autoselect-window.  */
 static Lisp_Object last_window;
 
-/* Non-zero means make use of UNDERLINE_POSITION font properties.  */
-
-int x_use_underline_position_properties;
-
-/* Non-zero means to draw the underline at the same place as the descent line.  */
-
-int x_underline_at_descent_line;
-
 /* This is a chain of structures for all the X displays currently in
    use.  */
 
@@ -207,11 +195,6 @@
 
 static int toolkit_scroll_bar_interaction;
 
-/* Non-zero means to not move point as a result of clicking on a
-   frame to focus it (when focus-follows-mouse is nil).  */
-
-int x_mouse_click_focus_ignore_position;
-
 /* Non-zero timeout value means ignore next mouse click if it arrives
    before that timeout elapses (i.e. as part of the same sequence of
    events resulting from clicking on a frame to select it).  */
@@ -282,10 +265,6 @@
 
 static int x_noop_count;
 
-/* The keysyms to use for the various modifiers.  */
-
-Lisp_Object Vx_alt_keysym, Vx_hyper_keysym, Vx_meta_keysym, Vx_super_keysym;
-Lisp_Object Vx_keysym_table;
 static Lisp_Object Qalt, Qhyper, Qmeta, Qsuper, Qmodifier_value;
 
 static Lisp_Object Qvendor_specific_keysyms;
@@ -10773,7 +10752,7 @@
 #endif
 
   DEFVAR_BOOL ("x-use-underline-position-properties",
-	       &x_use_underline_position_properties,
+	       x_use_underline_position_properties,
      doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
 A value of nil means ignore them.  If you encounter fonts with bogus
 UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
@@ -10783,7 +10762,7 @@
   x_use_underline_position_properties = 1;
 
   DEFVAR_BOOL ("x-underline-at-descent-line",
-	       &x_underline_at_descent_line,
+	       x_underline_at_descent_line,
      doc: /* *Non-nil means to draw the underline at the same place as the descent line.
 A value of nil means to draw the underline according to the value of the
 variable `x-use-underline-position-properties', which is usually at the
@@ -10791,7 +10770,7 @@
   x_underline_at_descent_line = 0;
 
   DEFVAR_BOOL ("x-mouse-click-focus-ignore-position",
-	       &x_mouse_click_focus_ignore_position,
+	       x_mouse_click_focus_ignore_position,
     doc: /* Non-nil means that a mouse click to focus a frame does not move point.
 This variable is only used when the window manager requires that you
 click on a frame to select it (give it focus).  In that case, a value
@@ -10800,7 +10779,7 @@
 selected window or cursor position is preserved.  */);
   x_mouse_click_focus_ignore_position = 0;
 
-  DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
+  DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars,
     doc: /* Which toolkit scroll bars Emacs uses, if any.
 A value of nil means Emacs doesn't use toolkit scroll bars.
 With the X Window system, the value is a symbol describing the
@@ -10833,35 +10812,35 @@
   Qsuper = intern_c_string ("super");
   Fput (Qsuper, Qmodifier_value, make_number (super_modifier));
 
-  DEFVAR_LISP ("x-alt-keysym", &Vx_alt_keysym,
+  DEFVAR_LISP ("x-alt-keysym", Vx_alt_keysym,
     doc: /* Which keys Emacs uses for the alt modifier.
 This should be one of the symbols `alt', `hyper', `meta', `super'.
 For example, `alt' means use the Alt_L and Alt_R keysyms.  The default
 is nil, which is the same as `alt'.  */);
   Vx_alt_keysym = Qnil;
 
-  DEFVAR_LISP ("x-hyper-keysym", &Vx_hyper_keysym,
+  DEFVAR_LISP ("x-hyper-keysym", Vx_hyper_keysym,
     doc: /* Which keys Emacs uses for the hyper modifier.
 This should be one of the symbols `alt', `hyper', `meta', `super'.
 For example, `hyper' means use the Hyper_L and Hyper_R keysyms.  The
 default is nil, which is the same as `hyper'.  */);
   Vx_hyper_keysym = Qnil;
 
-  DEFVAR_LISP ("x-meta-keysym", &Vx_meta_keysym,
+  DEFVAR_LISP ("x-meta-keysym", Vx_meta_keysym,
     doc: /* Which keys Emacs uses for the meta modifier.
 This should be one of the symbols `alt', `hyper', `meta', `super'.
 For example, `meta' means use the Meta_L and Meta_R keysyms.  The
 default is nil, which is the same as `meta'.  */);
   Vx_meta_keysym = Qnil;
 
-  DEFVAR_LISP ("x-super-keysym", &Vx_super_keysym,
+  DEFVAR_LISP ("x-super-keysym", Vx_super_keysym,
     doc: /* Which keys Emacs uses for the super modifier.
 This should be one of the symbols `alt', `hyper', `meta', `super'.
 For example, `super' means use the Super_L and Super_R keysyms.  The
 default is nil, which is the same as `super'.  */);
   Vx_super_keysym = Qnil;
 
-  DEFVAR_LISP ("x-keysym-table", &Vx_keysym_table,
+  DEFVAR_LISP ("x-keysym-table", Vx_keysym_table,
     doc: /* Hash table of character codes indexed by X keysym codes.  */);
   Vx_keysym_table = make_hash_table (Qeql, make_number (900),
 				     make_float (DEFAULT_REHASH_SIZE),
--- a/src/xterm.h	Tue Jan 18 20:08:00 2011 +0100
+++ b/src/xterm.h	Tue Jan 18 13:45:37 2011 -0700
@@ -388,9 +388,6 @@
    FONT-LIST-CACHE records previous values returned by x-list-fonts.  */
 extern Lisp_Object x_display_name_list;
 
-/* Regexp matching a font name whose width is the same as `PIXEL_SIZE'.  */
-extern Lisp_Object Vx_pixel_size_width_font_regexp;
-
 extern struct x_display_info *x_display_info_for_display (Display *);
 extern struct x_display_info *x_display_info_for_name (Lisp_Object);
 extern void x_set_frame_alpha (struct frame *);