aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vimscript.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/api/vimscript.c')
-rw-r--r--src/nvim/api/vimscript.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/nvim/api/vimscript.c b/src/nvim/api/vimscript.c
index 698b2d06fb..d3675a3c40 100644
--- a/src/nvim/api/vimscript.c
+++ b/src/nvim/api/vimscript.c
@@ -802,10 +802,15 @@ Dictionary nvim_parse_cmd(String str, Dictionary opts, Error *err)
// Parse command line
exarg_T ea;
CmdParseInfo cmdinfo;
- char_u *cmdline = (char_u *)string_to_cstr(str);
+ char *cmdline = string_to_cstr(str);
+ char *errormsg = NULL;
- if (!parse_cmdline(cmdline, &ea, &cmdinfo)) {
- api_set_error(err, kErrorTypeException, "Error while parsing command line");
+ if (!parse_cmdline(cmdline, &ea, &cmdinfo, &errormsg)) {
+ if (errormsg != NULL) {
+ api_set_error(err, kErrorTypeException, "Error while parsing command line: %s", errormsg);
+ } else {
+ api_set_error(err, kErrorTypeException, "Error while parsing command line");
+ }
goto end;
}
@@ -854,7 +859,7 @@ Dictionary nvim_parse_cmd(String str, Dictionary opts, Error *err)
ADD(range, INTEGER_OBJ(ea.line1));
}
ADD(range, INTEGER_OBJ(ea.line2));
- PUT(result, "range", ARRAY_OBJ(range));;
+ PUT(result, "range", ARRAY_OBJ(range));
} else {
PUT(result, "range", ARRAY_OBJ(ARRAY_DICT_INIT));
}