Teach `vreportf()` to prefix all lines with the given prefix, not only
the first line. This matches how "hint: " is being shown, and affects
"error: ", "fatal: ", "usage: ", "warning: " and "BUG: " (as well as any
out-of-tree and future users).

Note that we need to adjust quite a few tests as a result of this
change. All of these changes are because we obviously need to prefix
more lines in various "expect"-files -- except for one instance of a
trailing empty line that disappears with this commit (see t7609). This
is a very minor change, and arguably a good one.

Signed-off-by: Martin Ågren <martin.ag...@gmail.com>
---
Looking back at this, I wonder if the opposite approach would be better,
that is, making `advise()` use `vreportf()` after teaching the latter
the multi-line trick.

 t/t1011-read-tree-sparse-checkout.sh |  6 ++---
 t/t1506-rev-parse-diagnosis.sh       |  2 +-
 t/t1600-index.sh                     |  6 ++---
 t/t3600-rm.sh                        | 36 ++++++++++++-------------
 t/t5512-ls-remote.sh                 |  6 ++---
 t/t7607-merge-overwrite.sh           |  6 ++---
 t/t7609-merge-co-error-msgs.sh       | 39 ++++++++++++++--------------
 usage.c                              |  2 +-
 8 files changed, 51 insertions(+), 52 deletions(-)

diff --git a/t/t1011-read-tree-sparse-checkout.sh 
b/t/t1011-read-tree-sparse-checkout.sh
index 0c6f48f302..31b0702e6c 100755
--- a/t/t1011-read-tree-sparse-checkout.sh
+++ b/t/t1011-read-tree-sparse-checkout.sh
@@ -243,9 +243,9 @@ test_expect_success 'print errors when failed to update 
worktree' '
        test_must_fail git checkout top 2>actual &&
        cat >expected <<\EOF &&
 error: The following untracked working tree files would be overwritten by 
checkout:
-       sub/added
-       sub/addedtoo
-Please move or remove them before you switch branches.
+error:         sub/added
+error:         sub/addedtoo
+error: Please move or remove them before you switch branches.
 Aborting
 EOF
        test_i18ncmp expected actual
diff --git a/t/t1506-rev-parse-diagnosis.sh b/t/t1506-rev-parse-diagnosis.sh
index 4ee009da66..80d35087b7 100755
--- a/t/t1506-rev-parse-diagnosis.sh
+++ b/t/t1506-rev-parse-diagnosis.sh
@@ -11,7 +11,7 @@ test_did_you_mean ()
        sq="'" &&
        cat >expected <<-EOF &&
        fatal: Path '$2$3' $4, but not ${5:-$sq$3$sq}.
-       Did you mean '$1:$2$3'${2:+ aka $sq$1:./$3$sq}?
+       fatal: Did you mean '$1:$2$3'${2:+ aka $sq$1:./$3$sq}?
        EOF
        test_cmp expected error
 }
diff --git a/t/t1600-index.sh b/t/t1600-index.sh
index c4422312f4..39a707c94a 100755
--- a/t/t1600-index.sh
+++ b/t/t1600-index.sh
@@ -16,7 +16,7 @@ test_expect_success 'bogus GIT_INDEX_VERSION issues warning' '
                git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
                sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
                        warning: GIT_INDEX_VERSION set, but the value is 
invalid.
-                       Using version Z
+                       warning: Using version Z
                EOF
                test_i18ncmp expect.err actual.err
        )
@@ -30,7 +30,7 @@ test_expect_success 'out of bounds GIT_INDEX_VERSION issues 
warning' '
                git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
                sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
                        warning: GIT_INDEX_VERSION set, but the value is 
invalid.
-                       Using version Z
+                       warning: Using version Z
                EOF
                test_i18ncmp expect.err actual.err
        )
@@ -54,7 +54,7 @@ test_expect_success 'out of bounds index.version issues 
warning' '
                git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
                sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
                        warning: index.version set, but the value is invalid.
