зеркало из https://github.com/microsoft/git.git
restrict the patch filtering
I have come across many emails that use long strings of '-'s as separators for ideas. This patch below limits the separator to only 3 '-', with the intent that long string of '-'s will stay in the commit msg and not in the patch file. Signed-off-by: Don Zickus <dzickus@redhat.com> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
87ab799234
Коммит
f0658cf210
|
@ -649,6 +649,39 @@ again:
|
||||||
return (fgets(line, sizeof(line), fin) != NULL);
|
return (fgets(line, sizeof(line), fin) != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int patchbreak(const char *line)
|
||||||
|
{
|
||||||
|
/* Beginning of a "diff -" header? */
|
||||||
|
if (!memcmp("diff -", line, 6))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/* CVS "Index: " line? */
|
||||||
|
if (!memcmp("Index: ", line, 7))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "--- <filename>" starts patches without headers
|
||||||
|
* "---<sp>*" is a manual separator
|
||||||
|
*/
|
||||||
|
if (!memcmp("---", line, 3)) {
|
||||||
|
line += 3;
|
||||||
|
/* space followed by a filename? */
|
||||||
|
if (line[0] == ' ' && !isspace(line[1]))
|
||||||
|
return 1;
|
||||||
|
/* Just whitespace? */
|
||||||
|
for (;;) {
|
||||||
|
unsigned char c = *line++;
|
||||||
|
if (c == '\n')
|
||||||
|
return 1;
|
||||||
|
if (!isspace(c))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int handle_commit_msg(char *line)
|
static int handle_commit_msg(char *line)
|
||||||
{
|
{
|
||||||
static int still_looking = 1;
|
static int still_looking = 1;
|
||||||
|
@ -670,9 +703,7 @@ static int handle_commit_msg(char *line)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!memcmp("diff -", line, 6) ||
|
if (patchbreak(line)) {
|
||||||
!memcmp("---", line, 3) ||
|
|
||||||
!memcmp("Index: ", line, 7)) {
|
|
||||||
fclose(cmitmsg);
|
fclose(cmitmsg);
|
||||||
cmitmsg = NULL;
|
cmitmsg = NULL;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче