Commit e62f96dea5a46098cbca5a287f29ca811003bd68

Edward Thomson 2014-08-13T14:55:24

Allow NULL error message prefix when class=GITERR_OS

diff --git a/src/errors.c b/src/errors.c
index 393a787..7a26005 100644
--- a/src/errors.c
+++ b/src/errors.c
@@ -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;