Merge from mainline.
[bpt/emacs.git] / src / ChangeLog
index e7ea077..cd1b74b 100644 (file)
@@ -1,3 +1,56 @@
+2011-04-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * eval.c: Port to Windows vsnprintf (Bug#8435).
+       Include <limits.h>.
+       (SIZE_MAX): Define if the headers do not.
+       (verror): Do not give up if vsnprintf returns a negative count.
+       Instead, grow the buffer.  This ports to Windows vsnprintf, which
+       does not conform to C99.  Problem reported by Eli Zaretskii.
+       Also, simplify the allocation scheme, by avoiding the need for
+       calling realloc, and removing the ALLOCATED variable.
+
+       * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
+
+       Remove the doprnt implementation, as Emacs now uses vsnprintf.
+       * doprnt.c: Remove.
+       * lisp.h (doprnt): Remove.
+       * Makefile.in (base_obj): Remove doprnt.o.
+       * deps.mk (doprnt.o): Remove.
+
+       error: Print 32- and 64-bit integers portably (Bug#8435).
+       Without this change, on typical 64-bit hosts error ("...%d...", N)
+       was used to print both 32- and 64-bit integers N, which relied on
+       undefined behavior.
+       * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
+       New macro.
+       * lisp.h (error, verror): Mark as printf-like functions.
+       * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
+       Report overflow in size calculations when allocating printf buffer.
+       Do not truncate output string at its first null byte.
+       * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
+       Truncate the output at a character boundary, since vsnprintf does not
+       do that.
+       * charset.c (check_iso_charset_parameter): Convert internal
+       character to string before calling 'error', since %c now has the
+       printf meaning.
+       * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
+       overflow when computing char to be passed to 'error'.  Do not
+       pass Lisp_Object to 'error'; pass the integer instead.
+       * nsfns.m (Fns_do_applescript): Use int, not long, since it's
+       formatted with plain %d.
+
+       * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
+
+       * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
+
+       * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
+
+       * xterm.c (x_catch_errors): Remove duplicate declaration.
+
+       * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
+
+       * xdisp.c, lisp.h (message_nolog): Remove; unused.
+
 2011-04-09  Chong Yidong  <cyd@stupidchicken.com>
 
        * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use