Patch 7.4.946 (after 7.4.945)
Problem: Missing changes in source file.
Solution: Include changes to the eval.c file.
Files: src/eval.c
*** ../vim-7.4.945/src/eval.c 2015-11-29 17:34:30.443580376 +0100
--- src/eval.c 2015-11-30 20:44:46.494728567 +0100
***************
*** 473,481 ****
static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
static void f_arglistid __ARGS((typval_T *argvars, typval_T *rettv));
static void f_argv __ARGS((typval_T *argvars, typval_T *rettv));
! static void f_assertEqual __ARGS((typval_T *argvars, typval_T *rettv));
! static void f_assertFalse __ARGS((typval_T *argvars, typval_T *rettv));
! static void f_assertTrue __ARGS((typval_T *argvars, typval_T *rettv));
#ifdef FEAT_FLOAT
static void f_asin __ARGS((typval_T *argvars, typval_T *rettv));
static void f_atan __ARGS((typval_T *argvars, typval_T *rettv));
--- 473,481 ----
static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
static void f_arglistid __ARGS((typval_T *argvars, typval_T *rettv));
static void f_argv __ARGS((typval_T *argvars, typval_T *rettv));
! static void f_assert_equal __ARGS((typval_T *argvars, typval_T *rettv));
! static void f_assert_false __ARGS((typval_T *argvars, typval_T *rettv));
! static void f_assert_true __ARGS((typval_T *argvars, typval_T *rettv));
#ifdef FEAT_FLOAT
static void f_asin __ARGS((typval_T *argvars, typval_T *rettv));
static void f_atan __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 8072,8080 ****
{"argidx", 0, 0, f_argidx},
{"arglistid", 0, 2, f_arglistid},
{"argv", 0, 1, f_argv},
! {"assertEqual", 2, 3, f_assertEqual},
! {"assertFalse", 1, 2, f_assertFalse},
! {"assertTrue", 1, 2, f_assertTrue},
#ifdef FEAT_FLOAT
{"asin", 1, 1, f_asin}, /* WJMc */
{"atan", 1, 1, f_atan},
--- 8072,8080 ----
{"argidx", 0, 0, f_argidx},
{"arglistid", 0, 2, f_arglistid},
{"argv", 0, 1, f_argv},
! {"assert_equal", 2, 3, f_assert_equal},
! {"assert_false", 1, 2, f_assert_false},
! {"assert_true", 1, 2, f_assert_true},
#ifdef FEAT_FLOAT
{"asin", 1, 1, f_asin}, /* WJMc */
{"atan", 1, 1, f_atan},
***************
*** 9131,9241 ****
alist_name(&ARGLIST[idx]), -1);
}
! static void assertError __ARGS((garray_T *gap));
! static void prepareForAssertError __ARGS((garray_T*gap));
! static void assertBool __ARGS((typval_T *argvars, int isTrue));
/*
! * Add an assert error to v:errors.
*/
static void
! assertError(gap)
garray_T *gap;
{
! struct vimvar *vp = &vimvars[VV_ERRORS];
! if (vp->vv_type != VAR_LIST || vimvars[VV_ERRORS].vv_list == NULL)
! /* Make sure v:errors is a list. */
! set_vim_var_list(VV_ERRORS, list_alloc());
! list_append_string(vimvars[VV_ERRORS].vv_list, gap->ga_data, gap->ga_len);
}
static void
! prepareForAssertError(gap)
garray_T *gap;
{
! char buf[NUMBUFLEN];
! ga_init2(gap, 1, 100);
! ga_concat(gap, sourcing_name);
! sprintf(buf, " line %ld", (long)sourcing_lnum);
! ga_concat(gap, (char_u *)buf);
}
/*
! * "assertEqual(expected, actual[, msg])" function
*/
static void
! f_assertEqual(argvars, rettv)
typval_T *argvars;
typval_T *rettv UNUSED;
{
garray_T ga;
- char_u *tofree;
- char_u numbuf[NUMBUFLEN];
if (!tv_equal(&argvars[0], &argvars[1], FALSE, FALSE))
{
! prepareForAssertError(&ga);
! ga_concat(&ga, (char_u *)": Expected ");
! ga_concat(&ga, tv2string(&argvars[0], &tofree, numbuf, 0));
! vim_free(tofree);
! ga_concat(&ga, (char_u *)" but got ");
! ga_concat(&ga, tv2string(&argvars[1], &tofree, numbuf, 0));
! vim_free(tofree);
! assertError(&ga);
ga_clear(&ga);
}
}
static void
! assertBool(argvars, isTrue)
typval_T *argvars;
int isTrue;
{
int error = FALSE;
garray_T ga;
- char_u *tofree;
- char_u numbuf[NUMBUFLEN];
if (argvars[0].v_type != VAR_NUMBER
|| (get_tv_number_chk(&argvars[0], &error) == 0) == isTrue
|| error)
{
! prepareForAssertError(&ga);
! ga_concat(&ga, (char_u *)": Expected ");
! if (isTrue)
! ga_concat(&ga, (char_u *)"True ");
! else
! ga_concat(&ga, (char_u *)"False ");
! ga_concat(&ga, (char_u *)"but got ");
! ga_concat(&ga, tv2string(&argvars[0], &tofree, numbuf, 0));
! vim_free(tofree);
! assertError(&ga);
ga_clear(&ga);
}
}
/*
! * "assertFalse(actual[, msg])" function
*/
static void
! f_assertFalse(argvars, rettv)
typval_T *argvars;
typval_T *rettv UNUSED;
{
! assertBool(argvars, FALSE);
}
/*
! * "assertTrue(actual[, msg])" function
*/
static void
! f_assertTrue(argvars, rettv)
typval_T *argvars;
typval_T *rettv UNUSED;
{
! assertBool(argvars, TRUE);
}
#ifdef FEAT_FLOAT
--- 9131,9270 ----
alist_name(&ARGLIST[idx]), -1);
}
! static void prepare_assert_error __ARGS((garray_T*gap));
! static void fill_assert_error __ARGS((garray_T *gap, typval_T *opt_msg_tv,
char_u *exp_str, typval_T *exp_tv, typval_T *got_tv));
! static void assert_error __ARGS((garray_T *gap));
! static void assert_bool __ARGS((typval_T *argvars, int isTrue));
/*
! * Prepare "gap" for an assert error and add the sourcing position.
*/
static void
! prepare_assert_error(gap)
garray_T *gap;
{
! char buf[NUMBUFLEN];
! ga_init2(gap, 1, 100);
! ga_concat(gap, sourcing_name);
! sprintf(buf, " line %ld", (long)sourcing_lnum);
! ga_concat(gap, (char_u *)buf);
! ga_concat(gap, (char_u *)": ");
}
+ /*
+ * Fill "gap" with information about an assert error.
+ */
static void
! fill_assert_error(gap, opt_msg_tv, exp_str, exp_tv, got_tv)
garray_T *gap;
+ typval_T *opt_msg_tv;
+ char_u *exp_str;
+ typval_T *exp_tv;
+ typval_T *got_tv;
{
! char_u numbuf[NUMBUFLEN];
! char_u *tofree;
! if (opt_msg_tv->v_type != VAR_UNKNOWN)
! {
! ga_concat(gap, tv2string(opt_msg_tv, &tofree, numbuf, 0));
! vim_free(tofree);
! }
! else
! {
! ga_concat(gap, (char_u *)"Expected ");
! if (exp_str == NULL)
! {
! ga_concat(gap, tv2string(exp_tv, &tofree, numbuf, 0));
! vim_free(tofree);
! }
! else
! ga_concat(gap, exp_str);
! ga_concat(gap, (char_u *)" but got ");
! ga_concat(gap, tv2string(got_tv, &tofree, numbuf, 0));
! vim_free(tofree);
! }
}
/*
! * Add an assert error to v:errors.
*/
static void
! assert_error(gap)
! garray_T *gap;
! {
! struct vimvar *vp = &vimvars[VV_ERRORS];
!
! if (vp->vv_type != VAR_LIST || vimvars[VV_ERRORS].vv_list == NULL)
! /* Make sure v:errors is a list. */
! set_vim_var_list(VV_ERRORS, list_alloc());
! list_append_string(vimvars[VV_ERRORS].vv_list, gap->ga_data, gap->ga_len);
! }
!
! /*
! * "assert_equal(expected, actual[, msg])" function
! */
! static void
! f_assert_equal(argvars, rettv)
typval_T *argvars;
typval_T *rettv UNUSED;
{
garray_T ga;
if (!tv_equal(&argvars[0], &argvars[1], FALSE, FALSE))
{
! prepare_assert_error(&ga);
! fill_assert_error(&ga, &argvars[2], NULL, &argvars[0], &argvars[1]);
! assert_error(&ga);
ga_clear(&ga);
}
}
+ /*
+ * Common for assert_true() and assert_false().
+ */
static void
! assert_bool(argvars, isTrue)
typval_T *argvars;
int isTrue;
{
int error = FALSE;
garray_T ga;
if (argvars[0].v_type != VAR_NUMBER
|| (get_tv_number_chk(&argvars[0], &error) == 0) == isTrue
|| error)
{
! prepare_assert_error(&ga);
! fill_assert_error(&ga, &argvars[1],
! (char_u *)(isTrue ? "True " : "False "),
! NULL, &argvars[0]);
! assert_error(&ga);
ga_clear(&ga);
}
}
/*
! * "assert_false(actual[, msg])" function
*/
static void
! f_assert_false(argvars, rettv)
typval_T *argvars;
typval_T *rettv UNUSED;
{
! assert_bool(argvars, FALSE);
}
/*
! * "assert_true(actual[, msg])" function
*/
static void
! f_assert_true(argvars, rettv)
typval_T *argvars;
typval_T *rettv UNUSED;
{
! assert_bool(argvars, TRUE);
}
#ifdef FEAT_FLOAT
*** ../vim-7.4.945/src/version.c 2015-11-30 21:37:23.596219585 +0100
--- src/version.c 2015-12-01 15:32:24.577844521 +0100
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 946,
/**/
--
"Hit any key to continue" is very confusing when you have two keyboards.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.