diff options
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | builtin-stripspace.c (renamed from stripspace.c) | 16 | ||||
-rw-r--r-- | builtin.h | 3 | ||||
-rw-r--r-- | git.c | 3 |
4 files changed, 19 insertions, 9 deletions
@@ -144,7 +144,7 @@ SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \ # The ones that do not have to link with lcrypto, lz nor xdiff. SIMPLE_PROGRAMS = \ - git-stripspace$X git-daemon$X + git-daemon$X # ... and all the rest that could be moved out of bindir to gitexecdir PROGRAMS = \ @@ -165,7 +165,7 @@ PROGRAMS = \ BUILT_INS = git-log$X git-whatchanged$X git-show$X \ git-count-objects$X git-diff$X git-push$X git-mailsplit$X \ - git-grep$X git-add$X git-rm$X git-rev-list$X \ + git-grep$X git-add$X git-rm$X git-rev-list$X git-stripspace$X \ git-check-ref-format$X git-rev-parse$X git-mailinfo$X \ git-init-db$X git-tar-tree$X git-upload-tar$X git-format-patch$X \ git-ls-files$X git-ls-tree$X git-get-tar-commit-id$X \ @@ -226,7 +226,7 @@ BUILTIN_OBJS = \ builtin-read-tree.o builtin-commit-tree.o builtin-mailinfo.o \ builtin-apply.o builtin-show-branch.o builtin-diff-files.o \ builtin-diff-index.o builtin-diff-stages.o builtin-diff-tree.o \ - builtin-cat-file.o builtin-mailsplit.o + builtin-cat-file.o builtin-mailsplit.o builtin-stripspace.o GITLIBS = $(LIB_FILE) $(XDIFF_LIB) LIBS = $(GITLIBS) -lz diff --git a/stripspace.c b/builtin-stripspace.c index 65a6346452..2ce1264f7b 100644 --- a/stripspace.c +++ b/builtin-stripspace.c @@ -1,6 +1,7 @@ #include <stdio.h> #include <string.h> #include <ctype.h> +#include "builtin.h" /* * Remove empty lines from the beginning and end. @@ -28,21 +29,21 @@ static int cleanup(char *line) return 1; } -int main(int argc, char **argv) +void stripspace(FILE *in, FILE *out) { int empties = -1; int incomplete = 0; char line[1024]; - while (fgets(line, sizeof(line), stdin)) { + while (fgets(line, sizeof(line), in)) { incomplete = cleanup(line); /* Not just an empty line? */ if (line[0] != '\n') { if (empties > 0) - putchar('\n'); + fputc('\n', out); empties = 0; - fputs(line, stdout); + fputs(line, out); continue; } if (empties < 0) @@ -50,6 +51,11 @@ int main(int argc, char **argv) empties++; } if (incomplete) - putchar('\n'); + fputc('\n', out); +} + +int cmd_stripspace(int argc, const char **argv, char **envp) +{ + stripspace(stdin, stdout); return 0; } @@ -56,4 +56,7 @@ extern int split_mbox(const char **mbox, const char *dir, int allow_bare, int nr extern int cmd_mailinfo(int argc, const char **argv, char **envp); extern int mailinfo(FILE *in, FILE *out, int ks, const char *encoding, const char *msg, const char *patch); + +extern int cmd_stripspace(int argc, const char **argv, char **envp); +extern void stripspace(FILE *in, FILE *out); #endif @@ -181,7 +181,8 @@ static void handle_internal_command(int argc, const char **argv, char **envp) { "rev-parse", cmd_rev_parse }, { "write-tree", cmd_write_tree }, { "mailsplit", cmd_mailsplit }, - { "mailinfo", cmd_mailinfo } + { "mailinfo", cmd_mailinfo }, + { "stripspace", cmd_stripspace } }; int i; |