about summary refs log tree commit diff
path: root/third_party/git/usage.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/usage.c')
-rw-r--r--third_party/git/usage.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/third_party/git/usage.c b/third_party/git/usage.c
index 58fb5fff5f24..2fdb20086bd6 100644
--- a/third_party/git/usage.c
+++ b/third_party/git/usage.c
@@ -9,26 +9,14 @@
 void vreportf(const char *prefix, const char *err, va_list params)
 {
 	char msg[4096];
-	char *p, *pend = msg + sizeof(msg);
-	size_t prefix_len = strlen(prefix);
+	char *p;
 
-	if (sizeof(msg) <= prefix_len) {
-		fprintf(stderr, "BUG!!! too long a prefix '%s'\n", prefix);
-		abort();
-	}
-	memcpy(msg, prefix, prefix_len);
-	p = msg + prefix_len;
-	if (vsnprintf(p, pend - p, err, params) < 0)
-		*p = '\0'; /* vsnprintf() failed, clip at prefix */
-
-	for (; p != pend - 1 && *p; p++) {
+	vsnprintf(msg, sizeof(msg), err, params);
+	for (p = msg; *p; p++) {
 		if (iscntrl(*p) && *p != '\t' && *p != '\n')
 			*p = '?';
 	}
-
-	*(p++) = '\n'; /* we no longer need a NUL */
-	fflush(stderr);
-	write_in_full(2, msg, p - msg);
+	fprintf(stderr, "%s%s\n", prefix, msg);
 }
 
 static NORETURN void usage_builtin(const char *err, va_list params)