diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | stream.c | 2 | ||||
-rw-r--r-- | txr.1 | 2 |
3 files changed, 12 insertions, 2 deletions
@@ -1,5 +1,15 @@ 2012-09-17 Kaz Kylheku <kaz@kylheku.com> + * stream.c (vformat): Slight change in ~s directive. For a floating + point integer, .0 is now always shown if the precision is not given, + or if it is given and nonzero. Previous behavior of ~s was add .0 only + when a precision is not specified. The new behavior is more + sensible and consistent with documentation. + + * txr.1: Typo fixed in related documentation. + +2012-09-17 Kaz Kylheku <kaz@kylheku.com> + * arith.c (comp_trunc, logcomp): logcomp renamed to lognot, consistent with Common Lisp. @@ -1272,7 +1272,7 @@ val vformat(val stream, val fmtstr, va_list vl) *exp = 0; } - if (ch == 's' && !precision_p && !dec && !exp) + if (ch == 's' && (!precision_p || precision > 0) && !dec && !exp) strcat(num_buf, ".0"); } @@ -9415,7 +9415,7 @@ semantics. The precision field is treated very similarly to the ~a format directive, except that non-exponentiated floating point numbers that would be mistaken for integers include a trailing ".0" for the sake read-print consistency. Objects truncated by precision may not have read-print -consitency. For instance, if a string object is truncated, it loses its +consistency. For instance, if a string object is truncated, it loses its trailing closing quote, so that the resulting representation is no longer a properly formed string object. |