Age | Commit message (Collapse) | Author | Files | Lines |
|
If running in a VM with very variable time
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
namespace, ssl
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
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>
|
|
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>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
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>
|
|
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>
|
|
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>
|
|
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.
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
To warn of Y2038 problems, and suggest use of -D__MINGW_USE_VC2005_COMPAT
on mingw32. Do this instead of the previous runtime test.
Add -D__MINGW_USE_VC2005_COMPAT to the appveyor build.
Fixes msteveb/jimtcl#145
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Add a note in the documentation for clock that some systems
use 32-bit time_t and are thus not year 2038 compliant.
Also add a test to catch this in clock.test
Reported-by: dbohdan <dbohdan@dbohdan.com>
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>
|
|
Should return the given return code, not JIM_RETURN (2)
Reported-by: dbohdan <dbohdan@dbohdan.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Reported-by: dbohdan <dbohdan@dbohdan.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Using the jsmn library for decoding.
Based on the original implementation by Svyatoslav Mishyn <juef@openmailbox.org>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
If an expression returns (e.g.), break, continue or exit, that
return code should be propagated, the same it is for [expr {}]
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Not byte indices
Reported-by: dbohdan <dbohdan@dbohdan.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Not a byte index
Reported-by: dbohdan <dbohdan@dbohdan.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
This subcommand was missing as it wasn't part of the original Tcl 6.7
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|