mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-18 02:47:36 +00:00
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.
|
||
|---|---|---|
| .. | ||
| alpha.h | ||
| amdx86-64.h | ||
| ia64.h | ||
| ibmrs6000.h | ||
| ibms390.h | ||
| ibms390x.h | ||
| intel386.h | ||
| iris4d.h | ||
| m68k.h | ||
| macppc.h | ||
| README | ||
| sparc.h | ||
| template.h | ||
| vax.h | ||
This directory contains C header files containing machine-specific definitions. Each file describes a particular machine. The emacs configuration script edits ../config.h to include the appropriate one of these files, and then each emacs source file includes config.h. template.h is a generic template for machine descriptions; it describes the parameters a machine file can specify.