diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-05-04 06:16:54 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-05-04 06:16:54 -0700 |
commit | 959f4259bde59d89f257fdfec0334b421f1dd8ce (patch) | |
tree | da08423aa6cc3663f11b55c55317d31cfa5801e8 /txr.1 | |
parent | f33a3b23cbec3a636a67b070e3ed4245ed7fc155 (diff) | |
download | txr-959f4259bde59d89f257fdfec0334b421f1dd8ce.tar.gz txr-959f4259bde59d89f257fdfec0334b421f1dd8ce.tar.bz2 txr-959f4259bde59d89f257fdfec0334b421f1dd8ce.zip |
bugfix: tostringp not behaving right for floats.
The obj printer is ignoring the pretty flag when rendering
floating-point numbers, and just formatting them using
*print-flo-format*.
To address this issue, we introduce an additional
*pprint-flo-format* variable.
* lib.c (obj_print_impl): In the FLNUM case, use either
the value of *print-flo-format* or *pprint-flo-format* based
on the value of the pretty flag.
* stream.c (pprint_flo_format_s): New symbol variable.
(stream_init): Initialize pprint_flo_format_s with interned
symbol *pprint-flo-format* and register this as a special
variable.
* stream.c (pprint_flo_format_s): Declared.
* txr.1: Documented *pprint-flo-format*. Also put in a
note in the description of the various print functions
that the equivalences based on ~s and ~a only apply
to floats when the special variables have their original
values.
Diffstat (limited to 'txr.1')
-rw-r--r-- | txr.1 | 39 |
1 files changed, 32 insertions, 7 deletions
@@ -39351,7 +39351,7 @@ the .code /dev/null device on Unix, but does not involve the operating system. -.coNP Special variable @ *print-flo-format* +.coNP Special variables @ *print-flo-format* and @ *pprint-flo-format* .desc The .code *print-flo-format* @@ -39359,23 +39359,37 @@ variable determines the conversion format which is applied when a floating-point value is converted to decimal text by the functions .codn print , -.codn pprint , .codn prinl , +and +.codn tostring . + +The default value is +.codn "~s" . + +The related variable +.code *pprint-flo-format* +similarly determines the conversion format applied to floating-point +values by the functions +.codn pprint , .codn pprinl , -.code tostring and .codn tostringp . The default value is -.codn "~s" . +.codn "~a" . -The format string must specify the consumption of exactly one argument. +The format string in either variable must specify the consumption of +exactly one +.code format +argument. The conversion string may use embedded width and precision values: for instance, .code "~3,4f" is a valid value for -.codn *print-flo-format* . +.code *print-flo-format* +or +.codn *pprint-flo-format* . .coNP Special variable @ *print-flo-precision* .desc @@ -40011,7 +40025,18 @@ the equivalence is produced by using in format rather than .codn ~s . -Note: for characters, the print function behaves as follows: most control +.TP* Notes: +For floating-point numbers, the above description of the behavior in +terms of the format specifiers +.code ~s +and +.code ~a +only applies with respect to the default values of the variables +.code *print-flo-format* +and +.codn *pprint-flo-format* . + +For characters, the print function behaves as follows: most control characters in the Unicode .code C0 and |