-                       Using version Z
+                       warning: Using version Z
                EOF
                test_i18ncmp expect.err actual.err
        )
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index b8fbdefcdc..cd4a10df2d 100755
--- a/t/t3600-rm.sh
+++ b/t/t3600-rm.sh
@@ -771,10 +771,10 @@ test_expect_success 'setup for testing rm messages' '
 test_expect_success 'rm files with different staged content' '
        cat >expect <<-\EOF &&
        error: the following files have staged content different from both the
-       file and the HEAD:
-           bar.txt
-           foo.txt
-       (use -f to force removal)
+       error: file and the HEAD:
+       error:     bar.txt
+       error:     foo.txt
+       error: (use -f to force removal)
        EOF
        echo content1 >foo.txt &&
        echo content1 >bar.txt &&
@@ -785,9 +785,9 @@ test_expect_success 'rm files with different staged 
content' '
 test_expect_success 'rm files with different staged content without hints' '
        cat >expect <<-\EOF &&
        error: the following files have staged content different from both the
-       file and the HEAD:
-           bar.txt
-           foo.txt
+       error: file and the HEAD:
+       error:     bar.txt
+       error:     foo.txt
        EOF
        echo content2 >foo.txt &&
        echo content2 >bar.txt &&
@@ -798,8 +798,8 @@ test_expect_success 'rm files with different staged content 
without hints' '
 test_expect_success 'rm file with local modification' '
        cat >expect <<-\EOF &&
        error: the following file has local modifications:
-           foo.txt
-       (use --cached to keep the file, or -f to force removal)
+       error:     foo.txt
+       error: (use --cached to keep the file, or -f to force removal)
        EOF
        git commit -m "testing rm 3" &&
        echo content3 >foo.txt &&
@@ -810,7 +810,7 @@ test_expect_success 'rm file with local modification' '
 test_expect_success 'rm file with local modification without hints' '
        cat >expect <<-\EOF &&
        error: the following file has local modifications:
-           bar.txt
+       error:     bar.txt
        EOF
        echo content4 >bar.txt &&
        test_must_fail git -c advice.rmhints=false rm bar.txt 2>actual &&
@@ -820,8 +820,8 @@ test_expect_success 'rm file with local modification 
without hints' '
 test_expect_success 'rm file with changes in the index' '
        cat >expect <<-\EOF &&
        error: the following file has changes staged in the index:
-           foo.txt
-       (use --cached to keep the file, or -f to force removal)
+       error:     foo.txt
+       error: (use --cached to keep the file, or -f to force removal)
        EOF
        git reset --hard &&
        echo content5 >foo.txt &&
@@ -833,7 +833,7 @@ test_expect_success 'rm file with changes in the index' '
 test_expect_success 'rm file with changes in the index without hints' '
        cat >expect <<-\EOF &&
        error: the following file has changes staged in the index:
-           foo.txt
+       error:     foo.txt
        EOF
        test_must_fail git -c advice.rmhints=false rm foo.txt 2>actual &&
        test_i18ncmp expect actual
@@ -842,12 +842,12 @@ test_expect_success 'rm file with changes in the index 
without hints' '
 test_expect_success 'rm files with two different errors' '
        cat >expect <<-\EOF &&
        error: the following file has staged content different from both the
-       file and the HEAD:
-           foo1.txt
-       (use -f to force removal)
+       error: file and the HEAD:
+       error:     foo1.txt
+       error: (use -f to force removal)
        error: the following file has changes staged in the index:
-           bar1.txt
-       (use --cached to keep the file, or -f to force removal)
+       error:     bar1.txt
+       error: (use --cached to keep the file, or -f to force removal)
        EOF
        echo content >foo1.txt &&
        git add foo1.txt &&
diff --git a/t/t5512-ls-remote.sh b/t/t5512-ls-remote.sh
index 6a949484d0..7e505163f6 100755
--- a/t/t5512-ls-remote.sh
+++ b/t/t5512-ls-remote.sh
@@ -131,9 +131,9 @@ test_expect_success 'confuses pattern as remote when no 
remote specified' '
        cat >exp <<-EOF &&
        fatal: '\''$does_not_exist'\'' does not appear to be a git repository
        fatal: Could not read from remote repository.
