From cf5db83facf67a27faa2860241f6ddc1d7e27b4f Mon Sep 17 00:00:00 2001
From: Victor Torres <vpaivatorres@gmail.com>
Date: Mon, 14 Dec 2015 17:39:26 -0300
Subject: [PATCH] Implementing mcornella's suggestions in pull request 4451.

---
 plugins/branch/branch.plugin.zsh | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/plugins/branch/branch.plugin.zsh b/plugins/branch/branch.plugin.zsh
index c918ea2b5..a1e9ca31b 100644
--- a/plugins/branch/branch.plugin.zsh
+++ b/plugins/branch/branch.plugin.zsh
@@ -4,23 +4,23 @@
 
 function branch_prompt_info() {
   # Defines path as current directory
-  path=$(pwd)
+  local current_dir=$PWD
   # While current path is not root path
-  while [ $path != '/' ];
+  while [[ $current_dir != '/' ]]
   do
     # Git repository
-    if [ -d ${path}/.git ];
+    if [[ -d "${current_dir}/.git" ]]
     then
-      echo '±' $(/bin/cat ${path}/.git/HEAD | /usr/bin/cut -d / -f 3-)
+      echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/}
       return;
     fi
     # Mercurial repository
-    if [ -d ${path}/.hg ];
+    if [[ -d "${current_dir}/.hg" ]]
     then
-      echo '☿' $(/bin/cat ${path}/.hg/branch)
+      echo '☿' $(<"$current_dir/.hg/branch")
       return;
     fi
     # Defines path as parent directory and keeps looking for :)
-    path=$(/usr/bin/dirname $path)
+    current_dir="${current_dir:h}"
   done
 }