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

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

From
SZEDER Gábor <szeder@ira.uka.de>
Date
May 14, 2015, 21:48 UTC
Message-ID
<1431640110-8484-1-git-send-email-szeder@ira.uka.de>
In-Reply-To
<5553B61D.7050204@gmail.com>
Show 7 quoted lines
> for directory in "$(env | grep -E '^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

This ain't gonna work, because the output of the pipe won't be split because of the quotes around the command substitution, so $directory will hold everything. Simply loosing those quotes is not good either, because the output will be split on the spaces as well, leading to 'C:\Program', 'Files' and '(x86)', unless the space is already removed from IFS. IIRC Windows doesn't allow newlines in pathnames, so IFS=$'\n' and removing the quotes around the command substitution should do the trick.

Pathnames can contain '=' characters, so, while I think it's outrageous, the paths in those variables can also contain an '=' or two. Well, theoretically, at least, and in that case the 'cut -d= -f2' will cut off the end of the pathname. I don't know whether this is something to be worth worrying about, but in that case it should be 'cut -d= -f2-'.

G�bor
Previous: Sebastian SchuberthNext: Sebastian Schuberth
Message 9 of 14 in “mergetools: add winmerge as a builtin tool”
  1. mergetools: add winmerge as a builtin toolDavid Aguilar, May 13, 2015
  2. Johannes SchindelinMay 13, 2015
  3. Sebastian SchuberthMay 13, 2015
  4. Johannes SchindelinMay 13, 2015
  5. Sebastian SchuberthMay 13, 2015
  6. Sebastian SchuberthMay 13, 2015
  7. Sebastian SchuberthMay 13, 2015
  8. Sebastian SchuberthMay 13, 2015
  9. SZEDER GáborMay 14, 2015
  10. Sebastian SchuberthMay 15, 2015
  11. SZEDER GáborMay 15, 2015
  12. SZEDER GáborMay 14, 2015
  13. Sebastian SchuberthMay 15, 2015
  14. David AguilarMay 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.