-
-       Please make sure you have the correct access rights
-       and the repository exists.
+       fatal: 
+       fatal: Please make sure you have the correct access rights
+       fatal: and the repository exists.
        EOF
        #
        # Do not expect "git ls-remote <pattern>" to work; ls-remote needs
diff --git a/t/t7607-merge-overwrite.sh b/t/t7607-merge-overwrite.sh
index dd8ab7ede1..985fbab0b0 100755
--- a/t/t7607-merge-overwrite.sh
+++ b/t/t7607-merge-overwrite.sh
@@ -116,9 +116,9 @@ test_expect_success 'will not overwrite untracked subtree' '
 
 cat >expect <<\EOF
 error: The following untracked working tree files would be overwritten by 
merge:
-       sub
-       sub2
-Please move or remove them before you merge.
+error:         sub
+error:         sub2
+error: Please move or remove them before you merge.
 Aborting
 EOF
 
diff --git a/t/t7609-merge-co-error-msgs.sh b/t/t7609-merge-co-error-msgs.sh
index e90413204e..54bc3d2c9c 100755
--- a/t/t7609-merge-co-error-msgs.sh
+++ b/t/t7609-merge-co-error-msgs.sh
@@ -27,11 +27,11 @@ test_expect_success 'setup' '
 
 cat >expect <<\EOF
 error: The following untracked working tree files would be overwritten by 
merge:
-       five
-       four
-       three
-       two
-Please move or remove them before you merge.
+error:         five
+error:         four
+error:         three
+error:         two
+error: Please move or remove them before you merge.
 Aborting
 EOF
 
@@ -50,13 +50,13 @@ test_expect_success 'untracked files overwritten by merge 
(fast and non-fast for
 
 cat >expect <<\EOF
 error: Your local changes to the following files would be overwritten by merge:
-       four
-       three
-       two
-Please commit your changes or stash them before you merge.
+error:         four
+error:         three
+error:         two
+error: Please commit your changes or stash them before you merge.
 error: The following untracked working tree files would be overwritten by 
merge:
-       five
-Please move or remove them before you merge.
+error:         five
+error: Please move or remove them before you merge.
 Aborting
 EOF
 
@@ -70,9 +70,9 @@ test_expect_success 'untracked files or local changes 
ovewritten by merge' '
 
 cat >expect <<\EOF
 error: Your local changes to the following files would be overwritten by 
checkout:
-       rep/one
-       rep/two
-Please commit your changes or stash them before you switch branches.
+error:         rep/one
+error:         rep/two
+error: Please commit your changes or stash them before you switch branches.
 Aborting
 EOF
 
@@ -92,9 +92,9 @@ test_expect_success 'cannot switch branches because of local 
changes' '
 
 cat >expect <<\EOF
 error: Your local changes to the following files would be overwritten by 
checkout:
-       rep/one
-       rep/two
-Please commit your changes or stash them before you switch branches.
+error:         rep/one
+error:         rep/two
+error: Please commit your changes or stash them before you switch branches.
 Aborting
 EOF
 
@@ -106,9 +106,8 @@ test_expect_success 'not uptodate file porcelain checkout 
error' '
 
 cat >expect <<\EOF
 error: Updating the following directories would lose untracked files in them:
-       rep
-       rep2
-
+error:         rep
+error:         rep2
 Aborting
 EOF
 
diff --git a/usage.c b/usage.c
index 80f9c1d14b..6a5669922f 100644
--- a/usage.c
+++ b/usage.c
@@ -34,7 +34,7 @@ void vreportf(const char *prefix, const char *err, va_list 
params)
                if (iscntrl(*p) && *p != '\t' && *p != '\n')
                        *p = '?';
        }
-       fprintf(stderr, "%s%s\n", prefix, msg);
+       prefix_suffix_lines(stderr, prefix, msg, "");
 }
 
 static NORETURN void usage_builtin(const char *err, va_list params)
-- 
2.17.0.1181.g093e983b05

Reply via email to