]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug in `format' (Bug#5710).
authorChong Yidong <cyd@stupidchicken.com>
Sat, 13 Mar 2010 19:54:29 +0000 (14:54 -0500)
committerChong Yidong <cyd@stupidchicken.com>
Sat, 13 Mar 2010 19:54:29 +0000 (14:54 -0500)
* editfns.c (Fformat): Account for string precision when computing
field width (Bug#5710).

src/ChangeLog
src/editfns.c

index 37a4cdb1b1072a4814381f89f94a4e16cec265da..da4e336b0aec1c88e4646480c3f82325542f5750 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-13  Andreas Politz  <politza@fh-trier.de>  (tiny change)
+
+       * editfns.c (Fformat): Account for string precision when computing
+       field width (Bug#5710).
+
 2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 
        * xfns.c (Fx_create_frame): Set default to Qright.
index 093f141bff21d1ff35a41fc8a02d9ff98f7f40db..9f30ea064112dce661400b18b070b57bd39a7c14 100644 (file)
@@ -3782,7 +3782,11 @@ usage: (format STRING &rest OBJECTS)  */)
               to be as large as is calculated here.  Easy check for
               the case PRECISION = 0. */
            thissize = precision[n] ? CONVERTED_BYTE_SIZE (multibyte, args[n]) : 0;
+           /* The precision also constrains how much of the argument
+              string will finally appear (Bug#5710). */
            actual_width = lisp_string_width (args[n], -1, NULL, NULL);
+           if (precision[n] != -1)
+             actual_width = min(actual_width,precision[n]);
          }
        /* Would get MPV otherwise, since Lisp_Int's `point' to low memory.  */
        else if (INTEGERP (args[n]) && *format != 's')