#4179 platform::shell::generic is broken

obsolete: 8.5.5
closed-fixed
8
2008-11-10
2008-11-10
Ulrich Ring
No

the following 2 commands are broken:

platform::shell::generic
platform::shell::identity

see file: library/platform/shell.tcl - installed
as a tcl-module in tcl8/8.4/shell-1.1.3.tm

actually, the bug is located in the 3rd code line
of the internal procedure ::platform::shell::LOCATE

foreach {cmd base} $pl break

this line tries to extract the pathname of the
sourced module platform-1.0.3.tm, which is expected
to be the 2nd item of the list returned by the
previous command

[package ifneeded platform [package require platform]]

nowadays we find something more complex like:
"package provide platform 1.0.3; source -encoding ...".
so, variable base becomes "provide", which is not what
we want.

suggested PATCH: use

set base [lindex $pl end]

to get the filepath.

regards,
Ulrich

Discussion

  • Donal K. Fellows

    • labels: 104246 --> 54. Configuration Reporting
    • priority: 5 --> 8
    • assigned_to: nobody --> andreas_kupries
     
  • Andreas Kupries

    Andreas Kupries - 2008-11-10

    Thanks Ulrich. You are quite right. The latest changes to the provide command generated by tm.tcl in the core require us to update and change the implementation of LOCATE as well. I will do that now and add a cross-reference to tm.tcl so that this will not be forgotten should tm.tcl be changed again in the future.

     
  • Andreas Kupries

    Andreas Kupries - 2008-11-10

    Both HEAD and 8.5 branch head are now updated with the suggested patch. Bumped package to 1.1.4, and updated docs and Makefiles for that as well.

     
  • Andreas Kupries

    Andreas Kupries - 2008-11-10
    • status: open --> closed-fixed