Age | Commit message (Collapse) | Author | Files | Lines |
|
The hash table used to store commands now uses Jim_Obj keys rather
than allocated char *, so embedded nulls are supported.
This means that some API function such as Jim_RenameCommand()
now take Jim_Obj * rather than const char *, however Jim_CreateCommand()
is retained with const char * for convenience and the new Jim_CreateCommandObj()
is added.
This is generally a performance win as the existing Jim_Obj can be used
as the key.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
string match, switch -glob, info commands, etc. all now support
patterns and strings with embedded nulls.
Fixes #143
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Hash tables used to store variables are now use Jim_Obj keys rather
than allocated char *, so embedded nulls are supported.
This is generally a performance win as the existing Jim_Obj can be used
as the key.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The fix for tailcall in 0d5a208e92 meant that a JIM_RETURN return
code from apply was no longer being converted to the appropriate
return code.o
Fixes: #157
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
|
|
Fixes #155
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
An implicit concat was being done on the arguments to 'super', so
arguments containing spaces were mangled.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Using a custom "expect-like" module to allow testing Jim in interactive
mode. This also exercises the 'socket pty' support.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If the pattern begins with -, the internal invocation of regexp
will treat the pattern as an option. Fix this by adding -- to the
internal invocation of regexp.
Fixes #154
Reported-by: Barry Arthur <barry.arthur@gmail.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Skip ipv6 tests if not supported
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Allows a psuedo-tty pair to be created.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
For some SSL connections it is necessary to set the Server Name
Indication in the connection in order to receive the correct
certificate. Allow this as part of the client ssl call with:
$sock ssl -sni $servername
Also for -server mode, allow the certificate and private key to be
stored in a single file and only be specified once.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
We can't use feof() and 'buffering none' on ssl connections.
Instead we have to get eof from the ssl layer, and provide
special handling for buffering in the eventloop.
For eof, add ssl_eof() and detect SSL_read() results that indicate
eof to set AIO_EOF in flags.
For buffering, add 'read -pending' that will read, and then immediately
read any buffered data so that the 'readable' event will trigger next
time.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Note that there is currently a problem with ssl and readable events
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Basic testing of each of the socket types
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Because we use catch -exit { ... }, if a test uses os.fork
we will return in both the parent in the child. To fix this,
require the child to use exit 99, and detect this case and exit
from the child in this case.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If exit is caught with catch -exit, it is currently not possible
to retrieve the exit value. If an exit code is provided, set it
as the interp result.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
While -D__MINGW_USE_VC2005_COMPAT enables a 64-bit time_t,
it is necessary to explicitly use _stat64 to access the stat
structure containing 64 bit times.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Mostly just avoiding running certain tests, but also:
- rename() won't overwrite an existing file on Windows
- ensure that eof returns 0 or 1
- in aio.test, create and read the file in binary mode
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
In case the index is invalid, the string should contain -MAX_INT
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
numPids is always zero here so the code does nothing
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
To show both the host and port
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The string length was being checked in chars instead of bytes
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
regsub -all matches \A against the start of each match, but
correctly handle a pattern like ^ which does not advance the
match
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Detect and produce an error for missing closing bracket ]
Consider a trailing backslash as an invalid escape
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If the signal is invalid, indicate that
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
between pack and unpack
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
readdir, tty, utf8, signal, alarm, kill, file, jimsh, posix, aio,
history, interp, pack, unpack, eventloop, exec, load, package,
regexp, regsub
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Disable optimisation during coverage.
Set CCACHE_DISABLE=1 in the environment, just to be sure to disable ccache
Also cleanup coverage files in subdirs too
Add support for both lcov and gcovr
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
More namespace tests from Evan Hunter
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Also requires fixing 'debug' command so that the interpreter &
tcltest.tcl can tell it is not supported.
And the result of 'debug show' is now returned as the interpreter result
rather than being printed.
|
|
The expression tree nodes are freed with Jim_Free and should
be allocated with Jim_Alloc
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
As Windows doesn't respect the path/template
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
- clock
- array
- file tempfile
- lreverse
- string byterange
- aio tty
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
When set, failed tests output a complete test command that would
succeed. This is useful when creating new tests.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If an existing command was replaced when using local proc ...,
then renaming the command will break upcall from within the proc
because the command no longer exists in the namespace. To prevent
this case, disallow rename of such a command.
It is still OK to delete with rename <cmd> ""
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If a quote is missing inside a command, e.g.["command here]
the error should indicate that a quote is missing, not a bracket.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Should produce an error, but did not previously
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
To make it easier to generate code coverage output.
Ensure that gcovr is installed, then do:
./configure --coverage
make test coverage
And see the report in coverage.html
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If a namespace is given, it is relative to the global namespace
not the current namespace.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Use the same name for this subcommand as Tcl.
For now we keep the existing package list in case it is in use.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
The purpose of a tailcall is to avoid using additional stack frames,
however although were were not creating an extra Tcl callframe we were
using C stack frames through the call sequence:
JimCallProcedure -> Jim_EvalObjList -> JimInvokeCommand -> JimCallProcedure
This meant that a large number of tailcalls would overflow the stack.
Instead we need to have JimCallProcedure return to JimInvokeCommand
where the tailcall can be handled by a subsequent call to JimCallProcedure.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|