summaryrefslogtreecommitdiffstats
path: root/mergetools/p4merge
blob: 7a5b291dd28ad5b60ca0492480b800aaa9cc929e (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
diff_cmd () {
	empty_file=

	# p4merge does not like /dev/null
	if test "/dev/null" = "$LOCAL"
	then
		LOCAL="$(create_empty_file)"
	fi
	if test "/dev/null" = "$REMOTE"
	then
		REMOTE="$(create_empty_file)"
	fi

	"$merge_tool_path" "$LOCAL" "$REMOTE"

	if test -n "$empty_file"
	then
		rm -f "$empty_file"
	fi
}

merge_cmd () {
	if ! $base_present
	then
		cp -- "$LOCAL" "$BASE"
		create_virtual_base "$BASE" "$REMOTE"
	fi
	"$merge_tool_path" "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
}

create_empty_file () {
	empty_file="${TMPDIR:-/tmp}/git-difftool-p4merge-empty-file.$$"
	>"$empty_file"

	printf "%s" "$empty_file"
}