DORMANTno replies

[PATCH] gitk - convert gitk-path to Windows if on Cygwin

From: Mark Levedahl <hidden>
Date: 2016-06-15 22:44:46
Subsystem: kernel build + files below scripts/ (unless maintained elsewhere), the rest · Maintainers: Nathan Chancellor, Nicolas Schier, Linus Torvalds

Cygwin does not have a recent Tcl release (it is stuck at 8.4.1), and
there is small chance this will change soon. The only way Cygwin users
can have a more recent Tcl/Tk is to use a pure Windows release. However,
these do not understand POSIX paths as used in Cygwin. This really only
matters for finding the gitk script itself, all other arguments are
interpreted by git which is POSIX. This patch modifies gitk to convert
the path to the gitk script from POSIX to Windows before execution.

This patch was inspired by a patch submitted long ago by Shawn Pierce.

Signed-off-by: Mark Levedahl <redacted>
---
 Makefile |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index e1b6045..742ae5b 100644
--- a/Makefile
+++ b/Makefile
@@ -51,9 +51,15 @@ uninstall::
 clean::
 	$(RM) gitk-wish po/*.msg
 
+OS := $(shell sh -c 'uname -o 2>/dev/null')
+ifeq ($(OS), Cygwin)
+	EXECLINE = argv0=`cygpath --windows --absolute "$$0"`; \\\nexec $(TCLTK_PATH_SQ) "$$argv0" -- "$$@"
+else
+	EXECLINE = exec $(TCLTK_PATH_SQ) "$$0" -- "$$@"
+endif
 gitk-wish: gitk
 	$(QUIET_GEN)$(RM) $@ $@+ && \
-	sed -e '1,3s|^exec .* "$$0"|exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' <gitk >$@+ && \
+	sed -e '1,3s|^exec .*|$(EXECLINE)|' <gitk >$@+ && \
 	chmod +x $@+ && \
 	mv -f $@+ $@
 
-- 
1.5.6.rc2.65.gcb6b9
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help