]> git.pond.sub.org Git - empserver/blobdiff - src/lib/commands/xdump.c
(xdprval): Fix for strings with characters printed as escapes. Print
[empserver] / src / lib / commands / xdump.c
index a29e0d50ea327b975f70071f2cc442d6ba6d05a1..f6340db42f21507aeed110ae43f79d7b60d1fce6 100644 (file)
@@ -303,17 +303,19 @@ xdprval(struct valstr *val, char *sep)
        pr("%s%g", sep, val->val_as.dbl);
        break;
     case NSC_STRING:
-       pr("%s\"", sep);
        s = val->val_as.str;
-       while (s && *s) {
-           for (e = s; *e != '"' && isprint(*e); ++e) ;
-           pr("%*s", (int)(e-s), s);
-           for (; *e && !isprint(*e); ++e) {
-               pr("\\%3o", *e);
+       if (s) {
+           pr("%s\"", sep);
+           while (*s) {
+               for (e = s; *e != '"' && isprint(*e); ++e) ;
+               pr("%.*s", (int)(e-s), s);
+               if (*e)
+                   pr("\\%03o", *e++);
+               s = e;
            }
-           s = e;
-       }
-       prnf("\"");
+           prnf("\"");
+       } else
+           pr("%snil", sep);
        break;
     default:
        CANT_HAPPEN("Bad VAL type");