From 96354eef231e0c4adcb9628bfc3b3d4a8bd74da0572ce034ee04509e1cbca088 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 9 Oct 2024 21:02:18 +0300 Subject: [PATCH] Strip long strings --- cyac/cmd/print.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/cyac/cmd/print.c b/cyac/cmd/print.c index 7248dd7..1a8b607 100644 --- a/cyac/cmd/print.c +++ b/cyac/cmd/print.c @@ -29,6 +29,8 @@ #include #include +static const size_t maxStrLen = 40; + static const char hexdigits[] = "0123456789ABCDEF"; static char * @@ -193,16 +195,21 @@ myCb( } 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); -- 2.50.0