diff options
author | Edward Thomson <ethomson@github.com> | 2016-07-05 15:51:01 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-05 15:51:01 -0400 |
commit | c18a2bc4e013c07c497e9811f1d796852773d348 (patch) | |
tree | a991aedcf10c6e58c01c3206cb2371fcefca0365 | |
parent | b57c176aa94275e539b6673a3fef0bdfaa227e00 (diff) | |
parent | f1dba144810b190bc7c621a346f537e1f646b75a (diff) | |
download | libgit2-c18a2bc4e013c07c497e9811f1d796852773d348.tar.gz |
Merge pull request #3851 from txdv/get-user-agent
Add get user agent functionality.
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | include/git2/common.h | 1 | ||||
-rw-r--r-- | src/settings.c | 8 | ||||
-rw-r--r-- | tests/core/useragent.c | 6 |
4 files changed, 19 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 44d868e7e..32925d485 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ v0.24 + 1 ### API additions +* You can now get the user-agent used by libgit2 using the + `GIT_OPT_GET_USER_AGENT` option with `git_libgit2_opts()`. + It is the counterpart to `GIT_OPT_SET_USER_AGENT`. + * `git_commit_create_buffer()` creates a commit and writes it into a user-provided buffer instead of writing it into the object db. diff --git a/include/git2/common.h b/include/git2/common.h index d7428d811..18abe46b3 100644 --- a/include/git2/common.h +++ b/include/git2/common.h @@ -158,6 +158,7 @@ typedef enum { GIT_OPT_SET_USER_AGENT, GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, GIT_OPT_SET_SSL_CIPHERS, + GIT_OPT_GET_USER_AGENT, } git_libgit2_opt_t; /** diff --git a/src/settings.c b/src/settings.c index 00a3ef04d..4a6e0f353 100644 --- a/src/settings.c +++ b/src/settings.c @@ -209,6 +209,14 @@ int git_libgit2_opts(int key, ...) #endif break; + case GIT_OPT_GET_USER_AGENT: + { + git_buf *out = va_arg(ap, git_buf *); + git_buf_sanitize(out); + error = git_buf_sets(out, git__user_agent); + } + break; + default: giterr_set(GITERR_INVALID, "invalid option key"); error = -1; diff --git a/tests/core/useragent.c b/tests/core/useragent.c index 6d06693a8..5c09223bb 100644 --- a/tests/core/useragent.c +++ b/tests/core/useragent.c @@ -4,8 +4,14 @@ void test_core_useragent__get(void) { const char *custom_name = "super duper git"; + git_buf buf = GIT_BUF_INIT; cl_assert_equal_p(NULL, git_libgit2__user_agent()); cl_git_pass(git_libgit2_opts(GIT_OPT_SET_USER_AGENT, custom_name)); cl_assert_equal_s(custom_name, git_libgit2__user_agent()); + + cl_git_pass(git_libgit2_opts(GIT_OPT_GET_USER_AGENT, &buf)); + cl_assert_equal_s(custom_name, buf.ptr); + + git_buf_free(&buf); } |