diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/entab/entab.c | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/src/tools/entab/entab.c b/src/tools/entab/entab.c index 41082202b58..726c855a9ae 100644 --- a/src/tools/entab/entab.c +++ b/src/tools/entab/entab.c @@ -28,6 +28,24 @@ extern char *optarg; extern int optind; +static void +output_accumulated_spaces(int *prv_spaces, char **dst) +{ + for (; *prv_spaces > 0; *prv_spaces--) + *((*dst)++) = ' '; +} + + +static void +trim_trailing_whitespace(int *prv_spaces, char **dst, char *out_line) +{ + while (*dst > out_line && + (*((*dst) - 1) == ' ' || *((*dst) - 1) == '\t')) + (*dst)--; + *prv_spaces = 0; +} + + int main(int argc, char **argv) { @@ -168,19 +186,14 @@ main(int argc, char **argv) prv_spaces = 0; } else - /* output accumulated spaces */ - { - for (; prv_spaces > 0; prv_spaces--) - *(dst++) = ' '; - } + output_accumulated_spaces(&prv_spaces, &dst); } } /* Not a potential space/tab replacement */ else { /* output accumulated spaces */ - for (; prv_spaces > 0; prv_spaces--) - *(dst++) = ' '; + output_accumulated_spaces(&prv_spaces, &dst); /* This can only happen in a quote. */ if (*src == '\t') col_in_tab = 0; @@ -211,13 +224,7 @@ main(int argc, char **argv) clip_lines == TRUE && quote_char == ' ' && escaped == FALSE) - { - /* trim spaces starting from the end */ - while (dst > out_line && - (*(dst - 1) == ' ' || *(dst - 1) == '\t')) - dst--; - prv_spaces = 0; - } + trim_trailing_whitespace(&prv_spaces, &dst, out_line); *(dst++) = *src; } col_in_tab %= tab_size; @@ -225,15 +232,8 @@ main(int argc, char **argv) } /* for cases where the last line of file has no newline */ if (clip_lines == TRUE && escaped == FALSE) - { - while (dst > out_line && - (*(dst - 1) == ' ' || *(dst - 1) == '\t')) - dst--; - prv_spaces = 0; - } - /* output accumulated spaces */ - for (; prv_spaces > 0; prv_spaces--) - *(dst++) = ' '; + trim_trailing_whitespace(&prv_spaces, &dst, out_line); + output_accumulated_spaces(&prv_spaces, &dst); *dst = NUL; if (fputs(out_line, stdout) == EOF) |