Merge from emacs-24; up to 2014-04-16T15:28:26Z!monnier@iro.umontreal.ca
[bpt/emacs.git] / src / ChangeLog
index 05c5b42..b3cc3ff 100644 (file)
@@ -1,3 +1,434 @@
+2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * window.c (save_window_save): Lookup window_point_insertion_type in
+       the right buffer (bug#15457).
+       (Qwindow_point_insertion_type): New var.
+       (syms_of_window): Initialize it.
+
+2014-04-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * unexcoff.c [MSDOS]: Include libc/atexit.h.
+       (copy_text_and_data): Zero out the atexit chain pointer before
+       dumping Emacs.
+
+       * termhooks.h (encode_terminal_code): Update prototype.
+
+       * term.c (encode_terminal_code) [DOS_NT]: Make it externally
+       visible for all DOS_NT ports, not just WINDOWSNT.
+       (syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
+
+       * sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
+       unless it is defined.
+       (emacs_pipe) [MSDOS]: Redirect to 'pipe'.
+
+       * process.c (close_on_exec, accept4, process_socket): Move into
+       the "ifdef subprocesses" part.
+       (catch_child_signal): Condition by "ifdef subprocesses".
+       (syms_of_process) <Qinternal_default_process_sentinel>
+       <Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
+
+       * msdos.h: Add prototypes for new functions.
+       (EINPROGRESS): Define.
+       (O_CLOEXEC): Define to zero.
+
+       * msdos.c (check_window_system): Remove unnecessary an
+       incompatible duplicate function.
+       (sys_opendir, readlinkat, faccessat, fstatat, unsetenv):
+       New functions in support of new functionality.
+
+       * menu.c (single_menu_item): Add visual indication  of submenu
+       also for menus on MSDOS frames.
+       (Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
+
+       * lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
+       when async subprocesses aren't supported.
+
+       * font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
+
+       * emacs.c (close_output_streams): Zero out errno before calling
+       close_stream.
+
+       * dired.c [MSDOS]: Include msdos.h.
+
+       * conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
+       (DATA_START) [MSDOS]: Define.
+       (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
+
+       * callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
+       Ifdef away for MSDOS.
+       (record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
+       (call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
+       for MSDOS.
+       (call_process) [MSDOS]: Fix call sequence of dostounix_filename.
+       Use temporary file template that is compatible with mkostemp.
+       Move vfork-related portions under #ifndef MSDOS.
+       (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
+
+2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * buffer.c (Foverlays_at): Add argument `sorted'.
+
+2014-04-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * insdel.c (invalidate_buffer_caches): When deleting or replacing
+       text, invalidate the bidi_paragraph_cache upto and including the
+       preceding newline.
+
+2014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to IRIX 6.5 (Bug#9684).
+       * conf_post.h (INET6) [IRIX6_5]: Define.
+       (HAVE_GETADDRINFO) [IRIX6_5]: Undef.
+       * data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
+
+2014-04-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * keyboard.c (Fopen_dribble_file): Encode the dribble file-name
+       before passing it to system APIs.
+
+2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * bytecode.c (exec_byte_code): Rework the volatiles.  Most importantly,
+       make sure stack.byte_string_start is not de-adjusted by pushhandler.
+
+2014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * keyboard.c (Fopen_dribble_file): Avoid some races.  (Bug#17187)
+
+2014-04-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove DATA_SEG_BITS.
+       The DATA_SEG_BITS hack was needed for older 32 bit platforms.
+       As a result of this change, Emacs won't work on IRIX 6.5 with IRIX
+       cc, but that platform is so old that SGI itself stopped supporting
+       it in December 2013.  If you still need Emacs on IRIX, please
+       either compile with GCC and port the undumping code, or run
+       './configure --with-wide-int'.
+       * alloc.c (gdb_make_enums_visible): Update to match lisp.h.
+       * lisp.h (GCTYPEBITS): Move definition up, and switch to the
+       DEFINE_GDB_SYMBOL_START way to define it.
+       (NONPOINTER_BITS): New macro.
+       (EMACS_INT): Use it.
+       [!USE_LSB_TAG && !WIDE_EMACS_INT]: Fail, and suggest reporting
+       the problem and/or configuring --with-wide-int.
+       (USE_LSB_TAG): Simplify, based on above changes.
+       (gdb_DATA_SEG_BITS): Remove.  All uses removed.
+       * vm-limit.c (exceeds_lisp_ptr): Remove.  All uses removed.
+
+2014-04-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (move_it_by_lines): If a large portion of buffer text is
+       covered by a display string that ends in a newline, and that cases
+       going back by DVPOS lines to hit the search limit, lift the limit
+       and go back until DVPOS is reached.  (Bug#17244)
+
+       * indent.c (Fvertical_motion): Handle correctly the case when the
+       display string is preceded by an empty line.
+
+       * w32.c (sys_umask) <WRITE_USER>: Remove redundant constant, and
+       use S_IWRITE instead.
+
+2014-04-11  Glenn Morris  <rgm@gnu.org>
+
+       * keyboard.c (Fopen_dribble_file): Make file private.  (Bug#17187)
+
+2014-04-11  Ken Brown  <kbrown@cornell.edu>
+
+       * Makefile.in (EMACS_MANIFEST): Revert last change.
+
+2014-04-10  Daniel Colascione  <dancol@dancol.org>
+
+       * puresize.h (BASE_PURESIZE): Increase.
+
+2014-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (syms_of_keyboard): Make deactivate-mark buffer-local.
+
+       * insdel.c (prepare_to_modify_buffer_1): Cancel lock-file checks and
+       region handling (and don't call signal_before_change) if
+       inhibit_modification_hooks is set.
+       (signal_before_change): Don't check inhibit_modification_hooks any more.
+
+2014-04-08  Daniel Colascione  <dancol@dancol.org>
+
+       * alloc.c (sweep_symbols, mark_object): Assert that symbol
+       function cells contain valid lisp objects.  (Modified version of
+       patch from Dmitry).
+
+       * alloc.c (detect_suspicious_free): Split actual stack capturing
+       out into new function for easier breakpoint setting.
+       (note_suspicious_free): New function.
+
+2014-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (struct Lisp_Symbol): New bitfield `pinned'.
+
+       * alloc.c: Keep track of symbols referenced from pure space (bug#17168).
+       (symbol_block_pinned): New var.
+       (Fmake_symbol): Initialize `pinned'.
+       (purecopy): New function, extracted from Fpurecopy.  Mark symbols as
+       pinned and signal an error for un-purifiable objects.
+       (pure_cons): Use it.
+       (Fpurecopy): Use it, except for objects that can't be purified.
+       (mark_pinned_symbols): New function.
+       (Fgarbage_collect): Use it.
+       (gc_sweep): Remove hack made unnecessary.
+
+2014-04-07  Glenn Morris  <rgm@gnu.org>
+
+       * keyboard.c (Fopen_dribble_file): Doc tweak.
+
+2014-04-07  Ken Brown  <kbrown@cornell.edu>
+
+       * Makefile.in (EMACS_MANIFEST): Update comment.  (Bug#17176)
+
+2014-04-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c: Simplify by removing use of HAVE_EXECINFO_H.
+       We have a substitute execinfo.h on hosts that lack it.
+       (suspicious_free_history): Make it EXTERNALLY_VISIBLE so it
+       isn't optimized away.
+
+2014-04-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'.
+       * alloc.c (memory_full):
+       * charset.c (syms_of_charset):
+       * doc.c (Fsnarf_documentation):
+       * emacs.c (main):
+       * font.c (BUILD_STYLE_TABLE):
+       * keyboard.c (make_lispy_event):
+       * profiler.c (setup_cpu_timer):
+       * xgselect.c (xg_select):
+       * xterm.c (record_event, STORE_KEYSYM_FOR_DEBUG):
+       Use ARRAYELTS.
+       * font.c (FONT_PROPERTY_TABLE_SIZE): Remove.
+       Replace the only use with ARRAYELTS (font_property_table).
+       * xfaces.c (DIM): Remove.  All uses replaced by ARRAYELTS.
+
+2014-04-03  Daniel Colascione  <dancol@dancol.org>
+
+       * xterm.c (x_term_init):
+       * xfns.c (best_xim_style):
+       * xfaces.c (Fdump_colors):
+       * w32fns.c (w32_default_color_map):
+       * w32.c (init_environment, N_ENV_VARS):
+       * unexcw.c (read_exe_header):
+       * term.c (term_get_fkeys_1):
+       * sysdep.c (init_baud_rate):
+       * nsterm.m (ns_convert_key):
+       * nsfns.m (get_geometry_from_preferences):
+       * msdos.c (dos_set_window_size, init_environment):
+       * macfont.m (mac_font_get_glyph_for_cid)
+       (macfont_store_descriptor_attributes)
+       (macfont_create_attributes_with_spec, mac_ctfont_get_glyph_for_cid):
+       * keyboard.c (command_loop_1, read_menu_command, make_lispy_event)
+       (NUM_MOD_NAMES, read_key_sequence_vs, Fcurrent_input_mode)
+       (syms_of_keyboard):
+       * image.c (xpm_str_to_color_key):
+       * fringe.c (MAX_STANDARD_FRINGE_BITMAPS):
+       * frame.c (x_set_frame_parameters):
+       * fileio.c (Ffile_selinux_context):
+       * emacs.c (sort_args):
+       * dosfns.c (msdos_stdcolor_name):
+       * dired.c (file_attributes):
+       * chartab.c (uniprop_decoder_count, uniprop_encode_count):
+       Change expressions of the form sizeof(arr) / sizeof(arr[0])
+       to ARRAYELTS (arr).
+
+2014-04-02  Daniel Colascione  <dancol@dancol.org>
+
+       * data.c (Ffset): Abort if we're trying to set a function call to
+       a dead lisp object.
+
+       * lisp.h (ARRAYELTS): New macro.
+
+       * alloc.c: Include execinfo.h if available.
+       (SUSPICIOUS_OBJECT_CHECKING): New macro; define unconditionally.
+       (suspicious_free_record): New structure.
+       (suspicious_objects, suspicious_object_index)
+       (suspicious_free_history, suspicious_free_history_index):
+       New variables.
+       (find_suspicious_object_in_range, detect_suspicious_free)
+       (Fsuspicious_object): New functions.
+       (cleanup_vector): Call find_suspicious_object_in_range.
+
+2014-04-02  Martin Rudalics  <rudalics@gmx.at>
+
+       * xterm.c (x_new_font): Don't calculate non-toolkit scrollbar
+       width from font width (Bug#17163).
+
+       * frame.c (x_set_frame_parameters): Calculate default values of
+       new frame sizes only after all other frame parameters have been
+       processed (Bug#17142).
+
+2014-04-02  Ken Brown  <kbrown@cornell.edu>
+
+       * conf_post.h (SYSTEM_PURESIZE_EXTRA) [CYGWIN]: Set to 10000.
+       (Bug#17112)
+
+2014-04-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * xterm.c (x_draw_image_glyph_string): Adjust image background
+       width accordingly when its x position is adjusted.  (Bug#17115)
+
+2014-04-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * font.c (font_list_entities): Do not add empty vector to font cache.
+       (font_matching_entity): Likewise.  If matching entity is found, insert
+       1-item vector with this entity instead of entity itself (Bug#17125).
+
+       * xterm.c (x_term_init) [USE_LUCID]: Fix minor memory leak.
+
+2014-04-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fns.c (validate_subarray): Rename from validate_substring,
+       since it works for vectors too.  New arg ARRAY.  Optimize for the
+       non-nil case.  Instead of returning bool, throw an error if out of
+       range, so that the caller needn't do that.  All uses changed.
+       Report original values if out of range.
+       (Fsubstring, Fsubstring_no_properties, secure_hash):
+       Also optimize the case where FROM is 0 or TO is the size.
+
+2014-03-31  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * search.c (Freplace_match): Use make_specified_string.
+       * xterm.c, w32term.c (x_set_glyph_string_gc): Use emacs_abort
+       to catch bogus override face of glyph strings.
+       * fns.c (Fsubstring, Fsubstring_no_properties, secure_hash):
+       Move common substring range checking code to...
+       (validate_substring): ...this function.
+
+2014-03-31  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (free_frame_tool_bar): Set wait_for_tool_bar = NO (Bug#16976)
+
+2014-03-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (updateFrameSize:): If waiting for the tool bar and tool
+       bar is zero height, just return (Bug#16976).
+       (initFrameFromEmacs:): Initialize wait_for_tool_bar.
+
+       * nsterm.h (EmacsView): Add wait_for_tool_bar.
+
+       * nsmenu.m (update_frame_tool_bar): Return early if view or toolbar
+       is nil.  If waiting for toolbar to complete, force a redraw.
+
+2014-03-28  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.c (emacs_version): Use PACKAGE_VERSION rather than VERSION.
+       (emacs_bugreport): New variable.
+       (usage_message): Use PACKAGE_BUGREPORT.
+       (syms_of_emacs) <report-emacs-bug-address>: New variable.
+
+       * emacs.c (syms_of_emacs) <system-configuration-features>: New var.
+
+2014-03-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port recent signal-related changes to FreeBSD.
+       Problem reported by Herbert J. Skuhra.
+       * lisp.h (block_tty_out_signal, unblock_tty_out_signal):
+       Move decls from here ...
+       * syssignal.h: ... to here, so that lisp.h doesn't depend on signal.h.
+
+2014-03-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * w32term.c (x_draw_image_glyph_string): Fix computation of height
+       and width of image background when it is displayed with a 'box'
+       face.  (Bug#17115)
+
+2014-03-27  Paul Eggert  <eggert@penguin.cs.ucla.edu>
+
+       More backward-compatible fix to char-equal core dump (Bug#17011).
+       * editfns.c (Fchar_equal): In unibyte buffers, assume values in
+       range 128-255 are raw bytes.  Suggested by Eli Zaretskii.
+
+2014-03-27  Juanma Barranquero  <lekktu@gmail.com>
+
+       * image.c (init_svg_functions): When loading SVG-related libraries,
+       free already loaded libraries if the initialization fails.
+       (rsvg_handle_set_size_callback): Remove declaration, unused.
+
+2014-03-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix core dump in char-equal (Bug#17011).
+       * editfns.c (Fchar_equal): Do not use MAKE_CHAR_MULTIBYTE in
+       unibyte buffers, as we can't tell whether the characters are
+       actually unibyte.
+
+       * insdel.c (adjust_markers_for_delete): Remove unused local.
+
+2014-03-26  Barry O'Reilly  <gundaetiapo@gmail.com>
+
+       Have (MARKER . ADJUSTMENT) undo records always be immediately
+       after their corresponding (TEXT . POS) record in undo list.
+       (Bug#16818)
+       * lisp.h (record-delete): New arg record_markers.
+       (record_marker_adjustment): No longer needed outside undo.c.
+       * insdel.c (adjust_markers_for_delete): Move calculation of marker
+       adjustments to undo.c's record_marker_adjustments.  Note that
+       fileio.c's decide_coding_unwind is another caller to
+       adjust_markers_for_delete.  Because it has undo list bound to t,
+       it does not rely on adjust_markers_for_delete to record marker
+       adjustments.
+       (del_range_2): Swap call to record_delete and
+       adjust_markers_for_delete so as undo marker adjustments are
+       recorded before current deletion's adjustments, as before.
+       (adjust_after_replace):
+       (replace_range): Pass value for new record_markers arg to
+       delete_record.
+       * undo.c (record_marker_adjustment): Rename to
+       record_marker_adjustments and made static.
+       (record_delete): Check record_markers arg and call
+       record_marker_adjustments.
+       (record_change): Pass value for new record_markers arg to
+       delete_record.
+       (record_point): at_boundary calculation no longer needs to account
+       for marker adjustments.
+
+2014-03-26  Martin Rudalics  <rudalics@gmx.at>
+
+       * w32term.c (x_set_window_size): Refine fix from 2014-03-14
+       (Bug#17077).
+
+2014-03-26  Glenn Morris  <rgm@gnu.org>
+
+       * fileio.c (Ffile_symlink_p): Doc fix. (Bug#17073)
+
+2014-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * buffer.c (struct sortvec): Add field `spriority'.
+       (compare_overlays): Use it.
+       (sort_overlays): Set it.
+
+2014-03-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (redisplay_window): If all previous attempts to find the
+       cursor row failed, try a few alternatives before falling back to
+       the top-most row of the window.  Use row_containing_pos.  (Bug#17047)
+
+2014-03-26  Juanma Barranquero  <lekktu@gmail.com>
+
+       * image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
+       * sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.
+
+       * keyboard.c (read_decoded_event_from_main_queue): #ifdef out
+       variables on Windows.
+
+       * w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.
+
+       * w32.c (unsetenv): Remove unused var `retval'.
+       (emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.
+
+       * w32notify.c (watch_worker): Remove unnecesary var sleep_result.
+       (start_watching): Remove unused var `thr'.
+
+       * w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
+       (find_child_console): Remove unnecesary var `thread_id'.
+
+       * w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
+       (x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
+
 2014-03-26  Glenn Morris  <rgm@gnu.org>
 
        * filelock.c (Flock_buffer): Doc tweak.
        Split gc_sweep into discrete functions for legibility and better
        stack traces.
 
-       * alloc.c (sweep_strings,sweep_vectors): Add NO_INLINE
+       * alloc.c (sweep_strings, sweep_vectors): Add NO_INLINE
        (sweep_vectors): Fix typo in comment.
-       (sweep_conses,sweep_floats,sweep_intervals)
-       (sweep_symbols,sweep_misc,sweep_buffers): New functions.
+       (sweep_conses, sweep_floats, sweep_intervals)
+       (sweep_symbols, sweep_misc, sweep_buffers): New functions.
        (gc_sweep): Call new functions, to which existing functionality is
        moved.
        * fns.c (sweep_weak_hash_tables): Add NO_INLINE.
 
        * alloc.c (lisp_align_malloc, allocate_string_data)
        (allocate_vectorlike): Allow mmap allocation of lisp objects.
-       (pointers_fit_in_lispobj_p,mmap_lisp_allowed_p): New functions.
+       (pointers_fit_in_lispobj_p, mmap_lisp_allowed_p): New functions.
 
 2014-03-21  Eli Zaretskii  <eliz@gnu.org>
 
        * frame.c (delete_frame): Block/unblock input to overcome race
        condition (Bug#15475).
 
-2013-09-29  Andreas Politz  <politza@hochschule-trier.de>  (tiny change)
+2013-09-29  Andreas Politz  <politza@hochschule-trier.de>
 
        * frame.c (delete_frame): Record selected frame only after
        calling Qdelete_frame_functions (Bug#15477).