]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
zsh/rc: Improve stderr colorization script.
authorSimon Ruderich <simon@ruderich.org>
Sun, 14 Mar 2010 22:58:58 +0000 (23:58 +0100)
committerSimon Ruderich <simon@ruderich.org>
Sun, 14 Mar 2010 22:58:58 +0000 (23:58 +0100)
Now also works with rm -i. No idea why it doesn't work with Git and su,
but most other things work fine.

zsh/rc

diff --git a/zsh/rc b/zsh/rc
index 0e1e2c9023fe8eb749d4d5bc1e6900a684b13616..902d184bc4c0970c17d7ec06b6493a163c0b2873 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -413,10 +413,11 @@ TRAPINT() {
 # Colorize stderr. Very useful when looking for errors. Thanks to
 # http://gentoo-wiki.com/wiki/Zsh for the basic script and Mikachu in #zsh on
 # Freenode (2010-03-07 04:03) for some improvements (-r, printf). It's not yet
-# perfect and doesn't work with some interactive stderr output, but in those
+# perfect and doesn't work with su and git for example, but it can handle most
+# interactive output quite well (even with no trailing new line) and in those
 # cases the E alias can be used as workaround.
-exec 2>>(while read -r line; do
-    printf '\e[91m%s\e[0m\n' "$line"
+exec 2>>(while read -r -k -u 0 line; do
+    printf '\e[91m%s\e[0m' "$line";
     print -n $'\0';
 done &)