src/dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
attributes are tested _before_ calling verify_row_hash, to protect
against GCC re-ordering of the tests.
if net_wm_state_hidden_seen is non-zero
(get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
_NET_WM_STATE_HIDDEN is in NET_WM_STATE.
* xterm.h (struct x_output): net_wm_state_hidden_seen is new.
Fixes: debbugs:10002
* lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
(GCPRO6_VAR, UNGCPRO_VAR): Remove. See
<http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
All uses changed to use GCPRO1 etc.
(GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
Revert to old implementation (i.e., before 2011-03-11).
* dispnew.c (scrolling_window): Truncate overlaps in copy destination
of scroll runs so as to avoid assigning disabled bogus rows and
unnecessary graphics copy operations.
Parts of the changes by Fabrice Popineau <fabrice.popineau@supelec.fr>.
lib-src/makefile.w32-in (LOCAL_FLAGS): Add $(EMACS_EXTRA_C_FLAGS).
lib-src/emacsclient.c (main) <environ>: Remove declaration, already
pulled in by unistd.h on Posix hosts and stdlib.h on MS-Windows.
nt/inc/stdint.h (uint32_t, uint64_t) [_WIN64]: New typedefs.
(UINT64_MAX) [_WIN64]: Fix definition.
(uintmax_t, intmax_t): Fix definitions.
nt/inc/inttypes.h (strtoumax, strtoimax) [!__MINGW32__]: Provide
correct definitions.
nt/config.nt (HAVE_DECL_STRTOLL): Define.
(va_copy) [_WIN64]: Provide a better definition.
src/s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
(snprintf) [_MSC_VER]: Redirect to _snprintf.
(strtoll) [_MSC_VER]: Redirect to _strtoi64.
(malloc, free, realloc, calloc): Redirect to e_* only when
compiling Emacs.
src/lisp.h (GCTYPEBITS): Move before first use.
(ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
(DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
this macro definition.
(tzname): Redirect to _tzname for all values of _MSC_VER.
Fixes: debbugs:9960
* configure.in: Check for gtk_window_set_has_resize_grip.
* src/gtkutil.c (xg_create_frame_widgets): Call
gtk_window_set_has_resize_grip (FALSE) if that function is
present with Gtk+ 2.0.
* fileio.c (Finsert_file_contents):
Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
* process.c (wait_reading_process_output):
Rename inner 'proc' to 'p' to avoid shadowing.
Indent for consistency with usual Emacs style.
src/xdisp.c (start_display): Don't move to the next line if the display
should start at a newline that is part of a display vector or an overlay
string.
src/xdisp.c (redisplay_window): If cursor row is not fully visible
after recentering, and scroll-conservatively is set to a large
number, scroll window by a few more lines to make the cursor fully
visible and out of scroll-margin.
src/dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
and header-lines, as they don't have one computed for them.
src/.gdbinit (prow): Make displayed values more self-explaining.
Add row's hash code.
* 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.