X-Git-Url: https://git.octo.it/?p=git.git;a=blobdiff_plain;f=stripspace.c;h=65a6346452bb924d203724a9bfeb1c4ed98025e1;hp=96cd0a88f0ba0c06da81d4cdb83a482d82ecdd23;hb=HEAD;hpb=b30245c8e92ecaf8fb877189d7620a5a9a205120 diff --git a/stripspace.c b/stripspace.c index 96cd0a88..65a63464 100644 --- a/stripspace.c +++ b/stripspace.c @@ -6,13 +6,15 @@ * Remove empty lines from the beginning and end. * * Turn multiple consecutive empty lines into just one - * empty line. + * empty line. Return true if it is an incomplete line. */ -static void cleanup(char *line) +static int cleanup(char *line) { int len = strlen(line); - if (len > 1 && line[len-1] == '\n') { + if (len && line[len-1] == '\n') { + if (len == 1) + return 0; do { unsigned char c = line[len-2]; if (!isspace(c)) @@ -21,16 +23,19 @@ static void cleanup(char *line) len--; line[len] = 0; } while (len > 1); + return 0; } + return 1; } int main(int argc, char **argv) { int empties = -1; + int incomplete = 0; char line[1024]; while (fgets(line, sizeof(line), stdin)) { - cleanup(line); + incomplete = cleanup(line); /* Not just an empty line? */ if (line[0] != '\n') { @@ -44,5 +49,7 @@ int main(int argc, char **argv) continue; empties++; } + if (incomplete) + putchar('\n'); return 0; }