(run_window_configuration_change_hook): Use it and call
Fselect_frame with NORECORD set.
(Fselect_window): Pass NORECORD to Fselect_frame.
(Fset_window_configuration): Handle NORECORD argument in call of
do_switch_frame.
(Fset_window_parameter): Use NILP.
(Fscroll_up, Fscroll_down, Fminibuffer_selected_window)
(Frecenter): Use "selected" instead of "current" window in doc-strings.
Mention kill-buffer in doc-string.
(Fset_window_buffer): Reinsert tem check removed in last commit.
(Fenlarge_window, Fshrink_window): Have argument names and
doc-string follow Elisp manual more closely.
(Fwindow_parameters, Fwindow_parameter, Fset_window_parameter)
(Fdelete_windows_on, Freplace_buffer_in_windows): Make
doc-strings follow code and Elisp manual more closely.
(Fwindow_dedicated_p): Make window argument optional.
(Fset_window_dedicated_p): Rename argument "arg" to "flag".
(Fset_window_buffer): Respect any non-nil dedicated value for
window. Rename "buffer" argument to "buffer_or_name".
(set_window_buffer): Use it.
(syms_of_window): Init and export it to Lisp.
* progmodes/compile.el (compilation-mode):
Set window-point-insertion-type.
(compilation-filter): Don't use insert-before-markers any more.
* emacs-lisp/trace.el (trace-make-advice):
Set window-point-insertion-type in the trace buffer.
* startup.el (normal-top-level): Set window-point-insertion-type in
*Messages*.
* net/telnet.el (telnet-mode): Set window-point-insertion-type.
(telnet-filter): Don't use insert-before-markers any more.
* comint.el (comint-mode): Set window-point-insertion-type.
(comint-output-filter): Don't use insert-before-markers any more.
* button.el (make-text-button): Allow `start' to be a string.
(window_scroll_preserve_hpos, window_scroll_preserve_vpos): New vars.
(window_scroll_pixel_based, window_scroll_line_based):
Use them to preserve column positions.
(syms_of_window): Initialize them.
* indent.c (Fvertical_motion): Extend first arg to allow passing an
(HPOS . VPOS) pair.
* xdisp.c (move_it_in_display_line_to): Improve the type of its args.
(move_it_in_display_line): New wrapper.
* dispextern.h (move_it_in_display_line): Declare.
(enlarge_window): Temporarily set resize_proportionally to make
sure that shrink_windows does scale the window proportionally.
(shrink_windows): When window has resize_proportionally set try
to shrink it proportionally by stealing from other windows.
(struct saved_window, Fset_window_configuration)
(compare_window_configurations): Handle resize_proportionally.
(WINDOW_TOTAL_SIZE): New macro.
(window_min_size, shrink_windows, size_window): Use it.
(check_min_window_sizes): Removed. Invalid values of
window-min-height|width are handled by window_min_size_2 now.
(size_window, Fsplit_window, enlarge_window)
(adjust_window_trailing_edge, grow_mini_window): Don't call
check_min_window_sizes.
(window_min_size_2, window_min_size_1, window_min_size): New
argument safe_p for retrieving "safe" minimum sizes.
(Fdisplay_buffer, Fsplit_window, enlarge_window):
(adjust_window_trailing_edge, grow_mini_window): Adjust
arguments of window_min_size... functions.
(shrink_windows): Argument min_size removed. New argument
safe_p allows shrinking windows to their safe minimum sizes.
Calculate minimum size and decide whether a window shall be
deleted for each window individually.
(size_window): When nodelete_p equals 2, tell shrink_windows to
delete windows only if their new minimum size is no more safe.
(shrink_window_lowest_first): Call window_min_size_1 to make
sure to preserve modeline of bottom-most window when resizing
the minibuffer.
(Fset_window_configuration, Fcurrent_window_configuration)
(compare_window_configurations): Do not handle
window-min-height|width any more.
(syms_of_window): Clarify window-min-height|width doc-strings.
Vsplit_window_preferred_function out of conditions that check
if window is eligible for vertical splitting.
When Vsplit_window_preferred_function is non-nil, call it and use
its non-nil return value as window. Otherwise, continue doing
vertical splitting using Fsplit_window with arg horflag=nil.
(syms_of_window) <Vsplit_window_preferred_function>: Change the
default value from `split-window' to nil.
Handle a nil arg. Use run_window_configuration_change_hook.
(delete_window, adjust_window_trailing_edge): Don't handle nil any more.
(Fenlarge_window, Fshrink_window, Fset_window_configuration):
Use run_window_configuration_change_hook.
Code extracted from set_window_buffer. Set the selected frame.
(set_window_buffer): Use it.
* window.h (run_window_configuration_change_hook): Declare.
* dispnew.c (change_frame_size_1): Use it instead of set-window-buffer.
and make it `int' rather than Lisp_Object.
(Fcurrent_window_configuration): Use ALLOCATE_PSEUDOVECTOR.
Done wrap/unwrap integer values.
(Fset_window_configuration, compare_window_configurations):
Update use of fields to their new types.
* window.c (window_fixed_size_p, enlarge_window, shrink_window_lowest_first):
* macterm.c (init_font_name_table):
* macfns.c (Fx_create_frame, Fx_display_list):
* lread.c (close_load_descs):
* keyboard.c (read_char_x_menu_prompt):
* fns.c (Fmember, Fmemql, Fdelete, Fset_char_table_parent):
* coding.c (code_convert_region_unwind): Test the type of an object
rather than just !NILP before extracting data from it.