From 5d90f58b37fd67184c4aed3d81a1d3703f8fe832 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 13 Apr 2011 20:21:13 +0200 Subject: I should not have merged this here. --- plugins/git-svn/.gitignore | 1 - plugins/git-svn/git-svn.plugin.zsh | 10 ---------- 2 files changed, 11 deletions(-) delete mode 100644 plugins/git-svn/.gitignore delete mode 100644 plugins/git-svn/git-svn.plugin.zsh (limited to 'plugins') diff --git a/plugins/git-svn/.gitignore b/plugins/git-svn/.gitignore deleted file mode 100644 index bf5e1a14f..000000000 --- a/plugins/git-svn/.gitignore +++ /dev/null @@ -1 +0,0 @@ -git-svn-clone-externals diff --git a/plugins/git-svn/git-svn.plugin.zsh b/plugins/git-svn/git-svn.plugin.zsh deleted file mode 100644 index 062d63e05..000000000 --- a/plugins/git-svn/git-svn.plugin.zsh +++ /dev/null @@ -1,10 +0,0 @@ - -if ! [ -d "$ZSH/plugins/git-svn/git-svn-clone-externals" ] ;then - git clone https://github.com/andrep/git-svn-clone-externals.git -fi -export PATH="$ZSH/plugins/git-svn/git-svn-clone-externals:$PATH" - -function git_svn_update { - (cd "$ZSH/plugins/git-svn/git-svn-clone-externals" && \ - git pull origin master) -} -- cgit v1.2.3-70-g09d2 From a183bcbc6d8d61bd9c1077b45d1c5b3239e96a71 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Thu, 14 Apr 2011 07:17:10 +0200 Subject: More comments --- plugins/emacs/emacs.plugin.zsh | 25 ++++++++++++++++++++++--- plugins/emacs/emacsclient.sh | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index bca79e70e..62d9fbccc 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -1,11 +1,30 @@ -# Use daemon capabilities of emacs 23 +# Emacs 23 daemon capability is a killing feature. +# One emacs process handles all your frames whether +# you use a frame opened in a terminal via a ssh connection or X frames +# opened on the same host. + +# Benefits are multiple +# - You don't have the cost of starting Emacs all the time anymore +# - Opening a file is as fast as Emacs does not have anything else to do. +# - You can share opened buffered across opened frames. +# - Configuration changes made at runtime are applied to all frames. + + if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then export EDITOR="$ZSH/plugins/emacs/emacsclient.sh" alias emacs="$EDITOR --no-wait" alias e=emacs + # same than M-x eval but from outside Emacs. + alias eeval="emacs --eval" + # create a new X frame + alias eframe='emacsclient --alternate-editor "" --create-frame' + + # to code all night long alias emasc=emacs alias emcas=emacs - # create a new X frame - alias emacs_frame='emacsclient --alternate-editor "" --create-frame' fi + +## Local Variables: +## mode: sh +## End: diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh index 3475926a6..b098fd24a 100755 --- a/plugins/emacs/emacsclient.sh +++ b/plugins/emacs/emacsclient.sh @@ -6,5 +6,6 @@ x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null` if [ -z "$x" ] ;then emacsclient --alternate-editor "" --create-frame $@ else + # prevent creating another X frame if there is at least one present. emacsclient --alternate-editor "" $@ fi -- cgit v1.2.3-70-g09d2 From 49c0a1381a7bd48464a1c33cac6e09770749f795 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Fri, 15 Apr 2011 18:13:01 +0200 Subject: - Fix pass of parameters - Add new function `ecd'. --- plugins/emacs/emacs.plugin.zsh | 18 +++++++++++++++++- plugins/emacs/emacsclient.sh | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 62d9fbccc..58043040e 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -1,6 +1,6 @@ # Emacs 23 daemon capability is a killing feature. # One emacs process handles all your frames whether -# you use a frame opened in a terminal via a ssh connection or X frames +# you use a frame opened in a terminal via a ssh connection or X frames # opened on the same host. # Benefits are multiple @@ -23,8 +23,24 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then # to code all night long alias emasc=emacs alias emcas=emacs + + # jump to the directory of the current buffer + function ecd { + local cmd="(let ((buf-name (buffer-file-name (window-buffer)))) + (if buf-name + (file-name-directory buf-name)))" + + local dir=`$EDITOR --eval "$cmd" | tr -d \"` + if [ -n "$dir" ] ;then + cd "$dir" + else + echo "can not deduce current buffer filename." >/dev/stderr + return 1 + fi + } fi + ## Local Variables: ## mode: sh ## End: diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh index b098fd24a..7fc2ad202 100755 --- a/plugins/emacs/emacsclient.sh +++ b/plugins/emacs/emacsclient.sh @@ -4,8 +4,8 @@ x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null` if [ -z "$x" ] ;then - emacsclient --alternate-editor "" --create-frame $@ + emacsclient --alternate-editor "" --create-frame "$@" else # prevent creating another X frame if there is at least one present. - emacsclient --alternate-editor "" $@ + emacsclient --alternate-editor "" "$@" fi -- cgit v1.2.3-70-g09d2 From 9b29136ec65953004f064ec4a834ae7b1f2949e7 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Fri, 15 Apr 2011 18:21:22 +0200 Subject: Fix alias `eeval' --- plugins/emacs/emacs.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 58043040e..fc6b8865e 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -16,7 +16,7 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then alias e=emacs # same than M-x eval but from outside Emacs. - alias eeval="emacs --eval" + alias eeval="$EDITOR --eval" # create a new X frame alias eframe='emacsclient --alternate-editor "" --create-frame' -- cgit v1.2.3-70-g09d2 From 6f1929f822d24c6cfc9cecf574cb21c6b3817bb5 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Fri, 15 Apr 2011 18:22:27 +0200 Subject: Fix indentation --- plugins/emacs/emacs.plugin.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index fc6b8865e..3e45e54d0 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -27,8 +27,7 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then # jump to the directory of the current buffer function ecd { local cmd="(let ((buf-name (buffer-file-name (window-buffer)))) - (if buf-name - (file-name-directory buf-name)))" + (if buf-name (file-name-directory buf-name)))" local dir=`$EDITOR --eval "$cmd" | tr -d \"` if [ -n "$dir" ] ;then -- cgit v1.2.3-70-g09d2 From 574de93efbba22db0ec816ecec717d502dfa333e Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Tue, 6 Sep 2011 10:50:53 +0200 Subject: New function `efile` --- plugins/emacs/emacs.plugin.zsh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 3e45e54d0..737abe9d6 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -24,14 +24,22 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then alias emasc=emacs alias emcas=emacs - # jump to the directory of the current buffer + # Write to standard output the path to the file + # opened in the current buffer. + function efile { + local cmd="(buffer-file-name (window-buffer))" + $EDITOR --eval "$cmd" | tr -d \" + } + + # display the directory of the file + # opened in the the current buffer function ecd { local cmd="(let ((buf-name (buffer-file-name (window-buffer)))) (if buf-name (file-name-directory buf-name)))" local dir=`$EDITOR --eval "$cmd" | tr -d \"` if [ -n "$dir" ] ;then - cd "$dir" + echo "$dir" else echo "can not deduce current buffer filename." >/dev/stderr return 1 @@ -39,7 +47,6 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then } fi - ## Local Variables: ## mode: sh ## End: -- cgit v1.2.3-70-g09d2 From 7066bf7c6b522af9147ebf03c00361c4c6490d42 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Mon, 10 Oct 2011 14:54:20 +0200 Subject: Fix builtin `ecd' when file path contains space characters. --- plugins/emacs/emacs.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 737abe9d6..e22f10740 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -31,13 +31,13 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then $EDITOR --eval "$cmd" | tr -d \" } - # display the directory of the file + # Write to standard output the directory of the file # opened in the the current buffer function ecd { local cmd="(let ((buf-name (buffer-file-name (window-buffer)))) (if buf-name (file-name-directory buf-name)))" - local dir=`$EDITOR --eval "$cmd" | tr -d \"` + local dir="$($EDITOR --eval $cmd | tr -d \")" if [ -n "$dir" ] ;then echo "$dir" else -- cgit v1.2.3-70-g09d2 From 3a408f326f1436a81ae481610c76c8938903df4f Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Mon, 10 Oct 2011 18:04:13 +0200 Subject: Comment --- plugins/emacs/emacsclient.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh index 7fc2ad202..38d419813 100755 --- a/plugins/emacs/emacsclient.sh +++ b/plugins/emacs/emacsclient.sh @@ -1,9 +1,10 @@ #!/bin/sh -# Starts emacs daemon if not already started. - +# get list of available X windows. x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null` + if [ -z "$x" ] ;then + # Create one if there is no X window yet. emacsclient --alternate-editor "" --create-frame "$@" else # prevent creating another X frame if there is at least one present. -- cgit v1.2.3-70-g09d2 From a01b1fefe63101fdc36291d0ec2097bdc3994f22 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Mon, 10 Oct 2011 18:04:24 +0200 Subject: Do not overwrite EDITOR environment variable if already defined. --- plugins/emacs/emacs.plugin.zsh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'plugins') diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index e22f10740..a3f0085a8 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -11,12 +11,16 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then - export EDITOR="$ZSH/plugins/emacs/emacsclient.sh" - alias emacs="$EDITOR --no-wait" + export EMACS_PLUGIN_LAUNCHER="$ZSH/plugins/emacs/emacsclient.sh" + + # set EDITOR if not already defined. + export EDITOR="${EDITOR:-${EMACS_PLUGIN_LAUNCHER}}" + + alias emacs="$EMACS_PLUGIN_LAUNCHER --no-wait" alias e=emacs # same than M-x eval but from outside Emacs. - alias eeval="$EDITOR --eval" + alias eeval="$EMACS_PLUGIN_LAUNCHER --eval" # create a new X frame alias eframe='emacsclient --alternate-editor "" --create-frame' @@ -28,7 +32,7 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then # opened in the current buffer. function efile { local cmd="(buffer-file-name (window-buffer))" - $EDITOR --eval "$cmd" | tr -d \" + "$EMACS_PLUGIN_LAUNCHER" --eval "$cmd" | tr -d \" } # Write to standard output the directory of the file @@ -37,7 +41,7 @@ if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then local cmd="(let ((buf-name (buffer-file-name (window-buffer)))) (if buf-name (file-name-directory buf-name)))" - local dir="$($EDITOR --eval $cmd | tr -d \")" + local dir="$($EMACS_PLUGIN_LAUNCHER --eval $cmd | tr -d \")" if [ -n "$dir" ] ;then echo "$dir" else -- cgit v1.2.3-70-g09d2 From 46ad7338333b57ce5966ca481d132d8626304d83 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Tue, 18 Dec 2012 08:16:28 +0000 Subject: more catspeak --- plugins/lol/lol.plugin.zsh | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'plugins') diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh index ae065c12f..3b92533a8 100644 --- a/plugins/lol/lol.plugin.zsh +++ b/plugins/lol/lol.plugin.zsh @@ -36,3 +36,12 @@ alias nomnom='killall' alias byes='exit' alias cya='reboot' alias kthxbai='halt' + +alias pwned='ssh' + +alias hackzor='git init' +alias rulz='git push' +alias bringz='git pull' +alias moarhack='git checkout' +alias chicken='git add' + -- cgit v1.2.3-70-g09d2 From c95b6d91f7e45ac4ca9a1ce2207db7d515ba450b Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Tue, 18 Dec 2012 08:47:04 +0000 Subject: git lol --- plugins/lol/lol.plugin.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh index 3b92533a8..1b32ec2e4 100644 --- a/plugins/lol/lol.plugin.zsh +++ b/plugins/lol/lol.plugin.zsh @@ -42,6 +42,9 @@ alias pwned='ssh' alias hackzor='git init' alias rulz='git push' alias bringz='git pull' -alias moarhack='git checkout' alias chicken='git add' +alias oanward='git commit -m' +alias ooanward='git commit -am' +alias letcat='git checkout' +alias violenz='git rebase' -- cgit v1.2.3-70-g09d2 From ae1973de443525daeb87df9973ae83c6c9210cfe Mon Sep 17 00:00:00 2001 From: Ron Shapiro Date: Mon, 29 Apr 2013 10:18:32 -0400 Subject: plugged_in function --- plugins/battery/battery.plugin.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index 0c7c9421f..785386a12 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -16,12 +16,16 @@ if [[ $(uname) == "Darwin" ]] ; then integer i=$(((currentcapacity/maxcapacity) * 100)) echo $i } + + function plugged_in() { + [ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ Yes') -eq 1 ] + } function battery_pct_remaining() { - if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then - battery_pct - else + if plugged_in ; then echo "External Power" + else + battery_pct fi } -- cgit v1.2.3-70-g09d2 From 9ebdbec58979b077e4790387b5927c74ce7184ef Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Fri, 23 Aug 2013 21:58:29 -0500 Subject: gitfast: update to upstream v1.8.4 Signed-off-by: Felipe Contreras --- plugins/gitfast/_git | 163 ++++++++++++++++-- plugins/gitfast/git-completion.bash | 301 +++++++++++--------------------- plugins/gitfast/git-prompt.sh | 334 ++++++++++++++++++++---------------- 3 files changed, 435 insertions(+), 363 deletions(-) (limited to 'plugins') diff --git a/plugins/gitfast/_git b/plugins/gitfast/_git index cf8116d47..fac5e711e 100644 --- a/plugins/gitfast/_git +++ b/plugins/gitfast/_git @@ -2,18 +2,19 @@ # zsh completion wrapper for git # -# You need git's bash completion script installed somewhere, by default on the -# same directory as this script. +# Copyright (c) 2012-2013 Felipe Contreras # -# If your script is on ~/.git-completion.sh instead, you can configure it on -# your ~/.zshrc: +# You need git's bash completion script installed somewhere, by default it +# would be the location bash-completion uses. +# +# If your script is somewhere else, you can configure it on your ~/.zshrc: # # zstyle ':completion:*:*:git:*' script ~/.git-completion.sh # -# The recommended way to install this script is to copy to -# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file: +# The recommended way to install this script is to copy to '~/.zsh/_git', and +# then add the following to your ~/.zshrc file: # -# fpath=(~/.zsh/completion $fpath) +# fpath=(~/.zsh $fpath) complete () { @@ -21,8 +22,23 @@ complete () return 0 } +zstyle -T ':completion:*:*:git:*' tag-order && \ + zstyle ':completion:*:*:git:*' tag-order 'common-commands' + zstyle -s ":completion:*:*:git:*" script script -test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash +if [ -z "$script" ]; then + local -a locations + local e + locations=( + '/etc/bash_completion.d/git' # fedora, old debian + '/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian + '/usr/share/bash-completion/git' # gentoo + $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash + ) + for e in $locations; do + test -f $e && script="$e" && break + done +fi ZSH_VERSION='' . "$script" __gitcomp () @@ -69,18 +85,131 @@ __gitcomp_file () compadd -Q -p "${2-}" -f -- ${=1} && _ret=0 } +__git_zsh_bash_func () +{ + emulate -L ksh + + local command=$1 + + local completion_func="_git_${command//-/_}" + declare -f $completion_func >/dev/null && $completion_func && return + + local expansion=$(__git_aliased_command "$command") + if [ -n "$expansion" ]; then + completion_func="_git_${expansion//-/_}" + declare -f $completion_func >/dev/null && $completion_func + fi +} + +__git_zsh_cmd_common () +{ + local -a list + list=( + add:'add file contents to the index' + bisect:'find by binary search the change that introduced a bug' + branch:'list, create, or delete branches' + checkout:'checkout a branch or paths to the working tree' + clone:'clone a repository into a new directory' + commit:'record changes to the repository' + diff:'show changes between commits, commit and working tree, etc' + fetch:'download objects and refs from another repository' + grep:'print lines matching a pattern' + init:'create an empty Git repository or reinitialize an existing one' + log:'show commit logs' + merge:'join two or more development histories together' + mv:'move or rename a file, a directory, or a symlink' + pull:'fetch from and merge with another repository or a local branch' + push:'update remote refs along with associated objects' + rebase:'forward-port local commits to the updated upstream head' + reset:'reset current HEAD to the specified state' + rm:'remove files from the working tree and from the index' + show:'show various types of objects' + status:'show the working tree status' + tag:'create, list, delete or verify a tag object signed with GPG') + _describe -t common-commands 'common commands' list && _ret=0 +} + +__git_zsh_cmd_alias () +{ + local -a list + list=(${${${(0)"$(git config -z --get-regexp '^alias\.')"}#alias.}%$'\n'*}) + _describe -t alias-commands 'aliases' list $* && _ret=0 +} + +__git_zsh_cmd_all () +{ + local -a list + emulate ksh -c __git_compute_all_commands + list=( ${=__git_all_commands} ) + _describe -t all-commands 'all commands' list && _ret=0 +} + +__git_zsh_main () +{ + local curcontext="$curcontext" state state_descr line + typeset -A opt_args + local -a orig_words + + orig_words=( ${words[@]} ) + + _arguments -C \ + '(-p --paginate --no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \ + '(-p --paginate)--no-pager[do not pipe git output into a pager]' \ + '--git-dir=-[set the path to the repository]: :_directories' \ + '--bare[treat the repository as a bare repository]' \ + '(- :)--version[prints the git suite version]' \ + '--exec-path=-[path to where your core git programs are installed]:: :_directories' \ + '--html-path[print the path where git''s HTML documentation is installed]' \ + '--info-path[print the path where the Info files are installed]' \ + '--man-path[print the manpath (see `man(1)`) for the man pages]' \ + '--work-tree=-[set the path to the working tree]: :_directories' \ + '--namespace=-[set the git namespace]' \ + '--no-replace-objects[do not use replacement refs to replace git objects]' \ + '(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \ + '(-): :->command' \ + '(-)*:: :->arg' && return + + case $state in + (command) + _alternative \ + 'alias-commands:alias:__git_zsh_cmd_alias' \ + 'common-commands:common:__git_zsh_cmd_common' \ + 'all-commands:all:__git_zsh_cmd_all' && _ret=0 + ;; + (arg) + local command="${words[1]}" __git_dir + + if (( $+opt_args[--bare] )); then + __git_dir='.' + else + __git_dir=${opt_args[--git-dir]} + fi + + (( $+opt_args[--help] )) && command='help' + + words=( ${orig_words[@]} ) + + __git_zsh_bash_func $command + ;; + esac +} + _git () { local _ret=1 - () { - emulate -L ksh - local cur cword prev - cur=${words[CURRENT-1]} - prev=${words[CURRENT-2]} - let cword=CURRENT-1 - __${service}_main - } - let _ret && _default -S '' && _ret=0 + local cur cword prev + + cur=${words[CURRENT]} + prev=${words[CURRENT-1]} + let cword=CURRENT-1 + + if (( $+functions[__${service}_zsh_main] )); then + __${service}_zsh_main + else + emulate ksh -c __${service}_main + fi + + let _ret && _default && _ret=0 return _ret } diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index 93eba4675..5da920ecd 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -33,8 +33,6 @@ esac # returns location of .git repo __gitdir () { - # Note: this function is duplicated in git-prompt.sh - # When updating it, make sure you update the other one to match. if [ -z "${1-}" ]; then if [ -n "${__git_dir-}" ]; then echo "$__git_dir" @@ -53,19 +51,6 @@ __gitdir () fi } -__gitcomp_1 () -{ - local c IFS=$' \t\n' - for c in $1; do - c="$c$2" - case $c in - --*=*|*.) ;; - *) c="$c " ;; - esac - printf '%s\n' "$c" - done -} - # The following function is based on code from: # # bash_completion - programmable completion functions for bash 3.2+ @@ -195,8 +180,18 @@ _get_comp_words_by_ref () } fi -# Generates completion reply with compgen, appending a space to possible -# completion words, if necessary. +__gitcompadd () +{ + local i=0 + for x in $1; do + if [[ "$x" == "$3"* ]]; then + COMPREPLY[i++]="$2$x$4" + fi + done +} + +# Generates completion reply, appending a space to possible completion words, +# if necessary. # It accepts 1 to 4 arguments: # 1: List of possible completion words. # 2: A prefix to be added to each possible completion word (optional). @@ -208,19 +203,25 @@ __gitcomp () case "$cur_" in --*=) - COMPREPLY=() ;; *) - local IFS=$'\n' - COMPREPLY=($(compgen -P "${2-}" \ - -W "$(__gitcomp_1 "${1-}" "${4-}")" \ - -- "$cur_")) + local c i=0 IFS=$' \t\n' + for c in $1; do + c="$c${4-}" + if [[ $c == "$cur_"* ]]; then + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + COMPREPLY[i++]="${2-}$c" + fi + done ;; esac } -# Generates completion reply with compgen from newline-separated possible -# completion words by appending a space to all of them. +# Generates completion reply from newline-separated possible completion words +# by appending a space to all of them. # It accepts 1 to 4 arguments: # 1: List of possible completion words, separated by a single newline. # 2: A prefix to be added to each possible completion word (optional). @@ -231,7 +232,7 @@ __gitcomp () __gitcomp_nl () { local IFS=$'\n' - COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}")) + __gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }" } # Generates completion reply with compgen from newline-separated possible @@ -249,106 +250,50 @@ __gitcomp_file () # since tilde expansion is not applied. # This means that COMPREPLY will be empty and Bash default # completion will be used. - COMPREPLY=($(compgen -P "${2-}" -W "$1" -- "${3-$cur}")) - - # Tell Bash that compspec generates filenames. - compopt -o filenames 2>/dev/null -} - -__git_index_file_list_filter_compat () -{ - local path + __gitcompadd "$1" "${2-}" "${3-$cur}" "" - while read -r path; do - case "$path" in - ?*/*) echo "${path%%/*}/" ;; - *) echo "$path" ;; - esac - done + # use a hack to enable file mode in bash < 4 + compopt -o filenames +o nospace 2>/dev/null || + compgen -f /non-existing-dir/ > /dev/null } -__git_index_file_list_filter_bash () -{ - local path - - while read -r path; do - case "$path" in - ?*/*) - # XXX if we append a slash to directory names when using - # `compopt -o filenames`, Bash will append another slash. - # This is pretty stupid, and this the reason why we have to - # define a compatible version for this function. - echo "${path%%/*}" ;; - *) - echo "$path" ;; - esac - done -} - -# Process path list returned by "ls-files" and "diff-index --name-only" -# commands, in order to list only file names relative to a specified -# directory, and append a slash to directory names. -__git_index_file_list_filter () -{ - # Default to Bash >= 4.x - __git_index_file_list_filter_bash -} - -# Execute git ls-files, returning paths relative to the directory -# specified in the first argument, and using the options specified in -# the second argument. +# Execute 'git ls-files', unless the --committable option is specified, in +# which case it runs 'git diff-index' to find out the files that can be +# committed. It return paths relative to the directory specified in the first +# argument, and using the options specified in the second argument. __git_ls_files_helper () { ( test -n "${CDPATH+set}" && unset CDPATH - # NOTE: $2 is not quoted in order to support multiple options - cd "$1" && git ls-files --exclude-standard $2 + cd "$1" + if [ "$2" == "--committable" ]; then + git diff-index --name-only --relative HEAD + else + # NOTE: $2 is not quoted in order to support multiple options + git ls-files --exclude-standard $2 + fi ) 2>/dev/null } -# Execute git diff-index, returning paths relative to the directory -# specified in the first argument, and using the tree object id -# specified in the second argument. -__git_diff_index_helper () -{ - ( - test -n "${CDPATH+set}" && unset CDPATH - cd "$1" && git diff-index --name-only --relative "$2" - ) 2>/dev/null -} - # __git_index_files accepts 1 or 2 arguments: # 1: Options to pass to ls-files (required). -# Supported options are --cached, --modified, --deleted, --others, -# and --directory. # 2: A directory path (optional). # If provided, only files within the specified directory are listed. # Sub directories are never recursed. Path must have a trailing # slash. __git_index_files () { - local dir="$(__gitdir)" root="${2-.}" + local dir="$(__gitdir)" root="${2-.}" file if [ -d "$dir" ]; then - __git_ls_files_helper "$root" "$1" | __git_index_file_list_filter | - sort | uniq - fi -} - -# __git_diff_index_files accepts 1 or 2 arguments: -# 1) The id of a tree object. -# 2) A directory path (optional). -# If provided, only files within the specified directory are listed. -# Sub directories are never recursed. Path must have a trailing -# slash. -__git_diff_index_files () -{ - local dir="$(__gitdir)" root="${2-.}" - - if [ -d "$dir" ]; then - __git_diff_index_helper "$root" "$1" | __git_index_file_list_filter | - sort | uniq + __git_ls_files_helper "$root" "$1" | + while read -r file; do + case "$file" in + ?*/*) echo "${file%%/*}" ;; + *) echo "$file" ;; + esac + done | sort | uniq fi } @@ -424,14 +369,8 @@ __git_refs () done ;; *) - git ls-remote "$dir" HEAD ORIG_HEAD 'refs/tags/*' 'refs/heads/*' 'refs/remotes/*' 2>/dev/null | \ - while read -r hash i; do - case "$i" in - *^{}) ;; - refs/*) echo "${i#refs/*/}" ;; - *) echo "$i" ;; - esac - done + echo "HEAD" + git for-each-ref --format="%(refname:short)" -- "refs/remotes/$dir/" | sed -e "s#^$dir/##" ;; esac } @@ -549,44 +488,23 @@ __git_complete_revlist_file () } -# __git_complete_index_file requires 1 argument: the options to pass to -# ls-file +# __git_complete_index_file requires 1 argument: +# 1: the options to pass to ls-file +# +# The exception is --committable, which finds the files appropriate commit. __git_complete_index_file () { - local pfx cur_="$cur" + local pfx="" cur_="$cur" case "$cur_" in ?*/*) pfx="${cur_%/*}" cur_="${cur_##*/}" pfx="${pfx}/" - - __gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_" - ;; - *) - __gitcomp_file "$(__git_index_files "$1")" "" "$cur_" ;; esac -} - -# __git_complete_diff_index_file requires 1 argument: the id of a tree -# object -__git_complete_diff_index_file () -{ - local pfx cur_="$cur" - case "$cur_" in - ?*/*) - pfx="${cur_%/*}" - cur_="${cur_##*/}" - pfx="${pfx}/" - - __gitcomp_file "$(__git_diff_index_files "$1" "$pfx")" "$pfx" "$cur_" - ;; - *) - __gitcomp_file "$(__git_diff_index_files "$1")" "" "$cur_" - ;; - esac + __gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_" } __git_complete_file () @@ -614,7 +532,6 @@ __git_complete_remote_or_refspec () case "$cmd" in push) no_complete_refspec=1 ;; fetch) - COMPREPLY=() return ;; *) ;; @@ -630,7 +547,6 @@ __git_complete_remote_or_refspec () return fi if [ $no_complete_refspec = 1 ]; then - COMPREPLY=() return fi [ "$remote" = "." ] && remote= @@ -732,6 +648,7 @@ __git_list_porcelain_commands () cat-file) : plumbing;; check-attr) : plumbing;; check-ignore) : plumbing;; + check-mailmap) : plumbing;; check-ref-format) : plumbing;; checkout-index) : plumbing;; commit-tree) : plumbing;; @@ -951,7 +868,6 @@ _git_am () " return esac - COMPREPLY=() } _git_apply () @@ -971,7 +887,6 @@ _git_apply () " return esac - COMPREPLY=() } _git_add () @@ -1031,7 +946,6 @@ _git_bisect () __gitcomp_nl "$(__git_refs)" ;; *) - COMPREPLY=() ;; esac } @@ -1124,9 +1038,14 @@ _git_cherry () _git_cherry_pick () { + local dir="$(__gitdir)" + if [ -f "$dir"/CHERRY_PICK_HEAD ]; then + __gitcomp "--continue --quit --abort" + return + fi case "$cur" in --*) - __gitcomp "--edit --no-commit" + __gitcomp "--edit --no-commit --signoff --strategy= --mainline" ;; *) __gitcomp_nl "$(__git_refs)" @@ -1170,7 +1089,6 @@ _git_clone () return ;; esac - COMPREPLY=() } _git_commit () @@ -1182,13 +1100,6 @@ _git_commit () ;; esac - case "$prev" in - -c|-C) - __gitcomp_nl "$(__git_refs)" "" "${cur}" - return - ;; - esac - case "$cur" in --cleanup=*) __gitcomp "default strip verbatim whitespace @@ -1218,7 +1129,7 @@ _git_commit () esac if git rev-parse --verify --quiet HEAD >/dev/null; then - __git_complete_diff_index_file "HEAD" + __git_complete_index_file "--committable" else # This is the first commit __git_complete_index_file "--cached" @@ -1251,7 +1162,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary --no-prefix --src-prefix= --dst-prefix= --inter-hunk-context= --patience --histogram --minimal - --raw + --raw --word-diff --dirstat --dirstat= --dirstat-by-file --dirstat-by-file= --cumulative --diff-algorithm= @@ -1299,7 +1210,7 @@ _git_difftool () return ;; esac - __git_complete_file + __git_complete_revlist_file } __git_fetch_options=" @@ -1319,11 +1230,12 @@ _git_fetch () } __git_format_patch_options=" - --stdout --attach --no-attach --thread --thread= --output-directory + --stdout --attach --no-attach --thread --thread= --no-thread --numbered --start-number --numbered-files --keep-subject --signoff --signature --no-signature --in-reply-to= --cc= --full-index --binary --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix= --inline --suffix= --ignore-if-in-upstream --subject-prefix= + --output-directory --reroll-count --to= --quiet --notes " _git_format_patch () @@ -1354,7 +1266,6 @@ _git_fsck () return ;; esac - COMPREPLY=() } _git_gc () @@ -1365,7 +1276,6 @@ _git_gc () return ;; esac - COMPREPLY=() } _git_gitk () @@ -1442,7 +1352,6 @@ _git_init () return ;; esac - COMPREPLY=() } _git_ls_files () @@ -1578,7 +1487,6 @@ _git_mergetool () return ;; esac - COMPREPLY=() } _git_merge_base () @@ -1819,7 +1727,7 @@ __git_config_get_set_variables () _git_config () { case "$prev" in - branch.*.remote) + branch.*.remote|branch.*.pushremote) __gitcomp_nl "$(__git_remotes)" return ;; @@ -1827,11 +1735,19 @@ _git_config () __gitcomp_nl "$(__git_refs)" return ;; + branch.*.rebase) + __gitcomp "false true" + return + ;; + remote.pushdefault) + __gitcomp_nl "$(__git_remotes)" + return + ;; remote.*.fetch) local remote="${prev#remote.}" remote="${remote%.fetch}" if [ -z "$cur" ]; then - COMPREPLY=("refs/heads/") + __gitcomp_nl "refs/heads/" "" "" "" return fi __gitcomp_nl "$(__git_refs_remotes "$remote")" @@ -1866,6 +1782,10 @@ _git_config () " return ;; + diff.submodule) + __gitcomp "log short" + return + ;; help.format) __gitcomp "man info web html" return @@ -1891,7 +1811,6 @@ _git_config () return ;; *.*) - COMPREPLY=() return ;; esac @@ -1908,7 +1827,7 @@ _git_config () ;; branch.*.*) local pfx="${cur%.*}." cur_="${cur##*.}" - __gitcomp "remote merge mergeoptions rebase" "$pfx" "$cur_" + __gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_" return ;; branch.*) @@ -2039,7 +1958,6 @@ _git_config () core.fileMode core.fsyncobjectfiles core.gitProxy - core.ignoreCygwinFSTricks core.ignoreStat core.ignorecase core.logAllRefUpdates @@ -2061,13 +1979,14 @@ _git_config () core.whitespace core.worktree diff.autorefreshindex - diff.statGraphWidth diff.external diff.ignoreSubmodules diff.mnemonicprefix diff.noprefix diff.renameLimit diff.renames + diff.statGraphWidth + diff.submodule diff.suppressBlankEmpty diff.tool diff.wordRegex @@ -2202,6 +2121,7 @@ _git_config () receive.fsckObjects receive.unpackLimit receive.updateserverinfo + remote.pushdefault remotes. repack.usedeltabaseoffset rerere.autoupdate @@ -2272,7 +2192,6 @@ _git_remote () __gitcomp "$c" ;; *) - COMPREPLY=() ;; esac } @@ -2356,7 +2275,7 @@ _git_show () return ;; esac - __git_complete_file + __git_complete_revlist_file } _git_show_branch () @@ -2388,8 +2307,6 @@ _git_stash () *) if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then __gitcomp "$subcommands" - else - COMPREPLY=() fi ;; esac @@ -2402,14 +2319,12 @@ _git_stash () __gitcomp "--index --quiet" ;; show,--*|drop,--*|branch,--*) - COMPREPLY=() ;; show,*|apply,*|drop,*|pop,*|branch,*) __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \ | sed -n -e 's/:.*//p')" ;; *) - COMPREPLY=() ;; esac fi @@ -2419,7 +2334,7 @@ _git_submodule () { __git_has_doubledash && return - local subcommands="add status init update summary foreach sync" + local subcommands="add status init deinit update summary foreach sync" if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then case "$cur" in --*) @@ -2451,7 +2366,7 @@ _git_svn () --no-metadata --use-svm-props --use-svnsync-props --log-window-size= --no-checkout --quiet --repack-flags --use-log-author --localtime - --ignore-paths= $remote_opts + --ignore-paths= --include-paths= $remote_opts " local init_opts=" --template= --shared= --trunk= --tags= @@ -2526,7 +2441,6 @@ _git_svn () __gitcomp "--revision= --parent" ;; *) - COMPREPLY=() ;; esac fi @@ -2551,13 +2465,10 @@ _git_tag () case "$prev" in -m|-F) - COMPREPLY=() ;; -*|tag) if [ $f = 1 ]; then __gitcomp_nl "$(__git_tags)" - else - COMPREPLY=() fi ;; *) @@ -2579,9 +2490,10 @@ __git_main () i="${words[c]}" case "$i" in --git-dir=*) __git_dir="${i#--git-dir=}" ;; + --git-dir) ((c++)) ; __git_dir="${words[c]}" ;; --bare) __git_dir="." ;; --help) command="help"; break ;; - -c) c=$((++c)) ;; + -c|--work-tree|--namespace) ((c++)) ;; -*) ;; *) command="$i"; break ;; esac @@ -2599,6 +2511,7 @@ __git_main () --exec-path --exec-path= --html-path + --man-path --info-path --work-tree= --namespace= @@ -2693,35 +2606,19 @@ if [[ -n ${ZSH_VERSION-} ]]; then compadd -Q -p "${2-}" -f -- ${=1} && _ret=0 } - __git_zsh_helper () - { - emulate -L ksh - local cur cword prev - cur=${words[CURRENT-1]} - prev=${words[CURRENT-2]} - let cword=CURRENT-1 - __${service}_main - } - _git () { - emulate -L zsh - local _ret=1 - __git_zsh_helper - let _ret && _default -S '' && _ret=0 + local _ret=1 cur cword prev + cur=${words[CURRENT]} + prev=${words[CURRENT-1]} + let cword=CURRENT-1 + emulate ksh -c __${service}_main + let _ret && _default && _ret=0 return _ret } compdef _git git gitk return -elif [[ -n ${BASH_VERSION-} ]]; then - if ((${BASH_VERSINFO[0]} < 4)); then - # compopt is not supported - __git_index_file_list_filter () - { - __git_index_file_list_filter_compat - } - fi fi __git_func_wrap () diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index 65f8368f1..a81ef5a48 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -3,7 +3,7 @@ # Copyright (C) 2006,2007 Shawn O. Pearce # Distributed under the GNU General Public License, version 2.0. # -# This script allows you to see the current branch in your prompt. +# This script allows you to see repository status in your prompt. # # To enable: # @@ -13,23 +13,27 @@ # 3a) Change your PS1 to call __git_ps1 as # command-substitution: # Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' -# ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' +# ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' # the optional argument will be used as format string. -# 3b) Alternatively, if you are using bash, __git_ps1 can be -# used for PROMPT_COMMAND with two parameters,
 and
