# HG changeset patch # User Andreas Schwab # Date 1195172296 0 # Node ID cc15c80eebe744ebcf70e6e9226d373d8c427a46 # Parent 8f73cff047f4c88995b9c13e7888ee8fbd58023b Always take precision into account. diff -r 8f73cff047f4 -r cc15c80eebe7 src/editfns.c --- a/src/editfns.c Fri Nov 16 00:10:45 2007 +0000 +++ b/src/editfns.c Fri Nov 16 00:18:16 2007 +0000 @@ -3596,8 +3596,6 @@ /* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */ else if (INTEGERP (args[n]) && *format != 's') { - thissize = 30; - /* The following loop assumes the Lisp type indicates the proper way to pass the argument. So make sure we have a flonum if the argument should @@ -3613,6 +3611,7 @@ && *format != 'i' && *format != 'X' && *format != 'c') error ("Invalid format operation %%%c", *format); + thissize = 30 + (precision[n] > 0 ? precision[n] : 0); if (*format == 'c') { if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))