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, "\\");
   }