rendered paste bodygit diff
diff --git a/builtin-stripspace.c b/builtin-stripspace.c
index 62bd4b5..85f9bb2 100644
--- a/builtin-stripspace.c
+++ b/builtin-stripspace.c
@@ -9,21 +9,22 @@
static int cleanup(char *line)
{
int len = strlen(line);
+ int incomplete = 0;
if (len && line[len-1] == '\n') {
- if (len == 1)
- return 0;
- do {
- unsigned char c = line[len-2];
- if (!isspace(c))
- break;
- line[len-2] = '\n';
- len--;
- line[len] = 0;
- } while (len > 1);
- return 0;
+ len--;
+ incomplete = 1;
+ }
+ while (len) {
+ unsigned char c = line[len-1];
+ if (!isspace(c))
+ break;
+ len--;
}
- return 1;
+ if (!incomplete)
+ line[len++] = '\n';
+ line[len] = 0;
+ return incomplete;
}
static void stripspace(FILE *in, FILE *out)