* w32term.c (x_draw_glyph_string_foreground):
(x_draw_composite_glyph_string_foreground): Sync with xterm.c.
Use FONT_HANDLE macro.
(x_draw_glyph_string): Use FONT_TEXTMETRIC macro.
* w32uniscribe.c (uniscribe_otf_capability, uniscribe_shape):
(uniscribe_encode_char): Use FONT_HANDLE macro.
* w32font.c (Fx_select_font): Use FONT_HANDLE macro.
(w32font_text_extents): Use precast w32_font.
(w32font_close): Free cached metrics.
(w32font_open_internal): Allocate space for name on stack.
x_underline_minimum_display_offset.
(syms_of_xdisp): Declare it here rather than in xterm.c.
* dispextern.h (underline_minimum_offset): Declare it.
* w32term.c (x_draw_glyph_string): Use it.
* xterm.c (x_underline_minimum_display_offset): Move to xdisp.c.
(syms_of_xterm): Don't declare it any more.
(x_draw_glyph_string): Adjust to the new name.
* cus-start.el (underline-minimum-offset) Rename from
x-underline-minimum-display-offset.
conditionals. Don't check enable_font_backend. Delete all codes
used only when USE_FONT_BACKEND is not defined. Surround non-used
code by "#ifdef OLD_FONT" and "endif".
* termhooks.h (P_): Remove redundant def.
(struct terminal): New field `image_cache'.
* frame.h (FRAME_IMAGE_CACHE): New macro. Use it everywhere in place
of FRAME_X_IMAGE_CACHE.
* xterm.h (struct x_display_info): Remove image_cache field.
(FRAME_X_IMAGE_CACHE): Remove. Use FRAME_IMAGE_CACHE instead.
* w32term.h (struct w32_display_info): Remove image_cache field.
(FRAME_X_IMAGE_CACHE): Remove. Use FRAME_IMAGE_CACHE instead.
* macterm.h (struct mac_display_info): Remove image_cache field.
(FRAME_X_IMAGE_CACHE): Remove. Use FRAME_IMAGE_CACHE instead.
* xterm.c (x_term_init):
* w32term.c (w32_term_init):
* macterm.c (mac_term_init): Set the image_cache in the terminal.
* dispextern.h (clear_image_cache, forall_images_in_image_cache):
Remove declarations.
(clear_image_caches, mark_image_cache): New declarations.
* xfaces.c (clear_face_cache):
* xdisp.c (redisplay_internal): Use clear_image_caches.
* image.c (clear_image_cache): Don't check that a frame is on
a window-system before checking if it shares the same cache.
(clear_image_caches): New function.
(Fclear_image_cache): Use it.
(mark_image): Move from allo.c.
(mark_image_cache): Move from alloc.c and forall_images_in_image_cache.
* alloc.c (mark_image, mark_image_cache): Move to image.c.
(mark_object): Don't call mark_image_cache for frames.
(mark_terminals): Call mark_image_cache.
frame-local as done originally by multi-tty).
* startup.el (window-system): Remove. Don't make it frame-local.
* keyboard.h (struct kboard): Add Vwindow_system.
* keyboard.c (init_kboard): Set a default for Vwindow_system.
(mark_kboards): Mark Vwindow_system.
* dispnew.c (syms_of_display) <window-system>: Declare terminal-local.
(init_display): Don't set the obsolete `window-system' frame-param.
* xterm.c (x_term_init):
* w32term.c (w32_create_terminal):
* term.c (init_tty): Set Vwindow_system.
* macterm.c (mac_create_terminal): Set a keyboard (missing piece of the
multi-tty merge maybe?), copied from w32term.c. Set Vwindow_system.
* xfns.c (Fx_create_frame, x_create_tip_frame):
* w32fns.c (Fx_create_frame, x_create_tip_frame):
* macfns.c (Fx_create_frame):
Don't set the obsolete `window-system' frame-param.
* frame.h (Qwindow_system): Remove.
* frame.c (Qwindow_system): Remove. In `syms_of_frame' as well.
(Fmake_terminal_frame): Don't set obsolete `window-system' frame-param.
(construct_mouse_wheel): Make HORIZ_WHEEL_EVENT
from WM_MOUSEHWHEEL.
(w32_read_socket) <WM_MOUSEHWHEEL>: Treat as WM_MOUSEWHEEL.
MULTI_KBOARD support:
(w32_create_terminal) [MULTI_KBOARD]: Create a new
keyboard for the terminal.