diff options
author | axel <axel@liljencrantz.se> | 2005-09-20 23:26:39 +1000 |
---|---|---|
committer | axel <axel@liljencrantz.se> | 2005-09-20 23:26:39 +1000 |
commit | 149594f974350bb364a76c73b91b1d5ffddaa1fa (patch) | |
tree | 95650e9982d5fabe4bd805d94c5d700cbbc1ca7f /output.h |
Initial revision
darcs-hash:20050920132639-ac50b-fa3b476891e1f5f67207cf4cc7bf623834cc5edc.gz
Diffstat (limited to 'output.h')
-rw-r--r-- | output.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/output.h b/output.h new file mode 100644 index 00000000..cf6fc9b6 --- /dev/null +++ b/output.h @@ -0,0 +1,89 @@ +/** + 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 ); + |