Commit c18a2bc4 by Edward Thomson Committed by GitHub

Merge pull request #3851 from txdv/get-user-agent

Add get user agent functionality.
parents b57c176a f1dba144
...@@ -12,6 +12,10 @@ v0.24 + 1 ...@@ -12,6 +12,10 @@ v0.24 + 1
### API additions ### 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 * `git_commit_create_buffer()` creates a commit and writes it into a
user-provided buffer instead of writing it into the object db. user-provided buffer instead of writing it into the object db.
......
...@@ -158,6 +158,7 @@ typedef enum { ...@@ -158,6 +158,7 @@ typedef enum {
GIT_OPT_SET_USER_AGENT, GIT_OPT_SET_USER_AGENT,
GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, GIT_OPT_ENABLE_STRICT_OBJECT_CREATION,
GIT_OPT_SET_SSL_CIPHERS, GIT_OPT_SET_SSL_CIPHERS,
GIT_OPT_GET_USER_AGENT,
} git_libgit2_opt_t; } git_libgit2_opt_t;
/** /**
......
...@@ -209,6 +209,14 @@ int git_libgit2_opts(int key, ...) ...@@ -209,6 +209,14 @@ int git_libgit2_opts(int key, ...)
#endif #endif
break; 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: default:
giterr_set(GITERR_INVALID, "invalid option key"); giterr_set(GITERR_INVALID, "invalid option key");
error = -1; error = -1;
......
...@@ -4,8 +4,14 @@ ...@@ -4,8 +4,14 @@
void test_core_useragent__get(void) void test_core_useragent__get(void)
{ {
const char *custom_name = "super duper git"; const char *custom_name = "super duper git";
git_buf buf = GIT_BUF_INIT;
cl_assert_equal_p(NULL, git_libgit2__user_agent()); cl_assert_equal_p(NULL, git_libgit2__user_agent());
cl_git_pass(git_libgit2_opts(GIT_OPT_SET_USER_AGENT, custom_name)); cl_git_pass(git_libgit2_opts(GIT_OPT_SET_USER_AGENT, custom_name));
cl_assert_equal_s(custom_name, git_libgit2__user_agent()); 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);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment