All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Konstantin Podsvirov via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Konstantin Podsvirov <konstantin@podsvirov.pro>,
	Pratyush Yadav <me@yadavpratyush.com>,
	Konstantin Podsvirov <konstantin@podsvirov.pro>
Subject: [PATCH] git-gui: msys2 compatibility patches
Date: Tue, 14 Apr 2020 21:45:34 +0000	[thread overview]
Message-ID: <pull.612.git.1586900734341.gitgitgadget@gmail.com> (raw)

From: Konstantin Podsvirov <konstantin@podsvirov.pro>

Allow using `git gui` command via MSYS2's MINGW32/64 subsystems (apropriate shells).

Just install apropriate `tk` package:

```bash
user@host MINGW32 ~
pacman -S mingw-w64-i686-tk
```

or

```bash
user@host MINGW64 ~
pacman -S mingw-w64-x86_64-tk
```

For more info see: https://github.com/msys2/MSYS2-packages/pull/1912

Signed-off-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
---
    git-gui: msys2 compatibility patches
    
    Allow using git gui command via MSYS2's MINGW32/64 subsystems
    (apropriate shells).
    
    Just install apropriate tk package:
    
    user@host MINGW32 ~
    pacman -S mingw-w64-i686-tk
    
    or
    
    user@host MINGW64 ~
    pacman -S mingw-w64-x86_64-tk
    
    For more info see: https://github.com/msys2/MSYS2-packages/pull/1912

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-612%2Fpodsvirov%2Fgit-gui%2Fmsys2-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-612/podsvirov/git-gui/msys2-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/612

 git-gui.sh | 52 ++++++++++++++++++++++++++++++----------------------
 1 file changed, 30 insertions(+), 22 deletions(-)

diff --git a/git-gui.sh b/git-gui.sh
index 4610e4ca72a..512f4f121aa 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -44,6 +44,28 @@ if {[catch {package require Tcl 8.5} err]
 
 catch {rename send {}} ; # What an evil concept...
 
+######################################################################
+##
+## platform detection
+
+set _iscygwin {}
+
+proc is_Cygwin {} {
+	global _iscygwin
+	if {$_iscygwin eq {}} {
+		if {$::tcl_platform(platform) eq {windows}} {
+			if {[catch {set p [exec cygpath --windir]} err]} {
+				set _iscygwin 0
+			} else {
+				set _iscygwin 1
+			}
+		} else {
+			set _iscygwin 0
+		}
+	}
+	return $_iscygwin
+}
+
 ######################################################################
 ##
 ## locate our library
@@ -51,7 +73,14 @@ catch {rename send {}} ; # What an evil concept...
 if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {
 	set oguilib $::env(GIT_GUI_LIB_DIR)
 } else {
-	set oguilib {@@GITGUI_LIBDIR@@}
+	if {[is_Cygwin]} {
+		set oguilib [exec cygpath \
+			--windows \
+			--absolute \
+			@@GITGUI_LIBDIR@@]
+	} else {
+		set oguilib {@@GITGUI_LIBDIR@@}
+	}
 }
 set oguirel {@@GITGUI_RELATIVE@@}
 if {$oguirel eq {1}} {
@@ -163,7 +192,6 @@ set _isbare {}
 set _gitexec {}
 set _githtmldir {}
 set _reponame {}
-set _iscygwin {}
 set _search_path {}
 set _shellpath {@@SHELL_PATH@@}
 
@@ -266,26 +294,6 @@ proc is_Windows {} {
 	return 0
 }
 
-proc is_Cygwin {} {
-	global _iscygwin
-	if {$_iscygwin eq {}} {
-		if {$::tcl_platform(platform) eq {windows}} {
-			if {[catch {set p [exec cygpath --windir]} err]} {
-				set _iscygwin 0
-			} else {
-				set _iscygwin 1
-				# Handle MSys2 which is only cygwin when MSYSTEM is MSYS.
-				if {[info exists ::env(MSYSTEM)] && $::env(MSYSTEM) ne "MSYS"} {
-					set _iscygwin 0
-				}
-			}
-		} else {
-			set _iscygwin 0
-		}
-	}
-	return $_iscygwin
-}
-
 proc is_enabled {option} {
 	global enabled_options
 	if {[catch {set on $enabled_options($option)}]} {return 0}

base-commit: a5728022e07c53e5ac91db0960870518e243b7c1
-- 
gitgitgadget

             reply	other threads:[~2020-04-14 21:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-14 21:45 Konstantin Podsvirov via GitGitGadget [this message]
2020-04-27 19:45 ` [PATCH] git-gui: msys2 compatibility patches Pratyush Yadav
2020-04-27 21:33   ` Konstantin Podsvirov
2020-05-05 12:28     ` Pratyush Yadav

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pull.612.git.1586900734341.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=konstantin@podsvirov.pro \
    --cc=me@yadavpratyush.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.