aboutsummaryrefslogtreecommitdiffhomepage
path: root/output.h
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2005-09-20 23:26:39 +1000
committerGravatar axel <axel@liljencrantz.se>2005-09-20 23:26:39 +1000
commit149594f974350bb364a76c73b91b1d5ffddaa1fa (patch)
tree95650e9982d5fabe4bd805d94c5d700cbbc1ca7f /output.h
Initial revision
darcs-hash:20050920132639-ac50b-fa3b476891e1f5f67207cf4cc7bf623834cc5edc.gz
Diffstat (limited to 'output.h')
-rw-r--r--output.h89
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 );
+