diff_cmd () { "$merge_tool_path" -u -e "$LOCAL" "$REMOTE" return 0 } merge_cmd () { # mergetool.winmerge.trustExitCode is implicitly false. # touch $BACKUP so that we can check_unchanged. touch "$BACKUP" "$merge_tool_path" -u -e -dl Local -dr Remote \ "$LOCAL" "$REMOTE" "$MERGED" check_unchanged } translate_merge_tool_path() { # Use WinMergeU.exe if it exists in $PATH if type -p WinMergeU.exe >/dev/null 2>&1 then printf WinMergeU.exe return fi # Look for WinMergeU.exe in the typical locations winmerge_exe="WinMerge/WinMergeU.exe" for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' | cut -d '=' -f 2- | sort -u) do if test -n "$directory" && test -x "$directory/$winmerge_exe" then printf '%s' "$directory/$winmerge_exe" return fi done printf WinMergeU.exe }