• Martin Rudalics's avatar
    Move/add window-buffer-related functions to window.el. · 9397e56f
    Martin Rudalics authored
    * buffer.c: New Lisp objects Qbuffer_list_update_hook and
    Qclone_number.  Remove external declaration of Qdelete_window.
    (Fbuffer_list): Rewrite doc-string.  Minor restructuring of
    code.
    (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer): Run
    Qbuffer_list_update_hook if allowed.
    (Fother_buffer): Rewrite doc-string.  Major rewrite for new
    buffer list implementation.
    (other_buffer_safely): New function.
    (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
    calls to replace_buffer_in_windows and
    replace_buffer_in_windows_safely.  Run Qbuffer_list_update_hook
    if allowed.
    (record_buffer): Inhibit quitting and rewrite using quittable
    functions.  Run Qbuffer_list_update_hook if allowed.
    (Frecord_buffer, Funrecord_buffer): New functions.
    (switch_to_buffer_1, Fswitch_to_buffer): Remove.  Move
    switch-to-buffer to window.el.
    (bury-buffer): Move to window.el.
    (Vbuffer_list_update_hook): New variable.
    
    * lisp.h (other_buffer_safely): Add prototype in buffer.c
    section.
    
    * window.h (resize_frame_windows): Move up in code.
    (Fwindow_frame): Remove EXFUN.
    (replace_buffer_in_all_windows): Remove prototype.
    (replace_buffer_in_windows_safely): Add prototype.
    
    * window.c: Declare Qdelete_window static again.  Move down
    declaration of select_count.
    (Fnext_window, Fprevious_window): Rewrite doc-strings.
    (Fother_window): Move to window.el.
    (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
    cases.  Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
    (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
    window.el.
    (replace_buffer_in_windows): Implement by calling
    Qreplace_buffer_in_windows.
    (replace_buffer_in_all_windows): Remove with some functionality
    moved into replace_buffer_in_windows_safely.
    (replace_buffer_in_windows_safely): New function.
    (select_window_norecord, select_frame_norecord): Move in front
    of run_window_configuration_change_hook.  Remove now obsolete
    declarations.
    (Fset_window_buffer): Rewrite doc-string.  Call
    Qrecord_window_buffer.
    (keys_of_window): Move binding for other-window to window.el.
    
    * loadup.el (top-level): Load window before files for the sake
    of replace-buffer-in-windows.
    
    * files.el (read-buffer-to-switch)
    (switch-to-buffer-other-window)
    (switch-to-buffer-other-frame, display-buffer-other-frame): Move
    to window.el.
    
    * simple.el (get-next-valid-buffer, last-buffer, next-buffer)
    (previous-buffer): Move to window.el.
    
    * bindings.el (unbury-buffer): Move to window.el.
    
    * window.el (delete-other-windows-vertically): Move after
    definition of delete-other-windows.
    (other-window, delete-windows-on, replace-buffer-in-windows):
    Move here from window.c.
    (record-window-buffer, unrecord-window-buffer)
    (set-window-buffer-start-and-point, switch-to-prev-buffer)
    (switch-to-next-buffer): New functions.
    (get-next-valid-buffer, last-buffer, next-buffer): Move here
    from simple.el.  Call switch-to-next-buffer.
    (previous-buffer): Move here from simple.el.  Call
    switch-to-prev-buffer.
    (bury-buffer): Move here from buffer.c.  Switch to previous
    buffer when window cannot be deleted.
    (unbury-buffer): Move here from bindings.el.
    (ctl-x-map): Move binding for other-window from window.c to
    here.
    (read-buffer-to-switch, switch-to-buffer-other-window)
    (switch-to-buffer-other-frame): Move here from files.el.
    (normalize-buffer-to-switch-to): New functions.
    (switch-to-buffer): Move here from buffer.c.  Use
    read-buffer-to-switch and normalize-buffer-to-switch-to.
    9397e56f
window.el 196 KB