EINFO
Section: C Library Functions (3)
Updated: SMM
Page Index
BSD mandoc
OpenRC
NAME
einfo , ewarn , eerror , ebegin
einfon , ewarnn , eerrorn , ebeginn
einfov , ewarnv , ebeginv
einfovn , ewarnvn , ebeginvn
ewarnx , eerrorx
eend , ewend
eendv , ewendv
ebracket
eindent , eoutdent
eindentv , eoutdentv
eprefix
- colorful informational output
LIBRARY
Enhanced Information output library (libeinfo, -leinfo)
SYNOPSIS
In einfo.h
Ft int Fn einfo const char * restrict format ...
Ft int Fn ewarn const char * restrict format ...
Ft int Fn eerror const char * restrict format ...
Ft int Fn ebegin const char * restrict format ...
Ft int Fn einfon const char * restrict format ...
Ft int Fn ewarnn const char * restrict format ...
Ft int Fn eerrorn const char * restrict format ...
Ft int Fn ebeginn const char * restrict format ...
Ft int Fn einfov const char * restrict format ...
Ft int Fn ewarnv const char * restrict format ...
Ft int Fn ebeginv const char * restrict format ...
Ft int Fn einfovn const char * restrict format ...
Ft int Fn ewarnvn const char * restrict format ...
Ft int Fn ebeginvn const char * restrict format ...
Ft int Fn ewarnx const char * restrict format ...
Ft int Fn eerrorx const char * restrict format ...
Ft int Fn eend int retval const char * restrict format ...
Ft int Fn ewend int retval const char * restrict format ...
Ft int Fn eendv int retval const char * restrict format ...
Ft int Fn ewendv int retval const char * restrict format ...
Ft void Fn ebracket int col ECOLOR color const char * restrict msg
Ft void Fn eindent void
Ft void Fn eoutdent void
Ft void Fn eindentv void
Ft void Fn eoutdentv void
Ft void Fn eprefix const char * prefix
DESCRIPTION
The
Fn einfo
family of functions provide a simple informational output that is colorised.
Basically
Fn einfo ,
Fn ewarn
and
Fn eerror
behave exactly like
Fn printf
but prefix the output with a colored *. The function called denotes the color
used with
Fn einfo
being green,
Fn ewarn
being yellow and
Fn eerror
being red.
einfo goes to stdout and the others go to stderr.
The number of real characters printed is returned.
Fn ebegin
is identical to
Fn einfo
except that 3 dots are appended to the output.
Fn einfov ,
Fn ewarnv
and
Fn ebeginv
work the same way to
Fn einfo ,
Fn ewarn ,
and
Fn ebegin
respectively, but only work when
EINFO_VERBOSE
is true. You can also make the
Fn einfo ,
Fn ewarn ,
and
Fn ebegin
functions silent by setting
EINFO_QUIET
to true.
These functions are designed to output a whole line, so they also
append a newline to the string. To stop this behaviour, you can use the
functions
Fn einfon ,
Fn ewarnn ,
Fn eerrorn ,
Fn einfovn ,
Fn ewarnvn ,
and
Fn ebeginvn .
Fn eend ,
Fn ewend ,
Fn eendv
and
Fn ewendv
are the counterparts to the above functions. If
Fa retval
is zero then ok in green is printed in a bracket at the end of the prior
line. Otherwise we print the formatted string using
Fn error
(or
Fn ewarn
if
Fn ewend
is called) !! in red (or yellow if
Fn ewend
is called) is printed in a bracket at the end of the line.
The value of
Fa retval
is returned.
Fn ebracket
does the same as
Fn eend
but prints
Fa msg
instead of ok or !! in the color
Fa color
at the column
Fa col .
Fn eindent
indents subsequent calls to the above functions by 3 characters.
Fn eoutdent
removes an
Fn eindent .
Fn eindentv
and
Fn eoutdentv
only work when
EINFO_VERBOSE
is true.
Fn eprefix
prefixes the string
Fa prefix
to the above functions.
IMPLEMENTATION NOTES
einfo can optionally be linked against the
Lb libtermcap
so that we can correctly query the connected console for our color and
cursor escape codes.
If not, then we have a hard coded list of terminals we know about that support
the commonly used codes for color and cursor position.
ENVIRONMENT
EINFO_QUIET
when set to true makes the
Fn einfo
and
Fn einfon
family of functions quiet, so nothing is printed.
EERROR_QUIET
when set to true makes the
Fn eerror
and
Fn eerrorn
family of functions quiet, so nothing is printed.
EINFO_VERBOSE
when set to true makes the
Fn einfov
and
Fn einfovn
family of functions work, so they do print.
FILES
/etc/init.d/functions.sh
is provided by OpenRC, which allows shell scripts to use the above functions.
For historical reasons our verbose functions are prefixed with v instead of
suffixed. So einfov becomes veinfo, einfovn becomes veinfon.
Rinse and repeat for the other verbose functions.
SEE ALSO
printf(3),
AUTHORS
An Roy Marples <
roy@marples.name>