зеркало из https://github.com/microsoft/git.git
Make git-stripspace a builtin
Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
34488e3c37
Коммит
7499c99615
6
Makefile
6
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
|
||||
|
|
|
@ -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
|
||||
|
|
3
git.c
3
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;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче