This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

tcl8.4.1 - tclWinInit - TclpInitLibraryPath()


#ifdef __CYGWIN__
	    pathv[pathc - 2] = installLib2;

This adding is useful for X:/cygwin/bin/tclsh.exe to
include "X:/cygwin/usr/share/tcl8.4", which is the
place on cygwin where to find init.tcl.

Unfortunately, it is of no help to:
 X:/cygwin/usr/local/pgsql/bin/pgtclsh.exe
 X:/cygwin/usr/local/pgsql/bin/postgres.exe
because it leads to
X:/cygwin/usr/local/pgsql/usr/share/tcl8.4

A way to solve this problem is to define the
TCL_LIBRARY environment variable.

I think that there is a better way to accommodate all
applications on cygwin, without the need to define
TCL_LIBRARY, by moving the use of installLib2 to
AppendDllPath().

As the dll is X:/cygwin/bin/tcl84.dll, AppendDllPath()
would return:
 X:/cygwin/usr/share/tcl8.4
whatever the application executable path is.

I don't have the means to compile/build/test the tcl
package from source, but here is my proposed patch:

$ diff -u tclWinInit.c ../../../../tmp/tclWinInit.c
--- tclWinInit.c        2003-01-23 06:22:16.001000000
+0100
+++ ../../../../tmp/tclWinInit.c        2004-01-07
13:12:30.640625000 +0100
@@ -228,7 +228,15 @@
      * because in practice, the DLL is always
installed.
      */

-    AppendDllPath(pathPtr, TclWinGetTclInstance(),
installLib);
+    AppendDllPath(pathPtr, TclWinGetTclInstance(),
+    /* REDHAT LOCAL */
+#ifdef __CYGWIN__
+     installLib2
+#else
+     installLib
+#endif
+    /* END REDHAT LOCAL */
+     );


     /*
@@ -268,17 +276,6 @@
            objPtr = Tcl_NewStringObj(path,
Tcl_DStringLength(&ds));
            Tcl_ListObjAppendElement(NULL, pathPtr,
objPtr);
            Tcl_DStringFree(&ds);
-           /* REDHAT LOCAL */
-#ifdef __CYGWIN__
-           pathv[pathc - 2] = installLib2;
-           path = Tcl_JoinPath(pathc - 1, pathv,
&ds);
-           pathv[pathc - 2] = str;
-           objPtr = Tcl_NewStringObj(path,
Tcl_DStringLength(&ds));
-           Tcl_ListObjAppendElement(NULL, pathPtr,
objPtr);
-           Tcl_DStringFree(&ds);
-#endif
-           /* END REDHAT LOCAL */
-
        }
        if (pathc > 3) {
            str = pathv[pathc - 3];


__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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