#include <yac/dectai.h>
#include <yac/iter.h>
+static const size_t maxStrLen = 40;
+
static const char hexdigits[] = "0123456789ABCDEF";
static char *
}
fputs(")\n", stdout);
break;
- case YACItemBin:
- hex = HexEnc(atom->val.buf, atom->len);
- fprintf(stdout, "%zu:%s\n", atom->len, hex);
+ case YACItemBin: {
+ const size_t l = (atom->len > maxStrLen) ? maxStrLen : atom->len;
+ hex = HexEnc(atom->val.buf, l);
+ fprintf(
+ stdout, "%zu:%s%s\n", atom->len, hex, (atom->len > maxStrLen) ? "..." : "");
free(hex);
break;
- case YACItemStr:
- hex = strndup((const char *)atom->val.buf, atom->len);
- fprintf(stdout, "\"%s\"\n", hex);
+ }
+ case YACItemStr: {
+ const size_t l = (atom->len > maxStrLen) ? maxStrLen : atom->len;
+ hex = strndup((const char *)atom->val.buf, l);
+ fprintf(stdout, "\"%s%s\"\n", hex, (atom->len > maxStrLen) ? "..." : "");
free(hex);
break;
+ }
case YACItemRaw:
hex = HexEnc(atom->val.buf, atom->len);
fprintf(stdout, "(t=0x%X l=%zu v=%s)\n", atom->tag, atom->len, hex);