]> granicus.if.org Git - vim/commitdiff
patch 8.2.4503: Vim9: there is no point in supporting :Print and :mode v8.2.4503
authorBram Moolenaar <Bram@vim.org>
Fri, 4 Mar 2022 17:10:19 +0000 (17:10 +0000)
committerBram Moolenaar <Bram@vim.org>
Fri, 4 Mar 2022 17:10:19 +0000 (17:10 +0000)
Problem:    Vim9: there is no point in supporting :Print and :mode.
Solution:   Do not recognize :Print and :mode as commands. (closes #9870)

src/ex_docmd.c
src/testdir/test_vim9_script.vim
src/version.c

index 36a7386eb450b02e71e30f7868aee9aed1931858..287045bc5dfbbdc67482fbecf783ff6ea0417a75 100644 (file)
@@ -3752,6 +3752,10 @@ find_ex_command(
                break;
            }
 
+       // :Print and :mode are not supported in Vim9 script
+       if (vim9 && (eap->cmdidx == CMD_mode || eap->cmdidx == CMD_Print))
+           eap->cmdidx = CMD_SIZE;
+
        // Do not recognize ":*" as the star command unless '*' is in
        // 'cpoptions'.
        if (eap->cmdidx == CMD_star && vim_strchr(p_cpo, CPO_STAR) == NULL)
index 87acff6f025c8863a3c1072ca6e37ce37c0e79b3..70a3ffbe3ca87e80f973f4ac11dc9a2430df7096 100644 (file)
@@ -3589,32 +3589,37 @@ def Test_unsupported_commands()
   var lines =<< trim END
       ka
   END
-  v9.CheckDefFailure(lines, 'E476:')
-  v9.CheckScriptFailure(['vim9script'] + lines, 'E492:')
+  v9.CheckDefAndScriptFailure(lines, ['E476:', 'E492:'])
 
   lines =<< trim END
       :1ka
   END
-  v9.CheckDefFailure(lines, 'E476:')
-  v9.CheckScriptFailure(['vim9script'] + lines, 'E492:')
+  v9.CheckDefAndScriptFailure(lines, ['E476:', 'E492:'])
 
   lines =<< trim END
     t
   END
-  v9.CheckDefFailure(lines, 'E1100:')
-  v9.CheckScriptFailure(['vim9script'] + lines, 'E1100:')
+  v9.CheckDefAndScriptFailure(lines, 'E1100:')
 
   lines =<< trim END
     x
   END
-  v9.CheckDefFailure(lines, 'E1100:')
-  v9.CheckScriptFailure(['vim9script'] + lines, 'E1100:')
+  v9.CheckDefAndScriptFailure(lines, 'E1100:')
 
   lines =<< trim END
     xit
   END
-  v9.CheckDefFailure(lines, 'E1100:')
-  v9.CheckScriptFailure(['vim9script'] + lines, 'E1100:')
+  v9.CheckDefAndScriptFailure(lines, 'E1100:')
+
+  lines =<< trim END
+    Print
+  END
+  v9.CheckDefAndScriptFailure(lines, ['E476: Invalid command: Print', 'E492: Not an editor command: Print'])
+
+  lines =<< trim END
+    mode 4
+  END
+  v9.CheckDefAndScriptFailure(lines, ['E476: Invalid command: mode 4', 'E492: Not an editor command: mode 4'])
 enddef
 
 def Test_mapping_line_number()
index 51dc6de624add458e64119b6bb0fb656344e52be..6a21b8a9a49a454128da239493e1ae78da88a2f1 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4503,
 /**/
     4502,
 /**/