aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vimscript.c
diff options
context:
space:
mode:
authorFamiu Haque <famiuhaque@protonmail.com>2022-05-07 08:57:21 +0600
committerFamiu Haque <famiuhaque@protonmail.com>2022-05-07 12:26:49 +0600
commit14f3383c0da1413a5ae82feb19ac89f01d4b9aad (patch)
tree5ebc5fa82a29f0dd3e3aafc927b517a0d95e7ae9 /src/nvim/api/vimscript.c
parentb2a8ed08551d2edf2bf98e830860f0130acd00f8 (diff)
downloadrneovim-14f3383c0da1413a5ae82feb19ac89f01d4b9aad.tar.gz
rneovim-14f3383c0da1413a5ae82feb19ac89f01d4b9aad.tar.bz2
rneovim-14f3383c0da1413a5ae82feb19ac89f01d4b9aad.zip
fix(api): make `nvim_parse_cmd` work correctly with both range and count
It seems range and count can be used together in commands. This PR fixes the behavior of `nvim_parse_cmd` for those cases by removing the mutual exclusivity of "range" and "count". It also removes range line number validation for `nvim_parse_cmd` as it's not its job to validate the command.
Diffstat (limited to 'src/nvim/api/vimscript.c')
-rw-r--r--src/nvim/api/vimscript.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/nvim/api/vimscript.c b/src/nvim/api/vimscript.c
index d3675a3c40..9396435466 100644
--- a/src/nvim/api/vimscript.c
+++ b/src/nvim/api/vimscript.c
@@ -752,7 +752,7 @@ Dictionary nvim_parse_expression(String expr, String flags, Boolean highlight, E
/// no range was specified, one element if only a single range item was
/// specified and two elements if both range items were specified.
/// - count: (number) Any |<count>| that was supplied to the command. -1 if command cannot
-/// take a count. Mutually exclusive with "range".
+/// take a count.
/// - reg: (number) The optional command |<register>|, if specified. Empty string if not
/// specified or if command cannot take a register.
/// - bang: (boolean) Whether command contains a |<bang>| (!) modifier.
@@ -853,7 +853,7 @@ Dictionary nvim_parse_cmd(String str, Dictionary opts, Error *err)
PUT(result, "cmd", CSTR_TO_OBJ((char *)get_command_name(NULL, ea.cmdidx)));
}
- if ((ea.argt & EX_RANGE) && !(ea.argt & EX_COUNT) && ea.addr_count > 0) {
+ if ((ea.argt & EX_RANGE) && ea.addr_count > 0) {
Array range = ARRAY_DICT_INIT;
if (ea.addr_count > 1) {
ADD(range, INTEGER_OBJ(ea.line1));