1. 02 Apr, 2013 1 commit
    • Paul Eggert's avatar
      Prefer < to > in range checks such as 0 <= i && i < N. · 7216e43b
      Paul Eggert authored
      This makes it easier to visualize quantities on a number line.
      This patch doesn't apply to all such range checks,
      only to the range checks affected by the 2013-03-24 change.
      This patch reverts most of the 2013-03-24 change.
      * alloc.c (xpalloc, Fgarbage_collect):
      * ccl.c (ccl_driver, resolve_symbol_ccl_program):
      * character.c (string_escape_byte8):
      * charset.c (read_hex):
      * data.c (cons_to_unsigned):
      * dispnew.c (update_frame_1):
      * doc.c (Fsubstitute_command_keys):
      * doprnt.c (doprnt):
      * editfns.c (hi_time, decode_time_components):
      * fileio.c (file_offset):
      * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
      * font.c (font_intern_prop):
      * frame.c (x_set_alpha):
      * gtkutil.c (get_utf8_string):
      * indent.c (check_display_width):
      * keymap.c (Fkey_description):
      * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
      * lread.c (read1):
      * minibuf.c (read_minibuf_noninteractive):
      * process.c (wait_reading_process_output):
      * search.c (Freplace_match):
      * window.c (get_phys_cursor_glyph):
      * xdisp.c (redisplay_internal):
      * xsmfns.c (smc_save_yourself_CB):
      Prefer < to > for range checks.
      * dispnew.c (sit_for): Don't mishandle NaNs.
      This fixes a bug introduced in the 2013-03-24 change.
      * editfns.c (decode_time_components): Don't hoist comparison.
      This fixes another bug introduced in the 2013-03-24 change.
      7216e43b
  2. 28 Mar, 2013 1 commit
    • Dmitry Antipov's avatar
      * window.h (struct window): Replace hchild, vchild and buffer slots · e74aeda8
      Dmitry Antipov authored
      with the only contents slot.  This is possible because each valid
      window may have either the child window (in vertical or horizontal
      combination) or buffer to display (for the leaf window).  Using that,
      a lof of operations to traverse and/or change window hierarchies may
      be simplified.  New member horizontal is used to distinguish between
      horizontal and vertical combinations of internal windows.
      (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
      (WINDOW_VERTICAL_COMBINATION_P): New macros.
      (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
      * window.c (wset_hchild, wset_vchild): Remove.  Adjust all users.
      Use contents slot, not buffer, where appropriate.
      (wset_combination): New function.
      (wset_buffer): Add eassert.
      (Fframe_first_window): Simplify the loop reaching first window.
      (Fwindow_buffer): Use WINDOW_LEAF_P.
      (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
      (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
      (unshow_buffer): Convert initial debugging check to eassert.
      (replace_window, recombine_windows, Fdelete_other_windows_internal)
      (make_parent_window, window_resize_check, window_resize_apply)
      (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
      (Fset_window_configuration, delete_all_child_windows, save_window_save):
      Adjust to match struct window changes.
      (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
      (mark_window_cursors_off, count_windows, get_leaf_windows)
      (foreach_window_1): Simplify the loop.
      * alloc.c (mark_object): Do not check for the leaf window because
      internal windows has no glyph matrices anyway.
      * dispnew.c (clear_window_matrices, showing_window_margins_p)
      (allocate_matrices_for_window_redisplay, fake_current_matrices)
      (allocate_matrices_for_frame_redisplay, free_window_matrices)
      (build_frame_matrix_from_window_tree, mirror_make_current)
      (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
      (update_window_tree, set_window_update_flags): Simplify the loop.
      (sync_window_with_frame_matrix_rows): Enforce live window.
      Use contents slot, not buffer, where appropriate.
      * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
      and WINDOW_HORIZONTAL_COMBINATION_P.
      (make_frame_visible_1): Simplify the loop.
      Use contents slot, not buffer, where appropriate.
      * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
      (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
      (expose_window_tree): Likewise.
      Use contents slot, not buffer, where appropriate.
      * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
      to avoid deleted windows.  Use contents slot instead of buffer.
      * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
      * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
      * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
      * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
      e74aeda8
  3. 24 Mar, 2013 1 commit
    • Andreas Schwab's avatar
      Reorder conditions that are written backwards · 908589fd
      Andreas Schwab authored
      * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
      written backwards.
      * blockinput.h (input_blocked_p): Likewise.
      * bytecode.c (exec_byte_code): Likewise.
      * callproc.c (call_process_kill, call_process_cleanup)
      (Fcall_process): Likewise.
      * ccl.c (ccl_driver, resolve_symbol_ccl_program)
      (Fccl_execute_on_string): Likewise.
      * character.c (string_escape_byte8): Likewise.
      * charset.c (read_hex): Likewise.
      * cm.c (calccost): Likewise.
      * data.c (cons_to_unsigned): Likewise.
      * dired.c (directory_files_internal, file_name_completion):
      Likewise.
      * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
      (sit_for): Likewise.
      * doc.c (Fsubstitute_command_keys): Likewise.
      * doprnt.c (doprnt): Likewise.
      * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
      * emacsgtkfixed.c: Likewise.
      * fileio.c (file_offset, Fwrite_region): Likewise.
      * floatfns.c (Fexpt, fmod_float): Likewise.
      * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
      Likewise.
      * font.c (font_intern_prop): Likewise.
      * frame.c (x_set_alpha): Likewise.
      * gtkutil.c (get_utf8_string): Likewise.
      * indent.c (check_display_width): Likewise.
      * intervals.c (create_root_interval, rotate_right, rotate_left)
      (split_interval_right, split_interval_left)
      (adjust_intervals_for_insertion, delete_node)
      (interval_deletion_adjustment, adjust_intervals_for_deletion)
      (merge_interval_right, merge_interval_left, copy_intervals)
      (set_intervals_multibyte_1): Likewise.
      * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
      * keymap.c (Fkey_description): Likewise.
      * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
      * lread.c (openp, read_integer, read1, string_to_number):
      Likewise.
      * menu.c (ensure_menu_items): Likewise.
      * minibuf.c (read_minibuf_noninteractive): Likewise.
      * print.c (printchar, strout): Likewise.
      * process.c (create_process, Faccept_process_output)
      (wait_reading_process_output, read_process_output, send_process)
      (wait_reading_process_output): Likewise.
      * profiler.c (make_log, handle_profiler_signal): Likewise.
      * regex.c (re_exec): Likewise.
      * regex.h: Likewise.
      * search.c (looking_at_1, Freplace_match): Likewise.
      * sysdep.c (get_child_status, procfs_ttyname)
      (procfs_get_total_memory): Likewise.
      * systime.h (EMACS_TIME_VALID_P): Likewise.
      * term.c (dissociate_if_controlling_tty): Likewise.
      * window.c (get_phys_cursor_glyph): Likewise.
      * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
      (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
      Likewise.
      * xfns.c (Fx_window_property): Likewise.
      * xmenu.c (set_frame_menubar): Likewise.
      * xselect.c (x_get_window_property, x_handle_dnd_message):
      Likewise.
      * xsmfns.c (smc_save_yourself_CB): Likewise.
      * xterm.c (x_scroll_bar_set_handle): Likewise.
      908589fd
  4. 20 Mar, 2013 1 commit
    • Dmitry Antipov's avatar
      * window.h (struct window): Convert left_col, top_line, total_lines · 5f24fa51
      Dmitry Antipov authored
      and total_cols from Lisp_Objects to integers.  Adjust comments.
      (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
      Remove.
      (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
      (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
      * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
      Adjust users where appropriate.
      5f24fa51
  5. 19 Mar, 2013 1 commit
  6. 18 Mar, 2013 1 commit
    • Dmitry Antipov's avatar
      * window.c (window_resize_check, window_resize_apply) · 748fa866
      Dmitry Antipov authored
      (window_from_coordinates, recombine_windows, set_window_buffer)
      (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
      (Fsplit_window_internal, Fdelete_window_internal)
      (freeze_window_starts): Use bool for booleans.
      * window.h (window_frame_coordinates, resize_frame_windows)
      (freeze_window_starts, set_window_buffer): Adjust prototypes.
      748fa866
  7. 13 Mar, 2013 1 commit
  8. 07 Mar, 2013 2 commits
    • Dmitry Antipov's avatar
      Avoid character to byte conversions in motion subroutines. · c54aa166
      Dmitry Antipov authored
      * indent.h (compute_motion, vmotion): Add byte position argument.
      * indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE.
      Add eassert.
      (Fcompute_motion): Break long line.  Adjust call to compute_motion.
      Use list5 for return value.
      (vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE.
      Adjust comments, style and calls to compute_motion.
      (Fvertical_motion): Adjust call to vmotion.
      * window.c (Fdelete_other_windows_internal): Record window start
      byte position and adjust call to vmotion.
      (window_scroll_line_based): Likewise with call to compute_motion.
      Use SET_PT_BOTH.
      (Frecenter): Adjust calls to vmotion.
      c54aa166
    • Dmitry Antipov's avatar
      * lisp.h (list2i, list3i): New functions. · 3de717bd
      Dmitry Antipov authored
      (list4i): Move from window.c and make LISP_INLINE.
      * editfns.c (make_lisp_time):
      * fns.c (Flocale_info):
      * keyboard.c (parse_modifiers):
      * xterm.c (x_ewmh_activate_frame): Use list2i.
      * instel.c (signal_after_change):
      * nsfns.m (Fx_server_version, Fxw_color_values):
      * w32fns.c (Fxw_color_values, Fx_server_version):
      * xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
      * fileio.c (Fvisited_file_modtime):
      * nsfns.m (Fns_display_usable_bounds):
      * w32.c (ltime): Use list4i.
      3de717bd
  9. 26 Feb, 2013 1 commit
  10. 11 Feb, 2013 1 commit
    • Dmitry Antipov's avatar
      * marker.c (set_marker_internal): If desired position is passed · f74de345
      Dmitry Antipov authored
      as a marker, avoid call to buf_charpos_to_bytepos.
      * window.c (Fset_window_point): Omit redundant type checking.
      (Fset_window_start): Likewise.  Format comment.
      (window_scroll_pixel_based): Use set_marker_restricted_both
      with character and byte positions obtained from an iterator.
      (Fset_window_configuration): Use set_marker_restricted_both.
      * xdisp.c (message_dolog): Likewise.
      f74de345
  11. 08 Feb, 2013 1 commit
    • Dmitry Antipov's avatar
      * lisp.h (make_uninit_vector): New function. · 25721f5b
      Dmitry Antipov authored
      * alloc.c (Fvector, Fmake_byte_code):
      * ccl.c (Fregister_ccl_program):
      * charset.c (Fdefine_charset_internal, define_charset_internal):
      * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
      * composite.c (syms_of_composite):
      * font.c (Fquery_font, Ffont_info, syms_of_font):
      * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
      * ftfont.c (ftfont_shape_by_flt):
      * indent.c (recompute_width_table):
      * nsselect.m (clean_local_selection_data):
      * syntax.c (init_syntax_once):
      * w32unsubscribe.c (uniscribe_shape):
      * window.c (Fcurrent_window_configuration):
      * xfaces.c (Fx_family_fonts):
      * xselect.c (selection_data_to_lisp_data): Use it.
      25721f5b
  12. 01 Feb, 2013 1 commit
    • Dmitry Antipov's avatar
      * window.h (struct window): Convert base_line_number, base_line_pos · 422ff52b
      Dmitry Antipov authored
      and column_number_displayed members from Lisp_Object to ptrdiff_t.
      Convert region_showing member from Lisp_Object to bitfield.
      Remove sequence_number member.  Adjust comments.
      * window.c (sequence_number): Remove.
      (make_window): Initialize column_number_displayed.
      * print.c (print_object): Follow the printed representation of
      frames and print window pointer to distinguish between windows.
      (adjust_window_count): Invalidate base_line_pos.  Adjust comment.
      * xdisp.c (wset_base_line_number, wset_base_line_pos)
      (wset_column_number_displayed, wset_region_showing): Remove.
      (window_buffer_changed, mode_line_update_needed, redisplay_internal)
      (try_scrolling, try_cursor_movement, redisplay_window)
      (try_window_reusing_current_matrix, try_window_id, display_line)
      (display_mode_lines, decode_mode_spec): Adjust users.
      * .gdbinit (pwinx): Do not print sequence_number.
      422ff52b
  13. 24 Jan, 2013 1 commit
    • Dmitry Antipov's avatar
      Drop async_visible and async_iconified fields of struct frame. · edfa7fa0
      Dmitry Antipov authored
      This is possible because async input is gone; for details, see
      http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
      * frame.h (struct frame): Remove async_visible and async_iconified
      members, convert garbaged to unsigned bitfield.  Adjust comments.
      (FRAME_SAMPLE_VISIBILITY): Remove.  Adjust all users.
      (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
      * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
      Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
      FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
      * w32term.c: Ditto.
      (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
      properly.  Likewise for obscured.
      * xterm.c: Ditto.
      (handle_one_xevent): Save visible state go generate ICONIFY_EVENT
      properly.
      * nsterm.m: Ditto.
      (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
      edfa7fa0
  14. 22 Jan, 2013 1 commit
    • Dmitry Antipov's avatar
      * window.h (struct window): Change window_end_valid member from · 9d93ce29
      Dmitry Antipov authored
      Lisp_Object to a bitfield.  Adjust comments.
      (wset_window_end_valid): Remove.
      * window.c (adjust_window_count): Clear window_end_valid.
      (Fwindow_end): Adjust user.  Remove ancient #if 0 code.
      (Fwindow_line_height, set_window_buffer, Frecenter)
      (Fsplit_window_internal, Fdelete_other_windows_internal)
      (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
      * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
      * xdisp.c (check_window_end, reconsider_clip_changes)
      (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
      (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
      (find_first_unchanged_at_end_row, try_window_id): Likewise.
      9d93ce29
  15. 11 Jan, 2013 1 commit
    • Aaron S. Hawley's avatar
      Disambiguate function and variable references in docstrings. · 9fc9a531
      Aaron S. Hawley authored
      * lisp/comint.el (comint-history-isearch-message): Fix ambiguous doc
       string cross-reference(s).
      
      * lisp/ffap.el (ffap-string-at-point-region, ffap-next)
      (ffap-string-at-point, ffap-string-around)
      (ffap-copy-string-as-kill, ffap-highlight-overlay)
      (ffap-literally): Fix ambiguous doc string cross-reference(s).
      
      * lisp/font-lock.el (font-lock-keywords-alist)
      (font-lock-removed-keywords-alist): Fix ambiguous doc string
              cross-reference(s).
      
      * lisp/help-mode.el (help-xref-symbol-regexp): Add "call" as a hint for
      a cross-reference to a function.
      
      * lisp/info.el (Info-find-emacs-command-nodes): Fix ambiguous doc
       string cross-reference(s).
      
      * lisp/isearch.el (isearch-message-function, isearch-fail-pos): Fix
       ambiguous doc string cross-reference(s).
      
      * lisp/misearch.el (multi-isearch-next-buffer-function): Fix ambiguous
       doc string cross-reference(s).
      
      * lisp/newcomment.el (comment-box): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/printing.el (pr-txt-printer-alist, pr-ps-printer-alist)
      (pr-setting-database): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/ps-print.el (ps-even-or-odd-pages, ps-spool-buffer-with-faces)
      (ps-n-up-filling-database): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/server.el (server-buffer, server-log): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/simple.el (newline, delete-backward-char, delete-forward-char)
      (minibuffer-history-isearch-message, kill-line, track-eol)
      (temporary-goal-column): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/whitespace.el (whitespace-point)
      (whitespace-font-lock-refontify, whitespace-bob-marker)
      (whitespace-eob-marker): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/calc/calc.el (calc-highlight-selections-with-faces)
       (calc-dispatch): Fix ambiguous doc string cross-reference(s).
      
      * lisp/emacs-lisp/edebug.el (edebug-read, edebug-eval-defun): Fix
       ambiguous doc string cross-reference(s).
      
      * lisp/gnus/gnus-start.el (gnus-check-new-newsgroups): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/gnus/gnus-sum.el (gnus-summary-newsgroup-prefix): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/international/mule.el (add-to-coding-system-list): Fix ambiguous
       doc string cross-reference(s).
      
      * lisp/progmodes/cc-fonts.el (c-font-lock-keywords-3)
      (c++-font-lock-keywords-3, objc-font-lock-keywords-3)
      (java-font-lock-keywords-3, idl-font-lock-keywords-3)
      (pike-font-lock-keywords-3): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/progmodes/compile.el (compile): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/progmodes/etags.el (tags-table-files)
      (tags-table-files-function, tags-included-tables-function): Fix
       ambiguous doc string cross-reference(s).
      
      * lisp/progmodes/gdb-mi.el (gdb, gdb-setup-windows)
      (gdb-restore-windows): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/textmodes/flyspell.el (flyspell-mark-duplications-flag)
      (flyspell-default-deplacement-commands): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/textmodes/ispell.el (ispell-accept-output): Fix ambiguous doc
       string cross-reference(s).
      
      * lisp/textmodes/sgml-mode.el (html-tag-help): Fix ambiguous doc string
       cross-reference(s).
      
      * lisp/vc/compare-w.el (compare-ignore-whitespace)
      (compare-ignore-case, compare-windows-dehighlight): Fix ambiguous
       doc string cross-reference(s).
      
      * lisp/vc/diff.el (diff): Fix ambiguous doc string cross-reference(s).
      
      * src/insdel.c (Fcombine_after_change_execute, syms_of_insdel): Fix
       ambiguous doc string cross-reference(s).
      
      * src/keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
       doc string cross-reference(s).
      
      * src/window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
       string cross-reference(s).
      
      Fixes: debbugs:12686
      9fc9a531
  16. 01 Jan, 2013 1 commit
  17. 26 Dec, 2012 1 commit
  18. 25 Dec, 2012 1 commit
  19. 22 Dec, 2012 1 commit
  20. 19 Dec, 2012 1 commit
  21. 17 Dec, 2012 1 commit
    • Stefan Monnier's avatar
      * src/xdisp.c (select_frame_for_redisplay): Use select_window_1 to · 1e101a4b
      Stefan Monnier authored
      propagate redisplay's scrolling (if any) to the right window.
      (redisplay_internal): Use ensure_selected_frame.
      (display_mode_lines): Complete last fix.
      * src/window.c (select_window_1): New func, extracted from select_window.
      (select_window): Use it.
      * src/window.h (select_window_1): Declare.
      1e101a4b
  22. 12 Dec, 2012 1 commit
  23. 11 Dec, 2012 2 commits
    • Dmitry Antipov's avatar
      * buffer.c (Fset_buffer_multibyte): Do not force redisplay · c6afe371
      Dmitry Antipov authored
      if changed buffer is not shown in a window.
      * insdel.c (prepare_to_modify_buffer): Likewise.
      * window.c (replace_buffer_in_windows_safely): Do nothing
      if buffer is not shown in a window.
      (Fforce_window_update): Likewise if string or buffer argument
      is passed.
      c6afe371
    • Dmitry Antipov's avatar
      Consistently use marker_position and marker_byte_position. · 4c1acb95
      Dmitry Antipov authored
      * fringe.c (Ffringe_bitmaps_at_pos):
      * indent.c (Fvertical_motion):
      * insdel.c (prepare_to_modify_buffer):
      * keyboard.c (make_lispy_position):
      * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
      (window_scroll_pixel_based, displayed_window_lines)
      (Fset_window_configuration):
      * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
      (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
      Replace direct access to marker fields with calls
      to marker_position and/or marker_byte_position.
      4c1acb95
  24. 10 Dec, 2012 1 commit
    • Dmitry Antipov's avatar
      Per-buffer window counters. · 98a07056
      Dmitry Antipov authored
      * buffer.h (struct buffer): New member window_count.
      (buffer_window_count): New function.
      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
      Initialize window_count.
      (Fkill_buffer): Verify window_count for the buffer being killed.
      (modify_overlay): Do not force redisplay if buffer is not shown
      in any window.
      (init_buffer_once): Initialize window_count for buffer_defaults
      and buffer_local_symbols.
      * window.h (buffer_shared): Remove declaration.
      (wset_buffer): Convert from inline ...
      * window.c (wset_buffer): ... to an ordinary function.
      (adjust_window_count): New function.
      (make_parent_window): Use it.
      * xdisp.c (buffer_shared): Remove.
      (redisplay_internal, redisplay_window): Adjust users.
      (buffer_shared_and_changed): Use per-buffer window counter.
      98a07056
  25. 07 Dec, 2012 1 commit
    • Dmitry Antipov's avatar
      * frame.c (make_frame): Do not set window's buffer to t. · 822995f8
      Dmitry Antipov authored
      * window.c (Fsplit_window_internal): Likewise.  Previously it was
      used to indicate that the window is being set up.  Now we use
      set_window_buffer for all new windows, so the condition in ...
      (Fset_window_buffer): ... is always true and can be removed.
      822995f8
  26. 12 Nov, 2012 1 commit
    • Dmitry Antipov's avatar
      Simplify by using FOR_EACH_FRAME here and there. · 5b04e9f9
      Dmitry Antipov authored
      * frame.c (next_frame, prev_frame, other_visible_frames)
      (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
      * w32term.c (x_window_to_scroll_bar): Likewise.
      * window.c (window_list): Likewise.
      * xdisp.c (x_consider_frame_title): Likewise.
      * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
      * xfns.c (x_window_to_frame, x_any_window_to_frame)
      (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
      * xmenu.c (menubar_id_to_frame): Likewise.
      * xselect.c (frame_for_x_selection): Likewise.
      * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
      (x_window_to_menu_bar): Likewise.
      * w32fns.c (x_window_to_frame): Likewise.  Adjust comment.
      5b04e9f9
  27. 11 Nov, 2012 1 commit
  28. 07 Nov, 2012 1 commit
    • Martin Rudalics's avatar
      Fix and rewrite doc on window recombining facilities. · fdaf534a
      Martin Rudalics authored
      * window.c (Fsplit_window_internal): Set combination limit of
      new parent window to t iff Vwindow_combination_limit is t;
      fixing a regression introduced with the change from 2012-09-22.
      (Fwindow_combination_limit, Fset_window_combination_limit): Fix
      doc-strings.
      
      * elisp.texi (Top): Add Recombining Windows to menu.
      * windows.texi (Recombining Windows): New subsection.
      (Splitting Windows): Rewrite text on handling of window
      combinations and move it to new subsection.
      fdaf534a
  29. 06 Nov, 2012 4 commits
    • Paul Eggert's avatar
      Minor adjustments of recently-changed frame functions. · 68f8f1c0
      Paul Eggert authored
      * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
      known to be a frame (we're in the FRAMEP branch).
      * lisp.h (Qframep): Remove decl.  frame.h declares this.
      * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
      since they're meant for Lisp fixnum values.
      68f8f1c0
    • Dmitry Antipov's avatar
      * window.c (Fwindow_combination_limit): Revert to the only · 72f94d4b
      Dmitry Antipov authored
      required argument and adjust docstring as suggested in
      http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
      by Martin Rudalics <rudalics@gmx.at>.
      72f94d4b
    • Dmitry Antipov's avatar
      Widely used frame validity and checking functions. · d9f07150
      Dmitry Antipov authored
      * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
      * frame.c (decode_live_frame, decode_any_frame): New functions.
      (delete_frame, Fredirect_frame_focus, Fframe_parameters)
      (Fframe_parameter, Fframe_char_height, Fframe_char_width)
      (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
      (Fframe_pointer_visible_p): Use decode_any_frame.
      (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
      (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
      (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
      (Fframe_focus): Likewise.  Allow zero number of arguments.
      Adjust docstring.
      (frame_buffer_list, frame_buffer_predicate): Remove.
      * lisp.h (frame_buffer_predicate): Remove prototype.
      * buffer.c (Fother_buffer): Use decode_any_frame.
      * xdisp.c (Ftool_bar_lines_needed): Likewise.
      * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
      * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
      (Fclose_font, Ffont_info): Use decode_live_frame.
      * fontset.c (check_fontset_name): Likewise.
      * terminal.c (Fframe_terminal): Likewise.
      * w32fns.c (check_x_frame): Likewise.
      * window.c (Fminibuffer_window, Fwindow_at)
      (Fcurrent_window_configuration): Likewise.
      (Frun_window_configuration_change_hook, Fwindow_resize_apply):
      Likewise.  Allow zero number of arguments.  Adjust docstring.
      * dispnew.c (Fredraw_frame): Likewise.
      * xfaces.c (frame_or_selected_frame): Remove.
      (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
      (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
      (Fframe_face_alist): Use decode_live_frame.
      * xfns.c (check_x_frame): Likewise.
      d9f07150
    • Dmitry Antipov's avatar
      * window.c (quad): New function. · 89bc0592
      Dmitry Antipov authored
      (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
      (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
      (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
      (Fwindow_line_height): Use it.
      (Fwindow_fringes): Use list3.
      (Fwindow_scroll_bars): Use list4.
      (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
      (Fwindow_combination_limit): Allow zero number of arguments.
      89bc0592
  30. 03 Nov, 2012 1 commit
  31. 02 Nov, 2012 1 commit
    • Dmitry Antipov's avatar
      Window-related stuff cleanup here and there. · b9e9df47
      Dmitry Antipov authored
      * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
      Use decode_any_window.
      * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
      * xdisp.c (Fformat_mode_line): Likewise.
      * font.c (Ffont_at): Use decode_live_window.
      * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
      * window.c (decode_next_window_args): Likewise.
      (decode_any_window): Remove static.
      * window.h (decode_any_window): Add prototype.
      * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
      * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
      respectively.
      b9e9df47
  32. 18 Oct, 2012 1 commit
  33. 15 Oct, 2012 1 commit
  34. 01 Oct, 2012 1 commit
    • Paul Eggert's avatar
      Prefer plain 'static' to 'static inline'. · b0ab8123
      Paul Eggert authored
      With static functions, modern compilers inline pretty well by
      themselves; advice from programmers often hurts as much as it helps.
      On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
      this change shrinks the text size of the Emacs executable by 1.1%
      without affecting CPU significantly in my benchmark.
      * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
      (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
      (mark_maybe_object, mark_maybe_pointer, bounded_number):
      * buffer.c (bset_abbrev_mode, bset_abbrev_table)
      (bset_auto_fill_function, bset_auto_save_file_format)
      (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
      (bset_bidi_display_reordering, bset_buffer_file_coding_system)
      (bset_cache_long_line_scans, bset_case_fold_search)
      (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
      (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
      (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
      (bset_fringe_indicator_alist, bset_fringes_outside_margins)
      (bset_header_line_format, bset_indicate_buffer_boundaries)
      (bset_indicate_empty_lines, bset_invisibility_spec)
      (bset_left_fringe_width, bset_major_mode, bset_mark)
      (bset_minor_modes, bset_mode_line_format, bset_mode_name)
      (bset_name, bset_overwrite_mode, bset_pt_marker)
      (bset_right_fringe_width, bset_save_length)
      (bset_scroll_bar_width, bset_scroll_down_aggressively)
      (bset_scroll_up_aggressively, bset_selective_display)
      (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
      (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
      (set_buffer_overlays_after):
      * category.c (bset_category_table):
      * charset.c (read_hex):
      * coding.c (produce_composition, produce_charset)
      (handle_composition_annotation, handle_charset_annotation)
      (char_encodable_p):
      * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
      (assign_row, set_frame_matrix_frame, make_current)
      (add_row_entry):
      * eval.c (set_specpdl_symbol, set_specpdl_old_value):
      * fns.c (maybe_resize_hash_table):
      * frame.c (fset_buffer_predicate, fset_minibuffer_window):
      * gmalloc.c (register_heapinfo):
      * image.c (lookup_image_type):
      * intervals.c (set_interval_object, set_interval_left)
      (set_interval_right, copy_interval_parent, rotate_right)
      (rotate_left, balance_possible_root_interval):
      * keyboard.c (kset_echo_string, kset_kbd_queue)
      (kset_keyboard_translate_table, kset_last_prefix_arg)
      (kset_last_repeatable_command, kset_local_function_key_map)
      (kset_overriding_terminal_local_map, kset_real_last_command)
      (kset_system_key_syms, clear_event, set_prop):
      * lread.c (digit_to_number):
      * marker.c (attach_marker, live_buffer, set_marker_internal):
      * nsterm.m (ns_compute_glyph_string_overhangs):
      * process.c (pset_buffer, pset_command)
      (pset_decode_coding_system, pset_decoding_buf)
      (pset_encode_coding_system, pset_encoding_buf, pset_filter)
      (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
      (pset_status, pset_tty_name, pset_type, pset_write_queue):
      * syntax.c (bset_syntax_table, dec_bytepos):
      * terminal.c (tset_param_alist):
      * textprop.c (interval_has_some_properties)
      (interval_has_some_properties_list):
      * window.c (wset_combination_limit, wset_dedicated)
      (wset_display_table, wset_hchild, wset_left_fringe_width)
      (wset_left_margin_cols, wset_new_normal, wset_new_total)
      (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
      (wset_right_fringe_width, wset_right_margin_cols)
      (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
      (wset_vertical_scroll_bar_type, wset_window_parameters):
      * xdisp.c (wset_base_line_number, wset_base_line_pos)
      (wset_column_number_displayed, wset_region_showing)
      (window_box_edges, run_window_scroll_functions)
      (append_glyph_string_lists, prepend_glyph_string_lists)
      (append_glyph_string, set_glyph_string_background_width)
      (append_glyph, append_composite_glyph)
      (take_vertical_position_into_account):
      * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
      (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
      (lface_hash, lface_same_font_attributes_p, lookup_face):
      * xml.c (libxml2_loaded_p):
      * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
      (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
      Now 'static', not 'static inline'.
      
      Fixes: debbugs:12541
      b0ab8123
  35. 30 Sep, 2012 1 commit
    • Martin Rudalics's avatar
      Handle window-height and window-width alist entries in `display-buffer'. · 5938d519
      Martin Rudalics authored
      In buffer display functions handle window-height/window-width
      alist entries.  Suggested by Juri Linkov as fix for Bug#1806.
      * window.el (window--display-buffer): New argument ALIST.  Obey
      window-height and window-width alist entries.
      (window--try-to-split-window): New argument ALIST.  Bind
      window-combination-limit to t when the window's size shall be
      changed and window-combination-limit equals `window-size'.
      (display-buffer-in-atom-window)
      (display-buffer-in-major-side-window)
      (display-buffer-in-side-window, display-buffer-same-window)
      (display-buffer-reuse-window, display-buffer-pop-up-frame)
      (display-buffer-pop-up-window, display-buffer-below-selected)
      (display-buffer-at-bottom, display-buffer-in-previous-window)
      (display-buffer-use-some-window): Adjust all callers of
      window--display-buffer and window--try-to-split-window.
      (fit-frame-to-buffer): New option.
      (fit-window-to-buffer): Can resize frames if fit-frame-to-buffer
      is non-nil.
      (display-buffer-in-major-side-window): Evaluate window-height /
      window-width alist entries.
      
      * help.el (temp-buffer-resize-frames)
      (temp-buffer-resize-regexps): Remove options.
      (temp-buffer-resize-mode): Adjust doc-string.
      (resize-temp-buffer-window): Don't consult
      temp-buffer-resize-regexps.  Use fit-frame-to-buffer instead of
      temp-buffer-resize-frames.
      
      * dired.el (dired-mark-pop-up): Call
      display-buffer-below-selected with a fit-window-to-buffer alist
      entry.
      
      * window.c (Vwindow_combination_limit): New default value.
      (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
      5938d519