-#        , which are strings you would put in $PS1 before
-#        and after the status string generated by the git-prompt
-#        machinery.  e.g.
-#           PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
-#        will show username, at-sign, host, colon, cwd, then
-#        various status string, followed by dollar and SP, as
-#        your prompt.
+#    3b) Alternatively, for a slightly faster prompt, __git_ps1 can
+#        be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
+#        with two parameters, 
 and , which are strings
+#        you would put in $PS1 before and after the status string
+#        generated by the git-prompt machinery.  e.g.
+#        Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
+#          will show username, at-sign, host, colon, cwd, then
+#          various status string, followed by dollar and SP, as
+#          your prompt.
+#        ZSH:  precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
+#          will show username, pipe, then various status string,
+#          followed by colon, cwd, dollar and SP, as your prompt.
 #        Optionally, you can supply a third argument with a printf
 #        format string to finetune the output of the branch status
 #
-# The argument to __git_ps1 will be displayed only if you are currently
-# in a git repository.  The %s token will be the name of the current
-# branch.
+# The repository status will be displayed only if you are currently in a
+# git repository. The %s token is the placeholder for the shown status.
+#
+# The prompt status always includes the current branch name.
 #
 # In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
 # unstaged (*) and staged (+) changes will be shown next to the branch
@@ -77,31 +81,8 @@
 #
 # If you would like a colored hint about the current dirty state, set
 # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
-# the colored output of "git status -sb".
-
-# __gitdir accepts 0 or 1 arguments (i.e., location)
-# returns location of .git repo
-__gitdir ()
-{
-	# Note: this function is duplicated in git-completion.bash
-	# When updating it, make sure you update the other one to match.
-	if [ -z "${1-}" ]; then
-		if [ -n "${__git_dir-}" ]; then
-			echo "$__git_dir"
-		elif [ -n "${GIT_DIR-}" ]; then
-			test -d "${GIT_DIR-}" || return 1
-			echo "$GIT_DIR"
-		elif [ -d .git ]; then
-			echo .git
-		else
-			git rev-parse --git-dir 2>/dev/null
-		fi
-	elif [ -d "$1/.git" ]; then
-		echo "$1/.git"
-	else
-		echo "$1"
-	fi
-}
+# the colored output of "git status -sb" and are available only when
+# using __git_ps1 for PROMPT_COMMAND or precmd.
 
 # stores the divergence from upstream in $p
 # used by GIT_PS1_SHOWUPSTREAM
@@ -124,7 +105,7 @@ __git_ps1_show_upstream ()
 			fi
 			;;
 		svn-remote.*.url)
