This might the way the pkgIndex.tcl file for this particular extension
has been implemented, but like Jan says, that is not the Tcl way.

Here is a sample that illustrates the more acceptable procedure:

# Tcl package index file, version 1.0

if {![package vsatisfies [package provide Tcl] 8.6]} {return}

package ifneeded itcl 4.0b7 [list load [file join $dir "itcl40b7.dll"] itcl]
package ifneeded Itcl 4.0b7 [list load [file join $dir "itcl40b7.dll"] itcl]

The variable "dir" is set by the package management subsystem and the
effect is that the _full_ path is constructed before the DLL is
actually loaded.

Regards,

Arjen

2014-10-10 13:24 GMT+02:00 Jan Nijtmans <jan.nijtm...@gmail.com>:
> 2014-10-10 12:34 GMT+02:00 Corinna Vinschen <corinna-cyg...@cygwin.com>:
>> On Oct  9 11:46, tedno...@bellsouth.net wrote:
>>> I'm pretty sure I've got some programs loading Tcl extensions that
>>> cd into the directory with the extension dlls, load the extension and then
>>> change back to where ever they were.
>>
>> Hmm.  If so, it's quite a weird way to handle this, rather than
>> loading the modules with full path.
>>
>> Is that a Tcl "feature", or is it how certain Tcl apps are implemented?
>> I can't really believe the former...
>
> This is certainly not a Tcl "feature"!  The standard Tcl extension
> mechanism always uses the full path simply because Tcl
> cannot depend on platform-specific ways to search for
> such libraries elsewhere.
>
> I'm willing to test this;I don't believe such a change
> will break anything in my Tcl environment.
>
> Regards,
>        Jan Nijtmans
>
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>

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

Reply via email to