mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
updated for version 7.4.455
Problem: Completion for :buf does not use 'wildignorecase'. (Akshay H) Solution: Pass the 'wildignorecase' flag around.
This commit is contained in:
21
src/buffer.c
21
src/buffer.c
@@ -28,9 +28,9 @@
|
|||||||
#include "vim.h"
|
#include "vim.h"
|
||||||
|
|
||||||
#if defined(FEAT_CMDL_COMPL) || defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL)
|
#if defined(FEAT_CMDL_COMPL) || defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL)
|
||||||
static char_u *buflist_match __ARGS((regprog_T *prog, buf_T *buf));
|
static char_u *buflist_match __ARGS((regprog_T *prog, buf_T *buf, int ignore_case));
|
||||||
# define HAVE_BUFLIST_MATCH
|
# define HAVE_BUFLIST_MATCH
|
||||||
static char_u *fname_match __ARGS((regprog_T *prog, char_u *name));
|
static char_u *fname_match __ARGS((regprog_T *prog, char_u *name, int ignore_case));
|
||||||
#endif
|
#endif
|
||||||
static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options));
|
static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options));
|
||||||
static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer));
|
static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer));
|
||||||
@@ -2282,7 +2282,7 @@ buflist_findpat(pattern, pattern_end, unlisted, diffmode, curtab_only)
|
|||||||
#ifdef FEAT_DIFF
|
#ifdef FEAT_DIFF
|
||||||
&& (!diffmode || diff_mode_buf(buf))
|
&& (!diffmode || diff_mode_buf(buf))
|
||||||
#endif
|
#endif
|
||||||
&& buflist_match(prog, buf) != NULL)
|
&& buflist_match(prog, buf, FALSE) != NULL)
|
||||||
{
|
{
|
||||||
if (curtab_only)
|
if (curtab_only)
|
||||||
{
|
{
|
||||||
@@ -2396,7 +2396,7 @@ ExpandBufnames(pat, num_file, file, options)
|
|||||||
{
|
{
|
||||||
if (!buf->b_p_bl) /* skip unlisted buffers */
|
if (!buf->b_p_bl) /* skip unlisted buffers */
|
||||||
continue;
|
continue;
|
||||||
p = buflist_match(prog, buf);
|
p = buflist_match(prog, buf, p_wic);
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
{
|
{
|
||||||
if (round == 1)
|
if (round == 1)
|
||||||
@@ -2444,16 +2444,17 @@ ExpandBufnames(pat, num_file, file, options)
|
|||||||
* Check for a match on the file name for buffer "buf" with regprog "prog".
|
* Check for a match on the file name for buffer "buf" with regprog "prog".
|
||||||
*/
|
*/
|
||||||
static char_u *
|
static char_u *
|
||||||
buflist_match(prog, buf)
|
buflist_match(prog, buf, ignore_case)
|
||||||
regprog_T *prog;
|
regprog_T *prog;
|
||||||
buf_T *buf;
|
buf_T *buf;
|
||||||
|
int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */
|
||||||
{
|
{
|
||||||
char_u *match;
|
char_u *match;
|
||||||
|
|
||||||
/* First try the short file name, then the long file name. */
|
/* First try the short file name, then the long file name. */
|
||||||
match = fname_match(prog, buf->b_sfname);
|
match = fname_match(prog, buf->b_sfname, ignore_case);
|
||||||
if (match == NULL)
|
if (match == NULL)
|
||||||
match = fname_match(prog, buf->b_ffname);
|
match = fname_match(prog, buf->b_ffname, ignore_case);
|
||||||
|
|
||||||
return match;
|
return match;
|
||||||
}
|
}
|
||||||
@@ -2463,9 +2464,10 @@ buflist_match(prog, buf)
|
|||||||
* Return "name" when there is a match, NULL when not.
|
* Return "name" when there is a match, NULL when not.
|
||||||
*/
|
*/
|
||||||
static char_u *
|
static char_u *
|
||||||
fname_match(prog, name)
|
fname_match(prog, name, ignore_case)
|
||||||
regprog_T *prog;
|
regprog_T *prog;
|
||||||
char_u *name;
|
char_u *name;
|
||||||
|
int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */
|
||||||
{
|
{
|
||||||
char_u *match = NULL;
|
char_u *match = NULL;
|
||||||
char_u *p;
|
char_u *p;
|
||||||
@@ -2474,7 +2476,8 @@ fname_match(prog, name)
|
|||||||
if (name != NULL)
|
if (name != NULL)
|
||||||
{
|
{
|
||||||
regmatch.regprog = prog;
|
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))
|
if (vim_regexec(®match, name, (colnr_T)0))
|
||||||
match = name;
|
match = name;
|
||||||
else
|
else
|
||||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
455,
|
||||||
/**/
|
/**/
|
||||||
454,
|
454,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user