]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.1.1822: confusing error message when range is not allowed v8.1.1822
authorBram Moolenaar <Bram@vim.org>
Tue, 6 Aug 2019 19:29:29 +0000 (21:29 +0200)
committerBram Moolenaar <Bram@vim.org>
Tue, 6 Aug 2019 19:29:29 +0000 (21:29 +0200)
Problem:    Confusing error message when range is not allowed.
Solution:   With ADDR_NONE give e_norange.  Change e_invaddr to e_invrange for
            consistency.

src/ex_docmd.c
src/globals.h
src/testdir/test_excmd.vim
src/version.c

index 74adb847b7cd0ec4eda5b47d7745c2d8776dfd0f..6df1c3189dd38ea111a9f8e4fa17e819146762c9 100644 (file)
@@ -4208,6 +4208,15 @@ skip_range(
     return cmd;
 }
 
+    static void
+addr_error(cmd_addr_T addr_type)
+{
+    if (addr_type == ADDR_NONE)
+       emsg(_(e_norange));
+    else
+       emsg(_(e_invrange));
+}
+
 /*
  * Get a single EX address.
  *
@@ -4264,10 +4273,10 @@ get_address(
                    case ADDR_TABS:
                        lnum = CURRENT_TAB_NR;
                        break;
-                   case ADDR_TABS_RELATIVE:
                    case ADDR_NONE:
+                   case ADDR_TABS_RELATIVE:
                    case ADDR_UNSIGNED:
-                       emsg(_(e_invrange));
+                       addr_error(addr_type);
                        cmd = NULL;
                        goto error;
                        break;
@@ -4314,10 +4323,10 @@ get_address(
                    case ADDR_TABS:
                        lnum = LAST_TAB_NR;
                        break;
-                   case ADDR_TABS_RELATIVE:
                    case ADDR_NONE:
+                   case ADDR_TABS_RELATIVE:
                    case ADDR_UNSIGNED:
-                       emsg(_(e_invrange));
+                       addr_error(addr_type);
                        cmd = NULL;
                        goto error;
                        break;
@@ -4346,7 +4355,7 @@ get_address(
                }
                if (addr_type != ADDR_LINES)
                {
-                   emsg(_(e_invaddr));
+                   addr_error(addr_type);
                    cmd = NULL;
                    goto error;
                }
@@ -4378,7 +4387,7 @@ get_address(
                c = *cmd++;
                if (addr_type != ADDR_LINES)
                {
-                   emsg(_(e_invaddr));
+                   addr_error(addr_type);
                    cmd = NULL;
                    goto error;
                }
@@ -4428,7 +4437,7 @@ get_address(
                ++cmd;
                if (addr_type != ADDR_LINES)
                {
-                   emsg(_(e_invaddr));
+                   addr_error(addr_type);
                    cmd = NULL;
                    goto error;
                }
@@ -7926,7 +7935,7 @@ ex_copymove(exarg_T *eap)
      */
     if (n == MAXLNUM || n < 0 || n > curbuf->b_ml.ml_line_count)
     {
-       emsg(_(e_invaddr));
+       emsg(_(e_invrange));
        return;
     }
 
index 92b28030ff8a3ef3c7cb437a6a817c30161357ee..e6a5bb2e941bf3b19d293b1779d9772427479a2d 100644 (file)
@@ -1456,7 +1456,6 @@ EXTERN char e_fontwidth[] INIT(= N_("E236: Font \"%s\" is not fixed-width"));
 EXTERN char e_internal[]       INIT(= N_("E473: Internal error"));
 EXTERN char e_intern2[]        INIT(= N_("E685: Internal error: %s"));
 EXTERN char e_interr[] INIT(= N_("Interrupted"));
-EXTERN char e_invaddr[]        INIT(= N_("E14: Invalid address"));
 EXTERN char e_invarg[] INIT(= N_("E474: Invalid argument"));
 EXTERN char e_invarg2[]        INIT(= N_("E475: Invalid argument: %s"));
 EXTERN char e_duparg2[]        INIT(= N_("E983: Duplicate argument: %s"));
index f5ce979208652ba188b0a69a113321cfbad47d6b..509d78dfbafcf9934917495f5843b0d6f816a2ce 100644 (file)
@@ -8,3 +8,14 @@ func Test_ex_delete()
   .dl
   call assert_equal(['a', 'c'], getline(1, 2))
 endfunc
+
+func Test_range_error()
+  call assert_fails(':.echo 1', 'E481:')
+  call assert_fails(':$echo 1', 'E481:')
+  call assert_fails(':1,2echo 1', 'E481:')
+  call assert_fails(':+1echo 1', 'E481:')
+  call assert_fails(':/1/echo 1', 'E481:')
+  call assert_fails(':\/echo 1', 'E481:')
+  normal vv
+  call assert_fails(":'<,'>echo 1", 'E481:')
+endfunc
index aad783376794fa4893af91ff0a9b7dd1b14bf36f..0e1641c5f3cd80513c24584b5586bd83ff1bc980 100644 (file)
@@ -773,6 +773,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1822,
 /**/
     1821,
 /**/