42 lines
617 B
Text
42 lines
617 B
Text
|
|
#!/usr/bin/tcc -run
|
||
|
|
/* vim: set syn=c: */
|
||
|
|
|
||
|
|
#include <stdlib.h>
|
||
|
|
#include <stdio.h>
|
||
|
|
|
||
|
|
#define WORD_BREAK " ()<>[]\""
|
||
|
|
|
||
|
|
static unsigned int is_word_break(char c);
|
||
|
|
|
||
|
|
int
|
||
|
|
main() {
|
||
|
|
char buffer, prevbuffer;
|
||
|
|
size_t nread;
|
||
|
|
|
||
|
|
while ((nread = fread(&buffer, 1, sizeof buffer, stdin)) > 0) {
|
||
|
|
if (is_word_break(buffer))
|
||
|
|
buffer = '\n';
|
||
|
|
|
||
|
|
if (buffer != '\n' || prevbuffer != '\n')
|
||
|
|
fwrite(&buffer, 1, nread, stdout);
|
||
|
|
|
||
|
|
prevbuffer = buffer;
|
||
|
|
}
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
unsigned int
|
||
|
|
is_word_break(char c) {
|
||
|
|
static char *word_break = WORD_BREAK;
|
||
|
|
char *s = word_break;
|
||
|
|
|
||
|
|
while (*s) {
|
||
|
|
if (*s == c)
|
||
|
|
return 1;
|
||
|
|
s++;
|
||
|
|
}
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|