* (Flive_window_p): New function.
(Qlive_window_p): New variable, to name it in type errors.
(syms_of_window): Defsubr Slive_window_p, init and staticpro
Qlive_window_p.
(decode_window): Use CHECK_LIVE_WINDOW instead of
CHECK_WINDOW; the only thing a user should be able to do to a dead
window is check its type.
(Fcoordinates_in_window_p, Fnext_window, Fprevious_window,
Fdelete_other_windows, Fselect_window, Fsplit_window,
Fscroll_other_window): Use CHECK_LIVE_WINDOW instead of
CHECK_WINDOW.
(Fdelete_window): If WINDOW is a deleted window, do nothing;
there's no harm in allowing people to delete deleted windows.
Delete all of WINDOW's subwindows, too.
(delete_all_subwindows): Set the buffer, vchild, and hchild of the
windows we delete all to nil.
* window.c (Fwindow_minibuffer_p): Make the WINDOW argument
optional, like all the other window-querying functions.
* window.c (Fpos_visible_in_window_p): Use decode_window to handle
the WINDOW argument, instead of writing out that function's code.
* window.c (check_frame_size): Don't define this extern; that
doesn't mean anything.
* window.c (Fdelete_window): Choose an alternative when we delete
any frame's selected window, not just when we delete the selected
frame's selected window.
keymap-scanning loop. Don't treat vectors as binding tables if
they're the wrong length.
* keymap.c (store_in_keymap): Don't forget to QUIT in the
keymap-scanning loop. Don't treat vectors as binding tables if
they're the wrong length.
an array of Lisp_Objects.
(this_command_keys_size): Deleted.
(echo, add_command_key, Fthis_command_keys): Adjusted
appropriately.
(init_keyboard): Don't allocate it here.
(syms_of_keyboard): Allocate it here, and staticpro it.
* keyboard.c (read_char): Call ourselves with the appropriate
number of arguments.
(read_char_menu_prompt): If USED_MOUSE_MENU is zero, don't try to
store things in it.
* keyboard.c (modify_event_symbol): Arrange to set the
click_modifier bit on otherwise unmodified mouse clicks.
* keyboard.c (kbd_buffer_get_event): Remember that
*mouse_position_hook may set *FRAME to 0; don't generate
switch-frame events in this case. Fix fencepost bug in fetching
events from keyboard buffer.
(XTread_socket): Pass it by reference to XLookupString.
* xterm.c: Clean up some of the caps lock handling:
(x_shift_lock_mask): New variable.
(x_find_modifier_mappings): Set it, based on the modifier mappings.
(x_convert_modifiers): Use x_shift_lock_mask, instead of assuming
that the lock bit always means to shift the character.
(XTread_socket): When handling KeyPress events, don't pass an
XComposeStatus structure along to XLookupString. When handling
MappingNotify events, call XRefreshKeyboardMapping for both
MappingModifier and MappingKeyboard events, not just the latter.
(check_memory_limits): New fn; most code from morecore_with_warning, but
only checks limits, doesn't do any work.
(memory_warnings): Set __after_morecore_hook to check_memory_limits;
don't set __morecore.
Removed elements `nruns' and `face_list'.
LINE_HEIGHT and LINE_WIDTH macros removed.
New struct face with associated typedef FACE declared, along with
accessing macros.
`nruns' and 'face_list' removed. Handle new element `max_ascent'.
(free_frame_glyphs): Don't free nonexistent elements `nruns' and
`face_list'; do free `max_ascent' element.
(make_frame_glyphs): Don't allocate nonexistent elements `nruns'
and `face_list'; do allocate `max_ascent' element.
(update_frame): Replaced use of macro LINE_HEIGHT with element
frame element `pix_height'.
[emacs]: Moved #undef NULL and #include "getpagesize.h" here.
[! emacs]: #include <unistd.h>, <malloc.h>, <string.h>.
(r_alloc_init): Use NIL, not NULL.
(real_morecore): New static variable.
(warnlevel, warn_function, check_memory_limits): Removed.
(obtain): Don't call check_memory_limits.
(obtain, relinquish, r_alloc_sbrk): Use (*real_morecore) in place of sbrk;
it returns 0 for errors, not -1.
(r_alloc_init): Set real_morecore to old value of __morecore.
Don't initialize lim_data or warnlevel, and don't call get_lim_data.
(memory_warnings): Function removed.
(find-file-noselect): Record the file's filenum and devnum.
Notify if any buffer has the same values.
(basic-save-buffer): Save new filenum and devnum.
For file-precious-flag, pass real name as VISIT arg of write-region.
(set-visited-file-name): Likewise.
Clear buffer-file-{number,truename} if now visiting no file.