Merge from gnulib.
[bpt/emacs.git] / src / ChangeLog
index a11737a..2a5c828 100644 (file)
@@ -1,3 +1,779 @@
+2013-11-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (message_dolog): Make sure the *Messages* buffer has its
+       cache-long-scans disabled, since we don't want to call
+       prepare_to_modify_buffer (in insert_1_both) for each message we
+       display.
+
+       * buffer.h (bset_cache_long_scans): New INLINE function, moved
+       from buffer.c.  Improve commentary to the buffer field setter
+       functions.
+
+       * buffer.c (bset_cache_long_scans): Static function deleted.
+       Improve commentary to the buffer field setter functions.
+       (init_buffer_once): Default for cache-long-scans changed to t.
+       (Bug#15797)
+
+2013-11-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * gmalloc.c (special_realloc, calloc, mallochook): Use tail calls.
+
+       * chartab.c (make_sub_char_table): Fix size typo (Bug#15825).
+       This bug was introduced in my 2013-06-21 change, and caused
+       struct Lisp_Sub_Char_Table objects to be given too many slots,
+       which broke 'make -C admin/unidata'.
+
+2013-11-07  Jan Djärv  <jan.h.d@swipnet.se>
+
+       Import changes from mac-port 4.5.
+       * macfont.m (mac_font_copy_default_descriptors_for_language)
+       (mac_font_copy_default_name_for_charset_and_languages): Declare.
+       (cf_charset_table): big-5-0 has uniquifier 0x4EDC.
+       (macfont_language_default_font_names): New.
+       (macfont_list): Rearrange language/charset code.
+       (macfont_close): Don't check for macfont_info->cache.
+       (mac_ctfont_create_preferred_family_for_attributes): New font
+       selection code, call
+       mac_font_copy_default_name_for_charset_and_languages.
+       (mac_font_copy_default_descriptors_for_language)
+       (mac_font_copy_default_name_for_charset_and_languages): New functions.
+
+       * macfont.h (kCTVersionNumber10_9): Define if not defined.
+
+2013-11-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to C11 aligned_alloc, and fix some integer overflows.
+       * alloc.c (USE_ALIGNED_ALLOC): New symbol.
+       (USE_POSIX_MEMALIGN): Remove.  All uses replaced with USE_ALIGNED_ALLOC,
+       and use of posix_memalign replaced with aligned_alloc.
+       (aligned_alloc): New function, defined or declared as needed.
+       * conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
+       Don't undef; configure.ac now does this.
+       * gmalloc.c (aligned_alloc) [MSDOS]: New decl.
+       (calloc, aligned_alloc): Check for integer overflow.
+       (aligned_alloc): Rename from memalign.  All uses changed.
+       (memalign): New function, an alias for aligned_alloc.
+
+2013-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xdisp.c (redisplay_internal): Fix typo in last change.
+
+2013-11-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2.
+
+2013-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and
+       redisplay--mode-lines-cause.
+       (redisplay_internal): Keep them uptodate.  Remove redundant check of
+       buffer_shared_and_changed.
+       * *.[chm]: Number every assignment to update_mode_lines so we
+       can track why it is set.
+
+2013-11-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * editfns.c (Fformat_time_string): Doc fix.  (Bug#15816)
+
+2013-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * *.[chm]: Number every assignment to windows_or_buffers_changed so we
+       can track why it is set.
+
+2013-11-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Integer-related fixes for term.c etc.
+       * dispextern.h (face_tty_specified_color): New function.
+       * term.c (turn_on_face): Don't rely on undefined behavior when
+       assigning an out-of-range value to 'long'.
+       Simplify test for toggling highlight.
+       (tty_capable_p): Omit last two (unused) args.  All callers changed.
+       * term.c (tty_capable_p, tty_menu_display, tty_menu_add_selection)
+       (read_menu_input, tty_menu_activate, tty_menu_show):
+       * xfaces.c (x_supports_face_attributes_p)
+       (tty_supports_face_attributes_p):
+       Use bool for boolean.  All callers changed.
+       (tty_supports_face_attributes_p): Omit defaults for color indices;
+       no longer needed.  Simplify tail call.
+
+2013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xdisp.c (prepare_menu_bars): Mark static.
+       * lisp.h (prepare_menu_bars): Don't declare.
+       * xselect.c (x_handle_selection_clear):
+       * callproc.c (call_process): Remove redundant call to prepare_menu_bars.
+
+2013-11-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * keyboard.c (Fcommand_error_default_function): Fix pointer signedness
+       glitch.  Eliminate 'sz' prefix; Hungarian notation is not helpful here.
+
+2013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (Fcommand_error_default_function): Rename from
+       Fdefault_error_output.
+
+2013-11-05  Jarek Czekalski  <jarekczek@poczta.onet.pl>  (tiny change)
+
+       * keyboard.c (Fdefault_error_output): New function, extracted from
+       cmd_error_internal.
+       (syms_of_keyboard): Use it for Vcommand_error_function.
+
+2013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (handlerlist_sentinel): New variable (bug#15802).
+       (init_eval): Use it to ensure handlerlist is non-NULL.
+       (unwind_to_catch): Make sure we never set handlerlist to NULL.
+       (Fsignal): Adjust NULLness test of handlerlist.
+       * lisp.h (PUSH_HANDLER): Assume handlerlist is non-NULL.
+
+2013-11-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * callproc.c (call_process): Call prepare_to_modify_buffer before
+       decoding text read from the sub-process, as the decoded stuff will
+       be inserted into the buffer.  This will invalidate the various
+       caches maintained for the buffer.  (Bug#15148)
+
+2013-11-05  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * xdisp.c (syms_of_xdisp): Mention the active display table in doc
+       string of glyphless-char-display.
+
+2013-11-05  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsfns.m (ns_get_name_from_ioreg): New function.
+       (ns_screen_name): Don't use deprecated CGDisplayIOServicePort on
+       OSX >= 10.9.  Use ns_get_name_from_ioreg.
+
+2013-11-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify and port recent bool vector changes.
+       * alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
+       only in this file.  Use a more-efficient implementation if the
+       second argument is a power of 2.
+       (ALIGN): Rewrite in terms of ROUNDUP.  Make it a function.
+       Remove no-longer-necessary compile-time checks.
+       (bool_vector_exact_payload_bytes): New function.
+       (bool_vector_payload_bytes): Remove 2nd arg; callers that need
+       exact payload changed to call the new function.  Do not assume
+       that the arg or result fits in ptrdiff_t.
+       (bool_vector_fill): New function.
+       (Fmake_bool_vector): Use it.  Don't assume bit counts fit
+       in ptrdiff_t.
+       (vroundup_ct): Don't assume arg fits in size_t.
+       * category.c (SET_CATEGORY_SET): Remove.  All callers now just
+       invoke set_category_set.
+       (set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
+       All callers changed.  Use bool_vector_set.
+       * category.h (XCATEGORY_SET): Remove; no longer needed.
+       (CATEGORY_MEMBER): Now a function.  Rewrite in terms of
+       bool_vector_bitref.
+       * data.c (Faref): Use bool_vector_ref.
+       (Faset): Use bool_vector_set.
+       (bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
+       (Fbool_vector_not, Fbool_vector_count_matches)
+       (Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
+       * fns.c (concat): Use bool_vector_ref.
+       (Ffillarray): Use bool_vector_fill.
+       (mapcar1): Use bool_vector_ref.
+       (sxhash_bool_vector): Hash words, not bytes.
+       * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
+       a constant, since it's now used in #if.
+       (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
+       unsigned char on unusual architectures, so that we no longer
+       assume that the number of bits per bits_word is a power of two or
+       is a multiple of 8 or of CHAR_BIT.
+       (Qt): Add forward decl.
+       (struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
+       at least as strictly as bits_word.
+       (bool_vector_data, bool_vector_uchar_data): New accessors.
+       All data structure accesses changed to use them.
+       (bool_vector_words, bool_vector_bitref, bool_vector_ref)
+       (bool_vector_set): New functions.
+       (bool_vector_fill): New decl.
+       (ROUNDUP): Move to alloc.c as described above.
+
+       Fix recent gnutls changes.
+       * gnutls.c (Fgnutls_boot): Don't assume C99.
+       * process.c (wait_reading_process_output): Fix typo in recent change.
+
+2013-11-05  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * process.c (wait_reading_process_output, read_process_output)
+       (send_process): Check gnutls_state is not NULL.
+
+       * gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN.
+       (Fgnutls_boot): Set process gnutls_p later, after initialization.
+
+2013-11-04  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (init, run, stop:): New methods in EmacsApp for
+       OSX >= 10.9 to prevent memory leak of GCD dispatch source.
+
+       * nsterm.h (EmacsApp): Add shouldKeepRunning and isFirst for
+       OSX >= 10.9.
+
+       * nsfns.m (Fx_create_frame): Fix memory leak.
+
+       * macfont.m (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
+       (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
+       (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): Fix memory leak.
+
+2013-11-04  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (message3_nolog, message_with_string): Encode the string
+       before writing it to the terminal in a non-interactive session.
+
+       * lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
+       sure we concatenate them into a unibyte string.
+
+       * fileio.c (make_temp_name): Encode PREFIX, and decode the
+       resulting temporary name before returning it to the caller.
+       (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
+       is a unibyte string, convert NAME to a unibyte string to ensure
+       that the result is also a unibyte string.
+
+       * emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
+       create unibyte strings from default paths and directory/file
+       names.
+
+       * coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
+       string.
+
+       * callproc.c (init_callproc): Use build_unibyte_string to make
+       sure we create unibyte strings from default paths and
+       directory/file names.
+
+       * buffer.c (init_buffer): Don't store default-directory of
+       *scratch* in multibyte form.  The original problem which led to
+       that is described in
+       http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
+       but it was solved long ago.  (Bug#15260)
+
+2013-11-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to stricter C99 platforms.
+       Especially, C99 prohibits nesting a struct X inside struct Y if
+       struct X has a flexible array member.
+       * alloc.c (struct sdata): New type.
+       (sdata): Implement in terms of struct sdata.
+       Remove u member; all uses replaced by next_vector, set_next_vector.
+       (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
+       (SDATA_DATA_OFFSET): Now a constant, not a macro.
+       (struct sblock): Rename first_data member to data, which is now
+       a flexible array member.  All uses changed.
+       (next_vector, set_next_vector, large_vector_vec): New functions.
+       (vector_alignment): New constant.
+       (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
+       (struct large-vector): Now merely a NEXT member, since the old approach
+       ran afoul of stricter C99.  All uses changed to use
+       large_vector_vec or large_vector_offset.
+       (large_vector_offset): New constant.
+       * dispnew.c: Include tparam.h, for tgetent.
+       Do not include term.h; no longer needed.
+       * gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
+       * lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
+       (struct Lisp_Vector): Use a flexible array member for contents,
+       instead of a union with a member that is an array of size 1.
+       All uses changed.
+       (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
+       fact that the struct no longer contains a union.
+       (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
+       (struct Lisp_Save_Value, struct Lisp_Free):
+       Use unsigned, not int, for spacers, to avoid c99 warning.
+       (union specbinding): Use unsigned, not bool, for bitfield, as
+       bool is not portable to pre-C99 hosts.
+
+2013-11-04  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.c (usage_message): Mention that `-L :...' appends.
+
+2013-11-02  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (abs_builddir): Remove.
+       (bootstrap_exe): Use relative filename.
+
+       Use relative filenames in TAGS files.
+       * Makefile.in (abs_srcdir): Remove it again.
+       (.PHONY): Remove frc.
+       (maintainer-clean): No more TAGS-LISP file.
+       (TAGS): Pass relative file names to etags.
+       (../lisp/TAGS): Rename from TAGS-LISP.  Work in ../lisp.
+
+       * Makefile.in (abs_srcdir): New, set by configure.
+       (lispdir): Remove.
+       (maintainer-clean): Remove pointless echo.  That should be in the
+       top-level Makefile, if anywhere.  Delete TAGS-LISP.
+       (extraclean): No s/ and m/ directories for some time.
+       (TAGS): Also depend on ctagsfiles3.
+       Remove no-longer-defined S_FILE.
+       Pass absolute filenames to etags once more.
+       (TAGS-LISP): Replace lispdir with its expansion.
+       (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
+       ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
+
+2013-11-02  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xfaces.c (check_lface_attrs, realize_default_face):
+       Add LFACE_DISTANT_FOREGROUND_INDEX (Bug#15788).
+       (realize_default_face): Set DISTANT_FOREGROUND to unspecified_fg.
+
+2013-11-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * emacs.c (original_pwd): Remove global var by making it local.
+       (init_cmdargs): New arg ORIGINAL_PWD; caller changed.
+
+2013-11-01  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xfaces.c: Declare color_distance.
+       (QCdistant_foreground): New variable.
+       (NEAR_SAME_COLOR_THRESHOLD): New define.
+       (load_color2): New function.
+       (load_color): Call load_color2.
+       (load_face_colors): Call load_color2 and if distant-color is specified
+       calculate distant and use distant-color if colors are near.
+       (LFACE_DISTANT_FOREGROUND): New define.
+       (merge_face_ref, Finternal_set_lisp_face_attribute)
+       (Finternal_get_lisp_face_attribute)
+       (x_supports_face_attributes_p): Handle distant-foreground similar to
+       foreground.
+       (syms_of_xfaces): DEFSYM QCdistant_foreground.
+
+       * dispextern.h (lface_attribute_index):
+       Add LFACE_DISTANT_FOREGROUND_INDEX.
+
+2013-11-01  Claudio Bley  <claudio.bley@googlemail.com>
+
+       * image.c (pbm_next_char): New function.
+       See http://netpbm.sourceforge.net/doc/pbm.html for the details.
+       (pbm_scan_number): Use it.
+       (Qlibjpeg_version): New variable.
+       (syms_of_image): DEFSYM and initialize it.
+
+2013-10-31  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * emacs.c (main): Skip -psn args on OSX even if ! isatty (0).
+
+2013-10-31  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.c (original_pwd): New char.
+       (main): If using --chdir, store original_pwd.
+       (init_cmdargs): When setting Vinvocation_directory based on a
+       relative argv[0], use original_pwd if set.  (Bug#15768)
+
+2013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (command_loop_1): If command is nil, call `undefined'.
+
+2013-10-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * insdel.c: Fix minor problems found by static checking.
+       (Qregion_extract_function): Now static.
+       (prepare_to_modify_buffer_1): Remove unused locals.
+
+2013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
+       (syms_of_xdisp): Declare pre-redisplay-function.
+       (markpos_of_region): Remove function.
+       (init_iterator, compute_stop_pos, handle_face_prop)
+       (face_before_or_after_it_pos, reseat_to_string)
+       (get_next_display_element, window_buffer_changed)
+       (redisplay_internal, try_cursor_movement, redisplay_window)
+       (try_window_reusing_current_matrix, try_window_id, display_line)
+       (note_mode_line_or_margin_highlight, note_mouse_highlight)
+       (display_string, mouse_face_from_buffer_pos): Remove region handling.
+       * window.h (struct window): Remove field `region_showing'.
+       * dispextern.h (struct it): Remove region_beg/end_charpos.
+       (face_at_buffer_position, face_for_overlay_string)
+       (face_at_string_position): Update prototypes.
+       * xfaces.c (face_at_buffer_position, face_for_overlay_string)
+       (face_at_string_position): Remove `region_beg' and `region_end' args.
+       * fontset.c (Finternal_char_font):
+       * font.c (font_at, font_range): Adjust calls accordingly.
+       * insdel.c (Qregion_extract_function): New var.
+       (syms_of_insdel): Initialize it.
+       (prepare_to_modify_buffer_1): Use it.
+
+2013-10-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'.
+       * ftxfont.c (ftxfont_get_gcs):
+       * gtkutil.c (xg_set_widget_bg, xg_set_background_color):
+       * xfaces.c (x_free_colors, x_free_dpy_colors)
+       (x_create_gc, unload_color):
+       * xselect.c (x_property_data_to_lisp):
+       * xsettings.c (parse_settings):
+       * xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color)
+       (get_bits_and_offset): Adjust definition.
+       * frame.c (XParseGeometry): Adjust locals.
+       * lisp.h (toplevel): Adjust EMACS_UINT type definition.
+       * regex.h (toplevel): Likewise for reg_syntax_t.
+
+2013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (run_hook_with_args): Use FUNCTIONP.
+
+2013-10-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (struct x_output): For 'black_relief' and 'white_relief'
+       fields, drop 'allocated_p' member and use -1 for uninitialized value.
+       * w32term.h (struct w32_output): Similarly but do not use -1 because...
+       * xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
+       on MS-Windows anyway.
+       (free_face_colors): Define only if HAVE_X_WINDOWS and...
+       (free_realized_face): ...adjust user.
+       * xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
+       white relief pixels to -1.
+       * xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
+       * w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
+       * dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
+
+2013-10-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dispextern.h, image.c (x_bitmap_height, x_bitmap_width): Now static.
+       * xfaces.c (load_pixmap): Omit last two args, which are always NULL
+       in practice now.  All callers changed.
+
+2013-10-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * dispextern.h (struct face): Use bitfields for 'underline_type'
+       and 'box' members.  Remove set-but-unused members 'pixmap_w' and
+       'pixmap_h'.  If not HAVE_WINDOW_SYSTEM, also remove dummy
+       'stipple' member.  Move 'lface' member up to help...
+       * xfaces.c (make_realized_face): ...this function to find and
+       clear just the members that need clearing.
+       (load_face_colors, realize_x_face):
+       * xdisp.c (extend_face_to_end_of_line): Adjust user.
+
+2013-10-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xftfont.c (struct xftfont_info): Remove set-but-unused
+       'screen' member.
+       (xftfont_open): Adjust user.
+       (xftfont_get_colors): Remove useless prototype.
+
+2013-10-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * emacs.c (Fdump_emacs): Encode FILENAME and SYMFILE arguments
+       before passing them to 'unexec'.  (Bug#15260)
+
+2013-10-26  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * fringe.c (set_fringe_bitmap_face): Add usage note from lispref.
+
+2013-10-25  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32uniscribe.c (uniscribe_close): Adjust the argument list to
+       the changed signature of the font driver's 'close' method.
+
+       * w32font.h (w32font_close): Adjust the prototype to the change in
+       function definition.
+
+       * w32font.c (w32font_close): Reintroduce deleted declaration of i.
+
+       * w32uniscribe.c (uniscribe_close): Adapt the call to
+       w32font_close to its new prototype.
+
+2013-10-25  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Omit unused frame argument of font API's close function.
+       * font.h (struct font): Drop frame argument.  Adjust comment.
+       * font.c (font_clear_cache, font_close_object): Adjust users.
+       * ftfont.c (ftfont_close):
+       * ftxfont.c (ftxfont_close):
+       * macfont.m (macfont_close):
+       * nsfont.m (nsfont_close):
+       * w32font.c (w32font_close):
+       * xfont.c (xfont_close):
+       * xftfont.c (xftfont_close): Adjust driver-specific close functions,
+       tweak comments and make functions safe if called more than once for
+       the same font object.
+
+       Perform font-specific cleanup when font object is swept by GC.  See
+       http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00740.html.
+       * alloc.c (cleanup_vector): New function.
+       (sweep_vector): Call it for each reclaimed vector object.
+       * font.h (struct font): Adjust comment.
+
+2013-10-24  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (abs_top_srcdir): New, set by configure.
+
+2013-10-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Adjust recent font-related changes to fix bug#15686.
+       * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame
+       is a live window system frame, mark its default font too.
+
+2013-10-23  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (RUN_TEMACS): Make relative (again).
+       ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
+       (bootstrap-emacs$(EXEEXT)):
+       Quote entities that might contain whitespace.
+
+2013-10-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to Solaris 10 and its bundled GCC.
+       Problem reported by Timothy C. Burt.
+       * floatfns.c (isfinite, isnan): Redefine unconditionally.
+
+2013-10-21  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not allow font caches to grow too large.
+       * alloc.c (compact_font_cache_entry, compact_font_caches):
+       New functions or stub if not HAVE_WINDOW_SYSTEM.
+       (compact_undo_list): Factor out from Fgarbage_collect.
+       Add comment.
+       (mark_face_cache): Mark face font.  Move down to avoid
+       extra prototypes.
+       (mark_terminals): Do not mark font cache here.
+       (Fgarbage_collect): Call compaction functions described
+       above.  Adjust comment.
+
+2013-10-20  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * emacs.c (main): On Cocoa, if GUI session and 0 is not a tty,
+       chdir to HOME (bug#15607).
+
+       * nsterm.m (Qcocoa, Qgnustep): New variables.
+       (syms_of_nsterm): Defsym Qcocoa, Qgnustep.  Fprovide appropriate one.
+       (ns_get_color): Make selection color work for GNUStep also.
+
+2013-10-18  Eli Zaretskii  <eliz@gnu.org>
+
+       * keyboard.c (make_lispy_event): Remove GPM-specific code that
+       handles mouse clicks.  Instead, let GPM use the same code as all
+       the other mice use.  See the discussion starting at
+       http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html
+       for the details of the problem with the menu bar this fixes.
+
+2013-10-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove port-specific display name lists to avoid extra
+       complexity and data duplication with display info lists.
+       * xterm.h (x_display_name_list): Remove declaration.
+       * xterm.c (x_display_name_list): Remove.
+       (x_term_init, x_delete_display, syms_of_xterm): Adjust users.
+       * xfns.c (x_display_info_for_name, Fx_display_list):
+       Likewise.  Use x_display_list where appropriate.
+       * w32term.h (w32_display_name_list): Remove declaration.
+       * w32term.c (w32_display_name_list): Remove.
+       (w32_initialize_display_info, x_delete_display, syms_of_w32term):
+       Adjust users.
+       * w32fns.c (x_display_info_for_name, Fx_display_list):
+       Likewise.  Use x_display_list where appropriate.
+       * nsterm.h (ns_display_name_list): Remove declaration.
+       * nsterm.m (ns_display_name_list): Remove.
+       (ns_term_init, syms_of_nsterm): Adjust users.
+       * nsfns.m (ns_display_info_for_name, Fx_display_list):
+       Likewise.  Use x_display_list where appropriate.
+       * termhooks.h (TERMINAL_FONT_CACHE): New macro.
+       * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER.
+       (mark_terminals): Mark per-terminal font cache.
+
+2013-10-17  Barry O'Reilly  <gundaetiapo@gmail.com>
+
+       Don't run timers in input-pending-p.  Its new check-timers param
+       provides the prior behavior. (Bug#15045).
+       * src/keyboard.c (Finput_pending_p): Accept optional check-timers
+       param.
+
+2013-10-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Make some functions static in non-Microsoft builds.
+       On my platform (Fedora 19 x86-64), this shrinks the
+       Emacs executable (text+data) by 0.25%.
+       * dispextern.h (erase_phys_cursor) [!WINDOWSNT]:
+       (load_color) [!MSDOS]:
+       * gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]:
+       * keyboard.h (make_ctrl_char) [!WINDOWSNT]:
+       * lisp.h (check_existing):
+       * process.h (conv_sockaddr_to_lisp, network_interface_list)
+       (network_interface_info) [!WINDOWSNT]:
+       * termhooks.h (encode_terminal_code) [!WINDOWSNT]:
+       Remove extern decls.
+       * fileio.c (check_existing):
+       * keyboard.c (make_ctrl_char) [!WINDOWSNT]:
+       * process.c (conv_sockaddr_to_lisp, network_interface_list)
+       (network_interface_info) [!WINDOWSNT]:
+       * term.c (encode_terminal_code) [!WINDOWSNT]:
+       * xdisp.c (erase_phys_cursor) [!WINDOWSNT]:
+       * xfaces.c (load_color) [!MSDOS]:
+       Now static.
+       * fileio.c (check_existing, check_executable, check_writable):
+       * process.c (network_interface_list, network_interface_info):
+       Move earlier, so that we don't need forward decls.
+       * gnutls.c (fn_gnutls_transport_set_errno)
+       (emacs_gnutls_transport_set_errno) [!WINDOWNT]:
+       Remove; unused.
+       * w32.c (init_environment): Use faccessat rather than
+       check_existing, partly for consistency with the rest of the code
+       in this file, partly so that check_existing can be static.
+
+       Make VALMASK visible to GDB even if clang is used (Bug#15574).
+       * emacs.c (MAIN_PROGRAM): New macro.
+       * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): New macros.
+       (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
+
+       bool vector int width fixes
+       * data.c (bool_vector_spare_mask, Fbool_vector_count_matches)
+       (Fbool_vector_count_matches_at):
+       Use EMACS_INT, not ptrdiff_t, to record bit counts, as a bit count
+       can exceed PTRDIFF_MAX, at least in theory.
+       (Fbool_vector_count_matches_at):
+       Use int, not ptrdiff_t, to record a value that can't exceed INT_MAX.
+
+2013-10-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * process.h (conv_sockaddr_to_lisp): New decl, for newly-extern func.
+       (struct sockaddr): Add forward decl, for platforms that lack it.
+
+2013-10-16  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsselect.m (ns_string_from_pasteboard): Remove Fquit, just return
+       Qnil (Bug#15628).
+
+2013-10-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (network_interface_get_info, network_interface_list)
+       (network_interface_info): New functions.  (Bug#15610)
+       (GetAdaptersInfo_Proc): New typedef.
+       (get_adapters_info): New wrapper function.
+       (globals_of_w32): Initialize g_b_init_get_adapters_info.
+
+       * process.h (network_interface_list, network_interface_info):
+       New prototypes.
+
+       * process.c (conv_sockaddr_to_lisp): Now externally-visible.
+       (Fnetwork_interface_list, Fnetwork_interface_info): Define for
+       all systems.  Return non-nil for systems that HAVE_NET_IF_H and
+       for WINDOWSNT.  Doc fix.
+       (syms_of_process): Defsubr Snetwork_interface_list and
+       Snetwork_interface_info unconditionally.
+
+       * menu.c (have_boxes): Fix redundant simulation of radio buttons
+       in NS GUI sessions.  (Bug#15629)
+
+2013-10-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * fns.c (Fstring_as_unibyte): Use xlispstrdup.
+
+2013-10-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * print.c (print_object): Print " ..." when truncating bool vectors.
+
+2013-10-15  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32inevt.c (do_mouse_event): Support mouse wheel and all the 5
+       standard mouse buttons.
+
+       * termhooks.h (struct input_event): Remove incorrect commentary.
+
+2013-10-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Disallow bool vector operations on mixed-length operands.
+       The old behavior left garbage in the result vector sometimes,
+       and didn't seem to be useful.
+       * data.c (Qwrong_length_argument): New static var.
+       (wrong_length_argument): New function.
+       (bool_vector_binop_driver): Check that args agree in length.
+
+       * keyboard.c, keyboard.h (all_kboards): Now static.
+
+2013-10-15  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * buffer.c (syms_of_buffer) <buffer-invisibility-spec>: Add usage
+       note from the lispref.
+
+2013-10-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * nsterm.h (struct ns_display_info): Remove set-but-unused
+       member image_cache (image caches are per-terminal anyway).
+       (FRAME_X_IMAGE_CACHE): Remove.
+       * nsterm.m (ns_initialize_display_info): Adjust user.
+
+2013-10-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c: Include mingw_time.h.
+
+       * w32.c: Include mingw_time.h.
+
+       Implement scrolling of TTY menus when the screen is too short.
+
+       * term.c (tty_menu_display): Accept an additional argument, the
+       menu item from which to start displaying the menu.  Account for
+       the value of Y when limiting the menu to the number of available
+       screen lines.
+       (mi_result): New enumeration.
+       (read_menu_input): Return enumerated value.  When the y coordinate
+       hits min_y or max_y, return scroll indication instead of wrapping
+       around the menu.
+       (tty_menu_activate): Handle the scrolling indications from
+       read_menu_input.  Compute the first menu item to display and pass
+       it to tty_menu_display.
+
+2013-10-14  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK)
+       (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK)
+       (FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME):
+       Adjust to match the change described below.
+       (struct terminal): Move must_write_spaces, line_ins_del_ok,
+       char_ins_del_ok, scroll_region_ok, scroll_region_cost and
+       memory_below_frame members to...
+       * termchar.h (struct tty_display_info): ...here because they're
+       relevant only on TTYs.  Prefer unsigned bitfield where appropriate.
+       * term.c (init_tty):
+       * nsterm.m (ns_create_terminal):
+       * w32term.c (w32_create_terminal):
+       * xterm.c (x_create_terminal): Adjust users.
+       * dispnew.c (line_hash_code, line_draw_cost): Pass frame arg
+       to filter out non-TTY frames.  Adjust comment.
+       (scrolling): Adjust user.  Prefer eassert for debugging check.
+
+2013-10-14  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xfaces.c (PT_PER_INCH): Remove unused macro.
+       * termhooks.h (struct terminal): Remove set-but-unused
+       member fast_clear_end_of_line.
+       (FRAME_FAST_CLEAR_END_OF_LINE): Remove.
+       * nsterm.m (ns_create_terminal):
+       * term.c (init_tty):
+       * w32term.c (w32_create_terminal):
+       * xterm.c (x_create_terminal): Adjust users.
+
+2013-10-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lisp.h (bool_vector_size): New function.
+       All uses of XBOOL_VECTOR (x)->size changed to bool_vector_size (x).
+       * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
+       (Fbool_vector_not, Fbool_vector_count_matches_at):
+       Remove uses of 'eassume' that should no longer be needed,
+       because they are subsumed by the 'eassume' in bool_vector_size.
+
+2013-10-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back
+       after inclusion of gif_lib.h, thus fixing compiler warnings caused
+       by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu.
+
+2013-10-11  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO
+       have different dimensions.  (Bug#15575)
+
+       * dispnew.c (fill_up_frame_row_with_spaces): Now has external
+       visibility.
+
+       * dispextern.h (fill_up_frame_row_with_spaces): Add prototype.
+
+2013-10-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * term.c (tty_menu_show): Never return with unbalanced
+       specpdl.  Use eassert for debugging check.  Adjust style.
+
 2013-10-11  Eli Zaretskii  <eliz@gnu.org>
 
        * term.c (read_menu_input): Make selection of menu items
        (xw_popup_dialog): New function, with X-specific bits of popup
        dialogs.
 
-       * xdisp.c (deep_copy_glyph_row, display_tty_menu_item): New
-       functions.
+       * xdisp.c (deep_copy_glyph_row, display_tty_menu_item):
+       New functions.
 
        * window.c (Fset_window_configuration): Use run-time tests of the
        frame type instead of compile-time conditionals, when menu-bar
        of, or in addition to, compile-time conditionals.
        (menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
        (Fx_popup_menu): Detect when the function is called from keyboard
-       on a TTY.  Don't barf when invoked on a text-mode frame.  Check
-       frame type at run time, instead of compile-time conditionals for
-       invoking terminal-specific menu-show functions.  Call
-       tty_menu_show on text-mode frames.
-       (Fx_popup_dialog): Moved here from xmenu.c.  Test frame types at
+       on a TTY.  Don't barf when invoked on a text-mode frame.
+       Check frame type at run time, instead of compile-time conditionals for
+       invoking terminal-specific menu-show functions.
+       Call tty_menu_show on text-mode frames.
+       (Fx_popup_dialog): Move here from xmenu.c.  Test frame types at
        run time to determine which alternative to invoke; support dialogs
        on TTYs.
 
 
        * alloc.c (USE_VALGRIND): New macro; on by default
        when ENABLE_CHECKING.
-       (mark_maybe_object,mark_maybe_pointer)
+       (mark_maybe_object, mark_maybe_pointer)
        [USE_VALGRIND]: Mark conservatively-scanned regions valid for
        valgrind purposes.
        (valgrind_p) [USE_VALGRIND]: New variable.
 2013-09-22  Daniel Colascione  <dancol@dancol.org>
 
        * data.c (Qbool_vector_p): New symbol.
-       (bool_vector_spare_mask,popcount_size_t_generic)
-       (popcount_size_t_msc,popcount_size_t_gcc)
+       (bool_vector_spare_mask, popcount_size_t_generic)
+       (popcount_size_t_msc, popcount_size_t_gcc)
        (popcount_size_t)
        (bool_vector_binop_driver)
-       (count_trailing_zero_bits,size_t_to_host_endian)
+       (count_trailing_zero_bits, size_t_to_host_endian)
        (Fbool_vector_exclusive_or)
        (Fbool_vector_union)
-       (Fbool_vector_intersection,Fbool_vector_set_difference)
-       (Fbool_vector_subsetp,Fbool_vector_not)
+       (Fbool_vector_intersection, Fbool_vector_set_difference)
+       (Fbool_vector_subsetp, Fbool_vector_not)
        (Fbool_vector_count_matches)
        (Fbool_vector_count_matches_at): New functions.
        (syms_of_data): Intern new symbol, functions.
        which performs redundant initialization and argument checking,
        just call allocate_vector ourselves.  Make sure we clear any
        terminating padding to zero.
-       (vector_nbytes,sweep_vectors): Use bool_vector_payload_bytes
+       (vector_nbytes, sweep_vectors): Use bool_vector_payload_bytes
        instead of open-coding the size calculation.
        (vroundup_ct): New macro.
        (vroundup): Assume argument >= 0; invoke vroundup_ct.
-       * casetab.c (shuffle,set_identity): Change lint_assume to assume.
+       * casetab.c (shuffle, set_identity): Change lint_assume to assume.
        * composite.c (composition_gstring_put_cache):
        Change lint_assume to assume.
        * conf_post.h (assume): New macro.
        * image.c (gif_load): Change lint_assume to assume.
        * lisp.h (eassert_and_assume): New macro.
        (Qbool_vector_p): Declare.
-       (CHECK_BOOL_VECTOR,ROUNDUP,BITS_PER_SIZE_T): New macros.
-       (swap16,swap32,swap64): New inline functions.
+       (CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros.
+       (swap16, swap32, swap64): New inline functions.
        * macfont.c (macfont_shape): Change lint_assume to assume.
        * ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
        * xsettings.c (parse_settings): Use new swap16 and
        in update_window_end_hook and draw_window_cursor functions.
        (display_and_set_cursor, x_update_cursor): Adjust prototypes.
        * nsterm.m (ns_update_window_end, ns_draw_window_cursor):
-       * w32term.c (x_update_window_end,w32_draw_window_cursor):
+       * w32term.c (x_update_window_end, w32_draw_window_cursor):
        * xterm.c (x_update_window_end, x_draw_window_cursor):
        * xdisp.c (display_and_set_cursor, update_window_cursor)
        (update_cursor_in_window_tree, x_update_cursor): Use bool and
        * keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
        * nsfns.m (x_set_cursor_type):
        * w32fns.c (x_set_cursor_type):
-       * xfns.m (x_set_cursor_type): Do not set cursor_type_changed here...
+       * xfns.c (x_set_cursor_type): Do not set cursor_type_changed here...
        * xdisp.c (set_frame_cursor_types): ...but in common code.
 
 2013-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
 
        * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
 
-2013-05-22  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)
+2013-05-22  Barry O'Reilly  <gundaetiapo@gmail.com>
 
        * casetab.c (init_casetab_once): Fix last change (bug#14424).
 
        character numbers counted by detect_coding_utf_8.  Fix detection
        of BOM for utf-8.
 
-2013-05-21  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)
+2013-05-21  Barry O'Reilly  <gundaetiapo@gmail.com>
 
        * search.c (looking_at_1): Only set last_thing_searched if the match
        changed the match-data (bug#14281).