threads / patch / 13961

patchgitk - convert gitk-path to Windows if on Cygwin

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

## tl;dr

One message between Jun 15, 2008 and Jun 15, 2008. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Mark Levedahl· Jun 15, 2008, 00:33 UTC · lore

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 <mlevedahl@gmail.com>
---
 Makefile |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
Show changes to Makefile +7 −1
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

← back to recent threads