Merge from gnulib.
[bpt/emacs.git] / src / ChangeLog
index bfa2810..2a5c828 100644 (file)
@@ -1,6 +1,351 @@
+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.