]> git.proxmox.com Git - libgit2.git/blobdiff - src/errors.c
push: remove own copy of callbacks
[libgit2.git] / src / errors.c
index 393a7875f8bca268623da5f8f487072a4437dc57..7a2600586995a2774a0a1b418c5c43e393b41553 100644 (file)
@@ -45,15 +45,19 @@ void giterr_set(int error_class, const char *string, ...)
 #endif
        int error_code = (error_class == GITERR_OS) ? errno : 0;
 
-       va_start(arglist, string);
-       git_buf_vprintf(&buf, string, arglist);
-       va_end(arglist);
+       if (string) {
+               va_start(arglist, string);
+               git_buf_vprintf(&buf, string, arglist);
+               va_end(arglist);
+
+               if (error_class == GITERR_OS)
+                       git_buf_PUTS(&buf, ": ");
+       }
 
        if (error_class == GITERR_OS) {
 #ifdef GIT_WIN32
                char * win32_error = git_win32_get_error_message(win32_error_code);
                if (win32_error) {
-                       git_buf_PUTS(&buf, ": ");
                        git_buf_puts(&buf, win32_error);
                        git__free(win32_error);
 
@@ -61,10 +65,8 @@ void giterr_set(int error_class, const char *string, ...)
                }
                else
 #endif
-               if (error_code) {
-                       git_buf_PUTS(&buf, ": ");
+               if (error_code)
                        git_buf_puts(&buf, strerror(error_code));
-               }
 
                if (error_code)
                        errno = 0;