]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
zsh/rc: Improve script which colors stderr red.
authorSimon Ruderich <simon@ruderich.org>
Sun, 7 Mar 2010 19:07:05 +0000 (20:07 +0100)
committerSimon Ruderich <simon@ruderich.org>
Sun, 7 Mar 2010 19:07:05 +0000 (20:07 +0100)
Thanks to Mikachu.

zsh/rc

diff --git a/zsh/rc b/zsh/rc
index 6d1886d92d4b42590df7c8b30d2738a69ca49841..8c76e62d8655d206f118b091a8b404d312321ab7 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -380,9 +380,14 @@ TRAPINT() {
 }
 
 # Colorize stderr. Very useful when looking for errors. Thanks to
-# http://gentoo-wiki.com/wiki/Zsh
-exec 2>>(while read line; do
-    print '\e[91m'${(q)line}'\e[0m' > /dev/tty; print -n $'\0'; done &)
+# 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
+# cases the E alias can be used as workaround.
+exec 2>>(while read -r line; do
+    printf '\e[91m%s\e[0m\n' "$line"
+    print -n $'\0';
+done &)
 
 # Make sure aliases are expanded when using sudo.
 alias sudo='sudo '