diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2021-11-18 12:19:32 -0500 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2021-11-18 12:19:32 -0500 |
commit | b2c40314c7c8ae4b645f776f04dfe06983ad8ba3 (patch) | |
tree | 3b2eb8b15d47778cdae4ad11bfe3682f38b26c09 | |
parent | 1604be06685312f659675f3bc17b287108e00af1 (diff) | |
download | libgit2-b2c40314c7c8ae4b645f776f04dfe06983ad8ba3.tar.gz |
date: make it a proper `git_date` utility class
Instead of `git__date`, just use `git_date`.
-rw-r--r-- | src/date.c | 4 | ||||
-rw-r--r-- | src/date.h | 33 | ||||
-rw-r--r-- | src/email.c | 3 | ||||
-rw-r--r-- | src/revparse.c | 3 | ||||
-rw-r--r-- | src/util.h | 20 | ||||
-rw-r--r-- | tests/date/date.c | 6 | ||||
-rw-r--r-- | tests/date/rfc2822.c | 10 |
7 files changed, 47 insertions, 32 deletions
diff --git a/src/date.c b/src/date.c index 2297ee66c..f7498e77f 100644 --- a/src/date.c +++ b/src/date.c @@ -857,7 +857,7 @@ static git_time_t approxidate_str(const char *date, return update_tm(&tm, &now, 0); } -int git__date_parse(git_time_t *out, const char *date) +int git_date_parse(git_time_t *out, const char *date) { time_t time_sec; git_time_t timestamp; @@ -875,7 +875,7 @@ int git__date_parse(git_time_t *out, const char *date) return error_ret; } -int git__date_rfc2822_fmt(char *out, size_t len, const git_time *date) +int git_date_rfc2822_fmt(char *out, size_t len, const git_time *date) { int written; struct tm gmt; diff --git a/src/date.h b/src/date.h new file mode 100644 index 000000000..133f20b37 --- /dev/null +++ b/src/date.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) the libgit2 contributors. All rights reserved. + * + * This file is part of libgit2, distributed under the GNU GPL v2 with + * a Linking Exception. For full terms see the included COPYING file. + */ +#ifndef INCLUDE_date_h__ +#define INCLUDE_date_h__ + +#include "util.h" +#include "str.h" + +/* + * Parse a string into a value as a git_time_t. + * + * Sample valid input: + * - "yesterday" + * - "July 17, 2003" + * - "2003-7-17 08:23" + */ +extern int git_date_parse(git_time_t *out, const char *date); + +/* + * Format a git_time as a RFC2822 string + * + * @param out buffer to store formatted date; a '\\0' terminator will automatically be added. + * @param len size of the buffer; should be atleast `GIT_DATE_RFC2822_SZ` in size; + * @param date the date to be formatted + * @return 0 if successful; -1 on error + */ +extern int git_date_rfc2822_fmt(char *out, size_t len, const git_time *date); + +#endif diff --git a/src/email.c b/src/email.c index 3459c0540..66ed2dd9f 100644 --- a/src/email.c +++ b/src/email.c @@ -12,6 +12,7 @@ #include "diff_generate.h" #include "diff_stats.h" #include "patch.h" +#include "date.h" #include "git2/email.h" #include "git2/patch.h" @@ -123,7 +124,7 @@ static int append_header( if ((error = git_oid_fmt(id, commit_id)) < 0 || (error = git_str_printf(out, "From %.*s %s\n", GIT_OID_HEXSZ, id, EMAIL_TIMESTAMP)) < 0 || (error = git_str_printf(out, "From: %s <%s>\n", author->name, author->email)) < 0 || - (error = git__date_rfc2822_fmt(date, sizeof(date), &author->when)) < 0 || + (error = git_date_rfc2822_fmt(date, sizeof(date), &author->when)) < 0 || (error = git_str_printf(out, "Date: %s\n", date)) < 0 || (error = append_subject(out, patch_idx, patch_count, summary, opts)) < 0) return error; diff --git a/src/revparse.c b/src/revparse.c index cf39936a5..52dd0720b 100644 --- a/src/revparse.c +++ b/src/revparse.c @@ -11,6 +11,7 @@ #include "tree.h" #include "refdb.h" #include "regexp.h" +#include "date.h" #include "git2.h" @@ -344,7 +345,7 @@ static int handle_at_syntax(git_object **out, git_reference **ref, const char *s goto cleanup; } - if (git__date_parse(×tamp, curly_braces_content) < 0) + if (git_date_parse(×tamp, curly_braces_content) < 0) goto cleanup; error = retrieve_revobject_from_reflog(out, ref, repo, git_str_cstr(&identifier), (size_t)timestamp); diff --git a/src/util.h b/src/util.h index 30cdd0ddf..3d6ee1207 100644 --- a/src/util.h +++ b/src/util.h @@ -295,26 +295,6 @@ GIT_INLINE(bool) git__isxdigit(int c) extern int git__parse_bool(int *out, const char *value); /* - * Parse a string into a value as a git_time_t. - * - * Sample valid input: - * - "yesterday" - * - "July 17, 2003" - * - "2003-7-17 08:23" - */ -extern int git__date_parse(git_time_t *out, const char *date); - -/* - * Format a git_time as a RFC2822 string - * - * @param out buffer to store formatted date; a '\\0' terminator will automatically be added. - * @param len size of the buffer; should be atleast `GIT_DATE_RFC2822_SZ` in size; - * @param date the date to be formatted - * @return 0 if successful; -1 on error - */ -extern int git__date_rfc2822_fmt(char *out, size_t len, const git_time *date); - -/* * Unescapes a string in-place. * * Edge cases behavior: diff --git a/tests/date/date.c b/tests/date/date.c index 88881d1e1..f70b4fea9 100644 --- a/tests/date/date.c +++ b/tests/date/date.c @@ -1,6 +1,6 @@ #include "clar_libgit2.h" -#include "util.h" +#include "date.h" void test_date_date__overflow(void) { @@ -8,8 +8,8 @@ void test_date_date__overflow(void) git_time_t d2038, d2039; /* This is expected to fail on a 32-bit machine. */ - cl_git_pass(git__date_parse(&d2038, "2038-1-1")); - cl_git_pass(git__date_parse(&d2039, "2039-1-1")); + cl_git_pass(git_date_parse(&d2038, "2038-1-1")); + cl_git_pass(git_date_parse(&d2039, "2039-1-1")); cl_assert(d2038 < d2039); #endif } diff --git a/tests/date/rfc2822.c b/tests/date/rfc2822.c index d98c1f05e..c94c8403f 100644 --- a/tests/date/rfc2822.c +++ b/tests/date/rfc2822.c @@ -1,13 +1,13 @@ #include "clar_libgit2.h" -#include "util.h" +#include "date.h" void test_date_rfc2822__format_rfc2822_no_offset(void) { git_time t = {1397031663, 0}; char buf[GIT_DATE_RFC2822_SZ]; - cl_git_pass(git__date_rfc2822_fmt(buf, sizeof(buf), &t)); + cl_git_pass(git_date_rfc2822_fmt(buf, sizeof(buf), &t)); cl_assert(strcmp(buf, "Wed, 9 Apr 2014 08:21:03 +0000") == 0); } @@ -16,7 +16,7 @@ void test_date_rfc2822__format_rfc2822_positive_offset(void) git_time t = {1397031663, 120}; char buf[GIT_DATE_RFC2822_SZ]; - cl_git_pass(git__date_rfc2822_fmt(buf, sizeof(buf), &t)); + cl_git_pass(git_date_rfc2822_fmt(buf, sizeof(buf), &t)); cl_assert(strcmp(buf, "Wed, 9 Apr 2014 10:21:03 +0200") == 0); } @@ -25,7 +25,7 @@ void test_date_rfc2822__format_rfc2822_negative_offset(void) git_time t = {1397031663, -120}; char buf[GIT_DATE_RFC2822_SZ]; - cl_git_pass(git__date_rfc2822_fmt(buf, sizeof(buf), &t)); + cl_git_pass(git_date_rfc2822_fmt(buf, sizeof(buf), &t)); cl_assert(strcmp(buf, "Wed, 9 Apr 2014 06:21:03 -0200") == 0); } @@ -35,6 +35,6 @@ void test_date_rfc2822__format_rfc2822_buffer_too_small(void) git_time t = {1397031663 + 86400, 0}; char buf[GIT_DATE_RFC2822_SZ-1]; - cl_git_fail(git__date_rfc2822_fmt(buf, sizeof(buf), &t)); + cl_git_fail(git_date_rfc2822_fmt(buf, sizeof(buf), &t)); } |