mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-12 00:03:39 +08:00
149594f974
darcs-hash:20050920132639-ac50b-fa3b476891e1f5f67207cf4cc7bf623834cc5edc.gz
90 lines
2.2 KiB
C
90 lines
2.2 KiB
C
/**
|
|
Constants for various character classifications. Each character of a command string can be classified as one of the following types.
|
|
*/
|
|
enum
|
|
{
|
|
HIGHLIGHT_NORMAL,
|
|
HIGHLIGHT_COMMAND,
|
|
HIGHLIGHT_SUBSHELL,
|
|
HIGHLIGHT_REDIRECTION,
|
|
HIGHLIGHT_END,
|
|
HIGHLIGHT_ERROR,
|
|
HIGHLIGHT_PARAM,
|
|
HIGHLIGHT_COMMENT,
|
|
HIGHLIGHT_MATCH,
|
|
HIGHLIGHT_SEARCH_MATCH,
|
|
}
|
|
;
|
|
|
|
/**
|
|
Constants for various colors as used by the set_color function.
|
|
*/
|
|
enum
|
|
{
|
|
FISH_COLOR_BLACK,
|
|
FISH_COLOR_RED,
|
|
FISH_COLOR_GREEN,
|
|
FISH_COLOR_YELLOW,
|
|
FISH_COLOR_BLUE,
|
|
FISH_COLOR_MAGENTA,
|
|
FISH_COLOR_CYAN,
|
|
FISH_COLOR_WHITE,
|
|
/** The default fg color of the terminal */
|
|
FISH_COLOR_NORMAL
|
|
}
|
|
;
|
|
|
|
|
|
/**
|
|
Sets the fg and bg color. May be called as often as you like, since
|
|
if the new color is the same as the previous, nothing will be
|
|
written. Negative values for set_color will also be ignored. Since
|
|
the terminfo string this function emits can potentially cause the
|
|
screen to flicker, the function takes care to write as little as
|
|
possible.
|
|
|
|
Possible values for color are any form the FISH_COLOR_* enum,
|
|
FISH_COLOR_IGNORE and FISH_COLOR_RESET. FISH_COLOR_IGNORE will
|
|
leave the color unchanged, and FISH_COLOR_RESET will perform an
|
|
exit_attribute_mode, even if set_color thinks it is already in
|
|
FISH_COLOR_NORMAL mode.
|
|
|
|
In order to set the color to normal, three terminfo strings may
|
|
have to be written.
|
|
|
|
- First a string to set the color, such as set_a_foreground. This
|
|
is needed because otherwise the previous strings colors might be
|
|
removed as well.
|
|
|
|
- After that we write the exit_attribute_mode string to reset all
|
|
color attributes.
|
|
|
|
- Lastly we may need to write set_a_background or set_a_foreground
|
|
to set the other half of the color pair to what it should be.
|
|
|
|
\param c Foreground color.
|
|
\param c2 Background color.
|
|
*/
|
|
|
|
|
|
void set_color( int c, int c2 );
|
|
|
|
/**
|
|
Write a char * narrow string to FD 1, needed for the terminfo
|
|
strings.
|
|
*/
|
|
int writembs( char *str );
|
|
|
|
int writech( wint_t ch );
|
|
|
|
void writestr( const wchar_t *str );
|
|
|
|
void writestr_ellipsis( const wchar_t *str, int max_width );
|
|
|
|
int write_escaped_str( const wchar_t *str, int max_len );
|
|
|
|
int writespace( int c );
|
|
|
|
int output_color_code( const wchar_t *val );
|
|
|