This is the mail archive of the gdb-patches@sourceware.cygnus.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [RFA] Cygwin/Windows compatibility patches for tcl


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]