{"thread":{"id":"53234","subject":"[PATCH] git-gui: msys2 compatibility patches","startedAt":"2020-04-14T21:46:03Z","lastAt":"2020-05-05T12:29:29Z","messageCount":4,"participants":["Konstantin Podsvirov via GitGitGadget","Pratyush Yadav","Konstantin Podsvirov"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"395453","messageId":"pull.612.git.1586900734341.gitgitgadget@gmail.com","threadId":"53234","inReplyTo":null,"subject":"[PATCH] git-gui: msys2 compatibility patches","fromName":"Konstantin Podsvirov via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2020-04-14T21:45:34Z","receivedAt":"2020-04-14T21:46:03Z","isPatch":true,"sender":{"key":"konstantin@podsvirov.pro","avatar":"https://gravatar.com/avatar/42323d692c871f1db5d8f28be16d3854e479ca542983a6e0bab8905efcd4e19f?d=mp&s=160"},"body":"From: Konstantin Podsvirov <konstantin@podsvirov.pro>\n\nAllow using `git gui` command via MSYS2's MINGW32/64 subsystems (apropriate shells).\n\nJust install apropriate `tk` package:\n\n```bash\nuser@host MINGW32 ~\npacman -S mingw-w64-i686-tk\n```\n\nor\n\n```bash\nuser@host MINGW64 ~\npacman -S mingw-w64-x86_64-tk\n```\n\nFor more info see: https://github.com/msys2/MSYS2-packages/pull/1912\n\nSigned-off-by: Konstantin Podsvirov <konstantin@podsvirov.pro>\n---\n    git-gui: msys2 compatibility patches\n    \n    Allow using git gui command via MSYS2's MINGW32/64 subsystems\n    (apropriate shells).\n    \n    Just install apropriate tk package:\n    \n    user@host MINGW32 ~\n    pacman -S mingw-w64-i686-tk\n    \n    or\n    \n    user@host MINGW64 ~\n    pacman -S mingw-w64-x86_64-tk\n    \n    For more info see: https://github.com/msys2/MSYS2-packages/pull/1912\n\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-612%2Fpodsvirov%2Fgit-gui%2Fmsys2-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-612/podsvirov/git-gui/msys2-v1\nPull-Request: https://github.com/gitgitgadget/git/pull/612\n\n git-gui.sh | 52 ++++++++++++++++++++++++++++++----------------------\n 1 file changed, 30 insertions(+), 22 deletions(-)\n\ndiff --git a/git-gui.sh b/git-gui.sh\nindex 4610e4ca72a..512f4f121aa 100755\n--- a/git-gui.sh\n+++ b/git-gui.sh\n@@ -44,6 +44,28 @@ if {[catch {package require Tcl 8.5} err]\n \n catch {rename send {}} ; # What an evil concept...\n \n+######################################################################\n+##\n+## platform detection\n+\n+set _iscygwin {}\n+\n+proc is_Cygwin {} {\n+\tglobal _iscygwin\n+\tif {$_iscygwin eq {}} {\n+\t\tif {$::tcl_platform(platform) eq {windows}} {\n+\t\t\tif {[catch {set p [exec cygpath --windir]} err]} {\n+\t\t\t\tset _iscygwin 0\n+\t\t\t} else {\n+\t\t\t\tset _iscygwin 1\n+\t\t\t}\n+\t\t} else {\n+\t\t\tset _iscygwin 0\n+\t\t}\n+\t}\n+\treturn $_iscygwin\n+}\n+\n ######################################################################\n ##\n ## locate our library\n@@ -51,7 +73,14 @@ catch {rename send {}} ; # What an evil concept...\n if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {\n \tset oguilib $::env(GIT_GUI_LIB_DIR)\n } else {\n-\tset oguilib {@@GITGUI_LIBDIR@@}\n+\tif {[is_Cygwin]} {\n+\t\tset oguilib [exec cygpath \\\n+\t\t\t--windows \\\n+\t\t\t--absolute \\\n+\t\t\t@@GITGUI_LIBDIR@@]\n+\t} else {\n+\t\tset oguilib {@@GITGUI_LIBDIR@@}\n+\t}\n }\n set oguirel {@@GITGUI_RELATIVE@@}\n if {$oguirel eq {1}} {\n@@ -163,7 +192,6 @@ set _isbare {}\n set _gitexec {}\n set _githtmldir {}\n set _reponame {}\n-set _iscygwin {}\n set _search_path {}\n set _shellpath {@@SHELL_PATH@@}\n \n@@ -266,26 +294,6 @@ proc is_Windows {} {\n \treturn 0\n }\n \n-proc is_Cygwin {} {\n-\tglobal _iscygwin\n-\tif {$_iscygwin eq {}} {\n-\t\tif {$::tcl_platform(platform) eq {windows}} {\n-\t\t\tif {[catch {set p [exec cygpath --windir]} err]} {\n-\t\t\t\tset _iscygwin 0\n-\t\t\t} else {\n-\t\t\t\tset _iscygwin 1\n-\t\t\t\t# Handle MSys2 which is only cygwin when MSYSTEM is MSYS.\n-\t\t\t\tif {[info exists ::env(MSYSTEM)] && $::env(MSYSTEM) ne \"MSYS\"} {\n-\t\t\t\t\tset _iscygwin 0\n-\t\t\t\t}\n-\t\t\t}\n-\t\t} else {\n-\t\t\tset _iscygwin 0\n-\t\t}\n-\t}\n-\treturn $_iscygwin\n-}\n-\n proc is_enabled {option} {\n \tglobal enabled_options\n \tif {[catch {set on $enabled_options($option)}]} {return 0}\n\nbase-commit: a5728022e07c53e5ac91db0960870518e243b7c1\n-- \ngitgitgadget\n"},{"id":"396369","messageId":"20200427194546.7ce4z2ooe4jaab5w@yadavpratyush.com","threadId":"53234","inReplyTo":"pull.612.git.1586900734341.gitgitgadget@gmail.com","subject":"Re: [PATCH] git-gui: msys2 compatibility patches","fromName":"Pratyush Yadav","fromEmail":"me@yadavpratyush.com","sentAt":"2020-04-27T19:45:46Z","receivedAt":"2020-04-27T19:48:10Z","isPatch":true,"sender":{"key":"me@yadavpratyush.com","avatar":"https://avatars.githubusercontent.com/u/8817931?v=4"},"body":"Hi Konstantin,\n\nThanks for the patch, and sorry for the late reply.\n\nOn 14/04/20 09:45PM, Konstantin Podsvirov via GitGitGadget wrote:\n> From: Konstantin Podsvirov <konstantin@podsvirov.pro>\n> \n> Allow using `git gui` command via MSYS2's MINGW32/64 subsystems (apropriate shells).\n\nI think this should be the commit subject, instead of \"msys2 \ncompatibility patches\".\n \n> Just install apropriate `tk` package:\n> \n> ```bash\n> user@host MINGW32 ~\n> pacman -S mingw-w64-i686-tk\n> ```\n> \n> or\n> \n> ```bash\n> user@host MINGW64 ~\n> pacman -S mingw-w64-x86_64-tk\n> ```\n> \n> For more info see: https://github.com/msys2/MSYS2-packages/pull/1912\n\nPlease don't just link to an external website. Put the explanation there \nin the commit message. Explain what the problem was, and how this patch \nfixes it.\n \n> Signed-off-by: Konstantin Podsvirov <konstantin@podsvirov.pro>\n> ---\n>  git-gui.sh | 52 ++++++++++++++++++++++++++++++----------------------\n>  1 file changed, 30 insertions(+), 22 deletions(-)\n> \n> diff --git a/git-gui.sh b/git-gui.sh\n> index 4610e4ca72a..512f4f121aa 100755\n> --- a/git-gui.sh\n> +++ b/git-gui.sh\n> @@ -44,6 +44,28 @@ if {[catch {package require Tcl 8.5} err]\n>  \n>  catch {rename send {}} ; # What an evil concept...\n>  \n> +######################################################################\n> +##\n> +## platform detection\n> +\n> +set _iscygwin {}\n> +\n> +proc is_Cygwin {} {\n> +\tglobal _iscygwin\n> +\tif {$_iscygwin eq {}} {\n> +\t\tif {$::tcl_platform(platform) eq {windows}} {\n> +\t\t\tif {[catch {set p [exec cygpath --windir]} err]} {\n> +\t\t\t\tset _iscygwin 0\n> +\t\t\t} else {\n> +\t\t\t\tset _iscygwin 1\n> +\t\t\t}\n> +\t\t} else {\n> +\t\t\tset _iscygwin 0\n> +\t\t}\n> +\t}\n> +\treturn $_iscygwin\n> +}\n> +\n>  ######################################################################\n>  ##\n>  ## locate our library\n> @@ -51,7 +73,14 @@ catch {rename send {}} ; # What an evil concept...\n>  if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {\n>  \tset oguilib $::env(GIT_GUI_LIB_DIR)\n>  } else {\n> -\tset oguilib {@@GITGUI_LIBDIR@@}\n> +\tif {[is_Cygwin]} {\n> +\t\tset oguilib [exec cygpath \\\n> +\t\t\t--windows \\\n> +\t\t\t--absolute \\\n> +\t\t\t@@GITGUI_LIBDIR@@]\n> +\t} else {\n> +\t\tset oguilib {@@GITGUI_LIBDIR@@}\n> +\t}\n\nThis would convert the Windows style path to a Unix style path if we are \nrunning in Cygwin, right? This is what I assume the heart of the problem \nis.\n\nStyle nitpick: something like this would probably be better:\n\n  set oguilib {@@GITGUI_LIBDIR@@}\n  if {[is_Cygwin]} {\n\t...\n  }\n\nThis makes it clear that Cygwin is the exception. For all other cases, \nwe want to use @@GITGUI_LIBDIR@@ directly.\n\n>  }\n>  set oguirel {@@GITGUI_RELATIVE@@}\n>  if {$oguirel eq {1}} {\n> @@ -163,7 +192,6 @@ set _isbare {}\n>  set _gitexec {}\n>  set _githtmldir {}\n>  set _reponame {}\n> -set _iscygwin {}\n\nWhy move the initialization?\n\n>  set _search_path {}\n>  set _shellpath {@@SHELL_PATH@@}\n>  \n> @@ -266,26 +294,6 @@ proc is_Windows {} {\n>  \treturn 0\n>  }\n>  \n> -proc is_Cygwin {} {\n> -\tglobal _iscygwin\n> -\tif {$_iscygwin eq {}} {\n> -\t\tif {$::tcl_platform(platform) eq {windows}} {\n> -\t\t\tif {[catch {set p [exec cygpath --windir]} err]} {\n> -\t\t\t\tset _iscygwin 0\n> -\t\t\t} else {\n> -\t\t\t\tset _iscygwin 1\n> -\t\t\t\t# Handle MSys2 which is only cygwin when MSYSTEM is MSYS.\n> -\t\t\t\tif {[info exists ::env(MSYSTEM)] && $::env(MSYSTEM) ne \"MSYS\"} {\n> -\t\t\t\t\tset _iscygwin 0\n> -\t\t\t\t}\n\nI'm afraid I don't understand this hunk. I don't use Windows, and don't \ncompletely understand the difference between cygwin, msys, etc. Could \nyou please explain further why this check is removed? Are there any \nnegative side-effects?\n\n> -\t\t\t}\n> -\t\t} else {\n> -\t\t\tset _iscygwin 0\n> -\t\t}\n> -\t}\n> -\treturn $_iscygwin\n> -}\n> -\n\nWhy move the function? Can't this and the _iscygwin initialization just \nstay in their place? It will make the diff much easier to read.\n\n>  proc is_enabled {option} {\n>  \tglobal enabled_options\n>  \tif {[catch {set on $enabled_options($option)}]} {return 0}\n\n-- \nRegards,\nPratyush Yadav\n"},{"id":"396395","messageId":"952341588022066@mail.yandex.ru","threadId":"53234","inReplyTo":"20200427194546.7ce4z2ooe4jaab5w@yadavpratyush.com","subject":"Re: [PATCH] git-gui: msys2 compatibility patches","fromName":"Konstantin Podsvirov","fromEmail":"konstantin@podsvirov.pro","sentAt":"2020-04-27T21:33:53Z","receivedAt":"2020-04-27T21:39:46Z","isPatch":true,"sender":{"key":"konstantin@podsvirov.pro","avatar":"https://gravatar.com/avatar/42323d692c871f1db5d8f28be16d3854e479ca542983a6e0bab8905efcd4e19f?d=mp&s=160"},"body":"\n\n27.04.2020, 22:48, \"Pratyush Yadav\" <me@yadavpratyush.com>:\n> Hi Konstantin,\n>\n> Thanks for the patch, and sorry for the late reply.\n>\n> On 14/04/20 09:45PM, Konstantin Podsvirov via GitGitGadget wrote:\n>>  From: Konstantin Podsvirov <konstantin@podsvirov.pro>\n>>\n>>  Allow using `git gui` command via MSYS2's MINGW32/64 subsystems (apropriate shells).\n>\n> I think this should be the commit subject, instead of \"msys2\n> compatibility patches\".\n\nI do not mind.\n\n>>  Just install apropriate `tk` package:\n>>\n>>  ```bash\n>>  user@host MINGW32 ~\n>>  pacman -S mingw-w64-i686-tk\n>>  ```\n>>\n>>  or\n>>\n>>  ```bash\n>>  user@host MINGW64 ~\n>>  pacman -S mingw-w64-x86_64-tk\n>>  ```\n>>\n>>  For more info see: https://github.com/msys2/MSYS2-packages/pull/1912\n>\n> Please don't just link to an external website. Put the explanation there\n> in the commit message. Explain what the problem was, and how this patch\n> fixes it.\n\nThe startup script everywhere operates on Unix paths, but on Windows they are incomplete, and the interpreter expects full native paths.\n\n>>  Signed-off-by: Konstantin Podsvirov <konstantin@podsvirov.pro>\n>>  ---\n>>   git-gui.sh | 52 ++++++++++++++++++++++++++++++----------------------\n>>   1 file changed, 30 insertions(+), 22 deletions(-)\n>>\n>>  diff --git a/git-gui.sh b/git-gui.sh\n>>  index 4610e4ca72a..512f4f121aa 100755\n>>  --- a/git-gui.sh\n>>  +++ b/git-gui.sh\n>>  @@ -44,6 +44,28 @@ if {[catch {package require Tcl 8.5} err]\n>>\n>>   catch {rename send {}} ; # What an evil concept...\n>>\n>>  +######################################################################\n>>  +##\n>>  +## platform detection\n>>  +\n>>  +set _iscygwin {}\n>>  +\n>>  +proc is_Cygwin {} {\n>>  + global _iscygwin\n>>  + if {$_iscygwin eq {}} {\n>>  + if {$::tcl_platform(platform) eq {windows}} {\n>>  + if {[catch {set p [exec cygpath --windir]} err]} {\n>>  + set _iscygwin 0\n>>  + } else {\n>>  + set _iscygwin 1\n>>  + }\n>>  + } else {\n>>  + set _iscygwin 0\n>>  + }\n>>  + }\n>>  + return $_iscygwin\n>>  +}\n>>  +\n>>   ######################################################################\n>>   ##\n>>   ## locate our library\n>>  @@ -51,7 +73,14 @@ catch {rename send {}} ; # What an evil concept...\n>>   if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {\n>>           set oguilib $::env(GIT_GUI_LIB_DIR)\n>>   } else {\n>>  - set oguilib {@@GITGUI_LIBDIR@@}\n>>  + if {[is_Cygwin]} {\n>>  + set oguilib [exec cygpath \\\n>>  + --windows \\\n>>  + --absolute \\\n>>  + @@GITGUI_LIBDIR@@]\n>>  + } else {\n>>  + set oguilib {@@GITGUI_LIBDIR@@}\n>>  + }\n>\n> This would convert the Windows style path to a Unix style path if we are\n> running in Cygwin, right? This is what I assume the heart of the problem\n> is.\n\nIt is true exactly the opposite.\n\n> Style nitpick: something like this would probably be better:\n>\n>   set oguilib {@@GITGUI_LIBDIR@@}\n>   if {[is_Cygwin]} {\n>         ...\n>   }\n\nLooks good.\n\n> This makes it clear that Cygwin is the exception. For all other cases,\n> we want to use @@GITGUI_LIBDIR@@ directly.\n\nYes.\n\n>>   }\n>>   set oguirel {@@GITGUI_RELATIVE@@}\n>>   if {$oguirel eq {1}} {\n>>  @@ -163,7 +192,6 @@ set _isbare {}\n>>   set _gitexec {}\n>>   set _githtmldir {}\n>>   set _reponame {}\n>>  -set _iscygwin {}\n>\n> Why move the initialization?\n\nTo use this above when setting `oguilib` variable.\n\n>>   set _search_path {}\n>>   set _shellpath {@@SHELL_PATH@@}\n>>\n>>  @@ -266,26 +294,6 @@ proc is_Windows {} {\n>>           return 0\n>>   }\n>>\n>>  -proc is_Cygwin {} {\n>>  - global _iscygwin\n>>  - if {$_iscygwin eq {}} {\n>>  - if {$::tcl_platform(platform) eq {windows}} {\n>>  - if {[catch {set p [exec cygpath --windir]} err]} {\n>>  - set _iscygwin 0\n>>  - } else {\n>>  - set _iscygwin 1\n>>  - # Handle MSys2 which is only cygwin when MSYSTEM is MSYS.\n>>  - if {[info exists ::env(MSYSTEM)] && $::env(MSYSTEM) ne \"MSYS\"} {\n>>  - set _iscygwin 0\n>>  - }\n>\n> I'm afraid I don't understand this hunk. I don't use Windows, and don't\n> completely understand the difference between cygwin, msys, etc. Could\n> you please explain further why this check is removed? Are there any\n> negative side-effects?\n\nTo use `git gui` we need `tk` (wish), but `tk` (wish) can be available only when MSYSTEM is equal to MINGW32 or MINGW64.\n\n>>  - }\n>>  - } else {\n>>  - set _iscygwin 0\n>>  - }\n>>  - }\n>>  - return $_iscygwin\n>>  -}\n>>  -\n>\n> Why move the function? Can't this and the _iscygwin initialization just\n> stay in their place? It will make the diff much easier to read.\n\nTo use this above when setting `oguilib` variable.\n\n>>   proc is_enabled {option} {\n>>           global enabled_options\n>>           if {[catch {set on $enabled_options($option)}]} {return 0}\n>\n> --\n> Regards,\n> Pratyush Yadav\n\nWhat is the further course of action?\n\n--\nRegards,\nKonstantin Podsvirov\n\n"},{"id":"397087","messageId":"20200505122838.6ogymx5v7jl572gn@yadavpratyush.com","threadId":"53234","inReplyTo":"952341588022066@mail.yandex.ru","subject":"Re: [PATCH] git-gui: msys2 compatibility patches","fromName":"Pratyush Yadav","fromEmail":"me@yadavpratyush.com","sentAt":"2020-05-05T12:28:38Z","receivedAt":"2020-05-05T12:29:29Z","isPatch":true,"sender":{"key":"me@yadavpratyush.com","avatar":"https://avatars.githubusercontent.com/u/8817931?v=4"},"body":"Hi Konstantin,\n\nOn 28/04/20 12:33AM, Konstantin Podsvirov wrote:\n> \n> \n> 27.04.2020, 22:48, \"Pratyush Yadav\" <me@yadavpratyush.com>:\n> > Hi Konstantin,\n> >\n> > Thanks for the patch, and sorry for the late reply.\n> >\n> > On 14/04/20 09:45PM, Konstantin Podsvirov via GitGitGadget wrote:\n> >>  From: Konstantin Podsvirov <konstantin@podsvirov.pro>\n> >>\n> >>  Allow using `git gui` command via MSYS2's MINGW32/64 subsystems (apropriate shells).\n> >\n> > I think this should be the commit subject, instead of \"msys2\n> > compatibility patches\".\n> \n> I do not mind.\n> \n> >>  Just install apropriate `tk` package:\n> >>\n> >>  ```bash\n> >>  user@host MINGW32 ~\n> >>  pacman -S mingw-w64-i686-tk\n> >>  ```\n> >>\n> >>  or\n> >>\n> >>  ```bash\n> >>  user@host MINGW64 ~\n> >>  pacman -S mingw-w64-x86_64-tk\n> >>  ```\n> >>\n> >>  For more info see: https://github.com/msys2/MSYS2-packages/pull/1912\n> >\n> > Please don't just link to an external website. Put the explanation there\n> > in the commit message. Explain what the problem was, and how this patch\n> > fixes it.\n> \n> The startup script everywhere operates on Unix paths, but on Windows they are incomplete, and the interpreter expects full native paths.\n\nOk. Thanks for the explanation.\n \n> >>  Signed-off-by: Konstantin Podsvirov <konstantin@podsvirov.pro>\n> >>  ---\n> >>   git-gui.sh | 52 ++++++++++++++++++++++++++++++----------------------\n> >>   1 file changed, 30 insertions(+), 22 deletions(-)\n> >>\n> >>  diff --git a/git-gui.sh b/git-gui.sh\n> >>  index 4610e4ca72a..512f4f121aa 100755\n> >>  --- a/git-gui.sh\n> >>  +++ b/git-gui.sh\n> >>  @@ -44,6 +44,28 @@ if {[catch {package require Tcl 8.5} err]\n> >>\n> >>   catch {rename send {}} ; # What an evil concept...\n> >>\n> >>  +######################################################################\n> >>  +##\n> >>  +## platform detection\n> >>  +\n> >>  +set _iscygwin {}\n> >>  +\n> >>  +proc is_Cygwin {} {\n> >>  + global _iscygwin\n> >>  + if {$_iscygwin eq {}} {\n> >>  + if {$::tcl_platform(platform) eq {windows}} {\n> >>  + if {[catch {set p [exec cygpath --windir]} err]} {\n> >>  + set _iscygwin 0\n> >>  + } else {\n> >>  + set _iscygwin 1\n> >>  + }\n> >>  + } else {\n> >>  + set _iscygwin 0\n> >>  + }\n> >>  + }\n> >>  + return $_iscygwin\n> >>  +}\n> >>  +\n> >>   ######################################################################\n> >>   ##\n> >>   ## locate our library\n> >>  @@ -51,7 +73,14 @@ catch {rename send {}} ; # What an evil concept...\n> >>   if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {\n> >>           set oguilib $::env(GIT_GUI_LIB_DIR)\n> >>   } else {\n> >>  - set oguilib {@@GITGUI_LIBDIR@@}\n> >>  + if {[is_Cygwin]} {\n> >>  + set oguilib [exec cygpath \\\n> >>  + --windows \\\n> >>  + --absolute \\\n> >>  + @@GITGUI_LIBDIR@@]\n> >>  + } else {\n> >>  + set oguilib {@@GITGUI_LIBDIR@@}\n> >>  + }\n> >\n> > This would convert the Windows style path to a Unix style path if we are\n> > running in Cygwin, right? This is what I assume the heart of the problem\n> > is.\n> \n> It is true exactly the opposite.\n\nGot it.\n \n> > Style nitpick: something like this would probably be better:\n> >\n> >   set oguilib {@@GITGUI_LIBDIR@@}\n> >   if {[is_Cygwin]} {\n> >         ...\n> >   }\n> \n> Looks good.\n> \n> > This makes it clear that Cygwin is the exception. For all other cases,\n> > we want to use @@GITGUI_LIBDIR@@ directly.\n> \n> Yes.\n> \n> >>   }\n> >>   set oguirel {@@GITGUI_RELATIVE@@}\n> >>   if {$oguirel eq {1}} {\n> >>  @@ -163,7 +192,6 @@ set _isbare {}\n> >>   set _gitexec {}\n> >>   set _githtmldir {}\n> >>   set _reponame {}\n> >>  -set _iscygwin {}\n> >\n> > Why move the initialization?\n> \n> To use this above when setting `oguilib` variable.\n\nOk. Though I wonder if we need this variable at all. It is only used \nwith the function is_Cygwin, and seems like a performance optimization \nso we don't need to perform the check for every call to the function. \nBut since it only is a couple of if statements, I'm not sure if it will \nmake a significant performance difference.\n\n> >>   set _search_path {}\n> >>   set _shellpath {@@SHELL_PATH@@}\n> >>\n> >>  @@ -266,26 +294,6 @@ proc is_Windows {} {\n> >>           return 0\n> >>   }\n> >>\n> >>  -proc is_Cygwin {} {\n> >>  - global _iscygwin\n> >>  - if {$_iscygwin eq {}} {\n> >>  - if {$::tcl_platform(platform) eq {windows}} {\n> >>  - if {[catch {set p [exec cygpath --windir]} err]} {\n> >>  - set _iscygwin 0\n> >>  - } else {\n> >>  - set _iscygwin 1\n> >>  - # Handle MSys2 which is only cygwin when MSYSTEM is MSYS.\n> >>  - if {[info exists ::env(MSYSTEM)] && $::env(MSYSTEM) ne \"MSYS\"} {\n> >>  - set _iscygwin 0\n> >>  - }\n> >\n> > I'm afraid I don't understand this hunk. I don't use Windows, and don't\n> > completely understand the difference between cygwin, msys, etc. Could\n> > you please explain further why this check is removed? Are there any\n> > negative side-effects?\n> \n> To use `git gui` we need `tk` (wish), but `tk` (wish) can be available only when MSYSTEM is equal to MINGW32 or MINGW64.\n\nSo if MYSYTEM is something other than these two, would it be possible to \nrun git-gui at all?\n \n> >>  - }\n> >>  - } else {\n> >>  - set _iscygwin 0\n> >>  - }\n> >>  - }\n> >>  - return $_iscygwin\n> >>  -}\n> >>  -\n> >\n> > Why move the function? Can't this and the _iscygwin initialization just\n> > stay in their place? It will make the diff much easier to read.\n> \n> To use this above when setting `oguilib` variable.\n\nOk.\n \n> >>   proc is_enabled {option} {\n> >>           global enabled_options\n> >>           if {[catch {set on $enabled_options($option)}]} {return 0}\n> >\n> > --\n> > Regards,\n> > Pratyush Yadav\n> \n> What is the further course of action?\n\nYou should send another version of this series with the suggestions \nimplemented. Since you are using GitGitGadget, you can amend the commit, \nforce push it, and then issue another `/submit` command, and GGG will \ntake care of the rest. The GGG welcome message would have all the \ndetails as well.\n\n-- \nRegards,\nPratyush Yadav\n"}]}