git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Sebastian Schuberth <sschuberth@gmail.com>
Date
May 20, 2015, 07:11 UTC
Message-ID
<CAHGBnuOwf2cBMZf1A6HuSoVTPxCem7fH3TOCHnYg3tW-QkoOEg@mail.gmail.com>
In-Reply-To
<1432095635-96710-1-git-send-email-davvid@gmail.com>
On Wed, May 20, 2015 at 6:20 AM, David Aguilar <davvid@gmail.com> 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?
Show 13 quoted lines
> +       # 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
Previous: David Aguilar
Message 2 of 2 in “mergetools: add winmerge as a builtin tool”
  1. mergetools: add winmerge as a builtin toolDavid Aguilar, May 20, 2015
  2. Sebastian SchuberthMay 20, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.