diff options
author | Famiu Haque <famiuhaque@protonmail.com> | 2022-05-05 23:11:57 +0600 |
---|---|---|
committer | Famiu Haque <famiuhaque@protonmail.com> | 2022-05-05 23:11:57 +0600 |
commit | 511f06a56e77f612f7bc8ca563ebecb7239a9914 (patch) | |
tree | 018ca187cedf763615c9799d8b81cf52f45691a1 /src/nvim/api/vimscript.c | |
parent | 1eecea8449557572295837d3213b2fdb42ce74ef (diff) | |
download | rneovim-511f06a56e77f612f7bc8ca563ebecb7239a9914.tar.gz rneovim-511f06a56e77f612f7bc8ca563ebecb7239a9914.tar.bz2 rneovim-511f06a56e77f612f7bc8ca563ebecb7239a9914.zip |
fix(api): make `nvim_parse_cmd` propagate errors
Makes `nvim_parse_cmd` propagate any errors that occur while parsing to
give the user a better idea of what's wrong with the command.
Diffstat (limited to 'src/nvim/api/vimscript.c')
-rw-r--r-- | src/nvim/api/vimscript.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/api/vimscript.c b/src/nvim/api/vimscript.c index 698b2d06fb..3346b5a237 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; } |