aboutsummaryrefslogtreecommitdiff
path: root/commit.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-08-18 12:46:55 -0700
committerJunio C Hamano <gitster@pobox.com>2010-08-18 12:46:55 -0700
commit165dc789d5e201a06e0de5a984e4529ae62027fc (patch)
treeae0b12015f7fabfe34ca73829aa81d2b4522461f /commit.c
parent29e1353a7debe4e73cb5d6d2d5a0c4479e9eb768 (diff)
parentad98a58b3d7a151dca59364b72097b6b875a56f6 (diff)
downloadgit-165dc789d5e201a06e0de5a984e4529ae62027fc.tar.gz
git-165dc789d5e201a06e0de5a984e4529ae62027fc.tar.xz
Merge branch 'cc/find-commit-subject'
* cc/find-commit-subject: blame: use find_commit_subject() instead of custom code merge-recursive: use find_commit_subject() instead of custom code bisect: use find_commit_subject() instead of custom code revert: rename variables related to subject in get_message() revert: refactor code to find commit subject in find_commit_subject() revert: fix off by one read when searching the end of a commit subject
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/commit.c b/commit.c
index e9b075096..0094ec1c9 100644
--- a/commit.c
+++ b/commit.c
@@ -315,6 +315,25 @@ int parse_commit(struct commit *item)
return ret;
}
+int find_commit_subject(const char *commit_buffer, const char **subject)
+{
+ const char *eol;
+ const char *p = commit_buffer;
+
+ while (*p && (*p != '\n' || p[1] != '\n'))
+ p++;
+ if (*p) {
+ p += 2;
+ for (eol = p; *eol && *eol != '\n'; eol++)
+ ; /* do nothing */
+ } else
+ eol = p;
+
+ *subject = p;
+
+ return eol - p;
+}
+
struct commit_list *commit_list_insert(struct commit *item, struct commit_list **list_p)
{
struct commit_list *new_list = xmalloc(sizeof(struct commit_list));