aboutsummaryrefslogtreecommitdiff
path: root/builtin/revert.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 /builtin/revert.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 'builtin/revert.c')
-rw-r--r--builtin/revert.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/builtin/revert.c b/builtin/revert.c
index 8b9d829a7..9215e6650 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c
@@ -102,9 +102,9 @@ struct commit_message {
static int get_message(const char *raw_message, struct commit_message *out)
{
const char *encoding;
- const char *p, *abbrev, *eol;
+ const char *abbrev, *subject;
+ int abbrev_len, subject_len;
char *q;
- int abbrev_len, oneline_len;
if (!raw_message)
return -1;
@@ -125,27 +125,17 @@ static int get_message(const char *raw_message, struct commit_message *out)
abbrev = find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV);
abbrev_len = strlen(abbrev);
- /* Find beginning and end of commit subject. */
- p = out->message;
- while (*p && (*p != '\n' || p[1] != '\n'))
- p++;
- if (*p) {
- p += 2;
- for (eol = p + 1; *eol && *eol != '\n'; eol++)
- ; /* do nothing */
- } else
- eol = p;
- oneline_len = eol - p;
+ subject_len = find_commit_subject(out->message, &subject);
out->parent_label = xmalloc(strlen("parent of ") + abbrev_len +
- strlen("... ") + oneline_len + 1);
+ strlen("... ") + subject_len + 1);
q = out->parent_label;
q = mempcpy(q, "parent of ", strlen("parent of "));
out->label = q;
q = mempcpy(q, abbrev, abbrev_len);
q = mempcpy(q, "... ", strlen("... "));
out->subject = q;
- q = mempcpy(q, p, oneline_len);
+ q = mempcpy(q, subject, subject_len);
*q = '\0';
return 0;
}