aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/builtin.txt26
-rw-r--r--runtime/lua/vim/_meta/vimfn.lua26
-rw-r--r--src/nvim/eval.lua30
-rw-r--r--src/nvim/strings.c14
-rw-r--r--test/old/testdir/test_format.vim122
5 files changed, 109 insertions, 109 deletions
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 207bf817b0..d0866b1c42 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -5255,55 +5255,55 @@ printf({fmt}, {expr1} ...) *printf()*
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
< 1.41
- *E1400*
+ *E1500*
You cannot mix positional and non-positional arguments: >vim
echo printf("%s%1$s", "One", "Two")
-< E1400: Cannot mix positional and non-positional
+< E1500: Cannot mix positional and non-positional
arguments: %s%1$s
- *E1401*
+ *E1501*
You cannot skip a positional argument in a format string: >vim
echo printf("%3$s%1$s", "One", "Two", "Three")
-< E1401: format argument 2 unused in $-style
+< E1501: format argument 2 unused in $-style
format: %3$s%1$s
- *E1402*
+ *E1502*
You can re-use a [field-width] (or [precision]) argument: >vim
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
< 1 at width 2 is: 01
However, you can't use it as a different type: >vim
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
-< E1402: Positional argument 2 used as field
+< E1502: Positional argument 2 used as field
width reused as different type: long int/int
- *E1403*
+ *E1503*
When a positional argument is used, but not the correct number
or arguments is given, an error is raised: >vim
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
-< E1403: Positional argument 3 out of bounds:
+< E1503: Positional argument 3 out of bounds:
%1$d at width %2$d is: %01$*2$.*3$d
Only the first error is reported: >vim
echo printf("%01$*2$.*3$d %4$d", 1, 2)
-< E1403: Positional argument 3 out of bounds:
+< E1503: Positional argument 3 out of bounds:
%01$*2$.*3$d %4$d
- *E1404*
+ *E1504*
A positional argument can be used more than once: >vim
echo printf("%1$s %2$s %1$s", "One", "Two")
< One Two One
However, you can't use a different type the second time: >vim
echo printf("%1$s %2$s %1$d", "One", "Two")
-< E1404: Positional argument 1 type used
+< E1504: Positional argument 1 type used
inconsistently: int/string
- *E1405*
+ *E1505*
Various other errors that lead to a format string being
wrongly formatted lead to: >vim
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
-< E1405: Invalid format specifier:
+< E1505: Invalid format specifier:
%1$d at width %2$d is: %01$*2$.3$d
prompt_getprompt({buf}) *prompt_getprompt()*
diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua
index 6686661a27..86e8781160 100644
--- a/runtime/lua/vim/_meta/vimfn.lua
+++ b/runtime/lua/vim/_meta/vimfn.lua
@@ -6238,55 +6238,55 @@ function vim.fn.prevnonblank(lnum) end
--- echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
--- < 1.41
---
---- *E1400*
+--- *E1500*
--- You cannot mix positional and non-positional arguments: >vim
--- echo printf("%s%1$s", "One", "Two")
---- < E1400: Cannot mix positional and non-positional
+--- < E1500: Cannot mix positional and non-positional
--- arguments: %s%1$s
---
---- *E1401*
+--- *E1501*
--- You cannot skip a positional argument in a format string: >vim
--- echo printf("%3$s%1$s", "One", "Two", "Three")
---- < E1401: format argument 2 unused in $-style
+--- < E1501: format argument 2 unused in $-style
--- format: %3$s%1$s
---
---- *E1402*
+--- *E1502*
--- You can re-use a [field-width] (or [precision]) argument: >vim
--- echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
--- < 1 at width 2 is: 01
---
--- However, you can't use it as a different type: >vim
--- echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
---- < E1402: Positional argument 2 used as field
+--- < E1502: Positional argument 2 used as field
--- width reused as different type: long int/int
---
---- *E1403*
+--- *E1503*
--- When a positional argument is used, but not the correct number
--- or arguments is given, an error is raised: >vim
--- echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
---- < E1403: Positional argument 3 out of bounds:
+--- < E1503: Positional argument 3 out of bounds:
--- %1$d at width %2$d is: %01$*2$.*3$d
---
--- Only the first error is reported: >vim
--- echo printf("%01$*2$.*3$d %4$d", 1, 2)
---- < E1403: Positional argument 3 out of bounds:
+--- < E1503: Positional argument 3 out of bounds:
--- %01$*2$.*3$d %4$d
---
---- *E1404*
+--- *E1504*
--- A positional argument can be used more than once: >vim
--- echo printf("%1$s %2$s %1$s", "One", "Two")
--- < One Two One
---
--- However, you can't use a different type the second time: >vim
--- echo printf("%1$s %2$s %1$d", "One", "Two")
---- < E1404: Positional argument 1 type used
+--- < E1504: Positional argument 1 type used
--- inconsistently: int/string
---
---- *E1405*
+--- *E1505*
--- Various other errors that lead to a format string being
--- wrongly formatted lead to: >vim
--- echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
---- < E1405: Invalid format specifier:
+--- < E1505: Invalid format specifier:
--- %1$d at width %2$d is: %01$*2$.3$d
---
--- @param fmt any
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua
index 858f7c8afd..23ad3d3787 100644
--- a/src/nvim/eval.lua
+++ b/src/nvim/eval.lua
@@ -7520,55 +7520,55 @@ M.funcs = {
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
< 1.41
- *E1400*
+ *E1500*
You cannot mix positional and non-positional arguments: >vim
- echo printf("%s%1$s", "One", "Two")
-< E1400: Cannot mix positional and non-positional
- arguments: %s%1$s
+ echo printf("%s%1$s", "One", "Two")
+ < E1500: Cannot mix positional and non-positional
+ arguments: %s%1$s
- *E1401*
+ *E1501*
You cannot skip a positional argument in a format string: >vim
echo printf("%3$s%1$s", "One", "Two", "Three")
- < E1401: format argument 2 unused in $-style
+ < E1501: format argument 2 unused in $-style
format: %3$s%1$s
- *E1402*
+ *E1502*
You can re-use a [field-width] (or [precision]) argument: >vim
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
< 1 at width 2 is: 01
However, you can't use it as a different type: >vim
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
- < E1402: Positional argument 2 used as field
+ < E1502: Positional argument 2 used as field
width reused as different type: long int/int
- *E1403*
+ *E1503*
When a positional argument is used, but not the correct number
or arguments is given, an error is raised: >vim
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
- < E1403: Positional argument 3 out of bounds:
+ < E1503: Positional argument 3 out of bounds:
%1$d at width %2$d is: %01$*2$.*3$d
Only the first error is reported: >vim
echo printf("%01$*2$.*3$d %4$d", 1, 2)
- < E1403: Positional argument 3 out of bounds:
+ < E1503: Positional argument 3 out of bounds:
%01$*2$.*3$d %4$d
- *E1404*
+ *E1504*
A positional argument can be used more than once: >vim
echo printf("%1$s %2$s %1$s", "One", "Two")
< One Two One
However, you can't use a different type the second time: >vim
echo printf("%1$s %2$s %1$d", "One", "Two")
- < E1404: Positional argument 1 type used
+ < E1504: Positional argument 1 type used
inconsistently: int/string
- *E1405*
+ *E1505*
Various other errors that lead to a format string being
wrongly formatted lead to: >vim
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
- < E1405: Invalid format specifier:
+ < E1505: Invalid format specifier:
%1$d at width %2$d is: %01$*2$.3$d
]=],
name = 'printf',
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
index 661dae7592..7e4d07bd00 100644
--- a/src/nvim/strings.c
+++ b/src/nvim/strings.c
@@ -33,19 +33,19 @@
#include "nvim/vim.h"
static const char e_cannot_mix_positional_and_non_positional_str[]
- = N_("E1400: Cannot mix positional and non-positional arguments: %s");
+ = N_("E1500: Cannot mix positional and non-positional arguments: %s");
static const char e_fmt_arg_nr_unused_str[]
- = N_("E1401: format argument %d unused in $-style format: %s");
+ = N_("E1501: format argument %d unused in $-style format: %s");
static const char e_positional_num_field_spec_reused_str_str[]
- = N_("E1402: Positional argument %d used as field width reused as different type: %s/%s");
+ = N_("E1502: Positional argument %d used as field width reused as different type: %s/%s");
static const char e_positional_nr_out_of_bounds_str[]
- = N_("E1403: Positional argument %d out of bounds: %s");
+ = N_("E1503: Positional argument %d out of bounds: %s");
static const char e_positional_arg_num_type_inconsistent_str_str[]
- = N_("E1404: Positional argument %d type used inconsistently: %s/%s");
+ = N_("E1504: Positional argument %d type used inconsistently: %s/%s");
static const char e_invalid_format_specifier_str[]
- = N_("E1405: Invalid format specifier: %s");
+ = N_("E1505: Invalid format specifier: %s");
static const char e_aptypes_is_null_nr_str[]
- = "E1408: Internal error: ap_types or ap_types[idx] is NULL: %d: %s";
+ = "E1520: Internal error: ap_types or ap_types[idx] is NULL: %d: %s";
static const char typename_unknown[] = N_("unknown");
static const char typename_int[] = N_("int");
diff --git a/test/old/testdir/test_format.vim b/test/old/testdir/test_format.vim
index eae8af7b92..d3578e7165 100644
--- a/test/old/testdir/test_format.vim
+++ b/test/old/testdir/test_format.vim
@@ -107,65 +107,65 @@ func Test_printf_pos_misc()
call CheckLegacyAndVim9Failure(["call printf('%1$d%2$d', 1, 3, 4)"], "E767:")
- call CheckLegacyAndVim9Failure(["call printf('%2$d%d', 1, 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%d%2$d', 1, 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%2$*1$d%d', 1, 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%d%2$*1$d', 1, 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%2$.*1$d%d', 1, 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%d%2$.*1$d', 1, 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%1$%')"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%1$')"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%1$_')"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*3$.*d', 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*.*2$d', 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*.*d', 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%*.*1$d', 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%*1$.*d', 3)"], "E1400:")
- call CheckLegacyAndVim9Failure(["call printf('%*1$.*1$d', 3)"], "E1400:")
-
- call CheckLegacyAndVim9Failure(["call printf('%2$d', 3, 3)"], "E1401:")
-
- call CheckLegacyAndVim9Failure(["call printf('%2$*1$d %1$ld', 3, 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$s %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$p %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$f %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$lud %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$llud %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$lld %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$s %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$c %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$ld %1$*1$d', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$ld %2$*1$d', 3, 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*1$ld', 3)"], "E1402:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*1$.*1$ld', 3)"], "E1402:")
-
- call CheckLegacyAndVim9Failure(["call printf('%1$d%2$d', 3)"], "E1403:")
-
- call CheckLegacyAndVim9Failure(["call printf('%1$d %1$s', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$ld %1$s', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$ud %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$s %1$f', 3.0)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*1$d %1$ld', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$s %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$p %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$f %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$lud %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$llud %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$lld %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$s %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$c %1$d', 3)"], "E1404:")
- call CheckLegacyAndVim9Failure(["call printf('%1$ld %1$d', 3)"], "E1404:")
-
- call CheckLegacyAndVim9Failure(["call printf('%1$.2$d', 3)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%01$d', 3)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%01$0d', 3)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*2d', 3)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*3.*2$d', 3)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*3$.2$d', 3)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%1$*3$.*2d', 3)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%1$1$.5d', 5)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%1$5.1$d', 5)"], "E1405:")
- call CheckLegacyAndVim9Failure(["call printf('%1$1$.1$d', 5)"], "E1405:")
+ call CheckLegacyAndVim9Failure(["call printf('%2$d%d', 1, 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%d%2$d', 1, 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%2$*1$d%d', 1, 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%d%2$*1$d', 1, 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%2$.*1$d%d', 1, 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%d%2$.*1$d', 1, 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$%')"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$')"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$_')"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*3$.*d', 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*.*2$d', 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*.*d', 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%*.*1$d', 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%*1$.*d', 3)"], "E1500:")
+ call CheckLegacyAndVim9Failure(["call printf('%*1$.*1$d', 3)"], "E1500:")
+
+ call CheckLegacyAndVim9Failure(["call printf('%2$d', 3, 3)"], "E1501:")
+
+ call CheckLegacyAndVim9Failure(["call printf('%2$*1$d %1$ld', 3, 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$s %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$p %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$f %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$lud %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$llud %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$lld %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$s %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$c %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$ld %1$*1$d', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$ld %2$*1$d', 3, 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*1$ld', 3)"], "E1502:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*1$.*1$ld', 3)"], "E1502:")
+
+ call CheckLegacyAndVim9Failure(["call printf('%1$d%2$d', 3)"], "E1503:")
+
+ call CheckLegacyAndVim9Failure(["call printf('%1$d %1$s', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$ld %1$s', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$ud %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$s %1$f', 3.0)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*1$d %1$ld', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$s %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$p %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$f %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$lud %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$llud %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$lld %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$s %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$c %1$d', 3)"], "E1504:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$ld %1$d', 3)"], "E1504:")
+
+ call CheckLegacyAndVim9Failure(["call printf('%1$.2$d', 3)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%01$d', 3)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%01$0d', 3)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*2d', 3)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*3.*2$d', 3)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*3$.2$d', 3)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$*3$.*2d', 3)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$1$.5d', 5)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$5.1$d', 5)"], "E1505:")
+ call CheckLegacyAndVim9Failure(["call printf('%1$1$.1$d', 5)"], "E1505:")
endfunc
func Test_printf_pos_float()
@@ -296,9 +296,9 @@ func Test_printf_pos_errors()
call CheckLegacyAndVim9Failure(['echo printf("%1$d", [])'], 'E745:')
call CheckLegacyAndVim9Failure(['echo printf("%1$d", 1, 2)'], 'E767:')
call CheckLegacyAndVim9Failure(['echo printf("%*d", 1)'], 'E766:')
- call CheckLegacyAndVim9Failure(['echo printf("%1$s")'], 'E1403:')
+ call CheckLegacyAndVim9Failure(['echo printf("%1$s")'], 'E1503:')
call CheckLegacyAndVim9Failure(['echo printf("%1$d", 1.2)'], 'E805:')
- call CheckLegacyAndVim9Failure(['echo printf("%1$f")'], 'E1403:')
+ call CheckLegacyAndVim9Failure(['echo printf("%1$f")'], 'E1503:')
endfunc
func Test_printf_pos_64bit()