Could we try loading it without any changes, and if that doesn't work,
strip the last .?

On Fri, 23 Sep 2005 15:51:31 +1000, Ross McFarland <[EMAIL PROTECTED]>
wrote:


i was playing around with NCI stuff tonight and ran across a problem in loadlib. the following code does not work:

     .local pmc lib_gtk
     lib_gtk = loadlib "libgtk-x11-2.0"

the problem is the '.' in the library name. code was added to src/ dynext.c in 8209 that gets the lib_name, the name of the library without any prefix or leading path information. this fix breaks the ability to load libraries with .'s. the offending code is:

     ext_start = strrchr(*lib_name, '.');
     if (ext_start)
         *ext_start = '\0';

which finds the last '.' in the library name and sets it to the null char if one is found, thus turning libgtk-x11-2.0 in to libgtk-x11-2 which can't be found. this results in an unable to load libgtk-x11-2.0 with an "unknown reason" message.

if i set ext_start to NULL just before the test and null char set and the library loads fine.

i'm not really sure what the solution here would be. you'd have to know what all of the possible extension types were and look to remove them if found otherwise you have no idea what is and isn't just part of a library name. in what situation would you be passing in a full path and file with extension to loadlib? is that a requirement to be able to? it sound unnecessary to me. i'm willing to implement and test any ideas/suggestions people have.

i was planning on playing around with gtk+ bindings and parrot and went about looking around for the work that had already been done and didn't turn anything up. if anyone knows where i can find it or who i should talk to i would appreciate that info as well.

-rm



--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Reply via email to