]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
shell/function,zsh/rc: Replace $@ with "$@".
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index 5e2c06c87b48d4533bbc2dd6baaf86291603a4aa..ccc8ea7638fcb3f85cca76e3fbe2e77f724687a9 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -78,17 +78,17 @@ if [[ $ZSH_VERSION != (4.3.<5->|4.<4->*|<5->*) ]]; then
     # arrays.
     function precmd() {
         for function in $precmd_functions; do
-            $function $@
+            $function "$@"
         done
     }
     function preexec() {
         for function in $preexec_functions; do
-            $function $@
+            $function "$@"
         done
     }
     function chpwd() {
         for function in $chpwd_functions; do
-            $function $@
+            $function "$@"
         done
     }
 fi
@@ -317,7 +317,8 @@ add-zsh-hook precmd prompt_precmd
 # currently running program.
 #
 # When a program is started preexec() sets the window's name to it; when it
-# stops precmd() resets the window's name to 'zsh'.
+# stops precmd() resets the window's name to 'zsh'. 'fg' is supported and sets
+# the window's name to the resumed job.
 #
 # It works with screen, xterm and rxvt.
 #
@@ -350,6 +351,14 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then
             program_name=${program_name#sudo }
             program_sudo=yes
         fi
+
+        # Replace fg with the resumed job name.
+        if [[ $program_name == fg ]]; then
+            program_name=${jobtexts[%+]}
+        elif [[ $program_name == fg* ]]; then
+            program_name=${jobtexts[${program_name#fg }]}
+        fi
+
         # Remove all arguments from the program name.
         program_name=${program_name%% *}
 
@@ -615,22 +624,19 @@ if [[ -n $window_reset ]]; then
     alias clear='clear; window_reset=yes; window_precmd reset'
 fi
 
+
+# CUSTOM COMMANDS
+
 # Display all branches (except stash) in gitk but only 200 commits as this is
-# much faster. Also put in the background and disown. Thanks to sitaram in
-# #git on Freenode (2009-04-20 15:51).
+# much faster. Also put in the background and disown. Thanks to drizzd in #git
+# on Freenode (2010-04-03 17:55 CEST).
 gitk() {
-    command gitk \
-        --max-count=200 \
-        $(git rev-parse --symbolic-full-name --remotes --branches) \
-        $@ &
+    command gitk --max-count=200 --branches --remotes --tags "$@" &
     disown %command
 }
 # Same for tig (except the disown part as it's no GUI program).
 tig() {
-    command tig \
-        --max-count=200 \
-        $(git rev-parse --symbolic-full-name --remotes --branches) \
-        $@
+    command tig --max-count=200 --branches --remotes --tags "$@"
 }
 
 # Pipe output through less.
@@ -644,6 +650,15 @@ xpdf() {
     disown %command
 }
 
+# GHCI doesn't use readline, force it if rlwrap is available.
+(( $+commands[rlwrap] )) && ghci() {
+    command rlwrap \
+        --always-readline --complete-filenames -t dumb \
+        --histsize 5000 \
+        --file ~/.shell/rlwrap/ghci \
+        ghci "$@" 2>&1
+}
+
 
 # OS SPECIFIC SETTINGS