Commit 023843b2 authored by Andreas Schwab's avatar Andreas Schwab
Browse files

(Fformat): When formatting an integer as float take precision into account.

parent b322c205
2007-11-15 Andreas Schwab <schwab@suse.de> 2007-11-15 Andreas Schwab <schwab@suse.de>
   
* editfns.c (Fformat): Correctly format EMACS_INT values. * 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> 2007-11-15 Juanma Barranquero <lekktu@gmail.com>
   
......
...@@ -3596,18 +3596,23 @@ usage: (format STRING &rest OBJECTS) */) ...@@ -3596,18 +3596,23 @@ usage: (format STRING &rest OBJECTS) */)
/* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */ /* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */
else if (INTEGERP (args[n]) && *format != 's') else if (INTEGERP (args[n]) && *format != 's')
{ {
thissize = 30;
/* The following loop assumes the Lisp type indicates /* The following loop assumes the Lisp type indicates
the proper way to pass the argument. the proper way to pass the argument.
So make sure we have a flonum if the argument should So make sure we have a flonum if the argument should
be a double. */ be a double. */
if (*format == 'e' || *format == 'f' || *format == 'g') 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 else
if (*format != 'd' && *format != 'o' && *format != 'x' if (*format != 'd' && *format != 'o' && *format != 'x'
&& *format != 'i' && *format != 'X' && *format != 'c') && *format != 'i' && *format != 'X' && *format != 'c')
error ("Invalid format operation %%%c", *format); error ("Invalid format operation %%%c", *format);
thissize = 30;
if (*format == 'c') if (*format == 'c')
{ {
if (! SINGLE_BYTE_CHAR_P (XINT (args[n])) if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment