diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-01-28 18:08:12 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-01-28 18:08:12 +0100 |
commit | c7b831ca154537505f5a22d01335a86b2e9cb023 (patch) | |
tree | e6cfed108ac6001743480ced4763d632dca45777 /src/eval.c | |
parent | 36ae89c550a4f0a380606c3fb4a054957ad698f0 (diff) | |
download | vim-c7b831ca154537505f5a22d01335a86b2e9cb023.zip |
patch 8.0.0254: error message of assert functions is sometimes incomplete
Problem: When using an assert function one can either specify a message or
get a message about what failed, not both.
Solution: Concatenate the error with the message.
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/src/eval.c b/src/eval.c index 5846936cc..a5ae4f815 100644 --- a/src/eval.c +++ b/src/eval.c @@ -9240,35 +9240,34 @@ fill_assert_error( if (opt_msg_tv->v_type != VAR_UNKNOWN) { - ga_concat(gap, tv2string(opt_msg_tv, &tofree, numbuf, 0)); + ga_concat(gap, echo_string(opt_msg_tv, &tofree, numbuf, 0)); vim_free(tofree); + ga_concat(gap, (char_u *)": "); } + + if (atype == ASSERT_MATCH || atype == ASSERT_NOTMATCH) + ga_concat(gap, (char_u *)"Pattern "); + else if (atype == ASSERT_NOTEQUAL) + ga_concat(gap, (char_u *)"Expected not equal to "); else + ga_concat(gap, (char_u *)"Expected "); + if (exp_str == NULL) { - if (atype == ASSERT_MATCH || atype == ASSERT_NOTMATCH) - ga_concat(gap, (char_u *)"Pattern "); - else if (atype == ASSERT_NOTEQUAL) - ga_concat(gap, (char_u *)"Expected not equal to "); - else - ga_concat(gap, (char_u *)"Expected "); - if (exp_str == NULL) - { - ga_concat_esc(gap, tv2string(exp_tv, &tofree, numbuf, 0)); - vim_free(tofree); - } + ga_concat_esc(gap, tv2string(exp_tv, &tofree, numbuf, 0)); + vim_free(tofree); + } + else + ga_concat_esc(gap, exp_str); + if (atype != ASSERT_NOTEQUAL) + { + if (atype == ASSERT_MATCH) + ga_concat(gap, (char_u *)" does not match "); + else if (atype == ASSERT_NOTMATCH) + ga_concat(gap, (char_u *)" does match "); else - ga_concat_esc(gap, exp_str); - if (atype != ASSERT_NOTEQUAL) - { - if (atype == ASSERT_MATCH) - ga_concat(gap, (char_u *)" does not match "); - else if (atype == ASSERT_NOTMATCH) - ga_concat(gap, (char_u *)" does match "); - else - ga_concat(gap, (char_u *)" but got "); - ga_concat_esc(gap, tv2string(got_tv, &tofree, numbuf, 0)); - vim_free(tofree); - } + ga_concat(gap, (char_u *)" but got "); + ga_concat_esc(gap, tv2string(got_tv, &tofree, numbuf, 0)); + vim_free(tofree); } } |