Subject: [PATCH] fixup! mergetools: simplify how we handle "vim" and "defaults"

From: John Keeping <[email-masked]>
Date: Mon, 28 Jan 2013 19:28:56 +0000

---
Junio, please can you squash this into f9924e5 on jk/mergetool,
providing that David is OK with that?

The original change breaks custom mergetool by making changing the logic
around default functions so that they are now only defined when the tool
file exists in $MERGE_TOOLS_DIR but we need the default implementations
when a custom tool is in use, which by definition means that the file
doesn't exist in $MERGE_TOOLS_DIR.

 git-mergetool--lib.sh | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 1d0fb12..211ffe5 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -48,15 +48,6 @@ valid_tool () {
 setup_tool () {
 	tool="$1"
 
-	if ! test -f "$MERGE_TOOLS_DIR/$tool"
-	then
-		# Use a special return code for this case since we want to
-		# source "defaults" even when an explicit tool path is
-		# configured since the user can use that to override the
-		# default path in the scriptlet.
-		return 2
-	fi
-
 	# Fallback definitions, to be overriden by tools.
 	can_merge () {
 		return 0
@@ -80,6 +71,15 @@ setup_tool () {
 		echo "$1"
 	}
 
+	if ! test -f "$MERGE_TOOLS_DIR/$tool"
+	then
+		# Use a special return code for this case since we want to
+		# source "defaults" even when an explicit tool path is
+		# configured since the user can use that to override the
+		# default path in the scriptlet.
+		return 2
+	fi
+
 	# Load the redefined functions
 	. "$MERGE_TOOLS_DIR/$tool"
 
-- 
1.8.1.1