Commit fb96b28cd9f66998f38a56abb7398ea899c12512

Vicent Marti 2016-02-23T08:16:12

Merge pull request #3629 from ethomson/set_user_agent_doc git_libgit2_opts: minor documentation & usage fixes

diff --git a/include/git2/common.h b/include/git2/common.h
index ee230df..c260308 100644
--- a/include/git2/common.h
+++ b/include/git2/common.h
@@ -245,6 +245,12 @@ typedef enum {
  *
  *	* opts(GIT_OPT_SET_USER_AGENT, const char *user_agent)
  *
+ *		> Set the value of the User-Agent header.  This value will be
+ *		> appended to "git/1.0", for compatibility with other git clients.
+ *		>
+ *		> - `user_agent` is the value that will be delivered as the
+ *		>   User-Agent header on HTTP requests.
+ *
  * @param option Option key
  * @param ... value to set the option
  * @return 0 on success, <0 on failure
diff --git a/src/settings.c b/src/settings.c
index da99b59..d7341ab 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -181,6 +181,9 @@ int git_libgit2_opts(int key, ...)
 		}
 
 		break;
+	default:
+		giterr_set(GITERR_INVALID, "invalid option key");
+		error = -1;
 	}
 
 	va_end(ap);
diff --git a/tests/core/opts.c b/tests/core/opts.c
index 3173c64..72408cb 100644
--- a/tests/core/opts.c
+++ b/tests/core/opts.c
@@ -17,3 +17,9 @@ void test_core_opts__readwrite(void)
 
 	cl_assert(new_val == old_val);
 }
+
+void test_core_opts__invalid_option(void)
+{
+	cl_git_fail(git_libgit2_opts(-1, "foobar"));
+}
+