Mercurial > vim
changeset 31819:aec031683d61 v9.0.1242
patch 9.0.1242: code for :runtime completion is not consistent
Commit: https://github.com/vim/vim/commit/b0d45ec67f4976318f199a7929ad3bcf93686fd0
Author: zeertzjq <zeertzjq@outlook.com>
Date: Wed Jan 25 15:04:22 2023 +0000
patch 9.0.1242: code for :runtime completion is not consistent
Problem: Code for :runtime completion is not consistent.
Solution: Make code for cmdline expansion more consistent. (closes https://github.com/vim/vim/issues/11875)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 25 Jan 2023 16:15:06 +0100 |
parents | 9a2b2949d045 |
children | 08ee50169c0f |
files | src/cmdexpand.c src/option.c src/proto/option.pro src/testdir/test_packadd.vim src/version.c |
diffstat | 5 files changed, 19 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -1363,11 +1363,11 @@ addstar( // For a tag pattern starting with "/" no translation is needed. if (context == EXPAND_HELP || context == EXPAND_COLORS - || context == EXPAND_RUNTIME || context == EXPAND_COMPILER || context == EXPAND_OWNSYNTAX || context == EXPAND_FILETYPE || context == EXPAND_PACKADD + || context == EXPAND_RUNTIME || ((context == EXPAND_TAGS_LISTFILES || context == EXPAND_TAGS) && fname[0] == '/')) @@ -2314,10 +2314,6 @@ set_context_by_cmdname( xp->xp_pattern = arg; break; - case CMD_runtime: - set_context_in_runtime_cmd(xp, arg); - break; - case CMD_compiler: xp->xp_context = EXPAND_COMPILER; xp->xp_pattern = arg; @@ -2338,6 +2334,10 @@ set_context_by_cmdname( xp->xp_pattern = arg; break; + case CMD_runtime: + set_context_in_runtime_cmd(xp, arg); + break; + #if defined(HAVE_LOCALE_H) || defined(X_LOCALE) case CMD_language: return set_context_in_lang_cmd(xp, arg);
--- a/src/option.c +++ b/src/option.c @@ -6713,14 +6713,14 @@ ExpandSettings( } int -ExpandOldSetting(int *num_file, char_u ***file) +ExpandOldSetting(int *numMatches, char_u ***matches) { char_u *var = NULL; // init for GCC char_u *buf; - *num_file = 0; - *file = ALLOC_ONE(char_u *); - if (*file == NULL) + *numMatches = 0; + *matches = ALLOC_ONE(char_u *); + if (*matches == NULL) return FAIL; /* @@ -6748,7 +6748,7 @@ ExpandOldSetting(int *num_file, char_u * if (buf == NULL) { - VIM_CLEAR(*file); + VIM_CLEAR(*matches); return FAIL; } @@ -6764,8 +6764,8 @@ ExpandOldSetting(int *num_file, char_u * STRMOVE(var, var + 1); #endif - *file[0] = buf; - *num_file = 1; + *matches[0] = buf; + *numMatches = 1; return OK; }
--- a/src/proto/option.pro +++ b/src/proto/option.pro @@ -66,7 +66,7 @@ void set_iminsert_global(void); void set_imsearch_global(void); void set_context_in_set_cmd(expand_T *xp, char_u *arg, int opt_flags); int ExpandSettings(expand_T *xp, regmatch_T *regmatch, char_u *fuzzystr, int *numMatches, char_u ***matches, int can_fuzzy); -int ExpandOldSetting(int *num_file, char_u ***file); +int ExpandOldSetting(int *numMatches, char_u ***matches); int shortmess(int x); void vimrc_found(char_u *fname, char_u *envname); void change_compatible(int on);
--- a/src/testdir/test_packadd.vim +++ b/src/testdir/test_packadd.vim @@ -27,7 +27,7 @@ func Test_packadd() let rtp_entries = split(rtp, ',') for entry in rtp_entries - if entry =~? '\<after\>' + if entry =~? '\<after\>' let first_after_entry = entry break endif @@ -183,7 +183,7 @@ func Test_packadd_symlink_dir2() exec "silent !rmdir" top2_dir endfunc -" Check command-line completion for 'packadd' +" Check command-line completion for :packadd func Test_packadd_completion() let optdir1 = &packpath . '/pack/mine/opt' let optdir2 = &packpath . '/pack/candidate/opt' @@ -271,9 +271,9 @@ func Test_helptags() helptags ALL - let tags1 = readfile(docdir1 . '/tags') + let tags1 = readfile(docdir1 . '/tags') call assert_match('look-here', tags1[0]) - let tags2 = readfile(docdir2 . '/tags') + let tags2 = readfile(docdir2 . '/tags') call assert_match('look-away', tags2[0]) call assert_fails('helptags abcxyz', 'E150:')