if (!c || isspace(c)) {
if (w < width || !space) {
const char *start = bol;
+ if (!c && text == start)
+ return w;
if (space)
start = space;
else
fwrite(start, text - start, 1, stdout);
if (!c)
return w;
- else if (c == '\t')
- w |= 0x07;
space = text;
+ if (c == '\t')
+ w |= 0x07;
+ else if (c == '\n') {
+ space++;
+ if (*space == '\n') {
+ putchar('\n');
+ goto new_line;
+ }
+ else if (!isalnum(*space))
+ goto new_line;
+ else
+ putchar(' ');
+ }
w++;
text++;
}
else {
+new_line:
putchar('\n');
text = bol = space + isspace(*space);
space = NULL;