Provide functions for saving window states and for converting Emacs 23
options to display-buffer-alist settings. Fix some minor errors.
* window.h (w): New slot clone_number. Rename
"inhibit_recombine" slot to "nested".
* window.c (Fwindow_clone_number, Fwindow_nested)
(Fset_window_nested, Fset_window_clone_number): New functions.
(recombine_windows): Write "nested" isntead of
"inhibit_recombine".
(make_parent_window): Set clone_number.
(make_window): Set clone_number. Write "nested" instead of
"inhibit_recombine".
(Fsplit_window_internal): Write "nested" instead of
"inhibit_recombine".
(Fresize_window_apply, Fdelete_window_internal): Add parens in
EQ test.
(saved_window): Add clone_number and write "nested" instead of
"inhibit_recombine".
(Fset_window_configuration, save_window_save): Set clone_number
and write "nested" instead of "inhibit_recombine".
(syms_of_window): Add Swindow_clone_number, Swindow_nested,
Sset_window_nested and Sset_window_clone_number.
* buffer.c (sort_overlays, overlay_strings): When an overlay has
the same clone-number property as the associated window don't
skip it even if the window properties are different.
(syms_of_buffer): Intern new Lisp_object Qclone_number.
* window.c (run_window_configuration_change_hook): Call
select_frame_norecord instead of Fselect_frame.
* window.el (window-atom-check-1): Fix handling of case where
only one atomic window was left.
(window-sizable-p): Fix doc-string.
(window-size-fixed-p): Move after window-size-firxed-1.
(split-window): Make sure that the new window gets any odd line
since this was the Emacs 23 behavior.
(window-list-no-nils, window-state-get-1, window-state-get)
(window-state-put-1, window-state-put-2, window-state-put): New
functions.
(window-state-ignored-parameters, window-state-put-list): New
variables.
(display-buffer-alist): Fix doc-string.
(display-buffer-even-sizes): Rename to
display-buffer-even-window-sizes.
(display-buffer-reuse-window): Call
display-buffer-even-window-sizes.
(display-buffer-pop-up-window): Don't pass specifiers to side
window function.
(display-buffer-same-window, display-buffer-same-frame)
(display-buffer-other-window)
(display-buffer-same-frame-other-window)
(pop-to-buffer-same-frame)
(pop-to-buffer-same-frame-other-window): Make these interactive.
(display-buffer-alist-add, display-buffer-alist-set): New
functions.
* window.el (display-buffer-pop-up-frame): Fix typo. Pass
pop-up-frame-alist to pop-up-frame-function only if the latter
is a symbol.
* frame.el (pop-up-frame-alist, pop-up-frame-function)
(special-display-frame-alist, special-display-popup-frame): Move
to window.el.
* window.el (display-buffer-alist): Remove some specifiers from
default value. Fix some typos.
(pop-up-frame-alist, pop-up-frame-function)
(special-display-frame-alist, special-display-popup-frame): Move
here from frame.el. Disable byte compiler obsolete warnings.
(special-display-p, same-window-p): Restore Emacs 23 definitions
with obsolete warnings for byte compiler disabled.
* window.el (delete-other-windows): Mention return value in
doc-string.
(display-buffer-method-specifiers): Remove variable.
(display-buffer-alist): Add fun-with-args specifier.
(display-buffer-even-sizes): Simplify code.
(display-buffer): Handle fun-with-args specifier.
(mouse-autoselect-window-select): Replace condition-case by
ignore-errors.