mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-12 09:28:24 +00:00
(Fformat): When formatting an integer as float take precision into account.
This commit is contained in:
parent
b322c2058f
commit
023843b23b
@ -1,6 +1,7 @@
|
||||
2007-11-15 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* editfns.c (Fformat): Correctly format EMACS_INT values.
|
||||
When formatting an integer as float take precision into account.
|
||||
|
||||
2007-11-15 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
|
@ -3596,18 +3596,23 @@ usage: (format STRING &rest OBJECTS) */)
|
||||
/* 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
|
||||
be a double. */
|
||||
if (*format == 'e' || *format == 'f' || *format == 'g')
|
||||
args[n] = Ffloat (args[n]);
|
||||
{
|
||||
args[n] = Ffloat (args[n]);
|
||||
if (precision[n] > 0)
|
||||
thissize += precision[n];
|
||||
}
|
||||
else
|
||||
if (*format != 'd' && *format != 'o' && *format != 'x'
|
||||
&& *format != 'i' && *format != 'X' && *format != 'c')
|
||||
error ("Invalid format operation %%%c", *format);
|
||||
|
||||
thissize = 30;
|
||||
if (*format == 'c')
|
||||
{
|
||||
if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))
|
||||
|
Loading…
Reference in New Issue
Block a user