Mercurial > hg > xemacs-beta
diff src/print.c @ 5243:808131ba4a57
Print symbols with ratio-like names and the associated ratios distinctly.
src/ChangeLog addition:
2010-08-15 Aidan Kehoe <kehoea@parhasard.net>
* print.c (print_symbol):
Escape any symbols that look like ratios, in the same way we do
symbols that look like floats or integers. Prevents confusion in
the Lisp reader.
* lread.c (isratio_string): Make this available even on builds
without HAVE_RATIO, so we can print symbols that look like ratios
with the appropriate escapes.
* lisp.h:
Make isratio_string available even if HAVE_RATIO is not defined.
tests/ChangeLog addition:
2010-08-15 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
Test that symbols with names that look like ratios are printed
distinctly from the equivalent ratios.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 15 Aug 2010 13:29:10 +0100 |
parents | 71ee43b8a74d |
children | 2474dce7304e 308d34e9f07d |
line wrap: on
line diff
--- a/src/print.c Sat Jul 24 17:38:35 2010 +0100 +++ b/src/print.c Sun Aug 15 13:29:10 2010 +0100 @@ -2027,7 +2027,7 @@ for (; confusing < size; confusing++) { - if (!isdigit (data[confusing])) + if (!isdigit (data[confusing]) && '/' != data[confusing]) { confusing = 0; break; @@ -2039,7 +2039,8 @@ /* #### Ugh, this is needlessly complex and slow for what we need here. It might be a good idea to copy equivalent code from FSF. --hniksic */ - confusing = isfloat_string ((char *) data); + confusing = isfloat_string ((char *) data) + || isratio_string ((char *) data); if (confusing) write_ascstring (printcharfun, "\\"); }