# HG changeset patch # User Bram Moolenaar # Date 1674659706 -3600 # Node ID aec031683d61e70ccda1f299c3ac2ff94b355d6d # Parent 9a2b2949d045537a178ed92b1a9f649c5c90feab patch 9.0.1242: code for :runtime completion is not consistent Commit: https://github.com/vim/vim/commit/b0d45ec67f4976318f199a7929ad3bcf93686fd0 Author: zeertzjq 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) diff --git a/src/cmdexpand.c b/src/cmdexpand.c --- 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); diff --git a/src/option.c b/src/option.c --- 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; } diff --git a/src/proto/option.pro b/src/proto/option.pro --- 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); diff --git a/src/testdir/test_packadd.vim b/src/testdir/test_packadd.vim --- 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 =~? '\' + if entry =~? '\' 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:') diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1242, +/**/ 1241, /**/ 1240,