diff options
Diffstat (limited to 'commit.c')
| -rw-r--r-- | commit.c | 25 | 
1 files changed, 12 insertions, 13 deletions
| @@ -415,8 +415,7 @@ int find_commit_subject(const char *commit_buffer, const char **subject)  		p++;  	if (*p) {  		p = skip_blank_lines(p + 2); -		for (eol = p; *eol && *eol != '\n'; eol++) -			; /* do nothing */ +		eol = strchrnul(p, '\n');  	} else  		eol = p; @@ -1649,7 +1648,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 +1658,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;  } | 
