Patch 8.2.1500
Problem:    Vim9: error when using address without a command.
Solution:   Execute the range itself. (closes #6747)
Files:      src/vim9compile.c, src/testdir/test_vim9_script.vim


*** ../vim-8.2.1499/src/vim9compile.c   2020-08-20 18:02:42.715595020 +0200
--- src/vim9compile.c   2020-08-20 22:51:59.087039844 +0200
***************
*** 6661,6670 ****
        if (*cmd != '\'' || starts_with_colon)
        {
            ea.cmd = skip_range(ea.cmd, NULL);
!           if (ea.cmd > cmd && !starts_with_colon)
            {
!               emsg(_(e_colon_required_before_a_range));
!               goto erret;
            }
        }
        p = find_ex_command(&ea, NULL, starts_with_colon ? NULL
--- 6661,6682 ----
        if (*cmd != '\'' || starts_with_colon)
        {
            ea.cmd = skip_range(ea.cmd, NULL);
!           if (ea.cmd > cmd)
            {
!               if (!starts_with_colon)
!               {
!                   emsg(_(e_colon_required_before_a_range));
!                   goto erret;
!               }
!               if (ends_excmd2(line, ea.cmd))
!               {
!                   // A range without a command: jump to the line.
!                   // TODO: compile to a more efficient command, possibly
!                   // calling parse_cmd_address().
!                   ea.cmdidx = CMD_SIZE;
!                   line = compile_exec(line, &ea, &cctx);
!                   goto nextline;
!               }
            }
        }
        p = find_ex_command(&ea, NULL, starts_with_colon ? NULL
***************
*** 6845,6850 ****
--- 6857,6863 ----
                    line = compile_exec(line, &ea, &cctx);
                    break;
        }
+ nextline:
        if (line == NULL)
            goto erret;
        line = skipwhite(line);
*** ../vim-8.2.1499/src/testdir/test_vim9_script.vim    2020-08-20 
15:02:38.540534948 +0200
--- src/testdir/test_vim9_script.vim    2020-08-20 22:59:22.960925294 +0200
***************
*** 10,15 ****
--- 10,22 ----
    let other: list<string> = ['asdf']
  enddef
  
+ def Test_range_only()
+   new
+   setline(1, ['blah', 'Blah'])
+   :/Blah/
+   assert_equal(2, getcurpos()[1])
+ enddef
+ 
  let s:appendToMe = 'xxx'
  let s:addToMe = 111
  let g:existing = 'yes'
*** ../vim-8.2.1499/src/version.c       2020-08-20 22:29:05.449693697 +0200
--- src/version.c       2020-08-20 23:02:49.464190953 +0200
***************
*** 756,757 ****
--- 756,759 ----
  {   /* Add new patch number below this line */
+ /**/
+     1500,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
253. You wait for a slow loading web page before going to the toilet.

 /// 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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202008202104.07KL4p4R302014%40masaka.moolenaar.net.

Raspunde prin e-mail lui