It seems that the prior use of sim_asynch_lock RECURSIVE mutex could
cause a pthread_cond_timedwait() failure with EINVAL returned.
As discussed in #595
Also:
- Enhance SHOW MUX to support "SHOW MUX <dev>"
- Fix potential null pointer dereference with unusual ATTACH combinations
- Allow BPS factor to change without specifying an explicit speed.
- push new action commands ahead of any previously unprocessed pending
action commands.
- Add ACTION and DO debug to CPU (SCP) command processing support
- Insert %n command arguments before storing command line for potential
deferred processing of action parameters to some commands (IF, BREAK,
EXPECT, etc.)
- Conversion to postfix ends up with operator ordering in different from the
initial assumption resulting all relative compares being wrong.
- Parsing of Hex, Binary and Octal numeric tokens need to properly terminate
- Environment variable names can start with the _ character
- Assure that Internal variables are referencable during expression evaluation
- Add DEVNAME.REGNAME format for referencing non unique registers in
expression evaluation.
- Extend global register search to also search known internal device list
registers
- Allow expression variable names to have _ as a character within in the name
Also, change sim_dir_scan on all platforms to NOT return the contents
of a directory unless the filespec string asks for it. This avoids the
potential catastrophe of a DEL command specifying a directory and
having its contents deleted.
Meanwhile, the DIR command now will list the contents of a directory
if the directory is specified with (or without) a wild card pattern.
Previously, unexpected values might end up being set when using SET ENV
if there were trailing whitespace on the line being parsed. Any such white
space is now explicitly trimmed before the environment variable is set.
Once we do that, we need to provide a way to deliberately set an environment
variable with trailing spaces. This is now achieved by using a quoted string
value specified as:
SET ENV -S var="value "
The quotes are removed prior to setting the environment variable value.
The contents of the quoted string are parsed the same as EXPECT and SEND
arguments.