From: Paul Eggert Date: Thu, 5 May 2011 05:31:24 +0000 (-0700) Subject: Merge from mainline. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~92^2~5 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=852a74a59b12d505eba86a0aed46bfe8af7b9acf;p=emacs.git Merge from mainline. --- 852a74a59b12d505eba86a0aed46bfe8af7b9acf diff --cc ChangeLog index c1e774c2924,83bbcf49d8e..4e675fcca9a --- a/ChangeLog +++ b/ChangeLog @@@ -1,17 -1,8 +1,20 @@@ - 2011-05-04 Paul Eggert ++2011-05-05 Paul Eggert + + Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux. + * Makefile.in (GNULIB_MODULES): Add stdarg, for va_copy. + * lib/stdarg.in.h, m4/stdarg.m4: New files, from gnulib. + + * Makefile.in (GNULIB_TOOL_FLAG): Add --conditional-dependencies. + This new gnulib-tool option saves 'configure' the trouble of + checking for strtoull when strtoumax exists. + - 2011-04-29 Paul Eggert - + * configure.in (BITS_PER_LONG_LONG): New macro. + + 2011-05-05 Glenn Morris + + * Makefile.in (bootstrap-clean): Save config.log. (Bug#765) + (top_distclean): Delete config.log~. + 2011-04-27 Ben Key * configure.in: Fixed a bug that caused configure with diff --cc nt/ChangeLog index e24ff6cf3aa,34c9ae1ed4c..f1f34bb88b5 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@@ -1,9 -1,18 +1,24 @@@ - 2011-04-30 Paul Eggert ++2011-05-05 Paul Eggert + + * config.nt: Configure 64-bit integers for older compilers. + (EMACS_INT, BITS_PER_EMACS_INT, pI): Define these if __int64 and + "%I64d" work but long long and "%lld" do not. + + 2011-05-05 Ben Key + + * configure.bat: Added support for --cflags and --ldflags + options that include quotes as long as command extensions are + enabled. Specifically when -I, -L, and similar flags are used + to specify supplementary include and library directories a + directory name that includes spaces may now be used if it is + enclosed in quotes. + + * INSTALL: Documented the change to configure.bat. + + 2011-05-04 Juanma Barranquero + + * INSTALL: Clarify GnuTLS support. + 2011-04-30 Eli Zaretskii * config.nt (HAVE_LONG_LONG_INT, HAVE_UNSIGNED_LONG_LONG_INT): diff --cc src/ChangeLog index c0d81fc1248,b6e30ab817c..ee2db310562 --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,124 -1,80 +1,201 @@@ - 2011-05-04 Paul Eggert ++2011-05-05 Paul Eggert + + * term.c (vfatal): Remove stray call to va_end. + It's not needed and the C Standard doesn't allow it here anyway. + + Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux. + * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545) + + * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM + bytes. + + * term.c: Don't include , as does that. + + Arithmetic overflows now return float rather than wrapping around. + (Bug#8611). + * data.c: Include . + (arith_driver): Use floating point if the accumulator would otherwise + go out of EMACS_INT range. + (arith_driver, Fadd1, Fsub1): Use floating point if the result is + out of Emacs fixnum range. + * bytecode.c (exec_byte_code): Likewise, for Bsub1, Badd1, Bnegate. + * floatfns.c (Fexpt): Likewise. + + * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering. + + * process.c (Fformat_network_address): Fix typo: args2 -> *args2. + + * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times). + + * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601). + + * charset.h (struct charset.code_space): Now has 15 elements, not 16. + * charset.c (Fdefine_charset_internal): Don't initialize + charset.code_space[15]. The value was garbage, on hosts with + 32-bit int (Bug#8600). + + * lread.c (read_integer): Be more consistent with string-to-number. + Use string_to_number to do the actual conversion; this avoids + rounding errors and fixes some other screwups. Without this fix, + for example, #x1fffffffffffffff was misread as -2305843009213693952. + (digit_to_number): Move earlier, for benefit of read_integer. + Return -1 if the digit is out of range for the base, -2 if it is + not a digit in any supported base. (Bug#8602) + + * doprnt.c (doprnt): Support arbitrary pI values, such as "I64". + + * dispnew.c (scrolling_window): Return 1 if we scrolled, + to match comment at start of function. This also removes a + GCC warning about overflow in a 32+64-bit port. + + * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify. + + * dbusbind.c: Do not use XPNTR on a value that may be an integer. + Reported by Stefan Monnier in + . + (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): Use + SYMBOLP-guarded XSYMBOL, not XPNTR. + + * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t. + (EMACS_UINTPTR): Likewise, with uintptr_t. + + * lisp.h: Prefer 64-bit EMACS_INT if available. + (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit + on 32-bit hosts that have 64-bit int, so that they can access + large files. + + * lread.c, process.c: Do not include ; lisp.h does it now. + + Prefer intptr_t/uintptr_t for integers the same widths as pointers. + This removes an assumption that EMACS_INT and long are the same + width as pointers. The assumption is true for Emacs porting targets + now, but we want to make other targets possible. + * lisp.h: Include , for INTPTR_MAX, UINTPTR_MAX. + (EMACS_INTPTR, EMACS_UINTPTR): New macros. + In the rest of the code, change types of integers that hold casted + pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically + replacing EMACS_INT, long, EMACS_UINT, and unsigned long. + (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed. + (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here. + No need to cast type when ORing. + (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR. + * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast. + * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to + assume EMACS_INT is the same width as char *. + * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb): + (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item): + Remove no-longer-needed casts. + (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback): + (xg_tool_bar_help_callback, xg_make_tool_item): + Use EMACS_INTPTR to hold an integer + that will be cast to void *; this can avoid a GCC warning + if EMACS_INT is not the same width as void *. + * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast. + * xdisp.c (display_echo_area_1, resize_mini_window_1): + (current_message_1, set_message_1): + Use a local to convert to proper width without a cast. + * xmenu.c (dialog_selection_callback): Likewise. + + * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long. + Also, don't assume VALBITS / RAND_BITS is less than 5, + and don't rely on undefined behavior when shifting a 1 left into + the sign bit. + * lisp.h (get_random): Change signature to match. + + * lread.c (hash_string): Use size_t, not int, for hash computation. + Normally we prefer signed values; but hashing is special, because + it's better to use unsigned division on hash table sizes so that + the remainder is nonnegative. Also, size_t is the natural width + for hashing into memory. The previous code used 'int', which doesn't + retain enough info to hash well into very large tables. + (oblookup, oblookup_last_bucket_number, Funintern): Likewise. + + * dbusbind.c: Don't possibly lose pointer info when converting. + (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): + Use XPNTR rather than XHASH, so that the high-order bits of + the pointer aren't lost when converting through void *. + + * eval.c (Fautoload): Don't double-shift a pointer. + + * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long. + + 2011-05-05 Eli Zaretskii + + * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]: + New version that can reserve upto 2GB of heap space. + + 2011-05-05 Chong Yidong + + * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534). + + 2011-05-05 Teodor Zlatanov + + * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to + `gnutls_certificate_set_x509_key_file'. + + 2011-05-05 Juanma Barranquero + + * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)): + Update dependencies. + + 2011-05-04 Juanma Barranquero + + * gnutls.h (emacs_gnutls_write, emacs_gnutls_read): + * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): + Remove unused parameter `fildes'. + * process.c (read_process_output, send_process): Don't pass it. + + 2011-05-04 Juanma Barranquero + + Fix previous change: the library cache is defined in w32.c. + * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop. + (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI". + + 2011-05-04 Juanma Barranquero + + Implement dynamic loading of GnuTLS on Windows. + + * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro. + (emacs_gnutls_write, emacs_gnutls_read): Mark as extern. + (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): + Declare. + + * gnutls.c (Qgnutls_dll): Define. + (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros. + (gnutls_*): Declare function pointers. + (init_gnutls_functions): New function to initialize function pointers. + (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit) + (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers. + (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): + Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno. + (emacs_gnutls_write, emacs_gnutls_read) + (emacs_gnutls_handle_error, Fgnutls_error_fatalp) + (Fgnutls_available_p): New function. + (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers. + (syms_of_gnutls) : Initialize and staticpro it. + (syms_of_gnutls) : defsubr it. + + * image.c: Include w32.h. + (Vimage_type_cache): Delete. + (syms_of_image) : Don't initialize and staticpro it. + (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead. + (w32_delayed_load): Move to w32.c. + + * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare. + + * w32.c (QCloaded_from, Vlibrary_cache): Define. + (w32_delayed_load): Move from image.c. When loading a library, record + its filename in the :loaded-from property of the library id. + (globals_of_w32) : + Initialize and staticpro them. + (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions. + + * process.c: Include lisp.h before w32.h, not after. + (wait_reading_process_output): Call emacs_gnutls_record_check_pending + instead of gnutls_record_check_pending. + + * callproc.c, emacs.c: Include lisp.h before w32.h, not after. + 2011-05-04 Teodor Zlatanov * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options