From f8aae64e478066be7d05f5eb6970c356cafcfd36 Mon Sep 17 00:00:00 2001
From: Jake Bell <jake@theunraveler.com>
Date: Thu, 26 May 2011 12:34:37 -0500
Subject: [PATCH] Adding ability to override plugins from the custom directory.

---
 .gitignore                        | 1 +
 README.textile                    | 6 ++++--
 custom/example/example.plugin.zsh | 2 ++
 oh-my-zsh.sh                      | 4 +++-
 4 files changed, 10 insertions(+), 3 deletions(-)
 create mode 100644 custom/example/example.plugin.zsh

diff --git a/.gitignore b/.gitignore
index 4b555067e..8fdfae286 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,5 +2,6 @@ locals.zsh
 log/.zsh_history
 projects.zsh
 custom/*
+!custom/example
 !custom/example.zsh
 cache
diff --git a/README.textile b/README.textile
index d01c3310a..2dbfbe5a6 100644
--- a/README.textile
+++ b/README.textile
@@ -48,7 +48,9 @@ the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty fo
 h3. Customization
 
 If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory.
-If you have many functions which go good together you can put them as a *.plugin.zsh file in the @plugin/@ directory and then enable this plugin.
+If you have many functions which go good together you can put them as a *.plugin.zsh file in the @custom/plugins/@ directory and then enable this plugin.
+If you would like to override the functionality of a plugin distributed with oh-my-zsh, create a plugin of the same name in the @custom/plugins/@ directory and it will be loaded instead of the one in @plugins/@.
+
 
 h3. Uninstalling
 
@@ -68,4 +70,4 @@ This project wouldn't exist without all of our awesome users and contributors.
 
 * "View our growing list of contributors":https://github.com/robbyrussell/oh-my-zsh/contributors
 
-Thank you so much!
\ No newline at end of file
+Thank you so much!
diff --git a/custom/example/example.plugin.zsh b/custom/example/example.plugin.zsh
new file mode 100644
index 000000000..406f27445
--- /dev/null
+++ b/custom/example/example.plugin.zsh
@@ -0,0 +1,2 @@
+# Add your own custom plugins in the custom/plugins directory. Plugins placed
+# here will override ones with the same name in the main plugins directory.
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index c8f1a33b8..dbff1ced9 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -17,7 +17,9 @@ compinit -i
 
 # Load all of the plugins that were defined in ~/.zshrc
 for plugin ($plugins); do
-  if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
+  if [ -f $ZSH/custom/plugins/$plugin/$plugin.plugin.zsh ]; then
+    source $ZSH/custom/plugins/$plugin/$plugin.plugin.zsh
+  elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
     source $ZSH/plugins/$plugin/$plugin.plugin.zsh
   fi
 done