debug.c (print_string): Summarize long strings.
authorMatt Birkholz <puck@birchwood-abbey.net>
Wed, 17 Jun 2015 01:56:30 +0000 (18:56 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Mon, 17 Aug 2015 23:52:57 +0000 (16:52 -0700)
src/microcode/debug.c

index 5e7a36d4ab9a27e88a8cee3d0c81dfbc2e76ee69..7c31f9a0953bb64e9b9485a5f58ed20209d672ac 100644 (file)
@@ -189,15 +189,16 @@ Print_Return (const char * String)
 static void
 print_string (outf_channel stream, SCHEME_OBJECT string)
 {
-  long length;
+  long length, long_enough;
   long i;
   char * next;
   char this;
 
   outf (stream, "\"");
   length = (STRING_LENGTH (string));
+  long_enough = (length < 100 ? length : 90);
   next = (STRING_POINTER (string));
-  for (i = 0; (i < length); i += 1)
+  for (i = 0; (i < long_enough); i += 1)
     {
       this = (*next++);
       switch (this)
@@ -225,6 +226,8 @@ print_string (outf_channel stream, SCHEME_OBJECT string)
          break;
        }
     }
+  if (length != long_enough)
+    outf (stream, "...[%ld total chars]", length);
   outf (stream, "\"");
 }