Use helper list if it is provided rather than only in case no MODULEPATH
is defined.
Rework name simplification code to make use of getPathToModule procedure
instead of listModules. Loop around as long as parent name matches
tested modulefile, so "foo/bar/version" can returned "foo" if
"foo/bar/version" is default version of "foo".
Add non-regression tests mixing deep and virtual modulefiles whose
definitions are spread through multiple modulepaths. Help checking
default versions are correctly detected in complex situation.
Fix getModules procedure to correctly handle virtual modules when the
sub-directories they refer to does not exist on the filesystem. For
instance 'modvirt/dir0/sub1/1.0' may be a virtual module defined with
module-virtual modvirt/dir0/sub1/1.0 .common
in 'modvirt/.modulerc' where modvirt/dir0 and modvirt/dir0/sub1 do not
correspond to existing directories on the filesystem.
Now getModules will define among its result virtual directory entries to
make the deep virtual modules findable when, for instance searching a
default version.
Add non-regression tests in 20-locate and 80-deep suites for the deep
virtual module use-case.
Add location test for modulefiles spread in different modulepath
directories where modulefile name corresponds to a file in one modulepath
and corresponds to a directory in another modulepath.
Ensure correct support for #63.