1. 10 Jun, 2011 3 commits
    • Martin Rudalics's avatar
      Some more window.h fixes missing in 2011-06-10T06:55:18Z!rudalics@gmx.at. · 2c8e37d4
      Martin Rudalics authored
      * window.h (resize_proportionally, orig_total_lines)
      (orig_top_line): Remove from window structure.
      (set_window_height, set_window_width, change_window_heights)
      (Fdelete_window): Remove prototypes.
      (resize_frame_windows): Remove duplicate declaration.
      2c8e37d4
    • Eli Zaretskii's avatar
      Avoid compiler warnings about missing prototypes of window.c functions. · 440a42e3
      Eli Zaretskii authored
       src/window.h (resize_frame_windows, resize_window_check)
       (delete_deletable_window, resize_root_window)
       (resize_frame_windows): Declare prototypes.
       src/ window.c (resize_window_apply): Make definition be "static" to
       match the prototype.
      440a42e3
    • Martin Rudalics's avatar
      Move window resize code from window.c to window.el. · 562dd5e9
      Martin Rudalics authored
      * window.c: Remove declarations of Qwindow_size_fixed,
      window_min_size_1, window_min_size_2, window_min_size,
      size_window, window_fixed_size_p, enlarge_window, delete_window.
      Remove static from declaration of Qdelete_window, it's
      temporarily needed by Fbury_buffer.
      (replace_window): Don't assign orig_top_line and
      orig_total_lines.
      (Fdelete_window, delete_window): Remove.  Window deletion is
      handled by window.el.
      (window_loop): Remove DELETE_OTHER_WINDOWS case.  Replace
      Fdelete_window calls with calls to Qdelete_window.
      (Fdelete_other_windows): Remove.  Deleting other windows is
      handled by window.el.
      (window_fixed_size_p): Remove.  Fixed-sizeness of windows is
      handled in window.el.
      (window_min_size_2, window_min_size_1, window_min_size): Remove.
      Window minimum sizes are handled in window.el.
      (shrink_windows, size_window, set_window_height)
      (set_window_width, change_window_heights, window_height)
      (window_width, CURBEG, CURSIZE, enlarge_window)
      (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
      (Fenlarge_window, Fshrink_window): Remove.  Window resizing is
      handled in window.el.
      (make_dummy_parent): Rename to make_parent_window and give it a
      second argument horflag.
      (make_window): Don't set resize_proportionally any more.
      (Fsplit_window): Remove.  Windows are split in window.el.
      (save_restore_action, save_restore_orig_size)
      (shrink_window_lowest_first, save_restore_orig_size): Remove.
      Resize mini windows in window.el.
      (grow_mini_window, shrink_mini_window): Implement by calling
      Qresize_root_window_vertically, resize_window_check and
      resize_window_apply.
      (saved_window, Fset_window_configuration, save_window_save): Do
      not handle orig_top_line, orig_total_lines, and
      resize_proportionally.
      (window_min_height, window_min_width): Move to window.el.
      (keys_of_window): Move bindings for delete-other-windows,
      split-window, delete-window and enlarge-window to window.el.
      
      * buffer.c: Temporarily extern Qdelete_window.
      (Fbury_buffer): Temporarily call Qdelete_window instead of
      Fdelete_window (Fbury_buffer will move to window.el soon).
      
      * frame.c (set_menu_bar_lines_1): Remove code handling
      orig_top_line and orig_total_lines.
      
      * dispnew.c (adjust_frame_glyphs_initially): Don't use
      set_window_height but set heights directly.
      (change_frame_size_1): Use resize_frame_windows.
      
      * xdisp.c (init_xdisp): Don't use set_window_height but set
      heights directly.
      
      * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Use
      resize_frame_windows instead of change_window_heights and run
      run_window_configuration_change_hook.
      
      * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
      instead of change_window_heights and run
      run_window_configuration_change_hook.
      
      * window.el (window-min-height, window-min-width): Move here
      from window.c.  Add defcustoms and rewrite doc-strings.
      (resize-mini-window, resize-window): New functions.
      (adjust-window-trailing-edge, enlarge-window, shrink-window):
      Move here from window.c.
      (maximize-window, minimize-window): New functions.
      (delete-window, delete-other-windows, split-window): Move here
      from window.c.
      (window-split-min-size): New function.
      (split-window-keep-point): Mention split-window-above-each-other
      instead of split-window-vertically.
      (split-window-above-each-other, split-window-vertically): Rename
      split-window-vertically to split-window-above-each-other and
      provide defalias for old definition.
      (split-window-side-by-side, split-window-horizontally): Rename
      split-window-horizontally to split-window-side-by-side and provide
      defalias for the old definition.
      (ctl-x-map): Move bindings for delete-window,
      delete-other-windows and enlarge-window here from window.c.
      Replace bindings for split-window-vertically and
      split-window-horizontally by bindings for
      split-window-above-each-other and split-window-side-by-side.
      
      * cus-start.el (all): Remove entries for window-min-height and
      window-min-width.  Add entries for window-splits and
      window-nest.
      562dd5e9
  2. 09 Jun, 2011 1 commit
    • Martin Rudalics's avatar
      Final preparations for new window resize code. · 1a13852e
      Martin Rudalics authored
      * window.c (replace_window): Rename second argument REPLACEMENT to
      NEW.  New third argument SETFLAG.  Rewrite.
      (delete_window, make_dummy_parent): Call replace_window with
      third argument 1.
      (window_list_1): Move down in code.
      (run_window_configuration_change_hook): Move set_buffer part
      before select_frame_norecord part in order to unwind correctly.
      Rename count1 to count.
      (recombine_windows, delete_deletable_window, resize_root_window)
      (Fdelete_other_windows_internal)
      (Frun_window_configuration_change_hook, make_parent_window)
      (resize_window_check, resize_window_apply, Fresize_window_apply)
      (resize_frame_windows, Fsplit_window_internal)
      (Fdelete_window_internal, Fresize_mini_window_internal): New
      functions.
      (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
      1a13852e
  3. 08 Jun, 2011 3 commits
    • Martin Rudalics's avatar
      New symbols in window.c. · b9e809c2
      Martin Rudalics authored
      * window.c: (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
      (MIN_SAFE_WINDOW_HEIGHT): Really remove them from window.c.
      (syms_of_window): New Lisp objects Qrecord_window_buffer,
      Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
      Qget_mru_window, Qresize_root_window,
      Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
      Qauto_buffer_name; staticpro them.
      b9e809c2
    • Martin Rudalics's avatar
      Add some new members to window structure in window.h. · 496e208e
      Martin Rudalics authored
      * window.h (window): Add some new members to window structure -
      normal_lines, normal_cols, new_total, new_normal, clone_number,
      splits, nest, prev_buffers, next_buffers.
      (WINDOW_TOTAL_SIZE): Move here from window.c.
      (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define.
      
      * window.c (WINDOW_TOTAL_SIZE): Move to window.h.
      (make_dummy_parent): Set new members of windows structure.
      (make_window): Move down in code.  Handle new members of window
      structure.
      (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
      (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
      (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
      (Fset_window_prev_buffers, Fwindow_next_buffers)
      (Fset_window_next_buffers, Fset_window_clone_number): New
      functions.
      (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
      (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
      Doc-string fixes.
      (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
      Argument WINDOW can be now internal window too.
      (Fwindow_use_time): Move up in code.
      (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
      Rewrite doc-string.
      (Fset_window_configuration, saved_window)
      (Fcurrent_window_configuration, save_window_save): Handle new
      members of window structure.
      496e208e
    • Martin Rudalics's avatar
      window-height, window-width, and window-full-width-p are now in window.el. · f3d1777e
      Martin Rudalics authored
      * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
      Remove.
      * window.el (window-height): Defalias to window-total-height.
      (window-width): Defalias to window-body-width.
      f3d1777e
  4. 07 Jun, 2011 4 commits
    • Martin Rudalics's avatar
      Move get-lru-window and get-largest-window to window.el. · 190b47e6
      Martin Rudalics authored
      * window.c (window_loop): Remove handling of GET_LRU_WINDOW and
      GET_LARGEST_WINDOW.
      (Fget_lru_window, Fget_largest_window): Move to window.el.
      
      * window.el (get-lru-window, get-largest-window): Move here from
      window.c.  Rename first argument to ALL-FRAMES.  Rephrase
      doc-strings.
      (get-buffer-window-list): Rewrite using window-list-1.  Rephrase
      doc-string.
      190b47e6
    • Martin Rudalics's avatar
      Make delete_all_subwindows argument a Lisp_Object. · fa8a67e6
      Martin Rudalics authored
      * window.c (delete_window, Fset_window_configuration): Call
      delete_all_subwindows with window as argument.
      (delete_all_subwindows): Take a window as argument and not a
      structure.  Rewrite.
      
      * window.h: delete_all_subwindows now takes a Lisp_Object as
      argument.
      
      * frame.c (delete_frame): Call delete_all_subwindows with root
      window as argument.
      fa8a67e6
    • Martin Rudalics's avatar
      Install some window-size related functions and window-list-1. · abde8f8c
      Martin Rudalics authored
      * window.c (Fwindow_total_size, Fwindow_left_column)
      (Fwindow_top_line, window_body_lines, Fwindow_body_size)
      (Fwindow_list_1): New functions.
      (window_box_text_cols): Replace with window_body_cols.
      (Fwindow_width, Fscroll_left, Fscroll_right): Use
      window_body_cols instead of window_box_text_cols.
      
      * window.h: Extern window_body_cols instead of
      window_box_text_cols.
      
      * indent.c (compute_motion, Fcompute_motion): Use
      window_body_cols instead of window_box_text_cols.
      abde8f8c
    • Daniel Colascione's avatar
      a54e3482
  5. 06 Jun, 2011 13 commits
    • Chong Yidong's avatar
    • Paul Eggert's avatar
      Add Bug#8794 to ChangeLog entry. · b862a52a
      Paul Eggert authored
      b862a52a
    • Stefan Monnier's avatar
      * src/window.h (Fwindow_frame): Declare. · d6d100dd
      Stefan Monnier authored
      d6d100dd
    • Paul Eggert's avatar
      * alloc.c: Simplify handling of large-request failures (Bug#8800). · 2b6148e4
      Paul Eggert authored
      (SPARE_MEMORY): Always define.
      (LARGE_REQUEST): Remove.
      (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
      2b6148e4
    • Martin Rudalics's avatar
      Move some window-related functions from frame.c to window.c. · 727e958e
      Martin Rudalics authored
      * lisp.h: Move EXFUNS for Fframe_root_window,
      Fframe_first_window and Fset_frame_selected_window to window.h.
      
      * window.h: Move EXFUNS for Fframe_root_window,
      Fframe_first_window and Fset_frame_selected_window here from
      lisp.h.
      
      * frame.c (Fwindow_frame, Fframe_first_window)
      (Fframe_root_window, Fframe_selected_window)
      (Fset_frame_selected_window): Move to window.c.
      (Factive_minibuffer_window): Move to minibuf.c.
      (Fother_visible_frames_p): New function.
      
      * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
      
      * window.c (Fwindow_frame): Move here from frame.c.  Accept any
      window as argument.
      (Fframe_root_window, Fframe_first_window)
      (Fframe_selected_window): Move here from frame.c.  Accept frame
      or arbitrary window as argument.  Update doc-strings.
      (Fminibuffer_window): Move up in code.
      (Fwindow_minibuffer_p): Move up in code and simplify.
      (Fset_frame_selected_window): Move here from frame.c.  Marginal
      rewrite.
      (Fselected_window, select_window, Fselect_window): Move up in
      code.  Minor doc-string fixes.
      727e958e
    • Martin Rudalics's avatar
      Expose window-tree functions in Elisp. · bf60a96b
      Martin Rudalics authored
      (Fwindow_buffer): Move up and rewrite doc-string.
      (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
      (Fwindow_prev): New functions.
      bf60a96b
    • Paul Eggert's avatar
      Check for overflow when converting integer to cons and back. · be44ca6c
      Paul Eggert authored
      * charset.c (Fdefine_charset_internal, Fdecode_char):
      Use cons_to_unsigned to catch overflow.
      (Fencode_char): Use INTEGER_TO_CONS.
      * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
      (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
      * data.c (long_to_cons, cons_to_long): Remove.
      (cons_to_unsigned, cons_to_signed): New functions.
      These signal an error for invalid or out-of-range values.
      * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
      * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
      * font.c (Ffont_variation_glyphs):
      * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
      * lisp.h: Include <intprops.h>.
      (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
      (cons_to_signed, cons_to_unsigned): New decls.
      (long_to_cons, cons_to_long): Remove decls.
      * undo.c (record_first_change): Use INTEGER_TO_CONS.
      (Fprimitive_undo): Use CONS_TO_INTEGER.
      * xfns.c (Fx_window_property): Likewise.
      * xselect.c: Include <limits.h>.
      (x_own_selection, selection_data_to_lisp_data):
      Use INTEGER_TO_CONS.
      (x_handle_selection_request, x_handle_selection_clear)
      (x_get_foreign_selection, Fx_disown_selection_internal)
      (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
      (lisp_data_to_selection_data): Use cons_to_unsigned.
      (x_fill_property_data): Use cons_to_signed.
      Report values out of range.
      be44ca6c
    • Martin Rudalics's avatar
      Prepare for exposing window-tree functions in Elisp. · f230ecc9
      Martin Rudalics authored
      * window.c (decode_window, decode_any_window): Move up in code.
      (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
      (inhibit_frame_unsplittable): Remove unused variable.
      f230ecc9
    • Paul Eggert's avatar
      Check for buffer and string overflow more precisely. · d1f3d2af
      Paul Eggert authored
      * buffer.h (BUF_BYTES_MAX): New macro.
      * lisp.h (STRING_BYTES_MAX): New macro.
      * alloc.c (Fmake_string):
      * character.c (string_escape_byte8):
      * coding.c (coding_alloc_by_realloc):
      * doprnt.c (doprnt):
      * editfns.c (Fformat):
      * eval.c (verror):
      Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
      since they may not be the same number.
      * editfns.c (Finsert_char):
      * fileio.c (Finsert_file_contents):
      Likewise for BUF_BYTES_MAX.
      d1f3d2af
    • Paul Eggert's avatar
      * image.c: Use ptrdiff_t, not int, for sizes. · dd52fcea
      Paul Eggert authored
      (slurp_file): Switch from int to ptrdiff_t.
      All uses changed.
      (slurp_file): Check that file size fits in both size_t (for
      malloc) and ptrdiff_t (for sanity and safety).
      dd52fcea
    • Paul Eggert's avatar
      * fileio.c (Fverify_visited_file_modtime): Avoid time overflow · 7f9bbdbb
      Paul Eggert authored
      if b->modtime has its maximal value.
      7f9bbdbb
    • Paul Eggert's avatar
    • Paul Eggert's avatar
      * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacO). · 4d09bcf6
      Paul Eggert authored
      Fixes: debbugs:8800
      4d09bcf6
  6. 05 Jun, 2011 5 commits
  7. 04 Jun, 2011 6 commits
  8. 03 Jun, 2011 5 commits
    • Paul Eggert's avatar
      * xselect.c: Include <limits.h>. · aa76b908
      Paul Eggert authored
      aa76b908
    • Paul Eggert's avatar
      Check for overflow when converting integer to cons and back. · 201f31ae
      Paul Eggert authored
      * charset.c (Fdefine_charset_internal, Fdecode_char):
      Use cons_to_unsigned to catch overflow.
      (Fencode_char): Use INTEGER_TO_CONS.
      * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
      (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
      * data.c (long_to_cons, cons_to_long): Remove.
      (cons_to_unsigned, cons_to_signed): New functions.
      These signal an error for invalid or out-of-range values.
      * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
      * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
      * font.c (Ffont_variation_glyphs):
      * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
      * lisp.h (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
      (cons_to_signed, cons_to_unsigned): New decls.
      (long_to_cons, cons_to_long): Remove decls.
      * undo.c (record_first_change): Use INTEGER_TO_CONS.
      (Fprimitive_undo): Use CONS_TO_INTEGER.
      * xfns.c (Fx_window_property): Likewise.
      * xselect.c (x_own_selection, selection_data_to_lisp_data):
      Use INTEGER_TO_CONS.
      (x_handle_selection_request, x_handle_selection_clear)
      (x_get_foreign_selection, Fx_disown_selection_internal)
      (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
      (lisp_data_to_selection_data): Use cons_to_unsigned.
      (x_fill_property_data): Use cons_to_signed.  Report values out of range.
      201f31ae
    • Paul Eggert's avatar
      Fix doc for machines with wider system times such as time_t. · da908fa9
      Paul Eggert authored
      On such machines, it's now safe to assume that EMACS_INT is as
      wide as the system times, so that shifting right by 16 will
      result in an integer that always fits in EMACS_INT.
      * dired.c (Ffile_attributes): Document large inode number handling.
      * termhooks.h: Fix comment for large time stamp handling.
      da908fa9
    • Paul Eggert's avatar
      * xselect.c: Use 'unsigned' more consistently. · 9ca05932
      Paul Eggert authored
      (selection_data_to_lisp_data, lisp_data_to_selection_data):
      Use 'unsigned' consistently when computing sizes of unsigned objects.
      9ca05932
    • Eli Zaretskii's avatar
      Cleanup. Tested in -nw and verified that bug #7616 didn't become worse. · 57f97249
      Eli Zaretskii authored
       src/bidi.c (bidi_fetch_char_advance): Remove unused and
       unimplemented function.
      57f97249