]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
zsh: Expand aliases in window names correctly with sudo.
authorSimon Ruderich <simon@ruderich.org>
Sun, 22 Mar 2009 17:40:50 +0000 (18:40 +0100)
committerSimon Ruderich <simon@ruderich.org>
Sun, 22 Mar 2009 17:46:15 +0000 (18:46 +0100)
This failed before because the ! caused the following tests to not match.

zsh/rc

diff --git a/zsh/rc b/zsh/rc
index f936b91ad2144408044479d5b12334a355a4faff..736fbcd4f82c4eeb4951cd1cd54dd5cded315a91 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -148,10 +148,13 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
     window_preexec() {
         # Get the program name with its arguments.
         local program_name=$1
+
         # When sudo is used use real program name instead, but with an
         # exclamation mark at the beginning.
+        local program_sudo=
         if [[ $program_name == sudo* ]]; then
-            program_name=!${program_name#sudo }
+            program_name=${program_name#sudo }
+            program_sudo=yes
         fi
         # Remove all arguments from the program name.
         program_name=${program_name%% *}
@@ -177,6 +180,11 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
                 ;;
         esac
 
+        # Add an exclamation mark at the beginning if running with sudo.
+        if [[ $program_sudo == yes ]]; then
+            program_sudo=!$program_sudo
+        fi
+
         # Set the window name to the currently running program.
         window_title "$program_name"