* alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
[bpt/emacs.git] / src / ChangeLog
index 82bedfd..fa1877f 100644 (file)
@@ -1,3 +1,585 @@
+2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
+
+2012-07-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
+
+2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup statistics calculation in Fgarbage_collect.
+       * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.  Fix
+       zombies percentage calculation.  Simplify elapsed time calculation.
+
+2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Generalize marker debugging code under MARKER_DEBUG and use eassert.
+       * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
+       (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
+       (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
+       (replace_range, replace_range_2, del_range_2): Change to eassert.
+       * marker.c (byte_char_debug_check): Adjust style.
+
+2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Don't use the abbreviation "win" to refer to Windows (Bug#10421).
+       * regex.c (MAX_BUF_SIZE): Remove some incorrect and
+       long-ago-commented-out code that talks about "WIN32".
+       * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
+       All uses changed.
+
+2012-07-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use Gnulib stdalign module (Bug#9772, Bug#9960).
+       * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
+       Simplify by using alignof.
+       (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
+       * lisp.h: Include <stdalign.h>.
+       (GCALIGNMENT): New macro and constant.
+       (DECL_ALIGN): Remove.  All uses replaced by alignas (GCALIGNMENT).
+       (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
+       (stdalign): New macro, if not already defined.
+
+2012-07-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix non-ASCII input in non-GUI frames on MS-Windows.  (Bug#12055)
+       * w32inevt.c: Include w32inevt.h.
+       (w32_read_console_input): New inline function, calls either
+       ReadConsoleInputA or ReadConsoleInputW, depending on the value of
+       w32_console_unicode_input.
+       (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
+       (w32_kbd_patch_key, key_event): Use the codepage returned by
+       GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
+       (key_event): use uChar.UnicodeChar only if
+       w32_console_unicode_input is non-zero.
+
+       * w32console.c: Include w32heap.h.
+       <w32_console_unicode_input>: New global variable.
+       (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
+       family of Windows, zero otherwise.
+
+       * w32inevt.h: Declare w32_console_unicode_input.
+
+       * xdisp.c (init_iterator): Don't reference tip_frame in a build
+       --without-x.  (Bug#11742)
+
+2012-07-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Adjust GDB to reflect pvec_type changes (Bug#12036).
+       * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
+       2012-07-04 changes to pseudovector representation.  Problem
+       reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
+
+2012-07-27  Michael Albinus  <michael.albinus@gmx.de>
+
+       * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
+       bus address.
+       (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
+
+2012-07-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * alloc.c (listn): Fix the order the arguments are consed onto the
+       list.
+
+       * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
+       enumeration constants, as PURE and HEAP are too general, and clash
+       with other headers and sources, such as gmalloc.c and the
+       MS-Windows system headers.  All users changed.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Revert last save_excursion_save and save_excursion_restore changes.
+       * alloc.c, editfns.c, marker.c, lisp.h: Revert.
+       Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix recently-introduced typos in Windows port.
+       Reported by Martin Rudalics <rudalics@gmx.at>.
+       * w32.c (init_environment): Replace comma with semicolon.
+       * w32fns.c (syms_of_w32fns): Add missing parenthesis.
+
+2012-07-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Improve GDB symbol export (Bug#12036).
+       * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
+       arms of an 'if', not using conditional expressions; otherwise GDB
+       complains about the types in the unevaluated arm when the argument
+       is an integer literal.
+       (xgetint): Simplify expression.
+       * alloc.c (gdb_make_enums_visible): New constant.  This ports to
+       GCC 3.4.2 the export of symbols to GDB.  Problem reported by Eli
+       Zaretskii in <http://bugs.gnu.org/12036#13>.
+       * lisp.h (PUBLISH_TO_GDB): Remove.  All uses removed.  No longer
+       needed now that we have gdb_make_enums_visible.
+       (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
+       (enum enum_USE_LSB_TAG):
+       New enum types, packaging up enums that need to be exported to GDB.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Utility function to make a list from specified amount of objects.
+       * lisp.h (enum constype): New datatype.
+       (listn): New prototype.
+       * alloc.c (listn): New function.
+       (Fmemory_use_count, syms_of_alloc): Use it.
+       * buffer.c (syms_of_buffer): Likewise.
+       * callint.c (syms_of_callint): Likewise.
+       * charset.c (define_charset_internal): Likewise.
+       * coding.c (syms_of_coding): Likewise.
+       * keymap.c (syms_of_keymap): Likewise.
+       * search.c (syms_of_search): Likewise.
+       * syntax.c (syms_of_syntax): Likewise.
+       * w32.c (init_environment): Likewise.
+       * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
+       * xdisp.c (syms_of_xdisp): Likewise.
+       * xfns.c (syms_of_xfns): Likewise.
+
+2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fast save_excursion_save and save_excursion_restore.
+       * lisp.h (struct Lisp_Excursion): New data type.
+       (PVEC_EXCURSION): New pseudovector type.
+       (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
+       to deal with it.  Adjust comments.
+       (init_marker, attach_marker): New prototype.
+       (unchain_marker): Adjust prototype.
+       * marker.c (attach_marker): Change to global.
+       (init_marker): New function.
+       * alloc.c (Fmake_marker, build_marker): Use it.
+       (build_marker): More easserts.
+       (mark_object): Handle struct Lisp_Excursion.
+       * editfns.c (save_excursion_save, save_excursion_restore):
+       Reimplement to use struct Lisp_Excursion.  Add comments.
+
+2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix export of symbols to GDB (Bug#12036).
+       * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
+       (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
+       emacs.c, as this is a more-suitable home.  Had this been done earlier
+       the fix for 12036 would have avoided some of the problems noted in
+       <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
+       would have been more obvious.
+       * emacs.c: Do not include <verify.h>; no longer needed.
+       (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
+       (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
+       Remove; now done in lisp.h.
+       * lisp.h (PUBLISH_TO_GDB): New macro.
+       (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
+       (DATA_SEG_BITS): Use it.
+       (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
+       * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
+       not be usable in #if.  This simplifies things.
+
+2012-07-26  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
+
+2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify export of symbols to GDB (Bug#12036).
+       * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
+       $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
+       (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
+       Adjust to changes in lisp.h and emacs.c, by using
+       CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
+       of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
+       INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
+       gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
+       instead of gdb_valbits.
+       (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
+       PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
+       instead of gdb_array_mark_flag.
+       (xboolvector): Get size from $->size, not $->header.size.
+       Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
+       (xreload, hook-run, hookpost-run): Remove.
+       * emacs.c: Include <verify.h>.
+       (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
+       (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
+       Remove.
+       (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
+       (gdb_USE_LSB_TAG): New enum constants.
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
+       Also define these as enum constants, so they're visible to GDB.
+       (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
+       (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
+       as constants, so they're visible to GDB.
+       * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
+       (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
+       Now enum constants, not macros, so they're visible to GDB.
+       (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
+       more convenient now.  All uses changed.
+       (VALMASK) [USE_LSB_TAG]: Also define in this case.
+       * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
+
+2012-07-26  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Explicitly free restriction data that are not needed anymore.
+       * editfns.c (save_restriction_restore): Free restriction data.
+
+2012-07-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
+       add argument, tune behavior, and adjust all callers.
+
+2012-07-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use typedef for EMACS_INT, EMACS_UINT.
+       * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
+       than macros.  This simplifies debugging in the usual case, since
+       it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
+       and it allows expressions involving EMACS_INT casts.
+       * .gdbinit (xreload): Simplify by using EMACS_INT cast.
+
+2012-07-25  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_read_socket): Return early if there is a modal
+       window (Bug#12043).
+
+2012-07-25  Martin Rudalics  <rudalics@gmx.at>
+
+       * frame.c (Fredirect_frame_focus): In doc-string don't mention
+       that FOCUS-FRAME can be omitted.
+
+2012-07-25  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Adjust buffer text indirection counters at the end of Fkill_buffer.
+       * buffer.c (Fkill_buffer): Adjust indirection counters when the
+       buffer is definitely dead.  This should really fix an issue reported
+       by Christoph Scholtes again.  (Bug#12007).
+       (init_buffer_once): Initialize indirection counters of
+       buffer_defaults and buffer_local_symbols (for sanity and safety).
+
+2012-07-24  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (init_iterator): Don't compute dimensions of truncation
+       and continuation glyphs on tooltip frames, leave them at zero.
+       Avoids continued lines in tooltips.  (Bug#11832)
+
+2012-07-24  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simplify copy_overlay.
+       * buffer.c (copy_overlay): Simplify.  Use build_marker.
+       * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
+
+2012-07-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * print.c (print_object): Don't crash when a frame's name is nil
+       or invalid.  (Bug#12025)
+
+       * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
+       it signals an error when a tooltip frame is being created.
+
+2012-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup miscellaneous objects allocation and initialization.
+       * alloc.c (allocate_misc): Change to static.  Add argument to
+       specify the subtype.  Adjust comment and users.
+       (build_overlay): New function.
+       * buffer.c (copy_overlays, Fmake_overlay): Use it.
+       * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
+       (allocate_misc): Remove prototype.
+       (build_overlay): Add prototype.
+
+2012-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Swap buffer text indirection counters in Fbuffer_swap_text.
+       * buffer.c (Fbuffer_swap_text): Swap indirections too.
+       This avoids crash reported by Christoph Scholtes at
+       http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
+
+2012-07-22  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (Popdown_data): New struct.
+       (pop_down_menu): p->pointer is Popdown_data.  Release the pool and
+       free Popdown_data.
+       (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
+       (initWithContentRect): Make imgView and contentView non-static
+       and autorelease them.  Also autorelease img and matrix (Bug#12005).
+       (dealloc): Remove (Bug#12005).
+
+2012-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Adjust consing_since_gc when objects are explicitly freed.
+       * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
+       (Fgarbage_collect): Use it.  Change minimum to 1/10 of default.
+       (free_cons, free_misc): Subtract object size from consing_since_gc.
+
+2012-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simplify and cleanup markers positioning code.
+       * marker.c (attach_marker): More useful eassert.
+       (live_buffer, set_marker_internal): New function.
+       (Fset_marker, set_marker_restricted): Use set_marker_internal.
+       (set_marker_both, set_marker_restricted_both): Use live_buffer.
+
+2012-07-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
+       as it's limited by the amount of memory, not by INT_MAX.
+
+2012-07-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
+       in special-event-map.  See the discussion at
+       http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
+       for the reasons.
+
+       * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
+       info.dwItemData.  Fixes crashes on 64-bit Windows.  Suggested by
+       Fabrice Popineau <fabrice.popineau@supelec.fr>.
+
+2012-07-21  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
+       (conversationIdentifier): Return value is NSInteger.
+       * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
+
+2012-07-21  Chong Yidong  <cyd@gnu.org>
+
+       * window.c (decode_any_window): Signal an error if the window is
+       on a dead frame (Bug#11984).
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Add indirection counting to speed up Fkill_buffer.
+       * buffer.h (struct buffer): New member.
+       * buffer.c (Fget_buffer_create): Set indirection counter to 0.
+       (Fmake_indirect_buffer): Set indirection counter to -1, increment
+       base buffer indirection counter.
+       (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
+       (Fkill_buffer): Adjust indirection counters as needed, don't walk
+       through buffer list if indirection counter is 0.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Extend the value returned by Fgarbage_collect with heap statistics.
+       * alloc.c (Qheap): New symbol.
+       (syms_of_alloc): DEFSYM it.
+       (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
+       (Fmemory_free): Remove.
+       (syms_of_alloc): Don't defsubr it.
+       * buffer.c (Fcompact_buffer): Remove.
+       (syms_of_buffer): Don't defsubr it.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Make maybe_gc inline.
+       Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
+       * lisp.h (consing_since_gc, gc_relative_threshold)
+       (memory_full_cons_threshold): Revert declaration.
+       (maybe_gc): Remove prototype, define as inline.
+       * alloc.c: Remove old commented-out code.
+       (consing_since_gc, gc_relative_threshold)
+       (memory_full_cons_threshold): Revert to global.
+       (maybe_gc): Remove.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simple wrapper for make_unibyte_string, adjust font_open_by_name.
+       * lisp.h (build_unibyte_string): New function.
+       * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
+       * sysdep.c, w32fns.c, xfns.c: Use it.
+       * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
+       of type Lisp_Object to avoid redundant calls to make_unibyte_string.
+       Adjust users accordingly.
+       * font.h (font_open_by_name): Adjust prototype.
+
+2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup calls to Fgarbage_collect.
+       * lisp.h (maybe_gc): New prototype.
+       (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
+       Remove declarations.
+       * alloc.c (maybe_gc): New function.
+       (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
+       Make them static.
+       * bytecode.c (MAYBE_GC): Use maybe_gc.
+       * eval.c (eval_sub, Ffuncall): Likewise.
+       * keyboard.c (read_char): Likewise.  Adjust call to maybe_gc
+       to avoid dependency from auto-save feature.
+
+2012-07-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
+       (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
+       'for_each_per_buffer_object_at'.
+       All uses changed.  It's better to use upper-case for macros that
+       cannot be implemented as functions, to give the reader a clue
+       that they're special.
+
+2012-07-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (Fgarbage_collect): Tweak docstring.
+
+2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Tweak the value returned from Fgarbage_collect again.
+       * alloc.c (Fgarbage_collect): New return value, as confirmed in
+       http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
+       Adjust documentation.
+       (total_vector_bytes): Rename to total_vector_slots, adjust
+       accounting.
+       (total_free_vector_bytes): Rename to total_free_vector_slots,
+       adjust accounting.
+       (Qstring_bytes, Qvector_slots): New symbols.
+       (syms_of_alloc): DEFSYM them.
+
+2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Buffer compaction primitive which may be used from Lisp.
+       * buffer.c (compact_buffer, Fcompact_buffer): New function.
+       (syms_of_buffer): Register Fcompact_buffer.
+       * alloc.c (Fgarbage_collect): Use compact_buffer.
+       * buffer.h (compact_buffer): New prototype.
+       (struct buffer_text): New member.
+
+2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       New macro to iterate over all buffers, miscellaneous cleanups.
+       * lisp.h (all_buffers): Remove declaration.
+       * buffer.h (all_buffers): Add declaration, with comment.
+       (for_each_buffer): New macro.
+       * alloc.c (Fgarbage_collect, mark_object): Use it.
+       * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
+       (init_buffer): Likewise.
+       * data.c (Fset_default): Likewise.
+       * coding.c (code_conversion_restore): Remove redundant check
+       for dead buffer.
+       * buffer.c (Fkill_buffer): Likewise.  Remove obsolete comment.
+
+2012-07-18  Andreas Schwab  <schwab@linux-m68k.org>
+
+       Fix bug that created negative-length intervals.
+       * intervals.c (merge_interval_right, merge_interval_left):
+       Do not zero out this interval if it is absorbed by its children,
+       as this interval's total length doesn't change in that case.  See
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
+
+2012-07-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
+       when invoking (make-bool-vector N t) and N is a positive
+       multiple of 8 -- the last 8 bits were mistakenly cleared.
+
+       Remove some struct layout assumptions in bool vectors.
+       * alloc.c (bool_header_size): New constant.
+       (header_size, word_size): Move earlier, as they're now used earlier.
+       Use 'word_size' in a few more places, where it's appropriate.
+       (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
+       padding before the data member of a bool vector.
+       (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
+       than doing the check by hand with an abort ().
+
+2012-07-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fdefvar): Don't check constants since we only set the var if
+       it's not yet defined anyway (bug#11904).
+
+       * lisp.h (last_undo_boundary): Declare new var.
+       * keyboard.c (command_loop_1): Set it.
+       * cmds.c (Fself_insert_command): Use it to only remove boundaries that
+       were auto-added by the command loop (bug#11774).
+
+2012-07-18  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * w32font.c (Qsymbol): Remove local definition.
+       (syms_of_w32font): Don't DEFSYM it.
+
+2012-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix sweep_vectors to handle large bool vectors correctly.
+       * alloc.c (sweep_vectors): Account total_vector_bytes for
+       bool vectors larger than VBLOCK_BYTES_MAX.
+
+2012-07-18  Chong Yidong  <cyd@gnu.org>
+
+       * frame.c (x_set_frame_parameters): Revert bogus change introduced
+       in 2012-05-25 commit by Paul Eggert (Bug#11738).
+
+2012-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Return more descriptive data from Fgarbage_collect.
+       Suggested by Stefan Monnier in
+       http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
+       * alloc.c (bounded_number): New function.
+       (total_buffers, total_vectors): New variable.
+       (total_string_size): Rename to total_string_bytes, adjust users.
+       (total_vector_size): Rename to total_vector_bytes, adjust users.
+       (sweep_vectors): Account total_vectors and total_vector_bytes.
+       (Fgarbage_collect): New return value.  Adjust documentation.
+       (gc_sweep): Account total_buffers.
+       (Fmemory_free, Fmemory_use_counts): Use bounded_number.
+       (VECTOR_SIZE): Remove.
+       * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
+       (Qinterval, Qmisc): New symbols.
+       (syms_of_data): Initialize them.
+       * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
+       (Qcons, Qbuffer): New declarations.
+
+2012-07-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (Fmemory_free): Account for memory-free's own storage.
+       Round up, not down.  Improve doc.
+
+2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Restore old code in allocate_string_data to avoid Faset breakage.
+       Reported by Julien Danjou <julien@danjou.info> in
+       http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
+       * alloc.c (allocate_string_data): Restore old code with minor
+       adjustments, fix comment to explain this subtle issue.
+
+2012-07-17  Eli Zaretskii  <eliz@gnu.org>
+
+       Remove FILE_SYSTEM_CASE.
+       * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
+
+       * fileio.c (FILE_SYSTEM_CASE): Don't define.
+       (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
+       Fixes problems on MS-DOS with Vtemp_file_name_pattern when
+       call-process-region passes it through expand-file-name.
+
+       * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
+
+2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
+
+       Fix crash when creating indirect buffer (Bug#11917)
+       * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
+       Don't handle unbound variables specially if non-zero.
+       (Fbuffer_local_variables): Pass zero.
+       (clone_per_buffer_values): Pass non-zero.
+
+2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gnutls.c (emacs_gnutls_handshake): Revert last change.  Add QUIT
+       to make the loop interruptible.
+
+2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gnutls.c (emacs_gnutls_handshake): Only retry if
+       GNUTLS_E_INTERRUPTED.
+
+2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup and convert miscellaneous checks to eassert.
+       * alloc.c (mark_interval): Fix comment, partially rephrase
+       old comment from intervals.h (see below).
+       * intervals.c (find_interval, adjust_intervals_for_insertion)
+       (delete_interval, adjust_intervals_for_deletion)
+       (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
+       Convert to eassert.
+       (adjust_intervals_for_insertion, make_new_interval):
+       Remove obsolete and unused code.
+       * intervals.h (struct interval): Remove obsolete comment.
+       * textprotp.c (erase_properties): Remove unused code.
+       (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
+       (Fremove_list_of_text_properties): Convert to eassert.
+
 2012-07-17  Chong Yidong  <cyd@gnu.org>
 
        * editfns.c (Finsert_char): Doc fix.