Skip to content

Commit 1886672

Browse files
dschoGit for Windows Build Agent
authored and
Git for Windows Build Agent
committed
Merge pull request #2373 from dscho/fix-t5516-flakiness
Fix t5516 flakiness in MSVC builds
2 parents 2863a8e + ac9c28f commit 1886672

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

usage.c

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,26 @@
99
void vreportf(const char *prefix, const char *err, va_list params)
1010
{
1111
char msg[4096];
12-
char *p;
12+
char *p, *pend = msg + sizeof(msg);
13+
size_t prefix_len = strlen(prefix);
1314

14-
vsnprintf(msg, sizeof(msg), err, params);
15-
for (p = msg; *p; p++) {
15+
if (sizeof(msg) <= prefix_len) {
16+
fprintf(stderr, "BUG!!! too long a prefix '%s'\n", prefix);
17+
abort();
18+
}
19+
memcpy(msg, prefix, prefix_len);
20+
p = msg + prefix_len;
21+
if (vsnprintf(p, pend - p, err, params) < 0)
22+
*p = '\0'; /* vsnprintf() failed, clip at prefix */
23+
24+
for (; p != pend - 1 && *p; p++) {
1625
if (iscntrl(*p) && *p != '\t' && *p != '\n')
1726
*p = '?';
1827
}
19-
fprintf(stderr, "%s%s\n", prefix, msg);
28+
29+
*(p++) = '\n'; /* we no longer need a NUL */
30+
fflush(stderr);
31+
write_in_full(2, msg, p - msg);
2032
}
2133

2234
static NORETURN void usage_builtin(const char *err, va_list params)

0 commit comments

Comments
 (0)