Browse Source

Merge pull request #4654 from mcornella/termsupport-cleanup

Make code in lib/termsupport.zsh more readable
Marc Cornellà 9 years ago
parent
commit
3841115f54
1 changed files with 25 additions and 16 deletions
  1. 25 16
      lib/termsupport.zsh

+ 25 - 16
lib/termsupport.zsh

@@ -16,25 +16,35 @@ function title {
   # if it is set and empty, leave it as is
   : ${2=$1}
 
-  if [[ "$TERM" == screen* ]]; then
-    print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
-  elif [[ "$TERM" == xterm* ]] || [[ "$TERM" == putty* ]] || [[ "$TERM" == rxvt* ]] || [[ "$TERM" == ansi ]] || [[ "$TERM" == cygwin ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
-    print -Pn "\e]2;$2:q\a" #set window name
-    print -Pn "\e]1;$1:q\a" #set icon (=tab) name
-  fi
+  case "$TERM" in
+    cygwin|xterm*|putty*|rxvt*|ansi)
+      print -Pn "\e]2;$2:q\a" # set window name
+      print -Pn "\e]1;$1:q\a" # set tab name
+      ;;
+    screen*)
+      print -Pn "\ek$1:q\e\\" # set screen hardstatus
+      ;;
+    *)
+      if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
+        print -Pn "\e]2;$2:q\a" # set window name
+        print -Pn "\e]1;$1:q\a" # set tab name
+      fi
+      ;;
+  esac
 }
 
 ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
 ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
 # Avoid duplication of directory in terminals with independent dir display
-if [[ $TERM_PROGRAM == Apple_Terminal ]]; then
+if [[ "$TERM_PROGRAM" == Apple_Terminal ]]; then
   ZSH_THEME_TERM_TITLE_IDLE="%n@%m"
 fi
 
 # Runs before showing the prompt
 function omz_termsupport_precmd {
   emulate -L zsh
-  if [[ $DISABLE_AUTO_TITLE == true ]]; then
+
+  if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
     return
   fi
 
@@ -44,12 +54,12 @@ function omz_termsupport_precmd {
 # Runs before executing the command
 function omz_termsupport_preexec {
   emulate -L zsh
-  if [[ $DISABLE_AUTO_TITLE == true ]]; then
+  setopt extended_glob
+
+  if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
     return
   fi
 
-  setopt extended_glob
-
   # cmd name only, or if this is sudo or ssh, the next cmd
   local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}
   local LINE="${2:gs/%/%%}"
@@ -66,19 +76,18 @@ preexec_functions+=(omz_termsupport_preexec)
 # With extra fixes to handle multibyte chars and non-UTF-8 locales
 
 if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
-
   # Emits the control sequence to notify Terminal.app of the cwd
+  # Identifies the directory using a file: URI scheme, including
+  # the host name to disambiguate local vs. remote paths.
   function update_terminalapp_cwd() {
     emulate -L zsh
-    # Identify the directory using a "file:" scheme URL, including
-    # the host name to disambiguate local vs. remote paths.
 
     # Percent-encode the pathname.
     local URL_PATH="$(omz_urlencode -P $PWD)"
     [[ $? != 0 ]] && return 1
-    local PWD_URL="file://$HOST$URL_PATH"
+
     # Undocumented Terminal.app-specific control sequence
-    printf '\e]7;%s\a' $PWD_URL
+    printf '\e]7;%s\a' "file://$HOST$URL_PATH"
   }
 
   # Use a precmd hook instead of a chpwd hook to avoid contaminating output