- for(i = 0; items[i].name != NULL; ++i) { \
- strncat(buf, prefix, n); \
- strncat(buf, items[i].name, n); \
+ if (l >= n) \
+ return (int)l; \
+ n -= l; \
+ n += 2; \
+ for (i = 0; items[i].name != NULL; ++i) { \
+ if (n <= 2) \
+ break; \
+ strcat(buf, prefix); n -= 2; \
+ l = strlen(items[i].name); \
+ if (n <= l) \
+ break; \
+ strcat(buf, items[i].name); \
+ n -= l; \