Add an utility library that supersedes the getgroups function from libc.
The getgroups function from this added library always returns an empty
result (0). It is used for coverage test of the getgroups call made
within the Envmodules_InitStateUsergroupsObjCmd function of the Tcl
extension library.
Add an utility library that supersedes the getgrgid function from libc.
The getgrgid function from this added library always returns an error
(NULL). It is used for coverage test of the getgrgid call made within the
Envmodules_InitStateUsergroupsObjCmd function of the Tcl extension
library.
Add an utility library that supersedes the getgroups function from libc.
The getgroups function from this added library always returns an error
(-1). It is used for coverage test of the getgroups call made within the
Envmodules_InitStateUsergroupsObjCmd function of the Tcl extension
library.
Add an utility library that supersedes the getpwuid function from libc.
The getpwuid function from this added library always returns an error
(NULL). It is used for coverage test of the getpwuid call made within
the Envmodules_InitStateUsernameObjCmd function of the Tcl extension
library.
sh shell on BSD platform outputs alias definition with different
character escaping than regular sh or dash on Linux platform.
Disable test for this shell on this platform currently. Will see later
on if a need to support this shell is needed.
With quarantine mechanism disabled, no specific IFS is set when
modulecmd.tcl output is evaluated with zsh and ksh shells, sh-to-mod
does not output ';' character at end of each function line, thus when
evaluated with default IFS the multiple lines are treated as a single
command line.
dash has some limitations for this task:
- there is no mechanism to report shell functions set, so no shell
function will be defined or unset with this shell through sh-to-mod
- arguments cannot be passed to a sourced script
Specific code is required to retrieve defined functions in environment
as `typeset -f` may output function definition with no clear separation
between each other.
Ensure environment variable change at the Tcl interpreter level is
propagated to every sub-interpreters used to evaluate modulefiles or
modulercs.
Tcl by default maintain the `::env` array in sync across all started
interpreters. But in some cases, it appears a change occuring in master
interpreter is not correctly propagated when the variable is later on
updated in sub-interpreter.
Fixes#342
In case a modulefile evaluation fails, environment context prior this
failed evaluation is restored. Fix environment variable restoration
mechanism to keep the link that monitors and updates environment
variable array `env` in every Tcl sub-interpreters.
Unsetting the whole `env` array makes Tcl stop monitoring env accesses
and stop updating environment variables. Environment context restoration
is now done by updating the `env` array (unsetting keys in the array and
setting value for new or existing keys).
Fixes#340
To ensure a proper prompt message output on clear sub-command, no pager
is started. This commit also turns off pager when clear sub-command is
called through the ml shortcut command.
Fixes#338
When an advanced version specifier list contains symbolic version
references, fix resolving to honor default version if part of the
specified list.
Fixes#334.
Rather applying a filter that removes the directory entries with no tag
attached to them, except if search is performed in a no-indepth manner,
perform this filter directly withing getModules procedure.
Rather re-filtering result from getModules procedure within listModules
procedure, perform the onlydefaults/onlylatest (-d/-L) avail filters
directly within getModules.
Rework loop walking the symbolic version target to include all elements
recursively contained in directory targeted by symbolic version. Now
using dir_list structure to walk path rather querying the whole
found_list with modEq test procedure.
Enable resolution of default module in module sub-directory when this
default symbol targets an hidden directory (whose name starts with a dot
character).
Adapt getModules procedure to add reference, in the directory description
returned as result, for symbolic version targets that are hidden, not
included in returned result but excluded from search made.
Fixes#331
Filter-out from the output of the `aliases` sub-command all hidden
aliases, symbolic versions or hidden modules targeted by a non-hidden
symbolic version.
Fixes#330