Index: generic/nsf.c =================================================================== diff -u -r369069ef5cf2f2c76fdbe78d865618f136e8b341 -r8ea1d85cc1e213c8a8f661d6aeb58690c6f7a6a0 --- generic/nsf.c (.../nsf.c) (revision 369069ef5cf2f2c76fdbe78d865618f136e8b341) +++ generic/nsf.c (.../nsf.c) (revision 8ea1d85cc1e213c8a8f661d6aeb58690c6f7a6a0) @@ -26814,8 +26814,7 @@ NsfDebugGetDict(Tcl_Interp *interp, Tcl_Obj *obj) { Tcl_Obj *resultObj; const char *typeString; - #define BUFSIZE 24 - + nonnull_assert(interp != NULL); nonnull_assert(obj != NULL); @@ -26831,15 +26830,17 @@ Tcl_ListObjAppendElement(interp, resultObj, Tcl_NewStringObj("hex", -1)); if (obj->bytes != NULL) { +#define CAPPEDSIZE 10u + const char trailerStr[] = "..."; +#define BUFSIZE (CAPPEDSIZE*2u + sizeof(trailerStr)) int i; char buffer[BUFSIZE]; - for (i = 0; i < 10 && i < obj->length; i++) { + for (i = 0; i < CAPPEDSIZE && i < obj->length; i++) { snprintf(buffer + i*2, BUFSIZE, "%.2x", (unsigned)(*((obj->bytes)+i) & 0xff)); } - if (obj->length > 10) { - strncat(buffer, "...", 4u); - buffer[BUFSIZE-1] = '\0'; + if (obj->length > CAPPEDSIZE) { + strncat(buffer, trailerStr, (BUFSIZE-CAPPEDSIZE*2u)); } Tcl_ListObjAppendElement(interp, resultObj, Tcl_NewStringObj(buffer, -1));