aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/runtime.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-01-17 16:07:38 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-01-17 20:26:06 +0800
commit3db2139195b4ed2378d12b2fdae63e92725aa782 (patch)
tree142b2c8be0a06f9fccc7a368364ac09029b9a727 /src/nvim/runtime.c
parent2d71ed9929d6393ed46f9d0c218ed9ef37b67f1f (diff)
downloadrneovim-3db2139195b4ed2378d12b2fdae63e92725aa782.tar.gz
rneovim-3db2139195b4ed2378d12b2fdae63e92725aa782.tar.bz2
rneovim-3db2139195b4ed2378d12b2fdae63e92725aa782.zip
vim-patch:8.2.4617: no completion for :scriptnames
Problem: No completion for :scriptnames. Solution: Implement :scriptnames completion. (Yegappan Lakshmanan, closes vim/vim#10005) https://github.com/vim/vim/commit/454ce6737cadb82886f1fc0eb9e8666cc59ae42b Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
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;