Commit 49e180c862dc7c6d1f62a53bf8756e25b3417968

Edward Thomson 2022-02-15T22:55:48

errors: expose `git_error_set` The `git_error_set` function is useful for callers who implement backends and advanced callbacks. Expose it.

diff --git a/include/git2/errors.h b/include/git2/errors.h
index 5a5f8c5..62f3635 100644
--- a/include/git2/errors.h
+++ b/include/git2/errors.h
@@ -130,7 +130,8 @@ GIT_EXTERN(const git_error *) git_error_last(void);
 GIT_EXTERN(void) git_error_clear(void);
 
 /**
- * Set the error message string for this thread.
+ * Set the error message string for this thread, using `printf`-style
+ * formatting.
  *
  * This function is public so that custom ODB backends and the like can
  * relay an error message through libgit2.  Most regular users of libgit2
@@ -143,7 +144,20 @@ GIT_EXTERN(void) git_error_clear(void);
  *
  * @param error_class One of the `git_error_t` enum above describing the
  *                    general subsystem that is responsible for the error.
- * @param string The formatted error message to keep
+ * @param fmt The `printf`-style format string; subsequent arguments must
+ *            be the arguments for the format string.
+ */
+GIT_EXTERN(void) git_error_set(int error_class, const char *fmt, ...)
+                 GIT_FORMAT_PRINTF(2, 3);
+
+/**
+ * Set the error message string for this thread.  This function is like
+ * `git_error_set` but takes a static string instead of a `printf`-style
+ * format.
+ *
+ * @param error_class One of the `git_error_t` enum above describing the
+ *                    general subsystem that is responsible for the error.
+ * @param string The error message to keep
  * @return 0 on success or -1 on failure
  */
 GIT_EXTERN(int) git_error_set_str(int error_class, const char *string);
diff --git a/src/errors.h b/src/errors.h
index a2f60f7..772c7ba 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -11,9 +11,8 @@
 #include "common.h"
 
 /*
- * Set the error message for this thread, formatting as needed.
+ * `vprintf`-style formatting for the error message for this thread.
  */
-void git_error_set(int error_class, const char *fmt, ...) GIT_FORMAT_PRINTF(2, 3);
 void git_error_vset(int error_class, const char *fmt, va_list ap);
 
 /**