From 7499c996156ea99702fe13e203b97ae60d8868ad Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lukas=20Sandstr=C3=B6m?= Date: Tue, 13 Jun 2006 22:21:53 +0200 Subject: [PATCH] Make git-stripspace a builtin MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Lukas Sandström Signed-off-by: Junio C Hamano --- Makefile | 6 +++--- stripspace.c => builtin-stripspace.c | 16 +++++++++++----- builtin.h | 3 +++ git.c | 3 ++- 4 files changed, 19 insertions(+), 9 deletions(-) rename stripspace.c => builtin-stripspace.c (75%) diff --git a/Makefile b/Makefile index 18bd94074c..2e093af6ae 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 75% rename from stripspace.c rename to builtin-stripspace.c index 65a6346452..2ce1264f7b 100644 --- a/stripspace.c +++ b/builtin-stripspace.c @@ -1,6 +1,7 @@ #include #include #include +#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 46671e6eae..e50379d45a 100644 --- a/builtin.h +++ b/builtin.h @@ -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 diff --git a/git.c b/git.c index 89d4cd2e34..f00a07272a 100644 --- a/git.c +++ b/git.c @@ -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; -- 2.11.4.GIT