From 8c3845892363abf3fb5cf2fe61bc455554f50c68 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 9 Nov 2014 10:23:41 +0100 Subject: commit: make ignore_non_trailer() non static Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- commit.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'commit.c') diff --git a/commit.c b/commit.c index ae7f2b10f4..07d2290d0d 100644 --- a/commit.c +++ b/commit.c @@ -1660,3 +1660,49 @@ void print_commit_list(struct commit_list *list, printf(format, sha1_to_hex(list->item->object.sha1)); } } + +/* + * Inspect sb 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 + * "git commit -s --amend" on an existing commit that forgot to remove + * it. + * + * 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 boc = 0; + int bol = 0; + int in_old_conflicts_block = 0; + + while (bol < sb->len) { + char *next_line; + + if (!(next_line = memchr(sb->buf + bol, '\n', sb->len - bol))) + next_line = sb->buf + sb->len; + else + next_line++; + + if (sb->buf[bol] == comment_line_char || sb->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")) { + in_old_conflicts_block = 1; + if (!boc) + boc = bol; + } else if (in_old_conflicts_block && sb->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; + } + return boc ? sb->len - boc : 0; +} -- cgit v1.2.3 t'>
AgeCommit message (Expand)AuthorFilesLines
2005-11-21max-count in terms of intersectionLuben Tuikov1-2/+3
2005-11-21GIT: Fix compilation error in connect.cYOSHIFUJI Hideaki / 吉藤英明1-4/+5
2005-11-21Introduce $(ALL_PROGRAMS) for 'all:' and 'install:' to operate on.Andreas Ericsson1-13/+15
2005-11-21rename/copy score parsing updates.H. Peter Anvin1-12/+21
2005-11-21git-daemon not listening when compiled with -DNO_IPV6Paul Serice1-0/+6
2005-11-21git-repack: Properly abort in corrupt repositoryLinus Torvalds2-2/+2
2005-11-21Allow hierarchical section namesJohannes Schindelin2-9/+29
2005-11-21git-config-set: Properly terminate strings with '\0'Johannes Schindelin2-0/+2
2005-11-21git-proxy updates.Junio C Hamano1-7/+45
2005-11-21proxy-command support for git://Paul Collins1-1/+71
2005-11-21daemon: further tweaks.Junio C Hamano2-18/+14
2005-11-21git-daemon support for user-relative paths.Andreas Ericsson3-87/+72
2005-11-21tutorial: setting up a tree for subsystem maintainersJunio C Hamano1-1/+4
2005-11-21rename detection with -M100 means "exact renames only".Junio C Hamano2-0/+7
2005-11-21format-patch: fix two-argument special case, and make it easier to pick singl...Junio C Hamano1-2/+3
2005-11-21Fix hooks/update template.Junio C Hamano1-4/+3
2005-11-21Make sure heads/foo and tags/foo do not confuse things.Junio C Hamano2-6/+24
2005-11-20Fix "do not DWIM" patch to enter_repo"Junio C Hamano1-1/+1
2005-11-20git-reset.txt: Small fix + clarifications.Andreas Ericsson1-4/+15
2005-11-20Add Python version checks to the Makefile to automatically set WITH_OWN_SUBPR...Ryan Anderson1-10/+15
2005-11-20Fix sparse warningsTimo Hirvonen4-32/+31
2005-11-20git-config-set: support selecting values by non-matching regexJohannes Schindelin4-8/+70
2005-11-20merge-recursive: Replace 'except:'Fredrik Kuivinen1-2/+2
2005-11-20merge-one-file: use rmdir -pJunio C Hamano1-5/+1
2005-11-20gitk: Fix some bugs introduced by speedup changesPaul Mackerras1-11/+12