-			svn_remote[ $((${#svn_remote[@]} + 1)) ]="$value"
+			svn_remote[$((${#svn_remote[@]} + 1))]="$value"
 			svn_url_pattern+="\\|$value"
 			upstream=svn+git # default upstream is SVN if available, else git
 			;;
@@ -146,10 +127,11 @@ __git_ps1_show_upstream ()
 	svn*)
 		# get the upstream from the "git-svn-id: ..." in a commit message
 		# (git-svn uses essentially the same procedure internally)
-		local svn_upstream=($(git log --first-parent -1 \
+		local -a svn_upstream
+		svn_upstream=($(git log --first-parent -1 \
 					--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
 		if [[ 0 -ne ${#svn_upstream[@]} ]]; then
-			svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]}
+			svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
 			svn_upstream=${svn_upstream%@*}
 			local n_stop="${#svn_remote[@]}"
 			for ((n=1; n <= n_stop; n++)); do
@@ -222,6 +204,51 @@ __git_ps1_show_upstream ()
 
 }
 
+# Helper function that is meant to be called from __git_ps1.  It
+# injects color codes into the appropriate gitstring variables used
+# to build a gitstring.
+__git_ps1_colorize_gitstring ()
+{
+	if [[ -n ${ZSH_VERSION-} ]]; then
+		local c_red='%F{red}'
+		local c_green='%F{green}'
+		local c_lblue='%F{blue}'
+		local c_clear='%f'
+	else
+		# Using \[ and \] around colors is necessary to prevent
+		# issues with command line editing/browsing/completion!
+		local c_red='\[\e[31m\]'
+		local c_green='\[\e[32m\]'
+		local c_lblue='\[\e[1;34m\]'
+		local c_clear='\[\e[0m\]'
+	fi
+	local bad_color=$c_red
+	local ok_color=$c_green
+	local flags_color="$c_lblue"
+
+	local branch_color=""
+	if [ $detached = no ]; then
+		branch_color="$ok_color"
+	else
+		branch_color="$bad_color"
+	fi
+	c="$branch_color$c"
+
+	z="$c_clear$z"
+	if [ "$w" = "*" ]; then
+		w="$bad_color$w"
+	fi
+	if [ -n "$i" ]; then
+		i="$ok_color$i"
+	fi
+	if [ -n "$s" ]; then
+		s="$flags_color$s"
+	fi
+	if [ -n "$u" ]; then
+		u="$bad_color$u"
+	fi
+	r="$c_clear$r"
+}
 
 # __git_ps1 accepts 0 or 1 arguments (i.e., format string)
 # when called from PS1 using command substitution
@@ -254,39 +281,83 @@ __git_ps1 ()
 		;;
 	esac
 
-	local g="$(__gitdir)"
-	if [ -z "$g" ]; then
+	local repo_info rev_parse_exit_code
+	repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
+		--is-bare-repository --is-inside-work-tree \
+		--short HEAD 2>/dev/null)"
+	rev_parse_exit_code="$?"
+
+	if [ -z "$repo_info" ]; then
 		if [ $pcmode = yes ]; then
 			#In PC mode PS1 always needs to be set
 			PS1="$ps1pc_start$ps1pc_end"
 		fi
-	else
-		local r=""
-		local b=""
+		return
+	fi
+
+	local short_sha
+	if [ "$rev_parse_exit_code" = "0" ]; then
+		short_sha="${repo_info##*$'\n'}"
+		repo_info="${repo_info%$'\n'*}"
+	fi
+	local inside_worktree="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local bare_repo="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local inside_gitdir="${repo_info##*$'\n'}"
+	local g="${repo_info%$'\n'*}"
+
+	local r=""
+	local b=""
+	local step=""
+	local total=""
+	if [ -d "$g/rebase-merge" ]; then
+		read b 2>/dev/null <"$g/rebase-merge/head-name"
+		read step 2>/dev/null <"$g/rebase-merge/msgnum"
+		read total 2>/dev/null <"$g/rebase-merge/end"
 		if [ -f "$g/rebase-merge/interactive" ]; then
 			r="|REBASE-i"
-			b="$(cat "$g/rebase-merge/head-name")"
-		elif [ -d "$g/rebase-merge" ]; then
+		else
 			r="|REBASE-m"
-			b="$(cat "$g/rebase-merge/head-name")"
+		fi
+	else
+		if [ -d "$g/rebase-apply" ]; then
+			read step 2>/dev/null <"$g/rebase-apply/next"
+			read total 2>/dev/null <"$g/rebase-apply/last"
+			if [ -f "$g/rebase-apply/rebasing" ]; then
+				read b 2>/dev/null <"$g/rebase-apply/head-name"
+				r="|REBASE"
+			elif [ -f "$g/rebase-apply/applying" ]; then
+				r="|AM"
+			else
+				r="|AM/REBASE"
+			fi
+		elif [ -f "$g/MERGE_HEAD" ]; then
+			r="|MERGING"
+		elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
+			r="|CHERRY-PICKING"
+		elif [ -f "$g/REVERT_HEAD" ]; then
+			r="|REVERTING"
+		elif [ -f "$g/BISECT_LOG" ]; then
+			r="|BISECTING"
+		fi
+
+		if [ -n "$b" ]; then
+			:
+		elif [ -h "$g/HEAD" ]; then
+			# symlink symbolic ref
+			b="$(git symbolic-ref HEAD 2>/dev/null)"
 		else
-			if [ -d "$g/rebase-apply" ]; then
-				if [ -f "$g/rebase-apply/rebasing" ]; then
-					r="|REBASE"
-				elif [ -f "$g/rebase-apply/applying" ]; then
-					r="|AM"
-				else
-					r="|AM/REBASE"
+			local head=""
+			if ! read head 2>/dev/null <"$g/HEAD"; then
+				if [ $pcmode = yes ]; then
+					PS1="$ps1pc_start$ps1pc_end"
 				fi
-			elif [ -f "$g/MERGE_HEAD" ]; then
-				r="|MERGING"
-			elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
-				r="|CHERRY-PICKING"
-			elif [ -f "$g/BISECT_LOG" ]; then
-				r="|BISECTING"
+				return
 			fi
-
-			b="$(git symbolic-ref HEAD 2>/dev/null)" || {
+			# is it a symbolic ref?
+			b="${head#ref: }"
+			if [ "$head" = "$b" ]; then
 				detached=yes
 				b="$(
 				case "${GIT_PS1_DESCRIBE_STYLE-}" in
@@ -300,100 +371,75 @@ __git_ps1 ()
 					git describe --tags --exact-match HEAD ;;
 				esac 2>/dev/null)" ||
 
-				b="$(cut -c1-7 "$g/HEAD" 2>/dev/null)..." ||
-				b="unknown"
+				b="$short_sha..."
 				b="($b)"
-			}
+			fi
 		fi
+	fi
+
+	if [ -n "$step" ] && [ -n "$total" ]; then
+		r="$r $step/$total"
+	fi
 
-		local w=""
-		local i=""
-		local s=""
-		local u=""
-		local c=""
-		local p=""
+	local w=""
+	local i=""
+	local s=""
+	local u=""
+	local c=""
+	local p=""
 
-		if [ "true" = "$(git rev-parse --is-inside-git-dir 2>/dev/null)" ]; then
-			if [ "true" = "$(git rev-parse --is-bare-repository 2>/dev/null)" ]; then
-				c="BARE:"
+	if [ "true" = "$inside_gitdir" ]; then
+		if [ "true" = "$bare_repo" ]; then
+			c="BARE:"
+		else
+			b="GIT_DIR!"
+		fi
+	elif [ "true" = "$inside_worktree" ]; then
+		if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
+		   [ "$(git config --bool bash.showDirtyState)" != "false" ]
+		then
+			git diff --no-ext-diff --quiet --exit-code || w="*"
+			if [ -n "$short_sha" ]; then
+				git diff-index --cached --quiet HEAD -- || i="+"
 			else
-				b="GIT_DIR!"
-			fi
-		elif [ "true" = "$(git rev-parse --is-inside-work-tree 2>/dev/null)" ]; then
-			if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
-			   [ "$(git config --bool bash.showDirtyState)" != "false" ]
-			then
-				git diff --no-ext-diff --quiet --exit-code || w="*"
-				if git rev-parse --quiet --verify HEAD >/dev/null; then
-					git diff-index --cached --quiet HEAD -- || i="+"
-				else
-					i="#"
-				fi
-			fi
-			if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ]; then
-				git rev-parse --verify refs/stash >/dev/null 2>&1 && s="$"
+				i="#"
 			fi
+		fi
+		if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
+		   [ -r "$g/refs/stash" ]; then
+			s="$"
+		fi
 
-			if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
-			   [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
-			   [ -n "$(git ls-files --others --exclude-standard)" ]
-			then
-				u="%%"
-			fi
+		if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
+		   [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
+		   git ls-files --others --exclude-standard --error-unmatch -- '*' >/dev/null 2>/dev/null
+		then
+			u="%${ZSH_VERSION+%}"
+		fi
 
-			if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
-				__git_ps1_show_upstream
-			fi
+		if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
+			__git_ps1_show_upstream
 		fi
+	fi
 
-		local f="$w$i$s$u"
-		if [ $pcmode = yes ]; then
-			local gitstring=
-			if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
-				local c_red='\e[31m'
-				local c_green='\e[32m'
-				local c_lblue='\e[1;34m'
-				local c_clear='\e[0m'
-				local bad_color=$c_red
-				local ok_color=$c_green
-				local branch_color="$c_clear"
-				local flags_color="$c_lblue"
-				local branchstring="$c${b##refs/heads/}"
+	local z="${GIT_PS1_STATESEPARATOR-" "}"
 
-				if [ $detached = no ]; then
-					branch_color="$ok_color"
-				else
-					branch_color="$bad_color"
-				fi
+	# NO color option unless in PROMPT_COMMAND mode
+	if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
+		__git_ps1_colorize_gitstring
+	fi
 
-				# Setting gitstring directly with \[ and \] around colors
-				# is necessary to prevent wrapping issues!
-				gitstring="\[$branch_color\]$branchstring\[$c_clear\]"
+	local f="$w$i$s$u"
+	local gitstring="$c${b##refs/heads/}${f:+$z$f}$r$p"
 
-				if [ -n "$w$i$s$u$r$p" ]; then
-					gitstring="$gitstring "
-				fi
-				if [ "$w" = "*" ]; then
-					gitstring="$gitstring\[$bad_color\]$w"
-				fi
-				if [ -n "$i" ]; then
-					gitstring="$gitstring\[$ok_color\]$i"
-				fi
-				if [ -n "$s" ]; then
-					gitstring="$gitstring\[$flags_color\]$s"
-				fi
-				if [ -n "$u" ]; then
-					gitstring="$gitstring\[$bad_color\]$u"
-				fi
-				gitstring="$gitstring\[$c_clear\]$r$p"
-			else
-				gitstring="$c${b##refs/heads/}${f:+ $f}$r$p"
-			fi
+	if [ $pcmode = yes ]; then
+		if [[ -n ${ZSH_VERSION-} ]]; then
 			gitstring=$(printf -- "$printf_format" "$gitstring")
-			PS1="$ps1pc_start$gitstring$ps1pc_end"
 		else
-			# NO color option unless in PROMPT_COMMAND mode
-			printf -- "$printf_format" "$c${b##refs/heads/}${f:+ $f}$r$p"
+			printf -v gitstring -- "$printf_format" "$gitstring"
 		fi
+		PS1="$ps1pc_start$gitstring$ps1pc_end"
+	else
+		printf -- "$printf_format" "$gitstring"
 	fi
 }
-- 
cgit v1.2.3-70-g09d2


From dd220152be26163c93ed1c0f9f98e7bad0653941 Mon Sep 17 00:00:00 2001
From: Dimitri Jorge 
Date: Sun, 1 Sep 2013 18:20:08 +0200
Subject: Add autocompletion plugin for meteor command

---
 plugins/meteor/_meteor | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 plugins/meteor/_meteor

(limited to 'plugins')

diff --git a/plugins/meteor/_meteor b/plugins/meteor/_meteor
new file mode 100644
index 000000000..c90ed6caf
--- /dev/null
+++ b/plugins/meteor/_meteor
@@ -0,0 +1,32 @@
+#compdef meteor
+#autoload
+
+# Meteor Autocomplete plugin for Oh-My-Zsh, based on homebrew completion
+# Original author: Dimitri JORGE (https://github.com/jorge-d)
+
+local -a _1st_arguments
+_1st_arguments=(
+  'run:[Default] Run this project in local development mode'
+  'create:Create a new project'
+  'update:Upgrade this project to the latest version of Meteor'
+  'add:Add a package to this project'
+  'remove:Remove a package from this project'
+  'list:List available packages'
+  'help:Display Meteor help'
+  'bundle:Pack this project up into a tarball'
+  'mongo:Connect to the Mongo database for the specified site'
+  'deploy:Deploy this project to Meteor'
+  'logs:Show logs for specified site'
+  'reset:Reset the project state. Erases the local database.'
+  'test-packages:Test one or more packages'
+)
+
+if (( CURRENT == 2 )); then
+  _describe -t commands "meteor subcommand" _1st_arguments
+  return
+fi
+
+case "$words[2]" in
+    help)
+      _describe -t commands "brew subcommand" _1st_arguments
+esac
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From 90b83b81017bbf55d5c10e6bced835f6d184499d Mon Sep 17 00:00:00 2001
From: Dimitri Jorge 
Date: Sun, 1 Sep 2013 19:23:21 +0200
Subject: Add completion for package add and remove

---
 plugins/meteor/_meteor | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/meteor/_meteor b/plugins/meteor/_meteor
index c90ed6caf..cd7fc304f 100644
--- a/plugins/meteor/_meteor
+++ b/plugins/meteor/_meteor
@@ -4,6 +4,13 @@
 # Meteor Autocomplete plugin for Oh-My-Zsh, based on homebrew completion
 # Original author: Dimitri JORGE (https://github.com/jorge-d)
 
+_meteor_all_packages() {
+  packages=(`meteor list | cut -d" " -f1`)
+}
+_meteor_installed_packages() {
+  installed_packages=(`meteor list --using`)
+}
+
 local -a _1st_arguments
 _1st_arguments=(
   'run:[Default] Run this project in local development mode'
@@ -21,6 +28,9 @@ _1st_arguments=(
   'test-packages:Test one or more packages'
 )
 
+local expl
+local -a packages installed_packages
+
 if (( CURRENT == 2 )); then
   _describe -t commands "meteor subcommand" _1st_arguments
   return
@@ -28,5 +38,11 @@ fi
 
 case "$words[2]" in
     help)
-      _describe -t commands "brew subcommand" _1st_arguments
+      _describe -t commands "meteor subcommand" _1st_arguments ;;
+    remove)
+      _meteor_installed_packages
+      _wanted installed_packages expl 'installed packages' compadd -a installed_packages ;;
+    add)
+      _meteor_all_packages
+      _wanted packages expl 'all packages' compadd -a packages ;;
 esac
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From 190fcdffa7bc413dc7a9ebef4a6eaed37beb6896 Mon Sep 17 00:00:00 2001
From: Cristian Măgherușan-Stanciu 
Date: Wed, 9 Oct 2013 16:42:28 +0200
Subject: Added a completion plugin for the new aws-cli tool

It also supports quickly switching AWS profiles defined in
~/.aws/config using the asp alias
---
 plugins/aws/aws.plugin.zsh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 plugins/aws/aws.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh
new file mode 100644
index 000000000..3f7fb1995
--- /dev/null
+++ b/plugins/aws/aws.plugin.zsh
@@ -0,0 +1,17 @@
+export AWS_HOME=~/.aws
+
+function agp {
+  echo $AWS_DEFAULT_PROFILE
+  
+}
+function asp {
+  export AWS_DEFAULT_PROFILE=$1
+    export RPROMPT=""
+    
+}
+function aws_profiles {
+  reply=($(grep profile $AWS_HOME/config|sed -e 's/.*profile \([a-zA-Z0-9_-]*\).*/\1/'))
+}
+
+compctl -K aws_profiles asp
+source `which aws_zsh_completer.sh`
-- 
cgit v1.2.3-70-g09d2


From 3ca3c5a126a937dc6d6d3daba241f9a0f5a4c2f2 Mon Sep 17 00:00:00 2001
From: Wes Morgan 
Date: Mon, 14 Oct 2013 09:59:20 -0600
Subject: don't clobber existing RBENV_ROOT & follow Homebrew's default
 behavior

---
 plugins/rbenv/rbenv.plugin.zsh | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh
index 78f76c3a3..57ae2ca1f 100644
--- a/plugins/rbenv/rbenv.plugin.zsh
+++ b/plugins/rbenv/rbenv.plugin.zsh
@@ -10,12 +10,18 @@ FOUND_RBENV=0
 rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv")
 if _homebrew-installed && _rbenv-from-homebrew-installed ; then
     rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}")
+    if [[ $RBENV_ROOT = '' ]]; then 
+      RBENV_ROOT="$HOME/.rbenv"
+    fi
 fi
 
 for rbenvdir in "${rbenvdirs[@]}" ; do
   if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
     FOUND_RBENV=1
-    export RBENV_ROOT=$rbenvdir
+    if [[ $RBENV_ROOT = '' ]]; then
+      RBENV_ROOT=$rbenvdir
+    fi
+    export RBENV_ROOT
     export PATH=${rbenvdir}/bin:$PATH
     eval "$(rbenv init --no-rehash - zsh)"
 
-- 
cgit v1.2.3-70-g09d2


From 0185d9920b7d6c380277a4a15c9e4818df41700a Mon Sep 17 00:00:00 2001
From: Eduardo San Martin Morote 
Date: Mon, 9 Dec 2013 08:54:38 +0100
Subject: catimg plugin allow to print an image to the stdout using convert

---
 plugins/catimg/catimg.plugin.zsh |  16 +++++++
 plugins/catimg/catimg.sh         |  87 +++++++++++++++++++++++++++++++++++++++
 plugins/catimg/colors.png        | Bin 0 -> 353 bytes
 3 files changed, 103 insertions(+)
 create mode 100644 plugins/catimg/catimg.plugin.zsh
 create mode 100755 plugins/catimg/catimg.sh
 create mode 100644 plugins/catimg/colors.png

(limited to 'plugins')

diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh
new file mode 100644
index 000000000..01e81eca7
--- /dev/null
+++ b/plugins/catimg/catimg.plugin.zsh
@@ -0,0 +1,16 @@
+################################################################################
+# catimg script by Eduardo San Martin Morote aka Posva                         #
+# http://posva.net                                                             #
+#                                                                              #
+# Ouput the content of an image to the stdout using the 256 colors of the      #
+# terminal.                                                                    #
+# Github: https://github.com/posva/catimg                                      #
+################################################################################
+
+if [[ -x  `which convert` ]]; then
+  function catimg() {
+    source $(dirname $0)/catimg.sh $@
+  }
+else
+  echo "catimg need convert (ImageMagick) to work)"
+fi
diff --git a/plugins/catimg/catimg.sh b/plugins/catimg/catimg.sh
new file mode 100755
index 000000000..f9e067e34
--- /dev/null
+++ b/plugins/catimg/catimg.sh
@@ -0,0 +1,87 @@
+################################################################################
+# catimg script by Eduardo San Martin Morote aka Posva                         #
+# http://posva.net                                                             #
+#                                                                              #
+# Ouput the content of an image to the stdout using the 256 colors of the      #
+# terminal.                                                                    #
+# Github: https://github.com/posva/catimg                                      #
+################################################################################
+
+function help() {
+  echo "Usage catimg [-h] [-w width] [-c char] img"
+  echo "By default char is \"  \" and w is the terminal width"
+}
+
+# VARIABLES
+COLOR_FILE=$(dirname $0)/colors.png
+CHAR="  "
+
+WIDTH=""
+IMG=""
+
+while getopts qw:c:h opt; do
+  case "$opt" in
+    w) WIDTH="$OPTARG" ;;
+    c) CHAR="$OPTARG" ;;
+    h) help; exit ;;
+    *) help ; exit 1;;
+    esac
+  done
+
+while [ "$1" ]; do
+  IMG="$1"
+  shift
+done
+
+if [ "$IMG" = "" -o ! -f "$IMG" ]; then
+  help
+  exit 1
+fi
+
+if [ ! "$WIDTH" ]; then
+  COLS=$(expr $(tput cols) "/" $(echo -n "$CHAR" | wc -c))
+else
+  COLS=$(expr $WIDTH "/" $(echo -n "$CHAR" | wc -c))
+fi
+WIDTH=$(convert ${IMG} -print "%w\n" /dev/null)
+if [ "$WIDTH" -gt "$COLS" ]; then
+  WIDTH=$COLS
+fi
+
+REMAP=""
+if convert "$IMG" -resize $COLS\> +dither -remap $COLOR_FILE /dev/null ; then
+  REMAP="-remap $COLOR_FILE"
+else
+  echo "The version of convert is too old, don't expect good results :(" >&2
+  #convert "$IMG" -colors 256 PNG8:tmp.png
+  #IMG="tmp.png"
+fi
+
+# Display the image
+convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- |
+sed -e 's/.*none.*/NO NO NO/g' -e '1d;s/^.*(\(.*\)[,)].*$/\1/g;y/,/ /' |
+while read R G B f; do
+  if [ ! "$R" = "NO" ]; then
+    if [ "$R" -eq "$G" -a "$G" -eq "$B" ]; then
+      ((
+      I++,
+      IDX = 232 + R * 23 / 255
+      ))
+    else
+      ((
+      I++,
+      IDX = 16
+      + R * 5 / 255 * 36
+      + G * 5 / 255 * 6
+      + B * 5 / 255
+      ))
+    fi
+    #echo "$R,$G,$B: $IDX"
+    echo -ne "\e[48;5;${IDX}m${CHAR}"
+  else
+    (( I++ ))
+    echo -ne "\e[0m${CHAR}"
+  fi
+  # New lines
+  (( $I % $WIDTH )) || echo -e "\e[0m"
+done
diff --git a/plugins/catimg/colors.png b/plugins/catimg/colors.png
new file mode 100644
index 000000000..5f2c8126b
Binary files /dev/null and b/plugins/catimg/colors.png differ
-- 
cgit v1.2.3-70-g09d2


From 349fa15b187a1b2c411db90f2022013caf3479e8 Mon Sep 17 00:00:00 2001
From: Eduardo San Martin Morote 
Date: Mon, 9 Dec 2013 22:07:19 +0100
Subject: Fixed a dirs bug for catimg

---
 plugins/catimg/catimg.plugin.zsh | 2 +-
 plugins/catimg/catimg.sh         | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

(limited to 'plugins')

diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh
index 01e81eca7..ee721cd03 100644
--- a/plugins/catimg/catimg.plugin.zsh
+++ b/plugins/catimg/catimg.plugin.zsh
@@ -9,7 +9,7 @@
 
 if [[ -x  `which convert` ]]; then
   function catimg() {
-    source $(dirname $0)/catimg.sh $@
+    source $ZSH/plugins/catimg/catimg.sh $@
   }
 else
   echo "catimg need convert (ImageMagick) to work)"
diff --git a/plugins/catimg/catimg.sh b/plugins/catimg/catimg.sh
index f9e067e34..c05fddcd4 100755
--- a/plugins/catimg/catimg.sh
+++ b/plugins/catimg/catimg.sh
@@ -43,7 +43,7 @@ if [ ! "$WIDTH" ]; then
 else
   COLS=$(expr $WIDTH "/" $(echo -n "$CHAR" | wc -c))
 fi
-WIDTH=$(convert ${IMG} -print "%w\n" /dev/null)
+WIDTH=$(convert "$IMG" -print "%w\n" /dev/null)
 if [ "$WIDTH" -gt "$COLS" ]; then
   WIDTH=$COLS
 fi
@@ -58,6 +58,7 @@ else
 fi
 
 # Display the image
+I=0
 convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- |
 sed -e 's/.*none.*/NO NO NO/g' -e '1d;s/^.*(\(.*\)[,)].*$/\1/g;y/,/ /' |
 while read R G B f; do
-- 
cgit v1.2.3-70-g09d2


From 44b23ae194a1580a6af6d692e4ba268d61828929 Mon Sep 17 00:00:00 2001
From: Eduardo San Martin Morote 
Date: Mon, 9 Dec 2013 22:18:20 +0100
Subject: catimg: fix exit without using source supresses errors from convert
 whilen converting, as they are usually just warnings

---
 plugins/catimg/catimg.plugin.zsh | 2 +-
 plugins/catimg/catimg.sh         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

(limited to 'plugins')

diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh
index ee721cd03..70ef9a63c 100644
--- a/plugins/catimg/catimg.plugin.zsh
+++ b/plugins/catimg/catimg.plugin.zsh
@@ -9,7 +9,7 @@
 
 if [[ -x  `which convert` ]]; then
   function catimg() {
-    source $ZSH/plugins/catimg/catimg.sh $@
+    zsh $ZSH/plugins/catimg/catimg.sh $@
   }
 else
   echo "catimg need convert (ImageMagick) to work)"
diff --git a/plugins/catimg/catimg.sh b/plugins/catimg/catimg.sh
index c05fddcd4..cd0f2e333 100755
--- a/plugins/catimg/catimg.sh
+++ b/plugins/catimg/catimg.sh
@@ -59,7 +59,7 @@ fi
 
 # Display the image
 I=0
-convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- |
+convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- 2>/dev/null |
 sed -e 's/.*none.*/NO NO NO/g' -e '1d;s/^.*(\(.*\)[,)].*$/\1/g;y/,/ /' |
 while read R G B f; do
   if [ ! "$R" = "NO" ]; then
-- 
cgit v1.2.3-70-g09d2


From fdfc90705242841d7491bb945c35a3601d1c8996 Mon Sep 17 00:00:00 2001
From: Mikhail Nikalyukin 
Date: Fri, 6 Dec 2013 12:20:38 +0200
Subject: Add rdmtc alias for rails plugin.

---
 plugins/rails/rails.plugin.zsh | 1 +
 1 file changed, 1 insertion(+)

(limited to 'plugins')

diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh
index 23d15a9a1..4a96754e4 100644
--- a/plugins/rails/rails.plugin.zsh
+++ b/plugins/rails/rails.plugin.zsh
@@ -51,6 +51,7 @@ alias rds='rake db:seed'
 alias rdd='rake db:drop'
 alias rdtc='rake db:test:clone'
 alias rdtp='rake db:test:prepare'
+alias rdmtc='rake db:migrate db:test:clone'
 
 alias rlc='rake log:clear'
 alias rn='rake notes'
-- 
cgit v1.2.3-70-g09d2


From e41b6acd2a34bd2ad2a092b94629c95b1f932f82 Mon Sep 17 00:00:00 2001
From: chuancong 
Date: Thu, 19 Dec 2013 11:24:38 -0800
Subject: Add support to command "show"

---
 plugins/pip/_pip | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'plugins')

