aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChong Yidong2010-03-15 11:51:48 -0400
committerChong Yidong2010-03-15 11:51:48 -0400
commit35cd7cd68e92e4f364bde2875a02780f2caf6197 (patch)
tree1d29a87cd1a2d5b66bcb151129055af9c200b413 /src
parent3af45ae1a659c88e12db23c739ea4bd353674b91 (diff)
downloademacs-35cd7cd68e92e4f364bde2875a02780f2caf6197.tar.gz
emacs-35cd7cd68e92e4f364bde2875a02780f2caf6197.zip
Fix bug in `format' (Bug#5710).
* editfns.c (Fformat): Account for string precision when computing field width (Bug#5710).
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/editfns.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ce4fe1cd7b4..d8369bb9a20 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12010-03-15 Andreas Politz <politza@fh-trier.de> (tiny change)
2
3 * editfns.c (Fformat): Account for string precision when computing
4 field width (Bug#5710).
5
12010-03-05 Stefan Monnier <monnier@iro.umontreal.ca> 62010-03-05 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 Make it possible to C-g in a tight bytecode loop again (bug#5680). 8 Make it possible to C-g in a tight bytecode loop again (bug#5680).
diff --git a/src/editfns.c b/src/editfns.c
index 093f141bff2..9f30ea06411 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3782,7 +3782,11 @@ usage: (format STRING &rest OBJECTS) */)
3782 to be as large as is calculated here. Easy check for 3782 to be as large as is calculated here. Easy check for
3783 the case PRECISION = 0. */ 3783 the case PRECISION = 0. */
3784 thissize = precision[n] ? CONVERTED_BYTE_SIZE (multibyte, args[n]) : 0; 3784 thissize = precision[n] ? CONVERTED_BYTE_SIZE (multibyte, args[n]) : 0;
3785 /* The precision also constrains how much of the argument
3786 string will finally appear (Bug#5710). */
3785 actual_width = lisp_string_width (args[n], -1, NULL, NULL); 3787 actual_width = lisp_string_width (args[n], -1, NULL, NULL);
3788 if (precision[n] != -1)
3789 actual_width = min(actual_width,precision[n]);
3786 } 3790 }
3787 /* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */ 3791 /* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */
3788 else if (INTEGERP (args[n]) && *format != 's') 3792 else if (INTEGERP (args[n]) && *format != 's')