- len += (blen = strlen(buf));
- if(!(p = realloc(p, len))) {
- eprint("fatal: could not realloc() %u bytes\n", len);
- return;
- }
- memcpy (p + len - blen, buf, blen);
- if (p[len - 1] == '\n')
- p[len - 1] = 0;
- else if (!feof(stdin))
- continue;
- if(max < len) {
+ len = strlen(buf);
+ if(buf[len-1] == '\n')
+ buf[--len] = '\0';
+ if(!(p = strdup(buf)))
+ eprint("fatal: could not strdup() %u bytes\n", len);
+ if(max < len || !maxname) {