]> code.delx.au - gnu-emacs/blobdiff - src/ChangeLog
* profiler.c (handle_profiler_signal): Inhibit pending signals too,
[gnu-emacs] / src / ChangeLog
index f540aef3814c07a81841b858f2912ff8310011e7..744376b0efd10a5d5c8da02cb93fded6edadf426 100644 (file)
+2012-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * profiler.c (handle_profiler_signal): Inhibit pending signals too,
+       to avoid similar races.
+       * keyboard.c (pending_signals): Now bool, not int.
+
+2012-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * profiler.c (handle_profiler_signal): Fix a malloc race
+       that caused Emacs to hang on Fedora 17 when profiling Lisp.
+
+2012-10-02  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
+
+2012-10-02  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
+       consistent with the change in return value of 'safe_strsignal'.
+
+2012-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Prefer plain 'static' to 'static inline' (Bug#12541).
+       * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
+       (bidi_set_sor_type, bidi_push_embedding_level)
+       (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
+       (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
+       (bidi_cache_search, bidi_cache_ensure_space)
+       (bidi_cache_iterator_state, bidi_cache_find)
+       (bidi_peek_at_next_level, bidi_set_paragraph_end)
+       (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
+       (bidi_explicit_dir_char, bidi_resolve_neutral_1):
+       Now 'static', not 'static inline'.
+
+       Count overruns when profiling; change units to ns.
+       * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
+       Give extra weight to samples after overruns, to attempt to count
+       the time more accurately.
+       (setup_cpu_timer): Change sampling interval units from ms to ns, since
+       the underlying primitives nominally do ns.
+       (Fprofiler_cpu_start): Document the change.  Mention that
+       the sampling intervals are only approximate.
+
+2012-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
+
+       * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
+       case for the special 0 coding-system.
+
+       * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
+       (Fmake_overlay): Remove redundant tests.
+       (fix_start_end_in_overlays): Remove redundant recentering.
+
+2012-10-02  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
+       Update dependencies.
+
+2012-10-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix a malloc race condition involving strsignal.
+       A signal can arrive in the middle of a malloc, and Emacs's signal
+       handler can invoke strsignal, which can invoke malloc, which is
+       not portable.  This race condition bug makes Emacs hang on GNU/Linux.
+       Fix it by altering the signal handler so that it does not invoke
+       strsignal.
+       * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
+       * process.c (status_message): Use const pointer, in case strsignal
+       is #defined to safe_strsignal.
+       * sysdep.c (sys_siglist, init_signals): Always define and
+       initialize a substitute sys_siglist if the system does not define
+       one, even if HAVE_STRSIGNAL.
+       (safe_strsignal): Rename from strsignal.  Always define,
+       using sys_siglist.  Return a const pointer.
+       * syssignal.h (safe_strsignal): New decl.
+       (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
+
+2012-10-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (timer_loop): Fix code that waits for timer
+       expiration, to avoid high CPU usage.
+
+2012-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
+       (sweep_weak_table): Remove redundant prototypes.
+
+2012-10-01  Fabrice Popineau  <fabrice.popineau@gmail.com>
+
+       * emacs.c: Move the inclusion of TERM_HEADER after including
+       windows.h on WINDOWSNT.  This avoids compilation problems with
+       MSVC.
+
+2012-10-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
+       (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
+       (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
+       as the previous version used 'void *'.
+
+       * ralloc.c (ROUNDUP): Fix last change.
+       (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
+       'size_t'.
+
+       * w32proc.c <disable_itimers>: New static flag.
+       (init_timers): Initialize it to zero, after creating the critical
+       sections used by the timer threads.
+       (term_timers): Set to 1 before deleting the critical sections.
+       (getitimer, setitimer): If disable_itimers is non-zero, return an
+       error indication without doing anything.  Reported by Fabrice
+       Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
+       (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
+       return results.
+       [!HAVE_SETITIMER]: Behave as the previous version that didn't
+       support timers.
+
+       * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
+       term_ntproc after all the other bookkeeping, to get timers working
+       as long as possible.
+
+2012-10-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
+       Suggested by Juri Linkov in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
+
+       Prefer plain 'static' to 'static inline' (Bug#12541).
+       With static functions, modern compilers inline pretty well by
+       themselves; advice from programmers often hurts as much as it helps.
+       On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
+       this change shrinks the text size of the Emacs executable by 1.1%
+       without affecting CPU significantly in my benchmark.
+       * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
+       (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
+       (mark_maybe_object, mark_maybe_pointer, bounded_number):
+       * buffer.c (bset_abbrev_mode, bset_abbrev_table)
+       (bset_auto_fill_function, bset_auto_save_file_format)
+       (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
+       (bset_bidi_display_reordering, bset_buffer_file_coding_system)
+       (bset_cache_long_line_scans, bset_case_fold_search)
+       (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
+       (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
+       (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
+       (bset_fringe_indicator_alist, bset_fringes_outside_margins)
+       (bset_header_line_format, bset_indicate_buffer_boundaries)
+       (bset_indicate_empty_lines, bset_invisibility_spec)
+       (bset_left_fringe_width, bset_major_mode, bset_mark)
+       (bset_minor_modes, bset_mode_line_format, bset_mode_name)
+       (bset_name, bset_overwrite_mode, bset_pt_marker)
+       (bset_right_fringe_width, bset_save_length)
+       (bset_scroll_bar_width, bset_scroll_down_aggressively)
+       (bset_scroll_up_aggressively, bset_selective_display)
+       (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
+       (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
+       (set_buffer_overlays_after):
+       * category.c (bset_category_table):
+       * charset.c (read_hex):
+       * coding.c (produce_composition, produce_charset)
+       (handle_composition_annotation, handle_charset_annotation)
+       (char_encodable_p):
+       * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
+       (assign_row, set_frame_matrix_frame, make_current)
+       (add_row_entry):
+       * eval.c (set_specpdl_symbol, set_specpdl_old_value):
+       * fns.c (maybe_resize_hash_table):
+       * frame.c (fset_buffer_predicate, fset_minibuffer_window):
+       * gmalloc.c (register_heapinfo):
+       * image.c (lookup_image_type):
+       * intervals.c (set_interval_object, set_interval_left)
+       (set_interval_right, copy_interval_parent, rotate_right)
+       (rotate_left, balance_possible_root_interval):
+       * keyboard.c (kset_echo_string, kset_kbd_queue)
+       (kset_keyboard_translate_table, kset_last_prefix_arg)
+       (kset_last_repeatable_command, kset_local_function_key_map)
+       (kset_overriding_terminal_local_map, kset_real_last_command)
+       (kset_system_key_syms, clear_event, set_prop):
+       * lread.c (digit_to_number):
+       * marker.c (attach_marker, live_buffer, set_marker_internal):
+       * nsterm.m (ns_compute_glyph_string_overhangs):
+       * process.c (pset_buffer, pset_command)
+       (pset_decode_coding_system, pset_decoding_buf)
+       (pset_encode_coding_system, pset_encoding_buf, pset_filter)
+       (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
+       (pset_status, pset_tty_name, pset_type, pset_write_queue):
+       * syntax.c (bset_syntax_table, dec_bytepos):
+       * terminal.c (tset_param_alist):
+       * textprop.c (interval_has_some_properties)
+       (interval_has_some_properties_list):
+       * window.c (wset_combination_limit, wset_dedicated)
+       (wset_display_table, wset_hchild, wset_left_fringe_width)
+       (wset_left_margin_cols, wset_new_normal, wset_new_total)
+       (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
+       (wset_right_fringe_width, wset_right_margin_cols)
+       (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
+       (wset_vertical_scroll_bar_type, wset_window_parameters):
+       * xdisp.c (wset_base_line_number, wset_base_line_pos)
+       (wset_column_number_displayed, wset_region_showing)
+       (window_box_edges, run_window_scroll_functions)
+       (append_glyph_string_lists, prepend_glyph_string_lists)
+       (append_glyph_string, set_glyph_string_background_width)
+       (append_glyph, append_composite_glyph)
+       (take_vertical_position_into_account):
+       * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
+       (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
+       (lface_hash, lface_same_font_attributes_p, lookup_face):
+       * xml.c (libxml2_loaded_p):
+       * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
+       (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
+       Now 'static', not 'static inline'.
+
+       * bidi.c: Tune.
+       (bidi_copy_it): Do the whole copy with a single memcpy.
+       (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
+
+       Revert the FOLLOW-SYMLINKS change for file-attributes.
+       Doing it right would require several changes to Tramp, and there's
+       not enough time to get that tested before the freeze today.
+       * dired.c (directory_files_internal, Ffile_attributes):
+       Undo last change.
+
+       * frame.c (x_report_frame_params): Port better to wider ints.
+       Do not assume that EMACS_UINT is the same width as uprintmax_t,
+       or that pointers can be printed in 15 decimal digits.
+       Avoid GCC warnings if EMACS_UINT is wider than a pointer.
+
+2012-09-30  Fabrice Popineau  <fabrice.popineau@supelec.fr>
+
+       Support x64 build on MS-Windows.
+       * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
+       (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
+       compatibility with x64.
+       (x_get_focus_frame): Add prototype.
+
+       * w32term.c (w32_draw_underwave): Don't use GCC extensions for
+       defining an XRectangle structure.
+
+       * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
+       arithmetics for compatibility with x64.
+
+       * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
+       compatibility with x64.
+
+       * w32heap.h: Adjust prototypes and declarations.
+
+       * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
+       (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
+       DWORD, long, and unsigned long, for compatibility with x64.
+       (allocate_heap) [_WIN64]: Reserve 32GB of memory.
+       (sbrk): Argument is now of type ptrdiff_t.
+
+       * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
+       less than 0x0500.
+       (w32_msg_pump): Use WPARAM type for 'result'.
+
+       * w32.c (init_environment, get_emacs_configuration): Support AMD64
+       architecture.
+       (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
+       compatibility with x64.
+
+       * vm-limit.c (lim_data): Now size_t.
+       (check_memory_limits): Adjust prototypes of real_morecore and
+       __morecore to receive argument of type ptrdiff_t.  Use size_t for
+       five_percent and data_size.
+
+       * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
+       variables, for compatibility with x64.
+       (rva_to_section, offset_to_section, relocate_offset)
+       (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
+       (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
+       (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
+       for compatibility with x64.
+
+       * sysdep.c (STDERR_FILENO): Define if not already defined.
+
+       * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
+       (__morecore): Argument type is now ptrdiff_t.
+       (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
+       (relinquish): Use ptrdiff_t type for 'excess'.
+       (r_alloc_sbrk): Argument type is now ptrdiff_t.
+
+       * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
+       (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
+       instead of a literal number.
+
+       * gmalloc.c [WINDOWSNT]: Include w32heap.h.
+       (min): Define only if not already defined.
+
+       * frame.c (x_report_frame_params): Use EMACS_UINT for the return
+       value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
+       hosts.
+
+       * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
+       'bitmaps' is a pointer.
+
+       * dispextern.h (x_bitmap_pixmap): Adjust prototype.
+
+       * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
+
+2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       file-attributes has a new optional arg FOLLOW-SYMLINKS.
+       * dired.c (directory_files_internal, Ffile_attributes):
+       New arg follow_symlinks.  All uses changed.
+
+2012-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
+
+2012-09-30  Eli Zaretskii  <eliz@gnu.org>
+
+       Support atimers and CPU profiler via profile.c on MS-Windows.
+       * w32proc.c (sig_mask, crit_sig): New static variables.
+       (sys_signal): Support SIGALRM and SIGPROF.
+       (sigemptyset, sigaddset, sigfillset, sigprocmask)
+       (pthread_sigmask, setpgrp): Move here from w32.c.  sigaddset,
+       sigfillset, and sigprocmask are no longer no-ops.
+       (sigismember): New function.
+       (struct itimer_data): New definition.
+       (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
+       (crit_prof): New static variables.
+       (MAX_SINGLE_SLEEP): New definition.
+       (timer_loop, stop_timer_thread, term_timers, init_timers)
+       (start_timer_thread, getitimer, setitimer): New functions.
+       (alarm): No longer a no-op, calls setitimer.
+
+       * w32.c (term_ntproc): Call term_timers.
+       (init_ntproc): Make sure all signals are unblocked at startup, to
+       erase any traces of dumping.  Call init_timers.
+
+       * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
+       Windows-specific code to display the hourglass mouse pointer is no
+       longer used.
+       (w32_wnd_proc): Remove code that handled the WM_TIMER message due
+       to hourglass timer expiration.
+       (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
+       Remove, no longer used.
+       (w32_note_current_window, show_hourglass, hide_hourglass):
+       New functions, in support of hourglass cursor display similar to other
+       window systems.
+       (syms_of_w32fns): Don't initialize hourglass_timer.
+
+       * xdisp.c (start_hourglass, cancel_hourglass): Now used on
+       WINDOWSNT as well.
+       (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
+
+       * w32.h (init_timers, term_timers): Add prototypes.
+
+2012-09-30  Kenichi Handa  <handa@gnu.org>
+
+       * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
+       to the buffer relocation which may be caused by ccl_driver.
+
+2012-09-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xfns.c (Fx_file_dialog): Update comment.
+
+       * w32fns.c (Fx_file_dialog): Update comment.
+
+       * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
+       Initialize panel name field if OSX >= 10.6.
+
+       * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
+
+       * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
+
+       * nsterm.m (NEW_STYLE_FS): New define.
+       (ns_fullscreen_hook, windowWillEnterFullScreen)
+       (windowDidEnterFullScreen, windowWillExitFullScreen)
+       (windowDidExitFullScreen, toggleFullScreen, handleFS)
+       (setFSValue): New functions.
+       (EmacsFSWindow): New implementation.
+       (canBecomeKeyWindow): New function for EmacsFSWindow.
+       (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
+       (dealloc): Release nonfs_window if in fullscreen.
+       (updateFrameSize:): Call windowDidMove to update top/left.
+       (windowWillResize:toSize:): Check if frame is still maximized.
+       (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
+       next_maximized, maximized_width, maximized_height and nonfs_window.
+       Call setCollectionBehavior if NEW_STYLE_FS.  Initialize bwidth and
+       tbar_height.
+       (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
+       fullscreen. Set maximized_width/height.  Act on next_maximized.
+
+       * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
+       (EmacsView): Add variables for fullscreen.
+       (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
+       (EmacsFSWindow): New interface for fullscreen.
+
+2012-09-30  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
+
+2012-09-30  Chong Yidong  <cyd@gnu.org>
+
+       * fns.c (Frandom): Doc fix.
+
+2012-09-30  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Vwindow_combination_limit): New default value.
+       (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
+
+2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
+       Suggested by Eli Zaretskii in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
+
+2012-09-30  Eli Zaretskii  <eliz@gnu.org>
+
+       * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
+       HAVE_TIMER_SETTIME is defined.
+
+2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Profiler improvements: more-accurate timers, overflow checks.
+       * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
+       signal.h, setjmp.h.  Include systime.h instead.
+       (saturated_add): New function.
+       (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
+       (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
+       (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
+       New static vars.
+       (enum profiler_cpu_running): New enum.
+       (profiler_cpu_running): Now of that enum type, not bool.
+       All uses changed to store the new value.
+       (handle_profiler_signal): Rename from sigprof_handler_1,
+       for consistency with other handlers.  Do not check whether
+       cpu_log is a hash-table if garbage collecting, since it
+       doesn't matter in that case.
+       (deliver_profiler_signal): Rename from sigprof_handler,
+       for consistency with other handlers.
+       (setup_cpu_timer): New function, with much of what used to be in
+       Fprofiler_cpu_start.  Check for out-of-range argument.
+       Prefer timer_settime if available, and prefer
+       thread cputime clocks, then process cputime clocks, then
+       monotonic clocks, to the old realtime clock.  Use make_timeval
+       to round more-correctly when falling back to setitimer.
+       (Fprofiler_cpu_start): Use it.
+       (Fprofiler_cpu_stop): Prefer timer_settime if available.
+       Don't assume that passing NULL as the 2nd argument of setitimer
+       is the same as passing a pointer to all-zero storage.
+       Ignore SIGPROF afterwards.
+       (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
+       * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
+       non-fatal signal handlers.  Ignore SIGPROF on startup.
+       * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
+       in profiler.c, since sysdep.c now uses it.
+
+       * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
+       Suggested by Eli Zaretskii in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
+
+2012-09-29  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
+
+2012-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (struct backtrace): Remove indirection for `function' field.
+       * xdisp.c (redisplay_internal):
+       * profiler.c (record_backtrace, sigprof_handler_1):
+       * alloc.c (Fgarbage_collect):
+       * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
+       (Fbacktrace_frame): Adjust accordingly.
+
+2012-09-28  Glenn Morris  <rgm@gnu.org>
+
+       * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
+       (Frun_hook_with_args_until_failure): Doc fixes.
+
+2012-09-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
+       Qautomatic_redisplay and change the symbol name.  All users changed.
+
+2012-09-28  Tomohiro Matsuyama  <tomo@cx4a.org>
+
+       * profiler.c (sigprof_handler): Fix race condition.
+
+2012-09-28  Glenn Morris  <rgm@gnu.org>
+
+       * lread.c (lisp_file_lexically_bound_p): Handle #! lines.  (Bug#12528)
+
+2012-09-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Check more robustly for timer_settime.
+       * Makefile.in (LIB_TIMER_TIME): New macro.
+       (LIBES): Add it.
+       * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
+       Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
+       call timer_settime.
+
+2012-09-26  Tomohiro Matsuyama  <tomo@cx4a.org>
+
+       * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
+
 2012-09-26  Juanma Barranquero  <lekktu@gmail.com>
 
+       * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
+
+2012-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * character.h (MAYBE_UNIFY_CHAR): Remove.
+       * charset.c, charset.h (maybe_unify_char): Now static.
+       * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
+       Since this stuff is now private to charset.c, there's no need for
+       a public macro and no need to inline by hand.
+
+2012-09-26  Tomohiro Matsuyama  <tomo@cx4a.org>
+            Stefan Monnier  <monnier@iro.umontreal.ca>
+            Juanma Barranquero  <lekktu@gmail.com>
+
+       * profiler.c: New file.
+       * Makefile.in (base_obj): Add profiler.o.
        * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
        ($(BLD)/profiler.$(O)): New target.
+       * emacs.c (main): Call syms_of_profiler.
+       * alloc.c (Qautomatic_gc): New constant.
+       (MALLOC_PROBE): New macro.
+       (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
+       (total_bytes_of_live_objects): New function.
+       (Fgarbage_collect): Use it.  Record itself in backtrace_list.
+       Call malloc_probe for the memory profiler.
+       (syms_of_alloc): Define Qautomatic_gc.
+       * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
+       race condition.
+       (struct backtrace): Move definition...
+       * lisp.h (struct backtrace): ..here.
+       (Qautomatic_gc, profiler_memory_running): Declare vars.
+       (malloc_probe, syms_of_profiler): Declare functions.
+       * xdisp.c (Qautomatic_redisplay): New constant.
+       (redisplay_internal): Record itself in backtrace_list.
+       (syms_of_xdisp): Define Qautomatic_redisplay.
 
-2012-09-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+2012-09-25  Eli Zaretskii  <eliz@gnu.org>
+2012-09-25  Juanma Barranquero  <lekktu@gmail.com>
 
-       * profiler.c: Rename sample_profiler_* to profiler_cpu_* and
-       memory_profiler_* to profiler_memory_*.  Move sigprof_handler before
-       its first use, inside the PROFILER_CPU_SUPPORT conditional.
+       * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
 
-2012-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
+2012-09-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Prefer POSIX timers if available.
+       They avoid a race if the timer is too close to the current time.
+       * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
+       (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
+       (init_atimer) [SIGEV_SIGNAL]: Initialize them.
+
+2012-09-25  Eli Zaretskii  <eliz@gnu.org>
+
+       * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
+       CHAR_STRING_ADVANCE.
+       (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
+       STRING_CHAR_ADVANCE.
 
-       * profiler.c (evict_lower_half): Fix typo.
-       (PROFILER_CPU_SUPPORT): Check and define if cpu-profiler is supported.
-       Don't compile the cpu-profiler code, if not supported.
-       (malloc_probe): Presume memory_log is non-nil.
-       (syms_of_profiler): Don't defsubr functions when they aren't defined.
+2012-09-25  Juanma Barranquero  <lekktu@gmail.com>
 
-       * lisp.h (sample_profiler_running, gc_probe): Don't declare.
+       Move Vlibrary_cache to emacs.c and reset before dumping.
+
+       * lisp.h (reset_image_types): Declare.
+       [WINDOWSNT] (Vlibrary_cache): Declare.
+
+       * image.c (reset_image_types): New function.
+
+       * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
+       (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
+       (Fdump_emacs): Reset Vlibrary_cache and image_types.
+
+       * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
+       (globals_of_w32) <Vlibrary_cache>: Do not initialize.
+
+       * w32.h (Vlibrary_cache): Do not declare.
+
+2012-09-25  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sys_signal): Handle all signals defined by the
+       MS-Windows runtime, not just SIGCHLD.  Actually install the signal
+       handlers for signals supported by Windows.  Don't override
+       term_ntproc as the handler for SIGABRT.
+       (sigaction): Rewrite to call sys_signal instead of duplicating its
+       code.
+       (sys_kill): Improve commentary.
+
+       * w32.c (term_ntproc): Accept (and ignore) one argument, for
+       consistency with a signature of a signal handler.  All callers
+       changed.
+       (init_ntproc): Accept an argument DUMPING.  If dumping, don't
+       install term_ntproc as a signal handler for SIGABRT, as that
+       should be done by the dumped Emacs.
+
+       * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
+
+       * w32select.c (term_w32select): Protect against repeated
+       invocation by setting clipboard_owner to NULL after calling
+       DestroyWindow.
+
+       * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
+       and term_ntproc to their modified signatures.
+
+       * character.c (char_string, string_char): Remove calls to
+       MAYBE_UNIFY_CHAR.  See the discussion starting at
+       http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
+       for the details.
+
+2012-09-25  Chong Yidong  <cyd@gnu.org>
+
+       * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
 
 2012-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * xdisp.c (Qautomatic_redisplay): New constant.
-       (redisplay_internal): Record itself in backtrace_list.
-       (syms_of_xdisp): Define Qautomatic_redisplay.
+       * bytecode.c (exec_byte_code): Signal an error instead of aborting,
+       when encountering an unknown bytecode.
+
+2012-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       image.c, indent.c: Use bool for booleans.
+       * dispextern.h (struct image_type): Members valid_p, load, init
+       now return bool, not int.  All uses changed.
+       * image.c: Omit unnecessary static decls.
+       (x_create_bitmap_mask, x_build_heuristic_mask):
+       Return void, not int, since callers don't care about the return value.
+       (x_create_bitmap_mask, define_image_type, valid_image_p)
+       (struct image_keyword, parse_image_spec, image_spec_value)
+       (check_image_size, image_background)
+       (image_background_transparent, x_clear_image_1)
+       (postprocess_image, lookup_image, x_check_image_size)
+       (x_create_x_image_and_pixmap, xbm_image_p)
+       (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
+       (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
+       (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
+       (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
+       (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
+       (png_image_p, init_png_functions, png_load_body, png_load)
+       (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
+       (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
+       (init_gif_functions, gif_load, imagemagick_image_p)
+       (imagemagick_load_image, imagemagick_load, svg_image_p)
+       (init_svg_functions, svg_load, svg_load_image, gs_image_p)
+       (gs_load):
+       * nsimage.m (ns_load_image):
+       * nsterm.m (ns_defined_color):
+       * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
+       * xfns.c (x_defined_color):
+       * xterm.c (x_alloc_lighter_color_for_widget)
+       (x_alloc_nearest_color_1, x_alloc_nearest_color)
+       (x_alloc_lighter_color):
+       * indent.c (disptab_matches_widthtab, current_column)
+       (scan_for_column, string_display_width, indented_beyond_p)
+       (compute_motion, vmotion, Fvertical_motion):
+       Use bool for booleans.
+
+2012-09-24  Chong Yidong  <cyd@gnu.org>
+
+       * chartab.c (Fset_char_table_default): Obsolete function removed.
+
+2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Move pid_t related decls out of lisp.h.
+       * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
+       (interruptible_wait_for_termination):
+       Move these decls from lisp.h to syswait.h, since they use pid_t.
+       Needed on FreeBSD; see Herbert J. Skuhra in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
+       * callproc.c: Include syswait.h.
+
+       gnutls.c, gtkutil.c: Use bool for boolean.
+       * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
+       (emacs_gnutls_handle_error):
+       * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
+       (xg_hide_tooltip, xg_create_frame_widgets)
+       (create_dialog, xg_uses_old_file_dialog)
+       (xg_get_file_with_chooser, xg_get_file_with_selection)
+       (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
+       (xg_item_label_same_p, xg_update_menubar)
+       (xg_modify_menubar_widgets, xg_event_is_for_menubar)
+       (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
+       (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
+       (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
+       (update_frame_tool_bar, free_frame_tool_bar):
+       * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
+       * nsmenu.m (ns_update_menubar):
+       * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
+       * xfns.c (Fx_show_tip) [USE_GTK]:
+       Use bool for boolean.
+       * gtkutil.c (xg_update_frame_menubar):
+       * xmenu.c (update_frame_menubar):
+       Return void, not int, since caller ignores return value.
+       * gtkutil.c (xg_change_toolbar_position):
+       Return void, not 1.
+
+2012-09-23  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (BLOCKINPUT_H): Remove.
+       (SYSSIGNAL_H): New macro.
+       ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
+       ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
+       ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
+       ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
+       ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
+       ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
+       ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
+       ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
+       ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
+       ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
+       ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
+       ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
+       ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
+       ($(BLD)/w32xfns.$(O)): Update dependencies.
+
+2012-09-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
+       fatal_error_backtrace.
+
+       * w32proc.c (sys_kill): Undo last change: don't do anything when
+       invoked to deliver SIGABRT to our own process.  This is now
+       handled by emacs_raise.
+
+2012-09-23  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32term.c (w32_read_socket): Remove leftover reference to
+       interrupt_input_pending.
+
+2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Do not use SA_NODEFER.
+       Problem reported by Dani Moncayo in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
+       * alloc.c (die):
+       * sysdep.c (emacs_abort): Do not reset signal handler.
+       * emacs.c (terminate_due_to_signal): Reset signal handler here.
+       * sysdep.c (init_signals): Do not use SA_NODEFER.  It wasn't
+       wanted even on POSIXish hosts, and it doesn't work on Windows.
+
+2012-09-23  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xterm.c (x_term_init): Call fixup_locale before and after calling
+       gtk_init (Bug#12392).
+
+2012-09-23  Chong Yidong  <cyd@gnu.org>
+
+       * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
+       Vdynamic_library_alist.
+
+       * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
+       (Fgnutls_available_p): Caller changed.
+
+       * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
+       (Flibxml_parse_xml_region): Likewise.
+
+       * dispextern.h (struct image_type): Remove arg from init function.
+
+       * image.c (Finit_image_library, lookup_image_type)
+       (define_image_type): Remove now-unneeded second arg.
+       (init_xpm_functions, init_png_functions, init_jpeg_functions)
+       (init_tiff_functions, init_gif_functions, init_svg_functions):
+       Arglist and w32_delayed_load calling convention changed.
+       (gs_type): Remove init_gs_functions; there is no such function.
+       (valid_image_p, make_image): Fix caller to lookup_image_type.
+
+2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify and avoid signal-handling races (Bug#12471).
+       * alloc.c (die):
+       * sysdep.c (emacs_abort) [HAVE_NTGUI]:
+       Avoid recursive loop if there's a fatal error in the function itself.
+       * atimer.c (pending_atimers):
+       * blockinput.h: Don't include "atimer.h"; no longer needed.
+       (interrupt_input_pending): Remove.  All uses removed.
+       pending_signals now counts both atimers and ordinary interrupts.
+       This is less racy than having three separate pending-signal flags.
+       (block_input, unblock_input, totally_unblock_input, unblock_input_to)
+       (input_blocked_p):
+       Rename from their upper-case counterparts BLOCK_INPUT,
+       UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
+       INPUT_BLOCKED_P, and turn into functions.  All uses changed.
+       This makes it easier to access volatile variables more accurately.
+       (BLOCK_INPUT_RESIGNAL): Remove.  All uses replaced by unblock_input ().
+       (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
+       that's more reliable if the code is buggy and sets
+       interrupt_input_blocked to a negative value.  All uses changed.
+       * atimer.c (deliver_alarm_signal):
+       Remove.  No need to deliver this to the parent; any thread can
+       handle this signal now.  All uses replaced by underlying handler.
+       * atimer.c (turn_on_atimers):
+       * dispnew.c (handle_window_change_signal):
+       * emacs.c (handle_danger_signal):
+       * keyboard.c (kbd_buffer_get_event):
+       Don't reestablish signal handler; not needed with sigaction.
+       * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
+       (UNBLOCK_INPUT_TO):
+       Rework to avoid unnecessary accesses to volatile variables.
+       (UNBLOCK_INPUT_TO): Now a function.
+       (totally_unblock_input, unblock_input): New decls.
+       * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
+       (init_data): Remove.  Necessary stuff now done in init_signal.
+       * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
+       * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
+       (fatal_error_code): Remove; no longer needed.
+       (terminate_due_to_signal): Rename from fatal_error_backtrace, since
+       it doesn't always backtrace.  All uses changed.  No need to reset
+       signal to default, since sigaction and/or die does that for us now.
+       Use emacs_raise (FOO), not kill (getpid (), FOO).
+       (main): Check more-accurately whether we're dumping.
+       Move fatal-error setup to sysdep.c
+       * floatfns.c: Do not include "syssignal.h"; no longer needed.
+       * gtkutil.c (xg_get_file_name, xg_get_font):
+       Remove no-longer-needed signal-mask manipulation.
+       * keyboard.c, process.c (POLL_FOR_INPUT):
+       Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
+       * keyboard.c (read_avail_input): Remove.
+       All uses replaced by gobble_input.
+       (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
+       (kbd_buffer_store_event_hold, gobble_input):
+       (record_asynch_buffer_change) [USABLE_SIGIO]:
+       (store_user_signal_events):
+       No need to mess with signal mask.
+       (gobble_input): If blocking input and there are terminals, simply
+       set pending_signals to 1 and return.  All hooks changed to not
+       worry about whether input is blocked.
+       (process_pending_signals): Clear pending_signals before processing
+       them, in case a signal comes in while we're processing.
+       By convention callers now test pending_signals before calling us.
+       (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
+       New functions, to support changes to blockinput.h.
+       (handle_input_available_signal): Now extern.
+       (reinvoke_input_signal): Remove.  All uses replaced by
+       handle_async_input.
+       (quit_count): Now volatile, since a signal handler uses it.
+       (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
+       All callers changed.  Block SIGINT only if not already blocked.
+       Clear sigmask reliably, even if Fsignal returns, which it can.
+       Omit unnecessary accesses to volatile var.
+       (quit_throw_to_read_char): No need to restore sigmask.
+       * keyboard.c (gobble_input, handle_user_signal):
+       * process.c (wait_reading_process_output):
+       Call signal-handling code rather than killing ourselves.
+       * lisp.h: Include <float.h>, for...
+       (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
+       (pending_signals): Now volatile.
+       (syms_of_data): Now const if IEEE floating point.
+       (handle_input_available_signal) [USABLE_SIGIO]:
+       (terminate_due_to_signal, record_child_status_change): New decls.
+       * process.c (create_process): Avoid disaster if memory is exhausted
+       while we're processing a vfork, by tightening the critical section
+       around the vfork.
+       (send_process_frame, process_sent_to, handle_pipe_signal)
+       (deliver_pipe_signal): Remove.  No longer needed, as Emacs now
+       ignores SIGPIPE.
+       (send_process): No need for setjmp/longjmp any more, since the
+       SIGPIPE stuff is now gone.  Instead, report an error if errno
+       is EPIPE.
+       (record_child_status_change): Now extern.  PID and W are now args.
+       Return void, not bool.  All callers changed.
+       * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
+       Remove.  All uses removed.  This bug should be fixed now in a
+       different way.
+       (wait_for_termination_1): Use waitpid rather than sigsuspend,
+       and record the child status change directly.  This avoids the
+       need to futz with the signal mask.
+       (process_fatal_action): Move here from emacs.c.
+       (emacs_sigaction_flags): New function, containing
+       much of what used to be in emacs_sigaction_init.
+       (emacs_sigaction_init): Use it.  Block nonfatal system signals that are
+       caught by emacs, to make races less likely.
+       (deliver_process_signal): Rename from handle_on_main_thread.
+       All uses changed.
+       (BACKTRACE_LIMIT_MAX): Now at top level.
+       (thread_backtrace_buffer, threadback_backtrace_pointers):
+       New static vars.
+       (deliver_thread_signal, deliver_fatal_thread_signal):
+       New functions, for more-accurate delivery of thread-specific signals.
+       (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
+       (deliver_arith_signal): Handle in this thread, not
+       in the main thread, since it's triggered by this thread.
+       (maybe_fatal_sig): New function.
+       (init_signals): New arg DUMPING so that we can be more accurate
+       about whether we're dumping.  Caller changed.
+       Treat thread-specific signals differently from process-general signals.
+       Block all signals while handling fatal error; that's safer.
+       xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
+       on IEEE hosts.
+       When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
+       Ignore SIGPIPE unless batch.
+       (emacs_backtrace): Output backtrace for the appropriate thread,
+       which is not necessarily the main thread.
+       * syssignal.h: Include <stdbool.h>.
+       (emacs_raise): New macro.
+       * xterm.c (x_connection_signal): Remove; no longer needed
+       now that we use sigaction.
+       (x_connection_closed): No need to mess with sigmask now.
+       (x_initialize): No need to reset SIGPIPE handler here, since
+       init_signals does this for us now.
+
+2012-09-23  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
+       background rect may be larger (Bug#12245).
+
+2012-09-23  Chong Yidong  <cyd@gnu.org>
+
+       * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
+
+2012-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * .gdbinit: Just stop at fatal_error_backtrace.
+       See Stefan Monnier's request in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
+       Remove no-longer-used query of system type.
+
+2012-09-22  Chong Yidong  <cyd@gnu.org>
+
+       * search.c (Freplace_match): Doc fix (Bug#12325).
+
+       * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
+
+       * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
+       (Fline_end_position): Doc fix.
+
+       * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
+
+2012-09-22  Chong Yidong  <cyd@gnu.org>
+
+       * dispextern.h (struct image_type): Add new slot, storing a type
+       initialization function.
+
+       * image.c (define_image_type): Call the image initializer function
+       if it is defined.  Arguments and return value changed.
+       (valid_image_p, make_image): Callers changed.
+       (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
+       (gif_type, imagemagick_type, svg_type, gs_type):
+       Add initialization functions.
+       (Finit_image_library): Call lookup_image_type.
+       (CHECK_LIB_AVAILABLE): Macro deleted.
+       (lookup_image_type): Call define_image_type here, rather than via
+       Finit_image_library, and without using CHECK_LIB_AVAILABLE.
+       (syms_of_image): Move define_image_type calls for xbm_type and
+       pbm_type to lookup_image_type.
+
+2012-09-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * keyboard.c (timer_check_2): Move calculation of 'timers' and
+       'idle_timers' from here ...
+       (timer_check): ... to here.  Use Fcopy_sequence to copy the timer
+       lists, to avoid infloops when the timer does something stupid,
+       like reinvoke itself with the same or smaller time-out.
+       (Bug#12447)
+
+2012-09-22  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fsplit_window_internal): Handle only Qt value of
+       Vwindow_combination_limit separately.
+       (Qtemp_buffer_resize): New symbol.
+       (Vwindow_combination_limit): New default value.
+       Rewrite doc-string.
 
-       * profiler.c: Remove filtering functionality.
-       (is_in_trace, Qgc): Remove vars.
-       (make_log, record_backtrace, Fsample_profiler_log):
-       Rewrite, using Elisp hash-tables.
-       (approximate_median, evict_lower_half): New functions.
-       (cpu_log): Rename from sample_log.
-       (cpu_gc_count): New var.
-       (Fsample_profiler_reset, Fmemory_profiler_reset): Remove.
-       (sigprof_handler): Add count to cpu_gc_count during GC, detected via
-       backtrace_list.
-       (block_sigprof, unblock_sigprof): Remove.
-       (gc_probe, mark_profiler): Remove functions.
-       (syms_of_profiler): Staticpro cpu_log and memory_log.
-
-       * lisp.h (SXHASH_COMBINE): Move back to...
-       * fns.c (SXHASH_COMBINE): ...here.
-
-       * alloc.c (Fgarbage_collect): Record itself in backtrace_list.
-       Don't set is_in_trace any more.  Don't call mark_profiler.
-       Only call gc_probe for the memory profiler.
-       (syms_of_alloc): Define Qautomatic_gc.
+2012-09-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (next_overlay_string): Initialize it->end_charpos for
+       the new overlay string.  (Bug#10159)
+
+2012-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
+       or that fprintf is async-signal-safe.  POSIX doesn't require
+       either assumption.
+
+2012-09-22  Chong Yidong  <cyd@gnu.org>
+
+       * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
+       (Bug#8207).
+
+2012-09-22  Kenichi Handa  <handa@gnu.org>
+
+       * composite.c (composition_reseat_it): Handle the case that a
+       grapheme cluster is not covered by a single font (Bug#12352).
+
+2012-09-21  Chong Yidong  <cyd@gnu.org>
+
+       * image.c (define_image_type): Avoid adding duplicate types to
+       image_types (Bug#12463).  Suggested by Jörg Walter.
+
+2012-09-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
+       (print_load_command_name): Add case LC_DATA_IN_CODE.
+       (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
+
+2012-09-21  Glenn Morris  <rgm@gnu.org>
+
+       * eval.c (Frun_hook_with_args_until_success)
+       (Frun_hook_with_args_until_failure): Doc fixes.  (Bug#12393)
+
+2012-09-21  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * fileio.c (Ffile_selinux_context): Only call freecon when
+       lgetfilecon succeeded.
+       (Fset_file_selinux_context): Likewise.  (Bug#12444)
+
+2012-09-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (try_window_reusing_current_matrix): Under bidi
+       reordering, locate the cursor by calling set_cursor_from_row; if
+       that fails, clear the desired glyph matrix before returning a
+       failure indication to the caller.  Fixes leaving garbled display
+       when fast scrolling with a down-key.  (Bug#12403)
+       (compute_stop_pos_backwards): Fix a typo that caused crashes while
+       scrolling through multibyte text.
+
+2012-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
+       calling mark_vectorlike since that's the one that marks the window.
+       (mark_discard_killed_buffers): Mark the final cdr.
+       * window.h (struct window): Move prev/next_buffers to the
+       non-standard fields.
+       * window.c (make_window): Initialize prev/next_buffers manually.
+
+2012-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Omit unused arg EXPECTED from socket hooks.
+       * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
+       * nsterm.m (ns_term_init):
+       * termhooks.h (struct terminal.read_socket_hook):
+       * w32inevt.c (w32_console_read_socket):
+       * w32term.c (w32_read_socket):
+       * xterm.c (XTread_socket):
+       Omit unused arg EXPECTED.  All callers changed.
+       (store_user_signal_events): Return void, not int, since callers no
+       longer care about the return value.  All uses changed.
+
+2012-09-20  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32gui.h (XParseGeometry): Do not declare.
+
+2012-09-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
+       Ignore 'expected'. See Eli Zaretskii in
+       <http://bugs.gnu.org/12471#8> (last line).
+
+       * frame.c (read_integer): Remove.  All uses replaced by strtol/strtoul.
+       (XParseGeometry): Now static.  Substitute extremal values for
+       values that are out of range.
+
+2012-09-19  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
+
+       * nsfns.m (XParseGeometry): Remove.
+       (Fx_create_frame): Call x_set_offset to correctly interpret
+       top_pos in geometry.
+
+       * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
+       (Fx_parse_geometry): If there is a space in string, call
+       Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
+
+2012-09-17  Eli Zaretskii  <eliz@gnu.org>
+
+       * search.c (scan_buffer): Use character positions in calls to
+       region_cache_forward and region_cache_backward, not byte
+       positions.  (Bug#12196)
+
+       * w32term.c (w32_read_socket): Set pending_signals to 1, like
+       xterm.c does.  Reported by Daniel Colascione <dancol@dancol.org>.
+
+       * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
+       __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
+       emacs_blocked_malloc, now deleted.
+
+2012-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove no-longer-needed Solaris 2.4 vfork bug workaround.
+       The workaround was for improving performance on Solaris 2.4, but
+       is getting in the way now.  Emacs will still work if someone is
+       still running Solaris 2.4 in a museum somewhere; Sun dropped
+       support for Solaris 2.4 in 2003.
+       * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
+       * process.c (create_process) [HAVE_WORKING_VFORK]:
+       Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
+       since Emacs no longer uses vfork on that platform.
+
+2012-09-17  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.c: Use COPYRIGHT.
+
+2012-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove configure's --without-sync-input option (Bug#12450).
+       When auditing signal-handling in preparation for cleaning it up,
+       I found that SYNC_INPUT has race conditions and would be a real
+       pain to fix.  Since it's an undocumented and deprecated
+       configure-time option, now seems like a good time to remove it.
+       Also see <http://bugs.gnu.org/11080#16>.
+       * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
+       (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
+       (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
+       (malloc_hysteresis):
+       (check_depth) [XMALLOC_OVERRUN_CHECK]:
+       (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
+       (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
+       (dont_register_blocks, bytes_used_when_reconsidered)
+       (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
+       (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
+       [!SYSTEM_MALLOC && !SYNC_INPUT]:
+       Remove. All uses removed.
+       (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
+       implementation, one that depends on whether the new macro
+       XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
+       is defined.
+       * atimer.c (run_timers, handle_alarm_signal):
+       * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
+       (handle_async_input, process_pending_signals)
+       (handle_input_available_signal, init_keyboard):
+       * nsterm.m (ns_read_socket):
+       * process.c (wait_reading_process_output):
+       * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
+       * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
+       (emacs_write):
+       * xterm.c (XTread_socket):
+       Assume SYNC_INPUT.
+       * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
+       * eval.c (handling_signal): Remove.  All uses removed.
+       * lisp.h (ELSE_PENDING_SIGNALS): Remove.
+       All uses replaced with the SYNC_INPUT version.
+       (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
+       Remove decls.
+       * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Now static.
+
+       * font.c (Ffont_shape_gstring): Remove unused local.
+
+2012-09-16  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (clean): No longer run nextstep's clean.
+
+       * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
+       (ns_frag): Remove.
+       (ns-app): Move here from ns.mk, and simplify.
+       (clean): Simplify nextstep entry.
+       * ns.mk: Remove file.
+
+2012-09-17  Kenichi Handa  <handa@gnu.org>
+
+       * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
+       not covert the last few charactes.
+
+2012-09-16  Kenichi Handa  <handa@gnu.org>
+
+       * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
+       here, but just check the validity of glyphs in the glyph-string.
+
+2012-09-16  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fwindow_parameter, Fset_window_parameter):
+       Accept any window as argument (Bug#12452).
+
+2012-09-16  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
+       to ns_term_init to avoid memory leak.
+
+       * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
+       explicit retain/release.
+       (ns_term_init): Only allow one display.  Initialize outerpool and
+       ns_*_types.
+
+2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port _setjmp fix to POSIXish hosts as well as Microsoft.
+       * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
+       it's needed on POSIXish hosts that lack _setjmp.  Attempt to solve
+       the Microsoft problem in a different way, by altering ../nt/config.nt.
+
+2012-09-15  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32xfns.c:
+       * w32uniscribe.c:
+       * w32term.c:
+       * w32select.c:
+       * w32reg.c:
+       * w32proc.c:
+       * w32menu.c:
+       * w32inevt.c:
+       * w32heap.c:
+       * w32font.c:
+       * w32fns.c:
+       * w32console.c:
+       * w32.c:
+       * w16select.c: Remove inclusion of setjmp.h, as it is now included
+       by lisp.h.  This completes removal of setjmp.h inclusion
+       erroneously announced in the previous commit.  (Bug#12446)
+
+       * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
+       more accurate.
+
+       * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
+       not defined as a macro.  The latter happens on MS-Windows.
+       (Bug#12446)
+
+2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port better to POSIX hosts lacking _setjmp (Bug#12446).
+       * lisp.h: Include <setjmp.h> here, since we use its symbols here.
+       Some instances of '#include <setjmp.h>' removed, if the
+       only reason for the instance was because "lisp.h" was included.
+       (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
+       Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
+       and _longjmp with the new symbols.  Emacs already uses _setjmp if
+       available, so this change affects only POSIXish hosts that have
+       sigsetjmp but not _setjmp, such as some versions of Solaris and
+       Unixware.  (Also, POSIX-2008 marks _setjmp as obsolescent.)
+       * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
+       (png_load_body) [HAVE_PNG]:
+       (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
+       (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
+       Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
+       since PNG requires jmp_buf.  This is the only exception to the
+       general rule that we now use sys_setjmp and sys_longjmp.
+       This exception is OK since this code does not change the signal
+       mask or longjmp out of a signal handler.
+
+2012-09-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
+       Include "syssignal.h", for 'main_thread'.
+
+2012-09-14  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid out-of-range marker position (Bug#12426).
+       * insdel.c (replace_range, replace_range_2):
+       Adjust markers before overlays, as suggested by comments.
+       (insert_1_both, insert_from_buffer_1, adjust_after_replace):
+       Remove redundant check before calling offset_intervals.
+
+2012-09-14  Martin Rudalics  <rudalics@gmx.at>
+
+       * xdisp.c (Fformat_mode_line): Unconditionally save/restore
+       current buffer (Bug#12387).
+
+2012-09-14  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
+
+2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use a more backwards-compatible timer format (Bug#12430).
+       * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
+       vector element, not from the 4th, since PSECS is now at the end.
+       (Fcurrent_idle_time): Doc fix.
+
+2012-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Function to mark objects and remove killed buffers at once.
+       * alloc.c (discard_killed_buffers): Rename to ...
+       (mark_discard_killed buffers) ... new name.  Add marking
+       of remaining objects.  Fix comment.  Adjust users.
+       (mark_object): Do not touch frame buffer lists here.
+       * frame.c (delete_frame): Reset frame buffer lists here.
+
+2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Better workaround for GNOME bug when --enable-gcc-warnings.
+       * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
+       Instead, disable -Wunused-local-typedefs.  See Dmitry Antipov in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
+
+       Simplify SIGIO usage (Bug#12408).
+       The code that dealt with SIGIO was crufty and confusing, e.g., it
+       played tricks like "#undef SIGIO" but these tricks were not used
+       consistently.  Simplify mostly by not #undeffing standard symbols,
+       e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
+       or not as we please) rather than "defined SIGIO" (standard symbol
+       that we probably shouldn't #undef).
+       * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
+       Modules that need it can include it.
+       [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
+       * dispextern.h (ignore_sigio): New decl.
+       * emacs.c (shut_down_emacs): Invoke unrequest_sigio
+       unconditionally, since it's now a no-op if !USABLE_SIGIO.
+       * emacs.c (shut_down_emacs):
+       * keyboard.c (kbd_buffer_store_event_hold):
+       Use ignore_sigio rather than invoking 'signal' directly.
+       * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
+       for FIONREAD.
+       (FIONREAD, SIGIO): Do not #undef.
+       (tty_read_avail_input): Use #error rather than a syntax error.
+       * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
+       for I_PIPE, used by SETUP_SLAVE_PTY.
+       (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
+       * sysdep.c (croak): Remove; no longer needed.  This bit of
+       temporary code, with Fred N. Fish's comment that it's temporary,
+       has been in Emacs since at least 1992!
+       (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
+       Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
+       * syssignal.h (croak): Remove decl.
+       (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
+       * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
+       now that we're termios-only.
+       (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
+       * term.c (dissociate_if_controlling_tty): Use #error rather than
+       a run-time error.
+
+       Work around GCC and GNOME bugs when --enable-gcc-warnings.
+       * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
+       to work around GNOME bug 683906.
+       * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
+       (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
+       This works around GCC bug 54561.
+
+2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       More fixes for 'volatile' and setjmp/longjmp.
+       * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
+       * image.c (struct png_load_context) [HAVE_PNG]: New type.
+       (png_load_body) [HAVE_PNG]:
+       (jpeg_load_body) [HAVE_JPEG]:
+       New function, with most of the old parent function's body.
+       (png_load) [HAVE_PNG]:
+       (jpeg_load) [HAVE_JPEG]:
+       Invoke the new function, to avoid longjmp munging our locals.
+       (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
+       (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
+       longjmp is passed 2, as the C standard doesn't guarantee this.
+       Instead, store the failure code into mgr->failure_code.
+
+2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
+       (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
+       (syms_of_keyboard): Remove support for unread-command-char.
+
+2012-09-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sys_kill): If PID is our process ID and the signal is
+       SIGABRT, call emacs_abort.  Avoids silently exiting upon assertion
+       violation.  (Bug#12426)
+
+2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
+
+2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c: Add `inhibit-debugger'.
+       (Qinhibit_debugger): New symbol.
+       (call_debugger): Bind it instead of Qdebug_on_error.
+       (maybe_call_debugger): Test Vinhibit_debugger.
+       (syms_of_eval): Define inhibit-debugger.
+       * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
+       (syms_of_xdisp): Remove inhibit-debug-on-message.
+
+2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Avoid _setjmp/_longjmp problems with local nonvolatile variables.
+       If a nonvolatile local variable is written before a _longjmp to
+       the frame containing the variable, and is read after the _longjmp,
+       the value read is indeterminate.  Some local variables of type
+       'struct handler' and 'struct catchtag' are used in this way, so
+       mark each of their slots as volatile if the slot can be set before
+       _longjmp and read afterwards.
+       * lisp.h (struct handler): var and chosen_clause are now volatile.
+       (struct catchtag): val, next, and pdlcount are now volatile.
+
+       * bidi.c (bidi_push_it, bidi_pop_it):
+       * fns.c (copy_hash_table):
+       * image.c (define_image_type):
+       * keyboard.c (kbd_buffer_store_event_hold):
+       * process.c (Fprocess_send_eof):
+       * xfaces.c (x_create_gc) [HAVE_NS]:
+       * xgselect.c (xg_select):
+       Prefer assignment to memcpy when either will do.
+
+       * alloc.c (discard_killed_buffers): Tune and simplify a bit.
+       Use pointer-to-a-pointer to simplify and avoid a NILP check each
+       time an item is removed.  No need to mark this function 'inline';
+       the compiler knows better than we do.
+
+2012-09-11  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
+       (updateFrameSize:): Add delay parameter to updateFrameSize, send it
+       to change_frame_size (Bug#12388).
+       (windowDidResize:): Pass YES to updateFrameSize.
+
+       * nsterm.h: Add delay parameter to updateFrameSize.
+
+2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Discard killed buffers from deleted window and frame objects.
+       This reduces an amount of references to killed buffers and
+       helps GC to reclaim them faster.
+       * alloc.c (discard_killed_buffers): New function.
+       (mark_object): Use it for deleted windows and frames.
+       (mark_object): If symbol's value is set up for a killed buffer
+       or deleted frame, restore it's global binding.
+       * data.c (swap_in_global_binding): Add GC notice.
+       (swap_in_symval_forwarding): Use convenient set_blv_where.
+       * window.c (wset_next_buffers, wset_prev_buffers): Move ...
+       * window.h: ... to here.
+
+2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Convenient macro to check whether the buffer is live.
+       * buffer.h (BUFFER_LIVE_P): New macro.
+       * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
+       * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
+
+2012-09-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
+       composition cases (Bug#12364).
+
+       * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
+       overhang of succeeding glyphs overlapping box cursor.
+
+       * w32term.c (x_draw_glyph_string): Likewise.
+
+2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify, document, and port floating-point (Bug#12381).
+       The porting part of this patch fixes bugs on non-IEEE platforms
+       with frexp, ldexp, logb.
+       * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
+       Now static.
+       * floatfns.c: Simplify discussion of functions that Emacs doesn't
+       support, by removing commented-out code and briefly listing the
+       C89 functions excluded.  The commented-out stuff was confusing
+       maintenance, e.g., we thought we needed cbrt but it was commented out.
+       (logb): Remove decl; no longer needed.
+       (isfinite): New macro, if not already supplied.
+       (isnan): Don't replace any existing macro.
+       (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
+       are present on all C89 platforms.
+       (Ffrexp): Do not special-case zero, as frexp does the right thing
+       for that case.
+       (Flogb): Do not use logb, as it doesn't have the desired meaning
+       on hosts that use non-base-2 floating point.  Instead, stick with
+       frexp, which is C89 anyway.  Do not pass an infinity or a NaN to
+       frexp, to avoid getting an unspecified result.
+
+       * xdisp.c (Qinhibit_debug_on_message): Now static.
+
+2012-09-10  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_update_begin): Set clip path to whole view by using
+       NSBezierPath (Bug#12131).
+
+2012-09-10  Chong Yidong  <cyd@gnu.org>
+
+       * fns.c (Fdelq, Fdelete): Doc fix.
+
+2012-09-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
+       (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
+
+2012-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (make_lisp_ptr): New macro to replace XSET.
+       (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
+       Use it.
+
+2012-09-09  Eli Zaretskii  <eliz@gnu.org>
+
+       * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
+       left fringe if the window has a left margin.  This avoids leaving
+       traces of the cursor because its leftmost pixel is not drawn over.
+
+       * dispnew.c (update_window_line): When the left margin area of a
+       screen line is updated, set the redraw_fringe_bitmaps_p flag of
+       that screen line.  (Bug#12277)
+
+2012-09-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume C89 or later for math functions (Bug#12381).
+       This simplifies the code, and makes it a bit smaller and faster,
+       and (most important) makes it easier to clean up signal handling
+       since we can stop worring about floating-point exceptions in
+       library code.  That was a problem before C89, but the problem
+       went away many years ago on all practical Emacs targets.
+       * data.c, image.c, lread.c, print.c:
+       Don't include <math.h>; no longer needed.
+       * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
+       might be autoconfigured, as that never happens.
+       * data.c (fmod):
+       * doprnt.c (DBL_MAX_10_EXP):
+       * print.c (DBL_DIG):
+       Remove.  C89 or later always defines these.
+       * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
+       (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
+       (arith_error, domain_error, domain_error2):
+       Remove all this pre-C89 cruft.  Do not include <errno.h> as that's
+       no longer needed -- we simply return what C returns.  All uses removed.
+       (IN_FLOAT, IN_FLOAT2): Remove.  All uses replaced with
+       the wrapped code.
+       (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
+       Remove.  All uses expanded, as these macros are no longer used
+       more than once and are now more trouble than they're worth.
+       (Ftan): Use tan, not sin / cos.
+       (Flogb): Assume C89 frexp.
+       (fmod_float): Assume C89 fmod.
+       (matherr) [HAVE_MATHERR]: Remove; no longer needed.
+       (init_floatfns): Remove.  All uses removed.
+
+2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
+       compositeToPoint for OSX < 10.6 (Bug#12390).
+
+2012-09-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
+       This produces more-accurate results.
+
+2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (updateFrameSize): Call setFrame: on the view when size
+       changes (Bug#12088).
+
+2012-09-08  Chong Yidong  <cyd@gnu.org>
+
+       * syntax.c (Fstring_to_syntax): Doc fix.
+
+2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
+       in the internal border.
+       (x_set_window_size): Remove static variables and their usage.
+       (ns_redraw_scroll_bars): Fix NSTRACE arg.
+       (ns_after_update_window_line, ns_draw_fringe_bitmap):
+       Remove fringe/internal border adjustment (Bug#11052).
+       (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
+       (ns_draw_window_cursor): Remove fringe/internal border adjustment.
+       (ns_fix_rect_ibw): Remove.
+       (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
+       (ns_dumpglyphs_box_or_relief): Ditto.
+       (ns_maybe_dumpglyphs_background): Remove fringe/internal border
+       adjustment.
+       (ns_dumpglyphs_image): Ditto.
+       (ns_dumpglyphs_stretch): Fix coding style.  Remove fringe/internal
+       border adjustment.
+       (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
+       their usage.  Add fringe_extended_p and its use as in other terms.
+       (ns_judge_scroll_bars): Code style fix.  Call updateFrameSize if
+       scroll bar was removed.
+       (updateFrameSize): New function.
+       (windowDidResize): Move code to updateFrameSize and call it.
+
+       * nsterm.h (EmacsView): Add updateFrameSize.
+
+2012-09-07  Chong Yidong  <cyd@gnu.org>
+
+       * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
+
+       * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
+
+2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       More signal-handler cleanup (Bug#12327).
+       * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
+       Problem introduced when merging patches.  Noted by Eli Zaretskii in
+       <http://bugs.gnu.org/12327#67>.
+       * floatfns.c: Comment fix.
+       * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
+       SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
+       and anyway the declaration is harmless even if SIGDANGER is not defined.
+       * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
+       defined BROKEN_FIONREAD).  systty.h formerly did this, but other
+       source files not surprisingly expected syssignal.h to define, or
+       not define, SIGIO, and it's cleaner to do it that way, for consistency.
+       Include <sys/ioctl.h>, for FIONREAD.
+       * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
+       This eliminates a problem whereby other files mysteriously had
+       to include "syssignal.h" before including "systty.h" if they
+       wanted to use "#ifdef SIGIO".
+
+2012-09-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
+
+       * w32.c (sigemptyset): Empty the set.
+       (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
+
+       * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
+
+2012-09-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (mark_buffer): Revert unsafe marking optimization.
+       (mark_object): Likewise for frame objects.
+
+2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * syssignal.h (handle_on_main_thread): Always declare,
+       even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
+       This ports to platforms without HAVE_PTHREAD.
+
+2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Signal-handler cleanup (Bug#12327).
+       Emacs's signal handlers were written in the old 4.2BSD style with
+       sigblock and sigmask and so forth, and this led to some
+       inefficiencies and confusion.  Rewrite these to use
+       pthread_sigmask etc. without copying signal sets around.  Also,
+       get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
+       'signal', and instead use functions that do not attempt to take
+       over the system name space.  This patch causes Emacs's text
+       segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
+       * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
+       Do not include <signal.h> or "syssignal.h", as these
+       modules do not use signals.
+       * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
+       * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
+       Do not include <signal.h>, as "syssignal.h" does that for us now.
+       * atimer.c (sigmask_atimers): New function.
+       (block_atimers, unblock_atimers): New functions,
+       replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
+       All uses replaced.
+       * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
+       no longer needed here.
+       * emacs.c (main): Inspect existing signal handler with sigaction,
+       so that there's no need to block and unblock SIGHUP.
+       * sysdep.c (struct save_signal): New member 'action', replacing
+       old member 'handler'.
+       (save_signal_handlers, restore_signal_handlers):
+       Use sigaction instead of 'signal' to save and restore.
+       (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
+       New function.  All users of 'signal' modified to use set_sighandler
+       if they're writeonly, and to use sys_signal if they're read+write.
+       (emacs_sigaction_init, forwarded_signal): New functions.
+       (sys_signal): Remove.  All uses replaced by calls to sigaction
+       and emacs_sigaction_init, or by direct calls to 'signal'.
+       (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
+       (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
+       all uses replaced by pthread_sigmask etc. calls.
+       * syssignal.h: Include <signal.h>.
+       (emacs_sigaction_init, forwarded_signal): New decls.
+       (SIGMASKTYPE): Remove.  All uses replaced by its definiens, sigset_t.
+       (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
+       (sigmask, sys_sigmask): Remove; no longer needed.
+       (sigpause): Remove.  All uses replaced by its definiens, sigsuspend.
+       (sigblock, sigunblock, sigfree):
+       (sigsetmask) [!defined sigsetmask]:
+       Remove.  All uses replaced by pthread_sigmask.
+       (signal): Remove.  Its remaining uses (with SIG_DFL and SIG_IGN)
+       no longer need to be replaced, and its typical old uses
+       are now done via emacs_sigaction_init and sigaction.
+       (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
+       (sys_sigdel): Remove; unused.
+       (NSIG): Remove a FIXME; the code's fine.  Remove an unnecessary ifdef.
+
+2012-09-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
+       SIGCHLD handling on systems that don't have WNOHANG.  (Bug#12327)
+
+2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Explicitly mark buffer_defaults and buffer_local_symbols.
+       * alloc.c (Fgarbage_collect): Mark buffer_defaults and
+       mark_local_symbols here.
+       (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
+       since special buffers aren't marked here any more.
+       (allocate_buffer): Chain new buffer with all_buffers here...
+       * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
+       not here.
+       (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
+       (syms_of_buffer): Remove staticpro of the above.
+       (init_buffer_once): Set names for buffer_defaults and
+       buffer_local_symbols.
+
+2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use bool for booleans in font-related modules.
+       * font.c (font_intern_prop, font_style_to_value)
+       (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
+       (generate_otf_features, font_check_otf_features, font_check_otf)
+       (font_match_p, font_list_entities, font_at):
+       * fontset.c (fontset_id_valid_p, reorder_font_vector
+       (fontset_find_font, Fset_fontset_font)
+       (face_suitable_for_char_p) [0]:
+       * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
+       (ftfont_open, ftfont_text_extents, ftfont_check_otf):
+       (m17n_flt_initialized, ftfont_shape_by_flt):
+       * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
+       * nsfont.m (nsfont_draw):
+       * w32font.c (w32font_draw):
+       * w32term.c (x_draw_glyphless_glyph_string_foreground):
+       Use bool for booleans.
+       * font.h: Adjust to above API changes.
+       (struct font, struct font_driver, struct font_driver_list):
+       Use bool for booleans.
+       (struct font): Remove useless member encoding_type.
+       All users removed.
+       * fontset.c, xftfont.c: Omit unnecessary static decls.
+
+2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (mark_object): Revert window marking code
+       since it's unsafe for the Fset_window_configuration.
+
+2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix race conditions with signal handlers and errno (Bug#12327).
+       Be more systematic about preserving errno whenever a signal
+       handler returns, even if it's not in the main thread.  Do this by
+       renaming signal handlers to distinguish between signal delivery
+       and signal handling.  All uses changed.
+       * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
+       * data.c (deliver_arith_signal): Rename from arith_error.
+       * dispnew.c (deliver_window_change_signal): Rename from
+       window_change_signal.
+       * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
+       (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
+       * keyboard.c (deliver_input_available_signal): Rename from
+       input_available_signal.
+       (deliver_user_signal): Rename from handle_user_signal.
+       (deliver_interrupt_signal): Rename from interrupt_signal.
+       * process.c (deliver_pipe_signal): Rename from send_process_trap.
+       (deliver_child_signal): Rename from sigchld_handler.
+       * atimer.c (handle_alarm_signal):
+       * data.c (handle_arith_signal):
+       * dispnew.c (handle_window_change_signal):
+       * emacs.c (handle_fatal_signal, handle_danger_signal):
+       * keyboard.c (handle_input_available_signal):
+       * keyboard.c (handle_user_signal, handle_interrupt_signal):
+       * process.c (handle_pipe_signal, handle_child_signal):
+       New functions, with the actual signal-handling code taken from the
+       original respective signal handlers, sans the sporadic attempts to
+       preserve errno, since that's now done by handle_on_main_thread.
+       * atimer.c (alarm_signal_handler): Remove unnecessary decl.
+       * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
+       * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Move to sysdep.c.
+       (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Move initialization of main_thread to sysdep.c's init_signals.
+       * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
+       our usage, and simplifies the mainline code.
+       (record_child_status_change): New static function, as a helper
+       for handle_child_signal, and with most of the old child handler's
+       contents.
+       (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
+       (handle_child_signal): Use the above.
+       * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Moved here from emacs.c.
+       (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
+       code moved here from emacs.c's main function.
+       * sysdep.c, syssignal.h (handle_on_main_thread): New function,
+       replacing the old SIGNAL_THREAD_CHECK.  All uses changed.
+       This lets callers save and restore errno properly.
+
+2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove redundant or unused things here and there.
+       * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
+       * conf_post.h (RE_TRANSLATE): Use char_table_translate.
+       * editfns.c (Fcompare_buffer_substrings): Likewise.
+       * frame.h (struct terminal, struct font_driver_list):
+       Remove redundant declarations.
+       * window.h (Qleft, Qright): Likewise.
+
+2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not mark objects from deleted buffers, windows and frames.
+       * alloc.c (mark_buffer): Mark just the buffer if it is dead.
+       (mark_object): Likewise for windows and frames.
+
+2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (valid_lisp_object_p): Treat killed buffers,
+       buffer_defaults and buffer_local_symbols as valid objects.
+       Return special value to denote them.
+
+2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
+       * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
+       (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
+       (file_name_absolute_p, Fsubstitute_in_file_name):
+       (check_executable, check_writable, Ffile_accessible_directory_p)
+       (Fset_file_selinux_context, Fdefault_file_modes)
+       (Finsert_file_contents, choose_write_coding_system)
+       (Fwrite_region, build_annotations, a_write, e_write)
+       (Fdo_auto_save):
+       * filelock.c (boot_time_initialized, get_boot_time)
+       (get_boot_time_1, lock_file_1, within_one_second):
+       * floatfns.c (in_float):
+       * fns.c (concat, internal_equal, Frequire, base64_encode_1)
+       (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
+       (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
+       * lisp.h (struct Lisp_Hash_Table.cmpfn):
+       * window.c (compare_window_configurations):
+       Use bool for booleans.
+       * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
+       (Fdefault_file_modes): Now mode_t, not int, for modes.
+       (Fdo_auto_save): Set a boolean to 1 rather than using ++.
+       (internal_delete_file): Now returns void, not a (boolean) int,
+       since nobody was looking at the return value.
+       * lisp.h, window.h: Adjust to above API changes.
+
+       * xdisp.c (set_message): Simplify and reindent last change.
+
+2012-09-05  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
+
+2012-09-04  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * eval.c (call_debugger): Make the function non-static so that we
+       can call it from set_message.
+
+       * xdisp.c (set_message): Implement the new variable `debug-on-message'.
+       (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
+
+2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Give more-useful info on a fatal error (Bug#12328).
+       * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
+       (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
+       of doing the work ourselves.
+       * emacs.c (fatal_error_signal): Let fatal_error_backtrace
+       do most of the work.
+       (fatal_error_backtrace): New function, taken from the guts
+       of the old fatal_error_signal, but with a new option to output
+       a backtrace.
+       (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
+       info about the signal than just its number.
+       * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
+       * sysdep.c: Include <execinfo.h>
+       (emacs_backtrace): New function, taken partly from the previous
+       code of the 'die' function.
+       (emacs_abort): Call fatal_error_backtrace rather than abort.
+
+2012-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
+       eager (load-time) macro-expansion.
+       * lisp.mk (lisp): Add macroexp.
+
+2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify redefinition of 'abort' (Bug#12316).
+       Do not try to redefine the 'abort' function.  Instead, redo
+       the code so that it calls 'emacs_abort' rather than 'abort'.
+       This removes the need for the NO_ABORT configure-time macro
+       and makes it easier to change the abort code to do a backtrace.
+       * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
+       * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
+       Remove; sysdep.c's emacs_abort now takes its place.
+       * lisp.h (emacs_abort): New decl.  All calls from Emacs code to
+       'abort' changed to use 'emacs_abort'.
+       * msdos.c (dos_abort) [defined abort]: Remove; not used.
+       (abort) [!defined abort]: Rename to ...
+       (emacs_abort): ... new name.
+       * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
+       the place of the old 'abort' in emacs.c.
+       * w32.c, w32fns.c (abort): Do not #undef.
+       * w32.c (emacs_abort): Rename from w32_abort.
+
+2012-09-04  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32uniscribe.c (uniscribe_shape): Reverse the sign of
+       offsets[j].dv, since the y axis of the screen coordinates points
+       down, while the y axis of the font definition coordinates points
+       up.  This fixes display of Arabic diacritics such as KASRA and
+       KASRATAN.  (Bug#11860)
+
+2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Be more systematic about _setjmp vs setjmp.
+       * alloc.c (test_setjmp, mark_stack):
+       * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
+       (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
+       (png_load, my_error_exit, jpeg_load):
+       * process.c (send_process_trap, send_process):
+       Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
+       The underscored versions are up to 30x faster on some hosts.
+       Formerly, the code used setjmp+longjmp sometimes and
+       _setjmp+_longjmp at other times, with no particular reason to
+       prefer setjmp+longjmp.
+
+2012-09-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix minor problem found by static checking.
+       * buffer.c (Fdelete_all_overlays): Return nil.
+
+2012-09-03  Martin Rudalics  <rudalics@gmx.at>
+
+       * buffer.c (Fdelete_all_overlays): New function.
+
+2012-09-03  Chong Yidong  <cyd@gnu.org>
+
+       * gtkutil.c: Add extern decl for Qxft.
+
+2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * emacs.c, eval.c: Use bool for boolean.
+       * emacs.c (initialized, inhibit_window_system, running_asynch_code):
+       (malloc_using_checking) [DOUG_LEA_MALLOC]:
+       (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
+       (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
+       (main, decode_env_path, Fdaemon_initialized):
+       * eval.c (call_debugger, Finteractive_p, interactive_p):
+       (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
+       (maybe_call_debugger, Fbacktrace):
+       * process.c (read_process_output, exec_sentinel):
+       Use bool for booleans.
+       * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
+       All callers changed.
+       * eval.c (interactive_p): Omit always-true boolean argument
+       EXCLUDE_SUBRS_P.  All callers changed.
+       * dispextern.h, lisp.h: Reflect above API changes.
+       * firstfile.c (dummy): Use the address of 'main', whose signature
+       won't change, instead of the address of 'initialize', whose
+       signature just changed from int to bool.
+       * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
+       * msdos.c (fatal_error_in_progress): ... from here.
+       * xdisp.c (redisplaying_p): Now a boolean.  Set it to 1 instead
+       of incrementing it.
+       (redisplay_internal, unwind_redisplay): Simply clear
+       REDISPLAYING_P when unwinding, instead of saving its previous,
+       always-false value and then restoring it.
+
+       Clean up some extern decls.
+       Mostly, this hoists extern decls out of .c files and into .h files.
+       That way, we're more likely to catch errors if the interfaces change.
+       * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
+       declare xg_mark_data.
+       * dispextern.h (x_frame_parm_handlers):
+       * font.h (Qxft):
+       * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
+       (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
+       (Qultra_bold, Qoblique, Qitalic):
+       Move extern decl here from .c file.
+       * alloc.c (xg_mark_data) [USE_GTK]:
+       * doc.c (Qclosure):
+       * eval.c (Qlexical_binding):
+       * fns.c (time) [!HAVE_UNISTD_H]:
+       * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
+       (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
+       * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
+       * lread.c (Qinternal_interpreter_environment):
+       * minibuf.c (Qbuffer):
+       * process.c (QCfamily, QCfilter):
+       * widget.c (free_frame_faces):
+       * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
+       * xfont.c (x_clear_errors):
+       * xterm.c (x_frame_parm_handlers):
+       Remove now-redundant extern decls.
+       * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
+       * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
+       Now static.
+       * xfaces.c: Remove unnecessary static decls.
+       * xterm.c (updating_frame): Remove decl of nonexistent object.
+
+       * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
+       when building globals.h, as the objects that are not built on
+       this host are not needed to compile C files on this host.
+
+2012-09-02  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.h: Remove prototype for x_wm_set_size_hint.
+
+       * frame.h: Add missing prototype for x_wm_set_size_hint.
+
+2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
+       * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
+       (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
+       (Fsubstitute_command_keys):
+       * editfns.c (region_limit, find_field, Fconstrain_to_field)
+       (save_excursion_save, save_excursion_restore)
+       (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
+       (format_time_string, general_insert_function)
+       (make_buffer_string, make_buffer_string_both)
+       (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
+       * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
+       (copy_text, insert_1, insert_1_both, insert_from_string)
+       (insert_from_string_before_markers, insert_from_string_1)
+       (insert_from_buffer, insert_from_buffer_1, replace_range)
+       (replace_range_2, del_range_1, del_range_byte, del_range_both)
+       (del_range_2, modify_region):
+       * intervals.c (intervals_equal, balance_possible_root_interval)
+       (adjust_intervals_for_insertion, merge_properties_sticky)
+       (graft_intervals_into_buffer, lookup_char_property)
+       (adjust_for_invis_intang, set_point_both)
+       (get_property_and_range, compare_string_intervals)
+       (set_intervals_multibyte_1, set_intervals_multibyte):
+       * keyboard.c (decode_timer):
+       Use bool for boolean.
+       * intervals.h, lisp.h, systime.h: Reflect above API changes.
+       * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
+
+2012-09-02  Chong Yidong  <cyd@gnu.org>
+
+       * keymap.c (push_key_description): Print M-TAB as C-M-i
+       (Bug#11758).
+
+2012-09-02  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (CCL_H, W32FONT_H): New macros.
+       (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
+       ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
+       ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
+       ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
+       ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
+       ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
+
+2012-09-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
+       more than one grapheme cluster passed to the shaper: compute the
+       offset adjustment values separately for each cluster.  (Bug#11860)
+
+       * image.c: Restore mistakenly removed inclusion of w32.h.  Without
+       it, GCC doesn't see prototypes of w32_delayed_load, and complains
+       about implicit conversions from integer to pointer.
+
+2012-09-01  Daniel Colascione  <dancol@dancol.org>
+
+       * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
+       system used too early.
+
+2012-09-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Better seed support for (random).
+       * emacs.c (main): Call init_random.
+       * fns.c (Frandom): Set the seed from a string argument, if given.
+       Remove long-obsolete Gentzel cruft.
+       * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
+       (init_random): New function.
+
+2012-09-01  Daniel Colascione  <dancol@dancol.org>
+
+       * xterm.h: Add header guards.  Declare x_menubar_window_to_frame.
+       Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
+       x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
+       x_wm_set_size_hint, x_query_colors, x_real_positions,
+       x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
+       x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
+       all of which have been moved to common code.
+
+       * xfaces.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
+       to match header.
+
+       * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
+       directly accessing frame internals.
+
+       * w32font.h: Include font.h.  Define syms_of_w32font and
+       globals_of_w32font.
+
+       * process.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * nsterm.h: Remove declarations now in frame.h.
+       Define FRAME_X_SCREEN, FRAME_X_VISUAL.
+
+       * menu.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
+       window system.
+
+       * keyboard.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * image.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.  Declare Vlibrary_cache when compiling for
+       Windows.
+
+       * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
+       window system declarations.
+
+       * frame.h: Move common functions here: set_frame_menubar,
+       x_set_window_size, x_sync, x_get_focus_frame,
+       x_set_mouse_position, x_set_mouse_pixel_position,
+       x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
+       x_char_width, x_char_height, x_pixel_width, x_pixel_height,
+       x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
+       x_activate_menubar, x_real_positions, x_bitmap_icon,
+       x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
+       and x_query_colors.
+
+       * frame.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * font.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * emacs.c: Include TERM_HEADER.
+
+       * dispnew.c: Include TERM_HEADER instead of listing all possible
+       window-system headers.
+
+       * ccl.h: Include character.h.
+
+       * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
+       the current window system; include in list of objects to link into
+       Emacs.
+
+2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove mark_ttys function and fix tty_display_info initialization.
+       * lisp.h (mark_ttys): Remove prototype.
+       * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
+       to mark_ttys because all possible values of 'top_frame' slot are
+       the frames which are reachable from Vframe_list.
+       * term.c (mark_ttys): Remove.
+       (init_tty): Safely initialize 'top_frame' slot with Qnil.
+
+2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Change struct frame bitfields from unsigned char to unsigned.
+       * frame.h (struct frame): Change type of 'display_preempted',
+       'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
+       'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
+       'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
+       bitfields from unsigned char to unsigned.
+
+2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove unused member of struct x_output and struct w32_output.
+       * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
+       * w32term.h (struct w32_output): Likewise.
+
+2012-08-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
+       does not become zero (Bug#12234).
+
+2012-08-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
+       for GCC 4.7.1 x86-64.
+
+2012-08-30  Glenn Morris  <rgm@gnu.org>
+
+       * lread.c (init_lread): For out-of-tree builds, only add the
+       source directory's site-lisp dir to the load-path if it exists,
+       consistent with in-tree builds.  (Bug#12302)
+
+2012-08-28  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
+       button_values to NULL.  Call setStykeMask so dialogs get a close button.
+       (windowShouldClose:): Set window_closed.
+       (dealloc): New member, free button_values.
+       (process_dialog:): Make member function.  Remove window argument,
+       replace window with self.  Count buttons and allocate and store values
+       in button_values.
+       (addButton:value:row:): value is int with the name tag.  Call setTag
+       with tag.  Remove return self, declare return value as void.
+       (addString:row:): Remove return self, declare return value as void.
+       (addSplit): Remove return self, declare return value as void.
+       (clicked:): Remove return self, declare return value as void.
+       Set dialog_return to button_values[seltag].  Code formatting change.
+       (initFromContents:isQuestion:): Adjust call to process_dialog.
+       Code formatting change.
+       (timeout_handler:): Set timer_fired to YES.
+       (runDialogAt:): Set timer_fired to NO.
+       Handle click on close button as quit.
+
+       * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
+       Add window_closed and button_values.  Add void as return value for
+       add(Button|String|Split).  addButton takes int instead of Lisp_Object.
+       Add process_dialog as new member.
+
+2012-08-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
+       is not one of the heaps we manage.  (Bug#12242)
+
+2012-08-28  Glenn Morris  <rgm@gnu.org>
+
+       * eval.c (Fcalled_interactively_p): Doc fix.  (Bug#11747)
+
+2012-08-28  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fset_window_configuration): Remove handling of
+       auto-buffer-name window parameter.  Install revision of reverted
+       fix.
+
+2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not allow to set major mode for a dead buffer.
+       * buffer.c (Fset_buffer_major_mode): Signal an error
+       if the buffer is dead.
+       (Fother_buffer, other_buffer_safely): Remove redundant
+       nested declaration.
+
+2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Always use set_buffer_if_live to restore original buffer at unwind.
+       * buffer.h (record_unwind_current_buffer): New function.
+       * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
+       * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
+       * undo.c, window.c: Adjust users.
+       * buffer.c (set_buffer_if_live): Fix comment.
+
+2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix usage of set_buffer_internal.
+       * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
+       * buffer.c (set_buffer_if_live): Use set_buffer_internal.
+       * coding.c (decode_coding): Omit redundant test.
+       * fileio.c (decide_coding_unwind): Likewise.
+       * fns.c (secure_hash): Likewise.
+       * insdel.c (modify_region): Likewise.
+       * keyboard.c (command_loop_1): Likewise.
+       * print.c (PRINTFINISH): Likewise.
+       * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
+
+2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dispnew.c: Use bool for boolean.
+       (frame_garbaged, display_completed, delayed_size_change)
+       (fonts_changed_p, add_window_display_history)
+       (add_frame_display_history, verify_row_hash)
+       (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
+       (row_equal_p, realloc_glyph_pool)
+       (allocate_matrices_for_frame_redisplay)
+       (showing_window_margins_p)
+       (adjust_frame_glyphs_for_frame_redisplay)
+       (build_frame_matrix_from_leaf_window, make_current)
+       (mirrored_line_dance, mirror_line_dance, update_frame)
+       (update_window_tree, update_single_window)
+       (check_current_matrix_flags, update_window, update_text_area)
+       (update_window_line, set_window_update_flags, scrolling_window)
+       (update_frame_1, scrolling, buffer_posn_from_coords)
+       (do_pending_window_change, change_frame_size)
+       (change_frame_size_1, sit_for):
+       Use bool for boolean.
+       (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
+       and remove last int (actually boolean) argument, which was always 0.
+       All callers changed.
+       * dispextern.h, frame.h, lisp.h: Reflect above API changes.
+       * dispextern.h (struct composition_it): Use bool for boolean.
+       (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
+       (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
+       * dired.c (file_name_completion):
+       Use bool for boolean.  (This was missed in an earlier change.)
+
+2012-08-27  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fset_window_configuration): Revert first part of
+       last change.
+
+2012-08-27  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.h (NSPanel): New class variable dialog_return.
+
+       * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
+       Initialize dialog_return.
+       (windowShouldClose:): Use stop instead of stopModalWithCode.
+       (clicked:): Ditto, and also set dialog_return (Bug#12258).
+       (timeout_handler:): Use stop instead of abortModal.  Send a dummy
+       event.
+       (runDialogAt:): Make ret Lisp_Object.  Set it from dialog_return when
+       modal loop returns.
+
+2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
+       * composite.c (find_composition, composition_gstring_p)
+       (composition_reseat_it, find_automatic_composition):
+       * data.c (let_shadows_buffer_binding_p)
+       (let_shadows_global_binding_p, set_internal, make_blv)
+       (Fmake_variable_buffer_local, Fmake_local_variable)
+       (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
+       (cons_to_signed, arith_driver):
+       * dbusbind.c (xd_in_read_queued_messages):
+       * dired.c (directory_files_internal, file_name_completion):
+       Use bool for booleans.
+       * dired.c (file_name_completion):
+       * process.h (fd_callback):
+       Omit int (actually boolean) argument.  It wasn't being used.
+       All uses changed.
+       * composite.h, lisp.h: Reflect above API changes.
+
+       * cmds.c, coding.c: Use bool for booleans.
+       * cmds.c (move_point, Fself_insert_command):
+       * coding.h (struct composition status, struct coding_system):
+       * coding.c (detect_coding_utf_8, encode_coding_utf_8)
+       (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
+       (emacs_mule_char, decode_coding_emacs_mule)
+       (encode_coding_emacs_mule, detect_coding_iso_2022)
+       (decode_coding_iso_2022, encode_invocation_designation)
+       (encode_designation_at_bol, encode_coding_iso_2022)
+       (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
+       (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
+       (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
+       (encode_coding_raw_text, detect_coding_charset)
+       (decode_coding_charset, encode_coding_charset, detect_eol)
+       (detect_coding, get_translation_table, produce_chars)
+       (consume_chars, reused_workbuf_in_use)
+       (make_conversion_work_buffer, code_conversion_save)
+       (decode_coding_object, encode_coding_object)
+       (detect_coding_system, char_encodable_p)
+       (Funencodable_char_position, code_convert_region)
+       (code_convert_string, code_convert_string_norecord)
+       (Fset_coding_system_priority):
+       * fileio.c (Finsert_file_contents):
+       Use bool for booleans.
+       * coding.h, lisp.h: Reflect above API changes.
+       * coding.c: Remove unnecessary static function decls.
+       (detect_coding): Use unsigned, not signed, to copy an unsigned field.
+       (decode_coding, encode_coding, decode_coding_gap): Return 'void',
+       not a boolean 'int', since callers never look at the return value.
+       (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
+       * coding.h (decoding_buffer_size, encoding_buffer_size)
+       (emacs_mule_string_char): Remove unused extern decls.
+       (struct iso_2022_spec, struct coding_system):
+       Use 'unsigned int : 1' for boolean fields, since there's more than one.
+       (struct emacs_mule_spec): Remove unused field 'full_support'.
+       All initializations removed.
+       * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
+
+2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix spare memory change (Bug#12286).
+       * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
+       (valid_lisp_object_p): Likewise.
+
+2012-08-27  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (Fset_window_configuration): Record any window's old
+       buffer if it's replaced (see Bug#8789).  If the new current
+       buffer doesn't appear in the selected window, go to its old
+       point (Bug#12208).
+
+2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Special MEM_TYPE_SPARE to denote reserved memory.
+       * alloc.c (enum mem_type): New memory type.
+       (refill_memory_reserve): Use new type for spare memory.
+       This prevents live_cons_p and live_string_p from incorrect
+       detection of uninitialized objects from spare memory as live.
+
+2012-08-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fixes.
+       * Makefile.in (.PHONY): versioclean -> versionclean.
+
+       Remove unused external symbols.
+       * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
+       * window.c (Qwindow_valid_p, decode_valid_window):
+       Now static, not extern.
+       * data.c (Qinterval): Remove; unused.
+       (syms_of_data): Do not define 'interval'.
+       * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
+       * window.h (decode_valid_window):
+       Remove decls.
+
+       * character.c, charset.c, chartab.c: Use bool for booleans.
+       * character.c (lisp_string_width, string_count_byte8)
+       (string_escape_byte8):
+       * charset.c (charset_map_loaded, load_charset_map, read_hex):
+       (load_charset_map_from_file, map_charset_chars)
+       (Fdefine_charset_internal, define_charset_internal)
+       (Fdeclare_equiv_charset, find_charsets_in_text)
+       (Ffind_charset_region, char_charset, Fiso_charset):
+       * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
+       (sub_char_table_set, sub_char_table_set_range)
+       (char_table_set_range, optimize_sub_char_table)
+       (map_sub_char_table):
+       Use bool for boolean.
+       * character.c (str_to_unibyte): Omit last boolean argument; it was
+       always 0.  All callers changed.
+       * character.h, charset.h: Adjust to match previous changes.
+       * character.h (char_printable_p): Remove decl of nonexistent function.
+       * charset.h (struct charset): Members code_linear_p, iso_chars_96,
+       ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
+       are all boolean, so make them single-bit bitfields.
+
+       * lisp.h (ASET): Remove attempt to detect side effects.
+       It was meant to be temporary and it often doesn't work,
+       because when IDX has side effects the behavior of IDX==IDX
+       is undefined.  See Stefan Monnier in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
+
+2012-08-26  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)
+
+       * lisp.h (functionp): New function (extracted from Ffunctionp).
+       (FUNCTIONP): Use it.
+       * eval.c (Ffunctionp): Use it.
+
+2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
+       as that's faster and simpler than static storage.  Don't bother
+       with the g_main_context_query overhead if g_main_context_pending
+       says no events are pending.
+       (gfds, gfds_size): Remove these static vars.
+       (xgselect_initialize): Remove; no longer needed.
+       All uses and decls removed.
+
+       * emacs.c (fatal_error_signal_hook): Remove.
+       All uses removed.  This leftover from old code was always 0.
+
+       * casefiddle.c, casetab.c, category.c: Use bool for boolean.
+       * casefiddle.c (casify_object, casify_region):
+       * casetab.c (set_case_table):
+       * category.c, category.h (word_boundary_p):
+       * category.h (CHAR_HAS_CATEGORY):
+       Use bool for booleans, instead of int.
+
+2012-08-25  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
+
+2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       On assertion failure, print backtrace if available.
+       * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
+       (die) [ENABLE_CHECKING]: Print a backtrace if available.
+       * Makefile.in (LIB_EXECINFO): New macro.
+       (LIBES): Use it.
+
+       * bytecode.c, callint.c, callproc.c: Use bool for boolean.
+       * bytecode.c (exec_byte_code):
+       * callint.c (check_mark, Fcall_interactively):
+       * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
+       (getenv_internal, sync_process_alive, call_process_exited):
+       * lisp.h (USE_SAFE_ALLOCA):
+       Use bool for booleans, instead of int.
+       * lisp.h, process.h: Adjust prototypes to match above changes.
+       * callint.c (Fcall_interactively): Don't assume the mark's
+       offset fits in 'int'.
+
+2012-08-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * buffer.c, buffer.h: Use bool for boolean.
+       * buffer.c (reset_buffer_local_variables)
+       (buffer_lisp_local_variables, Fset_buffer_modified_p)
+       (Frestore_buffer_modified_p, Fset_buffer_multibyte):
+       (overlays_at, overlays_in, mouse_face_overlay_overlaps)
+       (overlay_touches_p, overlay_strings, Foverlay_put)
+       (report_overlay_modification, call_overlay_mod_hooks):
+       (mmap_enlarge, mmap_set_vars):
+       * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
+       Use bool for booleans, instead of int.
+       * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
+       since the 1-or-0 return value is always ignored anyway.
+       (mmap_initialized_p):
+       * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
+       * buffer.h, lisp.h: Adjust prototypes to match above changes.
+
+2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bidi.c: Use bool for boolean.
+       This is a bit more readable, and makes the text segment of bidi.o
+       0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
+       Presumably it's faster too.
+       (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
+       Now bool.
+       (bidi_cache_find_level_change, bidi_cache_iterator_state)
+       (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
+       (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
+       (bidi_explicit_dir_char, bidi_level_of_next_char)
+       (bidi_find_other_level_edge, bidi_move_to_visually_next):
+       Use bool for booleans, instead of int.
+       * dispextern.h (bidi_init_it, bidi_paragraph_init)
+       (bidi_unshelve_cache): Adjust decls to match code.
+
+2012-08-23  Martin Rudalics  <rudalics@gmx.at>
+
+       * keyboard.c (Fposn_at_x_y): Do not allow internal window as
+       argument.
+
+2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
+       * atimer.h: Include <stdbool.h>.
+
+2012-08-22  Dan Nicolaescu  <dann@gnu.org>
+
+       * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
+       compile time tests instead of run time tests on systems that do
+       not use them.
+       (FRAME_MAC_P): Remove leftover from deleted code.
+       * frame.c (syms_of_frame): Remove leftover from deleted code.
+
+2012-08-22  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (insertText:): Don't clear modifiers if code is space.
 
-2012-09-15  Tomohiro Matsuyama  <tomo@cx4a.org>
+2012-08-22  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * alloc.c (emacs_blocked_malloc): Remove redundant MALLOC_PROBE.
+       * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
+       Otherwise, the compiler complains about (A?B:C) where B is void
+       and C is Lisp_Object.  This fixes an incompatibility with Sun C 5.12.
+       (fontset_add): Return void, for FONTSET_ADD.
 
 2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>
 
        * w32uniscribe.c (uniscribe_shape): Fix producing gstring
        components for RTL text (Bug#11860).  Adjust X-OFFSET of each
        non-base glyph for the width of the base character, according to
-       what x_draw_composite_glyph_string_foreground expects.  Generate
-       WADJUST value according to composition_gstring_width's
+       what x_draw_composite_glyph_string_foreground expects.
+       Generate WADJUST value according to composition_gstring_width's
        expectations, to produce correct width of the composed character.
        Reverse the sign of the DU offset produced by ScriptPlace.
 
        Start main loop and wait for application defined event.
        Inform select thread to stop selecting after main loop is exited.
        (ns_term_init): Create selfds pipe and set non-blocking.
-       Initialize select_mutex. Start the select thread (fd_handler).
+       Initialize select_mutex.  Start the select thread (fd_handler).
        (fd_handler:): Loop forever, wait for info from the main thread
        to either start or stop selecting.  When select returns, send
        and appdefined event.
        (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
        if not present.
        (update_frame_tool_bar): Return early if data in xg_frame_tb_info
-       is up to date. Otherwise store new data.
+       is up to date.  Otherwise store new data.
        (free_frame_tool_bar): Free xg_frame_tb_info if present.
 
 2012-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
 2012-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 
        * nsterm.m (not_in_argv): New function.
-       (application:openFile,  application:openTempFile:):
+       (application:openFile, application:openTempFile:):
        (application:openFileWithoutUI:, application:openFiles:): Open file
        if not_in_argv returns non-zero (bug#12171).
 
 
 2012-07-21  Jan Djärv  <jan.h.d@swipnet.se>
 
-       * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
+       * nsterm.m (accessibilityAttributeValue): New function.  (Bug#11134).
        (conversationIdentifier): Return value is NSInteger.
        * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
 
        * 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,
+       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),
        (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
+       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.
        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.
+       fields from Lisp_Object to bitfield.  Adjust users accordingly.
 
 2012-05-31  Paul Eggert  <eggert@cs.ucla.edu>