+2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Generalize INTERNAL_FIELD between buffers, keyboards and frames.
+ * lisp.h (INTERNAL_FIELD): New macro.
+ * buffer.h (BUFFER_INTERNAL_FIELD): Removed.
+ (BVAR): Change to use INTERNAL_FIELD.
+ * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
+ (KVAR): Change to use INTERNAL_FIELD.
+ * frame.h (FVAR): New macro.
+ (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
+ * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c
+ * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c
+ * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h,
+ * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
+
+2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Miscellaneous fixes for non-default X toolkits.
+ * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
+ * xterm.c (x_frame_of_widget): Remove redundant prototype.
+ Move under #ifdef USE_LUCID.
+ (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
+ definition and usage to avoid warnings.
+
+2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (openFiles): Fix previous checkin.
+
+2012-07-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * indent.c (compute_motion): Remove unused local.
+
+2012-07-31 Glenn Morris <rgm@gnu.org>
+
+ * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
+
+ * conf_post.h [USG5_4]:
+ Move remaining contents of s/usg5-4-common.h here.
+ * s/usg5-4-common.h: Remove file.
+
+ * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
+ * s/irix6-5.h: Remove file.
+
+ * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
+ * s/darwin.h: Remove file.
+
+ * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
+ * s/hpux10-20.h: Remove file, which is now empty.
+
+2012-07-30 Glenn Morris <rgm@gnu.org>
+
+ * conf_post.h: New, split from configure.ac's AH_BOTTOM.
+ * Makefile.in (config_h): Add conf_post.h.
+ * makefile.w32-in (CONFIG_H): Add conf_post.h.
+
+2012-07-30 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_do_open_file): New variable.
+ (ns_term_init): Set ns_do_open_file to YES after run returns.
+ (openFile, openTempFile, openFileWithoutUI, openFiles): Open
+ files only if ns_do_open_file.
+
+2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
+ This no-op macro hasn't been needed for many years.
+ * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
+
+ Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
+ * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
+ * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
+ gdb_make_enums_visible.
+ (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
+ (DIRECTORY_SEP): Now a constant, not a macro.
+
+2012-07-30 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
+ w32_kbd_patch_key as the 2nd arg. (Bug#12082)
+
+ * w32term.c <w32_keyboard_codepage>: Renamed from
+ keyboard_codepage and now external. All users changed.
+
+ * w32term.h: Add declaration of w32_keyboard_codepage.
+
+ * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
+ the codepage to translate keys to Unicode. If this argument is
+ -1, use the value returned by GetConsoleCP. All callers changed.
+
+2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Update .PHONY listings in makefiles.
+ * Makefile.in (.PHONY): Add all, mostlyclean, clean,
+ bootstrap-clean, distclean, maintainer-clean, versioclean,
+ extraclean, frc.
+
+ * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
+ This is a bit clearer. Fix some commentary typos.
+
+2012-07-30 Glenn Morris <rgm@gnu.org>
+
+ * s/netbsd.h: Let configure include signal.h if needed.
+ Remove file, which is now empty.
+
+ * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
+ Let configure set them.
+ * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
+ No more need to undefine.
+
+2012-07-30 Andreas Schwab <schwab@linux-m68k.org>
+
+ * keymap.c (Fkey_description): Don't remove 0x80 bit from
+ non-single-byte char when adding meta modifier. (Bug#12090)
+
+2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Convert safe_call to use variable number of arguments.
+ * xdisp.c (safe_call): Convert to use varargs. Adjust users.
+ (safe_call2): Fix comment.
+ * lisp.h (safe_call): Adjust prototype.
+ * coding.c (encode_coding_object): Change to use safe_call2.
+ * xfaces.c (merge_face_heights): Change to use safe_call1.
+
+2012-07-30 Glenn Morris <rgm@gnu.org>
+
+ * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
+ does that unconditionally. Remove file, which is now empty.
+
+ * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
+ Remove empty files.
+
+2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Export to GDB most of lisp.h's remaining object-like macros.
+ * lisp.h (min, max): Move earlier, because they're used earlier now.
+ (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
+ (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
+ (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
+ (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
+ (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
+ (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
+ (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
+ (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
+ Now constants, for GDB. They need not be macros.
+ (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
+ Now constants, for GDB, as well as macros, for static initializers.
+ (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
+ Move to after the definition of struct Lisp_Char_Table,
+ since the former now needs that type defined.
+ (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
+ (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
+ (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
+ New enums, for gdb_make_enums_visible.
+ (GLYPH_MODE_LINE_FACE): Remove; unused.
+ * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
+ (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
+ CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
+ enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
+ enum maxargs, enum MAX_ALLOCA.
+ (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
+ (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
+ no longer needed, now that they are done in lisp.h.
+
+2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Cleanup string bytes checking.
+ * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
+ all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
+ (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
+ (check_sblock, compact_small_strings): Simplify.
+
+2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
+ These macros are confusing and no longer need to be defined, as
+ the enum values now suffice. All uses replaced with definiens.
+ (Lisp_Int1, Lisp_String): Define directly; this is clearer.
+
+2012-07-29 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
+ ($(BLD)/w32console.$(O)): Update dependencies.
+
+2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
+ * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
+ time. Adjust users.
+ (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
+
+2012-07-29 Jan Djärv <jan.h.d@swipnet.se>
+
+ * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
+ setting sitelisp (Bug#12010).
+
+2012-07-29 Eli Zaretskii <eliz@gnu.org>
+
+ * w32heap.h (OS_9X): Renamed from OS_WINDOWS_95.
+
+ * w32heap.c (cache_system_info):
+ * w32.c (sys_rename):
+ * w32proc.c (find_child_console, sys_kill): All users changed.
+
+2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
+
+2012-07-29 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
+
+2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Cleanup statistics calculation in Fgarbage_collect.
+ * alloc.c (Fgarbage_collect): Rename t1 to meaningful start. Fix
+ zombies percentage calculation. Simplify elapsed time calculation.
+
+2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Generalize marker debugging code under MARKER_DEBUG and use eassert.
+ * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
+ (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
+ (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
+ (replace_range, replace_range_2, del_range_2): Change to eassert.
+ * marker.c (byte_char_debug_check): Adjust style.
+
+2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ Don't use the abbreviation "win" to refer to Windows (Bug#10421).
+ * regex.c (MAX_BUF_SIZE): Remove some incorrect and
+ long-ago-commented-out code that talks about "WIN32".
+ * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
+ All uses changed.
+
+2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use Gnulib stdalign module (Bug#9772, Bug#9960).
+ * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
+ Simplify by using alignof.
+ (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
+ * lisp.h: Include <stdalign.h>.
+ (GCALIGNMENT): New macro and constant.
+ (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
+ (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
+ (stdalign): New macro, if not already defined.
+
+2012-07-28 Eli Zaretskii <eliz@gnu.org>
+
+ Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
+ * w32inevt.c: Include w32inevt.h.
+ (w32_read_console_input): New inline function, calls either
+ ReadConsoleInputA or ReadConsoleInputW, depending on the value of
+ w32_console_unicode_input.
+ (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
+ (w32_kbd_patch_key, key_event): Use the codepage returned by
+ GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
+ (key_event): use uChar.UnicodeChar only if
+ w32_console_unicode_input is non-zero.
+
+ * w32console.c: Include w32heap.h.
+ <w32_console_unicode_input>: New global variable.
+ (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
+ family of Windows, zero otherwise.
+
+ * w32inevt.h: Declare w32_console_unicode_input.
+
+ * xdisp.c (init_iterator): Don't reference tip_frame in a build
+ --without-x. (Bug#11742)
+
+2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ Adjust GDB to reflect pvec_type changes (Bug#12036).
+ * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
+ 2012-07-04 changes to pseudovector representation. Problem
+ reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
+
+2012-07-27 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
+ bus address.
+ (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
+
+2012-07-27 Eli Zaretskii <eliz@gnu.org>
+
+ * alloc.c (listn): Fix the order the arguments are consed onto the
+ list.
+
+ * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
+ enumeration constants, as PURE and HEAP are too general, and clash
+ with other headers and sources, such as gmalloc.c and the
+ MS-Windows system headers. All users changed.
+
+2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Revert last save_excursion_save and save_excursion_restore changes.
+ * alloc.c, editfns.c, marker.c, lisp.h: Revert.
+ Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
+
+2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fix recently-introduced typos in Windows port.
+ Reported by Martin Rudalics <rudalics@gmx.at>.
+ * w32.c (init_environment): Replace comma with semicolon.
+ * w32fns.c (syms_of_w32fns): Add missing parenthesis.
+
+2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve GDB symbol export (Bug#12036).
+ * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
+ arms of an 'if', not using conditional expressions; otherwise GDB
+ complains about the types in the unevaluated arm when the argument
+ is an integer literal.
+ (xgetint): Simplify expression.
+ * alloc.c (gdb_make_enums_visible): New constant. This ports to
+ GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
+ Zaretskii in <http://bugs.gnu.org/12036#13>.
+ * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
+ needed now that we have gdb_make_enums_visible.
+ (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
+ (enum enum_USE_LSB_TAG):
+ New enum types, packaging up enums that need to be exported to GDB.
+
+2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Utility function to make a list from specified amount of objects.
+ * lisp.h (enum constype): New datatype.
+ (listn): New prototype.
+ * alloc.c (listn): New function.
+ (Fmemory_use_count, syms_of_alloc): Use it.
+ * buffer.c (syms_of_buffer): Likewise.
+ * callint.c (syms_of_callint): Likewise.
+ * charset.c (define_charset_internal): Likewise.
+ * coding.c (syms_of_coding): Likewise.
+ * keymap.c (syms_of_keymap): Likewise.
+ * search.c (syms_of_search): Likewise.
+ * syntax.c (syms_of_syntax): Likewise.
+ * w32.c (init_environment): Likewise.
+ * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
+ * xdisp.c (syms_of_xdisp): Likewise.
+ * xfns.c (syms_of_xfns): Likewise.
+
+2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fast save_excursion_save and save_excursion_restore.
+ * lisp.h (struct Lisp_Excursion): New data type.
+ (PVEC_EXCURSION): New pseudovector type.
+ (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
+ to deal with it. Adjust comments.
+ (init_marker, attach_marker): New prototype.
+ (unchain_marker): Adjust prototype.
+ * marker.c (attach_marker): Change to global.
+ (init_marker): New function.
+ * alloc.c (Fmake_marker, build_marker): Use it.
+ (build_marker): More easserts.
+ (mark_object): Handle struct Lisp_Excursion.
+ * editfns.c (save_excursion_save, save_excursion_restore):
+ Reimplement to use struct Lisp_Excursion. Add comments.
+
+2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix export of symbols to GDB (Bug#12036).
+ * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
+ (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
+ emacs.c, as this is a more-suitable home. Had this been done earlier
+ the fix for 12036 would have avoided some of the problems noted in
+ <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
+ would have been more obvious.
+ * emacs.c: Do not include <verify.h>; no longer needed.
+ (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
+ (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
+ (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
+ Remove; now done in lisp.h.
+ * lisp.h (PUBLISH_TO_GDB): New macro.
+ (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
+ (DATA_SEG_BITS): Use it.
+ (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
+ (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
+ * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
+ not be usable in #if. This simplifies things.
+
+2012-07-26 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
+
+2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Simplify export of symbols to GDB (Bug#12036).
+ * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
+ $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
+ (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
+ Adjust to changes in lisp.h and emacs.c, by using
+ CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
+ of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
+ INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
+ gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
+ instead of gdb_valbits.
+ (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
+ PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
+ instead of gdb_array_mark_flag.
+ (xboolvector): Get size from $->size, not $->header.size.
+ Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
+ (xreload, hook-run, hookpost-run): Remove.
+ * emacs.c: Include <verify.h>.
+ (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
+ (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
+ Remove.
+ (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
+ (gdb_USE_LSB_TAG): New enum constants.
+ (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
+ Also define these as enum constants, so they're visible to GDB.
+ (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
+ (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
+ as constants, so they're visible to GDB.
+ * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
+ (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
+ Now enum constants, not macros, so they're visible to GDB.
+ (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
+ more convenient now. All uses changed.
+ (VALMASK) [USE_LSB_TAG]: Also define in this case.
+ * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
+
+2012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Explicitly free restriction data that are not needed anymore.
+ * editfns.c (save_restriction_restore): Free restriction data.
+
+2012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
+ add argument, tune behavior, and adjust all callers.
+
+2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Use typedef for EMACS_INT, EMACS_UINT.
+ * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
+ than macros. This simplifies debugging in the usual case, since
+ it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
+ and it allows expressions involving EMACS_INT casts.
+ * .gdbinit (xreload): Simplify by using EMACS_INT cast.
+
+2012-07-25 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_read_socket): Return early if there is a modal
+ window (Bug#12043).
+
+2012-07-25 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.c (Fredirect_frame_focus): In doc-string don't mention
+ that FOCUS-FRAME can be omitted.
+
+2012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Adjust buffer text indirection counters at the end of Fkill_buffer.
+ * buffer.c (Fkill_buffer): Adjust indirection counters when the
+ buffer is definitely dead. This should really fix an issue reported
+ by Christoph Scholtes again. (Bug#12007).
+ (init_buffer_once): Initialize indirection counters of
+ buffer_defaults and buffer_local_symbols (for sanity and safety).
+
+2012-07-24 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (init_iterator): Don't compute dimensions of truncation
+ and continuation glyphs on tooltip frames, leave them at zero.
+ Avoids continued lines in tooltips. (Bug#11832)
+
+2012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Simplify copy_overlay.
+ * buffer.c (copy_overlay): Simplify. Use build_marker.
+ * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
+
+2012-07-23 Eli Zaretskii <eliz@gnu.org>
+
+ * print.c (print_object): Don't crash when a frame's name is nil
+ or invalid. (Bug#12025)
+
+ * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
+ it signals an error when a tooltip frame is being created.
+
+2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Cleanup miscellaneous objects allocation and initialization.
+ * alloc.c (allocate_misc): Change to static. Add argument to
+ specify the subtype. Adjust comment and users.
+ (build_overlay): New function.
+ * buffer.c (copy_overlays, Fmake_overlay): Use it.
+ * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
+ (allocate_misc): Remove prototype.
+ (build_overlay): Add prototype.
+
+2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Swap buffer text indirection counters in Fbuffer_swap_text.
+ * buffer.c (Fbuffer_swap_text): Swap indirections too.
+ This avoids crash reported by Christoph Scholtes at
+ http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
+
+2012-07-22 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsmenu.m (Popdown_data): New struct.
+ (pop_down_menu): p->pointer is Popdown_data. Release the pool and
+ free Popdown_data.
+ (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
+ (initWithContentRect): Make imgView and contentView non-static
+ and autorelease them. Also autorelease img and matrix (Bug#12005).
+ (dealloc): Remove (Bug#12005).
+
+2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Adjust consing_since_gc when objects are explicitly freed.
+ * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
+ (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
+ (free_cons, free_misc): Subtract object size from consing_since_gc.
+
+2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Simplify and cleanup markers positioning code.
+ * marker.c (attach_marker): More useful eassert.
+ (live_buffer, set_marker_internal): New function.
+ (Fset_marker, set_marker_restricted): Use set_marker_internal.
+ (set_marker_both, set_marker_restricted_both): Use live_buffer.
+
+2012-07-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
+ as it's limited by the amount of memory, not by INT_MAX.
+
+2012-07-21 Eli Zaretskii <eliz@gnu.org>
+
+ * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
+ in special-event-map. See the discussion at
+ http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
+ for the reasons.
+
+ * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
+ info.dwItemData. Fixes crashes on 64-bit Windows. Suggested by
+ Fabrice Popineau <fabrice.popineau@supelec.fr>.
+
+2012-07-21 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
+ (conversationIdentifier): Return value is NSInteger.
+ * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
+
+2012-07-21 Chong Yidong <cyd@gnu.org>
+
+ * window.c (decode_any_window): Signal an error if the window is
+ on a dead frame (Bug#11984).
+
+2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Add indirection counting to speed up Fkill_buffer.
+ * buffer.h (struct buffer): New member.
+ * buffer.c (Fget_buffer_create): Set indirection counter to 0.
+ (Fmake_indirect_buffer): Set indirection counter to -1, increment
+ base buffer indirection counter.
+ (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
+ (Fkill_buffer): Adjust indirection counters as needed, don't walk
+ through buffer list if indirection counter is 0.
+
+2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Extend the value returned by Fgarbage_collect with heap statistics.
+ * alloc.c (Qheap): New symbol.
+ (syms_of_alloc): DEFSYM it.
+ (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
+ (Fmemory_free): Remove.
+ (syms_of_alloc): Don't defsubr it.
+ * buffer.c (Fcompact_buffer): Remove.
+ (syms_of_buffer): Don't defsubr it.
+
+2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Make maybe_gc inline.
+ Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
+ * lisp.h (consing_since_gc, gc_relative_threshold)
+ (memory_full_cons_threshold): Revert declaration.
+ (maybe_gc): Remove prototype, define as inline.
+ * alloc.c: Remove old commented-out code.
+ (consing_since_gc, gc_relative_threshold)
+ (memory_full_cons_threshold): Revert to global.
+ (maybe_gc): Remove.
+
+2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Simple wrapper for make_unibyte_string, adjust font_open_by_name.
+ * lisp.h (build_unibyte_string): New function.
+ * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
+ * sysdep.c, w32fns.c, xfns.c: Use it.
+ * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
+ of type Lisp_Object to avoid redundant calls to make_unibyte_string.
+ Adjust users accordingly.
+ * font.h (font_open_by_name): Adjust prototype.
+
+2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Cleanup calls to Fgarbage_collect.
+ * lisp.h (maybe_gc): New prototype.
+ (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
+ Remove declarations.
+ * alloc.c (maybe_gc): New function.
+ (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
+ Make them static.
+ * bytecode.c (MAYBE_GC): Use maybe_gc.
+ * eval.c (eval_sub, Ffuncall): Likewise.
+ * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
+ to avoid dependency from auto-save feature.
+
+2012-07-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
+ (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
+ 'for_each_per_buffer_object_at'.
+ All uses changed. It's better to use upper-case for macros that
+ cannot be implemented as functions, to give the reader a clue
+ that they're special.
+
+2012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * alloc.c (Fgarbage_collect): Tweak docstring.
+
+2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Tweak the value returned from Fgarbage_collect again.
+ * alloc.c (Fgarbage_collect): New return value, as confirmed in
+ http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
+ Adjust documentation.
+ (total_vector_bytes): Rename to total_vector_slots, adjust
+ accounting.
+ (total_free_vector_bytes): Rename to total_free_vector_slots,
+ adjust accounting.
+ (Qstring_bytes, Qvector_slots): New symbols.
+ (syms_of_alloc): DEFSYM them.
+
+2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Buffer compaction primitive which may be used from Lisp.
+ * buffer.c (compact_buffer, Fcompact_buffer): New function.
+ (syms_of_buffer): Register Fcompact_buffer.
+ * alloc.c (Fgarbage_collect): Use compact_buffer.
+ * buffer.h (compact_buffer): New prototype.
+ (struct buffer_text): New member.
+
+2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
+
+ New macro to iterate over all buffers, miscellaneous cleanups.
+ * lisp.h (all_buffers): Remove declaration.
+ * buffer.h (all_buffers): Add declaration, with comment.
+ (for_each_buffer): New macro.
+ * alloc.c (Fgarbage_collect, mark_object): Use it.
+ * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
+ (init_buffer): Likewise.
+ * data.c (Fset_default): Likewise.
+ * coding.c (code_conversion_restore): Remove redundant check
+ for dead buffer.
+ * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
+
+2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
+
+ Fix bug that created negative-length intervals.
+ * intervals.c (merge_interval_right, merge_interval_left):
+ Do not zero out this interval if it is absorbed by its children,
+ as this interval's total length doesn't change in that case. See
+ <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
+
+2012-07-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
+ when invoking (make-bool-vector N t) and N is a positive
+ multiple of 8 -- the last 8 bits were mistakenly cleared.
+
+ Remove some struct layout assumptions in bool vectors.
+ * alloc.c (bool_header_size): New constant.
+ (header_size, word_size): Move earlier, as they're now used earlier.
+ Use 'word_size' in a few more places, where it's appropriate.
+ (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
+ padding before the data member of a bool vector.
+ (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
+ than doing the check by hand with an abort ().
+
+2012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (Fdefvar): Don't check constants since we only set the var if
+ it's not yet defined anyway (bug#11904).
+
+ * lisp.h (last_undo_boundary): Declare new var.
+ * keyboard.c (command_loop_1): Set it.
+ * cmds.c (Fself_insert_command): Use it to only remove boundaries that
+ were auto-added by the command loop (bug#11774).
+
2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
* w32font.c (Qsymbol): Remove local definition.
* gnutls.c (emacs_gnutls_handshake): Only retry if
GNUTLS_E_INTERRUPTED.
-2012-07-17 Eli Zaretskii <eliz@gnu.org>
2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
Cleanup and convert miscellaneous checks to eassert.