aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/runtime.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-01-17 20:49:08 +0800
committerGitHub <noreply@github.com>2023-01-17 20:49:08 +0800
commit99186508d9a1b7536441112f9bbe48690592b5d7 (patch)
tree8d9c872732f56feb3175819b1f532250f7e0717c /src/nvim/runtime.c
parent2d71ed9929d6393ed46f9d0c218ed9ef37b67f1f (diff)
parentc416da9d1a41b919412d88aecf827aebb8ea973b (diff)
downloadrneovim-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.c11
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;