diff options
| author | Max Masnick <max@masnick.me> | 2012-02-25 16:15:40 -0500 | 
|---|---|---|
| committer | Max Masnick <max@masnick.me> | 2012-02-25 16:15:40 -0500 | 
| commit | 7441438afa9f96ff1d39a6cd0d8692c2b9044bf2 (patch) | |
| tree | 508d195705e63c5baff4ed9ead765744feec323f /lib | |
| parent | 9e3776f1ecbaa29d646cdfe8fc204597ca98746c (diff) | |
| parent | 1120f973054836eeb53750f57d69fbec41a340dc (diff) | |
| download | zsh-7441438afa9f96ff1d39a6cd0d8692c2b9044bf2.tar.gz zsh-7441438afa9f96ff1d39a6cd0d8692c2b9044bf2.tar.bz2 zsh-7441438afa9f96ff1d39a6cd0d8692c2b9044bf2.zip  | |
merge changes from offical repo
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/completion.zsh | 4 | ||||
| -rw-r--r-- | lib/functions.zsh | 4 | ||||
| -rw-r--r-- | lib/git.zsh | 34 | ||||
| -rw-r--r-- | lib/history.zsh | 13 | ||||
| -rw-r--r-- | lib/termsupport.zsh | 10 | 
5 files changed, 50 insertions, 15 deletions
diff --git a/lib/completion.zsh b/lib/completion.zsh index b3cc91822..b964595ed 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -32,12 +32,14 @@ zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-dir  cdpath=(.)  # use /etc/hosts and known_hosts for hostname completion +[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()  [ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()  [ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()  hosts=( +  "$_global_ssh_hosts[@]"    "$_ssh_hosts[@]"    "$_etc_hosts[@]" -  `hostname` +  "$HOST"    localhost  )  zstyle ':completion:*:hosts' hosts $hosts diff --git a/lib/functions.zsh b/lib/functions.zsh index ef7cc6383..d2dcadd0c 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -3,11 +3,11 @@ function zsh_stats() {  }  function uninstall_oh_my_zsh() { -  /bin/sh $ZSH/tools/uninstall.sh +  /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh  }  function upgrade_oh_my_zsh() { -  /bin/sh $ZSH/tools/upgrade.sh +  /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh  }  function take() { diff --git a/lib/git.zsh b/lib/git.zsh index f04343650..fb4ad8ca6 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -4,15 +4,21 @@ function git_prompt_info() {    echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"  } +  # Checks if working tree is dirty  parse_git_dirty() { -  if [[ -n $(git status -s 2> /dev/null) ]]; then +  local SUBMODULE_SYNTAX='' +  if [[ $POST_1_7_2_GIT -gt 0 ]]; then +        SUBMODULE_SYNTAX="--ignore-submodules=dirty" +  fi +  if [[ -n $(git status -s ${SUBMODULE_SYNTAX}  2> /dev/null) ]]; then      echo "$ZSH_THEME_GIT_PROMPT_DIRTY"    else      echo "$ZSH_THEME_GIT_PROMPT_CLEAN"    fi  } +  # Checks if there are commits ahead from remote  function git_prompt_ahead() {    if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then @@ -62,3 +68,29 @@ git_prompt_status() {    fi    echo $STATUS  } + +#compare the provided version of git to the version installed and on path +#prints 1 if input version <= installed version +#prints -1 otherwise  +function git_compare_version() { +  local INPUT_GIT_VERSION=$1; +  local INSTALLED_GIT_VERSION +  INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION}); +  INSTALLED_GIT_VERSION=($(git --version)); +  INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); + +  for i in {1..3}; do +    if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then +      echo -1 +      return 0 +    fi +  done +  echo 1 +} + +#this is unlikely to change so make it all statically assigned +POST_1_7_2_GIT=$(git_compare_version "1.7.2") +#clean up the namespace slightly by removing the checker function +unset -f git_compare_version + + diff --git a/lib/history.zsh b/lib/history.zsh index ca6f57079..876936b87 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -3,14 +3,11 @@ HISTFILE=$HOME/.zsh_history  HISTSIZE=10000  SAVEHIST=10000 -setopt hist_ignore_dups # ignore duplication command history list -setopt share_history # share command history data - -setopt hist_verify -setopt inc_append_history +setopt append_history  setopt extended_history  setopt hist_expire_dups_first +setopt hist_ignore_dups # ignore duplication command history list  setopt hist_ignore_space - -setopt SHARE_HISTORY -setopt APPEND_HISTORY +setopt hist_verify +setopt inc_append_history +setopt share_history # share command history data diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 22e7f372f..221989502 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -4,7 +4,7 @@  #Limited support for Apple Terminal (Terminal can't set window or tab separately)  function title {    [ "$DISABLE_AUTO_TITLE" != "true" ] || return -  if [[ "$TERM" == screen* ]]; then  +  if [[ "$TERM" == screen* ]]; then      print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars    elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then      print -Pn "\e]2;$2:q\a" #set window name @@ -16,14 +16,18 @@ ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD  ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"  #Appears when you have the prompt -function precmd { +function omz_termsupport_precmd {    title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE  }  #Appears at the beginning of (and during) of command execution -function preexec { +function omz_termsupport_preexec {    emulate -L zsh    setopt extended_glob    local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd    title "$CMD" "%100>...>$2%<<"  } + +autoload -U add-zsh-hook +add-zsh-hook precmd  omz_termsupport_precmd +add-zsh-hook preexec omz_termsupport_preexec  | 