diff --git a/plugins/pip/_pip b/plugins/pip/_pip
index 967da48ca..7c1238db7 100644
--- a/plugins/pip/_pip
+++ b/plugins/pip/_pip
@@ -20,6 +20,7 @@ _1st_arguments=(
   'bundle:create pybundles (archives containing multiple packages)'
   'freeze:output all currently installed packages (exact versions) to stdout'
   'help:show available commands'
+  'show:show information about installed packages'
   'install:install packages'
   'search:search PyPI'
   'uninstall:uninstall packages'
@@ -76,4 +77,7 @@ case "$words[1]" in
   uninstall)
     _pip_installed
     _wanted installed_pkgs expl 'installed packages' compadd -a installed_pkgs ;;
+  show)
+    _pip_installed
+    _wanted installed_pkgs expl 'installed packages' compadd -a installed_pkgs ;;
 esac
-- 
cgit v1.2.3-70-g09d2


From 9ce1b6289aebc8e19b8bb25e4f7ac1cbc84e83de Mon Sep 17 00:00:00 2001
From: Brice Dutheil 
Date: Sat, 4 Jan 2014 22:06:09 +0100
Subject: new faster SVN plugin

---
 plugins/svn-fast-info/svn-fast-info.plugin.zsh | 64 ++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 plugins/svn-fast-info/svn-fast-info.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
new file mode 100644
index 000000000..d8fc53989
--- /dev/null
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -0,0 +1,64 @@
+# vim:ft=zsh ts=2 sw=2 sts=2
+#
+# Faster alternative to the current SVN plugin implementation.
+#
+# Works with svn 1.6, 1.7, 1.8.
+# Use `svn_prompt_info` method to enquire the svn data.
+# It's faster because his efficient use of svn (single svn call) done in the `parse_svn` function
+# Also changed prompt suffix *after* the svn dirty marker
+#
+# *** IMPORTANT *** DO NO USE with the simple svn plugin, this plugin acts as a replacement of it.
+
+function parse_svn() {
+    info=$(svn info 2> /dev/null) || return
+    in_svn=true
+	repo_need_upgrade="$(svn_repo_need_upgrade $info)"
+    svn_branch_name="$(svn_get_branch_name $info)"
+    svn_dirty="$(svn_dirty_choose)"
+    svn_repo_name="$(svn_get_repo_name $info)"
+    svn_rev="$(svn_get_revision $info)"
+}
+
+function svn_prompt_info() {
+    eval parse_svn
+
+    if [ ${in_svn} ]; then
+        echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
+$ZSH_THEME_REPO_NAME_COLOR${svn_branch_name}\
+$ZSH_PROMPT_BASE_COLOR${svn_dirty}\
+$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX\
+$ZSH_PROMPT_BASE_COLOR"
+    fi
+}
+
+
+function svn_repo_need_upgrade() {
+	info=$1
+	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
+	[ "${info}" = "E155036" ] && echo "upgrade repo with svn upgrade"
+}
+
+function svn_get_branch_name() {
+	info=$1
+	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
+    echo $info | grep '^URL:' | egrep -o '(tags|branches)/[^/]+|trunk' | egrep -o '[^/]+$' | read SVN_URL
+    echo $SVN_URL
+}
+
+function svn_get_repo_name() {
+	info=$1
+	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
+    echo $info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
+    echo $info | sed -n "s/URL:\ .*$SVN_ROOT\///p"
+}
+
+function svn_get_revision() {
+	info=$1
+	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
+    echo $info 2> /dev/null | sed -n s/Revision:\ //p
+}
+
+function svn_dirty_choose() {
+    svn status | grep -E '^\s*[ACDIM!?L]' > /dev/null 2>/dev/null && echo $ZSH_THEME_SVN_PROMPT_DIRTY && return
+    echo $ZSH_THEME_SVN_PROMPT_CLEAN
+}
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From 1304ed8d2521e452615bcf7563700018443f5470 Mon Sep 17 00:00:00 2001
From: Brice Dutheil 
Date: Mon, 6 Jan 2014 14:09:40 +0100
Subject: Report the SVN need upgrade

This happen when subversion 1.7+ is used on a repository created with subversion up to 1.6
---
 plugins/svn-fast-info/svn-fast-info.plugin.zsh | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

(limited to 'plugins')

diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
index d8fc53989..1027bcac2 100644
--- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -10,7 +10,7 @@
 # *** IMPORTANT *** DO NO USE with the simple svn plugin, this plugin acts as a replacement of it.
 
 function parse_svn() {
-    info=$(svn info 2> /dev/null) || return
+	info=$(svn info 2>&1) || return; # capture stdout and stdout
     in_svn=true
 	repo_need_upgrade="$(svn_repo_need_upgrade $info)"
     svn_branch_name="$(svn_get_branch_name $info)"
@@ -22,7 +22,13 @@ function parse_svn() {
 function svn_prompt_info() {
     eval parse_svn
 
-    if [ ${in_svn} ]; then
+	if [ ! -z $repo_need_upgrade ]; then
+		echo $ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX$ZSH_PROMPT_BASE_COLOR\
+$repo_need_upgrade\
+$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR
+	fi
+
+    if [[ ${in_svn} == true && -z $repo_need_upgrade ]]; then
         echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
 $ZSH_THEME_REPO_NAME_COLOR${svn_branch_name}\
 $ZSH_PROMPT_BASE_COLOR${svn_dirty}\
@@ -34,8 +40,8 @@ $ZSH_PROMPT_BASE_COLOR"
 
 function svn_repo_need_upgrade() {
 	info=$1
-	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
-	[ "${info}" = "E155036" ] && echo "upgrade repo with svn upgrade"
+	[ -z "${info}" ] && info=$(svn info 2>&1)
+	if grep -q "E155036" <<< $info; then echo "E155036: upgrade repo with svn upgrade"; fi
 }
 
 function svn_get_branch_name() {
@@ -61,4 +67,4 @@ function svn_get_revision() {
 function svn_dirty_choose() {
     svn status | grep -E '^\s*[ACDIM!?L]' > /dev/null 2>/dev/null && echo $ZSH_THEME_SVN_PROMPT_DIRTY && return
     echo $ZSH_THEME_SVN_PROMPT_CLEAN
-}
\ No newline at end of file
+}
-- 
cgit v1.2.3-70-g09d2


From 642ae64bc50f93739ca280e8dcb1d6dbb5932f58 Mon Sep 17 00:00:00 2001
From: Brice Dutheil 
Date: Tue, 7 Jan 2014 02:10:34 +0100
Subject: Inline `parse_svn` to avoid leaky state

As noted in review, `in_svn` is not properly reset to false. This is better anyway to not leak state.
---
 plugins/svn-fast-info/svn-fast-info.plugin.zsh | 36 ++++++++++++--------------
 1 file changed, 16 insertions(+), 20 deletions(-)

(limited to 'plugins')

diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
index 1027bcac2..e75f21599 100644
--- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -9,18 +9,14 @@
 #
 # *** IMPORTANT *** DO NO USE with the simple svn plugin, this plugin acts as a replacement of it.
 
-function parse_svn() {
+function svn_prompt_info() {
 	info=$(svn info 2>&1) || return; # capture stdout and stdout
-    in_svn=true
+	in_svn=true
 	repo_need_upgrade="$(svn_repo_need_upgrade $info)"
-    svn_branch_name="$(svn_get_branch_name $info)"
-    svn_dirty="$(svn_dirty_choose)"
-    svn_repo_name="$(svn_get_repo_name $info)"
-    svn_rev="$(svn_get_revision $info)"
-}
-
-function svn_prompt_info() {
-    eval parse_svn
+	svn_branch_name="$(svn_get_branch_name $info)"
+	svn_dirty="$(svn_dirty_choose)"
+	svn_repo_name="$(svn_get_repo_name $info)"
+	svn_rev="$(svn_get_revision $info)"
 
 	if [ ! -z $repo_need_upgrade ]; then
 		echo $ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX$ZSH_PROMPT_BASE_COLOR\
@@ -28,13 +24,13 @@ $repo_need_upgrade\
 $ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR
 	fi
 
-    if [[ ${in_svn} == true && -z $repo_need_upgrade ]]; then
-        echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
+	if [[ ${in_svn} == true && -z $repo_need_upgrade ]]; then
+		echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
 $ZSH_THEME_REPO_NAME_COLOR${svn_branch_name}\
 $ZSH_PROMPT_BASE_COLOR${svn_dirty}\
 $ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX\
 $ZSH_PROMPT_BASE_COLOR"
-    fi
+	fi
 }
 
 
@@ -47,24 +43,24 @@ function svn_repo_need_upgrade() {
 function svn_get_branch_name() {
 	info=$1
 	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
-    echo $info | grep '^URL:' | egrep -o '(tags|branches)/[^/]+|trunk' | egrep -o '[^/]+$' | read SVN_URL
-    echo $SVN_URL
+	echo $info | grep '^URL:' | egrep -o '(tags|branches)/[^/]+|trunk' | egrep -o '[^/]+$' | read SVN_URL
+	echo $SVN_URL
 }
 
 function svn_get_repo_name() {
 	info=$1
 	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
-    echo $info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
-    echo $info | sed -n "s/URL:\ .*$SVN_ROOT\///p"
+	echo $info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
+	echo $info | sed -n "s/URL:\ .*$SVN_ROOT\///p"
 }
 
 function svn_get_revision() {
 	info=$1
 	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
-    echo $info 2> /dev/null | sed -n s/Revision:\ //p
+	echo $info 2> /dev/null | sed -n s/Revision:\ //p
 }
 
 function svn_dirty_choose() {
-    svn status | grep -E '^\s*[ACDIM!?L]' > /dev/null 2>/dev/null && echo $ZSH_THEME_SVN_PROMPT_DIRTY && return
-    echo $ZSH_THEME_SVN_PROMPT_CLEAN
+	svn status | grep -E '^\s*[ACDIM!?L]' > /dev/null 2>/dev/null && echo $ZSH_THEME_SVN_PROMPT_DIRTY && return
+	echo $ZSH_THEME_SVN_PROMPT_CLEAN
 }
-- 
cgit v1.2.3-70-g09d2


From 8bf8e1ecf9eeb4117b1196a5fd02d788979f05f7 Mon Sep 17 00:00:00 2001
From: LFDM <1986gh@gmail.com>
Date: Tue, 7 Jan 2014 10:07:02 +0100
Subject: Heavy refactor of svn-fast-info

---
 plugins/svn-fast-info/svn-fast-info.plugin.zsh | 88 +++++++++++++++-----------
 1 file changed, 50 insertions(+), 38 deletions(-)

(limited to 'plugins')

diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
index e75f21599..2183010ba 100644
--- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -1,4 +1,4 @@
-# vim:ft=zsh ts=2 sw=2 sts=2
+# vim:ft=zsh ts=2 sw=2 sts=2 et
 #
 # Faster alternative to the current SVN plugin implementation.
 #
@@ -10,57 +10,69 @@
 # *** IMPORTANT *** DO NO USE with the simple svn plugin, this plugin acts as a replacement of it.
 
 function svn_prompt_info() {
-	info=$(svn info 2>&1) || return; # capture stdout and stdout
-	in_svn=true
-	repo_need_upgrade="$(svn_repo_need_upgrade $info)"
-	svn_branch_name="$(svn_get_branch_name $info)"
-	svn_dirty="$(svn_dirty_choose)"
-	svn_repo_name="$(svn_get_repo_name $info)"
-	svn_rev="$(svn_get_revision $info)"
+  local info
+  info=$(svn info 2>&1) || return 1; # capture stdout and stderr
+  local repo_need_upgrade=$(svn_repo_need_upgrade $info)
 
-	if [ ! -z $repo_need_upgrade ]; then
-		echo $ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX$ZSH_PROMPT_BASE_COLOR\
-$repo_need_upgrade\
-$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR
-	fi
-
-	if [[ ${in_svn} == true && -z $repo_need_upgrade ]]; then
-		echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
-$ZSH_THEME_REPO_NAME_COLOR${svn_branch_name}\
-$ZSH_PROMPT_BASE_COLOR${svn_dirty}\
-$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX\
-$ZSH_PROMPT_BASE_COLOR"
-	fi
+  if [ -n $repo_need_upgrade ]; then
+    printf '%s%s%s%s%s%s%s\n' \
+      $ZSH_PROMPT_BASE_COLOR \
+      $ZSH_THEME_SVN_PROMPT_PREFIX \
+      $ZSH_PROMPT_BASE_COLOR \
+      $repo_need_upgrade \
+      $ZSH_PROMPT_BASE_COLOR \
+      $ZSH_THEME_SVN_PROMPT_SUFFIX \
+      $ZSH_PROMPT_BASE_COLOR \
+  else
+    # something left for you to fix -
+    # repo name and rev aren't used here, did you forget them?
+    # especially since you set a repo name color
+    # if the prompt is alright this way, leave it as is and just
+    # delete the comment. The functions itself could stay imo,
+    # gives others the chance to use them.
+    printf '%s%s%s%s%s%s%s%s%s\n' \
+      $ZSH_PROMPT_BASE_COLOR \
+      $ZSH_THEME_SVN_PROMPT_PREFIX \
+      $ZSH_THEME_REPO_NAME_COLOR \
+      $(svn_get_branch_name $info)
+      ${svn_branch_name}\
+      $ZSH_PROMPT_BASE_COLOR
+      $(svn_dirty_choose $info)
+      $ZSH_PROMPT_BASE_COLOR
+      $ZSH_THEME_SVN_PROMPT_SUFFIX\
+      $ZSH_PROMPT_BASE_COLOR
+  fi
 }
 
-
 function svn_repo_need_upgrade() {
-	info=$1
-	[ -z "${info}" ] && info=$(svn info 2>&1)
-	if grep -q "E155036" <<< $info; then echo "E155036: upgrade repo with svn upgrade"; fi
+  grep -q "E155036" <<< ${1:-$(svn info 2> /dev/null)} && \
+    echo "E155036: upgrade repo with svn upgrade"
 }
 
 function svn_get_branch_name() {
-	info=$1
-	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
-	echo $info | grep '^URL:' | egrep -o '(tags|branches)/[^/]+|trunk' | egrep -o '[^/]+$' | read SVN_URL
-	echo $SVN_URL
+  echo ${1:-$(svn info 2> /dev/null)} |\
+    grep '^URL:' | egrep -o '(tags|branches)/[^/]+|trunk' |\
+    egrep -o '[^/]+$'
 }
 
 function svn_get_repo_name() {
-	info=$1
-	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
-	echo $info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
-	echo $info | sed -n "s/URL:\ .*$SVN_ROOT\///p"
+  # I think this can be further cleaned up as well, not sure how,
+  # as I can't test it
+  local svn_root
+  local info=${1:-$(svn info 2> /dev/null)}
+  echo $info | sed 's/Repository\ Root:\ .*\///p' | read svn_root
+  echo $info | sed "s/URL:\ .*$svn_root\///p"
 }
 
 function svn_get_revision() {
-	info=$1
-	[ -z "${info}" ] && info=$(svn info 2> /dev/null)
-	echo $info 2> /dev/null | sed -n s/Revision:\ //p
+  # does this work as it should?
+  echo ${1:-$(svn info 2> /dev/null)} | sed 's/Revision: //p'
 }
 
 function svn_dirty_choose() {
-	svn status | grep -E '^\s*[ACDIM!?L]' > /dev/null 2>/dev/null && echo $ZSH_THEME_SVN_PROMPT_DIRTY && return
-	echo $ZSH_THEME_SVN_PROMPT_CLEAN
+  if svn status | grep -E '^\s*[ACDIM!?L]' &> /dev/null; then
+    echo $ZSH_THEME_SVN_PROMPT_DIRTY
+  else
+    echo $ZSH_THEME_SVN_PROMPT_CLEAN
+  fi
 }
-- 
cgit v1.2.3-70-g09d2


From 8ede6c6af3b3f11d9b688e4bf9c97be8a54c6c4d Mon Sep 17 00:00:00 2001
From: Brice Dutheil 
Date: Wed, 8 Jan 2014 02:50:58 +0100
Subject: Added further cleanup and svn status information

---
 plugins/svn-fast-info/svn-fast-info.plugin.zsh | 64 ++++++++++++--------------
 1 file changed, 30 insertions(+), 34 deletions(-)

(limited to 'plugins')

diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
index 2183010ba..2d43d365b 100644
--- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -14,7 +14,7 @@ function svn_prompt_info() {
   info=$(svn info 2>&1) || return 1; # capture stdout and stderr
   local repo_need_upgrade=$(svn_repo_need_upgrade $info)
 
-  if [ -n $repo_need_upgrade ]; then
+  if [[ -n $repo_need_upgrade ]]; then
     printf '%s%s%s%s%s%s%s\n' \
       $ZSH_PROMPT_BASE_COLOR \
       $ZSH_THEME_SVN_PROMPT_PREFIX \
@@ -22,57 +22,53 @@ function svn_prompt_info() {
       $repo_need_upgrade \
       $ZSH_PROMPT_BASE_COLOR \
       $ZSH_THEME_SVN_PROMPT_SUFFIX \
-      $ZSH_PROMPT_BASE_COLOR \
+      $ZSH_PROMPT_BASE_COLOR
   else
-    # something left for you to fix -
-    # repo name and rev aren't used here, did you forget them?
-    # especially since you set a repo name color
-    # if the prompt is alright this way, leave it as is and just
-    # delete the comment. The functions itself could stay imo,
-    # gives others the chance to use them.
-    printf '%s%s%s%s%s%s%s%s%s\n' \
+    printf '%s%s%s %s%s:%s%s%s%s%s' \
       $ZSH_PROMPT_BASE_COLOR \
       $ZSH_THEME_SVN_PROMPT_PREFIX \
-      $ZSH_THEME_REPO_NAME_COLOR \
-      $(svn_get_branch_name $info)
-      ${svn_branch_name}\
-      $ZSH_PROMPT_BASE_COLOR
-      $(svn_dirty_choose $info)
-      $ZSH_PROMPT_BASE_COLOR
-      $ZSH_THEME_SVN_PROMPT_SUFFIX\
+      \
+      "$(svn_status_info $info)" \
+      $ZSH_PROMPT_BASE_COLOR \
+      \
+      $ZSH_THEME_BRANCH_NAME_COLOR \
+      $(svn_get_branch_name $info) \
+      $ZSH_PROMPT_BASE_COLOR \
+      \
+      $(svn_get_revision $info) \
+      $ZSH_PROMPT_BASE_COLOR \
+      \
+      $ZSH_THEME_SVN_PROMPT_SUFFIX \
       $ZSH_PROMPT_BASE_COLOR
   fi
 }
 
+
 function svn_repo_need_upgrade() {
   grep -q "E155036" <<< ${1:-$(svn info 2> /dev/null)} && \
     echo "E155036: upgrade repo with svn upgrade"
 }
 
 function svn_get_branch_name() {
-  echo ${1:-$(svn info 2> /dev/null)} |\
-    grep '^URL:' | egrep -o '(tags|branches)/[^/]+|trunk' |\
-    egrep -o '[^/]+$'
+  grep '^URL:' <<< "${1:-$(svn info 2> /dev/null)}" | egrep -o '(tags|branches)/[^/]+|trunk'	
 }
 
-function svn_get_repo_name() {
-  # I think this can be further cleaned up as well, not sure how,
-  # as I can't test it
-  local svn_root
-  local info=${1:-$(svn info 2> /dev/null)}
-  echo $info | sed 's/Repository\ Root:\ .*\///p' | read svn_root
-  echo $info | sed "s/URL:\ .*$svn_root\///p"
+function svn_get_repo_root_name() {
+  grep '^Repository\ Root:' <<< "${1:-$(svn info 2> /dev/null)}" | sed 's#.*/##'
 }
 
 function svn_get_revision() {
-  # does this work as it should?
-  echo ${1:-$(svn info 2> /dev/null)} | sed 's/Revision: //p'
+  echo "${1:-$(svn info 2> /dev/null)}" | sed -n 's/Revision: //p'
 }
 
-function svn_dirty_choose() {
-  if svn status | grep -E '^\s*[ACDIM!?L]' &> /dev/null; then
-    echo $ZSH_THEME_SVN_PROMPT_DIRTY
-  else
-    echo $ZSH_THEME_SVN_PROMPT_CLEAN
-  fi
+function svn_status_info() {
+  local svn_status_string="$ZSH_THEME_SVN_PROMPT_CLEAN"
+  local svn_status="$(svn status 2> /dev/null)";
+  if grep -E '^\s*A' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"; fi
+  if grep -E '^\s*D' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"; fi
+  if grep -E '^\s*M' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"; fi
+  if grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"; fi
+  if grep -E '^\s*\?' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"; fi
+  if grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DIRTY:-'!'}"; fi
+  echo $svn_status_string
 }
-- 
cgit v1.2.3-70-g09d2


From f66ab7f98f9be0486b3a55858d9466232fc97ef6 Mon Sep 17 00:00:00 2001
From: Brice Dutheil 
Date: Wed, 8 Jan 2014 03:04:54 +0100
Subject: Renamed the methods of this script

---
 plugins/svn-fast-info/svn-fast-info.plugin.zsh | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

(limited to 'plugins')

diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
index 2d43d365b..a12007ec6 100644
--- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -4,12 +4,10 @@
 #
 # Works with svn 1.6, 1.7, 1.8.
 # Use `svn_prompt_info` method to enquire the svn data.
-# It's faster because his efficient use of svn (single svn call) done in the `parse_svn` function
-# Also changed prompt suffix *after* the svn dirty marker
-#
-# *** IMPORTANT *** DO NO USE with the simple svn plugin, this plugin acts as a replacement of it.
+# It's faster because his efficient use of svn (single svn call) which saves a lot on a huge codebase
+# It displays the current status of the local files (added, deleted, modified, replaced, or else...)
 
-function svn_prompt_info() {
+function svn_fast_info() {
   local info
   info=$(svn info 2>&1) || return 1; # capture stdout and stderr
   local repo_need_upgrade=$(svn_repo_need_upgrade $info)
@@ -32,10 +30,10 @@ function svn_prompt_info() {
       $ZSH_PROMPT_BASE_COLOR \
       \
       $ZSH_THEME_BRANCH_NAME_COLOR \
-      $(svn_get_branch_name $info) \
+      $(svn_current_branch_name $info) \
       $ZSH_PROMPT_BASE_COLOR \
       \
-      $(svn_get_revision $info) \
+      $(svn_current_revision $info) \
       $ZSH_PROMPT_BASE_COLOR \
       \
       $ZSH_THEME_SVN_PROMPT_SUFFIX \
@@ -43,21 +41,20 @@ function svn_prompt_info() {
   fi
 }
 
-
 function svn_repo_need_upgrade() {
   grep -q "E155036" <<< ${1:-$(svn info 2> /dev/null)} && \
     echo "E155036: upgrade repo with svn upgrade"
 }
 
-function svn_get_branch_name() {
+function svn_current_branch_name() {
   grep '^URL:' <<< "${1:-$(svn info 2> /dev/null)}" | egrep -o '(tags|branches)/[^/]+|trunk'	
 }
 
-function svn_get_repo_root_name() {
+function svn_repo_root_name() {
   grep '^Repository\ Root:' <<< "${1:-$(svn info 2> /dev/null)}" | sed 's#.*/##'
 }
 
-function svn_get_revision() {
+function svn_current_revision() {
   echo "${1:-$(svn info 2> /dev/null)}" | sed -n 's/Revision: //p'
 }
 
-- 
cgit v1.2.3-70-g09d2


From ca129bb55085cf93510346dcd70b1190b87d5bc0 Mon Sep 17 00:00:00 2001
From: Brice Dutheil 
Date: Fri, 10 Jan 2014 14:03:10 +0100
Subject: Renames main plugin function to `svn_prompt_info`

---
 plugins/svn-fast-info/svn-fast-info.plugin.zsh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
index a12007ec6..ea19bcea0 100644
--- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh
+++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh
@@ -6,8 +6,10 @@
 # Use `svn_prompt_info` method to enquire the svn data.
 # It's faster because his efficient use of svn (single svn call) which saves a lot on a huge codebase
 # It displays the current status of the local files (added, deleted, modified, replaced, or else...)
+#
+# Use as a drop-in replacement of the svn plugin not as complementary plugin
 
-function svn_fast_info() {
+function svn_prompt_info() {
   local info
   info=$(svn info 2>&1) || return 1; # capture stdout and stderr
   local repo_need_upgrade=$(svn_repo_need_upgrade $info)
-- 
cgit v1.2.3-70-g09d2


From a6671919ab2a5b0732dbc07d6f8becd9346917da Mon Sep 17 00:00:00 2001
From: LFDM <1986gh@gmail.com>
Date: Fri, 10 Jan 2014 22:52:18 +0100
Subject: Fixes _rails_command

Changes precedence of the conditional clause, more recent versions come
first now. Fixes problems when users update their app and still have
the old rails files inside of their file tree.
Closes #2405 - check the discussion there for further info.
---
 plugins/rails/rails.plugin.zsh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'plugins')

diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh
index 23d15a9a1..210fdfcf7 100644
--- a/plugins/rails/rails.plugin.zsh
+++ b/plugins/rails/rails.plugin.zsh
@@ -1,10 +1,10 @@
 function _rails_command () {
-  if [ -e "script/server" ]; then
-    ruby script/$@
+  if [ -e "bin/rails" ]; then
+    bin/rails $@
   elif [ -e "script/rails" ]; then
     ruby script/rails $@
-  elif [ -e "bin/rails" ]; then
-    bin/rails $@
+  elif [ -e "script/server" ]; then
+    ruby script/$@
   else
     rails $@
   fi
-- 
cgit v1.2.3-70-g09d2


From 0cb2ecff8002e478f5e7e64cb529eb2af71b0299 Mon Sep 17 00:00:00 2001
From: Tobias Kirschstein 
Date: Tue, 11 Feb 2014 19:56:13 +1300
Subject: provides iwhois command to use CNAMES under whois.geek.nz to find
 most accurate whois server

---
 plugins/iwhois/iwhois.plugin.zsh | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 plugins/iwhois/iwhois.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/iwhois/iwhois.plugin.zsh b/plugins/iwhois/iwhois.plugin.zsh
new file mode 100644
index 000000000..38790bf28
--- /dev/null
+++ b/plugins/iwhois/iwhois.plugin.zsh
@@ -0,0 +1,8 @@
+# provide a whois command with a more accurate and up to date list of whois
+# servers using CNAMES via whois.geek.nz
+
+function iwhois() {
+    resolver="whois.geek.nz"
+    tld=`echo ${@: -1} | awk -F "." '{print $NF}'`
+    whois -h ${tld}.${resolver} "$@" ;
+}
-- 
cgit v1.2.3-70-g09d2


From 0d212bb218617dfb62c9c31a19b64e321cb1d9b6 Mon Sep 17 00:00:00 2001
From: Luke Steensen 
Date: Tue, 11 Feb 2014 21:14:02 -0600
Subject: Add 'services' command to homebrew completion

---
 plugins/brew/_brew | 1 +
 1 file changed, 1 insertion(+)

(limited to 'plugins')

diff --git a/plugins/brew/_brew b/plugins/brew/_brew
index a25caf40c..d4306f223 100644
--- a/plugins/brew/_brew
+++ b/plugins/brew/_brew
@@ -33,6 +33,7 @@ _1st_arguments=(
   'remove:remove a formula'
   'search:search for a formula (/regex/ or string)'
   'server:start a local web app that lets you browse formulae (requires Sinatra)'
+  'services:manage background services via launchctl'
   'unlink:unlink a formula'
   'update:freshen up links'
   'upgrade:upgrade outdated formulae'
-- 
cgit v1.2.3-70-g09d2


From f3f0a54259f384c35dad48a40d6e931df079b3c9 Mon Sep 17 00:00:00 2001
From: Ed Lui 
Date: Tue, 11 Feb 2014 22:45:41 -0500
Subject: Updated _brew zsh autocompletion to latest Homebrew upstream

---
 plugins/brew/_brew | 75 ++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 59 insertions(+), 16 deletions(-)

(limited to 'plugins')

diff --git a/plugins/brew/_brew b/plugins/brew/_brew
index d4306f223..9eb3bb557 100644
--- a/plugins/brew/_brew
+++ b/plugins/brew/_brew
@@ -11,10 +11,25 @@ _brew_installed_formulae() {
   installed_formulae=(`brew list`)
 }
 
+_brew_installed_taps() {
+  installed_taps=(`brew tap`)
+}
+
+_brew_outdated_formulae() {
+  outdated_formulae=(`brew outdated`)
+}
+
+_brew_running_services() {
+  running_services=(`brew services list | awk '{print $1}'`)
+}
+
 local -a _1st_arguments
 _1st_arguments=(
+  'audit:check formulae for Homebrew coding style'
+  'bundle:look for a Brewfile and run each line as a brew command'
   'cat:display formula file for a formula'
   'cleanup:uninstall unused and old versions of packages'
+  'commands:show a list of commands'
   'create:create a new formula'
   'deps:list dependencies and dependants of a formula'
   'doctor:audits your installation for common issues'
@@ -22,27 +37,38 @@ _1st_arguments=(
   'home:visit the homepage of a formula or the brew project'
   'info:information about a formula'
   'install:install a formula'
+  'reinstall:install a formula anew; re-using its current options'
   'link:link a formula'
   'list:list files in a formula or not-installed formulae'
   'log:git commit log for a formula'
   'missing:check all installed formuale for missing dependencies.'
-  'options:display install options specific to formula.'
-  'outdated:list formulas for which a newer version is available'
+  'outdated:list formulae for which a newer version is available'
+  'pin:pin specified formulae'
   'prune:remove dead links'
-  'reinstall:reinstall a formula'
   'remove:remove a formula'
   'search:search for a formula (/regex/ or string)'
   'server:start a local web app that lets you browse formulae (requires Sinatra)'
-  'services:manage background services via launchctl'
+  'services:small wrapper around `launchctl` for supported formulae'
+  'tap:tap a new formula repository from GitHub, or list existing taps'
   'unlink:unlink a formula'
+  'unpin:unpin specified formulae'
+  'untap:remove a tapped repository'
   'update:freshen up links'
   'upgrade:upgrade outdated formulae'
-  'uses:show formulas which depend on a formula'
-  'versions:show all available formula versions'
+  'uses:show formulae which depend on a formula'
+)
+
+local -a _service_arguments
+_service_arguments=(
+  'cleanup:get rid of stale services and unused plists'
+  'list:list all services managed by `brew services`'
+  'restart:gracefully restart selected service'
+  'start:start selected service'
+  'stop:stop selected service'
 )
 
 local expl
-local -a formulae installed_formulae
+local -a formulae installed_formulae installed_taps outdated_formulae running_services
 
 _arguments \
   '(-v)-v[verbose]' \
@@ -61,24 +87,41 @@ if (( CURRENT == 1 )); then
 fi
 
 case "$words[1]" in
-  search|-S)
-    _arguments \
-      '(--macports)--macports[search the macports repository]' \
-      '(--fink)--fink[search the fink repository]' ;;
+  install|reinstall|audit|home|homepage|log|info|abv|uses|cat|deps|edit|options)
+    _brew_all_formulae
+    _wanted formulae expl 'all formulae' compadd -a formulae ;;
   list|ls)
     _arguments \
       '(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
+      '(--pinned)--pinned[list all versions of pinned formulae]' \
       '(--versions)--versions[list all installed versions of a formula]' \
-      '1: :->forms' &&  return 0
+      '1: :->forms' && return 0
 
       if [[ "$state" == forms ]]; then
         _brew_installed_formulae
         _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
       fi ;;
-  install|home|homepage|log|info|abv|uses|cat|deps|edit|options|versions)
-    _brew_all_formulae
-    _wanted formulae expl 'all formulae' compadd -a formulae ;;
-  reinstall|remove|rm|uninstall|unlink|cleanup|link|ln)
+  remove|rm|uninstall|unlink|cleanup|link|ln|pin|unpin)
     _brew_installed_formulae
     _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
+  search|-S)
+    _arguments \
+      '(--macports)--macports[search the macports repository]' \
+      '(--fink)--fink[search the fink repository]' ;;
+  services)
+    if [[ -n "$words[2]" ]]; then
+      case "$words[2]" in
+        restart|start|stop)
+          _brew_running_services
+          _wanted running_services expl 'running services' compadd -a running_services ;;
+      esac
+    else
+      _describe -t commands "brew services subcommand" _service_arguments
+    fi ;;
+  untap)
+    _brew_installed_taps
+    _wanted installed_taps expl 'installed taps' compadd -a installed_taps ;;
+  upgrade)
+    _brew_outdated_formulae
+    _wanted outdated_formulae expl 'outdated formulae' compadd -a outdated_formulae ;;
 esac
-- 
cgit v1.2.3-70-g09d2


From 2078e7d4deac2546deea6b707837b39c535eaa78 Mon Sep 17 00:00:00 2001
From: Luke Steensen 
Date: Wed, 12 Feb 2014 20:09:44 -0600
Subject: remove duplicate 'go' plugin, symlink to 'golang'

---
 plugins/go/go.plugin.zsh | 152 +----------------------------------------------
 1 file changed, 1 insertion(+), 151 deletions(-)
 mode change 100644 => 120000 plugins/go/go.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/go/go.plugin.zsh b/plugins/go/go.plugin.zsh
deleted file mode 100644
index 23afa9656..000000000
--- a/plugins/go/go.plugin.zsh
+++ /dev/null
@@ -1,151 +0,0 @@
-# install in /etc/zsh/zshrc or your personal .zshrc
-
-# gc
-prefixes=(5 6 8)
-for p in $prefixes; do
-	compctl -g "*.${p}" ${p}l
-	compctl -g "*.go" ${p}g
-done
-
-# standard go tools
-compctl -g "*.go" gofmt
-
-# gccgo
-compctl -g "*.go" gccgo
-
-# go tool
-__go_tool_complete() {
-  typeset -a commands build_flags
-  commands+=(
-    'build[compile packages and dependencies]'
-    'clean[remove object files]'
-    'doc[run godoc on package sources]'
-    'fix[run go tool fix on packages]'
-    'fmt[run gofmt on package sources]'
-    'get[download and install packages and dependencies]'
-    'help[display help]'
-    'install[compile and install packages and dependencies]'
-    'list[list packages]'
-    'run[compile and run Go program]'
-    'test[test packages]'
-    'tool[run specified go tool]'
-    'version[print Go version]'
-    'vet[run go tool vet on packages]'
-  )
-  if (( CURRENT == 2 )); then
-    # explain go commands
-    _values 'go tool commands' ${commands[@]}
-    return
-  fi
-  build_flags=(
-    '-a[force reinstallation of packages that are already up-to-date]'
-    '-n[print the commands but do not run them]'
-    "-p[number of parallel builds]:number"
-    '-x[print the commands]'
-    "-work[print temporary directory name and keep it]"
-    "-gcflags[flags for 5g/6g/8g]:flags"
-    "-ldflags[flags for 5l/6l/8l]:flags"
-    "-gccgoflags[flags for gccgo]:flags"
-  )
-  __go_list() {
-      local expl importpaths
-      declare -a importpaths
-      importpaths=($(go list ${words[$CURRENT]}... 2>/dev/null))
-      _wanted importpaths expl 'import paths' compadd "$@" - "${importpaths[@]}"
-  }
-  case ${words[2]} in
-  clean|doc)
-      _arguments -s -w : '*:importpaths:__go_list'
-      ;;
-  fix|fmt|list|vet)
-      _alternative ':importpaths:__go_list' ':files:_path_files -g "*.go"'
-      ;;
-  install)
-      _arguments -s -w : ${build_flags[@]} \
-        "-v[show package names]" \
-	'*:importpaths:__go_list'
-      ;;
-  get)
-      _arguments -s -w : \
-        ${build_flags[@]}
-      ;;
-  build)
-      _arguments -s -w : \
-        ${build_flags[@]} \
-        "-v[show package names]" \
-        "-o[output file]:file:_files" \
-        "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }"
-      ;;
-  test)
-      _arguments -s -w : \
-        ${build_flags[@]} \
-        "-c[do not run, compile the test binary]" \
-        "-i[do not run, install dependencies]" \
-        "-v[print test output]" \
-        "-x[print the commands]" \
-        "-short[use short mode]" \
-        "-parallel[number of parallel tests]:number" \
-        "-cpu[values of GOMAXPROCS to use]:number list" \
-        "-run[run tests and examples matching regexp]:regexp" \
-        "-bench[run benchmarks matching regexp]:regexp" \
-        "-benchtime[run each benchmark during n seconds]:duration" \
-        "-timeout[kill test after that duration]:duration" \
-        "-cpuprofile[write CPU profile to file]:file:_files" \
-        "-memprofile[write heap profile to file]:file:_files" \
-        "-memprofilerate[set heap profiling rate]:number" \
-        "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }"
-      ;;
-  help)
-      _values "${commands[@]}" \
-        'gopath[GOPATH environment variable]' \
-        'importpath[description of import paths]' \
-        'remote[remote import path syntax]' \
-        'testflag[description of testing flags]' \
-        'testfunc[description of testing functions]'
-      ;;
-  run)
-      _arguments -s -w : \
-          ${build_flags[@]} \
-          '*:file:_path_files -g "*.go"'
-      ;;
-  tool)
-      if (( CURRENT == 3 )); then
-          _values "go tool" $(go tool)
-          return
-      fi
-      case ${words[3]} in
-      [568]g)
-          _arguments -s -w : \
-              '-I[search for packages in DIR]:includes:_path_files -/' \
-              '-L[show full path in file:line prints]' \
-              '-S[print the assembly language]' \
-              '-V[print the compiler version]' \
-              '-e[no limit on number of errors printed]' \
-              '-h[panic on an error]' \
-              '-l[disable inlining]' \
-              '-m[print optimization decisions]' \
-              '-o[file specify output file]:file' \
-              '-p[assumed import path for this code]:importpath' \
-              '-u[disable package unsafe]' \
-              "*:file:_files -g '*.go'"
-          ;;
-      [568]l)
-          local O=${words[3]%l}
-          _arguments -s -w : \
-              '-o[file specify output file]:file' \
-              '-L[search for packages in DIR]:includes:_path_files -/' \
-              "*:file:_files -g '*.[ao$O]'"
-          ;;
-      dist)
-          _values "dist tool" banner bootstrap clean env install version
-          ;;
-      *)
-          # use files by default
-          _files
-          ;;
-      esac
-      ;;
-  esac
-}
-
-compdef __go_tool_complete go
diff --git a/plugins/go/go.plugin.zsh b/plugins/go/go.plugin.zsh
new file mode 120000
index 000000000..cf943e2e1
--- /dev/null
+++ b/plugins/go/go.plugin.zsh
@@ -0,0 +1 @@
+../golang/golang.plugin.zsh
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From aa9db3e8f9e03156f350b5d32fdf5dfde76a6038 Mon Sep 17 00:00:00 2001
From: Luke Steensen 
Date: Wed, 12 Feb 2014 20:13:00 -0600
Subject: update golang plugin to match official version

