Re: [PATCH v3] mergetools: add winmerge as a builtin tool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]