Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
This also involves some restructuring of the existing
implementation to allow for as much reuse as possible.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Some unused variables
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Shared libraries can't access environ directly, so use
_NSGetEnviron() on Mac OS X
Also, load modules with (RTLD_NOW | RTLD_LOCAL) instead of RTLD_LAZY
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Use system() to implement [exec] if vfork() and waitpid()
are not available. This is just functional enough for simple tasks.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
And also a potentially undefined integer left shift
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
It is very common to get the string value
without the length. Jim_String() is a macro which does that.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Like Tcl, reap zombies on each exec invocation.
This commit also simplifies the implementation of exec
by using waitpid().
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
This allows systems with vfork() but not fork() to
have a full exec implementation, including constructs such
as 2>@1 and background exec with &
Also remove the --disable-fork option.
It doesn't really make sense now since exec uses vfork
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Ensure that no public headers include the autoconf
header, jimautoconf.h, as it leads to problems
with redefined symbols.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Like 'chan names' from Tcl
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Make the exec wait table allocated and per-interpeter
Use reentrant variants of some libc calls
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
All C extensions must call Jim_PackageProvide()
make-c-ext ensures that Tcl extensions call Jim_PackageProvide()
if compiled in.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Also, switch to using 'sh -c' for the vfork() implementation
because it then allows command line redirection, pipes and
setting the environment.
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>
|
|
This allows the return code from a failed 'exec' command to be retrieved.
Also support -errorcode in catch and return.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Use 'indent'. Not perfect, but at least consistent.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Including the --disable-fork case
And fix some compiler warnings
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Create and use config.h
Check for backtrace, fork, vfork, syslog, regcomp and others
Disable extensions which require missing functions/features
Check for one arg vs. two arg mkdir()
Distinguish between mingw and native windows
The aio extension has reduced functionality for ANSI C only
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Improve the ability to rethrow errors
* Allow return to rethrow an error by accepting '-errorinfo stacktrace'
* Also, 'catch ... opts' now also stores opts(-errorinfo) on error
* Use these to provide better stack traces from 'case' and 'try'
* Implement 'return -level'
Make try/on/finally more Tcl 8.6 compatible
* With support for 'on' handlers and docs
Add support for catch options to try
* Otherwise it's hard to use try to catch signals
Improvements to signal handling
* catch -signal now sets a list of the handled signals as the result
* catch -signal won't execute the body at all if a handled signal is pending
* up to 64 (jim_wide) signals can now be handled
* if catch -signal is nested, the innermost catch will catch the error
* new 'signal catch' allows ignored/blocked signals to be examined and cleared.
* update docs on signal handling
exec should indicate which signal killed the child
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
Add some missing files needed for autoconf
Make jim build standalone and without host jimsh
Use (FILE *) for eventloop file handle
Don't expect to support dynlib if no mmu
Re-add nvp and win32 support (untested)
Signed-off-by: Steve Bennett <steveb@workware.net.au>
|
|
See TIP #202: http://www.tcl.tk/cgi-bin/tct/tip/202.html
|
|
Makes creating error messages much simpler
Also convert a couple of long if/else to switch
Also some error message improvements
Also fix some memory leaks
|
|
Add lsearch -command, update case to use lsearch
Rename tcl6.tcl to tclcompat.tcl
Remove // style comments
Expand some tabs to spaces
Fix some compiler warnings
Remove some unused functions
Don't close fd=-1 in exec
|
|
Add Tcl tests for exec
Fix some errors exposed by these tests
Add support for >&, >>&, |&
|
|
jimsh - retry on EINTR from fgets()
Fix 0 -> NULL for 64 bit systems
Fix overlapping memcpy
Fix jim array dereferencing bug
*: Counting of parentheses was incorrect with nested array references
*: The result for array dereference wasn't being used properly
Add os.uptime command
Documentation: autogenerated command index
Fix gets when last line has no newline
|
|
Ensure that exec returns an error if appropriate
Background exec returns a list of pids
Need to close error filedescriptor
Add os.wait
|
|
Support @filehandle syntax
Support for nommu
Disable os.fork for nommu
Remove trailing newline
No need for binary escaping in bio module
------------------------------------------------------------------------
|
|
Save (but then cleanup) generated extensions
Add package and readdir to 'all' extensions
Order of static extensions matters!!
Simple C define support for configured extensions
Fix some compiler warnings
|
|
Also clean up some white space
|
|
|