aboutsummaryrefslogtreecommitdiff
path: root/development/tig/1016.patch
blob: 095efc917387f50ce4eac675a875f206e0e44746 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From dff2d346e9647fb55c4e0e381572ad1fe82b8715 Mon Sep 17 00:00:00 2001
From: Kyle Anderson <kylea@netflix.com>
Date: Mon, 8 Jun 2020 17:24:18 -0700
Subject: [PATCH] Don't error if git tab completion is not available. Fixes
 #1011

---
 contrib/tig-completion.bash | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/contrib/tig-completion.bash b/contrib/tig-completion.bash
index 5aef3fd8..54a40ec1 100755
--- a/contrib/tig-completion.bash
+++ b/contrib/tig-completion.bash
@@ -28,6 +28,9 @@
 #       is performed while the script loads.  If git isn't found
 #       at source time then all lookups will be done on demand,
 #       which may be slightly slower.
+#
+#    4) This completion file depends on git completion already being
+#       loaded. Make sure git-completion.bash happens first.
 
 __tig_options="
 	-v --version
@@ -93,13 +96,15 @@ if [ -n "$ZSH_VERSION" ]; then
 	bashcompinit
 fi
 
-# we use internal git-completion functions, so wrap _tig for all necessary
+# we use internal git-completion functions (if available), so wrap _tig for all necessary
 # variables (like cword and prev) to be defined
-__git_complete tig _tig 
+if type '__git_complete' 2>/dev/null | grep -q 'function'; then
+	__git_complete tig _tig
 
-# The following are necessary only for Cygwin, and only are needed
-# when the user has tab-completed the executable name and consequently
-# included the '.exe' suffix.
-if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
-	__git_complete tig.exe _tig
+	# The following are necessary only for Cygwin, and only are needed
+	# when the user has tab-completed the executable name and consequently
+	# included the '.exe' suffix.
+	if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
+		__git_complete tig.exe _tig
+	fi
 fi