mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 05:13:10 +00:00
Fix to highlight search results range matching again
This commit is contained in:
parent
f20f49d872
commit
5c205c43d1
1 changed files with 21 additions and 16 deletions
37
reader.cpp
37
reader.cpp
|
@ -2397,6 +2397,25 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Called to set the highlight flag for search results */
|
||||||
|
static void highlight_search(void) {
|
||||||
|
if( ! data->search_buff.empty())
|
||||||
|
{
|
||||||
|
wchar_t * match = wcsstr( data->buff, data->search_buff.c_str() );
|
||||||
|
if( match )
|
||||||
|
{
|
||||||
|
int start = match-data->buff;
|
||||||
|
int count = data->search_buff.size();
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for( i=0; i<count; i++ )
|
||||||
|
{
|
||||||
|
data->color[start+i] |= HIGHLIGHT_SEARCH_MATCH<<16;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void highlight_complete(void *ctx_ptr, int result) {
|
static void highlight_complete(void *ctx_ptr, int result) {
|
||||||
background_highlight_context_t *ctx = (background_highlight_context_t *)ctx_ptr;
|
background_highlight_context_t *ctx = (background_highlight_context_t *)ctx_ptr;
|
||||||
if (ctx->buff == data->buff) {
|
if (ctx->buff == data->buff) {
|
||||||
|
@ -2406,6 +2425,7 @@ static void highlight_complete(void *ctx_ptr, int result) {
|
||||||
ctx->color = NULL;
|
ctx->color = NULL;
|
||||||
//data->repaint_needed = 1;
|
//data->repaint_needed = 1;
|
||||||
//s_reset( &data->screen, 1 );
|
//s_reset( &data->screen, 1 );
|
||||||
|
highlight_search();
|
||||||
reader_repaint();
|
reader_repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2455,22 +2475,7 @@ static void reader_super_highlight_me_plenty( int match_highlight_pos, array_lis
|
||||||
#else
|
#else
|
||||||
data->highlight_function( ctx->buff, ctx->color, match_highlight_pos, error, highlight_complete2, ctx );
|
data->highlight_function( ctx->buff, ctx->color, match_highlight_pos, error, highlight_complete2, ctx );
|
||||||
#endif
|
#endif
|
||||||
|
highlight_search();
|
||||||
if( ! data->search_buff.empty())
|
|
||||||
{
|
|
||||||
wchar_t * match = wcsstr( data->buff, data->search_buff.c_str() );
|
|
||||||
if( match )
|
|
||||||
{
|
|
||||||
int start = match-data->buff;
|
|
||||||
int count = data->search_buff.size();
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for( i=0; i<count; i++ )
|
|
||||||
{
|
|
||||||
data->color[start+i] |= HIGHLIGHT_SEARCH_MATCH<<16;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue