(menu-bar-update-buffers-maxbuf): Declare variable.
(menu-bar-update-buffers-1, menu-bar-update-buffers):
Rename local var maxbuf to menu-bar-update-buffers-maxbuf.
(struct bp): New field heap.
(get_bloc, free_bloc, obtain, r_alloc_sbrk): Update new fields.
(reorder_bloc): New function.
(update_heap_bloc_correspondence):
Renamed from update_heap_free_pointers. Update new fields.
(relinquish): Add error check for new fields.
(x_make_frame_visible, x_make_frame_invisible):
Pass a frame ptr to x_sync.
(x_term_init): Init all the components of dpyinfo.
(x_display_info_for_display): New function.
(x_*_mod_mask): Variables deleted.
(x_x_to_emacs_modifiers, x_emacs_to_x_modifiers):
New arg dpyinfo; all callers changed.
Store the masks in that structure.
(icon_bitmap): Variable deleted.
(x_bitmap_icon): Use icon_bitmap_id in x_display_info.
(icon_font_info): Variable deleted.
(x_term_init): Set up `connection' field.
(x_find_modifier_meanings):
Arg is now struct x_display_info *.
(x_term_init): Return an x_display_info *.
Store all the data in it, including X atoms and xrdb.
Put the x_display_info structure on x_display_list.
Pass name as Lisp_Object.
(the_x_screen): Variable moved here.
(syms_of_xterm): Staticpro parts of the_x_screen.
(windowinfo): Variable deleted.
(Xatom_*): Variables deleted.
(x_iconify_frame, XTread_socket): Get atoms from the x_display_info,
(XTread_socket): Don't update Vmouse_depressed.
(x_mouse_grabbed): Variable deleted.
(note_mouse_highlight): Use grabbed field instead.
(XTmouse_position, XTread_socket): Likewise.
(x_calc_absolute_position, x_wm_set_size_hint):
Get screen height, width from the x_display_info structure.
(check_x_display_info): New function.
(Fx_create_frame): Use it.
(x_screen_planes): New function.
(EMACS_CLASS): Macro moved to xterm.h.
(Qdisplay): New variable.
(syms_of_xfns): Set it up.
(Fx_create_frame): Handle display parameter
which says where to get the FRAME_X_DISPLAY_INFO.
(x_display_info_for_name): New function.
(select_visual): New arg dpy.
(Fx_open_connection): Get dpyinfo from x_term_init.
Don't set up atoms, xrdb here. Pass name as Lisp_Object.
(the_x_screen): Variable moved to xterm.c.
(syms_of_xfns): Don't staticpro it here.
(xrdb): Variable deleted.
(Fx_get_resource): Use selected_frame's xrdb.
(x_get_resource_string): Likewise.
(Fx_open_connection): Store the atoms in x_display_info.
(hack_wm_protocols): New arg f. Get atoms from x_display_info.
(x_window): Get atoms from x_display_info.
(Vmouse_depressed, mouse_buffer_offset): Variables deleted.
(syms_of_xfns): Delete Lisp variables too.
(Fx_synchronize): Take frame as arg.
(Fx_close_current_connection): Take frame as arg. Error is not fatal.
(mouse_timestamp): Variable deleted.
(screen_visual, x_screen_planes): Variables deleted.
(x_screen, x_screen_height, x_screen_width): Variables deleted.
(Fx_open_connection): Don't set them here.
Put that info in the x_display_info structure.
(x_window): Get the visual from x_display_info structure.
(x_decode_color): Use n_planes from x_display_info structure.
Use FRAME_X_DISPLAY instead of x_current_display and XDISPLAY.
(x_in_use): New variable,
(check_x, using_x_p): Test x_in_use.
(Fx_open_connection): Set x_in_use.
(check_x_frame): New function.
(defined_color): New arg f specifies frame. Callers changed.
(x_decode_color): New arg f. All callers changed.
(Fx_color_values, Fx_color_defined_p): New arg FRAME.
Use check_x_frame.
(Fx_list_fonts): Use check_x_frame.
(consider_token): Comment out "EXFUN". Use "DEFUN" instead of "DEF".
(consider_token): set funcdef to fignore when a DEFUN is met.
(C_entries): Now we can use Tom Hageman patch for extern "C".
(facemenu-face-menu, facemenu-foreground-menu,
facemenu-background-menu): New or renamed variables for submenus.(facemenu-color-alist): Renamed from facemenu-colors.
(facemenu-add-new-face): New function.
(facemenu-update): Don't redo top-level menu;
nothing should change. Move menu setup to defvars. Use
facemenu-add-new-face. Changed global binding to C-down-mouse-3.
(facemenu-menu): "Update" item removed; should
no longer be needed interactively.
(facemenu-complete-face-list): Just return faces,
not keybindings.