When using "file join" on a string that happens to include a virtual volume name as a substring, the string is improperly split at the substring boundary, and the command acts as though there were a space at the substring boundary.
For convenience I have attached a file (templatevfs.tcl) to make it easy to create a virtual volume by mounting a virtual filesystem, but the issue should not be construed as limited to this vfs.
% file mkdir testvfs
% source templatevfs.tcl
% vfs::template::mount -volume testvfs testvfs
%file volumes ; # note testvfs is now a virtual volume
% file join testvfstest ; # expect response: testvfstest
Note in the last statement "testvfstest" is an arbitrary string which just happens to start with "testvfs". The command "file join testvfstest" should simply echo the argument string. But the command acts as if there were a space between "testvfs" and "test".
% file join foo testvfstest
Discarding "foo" would be expected if there were a space between "testvfs" and "test", since the command discards arguments that come before a volume name. But the response should be "foo/testvfstest". This illustrates that "testvfs" is being treated as a volume name rather than as a substring.
Tested on Ubuntu Hardy.