Signed-off-by: Lukas Sandström <lukass@xxxxxxxxxxxxxxxx> --- Makefile | 6 +++--- stripspace.c => builtin-stripspace.c | 16 +++++++++++----- builtin.h | 6 ++++-- git.c | 3 ++- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index e64d943..181255f 100644 --- a/Makefile +++ b/Makefile @@ -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 similarity index 76% rename from stripspace.c rename to builtin-stripspace.c index 65a6346..2ce1264 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; } diff --git a/builtin.h b/builtin.h index 979e0cd..c934d7a 100644 --- a/builtin.h +++ b/builtin.h @@ -55,6 +55,8 @@ extern int cmd_mailsplit(int argc, const extern int split_mbox(const char **mbox, const char *dir, int allow_bare, int nr_prec, int skip); extern int cmd_mailinfo(int argc, const char **argv, char **envp); -extern int mailinfo(FILE *in, FILE *out, int ks, char *encoding, - const char *msg, const char *patch); +extern int mailinfo(FILE *in, FILE *out, int ks, 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 diff --git a/git.c b/git.c index 1e216de..31196f5 100644 --- a/git.c +++ b/git.c @@ -181,7 +181,8 @@ static void handle_internal_command(int { "rev-parse", cmd_rev_parse }, { "write-tree", cmd_write_tree }, { "mailsplit", cmd_mailsplit }, - { "mailinfo", cmd_mailinfo } + { "mailinfo", cmd_mailinfo }, + { "stripspace", cmd_stripspace } }; int i; -- 1.4.0 - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html