Commit f1dba144 by Andrius Bentkus

Add get user agent functionality.

parent d8243465
......@@ -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.
......
......@@ -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;
/**
......
......@@ -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;
......
......@@ -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);
}
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