Merge from emacs-24; up to 2014-04-16T15:28:26Z!monnier@iro.umontreal.ca
[bpt/emacs.git] / src / ChangeLog
index b2a8f81..b3cc3ff 100644 (file)
-2014-04-03  Daniel Colascione  <dancol@dancol.org>
+2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * alloc.c (detect_suspicious_free): Split actual stack capturing
-       out into new function for easier breakpoint setting.
-       (note_suspicious_free): New function.
+       * 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-03  Daniel Colascione  <dancol@dancol.org>
+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>
 
-       In all places below, change expressions of the form sizeof(arr) /
-       sizeof(arr[0]) to EARRAYSIZE(arr).
+       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.
 
-       * xterm.c (x_term_init): See above.
+2014-04-16  Eli Zaretskii  <eliz@gnu.org>
 
-       * xfns.c (best_xim_style): See above.
+       * keyboard.c (Fopen_dribble_file): Encode the dribble file-name
+       before passing it to system APIs.
 
-       * xfaces.c (Fdump_colors): See above.
+2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * w32fns.c (w32_default_color_map): See above.
+       * bytecode.c (exec_byte_code): Rework the volatiles.  Most importantly,
+       make sure stack.byte_string_start is not de-adjusted by pushhandler.
 
-       * w32.c:
-       (init_environment): See above.
-       (N_ENV_VARS): See above.
+2014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * unexcw.c (read_exe_header): See above.
+       * keyboard.c (Fopen_dribble_file): Avoid some races.  (Bug#17187)
 
-       * term.c (term_get_fkeys_1): See above.
+2014-04-15  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * sysdep.c (init_baud_rate): See above.
+       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.
 
-       * nsterm.m (ns_convert_key): See above.
+2014-04-12  Eli Zaretskii  <eliz@gnu.org>
 
-       * nsfns.m (get_geometry_from_preferences): See above.
+       * 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)
 
-       * msdos.c (dos_set_window_size): See above.
-       (init_environment): See above.
+       * indent.c (Fvertical_motion): Handle correctly the case when the
+       display string is preceded by an empty line.
 
-       * macfont.m (mac_font_get_glyph_for_cid): See above.
-       (macfont_store_descriptor_attributes): See above.
-       (macfont_create_attributes_with_spec): See above.
-       (mac_ctfont_get_glyph_for_cid): See above.
+       * w32.c (sys_umask) <WRITE_USER>: Remove redundant constant, and
+       use S_IWRITE instead.
 
-       * keyboard.c (command_loop_1): See above.
-       (read_menu_command): See above.
-       (make_lispy_event): See above.
-       (NUM_MOD_NAMES): See above.
-       (read_key_sequence_vs): See above.
-       (Fcurrent_input_mode): See above.
-       (syms_of_keyboard): See above.
+2014-04-11  Glenn Morris  <rgm@gnu.org>
 
-       * image.c (xpm_str_to_color_key): See above.
+       * keyboard.c (Fopen_dribble_file): Make file private.  (Bug#17187)
 
-       * fringe.c (MAX_STANDARD_FRINGE_BITMAPS): See above.
+2014-04-11  Ken Brown  <kbrown@cornell.edu>
 
-       * frame.c (x_set_frame_parameters): See above.
+       * Makefile.in (EMACS_MANIFEST): Revert last change.
 
-       * fileio.c (Ffile_selinux_context): See above.
+2014-04-10  Daniel Colascione  <dancol@dancol.org>
 
-       * emacs.c (sort_args): See above.
+       * puresize.h (BASE_PURESIZE): Increase.
 
-       * dosfns.c ():
-       (msdos_stdcolor_name): See above.
+2014-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * dired.c (file_attributes): See above.
+       * keyboard.c (syms_of_keyboard): Make deactivate-mark buffer-local.
 
-       * chartab.c:
-       (uniprop_decoder_count,uniprop_encode_count): See above.
+       * 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 (EARRAYSIZE): New macro.
+       * 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)
+       (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.
 
        (adjust_after_replace):
        (replace_range): Pass value for new record_markers arg to
        delete_record.
-       * undo.c (record_marker_adjustment): Renamed to
+       * undo.c (record_marker_adjustment): Rename to
        record_marker_adjustments and made static.
        (record_delete): Check record_markers arg and call
        record_marker_adjustments.
        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).