(win32_display_info): New fields has_palette, p_colors_in_use,
n_colors_in_use, h_palette.
(win32_output): New field h_old_palette.
(WM_EMACS_SETWINDOWPOS): New macro.
(WM_EMACS_DESTROY_WINDOW): Value redefined.
(win32_fill_rect, dumpglyphs, do_line_dance, x_draw_box):
Use Get/ReleaseFrameDC.
(pixel_to_glyph_coords): Support tty mode.
(w32_read_socket): Explicitly use FALSE.
Handle WM_PALLETTECHANGED event.
(parse_button): Handle mouse button emulation.
(my_show_window, my_set_window_pos): New functions.
(x_set_offset, x_set_window_size, x_raise_frame, x_lower_frame):
Use my_set_window_pos.
(x_make_frame_visible, x_iconify_frame): Use my_show_window.
(x_draw_box): Don't trim right and bottom.
(x_make_frame_visible): Don't invoke SetForgroundWindow.
(win32_term_init): Use GetDC directly. Initialize palette
and win32_num_mouse_buttons.
(win32_update_begin): Regenerate palette if necessary.
(x_delete_display): Free palette.
(win32_initialize) [ATTACH_THREADS]: Only AttachThreadInput if
conditional is defined.
(Fwin32_rgb): Dead procedure removed.
(Fwin32_define_rgb_color, Fwin32_load_color_file, win32_map_color,
win32_regenerate_palette, win32_unmap_color): New functions.
(syms_of_w32fns): Set up new lisp functions.
(define_color): Use palettes. Simulate use of PALETTE_RGB to
use closest color instead of dithering.
(map_mode): Function removed.
(WIN32_COLOR, SET_WIN32_COLOR): New macros.
(win32_init_class): Don't set CS_OWNDC in the WNDCLASS style.
(win32_createwindow): Invoke ShowWindow to discard defaults
from parent.
(win32_wnd_proc): Use separate critical sections appropriately.
Handle palette change, show window, and set window position messages.
Record WINDOWPLACEMENT structure length.
D
Detect quit_char.
(Fx_create_frame): Set scrollbar width to be the system standard.
(Ffocus_frame, Funfocus_frame): Functions now do nothing.
(x_to_win32_weight, win32_to_x_weight): Handle "heavy", "extrabold",
"light", "extralight", and "thin" fonts.
(x_to_win32_charset, win32_to_x_charset): New functions.
(win32_to_x_font): Use new height units. Use win32_to_x_charset.
(x_to_win32_font): Use x_to_win32_charset. Support Win32 font names
in addition to X font names.
(win32_load_font, Fx_list_fonts, Fx_display_color_cells,
Fx_display_mm_height, Fx_display_mm_width: Use GetDC directly.
(Fx_open_connection): Support external color mapping files.
(win32_abort): Map abort button to abort, retry to debug, and
ignore to continue.
(child_process, MAX_CHILDREN, CHILD_ACTIVE): Moved to nt.h.
(DebugPrint): New macro.
(new_child): Create input event structures for child processes.
(delete_child): New function.
(reader_thread): Return nonzero upon failure. Use _sys_read_ahead.
(create_child): Add child_process and parent PID arguments.
Don't create input event or thread structures here.
Fixup Win95 negative process IDs.
(register_child): Don't set consumed event; instead, set thread
status so that select will release it.
(remove_child): Renamed to reap_process. Only free resources
of synchronous children.
(win32_wait): Renamed to sys_wait. Sanity check to make sure
handle to subprocess exists. Don't reclaim thread resources here.
(win32_spawnve): Renamed to sys_spawnve.
Check for proper wait mode first thing.
Convert command name to DOS format.
Quote whitespace and quotes in arguments to subprocess.
Use alloca instead of malloc.
If max subprocesses, return EAGAIN in hopes of another completing.
(sys_select): Add support for socket input. Remove dead code.
Check input from children fairly.
(sys_select) [HAVE_TIMEVAL]: Remove conditional check and code.
(win32_kill_process): Renamed to sys_kill. Use OpenProcess
to terminate process.
(prepate_standard_handles, reset_standard_handles): Moved here
from nt.c.
(allocate_heap): Use VALBITS to determine size of heap.
(allocate_heap) [WINDOWS95]: Conditional code removed.
(sbrk): Use VALMASK instead of an unsigned integer mask.
(fd_set, filedesc): New structures.
(child_process, MAX_CHILDREN, CHILD_ACTIVE): Definitions moved
from ntproc.c.
(FD_SET, FD_CLR, FD_ISSET, FD_ZERO): Operate on fd_set structures.
(SELECT_TYPE): New macro.
New child process status enumeration.
(FILE_READ, FILE_WRITE, FILE_BINARY, FILE_PIPE, FILE_SOCKET):
New macros.
(fd_info, new_child, delete_child): Declared.
(syms_of_keyboard): defsubr it.
(this_single_command_key_start): New variable.
(add_command_key): Reduce this_single_command_key_start if nec.
(command_loop_1): Clear this_single_command_key_start if nec.
(Fread_key_sequence, Fexecute_extended_command): Likewise.
(read_key_sequence): Set this_single_command_key_start.
(getdefdir): Rewrite to call `_fixpath' instead of `intdos'.
(run_msdos_command) [DJGPP > 1]: Work around some MSDOS
command-line restrictions by running shell commands via `system'
instead of `spawnve'.
Macro SOCKET_ERROR undefined.
Don't declare h_errno.
[!WINDOWSNT]: Define macros recv and send.
[!WINDOWSNT] (POP_SERVICE): Change to pop3.
(pop_open) [WINDOWSNT]: Initialize trash_started.
(have_winsock) [WINDOWSNT]: New variable.
(socket_connection) [WINDOWSNT]: Initialize winsock.
(socket_connection): Use closesocket instead of close.
(getline): Use recv instead of read.
(fullwrite): Use send instead of write.
(pop_trash): Use closesocket instead of close.
(pop_trash) [WINDOWSNT]: Cleanup winsock.
Check if being called recursively by sendline.