Merge from emacs-24; up to 2012-05-07T14:57:18Z!michael.albinus@gmx.de
[bpt/emacs.git] / src / ChangeLog
index 49c1fa3..f3b8b21 100644 (file)
-2012-09-12  Jan Djärv  <jan.h.d@swipnet.se>
+2012-09-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
+       (print_load_command_name): Add case LC_DATA_IN_CODE.
+       (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
+
+2012-09-21  Glenn Morris  <rgm@gnu.org>
+
+       * eval.c (Frun_hook_with_args_until_success)
+       (Frun_hook_with_args_until_failure): Doc fixes.  (Bug#12393)
+
+2012-09-21  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * fileio.c (Ffile_selinux_context): Only call freecon when
+       lgetfilecon succeeded.
+       (Fset_file_selinux_context): Likewise.  (Bug#12444)
+
+2012-09-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (try_window_reusing_current_matrix): Under bidi
+       reordering, locate the cursor by calling set_cursor_from_row; if
+       that fails, clear the desired glyph matrix before returning a
+       failure indication to the caller.  Fixes leaving garbled display
+       when fast scrolling with a down-key.  (Bug#12403)
+       (compute_stop_pos_backwards): Fix a typo that caused crashes while
+       scrolling through multibyte text.
+
+2012-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
+       calling mark_vectorlike since that's the one that marks the window.
+       (mark_discard_killed_buffers): Mark the final cdr.
+       * window.h (struct window): Move prev/next_buffers to the
+       non-standard fields.
+       * window.c (make_window): Initialize prev/next_buffers manually.
+
+2012-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Omit unused arg EXPECTED from socket hooks.
+       * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
+       * nsterm.m (ns_term_init):
+       * termhooks.h (struct terminal.read_socket_hook):
+       * w32inevt.c (w32_console_read_socket):
+       * w32term.c (w32_read_socket):
+       * xterm.c (XTread_socket):
+       Omit unused arg EXPECTED.  All callers changed.
+       (store_user_signal_events): Return void, not int, since callers no
+       longer care about the return value.  All uses changed.
+
+2012-09-20  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32gui.h (XParseGeometry): Do not declare.
+
+2012-09-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
+       Ignore 'expected'. See Eli Zaretskii in
+       <http://bugs.gnu.org/12471#8> (last line).
+
+       * frame.c (read_integer): Remove.  All uses replaced by strtol/strtoul.
+       (XParseGeometry): Now static.  Substitute extremal values for
+       values that are out of range.
+
+2012-09-19  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
+
+       * nsfns.m (XParseGeometry): Remove.
+       (Fx_create_frame): Call x_set_offset to correctly interpret
+       top_pos in geometry.
+
+       * frame.c (read_integer, XParseGeometry): Moved from w32xfns.c.
+       (Fx_parse_geometry): If there is a space in string, call
+       Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
+
+2012-09-17  Eli Zaretskii  <eliz@gnu.org>
+
+       * search.c (scan_buffer): Use character positions in calls to
+       region_cache_forward and region_cache_backward, not byte
+       positions.  (Bug#12196)
+
+       * w32term.c (w32_read_socket): Set pending_signals to 1, like
+       xterm.c does.  Reported by Daniel Colascione <dancol@dancol.org>.
+
+       * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
+       __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
+       emacs_blocked_malloc, now deleted.
+
+2012-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove no-longer-needed Solaris 2.4 vfork bug workaround.
+       The workaround was for improving performance on Solaris 2.4, but
+       is getting in the way now.  Emacs will still work if someone is
+       still running Solaris 2.4 in a museum somewhere; Sun dropped
+       support for Solaris 2.4 in 2003.
+       * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
+       * process.c (create_process) [HAVE_WORKING_VFORK]:
+       Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
+       since Emacs no longer uses vfork on that platform.
+
+2012-09-17  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.c: Use COPYRIGHT.
+
+2012-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove configure's --without-sync-input option (Bug#12450).
+       When auditing signal-handling in preparation for cleaning it up,
+       I found that SYNC_INPUT has race conditions and would be a real
+       pain to fix.  Since it's an undocumented and deprecated
+       configure-time option, now seems like a good time to remove it.
+       Also see <http://bugs.gnu.org/11080#16>.
+       * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
+       (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
+       (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
+       (malloc_hysteresis):
+       (check_depth) [XMALLOC_OVERRUN_CHECK]:
+       (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
+       (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
+       (dont_register_blocks, bytes_used_when_reconsidered)
+       (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
+       (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
+       [!SYSTEM_MALLOC && !SYNC_INPUT]:
+       Remove. All uses removed.
+       (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
+       implementation, one that depends on whether the new macro
+       XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
+       is defined.
+       * atimer.c (run_timers, handle_alarm_signal):
+       * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
+       (handle_async_input, process_pending_signals)
+       (handle_input_available_signal, init_keyboard):
+       * nsterm.m (ns_read_socket):
+       * process.c (wait_reading_process_output):
+       * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
+       * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
+       (emacs_write):
+       * xterm.c (XTread_socket):
+       Assume SYNC_INPUT.
+       * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
+       * eval.c (handling_signal): Remove.  All uses removed.
+       * lisp.h (ELSE_PENDING_SIGNALS): Remove.
+       All uses replaced with the SYNC_INPUT version.
+       (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
+       Remove decls.
+       * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Now static.
+
+       * font.c (Ffont_shape_gstring): Remove unused local.
+
+2012-09-16  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (clean): No longer run nextstep's clean.
+
+       * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
+       (ns_frag): Remove.
+       (ns-app): Move here from ns.mk, and simplify.
+       (clean): Simplify nextstep entry.
+       * ns.mk: Remove file.
+
+2012-09-16  Kenichi Handa  <handa@gnu.org>
+
+       * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
+       not covert the last few charactes.
+
+2012-09-16  Kenichi Handa  <handa@gnu.org>
+
+       * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
+       here, but just check the validity of glyphs in the glyph-string.
+
+2012-09-16  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fwindow_parameter, Fset_window_parameter): Accept
+       any window as argument (Bug#12452).
+
+2012-09-16  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
+       to ns_term_init to avoid memory leak.
+
+       * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
+       explicit retain/release.
+       (ns_term_init): Only allow one display.  Initialize outerpool and
+       ns_*_types.
+
+2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port _setjmp fix to POSIXish hosts as well as Microsoft.
+       * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
+       it's needed on POSIXish hosts that lack _setjmp.  Attempt to solve
+       the Microsoft problem in a different way, by altering ../nt/config.nt.
+
+2012-09-15  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32xfns.c:
+       * w32uniscribe.c:
+       * w32term.c:
+       * w32select.c:
+       * w32reg.c:
+       * w32proc.c:
+       * w32menu.c:
+       * w32inevt.c:
+       * w32heap.c:
+       * w32font.c:
+       * w32fns.c:
+       * w32console.c:
+       * w32.c:
+       * w16select.c: Remove inclusion of setjmp.h, as it is now included
+       by lisp.h.  This completes removal of setjmp.h inclusion
+       erroneously announced in the previous commit.  (Bug#12446)
+
+       * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
+       more accurate.
+
+       * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
+       not defined as a macro.  The latter happens on MS-Windows.
+       (Bug#12446)
+
+2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port better to POSIX hosts lacking _setjmp (Bug#12446).
+       * lisp.h: Include <setjmp.h> here, since we use its symbols here.
+       Some instances of '#include <setjmp.h>' removed, if the
+       only reason for the instance was because "lisp.h" was included.
+       (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
+       Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
+       and _longjmp with the new symbols.  Emacs already uses _setjmp if
+       available, so this change affects only POSIXish hosts that have
+       sigsetjmp but not _setjmp, such as some versions of Solaris and
+       Unixware.  (Also, POSIX-2008 marks _setjmp as obsolescent.)
+       * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
+       (png_load_body) [HAVE_PNG]:
+       (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
+       (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
+       Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
+       since PNG requires jmp_buf.  This is the only exception to the
+       general rule that we now use sys_setjmp and sys_longjmp.
+       This exception is OK since this code does not change the signal
+       mask or longjmp out of a signal handler.
+
+2012-09-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
+       Include "syssignal.h", for 'main_thread'.
+
+2012-09-14  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid out-of-range marker position (Bug#12426).
+       * insdel.c (replace_range, replace_range_2): Adjust
+       markers before overlays, as suggested by comments.
+       (insert_1_both, insert_from_buffer_1, adjust_after_replace):
+       Remove redundant check before calling offset_intervals.
+
+2012-09-14  Martin Rudalics  <rudalics@gmx.at>
+
+       * xdisp.c (Fformat_mode_line): Unconditionally save/restore
+       current buffer (Bug#12387).
+
+2012-09-14  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
+
+2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use a more backwards-compatible timer format (Bug#12430).
+       * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
+       vector element, not from the 4th, since PSECS is now at the end.
+       (Fcurrent_idle_time): Doc fix.
+
+2012-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Function to mark objects and remove killed buffers at once.
+       * alloc.c (discard_killed_buffers): Rename to ...
+       (mark_discard_killed buffers) ... new name.  Add marking
+       of remaining objects.  Fix comment.  Adjust users.
+       (mark_object): Do not touch frame buffer lists here.
+       * frame.c (delete_frame): Reset frame buffer lists here.
+
+2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Better workaround for GNOME bug when --enable-gcc-warnings.
+       * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
+       Instead, disable -Wunused-local-typedefs.  See Dmitry Antipov in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
+
+       Simplify SIGIO usage (Bug#12408).
+       The code that dealt with SIGIO was crufty and confusing, e.g., it
+       played tricks like "#undef SIGIO" but these tricks were not used
+       consistently.  Simplify mostly by not #undeffing standard symbols,
+       e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
+       or not as we please) rather than "defined SIGIO" (standard symbol
+       that we probably shouldn't #undef).
+       * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
+       Modules that need it can include it.
+       [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
+       * dispextern.h (ignore_sigio): New decl.
+       * emacs.c (shut_down_emacs): Invoke unrequest_sigio
+       unconditionally, since it's now a no-op if !USABLE_SIGIO.
+       * emacs.c (shut_down_emacs):
+       * keyboard.c (kbd_buffer_store_event_hold):
+       Use ignore_sigio rather than invoking 'signal' directly.
+       * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
+       for FIONREAD.
+       (FIONREAD, SIGIO): Do not #undef.
+       (tty_read_avail_input): Use #error rather than a syntax error.
+       * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
+       for I_PIPE, used by SETUP_SLAVE_PTY.
+       (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
+       * sysdep.c (croak): Remove; no longer needed.  This bit of
+       temporary code, with Fred N. Fish's comment that it's temporary,
+       has been in Emacs since at least 1992!
+       (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
+       Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
+       * syssignal.h (croak): Remove decl.
+       (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
+       * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
+       now that we're termios-only.
+       (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
+       * term.c (dissociate_if_controlling_tty): Use #error rather than
+       a run-time error.
+
+       Work around GCC and GNOME bugs when --enable-gcc-warnings.
+       * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
+       to work around GNOME bug 683906.
+       * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
+       (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
+       This works around GCC bug 54561.
+
+2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       More fixes for 'volatile' and setjmp/longjmp.
+       * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
+       * image.c (struct png_load_context) [HAVE_PNG]: New type.
+       (png_load_body) [HAVE_PNG]:
+       (jpeg_load_body) [HAVE_JPEG]:
+       New function, with most of the old parent function's body.
+       (png_load) [HAVE_PNG]:
+       (jpeg_load) [HAVE_JPEG]:
+       Invoke the new function, to avoid longjmp munging our locals.
+       (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
+       (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
+       longjmp is passed 2, as the C standard doesn't guarantee this.
+       Instead, store the failure code into mgr->failure_code.
+
+2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
+       (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
+       (syms_of_keyboard): Remove support for unread-command-char.
+
+2012-09-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sys_kill): If PID is our process ID and the signal is
+       SIGABRT, call emacs_abort.  Avoids silently exiting upon assertion
+       violation.  (Bug#12426)
+
+2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
+
+2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c: Add `inhibit-debugger'.
+       (Qinhibit_debugger): New symbol.
+       (call_debugger): Bind it instead of Qdebug_on_error.
+       (maybe_call_debugger): Test Vinhibit_debugger.
+       (syms_of_eval): Define inhibit-debugger.
+       * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
+       (syms_of_xdisp): Remove inhibit-debug-on-message.
+
+2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Avoid _setjmp/_longjmp problems with local nonvolatile variables.
+       If a nonvolatile local variable is written before a _longjmp to
+       the frame containing the variable, and is read after the _longjmp,
+       the value read is indeterminate.  Some local variables of type
+       'struct handler' and 'struct catchtag' are used in this way, so
+       mark each of their slots as volatile if the slot can be set before
+       _longjmp and read afterwards.
+       * lisp.h (struct handler): var and chosen_clause are now volatile.
+       (struct catchtag): val, next, and pdlcount are now volatile.
+
+       * bidi.c (bidi_push_it, bidi_pop_it):
+       * fns.c (copy_hash_table):
+       * image.c (define_image_type):
+       * keyboard.c (kbd_buffer_store_event_hold):
+       * process.c (Fprocess_send_eof):
+       * xfaces.c (x_create_gc) [HAVE_NS]:
+       * xgselect.c (xg_select):
+       Prefer assignment to memcpy when either will do.
+
+       * alloc.c (discard_killed_buffers): Tune and simplify a bit.
+       Use pointer-to-a-pointer to simplify and avoid a NILP check each
+       time an item is removed.  No need to mark this function 'inline';
+       the compiler knows better than we do.
+
+2012-09-11  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
+       (updateFrameSize:): Add delay parameter to updateFrameSize, send it
+       to change_frame_size (Bug#12388).
+       (windowDidResize:): Pass YES to updateFrameSize.
+
+       * nsterm.h: Add delay parameter to updateFrameSize.
+
+2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Discard killed buffers from deleted window and frame objects.
+       This reduces an amount of references to killed buffers and
+       helps GC to reclaim them faster.
+       * alloc.c (discard_killed_buffers): New function.
+       (mark_object): Use it for deleted windows and frames.
+       (mark_object): If symbol's value is set up for a killed buffer
+       or deleted frame, restore it's global binding.
+       * data.c (swap_in_global_binding): Add GC notice.
+       (swap_in_symval_forwarding): Use convenient set_blv_where.
+       * window.c (wset_next_buffers, wset_prev_buffers): Move ...
+       * window.h: ... to here.
+
+2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Convenient macro to check whether the buffer is live.
+       * buffer.h (BUFFER_LIVE_P): New macro.
+       * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
+       * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
+
+2012-09-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
+       composition cases (Bug#12364).
+
+       * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
+       overhang of succeeding glyphs overlapping box cursor.
+
+       * w32term.c (x_draw_glyph_string): Likewise.
+
+2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify, document, and port floating-point (Bug#12381).
+       The porting part of this patch fixes bugs on non-IEEE platforms
+       with frexp, ldexp, logb.
+       * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
+       Now static.
+       * floatfns.c: Simplify discussion of functions that Emacs doesn't
+       support, by removing commented-out code and briefly listing the
+       C89 functions excluded.  The commented-out stuff was confusing
+       maintenance, e.g., we thought we needed cbrt but it was commented out.
+       (logb): Remove decl; no longer needed.
+       (isfinite): New macro, if not already supplied.
+       (isnan): Don't replace any existing macro.
+       (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
+       are present on all C89 platforms.
+       (Ffrexp): Do not special-case zero, as frexp does the right thing
+       for that case.
+       (Flogb): Do not use logb, as it doesn't have the desired meaning
+       on hosts that use non-base-2 floating point.  Instead, stick with
+       frexp, which is C89 anyway.  Do not pass an infinity or a NaN to
+       frexp, to avoid getting an unspecified result.
+
+       * xdisp.c (Qinhibit_debug_on_message): Now static.
+
+2012-09-10  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_update_begin): Set clip path to whole view by using
+       NSBezierPath (Bug#12131).
+
+2012-09-10  Chong Yidong  <cyd@gnu.org>
+
+       * fns.c (Fdelq, Fdelete): Doc fix.
+
+2012-09-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
+       (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
+
+2012-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (make_lisp_ptr): New macro to replace XSET.
+       (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
+       Use it.
+
+2012-09-09  Eli Zaretskii  <eliz@gnu.org>
+
+       * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
+       left fringe if the window has a left margin.  This avoids leaving
+       traces of the cursor because its leftmost pixel is not drawn over.
+
+       * dispnew.c (update_window_line): When the left margin area of a
+       screen line is updated, set the redraw_fringe_bitmaps_p flag of
+       that screen line.  (Bug#12277)
+
+2012-09-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume C89 or later for math functions (Bug#12381).
+       This simplifies the code, and makes it a bit smaller and faster,
+       and (most important) makes it easier to clean up signal handling
+       since we can stop worring about floating-point exceptions in
+       library code.  That was a problem before C89, but the problem
+       went away many years ago on all practical Emacs targets.
+       * data.c, image.c, lread.c, print.c:
+       Don't include <math.h>; no longer needed.
+       * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
+       might be autoconfigured, as that never happens.
+       * data.c (fmod):
+       * doprnt.c (DBL_MAX_10_EXP):
+       * print.c (DBL_DIG):
+       Remove.  C89 or later always defines these.
+       * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
+       (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
+       (arith_error, domain_error, domain_error2):
+       Remove all this pre-C89 cruft.  Do not include <errno.h> as that's
+       no longer needed -- we simply return what C returns.  All uses removed.
+       (IN_FLOAT, IN_FLOAT2): Remove.  All uses replaced with
+       the wrapped code.
+       (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
+       Remove.  All uses expanded, as these macros are no longer used
+       more than once and are now more trouble than they're worth.
+       (Ftan): Use tan, not sin / cos.
+       (Flogb): Assume C89 frexp.
+       (fmod_float): Assume C89 fmod.
+       (matherr) [HAVE_MATHERR]: Remove; no longer needed.
+       (init_floatfns): Remove.  All uses removed.
+
+2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
+       compositeToPoint for OSX < 10.6 (Bug#12390).
+
+2012-09-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
+       This produces more-accurate results.
+
+2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (updateFrameSize): Call setFrame: on the view when size
+       changes (Bug#12088).
+
+2012-09-08  Chong Yidong  <cyd@gnu.org>
+
+       * syntax.c (Fstring_to_syntax): Doc fix.
+
+2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
+       in the internal border.
+       (x_set_window_size): Remove static variables and their usage.
+       (ns_redraw_scroll_bars): Fix NSTRACE arg.
+       (ns_after_update_window_line, ns_draw_fringe_bitmap): Remove
+       fringe/internal border adjustment (Bug#11052).
+       (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
+       (ns_draw_window_cursor): Remove fringe/internal border adjustment.
+       (ns_fix_rect_ibw): Remove.
+       (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
+       (ns_dumpglyphs_box_or_relief): Ditto.
+       (ns_maybe_dumpglyphs_background): Remove fringe/internal border
+       adjustment.
+       (ns_dumpglyphs_image): Ditto.
+       (ns_dumpglyphs_stretch): Fix coding style.  Remove fringe/internal
+       border adjustment.
+       (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
+       their usage.  Add fringe_extended_p and its use as in other terms.
+       (ns_judge_scroll_bars): Code style fix.  Call updateFrameSize if
+       scroll bar was removed.
+       (updateFrameSize): New function.
+       (windowDidResize): Move code to updateFrameSize and call it.
+
+       * nsterm.h (EmacsView): Add updateFrameSize.
+
+2012-09-07  Chong Yidong  <cyd@gnu.org>
+
+       * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
+
+       * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
+
+2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       More signal-handler cleanup (Bug#12327).
+       * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
+       Problem introduced when merging patches.  Noted by Eli Zaretskii in
+       <http://bugs.gnu.org/12327#67>.
+       * floatfns.c: Comment fix.
+       * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
+       SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
+       and anyway the declaration is harmless even if SIGDANGER is not defined.
+       * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
+       defined BROKEN_FIONREAD).  systty.h formerly did this, but other
+       source files not surprisingly expected syssignal.h to define, or
+       not define, SIGIO, and it's cleaner to do it that way, for consistency.
+       Include <sys/ioctl.h>, for FIONREAD.
+       * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
+       This eliminates a problem whereby other files mysteriously had
+       to include "syssignal.h" before including "systty.h" if they
+       wanted to use "#ifdef SIGIO".
+
+2012-09-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
+
+       * w32.c (sigemptyset): Empty the set.
+       (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
+
+       * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
+
+2012-09-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (mark_buffer): Revert unsafe marking optimization.
+       (mark_object): Likewise for frame objects.
+
+2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * syssignal.h (handle_on_main_thread): Always declare,
+       even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
+       This ports to platforms without HAVE_PTHREAD.
+
+2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Signal-handler cleanup (Bug#12327).
+       Emacs's signal handlers were written in the old 4.2BSD style with
+       sigblock and sigmask and so forth, and this led to some
+       inefficiencies and confusion.  Rewrite these to use
+       pthread_sigmask etc. without copying signal sets around.  Also,
+       get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
+       'signal', and instead use functions that do not attempt to take
+       over the system name space.  This patch causes Emacs's text
+       segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
+       * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
+       Do not include <signal.h> or "syssignal.h", as these
+       modules do not use signals.
+       * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
+       * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
+       Do not include <signal.h>, as "syssignal.h" does that for us now.
+       * atimer.c (sigmask_atimers): New function.
+       (block_atimers, unblock_atimers): New functions,
+       replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
+       All uses replaced.
+       * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
+       no longer needed here.
+       * emacs.c (main): Inspect existing signal handler with sigaction,
+       so that there's no need to block and unblock SIGHUP.
+       * sysdep.c (struct save_signal): New member 'action', replacing
+       old member 'handler'.
+       (save_signal_handlers, restore_signal_handlers):
+       Use sigaction instead of 'signal' to save and restore.
+       (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
+       New function.  All users of 'signal' modified to use set_sighandler
+       if they're writeonly, and to use sys_signal if they're read+write.
+       (emacs_sigaction_init, forwarded_signal): New functions.
+       (sys_signal): Remove.  All uses replaced by calls to sigaction
+       and emacs_sigaction_init, or by direct calls to 'signal'.
+       (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
+       (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
+       all uses replaced by pthread_sigmask etc. calls.
+       * syssignal.h: Include <signal.h>.
+       (emacs_sigaction_init, forwarded_signal): New decls.
+       (SIGMASKTYPE): Remove.  All uses replaced by its definiens, sigset_t.
+       (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
+       (sigmask, sys_sigmask): Remove; no longer needed.
+       (sigpause): Remove.  All uses replaced by its definiens, sigsuspend.
+       (sigblock, sigunblock, sigfree):
+       (sigsetmask) [!defined sigsetmask]:
+       Remove.  All uses replaced by pthread_sigmask.
+       (signal): Remove.  Its remaining uses (with SIG_DFL and SIG_IGN)
+       no longer need to be replaced, and its typical old uses
+       are now done via emacs_sigaction_init and sigaction.
+       (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
+       (sys_sigdel): Remove; unused.
+       (NSIG): Remove a FIXME; the code's fine.  Remove an unnecessary ifdef.
+
+2012-09-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
+       SIGCHLD handling on systems that don't have WNOHANG.  (Bug#12327)
+
+2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Explicitly mark buffer_defaults and buffer_local_symbols.
+       * alloc.c (Fgarbage_collect): Mark buffer_defaults and
+       mark_local_symbols here.
+       (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
+       since special buffers aren't marked here any more.
+       (allocate_buffer): Chain new buffer with all_buffers here...
+       * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
+       not here.
+       (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
+       (syms_of_buffer): Remove staticpro of the above.
+       (init_buffer_once): Set names for buffer_defaults and
+       buffer_local_symbols.
+
+2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use bool for booleans in font-related modules.
+       * font.c (font_intern_prop, font_style_to_value)
+       (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
+       (generate_otf_features, font_check_otf_features, font_check_otf)
+       (font_match_p, font_list_entities, font_at):
+       * fontset.c (fontset_id_valid_p, reorder_font_vector
+       (fontset_find_font, Fset_fontset_font)
+       (face_suitable_for_char_p) [0]:
+       * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
+       (ftfont_open, ftfont_text_extents, ftfont_check_otf):
+       (m17n_flt_initialized, ftfont_shape_by_flt):
+       * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
+       * nsfont.m (nsfont_draw):
+       * w32font.c (w32font_draw):
+       * w32term.c (x_draw_glyphless_glyph_string_foreground):
+       Use bool for booleans.
+       * font.h: Adjust to above API changes.
+       (struct font, struct font_driver, struct font_driver_list):
+       Use bool for booleans.
+       (struct font): Remove useless member encoding_type.
+       All users removed.
+       * fontset.c, xftfont.c: Omit unnecessary static decls.
+
+2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (mark_object): Revert window marking code
+       since it's unsafe for the Fset_window_configuration.
+
+2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix race conditions with signal handlers and errno (Bug#12327).
+       Be more systematic about preserving errno whenever a signal
+       handler returns, even if it's not in the main thread.  Do this by
+       renaming signal handlers to distinguish between signal delivery
+       and signal handling.  All uses changed.
+       * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
+       * data.c (deliver_arith_signal): Rename from arith_error.
+       * dispnew.c (deliver_window_change_signal): Rename from
+       window_change_signal.
+       * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
+       (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
+       * keyboard.c (deliver_input_available_signal): Rename from
+       input_available_signal.
+       (deliver_user_signal): Rename from handle_user_signal.
+       (deliver_interrupt_signal): Rename from interrupt_signal.
+       * process.c (deliver_pipe_signal): Rename from send_process_trap.
+       (deliver_child_signal): Rename from sigchld_handler.
+       * atimer.c (handle_alarm_signal):
+       * data.c (handle_arith_signal):
+       * dispnew.c (handle_window_change_signal):
+       * emacs.c (handle_fatal_signal, handle_danger_signal):
+       * keyboard.c (handle_input_available_signal):
+       * keyboard.c (handle_user_signal, handle_interrupt_signal):
+       * process.c (handle_pipe_signal, handle_child_signal):
+       New functions, with the actual signal-handling code taken from the
+       original respective signal handlers, sans the sporadic attempts to
+       preserve errno, since that's now done by handle_on_main_thread.
+       * atimer.c (alarm_signal_handler): Remove unnecessary decl.
+       * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
+       * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Move to sysdep.c.
+       (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Move initialization of main_thread to sysdep.c's init_signals.
+       * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
+       our usage, and simplifies the mainline code.
+       (record_child_status_change): New static function, as a helper
+       for handle_child_signal, and with most of the old child handler's
+       contents.
+       (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
+       (handle_child_signal): Use the above.
+       * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Moved here from emacs.c.
+       (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
+       code moved here from emacs.c's main function.
+       * sysdep.c, syssignal.h (handle_on_main_thread): New function,
+       replacing the old SIGNAL_THREAD_CHECK.  All uses changed.  This
+       lets callers save and restore errno properly.
+
+2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove redundant or unused things here and there.
+       * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
+       * conf_post.h (RE_TRANSLATE): Use char_table_translate.
+       * editfns.c (Fcompare_buffer_substrings): Likewise.
+       * frame.h (struct terminal, struct font_driver_list):
+       Remove redundant declarations.
+       * window.h (Qleft, Qright): Likewise.
+
+2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not mark objects from deleted buffers, windows and frames.
+       * alloc.c (mark_buffer): Mark just the buffer if it is dead.
+       (mark_object): Likewise for windows and frames.
+
+2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (valid_lisp_object_p): Treat killed buffers,
+       buffer_defaults and buffer_local_symbols as valid objects.
+       Return special value to denote them.
+
+2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
+       * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
+       (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
+       (file_name_absolute_p, Fsubstitute_in_file_name):
+       (check_executable, check_writable, Ffile_accessible_directory_p)
+       (Fset_file_selinux_context, Fdefault_file_modes)
+       (Finsert_file_contents, choose_write_coding_system)
+       (Fwrite_region, build_annotations, a_write, e_write)
+       (Fdo_auto_save):
+       * filelock.c (boot_time_initialized, get_boot_time)
+       (get_boot_time_1, lock_file_1, within_one_second):
+       * floatfns.c (in_float):
+       * fns.c (concat, internal_equal, Frequire, base64_encode_1)
+       (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
+       (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
+       * lisp.h (struct Lisp_Hash_Table.cmpfn):
+       * window.c (compare_window_configurations):
+       Use bool for booleans.
+       * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
+       (Fdefault_file_modes): Now mode_t, not int, for modes.
+       (Fdo_auto_save): Set a boolean to 1 rather than using ++.
+       (internal_delete_file): Now returns void, not a (boolean) int,
+       since nobody was looking at the return value.
+       * lisp.h, window.h: Adjust to above API changes.
+
+       * xdisp.c (set_message): Simplify and reindent last change.
+
+2012-09-05  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
+
+2012-09-04  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * eval.c (call_debugger): Make the function non-static so that we
+       can call it from set_message.
+
+       * xdisp.c (set_message): Implement the new variable `debug-on-message'.
+       (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
+
+2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Give more-useful info on a fatal error (Bug#12328).
+       * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
+       (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
+       of doing the work ourselves.
+       * emacs.c (fatal_error_signal): Let fatal_error_backtrace
+       do most of the work.
+       (fatal_error_backtrace): New function, taken from the guts
+       of the old fatal_error_signal, but with a new option to output
+       a backtrace.
+       (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
+       info about the signal than just its number.
+       * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
+       * sysdep.c: Include <execinfo.h>
+       (emacs_backtrace): New function, taken partly from the previous
+       code of the 'die' function.
+       (emacs_abort): Call fatal_error_backtrace rather than abort.
+
+2012-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
+       eager (load-time) macro-expansion.
+       * lisp.mk (lisp): Add macroexp.
+
+2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify redefinition of 'abort' (Bug#12316).
+       Do not try to redefine the 'abort' function.  Instead, redo
+       the code so that it calls 'emacs_abort' rather than 'abort'.
+       This removes the need for the NO_ABORT configure-time macro
+       and makes it easier to change the abort code to do a backtrace.
+       * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
+       * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
+       Remove; sysdep.c's emacs_abort now takes its place.
+       * lisp.h (emacs_abort): New decl.  All calls from Emacs code to
+       'abort' changed to use 'emacs_abort'.
+       * msdos.c (dos_abort) [defined abort]: Remove; not used.
+       (abort) [!defined abort]: Rename to ...
+       (emacs_abort): ... new name.
+       * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
+       the place of the old 'abort' in emacs.c.
+       * w32.c, w32fns.c (abort): Do not #undef.
+       * w32.c (emacs_abort): Rename from w32_abort.
+
+2012-09-04  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32uniscribe.c (uniscribe_shape): Reverse the sign of
+       offsets[j].dv, since the y axis of the screen coordinates points
+       down, while the y axis of the font definition coordinates points
+       up.  This fixes display of Arabic diacritics such as KASRA and
+       KASRATAN.  (Bug#11860)
+
+2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Be more systematic about _setjmp vs setjmp.
+       * alloc.c (test_setjmp, mark_stack):
+       * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
+       (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
+       (png_load, my_error_exit, jpeg_load):
+       * process.c (send_process_trap, send_process):
+       Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
+       The underscored versions are up to 30x faster on some hosts.
+       Formerly, the code used setjmp+longjmp sometimes and
+       _setjmp+_longjmp at other times, with no particular reason to
+       prefer setjmp+longjmp.
+
+2012-09-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix minor problem found by static checking.
+       * buffer.c (Fdelete_all_overlays): Return nil.
+
+2012-09-03  Martin Rudalics  <rudalics@gmx.at>
+
+       * buffer.c (Fdelete_all_overlays): New function.
+
+2012-09-03  Chong Yidong  <cyd@gnu.org>
+
+       * gtkutil.c: Add extern decl for Qxft.
+
+2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * emacs.c, eval.c: Use bool for boolean.
+       * emacs.c (initialized, inhibit_window_system, running_asynch_code):
+       (malloc_using_checking) [DOUG_LEA_MALLOC]:
+       (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
+       (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
+       (main, decode_env_path, Fdaemon_initialized):
+       * eval.c (call_debugger, Finteractive_p, interactive_p):
+       (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
+       (maybe_call_debugger, Fbacktrace):
+       * process.c (read_process_output, exec_sentinel):
+       Use bool for booleans.
+       * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
+       All callers changed.
+       * eval.c (interactive_p): Omit always-true boolean argument
+       EXCLUDE_SUBRS_P.  All callers changed.
+       * dispextern.h, lisp.h: Reflect above API changes.
+       * firstfile.c (dummy): Use the address of 'main', whose signature
+       won't change, instead of the address of 'initialize', whose
+       signature just changed from int to bool.
+       * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
+       * msdos.c (fatal_error_in_progress): ... from here.
+       * xdisp.c (redisplaying_p): Now a boolean.  Set it to 1 instead
+       of incrementing it.
+       (redisplay_internal, unwind_redisplay): Simply clear
+       REDISPLAYING_P when unwinding, instead of saving its previous,
+       always-false value and then restoring it.
+
+       Clean up some extern decls.
+       Mostly, this hoists extern decls out of .c files and into .h files.
+       That way, we're more likely to catch errors if the interfaces change.
+       * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
+       declare xg_mark_data.
+       * dispextern.h (x_frame_parm_handlers):
+       * font.h (Qxft):
+       * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
+       (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
+       (Qultra_bold, Qoblique, Qitalic):
+       Move extern decl here from .c file.
+       * alloc.c (xg_mark_data) [USE_GTK]:
+       * doc.c (Qclosure):
+       * eval.c (Qlexical_binding):
+       * fns.c (time) [!HAVE_UNISTD_H]:
+       * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
+       (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
+       * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
+       * lread.c (Qinternal_interpreter_environment):
+       * minibuf.c (Qbuffer):
+       * process.c (QCfamily, QCfilter):
+       * widget.c (free_frame_faces):
+       * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
+       * xfont.c (x_clear_errors):
+       * xterm.c (x_frame_parm_handlers):
+       Remove now-redundant extern decls.
+       * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
+       * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
+       Now static.
+       * xfaces.c: Remove unnecessary static decls.
+       * xterm.c (updating_frame): Remove decl of nonexistent object.
+
+       * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
+       when building globals.h, as the objects that are not built on
+       this host are not needed to compile C files on this host.
+
+2012-09-02  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.h: Remove prototype for x_wm_set_size_hint.
+
+       * frame.h: Add missing prototype for x_wm_set_size_hint.
+
+2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
+       * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
+       (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
+       (Fsubstitute_command_keys):
+       * editfns.c (region_limit, find_field, Fconstrain_to_field)
+       (save_excursion_save, save_excursion_restore)
+       (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
+       (format_time_string, general_insert_function)
+       (make_buffer_string, make_buffer_string_both)
+       (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
+       * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
+       (copy_text, insert_1, insert_1_both, insert_from_string)
+       (insert_from_string_before_markers, insert_from_string_1)
+       (insert_from_buffer, insert_from_buffer_1, replace_range)
+       (replace_range_2, del_range_1, del_range_byte, del_range_both)
+       (del_range_2, modify_region):
+       * intervals.c (intervals_equal, balance_possible_root_interval)
+       (adjust_intervals_for_insertion, merge_properties_sticky)
+       (graft_intervals_into_buffer, lookup_char_property)
+       (adjust_for_invis_intang, set_point_both)
+       (get_property_and_range, compare_string_intervals)
+       (set_intervals_multibyte_1, set_intervals_multibyte):
+       * keyboard.c (decode_timer):
+       Use bool for boolean.
+       * intervals.h, lisp.h, systime.h: Reflect above API changes.
+       * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
+
+2012-09-02  Chong Yidong  <cyd@gnu.org>
+
+       * keymap.c (push_key_description): Print M-TAB as C-M-i
+       (Bug#11758).
+
+2012-09-02  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (CCL_H, W32FONT_H): New macros.
+       (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
+       ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
+       ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
+       ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
+       ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
+       ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
+
+2012-09-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
+       more than one grapheme cluster passed to the shaper: compute the
+       offset adjustment values separately for each cluster.  (Bug#11860)
+
+       * image.c: Restore mistakenly removed inclusion of w32.h.  Without
+       it, GCC doesn't see prototypes of w32_delayed_load, and complains
+       about implicit conversions from integer to pointer.
+
+2012-09-01  Daniel Colascione  <dancol@dancol.org>
+
+       * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
+       system used too early.
+
+2012-09-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Better seed support for (random).
+       * emacs.c (main): Call init_random.
+       * fns.c (Frandom): Set the seed from a string argument, if given.
+       Remove long-obsolete Gentzel cruft.
+       * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
+       (init_random): New function.
+
+2012-09-01  Daniel Colascione  <dancol@dancol.org>
+
+       * xterm.h: Add header guards.  Declare x_menubar_window_to_frame.
+       Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
+       x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
+       x_wm_set_size_hint, x_query_colors, x_real_positions,
+       x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
+       x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
+       all of which have been moved to common code.
+
+       * xfaces.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
+       to match header.
+
+       * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
+       directly accessing frame internals.
+
+       * w32font.h: Include font.h.  Define syms_of_w32font and
+       globals_of_w32font.
+
+       * process.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * nsterm.h: Remove declarations now in frame.h.  Define
+       FRAME_X_SCREEN, FRAME_X_VISUAL.
+
+       * menu.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
+       window system.
+
+       * keyboard.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * image.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.  Declare Vlibrary_cache when compiling for
+       Windows.
+
+       * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
+       window system declarations.
+
+       * frame.h: Move common functions here: set_frame_menubar,
+       x_set_window_size, x_sync, x_get_focus_frame,
+       x_set_mouse_position, x_set_mouse_pixel_position,
+       x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
+       x_char_width, x_char_height, x_pixel_width, x_pixel_height,
+       x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
+       x_activate_menubar, x_real_positions, x_bitmap_icon,
+       x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
+       and x_query_colors.
+
+       * frame.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * font.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * emacs.c: Include TERM_HEADER.
+
+       * dispnew.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * ccl.h: Include character.h.
+
+       * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
+       the current window system; include in list of objects to link into
+       Emacs.
+
+2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove mark_ttys function and fix tty_display_info initialization.
+       * lisp.h (mark_ttys): Remove prototype.
+       * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
+       to mark_ttys because all possible values of 'top_frame' slot are
+       the frames which are reachable from Vframe_list.
+       * term.c (mark_ttys): Remove.
+       (init_tty): Safely initialize 'top_frame' slot with Qnil.
+
+2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Change struct frame bitfields from unsigned char to unsigned.
+       * frame.h (struct frame): Change type of 'display_preempted',
+       'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
+       'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
+       'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
+       bitfields from unsigned char to unsigned.
+
+2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove unused member of struct x_output and struct w32_output.
+       * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
+       * w32term.h (struct w32_output): Likewise.
+
+2012-08-30  Jan Djärv  <jan.h.d@swipnet.se>
 
        * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
-       does not become zero (Bug#12234).  Backport from trunk.
+       does not become zero (Bug#12234).
+
+2012-08-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
+       for GCC 4.7.1 x86-64.
+
+2012-08-30  Glenn Morris  <rgm@gnu.org>
+
+       * lread.c (init_lread): For out-of-tree builds, only add the
+       source directory's site-lisp dir to the load-path if it exists,
+       consistent with in-tree builds.  (Bug#12302)
+
+2012-08-28  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
+       button_values to NULL.  Call setStykeMask so dialogs get a close button.
+       (windowShouldClose:): Set window_closed.
+       (dealloc): New member, free button_values.
+       (process_dialog:): Make member function.  Remove window argument,
+       replace window with self.  Count buttons and allocate and store values
+       in button_values.
+       (addButton:value:row:): value is int with the name tag.  Call setTag
+       with tag.  Remove return self, declare return value as void.
+       (addString:row:): Remove return self, declare return value as void.
+       (addSplit): Remove return self, declare return value as void.
+       (clicked:): Remove return self, declare return value as void.
+       Set dialog_return to button_values[seltag].  Code formatting change.
+       (initFromContents:isQuestion:): Adjust call to process_dialog.
+       Code formatting change.
+       (timeout_handler:): Set timer_fired to YES.
+       (runDialogAt:): Set timer_fired to NO.
+       Handle click on close button as quit.
+
+       * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
+       Add window_closed and button_values.  Add void as return value for
+       add(Button|String|Split).  addButton takes int instead of Lisp_Object.
+       Add process_dialog as new member.
+
+2012-08-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
+       is not one of the heaps we manage.  (Bug#12242)
+
+2012-08-28  Glenn Morris  <rgm@gnu.org>
+
+       * eval.c (Fcalled_interactively_p): Doc fix.  (Bug#11747)
+
+2012-08-28  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fset_window_configuration): Remove handling of
+       auto-buffer-name window parameter.  Install revision of reverted
+       fix.
+
+2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not allow to set major mode for a dead buffer.
+       * buffer.c (Fset_buffer_major_mode): Signal an error
+       if the buffer is dead.
+       (Fother_buffer, other_buffer_safely): Remove redundant
+       nested declaration.
+
+2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Always use set_buffer_if_live to restore original buffer at unwind.
+       * buffer.h (record_unwind_current_buffer): New function.
+       * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
+       * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
+       * undo.c, window.c: Adjust users.
+       * buffer.c (set_buffer_if_live): Fix comment.
+
+2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix usage of set_buffer_internal.
+       * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
+       * buffer.c (set_buffer_if_live): Use set_buffer_internal.
+       * coding.c (decode_coding): Omit redundant test.
+       * fileio.c (decide_coding_unwind): Likewise.
+       * fns.c (secure_hash): Likewise.
+       * insdel.c (modify_region): Likewise.
+       * keyboard.c (command_loop_1): Likewise.
+       * print.c (PRINTFINISH): Likewise.
+       * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
+
+2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dispnew.c: Use bool for boolean.
+       (frame_garbaged, display_completed, delayed_size_change)
+       (fonts_changed_p, add_window_display_history)
+       (add_frame_display_history, verify_row_hash)
+       (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
+       (row_equal_p, realloc_glyph_pool)
+       (allocate_matrices_for_frame_redisplay)
+       (showing_window_margins_p)
+       (adjust_frame_glyphs_for_frame_redisplay)
+       (build_frame_matrix_from_leaf_window, make_current)
+       (mirrored_line_dance, mirror_line_dance, update_frame)
+       (update_window_tree, update_single_window)
+       (check_current_matrix_flags, update_window, update_text_area)
+       (update_window_line, set_window_update_flags, scrolling_window)
+       (update_frame_1, scrolling, buffer_posn_from_coords)
+       (do_pending_window_change, change_frame_size)
+       (change_frame_size_1, sit_for):
+       Use bool for boolean.
+       (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
+       and remove last int (actually boolean) argument, which was always 0.
+       All callers changed.
+       * dispextern.h, frame.h, lisp.h: Reflect above API changes.
+       * dispextern.h (struct composition_it): Use bool for boolean.
+       (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
+       (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
+       * dired.c (file_name_completion):
+       Use bool for boolean.  (This was missed in an earlier change.)
+
+2012-08-27  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fset_window_configuration): Revert first part of
+       last change.
+
+2012-08-27  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.h (NSPanel): New class variable dialog_return.
+
+       * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
+       dialog_return.
+       (windowShouldClose:): Use stop instead of stopModalWithCode.
+       (clicked:): Ditto, and also set dialog_return (Bug#12258).
+       (timeout_handler:): Use stop instead of abortModal.  Send a dummy
+       event.
+       (runDialogAt:): Make ret Lisp_Object.  Set it from dialog_return when
+       modal loop returns.
+
+2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
+       * composite.c (find_composition, composition_gstring_p)
+       (composition_reseat_it, find_automatic_composition):
+       * data.c (let_shadows_buffer_binding_p)
+       (let_shadows_global_binding_p, set_internal, make_blv)
+       (Fmake_variable_buffer_local, Fmake_local_variable)
+       (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
+       (cons_to_signed, arith_driver):
+       * dbusbind.c (xd_in_read_queued_messages):
+       * dired.c (directory_files_internal, file_name_completion):
+       Use bool for booleans.
+       * dired.c (file_name_completion):
+       * process.h (fd_callback):
+       Omit int (actually boolean) argument.  It wasn't being used.
+       All uses changed.
+       * composite.h, lisp.h: Reflect above API changes.
+
+       * cmds.c, coding.c: Use bool for booleans.
+       * cmds.c (move_point, Fself_insert_command):
+       * coding.h (struct composition status, struct coding_system):
+       * coding.c (detect_coding_utf_8, encode_coding_utf_8)
+       (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
+       (emacs_mule_char, decode_coding_emacs_mule)
+       (encode_coding_emacs_mule, detect_coding_iso_2022)
+       (decode_coding_iso_2022, encode_invocation_designation)
+       (encode_designation_at_bol, encode_coding_iso_2022)
+       (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
+       (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
+       (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
+       (encode_coding_raw_text, detect_coding_charset)
+       (decode_coding_charset, encode_coding_charset, detect_eol)
+       (detect_coding, get_translation_table, produce_chars)
+       (consume_chars, reused_workbuf_in_use)
+       (make_conversion_work_buffer, code_conversion_save)
+       (decode_coding_object, encode_coding_object)
+       (detect_coding_system, char_encodable_p)
+       (Funencodable_char_position, code_convert_region)
+       (code_convert_string, code_convert_string_norecord)
+       (Fset_coding_system_priority):
+       * fileio.c (Finsert_file_contents):
+       Use bool for booleans.
+       * coding.h, lisp.h: Reflect above API changes.
+       * coding.c: Remove unnecessary static function decls.
+       (detect_coding): Use unsigned, not signed, to copy an unsigned field.
+       (decode_coding, encode_coding, decode_coding_gap): Return 'void',
+       not a boolean 'int', since callers never look at the return value.
+       (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
+       * coding.h (decoding_buffer_size, encoding_buffer_size)
+       (emacs_mule_string_char): Remove unused extern decls.
+       (struct iso_2022_spec, struct coding_system):
+       Use 'unsigned int : 1' for boolean fields, since there's more than one.
+       (struct emacs_mule_spec): Remove unused field 'full_support'.
+       All initializations removed.
+       * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
+
+2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix spare memory change (Bug#12286).
+       * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
+       (valid_lisp_object_p): Likewise.
+
+2012-08-27  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fset_window_configuration): Record any window's old
+       buffer if it's replaced (see Bug#8789).  If the new current
+       buffer doesn't appear in the selected window, go to its old
+       point (Bug#12208).
+
+2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Special MEM_TYPE_SPARE to denote reserved memory.
+       * alloc.c (enum mem_type): New memory type.
+       (refill_memory_reserve): Use new type for spare memory.
+       This prevents live_cons_p and live_string_p from incorrect
+       detection of uninitialized objects from spare memory as live.
+
+2012-08-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fixes.
+       * Makefile.in (.PHONY): versioclean -> versionclean.
+
+       Remove unused external symbols.
+       * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
+       * window.c (Qwindow_valid_p, decode_valid_window):
+       Now static, not extern.
+       * data.c (Qinterval): Remove; unused.
+       (syms_of_data): Do not define 'interval'.
+       * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
+       * window.h (decode_valid_window):
+       Remove decls.
+
+       * character.c, charset.c, chartab.c: Use bool for booleans.
+       * character.c (lisp_string_width, string_count_byte8)
+       (string_escape_byte8):
+       * charset.c (charset_map_loaded, load_charset_map, read_hex):
+       (load_charset_map_from_file, map_charset_chars)
+       (Fdefine_charset_internal, define_charset_internal)
+       (Fdeclare_equiv_charset, find_charsets_in_text)
+       (Ffind_charset_region, char_charset, Fiso_charset):
+       * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
+       (sub_char_table_set, sub_char_table_set_range)
+       (char_table_set_range, optimize_sub_char_table)
+       (map_sub_char_table):
+       Use bool for boolean.
+       * character.c (str_to_unibyte): Omit last boolean argument; it was
+       always 0.  All callers changed.
+       * character.h, charset.h: Adjust to match previous changes.
+       * character.h (char_printable_p): Remove decl of nonexistent function.
+       * charset.h (struct charset): Members code_linear_p, iso_chars_96,
+       ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
+       are all boolean, so make them single-bit bitfields.
+
+       * lisp.h (ASET): Remove attempt to detect side effects.
+       It was meant to be temporary and it often doesn't work,
+       because when IDX has side effects the behavior of IDX==IDX
+       is undefined.  See Stefan Monnier in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
+
+2012-08-26  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)
+
+       * lisp.h (functionp): New function (extracted from Ffunctionp).
+       (FUNCTIONP): Use it.
+       * eval.c (Ffunctionp): Use it.
+
+2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
+       as that's faster and simpler than static storage.  Don't bother
+       with the g_main_context_query overhead if g_main_context_pending
+       says no events are pending.
+       (gfds, gfds_size): Remove these static vars.
+       (xgselect_initialize): Remove; no longer needed.
+       All uses and decls removed.
+
+       * emacs.c (fatal_error_signal_hook): Remove.
+       All uses removed.  This leftover from old code was always 0.
+
+       * casefiddle.c, casetab.c, category.c: Use bool for boolean.
+       * casefiddle.c (casify_object, casify_region):
+       * casetab.c (set_case_table):
+       * category.c, category.h (word_boundary_p):
+       * category.h (CHAR_HAS_CATEGORY):
+       Use bool for booleans, instead of int.
+
+2012-08-25  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
+
+2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       On assertion failure, print backtrace if available.
+       * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
+       (die) [ENABLE_CHECKING]: Print a backtrace if available.
+       * Makefile.in (LIB_EXECINFO): New macro.
+       (LIBES): Use it.
+
+       * bytecode.c, callint.c, callproc.c: Use bool for boolean.
+       * bytecode.c (exec_byte_code):
+       * callint.c (check_mark, Fcall_interactively):
+       * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
+       (getenv_internal, sync_process_alive, call_process_exited):
+       * lisp.h (USE_SAFE_ALLOCA):
+       Use bool for booleans, instead of int.
+       * lisp.h, process.h: Adjust prototypes to match above changes.
+       * callint.c (Fcall_interactively): Don't assume the mark's
+       offset fits in 'int'.
+
+2012-08-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * buffer.c, buffer.h: Use bool for boolean.
+       * buffer.c (reset_buffer_local_variables)
+       (buffer_lisp_local_variables, Fset_buffer_modified_p)
+       (Frestore_buffer_modified_p, Fset_buffer_multibyte):
+       (overlays_at, overlays_in, mouse_face_overlay_overlaps)
+       (overlay_touches_p, overlay_strings, Foverlay_put)
+       (report_overlay_modification, call_overlay_mod_hooks):
+       (mmap_enlarge, mmap_set_vars):
+       * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
+       Use bool for booleans, instead of int.
+       * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
+       since the 1-or-0 return value is always ignored anyway.
+       (mmap_initialized_p):
+       * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
+       * buffer.h, lisp.h: Adjust prototypes to match above changes.
+
+2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bidi.c: Use bool for boolean.
+       This is a bit more readable, and makes the text segment of bidi.o
+       0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
+       Presumably it's faster too.
+       (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
+       Now bool.
+       (bidi_cache_find_level_change, bidi_cache_iterator_state)
+       (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
+       (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
+       (bidi_explicit_dir_char, bidi_level_of_next_char)
+       (bidi_find_other_level_edge, bidi_move_to_visually_next):
+       Use bool for booleans, instead of int.
+       * dispextern.h (bidi_init_it, bidi_paragraph_init)
+       (bidi_unshelve_cache): Adjust decls to match code.
+
+2012-08-23  Martin Rudalics  <rudalics@gmx.at>
+
+       * keyboard.c (Fposn_at_x_y): Do not allow internal window as
+       argument.
+
+2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
+       * atimer.h: Include <stdbool.h>.
+
+2012-08-22  Dan Nicolaescu  <dann@gnu.org>
+
+       * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
+       compile time tests instead of run time tests on systems that do
+       not use them.
+       (FRAME_MAC_P): Remove leftover from deleted code.
+       * frame.c (syms_of_frame): Remove leftover from deleted code.
+
+2012-08-22  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (insertText:): Don't clear modifiers if code is space.
+
+2012-08-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
+       Otherwise, the compiler complains about (A?B:C) where B is void
+       and C is Lisp_Object.  This fixes an incompatibility with Sun C 5.12.
+       (fontset_add): Return void, for FONTSET_ADD.
+
+2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c: Use bool for booleans.
+       (gc_in_progress, abort_on_gc)
+       (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
+       (dont_register_blocks) [GC_MALLOC_CHECK]:
+       (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
+       (check_string_bytes, make_specified_string, memory_full)
+       (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_stack, valid_pointer_p, make_pure_string)
+       (Fgarbage_collect, survives_gc_p, gc_sweep):
+       Use bool for booleans, instead of int.
+       (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
+       Remove unused local.
+       * alloc.c (PURE_POINTER_P):
+       * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
+       * editfns.c (Fformat):
+       * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
+       (Fdo_auto_save):
+       * fns.c (sweep_weak_table):
+       * lisp.h (suppress_checking, push_message, survives_gc_p)
+       (make_pure_string, gc_in_progress, abort_on_gc):
+       * lread.c (readchar, read1):
+       * print.c (Fprin1_to_string):
+       * xdisp.c (push_message):
+       Use bool for booleans affected directly or indirectly by
+       alloc.c's changes.
+
+       Make recently-introduced setters macros.
+       * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
+       (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
+       (set_fontset_default, set_fontset_fallback): Rename from their
+       upper-case counterparts, and make them functions rather than macros.
+       This is more consistent with the other recently-introduced setters.
+       These don't need to be inline, since they're local.
+
+2012-08-21  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
+       the loop (Bug#12247).
+
+2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (vcopy): Use memcpy rather than our own loop.
+       This fixes a performance regression introduced by the recent
+       addition of vcopy.  This means 'vcopy' will need to be modified
+       for a copying collector, but that's OK.  Also, tighten the
+       checking in the assertion.
+
+2012-08-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32uniscribe.c (uniscribe_shape): Fix producing gstring
+       components for RTL text (Bug#11860).  Adjust X-OFFSET of each
+       non-base glyph for the width of the base character, according to
+       what x_draw_composite_glyph_string_foreground expects.
+       Generate WADJUST value according to composition_gstring_width's
+       expectations, to produce correct width of the composed character.
+       Reverse the sign of the DU offset produced by ScriptPlace.
+
+2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
+
+2012-08-21  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid direct writes to contents member of struct Lisp_Vector.
+       * lisp.h (vcopy): New function to copy data into vector.
+       * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
+       * fns.c (Ffillarray): Use ASET.
+       * keyboard.c (timer_check_2): Use AREF and ASET.
+       (append_tool_bar_item, Frecent_keys): Use vcopy.
+       * lread.c (read_vector): Use ASET.
+       * msdos.c (Frecent_doskeys): Use vcopy.
+       * xface.c (Finternal_copy_lisp_face): Use vcopy.
+       (Finternal_merge_in_global_face): Use ASET and vcopy.
+       * xfont.c (xfont_list_pattern): Likewise.
+
+2012-08-21  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fwindow_point): For the selected window always return
+       the position of its buffer's point.
+       (Fset_window_point): For the selected window always go in its
+       buffer to the specified position.
+
+2012-08-21  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Setter macros for fontsets.
+       * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
+       (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
+       (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
+       Adjust users.
+
+2012-08-20  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
+       Don't assume that `ln -f' works.
+
+2012-08-20  Eli Zaretskii  <eliz@gnu.org>
+
+       * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
+       and later about non-assignments with no effect.  See discussion at
+       http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
+       details.
+
+2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Inline setter functions for Lisp_Objects slots of struct specbinding.
+       * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
+       Adjust users.
+
+2012-08-20  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (select_window): Always make selected window's buffer
+       current.
+
+2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use AREF and ASET for docstrings of category tables.
+       * category.h (CATEGORY_DOCSTRING): Use AREF.
+       (SET_CATEGORY_DOCSTRING): Use ASET.
+       * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
+
+2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Inline setter functions for hash table members.
+       * lisp.h (set_hash_key, set_hash_value, set_hash_next)
+       (set_hash_hash, set_hash_index): Rename with _slot suffix.
+       (set_hash_key_and_value, set_hash_index, set_hash_next)
+       (set_hash_hash): New functions.
+       * charset.c, fns.c: Adjust users.
+
+2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Inline getter and setter functions for per-buffer values.
+       * buffer.h (per_buffer_default, set_per_buffer_default)
+       (per_buffer_value, set_per_buffer_value): New functions.
+       (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
+       * buffer.c, data.c: Adjust users.
+
+2012-08-20  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
+
+2012-08-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Rely on <config.h> + <unistd.h> to declare 'environ',
+       as gnulib does this if the system doesn't.
+       * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
+       Remove declaration.  MS-Windows declares it on stdlib.h which is
+       included by conf_post.h.
+       * emacs.c (environ) [DOUG_LEA_MALLOC]:
+       * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
+       * vm-limit.c: Include <unistd.h>, for 'environ'.
+
+       * unexaix.c, unexcoff.c: Include "mem-limits.h".
+       (start_of_data): Remove decl; mem-limits.h provides it.
+
+       * xdisp.c (handle_invisible_prop): Make it a bit faster
+       and avoid a gcc -Wmaybe-uninitialized diagnostic.
+
+2012-08-19  Chong Yidong  <cyd@gnu.org>
+
+       * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
+       ends (Bug#3874).
+
+2012-08-19  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * .gdbinit: Use call instead of set when calling a function in the
+       inferior.
+
+       * data.c (set_internal): Don't use set_blv_found.
+       (Fkill_local_variable): Likewise.
+
+2012-08-18  Alp Aker  <alp.tekin.aker@gmail.com>
+
+       * nsfont.m (ns_ascii_average_width): Ensure the string
+       ascii_printable is initialized with a null-terminated character
+       array.  Otherwise, it can contain undesired extra characters.
+
+2012-08-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       port new setting code to Sun C 5.8 2005/10/13
+       * chartab.c, lisp.h (char_table_set, char_table_set_range):
+       Return void, not Lisp_Object.  Otherwise, the compiler
+       complains about (A?B:C) where B is void and C is Lisp_Object
+       when compiling CHAR_TABLE_SET, due to the recent change to
+       the API of sub_char_table_set_contents.
+
+2012-08-18  Chong Yidong  <cyd@gnu.org>
+
+       * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
+       for the string case (Bug#3874).
+
+2012-08-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * buffer.h (BSET): Remove (Bug#12215).
+       Replace all uses with calls to new setter functions.
+       (bset_bidi_paragraph_direction, bset_case_canon_table)
+       (bset_case_eqv_table, bset_directory, bset_display_count)
+       (bset_display_time, bset_downcase_table)
+       (bset_enable_multibyte_characters, bset_filename, bset_keymap)
+       (bset_last_selected_window, bset_local_var_alist)
+       (bset_mark_active, bset_point_before_scroll, bset_read_only)
+       (bset_truncate_lines, bset_undo_list, bset_upcase_table)
+       (bset_width_table):
+       * 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):
+       * category.c (bset_category_table):
+       * syntax.c (bset_syntax_table):
+       New setter functions.
+
+       * process.h (PSET): Remove (Bug#12215).
+       Replace all uses with calls to new setter functions.
+       Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+       (PROCESS_INLINE): New macro.
+       (pset_childp): New setter function.
+       (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
+       * process.c (PROCESS_INLINE):
+       Define to EXTERN_INLINE, so that the corresponding functions
+       are compiled into code.
+       (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): New setter functions.
+
+       * window.h (WSET): Remove (Bug#12215).
+       Replace all uses with calls to new setter functions.
+       Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+       (WINDOW_INLINE): New macro.
+       (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
+       (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
+       (wset_total_lines, wset_vertical_scroll_bar)
+       (wset_window_end_pos, wset_window_end_valid)
+       (wset_window_end_vpos): New setter functions.
+       * window.c (WINDOW_INLINE):
+       Define to EXTERN_INLINE, so that the corresponding functions
+       are compiled into code.
+       (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_next_buffers)
+       (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
+       (wset_prev_buffers, 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):
+       New setter functions.
+
+       * termhooks.h (TSET): Remove (Bug#12215).
+       Replace all uses with calls to new setter functions.
+       Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+       (TERMHOOKS_INLINE): New macro.
+       (tset_charset_list, tset_selection_alist): New setter functions.
+       * terminal.c (TERMHOOKS_INLINE):
+       Define to EXTERN_INLINE, so that the corresponding functions
+       are compiled into code.
+       (tset_param_alist): New setter function.
+
+2012-08-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * keyboard.h (KSET): Remove (Bug#12215).
+       Replace all uses with calls to new setter functions.
+       Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+       (KEYBOARD_INLINE): New macro.
+       (kset_default_minibuffer_frame, kset_defining_kbd_macro)
+       (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
+       (kset_prefix_arg, kset_system_key_alist, kset_window_system):
+       New setter functions.
+       * keyboard.c (KEYBOARD_INLINE):
+       Define to EXTERN_INLINE, so that the corresponding functions
+       are compiled into code.
+       (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): New setter functions.
+
+       * frame.h (FSET): Remove (Bug#12215).
+       Replace all uses with calls to new setter functions.
+       Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+       (FRAME_INLINE): New macro.
+       (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
+       (fset_current_tool_bar_string, fset_desired_tool_bar_string)
+       (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
+       (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
+       (fset_param_alist, fset_root_window, fset_scroll_bars)
+       (fset_selected_window, fset_title, fset_tool_bar_items)
+       (fset_tool_bar_position, fset_tool_bar_window): New functions.
+       * frame.c (FRAME_INLINE):
+       Define to EXTERN_INLINE, so that the corresponding functions
+       are compiled into code.
+       (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
+
+       A few more naming-convention fixes for getters and setters.
+       * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
+       and rename from buffer_overlays_set_before.
+       (set_buffer_overlays_after): Move here from buffer.h, and rename
+       from buffer_overlays_set_after.
+       * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
+       All uses changed.
+       (set_buffer_intervals): Rename from buffer_set_intervals.
+       * intervals.c (set_interval_object): Move here from intervals.h,
+       and rename from interval_set_object.
+       (set_interval_left): Move here from intervals.h, and rename from
+       interval_set_left.
+       (set_interval_right): Move here from intervals.h, and rename from
+       interval_set_right.
+       (copy_interval_parent): Move here from intervals.h, and rename from
+       interval_copy_parent.
+       * intervals.h (set_interval_parent): Rename from interval_set_parent.
+       (set_interval_plist): Rename from interval_set_plist.
+       Return void, not Lisp_Object, since no caller uses the result.
+       * lisp.h (string_intervals): Rename from string_get_intervals.
+       (set_string_intervals): Rename from string_set_intervals.
+
+       * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
+       (set_char_table_contents): Rename from char_table_set_contents.
+       (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
+       All uses changed.  See the end of
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
+
+       * lisp.h (CSET): Remove (Bug#12215).
+       (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
+       (set_char_table_purpose): New functions,
+       replacing CSET.  All uses changed.  For example, replace
+       "CSET (XCHAR_TABLE (char_table), parent, parent);" with
+       "set_char_table_parent (char_table, parent);".
+       The old version was confusing because it used the same name
+       'parent' for two different things.
+
+2012-08-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Functions to get and set Lisp_Object fields of buffer-local variables.
+       * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
+       (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
+       (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
+       * data.c, eval.c, frame.c: Adjust users.
+
+2012-08-17  Chong Yidong  <cyd@gnu.org>
+
+       * xfaces.c (merge_face_vectors): If the target font specfies a
+       font spec, make the font's attributes take precedence over
+       directly-specified attributes.
+       (merge_face_ref): Recognize :font.
+
+2012-08-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not use memcpy for copying intervals.
+       * intervals.c (reproduce_interval): New function.
+       (reproduce_tree, reproduce_tree_obj): Use it.
+       (reproduce_tree_obj): Remove prototype.
+
+2012-08-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (duration_to_sec_usec): Remove unused decl.
+
+2012-08-17  Alp Aker  <alp.tekin.aker@gmail.com>
+
+       * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
+       to an allocated instance of NSString, not to the class itself.
+
+2012-08-17  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (C_CTYPE_H): New macro.
+       (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
+       ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
+       ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
+
+2012-08-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use ASCII tests for character types.
+       * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
+       * xfns.c, xterm.c:
+       Don't include <ctype.h>; was not needed.
+       * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
+       * sysdep.c, xfaces.c:
+       Include <c-ctype.h> instead of <ctype.h>.
+       * nsterm.m: Include <c-ctype.h>.
+       * charset.c (read_hex):
+       * doc.c (Fsnarf_documentation):
+       * fileio.c (IS_DRIVE) [WINDOWSNT]:
+       (DRIVE_LETTER) [DOS_NT]:
+       (Ffile_name_directory, Fexpand_file_name)
+       (Fsubstitute_in_file_name):
+       * font.c (font_parse_xlfd, font_parse_fcname):
+       * frame.c (x_set_font_backend):
+       * gtkutil.c (xg_get_font):
+       * image.c (xbm_scan, xpm_scan, pbm_scan_number):
+       * nsimage.m (hexchar):
+       * nsterm.m (ns_xlfd_to_fontname):
+       * sysdep.c (system_process_attributes):
+       * xfaces.c (hash_string_case_insensitive):
+       Use C-locale tests instead of locale-specific tests for character
+       types, since we want the ASCII interpretation here, not the
+       interpretation suitable for whatever happens to be the current locale.
+
+2012-08-16  Martin Rudalics  <rudalics@gmx.at>
+
+       Consistently check windows for validity/liveness
+       (Bug#11984, Bug#12025, Bug#12026).
+       * lisp.h (CHECK_VALID_WINDOW): New macro.
+       * window.c (decode_window): Rename to decode_live_window.
+       (decode_valid_window, Fwindow_valid_p): New functions.
+       (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
+       (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
+       (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
+       (Fwindow_prev_sibling, Fwindow_combination_limit)
+       (Fset_window_combination_limit, Fwindow_use_time)
+       (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
+       (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
+       (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
+       (Fwindow_hscroll, Fset_window_hscroll)
+       (Fwindow_redisplay_end_trigger)
+       (Fset_window_redisplay_end_trigger, Fwindow_edges)
+       (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
+       (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
+       (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
+       (Fwindow_end, Fset_window_point, Fset_window_start)
+       (Fpos_visible_in_window_p, Fwindow_line_height)
+       (Fwindow_dedicated_p, Fset_window_dedicated_p)
+       (Fwindow_prev_buffers, Fset_window_prev_buffers)
+       (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
+       (Fset_window_parameter, Fwindow_display_table)
+       (Fset_window_display_table, Fdelete_other_windows_internal)
+       (Fset_window_buffer, Fset_window_new_total)
+       (Fset_window_new_normal, Fdelete_window_internal)
+       (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
+       (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
+       (Fwindow_scroll_bars): Check whether argument window is a valid or
+       live window.  Update doc-strings.
+       (syms_of_window): New symbol Qwindow_valid_p.
+       * keyboard.c (Fposn_at_x_y): Check whether argument
+       frame_or_window denotes a valid window.
+
+2012-08-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix previous char table change.
+       * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
+       * chartab.c (optimize_sub_char_table): Likewise.
+
+2012-08-16  Chong Yidong  <cyd@gnu.org>
+
+       * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
+
+       * xfont.c (xfont_open):
+       * xftfont.c (xftfont_open): Set the font's max_width field.
+
+       * nsfont.m (nsfont_open): Similar to the Xft backend, set
+       min_width to space_width and average_width to the average over
+       printable ASCII characters.
+       (ns_char_width): Code cleanup.
+       (ns_ascii_average_width): New utility function.
+
+       * font.h (struct font): Update comments.
+
+2012-08-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simple interface to set Lisp_Object fields of character tables.
+       * lisp.h (CSET): New macro.
+       (char_table_set_extras, char_table_set_contents)
+       (sub_char_table_set_contents): New function.
+       * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
+       * syntax.c: Adjust users.
+
+2012-08-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (eval_sub): Bind lexical-binding.
+       * lread.c (Qlexical_binding): Make non-static.
+
+2012-08-15  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (popupSession): Remove.
+       (pop_down_menu): Remove endModalSession.
+       (timeout_handler:): New method.
+       (runDialogAt:): Get next timeout.  Start a NSTimer with that timeout.
+       Call runModalForWindow.  Check timer_fired when it returns.
+       If not set, cancel timer and break out of loop.
+       Otherwise loop again, with a new timeout.
+
+       * nsterm.m: Include fcntl.h if present.
+       (fd_entry, t_readfds, inNsSelect): Remove.
+       (select_writefds, select_valid, select_timeout, selfds)
+       (select_mutex, apploopnr): Add.
+       (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
+       Otherwise call kbd_buffer_store_event.
+       (ns_send_appdefined): Remove release of fd_entry.
+       (ns_read_socket): Always send appdefined.  Remove inNsSelect check.
+       Increment and decrement apploopnr.
+       (ns_select): If no file descriptors, just do a NSTimer.
+       Otherwise copy read/write masks and start select thread (fd_handler).
+       Start main loop and wait for application defined event.
+       Inform select thread to stop selecting after main loop is exited.
+       (ns_term_init): Create selfds pipe and set non-blocking.
+       Initialize select_mutex.  Start the select thread (fd_handler).
+       (fd_handler:): Loop forever, wait for info from the main thread
+       to either start or stop selecting.  When select returns, send
+       and appdefined event.
+       (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
+       If not call kbd_buffer_store_event.
+
+       * nsterm.h (EmacsApp): fd_handler takes id argument.
+       (EmacsDialogPanel): Add timer_fired and timeout_handler.
+
+       * gtkutil.c (xg_mark_data): Use FRAME_X_P.
+
+2012-08-15  Eli Zaretskii  <eliz@gnu.org>
+
+       * region-cache.c (move_cache_gap): Update gap_len using the actual
+       growth of the boundaries array.  Do not change cache_len.
+       (Bug#12196)
+
+2012-08-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Generalize and cleanup font subsystem checks.
+       * font.h (FONT_DEBUG, font_assert): Remove.
+       * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
+       Change font_assert to eassert.  Use eassert where appropriate.
+
+2012-08-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * gtkutil.c (xg_get_font): Use pango_units_to_double.
+
+2012-08-15  Chong Yidong  <cyd@gnu.org>
+
+       * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
+       When using the new font chooser, use gtk_font_chooser_get_font_desc to
+       extract the font descriptor instead of just the font name.
+       In that case, return a font spec instead of a string.
+       (x_last_font_name): Move to this file from xfns.c.
+
+       * xfns.c (Fx_select_font): The return value can also be a font
+       spec.  Move x_last_font_name management to gtkutil.c.
+
+       * xfaces.c: Make font weight and style symbols non-static.
+
+2012-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
+       (bug#12117).
+
+2012-08-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (Fgarbage_collect): Use plural form consistently.
+
+2012-08-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
+       iteration through the command loop.  Fixes a problem whereby mouse
+       movements are ignored until the first mouse click.
+
+2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use bool, not int, for Lisp booleans.
+       This is more natural, and on my platform (GCC 4.7.1 x86-64) it
+       makes Emacs a bit smaller and presumably a bit faster.
+       * lisp.h: Include <stdbool.h>.
+       (struct Lisp_Boolfwd, defvar_bool):
+       * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
+       * regex.c [!emacs]: Include <stdbool.h>.
+       (false, true): Remove; <stdbool.h> does this for us now.
+
+2012-08-14  Chong Yidong  <cyd@gnu.org>
+
+       * character.c (Fcharacterp): Doc fix (Bug#12076).
+
+       * data.c (Findirect_variable): Doc fix (Bug#11040).
+
+       * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
+
+       * editfns.c (Fformat): Doc fix (Bug#12059).
+       (Fsave_current_buffer): Doc fix (Bug#11542).
+
+2012-08-14  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)
+
+       * keyboard.c (access_keymap_keyremap): Accept anonymous functions
+       (bug#12022).
+
+2012-08-14  Martin Rudalics  <rudalics@gmx.at>
+
+       * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
+       (delete_frame, Fmake_frame_invisible, Ficonify_frame):
+       * minibuf.c (choose_minibuf_frame, read_minibuf):
+       * w32fns.c (x_create_tip_frame):
+       * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
+       Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
+
+2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * intervals.c (offset_intervals): Remove obsolete comment.
+
+2012-08-14  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
+
+2012-08-14  Gergely Risko  <gergely@risko.hu>
+
+       * coding.c (decode_coding): Record buffer modification before
+       disabling undo_list (Bug#11773).
+
+2012-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Revert and cleanup some recent overlay changes.
+       * buffer.h (enum overlay_type): Remove.
+       (buffer_get_overlays, buffer_set_overlays): Likewise.
+       (buffer_set_overlays_before, buffer_set_overlays_after):
+       New function.  Adjust users.
+       (unchain_both): Add eassert.
+
+2012-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
+
+2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * gtkutil.c (xg_mark_data): Don't assume C99.
+
+2012-08-13  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (xg_frame_tb_info): New struct.
+       (TB_INFO_KEY): New define.
+       (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
+       (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
+       (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
+       if not present.
+       (update_frame_tool_bar): Return early if data in xg_frame_tb_info
+       is up to date.  Otherwise store new data.
+       (free_frame_tool_bar): Free xg_frame_tb_info if present.
+
+2012-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use KSET for write access to Lisp_Object members of struct kboard.
+       * keyboard.h (KSET): New macro.
+       * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
+       * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
+       * xterm.c: Adjust users.
+
+2012-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use BSET for write access to Lisp_Object members of struct buffer.
+       * buffer.h (BSET): New macro.
+       * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
+       * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
+       * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
+       * window.c, xdisp.c, xfns.c: Adjust users.
+
+2012-08-11  BT Templeton  <bpt@hcoop.net>  (tiny change)
+
+       * lread.c (syms_of_lread): Initialize Vlexical_binding.
+
+2012-08-11  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (not_in_argv): New function.
+       (application:openFile, application:openTempFile:):
+       (application:openFileWithoutUI:, application:openFiles:): Open file
+       if not_in_argv returns non-zero (bug#12171).
+
+       * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
+       (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
+       Define for Gtk+ versions less than 3.2.
+       (xg_get_font_name): Use those functions/macros here.
+       Reported by Frans Oilinki <moilinki@gmail.com>.
+
+2012-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * unexmacosx.c (copy_data_segment): Copy initialized data in
+       statically linked libraries from input file rather than memory.
+
+       * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
+       LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
+       (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
+
+2012-08-10  Glenn Morris  <rgm@gnu.org>
+
+       * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
+       * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
+
+2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix last change to allow compilation with low optimization levels.
+       * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
+       Reported by Jan Djärv <jan.h.d@swipnet.se>.
+
+2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use common inline syntax in intervals.h.
+       * intervals.h (INTERVALS_INLINE): New macro.
+       Change all users from LISP_INLINE.
+
+2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Define Qnone once for all platforms.
+       * frame.c (Qnone): Define here.
+       (syms_of_frame): DEFSYM it.
+       * lisp.h (Qnone): New declaration.
+       * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
+       * xfns.c: Remove duplication.  Adjust users.
+
+2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove unused macros from intervals.h.
+       * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
+       * intervals.c: Adjust comment.
+
+2012-08-10  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c <w32_unicode_gui>: New static variable.
+       (globals_of_w32fns): Initialize it according to os_subtype.
+       (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
+       testing os_subtype.
+
+2012-08-10  Joakim Hårsman  <joakim.harsman@gmail.com>  (tiny change)
+           Eli Zaretskii  <eliz@gnu.org>
+
+       Fix bug #10299 with Unicode characters sent by customized
+       keyboards created by MSKLC.
+       * w32fns.c (INIT_WINDOW_CLASS): New macro.
+       (w32_init_class): Use it to initialize the Emacs class with either
+       ANSI or Unicode API calls.
+       (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
+       later.
+       (w32_wnd_proc): If the character code sent by WM_CHAR or
+       WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
+       original message.  Call DefWindowProcW on NT and later.
+
+2012-08-10  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
+
+       * lisp.h (DIRECTORY_SEP): Let configure set it.
+
+2012-08-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use TSET for write access to Lisp_Object slots of struct terminal.
+       * termhooks.h (TSET): New macro.
+       * coding.c, terminal.c, xselect.c: Adjust users.
+
+2012-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xdisp.c (safe_eval_handler): Remove prototype.  Receive args describing
+       the failing expression, include them in the error message.
+       * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
+       * lisp.h (internal_condition_case_n): Update declaration.
+
+2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Inline functions to examine and change buffer overlays.
+       * buffer.c (unchain_both): New function.
+       * buffer.h (buffer_get_overlays, buffer_set_overlays):
+       (buffer_has_overlays): New function.
+       (enum overlay_type): New enum.
+       * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
+       * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
+
+2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Inline functions to examine and change buffer intervals.
+       * alloc.c (mark_interval_tree): Remove.
+       (MARK_INTERVAL_TREE): Simplify.
+       (UNMARK_BALANCE_INTERVALS): Remove.  Adjust users.
+       * intervals.c (buffer_balance_intervals): New function.
+       (graft_intervals_into_buffer): Adjust indentation.
+       (set_intervals_multibyte): Simplify.
+       * buffer.h (BUF_INTERVALS): Remove.
+       (buffer_get_intervals, buffer_set_intervals): New function.
+       * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
+       * intervals.c, textprop.c: Adjust users.
+
+2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Inline functions to examine and change string intervals.
+       * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
+       (string_get_intervals, string_set_intervals): New function.
+       * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
+       * lread.c, print.c, textprop.c: Adjust users.
+
+2012-08-08  Glenn Morris  <rgm@gnu.org>
+
+       * lisp.mk (lisp): Remove language/persian.elc.
+
+2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup intervals.
+       * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
+       (NULL_INTERVAL_P): Likewise.  Adjust users.
+       (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
+       Adjust comment.  Move under #if 0.
+       * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
+       * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
+
+2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Check total length of intervals with eassert.
+       * intervals.h (CHECK_TOTAL_LENGTH): Remove.
+       * intervals.c: Change all users to eassert.
+
+2012-08-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
+       Rename fields to match removal of FGET and WGET and disuse of
+       INTERNAL_FIELD in Lisp_Cons.
+
+2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
+       * lisp.h (struct Lisp_Symbol): Change xname to meaningful
+       name since all xname users are fixed long time ago.  Do not
+       use INTERNAL_FIELD.
+       (set_symbol_name, set_symbol_function, set_symbol_plist):
+       (set_symbol_next, set_overlay_plist): New function.
+       (struct Lisp_Cons): Do not use INTERNAL_FIELD.
+       (struct Lisp_Overlay): Likewise.
+       (CVAR, MVAR, SVAR): Remove.
+       * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
+       * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
+       * xterm.c: Adjust users.
+       * .gdbinit: Change to use name field of struct Lisp_Symbol
+       where appropriate.
+
+2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Basic functions to set Lisp_Object and pointer slots of intervals.
+       * intervals.h (interval_set_parent, interval_set_object):
+       (interval_set_left, interval_set_right, interval_set_plist):
+       (interval_copy_parent): New function.
+       (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
+       (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
+       Adjust indentation.
+       (INTERVAL_SIZE): Remove.  Adjust users.
+       * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
+
+2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
+       * process.h (PGET): Remove.
+       (struct Lisp_Process): Do not use INTERNAL_FIELD.
+       * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
+
+2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Drop WGET and revert read access to Lisp_Objects slots of struct window.
+       * window.h (WGET): Remove.
+       (struct window): Do not use INTERNAL_FIELD.
+       * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
+       * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
+       * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
+       * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
+       * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
+       Adjust users.
+
+2012-08-07  Chong Yidong  <cyd@gnu.org>
+
+       * window.c (Fwindow_edges, Fwindow_pixel_edges)
+       (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
+       (Fdelete_window_internal): Signal an error if the window is not on
+       a live frame (Bug#12025).
+
+2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Drop FGET and revert read access to Lisp_Objects slots of struct frame.
+       * frame.h (FGET): Remove.
+       (struct frame): Do not use INTERNAL_FIELD.
+       * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
+       * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
+       * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
+       * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
+
+2012-08-06  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32.c: Silence compiler warnings.
+       (map_w32_filename): Remove unused variable `is_fat'.
+       (chase_symlinks): Add parentheses around expression.
+
+2012-08-06  Glenn Morris  <rgm@gnu.org>
+
+       * sysdep.c: Respect BROKEN_GETWD.
+
+       * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
+       Let configure handle it.
+       (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
+
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use GCALIGNMENT where appropriate.
+       * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
+       (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
+       (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
+
+2012-08-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32menu.c (set_frame_menubar, initialize_frame_menubar):
+       Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
+
+2012-08-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * buffer.h (struct buffer): Revert `indirections' to a simple int;
+       that should be sufficient for everyone.
+
+2012-08-06  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * keyboard.c (timer_check_2): Add break so timer_check returns next
+       timeout.
+
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix Windows build errors introduced after converting to WGET and WSET.
+       * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
+       Reported by Andy Moreton <andrewjmoreton@gmail.com>.
+
+2012-08-06  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_frame_rehighlight): Use FSET.
+
+       * nsmenu.m (ns_update_menubar): Use FSET.
+
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Separate read and write access to Lisp_Object slots of Lisp_Process.
+       * process.h (PGET, PSET): New macros similar to AREF and ASET.
+       * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
+
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Separate read and write access to Lisp_Object slots of struct window.
+       * window.h (WGET, WSET): New macros similar to AREF and ASET.
+       * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
+       * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
+       * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
+       * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
+       * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
+       Adjust users.
+
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix Windows build errors introduced after converting to FGET and FSET.
+       * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
+       (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
+       (w32_judge_scroll_bars): Change to use FSET.
+       Reported by Andy Moreton <andrewjmoreton@gmail.com>.
+
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix replacement typo.
+       * window.c (replace_window): Set root_window instead of
+       selected_window.  This fixes a total window subsystem
+       malfunction reported by Bastien Guerry <bzg@gnu.org>.
+
+2012-08-06  Glenn Morris  <rgm@gnu.org>
+
+       * lisp.mk (lisp): Add language/persian.elc.
+
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Separate read and write access to Lisp_Object slots of struct frame.
+       * frame.h (FGET, FSET): New macros similar to AREF and ASET.
+       * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
+       * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
+       * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
+       * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
+
+2012-08-05  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
+
+2012-08-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Generalize common compile-time constants.
+       * lisp.h (header_size, bool_header_size, word_size): Now here.
+       (struct Lisp_Vector): Add comment.
+       (struct Lisp_Bool_Vector): Move up to define handy constants.
+       (VECSIZE, PSEUDOVECSIZE): Simplify.
+       (SAFE_ALLOCA_LISP): Use new constant.  Adjust indentation.
+       * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
+       * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
+       * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
+       * xfont.c, xmenu.c: Use word_size where appropriate.
+
+2012-08-05  Lawrence Mitchell  <wence@gmx.li>
+
+       * search.c (Freplace_match): Treat \? in the replacement text
+       literally (Bug#8161).
+
+2012-08-05  Chong Yidong  <cyd@gnu.org>
+
+       * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
+       * frame.c (Vdelete_frame_functions):
+       * emacs.c (Vkill_emacs_hook): Doc fix.
+
+2012-08-04  Eli Zaretskii  <eliz@gnu.org>
+
+       * xfns.c (x_set_menu_bar_lines): Fix compilation error in
+       --with-x-toolkit=no builds.
+       Reported by Carsten Mattner <carstenmattner@gmail.com>.
+
+2012-08-04  Chong Yidong  <cyd@gnu.org>
+
+       * syntax.c (Fmodify_syntax_entry): Doc fix.
+
+2012-08-04  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix startup warnings about ../site-lisp on MS-Windows.  (Bug#11959)
+       * w32.c (init_environment): Change the default values of many
+       environment variables in dflt_envvars[] to NULL, to avoid pushing
+       them into environment when they were not already defined.
+       Remove the code that deletes site-lisp subdirectories from the default
+       value of EMACSLOADPATH, as it is no longer needed.
+       (check_windows_init_file): Now external, not static.
+       Use Vload_path as is, without adding anything, as this function is now
+       called when Vload_path is already set up.
+
+       * w32.h (check_windows_init_file): Add prototype.
+
+       * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
+       directory, ignore the /*/i386/ tail in Vinvocation_directory, for
+       compatibility with Posix platforms.
+       (main): Move the call to check_windows_init_file to here from
+       w32.c.
+       (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
+       any, in the DEFALT argument into the root of the Emacs build or
+       installation tree, as appropriate.
+
+       * callproc.c (init_callproc_1): Call decode_env_path instead of
+       doing its equivalent by hand.
+       (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
+       the code that sets Vexec_path run on MS-Windows.
+
+       * lread.c (init_lread): Add comments to #ifdef's.
+
+       * msdos.c (dos_set_window_size, IT_update_begin)
+       (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
+       instead of direct references.
+
+2012-08-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Export DEFAULT_REHASH_* to GDB.
+       * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
+       Now constants, not macros.
+
+2012-08-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove unnecessary casts involving pointers.
+       These casts are no longer needed now that we assume C89 or later,
+       since they involve casting to or from void *.
+       * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
+       (make_pure_float, make_pure_vector):
+       * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
+       * macros.c (Fstart_kbd_macro):
+       * menu.c (find_and_return_menu_selection):
+       * minibuf.c (read_minibuf_noninteractive):
+       * sysdep.c (closedir):
+       * xdisp.c (x_produce_glyphs):
+       * xfaces.c (compare_fonts_by_sort_order):
+       * xfns.c (x_real_positions, select_visual):
+       * xselect.c (x_stop_queuing_selection_requests)
+       (x_get_window_property, x_get_window_property_as_lisp_data):
+       * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
+       Remove unnecessary pointer casts.
+       * alloc.c (record_xmalloc): New function.
+       * lisp.h (record_xmalloc): New decl.
+       (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
+       more like a function.  This is because the pointer cast is not
+       needed.  All uses changed.
+       * print.c (print_string, print_error_message): Avoid length recalc.
+
+       Improve fix for macroexp crash with debugging (Bug#12118).
+       * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
+       ARRAY_MARK_FLAG when checking subscripts, because ASET is
+       not supposed to be invoked from the garbage collector.
+       See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
+       (gc_aset): New function, which is like ASET but can be
+       used in the garbage collector.
+       (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
+       (set_hash_index): Use it instead of ASET.
+
+2012-08-03  Eli Zaretskii  <eliz@gnu.org>
+
+       Support symlinks on latest versions of MS-Windows.
+       * w32.c: Include winioctl.h and aclapi.h.
+       (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
+       (revert_to_self): Forward declarations of static functions.
+       <static BOOL g_b_init_get_security_info>:
+       <g_b_init_create_symbolic_link>: New static flags.
+       (globals_of_w32): Initialize them to zero.
+       (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
+       (map_w32_filename): Improve commentary.  Simplify switch.
+       (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
+       headers (most versions of MinGW w32api don't).
+       (get_security_info, create_symbolic_link)
+       (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
+       New functions.
+       (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
+       in the argument file name.
+       (sys_access): Call unc_volume_file_attributes only if
+       GetFileAttributes fails with network-related error codes.
+       (sys_rename): Diagnose renaming of a symlink when the user doesn't
+       have the required privileges.
+       (get_file_security_desc_by_name): Rename from
+       get_file_security_desc.
+       (stat_worker): New function, with most of the guts of 'stat', and
+       with addition of handling of symlinks and support for 'lstat'.
+       If possible, get file's attributes and security information by
+       handle, not by name.  Produce S_IFLNK bit for symlinks, when
+       called from 'lstat'.
+       (stat, lstat): New functions, call 'stat_worker'.
+       (symlink, readlink, careadlinkat): Rewritten to create and resolve
+       symlinks when the underlying filesystem supports them.
+
+2012-08-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix macroexp crash on Windows with debugging (Bug#12118).
+       * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
+       checking subscripts; problem introduced with the recent
+       "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
+       (ARRAY_MARK_FLAG): Now a macro as well as a constant,
+       since it's used in non-static inline functions now.
+
+       * xfaces.c (face_at_buffer_position, face_for_overlay_string):
+       Don't assume buffer size fits in 'int'.  Remove unused local.
+
+       Use C99-style 'extern inline' if available.
+       * buffer.h (BUFFER_INLINE):
+       * category.h (CATEGORY_INLINE):
+       * character.h (CHARACTER_INLINE):
+       * charset.h (CHARSET_INLINE):
+       * composite.h (COMPOSITE_INLINE):
+       * dispextern.h (DISPEXTERN_INLINE):
+       * lisp.h (LISP_INLINE):
+       * systime.h (SYSTIME_INLINE):
+       New macro, replacing 'static inline' in this header.
+       * buffer.h, category.h, character.h, charset.h, composite.h:
+       * dispextern.h, lisp.h, systime.h:
+       Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
+       * alloc.c (LISP_INLINE):
+       * buffer.c (BUFFER_INLINE):
+       * category.c (CATEGORY_INLINE):
+       * character.c (CHARACTER_INLINE):
+       * charset.c (CHARSET_INLINE):
+       * composite.c (COMPOSITE_INLINE):
+       * dispnew.c (DISPEXTERN_INLINE):
+       * sysdep.c (SYSTIME_INLINE):
+       Define to EXTERN_INLINE, so that the corresponding functions
+       are compiled into code.
+       * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
+       (INLINE_HEADER_END): New macros.
+       * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
+       since it's used in non-static inline functions now.
+       (VALMASK) [!USE_LSB_TAG]: Likewise.
+
+2012-08-02  Glenn Morris  <rgm@gnu.org>
+
+       * s/: Remove empty directory.
+
+       * s/ms-w32.h: Move to ../nt/inc.
+       * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
+       Update for new ms-w32.h location.
+
+2012-08-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to Solaris 8.
+       * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
+
+2012-08-02  Glenn Morris  <rgm@gnu.org>
+
+       * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
+       hard-coding the path separator.
+
+2012-08-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
+       This how ASET and AREF are supposed to work, and makes
+       it easier to think about future improvements.  See
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
+       * charset.h (set_charset_attr): New function.
+       All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
+       * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
+       (aref_addr): New function.  All uses of &AREF(...) changed.
+       (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
+       (set_hash_index): New functions.  All lvalue-style uses of
+       HASH_KEY etc. changed.
+       * keyboard.c (set_prop): New function.  All lvalue-style uses
+       of PROP changed.
+
+2012-08-01  Alp Aker  <alp.tekin.aker@gmail.com>
+
+       * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
+       (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
+       (EmacsScroller-dealloc):  Adjust to use WVAR.  (Bug#12114)
+       * nsfns.m (ns_set_name_as_filename): Likewise.
+       * nsmenu.m (ns_update_menubar): Likewise.
+       * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
+
+2012-08-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
+       Adapt to latest changes in field names of the corresponding Lisp
+       objects.
+
+       * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
+
+2012-08-01  Glenn Morris  <rgm@gnu.org>
+
+       * s/msdos.h: Remove file.
+       * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
+       * Makefile.in (S_FILE): Remove.
+       (config_h): Remove S_FILE.
+
+2012-08-01  Juanma Barranquero  <lekktu@gmail.com>
+
+       * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
+       Remove; moved to nt/config.nt.
+
+2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use INTERNAL_FIELD for conses and overlays.
+       * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
+       Remove obsolete comment.
+       (MVAR): New macro.
+       (struct Lisp_Overlay): Use INTERNAL_FIELD.
+       * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
+
+2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use INTERNAL_FIELD for symbols.
+       * lisp.h (SVAR): New macro.  Adjust users.
+       * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
+       * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
+
+2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use INTERNAL_FIELD for processes.
+       * process.h (PVAR): New macro.  Adjust style.
+       (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
+       * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
+
+2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use INTERNAL_FIELD for windows.
+       * window.h (WVAR): New macro.
+       (struct window): Change Lisp_Object members to INTERNAL_FIELD.
+       * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
+       * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
+       * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
+       * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
+       * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
+
+2012-08-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
+
+2012-08-01  Glenn Morris  <rgm@gnu.org>
+
+       * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
+       Move to configure.ac.
+
+2012-08-01  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (CONFIG_H): Update dependencies.
+       (CONF_POST_H): New macro.
+
+       * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
+
+2012-07-31  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (S_FILE): No longer set by configure.
+
+       * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
+       is available.
+       (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
+
+       * process.h (NULL_DEVICE):
+       * emacs.c (SEPCHAR):
+       * editfns.c (USER_FULL_NAME): Let configure set them.
+
+       * s/README, s/template.h: Remove files.
+
+       * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
+
+       * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
+       Move to configure.ac.
+
+2012-07-31  Eli Zaretskii  <eliz@gnu.org>
+
+       * .gdbinit (xframe): Adapt to introduction of FVAR and the
+       resulting renaming of 'struct frame' members.
+
+       * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
+
+       * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
+       after introduction of FVAR.
+
+2012-07-31  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
+
+       * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
+       instead of compositeToPoint.
+       (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
+
+       * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
+
+2012-07-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Generalize INTERNAL_FIELD between buffers, keyboards and frames.
+       * lisp.h (INTERNAL_FIELD): New macro.
+       * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
+       (BVAR): Change to use INTERNAL_FIELD.
+       * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
+       (KVAR): Change to use INTERNAL_FIELD.
+       * frame.h (FVAR): New macro.
+       (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
+       * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
+       * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
+       * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
+       * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
+
+2012-07-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Miscellaneous fixes for non-default X toolkits.
+       * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
+       * xterm.c (x_frame_of_widget): Remove redundant prototype.
+       Move under #ifdef USE_LUCID.
+       (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
+       definition and usage to avoid warnings.
+
+2012-07-31  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (openFiles): Fix previous checkin.
+
+2012-07-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * indent.c (compute_motion): Remove unused local.
+
+2012-07-31  Glenn Morris  <rgm@gnu.org>
+
+       * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
+
+       * conf_post.h [USG5_4]:
+       Move remaining contents of s/usg5-4-common.h here.
+       * s/usg5-4-common.h: Remove file.
+
+       * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
+       * s/irix6-5.h: Remove file.
+
+       * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
+       * s/darwin.h: Remove file.
+
+       * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
+       * s/hpux10-20.h: Remove file, which is now empty.
+
+2012-07-30  Glenn Morris  <rgm@gnu.org>
+
+       * conf_post.h: New, split from configure.ac's AH_BOTTOM.
+       * Makefile.in (config_h): Add conf_post.h.
+       * makefile.w32-in (CONFIG_H): Add conf_post.h.
+
+2012-07-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_do_open_file): New variable.
+       (ns_term_init): Set ns_do_open_file to YES after run returns.
+       (openFile, openTempFile, openFileWithoutUI, openFiles):
+       Open files only if ns_do_open_file.
+
+2012-07-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (SWITCH_ENUM_CAST): Remove.  All uses removed.
+       This no-op macro hasn't been needed for many years.
+       * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
+
+       Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
+       * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
+       * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
+       gdb_make_enums_visible.
+       (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
+       (DIRECTORY_SEP): Now a constant, not a macro.
+
+2012-07-30  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
+       w32_kbd_patch_key as the 2nd arg.  (Bug#12082)
+
+       * w32term.c <w32_keyboard_codepage>: Renamed from
+       keyboard_codepage and now external.  All users changed.
+
+       * w32term.h: Add declaration of w32_keyboard_codepage.
+
+       * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
+       the codepage to translate keys to Unicode.  If this argument is
+       -1, use the value returned by GetConsoleCP.  All callers changed.
+
+2012-07-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Update .PHONY listings in makefiles.
+       * Makefile.in (.PHONY): Add all, mostlyclean, clean,
+       bootstrap-clean, distclean, maintainer-clean, versioclean,
+       extraclean, frc.
+
+       * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
+       This is a bit clearer.  Fix some commentary typos.
+
+2012-07-30  Glenn Morris  <rgm@gnu.org>
+
+       * s/netbsd.h: Let configure include signal.h if needed.
+       Remove file, which is now empty.
+
+       * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
+       Let configure set them.
+       * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
+       No more need to undefine.
+
+2012-07-30  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * keymap.c (Fkey_description): Don't remove 0x80 bit from
+       non-single-byte char when adding meta modifier.  (Bug#12090)
+
+2012-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Convert safe_call to use variable number of arguments.
+       * xdisp.c (safe_call): Convert to use varargs.  Adjust users.
+       (safe_call2): Fix comment.
+       * lisp.h (safe_call): Adjust prototype.
+       * coding.c (encode_coding_object): Change to use safe_call2.
+       * xfaces.c (merge_face_heights): Change to use safe_call1.
+
+2012-07-30  Glenn Morris  <rgm@gnu.org>
+
+       * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
+       does that unconditionally.  Remove file, which is now empty.
+
+       * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
+       Remove empty files.
+
+2012-07-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Export to GDB most of lisp.h's remaining object-like macros.
+       * lisp.h (min, max): Move earlier, because they're used earlier now.
+       (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
+       (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
+       (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
+       (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
+       (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
+       (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
+       (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
+       (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
+       Now constants, for GDB.  They need not be macros.
+       (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
+       Now constants, for GDB, as well as macros, for static initializers.
+       (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
+       Move to after the definition of struct Lisp_Char_Table,
+       since the former now needs that type defined.
+       (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
+       (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
+       (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
+       New enums, for gdb_make_enums_visible.
+       (GLYPH_MODE_LINE_FACE): Remove; unused.
+       * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
+       (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
+       CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
+       enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
+       enum maxargs, enum MAX_ALLOCA.
+       (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
+       (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
+       no longer needed, now that they are done in lisp.h.
+
+2012-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup string bytes checking.
+       * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove.  Convert
+       all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
+       (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
+       (check_sblock, compact_small_strings): Simplify.
+
+2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
+       These macros are confusing and no longer need to be defined, as
+       the enum values now suffice.  All uses replaced with definiens.
+       (Lisp_Int1, Lisp_String): Define directly; this is clearer.
+
+2012-07-29  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
+       ($(BLD)/w32console.$(O)): Update dependencies.
+
+2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
+       * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
+       time.  Adjust users.
+       (CHECK_CONS_LIST): Remove.  Convert all users to check_cons_list.
+
+2012-07-29  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
+       setting sitelisp (Bug#12010).
+
+2012-07-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
+
+       * w32heap.c (cache_system_info):
+       * w32.c (sys_rename):
+       * w32proc.c (find_child_console, sys_kill): All users changed.
+
+2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
+
+2012-07-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
+
+2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup statistics calculation in Fgarbage_collect.
+       * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
+       Fix zombies percentage calculation.  Simplify elapsed time calculation.
+
+2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Generalize marker debugging code under MARKER_DEBUG and use eassert.
+       * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
+       (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
+       (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
+       (replace_range, replace_range_2, del_range_2): Change to eassert.
+       * marker.c (byte_char_debug_check): Adjust style.
+
+2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Don't use the abbreviation "win" to refer to Windows (Bug#10421).
+       * regex.c (MAX_BUF_SIZE): Remove some incorrect and
+       long-ago-commented-out code that talks about "WIN32".
+       * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
+       All uses changed.
+
+2012-07-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use Gnulib stdalign module (Bug#9772, Bug#9960).
+       * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
+       Simplify by using alignof.
+       (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
+       * lisp.h: Include <stdalign.h>.
+       (GCALIGNMENT): New macro and constant.
+       (DECL_ALIGN): Remove.  All uses replaced by alignas (GCALIGNMENT).
+       (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
+       (stdalign): New macro, if not already defined.
+
+2012-07-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix non-ASCII input in non-GUI frames on MS-Windows.  (Bug#12055)
+       * w32inevt.c: Include w32inevt.h.
+       (w32_read_console_input): New inline function, calls either
+       ReadConsoleInputA or ReadConsoleInputW, depending on the value of
+       w32_console_unicode_input.
+       (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
+       (w32_kbd_patch_key, key_event): Use the codepage returned by
+       GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
+       (key_event): use uChar.UnicodeChar only if
+       w32_console_unicode_input is non-zero.
+
+       * w32console.c: Include w32heap.h.
+       <w32_console_unicode_input>: New global variable.
+       (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
+       family of Windows, zero otherwise.
+
+       * w32inevt.h: Declare w32_console_unicode_input.
+
+       * xdisp.c (init_iterator): Don't reference tip_frame in a build
+       --without-x.  (Bug#11742)
+
+2012-07-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Adjust GDB to reflect pvec_type changes (Bug#12036).
+       * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
+       2012-07-04 changes to pseudovector representation.
+       Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
+
+2012-07-27  Michael Albinus  <michael.albinus@gmx.de>
+
+       * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
+       bus address.
+       (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
+
+2012-07-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * alloc.c (listn): Fix the order the arguments are consed onto the
+       list.
+
+       * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
+       enumeration constants, as PURE and HEAP are too general, and clash
+       with other headers and sources, such as gmalloc.c and the
+       MS-Windows system headers.  All users changed.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Revert last save_excursion_save and save_excursion_restore changes.
+       * alloc.c, editfns.c, marker.c, lisp.h: Revert.
+       Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix recently-introduced typos in Windows port.
+       Reported by Martin Rudalics <rudalics@gmx.at>.
+       * w32.c (init_environment): Replace comma with semicolon.
+       * w32fns.c (syms_of_w32fns): Add missing parenthesis.
+
+2012-07-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Improve GDB symbol export (Bug#12036).
+       * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
+       arms of an 'if', not using conditional expressions; otherwise GDB
+       complains about the types in the unevaluated arm when the argument
+       is an integer literal.
+       (xgetint): Simplify expression.
+       * alloc.c (gdb_make_enums_visible): New constant.  This ports to
+       GCC 3.4.2 the export of symbols to GDB.  Problem reported by Eli
+       Zaretskii in <http://bugs.gnu.org/12036#13>.
+       * lisp.h (PUBLISH_TO_GDB): Remove.  All uses removed.  No longer
+       needed now that we have gdb_make_enums_visible.
+       (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
+       (enum enum_USE_LSB_TAG):
+       New enum types, packaging up enums that need to be exported to GDB.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Utility function to make a list from specified amount of objects.
+       * lisp.h (enum constype): New datatype.
+       (listn): New prototype.
+       * alloc.c (listn): New function.
+       (Fmemory_use_count, syms_of_alloc): Use it.
+       * buffer.c (syms_of_buffer): Likewise.
+       * callint.c (syms_of_callint): Likewise.
+       * charset.c (define_charset_internal): Likewise.
+       * coding.c (syms_of_coding): Likewise.
+       * keymap.c (syms_of_keymap): Likewise.
+       * search.c (syms_of_search): Likewise.
+       * syntax.c (syms_of_syntax): Likewise.
+       * w32.c (init_environment): Likewise.
+       * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
+       * xdisp.c (syms_of_xdisp): Likewise.
+       * xfns.c (syms_of_xfns): Likewise.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fast save_excursion_save and save_excursion_restore.
+       * lisp.h (struct Lisp_Excursion): New data type.
+       (PVEC_EXCURSION): New pseudovector type.
+       (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
+       to deal with it.  Adjust comments.
+       (init_marker, attach_marker): New prototype.
+       (unchain_marker): Adjust prototype.
+       * marker.c (attach_marker): Change to global.
+       (init_marker): New function.
+       * alloc.c (Fmake_marker, build_marker): Use it.
+       (build_marker): More easserts.
+       (mark_object): Handle struct Lisp_Excursion.
+       * editfns.c (save_excursion_save, save_excursion_restore):
+       Reimplement to use struct Lisp_Excursion.  Add comments.
+
+2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix export of symbols to GDB (Bug#12036).
+       * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
+       (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
+       emacs.c, as this is a more-suitable home.  Had this been done earlier
+       the fix for 12036 would have avoided some of the problems noted in
+       <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
+       would have been more obvious.
+       * emacs.c: Do not include <verify.h>; no longer needed.
+       (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
+       (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
+       Remove; now done in lisp.h.
+       * lisp.h (PUBLISH_TO_GDB): New macro.
+       (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
+       (DATA_SEG_BITS): Use it.
+       (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
+       * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
+       not be usable in #if.  This simplifies things.
+
+2012-07-26  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
+
+2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify export of symbols to GDB (Bug#12036).
+       * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
+       $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
+       (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
+       Adjust to changes in lisp.h and emacs.c, by using
+       CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
+       of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
+       INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
+       gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
+       instead of gdb_valbits.
+       (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
+       PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
+       instead of gdb_array_mark_flag.
+       (xboolvector): Get size from $->size, not $->header.size.
+       Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
+       (xreload, hook-run, hookpost-run): Remove.
+       * emacs.c: Include <verify.h>.
+       (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
+       (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
+       Remove.
+       (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
+       (gdb_USE_LSB_TAG): New enum constants.
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
+       Also define these as enum constants, so they're visible to GDB.
+       (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
+       (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
+       as constants, so they're visible to GDB.
+       * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
+       (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
+       Now enum constants, not macros, so they're visible to GDB.
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
+       more convenient now.  All uses changed.
+       (VALMASK) [USE_LSB_TAG]: Also define in this case.
+       * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
+
+2012-07-26  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Explicitly free restriction data that are not needed anymore.
+       * editfns.c (save_restriction_restore): Free restriction data.
+
+2012-07-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
+       add argument, tune behavior, and adjust all callers.
+
+2012-07-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use typedef for EMACS_INT, EMACS_UINT.
+       * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
+       than macros.  This simplifies debugging in the usual case, since
+       it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
+       and it allows expressions involving EMACS_INT casts.
+       * .gdbinit (xreload): Simplify by using EMACS_INT cast.
+
+2012-07-25  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_read_socket): Return early if there is a modal
+       window (Bug#12043).
+
+2012-07-25  Martin Rudalics  <rudalics@gmx.at>
+
+       * frame.c (Fredirect_frame_focus): In doc-string don't mention
+       that FOCUS-FRAME can be omitted.
+
+2012-07-25  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Adjust buffer text indirection counters at the end of Fkill_buffer.
+       * buffer.c (Fkill_buffer): Adjust indirection counters when the
+       buffer is definitely dead.  This should really fix an issue reported
+       by Christoph Scholtes again.  (Bug#12007).
+       (init_buffer_once): Initialize indirection counters of
+       buffer_defaults and buffer_local_symbols (for sanity and safety).
+
+2012-07-24  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (init_iterator): Don't compute dimensions of truncation
+       and continuation glyphs on tooltip frames, leave them at zero.
+       Avoids continued lines in tooltips.  (Bug#11832)
+
+2012-07-24  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simplify copy_overlay.
+       * buffer.c (copy_overlay): Simplify.  Use build_marker.
+       * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
+
+2012-07-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * print.c (print_object): Don't crash when a frame's name is nil
+       or invalid.  (Bug#12025)
+
+       * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
+       it signals an error when a tooltip frame is being created.
+
+2012-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup miscellaneous objects allocation and initialization.
+       * alloc.c (allocate_misc): Change to static.  Add argument to
+       specify the subtype.  Adjust comment and users.
+       (build_overlay): New function.
+       * buffer.c (copy_overlays, Fmake_overlay): Use it.
+       * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
+       (allocate_misc): Remove prototype.
+       (build_overlay): Add prototype.
+
+2012-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Swap buffer text indirection counters in Fbuffer_swap_text.
+       * buffer.c (Fbuffer_swap_text): Swap indirections too.
+       This avoids crash reported by Christoph Scholtes at
+       http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
+
+2012-07-22  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (Popdown_data): New struct.
+       (pop_down_menu): p->pointer is Popdown_data.  Release the pool and
+       free Popdown_data.
+       (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
+       (initWithContentRect): Make imgView and contentView non-static
+       and autorelease them.  Also autorelease img and matrix (Bug#12005).
+       (dealloc): Remove (Bug#12005).
+
+2012-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Adjust consing_since_gc when objects are explicitly freed.
+       * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
+       (Fgarbage_collect): Use it.  Change minimum to 1/10 of default.
+       (free_cons, free_misc): Subtract object size from consing_since_gc.
+
+2012-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simplify and cleanup markers positioning code.
+       * marker.c (attach_marker): More useful eassert.
+       (live_buffer, set_marker_internal): New function.
+       (Fset_marker, set_marker_restricted): Use set_marker_internal.
+       (set_marker_both, set_marker_restricted_both): Use live_buffer.
+
+2012-07-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
+       as it's limited by the amount of memory, not by INT_MAX.
+
+2012-07-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
+       in special-event-map.  See the discussion at
+       http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
+       for the reasons.
+
+       * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
+       info.dwItemData.  Fixes crashes on 64-bit Windows.
+       Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
+
+2012-07-21  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (accessibilityAttributeValue): New function.  (Bug#11134).
+       (conversationIdentifier): Return value is NSInteger.
+       * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
+
+2012-07-21  Chong Yidong  <cyd@gnu.org>
+
+       * window.c (decode_any_window): Signal an error if the window is
+       on a dead frame (Bug#11984).
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Add indirection counting to speed up Fkill_buffer.
+       * buffer.h (struct buffer): New member.
+       * buffer.c (Fget_buffer_create): Set indirection counter to 0.
+       (Fmake_indirect_buffer): Set indirection counter to -1, increment
+       base buffer indirection counter.
+       (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
+       (Fkill_buffer): Adjust indirection counters as needed, don't walk
+       through buffer list if indirection counter is 0.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Extend the value returned by Fgarbage_collect with heap statistics.
+       * alloc.c (Qheap): New symbol.
+       (syms_of_alloc): DEFSYM it.
+       (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
+       (Fmemory_free): Remove.
+       (syms_of_alloc): Don't defsubr it.
+       * buffer.c (Fcompact_buffer): Remove.
+       (syms_of_buffer): Don't defsubr it.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Make maybe_gc inline.
+       Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
+       * lisp.h (consing_since_gc, gc_relative_threshold)
+       (memory_full_cons_threshold): Revert declaration.
+       (maybe_gc): Remove prototype, define as inline.
+       * alloc.c: Remove old commented-out code.
+       (consing_since_gc, gc_relative_threshold)
+       (memory_full_cons_threshold): Revert to global.
+       (maybe_gc): Remove.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simple wrapper for make_unibyte_string, adjust font_open_by_name.
+       * lisp.h (build_unibyte_string): New function.
+       * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
+       * sysdep.c, w32fns.c, xfns.c: Use it.
+       * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
+       of type Lisp_Object to avoid redundant calls to make_unibyte_string.
+       Adjust users accordingly.
+       * font.h (font_open_by_name): Adjust prototype.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup calls to Fgarbage_collect.
+       * lisp.h (maybe_gc): New prototype.
+       (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
+       Remove declarations.
+       * alloc.c (maybe_gc): New function.
+       (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
+       Make them static.
+       * bytecode.c (MAYBE_GC): Use maybe_gc.
+       * eval.c (eval_sub, Ffuncall): Likewise.
+       * keyboard.c (read_char): Likewise.  Adjust call to maybe_gc
+       to avoid dependency from auto-save feature.
+
+2012-07-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
+       (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
+       'for_each_per_buffer_object_at'.
+       All uses changed.  It's better to use upper-case for macros that
+       cannot be implemented as functions, to give the reader a clue
+       that they're special.
+
+2012-07-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (Fgarbage_collect): Tweak docstring.
+
+2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Tweak the value returned from Fgarbage_collect again.
+       * alloc.c (Fgarbage_collect): New return value, as confirmed in
+       http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
+       Adjust documentation.
+       (total_vector_bytes): Rename to total_vector_slots, adjust
+       accounting.
+       (total_free_vector_bytes): Rename to total_free_vector_slots,
+       adjust accounting.
+       (Qstring_bytes, Qvector_slots): New symbols.
+       (syms_of_alloc): DEFSYM them.
+
+2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Buffer compaction primitive which may be used from Lisp.
+       * buffer.c (compact_buffer, Fcompact_buffer): New function.
+       (syms_of_buffer): Register Fcompact_buffer.
+       * alloc.c (Fgarbage_collect): Use compact_buffer.
+       * buffer.h (compact_buffer): New prototype.
+       (struct buffer_text): New member.
+
+2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       New macro to iterate over all buffers, miscellaneous cleanups.
+       * lisp.h (all_buffers): Remove declaration.
+       * buffer.h (all_buffers): Add declaration, with comment.
+       (for_each_buffer): New macro.
+       * alloc.c (Fgarbage_collect, mark_object): Use it.
+       * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
+       (init_buffer): Likewise.
+       * data.c (Fset_default): Likewise.
+       * coding.c (code_conversion_restore): Remove redundant check
+       for dead buffer.
+       * buffer.c (Fkill_buffer): Likewise.  Remove obsolete comment.
+
+2012-07-18  Andreas Schwab  <schwab@linux-m68k.org>
+
+       Fix bug that created negative-length intervals.
+       * intervals.c (merge_interval_right, merge_interval_left):
+       Do not zero out this interval if it is absorbed by its children,
+       as this interval's total length doesn't change in that case.  See
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
+
+2012-07-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
+       when invoking (make-bool-vector N t) and N is a positive
+       multiple of 8 -- the last 8 bits were mistakenly cleared.
+
+       Remove some struct layout assumptions in bool vectors.
+       * alloc.c (bool_header_size): New constant.
+       (header_size, word_size): Move earlier, as they're now used earlier.
+       Use 'word_size' in a few more places, where it's appropriate.
+       (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
+       padding before the data member of a bool vector.
+       (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
+       than doing the check by hand with an abort ().
+
+2012-07-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fdefvar): Don't check constants since we only set the var if
+       it's not yet defined anyway (bug#11904).
+
+       * lisp.h (last_undo_boundary): Declare new var.
+       * keyboard.c (command_loop_1): Set it.
+       * cmds.c (Fself_insert_command): Use it to only remove boundaries that
+       were auto-added by the command loop (bug#11774).
+
+2012-07-18  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * w32font.c (Qsymbol): Remove local definition.
+       (syms_of_w32font): Don't DEFSYM it.
+
+2012-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix sweep_vectors to handle large bool vectors correctly.
+       * alloc.c (sweep_vectors): Account total_vector_bytes for
+       bool vectors larger than VBLOCK_BYTES_MAX.
+
+2012-07-18  Chong Yidong  <cyd@gnu.org>
+
+       * frame.c (x_set_frame_parameters): Revert bogus change introduced
+       in 2012-05-25 commit by Paul Eggert (Bug#11738).
+
+2012-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Return more descriptive data from Fgarbage_collect.
+       Suggested by Stefan Monnier in
+       http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
+       * alloc.c (bounded_number): New function.
+       (total_buffers, total_vectors): New variable.
+       (total_string_size): Rename to total_string_bytes, adjust users.
+       (total_vector_size): Rename to total_vector_bytes, adjust users.
+       (sweep_vectors): Account total_vectors and total_vector_bytes.
+       (Fgarbage_collect): New return value.  Adjust documentation.
+       (gc_sweep): Account total_buffers.
+       (Fmemory_free, Fmemory_use_counts): Use bounded_number.
+       (VECTOR_SIZE): Remove.
+       * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
+       (Qinterval, Qmisc): New symbols.
+       (syms_of_data): Initialize them.
+       * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
+       (Qcons, Qbuffer): New declarations.
+
+2012-07-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (Fmemory_free): Account for memory-free's own storage.
+       Round up, not down.  Improve doc.
+
+2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Restore old code in allocate_string_data to avoid Faset breakage.
+       Reported by Julien Danjou <julien@danjou.info> in
+       http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
+       * alloc.c (allocate_string_data): Restore old code with minor
+       adjustments, fix comment to explain this subtle issue.
+
+2012-07-17  Eli Zaretskii  <eliz@gnu.org>
+
+       Remove FILE_SYSTEM_CASE.
+       * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
+
+       * fileio.c (FILE_SYSTEM_CASE): Don't define.
+       (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
+       Fixes problems on MS-DOS with Vtemp_file_name_pattern when
+       call-process-region passes it through expand-file-name.
+
+       * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
+
+2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
+
+       Fix crash when creating indirect buffer (Bug#11917)
+       * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
+       Don't handle unbound variables specially if non-zero.
+       (Fbuffer_local_variables): Pass zero.
+       (clone_per_buffer_values): Pass non-zero.
+
+2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gnutls.c (emacs_gnutls_handshake): Revert last change.  Add QUIT
+       to make the loop interruptible.
+
+2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gnutls.c (emacs_gnutls_handshake): Only retry if
+       GNUTLS_E_INTERRUPTED.
+
+2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup and convert miscellaneous checks to eassert.
+       * alloc.c (mark_interval): Fix comment, partially rephrase
+       old comment from intervals.h (see below).
+       * intervals.c (find_interval, adjust_intervals_for_insertion)
+       (delete_interval, adjust_intervals_for_deletion)
+       (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
+       Convert to eassert.
+       (adjust_intervals_for_insertion, make_new_interval):
+       Remove obsolete and unused code.
+       * intervals.h (struct interval): Remove obsolete comment.
+       * textprotp.c (erase_properties): Remove unused code.
+       (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
+       (Fremove_list_of_text_properties): Convert to eassert.
+
+2012-07-17  Chong Yidong  <cyd@gnu.org>
+
+       * editfns.c (Finsert_char): Doc fix.
+
+2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix previous change to make Fmemory_free always accurate.
+       * alloc.c (make_interval): Update total_free_intervals.
+       (make_float): Likewise for total_free_floats.
+       (free_cons, Fcons): Likewise for total_free_conses.
+       (SETUP_ON_FREE_LIST, allocate_vector_from_block):
+       Likewise for total_free_vector_bytes.
+       (Fmake_symbol): Likewise for total_free_symbols.
+       (bytes_free): Remove.
+
+2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simple free memory accounting feature.
+       * alloc.c (bytes_free, total_free_vector_bytes): New variable.
+       (sweep_vectors): Accumulate size of free vectors.
+       (Fgarbage_collect): Setup bytes_free.
+       (Fmemory_free): New function.
+       (syms_of_alloc): Register it.
+
+2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup overlays checking.
+       * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
+       * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
+       eassert and OVERLAYP.
+       (sort_overlays): Change to use OVERLAYP.
+
+2012-07-16  René Kyllingstad  <Rene@Kyllingstad.com>  (tiny change)
+
+       * editfns.c (Finsert_char): Make it interactive, and make the
+       second arg optional.  Copy interactive spec and docstring from
+       ucs-insert.
+
+2012-07-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
+       Unlike the other wrapped functions, fabs has an unspecified
+       effect on errno.
+
+2012-07-16  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (keyDown): Interpret flags without left/right bits
+       as the left key (Bug#11670).
+
+2012-07-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove empty and useless init functions.
+       * lisp.h (init_character_once, init_fns, init_image)
+       (init_filelock, init_sound): Remove prototype.
+       * character.c (init_character_once): Remove.
+       * filelock.c (init_filelock): Likewise.
+       * fns.c (init_fns): Likewise.
+       * image.c (init_image): Likewise.
+       * sound.c (init_sound): Likewise.
+       * emacs.c (main): Adjust accordingly.
+
+2012-07-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * gtkutil.h: Tiny cleanups.
+       (use_old_gtk_file_dialog): Remove useless declaration.
+       (xg_uses_old_file_dialog): Add suggested const attribute.
+
+2012-07-15  Eli Zaretskii  <eliz@gnu.org>
+
+       * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
+       (bidi_paragraph_init): Use it to limit search forward for a strong
+       directional character in abnormally large paragraphs full of
+       neutral or weak characters.  (Bug#11943)
+
+2012-07-15  Stefano Facchini  <stefano.facchini@gmail.com>  (tiny change)
+
+       * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
+       the toolbar (Bug#9451).
+       (xg_make_tool_item): Give the widget event box a transparent
+       background.
+
+2012-07-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup basic allocation variables and functions.
+       * alloc.c (ignore_warnings, init_intervals, init_float)
+       (init_cons, init_symbol, init_marker): Remove.
+       (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
+       (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
+       (cons_block_index): Initialize to CONS_BLOCK_SIZE.
+       (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
+       (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
+       (staticidx, init_alloc_once, init_strings, free_ablock):
+       Remove redundant initialization.
+       * fns.c (init_weak_hash_tables): Remove.
+       * lisp.h (init_weak_hash_tables): Remove prototype.
+
+2012-07-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use zero_vector where appropriate.
+       * alloc.c (zero_vector): Define as Lisp_Object.  Adjust users
+       accordingly.
+       * lisp.h (zero_vector): New declaration.
+       * font.c (null_vector): Remove.
+       (syms_of_font): Remove initialization and staticpro.
+       (font_list_entities, font_find_for_lface): Change to use zero_vector.
+       * keymap.c (Faccessible_keymaps): Likewise.
+
+2012-07-15  Leo Liu  <sdl.web@gmail.com>
+
+       * fringe.c: Fix typo in comments.
+
+2012-07-14  Leo Liu  <sdl.web@gmail.com>
+
+       * fringe.c: Add a new bitmap exclamation-mark.
+
+2012-07-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
+
+       * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
+       (HAVE_MENUS): Don't define, defined by editing config.in with
+       msdos/sed2v2.inp.
+       (GMALLOC_INHIBIT_VALLOC): Don't define.
+       (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
+
+2012-07-14  Juanma Barranquero  <lekktu@gmail.com>
+
+       * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
+
+2012-07-14  Glenn Morris  <rgm@gnu.org>
+
+       * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
+       * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
+       Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
+
+2012-07-13  Glenn Morris  <rgm@gnu.org>
+
+       * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
+
+       * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
+       * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
+
+2012-07-13  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
+       (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
+       (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
+       (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
+       where appropriate.
+       (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
+       as boolean expression.
+       (x_set_window_size): Remove unused variable toolbar.
+       (ns_get_color_default, ns_mod_to_lisp): Remove.
+       (ns_mouse_position): Remove unused variables xchar and ychar.
+       (ns_compute_glyph_string_overhangs): Remove unused variable face.
+       (ns_set_vertical_scroll_bar): Remove unused variable count.
+       (ns_delete_terminal): Remove unused variable i.
+       (ns_term_init): Remove unused variables r, g and b.
+       (mouseDown): Remove unused variable window.
+       (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
+       (initFrameFromEmacs): Remove unused variable vbextra.
+       (mouseEntered): Remove unused variables p and dpyinfo.
+       (mouseExited): Remove unused variables p and r.
+       (ns_define_frame_cursor, ns_clear_frame_area)
+       (ns_draw_window_cursor, ns_initialize_display_info): Make static.
+       (menuDown): Assign [sender tag] to variable and cast the variable.
+
+       * nsterm.h (menuDown): Add id as type to argument sender.
+       (ns_display_info_for_name): Add Lisp_Object argument.
+       (ns_term_init): Add Lisp_Object argument.
+       (ns_map_event_to_object): Add void argument.
+       (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
+       prototype with arguments and only declare if __OBJC__.
+       (nxatoms_of_nsselect): Add void argument.
+       (ns_lisp_to_cursor_type): Add Lisp_Object argument.
+       (ns_alloc_autorelease_pool): Add void argument.
+       (ns_release_autorelease_pool): Add void* argument.
+       (ns_get_defaults_value): Add const char* argument.
+
+       * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
+       (initFromContents): Use SSDATA where appropriate.
+       (ns_update_menubar): Add braces to ambigous if-else.
+       (initWithTitle): Put () around assignment in if statement.
+       (ns_menu_show): Remove unused variables window and keymap.
+       (update_frame_tool_bar): Remove unused variable selected_p.
+       (initWithContentRect): Remove unused variable this_cmd_name.
+
+       * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
+       appropriate.
+       (setXBMColor): Remove unused variable len.
+       (setPixmapData): Put () around assignment in loop statement.
+
+       * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
+       (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
+       where appropriate.
+       (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
+       around assignment in loop statement.
+       (nsfont_open): Remove unused variable i.
+       (nsfont_open): Remove unused variable len.
+       (nsfont_draw): Remove unused variable cs.
+
+       * nsfns.m (x_set_icon_name, ns_set_name_internal)
+       (ns_set_name_as_filename, ns_implicitly_set_icon_type)
+       (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
+       (Fns_get_resource, Fns_set_resource, Fx_open_connection)
+       (Fns_font_name, Fns_perform_service)
+       (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
+       (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
+       (ns_set_name): Remove unused variable view.
+       (x_set_menu_bar_lines): Remove unused variable olines.
+       (x_set_tool_bar_lines): Remove unused variable root_window.
+       (Fns_list_colors): Put () around assignment in while statement.
+       (Fns_perform_service): Remove unused variable len.
+       (Fns_display_usable_bounds): Remove unused variable top.
+       (syms_of_nsfns): Remove unused variable i.
+
+       * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
+       memcpy (Bug#11907).
+
+2012-07-13  Kalle Kankare  <kalle.kankare@iki.fi>  (tiny change)
+
+       * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
+       and free it with DestroyExceptionInfo (Bug#11558).
+
+2012-07-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
+       (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
+       Set here, not in nt/config.nt.
+
+2012-07-13  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
+       cursor overflow into the last glyph on display line when the right
+       fringe is off.  (Bug#11832)
+
+2012-07-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xdisp.c (produce_special_glyphs): Now static.
+       * dispextern.h (produce_special_glyphs): Remove decl.
+
+2012-07-13  Glenn Morris  <rgm@gnu.org>
+
+       * s/bsd-common.h, s/cygwin.h: Remove empty files.
+       * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
+
+       * s/usg5-4-common.h (USG, USG5):
+       * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
+       * s/sol2-6.h (SOLARIS2):
+       * s/irix6-5.h (IRIX6_5):
+       * s/hpux10-20.h (USG, USG5, HPUX):
+       * s/gnu-linux.h (USG, GNU_LINUX):
+       * s/freebsd.h (BSD_SYSTEM):
+       * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
+       * s/cygwin.h (CYGWIN):
+       * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
+       * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
+
+2012-07-13  BT Templeton  <bpt@hcoop.net>  (tiny change)
+
+       * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
+
+2012-07-13  Glenn Morris  <rgm@gnu.org>
+
+       * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
 
-2012-08-24  Chong Yidong  <cyd@gnu.org>
+       * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
 
-       * Version 24.2 released.
+       * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
+       * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
 
-2012-08-24  Eli Zaretskii  <eliz@gnu.org>
+2012-07-12  Glenn Morris  <rgm@gnu.org>
 
-       * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
-       is not one of the heaps we manage.  (Bug#12242)
+       * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
 
-2012-08-14  Glenn Morris  <rgm@gnu.org>
+       * process.c (init_process_emacs): Rename from init_process.
+       The old name is also the name of a Mach system call.
+       * lisp.h, emacs.c: Update for this name change.
+       * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
+       longer needed.
 
-       * eval.c (Fcalled_interactively_p): Doc fix.  (Bug#11747)
+2012-07-12  Eli Zaretskii  <eliz@gnu.org>
 
-2012-08-14  Ulrich Mueller  <ulm@gentoo.org>
+       * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
+       memmove call that removes glyphs covered by the left truncation
+       glyph.  Improve commentary.
+       (display_line): Fix display of continuation glyphs on GUI frames
+       when the right fringe is turned off and variable-size fonts are
+       used in the window.  Move the code that appends a stretch glyph to
+       produce_special_glyphs, so that it could be used for truncation
+       and continuation glyphs alike.
+       (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
+       glyph of a suitably computed width, to align the special glyphs at
+       the window margin.  Code moved from display_line.  (Bug#11832)
 
-       * systime.h (EMACS_TIME_CMP): Don't cast time_t values to long
-       (Bug#11712).
+2012-07-12  Glenn Morris  <rgm@gnu.org>
 
-2012-08-13  Eli Zaretskii  <eliz@gnu.org>
+       * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
 
-       * w32menu.c: Include w32heap.h.
-       (add_menu_item): If the call to AppendMenuW (via
-       unicode_append_menu) fails, disable Unicode menus only if we are
-       running on Windows 9X/Me.
+       * s/gnu-linux.h, s/hpux10-20.h:
+       Do not unconditionally define HAVE_XRMSETDATABASE.
+
+       * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
+
+2012-07-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix typos that broke OS X build.
+       Reported by Randal L. Schwartz in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
+       * nsterm.m (ns_timeout): Add missing local decl.
+       (ns_get_color): snprintf -> sprintf, to fix typo.
+
+2012-07-12  Glenn Morris  <rgm@gnu.org>
+
+       * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
+       * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
+       * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
+       Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
+
+       * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
+       Move PTY_OPEN to configure.
+
+       * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
+       * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
+       * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
+
+2012-07-12  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use empty_unibyte_string where applicable.
+       * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
+       * lread.c (read1): Likewise.
+       * xsettings.c (syms_of_xsettings): Likewise.
+
+2012-07-12  Glenn Morris  <rgm@gnu.org>
+
+       * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
+       * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
+       * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
+       * s/hpux10-20.h (RUN_TIME_REMAP):
+       * s/bsd-common.h (TABDLY): Move to configure.
+
+       * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
+
+       * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
+
+       * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
+       (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
+
+       * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
+
+       * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
+       * s/template.h: Move NARROWPROTO to configure.
+
+2012-07-11  Glenn Morris  <rgm@gnu.org>
+
+       * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
+       unused since 2011-01-17 change to systty.h.
+
+       * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
+       * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
+       Move HAVE_PTYS and HAVE_SOCKETS to configure.
+
+2012-07-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * s/sol2-6.h (HAVE_LIBKSTAT): Remove.  (Bug#11914)
+
+2012-07-11  Glenn Morris  <rgm@gnu.org>
+
+       * s/darwin.h, s/gnu-linux.h, s/template.h:
+       Move INTERRUPT_INPUT to configure.
+
+2012-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Minor adjustments to interning code.
+       * lisp.h (intern, intern_c_string): Redefine as static inline
+       wrappers for intern_1 and intern_c_string_1, respectively.
+       (intern_1, intern_c_string_1): Rename prototypes.
+       * lread.c (intern_1, intern_c_string_1, oblookup):
+       Simplify Vobarray checking.
+       * font.c (font_intern_prop): Likewise.  Adjust comment.
+       * w32font.c (intern_font_name): Likewise.
+
+2012-07-11  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
+
+       * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
+       of Fcar/Fcdr if possible.
+       * font.c (check_otf_features): Likewise.
+       * fontset.c (Fnew_fontset): Likewise.
+       * gnutls.c (Fgnutls_boot): Likewise.
+       * minibuf.c (read_minibuf): Likewise.
+       * msdos.c (IT_set_frame_parameters): Likewise.
+       * xmenu.c (Fx_popup_dialog): Likewise.
+       * w32menu.c (Fx_popup_dialog): Likewise.
+
+2012-07-11  Glenn Morris  <rgm@gnu.org>
+
+       * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
+       since nothing has defined it on these platforms.
+
+       * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
+       * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
+
+       * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
+       * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
+       Move CLASH_DETECTION to configure.
+
+       * s/gnu.h: Remove file, which is now empty.
+
+       * s/gnu.h, s/gnu-linux.h:
+       Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
+
+2012-07-11  John Wiegley  <johnw@newartisans.com>
+
+       * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
+       function attribute, so we only use it if it exists in the
+       compiler.
+
+2012-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid call to strlen in fast_c_string_match_ignore_case.
+       * search.c (fast_c_string_match_ignore_case): Change to use
+       length argument.  Adjust users accordingly.
+       * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
+
+2012-07-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume mkdir, rmdir.
+       * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
+       * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
+
+       Assume rename.
+       * sysdep.c (rename) [!HAVE_RENAME]: Remove.
+
+       Assume perror.
+       * s/hpux10-20.h (HAVE_PERROR): Remove.
+       * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
+       Remove dummy definition, as this problem was obsolete long ago.
+
+       Assume strerror.
+       * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
+
+2012-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid calls to strlen in font processing functions.
+       * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
+       (font_open_by_name): Change to use length argument.
+       Adjust users accordingly.
+       * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
+       Adjust prototypes.
+       * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
+       Change to return ptrdiff_t.
+       (xfont_list_pattern, xfont_match): Use length returned by
+       xfont_decode_coding_xlfd.
+       * xfns.c (x_default_font_parameter): Omit useless xstrdup.
+
+2012-07-11  Glenn Morris  <rgm@gnu.org>
+
+       * s/darwin.h, s/freebsd.h, s/netbsd.h:
+       Move DONT_REOPEN_PTY to configure.
+
+       * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
+       * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
+
+2012-07-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove "#define unix" that is no longer needed (Bug#11905).
+       * s/aix4-2.h (unix): Remove; no longer needed.
+
+       EMACS_TIME simplification (Bug#11875).
+       This replaces macros (which typically do not work in GDB)
+       with functions, typedefs and enums, making the code easier to debug.
+       The functional style also makes code easier to read and maintain.
+       * systime.h: Include <sys/time.h> on all hosts, not just if
+       WINDOWSNT, since 'struct timeval' is needed in general.
+       (EMACS_TIME): Now a typedef, not a macro.
+       (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
+       not macros.
+       (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
+       (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
+       (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
+       (EMACS_TIME_LE): Now functions, not macros.
+       (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
+       (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
+       which are not functions.  All uses rewritten to use:
+       (make_emacs_time): New function.
+       (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
+       (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
+       not functions.  All uses rewritten to use the following, respectively:
+       (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
+       (add_emacs_time, sub_emacs_time): New functions.
+       * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
+       * fileio.c (Fcopy_file):
+       * xterm.c (XTflash): Get the current time closer to when it's used.
+       * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
+
+       * bytecode.c (targets): Suppress -Woverride-init warnings.
+
+       Simplify by avoiding confusing use of strncpy etc.
+       * doc.c (Fsnarf_documentation):
+       * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
+       * frame.c (Fmake_terminal_frame):
+       * gtkutil.c (get_utf8_string):
+       * lread.c (openp):
+       * nsmenu.m (ns_update_menubar):
+       * regex.c (regerror):
+       Prefer memcpy to strncpy and strncat when either will do.
+       * fileio.c (Fsubstitute_in_file_name):
+       * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
+       (menu_separator_name_p):
+       * nsmenu.m (ns_update_menubar):
+       Prefer memcmp to strncmp when either will do.
+       * nsterm.m: Include <ftoastr.h>.
+       (ns_get_color):
+       * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
+       Prefer snprintf to strncpy.
+       * nsterm.m (ns_term_init):
+       * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
+       * nsterm.m (ns_term_init):
+       Avoid the need for strncpy, by using build_string or
+       make_unibyte_string directly.  Use dtoastr, not snprintf.
+       * process.c (Fmake_network_process): Diagnose service names that
+       are too long, rather than silently truncating them or creating
+       non-null-terminated names.
+       (Fnetwork_interface_info): Likewise, for interface names.
+       * sysdep.c (system_process_attributes) [GNU_LINUX]:
+       Prefer sprintf to strncat.
+       * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
+       Prefer vsnprintf to vsprintf + strncpy.
+
+2012-07-10  Glenn Morris  <rgm@gnu.org>
+
+       * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
+       Clarify fallback case.
+
+2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use XCAR and XCDR instead of Fcar and Fcdr where possible.
+       * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
+       * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
+       * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
+       where argument type is known to be a Lisp_Cons.
+
+2012-07-10  Tom Tromey  <tromey@redhat.com>
+
+       * bytecode.c (BYTE_CODE_THREADED): New macro.
+       (BYTE_CODES): New macro.  Replaces all old byte-code defines.
+       (enum byte_code_op): New type.
+       (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
+       (exec_byte_code): Use them.  Use token threading when applicable.
+
+2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Optimize pure C strings initialization.
+       * lisp.h (make_pure_string): Fix prototype.
+       (build_pure_c_string): New function, defined as static inline.  This
+       provides a better opportunity to optimize away calls to strlen when
+       the function is called with compile-time constant argument.
+       * alloc.c (make_pure_c_string): Fix comment.  Change to add nchars
+       argument, adjust users accordingly.  Use build_pure_c_string where
+       appropriate.
+       * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
+       * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
+       * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
+
+2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid calls to strlen in miscellaneous functions.
+       * buffer.c (init_buffer): Use precalculated len, adjust if needed.
+       * font.c (Ffont_xlfd_name): Likewise.  Change to call make_string.
+       * lread.c (openp): Likewise.
+
+2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid calls to strlen in path processing functions.
+       * fileio.c (file_name_as_directory): Add comment.  Change to add
+       srclen argument and return the length of result.  Adjust users
+       accordingly.
+       (directory_file_name): Fix comment.  Change to add srclen argument,
+       swap 1st and 2nd arguments to obey the common convention.
+       Adjust users accordingly.
+       * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
+
+2012-07-10  Glenn Morris  <rgm@gnu.org>
+
+       * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
+       Move PENDING_OUTPUT_COUNT definition to configure.
+
+       * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
+       * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
+       * s/gnu.h (DATA_START): Move definitions to configure.
+
+       * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
+       We include usg5-4-common.h, which defines them both.
+
+       * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
+       O_RDONLY already includes it).
+
+       Stop ns builds setting the EMACSLOADPATH environment variable.
+       * nsterm.m (ns_load_path): Rename from ns_init_paths.
+       Now it does not set EMACSLOADPATH, just returns the load-path string.
+       * nsterm.h: Update accordingly.
+       * lread.c [HAVE_NS]: Include nsterm.h.
+       (init_lread) [HAVE_NS]: Use ns_load_path.
+       * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
+
+2012-07-09  Glenn Morris  <rgm@gnu.org>
+
+       * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
+       since the included bsd-common.h does so.
+
+       Stop ns builds setting the EMACSPATH environment variable.
+       * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
+       (ns_init_paths): Do not set EMACSPATH.
+       * nsterm.h (ns_exec_path): Add it.
+       * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
+       Use ns_exec_path.
+
+       * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
+
+2012-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * process.c (wait_reading_process_output): 'waitchannels' was unset
+       when read_kbd || !NILP (wait_for_cell); fix this.
+
+       Add GCC-style 'const' attribute to functions that can use it.
+       * character.h (char_resolve_modifier_mask):
+       * keyboard.h (make_ctrl_char):
+       * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
+       (init_character_once, next_almost_prime, init_fns, init_image)
+       (flush_pending_output, init_sound):
+       * mem-limits.h (start_of_data):
+       * menu.h (finish_menu_items):
+       Add ATTRIBUTE_CONST.
+       * emacs.c (DEFINE_DUMMY_FUNCTION):
+       Declare the dummy function with ATTRIBUTE_CONST.
+       * lisp.h (Fbyteorder, Fmax_char, Fidentity):
+       Add decls with ATTRIBUTE_CONST.
+
+       Minor improvements to make_formatted_string.
+       * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
+       where int is good enough, as vsprintf returns an int.
+       * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
+
+2012-07-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use make_formatted_string to avoid double length calculation.
+       * lisp.h (make_formatted_string): New prototype.
+       * alloc.c (make_formatted_string): New function.
+       * buffer.c (Fgenerate_new_buffer_name): Use it.
+       * dbus.c (syms_of_dbusbind): Likewise.
+       * editfns.c (Fcurrent_time_zone): Likewise.
+       * filelock.c (get_boot_time): Likewise.
+       * frame.c (make_terminal_frame, set_term_frame_name)
+       (x_report_frame_params): Likewise.
+       * image.c (gs_load): Likewise.
+       * minibuf.c (get_minibuffer): Likewise.
+       * msdos.c (dos_set_window_size): Likewise.
+       * process.c (make_process): Likewise.
+       * xdisp.c (ensure_echo_area_buffers): Likewise.
+       * xsettings.c (apply_xft_settings): Likewise.
+
+2012-07-09  Glenn Morris  <rgm@gnu.org>
+
+       Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
+       * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
+       (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
+       * nsterm.h (ns_etc_directory): Add it.
+       * callproc.c [HAVE_NS]: Include nsterm.h.
+       (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
+
+2012-07-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Move marker debugging code under MARKER_DEBUG.
+       * marker.c (MARKER_DEBUG): Move marker debugging code under
+       #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
+       for bootstrap with --enable-checking (~3x slowdown reported
+       by Juanma Barranquero <lekktu@gmail.com>).
+       (verify_bytepos): Move under #ifdef MARKER_DEBUG.
+
+2012-07-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
+       See <http://bugs.gnu.org/11825#29>.
+
+2012-07-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
+       has no font, use the frame's font.  (Bug#11813)
+       (display_line): Add commentary about displaying truncation glyphs
+       on GUI frames.
+       (produce_special_glyphs): Move here from term.c.
+
+       * term.c (produce_special_glyphs): Move to xdisp.c.
+
+       * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
+       section.
+
+2012-07-07  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * xdisp.c (display_line): Avoid warning about implicit declaration
+       of FRAME_FONT.
+
+       * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
+
+       * lisp.h: Remove empty conditional.
+
+2012-07-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lread.c (load_path_check): Now static.
+
+       Fix some minor --with-ns problems found by static checking.
+       * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
+       (x_set_font) [!HAVE_X_WINDOWS]:
+       * image.c (xpm_load_image) [HAVE_NS]:
+       (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
+       (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
+       Remove unused local.
+       (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
+       (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
+       * image.c (x_create_bitmap_from_file) [HAVE_NS]:
+       (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
+       * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
+       * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
+       Fix pointer signedness problem.
+       * xfaces.c (FRAME_X_FONT_TABLE):
+       * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
+
+2012-07-07  Glenn Morris  <rgm@gnu.org>
+
+       * lread.c (load_path_check): New function, split from init_lread.
+       (init_lread): Reorganize.  Motivation:
+       If EMACSLOADPATH is set, check/warn about that rather than the
+       defaults, which we are not going to use.  Hence we can remove
+       the turn_off_warning and WINDOWSNT || HAVE_NS tests.
+       Don't warn if site-lisp directories are missing.
+       If not installed, start from a blank load-path, since
+       PATH_LOADSEARCH refers to the eventual installation directories.
+
+2012-07-07  Eli Zaretskii  <eliz@gnu.org>
+
+       Support truncation and continuation glyphs on GUI frames, when
+       fringes are disabled.  (Bug#11832)
+       * xdisp.c (init_iterator): Get dimensions of truncation and
+       continuation glyphs even if on GUI frames.
+       Adjust it->last_visible_x on GUI frames when the left or right fringes,
+       or both, are absent.
+       (start_display, move_it_in_display_line_to): Handle the case of a
+       GUI frame without a fringe to display continuation or truncation
+       glyphs.
+       (insert_left_trunc_glyphs): Support GUI frames: make sure
+       truncation glyphs overwrite enough glyphs from the current line to
+       have sufficient space in pixels.
+       (display_line): Support truncation and continuation glyphs on GUI
+       frames.  If some spare pixels are left on the line after inserting
+       the truncation glyphs, fill that space with a stretch glyph of a
+       suitably computed width.
+
+       * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
+       produce_glyphs, to support GUI sessions.
+
+2012-07-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
+
+       * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
+
+       Do not require float-time's arg to fit in time_t (Bug#11825).
+       This works better on hosts where time_t is unsigned, and where
+       float-time is applied to the (negative) difference between two times.
+       * editfns.c (decode_time_components): Last arg is now double *,
+       not int *, and means to store all the result as a double, without
+       worrying about whether the seconds part fits in time_t.
+       All callers changed.
+       (lisp_time_argument): Remove last int * arg, as it's no longer needed.
+       All callers changed.
+       (Ffloat_time): Do not fail merely because the specified time falls
+       outside of time_t range.
+
+2012-07-07  Glenn Morris  <rgm@gnu.org>
+
+       * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
+       * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
+       * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
+
+2012-07-07  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
+       Update dependencies.
+
+       * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
+
+2012-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
+       * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
+       * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
+       * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
+       * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
+       * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
+
+       * xfont.c (compare_font_names): Redo to omit the need for casts.
+
+2012-07-06  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * xfns.c (Fx_change_window_property): Doc fix.
+       * w32fns.c (Fx_change_window_property): Doc fix.
+
+       * w32fns.c (Fx_window_property): Accept the same arguments as the
+       X Windows version.  Doc fix.
+       * xfns.c (Fx_window_property): Doc fix.  (Bug#11870)
+
+2012-07-06  Juanma Barranquero  <lekktu@gmail.com>
+           Eli Zaretskii  <eliz@gnu.org>
+
+       * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
+       Windows-specific code from nt/config.nt moved here.
+       Obsolete settings removed.
+
+2012-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * process.c: Avoid unnecessary calls to gettime.
+       (wait_reading_process_output): Don't get the time of day
+       when gobbling data immediately and not waiting, as there's no need
+       for it in that case.  This removes a FIXME.
+
+2012-07-06  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
+       is defined (Bug#11768).
+
+2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix marker debugging code.
+       * marker.c (byte_char_debug_check): Do not perform the check
+       if buffer is not multibyte.
+       (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
+       Call byte_char_debug_check with correct arguments.
+
+2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Compile marker debugging code only if ENABLE_CHECKING is defined.
+       * marker.c (byte_char_debug_check, count_markers):
+       Use only if ENABLE_CHECKING is defined.
+       (byte_debug_flag): Remove.
+       (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
+       Always call byte_char_debug_check if ENABLE_CHECKING is defined.
+
+2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid code repetition in marker-related functions.
+       * marker.c (attach_marker): New function.
+       (Fset_marker, set_marker_restricted, set_marker_both)
+       (set_marker_restricted_both): Use it.
+       (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
+       Consistently rename charno to charpos.
+       (marker_position): Add eassert.
+       (marker_byte_position): Convert to eassert.
+
+2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simplify list operations in unchain_overlay and unchain_marker.
+       * buffer.c (unchain_overlay): Simplify.  Add comment.
+       * marker.c (unchain_marker): Simplify.  Fix comments.
+
+2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Introduce fast path for the widely used marker operation.
+       * alloc.c (build_marker): New function.
+       * lisp.h (build_marker): New prototype.
+       * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
+       * composite.c (autocmp_chars): Likewise.
+       * editfns.c (buildmark): Remove.
+       (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
+       (save_restriction_save): Use build_marker.
+       * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
+       * window.c (save_window_save): Likewise.
+
+2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not use Fdelete_overlay in delete_all_overlays
+       to avoid redundant calls to unchain_overlay.
+       * buffer.c (drop_overlay): New function.
+       (delete_all_overlays, Fdelete_overlay): Use it.
+       * minibuf.c (get_minibuffer): Fix comment.
+
+2012-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to OpenBSD 5.1 amd64.
+       * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
+       This is needed for OpenBSD, and should be harmless on all BSD systems.
+       Also, include <sys/sysctl.h>, as it should be available on all
+       BSD_SYSTEM hosts given that we're already calling sysctl in that case.
+       (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
+       use p_pid member, not kp_proc.pid.
+
+2012-07-06  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
+
+2012-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       More xmalloc and related cleanup.
+       * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
+       * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
+       * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
+       * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
+       * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
+       * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
+       * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
+       * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
+       * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
+       * xterm.c:
+       Omit needless casts involving void * pointers and allocation.
+       Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
+       as the former is more robust if P's type is changed.
+       Prefer xzalloc to xmalloc + memset 0.
+       Simplify malloc-or-realloc to realloc.
+       Don't worry about xmalloc returning a null pointer.
+       Prefer xstrdup to xmalloc + strcpy.
+       * editfns.c (Fmessage_box): Grow message_text by at least 80 when
+       growing it.
+       * keyboard.c (apply_modifiers_uncached): Prefer local array to
+       alloca of a constant.
+
+2012-07-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (display_line): Fix horizontal pixel coordinates when
+       hscroll is larger than the line width.  Fixes long and futile
+       looping inside extend_face_to_end_of_line (on a TTY) producing
+       glyphs that are not needed and thrown away.
+
+2012-07-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * marker.c (set_marker_restricted_both): Simplify by using
+       clip_to_bounds.
+
+2012-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * editfns.c (region_limit): Simplify by using clip_to_bounds.
+
+2012-07-05  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
+       not defined (Bug#11768).
+       (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
+       (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
+       (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
+       followed by gtk_box_set_homogeneous (Bug#11768).
+       (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
+       (update_theme_scrollbar_width, xg_create_scroll_bar):
+       Use gtk_scrollbar_new (Bug#11768).
+       (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
+       (is_box_type): New function (Bug#11768).
+       (xg_tool_item_stale_p): Call is_box_type.
+       (xg_initialize): Get settings by calling gtk_settings_get_for_screen
+       with default display (Bug#11768).
+
+2012-07-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (window_hscroll_limited): New function.
+       (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
+       coordinates when window's hscroll is set to insanely large
+       values.  (Bug#11857)
+
+2012-07-05  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
+       ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
+
+2012-07-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup xmalloc.
+       * lisp.h (xzalloc): New prototype.  Omit needless casts.
+       * alloc.c (xzalloc): New function.  Omit needless casts.
+       * charset.c: Omit needless casts.  Convert all calls to
+       xmalloc with following memset to xzalloc.
+       * dispnew.c: Likewise.
+       * fringe.c: Likewise.
+       * image.c: Likewise.
+       * sound.c: Likewise.
+       * term.c: Likewise.
+       * w32fns.c: Likewise.
+       * w32font.c: Likewise.
+       * w32term.c: Likewise.
+       * xfaces.c: Likewise.
+       * xfns.c: Likewise.
+       * xterm.c: Likewise.
+       * atimer.c: Omit needless casts.
+       * buffer.c: Likewise.
+       * callproc.c: Likewise.
+       * ccl.c: Likewise.
+       * coding.c: Likewise.
+       * composite.c: Likewise.
+       * doc.c: Likewise.
+       * doprnt.c: Likewise.
+       * editfns.c: Likewise.
+       * emacs.c: Likewise.
+       * eval.c: Likewise.
+       * filelock.c: Likewise.
+       * fns.c: Likewise.
+       * gtkutil.c: Likewise.
+       * keyboard.c: Likewise.
+       * lisp.h: Likewise.
+       * lread.c: Likewise.
+       * minibuf.c: Likewise.
+       * msdos.c: Likewise.
+       * print.c: Likewise.
+       * process.c: Likewise.
+       * region-cache.c: Likewise.
+       * search.c: Likewise.
+       * sysdep.c: Likewise.
+       * termcap.c: Likewise.
+       * terminal.c: Likewise.
+       * tparam.c: Likewise.
+       * w16select.c: Likewise.
+       * w32.c: Likewise.
+       * w32reg.c: Likewise.
+       * w32select.c: Likewise.
+       * w32uniscribe.c: Likewise.
+       * widget.c: Likewise.
+       * xdisp.c: Likewise.
+       * xmenu.c: Likewise.
+       * xrdb.c: Likewise.
+       * xselect.c: Likewise.
+
+2012-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fileio.c (time_error_value): Check the right error number.
+       Problem reported by Troels Nielsen in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
+
+2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
+       This should be fixed in a better way; see Eli Zaretskii in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
+       (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
+
+       * fileio.c (time_error_value): Rename from special_mtime.
+       The old name's problems were noted by Eli Zaretskii in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
+
+       * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
+       This variable's comment says Emacs needs at least one GDB-visible
+       symbol of type enum pvec_type, to work around GDB problems.
+       The symbol's value doesn't matter.
+
+       * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
+       that causes compilation to fail on pre-C99 compilers.
+
+2012-07-04  Juanma Barranquero  <lekktu@gmail.com>
+
+       * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
+       (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
+
+2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * buffer.c (init_buffer_once): Fix initialization of
+       headers for buffer_defaults and buffer_local_symbols.
+       Reported by Juanma Barranquero <lekktu@gmail.com>.
+
+2012-07-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
+       * lisp.h (enum pvec_type): Use fewer bits.
+       (PSEUDOVECTOR_SIZE_BITS): New constant.
+       (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
+       (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
+       change in pvec_type.
+       (PSEUDOVECTOR_TYPEP): New macro.
+       (TYPED_PSEUDOVECTORP): Use it.
+       * fns.c (internal_equal): Adapt code to extract pvectype.
+       * emacs.c (gdb_pvec_type): Update type.
+       * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
+       (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
+       (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
+       (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
+       (sweep_vectors): Use it.  Use local var `total_bytes' instead of
+       abusing vector->header.next.nbytes.
+       (live_vector_p): Use PVEC_TYPE.
+       (mark_object): Adapt code to extract pvectype.  Use switch.
+
+2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doprnt.c (doprnt): Don't assume string length fits in 'int'.
+       Tighten new eassert a bit.
+
+2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix compilation with --enable-gcc-warnings and -O1
+       optimization level.
+       * doprnt.c (doprnt): Change type of tem to int, initialize
+       to avoid compiler warning.  Add eassert.
+       * search.c (simple_search): Initialize match_byte to avoid
+       compiler warning.  Add eassert.
+
+2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Avoid weird behavior with large horizontal scrolls.
+       Without this change, for example, large hscroll values would
+       mess up Emacs's display on Fedora 15 x86, presumably due to
+       overflows in int calculations in the display code.
+       Also, if buffers had long lines, Emacs would freeze.
+       * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
+       (set_window_hscroll): New function, containing the old guts of
+       Fset_window_hscroll.  Return the clipped value.
+       (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
+       This avoids the need to check against PTRDIFF_MAX.
+
+       * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
+
+2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
+
+2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * regex.c: Suppress GCC warning on RHEL 6.  (Bug#11207)
+       Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
+       since GCC 4.4.6 issues a bogus warning for them.
+
+       Fix bugs in file timestamp newness comparisons.
+       * fileio.c (Ffile_newer_than_file_p):
+       * lread.c (Fload): Use full timestamp resolution of files,
+       not just the 1-second resolution, so that files that are only
+       slightly newer still count as newer.
+       * fileio.c (Ffile_newer_than_file_p): Don't assume file
+       timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
+
+2012-07-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fileio.c: Improve handling of file time marker.  (Bug#11852)
+       (special_mtime): New function.
+       (Finsert_file_contents, Fverify_visited_file_modtime):
+       Use it to set special mtime values consistently.
+
+2012-07-03  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * fileio.c (Finsert_file_contents): Properly handle st_mtime
+       marker for non-existing file.  (Bug#11852)
+
+2012-07-03  Glenn Morris  <rgm@gnu.org>
+
+       * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
+       and did not make it into globals.h).
+
+2012-07-03  Tom Tromey  <tromey@redhat.com>
+
+       * window.c (Fset_window_margins, Fset_window_fringes)
+       (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
+       * textprop.c (Fprevious_property_change): No longer static.
+       * syntax.c (Fsyntax_table_p): No longer static.
+       * process.c (Fget_process, Fprocess_datagram_address): No longer
+       static.
+       * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
+       * keyboard.c (Fcommand_execute): No longer static.
+       Remove EXFUN.
+       * insdel.c (Fcombine_after_change_execute): No longer static.
+       * image.c (Finit_image_library): No longer static.
+       * fileio.c (Fmake_symbolic_link): No longer static.
+       * eval.c (Ffetch_bytecode): No longer static.
+       * editfns.c (Fuser_full_name): No longer static.
+       * doc.c (Fdocumentation_property, Fsnarf_documentation):
+       No longer static.
+       * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
+       static.
+       * dired.c (Ffile_attributes): No longer static.
+       * composite.c (Fcomposition_get_gstring): No longer static.
+       * callproc.c (Fgetenv_internal): No longer static.
+
+       * ccl.h: Remove EXFUNs.
+       * buffer.h: Remove EXFUNs.
+       * dispextern.h: Remove EXFUNs.
+       * intervals.h: Remove EXFUNs.
+       * fontset.h: Remove EXFUN.
+       * font.h: Remove EXFUNs.
+       * dosfns.c (system_process_attributes): Remove EXFUN.
+       * keymap.h: Remove EXFUNs.
+       * lisp.h: Remove EXFUNs.
+       * w32term.h: Remove EXFUNs.
+       * window.h: Remove EXFUNs.
+       * xsettings.h: Remove EXFUN.
+       * xterm.h: Remove EXFUN.
+
+2012-07-03  Glenn Morris  <rgm@gnu.org>
+
+       * lisp.h (Frandom): Make it visible to C.
+       * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
+       buffer for invisible buffers.  (Bug#1229)
+
+2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
+       values which aren't power of 2.
+       * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
+       Verify it's value and the value of VECTOR_BLOCK_SIZE.  Adjust users
+       accordingly.
+
+2012-07-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
+
+       * alloc.c (mark_object): Revert part of last patch to use `switch'.
+
+2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (allocate_vector_block): Remove redundant
+       calls to mallopt if DOUG_LEA_MALLOC is defined.
+       (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
+       avoid calls to mallopt if zero_vector is returned.
+
+2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
+       is enabled, avoid dereferencing NULL current_sblock if
+       running undumped.
+
+2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup basic buffer management.
+       * buffer.h (struct buffer): Change layout to use generic vector
+       marking code.  Fix some comments.  Change type of 'clip_changed'
+       to bitfield.  Remove unused #ifndef old.
+       (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
+       (GET_OVERLAYS_AT): Fix indentation.
+       (for_each_per_buffer_object_at): New macro.
+       * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
+       (Fbuffer_local_variables): Use it.
+       (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
+       * alloc.c (allocate_buffer): Adjust to match new layout of
+       struct buffer.  Fix comment.
+       (mark_overlay): New function.
+       (mark_buffer): Use it.  Use mark_vectorlike to mark normal
+       Lisp area of struct buffer.
+       (mark_object): Use it.  Adjust marking of misc objects
+       and related comments.
+
+2012-07-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
+       wrapper that is not needed because the wrapped code is a no-op (zero
+       machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
+       This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
+
+2012-07-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (mark_buffer): Simplify.  Remove prototype.
+       (mark_object): Add comment.  Reorganize marking of vector-like
+       objects.  Use CHECK_LIVE for all vector-like objects except buffers
+       and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
+       Avoid redundant calls to mark_vectorlike for bool vectors.
+
+2012-06-30  Glenn Morris  <rgm@gnu.org>
+
+       * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
+
+       * epaths.in (PATH_SITELOADSEARCH): New.
+       * lread.c (init_lread): Use PATH_SITELOADSEARCH.
+       This is rather than relying on --enable-locallisppath elements
+       having "site-lisp" in their names.  (Bug#10208#25, 11658)
+
+2012-06-30  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sys_select): Accept and ignore one more argument.
+
+       * w32.c (emacs_gnutls_pull): Call select with one more argument.
+
+       * sysselect.h [DOS_NT]: Don't include sys/select.h.
+       (pselect) [!MS_DOS]: Redirect to sys_select.
+
+       * sysdep.c: Don't include dos.h and dosfns.h.
+
+       * process.c (sys_select):
+       * msdos.c (sys_select): Accept one more argument and ignore it.
+
+       * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
+       adapt data types and code to that.
+
+       * dosfns.c:
+       * msdos.c (gettime, settime): Define away the prototypes in dos.h,
+       which clashes with the gnulib function of the same name.
+
+2012-06-30  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * font.c (font_style_to_value, font_style_symbolic)
+       (font_prop_validate_style): Add type checks for values in
+       font_style_table.
+
+       * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
+       argument.
+       * character.c, charset.c, menu.c, process.c, window.c: Adjust all
+       uses.
+
+2012-06-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (try_window_id): Undo last change.
+
+       * w32.c (getwd): Adjust commentary about startup_dir.
+       (init_environment): Always call sys_access, even in non-MSVC
+       builds.  Don't chdir to the directory of the Emacs executable.
+       This undoes code from 1997 which was justified by the need to
+       "avoid conflicts when removing and renaming directories".  But its
+       downside was that every relative file name was being interpreted
+       relative to the directory of the Emacs executable, which can never
+       be TRT.  In particular, it broke sys_access when called with
+       relative file names.
+       (sys_access): Map GetLastError to errno.
+
+2012-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.h (struct window): Change type of 'fringes_outside_margins'
+       to bitfield.  Fix comment.  Adjust users accordingly.
+       (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
+       Adjust comment.
+       * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
+       to ptrdiff_t.
+
+2012-06-29  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gnutls.c (emacs_gnutls_handshake):
+       Add QUIT to make the loop interruptible.
+
+2012-06-29  Glenn Morris  <rgm@gnu.org>
+
+       * charset.c (init_charset): Make lack of etc/charsets fatal.
+
+2012-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * editfns.c (region_limit): Fix type mismatch.
+
+2012-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
+       undefined.  Convert from xassert to eassert.
+       * nsmenu.m: Convert from xassert to eassert.
+       * nsterm.m: Likewise.
+
+2012-06-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * editfns.c (region_limit): Clip to narrowing (bug#11770).
+
+2012-06-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Avoid integer overflow on scroll-left and scroll-right.
+       * window.c (HSCROLL_MAX): New macro.
+       (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
+       overflow when requested scroll falls outside ptrdiff_t range.
+
+2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.h (struct window): Change type of 'hscroll',
+       'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
+       'last_modified' and 'last_overlay_modified' to EMACS_INT.
+       Adjust users accordingly.
+       * xdisp.c (try_cursor_movement): Replace type check with eassert.
+       * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
+       from EMACS_INT to ptrdiff_t.
+       (make_window): Omit redundant initialization.
+
+2012-06-28  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
+
+2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.h (struct window): Change type of 'use_time' and
+       'sequence_number' from Lisp_Object to int.
+       * frame.c (make_frame): Adjust users accordingly.
+       * print.c (print_object): Likewise.
+       * window.c (select_window, Fwindow_use_time, make_parent_window)
+       (make_window): Likewise.
+
+2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
+       enabled with --enable-checking=[all,glyphs] configure option.
+       Fix GLYPH_DEBUG usage assuming that it may be undefined,
+       adjust comments accordingly.
+       * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
+       undefined, adjust comments accordingly.
+       * image.c: Likewise.
+       * scroll.c: Likewise.
+       * w32fns.c: Likewise.
+       * w32term.c: Likewise.
+       * xdisp.c: Likewise.
+       * xfaces.c: Likewise.
+       * xfns.c: Likewise.
+       * xterm.c: Likewise.
+
+2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Generalize run-time debugging checks.
+       * dispextern.h (XASSERTS): Remove.
+       * fontset.c (xassert): Remove.
+       Convert from xassert to eassert.
+       * alloc.c: Convert from xassert to eassert.
+       * bidi.c: Likewise.
+       * dispnew.c: Likewise.
+       * fns.c: Likewise.
+       * fringe.c: Likewise.
+       * ftfont.c: Likewise.
+       * gtkutil.c: Likewise.
+       * image.c: Likewise.
+       * keyboard.c: Likewise.
+       * menu.c: Likewise.
+       * process.c: Likewise.
+       * scroll.c: Likewise.
+       * sound.c: Likewise.
+       * term.c: Likewise.
+       * w32console.c: Likewise.
+       * w32fns.c: Likewise.
+       * w32term.c: Likewise.
+       * window.c: Likewise.
+       * xdisp.c: Likewise.
+       * xfaces.c: Likewise.
+       * xfns.c: Likewise.
+       * xselect.c: Likewise.
+       * xterm.c: Likewise.
+
+2012-06-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * fns.c (maybe_resize_hash_table): Output message when growing the
+       purify-hashtable.
+
+2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (allocate_string_data): Remove dead code.
+       * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
+       avoid GCC warning about unused macro.
+
+2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (allocate_string): Omit intervals initialization.
+       * alloc.c (make_uninit_multibyte_string): Initialize intervals
+       as in make_pure_string and make_pure_c_string.
+
+2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (allocate_string): Fix last change.
+
+2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (allocate_string): Remove two redundant calls
+       to memset, add explicit initialization where appropriate.
+
+2012-06-27  Glenn Morris  <rgm@gnu.org>
+
+       * lisp.mk (lisp): Remove paths.elc.
+
+2012-06-27  Chong Yidong  <cyd@gnu.org>
+
+       * doc.c (Fsubstitute_command_keys): Fix punctuation.
+
+2012-06-26  John Wiegley  <johnw@newartisans.com>
+
+       * unexmacosx.c (copy_data_segment): Add two section names used
+       on Mac OS X Lion: __mod_init_func and __mod_term_func.
+
+       * alloc.c (mark_memory): Do not check with -faddress-sanitizer
+       when building with Clang.
+
+2012-06-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fapply): Allow calling it with a single argument.
+
+2012-06-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
+       _stricmp and _strnicmp.
+       (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
+
+2012-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (allocate_window): Zero out non-Lisp part of newly
+       allocated window.
+       (allocate_process): Likewise for new process.
+       (allocate_terminal): Change to use offsetof.
+       (allocate_frame): Likewise.
+       * frame.c (make_frame): Omit redundant initialization.
+       * window.c (make_parent_window): Use memset.
+       (make_window): Omit redundant initialization.
+       * process.c (make_process): Omit redundant initialization.
+       * terminal.c (create_terminal): Likewise.
+
+2012-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * term.c (delete_tty): Remove redundant call to memset.
+
+2012-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c: Remove build_string.
+       * lisp.h: Define build_string as static inline.  This provides
+       a better opportunity to optimize away calls to strlen when the
+       function is called with compile-time constant argument.
+       * image.c (imagemagick_error): Convert to build_string.
+       * w32proc.c (sys_spawnve): Likewise.
+       * xterm.c (x_term_init): Likewise.
+
+2012-06-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use sprintf return value instead of invoking strlen on result.
+       In the old days this wasn't portable, since some sprintf
+       implementations returned char *.  But they died out years ago and
+       Emacs already assumes sprintf returns int.
+       Similarly for float_to_string.
+       This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
+       * ccl.c (ccl_driver):
+       * character.c (string_escape_byte8):
+       * data.c (Fnumber_to_string):
+       * doprnt.c (doprnt):
+       * print.c (print_object):
+       * xdisp.c (message_dolog):
+       * xfns.c (syms_of_xfns):
+       Use sprintf or float_to_string result to avoid need to call strlen.
+       * data.c (Fnumber_to_string):
+       Use make_unibyte_string, since the string must be ASCII.
+       * lisp.h, print.c (float_to_string): Now returns int length.
+       * term.c (produce_glyphless_glyph):
+       Use sprintf result rather than recomputing it.
+
+       Clean out last vestiges of the old HAVE_CONFIG_H stuff.
+       * Makefile.in (ALL_CFLAGS):
+       * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
+       * gmalloc.c, regex.c: Include <config.h> unconditionally.
+
+2012-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * dispextern.h (xstrcasecmp): Define to library function
+       strcasecmp if available.
+       * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
+
+2012-06-25  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
+       Avoid comma operator.
+       * menu.c (push_submenu_start, push_submenu_end)
+       (push_left_right_boundary, push_menu_pane): Likewise.
+       * msdos.c (dos_rawgetc): Likewise.
+
+2012-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xfns.c (xic_create_fontsetname): Remove redundant calls
+       to memset.
+
+2012-06-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * gtkutil.c (get_utf8_string): Remove redundant assignment.
+       sprintf already null-terminates its output.
+
+       * xfns.c (x_window): Remove redundant cast.
+
+2012-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
+       `const char *' to `char *' to avoid compiler warning.
+
+2012-06-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
+       instead of truncating it to 63 (admittedly a generous limit).
+
+       * process.c: Fix spelling and caps in comments.
+
+2012-06-24  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * emacs.c (setpgrp): Remove definition, unused.
+       * sysdep.c (setpgrp): Remove definition, not used in this file.
+
+2012-06-24  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in: Update dependencies.
+
+2012-06-24  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
+       (SYSTIME_H): Add nt/inc/sys/time.h.
+
+       * systime.h [WINDOWSNT]: Include sys/time.h.
+
+       * s/ms-w32.h (struct timespec): Definition moved from
+       nt/inc/sys/time.h.  Suggested by Paul Eggert <eggert@cs.ucla.edu>.
+
+2012-06-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
+       * buffer.h (buffer_slot_type_mismatch):
+       * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       * eval.c (unwind_to_catch):
+       * image.c (my_png_error, my_error_exit):
+       * keyboard.c (quit_throw_to_read_char, user_error)
+       (Fexit_recursive_edit, Fabort_recursive_edit):
+       * lisp.h (die, args_out_of_range, args_out_of_range_3)
+       (wrong_type_argument, buffer_overflow, __executable_start)
+       (memory_full, buffer_memory_full, string_overflow, Fthrow)
+       (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
+       (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
+       (fatal):
+       (child_setup) [!DOS_NT]:
+       * lread.c (end_of_file_error, invalid_syntax):
+       * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       * puresize.h (pure_write_error):
+       * search.c (matcher_overflow):
+       * sound.c (sound_perror, alsa_sound_perror):
+       * sysdep.c, syssignal.h (croak):
+       * term.c (maybe_fatal, vfatal):
+       * textprop.c (text_read_only):
+       * undo.c (user_error):
+       * unexmacosx.c (unexec_error):
+       * xterm.c (x_ins_del_lines, x_delete_glyphs):
+       Use _Noreturn rather than NO_RETURN.
+       No need for separate decl merely because of _Noreturn.
+       * sound.c (sound_warning, parse_sound):
+       Remove unnecessary forward decls.
+
+2012-06-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
+       * lisp.h (WAIT_READING_MAX): New macro.
+       * dispnew.c (Fsleep_for, sit_for):
+       * keyboard.c (kbd_buffer_get_event):
+       * process.c (Faccept_process_output):
+       Use it to avoid bogus compiler warnings with obsolescent GCC versions.
+       This improves on the previous patch, which introduced a bug
+       when time_t is unsigned and as wide as intmax_t.
+       See <http://bugs.gnu.org/9000#51>.
+
+2012-06-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * dispnew.c (sit_for, Fsleep_for):
+       * keyboard.c (kbd_buffer_get_event):
+       * process.c (Faccept_process_output): Avoid compiler warnings when
+       comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
+
+2012-06-23  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in: Update dependencies.
+
+       * w32.c (ltime): Add return type and declare static.
+       (w32_get_internal_run_time): Remove usused variable `time_100ns'.
+
+2012-06-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
+       Privately reported by Herbert J. Skuhra.
+       (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
+       All uses changed.
+       (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
+       not make_lisp_timeval, when the argument is of type EMACS_TIME.
+
+2012-06-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
+       last argument of make_unibyte_string.
+
+       * keyboard.c (kbd_buffer_get_event): Include the codepage and the
+       language ID in the event parameters.
+
+       * w32term.c (w32_read_socket): Put the new keyboard codepage into
+       event.code, not the obscure "character set ID".
+
+2012-06-23  Chong Yidong  <cyd@gnu.org>
+
+       * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
+
+2012-06-23  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
+       * w32.c (fdutimens): New function.
+
+       * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
+
+       * s/ms-w32.h (pselect): Redirect to sys_select.
+
+       * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
+
+       * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
+       in the logic of incrementing and decrementing the value of
+       use_relocatable_buffers.
+
+2012-06-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
+       Privately reported by Herbert J. Skuhra.
+       [__FreeBSD__]: Remove "*/" typo after "#include".
+       (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
+       (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
+       (TIMEVAL, system_process_attributes) [__FreeBSD__]:
+       Don't assume EMACS_TIME and struct timeval are the same type.
+
+2012-06-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Support higher-resolution time stamps (Bug#9000).
+       The time stamps are only nanosecond-resolution at the C level,
+       since that's the best that any real-world system supports now.
+       But they are picosecond-resolution at the Lisp level, as that's
+       easy, and leaves room for future OS improvements.
+
+       * Makefile.in (LIB_CLOCK_GETTIME): New macro.
+       (LIBES): Use it.
+
+       * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
+       Don't get current time unless it's needed.
+
+       * atimer.c: Include <sys/time.h> unconditionally, since gnulib
+       now provides it if it's absent.
+       (start_atimer): Port to higher-res time stamps.
+       Check for time stamp overflow.  Don't get current time more
+       often than is needed.
+
+       * buffer.h (struct buffer): Buffer modtime now has high resolution.
+       Include systime.h, not time.h.
+       (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
+
+       * dired.c: Include stat-time.h.
+       (Ffile-attributes): File times now have higher resolution.
+
+       * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
+       (struct image): Timestamp now has higher resolution.
+
+       * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
+       has at least microseconds now.  All uses removed.
+       (update_frame, update_single_window, update_window, update_frame_1)
+       (Fsleep_for, sit_for): Port to higher-resolution time stamps.
+       (duration_to_sec_usec): Remove; no longer needed.
+
+       * editfns.c (time_overflow): Now extern.
+       (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
+       (float-time, Fformat_time_string, Fcurrent_time_string)
+       (Fcurrent_time_zone): Accept and generate higher-resolution
+       time stamps.
+       (make_time_tail, make_lisp_time, dissassemble_lisp_time)
+       (decode_time_components, lisp_seconds_argument): New functions.
+       (make_time): Now static.
+       (lisp_time_argument): Now returns EMACS_TIME.  New arg ppsec.
+       Report an error if the time is invalid, rather than having the caller
+       do that.
+
+       * fileio.c: Include <stat-time.h>
+       (Fcopy_file): Copy higher-resolution time stamps.
+       Prefer to set the time stamp via a file descriptor if that works.
+       (Fset_file_times, Finsert_file_contents, Fwrite_region)
+       (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
+       (Fvisited_file_modtime, Fset_visited_file_modtime):
+       Support higher-resolution time stamps.
+
+       * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
+
+       * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
+
+       * image.c (prepare_image_for_display, clear_image_cache)
+       (lookup_image): Port to higer-resolution time stamps.
+
+       * keyboard.c (start_polling, bind_polling_period):
+       Check for time stamp overflow.
+       (read_char, kbd_buffer_get_event, timer_start_idle)
+       (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
+       (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
+       Port to higher-resolution time stamps.  Do not assume time_t is signed.
+       (decode_timer): New function.  Timers are now vectors of length 9,
+       not 8, to accommodate the picosecond component.
+       (timer_check_2): Use it.
+
+       * nsterm.m (select_timeout, timeval_subtract): Remove.
+       (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
+       as they're a bit more accurate and handle overflow better.
+       (ns_select): Change prototype to be compatible with pselect.
+       (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
+       * nsterm.h (ns_select): Adjust prototype.
+
+       * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
+       us-resolution time stamps.
+       (sys_select): Use the new EMACS_TIME_SIGN macro instead.
+
+       * lread.c (read_filtered_event): Port to ns-resolution time stamps.
+
+       * lisp.h (time_overflow): New decl.
+       (wait_reading_process_output): First arg is now intmax_t, not int,
+       to accommodate larger waits.
+
+       * process.h (struct Lisp_Process.read_output_delay):
+       Now counts nanoseconds, not microseconds.
+       * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
+       EMACS_HAS_USECS.
+       (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
+       (wait_reading_process_output):
+       Port to ns-resolution time stamps.
+       (Faccept_process_output, wait_reading_process_output):
+       Check for time stamp overflow.  Do not assume time_t is signed.
+       (select_wrapper): Remove; we now use pselect.
+       (Fprocess_attributes): Now generates ns-resolution time stamps.
+
+       * sysdep.c: Include utimens.h.  Don't include utime.h
+       or worry about struct utimbuf; gnulib does that for us now.
+       (gettimeofday): Remove; gnulib provides a substitute.
+       (make_timeval): New function.
+       (set_file_times): Now sets ns-resolution time stamps.
+       New arg FD; all uses changed.
+       (time_from_jiffies, ltime_from_jiffies, get_up_time)
+       (system_process_attributes):
+       Now returns ns-resolution time stamp.  All uses changed.
+       Check for time stamp overflow.
+
+       * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
+       provides a substitute now.
+
+       * systime.h: Include timespec.h rather than sys/time.h and time.h,
+       since it guarantees struct timespec.
+       (EMACS_TIME): Now struct timespec, so that we can support
+       ns-resolution time stamps.
+       (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
+       (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
+       (EMACS_USECS): Remove.
+       (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
+       so multiply the arg by 1000 before storing it.
+       (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
+       New macros.
+       (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
+       Port to ns-resolution time stamps.
+       (EMACS_TIME_NEG_P): Remove; replaced by....
+       (EMACS_TIME_SIGN): New macro.
+       (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
+       (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
+       (set_file_times, make_time, lisp_time_argument): Adjust signature.
+       (make_timeval, make_lisp_time, decode_time_components): New decls.
+       (EMACS_TIME_CMP): Remove; no longer used.  Plus, it was buggy, in
+       that it mishandled time_t overflow.  You can't compare by subtracting!
+       (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
+       (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
+
+       * term.c: Include <sys/time.h>.
+       (timeval_to_Time): New function, for proper overflow wraparound.
+       (term_mouse_position, term_mouse_click): Use it.
+
+       * undo.c (record_first_change): Support higher-resolution time stamps
+       in the undo buffer.
+       (Fprimitive_undo): Use them when restoring time stamps.
+
+       * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
+       (w32_get_internal_run_time):
+       Port to higher-resolution Emacs time stamps.
+       (ltime): Now accepts single 64-bit integer, as that's more convenient
+       for callers.
+
+       * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
+
+       * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
+       for compatibility with pselect.  Support ns-resolution time stamps.
+
+       * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
+
+       * xselect.c (wait_for_property_change, x_get_foreign_selection):
+       Check for time stamp overflow, and support ns-resolution time stamps.
+
+       * xterm.c: Don't include sys/time.h; gnulib does that for us now.
+       Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
+       (timeval_subtract): Remove; no longer needed.
+       (XTflash, XTring_bell, x_wait_for_event):
+       Port to ns-resolution time stamps.  Don't assume time_t is signed.
+
+2012-06-22  Chong Yidong  <cyd@gnu.org>
+
+       * xdisp.c (x_consider_frame_title): Revert last change.
+
+2012-06-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * alloc.c (NSTATICS): Enlarge to 0x650.  Otherwise, Emacs compiled
+       with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
+       aborts in staticpro during startup.  (Without -DBYTE_CODE_METER,
+       staticidx goes up to 1597 out of 1600 = 0x640.)
+
+2012-06-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
+       Otherwise, the umask might be mistakenly 0 while handling input signals.
+
+2012-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * minibuf.c (Fread_string): Bind minibuffer-completion-table.
+
+2012-06-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
+       * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
+       * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
+       access to `contents' member of Lisp_Vector objects with AREF and ASET
+       where appropriate.
+
+2012-06-19  Chong Yidong  <cyd@gnu.org>
+
+       * frame.c (delete_frame): When selecting a frame on a different
+       text terminal, do not alter the terminal's top-frame.
+
+       * xdisp.c (format_mode_line_unwind_data): Record the target
+       frame's selected window and its terminal's top-frame.
+       (unwind_format_mode_line): Restore them.
+       (x_consider_frame_title, display_mode_line, Fformat_mode_line):
+       Callers changed.
+       (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
+       since tty frames can be explicitly named.
+       (prepare_menu_bars): Likewise.
+
+       * term.c (Ftty_top_frame): New function.
+
+2012-06-18  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * makefile.w32-in ($(BLD)/w32menu.$(O)): Depend on w32heap.h.
+       Port byte-code-meter to modern targets.
+       * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
+       !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG.  Problem with
+       CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
+       (METER_1, METER_2): Simplify.
+
+2012-06-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * data.c (Fdefalias): Return `symbol' (bug#11686).
+
+2012-06-18  Martin Rudalics  <rudalics@gmx.at>
+
+       * buffer.c (Fkill_buffer): Don't throw an error when the buffer
+       gets killed during executing of this function (Bug#11665).
+       Try to always return Qt when the buffer has been actually killed.
+       (Vkill_buffer_query_functions): In doc-string say that functions
+       run by this hook should not change the current buffer.
+
+2012-06-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix recently-introduced process.c problems found by static checking.
+       * process.c (write_queue_push, write_queue_pop, send_process):
+       Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
+       (write_queue_pop): Fix pointer signedness problem.
+       (send_process): Remove unused local.
+
+2012-06-17  Chong Yidong  <cyd@gnu.org>
+
+       * xdisp.c (redisplay_internal): No need to redisplay terminal
+       frames that are not on top.
+
+2012-06-17  Troels Nielsen  <bn.troels@gmail.com>
+
+       * process.c (make_process): Initialize write_queue.
+       (write_queue_push, write_queue_pop): New functions.
+       (send_process): Use them to maintain correct ordering of process
+       writes (Bug#10815).
+
+2012-06-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (eassert): Assume C89 or later.
+       This removes the need for CHECK.
+       (CHECK): Remove.  Its comments about always evaluating its
+       argument were confusing, as 'eassert' typically does not evaluate
+       its argument.
+
+       * coding.c (produce_chars): Use ptrdiff_t, not int.
+
+       * xterm.c (x_draw_underwave): Check for integer overflow.
+       This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
+
+2012-06-17  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
+       referenced (Bug#11583).
+
+2012-06-16  Aurelien Aptel  <aurelien.aptel@gmail.com>
+
+       Implement wave-style variant of underlining.
+       * dispextern.h (face_underline_type): New enum.
+       (face): Add field for underline type.
+       * nsterm.m (ns_draw_underwave): New function.
+       (ns_draw_text_decoration): Use it.
+       * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
+       New functions.
+       (x_draw_glyph_string): Use them.
+       * xfaces.c (Qline, Qwave): New Lisp objects.
+       (check_lface_attrs, merge_face_ref)
+       (Finternal_set_lisp_face_attribute, realize_x_face):
+       Handle wave-style underline face attributes.
+       * xterm.c (x_draw_underwave): New function.
+       (x_draw_glyph_string): Use it.
+
+2012-06-16  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
+       ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
+       ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
+       ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
+       ($(BLD)/w32select.$(O)): Update dependencies.
+
+2012-06-16  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
+       (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
+       * character.c (_fetch_multibyte_char_p): Remove.
+       * alloc.c: Include "character.h" before "buffer.h".
+       * bidi.c: Likewise.
+       * buffer.c: Likewise.
+       * bytecode.c: Likewise.
+       * callint.c: Likewise.
+       * callproc.c: Likewise.
+       * casefiddle.c: Likewise.
+       * casetab.c: Likewise.
+       * category.c: Likewise.
+       * cmds.c: Likewise.
+       * coding.c: Likewise.
+       * composite.c: Likewise.
+       * dired.c: Likewise.
+       * dispnew.c: Likewise.
+       * doc.c: Likewise.
+       * dosfns.c: Likewise.
+       * editfns.c: Likewise.
+       * emacs.c: Likewise.
+       * fileio.c: Likewise.
+       * filelock.c: Likewise.
+       * font.c: Likewise.
+       * fontset.c: Likewise.
+       * fringe.c: Likewise.
+       * indent.c: Likewise.
+       * insdel.c: Likewise.
+       * intervals.c: Likewise.
+       * keyboard.c: Likewise.
+       * keymap.c: Likewise.
+       * lread.c: Likewise.
+       * macros.c: Likewise.
+       * marker.c: Likewise.
+       * minibuf.c: Likewise.
+       * nsfns.m: Likewise.
+       * nsmenu.m: Likewise.
+       * print.c: Likewise.
+       * process.c: Likewise.
+       * regex.c: Likewise.
+       * region-cache.c: Likewise.
+       * search.c: Likewise.
+       * syntax.c: Likewise.
+       * term.c: Likewise.
+       * textprop.c: Likewise.
+       * undo.c: Likewise.
+       * unexsol.c: Likewise.
+       * w16select.c: Likewise.
+       * w32fns.c: Likewise.
+       * w32menu.c: Likewise.
+       * window.c: Likewise.
+       * xdisp.c: Likewise.
+       * xfns.c: Likewise.
+       * xmenu.c: Likewise.
+       * xml.c: Likewise.
+       * xselect.c: Likewise.
+
+2012-06-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
+       If all the glyphs of the glyph row came from strings, and we have no
+       cursor positioning clues, put the cursor on the first glyph of the
+       row.
+       (handle_face_prop): Use chunk-relative overlay string index when
+       indexing into it->string_overlays array.  (Bug#11653)
+       (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
+       the rightmost.  (Bug#11720)
+
+2012-06-16  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * category.h (CHAR_HAS_CATEGORY): Define as inline.
+       (CATEGORY_MEMBER): Enforce 1/0 value.
+       * category.c (_temp_category_set): Remove.
+
+2012-06-16  Eli Zaretskii  <eliz@gnu.org>
 
        * window.c (Fdelete_other_windows_internal)
        (Fdelete_window_internal): Don't access frame's mouse highlight
        info of the initial frame.  (Bug#11677)
 
-2012-08-12  Jan Djärv  <jan.h.d@swipnet.se>
+2012-06-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * .gdbinit (xgetint): Fix recently-introduced paren typo.
+       Assume USE_2_TAGS_FOR_INTS.
+       (xreload): Adjust $tagmask width to match recent lisp.h change.
+
+       Simplify lisp.h in minor ways that should not affect code.
+       * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
+       (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
+       (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
+       Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
+       (INTTYPEBITS): New macro, for clarity.
+       (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
+       (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
+       Simplify now that USE_LSB_TAG is always defined.
+       (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
+       (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
+
+2012-06-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
+
+2012-06-13  Glenn Morris  <rgm@gnu.org>
+
+       * s/bsd-common.h (BSD4_3):
+       * s/usg5-4-common.h (USG5_4): No longer define; unused.
+
+2012-06-13  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
+       instead of union.
+       (XLI, XIL): Define.
+       (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
+       Use them.
+       * emacs.c (gdb_use_struct): Rename from gdb_use_union.
+       * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
+       * alloc.c (widen_to_Lisp_Object): Remove.
+       (mark_memory): Use XIL instead of widen_to_Lisp_Object.
+       * frame.c (delete_frame): Remove outdated comment.
+       * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
+       USE_LISP_UNION_TYPE.
+       (Fw32_unregister_hot_key): Likewise.
+       (Fw32_toggle_lock_key): Likewise.
+       * w32menu.c (add_menu_item): Likewise.
+       (w32_menu_display_help): Use XIL instead of checking
+       USE_LISP_UNION_TYPE.
+       * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
+       (init_heap): Likewise.
+       * w32term.c (w32_read_socket): Update comment.
+
+2012-06-13  Glenn Morris  <rgm@gnu.org>
+
+       * s/usg5-4-common.h, src/s/unixware.h:
+       Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
+
+       * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
+
+2012-06-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
+       * alloc.c (make_number) [!defined make_number]:
+       Remove, as lisp.h always defines this now.
+       (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
+       (roundup_size): Verify that it is a power of 2.
+       * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
+       * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
+       * lisp.h (USE_LSB_TAG): Allow the builder to compile with
+       -DUSE_LSB_TAG=0, to override the automatically-selected default.
+       USE_LSB_TAG now is always defined to be either 0 or 1.
+       All uses changed.
+       (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
+       code works fine either way, and efficiency is not a concern here,
+       as the union type is for debugging, not for production.
+       (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
+       Use an inline function on all platforms when using the union type,
+       since this is simpler and 'static inline' can be used portably
+       within Emacs now.
+       (LISP_INITIALLY_ZERO): New macro.
+       (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
+       (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
+
+2012-06-12  Glenn Morris  <rgm@gnu.org>
+
+       * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
+
+       * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
+
+       * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
+       Move BROKEN_SIGIO to configure.
+
+       * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
+       Move NO_TERMIO to configure.
+
+2012-06-12  Chong Yidong  <cyd@gnu.org>
+
+       * image.c (imagemagick_load_image): Use MagickFlattenImage if
+       MagickMergeImageLayers is undefined.  Use pixel pusher loop if
+       MagickExportImagePixels is undefined.
+
+2012-06-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * image.c (imagemagick_load_image): Remove unused label.
+
+2012-06-11  Glenn Morris  <rgm@gnu.org>
+
+       * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
+       * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
+       * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
+       * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
+
+2012-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (make_byte_code): New function.
+       (Fmake_byte_code): Use it.  Don't purify here.
+       * lread.c (read1): Use it as well to avoid extra allocation.
+
+2012-06-11  Chong Yidong  <cyd@gnu.org>
+
+       * image.c (imagemagick_load_image): Implement transparency.
+
+2012-06-10  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
+       account for preceding backslashes.  (Bug#11663)
+
+2012-06-09  Chong Yidong  <cyd@gnu.org>
+
+       * term.c: Support italics in capable terminals (Bug#9652).
+       (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
+       (turn_on_face): Output using TS_enter_italic_mode if available.
+       Don't handle unused blinking and alt-charset cases.
+       (turn_off_face): Handle italic case; discard unused tty_blinking_p
+       and tty_alt_charset_p cases.
+       (tty_capable_p, init_tty): Support italics.
+
+       * termchar.h (struct tty_display_info): Add field for italics.
+       Remove unused blink field.
+
+       * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
+       Handle slant.
+
+       * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
+       (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
+       tty_alt_charset_p.  Add tty_italic_p.
+
+2012-06-09  Michael Albinus  <michael.albinus@gmx.de>
+
+       * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
+       dbus_type_is_basic if available.
+       (xd_extract_signed, xd_extract_unsigned): Rename from
+       extract_signed and extract_unsigned, respectively.  Adapt callers.
+
+2012-06-09  Chong Yidong  <cyd@gnu.org>
+
+       * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
+
+       * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
+       case (Bug#9752).
+
+2012-06-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xdisp.c (vmessage): Treat frame message as multibyte.
+       Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
+       would generate the diagnostic "Making \302\247 buffer-local while
+       let-bound!".
+
+2012-06-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * dispnew.c (showing_window_margins_p): Undo last change, which
+       was done due to an inadvertent commit.
+       (adjust_frame_glyphs_for_frame_redisplay): Do call
+       showing_window_margins_p.
+
+2012-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fmake_var_non_special): New primitive.
+       (syms_of_eval): Defsubr it.
+       * lread.c (syms_of_lread): Mark `values' as lexically scoped.
+
+2012-06-08  Juanma Barranquero  <lekktu@gmail.com>
+
+       * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
+       function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
+
+2012-06-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * alloc.c (allocate_vectorlike): Fix last change.
+
+2012-06-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Block-based vector allocation of small vectors.
+       * lisp.h (struct vectorlike_header): New field `nbytes',
+       adjust comment accordingly.
+       * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
+       to denote vector blocks.  Adjust users (live_vector_p,
+       mark_maybe_pointer, valid_lisp_object_p) accordingly.
+       (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
+       (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
+       (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
+       (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
+       (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
+       (roundup_size): New constant.
+       (struct vector_block): New data type.
+       (vector_blocks, vector_free_lists, zero_vector): New variables.
+       (all_vectors): Rename to `large_vectors'.
+       (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
+       (sweep_vectors): New functions.
+       (allocate_vectorlike): Return `zero_vector' as the only vector of
+       0 items.  Allocate new vector from block if vector size is less than
+       or equal to VBLOCK_BYTES_MAX.
+       (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
+       (init_alloc_once): Add call to init_vectors.
+
+2012-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fmacroexpand): Stop if the macro returns the same form.
+
+2012-06-07  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * nsterm.m (ns_read_socket): Return early if there is a modal
-       window (Bug#12043).
+       * doprnt.c (doprnt): Truncate multibyte char correctly.
+       Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
+       would mishandle a string argument "Xc" if X was a multibyte
+       character of length 2: it would truncate after X's first byte
+       rather than including all of X.
 
-       * nsmenu.m (Popdown_data): New struct.
-       (pop_down_menu): p->pointer is Popdown_data.  Release the pool and
-       free Popdown_data.
-       (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
-       (initWithContentRect): Make imgView and contentView non-static
-       and autorelease them.  Also autorelease img and matrix (Bug#12005).
-       (dealloc): Remove (Bug#12005).
+2012-06-06  Chong Yidong  <cyd@gnu.org>
 
-       * nsterm.m (keyDown:): Interpret flags without left/right bits
-       as the left key (Bug#11670).
+       * buffer.c (word_wrap): Doc fix.
 
-       * nsmenu.m (ns_update_menubar): Add braces to ambigous if-else.
+2012-06-04  Paul Eggert  <eggert@cs.ucla.edu>
 
-2012-08-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+       * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
 
-       * unexmacosx.c (copy_data_segment): Copy initialized data in
-       statically linked libraries from input file rather than memory.
+2012-06-03  Glenn Morris  <rgm@gnu.org>
 
-2012-08-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+       * xdisp.c (tool-bar-style): Doc fix.
 
-       * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
-       LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
-       (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
+2012-06-03  Ulrich Müller  <ulm@gentoo.org>
 
-2012-07-19  Chong Yidong  <cyd@gnu.org>
+       * Makefile.in (PAXCTL): Define.
+       (temacs$(EXEEXT)): Disable memory randomization for the temacs
+       binary via PaX flags if the paxctl utility is available.
+       (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
+       Restore PaX flags to their default.  (Bug#11398)
 
-       * window.c (Fwindow_absolute_pixel_edges)
-       (Fdelete_other_windows_internal): Signal an error if the window is
-       on a dead frame (Bug#11984).
+2012-06-03  Chong Yidong  <cyd@gnu.org>
 
-2012-07-14  Eli Zaretskii  <eliz@gnu.org>
+       * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
+       buffer (Bug#11226).
 
-       Remove FILE_SYSTEM_CASE.
-       * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
+2012-06-03  Chong Yidong  <cyd@gnu.org>
 
-       * fileio.c (FILE_SYSTEM_CASE): Don't define.
-       (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
-       Fixes problems on MS-DOS with Vtemp_file_name_pattern when
-       call-process-region passes it through expand-file-name.
+       * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
+       (note_mode_line_or_margin_highlight): If there is no help echo,
+       use mode-line-default-help-echo.  Handle the case where the mouse
+       position is past the end of the mode line string.
 
-       * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
+       * buffer.c (buffer_local_value_1): New function, split from
+       Fbuffer_local_value; can return Qunbound.
+       (Fbuffer_local_value): Use it.
+       (Vmode_line_format): Docstring tweaks.
 
-2012-07-12  Andreas Schwab  <schwab@linux-m68k.org>
+2012-06-02  Paul Eggert  <eggert@cs.ucla.edu>
 
-       Fix crash when creating indirect buffer (Bug#11917)
-       * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
-       Don't handle unbound variables specially if non-zero.
-       (Fbuffer_local_variables): Pass zero.
-       (clone_per_buffer_values): Pass non-zero.
+       * sysdep.c (system_process_attributes): Improve comment.
 
-2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
+2012-06-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * gnutls.c (emacs_gnutls_handshake): Revert last change.  Add QUIT
-       to make the loop interruptible.
+       * keyboard.c: Export real-this-command to Elisp.
+       (syms_of_keyboard): Rename real_this_command to Vreal_this_command
+       and DEFVAR it.  Update all users.
 
-2012-06-26  Andreas Schwab  <schwab@linux-m68k.org>
+2012-06-02  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * gnutls.c (emacs_gnutls_handshake): Only retry if
-       GNUTLS_E_INTERRUPTED.
+       * minibuf.c (Fassoc_string): Remove duplicate declaration.
 
-2012-06-23  Eli Zaretskii  <eliz@gnu.org>
+       * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
+       Convert pctcpu and pctmem to Lisp float properly.
+       Let the compiler fold better, as 100.0/0x8000 is exact.
 
-       * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
-       in the logic of incrementing and decrementing the value of
-       use_relocatable_buffers.
+2012-06-02  Andreas Schwab  <schwab@linux-m68k.org>
 
-2012-06-21  Glenn Morris  <rgm@gnu.org>
+       * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
+       cons_block.
 
-       * charset.c (init_charset): Make lack of etc/charsets fatal.
+2012-06-01  Paul Eggert  <eggert@cs.ucla.edu>
 
-2012-06-11  Jan Djärv  <jan.h.d@swipnet.se>
+       * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
 
-       * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
-       referenced (Bug#11583).
+2012-06-01  Dmitry Antipov  <dmantipov@yandex.ru>
 
-2012-06-01  Chong Yidong  <cyd@gnu.org>
+       For a 'struct window', replace some Lisp_Object fields to
+       bitfields where appropriate, remove unused fields.
+       * window.h (struct window): Remove unused 'last_mark_x' and
+       'last_mark_y' fields.  Rename 'mini_p' field to 'mini',
+       change it's type from Lisp_Object to bitfield.
+       Change type of 'force_start', 'optional_new_start',
+       'last_had_star', 'update_mode_line' and 'start_at_line_beg'
+       fields from Lisp_Object to bitfield.  Adjust users accordingly.
 
-       * Version 24.1 released.
+2012-05-31  Paul Eggert  <eggert@cs.ucla.edu>
 
-2012-05-30  Eli Zaretskii  <eliz@gnu.org>
+       Pacify gcc -Wdouble-precision when using Xaw.
+       * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
+       [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
+       Use 'float' consistently, rather than 'float' in most places
+       and 'double' in a couple of places.
+
+2012-05-31  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (handle_stop): Detect whether we have overlay strings
        loaded by testing it->current.overlay_string_index to be
        non-negative, instead of checking whether n_overlay_strings is
        positive.  (Bug#11587)
 
-2012-05-30  Chong Yidong  <cyd@gnu.org>
+2012-05-31  Chong Yidong  <cyd@gnu.org>
 
        * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
 
        * doc.c (Fsubstitute_command_keys): Doc fix.
 
-2012-05-29  Eli Zaretskii  <eliz@gnu.org>
+2012-05-31  Eli Zaretskii  <eliz@gnu.org>
 
        * search.c (search_buffer): Remove calls to
        r_alloc_inhibit_buffer_relocation, as it is now called by
        maybe_unify_char, which was the cause of relocation of buffer text
        in bug#11519.
 
-2012-05-23  Eli Zaretskii  <eliz@gnu.org>
+2012-05-31  Eli Zaretskii  <eliz@gnu.org>
 
        * charset.c (maybe_unify_char): Inhibit relocation of buffer text
        for the duration of call to load_charset, to avoid problems with
        decrement the inhibition flag, instead of just setting or
        resetting it.
 
-2012-05-24  Ken Brown  <kbrown@cornell.edu>
+2012-05-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove obsolete '#define static' cruft.
+       * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
+       This #undef was "temporary" in 2000; it is no longer needed
+       now that '#define static' has gone away.
+       * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
+       (gray_bitmap_bits): Remove; no longer needed.
+       All uses replaced with definiens.
+       * xterm.c: Include "bitmaps/gray.xbm".
+
+2012-05-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Clean up __executable_start, monstartup when --enable-profiling.
+       The following changes affect the code only when profiling.
+       * dispnew.c (__executable_start): Rename from safe_bcopy.
+       Define only on platforms that need it.
+       * emacs.c: Include <sys/gmon.h> when profiling.
+       (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
+       (__executable_start): Remove decl, since lisp.h does it now.
+       (safe_bcopy): Remove decl; no longer has that name.
+       (main): Coalesce #if into single bit of code, for simplicity.
+       Cast pointers to uintptr_t, since standard libraries want integers
+       and not pointers.
+       * lisp.h (__executable_start): New decl.
+
+2012-05-31  Glenn Morris  <rgm@gnu.org>
+
+       * image.c (Fimagemagick_types): Doc fix.
+
+2012-05-30  Jim Meyering  <meyering@redhat.com>
+
+       * callproc.c (Fcall_process_region): Include directory component
+       in mkstemp error message (Bug#11586).
+
+2012-05-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c, lisp.h (make_pure_vector): Now static.
+
+2012-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
+       Move to byte-run.el.
+       (Fautoload): Do the hash-doc more carefully.
+       * data.c (Fdefalias): Purify definition, except for keymaps.
+       (Qdefun): Move from eval.c.
+       * lisp.h (Qdefun): Remove.
+       * lread.c (read1): Tiny simplification.
+
+2012-05-29  Troels Nielsen  <bn.troels@gmail.com>
+
+       Do not create empty overlays with the evaporate property (Bug#9642).
+       * buffer.c (Fmove_overlay): Reinstate the earlier fix for
+       Bug#9642, but explicitly check that the buffer the overlay would
+       be moved to is live and rearrange lines to make sure that errors
+       will not put the overlay in an inconsistent state.
+       (Fdelete_overlay): Cosmetics.
+
+2012-05-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32term.c (my_bring_window_to_top): New function.
+       (x_raise_frame): Use handle returned by DeferWindowPos, which
+       could be different from the original one.
+       Call my_bring_window_to_top instead of my_set_foreground_window.
+       (Bug#11513)
+
+       * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
+       by calling BringWindowToTop.
+
+       * w32term.h (WM_EMACS_BRINGTOTOP): New message.
+       (WM_EMACS_END): Increase by one.
+
+2012-05-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
+       This avoids undefined behavior that might cause the eassert
+       to not catch an out-of-range value.
+
+2012-05-28  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
+       Update dependencies.
+
+2012-05-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * bidi.c (bidi_mirror_char): Fix last change.
+
+2012-05-27  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * unexmacosx.c (copy_data_segment): Truncate after 16 characters
+       when referring to sectname field in printf format.
+
+2012-05-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
+       Only r_alloc_inhibit_buffer_relocation needed to be added;
+       the others were already declared.
+
+       * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
+       before checking whether it's out of range.  Put the check inside
+       eassert.  See
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
+
+2012-05-27  Ken Brown  <kbrown@cornell.edu>
 
        * callproc.c (Fcall_process): Restore a line that was accidentally
        commented out in the 2011-02-13 change (bug#11547).
 
-2012-05-23  Eli Zaretskii  <eliz@gnu.org>
+2012-05-27  Eli Zaretskii  <eliz@gnu.org>
 
        * lisp.h [REL_ALLOC]: Add prototypes for external functions
        defined on ralloc.c.
        text while re_search_2 is doing its job, because re_search_2 is
        passed C pointers to buffer text.  (Bug#11519)
 
-2012-05-21  Eli Zaretskii  <eliz@gnu.org>
-
        * msdos.c (internal_terminal_init) <Vwindow_system_version>:
        Update value to 24.
 
-2012-05-19  Eli Zaretskii  <eliz@gnu.org>
-
        * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
        state after an additional call to move_it_in_display_line_to, keep
        the values of it->max_ascent and it->max_descent found for the
        was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
        (Bug#11464)
 
-2012-05-15  Eli Zaretskii  <eliz@gnu.org>
+2012-05-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix coding-related core dumps with gcc -ftrapv.
+       The code was computing A - B, where A and B are pointers, and B is
+       random garbage.  This can lead to core dumps on platforms that
+       have special pointer registers, and it also leads to core dumps on
+       x86-64 when compiled with gcc -ftrapv.  The fix is to compute
+       A - B only when B is initialized properly.
+       * coding.c (coding_set_source, coding_set_destination): Return void.
+       (coding_change_source, coding_change_destinations): New functions,
+       with the old behaviors of coding_set_source and coding_set_destination.
+       All callers that need an offset changed to use these new functions.
+
+2012-05-26  Glenn Morris  <rgm@gnu.org>
+
+       * nsterm.m (ns_init_paths): Don't mess with INFOPATH.  (Bug#2791)
+
+2012-05-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Extend mouse support on W32 text-mode console.
+       * xdisp.c (draw_row_with_mouse_face):
+       Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
+
+       * w32console.c: Include window.h.
+       (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
+       New functions.
+       (initialize_w32_display): Initialize mouse-highlight data.
+
+       * w32inevt.c: Include termchar.h and window.h.
+       (do_mouse_event): Support mouse-autoselect-window.  When the mouse
+       moves, call note_mouse_highlight.  If help_echo changed, call
+       gen_help_event to produce help-echo message in the echo area.
+       Call clear_mouse_face if mouse_face_hidden is set in the mouse
+       highlight info.
+
+2012-05-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lread.c (read1): Simplify slightly to avoid an overflow warning
+       with GCC 4.7.0 on x86-64.
+
+2012-05-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * bidi.c (bidi_mirror_char): Revert last change: an int is
+       definitely wide enough here.
+
+2012-05-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix integer width and related bugs (Bug#9874).
+       * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
+       (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
+       (string_bytes, check_sblock, allocate_string_data):
+       (compact_small_strings, Fmake_bool_vector, make_string)
+       (make_unibyte_string, make_multibyte_string)
+       (make_string_from_bytes, make_specified_string)
+       (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
+       (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
+       (mark_vectorlike):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (allocate_pseudovector):
+       Use int, not EMACS_INT, where int is wide enough.
+       (inhibit_garbage_collection, Fgarbage_collect):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
+       int might not be wide enough.
+       (bidi_cache_search, bidi_cache_find, bidi_init_it)
+       (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
+       (bidi_at_paragraph_end, bidi_find_paragraph_start)
+       (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
+       (bidi_level_of_next_char, bidi_move_to_visually_next):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
+       (Fkill_buffer, Fset_buffer_major_mode)
+       (advance_to_char_boundary, Fbuffer_swap_text)
+       (Fset_buffer_multibyte, overlays_at, overlays_in)
+       (overlay_touches_p, struct sortvec, record_overlay_string)
+       (overlay_strings, recenter_overlay_lists)
+       (adjust_overlays_for_insert, adjust_overlays_for_delete)
+       (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
+       (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
+       (Foverlay_recenter, last_overlay_modification_hooks_used)
+       (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (validate_region): Omit unnecessary test for b <= e,
+       since that's guaranteed by the previous test.
+       (adjust_overlays_for_delete): Avoid pos + length overflow.
+       (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
+       (report_overlay_modification):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
+       Omit pointer cast, which isn't needed anyway, and doesn't work
+       after the EMACS_INT -> ptrdiff_t change.
+       (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
+       * buffer.h: Adjust decls to match defn changes elsewhere.
+       (struct buffer_text, struct buffer):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       Use EMACS_INT, not int, where int might not be wide enough.
+       * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
+       not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (exec_byte_code): Use tighter memory-full test, one that checks
+       for alloca overflow.  Don't compute the address of the object just
+       before an array, as that's not portable.  Use EMACS_INT, not
+       ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
+       * callint.c (Fcall_interactively):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * callproc.c (call_process_kill, Fcall_process):
+       Don't assume pid_t fits into an Emacs fixnum.
+       (call_process_cleanup, Fcall_process, child_setup):
+       Don't assume pid_t fits into int.
+       (call_process_cleanup, Fcall_process, delete_temp_file)
+       (Fcall_process_region):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Fcall_process): Simplify handling of volatile integers.
+       Use int, not EMACS_INT, where int will do.
+       * casefiddle.c (casify_object, casify_region, operate_on_word)
+       (Fupcase_word, Fdowncase_word, Fcapitalize_word):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (casify_object): Avoid integer overflow when overallocating buffer.
+       * casetab.c (set_identity, shuffle): Prefer int to unsigned when
+       either works.  Use lint_assume to convince GCC 4.6.1 that it's OK.
+       * category.c (Fchar_category_set): Don't assume fixnum fits in int.
+       * category.h (CATEGORYP): Don't assume arg is nonnegative.
+       * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
+       integers are now checked earlier.  All uses replaced with XINT.
+       (ccl_driver):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       For CCL_MapSingle, check that content and value are in int range.
+       (ccl_driver, Fregister_code_conversion_map):
+       Check that Vcode_version_map_vector is a vector.
+       (resolve_symbol_ccl_program): Check that vector header is in range.
+       Always copy the vector, so that we can check its contents reliably
+       now rather than having to recheck each instruction as it's being
+       executed.  Check that vector words fit in 'int'.
+       (ccl_get_compiled_code, Fregister_ccl_program)
+       (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
+       program indexes, to avoid needless 32-bit limit on 64-bit hosts.
+       (Fccl_execute, Fccl_execute_on_string): Check that initial reg
+       contents are in range.
+       (Fccl_execute_on_string): Check that status is in range.
+       * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
+       * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
+       Accept and return EMACS_INT, not int, because callers can pass values
+       out of 'int' range.
+       (c_string_width, strwidth, lisp_string_width, chars_in_text)
+       (multibyte_chars_in_text, parse_str_as_multibyte)
+       (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
+       (str_as_unibyte, str_to_unibyte, string_count_byte8)
+       (string_escape_byte8, Fget_byte):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
+       avoid mishandling large integers.
+       * character.h: Adjust decls to match defn changes elsewhere.
+       * charset.c (load_charset_map_from_file, find_charsets_in_text)
+       (Ffind_charset_region):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (load_charset_map_from_file): Redo idx calculation to avoid overflow.
+       (load_charset_map_from_vector, Fdefine_charset_internal):
+       Don't assume fixnum fits in int.
+       (load_charset_map_from_vector, Fmap_charset_chars):
+       Remove now-unnecessary CHECK_NATNUMs.
+       (Fdefine_charset_internal): Check ranges here, more carefully.
+       Don't rely on undefined behavior with signed left shift overflow.
+       Don't assume unsigned int fits into fixnum, or that fixnum fits
+       into unsigned int.  Don't require max_code to be a valid fixnum;
+       that's not true for gb10830 4-byte on a 32-bit host.  Allow
+       invalid_code to be a cons, for the same reason.  Require code_offset
+       to be a character.  Avoid int overflow if max_char is close
+       to INT_MAX.
+       (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
+       this is intended anyway and avoids some undefined behavior.
+       (load_charset_map): Pass unsigned, not int, as 2nd arg of
+       INDEX_TO_CODE_POINT, as that's what it expects.
+       (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
+       * charset.h (DECODE_CHAR): Return int, not unsigned;
+       this is what was intended anyway, and it avoids undefined behavior.
+       (CHARSET_OFFSET): Remove unused macro, instead of fixing its
+       integer-overflow issues.
+       (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
+       Formerly, it returned EMACS_INT on 64-bit hosts in the common case
+       where the argument is EMACS_INT, and this behavior is not intended.
+       * chartab.c (Fmake_char_table, Fset_char_table_range)
+       (uniprop_get_decoder, uniprop_get_encoder):
+       Don't assume fixnum fits in int.
+       * cmds.c (move_point): New function, that does the gist of
+       Fforward_char and Fbackward_char, but does so while checking
+       for integer overflow more accurately.
+       (Fforward_char, Fbackward_char): Use it.
+       (Fforward_line, Fend_of_line, internal_self_insert)
+       (internal_self_insert):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       Fix a FIXME, by checking for integer overflow when calculating
+       target_clm and actual_clm.
+       * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
+       (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
+       (ASSURE_DESTINATION, coding_alloc_by_realloc)
+       (coding_alloc_by_making_gap, alloc_destination)
+       (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
+       (encode_coding_utf_16, detect_coding_emacs_mule)
+       (decode_coding_emacs_mule, encode_coding_emacs_mule)
+       (detect_coding_iso_2022, decode_coding_iso_2022)
+       (encode_invocation_designation, encode_designation_at_bol)
+       (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
+       (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
+       (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
+       (encode_coding_ccl, encode_coding_raw_text)
+       (detect_coding_charset, decode_coding_charset)
+       (encode_coding_charset, detect_eol, decode_eol, produce_chars)
+       (produce_composition, produce_charset, produce_annotation)
+       (decode_coding, handle_composition_annotation)
+       (handle_charset_annotation, consume_chars, decode_coding_gap)
+       (decode_coding_object, encode_coding_object, detect_coding_system)
+       (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
+       (code_convert_region, code_convert_string)
+       (Fdefine_coding_system_internal)
+       (coding_set_source, coding_set_destination):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
+       (Fdefine_coding_system_internal):
+       Don't assume fixnums fit in int.
+       (decode_coding_gap, decode_coding_object, encode_coding_object)
+       (Fread_coding_system, Fdetect_coding_region)
+       (Funencodable_char_position, Fcheck_coding_systems_region)
+       (get_translation, handle_composition_annotation, consume_chars):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (consume_chars): Rewrite to not calculate an address outside buffer.
+       (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
+       Don't access memory outside of the args array.
+       (Fdefine_coding_system_internal): Check for charset-id overflow.
+       (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
+       result of ENCODE_CHAR.
+       * coding.h: Adjust decls to match defn changes elsewhere.
+       (struct coding_system):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * composite.c (get_composition_id, find_composition)
+       (run_composition_function, update_compositions)
+       (compose_text, composition_gstring_put_cache)
+       (composition_gstring_p, composition_gstring_width)
+       (fill_gstring_header, fill_gstring_body, autocmp_chars)
+       (composition_compute_stop_pos, composition_reseat_it)
+       (composition_update_it, struct position_record)
+       (find_automatic_composition, composition_adjust_point)
+       (Fcomposition_get_gstring, Ffind_composition_internal):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (update_compositions):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * composite.h: Adjust decls to match defn changes elsewhere.
+       (struct composition):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
+       Do not attempt to compute the address of the object just before a
+       buffer; this is not portable.
+       (Faref, Faset):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Faset): Use int, not EMACS_INT, where int is wide enough.
+       (Fstring_to_number): Don't assume fixnums fit in int.
+       (Frem): Don't assume arg is nonnegative.
+       * dbusbind.c (xd_append_arg): Check for integers out of range.
+       (Fdbus_call_method): Don't overflow the timeout int.
+       (extract_signed, extract_unsigned): New functions.
+       (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
+       (xd_get_connection_references): Return ptrdiff_t, not int.
+       All uses changed.
+       (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
+       (xd_read_message_1):
+       Use int, not unsigned, where the dbus API uses int.
+       (Fdbus_message_internal): Don't overflow mtype.
+       (syms_of_dbusbind): Allocate right-sized buffer for integers.
+       * dired.c (directory_files_internal, file_name_completion, scmp)
+       (file_name_completion_stat):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (file_name_completion): Don't overflow matchcount.
+       (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
+       * dispextern.h: Adjust decls to match defn changes elsewhere.
+       (struct text_pos, struct glyph, struct bidi_saved_info)
+       (struct bidi_string_data, struct bidi_it, struct composition_it)
+       (struct it):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (struct display_pos, struct composition_it, struct it):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * dispnew.c (increment_matrix_positions)
+       (increment_row_positions, mode_line_string)
+       (marginal_area_string):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (duration_to_sec_usec): New function, to check for overflow better.
+       (Fsleep_for, sit_for): Use it.
+       * doc.c (get_doc_string, store_function_docstring):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (get_doc_string, Fsnarf_documentation):
+       Use int, not EMACS_INT, where int is wide enough.
+       (get_doc_string):
+       Use SAFE_ALLOCA, not alloca.
+       Check for overflow when converting EMACS_INT to off_t.
+       * doprnt.c (doprnt):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
+       Don't assume uid_t fits into fixnum.
+       (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
+       (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
+       (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
+       (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
+       (general_insert_function)
+       (Finsert_char, make_buffer_string, make_buffer_string_both)
+       (update_buffer_properties, Fbuffer_substring)
+       (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
+       (Fsubst_char_in_region, check_translation)
+       (Ftranslate_region_internal, save_restriction_restore, Fformat)
+       (transpose_markers, Ftranspose_regions):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (clip_to_bounds): Move to lisp.h as an inline function).
+       (Fconstrain_to_field): Don't assume integers are nonnegative.
+       (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
+       (Fsubst_char_in_region, Fsave_restriction):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Femacs_pid): Don't assume pid_t fits into fixnum.
+       (lo_time): Use int, not EMACS_INT, when int suffices.
+       (lisp_time_argument): Check for usec out of range.
+       (Fencode_time): Don't assume fixnum fits in int.
+       (Fuser_login_name, Fuser_full_name): Signal an error
+       if a uid argument is out of range, rather than relying on
+       undefined behavior.
+       (Fformat_time_string): Remove now-unnecessary check.
+       lisp_time_argument checks for out-of-range usec now.
+       Use ptrdiff_t, not size_t, where ptrdiff_t will do.
+       * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
+       (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
+       (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
+       (init_cmdargs, Fdump_emacs):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
+       the bottom (typically) 32 bits of the fixnum.
+       * eval.c (specpdl_size, call_debugger):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (when_entered_debugger, Fbacktrace_debug):
+       Don't assume fixnum can fit in int.
+       (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
+       the object just before a buffer; this is not portable.
+       (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
+       (grow_specpdl, unbind_to):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
+       (grow_specpdl): Simplify allocation by using xpalloc.
+       (Fprog1, Fprog2): Don't assume list length fits in int.  Simplify.
+       * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
+       (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
+       (a_write, e_write):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fcopy_file, non_regular_nbytes, read_non_regular)
+       (Finsert_file_contents):
+       Use int, not EMACS_INT, where int is wide enough.
+       (READ_BUF_SIZE): Verify that it fits in int.
+       (Finsert_file_contents): Check that counts are in proper range,
+       rather than assuming fixnums fit into ptrdiff_t etc.
+       Don't assume fixnums fit into int.
+       * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
+       * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
+       (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
+       (string_char_to_byte, string_byte_to_char)
+       (string_make_multibyte, string_to_multibyte)
+       (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
+       (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
+       (substring_both, Fdelete, internal_equal, Ffillarray)
+       (Fclear_string, mapcar1)
+       (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
+       (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
+       (larger_vector, make_hash_table, maybe_resize_hash_table)
+       (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
+       (Fmaphash, secure_hash):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (concat): Check for string index and length overflow.
+       (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
+       (Frequire):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (larger_vector): New API (vec, incr_min, size_max) replaces old
+       one (vec, new_size, init).  This catches size overflow.
+       INIT was removed because it was always Qnil.
+       All callers changed.
+       (INDEX_SIZE_BOUND): New macro, which calculates more precisely
+       the upper bound on a hash table index size.
+       (make_hash_table, maybe_resize_hash_table): Use it.
+       (secure_hash): Computer start_byte and end_byte only after
+       they're known to be in ptrdiff_t range.
+       * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
+       (Ffont_get_glyphs, Ffont_at):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
+       (Flist_fonts, Fopen_font):
+       Don't assume fixnum can fit in int.
+       (check_gstring): Don't assume index can fit in int.
+       (font_match_p): Check that fixnum is a character, not a nonnegative
+       fixnum, since the later code needs to stuff it into an int.
+       (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
+       (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
+       conversion overflow issues.
+       (Fopen_font): Check for integer out of  range.
+       (Ffont_get_glyphs): Don't assume index can fit in int.
+       * font.h: Adjust decls to match defn changes elsewhere.
+       * fontset.c (reorder_font_vector): Redo score calculation to avoid
+       integer overflow.
+       (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
+       printmax_t, where ptrdiff_t is wide enough.
+       (Finternal_char_font):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
+       (Fset_frame_height, Fset_frame_width, Fset_frame_size)
+       (Fset_frame_position, x_set_frame_parameters)
+       (x_set_line_spacing, x_set_border_width)
+       (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
+       Check that fixnums are in proper range for system types.
+       (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fmodify_frame_parameters): Don't assume fixnum fits in int.
+       Use SAFE_ALLOCA_LISP, not alloca.
+       * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
+       intptr_t is wide enough.
+       * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
+       (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
+       (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
+       Check for fixnum out of range.
+       * ftfont.c (ftfont_list): Don't assume index fits in int.
+       Check that fixnums are in proper range for system types.
+       (ftfont_shape_by_flt):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
+       Check that fixnums are in proper range for system types.
+       * gnutls.h: Adjust decls to match defn changes elsewhere.
+       * gtkutil.c (xg_dialog_run):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (update_frame_tool_bar):
+       Check that fixnums are in proper range for system types.
+       * image.c (parse_image_spec): Redo count calculation to avoid overflow.
+       (lookup_image): Check that fixnums are in range for system types.
+       * indent.c (last_known_column, last_known_column_point):
+       (current_column_bol_cache):
+       (skip_invisible, current_column, check_display_width):
+       (check_display_width, scan_for_column, current_column_1)
+       (Findent_to, Fcurrent_indentation, position_indentation)
+       (indented_beyond_p, Fmove_to_column, compute_motion):
+       (Fcompute_motion, Fvertical_motion):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (last_known_column_modified): Use EMACS_INT, not int.
+       (check_display_width):
+       (Fcompute_motion):
+       Check that fixnums and floats are in proper range for system types.
+       (compute_motion): Don't assume index or fixnum fits in int.
+       (compute_motion, Fcompute_motion):
+       Use int, not EMACS_INT, when it is wide enough.
+       (vmotion): Omit local var start_hpos that is always 0; that way
+       we don't need to worry about overflow in expressions involving it.
+       * indent.h: Adjust decls to match defn changes elsewhere.
+       (struct position):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       Use int, not EMACS_INT, where int is wide enough.
+       Remove unused members ovstring_chars_done and tab_offset;
+       all uses removed.
+       * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
+       (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
+       (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
+       (make_gap, copy_text, insert, insert_and_inherit)
+       (insert_before_markers, insert_before_markers_and_inherit)
+       (insert_1, count_combining_before, count_combining_after)
+       (insert_1_both, insert_from_string)
+       (insert_from_string_before_markers, insert_from_string_1)
+       (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
+       (adjust_after_replace, adjust_after_insert, replace_range)
+       (replace_range_2, del_range, del_range_1, del_range_byte)
+       (del_range_both, del_range_2, modify_region)
+       (prepare_to_modify_buffer, signal_before_change)
+       (signal_after_change, Fcombine_after_change_execute):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * intervals.c (traverse_intervals, rotate_right, rotate_left)
+       (balance_an_interval, split_interval_right, split_interval_left)
+       (find_interval, next_interval, update_interval)
+       (adjust_intervals_for_insertion, delete_node, delete_interval)
+       (interval_deletion_adjustment, adjust_intervals_for_deletion)
+       (static_offset_intervals, offset_intervals)
+       (merge_interval_right, merge_interval_left, make_new_interval)
+       (graft_intervals_into_buffer, temp_set_point_both)
+       (temp_set_point, set_point, adjust_for_invis_intang)
+       (set_point_both, move_if_not_intangible, get_property_and_range)
+       (get_local_map, copy_intervals, copy_intervals_to_string)
+       (compare_string_intervals, set_intervals_multibyte_1):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * intervals.h: Adjust decls to match defn changes elsewhere.
+       (struct interval):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * keyboard.c (this_command_key_count, this_single_command_key_start)
+       (before_command_key_count, before_command_echo_length, echo_now)
+       (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
+       (command_loop_1, safe_run_hooks, read_char, timer_check_2)
+       (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
+       (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (last_non_minibuf_size, last_point_position, echo_truncate)
+       (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
+       (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
+       (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
+       (stuff_buffered_input):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (last_auto_save, command_loop_1, read_char):
+       Use EMACS_INT, not int, to avoid integer overflow.
+       (record_char): Avoid overflow in total_keys computation.
+       (parse_modifiers_uncached): Redo index calculation to avoid overflow.
+       * keyboard.h: Adjust decls to match defn changes elsewhere.
+       * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
+       (Fkey_description, Fdescribe_vector, Flookup_key):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (click_position): New function, to check that positions are in range.
+       (Fcurrent_active_maps):
+       (describe_command):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Faccessible_keymaps, Fkey_description):
+       (preferred_sequence_p):
+       Don't assume fixnum can fit into int.
+       (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
+       Check for integer overflow in size calculations.
+       (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
+       avoid mishandling large integers.
+       * lisp.h: Adjust decls to match defn changes elsewhere.
+       (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
+       (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
+       (struct Lisp_Marker):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (clip_to_bounds): Now an inline function, moved here from editfns.c.
+       (GLYPH_CODE_P): Check for overflow in system types, subsuming the
+       need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
+       All callers changed.
+       (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
+       Assume the arg has valid form, since it always does.
+       (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
+       unsigned integer system type.
+       (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
+       (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
+       (duration_to_sec_usec): New decl.
+       * lread.c (read_from_string_index, read_from_string_index_byte)
+       (read_from_string_limit, readchar, unreadchar, openp)
+       (read_internal_start, read1, oblookup):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fload, readevalloop, Feval_buffer, Feval_region):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (openp): Check for out-of-range argument to 'access'.
+       (read1): Use int, not EMACS_INT, where int is wide enough.
+       Don't assume fixnum fits into int.
+       Fix off-by-one error that can read outside a buffer.
+       (read_filtered_event): Use duration_to_sec_usec
+       to do proper overflow checking on durations.
+       * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
+       in size calculation.
+       (Fexecute_kbd_macro):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * marker.c (cached_charpos, cached_bytepos, CONSIDER)
+       (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
+       (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
+       (set_marker_both, set_marker_restricted_both, marker_position)
+       (marker_byte_position, Fbuffer_has_markers_at):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
+       * menu.c (ensure_menu_items): Rename from grow_menu_items.
+       It now merely ensures that the menu is large enough, without
+       necessarily growing it, as this avoids some integer overflow issues.
+       All callers changed.
+       (keymap_panes, parse_single_submenu, Fx_popup_menu):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
+       Use SAFE_ALLOCA_LISP, not alloca.
+       (find_and_return_menu_selection): Avoid unnecessary casts of pointers
+       to EMACS_INT.  Check that fixnums are in proper range for system types.
+       * minibuf.c (minibuf_prompt_width, string_to_object)
+       (Fminibuffer_contents, Fminibuffer_contents_no_properties)
+       (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (get_minibuffer, read_minibuf_unwind):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
+       this simplifies overflow checking.  All callers changed.
+       (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
+       (Ftest_completion):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
+       (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
+       Check that fixnums are in proper range for system types.
+       (Fx_create_frame, Fx_show_tip):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * nsfont.m (ns_findfonts, nsfont_list_family):
+       Don't assume fixnum fits in long.
+       * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
+       wide enough.
+       * nsselect.m (ns_get_local_selection, clean_local_selection_data):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
+       (PRINTDECLARE, PRINTPREPARE):
+       (strout, print_string):
+       (print, print_preprocess, print_check_string_charset_prop)
+       (print_object):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (PRINTDECLARE):
+       (temp_output_buffer_setup, Fprin1_to_string, print_object):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
+       (printchar, strout): Use xpalloc to catch size calculation overflow.
+       (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
+       (print_error_message): Use SAFE_ALLOCA, not alloca.
+       (print_object): Use int, not EMACS_INT, where int is wide enough.
+       (print_depth, new_backquote_output, print_number_index):
+       Use ptrdiff_t, not int, where int might not be wide enough.
+       * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
+       (Fset_process_window_size, Fformat_network_address)
+       (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
+       (sigchld_handler):
+       Check that fixnums are in proper range for system types.
+       (Fsignal_process): Simplify by avoiding a goto.
+       Check for process-ids out of pid_t range rather than relying on
+       undefined behavior.
+       (process_tick, update_tick): Use EMACS_INT, not int.
+       (Fformat_network_address, read_process_output, send_process)
+       (Fprocess_send_region, status_notify):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
+       (wait_reading_process_output, read_process_output, exec_sentinel):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
+       (Faccept_process_output): Use duration_to_sec_usec to do proper
+       overflow checking on durations.
+       (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
+       Don't assume pid_t fits in int.
+       * process.h (struct Lisp_Process): Members tick and update_tick
+       are now of type EMACS_INT, not int.
+       * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
+       configured --with-wide-int.
+       * scroll.c (calculate_scrolling, calculate_direct_scrolling)
+       (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
+       * search.c (looking_at_1, string_match_1):
+       (fast_string_match, fast_c_string_match_ignore_case)
+       (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
+       (scan_newline, find_before_next_newline, search_command)
+       (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
+       (set_search_regs, wordify):
+       (Freplace_match):
+       (Fmatch_data):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (string_match_1, search_buffer, set_search_regs):
+       (Fmatch_data):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (wordify): Check for overflow in size calculation.
+       (Freplace_match): Avoid potential buffer overflow in search_regs.start.
+       (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
+       Check that fixnums are in proper range for system types.
+       * sound.c (struct sound_device)
+       (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fplay_sound_internal):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * syntax.c (struct lisp_parse_state, find_start_modiff)
+       (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
+       (Fparse_partial_sexp):
+       Don't assume fixnums can fit in int.
+       (struct lisp_parse_state, find_start_pos, find_start_value)
+       (find_start_value_byte, find_start_begv)
+       (update_syntax_table, char_quoted, dec_bytepos)
+       (find_defun_start, prev_char_comend_first, back_comment):
+       (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
+       (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Finternal_describe_syntax_value): Check that match_lisp is a
+       character, not an integer, since the code stuffs it into int.
+       (scan_words, scan_sexps_forward):
+       Check that fixnums are in proper range for system types.
+       (Fforward_word):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (scan_sexps_forward):
+       Use CHARACTERP, not INTEGERP, since the value must fit into int.
+       (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
+       * syntax.h: Adjust decls to match defn changes elsewhere.
+       (struct gl_state_s):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
+       MOST_POSITIVE_FIXNUM.
+       * sysdep.c (wait_for_termination_1, wait_for_termination)
+       (interruptible_wait_for_termination, mkdir):
+       Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
+       (emacs_read, emacs_write):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
+       and double all fit in int.
+       * term.c (set_tty_color_mode):
+       Check that fixnums are in proper range for system types.
+       * termhooks.h (struct input_event):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * textprop.c (validate_interval_range, interval_of)
+       (Fadd_text_properties, set_text_properties_1)
+       (Fremove_text_properties, Fremove_list_of_text_properties)
+       (Ftext_property_any, Ftext_property_not_all)
+       (copy_text_properties, text_property_list, extend_property_ranges)
+       (verify_interval_modification):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fnext_single_char_property_change)
+       (Fprevious_single_char_property_change):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (copy_text_properties):
+       Check for integer overflow in index calculation.
+       * undo.c (last_boundary_position, record_point, record_insert)
+       (record_delete, record_marker_adjustment, record_change)
+       (record_property_change):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
+       (Fx_hide_tip, Fx_file_dialog):
+       * w32menu.c (set_frame_menubar):
+       Use ptrdiff_t, not int, for consistency with rest of code.
+       * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
+       (select_window, Fdelete_other_windows_internal)
+       (window_scroll_pixel_based, window_scroll_line_based)
+       (Frecenter, Fset_window_configuration):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (Fset_window_hscroll, run_window_configuration_change_hook)
+       (set_window_buffer, temp_output_buffer_show, scroll_command)
+       (Fscroll_other_window, Frecenter):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
+       Don't assume fixnum fits in int.
+       (Fset_window_scroll_bars):
+       Check that fixnums are in proper range for system types.
+       * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
+       (string_pos, c_string_pos, number_of_chars, init_iterator)
+       (in_ellipses_for_invisible_text_p, init_from_display_pos)
+       (compute_stop_pos, next_overlay_change, compute_display_string_pos)
+       (compute_display_string_end, handle_face_prop)
+       (face_before_or_after_it_pos, handle_invisible_prop)
+       (handle_display_prop, handle_display_spec, handle_single_display_spec)
+       (display_prop_intangible_p, string_buffer_position_lim)
+       (string_buffer_position, handle_composition_prop, load_overlay_strings)
+       (get_overlay_strings_1, get_overlay_strings)
+       (iterate_out_of_display_property, forward_to_next_line_start)
+       (back_to_previous_visible_line_start, reseat, reseat_to_string)
+       (get_next_display_element, set_iterator_to_next)
+       (get_visually_first_element, compute_stop_pos_backwards)
+       (handle_stop_backwards, next_element_from_buffer)
+       (move_it_in_display_line_to, move_it_in_display_line)
+       (move_it_to, move_it_vertically_backward, move_it_by_lines)
+       (add_to_log, message_dolog, message_log_check_duplicate)
+       (message2, message2_nolog, message3, message3_nolog
+       (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
+       (current_message_1, truncate_echo_area, truncate_message_1)
+       (set_message, set_message_1, store_mode_line_noprop)
+       (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
+       (text_outside_line_unchanged_p, check_point_in_composition)
+       (reconsider_clip_changes)
+       (redisplay_internal, set_cursor_from_row, try_scrolling)
+       (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
+       (redisplay_window, find_last_unchanged_at_beg_row)
+       (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
+       (trailing_whitespace_p, find_row_edges, display_line)
+       (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
+       (display_mode_element, store_mode_line_string)
+       (pint2str, pint2hrstr, decode_mode_spec)
+       (display_count_lines, display_string, draw_glyphs)
+       (x_produce_glyphs, x_insert_glyphs)
+       (rows_from_pos_range, mouse_face_from_buffer_pos)
+       (fast_find_string_pos, mouse_face_from_string_pos)
+       (note_mode_line_or_margin_highlight, note_mouse_highlight):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (safe_call, init_from_display_pos, handle_fontified_prop)
+       (handle_single_display_spec, load_overlay_strings)
+       (with_echo_area_buffer, setup_echo_area_for_printing)
+       (display_echo_area, echo_area_display)
+       (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
+       (update_tool_bar, hscroll_window_tree, redisplay_internal)
+       (redisplay_window, dump_glyph_row, display_mode_line)
+       (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
+       (handle_display_spec, display_prop_string_p):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (handle_single_display_spec, build_desired_tool_bar_string)
+       (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
+       (get_specified_cursor_type):
+       Check that fixnums are in proper range for system types.
+       (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
+       (Flookup_image_map):
+       Don't assume fixnums fit in int.
+       (compare_overlay_entries):
+       Avoid mishandling comparisons due to subtraction overflow.
+       (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
+       (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
+       (handle_tool_bar_click):
+       Use int, not unsigned, since we prefer signed and the signedness
+       doesn't matter here.
+       (get_next_display_element, next_element_from_display_vector):
+       Use int, not EMACS_INT, when int is wide enough.
+       (start_hourglass): Use duration_to_sec_usec to do proper
+       overflow checking on durations.
+       * xfaces.c (Fbitmap_spec_p):
+       Check that fixnums are in proper range for system types.
+       (compare_fonts_by_sort_order):
+       Avoid mishandling comparisons due to subtraction overflow.
+       (Fx_family_fonts, realize_basic_faces):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Fx_family_fonts):
+       Don't assume fixnum fits in int.
+       Use SAFE_ALLOCA_LISP, not alloca.
+       (merge_face_heights): Remove unnecessary cast to EMACS_INT.
+       (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
+       (face_at_buffer_position, face_for_overlay_string)
+       (face_at_string_position):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       (merge_faces): Use int, not EMACS_INT, where int is wide enough.
+       * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
+       (Fx_show_tip):
+       Check that fixnums are in proper range for system types.
+       (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
+       (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (Fx_change_window_property): Don't assume fixnums fit in int.
+       * xfont.c (xfont_chars_supported):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * xmenu.c (Fx_popup_dialog, set_frame_menubar)
+       (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * xml.c (parse_region):
+       * xrdb.c (magic_file_p):
+       Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
+       * xselect.c (TRACE1): Don't assume pid_t promotes to int.
+       (x_get_local_selection, x_reply_selection_request)
+       (x_handle_selection_request, wait_for_property_change):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       (selection_data_to_lisp_data): Use short, not EMACS_INT, where
+       short is wide enough.
+       (x_send_client_event): Don't assume fixnum fits in int.
+       * xterm.c (x_x_to_emacs_modifiers):
+       Don't assume EMACS_INT overflows nicely into int.
+       (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
+       may come from Lisp.
+       (handle_one_xevent): NATNUMP can eval its arg twice.
+       (x_connection_closed):
+       Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
+       * xterm.h: Adjust decls to match defn changes elsewhere.
+       (struct scroll_bar): Use struct vectorlike_header
+       rather than rolling our own approximation.
+       (SCROLL_BAR_VEC_SIZE): Remove; not used.
+
+2012-05-25  Glenn Morris  <rgm@gnu.org>
+
+       * lisp.mk (lisp): Update for more files being compiled now.
+
+2012-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c: Remove `read_pure' which makes no difference.
+       (read_pure): Remove var.
+       (unreadpure): Remove function.
+       (readevalloop): Don't call read_list with -1 flag.
+       (read1, read_vector): Don't test read_pure any more.
+       (read_list): Simplify.
+
+       * fileio.c, character.h: Minor style tweaks.
+
+2012-05-24  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.h (clip_changed): Remove useless declaration.
+
+2012-05-22  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
+       (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
+
+2012-05-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove src/m/*.
+       This directory predates autoconf and is no longer needed nowadays.
+       Move its few remaining bits of functionality to where they're needed.
+       * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
+       * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
+       * m/template.h: Remove.
+       * Makefile.in (M_FILE): Remove.  All uses removed.
+       * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
+       * lisp.h (USE_LSB_TAG):
+       * mem-limits.h (EXCEEDS_LISP_PTR):
+       Use VAL_MAX, not VALBITS, in #if.
+       * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
+       (EMACS_UINT): Define unconditionally now.
+       (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
+       (BITS_PER_EMACS_INT): New constants, replacing
+       what used to be in config.h, but not useful in #if.
+       (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
+       define them any more.
+       (VAL_MAX): New macro.
+       (VALMASK): Use it.
+       * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
+       BITS_PER_EMACS_INT, in #if.
+       * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
+       (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
+       * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
+       * s/ms-w32.h (DATA_START):
+       Move here from removed file m/intel386.h.
+       * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
+       * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
+
+2012-05-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume C89 or later.
+       * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
+       * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
+       (xrealloc):
+       * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
+       * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
+       * textprop.c, tparam.c (NULL): Remove.
+       * ralloc.c, vm-limit.c (POINTER): Assume void * works.
+       * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
+       * regex.h (_RE_ARGS): Remove.  All uses rewritten to use prototypes.
+       * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
+       * xterm.c (input_signal_count): Assume volatile works.
+
+2012-05-21  Ken Brown  <kbrown@cornell.edu>
+
+       * xgselect.c (xg_select): Fix first argument in call to 'select'
+       (bug#11508).
+
+2012-05-20  Ken Brown  <kbrown@cornell.edu>
+
+       * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
+       [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
+
+2012-05-19  Ken Brown  <kbrown@cornell.edu>
+
+       * xfns.c (x_in_use): Remove `static' qualifier.
+       * xterm.h (x_in_use): Declare.
+       * xgselect.c: Include xterm.h.
+       (xg_select): Test `x_in_use' instead of `inhibit_window_system'
+       and `display_arg' (bug#9754).
+
+2012-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
 
-       * xdisp.c (pos_visible_p): Fix last change.  (Bug#11464)
+       * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
+       * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
 
-2012-05-13  Eli Zaretskii  <eliz@gnu.org>
+2012-05-18  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
+
+       * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
+       (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
+
+       * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
+       reference to image_cache->refcount.
+       (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
+
+2012-05-17  Juri Linkov  <juri@jurta.org>
+
+       * search.c (Fword_search_regexp, Fword_search_backward)
+       (Fword_search_forward, Fword_search_backward_lax)
+       (Fword_search_forward_lax): Move functions to isearch.el
+       (bug#10145, bug#11381).
+
+2012-05-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
+
+2012-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c (init_obarray): Declare Qt and Qnil as special.
+
+2012-05-14  Glenn Morris  <rgm@gnu.org>
+
+       * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
+       Put "libexec" before "bin", for the sake of init_callproc_1.
+
+2012-05-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
+
+       * unexaix.c: Port to more-recent AIX compilers.
+       (report_error, report_error_1, make_hdr, copy_sym)
+       (mark_x, adjust_lnnoptrs, unrelocate_symbols):
+       Make arguments const char *, not char *, to avoid violations of C
+       standard and to fix some AIX warnings reported by Gilles Pion.
+
+2012-05-14  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
        already have overlays loaded.
        stopped at the last line of window, which happens to be scanned
        backwards by the bidi iteration.  (Bug#11464)
 
-2012-05-11  Eli Zaretskii  <eliz@gnu.org>
+2012-05-14  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (handle_single_display_spec): Return 1 for left-margin
        and right-margin display specs even if the spec is invalid or we
-       are on a TTY, and thus unable to display on the fringes.  That's
-       because the text with the property will not be displayed anyway,
+       are on a TTY, and thus unable to display on the fringes.
+       That's because the text with the property will not be displayed anyway,
        so we need to signal to the caller that this is a "replacing"
        display spec.  This fixes display when the spec is invalid or we
        are on a TTY.
 
-2012-05-09  Paul Eggert  <eggert@cs.ucla.edu>
+2012-05-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        * unexaix.c (make_hdr): Fix typo in prototype.
        This bug broke the build on AIX.  Problem reported by Gilles Pion.
 
-2012-05-05  Eli Zaretskii  <eliz@gnu.org>
+2012-05-14  Michael Albinus  <michael.albinus@gmx.de>
+
+       * keyboard.c (kbd_buffer_get_event): Read special events also in
+       batch mode.  (Bug#11415)
+
+2012-05-12  Glenn Morris  <rgm@gnu.org>
+
+       * ns.mk: Update for ns_appbindir no longer having trailing "/".
+
+2012-05-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp.mk (lisp): Add newcomment.elc.
+
+2012-05-12  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (MKDIR_P): New, set by configure.
+       * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
+
+2012-05-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove unused function hourglass_started.
+       * dispextern.h (hourglass_started):
+       * w32fns.c (hourglass_started):
+       * xdisp.c (hourglass_started): Remove.
+
+2012-05-10  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
+       Update dependencies.
+
+2012-05-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xgselect.c (xg_select): Put maxfds+1 into a var.
+       This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
+
+       * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
+
+2012-05-10  Dave Abrahams  <dave@boostpro.com>
+
+       * filelock.c (syms_of_filelock): New boolean create-lockfiles.
+       (lock_file): If create_lockfiles is 0, do nothing.  (Bug#11227)
+
+2012-05-09  Michael Albinus  <michael.albinus@gmx.de>
+
+       * dbusbind.c (xd_registered_buses): New internal Lisp object.
+       Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
+       (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
+       Initialize xd_registered_buses.
+
+2012-05-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Untag more efficiently if USE_LSB_TAG.
+       This is based on a proposal by YAMAMOTO Mitsuharu in
+       <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
+       For an admittedly artificial (nth 8000 longlist) benchmark on
+       Fedora 15 x86-64, this yields a 25% CPU speedup.  Also, it shrinks
+       Emacs's overall text size by 1%.
+       * lisp.h (XUNTAG): New macro.
+       (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
+       (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
+       (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
+       * eval.c (Fautoload):
+       * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
+       * frame.h (XFRAME): Use XUNTAG.
+
+       Port recent dbusbind.c changes to 32-bit --with-wide-int.
+       * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
+       Remove unportable assumptions about print widths of types like
+       dbus_uint32_t.
+       (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
+       intptr_t when converting between pointer and integer, to avoid GCC
+       warnings about wrong width.
+
+2012-05-09  Eli Zaretskii  <eliz@gnu.org>
 
        * w32proc.c (new_child): Force Windows to reserve only 64KB of
        stack for each reader_thread, instead of defaulting to 8MB
        subprocesses on Windows 7, see the discussion in this thread:
        http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
 
-2012-05-02  Jim Meyering  <meyering@redhat.com>
+2012-05-07  Jérémy Compostella  <jeremy.compostella@gmail.com>
+
+       Fix up display of the *Minibuf-0* buffer in the mini window.
+       * keyboard.c (read_char): Don't clear the echo area if there's no
+       message to clear.
+       * xdisp.c (redisplay_internal): Redisplay the mini window (with the
+       contents of *Minibuf-0*) if there's no message displayed in its stead.
+
+2012-05-07  Michael Albinus  <michael.albinus@gmx.de>
+
+       * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
+       batch mode.
+
+2012-05-06  Chong Yidong  <cyd@gnu.org>
+
+       * lisp.mk (lisp): Update.
+
+2012-05-05  Jim Meyering  <meyering@redhat.com>
 
        * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
 
-2012-04-29  Eli Zaretskii  <eliz@gnu.org>
+2012-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * data.c (PUT_ERROR): New macro.
+       (syms_of_data): Use it.  Add new error type `user-error'.
+       * undo.c (user_error): New function.
+       (Fprimitive_undo): Use it.
+       * print.c (print_error_message): Adjust print style for `user-error'.
+       * keyboard.c (user_error): New function.
+       (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
+
+2012-05-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Do not limit current-time-string to years 1000..9999.
+       * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
+       (Fcurrent_time_string): Support any year that is supported by the
+       underlying localtime representation.  Don't use asctime, as it
+       has undefined behavior for years outside the range -999..9999.
+
+2012-05-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix race conditions involving setenv, gmtime, localtime, asctime.
+       Without this fix, interrupts could mess up code that uses these
+       nonreentrant functions, since setting TZ invalidates existing
+       tm_zone or tzname values, and since most of these functions return
+       pointers to static storage.
+       * editfns.c (format_time_string, Fdecode_time, Fencode_time)
+       (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
+       Grow the critical sections to include not just invoking
+       localtime/gmtime, but also accessing these functions' results
+       including their tm_zone values if any, and any related TZ setting.
+       (format_time_string): Last arg is now struct tm *, not struct tm **,
+       so that the struct tm is saved in the critical section.
+       All callers changed.  Simplify allocation of initial buffer, partly
+       motivated by the fact that memory allocation needs to be outside
+       the critical section.
+
+2012-05-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
+       with RESET_INTERVAL.
+
+       * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
+       Remove duplicated buffer name initialization.
+
+2012-05-02  Jim Meyering  <jim@meyering.net>
+
+       * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
+
+       * xfns.c (x_window): Use xstrdup (Bug#11375).
+
+2012-05-02  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (pos_visible_p): If already at a newline from the
        display string before the 'while' loop, don't walk back the glyphs
        from it3.glyph_row.  Solves assertion violation when the display
        string begins with a newline (egg.el).  (Bug#11367)
 
-2012-04-24  Chong Yidong  <cyd@gnu.org>
+2012-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
+       Move to simple.el.
+
+2012-05-01  Glenn Morris  <rgm@gnu.org>
+
+       * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
+       s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
+       and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
+       All were removed before 23.1.
+
+       * dispnew.c: Remove HAVE_LIBNCURSES test;
+       it is always true on relevant platforms.
+
+       * Makefile.in (LD_SWITCH_X_SITE_RPATH):
+       Rename from LD_SWITCH_X_SITE_AUX_RPATH.
+
+       * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
+
+2012-04-30  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * .gdbinit (xpr): Remove checks for no longer existing misc types.
+       (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
+       Remove.
+
+2012-04-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Do not avoid creating empty evaporating overlays (Bug#9642).
+       * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
+       That is, do not delete an evaporating overlay if it becomes
+       empty after its bounds are adjusted to fit within its buffer.
+       This fix caused other problems, and I'm reverting it until we get
+       to the bottom of them.
+
+2012-04-27  Chong Yidong  <cyd@gnu.org>
 
        * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
 
-2012-04-23  Eli Zaretskii  <eliz@gnu.org>
+2012-04-27  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (pos_visible_p): If the window start position is beyond
        ZV, start the display from buffer beginning.  Prevents assertion
 
        * window.c (window_scroll_pixel_based): Likewise.
 
-2012-04-23  Chong Yidong  <cyd@gnu.org>
+2012-04-27  Chong Yidong  <cyd@gnu.org>
 
        * keymap.c (where_is_internal): Doc fix (Bug#10872).
 
-2012-04-20  Glenn Morris  <rgm@gnu.org>
+2012-04-27  Glenn Morris  <rgm@gnu.org>
 
        * fileio.c (Fcopy_file, Fset_file_selinux_context):
        Ignore ENOTSUP failures from setfilecon functions.  (Bug#11245)
 
-2012-04-20  Eli Zaretskii  <eliz@gnu.org>
+2012-04-27  Eli Zaretskii  <eliz@gnu.org>
 
-       * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): Don't
-       overrun array limits of glyph row's used[] array.  (Bug#11288)
+       * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
+       Don't overrun array limits of glyph row's used[] array.  (Bug#11288)
+
+2012-04-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
+       display element, check also the underlying string or buffer
+       character.  (Bug#11341)
+
+       * w32menu.c: Include w32heap.h.
+       (add_menu_item): If the call to AppendMenuW (via
+       unicode_append_menu) fails, disable Unicode menus only if we are
+       running on Windows 9X/Me.
+
+2012-04-24  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
+       (xgetint): Add missing shift for LSB tags.
+
+2012-04-24  Martin Rudalics  <rudalics@gmx.at>
+
+       * keyboard.c (read_char): Don't wipe echo area for select window
+       events: These might get delayed via `mouse-autoselect-window'
+       (Bug#11304).
+
+2012-04-24  Juanma Barranquero  <lekktu@gmail.com>
+
+       * gnutls.c (init_gnutls_functions): Protect against (unlikely)
+       manipulation of :loaded-from data.
+
+2012-04-23  Juanma Barranquero  <lekktu@gmail.com>
+
+       * gnutls.c (init_gnutls_functions): The value of :loaded-from is
+       now a cons (bug#11311).
+
+2012-04-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Do not create empty overlays with the evaporate property (Bug#9642).
+       * buffer.c (Fmove_overlay): Delete an evaporating overlay
+       if it becomes empty after its bounds are adjusted to fit within
+       its buffer.  Without this fix, in a nonempty buffer (let ((o
+       (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
+       yields an empty overlay that has the evaporate property, which is
+       not supposed to happen.
+
+       Fix minor GTK3 problems found by static checking.
+       * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
+       (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
+       (struct _EmacsFixedClass, emacs_fixed_get_type):
+       Move decls here from emacsgtkfixed.h, since they needn't be public.
+       (emacs_fixed_get_type): Now static.
+       (emacs_fixed_class_init): Omit unused local.
+       (emacs_fixed_child_type): Remove; unused.
+       * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
+       (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
+       (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
+       (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
+       (EMACS_FIXED_GET_CLASS): Remove; unused.
+       * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
+
+       * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
+       Problem reported by Juanma Barranquero for Windows -Wunused-function.
+
+2012-04-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
+       * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
+       (__malloc_size_t, __malloc_ptrdiff_t):
+       Remove.  All uses removed, replaced by the definiens if needed,
+       since we can assume C89 or better now.
+       Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
+       (protect_malloc_state, align, get_contiguous_space)
+       (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
+       (malloc_atfork_handler_child, malloc_enable_thread)
+       (malloc_initialize_1, __malloc_initialize, morecore_nolock)
+       (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
+       (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
+       (special_realloc, _realloc_internal_nolock, _realloc_internal)
+       (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
+       (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
+       Define using prototypes, not old style.
+       (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
+       Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
+       (align): Don't assume that signed integer overflow wraps around.
+       Omit unused local var.
+       (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
+       (_free_internal_nolock, memalign, mallochook, reallochook):
+       Omit no-longer-needed casts.
+       (valloc): Use getpagesize, not __getpagesize.
+       (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
+       (struct hdr): The 'magic' member is now size_t, not unsigned long.
+
+       * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
+
+2012-04-22  Michael Albinus  <michael.albinus@gmx.de>
+
+       Move functions from C to Lisp.  Make non-blocking method calls
+       the default.  Implement further D-Bus standard interfaces.
+
+       * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
+       (QCdbus_request_name_allow_replacement)
+       (QCdbus_request_name_replace_existing)
+       (QCdbus_request_name_do_not_queue)
+       (QCdbus_request_name_reply_primary_owner)
+       (QCdbus_request_name_reply_in_queue)
+       (QCdbus_request_name_reply_exists)
+       (QCdbus_request_name_reply_already_owner): Move to dbus.el.
+       (QCdbus_registered_serial, QCdbus_registered_method)
+       (QCdbus_registered_signal): New Lisp objects.
+       (XD_DEBUG_MESSAGE): Use sizeof.
+       (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
+       (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
+       (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
+       (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
+       (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
+       (xd_signature, xd_append_arg): Allow float for integer types.
+       (xd_get_connection_references): New function.
+       (xd_get_connection_address): Rename from xd_initialize.
+       Return cached address.
+       (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
+       (xd_close_bus): Rename from Fdbus_close_bus.  Not needed on Lisp
+       level.
+       (Fdbus_init_bus): New optional arg PRIVATE.  Cache address.
+       Return number of refcounts.
+       (Fdbus_get_unique_name): Make stronger parameter check.
+       (Fdbus_message_internal): New defun.
+       (Fdbus_call_method, Fdbus_call_method_asynchronously)
+       (Fdbus_method_return_internal, Fdbus_method_error_internal)
+       (Fdbus_send_signal, Fdbus_register_service)
+       (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
+       (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
+       (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
+       (Vdbus_compiled_version, Vdbus_runtime_version)
+       (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
+       (Vdbus_message_type_method_return, Vdbus_message_type_error)
+       (Vdbus_message_type_signal): New defvars.
+       (Vdbus_registered_buses, Vdbus_registered_objects_table):
+       Adapt docstring.
+
+2012-04-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
+       * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
+       Do not assume ptrdiff_t is the same width as 'int'.
+
+       * alloc.c: Handle unusual debugging option combinations.
+       (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
+       since the two debugging options are incompatible.
+       (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
+       is defined.
+       (mem_init, mem_insert, mem_insert_fixup):
+       Define if GC_MARK_STACK || GC_MALLOC_CHECK.
+       (NEED_MEM_INSERT): Remove; no longer needed.
+
+2012-04-22  Leo Liu  <sdl.web@gmail.com>
+
+       * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
+
+2012-04-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c [__FreeBSD__]: Minor cleanups.
+       (list_system_processes, system_process_attributes) [__FreeBSD__]:
+       Use Emacs indenting style more consistently.  Avoid some casts.
+       Use 'double' consistently rather than mixing 'float' and 'double'.
+
+2012-04-21  Eduard Wiebe  <usenet@pusto.de>
+
+       * sysdep.c (list_system_processes, system_process_attributes):
+       Add implementation for FreeBSD (Bug#5243).
+
+2012-04-21  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * lisp.mk (lisp): Update.
+
+2012-04-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
+       It is never used otherwise.
+
+2012-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * print.c (print_preprocess): Only check print_depth if print-circle
+       is nil.
+       (print_object): Check for cycles even when print-circle is nil and
+       print-gensym is t, but only check print_depth if print-circle is nil.
 
 2012-04-20  Chong Yidong  <cyd@gnu.org>
 
        * process.c (wait_reading_process_output): If EIO occurs on a pty,
        set the status to "failed" and ensure that sentinel is run.
 
-2012-04-18  Glenn Morris  <rgm@gnu.org>
+2012-04-20  Glenn Morris  <rgm@gnu.org>
 
        * process.c (Fset_process_inherit_coding_system_flag)
        (Fset_process_query_on_exit_flag): Doc fix (mention return value).
        (Fmake_network_process, Fmake_serial_process): Doc fix.
 
-2012-04-17  Eli Zaretskii  <eliz@gnu.org>
+2012-04-20  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (string_buffer_position_lim): Limit starting position to
        BEGV.
        (set_cursor_from_row): If called for a mode-line or header-line
        row, return zero immediately.
        (try_cursor_movement): If inside continuation line, don't back up
-       farther than the first row after the header line, if any.  Don't
-       consider the header-line row as "partially visible", even if
+       farther than the first row after the header line, if any.
+       Don't consider the header-line row as "partially visible", even if
        MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero.  (Bug#11261)
 
-2012-04-13  Atsuo Ohki  <ohki@gssm.otsuka.tsukuba.ac.jp>  (tiny change)
+2012-04-20  Atsuo Ohki  <ohki@gssm.otsuka.tsukuba.ac.jp>  (tiny change)
+
+       * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
+       (bug#11238).
+
+2012-04-20  Teodor Zlatanov  <tzz@lifelogs.com>
+2012-04-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       configure: new option --enable-gcc-warnings (Bug#11207)
+       * Makefile.in (C_WARNINGS_SWITCH): Remove.
+       (WARN_CFLAGS, WERROR_CFLAGS): New macros.
+       (ALL_CFLAGS): Use new macros rather than old.
+       * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
+       * regex.c: Ignore -Wstrict-overflow.  If !emacs, also ignore
+       -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
+       -Wunused-result, -Wunused-variable.  This should go away once
+       the Emacs and Gnulib regex code is merged.
+       (xmalloc, xrealloc): Now static.
+
+2012-04-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dired.c (Fsystem_groups): Remove unused local.
+
+2012-04-17  Glenn Morris  <rgm@gnu.org>
+
+       * dired.c (Fsystem_users): Doc fix.
+
+2012-04-17  Dmitry Antipov  <dmantipov@yandex.ru>
 
-       * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n" (bug#11238).
+       * dired.c (Fsystem_users, Fsystem_groups): New functions.  (Bug#7900)
+       (syms_of_dired): Add them.
 
-2012-04-10  Teodor Zlatanov  <tzz@lifelogs.com>
+2012-04-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix minor alloc.c problems found by static checking.
+       * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
+       New extern decls, to avoid calling undeclared functions.
+       (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
+       && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
+       GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
+       (NEED_MEM_INSERT): New macro.
+       (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
+       Remove one incorrect comment and fix another.
+
+       Fix minor ralloc.c problems found by static checking.
+       See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
+       * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
+       (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
+       (r_alloc_sbrk): Now static.
+
+       Improve ralloc.c interface checking.
+       See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
+       * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
+       (r_alloc_free) [REL_ALLOC]: Move decls from here ...
+       * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
+       [REL_ALLOC]: ... to here, to check interface.
+       * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
+       Remove decls.  This fixes an "It stinks!".
+
+       * alloc.c (which_symbols): Fix alignment issue / type clash.
+
+2012-04-15  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * lisp.h (struct Lisp_Symbol): Remove explicit padding.
+       (struct Lisp_Misc_Any): Likewise.
+       (struct Lisp_Free): Likewise.
+       * alloc.c (union aligned_Lisp_Symbol): Define.
+       (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
+       aligned_Lisp_Symbol instead of struct Lisp_Symbol.
+       (union aligned_Lisp_Misc): Define.
+       (MARKER_BLOCK_SIZE, struct marker_block): Use union
+       aligned_Lisp_Misc instead of union Lisp_Misc.
+       (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
+
+2012-04-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
+       * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
+       * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
+       * s/netbsd.h, s/sol2-6.h:
+       Remove definition of GC_MARK_STACK, since the default now works.
+       * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
+       Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
+       no longer the default.
+       * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
+
+2012-04-14  Atsuo Ohki  <ohki@gssm.otsuka.tsukuba.ac.jp>  (tiny change)
+
+       * lread.c (lisp_file_lexically_bound_p):
+       Fix hang at ";-*-\n" (bug#11238).
+
+2012-04-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
+       "unchanged" if its end.pos is beyond ZV.  (Bug#11199)
+
+2012-04-14  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (constrainFrameRect): Always constrain when there is only
+       one screen (Bug#10962).
+
+2012-04-13  Ken Brown  <kbrown@cornell.edu>
+
+       * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
+
+2012-04-13  Reuben Thomas  <rrt@sc3d.org>
+
+       * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
+
+2012-04-11  Daniel Colascione  <dancol@dancol.org>
+
+       * s/cygwin.h: The vfork the #define in cygwin.h was protecting
+       against is gone.  It's better to use vfork now so that when Cygwin
+       gains a new, working vfork, we use it automatically (bug#10398).
+
+2012-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * window.c (save_window_save): Obey window-point-insertion-type.
+
+2012-04-11  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
+
+2012-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (lisp_align_malloc): Remove unneeded prototype.
+
+2012-04-10  Jason S. Cornez  <jcornez@ravenpack.com>  (tiny change)
+
+       * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
+       (force_quit_count): New var.
+       (handle_interrupt): Use it.
+
+2012-04-10  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32.c (w32_delayed_load): Record the full path of the library
+       being loaded (bug#10424).
+
+2012-04-09  Glenn Morris  <rgm@gnu.org>
+
+       * doc.c (Fsnarf_documentation): Check variables, functions are bound,
+       not just in the obarray, before snarfing them.  (Bug#11036)
+
+       * Makefile.in ($(leimdir)/leim-list.el):
+       Pass EMACS rather than BUILT_EMACS.
+
+2012-04-09  Teodor Zlatanov  <tzz@lifelogs.com>
 
        * process.c (make_process):
        * process.h: Add integer `gnutls_handshakes_tried' member to
        `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
        attempts per process (connection).
 
+2012-04-09  Chong Yidong  <cyd@gnu.org>
+
+       * eval.c (Fuser_variable_p, user_variable_p_eh)
+       (lisp_indirect_variable): Functions deleted.
+       (Fdefvar): Caller changed.
+
+       * callint.c (Finteractive, Fcall_interactively):
+       * minibuf.c (Fread_variable): Callers changed.
+
 2012-04-09  Eli Zaretskii  <eliz@gnu.org>
 
-       * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
-       "unchanged" if its end.pos is beyond ZV.  (Bug#11199)
+       * xdisp.c (set_cursor_from_row): If the display string appears in
+       the buffer at position that is closer to point than the position
+       after the display string, display the cursor on the first glyph of
+       the display string.  Fixes cursor display when a 'display' text
+       property immediately follows invisible text.  (Bug#11094)
 
-2012-04-09  Jan Djärv  <jan.h.d@swipnet.se>
+2012-04-09  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * nsterm.m (constrainFrameRect): Always constrain when there is only
-       one screen (Bug#10962).
+       composite.c: use 'double' consistently
+       * composite.c (get_composition_id): Use 'double' consistently
+       instead of converting 'float' to 'double' and vice versa; this is
+       easier to understand and avoids a GCC warning.
+
+2012-04-09  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in: Generate leim-list with bootstrap-emacs, in
+       preparation for dumping it with emacs.  (Bug#4789)
+       (leimdir): New variable.
+       ($(leimdir)/leim-list.el): New rule.
+       (emacs$(EXEEXT)): Depend on leim-list.el.
+
+       * buffer.c (Qucs_set_table_for_input): Remove.  (Bug#9821)
+       (Fget_buffer_create): Don't call Qucs_set_table_for_input.
+       (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
+
+2012-04-08  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
+       proper alignment.
+
+2012-04-07  Juanma Barranquero  <lekktu@gmail.com>
+
+       * xml.c (init_libxml2_functions) [WINDOWSNT]:
+       Remove unused local variable.
+
+2012-04-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
+       * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
+       (mark_memory): Mark Lisp_Objects only if pointers might hide in
+       objects, as mark_maybe_pointer will catch them otherwise.
+       (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
+       * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
+
+2012-04-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix typo that broke non-Windows builds.
+       * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
+
+2012-04-07  Eli Zaretskii  <eliz@gnu.org>
+
+       Support building on MS-Windows with libxml2.
+
+       * makefile.w32-in (OBJ2): Add xml.$(O).
+       (GLOBAL_SOURCES): Add xml.c.
+       ($(BLD)/xml.$(O)): New dependency list.
+
+       * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
+       (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
+       (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
+       [!WINDOWSNT]: New macros.
+       (init_libxml2_functions, libxml2_loaded_p): New functions.
+       (parse_region): Call fn_xmlCheckVersion instead of using the macro
+       LIBXML_TEST_VERSION.  Call libxml2 functions via the fn_* macros.
+       (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
+       Calls xmlCleanupParser only if libxml2 was loaded (or statically
+       linked in).
+       (Flibxml_parse_html_region, Flibxml_parse_xml_region):
+       Call init_libxml2_functions before calling libxml2 functions.
+       (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
+
+       * emacs.c: Don't include libxml/parser.h.
+       (shut_down_emacs): Call xml_cleanup_parser, instead of calling
+       xmlCleanupParser directly.
+
+       * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
+
+2012-04-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * indent.c (Fvertical_motion): If there is a display string at
+       point, use it.vpos to compute how many lines to backtrack after
+       move_it_to point.  (Bug#11133)
 
 2012-04-06  Eli Zaretskii  <eliz@gnu.org>
 
        * xfns.c (unwind_create_frame): Fix comment.
        (Fx_create_frame, x_create_tip_frame):
        Move terminal->reference_count++ just before making the frame
-       official. Move initialization of image_cache_refcount and
+       official.  Move initialization of image_cache_refcount and
        dpyinfo_refcount before calling init_frame_faces (Bug#9943).
 
 2011-11-05  Eli Zaretskii  <eliz@gnu.org>
        (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
 
        * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
-       cString and lossyCString on OSX >= 10.4
+       cString and lossyCString on OSX >= 10.4.
 
        * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
        sizeToFit on OSX >= 10.2.
 
        * Makefile.in (SETTINGS_LIBS): Fix typo.
 
-2011-07-01  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>  (tiny patch)
+2011-07-01  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>  (tiny change)
 
        * coding.c (Fencode_coding_string): Record the last coding system
        used, as the function doc string says (bug#8738).
        * xfaces.c <Qunspecified>: Make extern again.
 
        * syntax.c: Include sys/types.h before including regex.h, as
-       required by Posix.
+       required by POSIX.
 
        * doc.c (get_doc_string): Improve the format passed to `error'.
 
@@ -9928,7 +17469,7 @@ See ChangeLog.11 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2011-2012  Free Software Foundation, Inc.
+  Copyright (C) 2011-2012 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.