Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.831

Expand Messages
  • Bram Moolenaar
    Patch 7.3.831 Problem: Clumsy to handle the situation that a variable does not exist. Solution: Add default value to getbufvar() et al. (Shougo
    Message 1 of 1 , Feb 20, 2013
    • 0 Attachment
      Patch 7.3.831
      Problem: Clumsy to handle the situation that a variable does not exist.
      Solution: Add default value to getbufvar() et al. (Shougo Matsushita,
      Hirohito Higashi)
      Files: runtime/doc/eval.txt, src/eval.c src/testdir/test91.in,
      src/testdir/test91.ok, src/testdir/Make_amiga.mak,
      src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
      src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
      src/testdir/Makefile


      *** ../vim-7.3.830/runtime/doc/eval.txt 2013-02-20 17:58:01.000000000 +0100
      --- runtime/doc/eval.txt 2013-02-20 20:53:50.000000000 +0100
      ***************
      *** 1761,1772 ****
      foldtextresult( {lnum}) String text for closed fold at {lnum}
      foreground( ) Number bring the Vim window to the foreground
      function( {name}) Funcref reference to function {name}
      ! garbagecollect( [at_exit]) none free memory, breaking cyclic references
      get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
      get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
      getbufline( {expr}, {lnum} [, {end}])
      List lines {lnum} to {end} of buffer {expr}
      ! getbufvar( {expr}, {varname}) any variable {varname} in buffer {expr}
      getchar( [expr]) Number get one character from the user
      getcharmod( ) Number modifiers for the last typed character
      getcmdline() String return the current command-line
      --- 1772,1784 ----
      foldtextresult( {lnum}) String text for closed fold at {lnum}
      foreground( ) Number bring the Vim window to the foreground
      function( {name}) Funcref reference to function {name}
      ! garbagecollect( [{atexit}]) none free memory, breaking cyclic references
      get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
      get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
      getbufline( {expr}, {lnum} [, {end}])
      List lines {lnum} to {end} of buffer {expr}
      ! getbufvar( {expr}, {varname} [, {def}])
      ! any variable {varname} in buffer {expr}
      getchar( [expr]) Number get one character from the user
      getcharmod( ) Number modifiers for the last typed character
      getcmdline() String return the current command-line
      ***************
      *** 1787,1798 ****
      getqflist() List list of quickfix items
      getreg( [{regname} [, 1]]) String contents of register
      getregtype( [{regname}]) String type of register
      ! gettabvar( {nr}, {varname}) any variable {varname} in tab {nr}
      ! gettabwinvar( {tabnr}, {winnr}, {name})
      any {name} in {winnr} in tab page {tabnr}
      getwinposx() Number X coord in pixels of GUI Vim window
      getwinposy() Number Y coord in pixels of GUI Vim window
      ! getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
      glob( {expr} [, {nosuf} [, {list}]])
      any expand file wildcards in {expr}
      globpath( {path}, {expr} [, {flag}])
      --- 1799,1812 ----
      getqflist() List list of quickfix items
      getreg( [{regname} [, 1]]) String contents of register
      getregtype( [{regname}]) String type of register
      ! gettabvar( {nr}, {varname} [, {def}])
      ! any variable {varname} in tab {nr} or {def}
      ! gettabwinvar( {tabnr}, {winnr}, {name} [, {def}])
      any {name} in {winnr} in tab page {tabnr}
      getwinposx() Number X coord in pixels of GUI Vim window
      getwinposy() Number Y coord in pixels of GUI Vim window
      ! getwinvar( {nr}, {varname} [, {def}])
      ! any variable {varname} in window {nr}
      glob( {expr} [, {nosuf} [, {list}]])
      any expand file wildcards in {expr}
      globpath( {path}, {expr} [, {flag}])
      ***************
      *** 3131,3137 ****
      Example: >
      :let lines = getbufline(bufnr("myfile"), 1, "$")

      ! getbufvar({expr}, {varname}) *getbufvar()*
      The result is the value of option or local buffer variable
      {varname} in buffer {expr}. Note that the name without "b:"
      must be used.
      --- 3146,3152 ----
      Example: >
      :let lines = getbufline(bufnr("myfile"), 1, "$")

      ! getbufvar({expr}, {varname} [, {def}]) *getbufvar()*
      The result is the value of option or local buffer variable
      {varname} in buffer {expr}. Note that the name without "b:"
      must be used.
      ***************
      *** 3141,3148 ****
      doesn't work for a global variable, window-local variable or
      window-local option.
      For the use of {expr}, see |bufname()| above.
      ! When the buffer or variable doesn't exist an empty string is
      ! returned, there is no error message.
      Examples: >
      :let bufmodified = getbufvar(1, "&mod")
      :echo "todo myvar = " . getbufvar("todo", "myvar")
      --- 3156,3163 ----
      doesn't work for a global variable, window-local variable or
      window-local option.
      For the use of {expr}, see |bufname()| above.
      ! When the buffer or variable doesn't exist {def} or an empty
      ! string is returned, there is no error message.
      Examples: >
      :let bufmodified = getbufvar(1, "&mod")
      :echo "todo myvar = " . getbufvar("todo", "myvar")
      ***************
      *** 3414,3439 ****
      <CTRL-V> is one character with value 0x16.
      If {regname} is not specified, |v:register| is used.

      ! gettabvar({tabnr}, {varname}) *gettabvar()*
      Get the value of a tab-local variable {varname} in tab page
      {tabnr}. |t:var|
      Tabs are numbered starting with one.
      Note that the name without "t:" must be used.

      ! gettabwinvar({tabnr}, {winnr}, {varname}) *gettabwinvar()*
      Get the value of window-local variable {varname} in window
      {winnr} in tab page {tabnr}.
      When {varname} starts with "&" get the value of a window-local
      option.
      Tabs are numbered starting with one. For the current tabpage
      use |getwinvar()|.
      When {winnr} is zero the current window is used.
      This also works for a global option, buffer-local option and
      window-local option, but it doesn't work for a global variable
      or buffer-local variable.
      ! When {varname} is empty a dictionary with all window-local
      ! variables is returned.
      ! Note that {varname} must be the name without "w:".
      Examples: >
      :let list_is_on = gettabwinvar(1, 2, '&list')
      :echo "myvar = " . gettabwinvar(3, 1, 'myvar')
      --- 3434,3463 ----
      <CTRL-V> is one character with value 0x16.
      If {regname} is not specified, |v:register| is used.

      ! gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()*
      Get the value of a tab-local variable {varname} in tab page
      {tabnr}. |t:var|
      Tabs are numbered starting with one.
      Note that the name without "t:" must be used.
      + When the tab or variable doesn't exist {def} or an empty
      + string is returned, there is no error message.

      ! gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
      Get the value of window-local variable {varname} in window
      {winnr} in tab page {tabnr}.
      When {varname} starts with "&" get the value of a window-local
      option.
      + When {varname} is empty a dictionary with all window-local
      + variables is returned.
      + Note that {varname} must be the name without "w:".
      Tabs are numbered starting with one. For the current tabpage
      use |getwinvar()|.
      When {winnr} is zero the current window is used.
      This also works for a global option, buffer-local option and
      window-local option, but it doesn't work for a global variable
      or buffer-local variable.
      ! When the tab, window or variable doesn't exist {def} or an
      ! empty string is returned, there is no error message.
      Examples: >
      :let list_is_on = gettabwinvar(1, 2, '&list')
      :echo "myvar = " . gettabwinvar(3, 1, 'myvar')
      ***************
      *** 3448,3454 ****
      the top of the GUI Vim window. The result will be -1 if the
      information is not available.

      ! getwinvar({winnr}, {varname}) *getwinvar()*
      Like |gettabwinvar()| for the current tabpage.
      Examples: >
      :let list_is_on = getwinvar(2, '&list')
      --- 3472,3478 ----
      the top of the GUI Vim window. The result will be -1 if the
      information is not available.

      ! getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
      Like |gettabwinvar()| for the current tabpage.
      Examples: >
      :let list_is_on = getwinvar(2, '&list')
      *** ../vim-7.3.830/src/eval.c 2013-02-20 17:58:01.000000000 +0100
      --- src/eval.c 2013-02-20 20:52:09.000000000 +0100
      ***************
      *** 7916,7922 ****
      {"garbagecollect", 0, 1, f_garbagecollect},
      {"get", 2, 3, f_get},
      {"getbufline", 2, 3, f_getbufline},
      ! {"getbufvar", 2, 2, f_getbufvar},
      {"getchar", 0, 1, f_getchar},
      {"getcharmod", 0, 0, f_getcharmod},
      {"getcmdline", 0, 0, f_getcmdline},
      --- 7916,7922 ----
      {"garbagecollect", 0, 1, f_garbagecollect},
      {"get", 2, 3, f_get},
      {"getbufline", 2, 3, f_getbufline},
      ! {"getbufvar", 2, 3, f_getbufvar},
      {"getchar", 0, 1, f_getchar},
      {"getcharmod", 0, 0, f_getcharmod},
      {"getcmdline", 0, 0, f_getcmdline},
      ***************
      *** 7936,7946 ****
      {"getqflist", 0, 0, f_getqflist},
      {"getreg", 0, 2, f_getreg},
      {"getregtype", 0, 1, f_getregtype},
      ! {"gettabvar", 2, 2, f_gettabvar},
      ! {"gettabwinvar", 3, 3, f_gettabwinvar},
      {"getwinposx", 0, 0, f_getwinposx},
      {"getwinposy", 0, 0, f_getwinposy},
      ! {"getwinvar", 2, 2, f_getwinvar},
      {"glob", 1, 3, f_glob},
      {"globpath", 2, 3, f_globpath},
      {"has", 1, 1, f_has},
      --- 7936,7946 ----
      {"getqflist", 0, 0, f_getqflist},
      {"getreg", 0, 2, f_getreg},
      {"getregtype", 0, 1, f_getregtype},
      ! {"gettabvar", 2, 3, f_gettabvar},
      ! {"gettabwinvar", 3, 4, f_gettabwinvar},
      {"getwinposx", 0, 0, f_getwinposx},
      {"getwinposy", 0, 0, f_getwinposy},
      ! {"getwinvar", 2, 3, f_getwinvar},
      {"glob", 1, 3, f_glob},
      {"globpath", 2, 3, f_globpath},
      {"has", 1, 1, f_has},
      ***************
      *** 11115,11122 ****
      ++emsg_off;
      buf = get_buf_tv(&argvars[0]);

      ! rettv->v_type = VAR_STRING;
      ! rettv->vval.v_string = NULL;

      if (buf != NULL && varname != NULL)
      {
      --- 11115,11128 ----
      ++emsg_off;
      buf = get_buf_tv(&argvars[0]);

      ! if (argvars[2].v_type != VAR_UNKNOWN)
      ! /* set the default value */
      ! copy_tv(&argvars[2], rettv);
      ! else
      ! {
      ! rettv->v_type = VAR_STRING;
      ! rettv->vval.v_string = NULL;
      ! }

      if (buf != NULL && varname != NULL)
      {
      ***************
      *** 11785,11791 ****
      --- 11791,11801 ----
      v = find_var_in_ht(&tp->tp_vars.dv_hashtab, varname, FALSE);
      if (v != NULL)
      copy_tv(&v->di_tv, rettv);
      + else if (argvars[2].v_type != VAR_UNKNOWN)
      + copy_tv(&argvars[2], rettv);
      }
      + else if (argvars[2].v_type != VAR_UNKNOWN)
      + copy_tv(&argvars[2], rettv);
      }

      /*
      ***************
      *** 11907,11914 ****
      varname = get_tv_string_chk(&argvars[off + 1]);
      ++emsg_off;

      ! rettv->v_type = VAR_STRING;
      ! rettv->vval.v_string = NULL;

      if (win != NULL && varname != NULL)
      {
      --- 11917,11930 ----
      varname = get_tv_string_chk(&argvars[off + 1]);
      ++emsg_off;

      ! if (argvars[off + 2].v_type != VAR_UNKNOWN)
      ! /* set the default return value */
      ! copy_tv(&argvars[off + 2], rettv);
      ! else
      ! {
      ! rettv->v_type = VAR_STRING;
      ! rettv->vval.v_string = NULL;
      ! }

      if (win != NULL && varname != NULL)
      {
      *** ../vim-7.3.830/src/testdir/test91.in 2013-02-20 21:09:20.000000000 +0100
      --- src/testdir/test91.in 2013-02-20 20:57:49.000000000 +0100
      ***************
      *** 0 ****
      --- 1,98 ----
      + Tests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
      + vim: set ft=vim :
      +
      + STARTTEST
      + :so small.vim
      + :"
      + :" test for getbufvar()
      + :let b:var_num = 1234
      + :let def_num = 5678
      + :$put =string(getbufvar(1, 'var_num'))
      + :$put =string(getbufvar(1, 'var_num', def_num))
      + :$put =string(getbufvar(1, ''))
      + :$put =string(getbufvar(1, '', def_num))
      + :unlet b:var_num
      + :$put =string(getbufvar(1, 'var_num', def_num))
      + :$put =string(getbufvar(1, ''))
      + :$put =string(getbufvar(1, '', def_num))
      + :$put =string(getbufvar(9, ''))
      + :$put =string(getbufvar(9, '', def_num))
      + :unlet def_num
      + :$put =string(getbufvar(1, '&autoindent'))
      + :$put =string(getbufvar(1, '&autoindent', 1))
      + :"
      + :" test for getwinvar()
      + :let w:var_str = "Dance"
      + :let def_str = "Chance"
      + :$put =string(getwinvar(1, 'var_str'))
      + :$put =string(getwinvar(1, 'var_str', def_str))
      + :$put =string(getwinvar(1, ''))
      + :$put =string(getwinvar(1, '', def_str))
      + :unlet w:var_str
      + :$put =string(getwinvar(1, 'var_str', def_str))
      + :$put =string(getwinvar(1, ''))
      + :$put =string(getwinvar(1, '', def_str))
      + :$put =string(getwinvar(9, ''))
      + :$put =string(getwinvar(9, '', def_str))
      + :$put =string(getwinvar(1, '&nu'))
      + :$put =string(getwinvar(1, '&nu', 1))
      + :unlet def_str
      + :"
      + :" test for gettabvar()
      + :tabnew
      + :tabnew
      + :let t:var_list = [1, 2, 3]
      + :let def_list = [4, 5, 6, 7]
      + :tabrewind
      + :$put =string(gettabvar(3, 'var_list'))
      + :$put =string(gettabvar(3, 'var_list', def_list))
      + :$put =string(gettabvar(3, ''))
      + :$put =string(gettabvar(3, '', def_list))
      + :tablast
      + :unlet t:var_list
      + :tabrewind
      + :$put =string(gettabvar(3, 'var_list', def_list))
      + :$put =string(gettabvar(9, ''))
      + :$put =string(gettabvar(9, '', def_list))
      + :$put =string(gettabvar(3, '&nu'))
      + :$put =string(gettabvar(3, '&nu', def_list))
      + :unlet def_list
      + :tabonly
      + :"
      + :" test for gettabwinvar()
      + :tabnew
      + :tabnew
      + :tabprev
      + :split
      + :split
      + :wincmd w
      + :vert split
      + :wincmd w
      + :let w:var_dict = {'dict': 'tabwin'}
      + :let def_dict = {'dict2': 'newval'}
      + :wincmd b
      + :tabrewind
      + :$put =string(gettabwinvar(2, 3, 'var_dict'))
      + :$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
      + :$put =string(gettabwinvar(2, 3, ''))
      + :$put =string(gettabwinvar(2, 3, '', def_dict))
      + :tabnext
      + :3wincmd w
      + :unlet w:var_dict
      + :tabrewind
      + :$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
      + :$put =string(gettabwinvar(2, 3, ''))
      + :$put =string(gettabwinvar(2, 3, '', def_dict))
      + :$put =string(gettabwinvar(2, 9, ''))
      + :$put =string(gettabwinvar(2, 9, '', def_dict))
      + :$put =string(gettabwinvar(9, 3, ''))
      + :$put =string(gettabwinvar(9, 3, '', def_dict))
      + :unlet def_dict
      + :$put =string(gettabwinvar(2, 3, '&nux'))
      + :$put =string(gettabwinvar(2, 3, '&nux', 1))
      + :tabonly
      + :"
      + :/^start/,$wq! test.out
      + ENDTEST
      +
      + start:
      *** ../vim-7.3.830/src/testdir/test91.ok 2013-02-20 21:09:20.000000000 +0100
      --- src/testdir/test91.ok 2013-02-20 20:57:45.000000000 +0100
      ***************
      *** 0 ****
      --- 1,45 ----
      + start:
      + 1234
      + 1234
      + {'var_num': 1234}
      + {'var_num': 1234}
      + 5678
      + {}
      + {}
      + ''
      + 5678
      + 0
      + 0
      + 'Dance'
      + 'Dance'
      + {'var_str': 'Dance'}
      + {'var_str': 'Dance'}
      + 'Chance'
      + {}
      + {}
      + ''
      + 'Chance'
      + 0
      + 0
      + [1, 2, 3]
      + [1, 2, 3]
      + ''
      + [4, 5, 6, 7]
      + [4, 5, 6, 7]
      + ''
      + [4, 5, 6, 7]
      + ''
      + [4, 5, 6, 7]
      + {'dict': 'tabwin'}
      + {'dict': 'tabwin'}
      + {'var_dict': {'dict': 'tabwin'}}
      + {'var_dict': {'dict': 'tabwin'}}
      + {'dict2': 'newval'}
      + {}
      + {}
      + ''
      + {'dict2': 'newval'}
      + ''
      + {'dict2': 'newval'}
      + ''
      + 1
      *** ../vim-7.3.830/src/testdir/Make_amiga.mak 2013-02-13 17:34:59.000000000 +0100
      --- src/testdir/Make_amiga.mak 2013-02-20 20:21:03.000000000 +0100
      ***************
      *** 32,38 ****
      test71.out test72.out test73.out test74.out test75.out \
      test76.out test77.out test78.out test79.out test80.out \
      test81.out test82.out test83.out test84.out test88.out \
      ! test89.out test90.out

      .SUFFIXES: .in .out

      --- 32,38 ----
      test71.out test72.out test73.out test74.out test75.out \
      test76.out test77.out test78.out test79.out test80.out \
      test81.out test82.out test83.out test84.out test88.out \
      ! test89.out test90.out test91.out

      .SUFFIXES: .in .out

      ***************
      *** 139,141 ****
      --- 139,142 ----
      test88.out: test88.in
      test89.out: test89.in
      test90.out: test90.in
      + test91.out: test91.in
      *** ../vim-7.3.830/src/testdir/Make_dos.mak 2013-02-13 17:34:59.000000000 +0100
      --- src/testdir/Make_dos.mak 2013-02-20 20:21:13.000000000 +0100
      ***************
      *** 31,37 ****
      test74.out test75.out test76.out test77.out test78.out \
      test79.out test80.out test81.out test82.out test83.out \
      test84.out test85.out test86.out test87.out test88.out \
      ! test89.out test90.out

      SCRIPTS32 = test50.out test70.out

      --- 31,37 ----
      test74.out test75.out test76.out test77.out test78.out \
      test79.out test80.out test81.out test82.out test83.out \
      test84.out test85.out test86.out test87.out test88.out \
      ! test89.out test90.out test91.out

      SCRIPTS32 = test50.out test70.out

      *** ../vim-7.3.830/src/testdir/Make_ming.mak 2013-02-13 17:34:59.000000000 +0100
      --- src/testdir/Make_ming.mak 2013-02-20 20:21:19.000000000 +0100
      ***************
      *** 51,57 ****
      test74.out test75.out test76.out test77.out test78.out \
      test79.out test80.out test81.out test82.out test83.out \
      test84.out test85.out test86.out test87.out test88.out \
      ! test89.out test90.out

      SCRIPTS32 = test50.out test70.out

      --- 51,57 ----
      test74.out test75.out test76.out test77.out test78.out \
      test79.out test80.out test81.out test82.out test83.out \
      test84.out test85.out test86.out test87.out test88.out \
      ! test89.out test90.out test91.out

      SCRIPTS32 = test50.out test70.out

      *** ../vim-7.3.830/src/testdir/Make_os2.mak 2013-02-13 17:34:59.000000000 +0100
      --- src/testdir/Make_os2.mak 2013-02-20 20:21:25.000000000 +0100
      ***************
      *** 32,38 ****
      test71.out test72.out test73.out test74.out test75.out \
      test76.out test77.out test78.out test79.out test80.out \
      test81.out test82.out test83.out test84.out test88.out \
      ! test89.out test90.out

      .SUFFIXES: .in .out

      --- 32,38 ----
      test71.out test72.out test73.out test74.out test75.out \
      test76.out test77.out test78.out test79.out test80.out \
      test81.out test82.out test83.out test84.out test88.out \
      ! test89.out test90.out test91.out

      .SUFFIXES: .in .out

      *** ../vim-7.3.830/src/testdir/Make_vms.mms 2013-02-13 17:34:59.000000000 +0100
      --- src/testdir/Make_vms.mms 2013-02-20 20:21:31.000000000 +0100
      ***************
      *** 4,10 ****
      # Authors: Zoltan Arpadffy, <arpadffy@...>
      # Sandor Kopanyi, <sandor.kopanyi@...>
      #
      ! # Last change: 2013 Feb 13
      #
      # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
      # Edit the lines in the Configuration section below to select.
      --- 4,10 ----
      # Authors: Zoltan Arpadffy, <arpadffy@...>
      # Sandor Kopanyi, <sandor.kopanyi@...>
      #
      ! # Last change: 2013 Feb 20
      #
      # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
      # Edit the lines in the Configuration section below to select.
      ***************
      *** 77,83 ****
      test71.out test72.out test74.out test75.out test76.out \
      test77.out test78.out test79.out test80.out test81.out \
      test82.out test83.out test84.out test88.out test89.out \
      ! test90.out

      # Known problems:
      # Test 30: a problem around mac format - unknown reason
      --- 77,83 ----
      test71.out test72.out test74.out test75.out test76.out \
      test77.out test78.out test79.out test80.out test81.out \
      test82.out test83.out test84.out test88.out test89.out \
      ! test90.out test91.out

      # Known problems:
      # Test 30: a problem around mac format - unknown reason
      *** ../vim-7.3.830/src/testdir/Makefile 2013-02-13 17:34:59.000000000 +0100
      --- src/testdir/Makefile 2013-02-20 20:21:47.000000000 +0100
      ***************
      *** 28,34 ****
      test74.out test75.out test76.out test77.out test78.out \
      test79.out test80.out test81.out test82.out test83.out \
      test84.out test85.out test86.out test87.out test88.out \
      ! test89.out test90.out

      SCRIPTS_GUI = test16.out

      --- 28,34 ----
      test74.out test75.out test76.out test77.out test78.out \
      test79.out test80.out test81.out test82.out test83.out \
      test84.out test85.out test86.out test87.out test88.out \
      ! test89.out test90.out test91.out

      SCRIPTS_GUI = test16.out

      *** ../vim-7.3.830/src/version.c 2013-02-20 19:26:24.000000000 +0100
      --- src/version.c 2013-02-20 21:08:40.000000000 +0100
      ***************
      *** 730,731 ****
      --- 730,733 ----
      { /* Add new patch number below this line */
      + /**/
      + 831,
      /**/

      --
      |

      Ceci n'est pas une pipe.

      /// Bram Moolenaar -- Bram@... -- 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 vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    Your message has been successfully submitted and would be delivered to recipients shortly.