From 683ca10e369ae6699197e81f6fd5aec44c05c4f1 Mon Sep 17 00:00:00 2001
From: Ben Hilburn <bhilburn@gmail.com>
Date: Tue, 30 Aug 2016 20:29:36 -0400
Subject: vcs: adding detection of unstaged / staged for svn repos

---
 functions/icons.zsh    |  7 +++++--
 functions/vcs.zsh      | 12 ++++++++----
 powerlevel9k.zsh-theme |  2 +-
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/functions/icons.zsh b/functions/icons.zsh
index c2565f26..3542ce81 100644
--- a/functions/icons.zsh
+++ b/functions/icons.zsh
@@ -69,6 +69,7 @@ case $POWERLEVEL9K_MODE in
       VCS_REMOTE_BRANCH_ICON         ' '$'\UE804 '          # 
       VCS_GIT_ICON                   $'\UE20E '             # 
       VCS_HG_ICON                    $'\UE1C3 '             # 
+      VCS_SVN_ICON                   '(svn) '
       RUST_ICON                      ''
       PYTHON_ICON                    $'\U1F40D'             # 🐍
     )
@@ -122,7 +123,8 @@ case $POWERLEVEL9K_MODE in
       VCS_REMOTE_BRANCH_ICON         ' '$'\UF204 '          # 
       VCS_GIT_ICON                   $'\UF113 '             # 
       VCS_HG_ICON                    $'\UF0C3 '             # 
-      RUST_ICON                      $'\UE6A8'              # 
+      VCS_SVN_ICON                   '(svn) '
+      RUST_ICON                      $'\UE6A8'              #  
       PYTHON_ICON                    $'\U1F40D'             # 🐍
     )
   ;;
@@ -175,7 +177,8 @@ case $POWERLEVEL9K_MODE in
       VCS_REMOTE_BRANCH_ICON         $'\u2192'              # →
       VCS_GIT_ICON                   ''
       VCS_HG_ICON                    ''
-      RUST_ICON                      ''
+      VCS_SVN_ICON                   ''
+	    RUST_ICON                      ''
       PYTHON_ICON                    ''
     )
   ;;
diff --git a/functions/vcs.zsh b/functions/vcs.zsh
index 50b58fbf..9418df81 100644
--- a/functions/vcs.zsh
+++ b/functions/vcs.zsh
@@ -113,8 +113,8 @@ function +vi-vcs-detect-changes() {
     vcs_visual_identifier='VCS_GIT_ICON'
   elif [[ "${hook_com[vcs]}" == "hg" ]]; then
     vcs_visual_identifier='VCS_HG_ICON'
-#  elif [[ "${hook_com[vcs]}" == "svn" ]]; then
-#    vcs_visual_identifier='VCS_SVN_ICON'
+  elif [[ "${hook_com[vcs]}" == "svn" ]]; then
+    vcs_visual_identifier='VCS_SVN_ICON'
   fi
 
   if [[ -n "${hook_com[staged]}" ]] || [[ -n "${hook_com[unstaged]}" ]]; then
@@ -127,11 +127,15 @@ function +vi-vcs-detect-changes() {
 function +vi-svn-detect-changes() {
   local svn_status=$(svn status)
   if [[ -n "$(echo "$svn_status" | grep \^\?)" ]]; then
-    hook_com[unstaged]+=" $(print_icon 'VCS_STASH_ICON')"
+    hook_com[unstaged]+=" $(print_icon 'VCS_UNTRACKED_ICON')"
     VCS_WORKDIR_HALF_DIRTY=true
   fi
+  if [[ -n "$(echo "$svn_status" | grep \^\M)" ]]; then
+    hook_com[unstaged]+=" $(print_icon 'VCS_UNSTAGED_ICON')"
+    VCS_WORKDIR_DIRTY=true
+  fi
   if [[ -n "$(echo "$svn_status" | grep \^\A)" ]]; then
+    hook_com[staged]+=" $(print_icon 'VCS_STAGED_ICON')"
     VCS_WORKDIR_DIRTY=true
-    hook_com[unstaged]+=" $(print_icon 'VCS_STAGED_ICON')"
   fi
 }
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 3d7a913a..bf09b4ce 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -876,7 +876,7 @@ prompt_vcs() {
   zstyle ':vcs_info:git*+set-message:*' hooks $POWERLEVEL9K_VCS_GIT_HOOKS
   defined POWERLEVEL9K_VCS_HG_HOOKS || POWERLEVEL9K_VCS_HG_HOOKS=(vcs-detect-changes)
   zstyle ':vcs_info:hg*+set-message:*' hooks $POWERLEVEL9K_VCS_HG_HOOKS
-  defined POWERLEVEL9K_VCS_SVN_HOOKS || POWERLEVEL9K_VCS_SVN_HOOKS=(svn-detect-changes)
+  defined POWERLEVEL9K_VCS_SVN_HOOKS || POWERLEVEL9K_VCS_SVN_HOOKS=(vcs-detect-changes svn-detect-changes)
   zstyle ':vcs_info:svn*+set-message:*' hooks $POWERLEVEL9K_VCS_SVN_HOOKS
 
   # For Hg, only show the branch name
-- 
cgit v1.2.3