Patch 8.1.0386
Problem:    Cannot test with non-default option value.
Solution:   Add test_option_not_set().
Files:      runtime/doc/eval.txt, src/option.c, src/proto/option.pro,
            src/evalfunc.c


*** ../vim-8.1.0385/runtime/doc/eval.txt        2018-09-10 21:04:09.860392752 
+0200
--- runtime/doc/eval.txt        2018-09-13 20:30:37.739701623 +0200
***************
*** 2466,2471 ****
--- 2473,2479 ----
  test_null_list()              List    null value for testing
  test_null_partial()           Funcref null value for testing
  test_null_string()            String  null value for testing
+ test_option_not_set({name})    none   reset flag indicating option was set
  test_override({expr}, {val})    none  test with Vim internal overrides
  test_settime({expr})          none    set current time for testing
  timer_info([{id}])            List    information about timers
***************
*** 8723,8728 ****
--- 8738,8752 ----
  test_null_string()                                    *test_null_string()*
                Return a String that is null. Only useful for testing.
  
+ test_option_not_set({name})                           *test_option_not_set()*
+               Reset the flag that indicates option {name} was set.  Thus it
+               looks like it still has the default value. Use like this: >
+                       set ambiwidth=double
+                       call test_option_not_set('ambiwidth')
+ <             Now the 'ambiwidth' option behaves like it was never changed,
+               even though the value is "double".
+               Only to be used for testing!
+ 
  test_override({name}, {val})                          *test_override()*
                Overrides certain parts of Vims internal processing to be able
                to run tests. Only to be used for testing Vim!
--- 11734,11737 ----
  Find more information in the file src/testdir/README.txt.
  
  
!  vim:tw=78:ts=8:noet:ft=help:norl:
*** ../vim-8.1.0385/src/option.c        2018-09-10 21:15:34.637000672 +0200
--- src/option.c        2018-09-13 20:25:54.982495459 +0200
***************
*** 12480,12492 ****
  /*
   * Reset the flag indicating option "name" was set.
   */
!     void
  reset_option_was_set(char_u *name)
  {
      int idx = findoption(name);
  
      if (idx >= 0)
        options[idx].flags &= ~P_WAS_SET;
  }
  
  /*
--- 12480,12496 ----
  /*
   * Reset the flag indicating option "name" was set.
   */
!     int
  reset_option_was_set(char_u *name)
  {
      int idx = findoption(name);
  
      if (idx >= 0)
+     {
        options[idx].flags &= ~P_WAS_SET;
+       return OK;
+     }
+     return FAIL;
  }
  
  /*
*** ../vim-8.1.0385/src/proto/option.pro        2018-09-13 17:26:31.091401618 
+0200
--- src/proto/option.pro        2018-09-13 20:25:58.654459076 +0200
***************
*** 55,61 ****
  void vimrc_found(char_u *fname, char_u *envname);
  void change_compatible(int on);
  int option_was_set(char_u *name);
! void reset_option_was_set(char_u *name);
  int can_bs(int what);
  void save_file_ff(buf_T *buf);
  int file_ff_differs(buf_T *buf, int ignore_empty);
--- 55,61 ----
  void vimrc_found(char_u *fname, char_u *envname);
  void change_compatible(int on);
  int option_was_set(char_u *name);
! int reset_option_was_set(char_u *name);
  int can_bs(int what);
  void save_file_ff(buf_T *buf);
  int file_ff_differs(buf_T *buf, int ignore_empty);
*** ../vim-8.1.0385/src/evalfunc.c      2018-09-13 15:33:39.601712271 +0200
--- src/evalfunc.c      2018-09-13 20:26:35.782091366 +0200
***************
*** 415,420 ****
--- 415,421 ----
  static void f_test_alloc_fail(typval_T *argvars, typval_T *rettv);
  static void f_test_autochdir(typval_T *argvars, typval_T *rettv);
  static void f_test_feedinput(typval_T *argvars, typval_T *rettv);
+ static void f_test_option_not_set(typval_T *argvars, typval_T *rettv);
  static void f_test_override(typval_T *argvars, typval_T *rettv);
  static void f_test_garbagecollect_now(typval_T *argvars, typval_T *rettv);
  static void f_test_ignore_error(typval_T *argvars, typval_T *rettv);
***************
*** 922,927 ****
--- 923,929 ----
      {"test_null_list",        0, 0, f_test_null_list},
      {"test_null_partial", 0, 0, f_test_null_partial},
      {"test_null_string", 0, 0, f_test_null_string},
+     {"test_option_not_set", 1, 1, f_test_option_not_set},
      {"test_override",    2, 2, f_test_override},
      {"test_settime",  1, 1, f_test_settime},
  #ifdef FEAT_TIMERS
***************
*** 13062,13068 ****
  }
  
  /*
!  * "test_disable({name}, {val})" function
   */
      static void
  f_test_override(typval_T *argvars, typval_T *rettv UNUSED)
--- 13064,13088 ----
  }
  
  /*
!  * "test_option_not_set({name})" function
!  */
!     static void
! f_test_option_not_set(typval_T *argvars, typval_T *rettv UNUSED)
! {
!     char_u *name = (char_u *)"";
! 
!     if (argvars[0].v_type != VAR_STRING)
!       EMSG(_(e_invarg));
!     else
!     {
!       name = get_tv_string_chk(&argvars[0]);
!       if (reset_option_was_set(name) == FAIL)
!           EMSG2(_(e_invarg2), name);
!     }
! }
! 
! /*
!  * "test_override({name}, {val})" function
   */
      static void
  f_test_override(typval_T *argvars, typval_T *rettv UNUSED)
*** ../vim-8.1.0385/src/version.c       2018-09-13 19:04:45.437477554 +0200
--- src/version.c       2018-09-13 20:29:01.432651600 +0200
***************
*** 796,797 ****
--- 796,799 ----
  {   /* Add new patch number below this line */
+ /**/
+     386,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
43. You tell the kids they can't use the computer because "Daddy's got work to
    do" and you don't even have a job.

 /// 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