---
 plugins/golang/golang.plugin.zsh | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

(limited to 'plugins')

diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh
index e60c4afe4..18bcaaff2 100644
--- a/plugins/golang/golang.plugin.zsh
+++ b/plugins/golang/golang.plugin.zsh
@@ -1,9 +1,10 @@
-# From : http://golang.org/misc/zsh/go?m=text
+# install in /etc/zsh/zshrc or your personal .zshrc
+
 # gc
 prefixes=(5 6 8)
 for p in $prefixes; do
-    compctl -g "*.${p}" ${p}l
-    compctl -g "*.go" ${p}g
+	compctl -g "*.${p}" ${p}l
+	compctl -g "*.go" ${p}g
 done
 
 # standard go tools
@@ -19,6 +20,7 @@ __go_tool_complete() {
     'build[compile packages and dependencies]'
     'clean[remove object files]'
     'doc[run godoc on package sources]'
+    'env[print Go environment information]'
     'fix[run go tool fix on packages]'
     'fmt[run gofmt on package sources]'
     'get[download and install packages and dependencies]'
@@ -39,12 +41,17 @@ __go_tool_complete() {
   build_flags=(
     '-a[force reinstallation of packages that are already up-to-date]'
     '-n[print the commands but do not run them]'
-    "-p[number of parallel builds]:number"
+    '-p[number of parallel builds]:number'
+    '-race[enable data race detection]'
     '-x[print the commands]'
-    "-work[print temporary directory name and keep it]"
-    "-gcflags[flags for 5g/6g/8g]:flags"
-    "-ldflags[flags for 5l/6l/8l]:flags"
-    "-gccgoflags[flags for gccgo]:flags"
+    '-work[print temporary directory name and keep it]'
+    '-ccflags[flags for 5c/6c/8c]:flags'
+    '-gcflags[flags for 5g/6g/8g]:flags'
+    '-ldflags[flags for 5l/6l/8l]:flags'
+    '-gccgoflags[flags for gccgo]:flags'
+    '-compiler[name of compiler to use]:name'
+    '-installsuffix[suffix to add to package directory]:suffix'
+    '-tags[list of build tags to consider satisfied]:tags'
   )
   __go_list() {
       local expl importpaths
@@ -62,7 +69,7 @@ __go_tool_complete() {
   install)
       _arguments -s -w : ${build_flags[@]} \
         "-v[show package names]" \
-    '*:importpaths:__go_list'
+        '*:importpaths:__go_list'
       ;;
   get)
       _arguments -s -w : \
@@ -87,7 +94,10 @@ __go_tool_complete() {
         "-cpu[values of GOMAXPROCS to use]:number list" \
         "-run[run tests and examples matching regexp]:regexp" \
         "-bench[run benchmarks matching regexp]:regexp" \
-        "-benchtime[run each benchmark during n seconds]:duration" \
+        "-benchmem[print memory allocation stats]" \
+        "-benchtime[run each benchmark until taking this long]:duration" \
+        "-blockprofile[write goroutine blocking profile to file]:file" \
+        "-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \
         "-timeout[kill test after that duration]:duration" \
         "-cpuprofile[write CPU profile to file]:file:_files" \
         "-memprofile[write heap profile to file]:file:_files" \
@@ -97,7 +107,7 @@ __go_tool_complete() {
   help)
       _values "${commands[@]}" \
         'gopath[GOPATH environment variable]' \
-        'importpath[description of import paths]' \
+        'packages[description of package lists]' \
         'remote[remote import path syntax]' \
         'testflag[description of testing flags]' \
         'testfunc[description of testing functions]'
@@ -147,4 +157,4 @@ __go_tool_complete() {
   esac
 }
 
-compdef __go_tool_complete go
\ No newline at end of file
+compdef __go_tool_complete go
-- 
cgit v1.2.3-70-g09d2


From f6f3e9301940dc21680aa50156355c8dba61b441 Mon Sep 17 00:00:00 2001
From: Emanuele Zattin 
Date: Thu, 13 Feb 2014 10:32:52 +0100
Subject: Improve oneline logs

Add decorate and color to the normal oneline and add a new alias for graph oneline logs.
---
 plugins/git/git.plugin.zsh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 1285a3247..2b5983f33 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -62,8 +62,10 @@ alias glgg='git log --graph --max-count=10'
 compdef _git glgg=git-log
 alias glgga='git log --graph --decorate --all'
 compdef _git glgga=git-log
-alias glo='git log --oneline'
+alias glo='git log --oneline --decorate --color'
 compdef _git glo=git-log
+alias glog='git log --oneline --decorate --color --graph'
+compdef _git glog=git-log
 alias gss='git status -s'
 compdef _git gss=git-status
 alias ga='git add'
-- 
cgit v1.2.3-70-g09d2


From 354593e9b2b3a7ec3a0840eeadbc7d760cdd7263 Mon Sep 17 00:00:00 2001
From: Igor Timoshenko 
Date: Fri, 14 Feb 2014 14:54:28 +0000
Subject: Added Yii basic command completion

---
 plugins/yii/yii.plugin.zsh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 plugins/yii/yii.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/yii/yii.plugin.zsh b/plugins/yii/yii.plugin.zsh
new file mode 100644
index 000000000..b816160f0
--- /dev/null
+++ b/plugins/yii/yii.plugin.zsh
@@ -0,0 +1,17 @@
+# Yii basic command completion
+
+_yii_get_command_list () {
+	protected/yiic | awk '/^ - [a-z]+/ { print $2 }'
+}
+
+_yii () {
+  if [ -f protected/yiic ]; then
+    compadd `_yii_get_command_list`
+  fi
+}
+
+compdef _yii protected/yiic
+compdef _yii yiic
+
+# Aliases
+alias yiic='protected/yiic'
-- 
cgit v1.2.3-70-g09d2


From fdd864bd5b5444848c492454e025257f3c4fa675 Mon Sep 17 00:00:00 2001
From: Chris Wiggins 
Date: Mon, 17 Feb 2014 13:32:24 +1300
Subject: Update battery plugin to show calculating - OSX

Instantly after removing the charger, I have found that the "AvgTimeToEmpty" value can swing to rediculous values. Apple's current claim is that the max battery life is 12 hours, so any value larger than this is considered a "time is being calculated" value.
---
 plugins/battery/battery.plugin.zsh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 16ad3e651..2c00ff141 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -30,7 +30,11 @@ if [[ $(uname) == "Darwin" ]] ; then
   	local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
     if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
       timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
-      echo "~$((timeremaining / 60)):$((timeremaining % 60))"
+      if [ $timeremaining -gt 720 ] ; then
+        echo "::"
+      else
+        echo "~$((timeremaining / 60)):$((timeremaining % 60))"
+      fi
     else
       echo "∞"
     fi
-- 
cgit v1.2.3-70-g09d2


From 358b6ffcde9e3732ed08387fc176851e07c1862f Mon Sep 17 00:00:00 2001
From: Brian McKenna 
Date: Tue, 18 Feb 2014 14:37:59 -0700
Subject: Add cabal_sandbox_info function

Reports whether the current working directory is within a
sandbox. Useful to check before installing Cabal packages into the
global registry.
---
 plugins/cabal/cabal.plugin.zsh | 11 +++++++++++
 1 file changed, 11 insertions(+)

(limited to 'plugins')

diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh
index 8d3c64587..9f76add7a 100644
--- a/plugins/cabal/cabal.plugin.zsh
+++ b/plugins/cabal/cabal.plugin.zsh
@@ -1,3 +1,14 @@
+function cabal_sandbox_info() {
+    cabal_files=(*.cabal(N))
+    if [ $#cabal_files -gt 0 ]; then
+        if [ -f cabal.sandbox.config ]; then
+            echo "%{$fg[green]%}sandboxed%{$reset_color%}"
+        else
+            echo "%{$fg[red]%}not sandboxed%{$reset_color%}"
+        fi
+    fi
+}
+
 function _cabal_commands() {
     local ret=1 state
     _arguments ':subcommand:->subcommand' && ret=0
-- 
cgit v1.2.3-70-g09d2


From 1df7d01618f06cc80b7f9d14bd088c70e6382d33 Mon Sep 17 00:00:00 2001
From: Brian McKenna 
Date: Tue, 18 Feb 2014 14:43:42 -0700
Subject: Fix URL to gi (gitignore) function

Previous URL doesn't seem to work because the host requires a www
prefix.
---
 plugins/gitignore/gitignore.plugin.zsh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh
index 332497cec..be3c3a635 100644
--- a/plugins/gitignore/gitignore.plugin.zsh
+++ b/plugins/gitignore/gitignore.plugin.zsh
@@ -1,4 +1,4 @@
-function gi() { curl http://gitignore.io/api/$@ ;}
+function gi() { curl http://www.gitignore.io/api/$@ ;}
 
 _gitignireio_get_command_list() {
   curl -s http://gitignore.io/api/list | tr "," "\n"
-- 
cgit v1.2.3-70-g09d2


From bd4f7e24ea1451eeab351b0a68ac3729213b369b Mon Sep 17 00:00:00 2001
From: Alexander Hramov 
Date: Wed, 19 Feb 2014 15:08:47 +0300
Subject: Update gitignore.plugin.zsh

Fix URL to gi (gitignore) function in _gitignireio_get_command_list function
---
 plugins/gitignore/gitignore.plugin.zsh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'plugins')

diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh
index be3c3a635..be037d87a 100644
--- a/plugins/gitignore/gitignore.plugin.zsh
+++ b/plugins/gitignore/gitignore.plugin.zsh
@@ -1,7 +1,7 @@
 function gi() { curl http://www.gitignore.io/api/$@ ;}
 
 _gitignireio_get_command_list() {
-  curl -s http://gitignore.io/api/list | tr "," "\n"
+  curl -s http://www.gitignore.io/api/list | tr "," "\n"
 }
 
 _gitignireio () {
@@ -9,4 +9,4 @@ _gitignireio () {
   compadd -S '' `_gitignireio_get_command_list`
 }
 
-compdef _gitignireio gi
\ No newline at end of file
+compdef _gitignireio gi
-- 
cgit v1.2.3-70-g09d2


From 840ae4382ec5b60f9a5f4ef500e40b7193c4ee87 Mon Sep 17 00:00:00 2001
From: Brandon Beacher 
Date: Wed, 19 Feb 2014 18:55:52 -0500
Subject: Remove mailcatcher from the bundler plugin.

Recommended by @sj26 per https://github.com/sj26/mailcatcher#bundler.
---
 plugins/bundler/bundler.plugin.zsh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index 9dfed61a4..df30ed7c7 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -6,7 +6,7 @@ alias bu="bundle update"
 
 # The following is based on https://github.com/gma/bundler-exec
 
-bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails puma)
+bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife mailcatcher middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails puma)
 
 # Remove $UNBUNDLED_COMMANDS from the bundled_commands list
 for cmd in $UNBUNDLED_COMMANDS; do
-- 
cgit v1.2.3-70-g09d2


From 598a9c6f990756386517d66b6bcf77e53791e905 Mon Sep 17 00:00:00 2001
From: Robby Russell 
Date: Thu, 20 Feb 2014 10:18:53 -0800
Subject: Adieu l'ami.

 @jimweirich -- You will be missed.
---
 plugins/rake/rake.plugin.zsh | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'plugins')

diff --git a/plugins/rake/rake.plugin.zsh b/plugins/rake/rake.plugin.zsh
index 16b933c14..121150017 100644
--- a/plugins/rake/rake.plugin.zsh
+++ b/plugins/rake/rake.plugin.zsh
@@ -1,3 +1,7 @@
+# Thank you Jim for everything you contributed to the Ruby and open source community 
+# over the years. We will miss you dearly.
+alias jimweirich="rake"  
+
 alias rake="noglob rake" # allows square brackts for rake task invocation
 alias brake='noglob bundle exec rake' # execute the bundled rake gem
 alias srake='noglob sudo rake' # noglob must come before sudo
-- 
cgit v1.2.3-70-g09d2


From 7a546362d35d6c74f9c301aa477594fdf2cc1bfc Mon Sep 17 00:00:00 2001
From: Chris Jones 
Date: Fri, 21 Feb 2014 22:47:56 -0800
Subject: Much needed PEP8 love. Use spaces, not tabs.

---
 plugins/git-prompt/gitstatus.py | 88 ++++++++++++++++++++++++-----------------
 1 file changed, 51 insertions(+), 37 deletions(-)

(limited to 'plugins')

diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py
index ee6fab9bd..6d64e8277 100644
--- a/plugins/git-prompt/gitstatus.py
+++ b/plugins/git-prompt/gitstatus.py
@@ -1,20 +1,30 @@
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
+from subprocess import Popen, PIPE
+import re
 
 # change those symbols to whatever you prefer
-symbols = {'ahead of': '↑', 'behind': '↓', 'staged':'♦', 'changed':'‣', 'untracked':'…', 'clean':'⚡', 'unmerged':'≠', 'sha1':':'}
-
-from subprocess import Popen, PIPE
+symbols = {
+    'ahead of': '↑',
+    'behind': '↓',
+    'staged': '♦',
+    'changed': '‣',
+    'untracked': '…',
+    'clean': '⚡',
+    'unmerged': '≠',
+    'sha1': ':'
+}
 
-output,error = Popen(['git','status'], stdout=PIPE, stderr=PIPE).communicate()
+output, error = Popen(
+    ['git', 'status'], stdout=PIPE, stderr=PIPE).communicate()
 
 if error:
-	import sys
-	sys.exit(0)
+    import sys
+    sys.exit(0)
 lines = output.splitlines()
 
-import re
-behead_re = re.compile(r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
+behead_re = re.compile(
+    r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
 diverge_re = re.compile(r"^# and have (\d+) and (\d+) different")
 
 status = ''
@@ -23,46 +33,50 @@ changed = re.compile(r'^# Changed but not updated:$', re.MULTILINE)
 untracked = re.compile(r'^# Untracked files:$', re.MULTILINE)
 unmerged = re.compile(r'^# Unmerged paths:$', re.MULTILINE)
 
+
 def execute(*command):
-	out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
-	if not err:
-		nb = len(out.splitlines())
-	else:
-		nb = '?'
-	return nb
+    out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
+    if not err:
+        nb = len(out.splitlines())
+    else:
+        nb = '?'
+    return nb
 
 if staged.search(output):
-	nb = execute(['git','diff','--staged','--name-only','--diff-filter=ACDMRT'])
-	status += '%s%s' % (symbols['staged'], nb)
+    nb = execute(
+        ['git', 'diff', '--staged', '--name-only', '--diff-filter=ACDMRT'])
+    status += '%s%s' % (symbols['staged'], nb)
 if unmerged.search(output):
-	nb = execute(['git','diff', '--staged','--name-only', '--diff-filter=U'])
-	status += '%s%s' % (symbols['unmerged'], nb)
+    nb = execute(['git', 'diff', '--staged', '--name-only', '--diff-filter=U'])
+    status += '%s%s' % (symbols['unmerged'], nb)
 if changed.search(output):
-	nb = execute(['git','diff','--name-only', '--diff-filter=ACDMRT'])
-	status += '%s%s' % (symbols['changed'], nb)
+    nb = execute(['git', 'diff', '--name-only', '--diff-filter=ACDMRT'])
+    status += '%s%s' % (symbols['changed'], nb)
 if untracked.search(output):
-## 		nb = len(Popen(['git','ls-files','--others','--exclude-standard'],stdout=PIPE).communicate()[0].splitlines())
-## 		status += "%s" % (symbols['untracked']*(nb//3 + 1), )
-	status += symbols['untracked']
+    status += symbols['untracked']
 if status == '':
-	status = symbols['clean']
+    status = symbols['clean']
 
 remote = ''
 
 bline = lines[0]
 if bline.find('Not currently on any branch') != -1:
-	branch = symbols['sha1']+ Popen(['git','rev-parse','--short','HEAD'], stdout=PIPE).communicate()[0][:-1]
+    branch = symbols['sha1'] + Popen([
+        'git',
+        'rev-parse',
+        '--short',
+        'HEAD'], stdout=PIPE).communicate()[0][:-1]
 else:
-	branch = bline.split(' ')[3]
-	bstatusline = lines[1]
-	match = behead_re.match(bstatusline)
-	if match:
-		remote = symbols[match.groups()[0]]
-		remote += match.groups()[2]
-	elif lines[2:]:
-		div_match = diverge_re.match(lines[2])
-	 	if div_match:
-			remote = "{behind}{1}{ahead of}{0}".format(*div_match.groups(), **symbols)
-
-print '\n'.join([branch,remote,status])
+    branch = bline.split(' ')[3]
+    bstatusline = lines[1]
+    match = behead_re.match(bstatusline)
+    if match:
+        remote = symbols[match.groups()[0]]
+        remote += match.groups()[2]
+    elif lines[2:]:
+        div_match = diverge_re.match(lines[2])
+        if div_match:
+            remote = "{behind}{1}{ahead of}{0}".format(
+                *div_match.groups(), **symbols)
 
+print('\n'.join([branch, remote, status]))
-- 
cgit v1.2.3-70-g09d2


From c397000b3b0c1cf3bceb95dfc5fcdaf1844aa751 Mon Sep 17 00:00:00 2001
From: Chris Jones 
Date: Fri, 21 Feb 2014 22:48:38 -0800
Subject: grab last item in list which is the branch instead of relying on
 position.

---
 plugins/git-prompt/gitstatus.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py
index 6d64e8277..ef894bff2 100644
--- a/plugins/git-prompt/gitstatus.py
+++ b/plugins/git-prompt/gitstatus.py
@@ -67,7 +67,7 @@ if bline.find('Not currently on any branch') != -1:
         '--short',
         'HEAD'], stdout=PIPE).communicate()[0][:-1]
 else:
-    branch = bline.split(' ')[3]
+    branch = bline.split(' ')[-1]
     bstatusline = lines[1]
     match = behead_re.match(bstatusline)
     if match:
-- 
cgit v1.2.3-70-g09d2


From 8309b0a19baa351d643194f897d59de7b3d3b3dd Mon Sep 17 00:00:00 2001
From: Eduardo San Martin Morote 
Date: Sun, 23 Feb 2014 10:07:26 +0100
Subject: Verification of convert inside the function

Depending on when the path is declared this solution would work in any case
---
 plugins/catimg/catimg.plugin.zsh | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

(limited to 'plugins')

diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh
index 70ef9a63c..cb92f5986 100644
--- a/plugins/catimg/catimg.plugin.zsh
+++ b/plugins/catimg/catimg.plugin.zsh
@@ -7,10 +7,11 @@
 # Github: https://github.com/posva/catimg                                      #
 ################################################################################
 
-if [[ -x  `which convert` ]]; then
-  function catimg() {
+
+function catimg() {
+  if [[ -x  `which convert` ]]; then
     zsh $ZSH/plugins/catimg/catimg.sh $@
-  }
-else
-  echo "catimg need convert (ImageMagick) to work)"
-fi
+  else
+    echo "catimg need convert (ImageMagick) to work)"
+  fi
+}
-- 
cgit v1.2.3-70-g09d2


From 6cc240811fd5756a7e2fd1a79ac529ca5f284e1d Mon Sep 17 00:00:00 2001
From: Robby Russell 
Date: Tue, 25 Feb 2014 20:27:33 -0800
Subject: ..a fundamental piece of matter.

---
 plugins/atom/atom.plugin.zsh | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 plugins/atom/atom.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/atom/atom.plugin.zsh b/plugins/atom/atom.plugin.zsh
new file mode 100644
index 000000000..048fd7521
--- /dev/null
+++ b/plugins/atom/atom.plugin.zsh
@@ -0,0 +1,4 @@
+#
+# Your guess is as good as mine. Let's just assume that we will need this...
+#   - For more info visit... http://atom.io/
+#
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From f139401485ba389cbec5c83357e8827b1c53447b Mon Sep 17 00:00:00 2001
From: Josh Burns 
Date: Fri, 28 Feb 2014 01:26:17 +1100
Subject: add gem build alias

---
 plugins/gem/gem.plugin.zsh | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 plugins/gem/gem.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh
new file mode 100644
index 000000000..5b14fe7d0
--- /dev/null
+++ b/plugins/gem/gem.plugin.zsh
@@ -0,0 +1 @@
+alias gb="gem build *.gemspec"
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From da573f635648efb07603d7172bb08c2f271e1164 Mon Sep 17 00:00:00 2001
From: Josh Burns 
Date: Fri, 28 Feb 2014 01:26:54 +1100
Subject: add gem push alias

---
 plugins/gem/gem.plugin.zsh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh
index 5b14fe7d0..ca2900353 100644
--- a/plugins/gem/gem.plugin.zsh
+++ b/plugins/gem/gem.plugin.zsh
@@ -1 +1,2 @@
-alias gb="gem build *.gemspec"
\ No newline at end of file
+alias gemb="gem build *.gemspec"
+alias gemp="gem push *.gem"
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From fdbf0cbe4687c32846764695fabdf4acdb63a62f Mon Sep 17 00:00:00 2001
From: Josh Burns 
Date: Fri, 28 Feb 2014 01:32:01 +1100
Subject: gem push alias and gem yank alias

---
 plugins/gem/gem.plugin.zsh | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh
index ca2900353..938f5c993 100644
--- a/plugins/gem/gem.plugin.zsh
+++ b/plugins/gem/gem.plugin.zsh
@@ -1,2 +1,7 @@
 alias gemb="gem build *.gemspec"
-alias gemp="gem push *.gem"
\ No newline at end of file
+alias gemp="gem push *.gem"
+
+# gemy GEM 0.0.0 = gem yank GEM -v 0.0.0
+function gemy {
+	gem yank $1 -v $2
+}
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2


From 6dcdfe61e2005728ff7e1e48d452de4b38294799 Mon Sep 17 00:00:00 2001
From: Michael Nikitochkin 
Date: Thu, 27 Feb 2014 11:52:21 +0200
Subject: :panda_face: Added simulator alias for Xcode plugin

It is often required to start simulator without Xcode.
---
 plugins/xcode/xcode.plugin.zsh | 1 +
 1 file changed, 1 insertion(+)

(limited to 'plugins')

diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh
index f137253f3..4816ab0ed 100644
--- a/plugins/xcode/xcode.plugin.zsh
+++ b/plugins/xcode/xcode.plugin.zsh
@@ -16,3 +16,4 @@ function xcsel {
 
 alias xcb='xcodebuild'
 alias xcp='xcode-select --print-path'
+alias simulator='open $(xcode-select  -p)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app'
-- 
cgit v1.2.3-70-g09d2


From 5ba96e9a053514d6beb25e5c27cf4af746f142ef Mon Sep 17 00:00:00 2001
From: Kaiwen Xu 
Date: Sun, 2 Mar 2014 03:59:27 -0500
Subject: Fixed sublime plugin behaviors.

- Fixed subl search path order in Mac because Sublime Text 3 is named
  Sublime Text.app by default instead of Sublime Text 3.app and they are
  mostly likely to be placed in /Applications instead of
  $HOME/Applications.
- Fixed sublime text binary path in Linux. The sublime_text binary
  installed by Ubuntu installer is placed in /opt/sublime_text/sublime_text
  instead of /usr/bin/sublime_text.
- Use zsh's built-in process detach syntax instead of nohup.
---
 plugins/sublime/sublime.plugin.zsh | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

(limited to 'plugins')

diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh
index 566279183..6ca5892e5 100755
--- a/plugins/sublime/sublime.plugin.zsh
+++ b/plugins/sublime/sublime.plugin.zsh
@@ -3,19 +3,19 @@
 local _sublime_darwin_paths > /dev/null 2>&1
 _sublime_darwin_paths=(
     "/usr/local/bin/subl"
-    "$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
-    "$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
-    "$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
+    "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
     "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
     "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
-    "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
+    "$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
+    "$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
+    "$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
 )
 
 if [[ $('uname') == 'Linux' ]]; then
-    if [ -f '/usr/bin/sublime_text' ]; then
-        st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & }
+    if [ -f '/opt/sublime_text/sublime_text' ]; then
+        st_run() { /opt/sublime_text/sublime_text $@ &| }
     else
-        st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & }
+        st_run() { /usr/bin/sublime-text $@ &| }
     fi
     alias st=st_run
 
-- 
cgit v1.2.3-70-g09d2


From 564a708d6af90b1bc5bf4d13e7ad80abca92ad74 Mon Sep 17 00:00:00 2001
From: Thiago Perrotta 
Date: Sun, 2 Mar 2014 14:47:35 -0300
Subject: added the linux implementation to the battery plugin

---
 plugins/battery/battery.plugin.zsh | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

(limited to 'plugins')

diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh
index 16ad3e651..670c6a47d 100644
--- a/plugins/battery/battery.plugin.zsh
+++ b/plugins/battery/battery.plugin.zsh
@@ -58,9 +58,19 @@ if [[ $(uname) == "Darwin" ]] ; then
 
 elif [[ $(uname) == "Linux"  ]] ; then
 
+  function battery_is_charging() {
+    ! [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
+  }
+
+  function battery_pct() {
+    echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" 
+  }
+
   function battery_pct_remaining() {
-    if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
-      echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" 
+    if [ ! $(battery_is_charging) ] ; then
+      battery_pct
+    else
+      echo "External Power"
     fi
   }
 
@@ -86,15 +96,6 @@ elif [[ $(uname) == "Linux"  ]] ; then
     fi
   }
   
-  function battery_pct() {
-    # todo for on linux
-  }
-  
-  function battery_is_charging() {
-    # todo on linux
-	false
-  }
-
 else
   # Empty functions so we don't cause errors in prompts
   function battery_pct_remaining() {
-- 
cgit v1.2.3-70-g09d2


From 2691520d6f84fd0022fcb82a497042bb92c777b7 Mon Sep 17 00:00:00 2001
From: Kaiwen Xu 
Date: Sun, 2 Mar 2014 14:13:55 -0500
Subject: Integrate changes from #1841.

---
 plugins/sublime/sublime.plugin.zsh | 41 ++++++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 17 deletions(-)

(limited to 'plugins')

diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh
index 6ca5892e5..a2042343a 100755
--- a/plugins/sublime/sublime.plugin.zsh
+++ b/plugins/sublime/sublime.plugin.zsh
@@ -1,25 +1,32 @@
 # Sublime Text 2 Aliases
 
-local _sublime_darwin_paths > /dev/null 2>&1
-_sublime_darwin_paths=(
-    "/usr/local/bin/subl"
-    "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
-    "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
-    "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
-    "$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
-    "$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
-    "$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
-)
-
 if [[ $('uname') == 'Linux' ]]; then
-    if [ -f '/opt/sublime_text/sublime_text' ]; then
-        st_run() { /opt/sublime_text/sublime_text $@ &| }
-    else
-        st_run() { /usr/bin/sublime-text $@ &| }
-    fi
-    alias st=st_run
+    local _sublime_linux_paths > /dev/null 2>&1
+    _sublime_linux_paths=(
+        "$HOME/bin/sublime_text"
+        "/opt/sublime_text/sublime_text"
+        "/usr/bin/sublime_text"
+        "/usr/local/bin/sublime_text"
+    )
+    for _sublime_path in $_sublime_linux_paths; do
+        if [[ -a $_sublime_path ]]; then
+            st_run() { $_sublime_path $@ >/dev/null 2>&1 &| }
+            alias st=st_run
+            break
+        fi
+    done
 
 elif  [[ $('uname') == 'Darwin' ]]; then
+    local _sublime_darwin_paths > /dev/null 2>&1
+    _sublime_darwin_paths=(
+        "/usr/local/bin/subl"
+        "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
+        "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
+        "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
+        "$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
+        "$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
+        "$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
+    )
 
     for _sublime_path in $_sublime_darwin_paths; do
         if [[ -a $_sublime_path ]]; then
-- 
cgit v1.2.3-70-g09d2


From c0b98cd6aca5b6148a5ee147b087772bfb9f5e21 Mon Sep 17 00:00:00 2001
From: Jeff Williams 
Date: Mon, 3 Mar 2014 10:18:10 -0500
Subject: Added dirhistory plugin.

This plugin navigates directory history using ALT-LEFT and ALT-RIGHT.
---
 plugins/dirhistory/dirhistory.plugin.zsh | 132 +++++++++++++++++++++++++++++++
 1 file changed, 132 insertions(+)
 create mode 100644 plugins/dirhistory/dirhistory.plugin.zsh

(limited to 'plugins')

diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh
new file mode 100644
index 000000000..504d7ec14
--- /dev/null
+++ b/plugins/dirhistory/dirhistory.plugin.zsh
@@ -0,0 +1,132 @@
+## 
+#   Navigate directory history using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories 
+#   that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT.
+# 
+
+dirhistory_past=(`pwd`)
+dirhistory_future=()
+export dirhistory_past
+export dirhistory_future
+
+export DIRHISTORY_SIZE=30
+
+# Pop the last element of dirhistory_past. 
+# Pass the name of the variable to return the result in. 
+# Returns the element if the array was not empty,
+# otherwise returns empty string.
+function pop_past() {
+  eval "$1='$dirhistory_past[$#dirhistory_past]'"
+  if [[ $#dirhistory_past -gt 0 ]]; then
+    dirhistory_past[$#dirhistory_past]=()
+  fi
+}
+
+function pop_future() {
+  eval "$1='$dirhistory_future[$#dirhistory_future]'"
+  if [[ $#dirhistory_future -gt 0 ]]; then
+    dirhistory_future[$#dirhistory_future]=()
+  fi
+}
+
+# Push a new element onto the end of dirhistory_past. If the size of the array 
+# is >= DIRHISTORY_SIZE, the array is shifted
+function push_past() {
+  if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then
+    shift dirhistory_past
+  fi
+  if [[ $#dirhistory_past -eq 0 || $dirhistory_past[$#dirhistory_past] != "$1" ]]; then
+    dirhistory_past+=($1)
+  fi
+}
+
+function push_future() {
+  if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then
+    shift dirhistory_future
+  fi
+  if [[ $#dirhistory_future -eq 0 || $dirhistory_futuret[$#dirhistory_future] != "$1" ]]; then
+    dirhistory_future+=($1)
+  fi
+}
+
+# Called by zsh when directory changes
+function chpwd() {
+  push_past `pwd`
+  # If DIRHISTORY_CD is not set...
+  if [[ -z "${DIRHISTORY_CD+x}" ]]; then
+    # ... clear future.
+    dirhistory_future=()
+  fi
+}
+
+function dirhistory_cd(){
+  DIRHISTORY_CD="1"
+  cd $1
+  unset DIRHISTORY_CD
+}
+
+# Move backward in directory history
+function dirhistory_back() {
+  local cw=""
+  local d=""
+  # Last element in dirhistory_past is the cwd.
+
+  pop_past cw 
+  if [[ "" == "$cw" ]]; then
+    # Someone overwrote our variable. Recover it.
+    dirhistory_past=(`pwd`)
+    return
+  fi
+
+  pop_past d
+  if [[ "" != "$d" ]]; then
+    dirhistory_cd $d
+    push_future $cw
+  else
+    push_past $cw
+  fi
+}
+
+
+# Move forward in directory history
+function dirhistory_forward() {
+  local d=""
+
+  pop_future d
+  if [[ "" != "$d" ]]; then
+    dirhistory_cd $d
+    push_past $d
+  fi
+}
+
+
+# Bind keys to history navigation
+function dirhistory_zle_dirhistory_back() {
+  # Erase current line in buffer
+  zle kill-buffer
+  dirhistory_back 
+  zle accept-line
+}
+
+function dirhistory_zle_dirhistory_future() {
+  # Erase current line in buffer
+  zle kill-buffer
+  dirhistory_forward
+  zle accept-line
+}
+
+zle -N dirhistory_zle_dirhistory_back
+# xterm in normal mode
+bindkey "\e[3D" dirhistory_zle_dirhistory_back
+bindkey "\e[1;3D" dirhistory_zle_dirhistory_back
+# Putty:
+bindkey "\e\e[D" dirhistory_zle_dirhistory_back
+# GNU screen:
+bindkey "\eO3D" dirhistory_zle_dirhistory_back
+
+zle -N dirhistory_zle_dirhistory_future
+bindkey "\e[3C" dirhistory_zle_dirhistory_future
+bindkey "\e[1;3C" dirhistory_zle_dirhistory_future
+bindkey "\e\e[C" dirhistory_zle_dirhistory_future
+bindkey "\eO3C" dirhistory_zle_dirhistory_future
+
+
-- 
cgit v1.2.3-70-g09d2


From d41ac7fe3e52783054610c2cc57bbbfcdb2202b0 Mon Sep 17 00:00:00 2001
From: Markus Faerevaag 
Date: Tue, 4 Mar 2014 20:25:54 +0100
Subject: Updated wd plugin to v0.3.0

---
 plugins/wd/_wd.sh        | 110 ++++++++++++++++++++++++++++-------------------
 plugins/wd/wd.plugin.zsh |   4 +-
 plugins/wd/wd.sh         |  75 +++++++++++++++-----------------
 3 files changed, 102 insertions(+), 87 deletions(-)

(limited to 'plugins')

diff --git a/plugins/wd/_wd.sh b/plugins/wd/_wd.sh
index 950564435..29df63520 100644
--- a/plugins/wd/_wd.sh
+++ b/plugins/wd/_wd.sh
@@ -1,48 +1,68 @@
-#compdef wd.sh
-
-zstyle ":completion:*:descriptions" format "%B%d%b"
-
-CONFIG=$HOME/.warprc
-
-local -a main_commands
-main_commands=(
-    add:'Adds the current working directory to your warp points'
-    #add'\!':'Overwrites existing warp point' # TODO: Fix
-    rm:'Removes the given warp point'
-    ls:'Outputs all stored warp points'
-    show:'Outputs warp points to current directory'
-)
-
-local -a points
-while read line
-do
-    points+=$(awk "{ gsub(/\/Users\/$USER|\/home\/$USER/,\"~\"); print }" <<< $line)
-done < $CONFIG
-
-_wd()
-{
-    # init variables
-    local curcontext="$curcontext" state line
-    typeset -A opt_args
-
-    # init state
-    _arguments \
-        '1: :->command' \
-        '2: :->argument'
-
-    case $state in
-        command)
-            compadd "$@" add rm ls show
-            _describe -t warp-points 'Warp points:' points && ret=0
-            ;;
-        argument)
-            case $words[2] in
-                rm|add!)
-                    _describe -t warp-points 'warp points' points && ret=0
-                    ;;
-                *)
-            esac
-    esac
+#compdef wd
+
+zstyle ':completion:*:descriptions' format '%B%d%b'
+zstyle ':completion::complete:wd:*:commands' group-name commands
+zstyle ':completion::complete:wd:*:warp_points' group-name warp_points
+zstyle ':completion::complete:wd::' list-grouped
+
+# Call `_wd()` when when trying to complete the command `wd`
+
+zmodload zsh/mapfile
+function _wd() {
+  local ret=1
+  local CONFIG=$HOME/.warprc
+
+  # Stolen from
+  # http://stackoverflow.com/questions/9000698/completion-when-program-has-sub-commands
+
+  # local curcontext="$curcontext" state line
+  # typeset -A opt_args
+
+  local -a commands
+  local -a warp_points
+  warp_points=( "${(f)mapfile[$CONFIG]}" )
+  # LIST="${mapfile[$FNAME]}" # Not required unless stuff uses it
+
+  commands=(
+    'add:Adds the current working directory to your warp points'
+    'add!:Overwrites existing warp point'
+    'rm:Removes the given warp point'
+    'ls:Outputs all stored warp points'
+    'show:Outputs all warp points that point to the current directory'
+    'help:Show this extremely helpful text'
+    '..:Go back to last directory'
+  )
+
+  _arguments -C \
+    '1: :->first_arg' \
+    '2: :->second_arg' && ret=0
+
+  case $state in
+    first_arg)
+      _describe -t warp_points "Warp points" warp_points && ret=0
+      _describe -t commands "Commands" commands && ret=0
+      ;;
+    second_arg)
+      case $words[2] in
+        add\!|rm)
+          _describe -t points "Warp points" warp_points && ret=0
+          ;;
+        add)
+          _message 'Write the name of your warp point' && ret=0
+          ;;
+      esac
+      ;;
+  esac
+
+  return $ret
 }
 
 _wd "$@"
+
+# Local Variables:
+# mode: Shell-Script
+# sh-indentation: 2
+# indent-tabs-mode: nil
+# sh-basic-offset: 2
+# End:
+# vim: ft=zsh sw=2 ts=2 et
diff --git a/plugins/wd/wd.plugin.zsh b/plugins/wd/wd.plugin.zsh
index bbec4a715..9800335fc 100755
--- a/plugins/wd/wd.plugin.zsh
+++ b/plugins/wd/wd.plugin.zsh
@@ -6,4 +6,6 @@
 #
 # @github.com/mfaerevaag/wd
 
-alias wd='. $ZSH/plugins/wd/wd.sh'
+wd() {
+    . $ZSH/plugins/wd/wd.sh
+}
diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh
index 744f58bc2..96a3426fc 100755
--- a/plugins/wd/wd.sh
+++ b/plugins/wd/wd.sh
@@ -50,12 +50,12 @@ wd_warp()
             wd_print_msg $YELLOW "Warping to current directory?"
         else
             (( n = $#1 - 1 ))
-            wd_print_msg $BLUE "Warping..."
+            #wd_print_msg $BLUE "Warping..."
             cd -$n > /dev/null
         fi
     elif [[ ${points[$1]} != "" ]]
     then
-        wd_print_msg $BLUE "Warping..."
+        #wd_print_msg $BLUE "Warping..."
         cd ${points[$1]}
     else
         wd_print_msg $RED "Unkown warp point '$1'"
@@ -64,16 +64,16 @@ wd_warp()
 
 wd_add()
 {
-    if [[ $1 =~ "^\.+$" ]]
+    if [[ $2 =~ "^\.+$" || $2 =~ "^\s*$" ]]
     then
-        wd_print_msg $RED "Illeagal warp point (see README)."
-    elif [[ ${points[$1]} == "" ]] || $2
+        wd_print_msg $RED "Illegal warp point (see README)."
+    elif [[ ${points[$2]} == "" ]] || $1
     then
-        wd_remove $1 > /dev/null
-        print "$1:$PWD" >> $CONFIG
+        wd_remove $2 > /dev/null
+        print "$2:$PWD" >> $CONFIG
         wd_print_msg $GREEN "Warp point added"
     else
-        wd_print_msg $YELLOW "Warp point '$1' alredy exists. Use 'add!' to overwrite."
+        wd_print_msg $YELLOW "Warp point '$2' already exists. Use 'add!' to overwrite."
     fi
 }
 
@@ -83,7 +83,9 @@ wd_remove()
     then
         if wd_tmp=`sed "/^$1:/d" $CONFIG`
         then
-            echo $wd_tmp > $CONFIG
+            # `>!` forces overwrite
+            # we need this if people use `setopt NO_CLOBBER`
+            echo $wd_tmp >! $CONFIG
             wd_print_msg $GREEN "Warp point removed"
         else
             wd_print_msg $RED "Warp point unsuccessfully removed. Sorry!"
@@ -131,9 +133,9 @@ wd_print_usage()
     print "\nCommands:"
     print "\t add \t Adds the current working directory to your warp points"
     print "\t add! \t Overwrites existing warp point"
-    print "\t remove  Removes the given warp point"
+    print "\t rm \t  Removes the given warp point"
     print "\t show \t Outputs warp points to current directory"
-    print "\t list \t Outputs all stored warp points"
+    print "\t ls \t Outputs all stored warp points"
     print "\t help \t Show this extremely helpful text"
 }
 
@@ -141,7 +143,7 @@ wd_print_usage()
 ## run
 
 # get opts
-args=`getopt -o a:r:lhs -l add:,remove:,list,help,show -- $*`
+args=`getopt -o a:r:lhs -l add:,rm:,ls,help,show -- $*`
 
 # check if no arguments were given
 if [[ $? -ne 0 || $#* -eq 0 ]]
@@ -161,49 +163,40 @@ else
 
     for i
     do
-		    case "$i"
-		        in
-			      -a|--add|add)
-                wd_add $2 false
-				        shift
-                shift
+        case "$i"
+            in
+            -a|--add|add)
+                wd_add false $2
                 break
                 ;;
             -a!|--add!|add!)
-                wd_add $2 true
-				        shift
-                shift
+                wd_add true $2
                 break
                 ;;
-			      -r|--remove|rm)
-				        wd_remove $2
-                shift
-				        shift
+            -r|--remove|rm)
+                wd_remove $2
                 break
                 ;;
-			      -l|--list|ls)
-				        wd_list_all
-				        shift
+            -l|--list|ls)
+                wd_list_all
                 break
                 ;;
-			      -h|--help|help)
-				        wd_print_usage
-				        shift
+            -h|--help|help)
+                wd_print_usage
                 break
                 ;;
-			      -s|--show|show)
-				        wd_show
-				        shift
+            -s|--show|show)
+                wd_show
                 break
                 ;;
             *)
                 wd_warp $i
