diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2018-01-16 16:23:49 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-01-16 14:34:20 -0800 |
commit | 4e056c989f8642050973ba1aabc687979f41798c (patch) | |
tree | 4bb47cfc1a4536a9d612bf4e92a1d2a1df9029a9 | |
parent | Git 2.10.5 (diff) | |
download | tgif-4e056c989f8642050973ba1aabc687979f41798c.tar.xz |
diff.c: flush stdout before printing rename warnings
The diff output is buffered in a FILE object and could still be
partially buffered when we print these warnings (directly to fd 2).
The output is messed up like this
worktree.c | 138 +-
worktree.h warning: inexact rename detection was skipped due to too many files.
| 12 +-
wrapper.c | 83 +-
It gets worse if the warning is printed after color codes for the graph
part are already printed. You'll get a warning in green or red.
Flush stdout first, so we can get something like this instead:
xdiff/xutils.c | 42 +-
xdiff/xutils.h | 4 +-
1033 files changed, 150824 insertions(+), 69395 deletions(-)
warning: inexact rename detection was skipped due to too many files.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | diff.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -4623,6 +4623,7 @@ static const char rename_limit_advice[] = void diff_warn_rename_limit(const char *varname, int needed, int degraded_cc) { + fflush(stdout); if (degraded_cc) warning(degrade_cc_to_c_warning); else if (needed) |