diff options
author | nulltoken <emeric.fermas@gmail.com> | 2010-12-10 16:30:06 +0100 |
---|---|---|
committer | nulltoken <emeric.fermas@gmail.com> | 2010-12-10 16:30:06 +0100 |
commit | 13710f1e86d9048b88361092a94b4648aeb864fd (patch) | |
tree | 488f4576ca32f58f235ac30e9299966def6e33f3 /src/commit.c | |
parent | 2cd6d6866e45939c7a60ff5f4cca52b02c8af498 (diff) | |
download | libgit2-13710f1e86d9048b88361092a94b4648aeb864fd.tar.gz |
Added timezone offset parsing and outputting.
Diffstat (limited to 'src/commit.c')
-rw-r--r-- | src/commit.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/commit.c b/src/commit.c index d39fc540f..d8a72a98a 100644 --- a/src/commit.c +++ b/src/commit.c @@ -159,6 +159,7 @@ int commit_parse_buffer(git_commit *commit, void *data, size_t len, unsigned int return error; commit->commit_time = commit->committer->time; + commit->commit_timezone_offset = commit->committer->timezone_offset; /* parse commit message */ while (buffer <= buffer_end && *buffer == '\n') @@ -249,6 +250,19 @@ time_t git_commit_time(git_commit *commit) return commit->commit_time; } +int git_commit_timezone_offset(git_commit *commit) +{ + assert(commit); + + if (commit->commit_timezone_offset) + return commit->commit_timezone_offset; + + if (!commit->object.in_memory) + git_commit__parse_full(commit); + + return commit->commit_timezone_offset; +} + unsigned int git_commit_parentcount(git_commit *commit) { assert(commit); @@ -269,24 +283,24 @@ void git_commit_set_tree(git_commit *commit, git_tree *tree) commit->tree = tree; } -void git_commit_set_author(git_commit *commit, const char *name, const char *email, time_t time) +void git_commit_set_author(git_commit *commit, const char *name, const char *email, time_t time, int offset) { assert(commit && name && email); commit->object.modified = 1; CHECK_FULL_PARSE(); git_person__free(commit->author); - commit->author = git_person__new(name, email, time); + commit->author = git_person__new(name, email, time, offset); } -void git_commit_set_committer(git_commit *commit, const char *name, const char *email, time_t time) +void git_commit_set_committer(git_commit *commit, const char *name, const char *email, time_t time, int offset) { assert(commit && name && email); commit->object.modified = 1; CHECK_FULL_PARSE(); git_person__free(commit->committer); - commit->committer = git_person__new(name, email, time); + commit->committer = git_person__new(name, email, time, offset); commit->commit_time = time; } |