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.

Raspunde prin e-mail lui