term_ostream
class ¶The term_ostream
class supports output to a file descriptor that
is connected to a terminal emulator or console. Its type is
‘term_ostream_t’. It is a subclass of ‘ostream_t’.
It can be instantiated through this function:
term_ostream_t
term_ostream_create (int fd, const char *filename, ttyctl_t tty_control)
¶Creates an output stream referring to the file descriptor fd
.
filename
is used only for error messages.
tty_control
specifies the amount of control to take over the
underlying tty.
The resulting stream will be line-buffered.
Note: The resulting stream must be closed before fd
can be
closed.
The class adds the following methods:
term_color_t
term_ostream_rgb_to_color (term_ostream_t stream, int red, int green, int blue)
¶Converts an RGB value
(red
, green
, blue
in [0..255]) to
a color, valid for this stream only.
term_color_t
term_ostream_get_color (term_ostream_t stream)
¶void
term_ostream_set_color (term_ostream_t stream, term_color_t color)
¶Gets/sets the text color.
term_color_t
term_ostream_get_bgcolor (term_ostream_t stream)
¶void
term_ostream_set_bgcolor (term_ostream_t stream, term_color_t color)
¶Gets/sets the background color.
term_weight_t
term_ostream_get_weight (term_ostream_t stream)
¶void
term_ostream_set_weight (term_ostream_t stream, term_weight_t weight)
¶Gets/sets the font weight.
term_posture_t
term_ostream_get_posture (term_ostream_t stream)
¶void
term_ostream_set_posture (term_ostream_t stream, term_posture_t posture)
¶Gets/sets the font posture.
term_underline_t
term_ostream_get_underline (term_ostream_t stream)
¶void
term_ostream_set_underline (term_ostream_t stream, term_underline_t underline)
¶Gets/sets the text underline decoration.
const char *
term_ostream_get_hyperlink_ref (term_ostream_t stream)
¶Returns the referred URL of the currently set hyperlink, or NULL
if no hyperlink attribute is currently set.
Note: The returned string is only valid up to the next invocation of
term_ostream_set_hyperlink
.
const char *
term_ostream_get_hyperlink_id (term_ostream_t stream)
¶Returns the id of the currently set hyperlink, or NULL
if no
hyperlink attribute is currently set.
Note: The returned string is only valid up to the next invocation of
term_ostream_set_hyperlink
.
void
term_ostream_set_hyperlink (term_ostream_t stream, const char *ref, const char *id)
¶Sets or removes a hyperlink attribute.
To set a hyperlink attribute, pass a non-NULL
ref.
ref is an URL; it should be at most 2083 bytes long. Non-ASCII
characters should be URI-escaped (using the %nn syntax). id is
an optional identifier. Multiple hyperlinks with the same id
will be highlighted together. If specified, id should be at most
250 bytes long.
To remove a hyperlink attribute, pass NULL
for ref and id.
Hyperlinks don’t nest. That is, a hyperlink attribute is enabled only
up to the next invocation of styled_ostream_set_hyperlink
.
void
term_ostream_flush_to_current_style (term_ostream_t stream)
¶This function acts like ostream_flush (stream, FLUSH_THIS_STREAM)
,
except that it leaves the terminal with the current text attributes enabled,
instead of with the default text attributes.
After calling this function, you can output strings without newlines(!) to the
underlying file descriptor, and they will be rendered like strings passed to
ostream_write_mem
, ostream_write_str
, or ostream_printf
.