README
======
-coloredstderr is a small library which uses 'LD_PRELOAD' to color stderr.
+coloredstderr is a small library which uses 'LD_PRELOAD' to color stderr. It
+``follows'' dups, has minimal performance overhead and can ignore certain
+binaries (requires /proc).
Like all solutions using 'LD_PRELOAD' it only works with dynamically linked
Most other existing solutions use a second process which colors its input and
pipe stderr to it. However this creates different runtime behaviour resulting
in a different ordering of the output. Partial lines (no newline) also often
-cause problems.
+cause problems. coloredstderr handles these cases correctly.
+
+coloredstderr is licensed under GPL 3 (or later).
DEPENDENCIES
COLORED_STDERR_POST="${esc}[0m" # default
export COLORED_STDERR_PRE COLORED_STDERR_POST
-Fix `reset`; its writes to the terminal must be unaltered. `reset` is
+Fix `reset`; its writes to the terminal must be unaltered. `reset` is a
symbolic-link to `tset` on some systems, adapt as necessary:
COLORED_STDERR_IGNORED_BINARIES=/usr/bin/tset
- `{fputc,putc,putchar}_unlocked()` are not hooked with glibc when writing to
stdout (which might be redirected to stderr). Can't be fixed as the compiler
inlines the code into the program without calling any function.
-- Test `test_stdio.sh` fails on FreeBSD because it does handle the above
+- Test `test_stdio.sh` fails on FreeBSD because FreeBSD does handle the above
correctly (no inlining), but the test is designed for GNU/Linux.
- 'COLORED_STDERR_IGNORED_BINARIES' requires the `/proc` file system.
Suggestions welcome.
+- Output of `strace` is not always colored correctly as the output from
+ `coloredstderr` is traced and displayed as well.
BUGS