adios (NULL, "internal error (FT_STRFW)");
case FT_NUM:
- n = snprintf(cp, ep - cp, "%d", value);
- if (n >= 0) cp += n;
+ n = snprintf(cp, ep - cp + 1, "%d", value);
+ if (n >= 0)
+ if (n >= ep - cp) {
+ cp = ep;
+ } else
+ cp += n;
break;
case FT_NUMF:
cpnumber (&cp, value, fmt->f_width, fmt->f_fill, ep - cp);