diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-01-17 20:49:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-17 20:49:08 +0800 |
commit | 99186508d9a1b7536441112f9bbe48690592b5d7 (patch) | |
tree | 8d9c872732f56feb3175819b1f532250f7e0717c /src/nvim/runtime.c | |
parent | 2d71ed9929d6393ed46f9d0c218ed9ef37b67f1f (diff) | |
parent | c416da9d1a41b919412d88aecf827aebb8ea973b (diff) | |
download | rneovim-99186508d9a1b7536441112f9bbe48690592b5d7.tar.gz rneovim-99186508d9a1b7536441112f9bbe48690592b5d7.tar.bz2 rneovim-99186508d9a1b7536441112f9bbe48690592b5d7.zip |
Merge pull request #21859 from zeertzjq/vim-8.2.4617
vim-patch:8.2.{4617,4618,4620,5126}
Diffstat (limited to 'src/nvim/runtime.c')
-rw-r--r-- | src/nvim/runtime.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/runtime.c b/src/nvim/runtime.c index ea975042ed..321023bce2 100644 --- a/src/nvim/runtime.c +++ b/src/nvim/runtime.c @@ -2160,12 +2160,17 @@ scriptitem_T *get_current_script_id(char **fnamep, sctx_T *ret_sctx) /// ":scriptnames" void ex_scriptnames(exarg_T *eap) { - if (eap->addr_count > 0) { + if (eap->addr_count > 0 || *eap->arg != NUL) { // :script {scriptId}: edit the script - if (eap->line2 < 1 || eap->line2 > script_items.ga_len) { + if (eap->addr_count > 0 && !SCRIPT_ID_VALID(eap->line2)) { emsg(_(e_invarg)); } else { - eap->arg = SCRIPT_ITEM(eap->line2).sn_name; + if (eap->addr_count > 0) { + eap->arg = SCRIPT_ITEM(eap->line2).sn_name; + } else { + expand_env(eap->arg, NameBuff, MAXPATHL); + eap->arg = NameBuff; + } do_exedit(eap, NULL); } return; |