]> code.delx.au - gnu-emacs/blobdiff - src/ChangeLog
Merge changes from emacs-24; up to 2012-04-26T02:03:19Z!ueno@unixuser.org
[gnu-emacs] / src / ChangeLog
index 838703578c67e672721795b3c659337a8326f4b3..8baeeadc2d5e52090d50aa18a891d56096c0cfc1 100644 (file)
-2012-06-11  Jan Djärv  <jan.h.d@swipnet.se>
+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-01  Chong Yidong  <cyd@gnu.org>
+2012-06-16  Aurelien Aptel  <aurelien.aptel@gmail.com>
 
-       * Version 24.1 released.
+       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-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): Renamed from gdb_use_union.
+       * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
+       * alloc.c (widen_to_Lisp_Object): Removed.
+       (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>
+
+       * 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.
+
+2012-06-06  Chong Yidong  <cyd@gnu.org>
+
+       * buffer.c (word_wrap): Doc fix.
+
+2012-06-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
+
+2012-06-03  Glenn Morris  <rgm@gnu.org>
+
+       * xdisp.c (tool-bar-style): Doc fix.
+
+2012-06-03  Ulrich Müller  <ulm@gentoo.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)
+
+2012-06-03  Chong Yidong  <cyd@gnu.org>
+
+       * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
+       buffer (Bug#11226).
+
+2012-06-03  Chong Yidong  <cyd@gnu.org>
+
+       * 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.
+
+       * 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-06-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c (system_process_attributes): Improve comment.
+
+2012-06-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * 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-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * minibuf.c (Fassoc_string): Remove duplicate declaration.
+
+       * 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.
+
+2012-06-02  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
+       cons_block.
+
+2012-06-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
+
+2012-06-01  Dmitry Antipov  <dmantipov@yandex.ru>
 
-2012-05-30  Eli Zaretskii  <eliz@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.
+
+2012-05-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       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.
+
+       * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
+       * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
+
+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>
 
-       * xdisp.c (pos_visible_p): Fix last change.  (Bug#11464)
+       * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
+       Put "libexec" before "bin", for the sake of init_callproc_1.
 
-2012-05-13  Eli Zaretskii  <eliz@gnu.org>
+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)
+
+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.
 
-       * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): Don't
-       overrun array limits of glyph row's used[] array.  (Bug#11288)
+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.
 
-       * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n" (bug#11238).
+2012-04-17  Paul Eggert  <eggert@cs.ucla.edu>
 
-2012-04-10  Teodor Zlatanov  <tzz@lifelogs.com>
+       * 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>
+
+       * dired.c (Fsystem_users, Fsystem_groups): New functions.  (Bug#7900)
+       (syms_of_dired): Add them.
+
+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>
        * 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'.
 
@@ -9817,7 +11891,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.