diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/buffer.c | 32 | ||||
-rw-r--r-- | src/nvim/option_defs.h | 4 | ||||
-rw-r--r-- | src/nvim/regexp_defs.h | 2 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
4 files changed, 21 insertions, 19 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index f84e25cdfb..8327f3c836 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -1758,7 +1758,7 @@ buflist_findpat ( FOR_ALL_BUFFERS(buf) { if (buf->b_p_bl == find_listed && (!diffmode || diff_mode_buf(buf)) - && buflist_match(prog, buf) != NULL) { + && buflist_match(prog, buf, false) != NULL) { if (curtab_only) { /* Ignore the match if the buffer is not open in * the current tab. */ @@ -1852,7 +1852,7 @@ int ExpandBufnames(char_u *pat, int *num_file, char_u ***file, int options) FOR_ALL_BUFFERS(buf) { if (!buf->b_p_bl) /* skip unlisted buffers */ continue; - p = buflist_match(prog, buf); + p = buflist_match(prog, buf, p_wic); if (p != NULL) { if (round == 1) ++count; @@ -1885,26 +1885,27 @@ int ExpandBufnames(char_u *pat, int *num_file, char_u ***file, int options) #ifdef HAVE_BUFLIST_MATCH -/* - * Check for a match on the file name for buffer "buf" with regprog "prog". - */ -static char_u *buflist_match(regprog_T *prog, buf_T *buf) +/// Check for a match on the file name for buffer "buf" with regprog "prog". +/// +/// @param ignore_case When TRUE, ignore case. Use 'fic' otherwise. +static char_u *buflist_match(regprog_T *prog, buf_T *buf, bool ignore_case) { char_u *match; /* First try the short file name, then the long file name. */ - match = fname_match(prog, buf->b_sfname); - if (match == NULL) - match = fname_match(prog, buf->b_ffname); + match = fname_match(prog, buf->b_sfname, ignore_case); + if (match == NULL) { + match = fname_match(prog, buf->b_ffname, ignore_case); + } return match; } -/* - * Try matching the regexp in "prog" with file name "name". - * Return "name" when there is a match, NULL when not. - */ -static char_u *fname_match(regprog_T *prog, char_u *name) +/// Try matching the regexp in "prog" with file name "name". +/// +/// @param ignore_case When TRUE, ignore case. Use 'fileignorecase' otherwise. +/// @return "name" when there is a match, NULL when not. +static char_u *fname_match(regprog_T *prog, char_u *name, bool ignore_case) { char_u *match = NULL; char_u *p; @@ -1912,7 +1913,8 @@ static char_u *fname_match(regprog_T *prog, char_u *name) if (name != NULL) { regmatch.regprog = prog; - regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */ + // Ignore case when 'fileignorecase' or the argument is set. + regmatch.rm_ic = p_fic || ignore_case; if (vim_regexec(®match, name, (colnr_T)0)) match = name; else { diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h index 39dfbe8b88..4422fbc756 100644 --- a/src/nvim/option_defs.h +++ b/src/nvim/option_defs.h @@ -369,7 +369,7 @@ EXTERN int p_ek; /* 'esckeys' */ EXTERN int p_exrc; /* 'exrc' */ EXTERN char_u *p_fencs; /* 'fileencodings' */ EXTERN char_u *p_ffs; /* 'fileformats' */ -EXTERN long p_fic; /* 'fileignorecase' */ +EXTERN bool p_fic; ///< 'fileignorecase' EXTERN char_u *p_fcl; /* 'foldclose' */ EXTERN long p_fdls; /* 'foldlevelstart' */ EXTERN char_u *p_fdo; /* 'foldopen' */ @@ -621,7 +621,7 @@ EXTERN int p_wiv; /* 'weirdinvert' */ EXTERN char_u *p_ww; /* 'whichwrap' */ EXTERN long p_wc; /* 'wildchar' */ EXTERN long p_wcm; /* 'wildcharm' */ -EXTERN long p_wic; /* 'wildignorecase' */ +EXTERN bool p_wic; ///< 'wildignorecase' EXTERN char_u *p_wim; /* 'wildmode' */ EXTERN int p_wmnu; /* 'wildmenu' */ EXTERN long p_wh; /* 'winheight' */ diff --git a/src/nvim/regexp_defs.h b/src/nvim/regexp_defs.h index 8aa89d22b7..1e00f14ac6 100644 --- a/src/nvim/regexp_defs.h +++ b/src/nvim/regexp_defs.h @@ -108,7 +108,7 @@ typedef struct { regprog_T *regprog; char_u *startp[NSUBEXP]; char_u *endp[NSUBEXP]; - int rm_ic; + bool rm_ic; } regmatch_T; /* diff --git a/src/nvim/version.c b/src/nvim/version.c index e1819865f0..245f797306 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -282,7 +282,7 @@ static int included_patches[] = { //458, //457, //456, - //455, + 455, 454, //453 NA //452, |