* doc/lispref/windows.texi (Splitting Windows): Fix error in documentation of
window-combination-limit.
(Cyclic Window Ordering): Minor fixes to next-window,
one-window-p, and get-lru-window docs. Don't document
window-list-1.
(Buffers and Windows): Copyedits.
(Choosing Window): Document special handling of special-display-*.
(Choosing Window Options): Fix display-buffer-reuse-frames doc.
Don't document even-window-heights, which is going away. Clarify
which options are obeyed by which action functions.
* src/window.c (Fnext_window, Fprevious_window): Doc fix.
* window.c (Fset_window_combination_limit): Rename argument
STATUS to LIMIT.
(Vwindow_combination_limit): Remove "status" from doc-string.
* windows.texi (Resizing Windows, Splitting Windows): Remove
term "status" when talking about combination limits.
Otherwise, valgrind does not work on some platforms.
Problem reported by Andreas Schwab in
<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
* puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
is set, removing the need for VIRT_ADDRESS_VARIES.
(PURE_P): Use a more-efficient implementation that needs just one
comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
to 4 (xorl, subq, cmpq, setbe).
* alloc.c (pure): Always extern now, since that's the
VIRT_ADDR_VARIES behavior.
(PURE_POINTER_P): Use a single comparison, not two, for
consistency with the new puresize.h.
* lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
* m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
Remove VIRT_ADDR_VARIES no longer needed.
Fixes: debbugs:10042
src/xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
(erase_phys_cursor, update_window_cursor, show_mouse_face)
(cursor_in_mouse_face_p): If the cursor position is out of bounds,
behave as if the cursor position were at the window margin.
src/window.c (get_phys_cursor_glyph): If the window is hscrolled,
and the cursor position is out of bounds, behave as if the cursor
position were at the window margin.
src/dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
hash values of the two rows.
(copy_row_except_pointers): Preserve the used[] arrays and the
hash values of the two rows.
src/xdisp.c (row_hash): New function, body extracted from
compute_line_metrics.
(compute_line_metrics): Call row_hash, instead of computing the
hash code inline.
src/dispnew.c (verify_row_hash): Call row_hash for computing the
hash code of a row, instead of duplicating code from xdisp.c.
src/dispextern.h (row_hash): Add prototype.
* window.c (Vwindow_splits): Rename to
Vwindow_combination_resize. Suggested by Juri Linkov.
(Fsplit_window_internal): Use Vwindow_combination_resize instead
of Vwindow_splits.
* window.el (window-resize, delete-window, split-window):
Replace window-splits by window-combination-resize.
* cus-start.el (window-splits): Replace by
window-combination-resize.
* windows.texi (Resizing Windows, Splitting Windows)
(Deleting Windows): Use term window-combination-resize instead
of window-splits.
src/xdisp.c (display_line): Move the call to
highlight_trailing_whitespace before the call to
compute_line_metrics, since the latter needs to see the final
faces of all the glyphs to compute ROW's hash value. Fixes
assertion violations in row_equal_p.
src/makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
with user-defined heap size. Bump the default size of the temacs
heap to 27MB, to avoid memory warning when running temacs.
($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
src/dispnew.c (verify_row_hash) [XASSERTS]: New function.
(adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
that the hash value of glyph rows is correct.
does not work on some platforms. Problem reported by Andreas Schwab in
<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
* puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
is set, removing the need for VIRT_ADDRESS_VARIES.
(PURE_P): Use a more-efficient implementation that needs just one
comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
to 4 (xorl, subq, cmpq, setbe).
* alloc.c (pure): Always extern now, since that's the
VIRT_ADDR_VARIES behavior.
(PURE_POINTER_P): Use a single comparison, not two, for
consistency with the new puresize.h.
* lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
* m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
Remove VIRT_ADDR_VARIES no longer needed.
* lisp/window.el (window-total-height, window-total-width): Doc fix.
(window-body-size): Move from C.
(window-body-height, window-body-width): Move to C.
* src/window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
(Fwindow_body_height, Fwindow_body_width): Move from Lisp. Signal
an error if not a live window.
(Fwindow_total_width, Fwindow_total_height): Move from Lisp.
(Fwindow_total_size, Fwindow_body_size): Move to Lisp.
src/w32.c (check_windows_init_file): Don't look for term/w32-win.el
if Vpurify_flag is non-nil. Fixes a crash when running w32 build
of temacs in GUI mode.