From 02529d7aca24553cbfab016bfa452b78b6c8a347 Mon Sep 17 00:00:00 2001
From: Bruno Pinto <brunoferreirapinto@gmail.com>
Date: Sun, 23 Nov 2014 18:47:07 +1100
Subject: [PATCH] correctly adding sorted brew paths

---
 plugins/brew/brew.load | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/plugins/brew/brew.load b/plugins/brew/brew.load
index 03e5e6e..9a951af 100644
--- a/plugins/brew/brew.load
+++ b/plugins/brew/brew.load
@@ -1,18 +1,24 @@
 set -l brew_paths /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin
+
+# Append all existing brew paths to PATH
+set -l existing_brew_paths
 for brew_path in $brew_paths[-1..1]
   if test -d $brew_path
-    set PATH $brew_path $PATH
+    set PATH $PATH $brew_path
+    set existing_brew_paths $existing_brew_paths $brew_path
   end
 end
 
-set -l local_loop 7 #7 should be a variable derived from $brew_paths count + 1
-for i in (seq (count $PATH))[7..-1]
-  if contains $PATH[$local_loop] $brew_paths
-    set -e PATH[$local_loop]
-  else
-    set local_loop (math "$local_loop + 1")
+# Remove brew paths from tail to head that were not recently added
+set -l existing_brew_paths_count (count $existing_brew_paths_count + 1)
+for i in (seq (count $PATH))[-1..1]
+  if test $i -le $existing_brew_paths_count
+    if contains $PATH[$i] $brew_paths
+      set -e PATH[$i]
+    end
   end
 end
 
 set -e brew_paths
-set -e local_loop
+set -e existing_brew_paths
+set -e existing_brew_paths_count
-- 
GitLab