mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-03-31 17:07:27 +08:00
Fix bug causing flood of error messages in terminal when trying to highlight an invalid command, reported by Denilson F. de Sa.
darcs-hash:20080204230905-ac50b-0829b69835347e5875656ae735181b724f10de2a.gz
This commit is contained in:
parent
3f439e9cd3
commit
d7396ac59f
4
expand.h
4
expand.h
@ -58,6 +58,10 @@
|
|||||||
Use unencoded private-use keycodes for internal characters
|
Use unencoded private-use keycodes for internal characters
|
||||||
*/
|
*/
|
||||||
#define EXPAND_RESERVED 0xf000
|
#define EXPAND_RESERVED 0xf000
|
||||||
|
/**
|
||||||
|
End of range reserved for expand
|
||||||
|
*/
|
||||||
|
#define EXPAND_RESERVED_END 0xf000f
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
22
highlight.c
22
highlight.c
@ -530,6 +530,20 @@ static void highlight_param( const wchar_t * buff,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int has_expand_reserved( wchar_t *str )
|
||||||
|
{
|
||||||
|
while( *str )
|
||||||
|
{
|
||||||
|
if( *str >= EXPAND_RESERVED &&
|
||||||
|
*str <= EXPAND_RESERVED_END )
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void highlight_shell( wchar_t * buff,
|
void highlight_shell( wchar_t * buff,
|
||||||
int *color,
|
int *color,
|
||||||
@ -636,10 +650,10 @@ void highlight_shell( wchar_t * buff,
|
|||||||
Command. First check that the command actually exists.
|
Command. First check that the command actually exists.
|
||||||
*/
|
*/
|
||||||
cmd = expand_one( context,
|
cmd = expand_one( context,
|
||||||
wcsdup(tok_last( &tok )),
|
wcsdup(tok_last( &tok )),
|
||||||
EXPAND_SKIP_CMDSUBST | EXPAND_SKIP_VARIABLES);
|
EXPAND_SKIP_CMDSUBST | EXPAND_SKIP_VARIABLES);
|
||||||
|
|
||||||
if( cmd == 0 )
|
if( (cmd == 0) || has_expand_reserved( cmd ) )
|
||||||
{
|
{
|
||||||
color[ tok_get_pos( &tok ) ] = HIGHLIGHT_ERROR;
|
color[ tok_get_pos( &tok ) ] = HIGHLIGHT_ERROR;
|
||||||
}
|
}
|
||||||
@ -698,7 +712,7 @@ void highlight_shell( wchar_t * buff,
|
|||||||
}
|
}
|
||||||
tok_set_pos( &tok, mark );
|
tok_set_pos( &tok, mark );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !is_subcommand )
|
if( !is_subcommand )
|
||||||
{
|
{
|
||||||
wchar_t *tmp;
|
wchar_t *tmp;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user