This is the mail archive of the
gdb-patches@sourceware.cygnus.com
mailing list for the GDB project.
Re: [RFA] Cygwin/Windows compatibility patches for tcl
- To: gdb-patches at sourceware dot cygnus dot com, gdb-patches at sourceware dot cygnus dot com
- Subject: Re: [RFA] Cygwin/Windows compatibility patches for tcl
- From: Syd Polk <spolk at redhat dot com>
- Date: Mon, 05 Jun 2000 16:00:00 -0700
- Cc: spolk at cygnus dot com
At 06:56 PM 6/5/00 -0400, Chris Faylor wrote:
>I'm not sure if this is the best location for tcl patches but since they
>relate to problems with insight, I guess it sort of make sense. I've
>also Cc'ed Syd Polk, who approves the tcl/tk/itcl/tix changes in
>sourceware.
>
>This patch corrects several problems that Cygwin users are seeing with
>Insight for Windows. I'm a little puzzled as to why the slash to backslash
>conversion code is in tcl at all but its removal solves the cygwin insight
>problems.
I actually think that the backslash reversal code is remnants from another
project from within Cygnus.
>Ok to check in?
Please.
>cgf
>
>Mon Jun 5 18:48:32 2000 Christopher Faylor <cgf@cygnus.com>
>
> * generic/tclFileName.c (Tcl_TranslateFileName): Cygwin paths (and
> Windows in general, actually) do not need to have '/'s translated
> into
> '\'s.
> (TclDoGlob): Ditto.
> * win/tclWinFile.c (TclMatchFiles): Ditto.
> * generic/tclInitScript.h: Look in "../bin/usr/share" as well as
> "../bin/share".
>
>Index: generic/tclFileName.c
>===================================================================
>RCS file: /cvs/src/src/tcl/generic/tclFileName.c,v
>retrieving revision 1.1.1.1
>diff -u -p -r1.1.1.1 tclFileName.c
>--- tclFileName.c 1999/11/09 01:28:43 1.1.1.1
>+++ tclFileName.c 2000/06/05 22:51:59
>@@ -963,6 +963,8 @@ Tcl_TranslateFileName(interp, name, buff
> * some system interfaces don't accept forward slashes.
> */
>
>+#ifndef __CYGWIN__
>+ cygwin_conv_to_win32_path (Tcl_DStringValue(bufferPtr)
> if (tclPlatform == TCL_PLATFORM_WINDOWS) {
> for (p = Tcl_DStringValue(bufferPtr); *p != '\0'; p++) {
> if (*p == '/') {
>@@ -970,6 +972,7 @@ Tcl_TranslateFileName(interp, name, buff
> }
> }
> }
>+#endif
> return Tcl_DStringValue(bufferPtr);
> }
>
>@@ -1568,6 +1571,7 @@ TclDoGlob(interp, separators, headPtr, t
> break;
> case TCL_PLATFORM_WINDOWS: {
> int exists;
>+#ifndef __CYGWIN__
> /*
> * We need to convert slashes to backslashes before checking
> * for the existence of the file. Once we are done, we need
>@@ -1588,6 +1592,7 @@ TclDoGlob(interp, separators, headPtr, t
> }
> }
> }
>+#endif
> name = Tcl_DStringValue(headPtr);
> exists = (TclAccess(name, F_OK) == 0);
> for (p = name; *p != '\0'; p++) {
>Index: generic/tclInitScript.h
>===================================================================
>RCS file: /cvs/src/src/tcl/generic/tclInitScript.h,v
>retrieving revision 1.2
>diff -u -p -r1.2 tclInitScript.h
>--- tclInitScript.h 2000/04/03 19:34:38 1.2
>+++ tclInitScript.h 2000/06/05 22:51:59
>@@ -92,6 +92,7 @@ static char initScript[] = "if {[info pr
> }\n\
> set parentDir [file dirname [file dirname $execName]]\n\
> lappend dirs [file join $parentDir share tcl$tcl_version]\n\
>+ lappend dirs [file join $parentDir \"usr\" share tcl$tcl_version]\n\
> lappend dirs [file join [file dirname $parentDir] share
> tcl$tcl_version]\n\
> # NOW, let's try to find it in the build tree...\n\
> # Rather than play all the games Scriptics does, if we are in
> the build\n\
>Index: win/tclWinFile.c
>===================================================================
>RCS file: /cvs/src/src/tcl/win/tclWinFile.c,v
>retrieving revision 1.1.1.1
>diff -u -p -r1.1.1.1 tclWinFile.c
>--- tclWinFile.c 1999/11/09 01:28:44 1.1.1.1
>+++ tclWinFile.c 2000/06/05 22:51:59
>@@ -130,11 +130,13 @@ TclMatchFiles(interp, separators, dirPtr
> Tcl_DStringAppend(&buffer, Tcl_DStringValue(dirPtr),
> Tcl_DStringLength(dirPtr));
> }
>+#ifndef __CYGWIN__
> for (p = Tcl_DStringValue(&buffer); *p != '\0'; p++) {
> if (*p == '/') {
> *p = '\\';
> }
> }
>+#endif
> p--;
> if (*p != '\\' && *p != ':') {
> Tcl_DStringAppend(&buffer, "\\", 1);
Syd Polk spolk@redhat.com
Engineering Manager +1 415 777 9810 x 241
Cygnus Solutions,a Red Hat company