On Wed, May 20, 2015 at 6:20 AM, David Aguilar <davvid@xxxxxxxxx> wrote: > +translate_merge_tool_path() { > + # Use WinMergeU.exe if it exists in $PATH > + if type WinMergeU.exe >/dev/null 2>&1 Maybe "type -p" here? > + # Look for WinMergeU.exe in the typical locations > + winmerge_exe="WinMerge/WinMergeU.exe" > + > + if test -n "$PROGRAMFILES" && test -x "$PROGRAMFILES (x86)/$winmerge_exe" > + then > + printf '%s' "$PROGRAMFILES (x86)/$winmerge_exe" > + elif test -n "$PROGRAMFILES" && test -x "$PROGRAMFILES/$winmerge_exe" > + then > + printf '%s' "$PROGRAMFILES/$winmerge_exe" > + else > + echo WinMergeU.exe > + fi > +} This does not solve the problem reported by Dscho that some versions of Cygwin / MSYS 1 / MSYS 2 might export "$ProgramFiles" instead of "$PROGRAMFILES" (or similar for related variables). Also there is a bit too much string duplication for my taste. And why use "echo" in some places and "printf" in others? I still like a loop-based solution best: IFS=$'\n' for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' | cut -d '=' -f 2- | sort -u) do test -n "$directory" && test -x "$directory/$winmerge_exe" && echo "$directory/$winmerge_exe" && break done -- Sebastian Schuberth -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html