commit: make ignore_non_trailer take buf/len
Make ignore_non_trailer take a buf/len pair instead of struct strbuf. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
e4319562bc
commit
710714aaa8
22
commit.c
22
commit.c
@ -1649,7 +1649,7 @@ const char *find_commit_header(const char *msg, const char *key, size_t *out_len
|
||||
}
|
||||
|
||||
/*
|
||||
* Inspect sb and determine the true "end" of the log message, in
|
||||
* Inspect the given string and determine the true "end" of the log message, in
|
||||
* order to find where to put a new Signed-off-by: line. Ignored are
|
||||
* trailing comment lines and blank lines, and also the traditional
|
||||
* "Conflicts:" block that is not commented out, so that we can use
|
||||
@ -1659,37 +1659,37 @@ const char *find_commit_header(const char *msg, const char *key, size_t *out_len
|
||||
* Returns the number of bytes from the tail to ignore, to be fed as
|
||||
* the second parameter to append_signoff().
|
||||
*/
|
||||
int ignore_non_trailer(struct strbuf *sb)
|
||||
int ignore_non_trailer(const char *buf, size_t len)
|
||||
{
|
||||
int boc = 0;
|
||||
int bol = 0;
|
||||
int in_old_conflicts_block = 0;
|
||||
|
||||
while (bol < sb->len) {
|
||||
char *next_line;
|
||||
while (bol < len) {
|
||||
const char *next_line = memchr(buf + bol, '\n', len - bol);
|
||||
|
||||
if (!(next_line = memchr(sb->buf + bol, '\n', sb->len - bol)))
|
||||
next_line = sb->buf + sb->len;
|
||||
if (!next_line)
|
||||
next_line = buf + len;
|
||||
else
|
||||
next_line++;
|
||||
|
||||
if (sb->buf[bol] == comment_line_char || sb->buf[bol] == '\n') {
|
||||
if (buf[bol] == comment_line_char || buf[bol] == '\n') {
|
||||
/* is this the first of the run of comments? */
|
||||
if (!boc)
|
||||
boc = bol;
|
||||
/* otherwise, it is just continuing */
|
||||
} else if (starts_with(sb->buf + bol, "Conflicts:\n")) {
|
||||
} else if (starts_with(buf + bol, "Conflicts:\n")) {
|
||||
in_old_conflicts_block = 1;
|
||||
if (!boc)
|
||||
boc = bol;
|
||||
} else if (in_old_conflicts_block && sb->buf[bol] == '\t') {
|
||||
} else if (in_old_conflicts_block && buf[bol] == '\t') {
|
||||
; /* a pathname in the conflicts block */
|
||||
} else if (boc) {
|
||||
/* the previous was not trailing comment */
|
||||
boc = 0;
|
||||
in_old_conflicts_block = 0;
|
||||
}
|
||||
bol = next_line - sb->buf;
|
||||
bol = next_line - buf;
|
||||
}
|
||||
return boc ? sb->len - boc : 0;
|
||||
return boc ? len - boc : 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user