dot/zshrc: Fix Emacs integration properly.
[profile] / dot / zshrc
index 32ed72e..9565fd6 100644 (file)
--- a/dot/zshrc
+++ b/dot/zshrc
@@ -3,7 +3,6 @@
 ### Zsh session things.
 
 __mdw_shell=zsh
-case ${INSIDE_EMACS+t},$TERM in t,dumb) unsetopt zle ;; esac
 
 ###--------------------------------------------------------------------------
 ### History settings.
@@ -19,8 +18,8 @@ SAVEHIST=1000
 
 __mdw_precmd_hook= __mdw_preexec_hook=
 
-__mdw_run_precmd_hook () { __mdw_runhook __mdw_precmd_hook "$@"; }
-__mdw_run_preexec_hook () { __mdw_runhook __mdw_preexec_hook "$@"; }
+__mdw_run_precmd_hook () { __mdw_runhook __mdw_precmd_hook; }
+__mdw_run_preexec_hook () { __mdw_runhook __mdw_preexec_hook "$2"; }
 
 precmd_functions+=(__mdw_run_precmd_hook)
 preexec_functions+=(__mdw_run_preexec_hook)
@@ -48,7 +47,7 @@ __mdw_set_prompt_hacks () {
   case $TERM in
     linux*|screen*|xterm*|putty*|vt100*|eterm*)
       bold=%B unbold=%b
-      gitcolour=%F{cyan} rccolour=%F{red} uncolour=%f
+      gitcolour=%F{cyan} extracolour=%F{yellow} rccolour=%F{red} uncolour=%f
       ;;
   esac
   host=%m dir=" %(6~!%-1~/.../%4~!%~)"
@@ -63,7 +62,8 @@ fi
 ###--------------------------------------------------------------------------
 ### Line editing.
 
-case $TERM in dumb) unsetopt zle ;; esac
+case ${INSIDE_EMACS+t},$TERM in t,dumb) unsetopt zle ;; esac
+case $TERM in dumb) unset zle_bracketed_paste ;; esac
 
 bindkey -e
 
@@ -185,6 +185,7 @@ unsetopt nomatch
 unsetopt menu_complete
 setopt notify
 setopt rc_expand_param
+setopt rc_quotes
 setopt share_history
 
 hash -d t=$TMPDIR