-                shift
                 break
                 ;;
-			      --)
-				        shift; break;;
-		    esac
+            --)
+                break
+                ;;
+        esac
     done
 fi
 
@@ -211,6 +204,6 @@ fi
 ## garbage collection
 # if not, next time warp will pick up variables from this run
 # remember, there's no sub shell
-points=""
-args=""
-unhash -d val &> /dev/null # fixes issue #1
+unset points
+unset args
+unset val &> /dev/null # fixes issue #1
-- 
cgit v1.2.3-70-g09d2


From 8b667b229973dee2abb52edacbd056cbe52bb8f7 Mon Sep 17 00:00:00 2001
From: Jouko Johansson 
Date: Fri, 7 Mar 2014 01:09:04 +0200
Subject: added mvn-update

---
 plugins/mvn/mvn.plugin.zsh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
index 0c9141907..4ef342e60 100644
--- a/plugins/mvn/mvn.plugin.zsh
+++ b/plugins/mvn/mvn.plugin.zsh
@@ -52,7 +52,7 @@ alias mvnc='mvn clean'
 alias mvncom='mvn compile'
 alias mvnt='mvn test'
 alias mvnag='mvn archetype:generate'
-
+alias mvn-updates='mvn versions:display-dependency-updates'
 function listMavenCompletions { 
      reply=(
         # common lifecycle
-- 
cgit v1.2.3-70-g09d2


From 7378765a79491c836831543a6da3d88dac9b7568 Mon Sep 17 00:00:00 2001
From: Jouko Johansson 
Date: Fri, 7 Mar 2014 01:22:37 +0200
Subject: added aliases for tomcat:run tomcat7:run

---
 plugins/mvn/mvn.plugin.zsh | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'plugins')

diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
index 4ef342e60..e9d7c0fc1 100644
--- a/plugins/mvn/mvn.plugin.zsh
+++ b/plugins/mvn/mvn.plugin.zsh
@@ -53,6 +53,10 @@ alias mvncom='mvn compile'
 alias mvnt='mvn test'
 alias mvnag='mvn archetype:generate'
 alias mvn-updates='mvn versions:display-dependency-updates'
+alias mvntc7='mvn tomcat7:run' 
+alias mvntc='mvn tomcat:run'
+
+
 function listMavenCompletions { 
      reply=(
         # common lifecycle
-- 
cgit v1.2.3-70-g09d2


From fd8ce7f8e3ea96a7746e46339e447f7cbb83aa57 Mon Sep 17 00:00:00 2001
From: Jouko Johansson 
Date: Fri, 7 Mar 2014 01:23:37 +0200
Subject: added mvnjetty alias

---
 plugins/mvn/mvn.plugin.zsh | 1 +
 1 file changed, 1 insertion(+)

(limited to 'plugins')

diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
index e9d7c0fc1..ed7968534 100644
--- a/plugins/mvn/mvn.plugin.zsh
+++ b/plugins/mvn/mvn.plugin.zsh
@@ -55,6 +55,7 @@ alias mvnag='mvn archetype:generate'
 alias mvn-updates='mvn versions:display-dependency-updates'
 alias mvntc7='mvn tomcat7:run' 
 alias mvntc='mvn tomcat:run'
+alias mvnjetty='mvn jetty:run'
 
 
 function listMavenCompletions { 
-- 
cgit v1.2.3-70-g09d2


From de0e7b5dc82ca3f18d20bc0d8aab8d9c5dd13ff9 Mon Sep 17 00:00:00 2001
From: Zhou Hua 
Date: Mon, 10 Mar 2014 11:41:25 +0800
Subject: Fix hgsl alias.

The original 'hgsl' missed 'hg' part.
---
 plugins/mercurial/mercurial.plugin.zsh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh
index d2db89d04..2e99a12fb 100644
--- a/plugins/mercurial/mercurial.plugin.zsh
+++ b/plugins/mercurial/mercurial.plugin.zsh
@@ -13,7 +13,7 @@ alias hglr='hg pull --rebase'
 alias hgo='hg outgoing'
 alias hgp='hg push'
 alias hgs='hg status'
-alias hgsl='log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" '
+alias hgsl='hg log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" '
 # this is the 'git commit --amend' equivalent
 alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
 
-- 
cgit v1.2.3-70-g09d2


From 3c9a29b0d639f52162eb8056a9b657fe4b6f2850 Mon Sep 17 00:00:00 2001
From: Bob Maerten 
Date: Mon, 10 Mar 2014 16:23:14 +0100
Subject: Fix typo in autocomplete arguments

---
 plugins/docker/_docker | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/docker/_docker b/plugins/docker/_docker
index f13f876cf..12eee7a15 100644
--- a/plugins/docker/_docker
+++ b/plugins/docker/_docker
@@ -111,7 +111,7 @@ __ps() {
         '-beforeId="[Show only container created before Id, include non-running ones.]' \
         '-l[Show only the latest created container, include non-running ones.]' \
         '-n=[Show n last created containers, include non-running ones.]' \
-        '-notrurrrrnc[Dont truncate output]' \
+        '-notrunc[Dont truncate output]' \
         '-q[Only display numeric IDs]' \
         '-s[Display sizes]' \
         '-sinceId="[Show only containers created since Id, include non-running ones.]'
-- 
cgit v1.2.3-70-g09d2


From b9841b0bae97049d426c652f6a9be361c7492040 Mon Sep 17 00:00:00 2001
From: Samvel Khalatyan 
Date: Mon, 10 Mar 2014 17:18:50 -0500
Subject: Add github url shortener

---
 plugins/github/github.plugin.zsh | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'plugins')

diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh
index 66a10cfdb..25b1a1e1b 100644
--- a/plugins/github/github.plugin.zsh
+++ b/plugins/github/github.plugin.zsh
@@ -84,5 +84,14 @@ exist_gh() { # [DIRECTORY]
     git push -u origin master
 }
 
+# git.io "GitHub URL"
+#
+# Shorten GitHub url, example:
+#   https://github.com/nvogel/dotzsh    >   http://git.io/8nU25w  
+# source: https://github.com/nvogel/dotzsh
+# documentation: https://github.com/blog/985-git-io-github-url-shortener
+#
+git.io() {curl -i -s http://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "}
+
 # End Functions #############################################################
 
-- 
cgit v1.2.3-70-g09d2


From ae2f6f34e3c3a335d6cb16df8ea88a709ef6b36b Mon Sep 17 00:00:00 2001
From: Josh Chih-Hsueh Huang 
Date: Tue, 11 Mar 2014 11:29:25 +0800
Subject: List pkgs by size

---
 plugins/debian/debian.plugin.zsh | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'plugins')

diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh
index 1e15487ba..28dfb82a5 100644
--- a/plugins/debian/debian.plugin.zsh
+++ b/plugins/debian/debian.plugin.zsh
@@ -217,3 +217,11 @@ kerndeb () {
         "$revision" kernel_image kernel_headers
 }
 
+# List packages by size
+function apt-list-packages {
+    dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \
+    grep -v deinstall | \
+    sort -n | \
+    awk '{print $1" "$2}'
+}
+
-- 
cgit v1.2.3-70-g09d2


From cfe468f6f6bf7cfecb2c832c39f4bf9a065ef6fd Mon Sep 17 00:00:00 2001
From: Christian Höltje 
Date: Thu, 13 Mar 2014 14:44:58 -0400
Subject: ssh-agent: prevent environment file from flapping

On an OS X laptop, the variable `$HOST` changes a lot depending
on what wifi network you're connected to.  This causes a lot
of `~/.ssh/environment-$HOST` files to be created and
causes multiple ssh-agents to created.

Instead, use `scutil --get ComputerName` to get something
more stable.
---
 plugins/ssh-agent/ssh-agent.plugin.zsh | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

(limited to 'plugins')

diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh
index a1e64ad0f..2fb8d5462 100644
--- a/plugins/ssh-agent/ssh-agent.plugin.zsh
+++ b/plugins/ssh-agent/ssh-agent.plugin.zsh
@@ -27,7 +27,7 @@
 #   Florent Thoumie and Jonas Pfenniger
 #
 
-local _plugin__ssh_env=$HOME/.ssh/environment-$HOST
+local _plugin__ssh_env
 local _plugin__forwarding
 
 function _plugin__start_agent()
@@ -42,12 +42,20 @@ function _plugin__start_agent()
   . ${_plugin__ssh_env} > /dev/null
 
   # load identies
-  zstyle -a :omz:plugins:ssh-agent identities identities 
+  zstyle -a :omz:plugins:ssh-agent identities identities
   echo starting ssh-agent...
 
   /usr/bin/ssh-add $HOME/.ssh/${^identities}
 }
 
+# Get the filename to store/lookup the environment from
+if (( $+commands[scutil] )); then
+  # It's OS X!
+  _plugin__ssh_env="$HOME/.ssh/environment-$(scutil --get ComputerName)"
+else
+  _plugin__ssh_env="$HOME/.ssh/environment-$HOST"
+fi
+
 # test if agent-forwarding is enabled
 zstyle -b :omz:plugins:ssh-agent agent-forwarding _plugin__forwarding
 if [[ ${_plugin__forwarding} == "yes" && -n "$SSH_AUTH_SOCK" ]]; then
-- 
cgit v1.2.3-70-g09d2


From 8f7971349b653706071bc41e2fdb953bb6f22678 Mon Sep 17 00:00:00 2001
From: Andrew vonderLuft 
Date: Fri, 7 Mar 2014 11:17:18 -0800
Subject: add option to show dirty status of current dir

---
 plugins/svn/svn.plugin.zsh | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

(limited to 'plugins')

diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh
index 4f008ba4e..ef6da5bd3 100644
--- a/plugins/svn/svn.plugin.zsh
+++ b/plugins/svn/svn.plugin.zsh
@@ -9,7 +9,7 @@ function svn_prompt_info() {
       _DISPLAY=$(svn_get_repo_name)
     fi
     echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
-$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
+$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$(svn_dirty_pwd)$ZSH_PROMPT_BASE_COLOR"
     unset _DISPLAY
   fi
 }
@@ -74,3 +74,22 @@ function svn_dirty_choose() {
 function svn_dirty() {
   svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
 }
+
+function svn_dirty_choose_pwd () {
+  if in_svn; then
+    root=`pwd`
+    if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then
+      # Grep exits with 0 when "One or more lines were selected", return "dirty".
+      echo $1
+    else
+      # Otherwise, no lines were found, or an error occurred. Return clean.
+      echo $2
+    fi
+  fi
+}
+
+function svn_dirty_pwd () {
+  svn_dirty_choose_pwd $ZSH_THEME_SVN_PROMPT_DIRTY_PWD $ZSH_THEME_SVN_PROMPT_CLEAN_PWD
+}
+
+
-- 
cgit v1.2.3-70-g09d2